$().ready(function(){ 

	$("#nameFromCity,#nameToCity").autocomplete("loadsuggestcity.jsp", {	
		matchContains: true,
		selectFirst: false,
		max: 20
	});	

	$("#nameFromCity").result(function(event, data, formatted) {
		$("#fromCity").val(data[1]);
	});
	
	$("#nameToCity").result(function(event, data, formatted) {
		$("#toCity").val(data[1]);
	});

	$("#btnbuscar").click(function(){
		
		if(VerificarCityPair($("#fromCity").val(),$("#toCity").val()))
		{
			var typeAir=2;
			if($("input[type=radio][name=direction]:checked").val()=="O") typeAir=1;
			
			var deptAux=$("#departDate").val().substring(3,5)+"/"+$("#departDate").val().substring(0,2)+"/"+$("#departDate").val().substring(6,10);
			var retAux=$("#returnDate").val().substring(3,5)+"/"+$("#returnDate").val().substring(0,2)+"/"+$("#returnDate").val().substring(6,10);

			var url='https://book.lowfareengine.com/web/air/default.aspx?siid=8346';
			url=url+"&AirSegCount=" + typeAir;
			url=url+"&aCount=" + $("#numAdult").val();
			url=url+"&iLCount=" + $("#numChild").val();
			url=url+"&cCount=" + $("#numInfants").val();
			url=url+"&AirSeg_1=" + $("#fromCity").val()+ "|" + $("#toCity").val() +  "|" + deptAux +  "|" ;
			if(typeAir==2)
			{
				url=url+"&AirSeg_2=" + $("#toCity").val()+ "|" + $("#fromCity").val() +  "|" + retAux +  "|" ;
			}
			$("#loading").dialog("open");
			location.href=url;
			
			
		}
		else
		{
			if($.trim($("#nameFromCity").val())=="" || $.trim($("#fromCity").val())=="")
			{
	    		alert("Ingrese una ciudad de salida valida");
	    	}
			else if($.trim($("#nameToCity").val())=="" || $.trim($("#toCity").val())=="")
			{
	    		alert("Ingrese una ciudad de llegada valida");
	    	}
			else if($.trim($("#departDate").val())=="" || !validateDate($.trim($("#departDate").val())))
			{
	    		alert("Ingrese una fecha de partida valida");
	    	} 
			else if(!$("#oneway").is(":checked") && ($.trim($("#returnDate").val())=="" || !validateDate($.trim($("#returnDate").val()))))
			{
	    		alert("Ingrese una fecha de llegada valida");
	    	} 
			else
			{
				$("#frmFligth").submit();
			}
		}
		
	});

	$("form").submit(function() {
		_gaq.push(['_submitFlight', this]);
		$("#loading").dialog("open");
	});
	
	$("#loading").dialog({
		modal: true,
		width:438,
		height:226,
		closeText: 'hide',
		show: 'slide',
		autoOpen: false,
		closeOnEscape: false,
		draggable: false,
		resizable: false
	});


	$('#departDate').datepicker({
		numberOfMonths: 2,		
		dateFormat: $('#dateFormat').val(),		
		maxDate: '+1y',
		minDate: '+3d',
		showCurrentAtPos: 0,
		showOn: 'both', 
		buttonImage: 'images/motor/calendar.gif', 
		buttonImageOnly: true
	});
	$('#returnDate').datepicker({
		numberOfMonths: 2,
		dateFormat: $('#dateFormat').val(),
		defaultDate: +4,
		maxDate: '+1y',
		minDate: '+3d',
		showCurrentAtPos: 0,
		showOn: 'both', 
		buttonImage: 'images/motor/calendar.gif', 
		buttonImageOnly: true
	});
	
	$("#departDate").change(function(){
		
		if($("#returnDate").val()=="")
		{
			var dateAux=new Date($("#departDate").val().substring(6,10), 
					parseInt($("#departDate").val().substring(3,5),10)-1, 
					 parseInt($("#departDate").val().substring(0,2),10)+2);
    			
			$("#returnDate").datepicker("setDate",dateAux);
		}
		else
		{
			var departDate=new Date($("#departDate").val().substring(6,10), 
					$("#departDate").val().substring(3,5), 
					 parseInt($("#departDate").val().substring(0,2),10));
    			
			var returnDate=new Date($("#returnDate").val().substring(6,10), 
								$("#returnDate").val().substring(3,5), 
		    					 parseInt($("#returnDate").val().substring(0,2),10));
			
			if(departDate > returnDate)
			{
				var dateAux=new Date($("#departDate").val().substring(6,10), 
						parseInt($("#departDate").val().substring(3,5),10)-1, 
   					 parseInt($("#departDate").val().substring(0,2),10)+2);
					if ($("#departDate").val()!=""){
						$("#returnDate").datepicker("setDate",dateAux); 			
					}
			}
		}
	});

	$("#returnDate").change(function(){
		
		var departDate=new Date($("#departDate").val().substring(6,10), 
				$("#departDate").val().substring(3,5), 
				 parseInt($("#departDate").val().substring(0,2),10));
		
		
		var returnDate=new Date($("#returnDate").val().substring(6,10), 
				$("#returnDate").val().substring(3,5), 
	    		 parseInt($("#returnDate").val().substring(0,2),10));
		
		if(departDate > returnDate)
		{
			var dateAux=new Date($("#returnDate").val().substring(6,10), 
					parseInt($("#returnDate").val().substring(3,5),10)-1, 
					 parseInt($("#returnDate").val().substring(0,2),10)-2);
				 
			if ($("#returnDate").val()!=""){
				$("#departDate").datepicker("setDate",dateAux);
			}
			
		}
	});
		
	$("#roundtrip,#oneway").click(function(){
		if($("#oneway").attr("checked")==true)
		{
			$(".llegada").hide();
		}
		else
		{
			$(".llegada").show();
		}
	});
	
	function VerificarCityPair(fromCity,toCity){
		var motorMonish=false;
		var destinyCityPair=/TBP|PIU|CIX|CJA|TRU|AQP|TCQ|IQT|TPP|JUL|CUZ|PCL|PEM/;
		if(fromCity=="LIM" && destinyCityPair.test(toCity)) motorMonish=true;
		if(fromCity=="AQP" && toCity=="CUZ")motorMonish=true;
		if(fromCity=="CUZ" && toCity=="AQP")motorMonish=true;
		if(fromCity=="CUZ" && toCity=="PEM")motorMonish=true;
		if(fromCity=="PEM" && toCity=="CUZ")motorMonish=true;
		if(fromCity=="AQP" && toCity=="JUL")motorMonish=true;
		if(fromCity=="JUL" && toCity=="AQP")motorMonish=true;
		return motorMonish;
		
	}
	
	function validateDate( strValue ) {
		
		  var objRegExp = /^\d{1,2}(\-|\/|\.)\d{1,2}\1\d{4}$/
		 
		  if(!objRegExp.test(strValue))
		    return false; //doesn't match pattern, bad date
		  else{
		    var strSeparator = strValue.substring(2,3) 
		    var arrayDate = strValue.split(strSeparator); 
		    //create a lookup for months not equal to Feb.
		    var arrayLookup = { '01' : 31,'03' : 31, 
		                        '04' : 30,'05' : 31,
		                        '06' : 30,'07' : 31,
		                        '08' : 31,'09' : 30,
		                        '10' : 31,'11' : 30,'12' : 31}
		    var intDay = parseInt(arrayDate[0],10); 

		    //check if month value and day value agree
		    if(arrayLookup[arrayDate[1]] != null) {
		      if(intDay <= arrayLookup[arrayDate[1]] && intDay != 0)
		        return true; //found in lookup table, good date
		    }
		    
		    //check for February (bugfix 20050322)
		    //bugfix  for parseInt kevin
		    //bugfix  biss year  O.Jp Voutat
		    var intMonth = parseInt(arrayDate[1],10);
		    if (intMonth == 2) { 
		       var intYear = parseInt(arrayDate[2]);
		       if (intDay > 0 && intDay < 29) {
		           return true;
		       }
		       else if (intDay == 29) {
		         if ((intYear % 4 == 0) && (intYear % 100 != 0) || 
		             (intYear % 400 == 0)) {
		              // year div by 4 and ((not div by 100) or div by 400) ->ok
		             return true;
		         }   
		       }
		    }
		  }  
		  return false; //any other values, bad date
		}


});

