var
Win=window,
Doc=document,
Loc=location,		

winSW=Win.screen.width,		
winSH=Win.screen.height,
wthId=(winSW<900)?0:1,

isIE =(Doc.all)?1:0,		
isNS6=(Doc.getElementById)?1:0,
isCSS=(isIE || isNS6)?1:0,
isAll=(isIE || isNS6)?1:0,
winSon=null;
winTask=null;

String.prototype.rmBlank=rmBlank;

var SortYES=true;

function cssLoad()	{ Doc.writeln("<link rel='stylesheet' href='style"+isCSS+".css'>"); }
function rmBlank()	{ return this.replace(/ /g,""); }
function gotoURL(url)	{ eval("location='"+url+"'"); }

function chgSubmit(x,url)
{
 x.action=url; 
 x.submit();
 return false; 
}

function askGoto(msg,url)
{
 if (confirm(msg)) gotoURL(url); 
}

function askUnchk(msg,x,s)
{
 if (!confirm(msg))
  return false;
 if (s) x.submit();
}

function askSubmit(msg,x)
{
 if (confirm(msg)) x.submit();
 return false;
}

function chkItem(x,a,c)
{
 for (var i=0; i<a.length; i++)
  if (eval("x."+a[i]))
   eval("x."+a[i]+".checked="+(c?"ture":"false"));
}

function cntItem(x)
{
 var cnt=0,z=x.options;
 for (var i=0; i<z.length; i++) {
  if (z[i].value.charAt(1)=='*')
   z[i].selected=false;
  if (z[i].selected) cnt++;
 }
 return cnt;
}

var btnName=["add","del"];
var selName=["selFree","selUsed"];

function btnCtrl(x,n,hook)
{
 var c=0,m=n?0:1,y=eval("x."+selName[m]),z=eval("x."+selName[n]+".options");
 allItem(y,0);
 y.selectedIndex=-1;
 for (var i=0; i<z.length; i++) {
  if (z[i].value.charAt(1)=='*')
   z[i].selected=false;
  if (z[i].selected) c++;
 }
 eval("x."+btnName[m]+".disabled=true");
 eval("x."+btnName[n]+".disabled="+(c?"false":"true"));
 if (hook) hook(x);
}

function addItem(x,nt,nv,qs,hook)
{
 var y=x.selUsed;
 for (var i=0; i<x.selFree.length; i++) {
  var z=x.selFree.options[i];
  if (z.value.charAt(1)=='*')
   z.selected=false;
  else if (z.selected) {
   y.options[y.length]=new Option(!nt?z.text:nt(z.text),!nv?z.value:nv(z.value));
   y.options[y.length-1].style.color=x.selFree.options[i].style.color;		//JLxxx
   x.selFree.options[i--]=null;
  }
 }
 if (qs) QSort(y.options,0,y.length-1,qs);
 if (hook) hook(x);
 x.add.disabled=true;
 x.del.disabled=true;
}

function delItem(x,nt,nv,qs,hook)
{
 var y=x.selFree;
 for (var i=0; i<x.selUsed.length; i++) {
  var z=x.selUsed.options[i];
  if (z.value.charAt(1)=='*')
   z.selected=false;
  else if (z.selected) {
   y.options[y.length]=new Option(!nt?z.text:nt(z.text),!nv?z.value:nv(z.value));
   y.options[y.length-1].style.color=x.selUsed.options[i].style.color;		//JLxxx
   x.selUsed.options[i--]=null;
  }
 }
 if (qs) QSort(y.options,0,y.length-1,qs);
 if (hook) hook(x);
 x.add.disabled=true;
 x.del.disabled=true;
}

function QSort(x,xlo,xhi,qs)
{
	if(SortYES){
		 var lo=xlo,hi=xhi,mid;
		 if (xhi>xlo) {
		  mid=qs(x,Math.floor((xlo+xhi)/2));
		  while(lo<=hi) {
		   while(lo<xhi && qs(x,lo)<mid) ++lo;
		   while(hi>xlo && qs(x,hi)>mid) --hi;
		   if(lo<=hi) {
//		    var t=x[lo].text,v=x[lo].value;
		    var t=x[lo].text,v=x[lo].value,c=x[lo].style.color;		//JLxxx
		    x[lo].text =x[hi].text;
		    x[lo].value=x[hi].value;
		    x[lo].style.color=x[hi].style.color;			//JLxxx
		    x[hi].text =t;
		    x[hi].value=v;
		    x[hi].style.color=c;					//JLxxx
		    lo++; hi--;
		   }
		  }
		  if(xlo<hi) QSort(x,xlo,hi,qs);
		  if(lo<xhi) QSort(x,lo,xhi,qs);
		 }
	}
}

function allItem(x,n)
{
 for (var i=0; i<x.length; i++)
  x.options[i].selected=(n && x.options[i].value.charAt(1) !='*')?true:false;
}

function selItem(x,u,f,n)
{
 if (u) allItem(x.selUsed,n);
 if (f) allItem(x.selFree,n);
}

function chkIpSet(x,obj)
{
 for (var i=0; i<obj.length; i++) {
  var y=eval("x."+obj[i]);
  if (y && !y.disabled)
   if (chkIP(y.value)<0)
    return -i;
 }
 return 1;
}

function chkIP(s)
{
 var c,i=j=k=m=n=0;

 if ((s=s.rmBlank())=="") return 0;
 for (i=0; i<s.length; i++) {
  c=s.charAt(i);
  if (c<'0'||c>'9') {
   if (!n || c!='.') return -1;
   m++; 
  }
  else n=1;
 }
 if (m!=3) return -1;
 if (s.charAt(s.length-1)!='.') s+=".";
 for (i=0; i<4; i++,j=k+1) {
  k=s.indexOf(".",j);
  if (k<0 || parseInt(s.substring(j,k),10)>255) return -1;
 }
 return 1;
}

function dimShow(x,a,c)
{
 var n,y;
 for (var i=0; i<a.length; i++) {
  y=eval("x."+a[i]);
  n=isNaN(c)?c[i]:c; 
  if (y) y.disabled=n?false:true;
 }
}

function dimShowbyid(a,c)
{
 var n,y;
 for (var i=0; i<a.length; i++) {
  y=document.getElementById(a[i]);
  n=isNaN(c)?c[i]:c; 
  if (y) y.disabled=n?false:true;
 }
}

//----------------------------------------------------------------------------
var BtnId;
var BtnNo=1;
var DefBg=["#0060C0","#D8D8D8"];
var DefMo=["#0000FF","#FFFFFF"];
var BdCtl=[["outset","#FFFFFF #000000 #000000 #FFFFFF"],
					 ["inset", "#000000 #FFFFFF #FFFFFF #000000"]];

function SetStyle(x,n,bg)
{
 x.style.backgroundColor=bg;
 x.style.borderStyle=BdCtl[n][0];
 x.style.borderColor=BdCtl[n][1];
}

