﻿<!--
// Array.indexOf( value, begin, strict ) - Return index of the first element that matches value
Array.prototype.indexOf = function( v, b, s ) {
	for( var i = +b || 0, l = this.length; i < l; i++ ) {
		if( this[i]===v || s && this[i]==v ){
			return i;
		}
 	}
	return -1;
};

// Array.push() - Add an element to the end of an array, return the new length
if( typeof Array.prototype.push==='undefined' ) {
	Array.prototype.push = function() {
		for( var i = 0, b = this.length, a = arguments, l = a.length; i<l; i++ ) {
			this[b+i] = a[i];
		}
		return this.length;
	};
}

// Array.unique( strict ) - Remove duplicate values
Array.prototype.unique = function( b ) {
	var a = [], i, l = this.length;
	for( i=0; i<l; i++ ) {
		if( a.indexOf( this[i], 0, b ) < 0 ) { a.push( this[i] ); }
	}
	return a;
};
var xmlHttp,xmlHttp_t;
function createXHR(){
	if (window.XMLHttpRequest) {
		xmlHttp = new XMLHttpRequest();
	}else if (window.ActiveXObject) {
		xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
	}

	if (!xmlHttp) {
		alert('您使用的瀏覽器不支援 XMLHTTP 物件');
		return false;
	}
}
function createXHR_t(){
	if (window.XMLHttpRequest) {
		xmlHttp_t = new XMLHttpRequest();
	}else if (window.ActiveXObject) {
		xmlHttp_t = new ActiveXObject("Microsoft.XMLHTTP");
	}

	if (!xmlHttp_t) {
		alert('您使用的瀏覽器不支援 XMLHTTP 物件');
		return false;
	}
}
function sendRequest(t){
	createXHR();
	var url=t+'.asp?ts='+new Date().getTime();
	xmlHttp.open('GET',url,true);
	xmlHttp.onreadystatechange=function(){ catchXML(t);};
	xmlHttp.send(null);
}
//
function sendRequest_t(a){
	createXHR_t();
	var url=a+'.xml?ts='+new Date().getTime();
	xmlHttp_t.open('GET',url,true);
	xmlHttp_t.onreadystatechange=function(){ catchXML_t(a);};
	xmlHttp_t.send(null);
}

var ma,div,ma_t,div_t;
function catchXML(t){
	if (xmlHttp.readyState==4 || xmlHttp.readyState=='complete'){
		xml=xmlHttp.responseXML;
		if (xmlHttp.status == 200) {
    			ma=getNodeContent(xml,'link');
				//alert("ma="+ma);
    			div=t;
			
    			setTimeout('createXML()',1000);
		}else{
			alert('執行錯誤,代碼:'+xmlHttp.status+'\('+xmlHttp.statusText+'\)');
		}
	}
}
//
function catchXML_t(a){
	if (xmlHttp_t.readyState==4 || xmlHttp_t.readyState=='complete'){
		xml_t=xmlHttp_t.responseXML;
		if (xmlHttp_t.status == 200) {
    			ma_t=getNodeContent(xml_t,'book');
    			div_t=a;
    			setTimeout('createXML_t()',1000);
		}else{
			alert('執行錯誤,代碼:'+xmlHttp_t.status+'\('+xmlHttp_t.statusText+'\)');
		}
	}
}


function getNodeContent(xmldoc,key,label) {
	/*
	取得節點內容值
	輸入項:
		xmldoc	:xml文件
		key	:標籤名稱
		label	:子節點屬性名稱,用於取得屬性值
	輸出項:
		Array([a,b])
		a=標籤名稱, 或標籤中指定屬性值
		b=標籤字串值
		例:
		<product>
		<name value="產品">Sony Handy Cam</name>
		<price value="單價">21000</name>
		</product>
		getNodeContent(xml,'product') 回傳值為[name,Sony Handy Cam][price,21000]
		getNodeContent(xml,'product','value') 回傳值為[產品,Sony Handy Cam][單價,21000]

	*/
	var na=[],va=[],l;
	var outstr='';

	key=(typeof key=='undefined')?getNodeName(xmldoc,false):key;

	for (var i=0;i<xmldoc.getElementsByTagName(key).length;i++){
		var xml=xmldoc.getElementsByTagName(key)[i];
		na=getNodeName(xml,false);	//必需是唯一值,因為接下來的動作,會依序讀出

		for (var j=0;j<na.length;j++){
			var xmlk=xml.getElementsByTagName(na[j]);
			for (var k=0;k<xmlk.length;k++){
				l=Math.max(va.length,va.length-1);
				if(typeof label!='undefined'){
					if(typeof xmlk[k].getAttribute(label)!=null && typeof xmlk[k].getAttribute(label)!=''){
						va[l]=[xmlk[k].getAttribute(label),xmlk[k].childNodes[0].nodeValue];
					}else{
						va[l]=[na[j],xmlk[k].childNodes[0].nodeValue];
					}
				}else{
					va[l]=[na[j],xmlk[k].childNodes[0].nodeValue];
				}
				outstr+=va[l]+'\n';
			}
		}
	}

	//alert(outstr);
	//xmlToTable(va);

	return va
}

function getNodeName(xmldoc,duplicate){
	/*
	取得子節點標籤名稱
	輸入項:
		xmldoc		:xml文件
		duplicate	:boolean,允許重複項,預設為 true
	輸出項:
		Array()
		以第一層子節點標籤名稱組成的陣列
	*/

	var d;
	var na=[];

	d=(typeof duplicate=='undefined')?true:duplicate;

	for (var i=0;i<xmldoc.childNodes.length;i++){
		if (xmldoc.childNodes[i].hasChildNodes()){
			na=na.concat(xmldoc.childNodes[i].tagName);
		}
	}

	na=(d)?na:na.unique();

	return na
}

function createXML(){

	var str='';

	for (var i=0;i<ma.length;i+=3){
		str+='<li><a title="'+ma[i+2][1]+'" href="'+ma[i][1]+'">'+ma[i+1][1]+'</a></li>';
	}
	//alert("str_t="+str_t);
    document.getElementById("news").innerHTML=str;
}
//
function createXML_t(){

	var str_t='<ul>';

	for (var i=0;i<ma_t.length;i+=5){
		str_t+='<li> <strong>Dear '+ma_t[i][1]+'</strong><br /> &ldquo;'+ma_t[i+1][1]+' &rdquo; <br /><cite> '+ma_t[i+3][1]+'</cite><br /><cite><span>'+ma_t[i+2][1]+' <br/>  '+ma_t[i+4][1]+'</span></cite></li>';                  	 
		//str+='<li><a title="'+ma[i+2][1]+'" href="'+ma[i][1]+'">'+ma[i+1][1]+'</a></li>';
	}
	str_t+='</ul>';
	//alert(str_t);
    document.getElementById("Testimonial").innerHTML=str_t;
}

//-->
