﻿// JScript ファイル
/******************************************************************
FileName : common.js
Create by 2009/07/09 kwon
    
Function List
================  ボタンClick関連 ==================
- cmnFncBTNConfirm :  ボタン重複押下禁止処理
- cmnFncBTN :  他のボタン押下時がClick禁止
- cmnFncAutoPostBack :  他のボタン押下時がClick禁止(AutoPostBack=Trueの代わり)
    
================ SSL(https)対応関連 ==================
- cmnFncChkDomain :  
- cmnFncErrPage :  
- cmnFncCHKURL :  
- cmnFncChkSSL :  https以外の場合はエラーページにリダイレクト
*******************************************************************/

//ボタン重複押下チェックFlag
var _btnFlag = false;

/*-----------------------------------------------
関　数　名　　： cmnFncBTNConfirm
処　　　理　　： ボタン重複押下禁止処理
引　　　数　　： なし
戻　り　値　　： true or false
作　成　日　　： 権(グォン) 2009/07/09
修　正　日　　： 
-------------------------------------------------*/
function cmnFncBTNConfirm(_msg) {
    var result = false;
    if (_btnFlag == false) {
        _btnFlag = true;
        result = true;
    } else {
        return result;
    }

    if (result == true) {
        if (_msg == undefined) {
            _msg = "";
        }

        if (_msg != "") {
            if (confirm(_msg) != true) {
                _btnFlag = false;
                result = false;
            }
        }
    }

    return result;
}

/*-----------------------------------------------
関　数　名　　： cmnFncBTN
処　　　理　　： 他のボタン押下時がClick禁止
引　　　数　　： なし
戻　り　値　　： true or false
作　成　日　　： 権(グォン) 2009/07/09
修　正　日　　： 
-------------------------------------------------*/
function cmnFncBTN() {
    var result = false;
    if (_btnFlag == false) {
        _btnFlag = true;
        result = true;
    }

    return result;
}

/*-----------------------------------------------
関　数　名　　： cmnFncAutoPostBack
処　　　理　　： 他のボタン押下時がClick禁止(AutoPostBack=Trueの代わり)
引　　　数　　： なし
戻　り　値　　： true or false
作　成　日　　： 権(グォン) 2009/07/09
修　正　日　　： 
-------------------------------------------------*/
function cmnFncAutoPostBack(_val) {
    var result = false;
    if (cmnFncBTN() == true) {
        __doPostBack(_val, "");
        result = true;
    }
    return result;
}

/*-----------------------------------------------
関　数　名　　： cmnFncLocalFnct
処　　　理　　： 2度押し対策でLocalのJavaFunctionを使用している場合
使　用　例　　： OnClientClick="return cmnFncLocalFnct('xxxxx');"/>  
xxxxxはLocalのJavaFuctionをセット  ex.) fnc_delCheck(this,\'テスト\')
引　　　数　　： なし
戻　り　値　　： true or false
作　成　日　　： 権(グォン) 2009/07/30
修　正　日　　： 
-------------------------------------------------*/
function cmnFncLocalFnct(_fnct) {
    var result = false;
    if (_btnFlag == false) {
        _btnFlag = true;
        result = true;
    }
    if (result == true) {
        result = eval(_fnct);

        _btnFlag = result;
    }
    return result;
}

/*-----------------------------------------------
関　数　名　　： cmnFncAllCheck
処　　　理　　： 全選択/解除処理をする
引　　　数　　： なし
使　用　例　　： chkSelect.Attributes("onclick") = String.Format("commandALL('{0}',this, 'chkSelect');", sender.ClientID)
戻　り　値　　： true or false
作　成　日　　： 権(グォン) 2010/02/09
修　正　日　　： 
-------------------------------------------------*/
function cmnFncAllCheck(_id, _obj, target) {
    var _no = "";
    var val = _obj.checked;
    var obj;
    var table = document.getElementById(_id);
    for (var i = 0; i < table.rows.length - 1; i++) {
        if (i + 2 < 10) { _no = "0" + (i + 2); }
        else { _no = "" + (i + 2); }

        obj = document.getElementById(_id + "_ctl" + _no + "_" + target);
        if (obj != null) {
            obj.checked = val;
        }
    }
    //        return false;
}

/*-----------------------------------------------
関　数　名　　： cmnFncformatNum
処　　　理　　： RefNoの桁をセット
引　　　数　　： _num : 桁数 / _obj : 対象のobject
使　用　例　　： 
戻　り　値　　： 
作　成　日　　： 権(グォン) 2010/02/16
修　正　日　　： 
-------------------------------------------------*/
function cmnFncformatNum(_num, _obj, flag) {
    var src = _obj.value;
    if (flag == undefined) { flag = false; }
    if (flag == true && src == "") {
        return;
    }
    var cnt = _num - src.length;
    if (cnt <= 0) return src;
    while (cnt-- > 0) src = "0" + src;
    _obj.value = src;
}

