// ==================================================
// Name : GetXmlHttpObject
// Desc   : Get Xml Http Object
// ==================================================
function GetXmlHttpObject()
{ 
	var objXmlHttp=null;

	if (navigator.userAgent.indexOf("Opera") >= 0)
	{
		alert("The web site doesn't work in Opera");
		return ;
	}
	
	if (navigator.userAgent.indexOf("MSIE") >= 0)
	{ 
		var strName = "Msxml2.XMLHTTP";
		if (navigator.appVersion.indexOf("MSIE 5.5") >= 0)
		{
			strName = "Microsoft.XMLHTTP";
		} 
		try
		{ 
			objXmlHttp = new ActiveXObject(strName);
			return objXmlHttp;
		} 
		catch(e)
		{ 
			alert("Error. Scripting for ActiveX might be disabled");
			return;
		} 
	}
	
	if (navigator.userAgent.indexOf("Mozilla") >= 0)
	{
		objXmlHttp = new XMLHttpRequest();
		return objXmlHttp;
	}
}


function getPkgSummaryPrice(siteroot, pkgid, srvkey, pkgDeptDate, roomNo) {
	var strURL;			
		
		var xmlHttp = GetXmlHttpObject();			
		strURL = siteroot + "include/ajax.asp?type=pkgprice&pkgid=" + pkgid + "&srvkey=" + srvkey + "&pkgDepDate=" + pkgDeptDate

		xmlHttp.onreadystatechange = function() { returnPkgSummaryPrice(xmlHttp, roomNo); };
		xmlHttp.open("GET", strURL , false);
		xmlHttp.send(null);			
}	

function returnPkgSummaryPrice(xmlHttp, roomNo)
{
		if (xmlHttp.readyState == 4) {
		    if (xmlHttp.status == 200) {
		       var xmldoc = xmlHttp.responseXML;
			   var i = 0;
			   
				for (i=0; i<xmldoc.getElementsByTagName('SlgPrice').length;i++) {						
						eval("frmMain.hSlgPrice_" + roomNo + ".value = xmldoc.getElementsByTagName('SlgPrice')[i].firstChild.data");
						eval("frmMain.hSlgCost_" + roomNo + ".value = xmldoc.getElementsByTagName('SlgCost')[i].firstChild.data");
						eval("frmMain.hTwnPrice_" + roomNo + ".value = xmldoc.getElementsByTagName('TwnPrice')[i].firstChild.data");
						eval("frmMain.hTwnCost_" + roomNo + ".value = xmldoc.getElementsByTagName('TwnCost')[i].firstChild.data");
						eval("frmMain.hChdTwnPrice_" + roomNo + ".value = xmldoc.getElementsByTagName('ChdTwnPrice')[i].firstChild.data");
						eval("frmMain.hChdTwnCost_" + roomNo + ".value = xmldoc.getElementsByTagName('ChdTwnCost')[i].firstChild.data");
						eval("frmMain.hDblPrice_" + roomNo + ".value = xmldoc.getElementsByTagName('DblPrice')[i].firstChild.data");
						eval("frmMain.hDblCost_" + roomNo + ".value = xmldoc.getElementsByTagName('DblCost')[i].firstChild.data");
						eval("frmMain.hChdDblPrice_" + roomNo + ".value = xmldoc.getElementsByTagName('ChdDblPrice')[i].firstChild.data");
						eval("frmMain.hChdDblCost_" + roomNo + ".value = xmldoc.getElementsByTagName('ChdDblCost')[i].firstChild.data");
						eval("frmMain.hTriPrice_" + roomNo + ".value = xmldoc.getElementsByTagName('TriPrice')[i].firstChild.data");
						eval("frmMain.hTriCost_" + roomNo + ".value = xmldoc.getElementsByTagName('TriCost')[i].firstChild.data");
						eval("frmMain.hChdTriPrice_" + roomNo + ".value = xmldoc.getElementsByTagName('ChdTriPrice')[i].firstChild.data");
						eval("frmMain.hChdTriCost_" + roomNo + ".value = xmldoc.getElementsByTagName('ChdTriCost')[i].firstChild.data");
						
						objPrice = document.getElementById("spTwnPrice" + roomNo);						
						if (objPrice != null && typeof objPrice != "undefined") 
							objPrice.innerHTML = "$" + FormatMoney(xmldoc.getElementsByTagName('TwnPrice')[i].firstChild.data);
						
						objPrice = document.getElementById("spSlgPrice" + roomNo);						
						if (objPrice != null && typeof objPrice != "undefined") 
							objPrice.innerHTML = "$" + FormatMoney(xmldoc.getElementsByTagName('SlgPrice')[i].firstChild.data);
						
						objPrice = document.getElementById("spDblPrice" + roomNo);
						if (objPrice != null && typeof objPrice != "undefined") 
							objPrice.innerHTML = "$" + FormatMoney(xmldoc.getElementsByTagName('DblPrice')[i].firstChild.data);
						
						objPrice = document.getElementById("spTriPrice" + roomNo);
						if (objPrice != null && typeof objPrice != "undefined") 
							objPrice.innerHTML = "$" + FormatMoney(xmldoc.getElementsByTagName('TriPrice')[i].firstChild.data);
						
				}								
		    } else {       
		        //alert('There was a problem with the request.' + xmlHttp.status);       
		    }       
		}  
}

