/**
* 載入龍虎榜單 xml , 利用 javascript 解析並output
* Author : Yung-I Lin 
* Date: 2010-04-14
*/
var xmlDoc;
var allAry=new Array(new Array(),new Array(),new Array(),new Array());//gept,toeic,toefl,ielts


function loadxml() {

		xmlDoc = false;
		if (typeof window.ActiveXObject=='function') { // IE
				xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
				xmlDoc.async = false;
				xmlDoc.onreadystatechange = readXML;
				xmlDoc.load("myxml/alltop20.xml");
		}else	if (window.XMLHttpRequest) { // Mozilla, Safari,...
				xmlDoc = new XMLHttpRequest();
				
				if (xmlDoc.overrideMimeType) {
						xmlDoc.overrideMimeType('text/xml');
				}
				
				xmlDoc.open('GET', "myxml/alltop20.xml", true);
				xmlDoc.onreadystatechange = readXMLMoz;
				xmlDoc.send(null);
				
		}
		
		if (!xmlDoc) {
				writeToPageOther();
		}

}



/*
* IE
*/
function readXML()
{
				if(xmlDoc.readyState == 4)
				{
								parseAndPrint();
								writeToPage();
				}
}

function converter(idx){

		var items=xmlDoc.documentElement.childNodes[idx].getElementsByTagName("student");
		for(var j=0;j<items.length;j++){
				var myitem = items[j];
				var name = String(myitem.getElementsByTagName("name")[0].firstChild.nodeValue);
				var score = String(myitem.getElementsByTagName("score")[0].firstChild.nodeValue);
				var photo = String(myitem.getElementsByTagName("photo")[0].firstChild.nodeValue);
				var memo = String(myitem.getElementsByTagName("memo")[0].firstChild.nodeValue);

				allAry[idx].push(new Array(name,score,photo,memo));
				
		}
}

function parseAndPrint(){
			for(var i=0;i<xmlDoc.documentElement.childNodes.length;i++){
						var type=xmlDoc.documentElement.childNodes[i].getAttribute('title');
						
						switch(type){
								case "gept":
										converter(0);
								break;
								case "toeic":
										converter(1);
								break;
								case "toefl":
										converter(2);
								break;
								case "ielts":
										converter(3);
								break;
						}
			}
}


/*
*	Mozila
*/
function readXMLMoz(){			
				if(xmlDoc.readyState == 4){
							parseAndPrintMoz();
							writeToPage();
				}
}

function converterMoz(idx){

		var response = xmlDoc.responseXML.documentElement;
		var items=response.getElementsByTagName("exam")[idx].getElementsByTagName("student");
		for(var j=0;j<items.length;j++){
				var myitem = items[j];
				
				var name = myitem.getElementsByTagName("name")[0].textContent;
				var score = myitem.getElementsByTagName("score")[0].textContent;
				var photo = myitem.getElementsByTagName("photo")[0].textContent;
				var memo = myitem.getElementsByTagName("memo")[0].textContent;
				
				allAry[idx].push(new Array(name,score,photo,memo));
				
		}
		
}

function parseAndPrintMoz(){

		var response = xmlDoc.responseXML.documentElement;
	 var amount = response.getElementsByTagName("exam").length;

		var i=0;
		while(i<amount){
				var x = response.getElementsByTagName("exam")[i].attributes;
				var type = String(x[0].nodeValue);
				
				switch(type){
						case "gept":
								converterMoz(0);
						break;
						case "toeic":
								converterMoz(1);
						break;
						case "toefl":
								converterMoz(2);
						break;
						case "ielts":
								converterMoz(3);
						break;
				}

				i++;
				
		}

}


/*
*		以下是共用的method
*/
function writeToPage(){

		var urlLib=new Array("gept_student","toeic_student","toefl_student","ielts_student");
		var divLib=new Array("gept_top20","toeic_top20","toefl_top20","ielts_top20");
		var txtDivLib=new Array("st_s_top_gept","st_s_top_toeic","st_s_top_toefl","st_s_top_ielts");

		for(var i=0;i<urlLib.length;i++){
				var j=getRandom((allAry[i].length-1),0);
				var htmlstring=createInnerTxt(allAry[i][j],urlLib[i],txtDivLib[i]);
				document.getElementById(divLib[i]).innerHTML = htmlstring;			
		}
		
}