function BtnIE(w,h,bd,bg,mo,css,txt,jvs,func)
{
 var Style,Color,Width;
 
 BtnId="Btn"+BtnNo++;
 if (jvs) jvs=' onclick="'+jvs+'"';
 if(bd>=0) {
  Style=BdCtl[0][0];
  Color=BdCtl[0][1];
  Width=bd;
 }
 else {
  Style=BdCtl[1][0];
  Color=BdCtl[1][1];
  Width=-bd;
 }
 Doc.writeln("<style type='text/css'> #"+BtnId+" { z-index:100; background-color:"+bg+
  "; border-style:"+Style+"; border-width:"+Width+"px; border-Color:"+Color+"; cursor:hand;}</style>"+
  "<table width="+w+" border=0 cellspacing=2 cellpadding=0><tr><td><div id="+BtnId+jvs+
  "><table width=100% border=0 cellpadding=0 cellspacing=0><tr><td nowrap height="+h+
  " class="+css+" onclick=\"" + func + "\">"+txt+"</td></tr></table></div></td><td></td></tr></table>");
 if (jvs) {
  var x=isIE?eval(BtnId):Doc.getElementById(BtnId);
  if (mo)
   x.onmouseover=function() { x.style.backgroundColor=mo; }
  if(bd<=0)
   x.onmouseout =function() { x.style.backgroundColor=bg; }
  else if(bd>0) {
   x.onmouseup  =function() { SetStyle(x,0,bg); }
   x.onmouseout =function() { SetStyle(x,0,bg); }
   x.onmousedown=function() { SetStyle(x,1,bg); }
  }
 }
}

function BtnNS(w,h,bd,bg,mo,css,txt,jvs)
{
 Doc.writeln(
  "<table border=0 cellspacing=2 cellpadding=0><tr><td>"+"<table width="+w+
  " border="+(bd?1:0)+" cellspacing=0 cellpadding=0><tr><td height="+(h+2)+
  " bgcolor="+bg+"><a href=\"javascript:"+jvs+"\" class="+css+">"+txt+
  "</a></td></tr></table></td></tr></table>");
}

function BtnXY(w,h,bd,bg,mo,css,txt,jvs)
{
 if (!bg)   bg =bd<0?DefBg[0]:DefBg[1];
 if (!mo)   mo =bd<0?DefMo[0]:DefMo[1];
 if (!css)  css=bd<0?"b0":"b1";
 if (!jvs)  jvs="";
 if (isAll) BtnIE(w,h,bd,bg,mo,css,txt,jvs);
 else       BtnNS(w,h,bd,bg,mo,css,txt,jvs);
}

function doHelp()
{

 wh.focus();
 return false;
}

function winPopUp(url,n,w,h,x,y,s,d)
{
// s=set size able?	
 return Win.open(url,n,"width="+w+",height="+h+",resizable=1,dependent="+d+",status=no,"+
                       "scrollbars=" + s + ",titlebar=0,menubar=0,toolbar=0,location=0,"+
                       (isIE?"left=":"screenX=")+x+(isIE?",top=":",screenY=")+y);
}
function winPopUp2(url,n,w,h,x,y,s,d)
{
// s=set size able?	
 return Win.open(url,n,"width="+w+",height="+h+",resizable=0,dependent="+d+",status=no,"+
                       "scrollbars=" + s + ",titlebar=0,menubar=0,toolbar=0,location=0,"+
                       (isIE?"left=":"screenX=")+x+(isIE?",top=":",screenY=")+y);
}
function winExit(msg) { if (confirm(msg)) Win.close(); }

function replaceString(oldS,newS,fullS) {
	// Replaces oldS with newS in the string fullS
  for(var i=0; i<fullS.length; i++){
	   if(fullS.substring(i,i+oldS.length) == oldS){
		    fullS = fullS.substring(0,i)+newS+fullS.substring(i+oldS.length,fullS.length);
  	 }
	}
  return fullS;
}

String.prototype.replaceAll = strReplace;
function strReplace(findText, replaceText)
{
   var str = new String(this);
   while (str.indexOf(findText)!=-1) {
      str = str.replace(findText, replaceText);
   }
   return str;
}

function checkchinese(str)
{
  var strlen=str.length;
  if(strlen>0){
    var oldstrlen=str.length
    for(var i=0;i<strlen;i++) {
      c='';  c = escape(str.charAt(i));
      if( c.charAt(0) == '%') {
        cc = c.charAt(1);//IE~u,NS~A
        if(cc =='A' ||cc =='u'){ return true; }
      }
    }
  return false; } else { return false; }
}

