function OpenDialog(fModal, sURL, lWidth, lHeight, lXPos, lYPos, sArguments) {
  var sFeatures;
  sFeatures = 'dialogHeight:' + lHeight + 'px;'
  sFeatures = sFeatures + 'dialogWidth:' + lWidth + 'px;'
  sFeatures = sFeatures + 'dialogTop:' + lXPos + 'px;'
  sFeatures = sFeatures + 'dialogLeft:' + lYPos + 'px;'
  sFeatures = sFeatures + 'edge: Raised; center: Yes; help: No; resizable: No; status: No;Scrollbars:No;';

  if(fModal) return window.showModalDialog(sURL, sArguments, sFeatures);
  else return window.showModelessDialog(sURL, sArguments, sFeatures);
}

function OpenUpLoad(t)
{
  //這是被呼叫頁面的控制參數
  mystr="dialogwidth=370px;dialogheight=280px;scrollbars=no;center=yes;border=thin;help=no;status=no";
  //strvalue為回傳值時丟給此變數。 第一個參數為(Upload.asp)為被呼叫的頁面。第二個參數則是Modal視窗開啟時會傳遞給他的值。第三個參數只是個控制參數跟A標籤有點像的使用方式。
  strvalue = window.showModalDialog("/muse_sys/Upload.asp","檔案上傳",mystr);
  if (strvalue!="" && strvalue!=null)
  {
   t.value=strvalue;
  }
}


function UpLoadFile(FormName,Field,Folder,upname){

		var vReturnValue = OpenDialog(true,'../functions/UpLoad1.asp?Folder=../User/'+Folder+'/&upname='+upname, '520', '300','','','');
         if (typeof(vReturnValue) != 'undefined'){	
		 
            Field.value = vReturnValue;
         }
}

function UpLoadImg(TempName,Field,Folder,upname){

		var vReturnValue =OpenDialog(true,'../functions/UpLoadimg.asp?Folder=../User/'+Folder+'/&upname='+upname+'&TempName='+TempName, '520', '300','','','');    		
         if (typeof(vReturnValue) != 'undefined'){

			Field.value= vReturnValue;    
         }
}

function UpLoadBImg(TempName,Field,Folder,upname){

		var vReturnValue =OpenDialog(true,'db-system/UpLoadimg.asp?Folder=Userfile/'+Folder+'/&upname='+upname+'&TempName='+TempName, '520', '300','','','');    		
         if (typeof(vReturnValue) != 'undefined'){

			Field.value= vReturnValue;    
         }
}

function PF_IsNull(Str)
{
 x='' + trim(Str)

 if(x=='')
 { return false; }
 else{return true; }
}


//萬年曆
function calendar(t) {
	sPath = "Include/calendar1.htm";
	strFeatures = "dialogWidth=206px;dialogHeight=208px;center=yes;help=no;status=no";
	st = t.value;
	if(st == "")
	  st = new Date();
	else
	  st = new Date();   //TransFromTWDate(st)
	sDate = showModalDialog(sPath,st,strFeatures);
	t.value = formatDate(sDate);
	
}

function formatDate(sDate) {
	var sScrap = '';
	var dScrap = new Date(sDate);
	if (dScrap == 'NaN') return sScrap;

  return TransToTWDate(dScrap);
}

function TransToTWDate(sDate) {
	iDay = sDate.getDate();
	iMon = sDate.getMonth() + 1;
	iYea = sDate.getFullYear() ;
  if(iDay < 10) iDay = '0' + iDay;
  if(iMon < 10) iMon = '0' + iMon;

	return iYea + '/' + iMon + '/'  + iDay ;
}
// ------------------------------;
// 數字檢核函數;
// ------------------------------;

function PF_IsNum(sString)
{
   if (isNaN(sString))
   {
      return false;
   }

   for (var i=0; i<sString.length; i++)
   {
      if (sString.charCodeAt(i) < 48 || sString.charCodeAt(i) > 57)
      {
         return false;
      }
   }
   return true;
}

