//----------- 鎖住右鍵 -------------------



function right(e) {

if (navigator.appName =='Netscape'&&

(e.which ==3|| e.which ==2))

return false;

else if (navigator.appName == 'Microsoft Internet Explorer' &&

(event.button == 2|| event.button ==3)) {

alert("Welcome to ABIT!!");

return false;

}

return true;

}

document.onmousedown=right;

if (document.layers) window.captureEvents(Event.MOUSEDOWN);

window.onmousedown=right;



//----------- 比對欄位值函數 -------------------

//FormName		:form 名稱

//ObjName		:輸入標籤名稱

//TagType		:輸入標籤種類 -->	S:select tag 

//									C:checkbox tag 

//									R:radio tag

//									T:text tag

//ValueType		:檢查值的型態 -->I:Integer  S:String

//CheckValue	:是否允0值 --> 1:not 0:yes

//Msg			:顯示的訊息

//------------------------------------------------------

function checkvalue(FormName,ObjName,TagType,ValueType,CheckValue,Msg)

{

	var flag = true;

	var value = GET_Value(FormName,ObjName,TagType);

	if ((!value)&&(value!=0)) //判斷 value 是否有被設定

	{

		flag = false;

	}

	else

	{	

		if (ValueType == 'I') //如果輸入型態為整數時

		{

			if ((value == '')||((CheckValue == '1')&&(value == '0')))

				flag = false;

			if (flag) flag = isNum(value)	

		}

		else

		{		

			if (value == '')

				flag = false;

		}

	}	

	if (! flag)	

	{ 

		shotTo(FormName,ObjName,TagType,Msg);

	}

	return flag;

}

//----------- 設定欄位焦點函數 -------------------

//FormName		:form 名稱

//ObjName		:輸入標籤名稱

//TagType		:輸入標籤種類 -->	S:select tag 

//									C:checkbox tag 

//									R:radio tag

//									T:text tag

//Msg			:顯示訊息

//------------------------------------------------------

function shotTo(FormName,ObjName,TagType,Msg) 

{ 

	var X = document.forms[FormName].elements[ObjName];

	if (Msg != '') alert(Msg);

	if ((TagType == 'C') || (TagType == 'R'))

	{

		if (!X.length) 

			X.focus();

		else

			X[0].focus(); //if tag is checkbox then set focus to first checkbox

	}		

	else X.focus();

} 

//----------- 取得欄位標籤所輸入之值 -------------------

//FormName		:form 名稱

//ObjName		:輸入標籤名稱

//TagType		:輸入標籤種類 -->	S:select tag 

//									C:checkbox tag 

//									R:radio tag

//									T:text tag

//------------------------------------------------------

function GET_Value(FormName,ObjName,TagType)

{

	var X = document.forms[FormName].elements[ObjName];

	if (TagType == 'S') { var i = X.selectedIndex;return X[i].value;}

	if ((TagType == 'C')||(TagType == 'R')) 

	{ 		

		if (!X.length) 

		{

			if (X.checked) return X.value;

		}

		else

		{

			var i = 0;

			while (i<X.length)

			{

				if (X[i].checked) return X[i].value;

				i++;

			}

		}	

	}

	if (TagType == 'T') { return X.value;}

}

//----------- 判斷是否為數值 -------------------

//chkStr		:判斷字串

//------------------------------------------------------

function isNum(chkStr)

{

	var cmp="0123456789.";

	var rc=true;

	var cmpChar;



	for(var i=0; i<chkStr.length; i++)

	{

		cmpChar=chkStr.substring(i,i+1)

		if(cmp.indexOf(cmpChar)<0)

		{

			rc=false;

			i=chkStr.length;

		}

	}

	return rc;

}

//----------- 判斷是否為16進制數值 -------------------

//chkStr		:判斷字串

//------------------------------------------------------

function is16Num(chkStr)

{

	var cmp="0123456789ABCDEFabcdef";

	var rc=true;

	var cmpChar;



	for(var i=0; i<chkStr.length; i++)

	{

		cmpChar=chkStr.substring(i,i+1)

		if(cmp.indexOf(cmpChar)<0)

		{

			rc=false;

			i=chkStr.length;

		}

	}

	return rc;

}

//----------- 判斷欄位是否為數值 -------------------

//FormName		:form 名稱

//ObjName		:輸入標籤名稱

//Msg			:顯示訊息

//------------------------------------------------------

function chkNum(FormName,ObjName,Msg)

