﻿
/* 檢查指定表單欄位物件的值是否為空值或空白字串，支援所有的表單物件型態 checkbox,
 * radio, select, text, textarea, hidden
 * @param   obj		 表單欄位物件
 * @return  boolean
 */
function isEmpty(obj) {
	var oform = document.forms[0];
	var result = false;
	var obj_name;

	if (typeof(obj) == "string") {
		obj_name = obj;
		obj = oform.elements[obj_name];
		if (typeof(obj) != "object") {
			var valuelist = getCheckBoxListValue(obj_name);
			if (parseInt(valuelist, 10) == 0) {
				return true;
			} else {
				return false;
			}
		}
	}
	
	if (typeof(obj) != "object") {
  		alert("isEmpty: Please give the \"string\" id name to check empty.");
		return false;
	}	

	switch (obj.type) {
		case "select-multiple":
		case "select-one":
			result = !isSelected(obj);
			break;
		case "hidden":
		case "password":
		case "text":
		case "textarea":
			result = isBlank(obj);
			break;
		case "checkbox":
		case "radio":
		default:
			result = !isChecked(obj);
	}

	return result;
}

/* 在ASP.NET網頁上，CheckBoxList所產生的表單欄位物件，取得使用者選取的狀態 (以01表示選取的狀態)
 * @param   objname		CheckBoxList控制項名稱
 * @return  string		傳回所選取的值的字串。例如：101，代表的是1、3項有被選取，第2項沒被選取
 */
 function getCheckBoxListValue(objname) {
	var oform = document.forms[0];
	var obj = null;
	var result = "";
	var item_name;
	var index;
	var values = Array();

	if (typeof(objname) != "string") {
		alert("getCheckBoxListValue: Please give the \"string\" id name to get the index.");
		return false;
	}
	
	for (var i=0; i<oform.elements.length; i++) {
		obj = oform.elements[i];
		item_name = obj.name;
		//alert(item_name);
		if (obj.type=="checkbox" && item_name.indexOf(objname+":") == 0) {
			index = parseInt(item_name.substring(item_name.indexOf(":")+1), 10)

			if (obj.checked) {
				values[index] = 1;
			} else {
				values[index] = 0;
			}
		}
	}
	
	for (var i=0; i<values.length; i++) {
		if (values[i] == 1) {
			result += "1";
		} else {
			result += "0";
		}
	}

	return result;
}

/* 檢查指定的select表單欄位物件是否被使用者選取過
 * (若使用者選取的項目值為空字串，則仍傳回未被選取)
 * @param   obj		 select表單欄位物件
 * @return  boolean
 */
function isSelected(obj) {
	var result = false;

	for (var i=0; i<obj.options.length; i++) {
		if (obj.options[i].selected  && obj.options[i].value != "") {
			result = true;
			break;
		}
	}

	return result;
}

/* 檢查指定的text或textarea或hidden表單欄位物件是否已輸入值
 * (若欄位值為空白字串，則仍傳回未被輸入)
 * @param   obj		 select表單欄位物件
 * @return  boolean
 */
function isBlank(obj) {
	return isSpace(obj.value);
}

/* 檢查指定的字串是否為空字串或為空白字串
 * @param   value	   欲檢查的值
 * @return  boolean
 */
function isSpace(value) {
	var result = false;

	if (trim(value) == "") {
		result = true;
	}

	return result;
}

function trim(strvalue) { 
ptntrim = /(^\s*)|(\s*$)/g; 
return strvalue.replace(ptntrim,""); 
} 

/* 檢查指定的radio或checkbox表單欄位物件是否被使用者選取過
 * @param   obj		 radio或checkbox表單欄位物件
 * @return  boolean
 */
function isChecked(obj) {
	var result = false;

	if (typeof(obj.length) == "number") {
		for (var i=0; i<obj.length; i++) {
			if (obj[i].checked) {
				result = true;
				break;
			}
		}
	} else {
		if (obj.checked) {
			result = true;
		}
	}

	return result;
}