// ------------------------------;
// 英文字母檢核函數;
// ------------------------------;

function PF_IsLetter(sString)
{
   for (var i=0; i<sString.length; i++)
   {
      if (sString.charCodeAt(i) < 65 || sString.charCodeAt(i) > 90)
      {
         return false;
      }
   }
   return true;
}

// ------------------------------;
// 數字與英文字母檢核函數;
// ------------------------------;

function PF_IsChar(sString)
{
   for (var i=0; i<sString.length; i++)
   {

      if ((sString.charCodeAt(i) < 48 || sString.charCodeAt(i) > 57) && (sString.charCodeAt(i) < 65 || sString.charCodeAt(i) > 90))
      {
         return false;
      }
   }
   return true;
}

//去除左邊空白;
function lTrim(str)
{
	if (typeof(str) != 'undefined'){
		if (str.charAt(0) == " ")
		{
			str = str.slice(1);
			str = lTrim(str);
		}
		return str;
	}
}

//去除右邊空白;
function rTrim(str)
{
var iLength;
	if (typeof(str) != 'undefined'){
		iLength = str.length;

			if (str.charAt(iLength - 1) == " ")
			{
				str = str.slice(0, iLength - 1);
				str = rTrim(str);
			}
			return str;
	}

}

//去除兩邊空白;
function trim(str)
{
	return lTrim(rTrim(str));
}

//列印;
function WinPrinter() { window.print(); }

//checkBox 全選;
function AutocheckAll(field)
{

	if (field.checked){
		field.checked = false ;
		for (i = 0; i < field.length; i++){
			field[i].checked = false ;
		}
	}else{
		field.checked = true ;
		for (i = 0; i < field.length; i++){	
			field[i].checked = true ;
		}	
	}
}
//checkBox 全選;
function checkAll(field)
{
		field.checked = true ;
		for (i = 0; i < field.length; i++){	
			field[i].checked = true ;
		}	
}
//checkBox 全不選;
function uncheckAll(field)
{
field.checked = false ;
for (i = 0; i < field.length; i++)
	field[i].checked = false ;
}

function openwin(p_Url,p_Name,p_Scroll,p_Height,p_Width,p_Top,p_Left)
{
	OrderWin = window.open(p_Url,p_Name,"toolbar=no,directories=no,menubar=no,resizable=yes,scrollbars="+ p_Scroll + ",height=" + p_Height + ",width=" + p_Width + ",top="+ p_Top + ",left=" + p_Left);
}

// ------------------------------;
// 檢查UID;
// 檢查國民身份證編號、營利事業統一編號、護照號碼;
// ------------------------------;

function PF_IsUid(strUid)
{
   if (strUid.length < 8 || strUid.length == 9)
   {
      return false;
   }

   if (strUid.length == 8)
   {
      if (! PF_CheckBAN(strUid))
      {
         return false;
      }
   }
   else
   {
      if (strUid.length == 10)
      {
         if (! PF_CheckID(strUid))
         {
            return false;
         }
      }
      else
      {
         if (PF_IsLetter(strUid.charAt(0)))
         {
            if (strUid.charAt(10) != '3')
            {
               return false;
            }

            if (! PF_CheckID(strUid.substr(0,10)))
            {
               return false;
            }
         }
         else
         {
            if (! PF_IsNum(strUid.substr(0,8)))
            {
               strReason = '護照號碼第一碼至第八碼必須全部為數字';
               return false;
            }

            if (! PF_IsLetter(strUid.substr(8,2)))
            {
               strReason = '護照號碼第九碼和第十碼必須是英文字母';
               return false;
            }

            if (! PF_IsNum(strUid.charAt(10)))
            {
               strReason = '護照號碼最後一碼必須是數字';
               return false;
            }
         }
      }
   }
   return true;
}

// ------------------------------;
// 國民身份證編號驗證;
// ------------------------------;