function StringChecker(str, arg, obj)
{
	if(arg == "") return str;
	var argvalue,nPosB,nPosC,i,j,strtemp,JobBoolens;
	var argname = "trim";
	var nPosA = arg.indexOf(argname);
	/* arg : trim */
	if(nPosA >= 0){
		nPosB = arg.indexOf("=", nPosA);
		nPosC = arg.indexOf(",", nPosB);
		if(nPosC >= nPosB) argvalue = arg.substring(nPosA + argname.length+1, nPosC);
		else argvalue = arg.substring(nPosA + argname.length+1);
		JobBoolen = false;
		var BoolTemp = false;
		switch(argvalue)
		{
			case "head":
				strtemp = "";
				for(i=0; i<str.length; i++)
				{
					if(str.substring(i,i+1) != " "){
						strtemp += str.substring(i,i+1);
						JobBoolen = true;
					}else{
						if(JobBoolen)	break;
						BoolTemp = true;
					}
				}
				if(i<str.length) strtemp += str.substring(i);
				str = strtemp;
				break;
			case "tail":
				strtemp = "";
				for(i=str.length; i>0; i--)
				{
					if(str.substring(i-1,i) != " "){
						strtemp = str.substring(i-1,i)+strtemp ;
						JobBoolen = true;
					}else{
						if(JobBoolen)	break;
						BoolTemp = true;
					}
				}
				if(i<str.length) strtemp = str.substring(0, i) + strtemp;
				str = strtemp;
				break;
			case "filter":
				strtemp = "";
				for(i=0; i<str.length; i++)
				{
					if(str.substring(i,i+1) != " "){
						strtemp += str.substring(i,i+1);
						JobBoolen = true;
					}else{
						if(JobBoolen)	break;
						BoolTemp = true;
					}
				}
				if(i<str.length) strtemp += str.substring(i);
				str = strtemp;
				strtemp = "";
				JobBoolen = false;
				for(i=str.length; i>0; i--)
				{
					if(str.substring(i-1,i) != " "){
						strtemp = str.substring(i-1,i)+strtemp ;
						JobBoolen = true;
					}else{
						if(JobBoolen)	break;
						BoolTemp = true;
					}
				}
				if(i<str.length) strtemp = str.substring(0, i) + strtemp;
				str = strtemp;
				break;
			case "all":
				strtemp = "";
				for(i=0; i<str.length; i++)
				{
					if(str.substring(i,i+1) != " "){
						strtemp += str.substring(i,i+1);
						BoolTemp = true;
					}
				}
				str = strtemp;
				break;
			case "no":
				break;
		}
		if(BoolTemp){
			if(obj){
				obj.value = str;
			}else{
				return false;
			}
		}
	}
	JobBoolen = true;
	argname = "strlvl";
	nPosA = arg.indexOf(argname);
	/* arg : strlvl */
	if(nPosA >= 0){
		nPosB = arg.indexOf("=", nPosA);
		nPosC = arg.indexOf(",", nPosB);
		if(nPosC >= nPosB) argvalue = arg.substring(nPosA + argname.length+1, nPosC);
		else argvalue = arg.substring(nPosA + argname.length+1);
		switch(argvalue)
		{
			case "0":   //don't worry, default setting
				break;
			case "1":		//argvalue=1: character range in ASCII(32)~ASCII(126)
				strtemp="";
				for(i=0; i<str.length; i++){
					if(toAscii(str.substring(i,i+1)) > 0){
						strtemp += str.substring(i,i+1);
					}else{
						error_code = 2;
						JobBoolen = false;
					}
				}
				str = strtemp;
				break;
			case "2":		//argvalue=2: character range is 0~9,A~Z,a~z and .
				strtemp="";
				var num;
				for(i=0; i<str.length; i++){
					num = toAscii(str.substring(i,i+1));
					if((num > 47 && num < 58) || (num > 64 && num < 91) || (num > 96 && num <123) || num == 46){
						strtemp += "" + str.substring(i,i+1);
					}else{
						error_code = 2;
						JobBoolen = false;
					}
				}
				str = strtemp;
				break;
			case "3":		//character range is 0~9 and .
				strtemp="";
				var num;
				for(i=0; i<str.length; i++){
					num = toAscii(str.substring(i,i+1));
					if((num > 47 && num < 58) || num == 46){
						strtemp += "" + str.substring(i,i+1);
					}else{
						error_code = 2;
						JobBoolen = false;
					}
				}
				str = strtemp;
				break;
			case "4":   //for name string (except: [*/\\?@#%^|!&<>,:;[]'\"])
				var exceptstr = "<>\"";
				strtemp="";
				if(str=="." || str=="..")
				{
					error_code = 2;
					JobBoolen = false;
				}
				if(JobBoolen)
				{
					for(i=0; i<str.length; i++){
						if(exceptstr.indexOf(str.substring(i,i+1)) < 0){
							strtemp += "" + str.substring(i,i+1);
						}else{
							error_code = 2;
							JobBoolen = false;
						}
					}
				}
				str = strtemp;
				break;
			case "5":   //for path string (except: [*/<>\?@#$%^|!&;"])
				var exceptstr = "<>\"";
				strtemp="";
				for(i=0; i<str.length; i++){
					if(exceptstr.indexOf(str.substring(i,i+1)) < 0){
						strtemp += "" + str.substring(i,i+1);
					}else{
						error_code = 2;
						JobBoolen = false;
					}
				}
				str = strtemp;
				break;
			case "6":   //for name string (except: [*/\\?@#%^|!&<>,:;[]\"])
				var exceptstr = "/\\<>\"";
				strtemp="";
				for(i=0; i<str.length; i++){
					if(exceptstr.indexOf(str.substring(i,i+1)) < 0){
						strtemp += "" + str.substring(i,i+1);
					}else{
						error_code = 2;
						JobBoolen = false;
					}
				}
				str = strtemp;
				break;
			case "7":   //for name string (except: [<>/\?@#%^,|!&:[]"])
				var exceptstr = "<>\"";
				strtemp="";
				for(i=0; i<str.length; i++){
					if(exceptstr.indexOf(str.substring(i,i+1)) < 0){
						strtemp += "" + str.substring(i,i+1);
					}else{
						error_code = 2;
						JobBoolen = false;
					}
				}
				str = strtemp;
				break;
			case "8":   //for name string (except: [<>"])
				var exceptstr = "<>\"";
				strtemp="";
				for(i=0; i<str.length; i++){
					if(exceptstr.indexOf(str.substring(i,i+1)) < 0){
						strtemp += "" + str.substring(i,i+1);
					}else{
						error_code = 2;
						JobBoolen = false;
					}
				}
				str = strtemp;
				break;
			case "9":   //for name string (except: [*/\\?@#%^|!&<>,:;[].\"])
				var exceptstr = "<>\"";
				strtemp="";
				if(JobBoolen)
				{
					for(i=0; i<str.length; i++){
						if(exceptstr.indexOf(str.substring(i,i+1)) < 0){
							strtemp += "" + str.substring(i,i+1);
						}else{
							error_code = 2;
							JobBoolen = false;
						}
					}
				}
				str = strtemp;
				break;
		}
	}else{
		JobBoolen = true;
	}
	if(JobBoolen){
		argname = "length";
		nPosA = arg.indexOf(argname);
		/* arg : length */
		if(nPosA >= 0){
			nPosB = arg.indexOf("=", nPosA);
			nPosC = arg.indexOf(",", nPosB);
			if(nPosC >= nPosB) argvalue = arg.substring(nPosA + argname.length+1, nPosC);
			else argvalue = arg.substring(nPosA + argname.length+1);
			var slen = 0;
			JobBoolen=true;
			for(var i=0; i<str.length; i++)
			{
				if(str.charCodeAt(i) > 256) slen += 2;
				else slen ++;
				if(parseInt(argvalue,10) < slen){
					str = str.substring(0,i);
					JobBoolen=false;
					error_code = 0;
					break;
				}
			}
		}
	}
	if(JobBoolen){
		argname = "empty";
		nPosA = arg.indexOf(argname);
		/* arg : empty */
		if(nPosA >= 0){
			nPosB = arg.indexOf("=", nPosA);
			nPosC = arg.indexOf(",", nPosB);
			if(nPosC >= nPosB) argvalue = arg.substring(nPosA + argname.length+1, nPosC);
			else argvalue = arg.substring(nPosA + argname.length+1);
			switch(argvalue)
			{
				case "yes":
					JobBoolen = true;
					break;
				case "no":
					if(str.length > 0)
						JobBoolen = true;
					else{
						error_code = 1;
						JobBoolen = false;
					}break;
			}
		}else{
			JobBoolen = true;
		}
	}
	argname = "return";
	nPosA = arg.indexOf(argname);
	/* arg : return */
	if(nPosA >= 0){
		nPosB = arg.indexOf("=", nPosA);
		nPosC = arg.indexOf(",", nPosB);
		if(nPosC >= nPosB) argvalue = arg.substring(nPosA + argname.length+1, nPosC);
		else argvalue = arg.substring(nPosA + argname.length+1);
		switch(argvalue)
		{
			case "string":
				return str;
				break;
			case "boolen":
				return JobBoolen;
				break;
		}
	}else{
		return str;
	}
}
var error_msg = new Array(
	"資料長度過長，請重新檢查!",
	"請將資料填入相關欄位!",
	"所輸入的資料格式錯誤，請檢查!"
);
var error_code = -1;
function toAscii(ch)
{
	var symbols = " !\"#$%&'()*+'-./0123456789:;<=>?@";
	var loAZ = "abcdefghijklmnopqrstuvwxyz";
	symbols+= loAZ.toUpperCase();
	symbols+= "[\\]^_`";
	symbols+= loAZ;
	symbols+= "{|}~";
	var loc;
	loc = symbols.indexOf(ch);
	if (loc > -1) { 
		Ascii_Decimal = 32 + loc;
		return (32 + loc);
  }
	return(0);  // If not in range 32-126 return ZERO
}
function MainChangeImage(oo, imgfile)
{
	oo.src = imgfile;
}
function keyupchklen(obj, max)
{
 var jsLen, byteLen;
 var strcheck=replaceString("%s",max,ChkLenMax);
 jsLen = obj.value.length;
 byteLen=0;
 for (var i=0; i<obj.value.length; i++){
  if (obj.value.charCodeAt(i)>256) byteLen+=2;
  else byteLen++;
  if (byteLen>=max){
	 alert(strcheck);
   obj.value=obj.value.substr(0,i+1);
	 obj.focus();
	 obj.select();
   break;
  }
 }
}
function blurchklen(obj,max)
{
 var jsLen, byteLen;
 jsLen = obj.value.length;
 byteLen=0;
 for (var i=0; i<obj.value.length; i++){
  if (obj.value.charCodeAt(i)>256) byteLen+=2;
  else byteLen++;
  if (byteLen>max){
	 alert(ChkLenAgain);
   obj.value=obj.value.substr(0,i);
	 obj.focus();
	 obj.select();
	 SubmitFalg = false;
   break;
  }
 }
}
function stringchklen(str, max)
{
 var jsLen, byteLen;
 jsLen = str.length;
 byteLen=0;
 for (var i=0; i<str.length; i++){
  if (str.charCodeAt(i)>256) byteLen+=2;
  else byteLen++;
  if (byteLen>max)
	{
	 return false;
	}
 }
 return true;
}
function replaceQuot(str)
{
	str = replaceString('\\','',str);
	return str;
}
function checkDisabledOption(fmName, obj, argdo, argboolen)
{
	var xobj = eval(fmName+"."+obj);
	if(!argdo) return; //要不要做
	if(argboolen) xobj.disabled=false;
	else xobj.disabled=true;
}
function myTable()
{
	this.myborder="1";
	this.mycellpadding="1";
	this.mycellspacing="1";
	this.mywidth="95%";
	this.myheight="";
	this.no_available="&nbsp;";
	this.myth=new Array();
	this.mysortflag=new Array();
	this.mysortup=new Array();
	this.mysortdown=new Array();
	this.mytd=new Array();
	this.show=redrawtable;
	this.qsort=myQSort;
	this.sortrec=0;
}
function myElement(a,w,d)
{
	this.myalign=a;
	this.mywidth=w;
	this.mydata=d;
}
function myQSort(it,way)
{
	if(mt.mytd.length==0) return;
	this.mysortflag[it]=((way==0)? 1:0);
	this.sortrec=it;
	this.mytd=mergesort(this.mytd, it, way);
}
function redrawtable()
{
	var str="<table", i;
	if(this.myborder != "")
		str+=" border=\""+this.myborder+"\"";
	if(this.mycellpadding != "")
		str+=" cellpadding=\""+this.mycellpadding+"\"";
	if(this.mycellspacing != "")
		str+=" cellspacing=\""+this.mycellspacing+"\"";
	if(this.mywidth != "")
		str+=" width=\""+this.mywidth+"\"";
	if(this.myheight != "")
		str+=" height=\""+this.myheight+"\"";
	str+=" style=\"border-collapse: collapse\" bordercolor=\"#111111\" id=\"AutoNumber5\"";
	str+=">";
	str+="<tr>";
	for(i=0; i<this.myth.length; i++)
	{
		str+="<td class=\"t3Bx\" bgcolor=\"#E1F4FF\"";
		if(this.myth[i].myalign != "")
			str+=" align=\""+this.myth[i].myalign+"\"";
		if(this.myth[i].mywidth != "")
			str+=" width=\""+this.myth[i].mywidth+"\"";
		str+=">";
		if(this.mysortflag[i]==0)
		{
			if(this.mysortup[i] != "")
			{
				str+="<a href=\"#\" onclick=\"mt.qsort("+i+",0); mt.show(); return false;\">";
				str+=this.myth[i].mydata;
				if(this.sortrec==i)
					str+=this.mysortup[i];
				str+="</a>";
			}
			else
				str+=this.myth[i].mydata;
		}
		else if(this.mysortflag[i]==1)
		{
			if(this.mysortdown[i] != "")
			{
				str+="<a href=\"#\" onclick=\"mt.qsort("+i+",1); mt.show(); return false;\">";
				str+=this.myth[i].mydata;
				if(this.sortrec==i)
					str+=this.mysortdown[i];
				str+="</a>";
			}
			else
				str+=this.myth[i].mydata;
		}
		str+="</td>";
	}
	str+="</tr>";
	if(this.mytd.length>0)
	{
		for(i=0; i<this.mytd.length; i++)
		{
			str+="<tr>";
			for(j=0; j<this.mytd[i].length; j++)
			{
				str+="<td class=\"xx\"";
				if(this.mytd[i][j].myalign != "")
					str+=" align=\""+this.mytd[i][j].myalign+"\"";
				if(this.mytd[i][j].mywidth != "")
					str+=" width=\""+this.mytd[i][j].mywidth+"\"";
				str+=">";
				if(this.mytd[i][j].mydata=="")
					str+="&nbsp;";
				else
					str+=this.mytd[i][j].mydata;
				str+="</td>";
			}
			str+="</tr>";
		}
	}
	else
	{
		str+="<tr><td align=\"center\" class=\"xx\" colspan=\""+this.myth.length+"\">"+this.no_available+"</td></tr>";
	}
	str+="</table>";
	document.getElementById("dyntb").innerHTML=str;
}
function mergesort(arr, it, way)
{
	if(arr.length==1)
		return arr;
	else if(arr.length==2)
	{
		if(mycompare(arr[0][it].mydata,arr[1][it].mydata,way)>0)
			return ChangeValueArr(arr, 0, 1);
	}
	var i,j,a1=[],a2=[],a3=[],numb=Math.floor(arr.length/2),numc;
	j=0;
	numc=arr.length-numb;
	for(i=0; i<numb; i++,j++)
	{
		a1[i]=arr[j];
		a2[i]=arr[j+numb];
	}
	if((i+j)<arr.length)
		a2[i]=arr[j+numb];
	a1=mergesort(a1, it, way);
	a2=mergesort(a2, it, way);
  i=0; j=0;
  for(k=0; k<arr.length; k++)
  {
    if(i<numb && j<numc)
    {
      if(mycompare(a1[i][it].mydata,a2[j][it].mydata,way)<0)
      {
				a3[k] = a1[i];
        i++;
      }
      else
      {
				a3[k] = a2[j];
      	j++;
      }
      continue;
    }
    if(i<numb)
    {
			a3[k] = a1[i];
      i++;
      continue;
    }
    if(j<numc)
    {
			a3[k] = a2[j];
      j++;
    }
  }
	return a3;
}
function mycompare(a,b,way)
{
	if(way==1)
	{
		if(a.toUpperCase()>b.toUpperCase())
			return -1;
		else if(a.toUpperCase()<b.toUpperCase())
			return 1;
		else
			return 0;
	}
	else
	{
		if(a.toUpperCase()>b.toUpperCase())
			return 1;
		else if(a.toUpperCase()<b.toUpperCase())
			return -1;
		else
			return 0;
	}
}

