var alreadyLoaded=0,alreadyChanged=0,xmlSrcDestPair,xmlTopCities,xmlTopDestinations;if(document.implementation&&document.implementation.createDocument)
{var xmlhttp=new window.XMLHttpRequest();xmlhttp.open("GET","/bus-tickets/resources/Routes.xml",false);xmlhttp.send(null);xmlSrcDestPair=xmlhttp.responseXML.documentElement;xmlhttp.open("GET","/bus-tickets/resources/Top_Cities.xml",false);xmlhttp.send(null);xmlTopCities=xmlhttp.responseXML.documentElement;}
function loadSrcDestXml(cityCode){if(window.ActiveXObject){xmlSrcDestPair=new ActiveXObject("Microsoft.XMLDOM");xmlSrcDestPair.async="false";xmlSrcDestPair.onreadystatechange=verifySrcDestPair;xmlSrcDestPair.load('/bus-tickets/resources/Routes.xml');}
alreadyLoaded=1;}
function loadcity(cityNameCode,destDropDownId){var browserName=navigator.appName;var commaIndex=cityNameCode.indexOf(",");var originalDestCityNameCode=document.getElementById("seldestination").value;if(commaIndex!=-1){var cityCode=cityNameCode.substring(0,commaIndex);}
if(cityNameCode=='0'){var cityDefaultList='<select name=\"arrival\" Style=\"width: 130px; font-size: 12px; display: block;\" tabindex=\"4\" id=\"'+destDropDownId+'\">';cityDefaultList+='<option value="0">----------------------</option>';cityDefaultList+='</select>';document.getElementById("displaycitylist").innerHTML=cityDefaultList;return true;}else{if(alreadyLoaded==0){loadSrcDestXml(cityCode);}
if(browserName=="Microsoft Internet Explorer"){loadCityDestIE(originalDestCityNameCode,cityCode,destDropDownId);}else
loadCityDestFireFox(originalDestCityNameCode,cityCode,destDropDownId);return true;}}
function loadCityDestFireFox(origDest,cityCode,destDropDownId){var srcDestNodes=xmlSrcDestPair.getElementsByTagName("sd");var cityNodes=xmlSrcDestPair.getElementsByTagName("c");for(i=0;i<srcDestNodes.length;i++){xmlCode=srcDestNodes[i].getAttribute("oc");if(xmlCode==cityCode){var citylist='<select name=\"arrival\" Style=\"width: 130px; font-size: 12px; display: block;\" tabindex=\"4\" id=\"'+destDropDownId+'\">';var nameArr=new Array();var codeArr=new Array();var rawNameArr=new Array();var destins=srcDestNodes[i].getAttribute("d").split(',');for(j=0;j<destins.length;j++){var origId=destins[j];if(cityNodes[origId]!=null){var codeName=cityNodes[origId].getAttribute("cn").split(',');var destN=codeName[1];var destC=codeName[0];nameArr[j]=destN;rawNameArr[j]=destN;codeArr[j]=destC;}}
citylist+=generateDestListFireFox(nameArr,codeArr,rawNameArr,'2');citylist+='</select>';break;}}
if(citylist==null){var blankList='<select name=\"arrival\" Style=\"width: 130px; font-size: 12px; display: block;\" tabindex=\"4\" id=\"'+destDropDownId+'\">';blankList+='<option value="0">----------------------</option>';blankList+='</select>';document.getElementById("displaycitylist").innerHTML=blankList;}else{document.getElementById("displaycitylist").innerHTML=citylist;if(origDest!=""&&origDest!=null&&origDest!='0'){document.getElementById("seldestination").value=origDest;}}}
function loadCityDestIE(origDest,cityCode,destDropDownId){var srcDestNodes=xmlSrcDestPair.getElementsByTagName("sd");var cityNodes=xmlSrcDestPair.getElementsByTagName("c");for(i=0;i<srcDestNodes.length;i++){xmlCode=srcDestNodes[i].getAttribute("oc");if(xmlCode==cityCode){var citylist='<select name=\"arrival\" Style=\"width: 130px; font-size: 12px; display: block;\" tabindex=\"4\" id=\"'+destDropDownId+'\">';var nameArr=new Array();var codeArr=new Array();var rawNameArr=new Array();var destins=srcDestNodes[i].getAttribute("d").split(',');for(j=0;j<destins.length;j++){var origId=destins[j];if(cityNodes[origId]!=null){var codeName=cityNodes[origId].getAttribute("cn").split(',');var destN=codeName[1];var destC=codeName[0];nameArr[j]=destN;rawNameArr[j]=destN;codeArr[j]=destC;}}
citylist+=generateDestList(nameArr,codeArr,rawNameArr,'2');citylist+='</select>';break;}}
if(citylist==null){var blankList='<select name=\"arrival\" Style=\"width: 130px; font-size: 12px; display: block;\" tabindex=\"4\" id=\"'+destDropDownId+'\">';blankList+='<option value="0">----------------------</option>';blankList+='</select>';document.getElementById("displaycitylist").innerHTML=blankList;}else{document.getElementById("displaycitylist").innerHTML=citylist;for(i=0;i<document.getElementById("seldestination").options.length;i++){if(document.getElementById("seldestination").options[i].value==origDest&&origDest!='0'){document.getElementById("seldestination").value=origDest;}}}}
function verifySrcDestPair(){if(xmlSrcDestPair.readyState!=4){return false;}}
function verifyTopCitiesXML()
{if(xmlTopCities.readyState!=4){return false;}}
function verifyTopDestinationXML(){if(xmlTopDestinations.readyState!=4){return false;}}
function generateDestList(nameArr,codeArr,arrOrig,listFlag){var citylist="",topDest="",topSource="",topDestN,topSrcN;nameArr.sort();if(xmlTopCities!=null){topDestN=xmlTopCities.getElementsByTagName("TopDestinations")[0].childNodes;}
if(xmlTopCities!=null){topSrcN=xmlTopCities.getElementsByTagName("TopCities")[0].childNodes;}
var topDestNo=0;var destNo=0;for(var i=0;i<nameArr.length;i++){var destN=nameArr[i];var destC="";for(var j=0;j<arrOrig.length;j++){if(arrOrig[j]==destN){destC=codeArr[j];break;}}
if(listFlag=='2'&&topDestN!=null){for(k=0;k<topDestN.length;k++){var nameXml=topDestN[k].getAttribute("n");if(nameXml==destN){topDestNo++;topDest+='<option value="'+destC+','+destN+'">'+nameXml+'</option>';}
if(topDestNo==10){break;}}}
if(listFlag=='1'&&topSrcN!=null){for(n=0;n<topSrcN.length;n++){var nameXml=topSrcN[n].getAttribute("n");if(nameXml==destN){topSource+='<option value="'+destC+','+destN+'">'+destN+'</option>';}}}
if(destN!=""&&destN!=null){destNo++;citylist+='<option value="'+destC+','+destN+'">'+destN+'</option>';}}
topDest+='<OPTGROUP label=\"more cities\"></OPTGROUP>'+'<option value=\"0\">----------------------</option>';topDest+=citylist;if(listFlag=='2'&&destNo>10&&topDestN!=null)
return topDest;else if(listFlag=='2'){topSource+=citylist;return topSource;}else{topSource+='<OPTGROUP label=\"more cities\"></OPTGROUP>'+'<option value=\"0\">----------------------</option>';topSource+=citylist;return topSource;}}
function generateDestListFireFox(nameArr,codeArr,arrOrig,listFlag){var citylist="",topDest="",topSource="",topDestN,topSrcN;nameArr.sort();if(xmlTopCities!=null){topDestN=xmlTopCities.getElementsByTagName("TopDestinations")[0].childNodes;}
if(xmlTopCities!=null){topSrcN=xmlTopCities.getElementsByTagName("TopCities")[0].childNodes;}
var topDestNo=0;var destNo=0;for(var i=0;i<nameArr.length;i++){var destN=nameArr[i];var destC="";for(var j=0;j<arrOrig.length;j++){if(arrOrig[j]==destN){destC=codeArr[j];break;}}
if(listFlag=='2'&&topDestN!=null){for(k=1;k<topDestN.length;k+=2){var nameXml=topDestN[k].getAttribute("n");if(nameXml==destN){topDestNo++;topDest+='<option value="'+destC+','
+destN+'">'+nameXml
+'</option>';}
if(topDestNo==10){break;}}}
if(listFlag=='1'&&topSrcN!=null){for(n=1;n<topSrcN.length;n+=2){var nameXml=topSrcN[n].getAttribute("n");if(nameXml==destN){topSource+='<option value="'+destC+','+destN+'">'
+destN+'</option>';}}}
if(destN!=""&&destN!=null){destNo++;citylist+='<option value="'+destC+','
+destN+'">'+destN+'</option>';}}
topDest+='<OPTGROUP label=\"more cities\"></OPTGROUP>'+'<option value=\"0\">----------------------</option>';topDest+=citylist;if(listFlag=='2'&&destNo>10&&topDestN!=null&&topDestNo>0)
return topDest;else if(listFlag=='2'){topSource+=citylist;return topSource;}else{topSource+='<OPTGROUP label=\"more cities\"></OPTGROUP>'+'<option value=\"0\">----------------------</option>';topSource+=citylist;return topSource;}}
function generateSourceList(selectedCity){var browserName=navigator.appName;if(window.ActiveXObject&&alreadyChanged!=1){xmlSrcDestPair=new ActiveXObject("Microsoft.XMLDOM");xmlTopCities=new ActiveXObject("Microsoft.XMLDOM");xmlSrcDestPair.async="false";xmlTopCities.async="false";xmlSrcDestPair.onreadystatechange=verifySrcDestPair;xmlTopCities.onreadystatechange=verifyTopCitiesXML;xmlSrcDestPair.load('/bus-tickets/resources/Routes.xml');xmlTopCities.load('/bus-tickets/resources/Top_Cities.xml');}
if(alreadyChanged==1)
return true;else
{alreadyChanged=1;}
var srcDestNodes=xmlSrcDestPair.getElementsByTagName("sd");var cityNodes=xmlSrcDestPair.getElementsByTagName("c");var cityList='<select name=\"departure\" Style=\"width: 130px; font-size: 12px; display: block;\" tabindex=\"3\" id=\"selorigin\" onchange=\"loadcity(this.value,\'seldestination\')\">';var name_arr=new Array();var code_arr=new Array();var arrOrig=new Array();for(i=0;i<=srcDestNodes.length-1;i++){var origId=srcDestNodes[i].getAttribute("o");if(cityNodes[origId]!=null){var codeName=cityNodes[origId].getAttribute("cn");var codeNameArr=codeName.split(',');if(codeName!=null&&codeName!=""){name_arr[i]=codeNameArr[1];arrOrig[i]=codeNameArr[1];code_arr[i]=codeNameArr[0];}}}
if(browserName=="Microsoft Internet Explorer"){cityList+=generateDestList(name_arr,code_arr,arrOrig,'1');}else
cityList+=generateDestListFireFox(name_arr,code_arr,arrOrig,'1');document.getElementById("departureCityList").innerHTML=cityList;for(var i=0;i<document.getElementById("selorigin").options.length;i++){if(document.getElementById("selorigin").options[i].value==selectedCity)
document.getElementById("selorigin").value=selectedCity;}
return true;}

