function SelectAll( frmNum ) {
   if ( isNaN(frmNum) ) { frmNum = 0; }
   for (var i=0;i<document.forms[frmNum].elements.length;i++){ 
      var e=document.forms[frmNum].elements[i]; 
      e.checked=!e.checked;
   } 
}

function ShowPic(a,b){
	if (a.value!=""){
		b.src=a.value;	
	}
}

// stype   : 要進行判斷數值的形態, "F":Float "I":Integer "S":Single
// elm     : 要取得數值的變數
function getNumber(stype,elm){
  var checkOK = "0123456789";
  var checkStr = elm;
  var allValid = true;
  var decPoints = 0;
  var allNum = "";
  var getFlag = false;
  
  switch (stype) {
  case 'F':checkOK = "0123456789-.";
           break;
  case 'I':checkOK = "0123456789-";
           break;
  case 'S':checkOK = "0123456789";
           break;
  }
  
  for ( i=0; i<checkStr.length; i++ ) {
      ch = checkStr.charAt(i);
      for ( j=0; j<checkOK.length; j++ )
          if ( ch==checkOK.charAt(j) ) break;
      
      if ( j==checkOK.length ) {
          allValid = false;
          break;
      }
      if (ch!="0") getFlag=true;
      if (getFlag) allNum += ch;
  }
  if ( allValid ) {
  	  return allNum;
  }else{
      return "";
  }
}

// aobj    : FORM 中要判斷日期的物件 ex.document.Sform.sdate
// caption : 欄位的名稱,顯示錯誤訊息時使用
// display : true/false, 決定是否要顯示錯誤訊息
function isDate(aobj,caption,display) {
  var sdate,sYY,sMM,sDD;
  var allValid = true;
  sdate = aobj.value;
  sdate = sdate.replace("/","-");
  sdate = sdate.replace("/","-");
  sYY=sdate.substring(0,sdate.indexOf("-"));
  sdate=sdate.substring(sdate.indexOf("-")+1,sdate.length);
  sMM=sdate.substring(0,sdate.indexOf("-"));
  sDD=sdate.substring(sdate.indexOf("-")+1,sdate.length);
  
  if ( !isNumber("S",sYY,"",false) ){
      allValid=false;
  }else{
      if (sYY.length!=4) allValid=false;
  }
  
  if ( !isNumber("S",sMM,"",false) ){
      allValid=false;
  }else{
      if (sMM.length!=2) {
        allValid=false;
      }else{
         sMM = getNumber("S",sMM);
         if ( (sMM < 1) || (sMM > 12) ) allValid = false;
      }
  }
  
  if ( !isNumber("S",sDD,"",false) ){
      allValid=false;
  }else{
      if (sDD.length!=2) {
          allValid=false;
      }else{
          sDD = getNumber("S",sDD);
          switch (String(sMM)) {
          case '1' :
          case '3' :
          case '5' :
          case '7' :
          case '8' :
          case '10':
          case '12':
              if ( (sDD < 1) || (sDD > 31) ) allValid = false;
              break;
          case '4' :
          case '6' :
          case '9' :
          case '11':
              if ( (sDD < 1) || (sDD > 30) ) allValid = false;
              break;
          case '2':
              if ( (sDD < 1) || (sDD > 29) ) allValid = false;
              break;
          default :
              allValid = false;
              break;
          }
      }
  }
  
  if ( !allValid ){
      if (display) alert("\"" + caption + "\"輸入錯誤, 不是合法的日期格式!");
      aobj.focus();
      aobj.select();
  }
  return allValid;
}

// stype   : 要進行判斷數值的形態, "F":Float "I":Integer "S":Single
// elm     : 要進行判斷的數值
// caption : 欄位的名稱,顯示錯誤訊息時使用
// display : true/false, 決定是否要顯示錯誤訊息
function isNumber(stype,elm,caption,display){
  var checkOK = "0123456789";
  var checkStr = elm;
  var allValid = true;
  var decPoints = 0;
  var allNum = "";
  
  if (checkStr.length==0) allValid=false;
  
  switch (stype) {
  case 'F':checkOK = "0123456789-.";
           break;
  case 'I':checkOK = "0123456789-";
           break;
  case 'S':checkOK = "0123456789";
           break;
  }
   
  for ( i=0; i<checkStr.length; i++ ) {
      ch = checkStr.charAt(i);
      for ( j=0; j<checkOK.length; j++ )
          if ( ch==checkOK.charAt(j) ) break;
      
      if ( j==checkOK.length ) {
          allValid = false;
          break;
      }
      allNum += ch;
  }
  if ( allValid ) {
  	  return true;
  }else{
      if (display) alert("\"" + caption + "\"輸入錯誤, 不是合法的數字格式!");
  	  return false;
  }
}

// aobj    : FORM 中要判斷日期的物件 ex.document.Sform.sdate
// caption : 欄位的名稱,顯示錯誤訊息時使用
// display : true/false, 決定是否要顯示錯誤訊息
function isTime(aobj,caption,display) {
  var stime,sHH,sMM;
  var allValid = true;
  stime = aobj.value;
  sHH=stime.substring(0,stime.indexOf(":"));
  sMM=stime.substring(stime.indexOf(":")+1,stime.length);
  
  if ( !isHour(sHH,"",false) ){
      allValid=false;
  }
  
  if ( !isMinute(sMM,"",false) ){
      allValid=false;
  }
  
  if ( !allValid ){
      if (display) alert("\"" + caption + "\"輸入錯誤, 不是合法的時間格式!");
      aobj.focus();
      aobj.select();
  }
  return allValid;
}