var Sel1=new Array("==請選擇縣市==,0;","台北市,DIS001;","台北縣,DIS003;","基隆市,DIS002;","桃園縣,DIS007;","新竹市,DIS005;","新竹縣,DIS006;","苗栗縣,DIS008;","台中市,DIS009;","台中縣,DIS010;","彰化縣,DIS011;","南投縣,DIS012;","雲林縣,DIS015;","嘉義市,DIS013;","嘉義縣,DIS014;","台南市,DIS016;","台南縣,DIS017;","高雄市,DIS018;","高雄縣,DIS019;","屏東縣,DIS021;","台東縣,DIS022;","花蓮縣,DIS023;","宜蘭縣,DIS004;","金門縣,DIS024;","澎湖縣,DIS020;","連江縣,DIS025;","南海諸島,DIS026;","釣魚台,DIS027;");
var Sel2=new Array();
Sel2[0] = new Array("==請選擇區域==,0;郵遞區號");
Sel2[1] = new Array("==請選擇區域==,0;郵遞區號","大同區,ZIP103;103","中正區,ZIP100;100","中山區,ZIP104;104","松山區,ZIP105;105","大安區,ZIP106;106","萬華區,ZIP108;108","信義區,ZIP110;110","士林區,ZIP111;111","北投區,ZIP112;112","內湖區,ZIP114;114","南港區,ZIP115;115","文山區,ZIP116;116");
Sel2[2] = new Array("==請選擇區域==,0;郵遞區號","萬里鄉,ZIP207;207","金山鄉,ZIP208;208","板橋市,ZIP220;220","汐止市,ZIP221;221","深坑鄉,ZIP222;222","石碇鄉,ZIP223;223","瑞芳鎮,ZIP224;224","平溪鄉,ZIP226;226","雙溪鄉,ZIP227;227","貢寮鄉,ZIP228;228","新店市,ZIP231;231","坪林鄉,ZIP232;232","烏來鄉,ZIP233;233","永和市,ZIP234;234","中和市,ZIP235;235","土城市,ZIP236;236","三峽鎮,ZIP237;237","樹林市,ZIP238;238","鶯歌市,ZIP239;239","三重市,ZIP241;241","新莊市,ZIP242;242","泰山鄉,ZIP243;243","林口鄉,ZIP244;244","蘆洲市,ZIP247;247","五股鄉,ZIP248;248","八里鄉,ZIP249;249","淡水鎮,ZIP251;251","三芝鄉,ZIP252;252","石門鄉,ZIP253;253");
Sel2[3] = new Array("==請選擇區域==,0;郵遞區號","仁愛區,ZIP200;200","信義區,ZIP201;201","中正區,ZIP202;202","中山區,ZIP203;203","安樂區,ZIP204;204","暖暖區,ZIP205;205","七堵區,ZIP206;206");
Sel2[4] = new Array("==請選擇區域==,0;郵遞區號","中壢市,ZIP320;320","平鎮市,ZIP324;324","龍潭鄉,ZIP325;325","楊梅鎮,ZIP326;326","新屋鄉,ZIP327;327","觀音鄉,ZIP328;328","桃園市,ZIP330;330","龜山鄉,ZIP333;333","八德市,ZIP334;334","大溪鎮,ZIP335;335","復興鄉,ZIP336;336","大園鄉,ZIP337;337","蘆竹鄉,ZIP338;338");
Sel2[5] = new Array("==請選擇區域==,0;郵遞區號","新竹市,ZIP300;300");
Sel2[6] = new Array("==請選擇區域==,0;郵遞區號","竹北市,ZIP302;302","北埔鄉,ZIP314;314","竹東鎮,ZIP310;310","湖口鄉,ZIP303;303","新埔鄉,ZIP305;305","新豐鄉,ZIP304;304","關西鎮,ZIP306;306","寶山鄉,ZIP308;308","橫山鄉,ZIP312;312","尖石鄉,ZIP313;313","峨眉鄉,ZIP315;315","芎林鄉,ZIP307;307","五峰鄉,ZIP311;311");
Sel2[7] = new Array("==請選擇區域==,0;郵遞區號","竹南,ZIP350;350","頭份,ZIP351;351","三灣,ZIP352;352","南庄,ZIP353;353","獅潭,ZIP354;354","後龍,ZIP356;356","通霄,ZIP357;357","苑裡,ZIP358;358","苗栗,ZIP360;360","造橋,ZIP361;361","頭屋,ZIP362;362","公館,ZIP363;363","大湖,ZIP364;364","泰安,ZIP365;365","銅鑼,ZIP366;366","三義,ZIP367;367","西湖,ZIP368;368","卓蘭,ZIP369;369");
Sel2[8] = new Array("==請選擇區域==,0;郵遞區號","中區,ZIP400;400","東區,ZIP401;401","南區,ZIP402;402","西區,ZIP403;403","北區,ZIP404;404","北屯區,ZIP406;406","西屯區,ZIP407;407","南屯區,ZIP408;408");
Sel2[9] = new Array("==請選擇區域==,0;郵遞區號","太平,ZIP411;411","大里,ZIP412;412","霧峰,ZIP413;413","烏日,ZIP414;414","豐原,ZIP420;420","后里,ZIP421;421","石岡,ZIP422;422","東勢,ZIP423;423","和平,ZIP424;424","新社,ZIP426;426","潭子,ZIP427;427","大雅,ZIP428;428","神岡,ZIP429;429","大肚,ZIP432;432","沙鹿,ZIP433;433","龍井,ZIP434;434","梧棲,ZIP435;435","清水,ZIP436;436","大甲,ZIP437;437","外埔,ZIP438;438","大安,ZIP439;439");
Sel2[10] = new Array("==請選擇區域==,0;郵遞區號","彰化,ZIP500;500","芬園,ZIP502;502","花壇,ZIP503;503","秀水,ZIP504;504","鹿港,ZIP505;505","福興,ZIP506;506","線西,ZIP507;507","和美,ZIP508;508","伸港,ZIP509;509","員林,ZIP510;510","社頭,ZIP511;511","永靖,ZIP512;512","埔心,ZIP513;513","溪湖,ZIP514;514","大村,ZIP515;515","埔鹽,ZIP516;516","田中,ZIP520;520","北斗,ZIP521;521","田尾,ZIP522;522","埤頭,ZIP523;523","溪州,ZIP524;524","竹塘,ZIP525;525","二林,ZIP526;526","大城,ZIP527;527","芳苑,ZIP528;528","二水,ZIP530;530");
Sel2[11] = new Array("==請選擇區域==,0;郵遞區號","集集,ZIP552;552","水里,ZIP553;553","魚池,ZIP555;555","信義,ZIP556;556","竹山,ZIP557;557","鹿谷,ZIP558;558","南投,ZIP540;540","中寮,ZIP541;541","草屯,ZIP542;542","國姓,ZIP544;544","埔里,ZIP545;545","仁愛,ZIP546;546","名間,ZIP551;551");
Sel2[12] = new Array("==請選擇區域==,0;郵遞區號","斗南,ZIP630;630","大埤,ZIP631;631","虎尾,ZIP632;632","土庫,ZIP633;633","褒忠,ZIP634;634","東勢,ZIP635;635","臺西,ZIP636;636","崙背,ZIP637;637","麥寮,ZIP638;638","斗六,ZIP640;640","林內,ZIP643;643","古坑,ZIP646;646","莿桐,ZIP647;647","西螺,ZIP648;648","二崙,ZIP649;649","北港,ZIP651;651","水林,ZIP652;652","口湖,ZIP653;653","四湖,ZIP654;654","元長,ZIP655;655");
Sel2[13] = new Array("==請選擇區域==,0;郵遞區號","嘉義市,ZIP600;600");
Sel2[14] = new Array("==請選擇區域==,0;郵遞區號","番路,ZIP602;602","梅山,ZIP603;603","竹崎,ZIP604;604","阿里山,ZIP605;605","中埔,ZIP606;606","大埔,ZIP607;607","水上,ZIP608;608","鹿草,ZIP611;611","太保,ZIP612;612","朴子,ZIP613;613","東石,ZIP614;614","六腳,ZIP615;615","新港,ZIP616;616","民雄,ZIP621;621","大林,ZIP622;622","溪口,ZIP623;623","義竹,ZIP624;624","布袋,ZIP625;625");
Sel2[15] = new Array("==請選擇區域==,0;郵遞區號","中區,ZIP700;700","東區,ZIP701;701","南區,ZIP702;702","西區,ZIP703;703","北區,ZIP704;704","安平區,ZIP708;708","安南區,ZIP709;709");
Sel2[16] = new Array("==請選擇區域==,0;郵遞區號","永康,ZIP710;710","歸仁,ZIP711;711","新化,ZIP712;712","左鎮,ZIP713;713","玉井,ZIP714;714","楠西,ZIP715;715","南化,ZIP716;716","仁德,ZIP717;717","關廟,ZIP718;718","龍崎,ZIP719;719","官田,ZIP720;720","麻豆,ZIP721;721","佳里,ZIP722;722","西港,ZIP723;723","七股,ZIP724;724","將軍,ZIP725;725","學甲,ZIP726;726","北門,ZIP727;727","新營,ZIP730;730","後壁,ZIP731;731","白河,ZIP732;732","東山,ZIP733;733","六甲,ZIP734;734","下營,ZIP735;735","柳營,ZIP736;736","鹽水,ZIP737;737","善化,ZIP741;741","大內,ZIP742;742","山上,ZIP743;743","新市,ZIP744;744","安定,ZIP745;745");
Sel2[17] = new Array("==請選擇區域==,0;郵遞區號","新興區,ZIP800;800","前金區,ZIP801;801","苓雅區,ZIP802;802","鹽埕區,ZIP803;803","鼓山區,ZIP804;804","旗津區,ZIP805;805","前鎮區,ZIP806;806","三民區,ZIP807;807","楠梓區,ZIP811;811","小港區,ZIP812;812","左營區,ZIP813;813");
Sel2[18] = new Array("==請選擇區域==,0;郵遞區號","桃源,ZIP848;848","三民,ZIP849;849","茂林,ZIP851;851","茄萣,ZIP852;852","仁武,ZIP814;814","大社,ZIP815;815","岡山,ZIP820;820","路竹,ZIP821;821","阿蓮,ZIP822;822","田寮,ZIP823;823","燕巢,ZIP824;824","橋頭,ZIP825;825","梓官,ZIP826;826","彌陀,ZIP827;827","永安,ZIP828;828","湖內,ZIP829;829","鳳山,ZIP830;830","大寮,ZIP831;831","林園,ZIP832;832","鳥松,ZIP833;833","大樹,ZIP840;840","旗山,ZIP842;842","美濃,ZIP843;843","六龜,ZIP844;844","內門,ZIP845;845","杉林,ZIP846;846","甲仙,ZIP847;847");
Sel2[19] = new Array("==請選擇區域==,0;郵遞區號","屏東,ZIP900;900","三地,ZIP901;901","霧臺,ZIP902;902","瑪家,ZIP903;903","九如,ZIP904;904","里港,ZIP905;905","高樹,ZIP906;906","鹽埔,ZIP907;907","長治,ZIP908;908","麟洛,ZIP909;909","竹田,ZIP911;911","內埔,ZIP912;912","萬丹,ZIP913;913","潮州,ZIP920;920","泰武,ZIP921;921","來義,ZIP922;922","萬巒,ZIP923;923","崁頂,ZIP924;924","新埤,ZIP925;925","南州,ZIP926;926","林邊,ZIP927;927","東港,ZIP928;928","琉球,ZIP929;929","佳冬,ZIP931;931","新園,ZIP932;932","枋寮,ZIP940;940","枋山,ZIP941;941","春日,ZIP942;942","獅子,ZIP943;943","車城,ZIP944;944","牡丹,ZIP945;945","恆春,ZIP946;946","滿州,ZIP947;947");
Sel2[20] = new Array("==請選擇區域==,0;郵遞區號","台東,ZIP950;950","綠島,ZIP951;951","蘭嶼,ZIP952;952","延平,ZIP953;953","卑南,ZIP954;954","鹿野,ZIP955;955","關山,ZIP956;956","海端,ZIP957;957","池上,ZIP958;958","東河,ZIP959;959","成功,ZIP961;961","長濱,ZIP962;962","太麻里,ZIP963;963","金峰,ZIP964;964","大武,ZIP965;965","達仁,ZIP966;966");
Sel2[21] = new Array("==請選擇區域==,0;郵遞區號","花蓮,ZIP970;970","新城,ZIP971;971","秀林,ZIP972;972","吉安,ZIP973;973","壽豐,ZIP974;974","鳳林,ZIP975;975","光復,ZIP976;976","豐濱,ZIP977;977","瑞穗,ZIP978;978","萬榮,ZIP979;979","玉里,ZIP981;981","卓溪,ZIP982;982","富里,ZIP983;983");
Sel2[22] = new Array("==請選擇區域==,0;郵遞區號","宜蘭,ZIP260;260","頭城,ZIP261;261","礁溪,ZIP262;262","壯圍,ZIP263;263","員山,ZIP264;264","羅東,ZIP265;265","三星,ZIP266;266","大同,ZIP267;267","五結,ZIP268;268","冬山,ZIP269;269","蘇澳,ZIP270;270","南澳,ZIP272;272");
Sel2[23] = new Array("==請選擇區域==,0;郵遞區號","金沙,ZIP890;890","金湖,ZIP891;891","金寧,ZIP892;892","金城,ZIP893;893","列嶼,ZIP894;894","烏坵,ZIP896;896");
Sel2[24] = new Array("==請選擇區域==,0;郵遞區號","馬公,ZIP880;880","西嶼,ZIP881;881","望安,ZIP882;882","七美,ZIP883;883","白沙,ZIP884;884","湖西,ZIP885;885");
Sel2[25] = new Array("==請選擇區域==,0;郵遞區號","南竿,ZIP209;209","北竿,ZIP210;210","莒光,ZIP211;211","東引,ZIP212;212");
Sel2[26] = new Array("==請選擇區域==,0;郵遞區號","東沙,ZIP817;817","南沙,ZIP819;819");
Sel2[27] = new Array("==請選擇區域==,0;郵遞區號","釣魚台列嶼,ZIP290;290");