/* 檢查電子郵件是否正確是否正確 (格式為 @ )
 * @param   value	   欲檢查的電子郵件字串
 * @return  boolean
 */
function checkEmail(objmail)
{
    if(!(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(objmail))){
        return false;
    }
}
/* 檢查中華民國日期是否正確 (格式為 YYYMMDD )
 * @param   value	   欲檢查的日期字串
 * @return  boolean
 */
function checkRocDate1(mydate) {
    if (mydate=="0000000")
    {
        return true;
    }
    if (mydate.length == 7 || mydate.length == 6) 
    {
      var LSTR_Date = mydate;
      var y;
      var m;
      var d;
      if (mydate.length == 7) 
      {
         y = LSTR_Date.substring(0,3);
         m = LSTR_Date.substring(3,5);
         d = LSTR_Date.substring(5,7);
      }
      else
      {
         y = LSTR_Date.substring(0,2);
         m = LSTR_Date.substring(2,4);
         d = LSTR_Date.substring(4,6);
      }
//      var m = LSTR_Date.substring(3,5);
//      var d = LSTR_Date.substring(5,7);
      
	  y=parseInt(y,10);
	  m=parseInt(m,10);
	  d=parseInt(d,10);

	  if (isNaN(y)) return false;
	  if (isNaN(m)) return false;
	  if (isNaN(d)) return false;
	  
	  y=y+1911;  //將民國年轉為西元年
	  if (y<1900 || y>2900) return false;

	  if (m < 1 || m > 12) return false;

	  if (d < 1 || d > 31) return false;

	  var isleap = ((y % 100) && !(y % 4)) || !(y % 400);

      switch (m)
  	  {
	    case 1:
	    case 3:
	    case 5:
	    case 7:
	    case 8:
	    case 10:
	    case 12:
	    	return true;
	    case 4:
	    case 6:
	    case 9:
	    case 11:
	    	if (d > 30) return false;
		    else return true;
	    case 2:
		  if (isleap) {
		    if (d > 29){
		    	 return false;
		    }else{
			 return true;
		    }
		  }else{
		     if (parseInt(d) > 28){
		    	  return false;
		     }
		  }
		  return true;
	    default:
		  return false;
	  }
    }
    else 
    {
        return false;
    }

}


/* 檢查輸入的身份證字號是否正確
 * @param   IDString	欲檢查的身份證字號
 * @return  boolean
 */
function checkId(IDString) {
	var ErrString = "" ;
	var ID1 = IDString.toUpperCase();
	if (IDString.length != 0 ) {IDString =IDString.toUpperCase()}
	if (IDString.length != 10){ErrString = ErrString + "身分證字號字數不對。" + unescape('%0D')}
	if (ID1.length != 10) return false; //alert("身分證字號字數不對 !");
	var IDdigit = new Array(10);
	for (var i=0; i<10; i++) { IDdigit[i] = ID1.charAt(i); }
	var CharEng = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
	IDdigit[0]   = CharEng.indexOf(IDdigit[0]);
	if (IDdigit[0] == -1)  return false; //alert("身分證字號第一位為錯誤英文字母 !");
	if (IDdigit[1] !=1 && IDdigit[1] !=2) return false; //alert("身分證字號無法辨識性別 !");

	var Array1  = new Array(26);
	Array1[0]   = 1 ; Array1[1]  = 10; Array1[2]  = 19;
	Array1[3]   = 28; Array1[4]  = 37; Array1[5]  = 46;
	Array1[6]   = 55; Array1[7]  = 64; Array1[8]  = 39;
	Array1[9]   = 73; Array1[10] = 82; Array1[11] = 2 ;
	Array1[12]  = 11; Array1[13] = 20; Array1[14] = 48;
	Array1[15]  = 29; Array1[16] = 38; Array1[17] = 47;
	Array1[18]  = 56; Array1[19] = 65; Array1[20] = 74;
	Array1[21]  = 83; Array1[22] = 21; Array1[23] = 3 ;
	Array1[24]  = 12; Array1[25] = 30;
	var result = Array1[IDdigit[0]];
	for (var i=1; i<10; i++) {
		var Number = "0123456789";
		IDdigit[i] = Number.indexOf(IDdigit[i]);
		if (IDdigit[i] == -1) {
			//alert("身分證字號錯誤 !");
			return false;
		} else {
			result += IDdigit[i] * (9-i);
		}
	}
	result += 1 * IDdigit[9];
	//alert("result=="+result);
	if (result % 10 != 0) {
		//alert("身分證字號錯誤 !");
		return false; }
	else {
		return true;
	}
}