/*-----------------------------------------------
関　数　名　　： cmnFncSelectCheck
処　　　理　　： チェックボックス選択チェック
引　　　数　　： なし
戻　り　値　　： true or false
作　成　日　　： 北村 2010/05/21
修　正　日　　： 
-------------------------------------------------*/
function cmnFncSelectCheck(_id, _target, _msg) {
    var _no = "";
    var obj;
    var table = document.getElementById(_id);
    for (var i = 0; i < table.rows.length - 1; i++) {
        if (i + 2 < 10) { _no = "0" + (i + 2); }
        else { _no = "" + (i + 2); }

        obj = document.getElementById(_id + "_ctl" + _no + "_" + _target);
        if (obj != null) {
            if (obj.checked == true) {
                if (_msg != null && _msg != "") {
                    return confirm(_msg);
                }
                return true;
            }
        }
    }

    alert("選択されていません。")
    return false;

}

/*-----------------------------------------------
関　数　名　　： cmnFncChkDomain
処　　　理　　： 
引　　　数　　： なし
戻　り　値　　： true or false
作　成　日　　： 権(グォン) 2011/01/19
修　正　日　　： 
-------------------------------------------------*/
function cmnFncChkDomain(url) {
    var result = false;
    if (url.indexOf("//localhost") > -1) {
        result = true;
    } else if (url.indexOf("//211.125.109.119") > -1) {
        result = false;
    } else if (url.indexOf("//192.168.1.") > -1) {
        //emuzの社内localテスト用
        result = true;
    }
    return result;
}

/*-----------------------------------------------
関　数　名　　： cmnFncErrPage
処　　　理　　： 
引　　　数　　： true : Webadmin / false : WebReagistry
戻　り　値　　： true or false
作　成　日　　： 権(グォン) 2011/01/19
修　正　日　　： 
-------------------------------------------------*/
function cmnFncErrPage(flag) {
    var domain = document.location.host;
    var path = document.location.pathname;
    var arr = path.split("/");
    var url = "https://" + domain + "/" + arr[1] + "/";

    if (flag == true) { //Webadmin
        url += "WebAdmin/AdminErr.aspx";
    } else { //WebReagistry
        url += "WebRegistry/RegistryErr/RegistryErrA.aspx?n=6";
    }
    return url;
}

/*-----------------------------------------------
関　数　名　　： cmnFncCHKURL
処　　　理　　： 
引　　　数　　： なし
戻　り　値　　： true or false
作　成　日　　： 権(グォン) 2011/01/19
修　正　日　　： 
-------------------------------------------------*/
function cmnFncCHKURL(url) {
    var domain = document.location.host;
    var path = document.location.pathname;
    var arr = path.split("/");
    var _url = "https://" + domain + "/" + arr[1] + "/";

    if (url.replace("http://", "https://") == _url) {
        return true;
    }

    return false;
}

/*-----------------------------------------------
関　数　名　　： cmnFncChkSSL
処　　　理　　： 
引　　　数　　： なし
戻　り　値　　： true or false
作　成　日　　： 権(グォン) 2011/01/19
修　正　日　　： 
-------------------------------------------------*/
function cmnFncChkSSL() {
    var url = document.location.href;
    if (cmnFncChkDomain(url) == false && url.indexOf("http://") > -1) {
        if (url.indexOf("WebAdmin") > -1) {
            if (url.indexOf("Login.aspx") > -1) {
                location.href = url.replace("http://", "https://");
                //alert(url.replace("http://", "https://"));
            } else {
                location.href = cmnFncErrPage(true);
                //alert(cmnFncErrPage(true));
            }
        } else {
            if (url.indexOf("RegAuth.aspx") > -1 ||
                url.indexOf("RegEventTop01.aspx") > -1 || url.indexOf("RegEventTop02.aspx") > -1 || url.indexOf("RegEventTop03.aspx") > -1 ||
                url.indexOf("RegEventTop04.aspx") > -1 || url.indexOf("RegEventTop05.aspx") > -1 || url.indexOf("RegEventTop06.aspx") > -1 ||
                cmnFncCHKURL(url) == true) {
                location.href = url.replace("http://", "https://");
                //alert(url.replace("http://", "https://"));
            } else {
                location.href = cmnFncErrPage(false);
                //alert(cmnFncErrPage(false));
            }
        }
    }
}

$(document).ready(function() {
    cmnFncChkSSL();
});