function ChangeValueArr(arr,a,b)
{
	var tmp=arr[a];
	arr[a]=arr[b];
	arr[b]=tmp;
	return arr;
}
function SetSel1(TargetObj,DefaultValue) 
{  
	SetValue(TargetObj,Sel1,DefaultValue);	 
}
function SetSel2(SelectedObj,TargetObj,DefaultValue){  
	SetValue(TargetObj,Sel2[GetSelectedValue(SelectedObj)],DefaultValue);  
}
function SetZip(SelectedObj1,SelectedObj2,SelectedObj3){  
	var ZipStr = Sel2[GetSelectedValue(SelectedObj1)][GetSelectedValue(SelectedObj2)];  
	var ind = ZipStr.indexOf(";");  
	SelectedObj3.value = ZipStr.substr(ind+1);  
}
function GetSelectedValue (TargetObj){
	var i,length;
	var j=0;
	length = TargetObj.length;
	for(i=0;i<length;i++)
		if (TargetObj.options[i].selected){
			j=i;
		}
		return (j);
}
function SetValue(TargetObj,ValueArray,DefaultValue){
	var i,init=0;
	with (TargetObj){
		var length = ValueArray.length;
		for (i=0;i<length;i++){
			var tmpStr = ValueArray[i];
			var ind = tmpStr.indexOf(",");
			var ind2 = tmpStr.indexOf(";");
			TargetObj.options[i].value=tmpStr.substr(ind+1,ind2-ind-1);
			TargetObj.options[i].text=tmpStr.substr(0,ind);
			if (tmpStr.substr(ind+1,ind2-ind-1)==DefaultValue) init=i;
		}
		TargetObj.options[init].selected=true;
	}  
}
function setDefaultByZip(SelectedObj1, SelectedObj2, Value1, Value2, zip)
{
	var i,j;
	var length = Value2.length;
	var DefSel1=0;
	var DefSel2=0;
	var ISGOT=false;
	for (i=0; i<length; i++)
	{
		var length2 = Value2[i].length;
		for(j=0; j<length2; j++)
		{
			var tmpStr = Value2[i][j];
			var ind = tmpStr.indexOf(",");
			var ind2 = tmpStr.indexOf(";");
			var ind3 = Value1[i].indexOf(",");
			var ind4 = Value1[i].indexOf(";");
			if(zip==tmpStr.substr(ind2+1))
			{
				DefSel1=Value1[i].substr(ind3+1,ind4-ind3-1);
				DefSel2=tmpStr.substr(ind+1,ind2-ind-1);
				ISGOT=true;
				break;
			}
		}
		if(ISGOT) break;
	}
	SetSel1(SelectedObj1, DefSel1);
	SetSel2(SelectedObj1, SelectedObj2, DefSel2);
}
/*
檢查是否為空字串
return: true=空字串
        false=非空字串
*/
function checkEmpty(s)
{
	if(s=="")	return true;
	else return false;
}
/*
檢查是否含有中文字或是 2 byte 的字
return: true=含中文
        false=不含中文
*/
function have_2byte_code(s)
{
	for (var i=0; i<s.length; i++)
	{
		if (s.charCodeAt(i)>256)
			return true;
	}
	return false;
}
/*
檢查是否所有的字都是 2 byte
return: true=都是 2 byte
        false=含有不是 2 byte 的字
*/
function all_2byte_code(s)
{
	for (var i=0; i<s.length; i++)
	{
		if (s.charCodeAt(i)<256)
			return false;
	}
	return true;
}
/*
檢查字串是否超過長度
return: true=沒超過
        false=超過長度
*/
function checkLength(s, n)
{
	var jsLen, byteLen;
	jsLen = s.length;
	byteLen=0;
	for (var i=0; i<s.length; i++)
	{
		if (s.charCodeAt(i)>256) byteLen+=2;
		else byteLen++;
		if (byteLen>n)
		{
			return false;
		}
	}
	return true;
}
/*
檢查是否含有不合法字元
return: true=有不合法字元
        false=沒有不合法字元
*/
function have_illegal_char(s, illegalStr)
{
	for (var i=0; i<s.length; i++)
	{
		if (illegalStr.indexOf(s.charAt(i))>=0)
			return true;
	}
	return false;
}