/* 判斷是否為正整數或負整數，例如: +25, -33, 77 皆符合條件

 * @param   value	   欲檢查的值

 * @return  boolean
 */
function isInt(value) {
	var pattern = /^(\+|\-)?\d+$/;
	return pattern.test(value);
}

/* 判斷是否為全為數字，例如: 25, 002 皆符合條件 (有含正號、負號的整數不符合條件)
 * @param   value	   欲檢查的值

 * @return  boolean
 */
function isUnsignedInt(value) {
	var pattern = /^\d+$/;
	return pattern.test(value);
}

/* 判斷是否為正整數，例如: +25, 77 皆符合條件

 * @param   value	   欲檢查的值

 * @return  boolean
 */
function isPositiveInt(value) {
	var pattern = /^(\+)?\d+$/;
	return pattern.test(value);
}

/* 判斷是否為負整數，例如: -33, -006 皆符合條件

 * @param   value	   欲檢查的值

 * @return  boolean
 */
function isNegativeInt(value) {
	var pattern = /^\-\d+$/;
	return pattern.test(value);
}

/* 判斷是否為正浮點數或負浮點數，例如: +25.7, -33.7, 77.7 皆符合條件

 * @param   value	   欲檢查的值

 * @return  boolean
 */
function isFloat(value) {
	var pattern = /^(\+|\-)?\d+\.\d+$/;
	return pattern.test(value);
}

/* 判斷是否為正浮點數或負浮點數，例如: +25.7, -33.7, 77.7 皆符合條件

 * @param   value	   欲檢查的值

 * @return  boolean
 */
function ispFloat(value) {
        var pattern = /^\d+(\.\d{1,2})?$/;
        
       
        return pattern.test(value);
    }

/* 判斷是否為正浮點數，例如: +25.7, 77.7 皆符合條件

 * @param   value	   欲檢查的值

 * @return  boolean
 */
function isPositiveFloat(value) {
	var pattern = /^(\+)?\d+\.\d+$/;
	return pattern.test(value);
}

/* 判斷是否為負浮點數，例如: -33.7, -006.7 皆符合條件

 * @param   value	   欲檢查的值

 * @return  boolean
 */
function isNegativeFloat(value) {
	var pattern = /^\-\d+\.\d+$/;
	return pattern.test(value);
}

/* 檢查指定的數值，其值的限制是否符合指定的最小or最大值

 * @param   my_value	指定的數值 (可為整數or浮點數)
 * @param   my_min	  最小值。若不想有最小值限制，可給空字串""
 * @param   my_max	  最大值。若不想有最大值限制，可給空字串""
 * @return  boolean
 */
function checkRange(my_value, my_min, my_max) {
	var result;
	var now_value, min_value, max_value;

	now_value = parseFloat(my_value);
	if (min_value == "") {
		min_value = now_value;
	} else {
		min_value = parseFloat(my_min);
	}

	if (max_value == "") {
		max_value = now_value;
	} else {
		max_value = parseFloat(my_max);
	}

	result = true;
	if ((now_value < min_value) || (now_value > max_value)) {
		result = false;
	}

	return result;
}

