﻿

var xmlhttp;

var getfid=[
	//fid, caption , tc_cpation, sc_caption, showIndexpage, showInsidepage
	[-1,'Shun Tak Holdings Ltd','信德集團 ','信德集团 ', 'N', 'N'], 
	[6, 	'Nominal (HK$)','現價 (港元)','现价 (港元)', 'Y', 'Y'], 
	[12,	'Day High (HK$)','全日最高價 (港元)','全日最高价 (港元)', 'Y', 'Y'],   
	[13,	'Day Low (HK$)','全日最低價 (港元)','全日最低价 (港元)', 'Y', 'Y'],   
	[32,	'Trading Volume', '成交量', '成交量', 'Y', 'Y'],   //"Net Change" and  "Change" both print in same cell
	[100,	'Turnover Value','成交額','成交额', 'Y', 'Y'],   
	[16,	'Last Updated: ','股價最後更新:','股价最后更新:', 'Y', 'Y'],   
]
var fid=0;
var fcaption=1;
var ftc_cpation=2;
var fsc_caption=3;
var fshowIndexpage=4;
var fshowInsidepage=5;

function loadXMLDoc(url)
{
xmlhttp=null;
// code for Mozilla, etc.
if (window.XMLHttpRequest)
  {
  xmlhttp=new XMLHttpRequest();
  }
// code for IE
else if (window.ActiveXObject)
  {
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
if (xmlhttp!=null)
  {
  xmlhttp.onreadystatechange=state_Change;
  xmlhttp.open("GET",url,true);
  xmlhttp.send(null);
  }
else
  {
  alert("Your browser does not support XMLHTTP.");
  }
}

function state_Change()
{
// if xmlhttp shows "loaded"
if (xmlhttp.readyState==4)
  {
  // if "OK"
  if (xmlhttp.status==200)
    {
    // ...some code here...
	//alert("retrieving XML data");
    }
  else
    {
    alert("Problem retrieving XML data");
    }
  }
}

//loadXMLDoc('<%=xmlresult%>');
function printXmlTable(XmlUrl,langID)
{
	var xmlDoc;
	if (window.ActiveXObject) {
	// code for IE
		xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
	}else if (document.implementation.createDocument) {
	// code for Mozilla, Firefox, Opera, etc.
		xmlDoc=document.implementation.createDocument("","",null);
	}else{
		alert('Your browser cannot handle this script');
	}
	xmlDoc.async=false;
	xmlDoc.load(XmlUrl);
	var x=xmlDoc.getElementsByTagName("ric");
	var tableColor=['#d3d3d3','#ffffff']
	for (var i=0;i<x.length;i++)
	{
		if ((x[0].getElementsByTagName("fid").length==0) || (x[0].getElementsByTagName("errmsg").length>0)) {
			//print error info
			document.writeln('<img src="../images/spacer.gif" height="5" width="100%"><br>');
			document.writeln('<table border="0" cellpadding="0" cellspacing="0" width="100%">');
			document.writeln('<tr><td class="stock_text" bgcolor="'+tableColor[0]+'" width="15">&nbsp;</td>');
			document.write('<td class="stock_text" bgcolor="'+tableColor[0]+'">');
			document.write(x[0].getElementsByTagName("errmsg")[0].childNodes[0].nodeValue);
			document.write('</td><td class="stock_text" bgcolor="'+tableColor[0]+'" width="15">&nbsp;</td>');
			document.write("</tr>");
			document.writeln("</table>");
		} else {
			//print the stock info start
			document.writeln('<span class="news_date" style="font-size:16px;">' + getfid[0][langID] + ' </span><span class="news_date" style="font-size:10px;">(HK:242)</span>');//x[i].getElementsByTagName("fid")[0].childNodes[0].nodeValue
			document.writeln('<img src="../images/spacer.gif" height="5" width="100%"><br>');
			document.writeln('<table border="0" cellpadding="0" cellspacing="0" width="100%">');
			
			var tableColorindex=1;
			
			for (var j in getfid) {
				var configRow = getfid[j];
				var targetId = configRow[fid];
				var $theDataRow = $(x[0]).find('fid#' + targetId);

				if (configRow[fshowIndexpage] == 'Y') {//check fshowIndexpage
					if ((targetId!=16)) {
						document.writeln('<tr bgcolor="'+tableColor[tableColorindex%2]+'"><td class="stock_text" width="15">&nbsp;</td>');
						document.write('<td class="stock_text" width="120" nowrap>'+configRow[langID]+'</td>');
						document.write('<td class="stock_text" nowrap align="right">');
					}
					if ($theDataRow.length == 1) {
						if (targetId == 16) {	//	Data & Time
							document.write('<br><span class="date">'+configRow[langID]);

							if (langID==1) {
								document.write(' '+$theDataRow.text()+' ');
							}else{
								var tempDate = new Date($theDataRow.text());
								document.write(' ' + tempDate.getYear() + '年' + (tempDate.getMonth() + 1) + '月' + tempDate.getDate() + '日 ');
							}
							var tempTime = $(x[0]).find('fid#18').text().split(':');
							document.write(((tempTime[0] * 1) + 8) + ':' + tempTime[1]);
							document.write('</span>');
						}else{
							if (targetId == 100) {
								var theScalingFactor = $(x[0]).find('fid#380').text();
								document.write(to2DecimalPlaces($theDataRow.text() * (Math.pow(10 , (theScalingFactor-1)))));
							} else if (targetId == 32) {
								document.write(to2DecimalPlaces($theDataRow.text()));
							} else {
								document.write(stock_replace($theDataRow.text()));
							}
						}
					}

					if ((targetId!=16)) {
						document.write('</td><td class="stock_text" width="15">&nbsp;</td>');
						//x[i].getElementsByTagName("TITLE")[0].childNodes[0].nodeValue);
						document.write("</tr>");
						tableColorindex = tableColorindex+1;
					}
					if (targetId == 100) {			
						document.writeln("</table>");
					}
				}//check fshowIndexpage
			}
		}
	}
}

function printXmlTableInsidepage(XmlUrl,langID)
{
	var xmlDoc;
	if (window.ActiveXObject) {
	// code for IE
		xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
	}else if (document.implementation.createDocument) {
	// code for Mozilla, Firefox, Opera, etc.
		xmlDoc=document.implementation.createDocument("","",null);
	}else{
		alert('Your browser cannot handle this script');
	}
	xmlDoc.async=false;
	xmlDoc.load(XmlUrl);
	//xmlDoc=getElementsByid("testing");

	var x = xmlDoc.getElementsByTagName("ric");
	var tableColor=['#dfdfdf','#ffffff']
	for (var i=0;i<x.length;i++)
	{
		if ((x[0].getElementsByTagName("fid").length==0) || (x[0].getElementsByTagName("errmsg").length>0)) {
			//print error info
			document.writeln('<img src="../images/spacer.gif" height="5" width="100%"><br>');
			document.writeln('<table border="0" cellpadding="0" cellspacing="0" width="100%">');
			document.writeln('<tr><td class="stock_text" bgcolor="'+tableColor[0]+'" width="15">&nbsp;</td>');
			document.write('<td class="stock_text" bgcolor="'+tableColor[0]+'">');
			document.write(x[0].getElementsByTagName("errmsg")[0].childNodes[0].nodeValue);
			document.write('</td><td class="stock_text" bgcolor="'+tableColor[0]+'" width="15">&nbsp;</td>');
			document.write("</tr>");
			document.writeln("</table>");
		} else {
			//print the stock info start
			document.writeln('<div style="padding: 5px 5px 5px 5px;">');
			document.writeln('<span class="news_date" style="font-size:16px;">' + getfid[0][langID] + ' </span><span class="news_date" style="font-size:10px;">(HK:242)</span>');//x[i].getElementsByTagName("fid")[0].childNodes[0].nodeValue
			//document.writeln('<img src="../images/spacer.gif" height="5" width="100%"><br>');
			document.writeln('</div>');
			document.writeln('<table border="0" cellpadding="2" cellspacing="0">');
			
			var tableColorindex=1;
			
			for (var j in getfid) {
				var configRow = getfid[j];
				var targetId = configRow[fid];
				if (targetId != -1){
					var $theDataRow = $(x[0]).find('fid#' + targetId);

					if (configRow[fshowInsidepage] == 'Y') {//check fshowInsidepage
						if ((targetId!=16)) {
							document.writeln('<tr bgcolor="'+tableColor[tableColorindex%2]+'"><td width="5">&nbsp;</td>');
							document.write('<td class="stock_text" width="120" nowrap>'+configRow[langID]+'</td>');
							document.write('<td width="5">&nbsp;</td>');
							document.write('<td class="stock_text" nowrap align="right">');
						}
						if ($theDataRow.length == 1) {
							if (targetId == 16) {	//	Data & Time
								document.write('<br><span class="date">'+configRow[langID]);

								if (langID==1) {
									document.write(' '+$theDataRow.text()+' ');
								}else{
									var tempDate = new Date($theDataRow.text());
									document.write(' ' + tempDate.getYear() + '年' + (tempDate.getMonth() + 1) + '月' + tempDate.getDate() + '日 ');
								}
								var tempTime = $(x[0]).find('fid#18').text().split(':');
								document.write(((tempTime[0] * 1) + 8) + ':' + tempTime[1]);
								document.write('</span>');
							}else{
								if (targetId == 100) {
									var theScalingFactor = $(x[0]).find('fid#380').text();
									document.write(to2DecimalPlaces($theDataRow.text() * (Math.pow(10 , (theScalingFactor-1)))));
								} else if (targetId == 32) {
									document.write(to2DecimalPlaces($theDataRow.text()));
								} else {
									document.write(stock_replace($theDataRow.text()));
								}
							}
						}

						if ((targetId!=16)) {
							document.write('</td><td class="stock_text" width="5">&nbsp;</td>');
							//x[i].getElementsByTagName("TITLE")[0].childNodes[0].nodeValue);
							document.write("</tr>");
							tableColorindex = tableColorindex+1;
						}
						if (targetId == 100) {			
							document.writeln("</table>");
						}
					}//check fshowInsidepage
				}
			}
		}
	}
}


function space_replace(item)
{
	var item;
	item=item.replace(" ", "");
	return(item);
}
function to2DecimalPlaces(str) {
	function round(n, dec) {
		var roundResult = 0;
		n = parseFloat(n);
		if(! isNaN(n)){
			if(!dec) var dec= 0;
			var factor= Math.pow(10, dec);
			roundResult = Math.floor(n * factor + ((n * factor * 10) % 10 >= 5 ? 1 : 0)) / factor;
		}else{
			roundResult = n;
		}

		if ((roundResult * 100) % 100 == 0) {
			roundResult += '.00';
		}
		return roundResult;
	}

	var result = (str * 1) / 1000000;
	return round(result, 2) + 'M';
}

function thousandSeperator(str) {
	str = str.toString().replace("+", "");
    var result = str;
    var x = result.split('.');
    var x1 = x[0];
    var x2 = x.length > 1 ? '.' + x[1] : '';
    var rgx = /(\d+)(\d{3})/;
    while (rgx.test(x1)) {
        x1 = x1.replace(rgx, '$1' + ',' + '$2');
    }
	return str;
    //	return '$' + x1 + x2;
}
function stock_replace(item)
{
	var item;
	item = item.replace("+", "");
	item = item.replace("-", "");
	item = item.replace("0#/0", "");
	item = item.replace("W.HK", "");
	return(item);
}
function stock_Month(month)
{
	switch(month)
	{
		case "Jan":
		  dateMonth=1;break;    
		case "Feb":
		  dateMonth=2;break;     
		case "Mar":
		  dateMonth=3;break;     
		case "Apr":
		  dateMonth=4;break;     
		case "May":
		  dateMonth=5;break;     
		case "Jun":
		  dateMonth=6;break;     
		case "Jul":
		  dateMonth=7;break;     
		case "Aug":
		  dateMonth=8;break;     
		case "Sep":
		  dateMonth=9;break;     
		case "Oct":
		  dateMonth=10;break;     
		case "Nov":
		  dateMonth=11;break;     
		case "Dec":
		  dateMonth=12;break;
		default:
		  dateMonth=0;
	}
	return(dateMonth);
}

function printStockFooter(index) {
	var haveBR = "";
	var tableWidth = "";
	var logoWidth = 35;
	var logoPathFinder = "";
	var logoPathFinder2 = "";
	var result = "";
	if(typeof index == "undefined") {
		haveBR = "<br />";
		tableWidth = " width=\"230\"";
		logoPathFinder = "../";
		logoPathFinder2 = "./";
	}else{
		logoPathFinder = "../../";
		logoPathFinder2 = "../";
	}
	
	result += '<table'+tableWidth+' border="0" cellpadding="0" cellspacing="0"><tr><td valign="top" align="left"><img src="'+logoPathFinder+'images/afelogo.gif"></td><td align="left" valign="top">';
	switch(langID) {
	//	case 1 : result += '<span class="date" style="font-size:9px;">Stock information is provided by AFE Solutions Limited (A Thomson Reuters Company)</span>'; break;
	//	case 2 : result += '<span class="date" style="font-size:9px;">股價資訊由亞富資訊科技有限公司提供'+haveBR+'(A Thomson Reuters Company)</span>'; break;
	//	case 3 : result += '<span class="date" style="font-size:9px;">股价资讯由亚富资讯科技有限公司提供'+haveBR+'(A Thomson Reuters Company)</span>'; break;
	}
	result += '<img src="'+logoPathFinder2+'images/afe_text.gif" />';
	result += '</td></tr></table>';
	
	document.write(result);
}