/*
檢查是否為 E-mail 格式
return: true=E-mail 格式
        false=不是 E-mail 格式
*/
function is_email_format(s)
{
	var lmn=0;
	var dotn=0;
	if(s.indexOf(" ") >= 0) return false;
	for (var i=0; i<s.length; i++)
	{
		if (s.charAt(i) == "@")	lmn++;
		if ((s.charAt(i) == ".") && (lmn > 0))	dotn++;
	}
	if((lmn == 1) && (dotn>0))
		return true;
	else
		return false;
}

/*
檢查是否為合法的數字字串
return: true=合法
        false=不合法
*/
function is_numberic_str(s)
{
	var dot_N=0;
	if(s.charAt(0)=="0") return true;
	if((s.charAt(0)=="0") && (s.charAt(1)!=".")) return false;
	for(var i=0; i<s.length; i++)
	{
		if(i==0)
		{
			if(!(((s.charAt(i)>="0") && (s.charAt(i)<="9")) || (s.charAt(i)=="-")))
				return false;
		}
		else
		{
			if((s.charAt(i)<"0") || (s.charAt(i)>"9"))
			{
				if(s.charAt(i)=="." && dot_N<1)
				{
					dot_N++;
					continue;
				}
				return false;
			}
		}
	}
	return true;
}

