var show_day = 6;
var weatherIcon = "";
var d = new Date();
var currentYear = "";
var currentMonth = "";
var currentDate = "";
var currentDay = "";
var currentTemperatureC = "";
var currentTemperatureF = "";
var currentHumidity = "";
var monthName = new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");
var dayName = new Array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday");
var xmlParsed = 0;
var forecastInfo = new Array();
var currentWeatherXmlUrl = "/eng/xml/weather/Current_Weather.xml";
var weatherForecastXmlUrl = "/eng/xml/weather/Several_Days_Weather.xml";
var localWeatherXmlUrl = "/eng/xml/weather/Local_Weather.xml"; //For weather icon
//Added 2007/10/29 by Gary for Landing page weather
var isForLanding = false;

var localTime = d.getTime();
var localOffset = d.getTimezoneOffset() * 60000;
var utc = localTime + localOffset;
var offset = 8;  
var bombay = utc + (3600000*offset);
var currentDateTime = new Date(bombay);

function getWeatherInfo()
{	
	//Order of reading XML is important because Landing page only uses first two

	//getWeathericon()
	var weatherIconAjax = new Ajax.Request(
		localWeatherXmlUrl,
		{ 
			method: 'get',
			onSuccess: parseWeatherIcon,
			onFailure: function(){ /*alert('getWeatherIcon ajax went wrong ...')*/ }
		}
	);

	//getCurrentWeatherInfo()
	var currentWeatherAjax = new Ajax.Request(
		currentWeatherXmlUrl,
		{ 
			method: 'get',
			onSuccess: parseCurrentWeather,
			onFailure: function(){ /*alert('AJAX went wrong ...')*/ }
		}
	);

	//getWeatherForecast()
	var weatherForecastAjax = new Ajax.Request(
		weatherForecastXmlUrl,
		{ 
			method: 'get',
			onSuccess: parseWeatherForecast,
			onFailure: function(){ /*alert('AJAX went wrong ...')*/ }
		}
	);
}

//Updated 2007/10/29 to handle Landing page request
function checkAllReady()
{
	xmlParsed++;
	if (isForLanding)
	{
		if (xmlParsed==3)
		{
			showLandingWeather();
		}
	}
	else
	{
		if (xmlParsed==3)
		{
			showWeatherTable();
		}
	}
}

/*
function checkAllReady()
{
	xmlParsed++;
	if (xmlParsed==3)
	{
		showWeatherTable();
	}
}
*/

function parseWeatherIcon(originalRequest)
{
	var xmlDoc = originalRequest.responseXML.documentElement;
	if (originalRequest.responseText.indexOf("<WeatherIcon>")!=-1)
	{
		//alert("has weatherIcon = "+originalRequest.responseText.indexOf("<WeatherIcon>"));
		try
		{
			var weatherIconNode = xmlDoc.getElementsByTagName("WeatherIcon");
			//alert(weatherIconNode[0].childNodes.length);
			for (j=0; j<weatherIconNode[0].childNodes.length; j++)
			{
				//alert(weatherIconNode[0].childNodes[j].nodeName);
				if (weatherIconNode[0].childNodes[j].nodeName=="URL")
				{
					//alert("Found "+weatherIconNode[0].childNodes[j].childNodes[0].nodeValue);
					weatherIcon = weatherIconNode[0].childNodes[j].childNodes[0].nodeValue;
				}
			}
		}
		catch (e)
		{
			//alert("Erorrro");
		}
	}
	else
	{
		//Cannot find Weather Icon info in XML
	}

	checkAllReady();
}