function PF_CheckID(strUserID){
   var intAreaNo;             //區域碼變數
   var intCheckSum;           //檢核碼變數
   var intCount;              //計數變數
   var strAreaCode;           //區域碼變數
// var blnCheckID = false;    //設定起始值

   strUserID = strUserID.toUpperCase();   //轉換為大寫
   strAreaCode = strUserID.charAt(0);     //取得首碼字母

   //確定身份證有10碼
   if (strUserID.length != 10){
      strReason = '國民身份證號碼必須是十碼';
      return false;
   }

   //確定首碼在A-Z之間
   if (strAreaCode < 'A' || strAreaCode > 'Z'){
      strReason = '國民身份證號碼第一碼必須是英文字母';
      return false;
   }

   //確定2-10碼是數字
   for (intCount = 1; intCount < 10; intCount++){
      if (strUserID.charAt(intCount) < '0' || strUserID.charAt(intCount) > '9'){
         strReason = '國民身份證號碼第二碼至第十碼必須全部為數字';
         return false;
      }
   }

   intAreaNo = 'ABCDEFGHJKLMNPQRSTUVXYWZIO'.indexOf(strAreaCode) + 10;           //取得英文字母對應編號，A->10,B->11等等
   strUserID = intAreaNo + strUserID.substr(1,9);                                //組合字串
   intCheckSum = parseInt(strUserID.charAt(0)) + parseInt(strUserID.charAt(10)); //計算首尾二者之和

   //計算第二碼至第十碼之積
   for (intCount = 1; intCount < 10; intCount++){
      intCheckSum += parseInt(strUserID.charAt(intCount)) * (10 - intCount);
   }

   //檢查是否為10整除
   if ((intCheckSum % 10) == 0){
      return true;
   }
   else{
      strReason = '國民身份證號碼輸入錯誤，請再檢查';
      return false;
   }
}

// ------------------------------;
// 營利事業統一編號邏輯檢查;
// ------------------------------;

function PF_CheckBAN(strBAN){
   var intMod;                            //餘數變數
   var intSum;                            //合計數變數
   var intX = new Array(1,2,1,2,1,2,4,1);
   var intY = new Array(7);
// var blnCheckBAN = false;
   var intCount;                          //計數變數

   if (strBAN.length != 8){
      strReason = '營利事業統一編號必須是八碼';
      return false;
   }

   for (intCount = 0; intCount < 8; intCount++){
      if (strBAN.charAt(intCount) < '0' || strBAN.charAt(intCount) > '9'){
         strReason = '輸入之營利事業統一編號中有非數字';
         return false;
      }
   }

   for (intCount = 0; intCount < 8; intCount++){
      intX[intCount] *= parseInt(strBAN.charAt(intCount));
   }

   intY[0] = parseInt(intX[1] / 10);
   intY[1] = intX[1] % 10;
   intY[2] = parseInt(intX[3] / 10);
   intY[3] = intX[3] % 10;
   intY[4] = parseInt(intX[5] / 10);
   intY[5] = intX[5] % 10;
   intY[6] = parseInt(intX[6] / 10);
   intY[7] = intX[6] % 10;

   intSum = intX[0] + intX[2] + intX[4] + intX[7] + intY[0] + intY[1] + intY[2] + intY[3] + intY[4] + intY[5] + intY[6] + intY[7];

   intMod = intSum % 10;

   if (strBAN.charAt(6) == '7') {
      if (intMod == 0){
         return true;
      }
      else{
         intSum = intSum + 1;
         intMod = intSum % 10;
         if (intMod == 0){
            return true;
         }
         else{
            strReason = '營利事業統一編號輸入錯誤，請再檢查';
            return false;
         }
      }
   }
   else{
      if (intMod == 0){
         return true;
      }
      else{
         strReason = '營利事業統一編號輸入錯誤，請再檢查';
         return false;
      }
   }
}