function getRandom(max,min){
		var ran = Math.random()*(max-min+1);//Math.random() 值範圍：0 ~ 0.9999999(無窮小數) 
		var value = Math.floor(ran+min);//取整數
		return value;
}

function createInnerTxt(arr,url,txtdiv){
	
	var str="";
	str+='<table width="100%" border="0" cellspacing="0" cellpadding="0">\n\r';
	str+='<tr><td width="5%" valign="top"><div id="st_pic_s">\n\r';
	str+='<div align="left"><img src="images/st_pic/'+arr[2]+'" width="54" height="68" /></div>\n\r';
	str+='</div></td>\n\r';
	str+='<td width="95%" valign="top">\n\r';
	str+='<div id="st_s_top"><div align="left"><a href="'+url+'/index.html">'+arr[0]+'</a></div></div>\n\r';
	str+='<div id="'+txtdiv+'"><div align="left"><a href="'+url+'/index.html" class="thickbox" >'+arr[1]+'</a></div>\n\r';
	str+='</div>\n\r';
	str+='<div id="txt2"> \n\r';
	str+='<div align="left"><a href="'+url+'/index.html">'+arr[3].substr(0,34)+'.....</a></div>\n\r';
	str+='</div>\n\r';
	str+='</td>\n\r';
	str+='</tr>\n\r';
	str+='</table>\n\r';

	return str;
}

/*
*		非 IE 或 非 Mozila 系列之瀏覽器使用
*/
function writeToPageOther(){

		var urlLib=new Array("gept_student","toeic_student","toefl_student","ielts_student");
		var divLib=new Array("gept_top20","toeic_top20","toefl_top20","ielts_top20");
		var txtDivLib=new Array("st_s_top_gept","st_s_top_toeic","st_s_top_toefl","st_s_top_ielts");

		var ary1=new Array("許子洋 先生","gept","gept-02.jpg","首先，我要感謝菁英的老師及我的顧問，因為有他們的認真上課及規劃我才能拿到全民英檢中高級的證照。");
		var ary2=new Array("陳冠樺 小姐","TOEIC總分 915","toeic_02.jpg","在菁英上課的這段時間，真的讓我受益良多!ANGELINA老師循序漸進的文法學習方式，使我搞懂之前忘光或不清楚的地方，而TOEIC部分，除了課堂補充外，老師也會整理許多應試的小技巧.筆記的重點…等。");
		var ary3=new Array("林恩瑤 小姐","TOEFL總分 102","toefl-02.jpg","想當初有多間補習班選擇下,幸好我選對了菁英,我依然還記得在一進菁英大門諮詢時,菁英的專業諮詢,細心的解說及專業認真的課程規劃!在當時已經明顯與仿間其他補習班大不同!");
		var ary4=new Array("林俊杰 先生","IELTS總分 7.5","ielts-01.jpg","我之所以會來菁英上課,其實一開始是朋友推薦的,後來又透過網路得知了菁英的師資和教材都很專業,所以才很有信心的踏出這一步來上IELTS的課程");
		
		for(var i=0;i<urlLib.length;i++){
				
				switch(i){
							case 0:
									var htmlstring=createInnerTxt(ary1,urlLib[i],txtDivLib[i]);
							break;
							case 1:
									var htmlstring=createInnerTxt(ary2,urlLib[i],txtDivLib[i]);
							break;
							case 2:
									var htmlstring=createInnerTxt(ary3,urlLib[i],txtDivLib[i]);
							break;
							case 3:
									var htmlstring=createInnerTxt(ary4,urlLib[i],txtDivLib[i]);
							break;
				}
				
				document.getElementById(divLib[i]).innerHTML = htmlstring;			
		}
		
}