function parseCurrentWeather(originalRequest)
{
	var xmlDoc = originalRequest.responseXML.documentElement;
	if (originalRequest.responseText.indexOf("<WeatherReport>")!=-1)
	{
		try
		{
			var startTimeNode = xmlDoc.getElementsByTagName("StartTime");
			var startTime = startTimeNode[0].childNodes[0]==null?"":startTimeNode[0].childNodes[0].nodeValue;
			
			currentYear = parseInt(startTime.substring(0, 4),10);
			currentMonth = parseInt(startTime.substring(5, 7),10)-1;
			currentDate = parseInt(startTime.substring(8, 10),10);
			currentDateTime.setFullYear(currentYear, currentMonth, currentDate);


			var temperatureNode = xmlDoc.getElementsByTagName("TemperatureInformation");
			for (var j=0; j<temperatureNode[0].childNodes.length; j++)
			{
				//alert(temperatureNode[0].childNodes[j].nodeName);
				if (temperatureNode[0].childNodes[j].nodeName=="Reading")
				{
					var readingNode = temperatureNode[0].childNodes[j];
					//alert(readingNode.childNodes.length);
					for (var k=0; k<readingNode.childNodes.length; k++)
					{
						//alert(readingNode.childNodes[k].nodeName);
						if (readingNode.childNodes[k].nodeName=="Measure")
						{
							currentTemperatureC = readingNode.childNodes[k].childNodes[0].nodeValue;
							currentTemperatureF = Math.floor((parseInt(currentTemperatureC,10)*9/5)+32);
							break;
						}						
					}
					break;
				}
			}

			var humidityNode = xmlDoc.getElementsByTagName("RelativeHumidityInformation");
			for (var j=0; j<humidityNode[0].childNodes.length; j++)
			{
				//alert(humidityNode[0].childNodes[j].nodeName);
				if (humidityNode[0].childNodes[j].nodeName=="Reading")
				{
					var readingNode = humidityNode[0].childNodes[j];
					//alert(readingNode.childNodes.length);
					for (var k=0; k<readingNode.childNodes.length; k++)
					{
						//alert(readingNode.childNodes[k].nodeName);
						if (readingNode.childNodes[k].nodeName=="Measure")
						{
							currentHumidity = readingNode.childNodes[k].childNodes[0].nodeValue;
							break;
						}						
					}
					break;
				}
			}
		}
		catch (e)
		{
			//alert("Erorrro");
		}
	}
	else
	{
		//Cannot find Weather report info in XML
	}

	checkAllReady();
}