function getCity(siteroot, srvType, selCity, defaultVal, lang) {
	var strURL;			

		var xmlHttp = GetXmlHttpObject();			
		strURL = siteroot + "include/ajax.asp?type=city&srvtype=" + srvType + "&lang=" + lang

		xmlHttp.onreadystatechange = function() { returnCity(xmlHttp, selCity, defaultVal, lang); };
		xmlHttp.open("GET", strURL , true);

		xmlHttp.send(null);			

}	

function returnCity(xmlHttp, selCity, defaultVal, lang) 								
{

		if (xmlHttp.readyState == 4) {
		    if (xmlHttp.status == 200) {
		       var xmldoc = xmlHttp.responseXML;     		       

				while (selCity.length > 0) 
					selCity.remove(0);

				var y=document.createElement("option");						
				y.text="-"
				y.value="";

				try {
					selCity.add(y, null);
				}
				catch(ex) {
					selCity.add(y);
				}

				var tmpChi, tmpEng, cityCode
				
				for (i=0; i<xmldoc.getElementsByTagName('citycode').length;i++) {
						cityCode = xmldoc.getElementsByTagName('citycode')[i].firstChild.data;
						try {
							tmpEng = xmldoc.getElementsByTagName('city_eng')[i].firstChild.data;
						}
						catch(ex) {
							tmpEng = "";
						}					
						try {
							tmpChi = xmldoc.getElementsByTagName('city_chi')[i].firstChild.data;
						}
						catch(ex) {
							tmpChi = "";
						}						
						
						if (lang == "en") {
							dist = tmpEng + " / " + tmpChi;
						}
						else {
							dist = tmpChi + " / " + tmpEng;							
						}
						dist = cityCode + " - " + dist;
						
						var y=document.createElement("option");						
						y.text=dist
						y.value=cityCode;
						
						try {
							selCity.add(y, null);
						}
						catch(ex) {
							selCity.add(y);
						}						
						if (y.value == defaultVal) 
							selCity.selectedIndex = selCity.length - 1;							
				}
				
		    } else {       
		        //alert('There was a problem with the request.' + xmlHttp.status);       
		    }       
		}  		
}