function isNumeric(strNumber){
    if(strNumber != null)
    {
        strNumber=strNumber.replace(/\,/g, '');
        return (strNumber.search(/^(-1\+)?\d+(\.\d+)?$/) != -1);
    }
    else
    {
        return false;
    }
}

/* 取得數值字串長度 
 * @param   myNum	   欲檢查的數值字串
 * @return  boolean    (超過: False)
 */
function getNumLen(myNum, Int, Dec) {

    var xNum = myNum.split(".");

    if (xNum[0] != null && xNum[0].length != 0 && xNum[0].length <= Int)
    {
        if(xNum[1] != null)
        {
            if(xNum[1].length <= Dec)
            {
                return true;
            }
            else
            {
                return false;
            }
        }
        else
        {
            return true;
        }
    }
    else
    {
        return false;
    }
}

///* 判斷指定的數值字串是否超過最大長度限制值，若超過則傳回true
// * @param   value	   欲檢查的字串
// * @return  boolean
// */
//function checkMaxLen(value, Length) {
//	var actualLen = getStrLen(value);

//	return (actualLen > Length);
//}


/* 將指定的數字四捨五入到指定的小數位數
 * 例如: getRound(2.35, 4) // 傳回 2.3500
 *	   getRound(2.35, 1)  // 傳回 2.4
 * @param   value	   欲檢查的值

 * @return  string
 */
function getRound(number, noOfPlaces){
	if(isNaN(number)){
		alert("Please enter a valid number");
		Number = 0;
	}

	val = (Math.round(number*Math.pow(10,noOfPlaces)))/Math.pow(10,noOfPlaces);
	val = val.toString();
	ind = val.indexOf(".");
	if(ind==-1){
		val = val.toString() + ".";
		for(i=0;i<noOfPlaces;i++)
			val = val + "0";
	}
	else{
		len = val.length;
		x = len-ind-1;
		if(x<noOfPlaces){
			for(i=0;i<(noOfPlaces-x);i++)
				val = val + "0";
		}
	}

	return(val);
}


function CallDEP(HttpStr,sooureName,TxtID) {
    var sBackStr;
    var objTxt;
    var sTureName;
    sTureName = HttpStr + "../../HumanResources/CommonFrm/" + sooureName + ".aspx?TxtID=" + TxtID;  
    sBackStr = self.window.showModalDialog(sTureName, window, "dialogWidth:310px;dialogHeight:300px")
}

function CallEMP(HttpStr,sooureName,TxtID) {
    var sBackStr;
    var objTxt;
    var sTureName;
    sTureName = HttpStr + "../../HumanResources/CommonFrm/" + sooureName + ".aspx?TxtID=" + TxtID;  
    sBackStr = self.window.showModalDialog(sTureName, window, "dialogWidth:310px;dialogHeight:360px")
}

//function CallID(HttpStr,sooureName,cbo_ID,TxtID) {
//    var sBackStr;
//    var sTureName;
//    var objCbo;
//    var sCboValue;
//    
//    if(cbo_ID!="NO"){
//        objCbo = document.getElementById(cbo_ID);
//        sCboValue = objCbo.options[objCbo.selectedIndex].value;
//    }
//    else
//    {sCboValue="NO";}
//    
//    alert("AA1111");
//    
//    sTureName = HttpStr + "../../HumanResources/CommonFrm/" + sooureName + ".aspx?CompanyID=" + sCboValue +"&TxtID="+ TxtID;  
//    sBackStr = self.window.showModalDialog(sTureName, window, "dialogWidth:310px;dialogHeight:360px")
//}