function parseWeatherForecast(originalRequest)
{
	var xmlDoc = originalRequest.responseXML.documentElement;
	if (originalRequest.responseText.indexOf("<WeatherForecast>")!=-1)
	{
		//alert("has weatherIcon = "+originalRequest.responseText.indexOf("<WeatherIcon>"));
		try
		{
			var forecastNode = xmlDoc.getElementsByTagName("WeatherForecast");
			var totalNode = forecastNode.length;
			var startTimeNode = xmlDoc.getElementsByTagName("StartTime");
			//var endTimeNode = xmlDoc.getElementsByTagName("EndTime");
			//var startTimeWeekday = xmlDoc.getElementsByTagName("StartTimeWeekday");
			var temperatureNode = xmlDoc.getElementsByTagName("TemperatureInformation");
			var humidityNode = xmlDoc.getElementsByTagName("RelativeHumidityInformation");
			var weatherIconNode = xmlDoc.getElementsByTagName("WeatherIcon");

			for (var i=0; i<totalNode; i++)
			{
				var tmp = new Array();
				var tempType = "";
				var minTempC, minTempF, maxTempC, maxTempF, minHumid, maxHumid = 0;
				var tempIcon = "";

				//Get Date
				var startTime = startTimeNode[i].childNodes[0]==null?"":startTimeNode[i].childNodes[0].nodeValue;				
				var tmpYear = parseInt(startTime.substring(0, 4),10);
				var tmpMonth = parseInt(startTime.substring(5, 7),10)-1;
				var tmpDate = parseInt(startTime.substring(8, 10),10);
				var tmpDateTime = new Date();
				tmpDateTime.setFullYear(tmpYear, tmpMonth, tmpDate);

				//Get temperature
				var startIndex = i*2;
				for (var t=0; t<2; t++)
				{		
					tempType = "";
					for (var j=0; j<temperatureNode[startIndex+t].childNodes.length; j++)
					{
						//alert(temperatureNode[startIndex+t].childNodes[j].nodeName);
						if (temperatureNode[startIndex+t].childNodes[j].nodeName=="Type")
						{
							tempType = temperatureNode[startIndex+t].childNodes[j].childNodes[0].nodeValue;						
						}
						else if (temperatureNode[startIndex+t].childNodes[j].nodeName=="Reading")
						{							
							var readingNode = temperatureNode[startIndex+t].childNodes[j];
							//alert(readingNode.childNodes.length);
							for (var k=0; k<readingNode.childNodes.length; k++)
							{
								//alert(readingNode.childNodes[k].nodeName);
								if (readingNode.childNodes[k].nodeName=="Measure")
								{
									var tempC = readingNode.childNodes[k].childNodes[0].nodeValue;
									var tempF = Math.floor((parseInt(tempC,10)*9/5)+32);
									if (tempType.toUpperCase()=="N")
									{
										minTempC = tempC;
										minTempF = tempF;
									}
									else
									{
										maxTempC = tempC;
										maxTempF = tempF;
									}
								}						
							}
						}//End else if
					} 
				}

				//Get humidity
				var startIndex = i*2;
				for (var t=0; t<2; t++)
				{		
					tempType = "";
					for (var j=0; j<humidityNode[startIndex+t].childNodes.length; j++)
					{
						//alert(humidityNode[startIndex+t].childNodes[j].nodeName);
						if (humidityNode[startIndex+t].childNodes[j].nodeName=="Type")
						{
							tempType = humidityNode[startIndex+t].childNodes[j].childNodes[0].nodeValue;						
						}
						else if (humidityNode[startIndex+t].childNodes[j].nodeName=="Reading")
						{							
							var readingNode = humidityNode[startIndex+t].childNodes[j];
							//alert(readingNode.childNodes.length);
							for (var k=0; k<readingNode.childNodes.length; k++)
							{
								//alert(readingNode.childNodes[k].nodeName);
								if (readingNode.childNodes[k].nodeName=="Measure")
								{
									if (tempType.toUpperCase()=="N")
									{								
										minHumid = readingNode.childNodes[k].childNodes[0].nodeValue;
									}
									else
									{
										maxHumid = readingNode.childNodes[k].childNodes[0].nodeValue;
									}
								}						
							}
						}//End else if
					} 
				}

				//Get Weather Icon
				for (var m=0; m<weatherIconNode[i].childNodes.length; m++)
				{
					//alert(weatherIconNode[i].childNodes[m].nodeName);
					if (weatherIconNode[i].childNodes[m].nodeName=="URL")
					{
						//alert("Found "+weatherIconNode[i].childNodes[m].childNodes[0].nodeValue);
						tempIcon = weatherIconNode[i].childNodes[m].childNodes[0].nodeValue;
					}
				}

				forecastInfo[i] = new Array(tmpDateTime, minTempC, maxTempC, minTempF, maxTempF, minHumid, maxHumid, tempIcon);
			}
		}
		catch (e)
		{
			alert("Erorrro");
		}
	}
	else
	{
		//Cannot find Weather Forecast info in XML
	}

	checkAllReady();
}