{

	var rc=isNum(document.forms[FormName].elements[ObjName].value);

	if(!rc)

	{

		if(Msg!='')

			shotTo(FormName,ObjName,'T',Msg) ;

		else

			shotTo(FormName,ObjName,'T','Please Enter Number') ;

	}

	return rc;

}



//----------- 檢查email輸入之值 -------------------

//aa			:

//graf			:email value

//------------------------------------------------------

function checkemail1(aa, graf)

{

   var pos = 0;

   var num = -1;

   var i = -1;

   var email = new Array()

   while (pos != -1)

   {

      pos = graf.indexOf(";",i+1);

      num += 1;

      if (pos == -1) { email[num] = graf.substring(i+1,graf.length); }

      else { email[num] = graf.substring(i+1,pos); }

      i = pos;

   }

   for ( i = 0 ; i <= num ; i++ )

   {

     if (email[i].length > 0)

     {

       l=email[i].indexOf("@");

       j=email[i].indexOf(".",l);

       k=email[i].indexOf(",");

       kk=email[i].indexOf(" ");

       jj=email[i].lastIndexOf(".") + 1;

       ll=email[i].indexOf(":");

       mm=email[i].indexOf("(");

       nn=email[i].indexOf(")");

       oo=email[i].indexOf("：");

       len=email[i].length;



       if ((l <= 0) || (j <= (1+1)) || (k != -1) || (kk != -1) || (len-jj < 2) || (len-jj > 3) || (ll != -1) || (mm != -1 ) || (nn != -1) || (oo != -1))

       {

       	   if ( aa != "" ) { alert("Your " + aa + " E-mail [" + email[i] + "]is invalid !"); }

       	   else { alert("Your E-mail [" + email[i] + "] is invalid !"); }

           return false;

       }

     }

   }

   return true;

}



//----------- 判斷電話是否正確 -------------------

//FormName		:form 名稱

//ObjName		:輸入標籤名稱

//------------------------------------------------------

/*

var constTelFormat = "電話號碼格式為：" + "\n\n" +

       	             "【大台北地區，中部地區】─區碼為(0X) 電話號碼為8碼 格式：0X-XXXXXXXX" + "\n\n" +

               	     "【其他地區】─1. 區碼為2碼(0X) 電話號碼為7碼 格式：0X-XXXXXXX" + "\n\n" + 

               	     "　　　　　　　2. 區碼為3碼(03X) 電話號碼為6碼 格式：0XX-XXXXXX";

function isTel(FormName,ObjName)

{

	var Tel = document.forms[FormName].elements[ObjName].value;

	//if(Tel.length == 10 || Tel.length == 11)

	//{

		var index = Tel.indexOf("-");

		if(index == 2 || index == 3)

		{

			var i, iASCII;

			for(i = 0; i < index; i ++)

			{

				if(i != index)

				{

					iASCII = Tel.charCodeAt(i);

					if(iASCII < 48 || iASCII > 57)

						{

							return false;

							shotTo(FormName,ObjName,'T',constTelFormat); 

							break;

						}

				}

			}

			return true;

		}

		else

		{

			shotTo(FormName,ObjName,'T',constTelFormat);

			return false;

		}

	//}

	//else

	//{

	//	return false;

	//}

}



//----------- 判斷行動電話是否正確 -------------------

//FormName		:form 名稱

//ObjName		:輸入標籤名稱

//------------------------------------------------------

var constMobilFormat = "【行動電話】─前置碼為4碼(XXXX) 後置碼為6碼  格式：XXXX-XXXXXX";

function isMobil(FormName,ObjName)

{

	var value = document.forms[FormName].elements[ObjName].value;

	if (value.length != 11 && value.length > 0)

	{

		return false;

		shotTo(FormName,ObjName,'T',constMobilFormat); 

	}

	else

	{

		var j;

		var index = 4;

		for (j = 0; j < value.length; j++)

		{

			if (j != index)

			{

				iASCII = value.charCodeAt(j);

				if (iASCII < 48 || iASCII > 57)

				{

					shotTo(FormName,ObjName,'T',constMobilFormat); 

					return false;

				}

			}

		}

		return true;

	}

}

*/



//----------- 開啟新視窗 -------------------

//mylink		:url

//w				:window width

//h				:window height

//rs			:set change size :yes can change

//								 :no can't change

//sl			:set scroll bar :yes

//								:no								 

//------------------------------------------------------