function getDistrict(siteroot, cityCode, selDist, defaultVal, lang) {
	var strURL;			

		var xmlHttp = GetXmlHttpObject();			
		strURL = siteroot + "include/ajax.asp?type=District&city=" + cityCode + "&lang=" + lang

		xmlHttp.onreadystatechange = function() { returnDistrict(xmlHttp, selDist, defaultVal, lang); };
		xmlHttp.open("GET", strURL , true);

		xmlHttp.send(null);			

}	

function returnDistrict(xmlHttp, selDist, defaultVal, lang) 								
{

		if (xmlHttp.readyState == 4) {
		    if (xmlHttp.status == 200) {
		       var xmldoc = xmlHttp.responseXML;     		       

				while (selDist.length > 0) 
					selDist.remove(0);

				var y=document.createElement("option");						
				y.text="-"
				y.value="";

				try {
					selDist.add(y, null);
				}
				catch(ex) {
					selDist.add(y);
				}

				var tmpChi, tmpEng
				
				for (i=0; i<xmldoc.getElementsByTagName('district').length;i++) {
						try {
							tmpEng = xmldoc.getElementsByTagName('district')[i].firstChild.data;
						}
						catch(ex) {
							tmpEng = "";
						}					
						try {
							tmpChi = xmldoc.getElementsByTagName('district_chi')[i].firstChild.data;
						}
						catch(ex) {
							tmpChi = "";
						}						
						
						if (lang == "en") {
							dist = tmpEng + " " + tmpChi;
						}
						else {
							dist = tmpChi + " " + tmpEng;							
						}
						
						var y=document.createElement("option");						
						y.text=dist
						y.value=tmpEng;
						
						try {
							selDist.add(y, null);
						}
						catch(ex) {
							selDist.add(y);
						}						
						if (y.value == defaultVal) 
							selDist.selectedIndex = selDist.length - 1;							
				}
				
		    } else {       
		        //alert('There was a problem with the request.' + xmlHttp.status);       
		    }       
		}  		
}

function getHotel(siteroot, cityCode, selDist, defaultVal, lang) {
	var strURL;			
		
		var xmlHttp = GetXmlHttpObject();			
		strURL = siteroot + "include/ajax.asp?type=Hotel&city=" + cityCode

		xmlHttp.onreadystatechange = function() { returnHotel(xmlHttp, selDist, defaultVal, lang); };
		xmlHttp.open("GET", strURL , true);
		xmlHttp.send(null);			
}		
		
function returnHotel(xmlHttp, selDist, defaultVal, lang) 								
{
		if (xmlHttp.readyState == 4) {
		    if (xmlHttp.status == 200) {
		       var xmldoc = xmlHttp.responseXML;     		       
					
				while (selDist.length > 0) 
					selDist.remove(0);
									
				var y=document.createElement("option");						
				y.text="-"
				y.value="";
				try {
					selDist.add(y, null);
				}
				catch(ex) {
					selDist.add(y);
				}	
				
				var tmpChi, tmpEng;

								
				for (i=0; i<xmldoc.getElementsByTagName('hotelcode').length;i++) {
						try {
							tmpEng = xmldoc.getElementsByTagName('hotelname')[i].firstChild.data;
						}
						catch(ex) {
							tmpEng = "";
						}					
						try {
							tmpChi = xmldoc.getElementsByTagName('hotelnamc')[i].firstChild.data;
						}
						catch(ex) {
							tmpChi = "";
						}	
										
						OptVal = xmldoc.getElementsByTagName('hotelcode').item(i).text;
						if (lang == "zh")
							dist = tmpChi + " " + tmpEng;
						else
							dist = tmpEng + " " + tmpChi;
							
						var y=document.createElement("option");						
						y.text=dist
						y.value=OptVal;						
						try {
							selDist.add(y, null);
						}
						catch(ex) {
							selDist.add(y);
						}								
						if (OptVal == defaultVal) 
							selDist.selectedIndex = selDist.length - 1;							
				}
				
		    } else {       
		        //alert('There was a problem with the request.' + xmlHttp.status);       
		    }       
		}  		
}


