
function BusSearch(busSearchFormName,inputObj){this.inputObj=typeof(inputObj)!='undefined'?inputObj:new Object();this.form=document[busSearchFormName];this.dateStr=this.inputObj['date'];this.from=this.inputObj['depCity'];this.to=this.inputObj['arrCity'];this.pax=this.inputObj['pax'];this.bustype=this.inputObj['bustype'];this.adult_male=this.inputObj['adultMale'];this.adult_female=this.inputObj['adultFemale'];this.child_male=this.inputObj['childMale'];this.child_female=this.inputObj['childFemale'];this.time_slab=this.inputObj['timeSlab'];this.service_class=this.inputObj['serviceClass'];this.seniorCitizen=this.inputObj['seniorCitizen'];this.populateDestination=function(){selectSource(this.form.bus_destination,this.form.bus_source[this.form.bus_source.selectedIndex].text)}
this.populateAirport=function(){if(this.form.airport_source.selectedIndex>0){selectAirport(this.form.airport_destination,this.form.airport_source[this.form.airport_source.selectedIndex].text)}}
this.populateKsrtc=function(){if(this.form.bus_source_ksrtc.selectedIndex>=0){selectKsrtc(this.form.bus_destination_ksrtc,this.form.bus_source_ksrtc[this.form.bus_source_ksrtc.selectedIndex].text)}}
this.changeOptions=function(){this.interCityDiv=YAHOO.util.Dom.getElementsByClassName('interCity','div',this.form)[0];this.airportDiv=YAHOO.util.Dom.getElementsByClassName('airportCity','div',this.form)[0];this.ksrtcDiv=YAHOO.util.Dom.getElementsByClassName('ksrtcCity','div',this.form)[0];this.busSearchDiv=YAHOO.util.Dom.getElementsByClassName('bus_search','div',this.form)[0];this.busSubmitDiv=YAHOO.util.Dom.getElementsByClassName('bussubmit','div',this.form)[0];this.buttonImg=YAHOO.util.Dom.getElementsByClassName('buttonImg','div',this.form)[0];if(this.form.bustype[0].checked){this.form.supplier.value=-1;this.interCityDiv.style.display='';this.ksrtcDiv.style.display='none';this.busSearchDiv.style.height='150px';this.busSubmitDiv.style.top='0px';this.buttonImg.tabIndex=5;}else{this.form.supplier.value=this.form.supplier_ksrtc.value;this.form.bus_destination_ksrtc.disabled='disabled';this.form.service_class_ksrtc.disabled='disabled';this.interCityDiv.style.display='none';this.ksrtcDiv.style.display='';this.busSearchDiv.style.height='280px';this.busSubmitDiv.style.top='143px';this.buttonImg.tabIndex=10;}}
this.selectPackageDiv=function(){this.bangaloreDiv=YAHOO.util.Dom.getElementsByClassName('package_section_bangalore','div',document.packageSearchForm)[0];this.delhiDiv=YAHOO.util.Dom.getElementsByClassName('package_section_delhi','div',document.packageSearchForm)[0];if(document.packageSearchForm.packagetype[0].checked){this.bangaloreDiv.style.display='';this.delhiDiv.style.display='none';}else{this.bangaloreDiv.style.display='none';this.delhiDiv.style.display='';}}
this.setSelectBoxByValue=function(formElement,value){for(var i=0;i<formElement.length;i++){if(formElement[i].value==value){formElement.value=value;formElement.selectedIndex=i;return i;}}
return-1;}
this.performKSRTCSearch=function(){var sourceKSRTC=getSelectBoxValue(this.form.bus_source_ksrtc);var destKSRTC=getSelectBoxValue(this.form.bus_destination_ksrtc);var serviceClass=getSelectBoxValue(this.form.service_class_ksrtc);var timeSlab=getSelectBoxValue(this.form.bus_timeslab);var adultMale=getSelectBoxValue(this.form.adult_male);var adultFemale=getSelectBoxValue(this.form.adult_female);var childMale=getSelectBoxValue(this.form.child_male);var childFemale=getSelectBoxValue(this.form.child_female);var totalAdults=parseInt(adultMale)+parseInt(adultFemale);var totalChilds=parseInt(childMale)+parseInt(childFemale);var maxPax=this.form.max_seats.value;var isSrCitizen=this.form.is_sr_citizen.value;if(sourceKSRTC==-1){alert("Please select a Source station");this.form.bus_source_ksrtc.focus();return false;}else if(destKSRTC==-1){alert("Please select a Destination station");this.form.bus_destination_ksrtc.focus();return false;}else if(sourceKSRTC==destKSRTC){alert("Source and Destinations need to be different");this.form.bus_destination_ksrtc.focus();return false;}else if(serviceClass==-1){alert("Please select a Service Class");this.form.service_class_ksrtc.focus();return false;}else if(timeSlab==-1){alert("Please select a Time Slab");this.form.bus_timeslab.focus();return false;}else if(totalAdults==0){alert("Please select atleast one Adult");this.form.adult_male.focus();return false;}else if(isSrCitizen!='N'){if(serviceClass!=21&&serviceClass!=27){alert("Senior citizen category is allowed only in Ordinary/Express/Karnataka Sarige and Rajahamsa Executive");this.form.adult_male.focus();return false;}
if((totalAdults+totalChilds)>1||totalChilds!=0){alert("To get Senior Citizen Concession, please book one Adult seat only");this.form.adult_male.focus();return false;}}else if((totalAdults+totalChilds)>maxPax){alert("Maximum seats allowed to book is: "+maxPax);this.form.adult_male.focus();return false;}else if(!this.isValidAdvDate()){alert("You can book only "+this.form.max_adv_booking_days.value+" days in advance.");return false;}
this.form.supplier.value=this.form.supplier_ksrtc.value;this.form.service_class.value=this.form.service_class_ksrtc.value;this.setSelectBoxByValue(this.form.bus_source,this.form.bus_source_ksrtc[this.form.bus_source_ksrtc.selectedIndex].value);this.populateDestination();this.setSelectBoxByValue(this.form.bus_destination,this.form.bus_destination_ksrtc[this.form.bus_destination_ksrtc.selectedIndex].value);return true;}
this.performSearch=function(){WAIT_DIV.setHeader("Searching For Buses")
var message;if(this.form.bustype){if(this.form.bustype[0].checked){message='<h2>'+this.form.bus_source[this.form.bus_source.selectedIndex].text+'<'+'/h2>'+'<div>to</div>'+'<h3>'+this.form.bus_destination[this.form.bus_destination.selectedIndex].text+'<'+'/h3>'+'On '+JS_UTIL.getDisplayDateLong(this.cal.fromCal.getSelectedDates()[0]);}else{if(this.performKSRTCSearch()){message='<h2>'+this.form.bus_source_ksrtc[this.form.bus_source_ksrtc.selectedIndex].text+'<'+'/h2>'+'<div>to</div>'+'<h3>'+this.form.bus_destination_ksrtc[this.form.bus_destination_ksrtc.selectedIndex].text+'<'+'/h3>'+'On '+JS_UTIL.getDisplayDateLong(this.cal.fromCal.getSelectedDates()[0]);}else{return false;}}}else{if(this.form.supplier.value==this.form.supplier_ksrtc.value){if(this.performKSRTCSearch()){message='<h2>'+this.form.bus_source_ksrtc[this.form.bus_source_ksrtc.selectedIndex].text+'<'+'/h2>'+'<div>to</div>'+'<h3>'+this.form.bus_destination_ksrtc[this.form.bus_destination_ksrtc.selectedIndex].text+'<'+'/h3>'+'On '+JS_UTIL.getDisplayDateLong(this.cal.fromCal.getSelectedDates()[0]);}else{return false;}}else{message='<h2>'+this.form.bus_source[this.form.bus_source.selectedIndex].text+'<'+'/h2>'+'<div>to</div>'+'<h3>'+this.form.bus_destination[this.form.bus_destination.selectedIndex].text+'<'+'/h3>'+'On '+JS_UTIL.getDisplayDateLong(this.cal.fromCal.getSelectedDates()[0]);}}
WAIT_DIV.setMessage(message);WAIT_DIV.show();YAHOO.util.Dom.addClass(WAIT_DIV.waitDiv,'via_bus');if(this.form.validation_result.value!='null')
this.form.validation_result.value=NOMINEE_VALIDATOR.getValidity(this.form.validation_result.value,"flightraja",this.inputObj['validityStrength']);this.form.submit();}
this.searchLink=function(source,destination,src,dest){JS_UTIL.setSelectBoxByValue(document.busSearchForm.bus_source,source);this.populateDestination();JS_UTIL.setSelectBoxByValue(document.busSearchForm.bus_destination,destination);WAIT_DIV.setHeader("Searching For Buses")
var message='<h2>'+src+'<'+'/h2>'+'<div>to</div>'+'<h3>'+dest+'<'+'/h3>'+'On '+JS_UTIL.getDisplayDateLong(this.cal.fromCal.getSelectedDates()[0]);WAIT_DIV.setMessage(message);WAIT_DIV.show();YAHOO.util.Dom.addClass(WAIT_DIV.waitDiv,'via_bus');if(this.form.validation_result.value!='null')
this.form.validation_result.value=NOMINEE_VALIDATOR.getValidity(this.form.validation_result.value,"flightraja",this.inputObj['validityStrength']);this.form.submit();}
this.performDayShiftSearch=function(shift){var selectedDate=this.cal.fromCal.getSelectedDates()[0];var newDate=new Date();newDate.setTime(selectedDate.getTime()+(86400000*shift));this.cal.fromCal.deselectAll();this.cal.fromCal.select(newDate);this.performSearch();}
this.changeKSRTCSource=function(){this.form.bus_destination_ksrtc.value=-1;this.form.service_class_ksrtc.length=0;this.form.service_class_ksrtc.disabled=false;oOption=document.createElement("OPTION");oOption.text="--select--";oOption.value=-1;this.form.service_class_ksrtc.add(oOption,null);if(getSelectBoxValue(this.form.bus_source_ksrtc)!=-1){this.form.bus_destination_ksrtc.disabled=false;this.form.bus_destination_ksrtc.focus();}else{this.form.bus_destination_ksrtc.disabled='disabled';this.form.service_class_ksrtc.disabled='disabled';}}
this.changeKSRTCDest=function(){sourceKSRTC=getSelectBoxValue(this.form.bus_source_ksrtc);destKSRTC=getSelectBoxValue(this.form.bus_destination_ksrtc);if(destKSRTC==-1){return false;this.form.service_class_ksrtc.disabled='disabled';}else if(sourceKSRTC==destKSRTC){alert("Source and Destinations cities Need to be different");this.form.bus_destination_ksrtc.value=-1;return false;}
loadKSRTCServiceClasses();}
this.changeServiceClass=function(){serviceClass=getSelectBoxValue(this.form.service_class_ksrtc);if(serviceClass!=-1){this.form.service_class.value=serviceClass;}}
this.stripZeros=function(inputStr)
{var result=inputStr
while(result.substring(0,1)=="0"){result=result.substring(1,result.length)}
return result};this.isValidAdvDate=function(){var one_day=1000*60*60*24;var today=new Date();today.setHours(0,0,0,0);var el=this.form.bus_date.value.split("/");el[0]=this.stripZeros(el[0]);el[1]=this.stripZeros(el[1]);el[2]=this.stripZeros(el[2]);resvDate=new Date();resvDate.setFullYear(parseInt(el[2]),parseInt(el[1])-1,parseInt(el[0]));var daysDiff=Math.ceil((resvDate.getTime()-today.getTime())/one_day);if(daysDiff>this.form.max_adv_booking_days.value){return false;}else{return true;}}
this.changeSrCitizen=function(event){for(i=0;i<3;i++){if(this.form.is_sr_citizen_rad[0].checked){this.form.is_sr_citizen.value="N";}else if(this.form.is_sr_citizen_rad[1].checked){this.form.is_sr_citizen.value="M";}else if(this.form.is_sr_citizen_rad[2].checked){this.form.is_sr_citizen.value="F";}}
if(this.form.is_sr_citizen.value=='M'){this.form.adult_male.value=1;this.form.adult_female.value=0;this.form.child_male.value=0;this.form.child_female.value=0;}else if(this.form.is_sr_citizen.value=='F'){this.form.adult_male.value=0;this.form.adult_female.value=1;this.form.child_male.value=0;this.form.child_female.value=0;}}
this.init=function(){if(typeof(this.form)=='undefined'){return;}
if(this.form.airport_source){YAHOO.util.Event.addListener(this.form.airport_source,'change',this.populateAirport,this,true);this.populateAirport();this.airportDiv=YAHOO.util.Dom.getElementsByClassName('airportCity','div',this.form)[0];this.airportDiv.style.display='none';}
YAHOO.util.Event.addListener(this.form.bus_source,'change',this.populateDestination,this,true);YAHOO.util.Event.addListener(this.form.bustype,'click',this.changeOptions,this,true);if(document.packageSearchForm!=null){YAHOO.util.Event.addListener(document.packageSearchForm.packagetype,'click',this.selectPackageDiv,this,true);}
this.populateDestination();if(this.form.bustype!=null){this.changeOptions();}
var calDefaults=new Object();var currDate=new Date();calDefaults['PAGES']=2;calDefaults['selected']=(currDate.getMonth()+1)+'/'+currDate.getDate()+'/'+currDate.getFullYear();var fromId=YAHOO.util.Dom.generateId(YAHOO.util.Dom.getElementsByClassName('calDiv','div',this.form)[0],"busCal");this.cal=new to_from_calendar(this.form.bus_date,fromId,YAHOO.util.Dom.getElementsByClassName('cal_display','a',this.form)[0],undefined,undefined,undefined,calDefaults);YAHOO.util.Event.addListener(this.form.bus_source_ksrtc,"change",this.changeKSRTCSource,this,true);YAHOO.util.Event.addListener(this.form.bus_destination_ksrtc,"change",this.changeKSRTCDest,this,true);YAHOO.util.Event.addListener(this.form.service_class_ksrtc,"change",this.changeServiceClass,this,true);YAHOO.util.Event.addListener(this.form.is_sr_citizen_rad,"click",this.changeSrCitizen,this,true);YAHOO.util.Event.addListener(this.form.searchBus,"click",this.performSearch,this,true);JS_UTIL.setSelectBoxByValue(document.busSearchForm.bus_source,this.from==""?"3581":this.from);this.populateDestination();JS_UTIL.setSelectBoxByValue(document.busSearchForm.bus_destination,this.to==""?"2060":this.to);document.busSearchForm.bus_date.value=this.dateStr;JS_UTIL.setSelectBoxByValue(document.busSearchForm.numBusPax,this.pax);if(this.form.supplier.value==this.form.supplier_ksrtc.value){JS_UTIL.setSelectBoxByValue(document.busSearchForm.bus_source_ksrtc,this.from);JS_UTIL.setSelectBoxByValue(document.busSearchForm.bus_destination_ksrtc,this.to);loadKSRTCServiceClasses();JS_UTIL.setSelectBoxByValue(document.busSearchForm.service_class_ksrtc,this.service_class);JS_UTIL.setSelectBoxByValue(document.busSearchForm.adult_male,this.adult_male);JS_UTIL.setSelectBoxByValue(document.busSearchForm.adult_female,this.adult_female);JS_UTIL.setSelectBoxByValue(document.busSearchForm.child_male,this.child_male);JS_UTIL.setSelectBoxByValue(document.busSearchForm.child_female,this.child_female);JS_UTIL.setSelectBoxByValue(document.busSearchForm.bus_timeslab,this.time_slab);setRadioButtonByValue(document.busSearchForm.is_sr_citizen_rad,this.seniorCitizen);}}
this.init();}