function openwindow(mylink,w,h,rs,sl)

{

   var gt = unescape('%3e');

   var popup = null;

   var over = "Launch Pop-up Navigator";

   popup = window.open('','popwindow','width='+w+',height='+h+',resizable='+rs+',scrollbars='+sl+',top=50,left=20');

   if (popup != null) {

      if (popup.opener == null) {

         popup.opener = self; 

      }

      popup.location.href = mylink;

   }

}



//----------- 開啟新視窗(可設定位置) -------------------

//mylink		:url

//w				:window width

//h				:window height

//align			:set window align : center

//						 

//------------------------------------------------------

function openwindow2(mylink,w,h,align)

{

	var width=screen.width;

	var height=screen.height;

	var left = 50;

	var top = 50;

	if (w=='')

		w = width;

	if (h=='')

		h = height;

	if (align=='center')

	{

		left = (width-w)/2;

		top = (height-h)/2;

	}

	if(document.all)

		window.open(mylink,'popwindow','width='+w+',height='+h+',left='+left+',top='+top+',scrollbars=1');

	else

		window.open(mylink,'popwindow','width='+w+',height='+h+',screenX='+left+',screenY='+top);

}



//----------- 判斷年份是否是輸入數值 -------------------

//FormName		:form 的名稱

//YY			:輸入西元 year 的欄位名稱(<input type=text> 的模式)

//MM			:輸入 month 的欄位名稱(<select> 的模式)

//DD			:輸入 date 的欄位名稱(<select> 的模式)

//使用法		:配合 改變日期天數的選單 的函數 

//<input name="YY" type=text onblur="javascript:CheckYY('Send','YY','MM','DD');">年

//<select name="MM" onchange="javascript:ChangeDay('Send','YY','MM','DD');">

//------------------------------------------------------

function CheckYY(FormName,YY,MM,DD)

{

	var sflag = true;

	if (document.forms[FormName].elements[YY].value!='')

		if (! isNum(document.forms[FormName].elements[YY].value)) 

		{

			sflag = false;

			shotTo(FormName,YY,'T','Year Please Enter Number!!') 

		}

		else

			ChangeDay(FormName,YY,MM,DD);

	return sflag;		

			

}

//----------- 改變日期天數的選單 -------------------

//FormName		:form 的名稱

//YY			:輸入西元 year 的欄位名稱(<input type=text> 的模式)

//MM			:輸入 month 的欄位名稱(<select> 的模式)

//DD			:輸入 date 的欄位名稱(<select> 的模式)

//						 

//------------------------------------------------------

function ChangeDay(FormName,YY,MM,DD)

{

	if (!checkvalue(FormName,YY,'T','S',1,'Please Enter Year First in Date!!')) 

		return false;

	{	

		var da = new Array(12);

		da[0] = 31;   da[1] = 28;   da[2] = 31;   da[3] = 30;   da[4] = 31

		da[5] = 30;   da[6] = 31;   da[7] = 31;   da[8] = 30;   da[9] = 31

		da[10] = 30;   da[11] = 31;

		var X = document.forms[FormName].elements[MM];

		var M = X[X.selectedIndex].value;

		var Days = 0;

		var Flag = true; 

		//if (Flag) Flag = checkvalue(FormName,YY,'T','S',1,'請先輸入「日期」之年份');

		y = document.forms[FormName].elements[YY].value;

		if (isleap(y))	da[1] = 29;

		if (Flag)

		{

			if (M == '') 

				Days = 0;

			else

				Days = da[M-1]

			document.forms[FormName].elements[DD].length = Days;

			for (var i=0;i<Days;i++)

			{	

				document.forms[FormName].elements[DD].options[i].value = i+1;

				document.forms[FormName].elements[DD].options[i].text = i+1;

			}

		}

	}	

}



//----------- 判斷是否有資料 -------------------

//s				:變數

//						 

//------------------------------------------------------

function empty(s) 

{	

	if (s == null)			return(true)

	if (allTrim(s) == 'undefined')	return(true)

	if (allTrim(s) == "null")	return(true)

	if (allTrim(s) == "")		return(true)

	

	if (allTrim(s) == "0")		return(true)



	return(false)

}



//----------- 判斷是否有資料 -------------------

//s				:變數

//						 

//------------------------------------------------------

function notEmpty(s) 

{

	return(!nullEmpty(s))

}



//----------- 判斷是否為空值 -------------------

//s				:變數

