function max_window() {
  window.self.resizeTo(screen.width,screen.height);
}

function move_window(X, Y) {
  window.self.moveTo(X, Y);
}

function resize_window(W, H) {
  window.self.resizeTo(screen.width * W, screen.height * H);
}

function go_to(href, target, title) {
   if (target == "self") window.location.href = href;
   if (target == "new")  open_win(href, title);
}

// 檢查日期輸入是否合法
function validdate(y,m,d) {
  if (m==1  && (d>31 || d<1)) return 0;
  if (y%4 == 0 && y%100>0  &&             m==2 && (d>29 || d<1)) return 0;
  if (y%4 == 0 && y%100==0 && y%400>0  && m==2 && (d>28 || d<1)) return 0;
  if (y%4 == 0 && y%100==0 && y%400==0 && m==2 && (d>29 || d<1)) return 0;
  if (y%4 >0 && m==2 && (d>28 || d<1)) return 0;
  if (m==3  && (d>31 || d<1)) return 0;
  if (m==4  && (d>30 || d<1)) return 0;
  if (m==5  && (d>31 || d<1)) return 0;
  if (m==6  && (d>30 || d<1)) return 0;
  if (m==7  && (d>31 || d<1)) return 0;
  if (m==8  && (d>31 || d<1)) return 0;
  if (m==9  && (d>30 || d<1)) return 0;
  if (m==10 && (d>31 || d<1)) return 0;
  if (m==11 && (d>30 || d<1)) return 0;
  if (m==12 && (d>31 || d<1)) return 0;
  if (m>12 || m<1) return 0;
  return 1;
}


// 身分證字號檢查
function checkid(id) {
  m0="          "+"ABCDEFGHJKLMNPQRSTUVXYWZIO";
  m=m0.indexOf(id.charAt(0).toUpperCase());
  if (m < 10) {
    return 0;
  }
  else {
    m=Math.floor(m/10)*1+(m % 10)*9;
    for (i=1; i<9 ; i++) {
      m=m+id.charAt(i)*(9-i);
    }
    m=10-m %10;
    if (m==10) {
      m=0;
    }
    if (id.charAt(9) != "" && id.charAt(9) == m) {
      return 1;
    }
    else {
      return 0;
    }
  }
}


// 開新視窗函數
// clink 參數代表欲連結的 url
// win_name 參數代表新視窗名稱
// w 參數代表新視窗的寬度
// h 參數代表新視窗的高度
function open_win(clink, win_name, w, h) {
  var url = "";
  if ( clink != "" ) url = clink;
  param = "toolbar=no,location=no,status=yes,scrollbars=yes,resizable=yes,width=" + w + ",height=" + h;
  open_window=window.open(url, win_name, param);
}

// === 去除字串之兩側空白字元函數
function StringTrim(ch) {
   var lh;
   var new_ch;
   var i;

   // === 先去左側空白
   ch = StringLTrim(ch);
   lh = ch.length;
   new_ch = ch;
   for ( i=lh-1; i>0; i-- ) {
       if ( ch.substring(i, i+1) == " " )
          new_ch = ch.substring(0, i);
       else
         break;
   }
   return new_ch;
}

// 去除字串之左側空白字元函數
function StringLTrim(ch) {
  lh=ch.length;
  new_ch = ch;
  for ( i=0; i<lh; i++ ) {
    if ( ch.substring(i, i+1) == " " )
      new_ch = ch.substring(i+1, lh);
    else
      break;
  }
  return new_ch;
}


// 檢查數字函數
// 傳回值 1 代表沒有數字以外的字母
function isNumeric(ch) {
  m0 = "0123456789";
  lh=ch.length;
  for ( i=0; i<lh; i++ ) {
    m = m0.indexOf(ch.charAt(i));
    if ( m < 0 ) return 0;
  }
  return 1;
}


// 檢查數字函數
// 傳回值 1 代表是浮點數或整數
function isFloat(ch) {
  m0 = "0123456789.";
  lh=ch.length;
  for ( i=0; i<lh; i++ ) {
    m = m0.indexOf(ch.charAt(i));
    if ( m < 0 ) return 0;
  }
  return 1;
}


// 檢查字元函數（for Register）
// 傳回值 0 代表含有 m0 字串以外的字元
// 傳回值 1 代表第一個字元非英文字母
function checkcs1(ch) {
  m0 = "-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
  cc=1;
  lh=ch.length;
  for ( i=0; i<lh; i++ ) {
    m = m0.indexOf(ch.charAt(i).toUpperCase());
    if ( m < 0 ) return 0;
    if (( i == 0 ) && ( m > 10 )) cc = 2;
  }
  return cc;
}


// 檢查字元函數
// 傳回值 0 代表含有 m0 字串以外的字元，或是字串長度小於 6
function checkcs2(ch) {
  m0 = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ!@#$%^&*()_-+=|\[]{}:;',.<>?/`~";
  lh=ch.length;
  if ( lh < 6 ) return 0;
  for ( i=0; i<lh; i++ ) {
    m = m0.indexOf(ch.charAt(i).toUpperCase());
    if ( m < 0 ) return 0;
  }
  return 1;
}


// 檢查字元函數（for Jewelbox）
// 傳回值 0 代表沒有 m0 字串以外的字母
function checkcs3(ch) {
  m0 = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_.";
  lh=ch.length;
  for ( i=0; i<lh; i++ ) {
    m = m0.indexOf(ch.charAt(i).toUpperCase());
    if ( m < 0 ) return 0;
  }
  return 1;
}


// 話機產品
function PhoneProduct(P) {
  param = "toolbar=no,location=no,status=no,scrollbars=yes,resizable=no,width=600,height=600";
  window.open("product.php?P=" + P, "PhoneProduct", param);
}
