$(document).ready(function(){

	/* Check In Functionality */
	$("#arr_input").datepicker({
		dateFormat: 'yy-m-d',
		minDate: new Date(),
		maxDate: '+365D',
		onSelect: updateArrDates,
		showOn: 'button', buttonImage: '/public/images/newLayout/calIn.gif', buttonImageOnly: true
	});

	function updateArrDates(date) {
		var sdate = date.split('-');

		$('#ar_month_year').val(sdate[1]+'_'+sdate[0]); 
		$('#ar_day').val(sdate[2]); 
		
		changeDays('ar',sdate[0],sdate[2]);
		setDep();
		updateDepCal();

		var newDepDay = $('#dep_year').val()+'-'+$('#dep_month').val()+'-'+$('#dep_day').val();
		$("#dep_input").val(newDepDay);
	} 

	/* ======================= */
	
	
	/* Check Out Functionality */
	$("#dep_input").datepicker({
		dateFormat: 'yy-m-d',
		minDate: '+1D',
		maxDate: '+365D',
		onSelect: updateDepDates,
		showOn: 'button', buttonImage: '/public/images/newLayout/calOut.gif', buttonImageOnly: true
	});

	function updateDepDates(date) {
		var sdate = date.split('-');

		$('#dep_month_year').val(sdate[1]+'_'+sdate[0]); 
		$('#dep_day').val(sdate[2]); 
	}

	function setDep() {
		var ard = $('#ar_day').val();
		var arm = $('#ar_month_year').val();
		
		var x = $('#ar_month_year').val().split('_');
		var month = x[0];
		var year = x[1];
		
		$('#dep_month_year').val(arm);

		changeDp();

		// Happy new year addon
		if(ard == 31 && month == 12) {
			year = parseInt(year)+1;
			$("#dep_day").val(1);
			$("#dep_month_year").val(1+'_'+year);
		}
	}
	
	function changeDp() {
		var ard = $('#ar_day').val();
		var x = $('#ar_month_year').val().split('_');
		var arm = x[0];
		var ary = x[1];
		
		var dpd = $('#dep_day').val();
		var z = $('#dep_month_year').val().split('_');
		var dpm = z[0];
		var dpy = z[1];
		
		var i;
		
		// set dpd to ard + 1
		if( $("select#ar_day").val() == $("select#ar_day option:last").val() && arm != 12 ) {
			i = 1;
			$('#dep_month_year').val((parseInt(arm)+1)+'_'+ary);
			dpd = 1;
		} else if ($("select#ar_day").val() == $("select#ar_day option:last").val() && arm == 12) {
			i = 1;
		} else {
			i = parseInt(ard)+1;	
		}
		
		if(parseInt(dpm) > parseInt(arm)) i = 1;
		if(parseInt(dpy) > parseInt(ary)) i = 1;
		
		changeDays('dep',dpy,i);
		$('#dep_day').val(i);
				
	}
	
	/* ======================= */
	$("select#ar_day").change(function(){
		var x = $("select#ar_month_year").val().split('_');							   
		changeDays('ar',x[1],$("select#ar_day").val());
		
		setDep();
		updateArCal();
		updateDepCal();
	});

	$("select#ar_month_year").change(function(){
		var x = $("select#ar_month_year").val().split('_');							   
		changeDays('ar',x[1],$("select#ar_day").val());
		setDep();
		updateArCal();
		updateDepCal();
	});
	
	$("select#dep_day").change(function(){
		updateDepCal();
	});
	
	$("select#dep_month_year").change(function(){
		changeDp();
		updateDepCal();
	});

	function updateDepCal() {
		var x = $('#dep_month_year').val().split('_');
		var updateCal = x[1]+'-'+x[0]+'-'+$('#dep_day').val();
		//alert(updateCal);
		$("#dep_input").val(updateCal);
	}
	
	function updateArCal() {
		var x = $('#ar_month_year').val().split('_');
		var updateCal = x[1]+'-'+x[0]+'-'+$('#ar_day').val();
		//alert(updateCal);
		$("#arr_input").val(updateCal);
	}
		
	
	
	/* Usefull Functions */
	function changeDays(f,y,i) { // ar,dep + year + start day
		var field = f+'_day';
		var x = $("select#"+f+"_month_year").val().split('_');
		var m = x[0];
		
		/* Update Disabled Days */	
		var now = new Date();
		var cDay = now.getDate()+1;
		var cMonth = now.getMonth()+1;
		var cYear = now.getFullYear();

		$("select#"+f+"_day").find('option').remove().end();
		
		var day = i;
		if (cYear == y || cMonth != m) {
			//alert("F: "+field+" Y: "+y+" M: "+m+" D: "+i+" CYEAR: "+cYear+" cMonth: " +cMonth);
			i = 1;
		}
		
		if(m == 2) {
			var year = y-2000;
			if (Math.floor(year/4)==year/4) days=29; else days=28;
			for(i;i<=days;i++) {
				if (cYear == y && cMonth == m && i < cDay) {			
					$("select#"+f+"_day").append('<option value="'+i+'" disabled="disabled">'+i+'</option>');
				} else if (cYear != y && cMonth == m && i > cDay) {
					$("select#"+f+"_day").append('<option value="'+i+'" disabled="disabled">'+i+'</option>');
				} else if (day == i) {
					$("select#"+f+"_day").append('<option value="'+i+'" selected="selected">'+i+'</option>');
				} else {
					$("select#"+f+"_day").append('<option value="'+i+'">'+i+'</option>');	
				}
			}
		} else if(m==1 || m==3 || m==5 || m==7 || m==8 || m==10 || m==12) {
			for (i ; i<=31 ; i++){
				if (cYear == y && cMonth == m && i < cDay) {			
					$("select#"+f+"_day").append('<option value="'+i+'" disabled="disabled">'+i+'</option>');
				} else if (cYear != y && cMonth == m && i > cDay) {
					$("select#"+f+"_day").append('<option value="'+i+'" disabled="disabled">'+i+'</option>');
				} else if (day == i) {
					$("select#"+f+"_day").append('<option value="'+i+'" selected="selected">'+i+'</option>');
				} else {
					$("select#"+f+"_day").append('<option value="'+i+'">'+i+'</option>');	
				}
			}
		} else {
			for (i ; i<=30 ; i++){
				if (cYear == y && cMonth == m && i < cDay) {			
					$("select#"+f+"_day").append('<option value="'+i+'" disabled="disabled">'+i+'</option>');
				} else if (cYear != y && cMonth == m && i > cDay) {
					$("select#"+f+"_day").append('<option value="'+i+'" disabled="disabled">'+i+'</option>');
				} else if (day == i) {
					$("select#"+f+"_day").append('<option value="'+i+'" selected="selected">'+i+'</option>');
				} else {
					$("select#"+f+"_day").append('<option value="'+i+'">'+i+'</option>');	
				}
			}	
		}
		
	}
	
	$("select#country_select").change(function() {
		var cid = $(this).val();
		$("select#citySelect").html("<option>Va rugam asteptati ...</option>");
		$.ajax({
			dataType: "jsonp", 
			url: "/ajax/all/getcitiesjson/cid/"+cid,
			cache: true,
			success: function(data) {
			var options = '';
			for (var i = 0; i < data.length; i++) {
				options += '<option value="' + data[i].id + '">' + data[i].name + '</option>';
			}
			$("select#citySelect").html(options);
			$('select#citySelect option:first').attr('selected', 'selected');
		}   
		});
	})	
	
	$("#searchAccommodation").submit(function(){
		$("input").hide();
		$("select").hide();
		
		var arr = $("select#ar_day option:selected").text() +' '+ $("select#ar_month_year option:selected").text().replace(/,/gi, "");
		var dep = $("select#dep_day option:selected").text() +' '+ $("select#dep_month_year option:selected").text().replace(/,/gi, "");
									
		// $('.preloader').height($(document).height());		
		$('div#preloader').show();
		$("#preloader_arrdate").html(arr);
		$("#preloader_depdate").html(dep);
		if ($("#pseudoCityName").html() == "" || $("#pseudoCityName").html() == null) {
			$("#preloader_city").html($("select#citySelect option:selected").text());
		} else {
			$("#preloader_city").html($("#pseudoCityName").html());
		}
		$("#preloader_roomtype").html($("select#roomType option:selected").text());
		$("#preloader_numofrooms").html($("select#numOfRooms option:selected").text());
	});


	$("#changeCriteria").click(function(){
		$("input").hide();
		$("select").hide();
		
		var arr = $("select#ar_day option:selected").text() +'-'+ $("select#ar_month option:selected").text() +'-'+ $("select#ar_year option:selected").text();
		var dep = $("select#dep_day option:selected").text() +'-'+ $("select#dep_month option:selected").text() +'-'+ $("select#dep_year option:selected").text();
									
		// $('.preloader').height($(document).height());		
		$('div#preloader').show();
		$("#preloader_arrdate").html(arr);
		$("#preloader_depdate").html(dep);
		$("#preloader_city").html($("select#citySelect option:selected").text());
		$("#preloader_roomtype").html($("select#roomType option:selected").text());
		$("#preloader_numofrooms").html($("select#numOfRooms option:selected").text());
	});

});