//						 

//------------------------------------------------------

function nullEmpty(s) 

{	

	if (s == null)			return(true)

	if (allTrim(s) == 'undefined')	return(true)

	if (allTrim(s) == "null")	return(true)

	if (allTrim(s) == "")		return(true)

	

	if (allTrim(s) == "0")		return(true)



	return(false)

}



//----------- 左右去空白 -------------------

//s				:字串

//						 

//------------------------------------------------------

function allTrim(s)

{

	var s1 = lTrim(s)

	return(rTrim(s1))

}



//----------- 左方去空白 -------------------

//s				:字串

//						 

//------------------------------------------------------

function lTrim(s)

{

	s = "" + s;

	var len = s.length;

	var pos = 0;

	var s1 = "";



	while (pos < len) {

		var chr = s.substring( pos, pos + 1 );

		if (chr == " " || chr == "") pos = pos + 1; 

		else return(s.substring(pos,len))

	}

	

	return s1;

}



//----------- 右方去空白 -------------------

//s				:字串

//						 

//------------------------------------------------------

function rTrim(s)

{

	s = "" + s;

	var len = s.length;

	var pos = len-1;

	var s1 = "";

	var i = 0

	while (pos >= 0) {

		var chr = s.substring( pos, s.length-i );

		if (chr == " " || chr == "") pos = pos - 1; 

		else return(s.substring(0,pos+1))

		i++

	}

	

	return s1;

}



//***********************************************************************

//函數名稱：JSChk_Suid(suid) 

//功    能：檢查統一編號函式 

//參　　數：$suid	 	： 公司統一編號 C8

//回 傳 值：True,False

//作　　者：Tseng Wei-Yuan

//修改日期：2000/10

//***********************************************************************

function JSChk_Suid(suid) 

{ 

	var Flag = true;

	var w_check=0;

	if (suid.length==8) 

	{ 

		var w_cnt = 0; 

		var i = 0; 

		var checkstr = '12121241';

		

		for (i=0;i<=7;i++) 

		{

			if ((suid.charAt(i,1)-0)*(checkstr.charAt(i,1)-0) >= 10)

				w_cnt = w_cnt+Math.floor(((suid.charAt(i,1)-0)*(checkstr.charAt(i,1)-0))/10)+((suid.charAt(i,1)-0)*(checkstr.charAt(i,1)-0))%10;

			else

				w_cnt = w_cnt+((suid.charAt(i,1)-0)*(checkstr.charAt(i,1)-0));

		}

		if ((w_cnt%10)==0) return true;

		else

		{

			if (suid.charAt(6,1)=='7') 

			{

				if (((w_cnt-10+1)%10)==0) 

					Flag = true;

				else 

					Flag = false;

			}

			else Flag = false;

		}

	}

	else

		Flag = false;

	

	return Flag;	

	

} 



//----------- 左方補特定字元 -------------------

//s				:處理字串

//n				:補字元數

//c				:特定字元

//------------------------------------------------------

function padLeft(s, n, c) {

	var ss

	ss = ""

	for(i = 0; i < n - s.length; i++) {

		ss += c

	}

	ss += s

	return ss

}



//----------- 讀取字串右方 n 位數 -------------------

//s				:處理字串

//n				:取得字元數

//------------------------------------------------------

function right(s, n) {



	if (empty(s)) return("")

	s = rTrim(s)

	var len = s.length;

	len1 = len - n;

	str = s.substring(len1, len);

	return(str);

}



//----------- 讀取字串左方 n 位數 -------------------

//s				:處理字串

//n				:取得字元數

//------------------------------------------------------

function left(s, n) {



	if (empty(s)) return("")

	var str = s.substring(0, n);

	return(str);

}



//----------- 判斷檔名是否正確 -------------------

//fvar			:處理字串

//------------------------------------------------------

function validUpload(fvar) 

{

	if (fvar.value.length==0) {

		alert("Please Enter File Name!!");

		return(false)

	}

	if (fvar.value.indexOf("\"")>=0 || fvar.value.indexOf("'")>=0) {

		alert("File Name Can't has \" or '");

		return(false)

	}

	if (fvar.value.indexOf(">")>=0 || fvar.value.indexOf("<")>=0) {

		alert("File Name Can't has> or <");

		return(false)

	}



	return(true);

}



function img_show(imgname, newgif) 