function CallID(HttpStr,sooureName,cbo_ID,TxtID,ISTR) {
    var sBackStr;
    var sTureName;
    var objCbo;
    var sCboValue;
    
    if(cbo_ID!="NO"){
        objCbo = document.getElementById(cbo_ID);
        sCboValue = objCbo.options[objCbo.selectedIndex].value;
    }
    else
    {sCboValue="NO";}

    sTureName = HttpStr + "../../HumanResources/CommonFrm/" + sooureName + ".aspx?CompanyID=" + sCboValue +"&TxtID="+ TxtID+"&ISTR="+ ISTR;  
    sBackStr = self.window.showModalDialog(sTureName, window, "dialogWidth:310px;dialogHeight:360px")
}

// 0970820 新增 By Neo
function CallID2(HttpStr,sooureName,cbo_ID,TxtID,ISTR) {
    var sBackStr;
    var sTureName;
    var objCbo;
    var sCboValue;
    
    if(cbo_ID!="NO"){
        objCbo = document.getElementById(cbo_ID);
        sCboValue = objCbo.options[objCbo.selectedIndex].value;
    }
    else
    {sCboValue="NO";}

    sTureName = HttpStr + sooureName + ".aspx?CompanyID=" + sCboValue +"&TxtID="+ TxtID+"&ISTR="+ ISTR;  
    sBackStr = self.window.showModalDialog(sTureName, window, "dialogWidth:310px;dialogHeight:360px")
}



function onclickView(LSTR_URL,OpenType){
    switch(OpenType) {
        case 'frame':
            parent.document.all('DetailFrame').src=LSTR_URL + '&TimeCount=' + GetTimeCount();
//            window.open(LSTR_URL,target='DetailFrame');
            break;
        case 'open':
            break;
    }
}

function onclickAdd(LSTR_URL,OpenType){
    switch(OpenType) {
        case 'frame':
            parent.document.all('DetailFrame').src=LSTR_URL + '&TimeCount=' + GetTimeCount();
            break;
        case 'open':
            break;
    }
}

function onmousedownUpdate(LSTR_URL,OpenType,exeScriptName){
    if (exeScriptName.length != 0) {
        toCallServer("Modify," + LSTR_URL + "," + OpenType + "," + exeScriptName)
    }
}

function onclickUpdate(LSTR_URL,OpenType,exeScriptName){
    switch(OpenType) {
        case 'frame':
            parent.document.all('DetailFrame').src=LSTR_URL + '&TimeCount=' + GetTimeCount();
            break;
        case 'open':
            break;
    }
}

function onmousedownDelete(LSTR_URL,OpenType,exeScriptName){
    if (exeScriptName.length != 0) {
        toCallServer("Delete," + LSTR_URL + "," + OpenType + "," + exeScriptName)
    }
}

function onclickDelete(LSTR_URL,OpenType,exeScriptName){
    switch(OpenType) {
        case 'frame':
            parent.document.all('DetailFrame').src=LSTR_URL + '&TimeCount=' + GetTimeCount();
            break;
        case 'open':
            break;
    }
}

//存檔
function onclickSaveChange(OpenType,ActType,Msg) {
    switch(OpenType) {
        case 'frame':
            if (Msg.length != 0) {
                alert(Msg);
            }
            var objMainFrame;
            var objMainBtnQuery;
            objMainFrame = parent.document.frames("MainFrame");
            objMainBtnQuery = objMainFrame.document.getElementById('btn_Query');
            objMainBtnQuery.click();
//            parent.document.frames('MainFrame').changePageHeight();
            parent.document.all('FrameMain').cols='*,0';

            break;
        case 'open':
            break;
    }
}

//存檔
function onclickSaveNoChange(OpenType,ActType,Msg) {
    switch(OpenType) {
        case 'frame':
            if (Msg.length != 0) {
                alert(Msg);
            }
            var objMainFrame;
            var objMainBtnQuery;
            objMainFrame = parent.document.frames("MainFrame");
            var objAutoHeightHidden = objMainFrame.document.getElementById('AutoHeightHidden');
            if (objAutoHeightHidden != null)
            { objAutoHeightHidden.value = "Save"; }
//            objMainBtnQuery = objMainFrame.document.getElementById('btn_Query');
//            objMainBtnQuery.click();

            break;
        case 'open':
            break;
    }
}