// ------------------------------;
// EMail檢核函數;
// ------------------------------;

function PF_VerifyEMail(strEMail)
{
   var charCanUse = '-.0123456789@ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz';
   var intIndex = strEMail.indexOf('@');
   if (strEMail.length < 5)
   {
      return false;
   }

   if (intIndex < 1)
   {
      return false;
   }

   if (intIndex != strEMail.lastIndexOf('@'))
   {
      return false;
   }

   if (strEMail.charAt(intIndex - 1) == '.')
   {
      return false;
   }

   var strTemp = strEMail.substr(intIndex + 1);
   if (strTemp.indexOf('.') < 1)
   {
      return false;
   }

   if (strTemp.indexOf('..') != -1)
   {
      return false;
   }

   var i;
   for (i = 0; i < strEMail.length; i++)
   {
      if (charCanUse.indexOf(strEMail.charAt(i)) == -1)
      {
         return false;
      }
   }
   return true;
}



//鎖右鍵;
//document.oncontextmenu=eventfalse;
//鎖左鍵;
//document.onselectstart=eventfalse;
function eventfalse()
{
	window.event.returnValue=false;
}

//只能輸入數字
function PF_OnlyNumeric(code){
	if (code < 46 | code > 57)
	{
		event.returnValue = false;
	}
}
//跳到下一個欄位;
function EnterKey(field){
	if (window.event.keyCode == 13) {
	field.focus();
	}
}


//取得 Mail XML
function GetMailXML(sID,rtnobj){
	try{
   	   rtnobj.value = '';
   	  if (sID != '' && sID.length > 5){  	      
   	      var doc,optname;
		  rtnobj.value=sID;
         	doc = new ActiveXObject("MSXML.DOMDocument");
         	doc.async=false;			
         	doc.load("include/GetXml.asp?location=GetMailXML&sID="+sID);	         
            optname=doc.selectSingleNode("/item").text;
			if (optname=='Y')
			{
				alert('很抱歉！eMail已登記\n請選擇其他eMail再做登記');
				rtnobj.value = '';
			}
			else{alert('eMail認證成功!');rtnobj.value = sID;	}     			
         }	

      }catch(e)
      {
      	
      } 
}


//
function rtnClickCnt(web,ID)
 {
	try
	{
		if (web.length >0 && ID.length >0)
		{
            doc = new ActiveXObject("MSXML.DOMDocument");
         	doc.async=false;			
         	doc.load("include/GetXml.asp?location=GetCntXML&Web="+web+"&sID="+ID);	         							
			rtncnt = doc.selectSingleNode("/item").text;
		}
		if (rtncnt=='')
		{
			rtncnt = 0
		}
		document.writeln(rtncnt)
	}
	catch (e)
	{
	}

 }

var http_request;
function createXMLHttpRequest() {
    if (window.XMLHttpRequest) { 
        http_request = new XMLHttpRequest();  
    }
    else if (window.ActiveXObject) { 
        http_request = new ActiveXObject("Microsoft.XMLHTTP"); 
    }    
}

function startRequestNothing(url,postData) {
    createXMLHttpRequest(); // 建立非同步請求物件  
    http_request.onreadystatechange = cbNothing;  // 設定callback函式   
    http_request.open("POST", url,true);  // 開啟連結    
    http_request.send(postData);  // 傳送請求    
}

function cbNothing() {}

function startRequest(url,postData) {
    createXMLHttpRequest(); // 建立非同步請求物件  
    http_request.onreadystatechange = cb;  // 設定callback函式   
    http_request.open("POST", url,true);  // 開啟連結    
    http_request.send(postData);  // 傳送請求    
}

function startRequest1(url,postData) {
    createXMLHttpRequest(); // 建立非同步請求物件
    http_request.onreadystatechange = cb1;  // 設定callback函式
    http_request.open("POST", url,true);  // 開啟連結
    http_request.send(postData);  // 傳送請求
}

