// ***************************************************************************************
// 概要：JavaScript共有関数
// 作成：2008/05
// ***************************************************************************************

// --------------------------------------------------------------------------
// --------------------------------------------------------------------------
function SetCookie( name, value, expires_d, expires_m, domain, path, secure ) {
  var d = new Date();
  
  if (typeof expires_d != 'undefined') {
    d.setTime(d.getTime() + (24 * 60 * 60 * 1000 * expires_d))
  }
  if (typeof expires_m != 'undefined') {
    d.setTime(d.getTime() + (60 * 1000 * expires_m))
  }
  var buffer = name + '=' + encodeURIComponent(value) + "; ";
  if ((typeof expires_d != 'undefined') || (typeof expires_m != 'undefined')) buffer += 'expires=' + d.toUTCString() + "; ";
  if (typeof domain != 'undefined') buffer += 'domain=' + domain + "; ";
  if (typeof path != 'undefined') buffer += 'path=' + path + "; ";
  if (secure) buffer += 'secure; ';
  document.cookie = buffer;        
  return (true);
}
// --------------------------------------------------------------------------
// --------------------------------------------------------------------------
function getCookie(name){
  var search = name + '=';
  if (document.cookie.length>0){
    offset = document.cookie.indexOf(search);
    if (offset != -1){
      offset += search.length;
      end = document.cookie.indexOf(';',offset);
      if (end == -1)
        end = document.cookie.length;
      return unescape(document.cookie.substring(offset,end));
    }
  }
  return "";
}
// --------------------------------------------------------------------------
// --------------------------------------------------------------------------
function GetYYYYMMDDHHNNSS( _datetime ) {
  var yy,mm,dd,hh,nn,ss;
  var target;
  var ret;
  
  if (!_datetime) { target = new Date(); }
  yy = target.getYear();
  mm = target.getMonth() + 1;
  dd = target.getDate();
  hh = target.getHours();
  nn = target.getMinutes();
  ss = target.getSeconds();
  
  if (yy < 2000) { yy += 1900; }
  if (mm < 10)   { mm = "0" + mm; }
  if (dd < 10)   { dd = "0" + dd; }
  if (hh < 10)   { hh = "0" + hh; }
  if (nn < 10)   { nn = "0" + nn; }
  if (ss < 10)   { ss = "0" + ss; }
  return(yy + "/" + mm + "/" + dd + " " + hh + ":" + nn + ":" + ss);
}
// --------------------------------------------------------------------------
// --------------------------------------------------------------------------
function GetYYYYMM( _datetime ) {

  var yy,mm;
  var target;
  
  if (!_datetime) { target = new Date(); }
  yy = target.getYear();
  mm = target.getMonth() + 1;
  
  if (yy < 2000) { yy += 1900; }
  if (mm < 10)   { mm = "0" + mm; }
  return(yy + mm);
}
// --------------------------------------------------------------------------
// --------------------------------------------------------------------------
function Sanitize( _value ) {

  var ret = _value;
  ret = ret.replace(/ /g, "&nbsp;"); 
  ret = ret.replace(/</g, "&lt;");
  ret = ret.replace(/>/g, "&gt;");
  ret = ret.replace(/\r\n/, "<br />");
  ret = ret.replace(/\r/g, "<br />");
  ret = ret.replace(/\n/g, "<br />");
  ret = ret.replace(/\'/, "’");
  ret = ret.replace(/\"/, "”");
  ret = ret.replace(/\\/, "￥");
  ret = ret.replace(/\t/, "&nbsp;");
  return (ret);
}
// --------------------------------------------------------------------------
// --------------------------------------------------------------------------
function CheckNull( _objname, _title ) {
  
  if ($("#" + _objname).val().length == 0) {
    alert( _title + "を入力してください。");
    $("#" + _objname).select();
    $("#" + _objname).focus();
    return(false);
  }
  return(true);
}
// --------------------------------------------------------------------------
// --------------------------------------------------------------------------
function CheckURL( _objname, _title ) {
  
  if (!$("#" + _objname).val().match(/http:\/\/[!#-9A-~]+\.+[a-z0-9]/i)) {
    alert( "URLが正しくありません。");
    $("#" + _objname).select();
    $("#" + _objname).focus();
    return(false);
  }
  return(true);
}
// --------------------------------------------------------------------------
// --------------------------------------------------------------------------
function CheckNGWord( _objname, _title, _ngword ) {
  
  var i;
  var check = $("#" + _objname).val();
  
  for (i = 0; i < _ngword.length; i++) {
    if (check.indexOf(_ngword[i]) != -1) {
      alert(_title + "には「" + _ngword[i] + "」を登録できません。\n半角文字の場合は全角文字で入力してください。");
      $("#" + _objname).select();
      $("#" + _objname).focus();
      return(false);
    }
  }
  return(true);
}
// --------------------------------------------------------------------------
// --------------------------------------------------------------------------
function CheckZenkaku( _objname, _title ) {

  var check = $("#" + _objname).val();
  
  if (check.match( /[^A-Za-z0-9]+/ )) {
    alert(_title + "は半角の英数字で入力してください。\n記号は登録できません。");
    $("#" + _objname).select();
    $("#" + _objname).focus();
    return(false);
  }
  return(true);
}
// --------------------------------------------------------------------------
// --------------------------------------------------------------------------
function CheckPath( _objname, _title ) {

  var check = $("#" + _objname).val();
  var aryPath;
  var file;
  
  aryPath = check.split("\\");
  file = aryPath[aryPath.length-1];
            
  if (file.match( /[A-Za-z0-9_-]+\.[A-Za-z0-9]+/ ) != file) {
    alert(_title + "を正しく入力してください。\n全角文字のファイルは指定できません。");
    $("#" + _objname).select();
    $("#" + _objname).focus();
    return(false);
  }
  return(true);
}
// --------------------------------------------------------------------------
// --------------------------------------------------------------------------
function CheckNumber( _objname, _title, _min, _max ) {

  var check = $("#" + _objname).val();
  
  if (check.match( /[^0-9]+/ )) {
    alert(_title + "は半角の数字で入力してください。");
    $("#" + _objname).select();
    $("#" + _objname).focus();
    return(false);
  }
  
  if (check < _min) {
    alert(_title + "は" + _min.toString() + "以上を入力してください。");
    $("#" + _objname).select();
    $("#" + _objname).focus();
    return(false);
  }
  
  if (check > _max) {
    alert(_title + "は" + _max.toString() + "以下を入力してください。");
    $("#" + _objname).select();
    $("#" + _objname).focus();
    return(false);
  }
  return(true);
}
// --------------------------------------------------------------------------
// --------------------------------------------------------------------------
function CheckMailAddress( _objname, _title ) {

  var check = $("#" + _objname).val();
  
  if (!check.match(/^[A-Za-z0-9]+[\w-]+@[\w\.-]+\.\w{2,}$/)) {
    alert(_title + "を正しく入力してください。");
    $("#" + _objname).select();
    $("#" + _objname).focus();
    return(false);
  }
  return(true);
}
// --------------------------------------------------------------------------
// --------------------------------------------------------------------------
function CheckByteLength( _objname, _max ) {

  var len = GetByteLength($("#" + _objname).val());
  
  if (_max < len) {
    alert("入力された文字数が多すぎます。\n" + _max.toString() + "バイト以内で入力してください。");
    $("#" + _objname).select();
    $("#" + _objname).focus();
    return(false);
  }
  return(true);
}
// --------------------------------------------------------------------------
// --------------------------------------------------------------------------
function GetQuery() {

  var str = location.search;
  var QS = new Array;
  if (str.length > 1) {
  　var m_Array = str.substr(1).split("&");
  　for (idx in m_Array) {
　  　QS.push(m_Array[idx].split("="));
  　}
  }
  return(QS);
}
// --------------------------------------------------------------------------
// --------------------------------------------------------------------------
function GetQueryValue( _field ) {

  var QS = GetQuery();
  
　for (idx in QS) {
　  if (QS[idx][0] == _field) {
　    return(QS[idx][1]);
　  }
　}
　return(false);
}
// --------------------------------------------------------------------------
// --------------------------------------------------------------------------
function GetScrollY() {
  if(document.all){
    return(document.body.scrollTop);
  } else {
    return(pageYOffset);
  }
}
// --------------------------------------------------------------------------
// --------------------------------------------------------------------------
function SetScrollY( _pos ) {

  if (_pos == "") { return(false); }
  window.scrollTo(0, _pos);
  return(true);
}
// --------------------------------------------------------------------------
// --------------------------------------------------------------------------
function GetByteLength( _val ) {
  count = 0;
  for (i=0; i<_val.length; i++)
  {
    n = escape(_val.charAt(i));
    if (n.length < 4) count++; else count+=2;
  }
  return count;
}
