/*************************************************
 *
 * 共通JavaScript
 *
 *************************************************/

 /********************************************************************
  *  外部変数
  *******************************************************************/
var submitFlg = 0;			// 二度押し禁止用フラグ


 /********************************************************************
  *  function : 共通サブミット処理
  *  引数：	formid						遷移先のプログラム名
  *			action						プロセス識別名
  *  		buttonname				    ボタン名
  *******************************************************************/
    function submitForm(formid, action, buttonname) {

    	if (submitFlg == 0) {
    		submitFlg = 1;
    		var frms = document.forms[formid];
    		frms.action = action;
    		frms.elements[buttonname].value = 1;
    		frms.submit();
    	}
    }

 /********************************************************************
  *  function : プレゼント応募用サブミット処理
  *  引数：	formid						遷移先のプログラム名
  *			action						プロセス識別名
  *  		buttonname				    ボタン名
  *  		present_id				    プレゼントID
  *******************************************************************/
    function submitApplyForm(formid, action, buttonname, present_id) {

    	if (submitFlg == 0) {
    		submitFlg = 1;
    		var frms = document.forms[formid];
    		frms.action = action;
    		frms.elements[buttonname].value = present_id;
    		frms.submit();
    	}
    }

 /********************************************************************
  *  function : プレゼント応募用サブミット処理
  *  引数：	formid						遷移先のプログラム名
  *			action						プロセス識別名
  *  		buttonname				    ボタン名
  *  		present_id				    プレゼントID
  *******************************************************************/
    function submitUrlCount(disp_path, url) {

    	if (submitFlg == 0) {
    		submitFlg = 1;
    		var frms = document.forms['url_count'];
    		frms.action = disp_path + 'count.html';
            frms.target = "_blank";
    		frms.elements['count'].value = 1;
    		frms.elements['url'].value = url;
    		frms.submit();
    	}
    }

 /********************************************************************
  *  function : コメント削除用サブミット処理
  *  引数：	formid						遷移先のプログラム名
  *			action						プロセス識別名
  *  		buttonname				    ボタン名
  *  		comment_sid				    コメントSID
  *******************************************************************/
    function submitCommentDelConfirm(formid, action, buttonname, comment_sid) {

        if(confirm('本当に削除しますか？一度削除すると元に戻す事はできません。')) {
        	if (submitFlg == 0) {
        		submitFlg = 1;
        		var frms = document.forms[formid];
        		frms.action = action;
        		frms.elements[buttonname].value = 1;
        		frms.elements['cs'].value = comment_sid;
        		frms.submit();
        	}
        }
    }

 /********************************************************************
  *  function : アートワーク削除用サブミット処理
  *  引数：	formid						遷移先のプログラム名
  *			action						プロセス識別名
  *  		buttonname				    ボタン名
  *  		comment_sid				    コメントSID
  *******************************************************************/
    function submitArtworkDelConfirm(formid, action, buttonname) {

        if(confirm('本当に削除しますか？一度削除すると元に戻す事はできません。')) {
        	if (submitFlg == 0) {
        		submitFlg = 1;
        		var frms = document.forms[formid];
        		frms.action = action;
        		frms.elements[buttonname].value = 1;
        		frms.submit();
        	}
        }
    }


 /********************************************************************
  *  function : 共通サブミット処理
  *  引数：	formid						遷移先のプログラム名
  *			action						プロセス識別名
  *  		buttonname				    ボタン名
  *******************************************************************/
    function submitFormAW(formid, action, buttonname) {

		var frms = document.forms[formid];

    	if (submitFlg == 0 && frms.elements['title'].value.length > 0) {
    		submitFlg = 1;
    		frms.action = action;
    		frms.elements[buttonname].value = 1;
    		frms.submit();
    	} else if(frms.elements['title'].value.length == 0) {
            alert('タイトルを入力してください');
        }
    }


 /********************************************************************
  *  function : 削除確認
  *  引数：		なし
  *******************************************************************/
	function confirmDeletion () {
		return confirm('削除しますか？');
	}

 /********************************************************************
  *  function : 削除確認
  *  引数：		なし
  *******************************************************************/
	function confirmDeletionMember () {
		return confirm('削除しますか？この会員に関連する情報も削除されます。');
	}


 /********************************************************************
  *  function : 無効確認
  *  引数：		なし
  *******************************************************************/
	function confirmInvalid () {
		return confirm('規約違反で削除します。ユーザー画面には削除メッセージが表示されます。');
	}

 /********************************************************************
  *  function : イベントコピー確認
  *  引数：		なし
  *******************************************************************/
	function submitEventSpaceCopyConfirm (formid, action, buttonname) {
		if(confirm('選択したイベントの会場情報を呼び出します。入力中の会場情報データは失われます。')) {
        	if (submitFlg == 0) {
        		submitFlg = 1;
        		var frms = document.forms[formid];
        		frms.action = action;
        		frms.elements[buttonname].value = 1;
        		frms.submit();
        	}
        }
	}

 /********************************************************************
  *  function : イベントコピー確認
  *  引数：		なし
  *******************************************************************/
	function submitDelMessageConfirm (formid, action, buttonname) {
		if(confirm('選択したメッセージを削除します。')) {
        	if (submitFlg == 0) {
        		submitFlg = 1;
        		var frms = document.forms[formid];
        		frms.action = action;
        		frms.elements[buttonname].value = 1;
        		frms.submit();
        	}
        }
	}

 /********************************************************************
  *  function	： 管理スペースコピー確認
  *  引数   	：	formid
  *  			：	action
  *  			：	buttonname
  *  			：	space_sid
  *******************************************************************/
	function submitEventSpaceAdminCopyConfirm (formid, action, buttonname) {
		if(confirm('管理スペース情報を呼び出します。入力中の会場情報データは失われます。')) {
        	if (submitFlg == 0) {
        		submitFlg = 1;
        		var frms = document.forms[formid];
        		frms.action = action;
        		frms.elements[buttonname].value = 1;
        		frms.submit();
        	}
        }
	}

 /********************************************************************
  *  function : エンターキー押下でフォーム送信停止処理
  *  引数：	evt		イベント
  *******************************************************************/
	function BlockEnter(evt){
		evt = (evt) ? evt : event; 
		var charCode=(evt.charCode) ? evt.charCode : 
			((evt.which) ? evt.which : evt.keyCode);
		if ( Number(charCode) == 13 || Number(charCode) == 3) {
			return false;
		} else {
			return true;
		}
	}

 /********************************************************************
  *  function : サブミット処理
  *  引数：		なし
  *******************************************************************/
	function submitFormBlockEnter(formid, action, buttonname){ 

		var frms = document.forms[formid];
		frms.action = action;
		frms.elements[buttonname].value = "1";
		document.forms[formid].elements[buttonname].onkeypress=BlockEnter;
		frms.submit();
	}

 /********************************************************************
  *  function : checkbox全て選択
  *  引数：		form_id                 フォーム名
  *             checkbox_name           ターゲットCB
  *             controler               制御元の名称
  *******************************************************************/
    function checkAllForCB(form_id,checkbox_name,controler){

		var frms = document.forms[form_id];
        var count;

        // ターゲットCB数取得
        count = frms.elements[checkbox_name].length;

        // コントローラーの状態により全てON／OFF
        // ALL OFF
        if(frms.elements[controler].checked == false) {
            for(i = 0; i < count; i++){
                frms.elements[checkbox_name][i].checked = false;
            }

        // ALL ON
        } else if(frms.elements[controler].checked == true) {
            for(i = 0; i < count; i++){
                frms.elements[checkbox_name][i].checked = true;
            }
        }
    }

 /********************************************************************
  *  function : 制御チェックをONで対象フォーム2つを有効化
  *  引数：		form_id                 フォーム名
  *             target_1                ターゲット1
  *             controler               制御元の名称
  *******************************************************************/
    // フォーム無効化（対象はひとつ）
    function disable1TargetFormByValue(form_id, target_1, controler) {

		var frms = document.forms[form_id];
        // 選択値があればはターゲット無効化解除
        if(frms.elements[controler].options[frms.elements[controler].selectedIndex].value.length > 0) {

            frms.elements[target_1].disabled     = false;

        // それ以外はフォーム無効化
        } else {
            frms.elements[target_1].disabled     = true;
        }
    }

 /********************************************************************
  *  function : 制御チェックをONで対象フォーム2つを有効化
  *  引数：		form_id                 フォーム名
  *             target_1                ターゲット1
  *             target_2                ターゲット2
  *             controler               制御元の名称
  *******************************************************************/
    // フォーム無効化（対象はふたつ）
    function disable2TargetForm(form_id, target_1, target_2, controler) {

		var frms = document.forms[form_id];

        // はターゲット無効化解除
        if(frms.elements[controler].checked == true) {
            frms.elements[target_1].disabled     = false;
            frms.elements[target_2].disabled     = false;

        // それ以外はフォーム無効化
        } else {
            frms.elements[target_1].disabled     = true;
            frms.elements[target_2].disabled     = true;
        }
    }

 /********************************************************************
  *  function : 中カテゴリーが伝統芸能の場合、専用選択支を有効化
  *  引数：		form_id                 フォーム名
  *             target_1                ターゲット1
  *             category_medium         制御元の名称
  *******************************************************************/
    // フォーム無効化（対象はひとつ）
    function disableTraditionalTypeByMediumCategoryValue(form_id, target_1, category_medium) {

		var frms = document.forms[form_id];

        // 選択値があればはターゲット無効化解除
        if(frms.elements[category_medium].options[frms.elements[category_medium].selectedIndex].value == 7) {
            frms.elements[target_1].disabled    = false;

        // それ以外はフォーム無効化
        } else {
			frms.elements[target_1].options[0].selected = true; // セレクトボックス初期化
            frms.elements[target_1].disabled            = true; // セレクトボックス無効化
        }
    }

 /********************************************************************
  *  function : 大カテゴリーの選択支が変更された時、伝統芸能タイプを初期化し無効化
  *  引数：		form_id                 フォーム名
  *             target_1                ターゲット1
  *******************************************************************/
    // フォーム無効化（対象はひとつ）
    function disableAndResetTraditionalTypeByLargeCategoryValue(form_id, target_1) {

		var frms = document.forms[form_id];

		frms.elements[target_1].options[0].selected = true; // セレクトボックス初期化
        frms.elements[target_1].disabled            = true; // セレクトボックス無効化
    }


 /********************************************************************
  *  function : サブミット処理(sid渡し)
  *  引数：		なし
  *******************************************************************/
	function submitFormPassingSid(form_id, sid, page){ 

		var frms = document.forms[form_id];
        frms.sid.value = sid;
        frms.page.value = page;
		frms.submit();
	}

 /********************************************************************
  *  function : サブミット処理(sid渡し)
  *  引数：		なし
  *******************************************************************/
	function change_class(destination){ 
	    document.form1.action = destination;
		document.form1.confirm.value = 1;
	    document.form1.submit();
	}

 /********************************************************************
  *  function : サブミット処理(sid渡し)
  *  引数：		なし
  *******************************************************************/
	function test_mail_class(destination){ 
	    document.form1.action = destination;
		document.form1.confirm.value = 1;
		document.form1.test_mail.value = 1;
	    document.form1.submit();
	}

 /********************************************************************
  *  function : フォーム無効化（チェックボックス用）
  *  引数：		なし
  *******************************************************************/
    function disable1TargetFormForCB(form_id,target_1,checkbox_name) {

		var frms = document.forms[form_id];

        // フラグ初期化
        var chkFlg = false;

        for(i = 0; i < frms.elements[checkbox_name].length; i++) {

            // いづれかのチェックボックスが選択されていればフラグを立てる
            if(frms.elements[checkbox_name][i].checked == true) {
               chkFlg = true;
               break;
            }
        }

        // 判定
        if(chkFlg == true) {
            frms.elements[target_1].disabled = false; // 有効
        } else {
            frms.elements[target_1].disabled = true; // 無効
        }
    }

 /********************************************************************
  *  function : テキスト自動挿入
  *  引数：	formid						フォーム名
  *			target   				    テキスト挿入先
  *  		link_text				    リンクテキスト
  *******************************************************************/
    function setText(form_id, target, text) {

		var frms = document.forms[form_id];
        frms.elements[target].value = text;
    }

 /********************************************************************
  *  function : 中カテゴリ取得
  *  引数： category_large              大カテゴリDDLのid
  *         category_medium             中カテゴリDDLのid
  *******************************************************************/
    function setSearchTermToday(form_id, now_year, now_month, now_date) {

		if(confirm('本日開催中の条件に変更します。')) {

    		var frms = document.forms[form_id];
    		var s_sy = frms.elements["ssy"];
    		var s_sm = frms.elements["ssm"];
    		var s_sd = frms.elements["ssd"];
    		var s_ey = frms.elements["sey"];
    		var s_em = frms.elements["sem"];
    		var s_ed = frms.elements["sed"];
    		if (s_sy != null) {
    			for (i=0; i<s_sy.options.length; i++) {
    				if(s_sy.options[i].value == now_year){
    					s_sy.options[i].selected = true;
    				}
    			}
    		}
    		if (s_sm != null) {
    			for (i=0; i<s_sm.options.length; i++) {
    				if(s_sm.options[i].value == now_month){
    					s_sm.options[i].selected = true;
    				}
    			}
    		}
    		if (s_sd != null) {
    			for (i=0; i<s_sd.options.length; i++) {
    				if(s_sd.options[i].value == now_date){
    					s_sd.options[i].selected = true;
    				}
    			}
    		}
    		if (s_ey != null) {
    			for (i=0; i<s_ey.options.length; i++) {
    				if(s_ey.options[i].value == now_year){
    					s_ey.options[i].selected = true;
    				}
    			}
    		}
    		if (s_em != null) {
    			for (i=0; i<s_em.options.length; i++) {
    				if(s_em.options[i].value == now_month){
    					s_em.options[i].selected = true;
    				}
    			}
    		}
    		if (s_ed != null) {
    			for (i=0; i<s_ed.options.length; i++) {
    				if(s_ed.options[i].value == now_date){
    					s_ed.options[i].selected = true;
    				}
    			}
    		}
        }


    }


 /********************************************************************
  *  function : 中カテゴリ取得
  *  引数： category_large              大カテゴリDDLのid
  *         category_medium             中カテゴリDDLのid
  *******************************************************************/
    function setMediumCategory(category_large, category_medium, dir_path) {

        // 第三引数が無い場合デフォルト値を設定
        if (dir_path == undefined) { 
            dir_path = "../"; 
        }

        var action = dir_path + "db_lib/getMediumCategoryForXML.php";

        var a = new Ajax.Request(
            action,
            {

                "method": "post",
                "parameters": "large_category_sid="+$(category_large).value,
                onComplete: function(request)
                {
                    var xmlObj = request.responseXML;

                    var list_value = xmlObj.documentElement.getElementsByTagName("list");
                    var values = xmlObj.documentElement.getElementsByTagName("value");
                    var names = xmlObj.documentElement.getElementsByTagName("name");


                    // 選択肢を削除する
                    for (var i = $(category_medium).length - 1; i >= 0; i--) {  // 念のため後ろから確認
                        $(category_medium).options[i] = null;
                    }

                    $(category_medium).options[0] = new Option('----------', '');

                    for (var i = 0;i < list_value.length; i++) {

                        var value = values[i].childNodes[0].nodeValue;
                        var name = names[i].childNodes[0].nodeValue;

                        $(category_medium).options[i + 1] = new Option(name, value);
                    }
                }
            }
        );
    }

 /********************************************************************
  *  function : 中カテゴリ取得
  *  引数： category_large              大カテゴリDDLのid
  *         category_medium             中カテゴリDDLのid
  *******************************************************************/
    function setMediumCategoryWithEventCount(category_large, category_medium) {

        var action = "../db_lib/getMediumCategoryWithEventCountForXML.php";

        var a = new Ajax.Request(
            action,
            {

                "method": "post",
                "parameters": "large_category_sid="+$(category_large).value,
                onComplete: function(request)
                {
                    var xmlObj = request.responseXML;

                    var list_value = xmlObj.documentElement.getElementsByTagName("list");
                    var values = xmlObj.documentElement.getElementsByTagName("value");
                    var names = xmlObj.documentElement.getElementsByTagName("name");


                    // 選択肢を削除する
                    for (var i = $(category_medium).length - 1; i >= 0; i--) {  // 念のため後ろから確認
                        $(category_medium).options[i] = null;
                    }

                    $(category_medium).options[0] = new Option('----------', '');

                    for (var i = 0;i < list_value.length; i++) {

                        var value = values[i].childNodes[0].nodeValue;
                        var name = names[i].childNodes[0].nodeValue;

                        $(category_medium).options[i + 1] = new Option(name, value);
                    }
                }
            }
        );
    }

 /********************************************************************
  *  function : エリア取得
  *  引数： prefecture_id              都道府県DDLのid
  *         area_id                     エリアDDLのid
  *******************************************************************/
    function setArea(prefecture_id, area_id) {

        var action = "../db_lib/getAreaForXML.php";

        var a = new Ajax.Request(
            action,
            {

                "method": "post",
                "parameters": "prefecture_sid="+$(prefecture_id).value,
                onComplete: function(request)
                {
                    var xmlObj = request.responseXML;

                    var list_value = xmlObj.documentElement.getElementsByTagName("list");
                    var values = xmlObj.documentElement.getElementsByTagName("value");
                    var names = xmlObj.documentElement.getElementsByTagName("name");


                    // 選択肢を削除する
                    for (var i = $(area_id).length - 1; i >= 0; i--) {  // 念のため後ろから確認
                        $(area_id).options[i] = null;
                    }

                    $(area_id).options[0] = new Option('----------', '');

                    for (var i = 0;i < list_value.length; i++) {

                        var value = values[i].childNodes[0].nodeValue;
                        var name = names[i].childNodes[0].nodeValue;

                        $(area_id).options[i + 1] = new Option(name, value);
                    }
                }
            }
        );
    }

 /********************************************************************
  *  function : 要素の表示・非表示切替
  *  引数： childObj 	子要素
  *         parentObj	親要素
  *******************************************************************/
    function openFolder(childObj, parentObj){

        /* ブラウザ判別 */
        var ie=document.all ? 1 : 0;
        var ns6=document.getElementById&&!document.all ? 1 : 0;
        var opera=window.opera ? 1 : 0;
        var child="";
        var parent="";
//        var sw="/img/js/show.gif"; /* フォルダ表示時のアイコン画像 */
//        var hd="/img/js/hide.gif"; /* フォルダ非表示時のアイコン画像 */
        if(ie || ns6 || opera){
            child=ns6 ? document.getElementById(childObj).style : document.all(childObj).style;
            parent=ns6 ? document.getElementById(parentObj) : document.all(parentObj);
            if (child.display=="none"){
                child.display="block";
//                parent.src=sw;
            }else{
                child.display="none";
//                parent.src=hd;
            }
        }
    }

 /********************************************************************
  *  function : サブミット処理
  *  引数：		なし
  *******************************************************************/
	function checkKeySubmit(formid, action, buttonname){

        if(event.keyCode == 13) {
    		var frms = document.forms[formid];
    		frms.action = action;
    		frms.elements[buttonname].value = "1";
    		frms.submit();
        } else {
            return false;
        }
	}


 /********************************************************************
  *  function : エンターキー押下でフォーム送信停止処理
  *  引数：	evt		イベント
  *******************************************************************/
	function submitEnter(evt){

		evt = (evt) ? evt : event; 
		var charCode=(evt.charCode) ? evt.charCode : 
			((evt.which) ? evt.which : evt.keyCode);
		if ( Number(charCode) == 13 || Number(charCode) == 3) {
			return true;
		} else {
			return false;
		}
	}


 /********************************************************************
  *  function : エンターキー押下でフォーム送信停止処理
  *  引数：	evt		イベント
  *******************************************************************/
	function BlockEnter(evt){
		evt = (evt) ? evt : event; 
		var charCode=(evt.charCode) ? evt.charCode : 
			((evt.which) ? evt.which : evt.keyCode);
		if ( Number(charCode) == 13 || Number(charCode) == 3) {
			return false;
		} else {
			return true;
		}
	}

 /********************************************************************
  *  function : サブミット処理
  *  引数：		なし
  *******************************************************************/
	function submitFormBlockEnter(formid, action, buttonname){ 

		var frms = document.forms[formid];
		frms.action = action;
		frms.elements[buttonname].value = "1";
		document.forms[formid].elements[buttonname].onkeypress=BlockEnter;
		frms.submit();
	}

 /********************************************************************
  *  function : フォーム内入力文字数取得表示
  *  引数：		formId, inputId, changeId, mnum
  *******************************************************************/
    function CountDownLength(formId, inputId, changeId, mnum ) {

		var frms = document.forms[formId];

        var strNum = frms.elements[inputId].value.length;

        // 指定文字数を越えていれば色を変えて出力
        if((mnum - strNum) >= 0) {
            document.getElementById(changeId).innerHTML = '<span class="gray">' + (mnum - strNum) + '</span>';
        } else {
            document.getElementById(changeId).innerHTML = '<span class="red">' + (mnum - strNum) + '</span>';
        }
    }

 /********************************************************************
  *  function : フォーム内初期メッセージ表示
  *  引数：		なし
  *******************************************************************/
    function setFocus(that, defaultMsg, grayClass, blackClass) {

        that._defaultValue  = defaultMsg;   
        that._postValue     = that.value;   
//        that.value = '';
        that.onblur = function() {
            if( that.value === '' ) {   
                that.value = that._defaultValue;
                document.getElementById("message_box").className = grayClass;
            } else {
                document.getElementById("message_box").className = blackClass;
            }
        }   
        that.onfocus = function() {
            if( that.value === that._defaultValue ) {
                that.value = '';   
                document.getElementById("message_box").className = blackClass;
            } else {
                document.getElementById("message_box").className = blackClass;
            }
        }
        that.onclick = function() {
            if( that.value === that._defaultValue ) {
                that.value = '';   
                document.getElementById("message_box").className = blackClass;
            } else {
                document.getElementById("message_box").className = blackClass;
            }
        }   

    }

 /********************************************************************
  *  function : フォーム内入力文字数取得表示
  *  引数：		formId, inputId, changeId, mnum
  *******************************************************************/
    function aw_type_change(){
        radio = document.getElementsByName('aw_type');
        if(radio[0].checked == true) {
            document.getElementById('aw_upload').style.display = "";
            document.getElementById('img_block').style.display = "";
            document.getElementById('url_block').style.display = "none";

        }else if(radio[1].checked == true) {
            document.getElementById('aw_upload').style.display = "";
            document.getElementById('img_block').style.display = "none";
            document.getElementById('url_block').style.display = "";
        } else {
            document.getElementById('aw_upload').style.display = "none";
        }
    }