{

	browser = navigator.userAgent

	if ((browser.indexOf("Mozilla/3.0") != -1) || (browser.indexOf("Mozilla/4.0") != -1))

		imgname.src = newgif; 

}



function isNotANum(fvar, msg, allowempty) {

	if (isNotANum.arguments < 3) allowempty = true

	if (!allowempty && allTrim(fvar.value) == '' ) {

		alert(msg);

		fvar.focus()

		return(true)

	}

	if (isNaN(fvar.value)) {

		alert(msg);

		fvar.focus()

		return(true)

	} 

	return(false)

}



//----------- 判斷是否為閏年 -------------------

//y				:輸入西元 year

//						 

//------------------------------------------------------

function isleap(y) 

{

	var m, d, k

	y++

	y--

	y = parseInt(y);

	k = y / 4;

	m = y - Math.floor(k) * 4;

	if (nullEmpty(m))	return(true);

	else		return(false);

}



//----------- 判斷日期是否正確 -------------------

//fvar			:日期

//allowempty	:是否允許空白  true;false

//msg			:顯示訊息

//------------------------------------------------------

function isValidDate(fvar, allowempty, msg) 

{

	if (allowempty && nullEmpty(fvar.value)) return true

	if (!chkDateStr(fvar.value)) {

		alert(msg);

		fvar.focus()

		return(false)

	} 

	return(true)

}



function isValidStr(fvar, msg, allowempty) 

{

	if (isValidStr.arguments < 3) allowempty = true

	if (allowempty && nullEmpty(fvar.value)) return true

	if (nullEmpty(fvar.value)) {

		alert(msg);

		fvar.focus()

		return(false)

	} 

	return(true)

}



//----------- 判斷身份証是否正確 -------------------

//userID		:身份証號

//------------------------------------------------------

function JScheckID(userID)

{

	ret="";

	userID = userID.toUpperCase();

	areaCode = userID.substring(0, 1);

	if (userID.length != 10) ret="1";

	if (areaCode < "A" && areaCode > "Z") ret="1";

	if (isNaN(userID.substring(2, 10))) ret="1";

	ss = "ABCDEFGHJKLMNPQRSTUVXYWZIO";

	areaNO = ss.indexOf(areaCode) + 10;

	userID = areaNO + userID.substring(1, 10);

	//取得CheckSum的值

	checkSum = parseInt(userID.substring(0,1),10) + parseInt(userID.substring(10, 11), 10);

	

	for (i = 1 ; i <= 9; i ++) {

	    checkSum += parseInt(userID.substring(i, i+1), 10) * (11 - i - 1);

	}

	bFlag=false;

	if(ret!="1")

		ret=mod(checkSum, 10) == 0 ? "0" : "2";

	if(ret!="0")

		bFlag=confirm('ID Number Failed !!Accept?');

	else

		bFlag=true;

	return (bFlag);

	//return (mod(checkSum, 10) == 0 ? 11 : 11)

}



//----------- 讀取時間(12:01:01) -------------------

//

//------------------------------------------------------

function getTimeStr() {



	var da = new Date();

	h = "0" + da.getHours()

	m = "0" + da.getMinutes()

	s = "0" + da.getSeconds()

	tstr = right(h, 2) +":"+ right(m, 2) + ":"+right(s, 2);

	return(tstr);

}



//----------- 日期格式(yyymmdd->yyy/mm/dd) -------------------

//d			:民國日期

//------------------------------------------------------

function getDateFormat(d) {

	

	if (empty(d)) d = getDateStr()

	yy = left(d, 3)

	mm = d.substring(3, 5)

	dd = d.substring(5, 7)

	return(yy+"/"+mm+"/"+dd)	

}



//----------- 日期格式(yyymmdd->mm/dd/yyyy) -------------------

//d			:民國日期

//------------------------------------------------------

function getEDateFormat(d) {

	

	if (empty(d)) d = getDateStr()

	yy = 1911 + parseInt(left(d, 3))

	mm = d.substring(3, 5)

	dd = d.substring(5, 7)

	return(mm+"/"+dd+"/"+yy)	

}



//----------- 讀取民國年 -------------------

//da		:西元日期(日期格式)

//------------------------------------------------------

function getChinaYear(da) {

	var y = da.getYear()

	if (y < 2000)

		return (y - 11)

	else

		return (y - 1911)

	

}



//----------- 日期格式：民國日期(yyymmdd) -------------------

//da		:西元日期(日期格式)

//------------------------------------------------------

