
$(document).ready(function () {

	$('a[@rel*=lightboxImg]').lightBox({
		imageLoading: '/lightbox/images/lightbox-ico-loading.gif',
		imageBtnClose: '/lightbox/images/lightbox-btn-close.gif',
		imageBtnPrev: '/lightbox/images/lightbox-btn-prev.gif',
		imageBtnNext: '/lightbox/images/lightbox-btn-next.gif'
		}); 
		
	$('a[@rel*=lightboxHref]').lightBox({
		imageLoading: '/lightbox/images/lightbox-ico-loading.gif',
		imageBtnClose: '/lightbox/images/lightbox-btn-close.gif',
		imageBtnPrev: '/lightbox/images/lightbox-btn-prev.gif',
		imageBtnNext: '/lightbox/images/lightbox-btn-next.gif'
		}); 

	// otevreni/zavreni rozsireneho hledani
	if ($("#advanced_open").val() == 1) {
		$("#facilities").attr("class", "advSearch");
	}
	else {
		$("#facilities").attr("class", "hidden");
	}	
	if ($("#advanced_close").val() == 1) {
		$("#facilities").attr("class", "hidden");
	}
	$("#btn_advanced").attr("class", "btn_advanced");
	
	$.post("request-hotel-search/", {init: 1}, function (result) { 
		var data = result;
		var optionsMonthStart = "";
		var optionsMonthEnd = "";
		var optionsDayStart = "";
		var optionsDayEnd = "";
		
	    for (var i = data.firstDayStart; i <= data.lastDayStart; i++) {
	    	if (data.dayStart == i) {
	    		optionsDayStart += "<option selected='selected' value='" + i + "'>" + i + "</option>";
	    	}
	    	else {
	    		optionsDayStart += "<option value='" + i + "'>" + i + "</option>";
	    	}
	    }
	    for (var i = data.firstDayEnd; i <= data.lastDayEnd; i++) {
	    	if (data.dayEnd == i) {
	    		optionsDayEnd += "<option selected='selected' value='" + i + "'>" + i + "</option>";
	    	}
	    	else {
	    		optionsDayEnd += "<option value='" + i + "'>" + i + "</option>";
	    	}
	    }
	    $("#dayStart").html(optionsDayStart);
	    $("#dayEnd").html(optionsDayEnd);
	   	
	   	writeFullDate($("#monthYearStart"), $("#dayStart"), $("#checkIn"));
	   	writeFullDate($("#monthYearEnd"), $("#dayEnd"), $("#checkOut"));
	   		
		// zobrazi se a zase hned zmizi - nutne pro inicializaci
	   	displayDatePicker('checkIn', document.getElementById('dayStart'));
	    displayDatePicker('checkOut', document.getElementById('dayEnd'));
	}, "json");
		
	$("#monthYearStart").change(function () {
		
		var data = new Object(); 
		data.id = "start";
		data.monthYearStart = $("#monthYearStart").val();
		data.monthYearEnd = $("#monthYearEnd").val();  
		data.dayStart = $("#dayStart").val();
		data.dayEnd = $("#dayEnd").val();
		var dataString = $.toJSON(data); 
		
		$.post("request-hotel-search/", {changeMonth: dataString}, function (result) {
			var data = result;
		    var options = "";
		    
		   	for (var i = data.firstDay; i <= data.lastDay; i++) {
		   		if ($("#dayStart").val() == i) {
		   			options += "<option selected='selected' value='" + i + "'>" + i + "</option>";
		   		}
		   		else {
		    		options += "<option value='" + i + "'>" + i + "</option>";
		    	}
		    } 
		    $("#dayStart").html(options);
		    $("#nights").val(data["nights"]);
		}, "json");
		
		writeFullDate($("#monthYearStart"), $("#dayStart"), $("#checkIn"));
		$("#avail_checked").val(0);
	});
	
	$("#monthYearEnd").change(function () {
		
		var data = new Object(); 
		data.id = "end";
		data.monthYearStart = $("#monthYearStart").val();
		data.monthYearEnd = $("#monthYearEnd").val();  
		data.dayStart = $("#dayStart").val();
		data.dayEnd = $("#dayEnd").val();
		var dataString = $.toJSON(data); 
		
		$.post("request-hotel-search/", {changeMonth: dataString}, function (result) {
			var data = result;
		    var options = "";
		    
		   	for (var i = data.firstDay; i <= data.lastDay; i++) {
		   		if ($("#dayEnd").val() == i) {
		    		options += "<option selected='selected' value='" + i + "'>" + i + "</option>";
		    	}
		    	else {
		    		options += "<option value='" + i + "'>" + i + "</option>";
		    	}
		    } 
		    $("#dayEnd").html(options);
		    $("#nights").val(data["nights"]);
		}, "json");
		
	   	writeFullDate($("#monthYearEnd"), $("#dayEnd"), $("#checkOut"));
	   	$("#avail_checked").val(0);
	});
	
	$(".day").change(function () {
		var data = new Object(); 
		data.monthYearStart = $("#monthYearStart").val();
		data.monthYearEnd = $("#monthYearEnd").val();  
		data.dayStart = $("#dayStart").val();
		data.dayEnd = $("#dayEnd").val();
		var dataString = $.toJSON(data); 
		
		$.post("request-hotel-search/", {changeDay: dataString}, function (result) {
				alert('ds'+dataString);
			$("#nights").val(result["nights"]);
		}, "json");
		
		var dateArray = splitDateString($("#checkIn").val());
		var year = new String(dateArray[2]);
		var day = new String(dateArray[1]);
		var month = new String(dateArray[0]);
		updateDateField("checkIn", month + "/" + $("#dayStart").val() + "/" + year);
		
		dateArray = splitDateString($("#checkOut").val());
		year = new String(dateArray[2]);
		day = new String(dateArray[1]);
		month = new String(dateArray[0]);
		updateDateField("checkOut", month + "/" + $("#dayEnd").val() + "/" + year);
		
		$("#avail_checked").val(0);
	});
	
	/* uz se asi nepouziva */
	$("#nights").change(function () {
		var data = new Object(); 
		data.monthYearStart = $("#monthYearStart").val(); 
		data.dayStart = $("#dayStart").val();
		data.nights = $("#nights").val();
		var dataString = $.toJSON(data); 
	
		$.post("request-hotel-search/", {changeNights: dataString}, function (result) {
			var data = result;
			var options = "";
			$("#monthYearEnd").val(data.monthYearEnd);
			
			var begin = parseInt(data.firstDayEnd);
			var end = parseInt(data.lastDayEnd);
			
			for (var i = begin; i <= end; i++) {
	   			options += "<option value='" + i + "'>" + i + "</option>";
		    } 
		    $("#dayEnd").html(options);
			$("#dayEnd").val(data.dayEnd);
			
	   		writeFullDate($("#monthYearEnd"), $("#dayEnd"), $("#checkOut"));
		}, "json");
	});
	
	$("#btn_advanced").click(function() {
		var data = new Object();
		var classFac = $("#facilities").attr("class");
		
		if (classFac == "hidden") {
			$("#facilities").attr("class", "advSearch");
			$("#btn_advanced").html('Close advanced search');
			data.open = 1;	
		}
		else {
			$("#facilities").attr("class", "hidden");
			$("#btn_advanced").html('Open advanced search');
			data.open = 0;
		}
		var dataString = $.toJSON(data);
		$.post("request-hotel-search/", {openAdvanced: dataString}, function () {}, "json");
		
		return false;
	});
	
	$("#calendarCheckIn").click(function() {
		displayDatePicker('checkIn', document.getElementById('dayStart'));
		return false;
	});	
	
	$("#calendarCheckOut").click(function() {
		displayDatePicker('checkOut', document.getElementById('dayEnd'));
		return false;
	});	
	
	$("#find-hotel").submit(function() {
    	if ($("#nights").val() > 31) {
        	alert("Nights limit reached. Maximum is 31 nights.");
			return false;
      	}
      	else {
      		return true;
      	}
    });
});