function showWeatherTable()
{
	var str = ""
	//Common
	str += "<table width=\"505\" border=\"1\" cellspacing=\"0\" cellpadding=\"0\" align=\"center\">";
	
	str +=  "<tr>";
	str +=   "<th width=\"70\" class=\"currDate\">Today</th>";
	str +=   "<th colspan=\"6\">6-day Weather Forecast</th>";
	str +=  "</tr>";
	
	/*
	str +=  "<tr>";
	str +=   "<td colspan=\"7\">WEATHER</td>";
	str +=  "</tr>";
	str +=  "<tr>";
	str +=   "<td>Today</td>";
	str +=   "<td colspan=\"6\">6-day weather forecast</td>";
	str +=  "</tr>";
	*/
	str +=  "<tr>";

	//Current weather
	str += "<td width=\"70\">";
	str +=  "<table>";
	str +=   "<tr>";
	str +=    "<td class=\"currDate\">"+currentDate+"&nbsp;"+monthName[currentMonth]+"<br/>";
	str +=    dayName[currentDateTime.getDay()]+"</td>";
	/*
	str +=    "<td>";
	str +=     "<table>";
	str +=      "<tr>";
	str +=       "<td class=\"currDate\">"+currentDate+"</td>";
	str +=       "<td class=\"currDate\">"+monthName[currentMonth]+"</td>";
	str +=      "</tr>";
	str +=     "</table>";
	str +=    "</td>";
	*/
	str +=   "</tr>";
	/*
	str +=   "<tr>";
	str +=    "<td class=\"currDate\">"+dayName[currentDateTime.getDay()]+"</td>";
	str +=   "</tr>";
	*/
	str +=   "<tr>";
	str +=    "<td class=\"weatherIcon\">&nbsp;<img src=\""+weatherIcon+"\" width=\"35\" height=\"35\"/></td>";
	str +=   "</tr>";
	str +=   "<tr>";
	str +=		"<td><table border=\"0\" cellspacing=\"0\" cellpadding=\"0\"><tr>";
	str +=    "<td><img src=\"/eng/trip-planner/images/theromo.gif\" /></td><td class=\"currWeather\">"+currentTemperatureC+" <sup>o</sup>C</td>";
	str +=		"</tr></table></td>";
	str +=   "</tr>";
	str +=   "<tr>";
	str +=		"<td><table border=\"0\" cellspacing=\"0\" cellpadding=\"0\"><tr>";
	str +=    "<td><img src=\"/eng/trip-planner/images/theromo.gif\" /></td><td class=\"currWeather\">"+currentTemperatureF+" <sup>o</sup>F</td>";
	str +=		"</tr></table></td>";
	str +=   "</tr>";
	str +=   "<tr>";
	str +=		"<td><table border=\"0\" cellspacing=\"0\" cellpadding=\"0\"><tr>";
	str +=    "<td><img src=\"/eng/trip-planner/images/humidity.gif\" /></td><td class=\"currWeather\">"+currentHumidity+" %</td>";
	str +=		"</tr></table></td>";
	str +=   "</tr>";
	str +=  "</table>";
	str += "</td>";

	//Weather forecast
	
	for (var i=1; i<=show_day; i++)
	{
		var localTmpDate = forecastInfo[i][0];
		str += "<td width=\"70\">";
		str +=  "<table>";
		str +=   "<tr>";
		str +=    "<td class=\"forecastDate\">"+localTmpDate.getDate()+"&nbsp;"+monthName[localTmpDate.getMonth()]+"<br/>";
		str +=    dayName[localTmpDate.getDay()]+"</td>";
		/*
		str +=    "<td>";		
		str +=     "<table>";
		str +=      "<tr>";
		str +=       "<td class=\"forecastDate\">"+localTmpDate.getDate()+"</td>";
		str +=       "<td class=\"forecastDate\">"+monthName[localTmpDate.getMonth()]+"</td>";
		str +=      "</tr>";
		str +=     "</table>";
		str +=    "</td>";
		*/
		str +=   "</tr>";
		/*
		str +=   "<tr>";
		str +=    "<td class=\"forecastDate\">"+dayName[localTmpDate.getDay()]+"</td>";
		str +=   "</tr>";
		*/
		str +=   "<tr>";
		str +=    "<td class=\"weatherIcon\">&nbsp;<img src=\""+forecastInfo[i][7]+"\" width=\"35\" height=\"35\"/></td>";
		str +=   "</tr>";
		str +=   "<tr>";
		str +=		"<td><table border=\"0\" cellspacing=\"0\" cellpadding=\"0\"><tr>";
		str +=    "<td><img src=\"/eng/trip-planner/images/theromo.gif\" /></td><td class=\"forecastWeather\">"+forecastInfo[i][1]+"-"+forecastInfo[i][2]+" <sup>o</sup>C</td>";
		str +=		"</tr></table></td>";
		str +=   "</tr>";
		str +=   "<tr>";
		str +=		"<td><table border=\"0\" cellspacing=\"0\" cellpadding=\"0\"><tr>";
		str +=    "<td><img src=\"/eng/trip-planner/images/theromo.gif\" /></td><td class=\"forecastWeather\">"+forecastInfo[i][3]+"-"+forecastInfo[i][4]+" <sup>o</sup>F</td>";
		str +=		"</tr></table></td>";
		str +=   "</tr>";
		str +=   "<tr>";
		str +=		"<td><table border=\"0\" cellspacing=\"0\" cellpadding=\"0\"><tr>";
		str +=    "<td><img src=\"/eng/trip-planner/images/humidity.gif\" /></td><td class=\"forecastWeather\">"+forecastInfo[i][5]+"-"+forecastInfo[i][6]+" %</td>";
		str +=		"</tr></table></td>";
		str +=   "</tr>";
		str +=  "</table>";
		str += "</td>";
	}	

	//Common
	str +=  "</tr>";
	str += "</table>";
	document.getElementById("weatherTable").innerHTML = str;
}

