//滑鼠變換圖片
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

//檢驗連接是否有效
function getXML(URL)
{
  var xmlhttp = new ActiveXObject("microsoft.xmlhttp");
  xmlhttp.Open("GET",URL, false);
  try
  {
    xmlhttp.Send();
  }
  catch(e){}
  finally
  {
    var result = xmlhttp.responseText;
    if(result)
    {
      if(xmlhttp.Status==200)
      {
        return(true);
      }
      else {
        return(false);
      }
    }
    else {
      return(false);
    }
  }
}

function checkUrl(x)
{
  if(x.length != 0)
  {
    if (getXML(x))
    {
      return "連結有效";
    }
    else {
      return "連結無效";
    }
  }
}

function Replace_MaskString(x)
{
  //找出 所有字串的內容(含雙引號)...
  var mychar = x.match(/\"(\S+)\"/ig);
  if (mychar != null)
  {
    for(i=0; i<mychar.length; i++)
    {
      //如果字串裡面有註解符號, 就要先替換成別的字, 以免受影響...
      x = x.replace(mychar[i], mychar[i].replace("\/\/", "#／#／"));
    }
  }
  else {
    return x;
  }
}

function cleanMask1(x)
{
  var Notes = x.match(/\/\/(\S+)/i); //找出 註解符號://以及後面的文字...

  if (Notes != null)
  {
    x = x.replace(Notes[0],"");
    cleanMask1(x);
  }
  else {
    return x;
  }
}

function cleanMask2(x)
{
  var mychar = x.match(/\/\*(\S+)\*\//i); //找出 註解符號 /* */的文字
  if (mychar != null)
  {
    x = x.replace(mychar[0],""); //將 /* */以及內容, 全部取代.....
    cleanMask2(x);
  }
  else {
    return x;
  }
}

function cleanData(x)
{
  if(x.length != 0)
  {
    Replace_MaskString(x); //把字串內的註解符號 替換掉, 以免出問題...

    x = cleanMask1(x); //清除所有的 // 註解...

    //先將所有的function關鍵字, 做變化(只要是function開頭, 後面接著是空格、Tab、Enter的, 都認定是function
    x = x.replace(new RegExp("function ", "ig"),"f#u#n#c#t#i#o#n");
    x = x.replace(new RegExp("function\t", "ig"),"f#u#n#c#t#i#o#n");
    x = x.replace(new RegExp("function\r\n", "ig"),"f#u#n#c#t#i#o#n");
    x = x.replace(new RegExp("function\n", "ig"),"f#u#n#c#t#i#o#n");

    x = x.replace(new RegExp("var ", "ig"),"v#a#r");
    x = x.replace(new RegExp("var\t", "ig"),"v#a#r");
    x = x.replace(new RegExp("var\r\n", "ig"),"v#a#r");
    x = x.replace(new RegExp("var\n", "ig"),"v#a#r");

    x = x.replace(/[\s　]+/g, ""); //把所有的空格(連同Tab, Enter) 清掉...

    x = x.replace(new RegExp("f#u#n#c#t#i#o#n", "ig"),"function "); //將function還原, 並加1個空格在後面, 以區隔functionName
    x = x.replace(/v#a#r/ig,"var "); //由於清除空格時, 會造成var跟var的Name合併在一起, 所以要將[var]變成[var ](多加1個空格)
    x = x.replace(/#／#／/ig,"//"); //由於清除空格時, 會造成var跟var的Name合併在一起, 所以要將[var]變成[var ](多加1個空格)

    x = cleanMask2(x); //清除所有的/* */註解...

    return x;
  }
  else {
    return "";
  }
}

//這裡控制要檢查的項目，true表示要檢查，false表示不檢查
var isCheckImageType = true;  //是否檢查圖片副檔名
var isCheckImageWidth = false //是否檢查圖片寬度
var isCheckImageHeight = false;  //是否檢查圖片高度
var isCheckImageSize = true;  //是否檢查圖片檔案大小

var allowImageType = /\.(jpg|gif|png|jpeg)$/i; //圖片副檔名
var ImageSizeLimit = 2 * 1024 * 1024;  //上傳上限，單位:byte
var ImageWidthLimit = 400;  //圖片寬度上
var ImageHeightLimit = 300;  //圖片高度上

function check_jpg(x)
{
  if(x.length != 0)
  {
    if (isCheckImageType && !allowImageType.test(x)) {
      return " only allow upload below " + parseInt(ImageSizeLimit/1024) + "kb JPG or GIF or PNG\n";
    }
    else {
      var ImageErrMsg = "";
      var chkimg = new Image();
      chkimg.onload;
      chkimg.src = x;

      if (isCheckImageWidth && chkimg.width > ImageWidthLimit) {
        ImageErrMsg += "\nwidth " + chkimg.width + " px large than " + ImageWidthLimit + " px";
      }
      if (isCheckImageHeight && chkimg.height > ImageHeightLimit) {
        ImageErrMsg += "\nheight " + chkimg.height + " px large than " + ImageHeightLimit + " px";
      }
      if (isCheckImageSize && chkimg.fileSize > ImageSizeLimit) {
        ImageErrMsg += "\nfilesize " + parseInt(chkimg.fileSize/1024) + " kb large than " + parseInt(ImageSizeLimit/1024) + " kb";
      }

      if (ImageErrMsg.length != 0) {
        return ImageErrMsg;
      }
      else {
        return "";
      }
    }
  }
  else {
    return "";
  }
}

function lengthFCK(fck)
{
  var oEditor = FCKeditorAPI.GetInstance(fck);
  var oDOM = oEditor.EditorDocument;
  var iLength;
  if(document.all)
  {
    iLength = oDOM.body.innerText.length;
  }
  else {
    var r = oDOM.createRange();
    r.selectNodeContents(oDOM.body);
    iLength = r.toString().length;
  }
  return iLength;
}

//修改可視性
function chghide_YN(x,y)
{
  var obj = document.getElementsByName('fomQry');
  var fomQry = obj.item(0);
  fomQry.op.value="chghide_YN";
  fomQry.hide_YN.value=y;
  fomQry.id.value=x;
  fomQry.target="ifrm";
  fomQry.submit();
}

//修改上下線狀態
function chgkeep_YN(x,y)
{
  var obj = document.getElementsByName('fomQry');
  var fomQry = obj.item(0);
  fomQry.op.value="chgkeep_YN";
  fomQry.keep_YN.value=y;
  fomQry.id.value=x;
  fomQry.target="ifrm";
  fomQry.submit();
}

//修改狀態
function chgStatus(x,y)
{
  var obj = document.getElementsByName('fomQry');
  var fomQry = obj.item(0);
  fomQry.op.value="chgStatus";
  fomQry.status.value=y;
  fomQry.id.value=x;
  fomQry.target="ifrm";
  fomQry.submit();
}

//修改item
function mod(x)
{
  var obj = document.getElementsByName('fomQry');
  var fomQry = obj.item(0);
  fomQry.op.value="mod";
  fomQry.id.value=x;
  fomQry.target="_self";
  fomQry.submit();
}

//刪除副檔
function delatt(x,y)
{
  var obj = document.getElementsByName('fomAtt');
  var fomAtt = obj.item(0);
  ok = confirm( "確定要刪除此筆副檔資料?");
  if( ok == true)
  {
    fomAtt.op.value="delatt";
    fomAtt.target="ifrm";
    fomAtt.id.value=x;
    fomAtt.colname.value=y;
    fomAtt.submit();
  }
}

//刪除圖片
function delpic(x,y)
{
  var obj = document.getElementsByName('fomAtt');
  var fomAtt = obj.item(0);
  ok = confirm( "確定要刪除此圖片?");
  if( ok == true)
  {
    fomAtt.op.value="delpic";
    fomAtt.target="ifrm";
    fomAtt.id.value=x;
    fomAtt.colname.value=y;
    fomAtt.submit();
  }
}

//刪除item
function del(x)
{
  var obj = document.getElementsByName('fomQry');
  var fomQry = obj.item(0);
  ok = confirm( "確定要刪除此筆資料?");
  if( ok == true)
  {
    fomQry.op.value="del";
    fomQry.target="ifrm";
    fomQry.id.value=x;
    fomQry.submit();
  }
}

//新增item
function sub_ins(x)
{
  var obj = document.getElementsByName('fomQry');
  var fomQry = obj.item(0);
  fomQry.op.value="input";
  fomQry.top_id.value=x;
  fomQry.target="_self";
  fomQry.submit();
}

//修改每頁筆數
function rowChg(qRows)
{
  var obj = document.getElementsByName('fomQry');
  var fomQry = obj.item(0);
  fomQry.rows.value=qRows;
  fomQry.submit();
}

//跳到目前頁數
function pagChg(qPages)
{
  var obj = document.getElementsByName('fomQry');
  var fomQry = obj.item(0);
  fomQry.pages.value=qPages;
  fomQry.submit();
}

//上層參數改變
function topChg(top_id)
{
  var obj = document.getElementsByName('fomQry');
  var fomQry = obj.item(0);
  fomQry.top_id.value=top_id;
  fomQry.pages.value=0;
  fomQry.submit();
}

//排序參數
function sortBy(qSort)
{
  var obj = document.getElementsByName('fomQry');
  var fomQry = obj.item(0);
  if(fomQry.SORT.value==qSort)
  {
    fomQry.DESC.value=(fomQry.DESC.value=="1")?"0":"1";
  }
  fomQry.SORT.value=qSort;
  fomQry.submit();
}


//減少排序權重
function seqUP(x)
{
  var obj = document.getElementsByName('fomQry');
  var fomQry = obj.item(0);
  fomQry.op.value="seqUP";
  fomQry.id.value=x;
  fomQry.submit();
}

//增加排序權重
function seqDown(x)
{
  var obj = document.getElementsByName('fomQry');
  var fomQry = obj.item(0);
  fomQry.op.value="seqDown";
  fomQry.id.value=x;
  fomQry.submit();
}

//關鍵字查詢
function qryGo()
{
  var obj = document.getElementsByName('fomQry');
  var fomQry = obj.item(0);
  var chkitem;

  fomQry.pages.value = "0";
  fomQry.qrykey.value = fomQry.qrykey.value.trim();
  chkitem = check_char(fomQry.qrykey.value);
  if( chkitem != "" )
  {
    alert( "\"關鍵字\"" + chkitem );
    fomQry.qrykey.focus();
    return false;
  }

  fomQry.submit();

}

//關鍵字查詢
function qryGo2()
{
  var obj = document.getElementsByName('fomQry');
  var fomQry = obj.item(0);
  var chkitem;

  fomQry2.pages.value = "0";
  fomQry2.qrykey.value = fomQry2.qrykey.value.trim();
  chkitem = check_char(fomQry2.qrykey.value);
  if( chkitem != "" )
  {
    alert( "\"關鍵字\"" + chkitem );
    fomQry2.qrykey.focus();
    return false;
  }

  fomQry2.submit();

}
//全部查詢
function qryAll()
{
  var obj = document.getElementsByName('fomQry');
  var fomQry = obj.item(0);
  fomQry.op.value = "qryAll";
  fomQry.top_id.value = "0";
  fomQry.pages.value = "0";
  fomQry.qryitem.value = "";
  fomQry.qrykey.value = "";
  fomQry.SORT.value = "";
  fomQry.DESC .value = "";

  fomQry.submit();
}

//匯出清單
function qryExcel()
{
  var obj = document.getElementsByName('fomExcel');
  var fomExcel = obj.item(0);
  var obj = document.getElementsByName('fomQry');
  var fomQry = obj.item(0);
  fomExcel.op.value = "qryExcel";
  fomExcel.qryitem.value = fomQry.qryitem.value;
  fomExcel.qrykey.value = fomQry.qrykey.value;
  fomExcel.SORT.value = fomQry.SORT.value;
  fomExcel.DESC.value = fomQry.DESC.value;
  fomExcel.submit();
}
// 去除前後空白
function trim()
{
  for( var begin = 0; begin < this.length; begin++ )
  if(this.charAt(begin) != " ") break;
  for( var end = this.length; end > 0; end-- )
  if(this.charAt(end - 1) != " ") break;
  return this.slice( begin, end );
}

String.prototype.trim = trim;

//檢查帳號
function check_ac(x)
{
  if(x.length != 0)
  {
    if(x.length < 4)
    {
      return "必需大於4位數!!";
    }
    else if( !x.match(/^[a-zA-Z]/) )
    {
      return "第一個字需為英文!!";
    }
    else if( !x.match(/^[a-zA-Z]{1}\w+$/) )
    {
      return "只可使用英文字跟數字!!" ;
    }
    else
    {
      return "";
    }
  }
  else
  {
    return "";
  }
}

//檢查密碼
function check_pw(id)
{
  if(id.length != 0)
  {
    if(id.length < 4)
    {
      return "必需大於4位數!!";
    }
    else
    {
      return "";
    }
  }
  else
  {
    return "";
  }
}

// 檢查特殊字元
function check_char(x)
{
  if(x.length != 0)
  {
    if(//x.indexOf("\"",0) != -1 ||
    //x.indexOf("?",0) != -1 ||
    //x.indexOf("%",0) != -1 ||
    //x.indexOf("*",0) != -1 ||
    x.indexOf("'",0) != -1)
    {
      return "不可輸入特殊字元!!";
    }
    else
    {
      return "";
    }
  }
  else
  {
    return "";
  }
}

// 檢查空白
function check_null(x)
{
  if(x.length == 0)
  {
    return "必需要輸入!!";
  }
  else
  {
    return "";
  }
}

// 檢查單位數量
function check_unit(x)
{
  if(x.length != 0)
  {
    if( !(x.match(/^\d+$/)) )
    {
      return "請輸入數字";
    }
    else if( parseInt(x) < 1 )
    {
      return "輸入的數字必須大於0";
    }
    else
    {
      return "";
    }
  }
  else
  {
    return "";
  }
}

// 檢查是否為數字
function check_number(x)
{
  if(x.length != 0)
  {
    if( !(x.match(/^\d+$/)) )
    {
      return "請輸入數字";
    }
    else if( parseInt(x) < 0 )
    {
      return "輸入的數字必須為正數";
    }
    else
    {
      return "";
    }
  }
  else
  {
    return "";
  }
}

// 檢查台灣手機號碼
function check_mobile(x)
{
  if(x.length != 0)
  {
    if( x.length != 10 )
    {
      return "長度為10個字";
    }
    else if( !(x.match(/^\d+$/)) )
    {
      return "請輸入數字";
    }
    else
    {
      return "";
    }
  }
  else
  {
    return "";
  }
}

// 檢查IP輸入字元
function check_ip(x)
{
  if( x.length != 0 && !(x.match(/^\d+$/)) )
  {
    if(x.indexOf("*",0) == -1)
    {
      return "只能輸入數字或*號!!";
    }
    else if( parseInt(x) > 255 )
    {
      return "數字必須小於255";
    }
    else
    {
      return "";
    }
  }
  else
  {
    return "";
  }
}


// 檢查E-mail格式
function check_mail(x)
{
  if(x.length != 0)
  {
    if (x.charAt(0)=="." ||
    x.charAt(0)=="@"||
    x.indexOf('@', 0) == -1 ||
    x.indexOf('.', 0) == -1 ||
    x.lastIndexOf("@")==x.length-1 ||
    x.lastIndexOf(".")==x.length-1)
    {
      return "格式不正確!!";
    }
    else
    {
      return "";
    }
  }
  else
  {
    return "";
  }
}

// 檢查身份證字號
function check_idnum(x)
{
  if(x.length != 0)
  {
    var ck = IDCkSum(x);
    if(ck==-6)
    {
      return ("超過10個字!!\n");
    }
    if(ck==-1)
    {
      return ("不滿10個字!\n");
    }
    if(ck==-2)
    {
      return("第一碼必須是大寫的英文字母!!\n");
    }
    if(ck==-3)
    {
      return("第二碼有問題!!\n");
    }
    if(ck==-4)
    {
      return("第二到十碼有問題!!");
    }
    if(ck==-5)
    {
      return("輸入不正確!!");
    }
    return "";
  }
  else
  {
    return "";
  }
}

function IDCkSum(x) // 身分證字號檢查
{
  var myid;
  myid = x.toUpperCase();
  x.value = myid;

  // 長度必須為10碼
  if(myid.length>10) return (-6);
  if(myid.length<10) return (-1);

  // 第一碼須為A到Z
  var c = myid.charAt(0);
  if(c<"A" || c> "Z") return (-2);

  // 第二碼必須為1或2
  c = myid.charAt(1);
  if(c!="1" && c!="2") return (-3);

  // 第二碼至第十碼必須為數字
  for(i=1;i<
  10;i++)
  if(isNaN(parseFloat(myid.charAt(i)))) return(-4);

  //計算一:將第一碼英文轉數字A=10,B=11,C=12,.....
  // ABCDEFGHJKLMNPQRSTUVXYWZIO, please notice the sequence of I, O, W
  // 10 ~35
  var alph = new Array("A","B","C","D","E","F","G","H","J","K","L","M","N","P","Q","R","S","T","U","V","X","Y","W","Z","I","O");
  var num  = new Array("10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31","32","33","34","35");
  var n=0;
  for(i=0;i<alph.length;i++)
  {
    if(myid.charAt(0)==alph[i]) n=i;
  }
  var tot1 = parseFloat(num[n].charAt(0)) + (parseFloat(num[n].charAt(1)) * 9);

  // 計算二:第2碼*8 + 第3碼*7 + .....
  var tot2 = 0;
  for(i=1;i<myid.length-1;i++)
  {
    tot2 = tot2 + parseFloat(myid.charAt(i))*(9-i);
  }

  // 計算三:第10碼數字
  var tot3 = parseFloat(myid.charAt(9));
  var tot4 = tot1 + tot2 + tot3;

  // 總合除以10餘數必須為0
  if((tot4 % 10)!=0) return (-5);

  //不可使用A123456789與A123456798
  if(myid=="A123456789") return (-5);
  if(myid=="A123456798") return (-5);

  return (0);
}

//檢查統一編號
// 檢查身份證字號
function check_comp_idnum(x)
{
  if(x.length != 0)
  {
    if( x.length < 7 )
    {
      return "長度應大於7個字";
    }
    else if( !(x.match(/^\d+$/)) )
    {
      return "請輸入數字";
    }
    else
    {
      return "";
    }
  }
  else
  {
    return "";
  }
}

//檢查電話號碼
function check_tel(x) {
  var xstr = x + "";
  if(xstr.length != 0)
  {
	for (var i = 0;i<xstr.length;i++) {
		if ( (xstr.charAt(i)<"0" || xstr.charAt(i)>"9") && !(xstr.charAt(i)=="#" || xstr.charAt(i)=="(" || xstr.charAt(i)==")" ||xstr.charAt(i)=="-" ) )
		{
			return "電話輸入格式錯誤\r\n可用格式：(02)1234-5678#123";
		}
	}
	return "";
  }
  else
  {
    return "";
  }
}