LMI.Airline=(function(){var Y=YAHOO.util;function validateForm(e){var errs=[],form=this;var fields=LMI.Element.getAll("input",form);LMI.Lang.forEach(fields,function(o){if(Y.Dom.hasClass(o,"req")&&!o.value.match(/\w+/)){errs.push(o.id.substring(3));}});if(Y.Dom.hasClass('at_departDate','erroring')||Y.Dom.hasClass('at_arriveDate','erroring')){Y.Event.stopEvent(e);}else if(errs.length){Y.Event.stopEvent(e);var msg="";LMI.Lang.forEach(errs,function(m){msg+='"'+LMI.Strings.getString("js.airline.form."+m)+'" field is required.\n';});alert(msg);}else{updateDates(e);window.setTimeout(function(){LMI.Omniture.formSubmitDirect(form)},0);}};function updateDates(){var date,pfx,dayInp,monthInp,depart=LMI.Element.getOne("#at_departDate"),arrive=LMI.Element.getOne("#at_arriveDate"),fields=[depart,arrive],months=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];LMI.Lang.forEach(fields,function(o){date=new Date(Date.parse(o.value));pfx=(o.name==="departDate"?"dep":"arr");dayInput=LMI.Element.getOne("#"+pfx+"D");monthInput=LMI.Element.getOne("#"+pfx+"M");monthInput.value=months[date.getMonth()]+" "+date.getFullYear();dayInput.value=date.getDate();});};LMI.Init.addFunction(function(){var form=LMI.Element.getOne("#airlineForm");if(form){Y.Event.on(form,"submit",validateForm);}
var pickUp=LMI.Element.getOne("#at_departDate"),dropOff=LMI.Element.getOne("#at_arriveDate");LMI.DatePicker.create(pickUp,dropOff);});})();LMI.DatePicker=(function(){var Y=YAHOO.util,W=YAHOO.widget,$E=Y.Event,$D=Y.Dom,_E=LMI.Element,$=_E.getOne,KEY_ESC=27;var cal,calCont,field1,field2,callback,field2UserSelected=false,active,defaultField1,defaultField2;var DatePicker={validate:function(){var msgs=[],start=new Date(Date.parse(field1.value)),end=new Date(Date.parse(field2.value));if(W.DateMath.before(end,start)){msgs.push(LMI.Strings.getString('js.datepicker.invalid.range'));}else if(!W.DateMath.after(end,start)){msgs.push(LMI.Strings.getString('js.datepicker.invalid.range'));}
if(msgs.length){DatePicker.displayErrors(msgs);$D.addClass(field1,'erroring');$D.addClass(field2,'erroring');return false;}else{DatePicker.clearErrors();$D.removeClass(field1,'erroring');$D.removeClass(field2,'erroring');return true;}},create:function(_field1,_field2,_callback){field1=_field1;field2=_field2;if(_callback){callback=_callback;}
calCont=$("#calCont");field1.setAttribute('readOnly',true);field2.setAttribute('readOnly',true);$E.on(field1,"focus",DatePicker.enableCalendar,'in');$E.on(field1,"keypress",DatePicker.typingHandler);$E.on(field2,"focus",DatePicker.enableCalendar,'out');$E.on(field2,"keypress",DatePicker.typingHandler);cal=new W.CalendarGroup('datePicker','calCont',{LOCALE_WEEKDAYS:'1char',HIDE_BLANK_WEEKS:true,mindate:field1.value,selected:field1.value,iframe:true});cal.render();cal.selectEvent.subscribe(DatePicker.selectHandler,cal,true);},getFormattedDate:function(date){var year=date.getYear();if(year<1000){year+=1900;}
return(date.getMonth()+1)+'/'+date.getDate()+'/'+year;},setfield1Date:function(date,userInput){var end,dateString;if(!date){date=defaultField1?new Date(Date.parse(defaultField1)):new Date();}
dateString=DatePicker.getFormattedDate(date);field1.value=dateString;defaultField1=dateString;if(userInput){if(!field2UserSelected){end=W.DateMath.add(date,W.DateMath.WEEK,1);DatePicker.setfield2Date(end);}}},setfield2Date:function(date,userInput){var dateString;if(!date){if(defaultField2){date=new Date(Date.parse(defaultField2));}else{date=W.DateMath.add(new Date(Date.parse(defaultField1)),W.DateMath.WEEK,1);}}
dateString=DatePicker.getFormattedDate(date);field2.value=dateString;defaultField2=dateString;if(userInput){field2UserSelected=true;}},selectHandler:function(){var date=this.getSelectedDates()[0];if(active===field1){DatePicker.setfield1Date(date,true);}else{DatePicker.setfield2Date(date,true);}
DatePicker.validate();DatePicker.disableCalendar();},typingHandler:function(e){var code=$E.getCharCode(e);if(code===KEY_ESC){DatePicker.disableCalendar();}},setMinDate:function(date){cal.cfg.setProperty('mindate',date);cal.render();},disableCalendar:function(e){$D.addClass(calCont,"hid");if(active){$D.removeClass(active,'act');active=null;$E.removeListener($('html'),'click',DatePicker.clickOff);}
if(callback){callback();}},enableCalendar:function(e,type){var calContFrame=$('#calCont iframe');if(active){DatePicker.disableCalendar();}
$D.removeClass(calCont,"hid");DatePicker.positionCalendar(e);if(calContFrame){calContFrame.style.display='none';calContFrame.style.display='block';}
if(type==='in'){active=field1;DatePicker.setMinDate(new Date());}else{active=field2;DatePicker.setMinDate(field1.value);}
cal.cfg.setProperty('selected',active.value);$E.on($('html'),'click',DatePicker.clickOff);if(callback){callback();}},positionCalendar:function(e){var t=$E.getTarget(e),xy=$D.getXY(t);xy[1]+=(t.offsetHeight-1);if(LMI.Browser.browser==='Safari'){xy[0]-=parseInt(Math.max(0,LMI.Window.getWidth()-document.body.offsetWidth)/2);xy[1]++;}
$D.setXY(calCont,xy);},clickOff:function(e){var root=$('#calCont'),t=$E.getTarget(e);if(!$D.isAncestor(root,t)&&t!==field1&&t!==field2){DatePicker.disableCalendar();}},destroy:function(){$E.purgeElement(calCont);calCont=cal=null;},clearErrors:function(){var err=LMI.Element.getOne('#errorCont');if(err){LMI.Element.destroy(err);}},displayErrors:function(msgs){var errCont=LMI.Element.create('div',null,{id:'errorCont'}),form=DOMNode.findAncestor(field1,"form");DatePicker.clearErrors();form.insertBefore(errCont,form.firstChild);LMI.Lang.forEach(msgs,function(m){LMI.Element.create('p',errCont,{textValue:m});});}};return DatePicker;})();LMI.AirportPicker=(function(){var dialog,Y=YAHOO.util;function clickHandler(e,input){input.value=dialog.getData().code[0];dialog.hide();Y.Event.stopEvent(e);};function closePicker(e){var elem=dialog.element,select=LMI.Element.getOne("select",elem);dialog.hide();Y.Event.removeListener(select,"click");if(e!=null){Y.Event.stopEvent(e);}};function getForAttribute(elem){return(elem.getAttribute("for")?elem.getAttribute("for"):(elem.getAttribute("htmlFor")?elem.getAttribute("htmlFor"):null));}
var Public={findCode:function(e){var lbl=DOMNode.findAncestor(this,"label"),elem=dialog.element,select=LMI.Element.getOne("select",elem),inp=LMI.Element.getOne("#"+getForAttribute(lbl));Y.Event.removeListener(select,"click");Y.Event.on(select,"click",clickHandler,inp);dialog.show();Y.Event.stopEvent(e);}};LMI.LinkBehavior.add("findCode",Public.findCode);LMI.LinkBehavior.add("airportPickerClose",closePicker);LMI.Init.addFunction(function(){dialog=new YAHOO.widget.Dialog("airportPicker",{width:"400px",fixedcenter:true,visible:false,postmethod:"manual",monitorresize:false});Y.Dom.setStyle(LMI.Element.getOne("#airportPicker"),"display","block");dialog.render();});return Public;})();