﻿var show_day = 6;
var weatherIcon = "";
var currentDateTime = 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 xmlParsed2 = 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
var bannerXmlUrl = '/eng/xml/e-newsletter-banner.xml';
//Added 2007/10/29 by Gary for Landing page weather
var isForLanding2 = false;
var isIE = (navigator.appName.indexOf("Microsoft") > -1);
var bottomAdList = new Array();
var bottomAdObj = null;


function getWeatherInfo2()
{	
	//Order of reading XML is important because Landing page only uses first two

	//getWeathericon()
	var weatherIconAjax = new Ajax.Request(
		localWeatherXmlUrl,
		{ 
			method: 'get',
			onSuccess: parseWeatherIcon2,
			onFailure: function(){ /*alert('getWeatherIcon ajax went wrong ...')*/ }
		}
	);

	//getCurrentWeatherInfo()
	var currentWeatherAjax = new Ajax.Request(
		currentWeatherXmlUrl,
		{ 
			method: 'get',
			onSuccess: parseCurrentWeather2,
			onFailure: function(){ /*alert('AJAX went wrong ...')*/ }
		}
	);

	//getWeatherForecast()
	var weatherForecastAjax = new Ajax.Request(
		weatherForecastXmlUrl,
		{ 
			method: 'get',
			onSuccess: parseWeatherForecast2,
			onFailure: function(){ /*alert('AJAX went wrong ...')*/ }
		}
	);
}

//Updated 2007/10/29 to handle Landing page request
function checkAllReady2()
{
	xmlParsed2++;
	if (isForLanding2)
	{
		if (xmlParsed2==3)
		{
			showLandingWeather2();
		}
	}
	else
	{
		if (xmlParsed2==3)
		{
			showWeatherTable2();
		}
	}
}

/*
function checkAllReady()
{
	xmlParsed++;
	if (xmlParsed==3)
	{
		showWeatherTable();
	}
}
*/

function parseWeatherIcon2(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
	}

	checkAllReady2();
}

function parseCurrentWeather2(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
	}

	checkAllReady2();
}

function parseWeatherForecast2(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
	}

	checkAllReady2();
}

//Display Today's Weather in page header on Internnational landing Page
function displayLandingWeather2()
{
	isForLanding2 = true;
	getWeatherInfo2();
}

function showLandingWeather2()
{
	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 " + '<br/>';

	str += "<img src=\""+weatherIcon+"\" width=\"15\" height=\"15\" hspace=\"2\" align='absmiddle'/> "+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\" align='absmiddle' />"+currentHumidity+" %  ";
	str += "<a href=\"/newzealand/trip-planner/hongkong-weather.html\" target=\"_blank\"><img class=\"pngImg\" src=\"/eng/images/circle-btn.png\" width=\"14\" height=\"17\" border=\"0\"  align='absmiddle'/></a>";
	//document.writeln(str);
	
	//document.getElementById('contentWeather').innerHTML = str;
}

//Load XML
function loadBanner()
{
	var self = this;
	
	this.loadXML = function(url)
	{
		var x;

		if (window.XMLHttpRequest) // Mozilla, Safari,...
		{
			x = new XMLHttpRequest();
			if (x.overrideMimeType)	x.overrideMimeType('text/xml');
		}
		else if (window.ActiveXObject) // IE
		{
			try
			{
				x = new ActiveXObject("Msxml2.XMLHTTP");
			}
			catch (e)
			{
				try
				{
					x = new ActiveXObject("Microsoft.XMLHTTP");
				}
				catch (e)	{}
			}
		}
		
		if (x)
		{
			x.onreadystatechange = function()
			{
				if (x.readyState == 4 && x.status == 200)
				{
					self.genBannersList(x);
				}
			}
			x.open('GET', url, true);
			x.send(null);
		}
	}

	this.genBannersList = function(x)
	{
		var banners = x.responseXML.getElementsByTagName('banner');
		var total = banners.length;
		var randomNum = Math.floor(Math.random()*total);
		var banner = banners[randomNum];
		var obj = new Object();
		
		for (var i=0; i<banner.childNodes.length; i++)
		{
			if (!isIE)	if (banner.childNodes[i].toString() == '[object Text]')	continue;
			//if (banner.childNodes[i].toString().toLowerCase().indexOf('text') >= 0)	continue;
			
			var name = banner.childNodes[i].nodeName.toString();
			var value = banner.childNodes[i].firstChild.data.toString();
			
			obj[name] = value;
		}
		
		bottomAdList.push(obj);
		
		displayBottomAd();
	}
	
	this.loadXML(bannerXmlUrl);
}

