if (typeof(awp_tablemaker)=="undefined"){

awp_tablemaker=function(){
 this.self="";
this.debug=null;
 this.tableHTML_path="";
 this.tableHTML_attr="";
 this.pageHTML_path="";
 this.pageHTML_attr="";
 this.dataXML_path="";
 this.dataXML_attr="";
 this.dataXML_order="";


 this.collength=1;//列的比數
 this.trid="awp_tablemaker_tr";//給TR指定的名稱

 this.dataXML="";//資料

 this.tableObj="";//TABLE的擺放位置
 this.tableHTML="";//TABLE的套件資料
 this.changedataelement="td";//當TABLE完成時,要變成的資料元件名
 this.changeclasstype="keepone";//被CLICK時的變化
 this.changeclassenable=true;//被CLICK時的變化


 this.pageObj="";//跳頁要擺放的位置
 this.pageHTML="";//跳頁的套件資料
 this.pagelength=10;//一頁的長度
 this.bigpage=10;//大跳頁
 this.additionpage=1;//如果超過10頁,會在後面加的頁數

 this.curpage=1;//目前頁數
 this.totalrows=1;//資料總比數
 this.totalpages=1;//頁數
 this.tabledata=new Array;

 this.awp_changeclass=null;
 this.awp_alterdata=null; 
 this.awp_ajax=new awp_ajax();


 this.aftermake="";
 this.clickfunction="";
 this.emptyrecord="";
 this.downloadDataMode=0;

 this.makepage=function(myObj,pageObj)
 {

	var tempf1=myObj + ".makepage('" +myObj+ "','" + pageObj +"');";
	tempf1=myObj + ".maketable([ed_number]);" + tempf1;

	this.totalrows=this.getVar(this.dataXML,"totalrows",1);
	this.totalpages=this.getVar(this.dataXML,"totalpages",1);

	var tempt1=document.getElementById(pageObj);
	
	if (this.pageHTML!="" && tempt1!=null && typeof(this.dataXML)=="object"){
		var temps1=this.pageHTML;
		temps1=temps1.replace(/\[ed_bigpage]/gi,this.bigpage);
		temps1=temps1.replace(/\[ed_currentpage]/gi,this.curpage);
		temps1=temps1.replace(/\[ed_totalpage]/gi,this.totalpages);
		
		tempt1.innerHTML=temps1;
		//加入數字
		var tempa1=document.getElementById("page_curpage");
		var tempa2=document.getElementById("page_notcurpage");
		var tempk1=this.curpage % this.bigpage;
		tempk1=(tempk1==0)?this.bigpage : tempk1;
		var tempp1=(this.curpage > this.bigpage)?this.additionpage:0;
		for (var tempi=(this.curpage-tempk1+1 -tempp1); tempi <=(this.curpage-tempk1+this.bigpage+this.additionpage) && tempi <= this.totalpages;tempi++)
		{
			var tempa3=(tempi==this.curpage) ? tempa1.cloneNode(true):tempa2.cloneNode(true);
			tempa3.id="page_number" +tempi;
			tempa3.innerHTML=tempa3.innerHTML.replace(/\[ed_number]/gi,tempi);

				var tempf2=tempf1.replace(/\[ed_number]/gi,tempi);
				this.setEvent(tempa3,"onclick",tempf2);

			tempa1.parentNode.insertBefore(tempa3,tempa1);
		}
		tempa1.parentNode.removeChild(tempa1);
		tempa2.parentNode.removeChild(tempa2);

		//非數字跳頁
		var tempa1=document.getElementById("page_firstone");
		if (tempa1!=null)
		{
			if (this.curpage==1){tempa1.style.display="none";}
			else
			{
				var tempf2=tempf1.replace(/\[ed_number]/gi,1);
				tempa1.style.display="";
				this.setEvent(tempa1,"onclick",tempf2);
			}
			tempa1.id=pageObj + "_" + tempa1.id;
		}

		var tempa1=document.getElementById("page_preone");
		if (tempa1!=null)
		{
			if (this.curpage==1){tempa1.style.display="none";}
			else
			{
				var tempf2=tempf1.replace(/\[ed_number]/gi,this.curpage-1);
				tempa1.style.display="";
				this.setEvent(tempa1,"onclick",tempf2);
			}
			tempa1.id=pageObj + "_" + tempa1.id;
		}

		var tempa1=document.getElementById("page_nextone");
		if (tempa1!=null)
		{
			if (this.curpage>=this.totalpages){tempa1.style.display="none";}
			else
			{
				var tempf2=tempf1.replace(/\[ed_number]/gi,this.curpage+1);
				tempa1.style.display="";
				this.setEvent(tempa1,"onclick",tempf2);
			}
			tempa1.id=pageObj + "_" + tempa1.id;
		}

		var tempa1=document.getElementById("page_endone");
		if (tempa1!=null)
		{
			if (this.curpage>=this.totalpages){tempa1.style.display="none";}
			else
			{
				var tempf2=tempf1.replace(/\[ed_number]/gi,this.totalpages);
				tempa1.style.display="";
				this.setEvent(tempa1,"onclick",tempf2);
			}
			tempa1.id=pageObj + "_" + tempa1.id;
		}


		var tempa1=document.getElementById("page_preten");
		if (tempa1!=null)
		{
			if (this.totalpages<=this.bigpage || this.curpage<this.bigpage || this.bigpage<=1){tempa1.style.display="none";}
			else
			{
				var tempf2=tempf1.replace(/\[ed_number]/gi,this.curpage-(this.curpage%this.bigpage) - this.bigpage+1);
				tempa1.style.display="";
				this.setEvent(tempa1,"onclick",tempf2);
			}
			tempa1.id=pageObj + "_" + tempa1.id;
		}
		var tempa1=document.getElementById("page_nextten");
		if (tempa1!=null)
		{
			if (this.totalpages<=this.bigpage || this.bigpage<=1 || this.curpage >= (this.totalpages - (this.totalpages % this.bigpage))){tempa1.style.display="none";}
			else
			{
				var tempf2=tempf1.replace(/\[ed_number]/gi,this.curpage-(this.curpage%this.bigpage) + this.bigpage+1);
				tempa1.style.display="";
				this.setEvent(tempa1,"onclick",tempf2);
			}
			tempa1.id=pageObj + "_" + tempa1.id;
		}
//tempt1.innerHTML=tempt1.innerHTML;


		var tempf1=tempt1.getElementsByTagName("script");
		for (var tempi=0;tempi < tempf1.length;tempi++)
		{
			var tempf2=new Function(tempf1[tempi].innerHTML);
			tempf2();
		}
		
	}


 }

 this.maketable=function(thePageno)
 {	
	this.curpage=thePageno;

	var tempt30=this.dataXML.getElementsByTagName("page" + thePageno);
	if (tempt30.length == 0)
	{
		this.getXMLdata1();
		return false;
	}

	theObj=this.tableObj;
	theTableObj=this.tableHTML;
	var tempt1=document.getElementById(theObj);
	var tempt2=document.createElement("span");

	theTableObj=theTableObj.replace(/\{a_tablemakername}/gi,this.self);
	theTableObj=theTableObj.replace(/\{h_tablemakername}/gi,this.self);
	theTableObj=theTableObj.replace(/\{s_tablemakername}/gi,this.self);
	tempt2.innerHTML=theTableObj;

	var temps2=tempt2.getElementsByTagName("table");
	if (temps2.length ==0) {return null;}
	var temps1=temps2[0];
	var temptable=this.copyAttribute("table",temps1);

	var tempe1=tempt2.getElementsByTagName('tr');
	var temptr="";
	for (var tempi=0;tempi < tempe1.length;tempi++)
	{
		var temps1=tempe1[tempi];
		if (temps1.getAttribute("type")=="subtitle")
		{
			var temptablename=temps1.getAttribute("srctable");
			if (temptablename!=null)
			{
			var temptablenames=temptablename.split(",");
			for (var tempi1=0;tempi1 < temptablenames.length;tempi1++)
			{
				this.getTableData(temptablenames[tempi1]);
			}
			}

			temps4=temps1.innerHTML;

			//將SUBTITLE的DATA寫入
			if (this.tabledata !=null)
			{
			for (var tempi1=0;tempi1 < this.tabledata.length;tempi1++)
			{
				temptablename=this.tabledata[tempi1][0];
				tempxml1=this.tabledata[tempi1][1];
				tempxmlelement1=tempxml1.getElementsByTagName("main");
				if (tempxmlelement1.length > 0){
					temps4=this.putinData(temps4,tempxmlelement1[0]);
				}
			}
			}
			var temptr3=this.copyAttribute("tr",temps1);
			temptr+=temptr3.replace(/></gi,">" + temps4 + "<");
		}
		else if (temps1.getAttribute("type")=="data")
		{

		
			var tempt30=this.dataXML.getElementsByTagName("page" + thePageno);
		 if (tempt30.length > 0)
		 {
			var temptr2=this.copyAttribute("tr",temps1);
			var tempt3=tempt30[0].getElementsByTagName("data");

			for (var tempi1=0;tempi1 < tempt3.length;tempi1)
			{
				var temps4="";
				var temps2=temps1.innerHTML;
				var temptr3=temptr2;
				temptr3=temptr3.replace(/\{a_trid}/gi,this.trid);

				for (var tempi2=0;tempi2 < this.collength;tempi2++)
				{
					var temp_currecord=tempi1;
					if (temp_currecord < tempt3.length)
					{
						var temps3=this.putinData(temps2,tempt3[temp_currecord]);
						temptr3=this.putinData(temptr3,tempt3[temp_currecord]);
						temps4+=temps3;
					}

					tempi1++;
				}
				temptr+=temptr3.replace(/></gi,">" + temps4 + "<");
			}
		 }
		}
		else
		{
			//這裡應該要COPY其他的TR
			
		}
	}

	temptable=temptable.replace(/></gi,">" + temptr + "<");

	tempt1.innerHTML=temptable;

	//ftablemaker.changedataelement="td,span";
	if (this.changedataelement==null) {this.changedataelement="";}
	var tempd2=this.changedataelement.split(",");

	for(var tempi=0;tempi < tempd2.length;tempi++)
	{
		if (tempd2[tempi]!="")
		{
			if (this.awp_alterdata==null){this.awp_alterdata=new awp_alterdata();}
			if (this.awp_alterdata!=null)
			{
				this.awp_alterdata.make(this.tableObj,tempd2[tempi]);
if (this.debug!=null){this.debug.writeline("alter data ");}
			}
		}
	}
	if (this.changeclassenable==true)
	{
		if (this.awp_changeclass==null){this.awp_changeclass=new awp_changeclass();}
		if (this.awp_changeclass!=null)
		{
			var tempa1=(this.collength==1)?"tr":"td";
if (this.debug!=null){this.debug.writeline("change class --" + tempa1);}
			this.awp_changeclass.set(this.tableObj,tempa1,this.trid,this.changeclasstype,this.clickfunction);
		}
	}
//pagepage
	var tempsplit1=this.pageObj.split(",");
	if (tempsplit1.length==0){}
	else if (tempsplit1.length==1)
	{this.makepage(this.self,this.pageObj);}
	else if (tempsplit1.length>1)
	{
		for(var tempi=0;tempi < tempsplit1.length;tempi++)
		{this.makepage(this.self,tempsplit1[tempi]);}
	}



	var tempt1=tempt1.getElementsByTagName("script");
	for(var tempi=0;tempi < tempt1.length;tempi++)
	{
if (this.debug!=null){this.debug.writeline(tempt1[tempi].innerHTML);}
		var tempf1=new Function(tempt1[tempi].innerHTML);
		tempf1();
	}


	if (typeof(this.aftermake)=="function"){this.aftermake();}
	else if (this.aftermake!=null && this.aftermake!="")
	{
		var tempf1=new Function(this.aftermake);
		tempf1();
	}
 }  

 this.putinData=function(theString,theXML)
 {
	var tempt1=theXML.childNodes;
	for (var tempi=0;tempi < tempt1.length;tempi++)
	{
		if (tempt1[tempi].nodeType==1)
		{
		var tempname=tempt1[tempi].nodeName;

		var tempvalue=(tempt1[tempi].hasChildNodes()) ? tempt1[tempi].firstChild.nodeValue : "";
		var tempvalue1=tempvalue;
		var tempvalue2=tempvalue;
		var tempvalue3=tempvalue;

		tempvalue1=tempvalue1.replace(/ /g,"&nbsp;");
		tempvalue1=tempvalue1.replace(/</g,"&lt;");
		tempvalue1=tempvalue1.replace(/\n/g,"<BR>\n");

		tempvalue2=tempvalue2.replace(/"/g,"'");


		var tempreg1=new RegExp("\{h_" + tempname + "}","gi");
		var tempreg2=new RegExp("\{a_" + tempname + "}","gi");
		var tempreg4=new RegExp("%7Ba_" + tempname + "%7D","gi");
		var tempreg3=new RegExp("\{s_" + tempname + "}","gi");

		theString=theString.replace(tempreg1,tempvalue1);
		theString=theString.replace(tempreg2,tempvalue2);
		theString=theString.replace(tempreg4,tempvalue2);
		theString=theString.replace(tempreg3,tempvalue3);
		}
	}
	return theString;
 }
 this.copyAttribute=function(toObj,fromData){
	var temptr1=document.createElement(toObj);
			
	var tempa1=fromData.attributes;
	for (var tempi3=0;tempi3 < tempa1.length;tempi3++)
	{
		var tempname=tempa1[tempi3].name;
		var tempvalue=tempa1[tempi3].value;
		if (tempvalue=="null" || tempvalue==null || tempvalue==""){}
		else{temptr1.setAttribute(tempname,tempvalue);}
	}
	temptr1.removeAttribute("disabled");
	temptr1.removeAttribute("hideFocus");

	if (toObj=="tr")
	{
		eventName="onmouseover";
		var temp_func1="awp_tablemaker_currentCounti='{a_counti}';";
		if (temptr1.getAttribute(eventName)!=null){temp_func1 += temptr1.getAttributeNode(eventName).value;}	
		if (window.attachEvent){temptr1.attachEvent(eventName,new Function(temp_func1));}
		var tempA1=document.createAttribute(eventName);
		tempA1.nodeValue=temp_func1;
		temptr1.setAttributeNode(tempA1);
	}

	var tempt5=document.createElement("span");
	tempt5.appendChild(temptr1);
	return tempt5.innerHTML;
 }
 this.getTableData=function(tableName,tablepath)
 {
	if (tablepath==null){tablepath="tables";}
	if (this.tabledata!=null)
	{
	for (var tempi=0;tempi < this.tabledata.length;tempi++)
	{
		if (this.tabledata[tempi][0]==tableName){return tempi;}
	}
	}
	var tempAjax=new awp_ajax();
	var tempob=tempAjax.getData("","./" +tablepath+ "/" + tableName + ".xml");

	var tempa1=new Array(2);
	tempa1[0]=tableName;
	tempa1[1]=tempob.responseXML;
	this.tabledata.push(tempa1);
	return tempi;
 }
 this.getVar=function(theXML,theName,theDefault)
 {
	var tempt1=theXML.getElementsByTagName(theName);
	if (tempt1.length > 0)
	{
		return tempt1[0].firstChild.nodeValue;
	}
	else
	{
		return theDefault;
	}
 }
 this.setEvent=function(tempa1,eventName,tempf2)
 {
	var eventName="onclick";
	if (window.attachEvent)	{tempa1.attachEvent(eventName,new Function(tempf2));}
	var tempa2=document.createAttribute(eventName);
	tempa2.nodeValue=tempf2;
	tempa1.setAttributeNode(tempa2);
 }
 this.getXMLdata=function()
 {
if (this.debug!=null){this.debug.writeline(this.dataXML_path);}
	this.awp_ajax.getText(this.dataXML_attr + "&pagestart="+ this.curpage +"&pagelength=" +this.pagelength+ "&pageneed=" + this.bigpage + "&orderby=" + this.dataXML_order,this.dataXML_path,"awp_tablemaker_receive",this.self);
 }
 this.getXMLdata1=function()
 {
//debug.writeline("read --" + this.curpage);
	var tempsplit1=this.pageObj.split(",");
	for(var tempi=0;tempi < tempsplit1.length;tempi++)
	{
		var tempt1=document.getElementById(tempsplit1[tempi]);
		if (tempt1!=null)
		{
			tempt1.innerHTML="";
		}
	}

	this.awp_ajax.getText(this.dataXML_attr + "&pagestart="+ this.curpage +"&pagelength=" +this.pagelength+ "&pageneed=1&orderby=" + this.dataXML_order,this.dataXML_path,"awp_tablemaker_make",this.self);
 }

 this.setdXMLdata=function(theXML)
 {
	if (typeof(this.dataXML)=="string")
	{
		this.dataXML=theXML.cloneNode(true);
	}else{
		var tempt1=theXML.getElementsByTagName("main");
		var tempt2=this.dataXML.getElementsByTagName("main");
		if (tempt1.length>0){
			for(var tempi=this.curpage;tempi < this.curpage + this.bigpage;tempi++)
			{
				var tempt3=tempt1[0].getElementsByTagName("page" + tempi);
				
				if (tempt3.length > 0)
				{
					var tempt4=tempt3[0].cloneNode(true);
					tempt2[0].appendChild(tempt4);
				}
			}
		}
	}
 }
 this.clearData=function()
 {
	this.curpage=1;
	this.dataXML="";
	var tempt1=document.getElementById(this.tableObj);
	if (tempt1!=null){tempt1.innerHTML="";}

	
	var tempt1=document.getElementById(this.pageObj);
	if (tempt1!=null){tempt1.innerHTML="";}

 }

 this.deleterecord=function(recordno)
 {
	var tempt1=this.dataXML.getElementsByTagName("recordset" + recordno);
	if (tempt1.length > 0)
	{
		var tempt2=tempt1[0].parentNode;
		tempt2.parentNode.removeChild(tempt2);
		this.maketable(ftablemaker.curpage);
	}
 }

 this.getTotalRows=function(setspan)
 {
	var tempt1=this.dataXML.getElementsByTagName("totalrows");
	if (tempt1.length > 0)
	{ var tempv1=tempt1[0].firstChild.nodeValue;}
	else{var tempv1=0;}
if (ftablemaker.debug!=null){ftablemaker.debug.writeline("totalrows=" + tempv1);}
	if (setspan!=null)
	{
		var tempt1=document.getElementById(setspan);
		if (tempt1!=null){tempt1.innerHTML=tempv1;}
	}else{return tempv1;}	
 }

}

//function awp_tablemaker_go(ftablemaker)
awp_tablemaker_go=function(ftablemaker)
{	
if (ftablemaker.debug!=null){ftablemaker.debug.writeline("GO");}
	if (ftablemaker.tableHTML_path!="")
	{
if (ftablemaker.debug!=null){ftablemaker.debug.writeline(ftablemaker.tableHTML_path);}
		var tempt1=ftablemaker.awp_ajax.getData(ftablemaker.tableHTML_attr,ftablemaker.tableHTML_path);
if (ftablemaker.debug!=null){ftablemaker.debug.writeline(tempt1.responseText);}
		ftablemaker.tableHTML=tempt1.responseText;
	}
	
	if (ftablemaker.pageHTML_path!="")
	{
if (ftablemaker.debug!=null){ftablemaker.debug.writeline(ftablemaker.pageHTML_path);}
		var tempt2=ftablemaker.awp_ajax.getData(ftablemaker.pageHTML_attr,ftablemaker.pageHTML_path);
if (ftablemaker.debug!=null){ftablemaker.debug.writeline(tempt2.responseText);}
		ftablemaker.pageHTML=tempt2.responseText;
	}
	if (ftablemaker.dataXML_path!="")
	{
		ftablemaker.getXMLdata1();
		if (ftablemaker.downloadDataMode==1)
		{ftablemaker.getXMLdata();}
	}
}


//function awp_tablemaker_make(ob,fftablemaker)
awp_tablemaker_make=function(ob,fftablemaker)
{	
	ftablemaker=eval(fftablemaker);
if (ftablemaker.debug!=null){ftablemaker.debug.writeline(ob.responseText);}
	var tempt1=ob.responseXML;
	var tempt2=tempt1.getElementsByTagName("totalrows");
	if (tempt2.length > 0)
	{
		if (tempt2[0].firstChild.nodeValue!="0")
		{
			ftablemaker.setdXMLdata(ob.responseXML);
			ftablemaker.maketable(ftablemaker.curpage);
		}
		else
		{
			if (typeof(ftablemaker.emptyrecord)=="function"){this.emptyrecord();}
			else if (ftablemaker.emptyrecord!=null && ftablemaker.emptyrecord!="")
			{var tempf1=new Function(ftablemaker.emptyrecord);tempf1();}
		}
	}
}
//function awp_tablemaker_receive(ob,fftablemaker)
awp_tablemaker_receive=function(ob,fftablemaker)
{	
	ftablemaker=eval(fftablemaker);
	ftablemaker.setdXMLdata(ob.responseXML);
}
//function awp_tablemaker_makeorder(fftablemaker)
awp_tablemaker_makeorder=function(fftablemaker)
{
	ftablemaker=eval(fftablemaker);	
	ftablemaker.getXMLdata1();
	ftablemaker.getXMLdata();
}

}//typeof
