
String.prototype.trim=function(){return this.replace(/^\s*|\s*$/g,'');}
String.prototype.ltrim=function(){return this.replace(/^\s*/g,'');}
String.prototype.rtrim=function(){return this.replace(/\s*$/g,'');}
var isPackage=null;var selectedLinkId=null;function setDealsType(linkid){isPackage='packagesForFlights';selectedLinkId=linkid;}
function clearDealsType(){isPackage=null;selectedLinkId=null;}
function FIC_checkForm(e){var errs=new Array();if(typeof(e)=="string"){e=xGetElementById(e);if(!e){return true;}}
var elm=e;if(!e.nodeName){elm=(e.srcElement)?e.srcElement:e.target;}
if(elm.nodeName.toLowerCase()!='form'){elm=searchUp(elm,'form');}
var all_valid=true;var f_in=elm.getElementsByTagName('input');var f_sl=elm.getElementsByTagName('select');var f_ta=elm.getElementsByTagName('textarea');for(i=0;i<f_in.length;i++){if(f_in[i].type.toLowerCase()!='submit'&&f_in[i].type.toLowerCase()!='button'&&f_in[i].type.toLowerCase()!='hidden'){if(isVisible(f_in[i])){var cname=' '+f_in[i].className.replace(/^\s*|\s*$/g,'')+' ';cname=cname.toLowerCase();var inv=f_in[i].value.trim();var t=f_in[i].type.toLowerCase();var cext='';if(t=='text'||t=='password'){var valid=FIC_checkField(cname,f_in[i]);}else if(t=='radio'||t=='checkbox'){var valid=FIC_checkRadCbx(cname,f_in[i],f_in);cext='-cr';}else{var valid=true;}
if(valid){removeClassName(f_in[i],'validation-failed'+cext);addClassName(f_in[i],'validation-passed'+cext);}else{removeClassName(f_in[i],'validation-passed'+cext);addClassName(f_in[i],'validation-failed'+cext);if(f_in[i].getAttribute('title')){errs[errs.length]=f_in[i].getAttribute('title');}
all_valid=false;}}}}
for(i=0;i<f_ta.length;i++){if(isVisible(f_ta[i])){var cname=' '+f_ta[i].className.replace(/^\s*|\s*$/g,'')+' ';cname=cname.toLowerCase();var valid=FIC_checkField(cname,f_ta[i]);if(valid){removeClassName(f_ta[i],'validation-failed');addClassName(f_ta[i],'validation-passed');}else{removeClassName(f_ta[i],'validation-passed');addClassName(f_ta[i],'validation-failed');if(f_ta[i].getAttribute('title')){errs[errs.length]=f_ta[i].getAttribute('title');}
all_valid=false;}}}
for(i=0;i<f_sl.length;i++){if(isVisible(f_sl[i])){var cname=' '+f_sl[i].className.replace(/^\s*|\s*$/g,'')+' ';cname=cname.toLowerCase();var valid=FIC_checkSel(cname,f_sl[i]);if(valid){removeClassName(f_sl[i],'validation-failed-sel');addClassName(f_sl[i],'validation-passed-sel');}else{removeClassName(f_sl[i],'validation-passed-sel');addClassName(f_sl[i],'validation-failed-sel');if(f_sl[i].getAttribute('title')){errs[errs.length]=f_sl[i].getAttribute('title');}
all_valid=false;}}}
if(!all_valid){if(errs.length>0){alert("We have found the following error(s):\n\n  * "+errs.join("\n  * ")+"\n\nPlease check the fields and try again");}else{alert('Some required values are not correct. Please check the items in yellow.');}
YAHOO.util.Event.stopEvent(e);}else{var target=null;if(/MSIE (\d+\.\d+);/.test(navigator.userAgent)){target=e.srcElement.id;}else{target=e.target.id;}
if(target=='airForm'&&isValidDates('flights','dateFlOut','dateFlIn')){submitFlight(document.airForm);}
if(target=='airFormCompareRates'&&isValidDates('flights','dateFlOut','dateFlIn')){if(isPackage!=null){submitPackagesForFlights(document.airFormCompareRates,isPackage,selectedLinkId);}else{submitFlight(document.airFormCompareRates);}}
if(target=='hotelForm'&&isValidDates('hotels','dateHoIn','dateHoOut')){submitHotel(document.hotelForm);}
if(target=='carForm'&&isValidDates('cars','dateCarIn','dateCarOut')){submitCar(document.carForm);}
if(target=='vacationForm'&&isValidDates('vacation','dateVacIn','dateVacOut')){submitVacation(document.vacationForm);}
if(target=='awaybotAirForm'&&isValidDates('flights','awaybotDateFlOut','awaybotDateFlIn')){submitAwaybotFlight(document.awaybotAirForm);}
if(target=='awaybotHotelForm'&&isValidDates('hotels','awaybotDateHoIn','awaybotDateHoOut')){submitAwaybotHotel(document.awaybotHotelForm);}
if(target=='packagesFormCompareRates'&&isValidDates('packages','datePkOut','datePkIn')){submitPackage(document.packagesFormCompareRates);}
if(target=='cruisesFormCompareRates'){submitCruise(document.cruisesFormCompareRates);}}}
function FIC_checkField(c,e){var valid=true;var t=e.value.trim();if(c.indexOf(' required ')!=-1&&t.length==0){valid=false;}
if(c.indexOf(' required ')!=-1){var m=e.getAttribute('minlength');if(m&&Math.abs(m)>0){if(e.value.length<Math.abs(m)){valid=false;}}}
if(c.indexOf(' validate-number ')!=-1&&isNaN(t)&&t.match(/[^\d]/)){valid=false;}else if(c.indexOf(' validate-digits ')!=-1&&t.replace(/ /,'').match(/[^\d]/)){valid=false;}else if(c.indexOf(' validate-alpha ')!=-1&&!t.match(/^[a-zA-Z]+$/)){valid=false;}else if(c.indexOf(' validate-alphanum ')!=-1&&t.match(/\W/)){valid=false;}else if(c.indexOf(' validate-date ')!=-1){var d=new date(t);if(isNaN(d)){valid=false;}}else if(c.indexOf(' validate-email ')!=-1&&!t.match(/\w{1,}[@][\w\-]{1,}([.]([\w\-]{1,})){1,3}$/)){valid=false;if(c.indexOf(' required ')==-1&&t.length==0){valid=true;}}else if(c.indexOf(' validate-url ')!=-1&&!t.match(/^(http|https|ftp):\/\/(([A-Z0-9][A-Z0-9_-]*)(\.[A-Z0-9][A-Z0-9_-]*)+)(:(\d+))?\/?/i)){valid=false;}else if(c.indexOf(' validate-date-au ')!=-1&&!t.match(/^(\d{1}|\d{2})\/(\d{1}|\d{2})\/(\d{2}|\d{4})$/)){valid=false;}else if(c.indexOf(' validate-currency-dollar ')!=-1&&!t.match(/^\$?\-?([1-9]{1}[0-9]{0,2}(\,[0-9]{3})*(\.[0-9]{0,2})?|[1-9]{1}\d*(\.[0-9]{0,2})?|0(\.[0-9]{0,2})?|(\.[0-9]{1,2})?)$/)){valid=false;}else if(c.indexOf(' validate-regex ')!=-1){var r=RegExp(e.getAttribute('regex'));if(r&&!t.match(r)){valid=false;}}else if(c.indexOf(' validate-date-au ')!=-1&&t.match(/^(\d{1}|\d{2})\/(\d{1}|\d{2})\/(\d{2}|\d{4})$/)){var currDate=new Date();var currDateWthoutTimeStamp=(currDate.getMonth()+1)+'/'+currDate.getDate()+'/'+currDate.getFullYear();var currDateUpdated=new Date(currDateWthoutTimeStamp);t=properYearFormat(t);var temp=new Array();temp=t.split('/');var months=temp[0];var days=temp[1];var years=temp[2];if(months>12){valid=false;}else if(((months==1)||(months==3)||(months==5)||(months==7)||(months==8)||(months==10)||(months==12))&&(days>31)){valid=false;}else if(((months==4)||(months==6)||(months==9)||(months==11))&&(days>30)){valid=false;}else if((months==2)&&(years%4==0)&&(days>29)){valid=false;}else if((months==2)&&(years%4!=0)&&(days>28)){valid=false;}else{var depDate=new Date(t);if(depDate=='Invalid Date'){valid=false;}else{if(depDate.getTime()<currDateUpdated.getTime()){valid=false;}}}}
return valid;}
function isValidDates(target,depElemId,retElemId){var depDt=new Date(properYearFormat(document.getElementById(depElemId).value));var retDt=new Date(properYearFormat(document.getElementById(retElemId).value));var currDate=new Date();var currDateWthoutTimeStamp=(currDate.getMonth()+1)+'/'+currDate.getDate()+'/'+currDate.getFullYear();var currDateUpdated=new Date(currDateWthoutTimeStamp);var one_day=1000*60*60*24;if(retDt<depDt){removeClassName(depElemId,'validation-passed');addClassName(depElemId,'validation-failed');removeClassName(retElemId,'validation-passed');addClassName(retElemId,'validation-failed');if(target=='flights'){alert('The departure date is later than the return date. Please enter correct values.');}
if(target=='hotels'){alert('The check in date is later than the check out date. Please enter correct values.');}
if(target=='cars'){alert('The pick up date is later than the drop off date. Please enter correct values.');}
if(target=='vacation'){alert('The Available From date is later than the Available To date. Please enter correct values.');}
if(target=='packages'){alert('The departure date is later than the return date. Please enter correct values.');}
return false;}else{if(target=='cars'){var pickupTime=parseFloat(document.getElementById('pickupTime').value);var dropoffTime=parseFloat(document.getElementById('returnTime').value);if(retDt.getTime()==depDt.getTime()&&dropoffTime<pickupTime){removeClassName('pickupTime','validation-passed-sel');addClassName('pickupTime','validation-failed-sel');removeClassName('returnTime','validation-passed-sel');addClassName('returnTime','validation-failed-sel');alert('The pick up time is later than the drop off time. Please enter correct values.');return false;}}}
if((depDt.getTime()-currDateUpdated.getTime())/one_day>330){removeClassName(depElemId,'validation-passed');addClassName(depElemId,'validation-failed');if(target=='flights'){alert('Flights are available for up to 330 days in advance. The date you entered exceeds this number of days.');}
if(target=='hotels'){alert('Hotels are available for up to 330 days in advance. The date you entered exceeds this number of days.');}
if(target=='cars'){alert('Cars are available for up to 330 days in advance. The date you entered exceeds this number of days.');}
if(target=='vacation'){alert('Vacations are available for up to 330 days in advance. The date you entered exceeds this number of days.');}
if(target=='packages'){alert('Packages are available for up to 330 days in advance. The date you entered exceeds this number of days.');}
return false;}
if((retDt.getTime()-currDateUpdated.getTime())/one_day>330){removeClassName(retElemId,'validation-passed');addClassName(retElemId,'validation-failed');if(target=='flights'){alert('Flights are available for up to 330 days in advance. The date you entered exceeds this number of days.');}
if(target=='hotels'){alert('Hotels are available for up to 330 days in advance. The date you entered exceeds this number of days.');}
if(target=='cars'){alert('Cars are available for up to 330 days in advance. The date you entered exceeds this number of days.');}
if(target=='vacation'){alert('Vacations are available for up to 330 days in advance. The date you entered exceeds this number of days.');}
if(target=='packages'){alert('Packages are available for up to 330 days in advance. The date you entered exceeds this number of days.');}
return false;}
return true;}
function FIC_checkRadCbx(c,e,f){var valid=true;if(c.indexOf(' validate-one-required ')!=-1){valid=false;for(var i=0;i<f.length;i++){if(f[i].name.toLowerCase()==e.name.toLowerCase()&&f[i].checked){valid=true;break;}}}
return valid;}
function FIC_checkSel(c,e){var valid=true;if(c.indexOf(' validate-not-first ')!=-1&&e.selectedIndex==0){valid=false;}else if(c.indexOf(' validate-not-empty ')!=-1&&e.options[e.selectedIndex].value.length==0){valid=false;}
return valid;}
function addClassName(e,t){if(typeof e=="string"){e=xGetElementById(e);}
var ec=' '+e.className.replace(/^\s*|\s*$/g,'')+' ';var nc=ec;t=t.replace(/^\s*|\s*$/g,'');if(ec.indexOf(' '+t+' ')==-1){nc=ec+t;}
e.className=nc.replace(/^\s*|\s*$/g,'');return true;}
function removeClassName(e,t){if(typeof e=="string"){e=xGetElementById(e);}
var ec=' '+e.className.replace(/^\s*|\s*$/g,'')+' ';var nc=ec;t=t.replace(/^\s*|\s*$/g,'');if(ec.indexOf(' '+t+' ')!=-1){nc=ec.replace(' '+t.replace(/^\s*|\s*$/g,'')+' ',' ');}
e.className=nc.replace(/^\s*|\s*$/g,'');return true;}
function attachToForms(e){if(document.airFormCompareRates!=null&&document.airFormCompareRates!='undefined'){var inDate=new Date();inDate.setDate(inDate.getDate()+7);var outDate=new Date();outDate.setDate(outDate.getDate()+14);var strInDate=formatDate(inDate,'MM/dd/yyyy');var strOutDate=formatDate(outDate,'MM/dd/yyyy');if(readCookie("cookie_crl_provider_american")=="false"){hideProvider();}else{showProvider();}
var airFromCookie=readCookie("cookie_crl_air_from");if(airFromCookie!=null&&(document.airFormCompareRates.airFrom.value==null||document.airFormCompareRates.airFrom.value=='')){document.airFormCompareRates.airFrom.value=airFromCookie;}
var airFromAirportCodeCookie=readCookie("cookie_crl_air_from_airport_code");if(airFromAirportCodeCookie!=null&&(document.airFormCompareRates.airFrom.value==null||document.airFormCompareRates.airFrom.value=='')){document.getElementById("airPortFromCode").value=airFromAirportCodeCookie;}
var currdate=new Date();}
var frms=document.getElementsByTagName('form');for(var i=0;i<frms.length;i++){YAHOO.util.Event.addListener(frms[i],"submit",FIC_checkForm);}}
function createCookie(name,value,days){if(days){var date=new Date();date.setTime(date.getTime()+(days*24*60*60*1000));var expires="; expires="+date.toGMTString();}
else var expires="";document.cookie=name+"="+value+expires+"; path=/";}
function readCookie(name){var nameEQ=name+"=";var ca=document.cookie.split(';');for(var i=0;i<ca.length;i++){var c=ca[i];while(c.charAt(0)==' ')c=c.substring(1,c.length);if(c.indexOf(nameEQ)==0)return c.substring(nameEQ.length,c.length);}
return null;}
function isVisible(e){if(typeof e=="string"){e=xGetElementById(e);}
while(e.nodeName.toLowerCase()!='body'&&e.style.display.toLowerCase()!='none'&&e.style.visibility.toLowerCase()!='hidden'){e=e.parentNode;}
if(e.nodeName.toLowerCase()=='body'){return true;}else{return false;}}
function searchUp(elm,findElm,debug){if(typeof(elm)=='string'){elm=xGetElementById(elm);}
while(elm&&elm.parentNode&&elm.nodeName.toLowerCase()!=findElm&&elm.nodeName.toLowerCase()!='body'){elm=elm.parentNode;}
return elm;}
function xGetElementById(e){if(typeof(e)!='string')return e;if(document.getElementById)e=document.getElementById(e);else if(document.all)e=document.all[e];else e=null;return e;}
YAHOO.util.Event.addListener(window,"load",attachToForms);