//Display Today's Weather in page header on Internnational landing Page
function displayLandingWeather()
{
	isForLanding = true;
	getWeatherInfo();
}

function showLandingWeather()
{
	var str = "";
	var hours = (currentDateTime.getHours( )<10)?"0"+currentDateTime.getHours( ):currentDateTime.getHours( );
	var minutes = (currentDateTime.getMinutes( )<10)?"0"+currentDateTime.getMinutes( ):currentDateTime.getMinutes( );

	str += currentDate+" "+monthName[currentMonth]+", "+currentYear+"  ";
	str += hours +":"+	minutes +" HKT ";

	str += "<img src=\""+weatherIcon+"\" width=\"15\" height=\"15\" hspace=\"2\"/> "+currentTemperatureC+" &deg;C";
	//str += "<img src=\"/eng/trip-planner/images/humidity.gif\" /></td><td class=\"currWeather\">"+currentHumidity+" %  ";
	str += "<img src=\"/eng/trip-planner/images/humidity.gif\" hspace=\"2\" />"+currentHumidity+" %  ";
	str += "<a href=\"/russia/trip-planner/hongkong-weather.html\" target=\"_self\"><img class=\"pngImg\" src=\"/eng/images/circle-btn.png\" width=\"14\" height=\"17\" border=\"0\"/></a>";
	//document.writeln(str);
	$("landingWeather").innerHTML = str;
}

