//--------------------------------------------------------------------
// win.js
//--------------------------------------------------------------------
//
//--------------------------------------------------------------------
win = null;
function OpenWin(url,width,height,target){
  newin = 'width=' + width + ',height=' + height  +',resizable=yes,scrollbars=yes';
  if(win==null || win.closed) win=window.open(url, target ,newin);
  win.focus();
}
//--------------------------------------------------------------------
//
//--------------------------------------------------------------------
function CloseWin(){
	window.close();
}
//--------------------------------------------------------------------
//
//--------------------------------------------------------------------
function MM_goToURL() {
  var i, args=MM_goToURL.arguments; document.MM_returnValue = false;
  for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");
}
//--------------------------------------------------------------------
//
//--------------------------------------------------------------------
function opbg(objRef, sts) {
  objRef.style.backgroundColor = (1 == sts) ? '#EEEEEE' : '#FFFFFF';
  return;
}
//--------------------------------------------------------------------
//
//--------------------------------------------------------------------
function DispOnOf(a,b,c){
  document.getElementById(a).style.display='block';
  document.getElementById(b).style.display='none';
  if(!!document.getElementById(c)){
    document.getElementById(c).style.display='none';
  }
}
//--------------------------------------------------------------------
// 全角チェック(1文字ずつ文字コードをエスケープしその長さが4文字以上なら全角)
//--------------------------------------------------------------------
function CheckZen(obj){
    var ret  = true;
    var str  = obj.value;                                             // 入力値
    for(var i=0; i<str.length; i++){                                  // 入力分繰り返し
        var len = escape(str.charAt(i)).length;                       // 1文字ずつ文字コードをエスケープ
        if (len < 4) {                                                // その長さが4文字以上なら全角
            ret = false;
        }
    }
    return ret;
}
//--------------------------------------------------------------------
// 半角チェック(1文字ずつ文字コードをエスケープし、その長さが4文字未満なら半角)
//--------------------------------------------------------------------
function CheckHan(obj){
    var ret  = true;
    var str  = obj.value;                                             // 入力値
    for (var i=0; i<str.length; i++) {                                // 入力分繰り返し
        var len = escape(str.charAt(i)).length;                       // 1文字ずつ文字コードをエスケープ
        if (len < 4){                                                 // その長さが4文字未満なら半角
        }else{                                                        
            ret = false;
        }
    }
    return ret;
}
//--------------------------------------------------------------------
// 半角チェック(正規表現:半角英数字(0-9a-zA-Z)、四則演算子(+-/*)、ピリオド(.)、カンマ(,)のみ)
//--------------------------------------------------------------------
function CheckRegHan(obj){
    var ret  = true;
    var str  = obj.value;
    var tmp  = str.match(/[0-9a-zA-Z\+\-\/\*\,\. ]+/g);               // matchメソッドの返り値が入力値と等しい場合は、全て半角
    if (tmp != str){
        ret  = false;
    }
    return ret;
}
//--------------------------------------------------------------------
// 半角数字チェック(正規表現:半角数字(0-9))
//--------------------------------------------------------------------
function CheckRegNumeric(obj){
    var ret  = true;
    var str  = obj.value;
    var tmp  = str.match(/[0-9]+/g);                                  // matchメソッドの返り値が入力値と等しい場合は、全て半角
    if (tmp != str){
        ret  = false;
    }
    return ret;
}
//--------------------------------------------------------------------
// 半角英数字チェック(半角英字（0-9,a-z,A-Z）の文字コード範囲,半角スペースも許容)
//--------------------------------------------------------------------
function CheckAlphaNumeric(obj){
    var str=obj.value;                                                // 入力値
    for (var i=0; i<str.length; i++) {                                // 入力分繰り返し
        var code = str.charCodeAt(i);
        if ( (48<=code && code<=57)  ||                               // 0-9
             (65<=code && code<=90)  ||                               // A-Z
             (97<=code && code<=122) ||                               // a-z
             (32==code)              ||                               // space
             (44<=code && code<=47)      ) {                          // ,-./
        }else{
            return false;
        }
    }
    return true;
}
//--------------------------------------------------------------------
// 半角数字チェック(半角数字（0-9）
//--------------------------------------------------------------------
function CheckNumeric(obj){
    var str=obj.value;                                                // 入力値
    for (var i=0; i<str.length; i++) {                                // 入力分繰り返し
        var code = str.charCodeAt(i);
        if ( (48<=code && code<=57)  ) {                              // 0-9
        }else{
            return false;
        }
    }
    return true;
}
//--------------------------------------------------------------------
// 全角カナ・かなチェック
//--------------------------------------------------------------------
function CheckZenKana(obj,kana){
    var zenk = "アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲンァィゥェォッャュョー";
    var zenh = "あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわをんぁぃぅぇぉっゃゅょー";
    if ( kana == 'KANA' ) {
      var zen = zenk;
    } else {
      var zen = zenh;
    }
    var ret  = true;
    var str  = obj.value;                                             // 入力値
    var mes  = "";
    for (var i=0; i<str.length; i++) {                                // 文字文字列の取り出し
        var tmp1 = str.substr(i,1);                                   // 入力の文字列を１文字ずつ取り出す
        var char = false;                                             // １文字真偽
        for (var j=0; j<zen.length; j++) {                            // 全角カナ分くり返す
            var tmp2 = zen.substr(j,1);                               // 含まれていた全角カナを格納
            if (tmp1 == tmp2) {                                       // 入力値がカナ定義と一致
                 char = true;                                         // 定義と一致
            }
        }
        if ( ! char ){                                                // 定義に存在しない時
            ret  = false;                                             // 結果は偽
        }
    }
    return ret;
}
//--------------------------------------------------------------------
// メールアドレス
//--------------------------------------------------------------------
function CheckEmail(str){
    var pattern = /[!#-9A-~]+@+[a-z0-9]+.+[^.]$/i;
    var ret  = true;
    if(str!=""){
        if(str.match(pattern)){
            ret  = true;
        }else{
            ret  = false;
        }
    }
    return ret;
}

//--------------------------------------------------------------------
var alreadyClicked = false;                                           // クリック済み判定フラグ
var isCanceled     = false;                                           // キャンセル判定フラグ
//--------------------------------------------------------------------
// 送信制御
//--------------------------------------------------------------------
// formElementName    サブミットするフォーム名
// path               遷移先パス名
// key                パラメータ名の配列
// value              パラメータ値の配列
// continuing         連続押下許可フラグ
//--------------------------------------------------------------------
function Win3Request(formElementName, path, key, value, continuing) {
    // フォーム名チェック
    if (formElementName == null || formElementName == "") {
        return false;
    }
    // 指定したフォームの存在チェック
    if (document.forms[formElementName] == null 
        || typeof document.forms[formElementName] == "undefined") {
        return false;
    }
    // 遷移先パスチェック
    if (path == null || path == "") {
        return false;
    }
    // 画面対応の入力チェック
    if ('function' === typeof AplicationCheck) {
        erMsg = AplicationCheck(document.forms[formElementName],key,value);
        if (erMsg.length > 0){
            alert(erMsg);
            return false;
        }
    }
    // キャンセル判定
    if (isCanceled == true) {
        isCanceled = false;
        return false;
    }
    // クリック済み判定
    if (alreadyClicked == true) {
        return false;
    }
    
    // 連続押下許可フラグ判定
    if (continuing == false) {
        alreadyClicked = true;                                        // 連続押下不許可の場合、クリック済みフラグを済みに更新
    }
    // パラメータ判定
    if (key != null && key.constructor == Array 
        && value != null && value.constructor == Array
        && key.length == value.length) {                              // パラメータ名及びパラメータ値が配列かつ配列長が一致する場合、フォーム要素に値を設定
        for (i=0; i < key.length; i++) {                              // フォーム要素の存在チェック
            if (document.forms[formElementName].elements[key[i]] != null
                && typeof document.forms[formElementName].elements[key[i]] != "undefined") {
                document.forms[formElementName].elements[key[i]].value = value[i];        // 存在する場合、該当するオブジェクトに値を設定する。
            }
        }
    }
    
    document.forms[formElementName].action = path;                    // 遷移先パスを設定
    document.forms[formElementName].submit();                         // フォーム送信
    return false;
}
/**
 * 中止
 */
function Win3Abort() {
    isCanceled = true;
}

/** 
 * ウィンドウ閉じる
 */
function Win3WindowClose(){
    window.opener=true;
    window.close();
}
//二度押し制御対応ダイアログ表示
function Win3Confirm( message ){
    if ( alreadyClicked == true ){
        return false;
    }
    return confirm( message );
}

function Win3Alert( message ){
    if ( alreadyClicked == true ){
        return false;
    }
    return alert( message );
}
// サブミット
function GoSubmit(msg){
    if (false == Win3Confirm(msg +" しますか?")) {
        Win3Abort();
    }
}
// ログアウト
function GoLogout(){
    if (false == Win3Confirm("ログアウトしますか？")) {
        Win3Abort();
    }
}

