var iPaxAllowed = 9;

var calenderformat='d-M-Y';
    var calenderformatforvalidator='d-MMM-y';
    var airchecker;
var load_method = EnvVariables.LOAD_METHOD;
window.addEvent(load_method, function(){
	
	
	//alert(Browser.Engine.gecko);
	
	var fromSpinner=new TimeSpinner($('timefrom'));
	var toSpinner=new TimeSpinner($('timeto'));
    
    /*var compFrom = new Autocompleter.Ajax.Json($('citycombo'), 'citybuilder.ajax', {
       delay: 40000,            
       postVar:'query'
    });*/
        
     var options1 = {
//    script: "citybuilder.ajax?queryforiata=true&maxvals=8&",/*biz_mode=getAllData&*/
    script: function (input) { return "citybuilder.ajax?queryforiata=false&maxvals=8&query=" + input; },
	varname: "query",
	json: true,
	showinfo:true,
//	searchOnFields: ["iata", "airportName"],
	minchars: 1,
//	keepResults: false,
//	shownoresults:true,
//	cache:true,
	minWidth:300,
         maxentries:0,
         callback:function(obj){                         
             $('fromIataclone').value=obj.obj.iata;
             $('fromCountryInput').value=obj.obj.country;            
             $('fromdomint').value=obj.obj.domint;
         },maxresults: 10
    };
    
    var as = new bsn.AutoSuggest('fromIata', options1);
    
    var options2 = {
		script: "citybuilder.ajax?queryforiata=false&maxvals=8&",
		varname: "query",
		json: true,
		minWidth:300,
		showinfo:true,
         maxentries:0,
         callback:function(obj){                         
             $('toIataclone').value=obj.obj.iata;
             $('toCountryInput').value=obj.obj.country;
             $('todomint').value=obj.obj.domint;            
         },maxresults: 10
    }
    ;
    var as2 = new bsn.AutoSuggest('toIata', options2);
    
    
	airchecker = new FormCheck('airFrom', {
		tips_class : 'tips_box',
		error_class : 'error_field',
		
		//callback:showJax,
		
			display : {
                		scrollToFirst : false,
                                 tipsOffsetLeft :30,			//ok Left position of the tips box (margin-left)
                                tipsOffsetTop: 0,
                                indicateErrors	: 1,
                                 //timeout:5000,
                                 listErrorsAtTop:false
                                 
			},
			alerts : {
                		required : 'This field is absolutely required! Please enter a value',
						date:'Enter a valid date in dd-MMM-yyyy format',
            			dateafter:'End date should be after start date',
            			requiredair:"This field is required.",
                		IataDiff:"Leaving Form and Going To can not be same"
            			//datedifference:'Date Difference'	    
			},
			regexp : 
            {
				requiredair :  /[^.*Enter city or airport code]/
            },
			functions:{
			    date:function(d){
					if(calenderformatforvalidator==null || calenderformatforvalidator=='')calenderformatforvalidator='d-MMM-y';
					if(d==null || d=='') return false;
					else return Date.isValid(d,calenderformatforvalidator);				
				},
				dateafter:function(d){					
					if(calenderformatforvalidator==null || calenderformatforvalidator=='')calenderformatforvalidator='d-MMM-y';
					var previousdate=$('fromdate').value;
					if(!previousdate || previousdate=='' || !Date.isValid(previousdate,calenderformatforvalidator)){										
						return false;
					}else {
						var ret=Date.parseString(d,calenderformatforvalidator);
						var leave=Date.parseString(previousdate,calenderformatforvalidator);
						if(leave.isBefore(ret)){							
							return true;
						}
						else {							
							return true;
						}
					}
				},
				IataDiff:function(d){
					if($('fromIataclone').value==$('toIataclone').value)
						return false;
				}
			}
                         
		});
			
//  	$('airFrom').addEvent('submit', showJax);		
		buildInfants();
		toggleValidation();
		togglePreferences();

		var prefAirlineAS = {
		script: "airlinelist.ajax?ACTION_MODE=GET_AIRLINES&",
		varname: "flight",
		json: true,
		minWidth:300,
		showinfo:true,
         maxentries:0,
         callback:function(obj){                         
            $('airlinexid').value=obj.obj.airlineId;
//            alert(obj.obj.airlineId);            
         },maxresults: 10
    };
	
		var as3 = new bsn.AutoSuggest('prefAirline', prefAirlineAS);
		
		
		$('prefNonStop').addEvent('click',function(){
			if(this.checked){
				this.value = 'Y';
				//$('tdprefNoStops_value').set('style','display:none;');
				//$('tdprefNoStops_header').set('style','display:none;');
			}else{
				this.value = 'N';
				//$('tdprefNoStops_value').set('style','');
				//$('tdprefNoStops_header').set('style','');
			}
		});
		
		//setTimeout("toggleValidation()",100);
		//$("regularform").style.height="auto";
		($("regularform").getParent()).setStyle('height','auto');
		toggleValidation();
});