function displayBottomAd()
{
	var btmAdList = bottomAdList;
	var btmAdListSize = btmAdList.length;

	var tmpStr = "";

	if (btmAdListSize>0)
	{
		for (var i=0; i<btmAdListSize; i++)
		{
			var btmAd = btmAdList[i];
			var isFlash = (btmAd.path.length > 3 && btmAd.path.toLowerCase().substr(btmAd.path.length-3,3) == "swf") ? true : false;

			if (isFlash)
			{
				/*
				tmpStr = "";
				tmpStr += "<div id=\"flashExternalAdobject\"></div>";
				document.writeln(tmpStr);
				var fo = new FlashObject(btmAd.path, "flashExternalAdobject", "120", "60", "7", "#ffffff", true);
				fo.write("flashExternalAdobject");
				*/
			}
			else
			{				
				if (btmAd.link.length > 0)
				{
					if (btmAd.linkTarget == "") btmAd.linkTarget = "_self";
					tmpStr += "<div id=\"bottomAd\">";
					tmpStr += "<a href=\"" + btmAd.link + "\" target=\"" + btmAd.linkTarget + "\">";
					tmpStr += "<img  id=\"adItem\" width=\"160\" height=\"65\" src=\"" + btmAd.path + "\" border=\"0\" alt=\"" + btmAd.alt + "\"/>";
					tmpStr += "</a>";
					tmpStr += "</div>";
				}
				else
				{
					tmpStr += "<div id=\"bottomAd\"><img  id=\"adItem\" width=\"120\" height=\"60\" src=\"" + btmAd.path + "\" border=\"0\" alt=\"" + btmAd.alt + "\"/></div>";
				}

			}
		}

		//tmpStr = "<div id=\"bottomAdGroup\">"+tmpStr+"</div>";
		//document.writeln(tmpStr);
		//$("bottomAdGroup").innerHTML = tmpStr;
		document.getElementById("bottomAdGroup").innerHTML = tmpStr;
	}	
}