/*
檢查是否為合法的手機號碼
return: true=合法
        false=不合法
*/
function is_mobile_str(s)
{
	if(s.length != 10)
		return false;
	if(s.substring(0, 2) != "09")
		return false;
	return true;
}

/*
檢查字串最小與最大的長度
return: true=通過
        false=不通過
*/
function str_len_check(s, min_len, max_len)
{
	var jsLen, byteLen, pass1, pass2;
	jsLen = s.length;
	byteLen=0;
	pass1 = pass2 = false;
	for (var i=0; i<s.length; i++)
	{
		if (s.charCodeAt(i)>256) byteLen+=2;
		else byteLen++;
		if (byteLen<min_len)
			pass1 = false;
		else
			pass1 = true;
		
		if (byteLen>max_len)
			pass2 = false;
		else
			pass2 = true;
	}
	if(pass1 && pass2)
		return true;
	else
		return false;
}

var HTML_EDITOR_FORM="";
var HTML_EDITOR_NAME="";
var HTML_EDITOR_TITLE="";
var HTML_EDITOR_DIV="";
function open_heml_edit(x, tt, ta, dn, dr)
{
	HTML_EDITOR_FORM=x.name;
	HTML_EDITOR_TITLE=tt;
	HTML_EDITOR_NAME = ta;
	HTML_EDITOR_DIV = dn;
	var winx = winPopUp(dr+"admin/html_edit.php",HTML_EDITOR_NAME,780,540,0,0,0,1);
	winx.focus();
}