// prevede monthYear a day na kompletni datum a doplni ho do skryteho pole
function writeFullDate(monthYearField, dayField, checkField) {
	var currentDate = new Date();
	var year = currentDate.getFullYear();
	var month = new String(currentDate.getMonth() + 1);
	var index = monthYearField.val();
	
	while (index > 0) {
		if (month < 12) {
			month++;
		}
		else {
			month = 1;
			year++;
		}
		index--;
	}
    if (month.length == 1) {
    	month = "0" + month;
    }
    
    var fieldName = new String(checkField.attr("name"));
    var checkString = month + "/" + dayField.val() + "/" + year;
    updateDateField(fieldName, checkString);
}

function datePickerClosed(dateField)
{
	var dateArray = splitDateString(dateField.value);
	var year = new String(dateArray[2]);
	var day = new String(dateArray[1]);
	var month = new String(dateArray[0]);
 
	if (day.valueOf() < 10 && day.length == 2) {
		day = day.substr(1, 1);
	}
	if (month.valueOf() < 10 && month.length == 2) {
		month = month.substr(1, 1);
	}
	
	// vypocitat index v selectboxu month/year
	var today = new Date();
  	var tmpYear = today.getFullYear();
  	var tmpMonth = today.getMonth() + 1; // vraci totiz 0-11
  	var index = 0;
  	
 	while (index < 11 && (tmpMonth < month.valueOf() || tmpYear < year.valueOf())) {
 		if (tmpMonth < 12) {
 			tmpMonth++;
 		}
 		else {
 			tmpMonth = 1;
 			tmpYear++;
 		}
		index++; 		
 	}
 	
 	// doplnit odpovidajici pocet dnu do selectboxu
 	
 	var data = new Object();
 	
 	if (dateField.id == "checkIn") { 
		data.id = "start";
		data.monthYearStart = index;
		data.monthYearEnd = $("#monthYearEnd").val();
		data.dayStart = dateArray[1];
		data.dayEnd = $("#dayEnd").val();
	}
	else if (dateField.id == "checkOut") {
		data.id = "end";
		data.monthYearStart = $("#monthYearStart").val();
		data.monthYearEnd = index;
		data.dayStart = $("#dayStart").val();
		data.dayEnd = dateArray[1];
	}
	var dataString = $.toJSON(data); 
	
	$.post("request-hotel-search/", {changeMonth: dataString}, function (result) {
		var data = result;
	    var options = "";
	    
	   	for (var i = data.firstDay; i <= data.lastDay; i++) {
	   		if (dateArray[1] == i) {
	   			options += "<option selected='selected' value='" + i + "'>" + i + "</option>";
	   		}
	   		else {
	    		options += "<option value='" + i + "'>" + i + "</option>";
	    	}
	    } 
	    if (dateField.id == "checkIn") {
	    	$("#dayStart").html(options);
	    }
	    else if (dateField.id == "checkOut") {
	    	$("#dayEnd").html(options);
	    }
	    $("#nights").val(data["nights"]);
	}, "json");
	
 	// samotna zmena mesice v selectu
 	if (dateField.id == "checkIn") {
    	document.getElementById("monthYearStart").selectedIndex = index;
    }
    else if (dateField.id == "checkOut") {
    	document.getElementById("monthYearEnd").selectedIndex = index;
    }
}	