function getDateStr() {

	var y, m, d



	var da = new Date();

	y = "0000" + da.getYear()

	m = "00" + (da.getMonth() + 1)

	d = "00" + da.getDate()

	dstr = right(y, 4) + '/' + right(m, 2) + '/' + right(d, 2);

	return(dstr);

}



//----------- 傳回前 n 日 -------------------

//d				:西元日期(yyy/mm/dd)

//n				:改變的天數

//------------------------------------------------------

function getLastDays(d, n) 

{

	var dd

	for (var i=0 ; i < n; i++) {

		dd = d.substring(8, 10)

		if (dd == "01")

			d = getMonDayBottom(getLastMonth(d))

		else {

			dd--

			d = left(d, 8) + right("0"+dd, 2)

		}

	}

	return(d);

}



//----------- 傳回後 n 日 -------------------

//d				:民國日期

//n				:改變的天數

//------------------------------------------------------

function getNextDays(d, n) 

{

	var dd, yy, mm

	da = new Array(12);

	da[0] = 31;   da[1] = 28;   da[2] = 31;   da[3] = 30;   da[4] = 31

	da[5] = 30;   da[6] = 31;   da[7] = 31;   da[8] = 30;   da[9] = 31

	da[10] = 30;   da[11] = 31;



	for (var i=0 ; i < n; i++) {

		yy = left(d, 4)

		if (isleap(yy)) da[1] = 29

		dd = d.substring(8, 10)

		mm = d.substring(5, 7)

		if (dd == da[mm-1])

			d = getMonDayTop(getNextMonth(d))

		else {

			dd++

			d = left(d, 8) + right("0"+dd, 2)

		}

	}

	return(d);

}



//----------- 檢查日期是否正確(yyyy/mm/dd) -------------------

//d				:西元日期

//------------------------------------------------------

function chkDateStr(d) 

{

	var yy,mm,dd

	da = new Array(12);

	da[0] = 31;   da[1] = 28;   da[2] = 31;   da[3] = 30;   da[4] = 31

	da[5] = 30;   da[6] = 31;   da[7] = 31;   da[8] = 30;   da[9] = 31

	da[10] = 30;   da[11] = 31;





	d = allTrim(d)

	if (d.length < 10) return(false)



	yy = left(d, 4)

	yy++; yy--

	if (isleap(yy))	da[1] = 29;

	mm = d.substring(5, 7)

	mm++; mm--

	dd = d.substring(8, 10)

	dd++; dd--

	if (isNaN(yy) || isNaN(mm) || isNaN(dd)) return(false)

	if (mm < 1 || mm > 12) return(false)

	if (dd < 1 || dd > da[mm-1]) return(false)



	return(true)

}



//----------- 計算時間差(分) -------------------

//yyyy/mm/dd

//hh:mm

//------------------------------------------------------

function calculateMinute(fdate, ftime, tdate, ttime) 

{

	nDay = calculateDays(fdate, tdate)

	nMin = nDay * 24 * 60

	fm = parseInt(left(ftime,2) * 60) + parseInt(ftime.substring(3,5))

	tm = parseInt(left(ttime,2) * 60) + parseInt(ttime.substring(3,5))

	return(parseInt(nMin)+parseInt(tm)-parseInt(fm))

}



//----------- 計算時間差(天) -------------------

//tdate - fdate   (yyyy/mm/dd)

//------------------------------------------------------

function calculateDays(fdate, tdate) 

{

	da = new Array(12);

	da[0] = 31;   da[1] = 28;   da[2] = 31;   da[3] = 30;   da[4] = 31

	da[5] = 30;   da[6] = 31;   da[7] = 31;   da[8] = 30;   da[9] = 31

	da[10] = 30;   da[11] = 31;

	var pdays = 0, fdays = 0, tdays = 0, i=0;



	if (fdate==tdate) return 0

	

	yy = left(fdate, 4);	yy++;	yy--;

	mm = parseInt(fdate.substring(5, 7));	mm++; mm--;

	dd = parseInt(fdate.substring(8, 10));	dd++; dd--;

	da[1] = isleap(yy)?29:28

	for (i = 1 ; i <= yy; i++)

		fdays += ((isleap(i))?366:365)

	for (i = 0 ; i < mm; i++)

		fdays += da[i]

	fdays += dd

	

	yy = parseInt(left(tdate, 4), 10)

	mm = parseInt(tdate.substring(5, 7), 10)

	dd = parseInt(tdate.substring(8, 10), 10)

	

	da[1] = isleap(yy)?29:28

	for (i = 1; i <= yy; i++)

		tdays += ((isleap(i))?366:365)



	for (i = 0; i < mm; i++) {

		tdays += da[i]

	}

	tdays += dd



	pdays = tdays - fdays

	return(pdays)

}



