//----------- 鎖住右鍵 -------------------
/*
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("歡迎光臨網碩資訊!!");
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') 
	{
		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		:輸入標籤名稱
//------------------------------------------------------
function chkNum(FormName,ObjName)
{
	var rc=isNum(document.forms[FormName].elements[ObjName].value);
	if(!rc)
	{
		shotTo(FormName,ObjName,'T','請輸入數字') 
	}
	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("您輸入的" + aa + " Email 【" + email[i] + "】不正確 !"); }
       	   else { alert("您輸入的 Email 【" + email[i] + "】不正確 !"); }
           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('','popupnav','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','年份請輸入數值!!') 
		}
		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,'請先輸入「日期」之年份')) 
		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;
}

//***********************************************************************
//函數名稱：Chk_Suid(suid) 
//功    能：檢查統一編號函式 
//參　　數：$suid	 	： 公司統一編號 C8
//回 傳 值：True,False
//作　　者：Tseng Wei-Yuan
//修改日期：2000/10
//***********************************************************************
function Chk_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("請輸入檔名");
		return(false)
	}
	if (fvar.value.indexOf("\"")>=0 || fvar.value.indexOf("'")>=0) {
		alert("檔名中不能有\"或'");
		return(false)
	}
	if (fvar.value.indexOf(">")>=0 || fvar.value.indexOf("<")>=0) {
		alert("檔名中不能有>或<");
		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 checkID(userID)
{
	userID = userID.toUpperCase()
	areaCode = userID.substring(0, 1)
	if (userID.length != 10) return "1"
	if (areaCode < "A" && areaCode > "Z") return "1"
	if (isNaN(userID.substring(2, 10))) return "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)
	}
	return (mod(checkSum, 10) == 0 ? "0" : "2")
}

//----------- 讀取時間(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 = "000" + getChinaYear(da)
	m = "00" + (da.getMonth() + 1)
	d = "00" + da.getDate()
	dstr = right(y, 3) + right(m, 2) + right(d, 2);
	return(dstr);
}

//----------- 傳回前 n 日 -------------------
//d				:民國日期
//n				:改變的天數
//------------------------------------------------------
function getLastDays(d, n) 
{
	var dd

	for (var i=0 ; i < n; i++) {
		dd = d.substring(5, 7)
		if (dd == "01")
			d = getMonDayBottom(getLastMonth(d))
		else {
			dd--
			d = left(d, 5) + 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, 3)
		if (isleap(yy)) da[1] = 29
		dd = d.substring(5, 7)
		mm = d.substring(3, 5)
		if (dd == da[mm-1])
			d = getMonDayTop(getNextMonth(d))
		else {
			dd++
			d = left(d, 5) + right("0"+dd, 2)
		}
	}
	return(d);
}

//----------- 檢查日期是否正確(yyymmdd) -------------------
//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 == 6) d = "0" + d 
	if (d.length < 7) return(false)

	yy = left(d, 3)
	yy++; yy--
	if (isleap(yy))	da[1] = 29;
	mm = d.substring(3, 5)
	mm++; mm--
	dd = d.substring(5, 7)
	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)
}

//----------- 計算時間差(分) -------------------
//
//------------------------------------------------------
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))
}

//----------- 計算時間差(天) -------------------
//
//------------------------------------------------------
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, 3);	yy++;	yy--;
	mm = parseInt(fdate.substring(3, 5));	mm++; mm--;
	dd = parseInt(fdate.substring(5, 7));	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, 3), 10)
	mm = parseInt(tdate.substring(3, 5), 10)
	dd = parseInt(tdate.substring(5, 7), 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("星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六")
	if (empty(d)) d = getDateStr()
	yy = left(d, 3)
	yy++; yy--; yy += 1911
	mm = d.substring(3, 5)
	mm--
	dd = d.substring(5, 7)
	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, 3)
	yy++; yy--; yy += 1911
	mm = d.substring(3, 5)
	mm--
	dd = d.substring(5, 7)
	dd++; dd--
	var da = new Date(aMon[mm]+" "+dd+","+yy)
	var week = da.getDay()
	return(week);
}

//----------- 讀取月初 --> 0860101 -------------------
//d			:民國日期
//------------------------------------------------------
function getMonDayTop(d) 
{
	if (empty(d)) d = getDateStr()
	return(left(d, 5) + "01");
}

//----------- 讀取月底 --> 0860131 -------------------
//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, 3)
	m = d.substring(3,5);
	if (isleap(y))	da[1] = 29;

	return(left(d, 5) + da[m-1]);
}

//***  return next month --> 0860131 *****
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,3);
	m = d.substring(3,5);
	md = da[m-1]
	d = d.substring(5, 7)
	
	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, 3) + right("0"+m, 2) + d);
}

//***  return last month --> 0860131 *****
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,3);
	m = d.substring(3,5);
	md = da[m-1]
	d = d.substring(5, 7)
	
	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, 3) + 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 = getChinaYear(da)
		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("000" + f.yy[0].options[yy].value, 3)
	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
}

//資料變更處理
function On_OK(FormName,OpMode,InputName,OptionKind) 
{
  var OK=document.forms[FormName].elements[InputName].value;
  if (OptionKind == 'cancel')
  {
     if (OK=='T') 
     {
        if (confirm('資料己變更..是否確定要取消!!'))
        {
           document.forms[FormName].elements[OpMode].value=OptionKind;
           //document.forms[FormName].submit();
           history.back();
        }
     }
     else
     {
        document.forms[FormName].elements[OpMode].value=OptionKind;
        //document.forms[FormName].submit();
        history.back();
     }    
  }
  if (OptionKind == 'delete')
  {
     if (confirm('是否確定要刪除資料!!'))
     {
        document.forms[FormName].elements[OpMode].value=OptionKind;
        document.forms[FormName].submit();
     } 
  }
  if ((OptionKind == 'edit')||(OptionKind == 'add'))
  {
     if (OK=='F')
        alert('資料未變更過!!..請變更資料後再按新增或修改鍵..');
     else
     {
        //if (checkdata(userid)==true) 
           document.forms[FormName].elements[OpMode].value=OptionKind;
           document.forms[FormName].submit();
     } 
  }        
}

function Data_change(FormName,InputName,sFieldid,Fieldid,Change) 
{
  if (Fieldid != '')
  {
     document.forms[FormName].elements[Fieldid].value=document.forms[FormName].elements[sFieldid].value;
     document.forms[FormName].elements['old'+Fieldid].value=document.forms[FormName].elements[sFieldid].value;
  }   
  document.forms[FormName].elements[InputName].value='T';
  document.forms[FormName].elements[Change].value='Edit';
}

function Data_change1(FormName,InputName,sFieldid,Fieldid,Change) 
{
  var iMax=document.forms[FormName].elements[sFieldid].length-1;
  var Field=document.forms[FormName].elements[Fieldid].value;
  var Fieldvalue=document.forms[FormName].elements[sFieldid].options[1].value;
  var I;
  var Find=false
  if (Field=='')
     document.forms[FormName].elements[Fieldid].value==' '; 
  for (I=0;I<=iMax;I++)
  {
      Fieldvalue=document.forms[FormName].elements[sFieldid].options[I].value;
      if (Field==Fieldvalue)
      {
         Find=true
         document.forms[FormName].elements[sFieldid].options[I].selected=true; 
         document.forms[FormName].elements['old'+Fieldid].value=document.forms[FormName].elements[Fieldid].value;
      }   
  }
  if (Find==false)
  {
     alert('無此代碼!!請重新輸入!!..')  
     //document.forms[FormName].elements[Fieldid].focus();
     document.forms[FormName].elements[Fieldid].value=document.forms[FormName].elements['old'+Fieldid].value;
  }
  else
  {
     document.forms[FormName].elements[InputName].value='T';
     document.forms[FormName].elements[Change].value='Edit';
  }   
}

function change_page(sLocation,Page,FormName,InputName,Time) 
{
  var OK=document.forms[FormName].elements[InputName].value;
  if (OK=='T')
  {
     if (confirm('己有資料變更!!..是否要變更資料'))
        On_OK(FormName,InputName,'Edit');
     else
        location=sLocation + '&page=' + Page+ '&Times=' + Time;   
  }
  else
     location=sLocation + '&page=' + Page + '&Times=' + Time;
} 