function onclickCancel(OpenType){
    switch(OpenType) {
        case 'frame':
            var objMainFrame;
            var objMainBtnQuery;
            objMainFrame = parent.document.frames("MainFrame");
            var objAutoHeightHidden = objMainFrame.document.getElementById('AutoHeightHidden');
            if (objAutoHeightHidden != null)
            { 
                if (objAutoHeightHidden.value == "Save")
                {
                    objAutoHeightHidden.value = "";
                    objMainBtnQuery = objMainFrame.document.getElementById('btn_Query');
                    objMainBtnQuery.click();
                }
            }

            parent.document.frames('MainFrame').changePageHeight();
            parent.document.all('FrameMain').cols='*,0';
            break;
    }
}

function changePage(OpenType){
    switch(OpenType) {
        case 'frame':
            parent.document.all('FrameMain').cols='0,*';
            break;
        case 'open':
            break;
    }
}

function changePageHeight() {
    if (top.document.all('frame1') != null) {
        top.document.all('frame1').style.height=document.all('form1').scrollHeight +30;
    }
}

function txtRelateOnKeyDown(sCtlTxtName,sCtlLabName) {
    var objTxt = document.getElementById(sCtlTxtName);
    var objLab = document.getElementById(sCtlLabName);

	if (event.keyCode != 13 && event.keyCode != 9) { 
	    if (sCtlLabName.length != 0) {
		    objLab.value = "";
	    }
	}
}

function GetTimeCount() {
    var myDate = new Date();
	return myDate.getSeconds() + "" + myDate.getMilliseconds()
}


function openCodeWindow(htm,objID,objType) {
    var w = 500;
    var h = 450;
    var vTop = (screen.height - h) / 2;
    var vLeft = (screen.width - w) / 2;
   
    window.open(htm + "?objID=" + objID + "&objType=" + objType,'Children','height=' + h + ', width=' + w + ', top=' + vTop + ', left=' + vLeft + ', toolbar=no, menubar=no, scrollbars=yes, resizable=no,location=n o, status=no');

//    var obj = new Object();
//    obj.name="Children";
    //window.showModalDialog(htm,obj,"dialogWidth=" + w + "px;dialogHeight=" + h + "px");
    
  }
  
  function openCodeWindow01(htm,objID,objType) {
    var w = 500;
    var h = 450;
    var vTop = (screen.height - h) / 2;
    var vLeft = (screen.width - w) / 2;
   
    window.open(htm + "&objID=" + objID + "&objType=" + objType,'Children','height=' + h + ', width=' + w + ', top=' + vTop + ', left=' + vLeft + ', toolbar=no, menubar=no, scrollbars=yes, resizable=no,location=n o, status=no');

//    var obj = new Object();
//    obj.name="Children";
    //window.showModalDialog(htm,obj,"dialogWidth=" + w + "px;dialogHeight=" + h + "px");
    
  }
  
  