function startRequest2(url,postData) {
    createXMLHttpRequest(); // 建立非同步請求物件  
    http_request.onreadystatechange = cb2;  // 設定callback函式
    http_request.open("POST", url,true);  // 開啟連結
    http_request.send(postData);  // 傳送請求
}

function startRequestSync(url,postData) {
    createXMLHttpRequest(); // 建立同步請求物件  
    http_request.open("POST", url,false);  // 開啟連結
    http_request.send(postData);  // 傳送請求
    var res = http_request.responseText;
    if (res=="1") {
    return true;
    } else {
    return false;
    }
}

function GetCookieVal(offset)
//获得Cookie解码后的值
{
var endstr = document.cookie.indexOf (";", offset);
if (endstr == -1)
endstr = document.cookie.length;
return unescape(document.cookie.substring(offset, endstr));
}

function SetCookie(name, value)
//设定Cookie值
{
var expdate = new Date();
var argv = SetCookie.arguments;
var argc = SetCookie.arguments.length;
var expires = (argc > 2) ? argv[2] : null;
var path = (argc > 3) ? argv[3] : null;
var domain = (argc > 4) ? argv[4] : null;
var secure = (argc > 5) ? argv[5] : false;
if(expires!=null) expdate.setTime(expdate.getTime() + ( expires * 1000 ));
document.cookie = name + "=" + escape (value) +((expires == null) ? "" : ("; expires="+ expdate.toGMTString()))
+((path == null) ? "" : ("; path=" + path)) +((domain == null) ? "" : ("; domain=" + domain))
+((secure == true) ? "; secure" : "");
}
function DelCookie(name)
//删除Cookie
{
var exp = new Date();
exp.setTime (exp.getTime() - 1);
var cval = GetCookie (name);
document.cookie = name + "=" + cval + "; expires="+ exp.toGMTString();
}

function GetCookie(name)
//获得Cookie的原始值
{
var arg = name + "=";
var alen = arg.length;
var clen = document.cookie.length;
var i = 0;
while (i < clen)
{
var j = i + alen;
if (document.cookie.substring(i, j) == arg)
return GetCookieVal (j);
i = document.cookie.indexOf(" ", i) + 1;
if (i == 0) break;
}
return null;
}

function numOnly()  
{
    if (window.event.keyCode==13) 
    {
        window.event.keyCode=9;    
        return;
    }
    if(!(event.keyCode==46)&&!(event.keyCode==8)&&!(event.keyCode==37)&&!(event.keyCode==39))
    {
         if(!((event.keyCode>=48&&event.keyCode<=57)||(event.keyCode>=96&&event.keyCode<=105)||(event.keyCode==9)||(event.keyCode==110)||(event.keyCode==190)))
           {
             event.returnValue=false;
        }         
    }    
}

function NoInput()  
{
    if (window.event.keyCode==13) 
    {
        window.event.keyCode=9;    
        return;
    }
    
     event.returnValue=false;
      
}

function getSelectedText(obj) {
    return obj.options[obj.selectedIndex].text;
}

function getSelectedValue(obj) {
    return obj.options[obj.selectedIndex].value;
}

function isDate(sDate)
{
 var aryDate
    if (sDate.indexOf("/")>0) {
        aryDate = sDate.split("/");
    }
     if (sDate.indexOf("-")>0) {
        aryDate = sDate.split("-");
    }
 var arg_intYear = aryDate[0];
 var arg_intMonth = aryDate[1];
 var arg_intDay = aryDate[2];
 var objDate = new Date(arg_intYear,arg_intMonth-1,arg_intDay);
    if((parseInt(arg_intMonth) > 12) || (parseInt(arg_intMonth) < 1))
    {
        return false;
    }
    else
    {        
        if((parseInt(arg_intDay) != parseInt(objDate.getDate()))||(parseInt(arg_intMonth)!= parseInt((objDate.getMonth()+1))))
        {
            return false;
        }
        else
        {
            return true;
        }
    }
}