// elm     : 要進行判斷的數值
// caption : 欄位的名稱,顯示錯誤訊息時使用
// display : true/false, 決定是否要顯示錯誤訊息
function isHour(elm,caption,display){
  var eval= elm;
  var allValid = true;
  
  if ( !isNumber("S",eval,"",false) ){
      allValid=false;
  }else{
      if (eval.length==2) {
          eval = getNumber("S",eval);
          if ((eval<0) || (eval>23)) allValid=false;
      }else{
          allValid=false;
      }
  }

  if ( allValid ) {
  	  return true;
  }else{
      if (display) alert("\"" + caption + "\"輸入錯誤, 不是合法的 Hour 時間格式!");
  	  return false;
  }
}

// elm     : 要進行判斷的數值
// caption : 欄位的名稱,顯示錯誤訊息時使用
// display : true/false, 決定是否要顯示錯誤訊息
function isMinute(elm,caption,display){
  var eval= elm;
  var allValid = true;
  
  if ( !isNumber("S",eval,"",false) ){
      allValid=false;
  }else{
      if (eval.length==2) {
          eval = getNumber("S",eval);
          if ((eval<0) || (eval>59)) allValid=false;
      }else{
          allValid=false;
      }
  }

  if ( allValid ) {
  	  return true;
  }else{
      if (display) alert("\"" + caption + "\"輸入錯誤, 不是合法的時間 Minute 時間格式!");
  	  return false;
  }
}

//去空白
function trim(elm) {
  while ((elm.length>0) && (elm.indexOf(" ")==0)) {
      elm=elm.substring(1,elm.length);
  }
  while ((elm.length>0) && (elm.lastIndexOf(" ")==(elm.length-1))) {
      elm=elm.substring(0,elm.length-1);
  }
  return elm;
}


// aobj    : FORM 中要判斷年月的物件 ex.document.Sform.sdate
// caption : 欄位的名稱,顯示錯誤訊息時使用
// display : true/false, 決定是否要顯示錯誤訊息
function isYM(aobj,caption,display) {
  var sdate,sYY,sMM;
  var allValid = true;
  sdate = aobj.value;
  sdate = sdate.replace("/","-");
  sYY=sdate.substring(0,sdate.indexOf("-"));
  sdate=sdate.substring(sdate.indexOf("-")+1,sdate.length);
  sMM=sdate;
  
  if ( !isNumber("S",sYY,"",false) ){
      allValid=false;
  }else{
      if (sYY.length!=4) allValid=false;
  }
  
  if ( !isNumber("S",sMM,"",false) ){
      allValid=false;
  }else{
      sMM = getNumber("S",sMM);
      if ( (sMM < 1) || (sMM > 12) ) allValid = false;
  }
  
  if ( !allValid ){
      if (display) alert("\"" + caption + "\"輸入錯誤, 合法的格式為西元年-月!");
      aobj.focus();
      aobj.select();
  }
  return allValid;
}


//檢查email的function
function isEmail(elm, prompt_str, name) {
  var i;
  if (elm.value == prompt_str) {
    alert('請輸入"'+name+'"!!');
    elm.focus();
    return false;
  } 
  if (elm.value.indexOf("@.") != "-1" ||
      elm.value.indexOf(".@") != "-1") {
    alert (name+'位址錯誤!!');
    elm.focus();
    elm.select();
    return false;
  }
  if (elm.value.indexOf("@") == "-1" ||
      elm.value.indexOf(".") == "-1") {
    alert (name+'位址應該包含"@"和"."!!');
    elm.focus();
    elm.select();
    return false;
  }
  if (elm.value.indexOf(" ") != "-1") {
    alert (name+'位址不可含有空白!!');
    elm.focus();
    elm.select();
    return false;
  }
  if (elm.value.indexOf("\"") != "-1") {
    alert (name+'位址不可含有 \"!!');
    elm.focus();
    elm.select();
    return false;
  }
  if (elm.value.charAt(elm.value.length-1) == "/") {
      alert (name+'位址錯誤!!');
      elm.focus();
      elm.select();
      return false;
  }
  for (i = 0;i < elm.value.length; i ++) {
    
    var count=0; //計算@出現的次數
  
    if (elm.value.charCodeAt(i) >= 128) {
      alert (name+'位址不可含有中文字!!');
      elm.focus();
      elm.select();
      return false;
    }
    if (i == elm.value.length-1 &&
        elm.value.charAt(i) == ".") {
      alert (name+'位址錯誤!!');
      elm.focus();
      elm.select();
      return false;
    }
    if (i == 0 &&
        elm.value.charAt(i) == ".") {
      alert (name+'位址錯誤!!');
      elm.focus();
      elm.select();
      return false;
    }
    if (i == elm.value.length-1 &&
        elm.value.charAt(i) == "@") {
      alert (name+'位址錯誤!!');
      elm.focus();
      elm.select();
      return false;
    }
    if (i == 0 &&
        elm.value.charAt(i) == "@") {
      alert (name+'位址錯誤!!');
      elm.focus();
      elm.select();
      return false;
    }
    if (elm.value.charAt(i) == "@") 
      count = count + 1;
  }
  
  if (count > 1)
    return false;
  
  return true;
}

//檢查會員密碼
function ckPwd(elm, name) {
  var i;
  if (elm.value.indexOf(" ") != "-1") {
    alert ('"'+name+'"不能有空白字元!!');
    elm.focus();
    elm.select();
    return false;
  }
  for (i = 0;i < elm.value.length; i ++) {
    if (elm.value.charCodeAt(i) >= 128) {
      alert ('"'+name+'"不能有中文字!!');
      elm.focus();
      elm.select();
      return false;
    }
  }
  
  return true;
}