//----------- 讀取星期 -------------------

//d			:民國日期

//------------------------------------------------------

function getWeekStr(d) 

{

	var yy, mm, dd

	aMon = new Array("jan", "feb", "mar", "apr", "may", "jun", "jul", "aug", "sep", "oct", "nov", "dec")

	//aWeek = new Array("Sundey", "Monday", "星期二", "星期三", "星期四", "星期五", "星期六")

	aWeek = new Array("Sundey", "Monday", "th", "we", "4", "5", "6")

	if (empty(d)) d = getDateStr()

	yy = left(d, 4)

	yy++; yy--; 

	mm = d.substring(5, 7)

	mm--

	dd = d.substring(8, 10)

	dd++; dd--

	var da = new Date(aMon[mm]+" "+dd+","+yy)

	var week = da.getDay()

	return(aWeek[week]);

}



function getWeek(d) 

{

var yy, mm, dd

	if (empty(d)) d = getDateStr()

	aMon = new Array("jan", "feb", "mar", "apr", "may", "jun", "jul", "aug", "sep", "oct", "nov", "dec")

	if (empty(d)) d = getDateStr()

	yy = left(d, 4)

	yy++; yy--; 

	mm = d.substring(5, 7)

	mm--

	dd = d.substring(8, 10)

	dd++; dd--

	var da = new Date(aMon[mm]+" "+dd+","+yy)

	var week = da.getDay()

	return(week);

}



//----------- 讀取月初 --> 2001/02/01 -------------------

//d			:西元日期

//------------------------------------------------------

function getMonDayTop(d) 

{

	if (empty(d)) d = getDateStr()

	return(left(d, 8) + "01");

}



//----------- 讀取月底 --> 2001/01/31 -------------------

//d			:西元日期

//------------------------------------------------------

function getMonDayBottom(d) 

{

	var y, m



	da = new Array(12);

	da[0] = 31;   da[1] = 28;   da[2] = 31;   da[3] = 30;   da[4] = 31

	da[5] = 30;   da[6] = 31;   da[7] = 31;   da[8] = 30;   da[9] = 31

	da[10] = 30;   da[11] = 31;



	if (empty(d)) d = getDateStr()

	y = left(d, 4)

	m = d.substring(5,7);

	if (isleap(y))	da[1] = 29;

	return(left(d, 8) + da[m-1]);

}



//***  return next month --> 2001/01/31 *****

function getNextMonth(d) 

{

	da = new Array(12);

	da[0] = 31;   da[1] = 28;   da[2] = 31;   da[3] = 30;   da[4] = 31

	da[5] = 30;   da[6] = 31;   da[7] = 31;   da[8] = 30;   da[9] = 31

	da[10] = 30;   da[11] = 31;



	if (empty(d)) d = getDateStr()



	y = left(d,4);

	m = d.substring(5, 7);

	md = da[m-1]

	d = d.substring(8, 10)

	

	if (m == "12") {

		y++

		m = "01"

	} else {

		m++

	}	

	if (isleap(y))	da[1] = 29;

	if (d == md || d > da[m-1]) d = da[m-1]

	return(right("00"+y, 4) + '/' + right("0"+m, 2) + '/' + d);

}



//***  return last month --> 2001/01/31 *****

function getLastMonth(d) 

{

	da = new Array(12);

	da[0] = 31;   da[1] = 28;   da[2] = 31;   da[3] = 30;   da[4] = 31

	da[5] = 30;   da[6] = 31;   da[7] = 31;   da[8] = 30;   da[9] = 31

	da[10] = 30;   da[11] = 31;



	if (empty(d)) d = getDateStr()



	y = left(d,4);

	m = d.substring(5, 7);

	md = da[m-1]

	d = d.substring(8, 10)

	

	if (m == "01") {

		y--

		m = "12"

	} else {

		m--

	}	

	if (isleap(y))	da[1] = 29;

	if (d == md || d > da[m-1]) d = da[m-1]



	return(right("00"+y, 4) + '/' + right("0"+m, 2) + '/' + d);

}