/*
function showTourDetail(originalRequest)
{
	var xmlDoc = originalRequest.responseXML.documentElement;
	var result = "";

	if (originalRequest.responseText.indexOf("<tourdetail>")!=-1)
	{					
		var idNode = xmlDoc.getElementsByTagName("id");
		var detailCount = idNode.length;
		//alert("detailCount = "+detailCount);
		var filenameNode = xmlDoc.getElementsByTagName("filename");
		var sectionNode = xmlDoc.getElementsByTagName("section");
		var tournameNode = xmlDoc.getElementsByTagName("tourname");
		var itineraryNode = xmlDoc.getElementsByTagName("itinerary");
		var languageNode = xmlDoc.getElementsByTagName("language");
		var departuretimeNode = xmlDoc.getElementsByTagName("departuretime");
		var pickuppointsNode = xmlDoc.getElementsByTagName("pickuppoints");
		var durationNode = xmlDoc.getElementsByTagName("duration");
		var tourpriceNode = xmlDoc.getElementsByTagName("tourprice");
		var bookingNode = xmlDoc.getElementsByTagName("booking");
		var remarkNode = xmlDoc.getElementsByTagName("remark");
		var organisedbyNode = xmlDoc.getElementsByTagName("organisedby");
		var addressNode = xmlDoc.getElementsByTagName("address");
		var districtNode = xmlDoc.getElementsByTagName("district");
		var phoneNode = xmlDoc.getElementsByTagName("phone");
		var faxNode = xmlDoc.getElementsByTagName("fax");
		var emailNode = xmlDoc.getElementsByTagName("email");
		var homepageNode = xmlDoc.getElementsByTagName("homepage");	

		var recordCnt = 0;
		
		for (var i=0; i<detailCount; i++)
		{
			var id = idNode[i].childNodes[0].nodeValue;
			if (id==currentId)
			{	
				var tourname = tournameNode[i].childNodes[0]==null?"":tournameNode[i].childNodes[0].nodeValue;
				var itinerary = itineraryNode[i].childNodes[0]==null?"":itineraryNode[i].childNodes[0].nodeValue;
				var language = languageNode[i].childNodes[0]==null?"":languageNode[i].childNodes[0].nodeValue;
				var departuretime = departuretimeNode[i].childNodes[0]==null?"":departuretimeNode[i].childNodes[0].nodeValue;
				var pickuppoints = pickuppointsNode[i].childNodes[0]==null?"":pickuppointsNode[i].childNodes[0].nodeValue;
				var duration = durationNode[i].childNodes[0]==null?"":durationNode[i].childNodes[0].nodeValue;
				var tourprice = tourpriceNode[i].childNodes[0]==null?"":tourpriceNode[i].childNodes[0].nodeValue;
				var booking = bookingNode[i].childNodes[0]==null?"":bookingNode[i].childNodes[0].nodeValue;
				var remark = remarkNode[i].childNodes[0]==null?"":remarkNode[i].childNodes[0].nodeValue;
				var organisedby = organisedbyNode[i].childNodes[0]==null?"":organisedbyNode[i].childNodes[0].nodeValue;
				var address = addressNode[i].childNodes[0]==null?"":addressNode[i].childNodes[0].nodeValue;
				var district = districtNode[i].childNodes[0]==null?"":districtNode[i].childNodes[0].nodeValue;
				var phone = phoneNode[i].childNodes[0]==null?"":phoneNode[i].childNodes[0].nodeValue;
				var fax = faxNode[i].childNodes[0]==null?"":faxNode[i].childNodes[0].nodeValue;
				var email = emailNode[i].childNodes[0]==null?"":emailNode[i].childNodes[0].nodeValue;
				var homepage = homepageNode[i].childNodes[0]==null?"":homepageNode[i].childNodes[0].nodeValue;
				
				result += 
					"<div class=\"horizontalLine newLine\"></div>";

				if (tourname!="")
				{	
					result +=
						"<div id=\"tourDetailRow\">"+
						"	<div id=\"tourDetailTitle\">Tour Name</div>"+
						"	<div id=\"tourDetail\">"+tourname+"</div>"+
						"</div>";
				}

				if (fax!="")
				{
					result +=
						"<div id=\"tourDetailRow\">"+
						"	<div id=\"tourDetailTitle\">Fax</div>"+
						"	<div id=\"tourDetail\">"+fax+"</div>"+
						"</div>";
				}	

				if (email!="")
				{
					result +=
						"<div id=\"tourDetailRow\">"+
						"	<div id=\"tourDetailTitle\">E-mail</div>"+
						"	<div id=\"tourDetail\"><a href=\"mailto:"+email+"\">"+email+"</a></div>"+
						"</div>";
				}	

				if (homepage!="")
				{
					result +=
						"<div id=\"tourDetailRow\">"+
						"	<div id=\"tourDetailTitle\">Homepage</div>"+
						"	<div id=\"tourDetail\"><a href=\""+homepage+"\" target=\"_blank\">"+homepage+"</a></div>"+
						"</div>";
				}
					
				recordCnt++;
			}
		}	
		if (recordCnt>0)
		{
			result = 
				"<div id=\"tourDetailContentHeading\">"+
				"Tour Details"+
				"</div>"+
				"<div id=\"tourDetailContentDetails\">"+
				""+result+
				"</div>";
			$('tourDetailContainer').show();
			$('tourDetailContainer').innerHTML = result;
		}
		else
		{
			//$('tourDetailContainer').hide();
		}		
	}
}
*/