function displayNewsLetter()
{
	var tmpStr = "";
	
	var IE6 = false /*@cc_on || @_jscript_version < 5.7 @*/;
	
	if (!IE6) {
	
	tmpStr += '\n';
	
	/*
	tmpStr += 
		'<div align="right" style="color:#000; font-size:11px; font-weight: bold; padding: 5px 5px 0px 5px; background-color:#FFFFFF; left:-13px; top:20px; width:150px; height:15px; line-height:14px;" id="contentWeather"></div>';
		
  tmpStr += '<br/>\n';
  */
	
	tmpStr += '<STYLE type="text/css">\n';
	tmpStr += '  .addthis_button_expanded {\n';
	tmpStr += '    font-family:Arial, Helvetica, sans-serif; font-size:12px; color:#666666;\n';
	tmpStr += '  }\n';
	
	tmpStr += '  .addthis_button_compact {\n';
	tmpStr += '    font-family:Arial, Helvetica, sans-serif; font-size:12px; color:#666666;\n';
	tmpStr += '    font-weight:bold;\n';
	tmpStr += '  }\n';
	
	tmpStr += '  .addthis_separator {\n';
	tmpStr += '    margin: 0px 3px 0px 3px !important;\n';
	tmpStr += '  }\n';
	
	tmpStr += '  .addthis_toolbox a {\n';
	tmpStr += '    text-decoration: none;\n';
	tmpStr += '  }\n';
	
	tmpStr += '  .addthis_toolbox a:hover {\n';
	tmpStr += '    text-decoration: underline;\n';
	tmpStr += '  }\n';
	
	tmpStr += '  .addthis_toolbox {\n';
	//tmpStr += '    border: 1px solid #C6C6C6;\n';
	tmpStr += '    padding: 4px 0px 2px 0px\n';
	tmpStr += '  }\n';
	
	tmpStr += '</STYLE>\n';
	
	tmpStr += '<script type="text/javascript">\n';
tmpStr += '    var addthis_config = {\n';
tmpStr += '      services_exclude: "digg,delicious,reddit", \n';
//tmpStr += '      data_ga_tracker: pageTracker, \n';
tmpStr += '      data_ga_tracker: null, \n';
tmpStr += '      data_track_clickback: true \n';
tmpStr += '    };\n';
tmpStr += '</script>\n';

tmpStr += '<div class="addthis_button_compact">Share it</div>\n';
tmpStr += '<div class="addthis_toolbox addthis_32x32_style addthis_default_style" style="width: 159px;">\n';
//tmpStr += '<span class="addthis_separator">|</span>\n';
tmpStr += '<a class="addthis_button_facebook" style="padding-right:7px;"></a>\n';
tmpStr += '<a class="addthis_button_twitter" style="padding-right:6px;"></a>\n';
tmpStr += '<a class="addthis_button_email" style="padding-right:6px;"></a>\n';
tmpStr += '<a href="http://www.addthis.com/bookmark.php?v=250&amp;username=hktb" class="addthis_button_compact" style="padding-right:0px;"></a>\n';
//tmpStr += '<a class="addthis_button_live"></a>\n';
//tmpStr += '<span class="addthis_separator">|</span>\n';
//tmpStr += '<a href="http://www.addthis.com/bookmark.php?v=250&amp;username=hktb" class="addthis_button_expanded">More</a>\n';
tmpStr += '</div>\n';

tmpStr += '<script type="text/javascript" src="http://s7.addthis.com/js/250/addthis_widget.js#username=hktb"></script>\n';

tmpStr += '<script type="text/javascript">\n';
tmpStr += '_gaq.push(function() {\n';
tmpStr += 'addthis_config.data_ga_tracker = _gaq._getAsyncTracker("");\n';
tmpStr += '});\n';
tmpStr += '</script>\n';	

}

	//tmpStr += '<div align="right" style="color:#000; font-size:11px; font-weight: bold; padding: 5px 5px 0px 5px; background-color:#FFFFFF; position:absolute; left:-13px; top:-15px; width:168px; height:15px; line-height:14px;" id="contentWeather"></div>';
		
		//"<div align=\"right\" style=\"font-weight: bold; padding: 5px 5px 10px 5px; background-color:#BBBBBB;\"><font color=\"#FFFFFF\">4 Dec, 2008 17:08 HKT<br><img src=\"/eng/images/landing/pic60.png\" width=\"16\" height=\"16\">  22&deg;C<img src=\"/eng/trip-planner/images/humidity.gif\">72%</font></div>";
	

	tmpStr += 
		"<br/><div id=\"eNewsLetterBtn\" style=\"padding: 0px 0px 12px 0px; width;160px;\">"+
		"<a href=\"/newzealand/jsp/e-zine/e-zine-subscribe.jsp\">"+
		"<img src=\"/eng/images/banner/newsletter_eng.gif\" width=\"160\" height=\"25\" alt=\"e-Newsletter\" border=\"0\"/>"+
		"</a>"+
		"</div>";
	
	tmpStr += 
		"<div id=\"bottomAdGroup\" style=\"width;160px; height:65px;\">"+
		"</div>";
	
	/*tmpStr += 
		"<div id=\"eNewsLetterBtn\" style=\"padding-bottom:12px;width;160px;\">"+
		"<a href=\"http://www.gov.hk/en/theme/wifi/program/index.htm\" target=\"_target\">"+
		"<img src=\"/eng/images/banner/gov-wifi.gif\" width=\"160\" height=\"65\" alt=\"e-Newsletter\" border=\"0\"/>"+
		"</a>"+
		"</div>";*/
	
	
/*tmpStr += 
	"<div id=\"profileBtn\" style=\"padding-left:33px;padding-bottom:20px;width;160px;\">"+
	"<a href=\"javascript:void(0)\" onmouseover=\"MM_swapImage('updateProfileBtn','','/eng/images/update-profile-over.gif',1)\" onmouseout=\"MM_swapImgRestore()\">"+
	"<img src=\"/eng/images/update-profile.gif\" name=\"updateProfileBtn\" id=\"updateProfileBtn\" width=\"94\" height=\"15\" alt=\"Update profile\" border=\"0\"/>"+
	"</a>"+
	"</div>";
	*/
	document.writeln(tmpStr);
	
	setTimeout(function()
	{
		displayLandingWeather2();
		loadBanner();
	}, 300);
	
	var eNewsletter = document.getElementById('eNewsletter');
	eNewsletter.style.position = 'relative';
	eNewsletter.style.zIndex = '10000';
}