function mod(v, s) {

	

	var m, d, k

	if (empty(s)) return(0)

	k = v / s;

	m = v - Math.floor(k) * s;

	return(m)

}



function getInt(v) {



	return(Math.floor(v))

}



function goMonth(f, dir) {

	var i

	mm = f.mm[0].selectedIndex

	yy = f.yy[0].selectedIndex



	if (dir == '1') {

		if (mm == 11) {

			mm = 0

			yy++

			f.yy[0].options[yy].selected = true

			f.yy[1].options[yy].selected = true

		} else {

			mm++

		}	

		f.mm[0].options[mm].selected = true

		f.dd[0].options[0].selected = true

		f.mm[1].options[mm].selected = true

		

	} else if (dir == '-1') {

		if (mm == 0) {

			mm = 11

			yy--

			f.yy[0].options[yy].selected = true

			f.yy[1].options[yy].selected = true

		} else {

			mm--

		}

	} else if (dir == '0') {

		var da = new Date();

		mm = da.getMonth()

		yy = da.getYear()

		for (i=0; i<f.yy[0].length; i++)

			if (f.yy[0].options[i].value == yy) break;

		yy = i

		dd = da.getDate()

		f.yy[0].options[yy].selected = true

		f.yy[1].options[yy].selected = true

	}

	f.mm[0].options[mm].selected = true

	f.mm[1].options[mm].selected = true

	

	yvalue = right("0000" + f.yy[0].options[yy].value, 4)

	mvalue = right("00" + f.mm[0].options[mm].value, 2)

	dvalue = yvalue + mvalue + "01"

	bvalue = parseInt(right(getMonDayBottom(dvalue), 2), 10)

	for (i=f.dd[1].length-1; i >= 0 ; i--)

		f.dd[1].options[i] = null

	for (i=0; i < bvalue ; i++) {

		f.dd[1].options[i] = null

		opt = new Option(i+1, i+1)

		f.dd[1].options[i] = opt

	}

	if (dir == '1' || dir == '-1') {

		f.dd[0].options[0].selected = true

		f.dd[1].options[bvalue-1].selected = true

	} else {

		f.dd[0].options[dd-1].selected = true

		f.dd[1].options[dd-1].selected = true

	}

	

	

	return(true);

}



function goDate(f, dir) {

	da = new Array(12);

	da[0] = 31;   da[1] = 28;   da[2] = 31;   da[3] = 30;   da[4] = 31

	da[5] = 30;   da[6] = 31;   da[7] = 31;   da[8] = 30;   da[9] = 31

	da[10] = 30;   da[11] = 31;



	var i

	dd = f.dd.selectedIndex

	mm = f.mm.selectedIndex

	yy = f.yy.selectedIndex

	if (isleap(yy))	da[1] = 29;



	if (dir == '1') {

		if (dd == da[mm]-1) {

			dd = 0

			if (mm == 11) {

				mm = 0

				yy++

			} else mm++

			f.yy.options[yy].selected = true

			f.mm.options[mm].selected = true

		} else {

			dd++

		}	

		f.dd.options[dd].selected = true

		

	} else if (dir == '-1') {

		if (dd == 0) {

			if (mm == 0) {

				mm = 11

				yy--

			} else mm--

			dd = da[mm]-1

			f.yy.options[yy].selected = true

			f.mm.options[mm].selected = true

		} else {

			dd--

		}

		f.dd.options[dd].selected = true

	} else if (dir == '0') {

		var da1 = new Date();

		mm = da1.getMonth()

		yy = getChinaYear(da1)

		for (i=0; i<f.yy.length; i++)

			if (f.yy.options[i].value == yy) break;

		yy = i

		f.yy.options[yy].selected = true

		

		mm = da1.getMonth()

		f.mm.options[mm].selected = true



		dd = da1.getDate()

		bvalue = da[mm]



		for (i=f.dd.length-1; i >= 0 ; i--)

			f.dd.options[i] = null

		for (i=0; i < bvalue ; i++) {

			f.dd.options[i] = null

			opt = new Option(i+1, i+1)

			f.dd.options[i] = opt

		}

		f.dd.options[dd-1].selected = true

		

	}

	

	return(true);

}



function goDate1(fvar, dir) 

{

	if (!chkDateStr(fvar.value)) {

		fvar.value = getDateStr()

		return true

	}

	if (dir == -1)

		fvar.value = getLastDays(fvar.value, 1)

	else

		fvar.value = getNextDays(fvar.value, 1)

	return true

}