// Place your application-specific JavaScript functions and classes here
// This file is automatically included by javascript_include_tag :defaults

// 内部関数
// 親ウィンドウチェックボックスクリック処理
function opener_checkbox_click(frm_name, chkbox_name){
    try{ var elements = opener.Form.getElements(frm_name); } catch(e){ var elements = opener.document.forms[frm_name].getElements(); }
    //全エレメント取得
    elements.each(
    function(val,idx) {
        if ($(val).id == chkbox_name && $(val).type == "checkbox") {
            try{ $(val).click(); return;} catch(e) { }
        }
    }
);
}
// 親ウィンドウチェックサブミットボタンクリック処理
function opener_submit_click(frm_name, btn_name){
    try{ var elements = opener.Form.getElements(frm_name); } catch(e){ var elements = opener.document.forms[frm_name].getElements(); }
    //全エレメント取得
    elements.each(
    function(val,idx) {
        //該当のsubmitを見つけたらクリックする
        if ($(val).id == btn_name && $(val).type == "submit") {
            try{ $(val).click(); return;} catch(e) { }
        }
    }
);
}
// 親ウィンドウのリダイレクト(URL変更)処理
function oepner_redirect(url){
    //sslでリダイレクトができなくなった。
    //下の書き方だといけるみたい。
    //opener.window.document.location=url;
    window.opener.location=url;
}
// 自ウィンドウ非表示項目値設定処理
function self_field_set_val(frm_name, field, setval){
    try{ var elements = window.Form.getElements(frm_name); } catch(e){ var elements = window.document.forms[frm_name].getElements(); }
    //全エレメント取得
    elements.each(
    function(val,idx) {
        //該当のsubmitを見つけたらクリックする
        if ($(val).id == field && $(val).type == "hidden") {
            try{ $(val).value=setval; return;} catch(e) { }
        }
    }
);
}
// 親ウィンドウ非表示項目値取得処理
function opener_field_get_val(frm_name, field){
    try{ var elements = opener.Form.getElements(frm_name); } catch(e){ var elements = opener.document.forms[frm_name].getElements(); }
    var ret='';
    //全エレメント取得
    elements.each(
    function(val,idx) {
        //該当のsubmitを見つけたらクリックする
        if ($(val).id == field && $(val).type == "hidden") {
            try{ ret = $(val).value; return; } catch(e) { }
        }
    }
);
    return ret;
}



// フロント呼出関数
// 全選択・全解除処理
function all_check(check, frm_name){
    try{ var elements = Form.getElements(frm_name); } catch(e){ var elements = document.forms[frm_name].getElements(); }
    //全エレメント取得
    elements.each(
    function(val,idx) {
        //該当のcheckedがcheckでなければクリックする
        if ($(val).id != "" && $(val).type == "checkbox") {
            try{ if ($(val).checked != check) $(val).checked=check; } catch(e) { }
        }
    }
);
}
// 検討リスト追加＆閉じる(チェックボックスのみ対応)
function checkcloseproc(){
    var frm_name=opener_field_get_val('FrmGotoReq', 'opener_form_name');
    var chkbox_name=opener_field_get_val('FrmGotoReq', 'opener_checkbox_name');
    opener_checkbox_click(frm_name, chkbox_name);
    window.close();
}
// 検討リスト追加＆請求ページへ＆閉じる(チェックボックスのみ対応)
function requestcloseproc(frm_name, chkbox_name){
    var frm_name=opener_field_get_val('FrmGotoReq', 'opener_form_name');
    var chkbox_name=opener_field_get_val('FrmGotoReq', 'opener_checkbox_name');
    opener_checkbox_click(frm_name, chkbox_name);
    sleep_busy(1500);
    opener_submit_click('FrmGotoReq', 'goto_request_document');
    window.close();
}
// 見学予約ページへ
function visitclose(url){
    //親ウインドウが閉じられていた場合、
    //子ウインドウを親に変更。
    try{
        if (!!window.opener) {
            oepner_redirect(url);
            window.close();
        }else{
            window.document.location=url;
        }
    }catch( e ){
        window.document.location=url;
    }
}
// 問合せページへ
function contactclose(url){
    //親ウインドウが閉じられていた場合、
    //子ウインドウを親に変更。
    //window.document.location.protocol = 'http:'
    try{
        if (!!window.opener) {
            //sslでリダイレクトができなくなった。
            //下の書き方だといけるみたい。
            //opener.window.document.location=url
            if (url=='true'){
                window.opener.location = '/exhibition/request_document/';
            }else{
                window.opener.location=url;
            }
            window.close();
        }else{
            if (url=='true'){
                window.document.location='/exhibition/request_document/';
            }else{
                window.document.location=url;
            }
        }    
    }catch( e ){
        alert(e);
        window.document.location.reload();
    }
} 
// スリープ処理(ミリ秒単位での指定(1000=1秒))
function sleep_busy(wait) {
    var start=(new Date()).getTime();
    while(true){
        if((new Date()).getTime() >= start+wait*1) break;
    }
}
// ダイアログ表示前処理
function beforeDialogOpen(opener_frm, opener_chk){
    self_field_set_val('FrmGotoReq', 'opener_form_name', opener_frm);
    self_field_set_val('FrmGotoReq', 'opener_checkbox_name', opener_chk);
    return true;
}


// バックエンド
// button_to用 確認メッセージ＆非活性
function button_to_confirm_and_disable_with(obj, cnf_msg, btn_cap){
    ret=confirm(cnf_msg+"を行います。\nよろしいですか？");
    if(ret==true){
        obj.setAttribute('originalValue', obj.value);
        obj.disabled=true;obj.value=btn_cap;
        ;
        result=(obj.form.onsubmit ? (obj.form.onsubmit() ? obj.form.submit() : false) : obj.form.submit());
        if(result==false){
            obj.value=this.getAttribute('originalValue');
            obj.disabled=false
        }
        ;
        return result
    }else{
        return ret;
    }
}
// リンク無効処理
function linkDisable(name, origin){
    var i=origin;
    while(true){
        try {
            Element.hide(name + i);
        }catch(e){
            return;
        }
        i++;
    }
}