function togglePreferences()
{
	$("preferencesDiv").slide("out");
	//For showing pointer on advance option link
	$("prefAirlineToggler").set('style','border-bottom:none;cursor:pointer;');
	
	$("prefAirlineToggler").addEvent("click", function()
	{
		$("preferencesDiv").removeClass("invisible");	
		$("preferencesDiv").slide("toggle");	
		$("regularform").getParent().style.height='auto';
		
	});
}

function toggleanytimefrom(){
	var fromTime = $('timefrom').get("value");
	fromTime = fromTime.replace(":", "");
	
	if($('timefromanytime').checked==true)
	{
		$('timefromdiv').setStyle('display','none');
		$("departuretime").set("value", fromTime);
	}
	else
	{ 
		$('timefromdiv').setStyle('display','block');
		$("departuretime").set("value", "");
	}
}
function toggleanytimeto(){
	var toTime = $("timeto").get("value");
	toTime = toTime.replace(":", "");
	
	if($('timetoanytime').checked==true)
	{
		$('timetodiv').setStyle('display','none');
		$("arrivaltime").set("value")
	}
	else
	{ 
		$('timetodiv').setStyle('display','block');
	}
}


  function addReturnDateValidation(){
  	var retdate=$('returndate');
  	if(retdate){
  		retdate.addClass("validate['required','longmontdate','dateafter']" );
  	 	airchecker.registerAnotherElement(retdate);
  	 	retdate.set('enabled',true);
  	 	retdate.set('disabled',false);
  	 	retdate.setStyle('background','#ffffff');
  	 	$("timeto").erase("disabled");
  	 	//retdate.removeClass('.disabledinput');
  	 }
  }
  function removeReturnDateValidation(){
  var retdate=$('returndate');
  	if(retdate){
  		retdate.removeClass("validate['required','date','dateafter']" );
  	 	airchecker.unregisterElement(retdate);
  	 	retdate.set('enabled',false);
  	 	retdate.set('disabled',true);  	 	
  	 	retdate.setStyle('background','#dddddd');
  	 	$("timeto").set("disabled", "disabled");
  	 	//retdate.addClass('.disabledinput');
  	 	
  	 }
  } 
	function toggleValidation(evt){
		
		if($('roundtripradio') && $('roundtripradio').checked==true)addReturnDateValidation();
		else removeReturnDateValidation();
		
		//so that by deafult onward radio is selected and not pnrsync
		if($("onwardtripradio") && $("onwardtripradio").checked)
		{
			$("regularform").fade("in");
			$("regularform").slide("in");
			$("pnrform").fade("out");
			$("pnrform").slide("out");
			$("multiform").fade("out");
			$("multiform").slide("out");
			$("regularform").getParent().set("style", "overflow:visible");
		}
		else if($("multicheck") && $("multicheck").checked)
		{
			$("pnrform").fade("out");
			$("pnrform").slide("out");
			$("regularform").fade("out");
			$("regularform").slide("out");
			$("multiform").fade("in");
			$("multiform").slide("in");
			$("regularform").getParent().set("style", "overflow:visible");
		}
		else if($("pnrSynch") && $("pnrSynch").checked)
		{
			$("pnrform").fade("in");
			$("pnrform").slide("in");
			$("regularform").fade("out");
			$("regularform").slide("out");
			$("multiform").fade("out");
			$("multiform").slide("out");
			$("regularform").getParent().set("style", "overflow:visible");
		}
		else 
		{
			
			$("regularform").fade("in");
			$("regularform").slide("in");
			$("pnrform").fade("out");
			$("pnrform").slide("out");
			$("multiform").fade("out");
			$("multiform").slide("out");
			$("regularform").getParent().set("style", "overflow:visible");
		}
		$("regularform").style.height="auto";
	}


	
	function showJaxWithMsg(){		
		var msg="Searching.....";
		var obj={
				'product':'Air',
				'nextpage':'iberesultsair.do',
				'BIZ_ACTION_MODE':$('bizaction').value
		}
		
		showJax(msg,obj);
	}
	
	
	
	function formSubmit()
	{
		var adultCount = $("paxAdults").get("value").toInt();
		var childCount = $("paxChild").get("value").toInt();
		var infCount = $("paxInfant").get("value").toInt();
		var fromdomint =  $("fromdomint").get("value");
		var todomint =  $("todomint").get("value");
		var totPax = adultCount+childCount+infCount;
		

//		if(!$("timefromanytime").checked && !$("timetoanytime").checked)
//		{
//			alert("Set either departure time or arrival time");
//			return;
//		}		
		
		if(!$("timefromanytime").checked)		{
			var fromTime = $("timefrom").get("value");
			fromTime = fromTime.replace(":", "");
			$("departuretime").set("value", fromTime);
//			$("arrivaltime").set("value", "Any");
		}
		
		if(!$("timetoanytime").checked)
		{
			var toTime = $("timeto").get("value");
			toTime = toTime.replace(":", "");
			$("arrivaltime").set("value", toTime);
//			$("departuretime").set("value", "Any");
		}
		
		
		if(totPax >=10)
		{
			$("alertArea").addClass("alertArea");
			$("alertArea").set("html", "Cant search more than 9 passengers");
			return;
		}
		
		if(fromdomint == 'I' || todomint == 'I')
		{
			var today=new Date();
			var date1=$('fromdate').value;
			var date2=$('returndate').value;
		
			if(!(date1==null || date1==''))
			{
				var month1 = date1.split("-");
						
				for (var i=0; i<Date.monthAbbreviations.length; i++) {
		 		if(month1[1]==Date.monthAbbreviations[i])
		 		{
		 			monthNum1 = i+1;
				 	
				}
		 		
			   }
		 
        	//Total time for one day
        	var one_day=1000*60*60*24; 
        	var x=date1.split("-");     
        	x[1]=monthNum1;
        	var date1=new Date(x[2],(x[1]-1),x[0]);
        	var month1=x[1]-1;
          	_FromDateDiff=Math.ceil((date1.getTime()-today.getTime())/(one_day))
        	if(_FromDateDiff<=3)
        	{
        		alert('Please choose a departure date at least three days from today for international flights');
        		return false;
        	}
        	
		}
	}	
			
		if(airchecker.pseudoSubmit())	{	
			
			//showJaxWithMsg();
			form_submit($("airFrom"));
			createInterstetial();
			
		}	
		
	}
	
	function buildInfants()
	{
		var iAdultVal = $("paxAdults").get("value");
		
		var iInfantVal = $("paxInfant").get("value");
		$("paxInfant").empty();
		
		for(var iPax=0;iPax<=iAdultVal;iPax++)
		{
			
			var optInfant = new Element("option", {"value" : iPax,'selected':(iPax+''==iInfantVal+'')?true:false}).set("html", iPax).injectInside($("paxInfant"));
		}
	}
	
	function paxListeners(elm)
	{
		
		if(elm.get("id") == "paxAdults")
		{
			buildInfants();
		}
	}
	
	
	/*function createInterstetial(){
		
		//$$('div.ibe-adminstyle-alwayshidden').set('style','');
		$('ibe-adminstyle-globalmaskingdiv').set('style','');
		$('interstetialpage').removeClass('onlyinvisible');
		
		
		var airTd = new Element('td',{'align':'center'}).injectInside($('loaderBody'));
		var airTable = new Element('table',{'class':'ticdetail1','border':'0','cellpadding':'2','cellspacing':'0'}).injectInside(airTd);
		var airTbody = new Element('tbody').injectInside(airTable);
		var airTrDate = new Element('tr',{'class':'waitinglist'}).injectInside(airTbody);
		
		if($('returndate').get('value') != ''){
			var airTdDepart = new Element('td',{'id':'airDepart','align':'center','html':'Depart:&nbsp;'+$('fromdate').get('value')}).injectInside(airTrDate);
			var emptyTd = new Element('td',{'html':'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'}).injectInside(airTrDate);
			var airTdReturn = new Element('td',{'id':'airReturn','align':'center','html':'Return:&nbsp;'+$('returndate').get('value')}).injectInside(airTrDate);
		}else{
			var airTdDepart = new Element('td',{'id':'airDepart','align':'center','html':'Depart:&nbsp;'+$('fromdate').get('value'),'colspan':'3'}).injectInside(airTrDate);
			
		}
		
		var airTrIata = new Element('tr',{'class':'waitinglist'}).injectInside(airTbody);	
		var airTdFromIata = new Element('td',{'id':'airFromIata','align':'center','html':'Origin:&nbsp;'+$('fromIata').get('value')}).injectInside(airTrIata);
		var emptyTd = new Element('td',{'html':'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'}).injectInside(airTrIata);
		var airTdToIata = new Element('td',{'id':'airToIata','align':'center','html':'Destination:&nbsp;'+$('toIata').get('value')}).injectInside(airTrIata);
		

	}*/
	
	function submitPnr()
	{	
		$("bizaction").set("value", "GET_AIR_PNR_FARE_RESULT");
//		$("emptybizaction").set("value", "GET_AIR_PNR_FARE_RESULT");
		//alert($("bizaction").get("value"));
		form_submit($("airFrom"));
	}

	function createInterstetial(){
	
		//$$('div.ibe-adminstyle-alwayshidden').set('style','');
		$('ibe-adminstyle-globalmaskingdiv').set('style','');
		$('interstetialpage').removeClass('onlyinvisible');
		
		if($('airFromIata') && $('airToIata') && $('airDepart')){
		
			if($('onwardtripradio').checked){
				$('airDepart').set('html','Depart:&nbsp;'+$('fromdate').get('value'));
				$('airDepart').setProperty('colspan','3');
				$('airReturn').set('html','');
			}else{
				$('airDepart').set('html','Depart:&nbsp;'+$('fromdate').get('value'));
				$('airReturn').set('html','Return:&nbsp;'+$('returndate').get('value'));
				$('airDepart').setProperty('colspan','');
			}
			
			$('airFromIata').set('html','Origin:&nbsp;'+$('fromIata').get('value'));//alert($('fromIata').get('value'));
			$('airToIata').set('html','Destination:&nbsp;'+$('toIata').get('value'));
		}else{
			var airTd = new Element('td',{'align':'center'}).injectInside($('loaderBody'));
			var airTable = new Element('table',{'class':'ticdetail1','border':'0','cellpadding':'2','cellspacing':'0'}).injectInside(airTd);
			var airTbody = new Element('tbody').injectInside(airTable);
			var airTrDate = new Element('tr',{'id':'airDate','class':'waitinglist'}).injectInside(airTbody);
			
			var airTdDepart = new Element('td',{'id':'airDepart','align':'center'}).injectInside(airTrDate);
			var emptyTd = new Element('td',{'html':'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'}).injectInside(airTrDate);
			var airTdReturn = new Element('td',{'id':'airReturn','align':'center'}).injectInside(airTrDate);
			
			if($('returndate').get('value') != ''){
				$('airDepart').set('html','Depart:&nbsp;'+$('fromdate').get('value'));
				$('airReturn').set('html','Return:&nbsp;'+$('returndate').get('value'));
				
			}else{
				$('airDepart').setProperty('colspan','3');
				$('airDepart').set('html','Depart:&nbsp;'+$('fromdate').get('value'));
			
			}
			
			var airTrIata = new Element('tr',{'class':'waitinglist'}).injectInside(airTbody);	
			var airTdFromIata = new Element('td',{'id':'airFromIata','align':'center','html':'Origin:&nbsp;'+$('fromIata').get('value')}).injectInside(airTrIata);
			var emptyTd = new Element('td',{'html':'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'}).injectInside(airTrIata);
			var airTdToIata = new Element('td',{'id':'airToIata','align':'center','html':'Destination:&nbsp;'+$('toIata').get('value')}).injectInside(airTrIata);
			
		}	
	}