function get_html_title()
{
	return HTML_EDITOR_TITLE;
}

function get_html_edit()
{
	var obj = eval("document." + HTML_EDITOR_FORM + "." + HTML_EDITOR_NAME);
	return obj.value;
}

function set_html_edit(htmlstr)
{
	var obj = eval("document." + HTML_EDITOR_FORM + "." + HTML_EDITOR_NAME),
			obj1 = document.getElementById(HTML_EDITOR_DIV);
	htmlstr = replaceString("~||~", "\"", htmlstr)
	obj.value = htmlstr;
	obj1.innerHTML = htmlstr;
	HTML_EDITOR_FORM="";
	HTML_EDITOR_NAME="";
	HTML_EDITOR_TITLE="";
	HTML_EDITOR_DIV="";
}

function string_shorten(s, n)
{
	var s1="", j=0, k=0, rc=true;
	for(var i=0; i<s.length; i++){
		if(j > n) rc=false;
		if(rc){
			s1 += s.charAt(i);
			if(s.charCodeAt(i) > 256) j+=2;
			else j++;
		}
		if(s.charCodeAt(i) > 256) k+=2;
		else k++;
	}
	if(j < k) s1 += "...";
	return s1;
}

function jsNumberFormat(num, loc)
{
	var s = num;
	s = s.toFixed(loc);
	return s;
}

function checkLogin(x)
{
	var error_msg1 = new Array(
		"登入名稱長度過長，請重新檢查!",
		"請填入您的帳號!",
		"所輸入的資料格式錯誤，請檢查!"
	);
	var obj = eval("x.LoginName");
	if(!StringChecker(obj.value, "trim=all,strlvl=2,length=20,empty=no,return=boolen", obj))
	{
		alert(error_msg1[error_code]);
		obj.focus();
		return false;
	}
	obj = eval("x.LoginPswd");
	if(obj.value == "")
	{
		alert("請輸入登入密碼!");
		obj.focus();
		return false;
	}
	return true;
}

function OrderEpaper(x)
{
	if(x.Email.value == "")
	{
		alert("請輸入您的 E-Mail!");
		x.Email.focus();
		return false;
	}
	if(!is_email_format(x.Email.value))
	{
		alert("E-Mail 格式錯誤!\n\n請輸入正確的 E-Mail 信箱!");
		x.Email.select();
		x.Email.focus();
		return false;
	}
	if(confirm("您所訂閱電子報的 E-Mail 為:\n\n" + x.Email.value + "\n\n如正確, 請按確定?"))
	return true;
}

function fooddata (arr)
{
	this.FID          = arr[0];
	this.FoodName     = arr[1];
	this.KCal         = arr[2];
	this.Protein      = arr[3];
	this.Fat          = arr[4];
	this.Carbohydrate = arr[5];
	this.ThickFiber   = arr[6];
	this.FoodFiber    = arr[7];
	this.Cholesterol  = arr[8];
	this.VitaminsA    = arr[9];
	this.VitaminsE    = arr[10];
	this.VitaminsB1   = arr[11];
	this.VitaminsB2   = arr[12];
	this.Tobacco      = arr[13];
	this.VitaminsB6   = arr[14];
	this.VitaminsB12  = arr[15];
	this.VitaminsC    = arr[16];
	this.Sodium       = arr[17];
	this.Potassium    = arr[18];
	this.Calcium      = arr[19];
	this.Magnesium    = arr[20];
	this.Phosphorous  = arr[21];
	this.Iron         = arr[22];
	this.Zinc         = arr[23];
	this.Amount       = "";
	this.Weight       = 0;
	this.Unit         = "";
	this.setToZero    = DataSetToZero;
	this.setToArray   = DataSetToArray;
}
function DataSetToArray()
{
	var arr = new Array();
	arr[0]  = this.FID;
	arr[1]  = this.FoodName;
	arr[2]  = this.KCal;
	arr[3]  = this.Protein;
	arr[4]  = this.Fat;
	arr[5]  = this.Carbohydrate;
	arr[6]  = this.ThickFiber;
	arr[7]  = this.FoodFiber;
	arr[8]  = this.Cholesterol;
	arr[9]  = this.VitaminsA;
	arr[10] = this.VitaminsE;
	arr[11] = this.VitaminsB1;
	arr[12] = this.VitaminsB2;
	arr[13] = this.Tobacco;
	arr[14] = this.VitaminsB6;
	arr[15] = this.VitaminsB12;
	arr[16] = this.VitaminsC;
	arr[17] = this.Sodium;
	arr[18] = this.Potassium;
	arr[19] = this.Calcium;
	arr[20] = this.Magnesium;
	arr[21] = this.Phosphorous;
	arr[22] = this.Iron;
	arr[23] = this.Zinc;
	return arr;
}
function DataSetToZero()
{
	this.FID          = 0;
	this.FoodNAME     = '';
	this.KCal         = 0;
	this.Protein      = 0;
	this.Fat          = 0;
	this.Carbohydrate = 0;
	this.ThickFiber   = 0;
	this.FoodFiber    = 0;
	this.Cholesterol  = 0;
	this.VitaminsA    = 0;
	this.VitaminsE    = 0;
	this.VitaminsB1   = 0;
	this.VitaminsB2   = 0;
	this.Tobacco      = 0;
	this.VitaminsB6   = 0;
	this.VitaminsB12  = 0;
	this.VitaminsC    = 0;
	this.Sodium       = 0;
	this.Potassium    = 0;
	this.Calcium      = 0;
	this.Magnesium    = 0;
	this.Phosphorous  = 0;
	this.Iron         = 0;
	this.Zinc         = 0;
	this.Amount       = "";
	this.Weight       = 0;
	this.Unit         = "";
}