function popup(url) 
{
 params  = 'width='+screen.width;
 params += ', height='+screen.height;
 params += ', top=0, left=0'
 params += ', fullscreen=no';

 newwin=window.open(url,'windowname4', params);
 if (window.focus) {newwin.focus()}
 return false;
} 
  
  function openCodeWindowChil(htm,objID,objType) {
    var w = 500;
    var h = 450;
    var vTop = (screen.height - h) / 2;
    var vLeft = (screen.width - w) / 2;
   
    window.open(htm + "?objID=" + objID + "&objType=" + objType,'Children01','height=' + h + ', width=' + w + ', top=' + vTop + ', left=' + vLeft + ', toolbar=no, menubar=no, scrollbars=yes, resizable=no,location=n o, status=no');

//    var obj = new Object();
//    obj.name="Children";
    //window.showModalDialog(htm,obj,"dialogWidth=" + w + "px;dialogHeight=" + h + "px");
    
  }
  
  
  function openCodeLvlWindow(htm,objID,objName,objType,objORG_LEVEL) {
    var w = 500;
    var h = 450;
    var vTop = (screen.height - h) / 2;
    var vLeft = (screen.width - w) / 2;
   
    window.open(htm + "?objID=" + objID + "&objName=" + objName + "&objType=" + objType + "&ORG_LEVEL=" + objORG_LEVEL,'Children','height=' + h + ', width=' + w + ', top=' + vTop + ', left=' + vLeft + ', toolbar=no, menubar=no, scrollbars=yes, resizable=no,location=n o, status=no');

//    var obj = new Object();
//    obj.name="Children";
    //window.showModalDialog(htm,obj,"dialogWidth=" + w + "px;dialogHeight=" + h + "px");
    
  }

 
 function openMailWindow(htm) {
    var w = 500;
    var h = 300;
    var vTop = (screen.height - h) / 2;
    var vLeft = (screen.width - w) / 2;
//    window.open(htm + "?objID=" + objID + "&objType=" + objType,'Children','height=' + h + ', width=' + w + ', top=' + vTop + ', left=' + vLeft + ', toolbar=no, menubar=no, scrollbars=yes, resizable=no,location=n o, status=no');

    var obj = new Object();
    obj.name="Children";
    window.showModalDialog(htm,obj,"dialogWidth=" + w + "px;dialogHeight=" + h + "px");
  }
  
   function openOrgWindow(htm) {
    var w = screen.height;
    var h = screen.width;
    var vTop = (screen.height - h) / 2;
    var vLeft = (screen.width - w) / 2;
    window.open(htm ,'Children','height=' + h + ', width=' + w + ', top=' + vTop + ', left=' + vLeft + ', toolbar=no, menubar=no, scrollbars=yes, resizable=no,location=n o, status=no');

//    var obj = new Object();
//    obj.name="Children";
//    window.showModalDialog(htm,obj,"dialogWidth=" + w + "px;dialogHeight=" + h + "px");
  }
  
 function buttonStyle(btnObj) {
    if(btnObj.value.length <=2 )
    {
      
      btnObj.className = "btnS";
      
      btnObj.onmouseover =function(){this.className='btnSHover';}
      btnObj.onmouseout = function(){this.className='btnS';}
    }  
    else if(btnObj.value.length <= 4)
    {
      btnObj.className = "btnM"; 
      btnObj.onmouseover = function(){this.className='btnMHover';} 
      btnObj.onmouseout = function(){this.className='btnM';}          
    } 
    else 
    {
      btnObj.className = "btnL"; 
      btnObj.onmouseover = function(){this.className='btnLHover';}
      btnObj.onmouseout = function(){this.className='btnL';}                                  
    }    
 }
 
//字型變大寫
function transToUpper(){
    window.event.keyCode=String.fromCharCode(window.event.keyCode).toUpperCase().charCodeAt(0);
}
//字型轉全型
function checkKeyPress(ctl, reg){
    if (ctl.readOnly||ctl.disabled) return false;
    var docSel = document.selection.createRange();
    if (docSel.parentElement().tagName != "INPUT") return false;
    var oSel = docSel.duplicate();
//    var oSel=docSel;
    oSel.text = "";
    var srcRange = ctl.createTextRange();
    oSel.setEndPoint("StartToStart", srcRange);
    var str = oSel.text + String.fromCharCode(window.event.keyCode) + srcRange.text.substr(oSel.text.length);
    if (!reg.test(str))
        window.event.keyCode=0;
}

//E-Mail格式(textbox-email)
function emailBlur(ctl){
    re=/^(\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*)?$/;
    if (re.exec(ctl.value)==null)
    {
        alert("E-Mail帳號格式錯誤!");
        ctl.value="";
        ctl.focus();
    }
}