
// 都道府県番号
var prefIds_1  = [1];
var prefIds_2  = [2,3,4,5,6,7];
var prefIds_3  = [8,9,10,11,12,13,14];
var prefIds_4  = [15,16,17,18];
var prefIds_5  = [19,20];
var prefIds_6  = [21,22,23,24];
var prefIds_7  = [25,26,27,28,29,30];
var prefIds_8  = [31,32,33,34,35];
var prefIds_9  = [36,37,38,39];
var prefIds_10 = [40,41,42,43,44,45,46,47];

/**
 * 地域のチェックボックスの整合性を取る
 * 
 */
function adjustAreas(obj, pf_dmos, pf_block, pf_pref) {
    
    
    // チェックされたID取得
    clickedId = obj.id;
    clickedState = obj.checked;
    
    
    // :::::::::: 全国
    if (clickedId == pf_dmos + 'areaDMOS1') {
        document.getElementById(pf_block + 'areaBlock1').checked = clickedState;
        document.getElementById(pf_block + 'areaBlock2').checked = clickedState;
        document.getElementById(pf_block + 'areaBlock3').checked = clickedState;
        document.getElementById(pf_block + 'areaBlock4').checked = clickedState;
        document.getElementById(pf_block + 'areaBlock5').checked = clickedState;
        document.getElementById(pf_block + 'areaBlock6').checked = clickedState;
        document.getElementById(pf_block + 'areaBlock7').checked = clickedState;
        document.getElementById(pf_block + 'areaBlock8').checked = clickedState;
        document.getElementById(pf_block + 'areaBlock9').checked = clickedState;
        document.getElementById(pf_block + 'areaBlock10').checked = clickedState;
        
        // 都道府県にチェック
        prefIds = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47];
        checkAreaPrefecture(prefIds, pf_pref, clickedState);
    }
    
    // :::::::::: 海外
    if (clickedId == pf_dmos + 'areaDMOS2') {
        prefIds = [48];
        checkAreaPrefecture(prefIds, pf_pref, clickedState);
    }
    
    // :::::::::: ブロック
    // 北海道
    if (clickedId == pf_block + 'areaBlock1') {
        // 都道府県にチェック
        checkAreaPrefecture(prefIds_1, pf_pref, clickedState);
        
        checkAreaBlock(pf_dmos, pf_block, pf_pref);
    }
    // 東北
    else if (clickedId == pf_block + 'areaBlock2') {
        // 都道府県にチェック
        checkAreaPrefecture(prefIds_2, pf_pref, clickedState);
        
        checkAreaBlock(pf_dmos, pf_block, pf_pref);
    }
    // 関東
    else if (clickedId == pf_block + 'areaBlock3') {
        // 都道府県にチェック
        checkAreaPrefecture(prefIds_3, pf_pref, clickedState);
        
        checkAreaBlock(pf_dmos, pf_block, pf_pref);
    }
    // 北陸
    else if (clickedId == pf_block + 'areaBlock4') {
        // 都道府県にチェック
        checkAreaPrefecture(prefIds_4, pf_pref, clickedState);
        
        checkAreaBlock(pf_dmos, pf_block, pf_pref);
    }
    // 甲信越
    else if (clickedId == pf_block + 'areaBlock5') {
        // 都道府県にチェック
        checkAreaPrefecture(prefIds_5, pf_pref, clickedState);
        
        checkAreaBlock(pf_dmos, pf_block, pf_pref);
    }
    // 東海
    else if (clickedId == pf_block + 'areaBlock6') {
        // 都道府県にチェック
        checkAreaPrefecture(prefIds_6, pf_pref, clickedState);
        
        checkAreaBlock(pf_dmos, pf_block, pf_pref);
    }
    // 近畿
    else if (clickedId == pf_block + 'areaBlock7') {
        // 都道府県にチェック
        checkAreaPrefecture(prefIds_7, pf_pref, clickedState);
        
        
        checkAreaBlock(pf_dmos, pf_block, pf_pref);
    }
    // 中国
    else if (clickedId == pf_block + 'areaBlock8') {
        // 都道府県にチェック
        checkAreaPrefecture(prefIds_8, pf_pref, clickedState);
        
        checkAreaBlock(pf_dmos, pf_block, pf_pref);
    }
    // 四国
    else if (clickedId == pf_block + 'areaBlock9') {
        // 都道府県にチェック
        checkAreaPrefecture(prefIds_9, pf_pref, clickedState);
        
        checkAreaBlock(pf_dmos, pf_block, pf_pref);
    }
    // 九州
    else if (clickedId == pf_block + 'areaBlock10') {
        // 都道府県にチェック
        checkAreaPrefecture(prefIds_10, pf_pref, clickedState);
        
        checkAreaBlock(pf_dmos, pf_block, pf_pref);
    }
    
    // :::::::::: 都道府県
    // 北海道
    if (clickedId == pf_pref + '1') {
        // ブロック
        adjustAreaBlock(prefIds_1, pf_pref, pf_block, 'areaBlock1');
        checkAreaBlock(pf_dmos, pf_block, pf_pref);
    }
    // 東北
    else if (clickedId == pf_pref + '2' || clickedId == pf_pref + '3' || clickedId == pf_pref + '4' || clickedId == pf_pref + '5' || clickedId == pf_pref + '6' || clickedId == pf_pref + '7') {
        // ブロック
        adjustAreaBlock(prefIds_2, pf_pref, pf_block, 'areaBlock2');
        checkAreaBlock(pf_dmos, pf_block, pf_pref);
    }
    // 関東
    else if (clickedId == pf_pref + '8' || clickedId == pf_pref + '9' || clickedId == pf_pref + '10' || clickedId == pf_pref + '11' || clickedId == pf_pref + '12' || clickedId == pf_pref + '13' || clickedId == pf_pref + '14') {
        // ブロック
        adjustAreaBlock(prefIds_3, pf_pref, pf_block, 'areaBlock3');
        checkAreaBlock(pf_dmos, pf_block, pf_pref);
    }
    // 北陸
    else if (clickedId == pf_pref + '15' || clickedId == pf_pref + '16' || clickedId == pf_pref + '17' || clickedId == pf_pref + '18') {
        // ブロック
        adjustAreaBlock(prefIds_4, pf_pref, pf_block, 'areaBlock4');
        checkAreaBlock(pf_dmos, pf_block, pf_pref);
    }
    // 甲信越
    else if (clickedId == pf_pref + '19' || clickedId == pf_pref + '20') {
        // ブロック
        adjustAreaBlock(prefIds_5, pf_pref, pf_block, 'areaBlock5');
        checkAreaBlock(pf_dmos, pf_block, pf_pref);
    }
    // 東海
    else if (clickedId == pf_pref + '21' || clickedId == pf_pref + '22' || clickedId == pf_pref + '23' || clickedId == pf_pref + '24') {
        // ブロック
        adjustAreaBlock(prefIds_6, pf_pref, pf_block, 'areaBlock6');
        checkAreaBlock(pf_dmos, pf_block, pf_pref);
    }
    // 近畿
    else if (clickedId == pf_pref + '25' || clickedId == pf_pref + '26' || clickedId == pf_pref + '27' || clickedId == pf_pref + '28' || clickedId == pf_pref + '29' || clickedId == pf_pref + '30') {
        // ブロック
        adjustAreaBlock(prefIds_7, pf_pref, pf_block, 'areaBlock7');
        checkAreaBlock(pf_dmos, pf_block, pf_pref);
    }
    // 中国
    else if (clickedId == pf_pref + '31' || clickedId == pf_pref + '32' || clickedId == pf_pref + '33' || clickedId == pf_pref + '34' || clickedId == pf_pref + '35') {
        // ブロック
        adjustAreaBlock(prefIds_8, pf_pref, pf_block, 'areaBlock8');
        checkAreaBlock(pf_dmos, pf_block, pf_pref);
    }
    // 四国
    else if (clickedId == pf_pref + '36' || clickedId == pf_pref + '37' || clickedId == pf_pref + '38' || clickedId == pf_pref + '39') {
        // ブロック
        adjustAreaBlock(prefIds_9, pf_pref, pf_block, 'areaBlock9');
        checkAreaBlock(pf_dmos, pf_block, pf_pref);
    }
    // 九州
    else if (clickedId == pf_pref + '40' || clickedId == pf_pref + '41' || clickedId == pf_pref + '42' || clickedId == pf_pref + '43' || clickedId == pf_pref + '44' || clickedId == pf_pref + '45' || clickedId == pf_pref + '46' || clickedId == pf_pref + '47') {
        // ブロック
        adjustAreaBlock(prefIds_10, pf_pref, pf_block, 'areaBlock10');
        checkAreaBlock(pf_dmos, pf_block, pf_pref);
    }
    // 海外
    else if (clickedId == pf_pref + '48') {
        checkAreaBlock(pf_dmos, pf_block, pf_pref);
    }
    
}

/**
 * 地域ブロックのチェック状態を見て必要に応じてチェックを付ける
 */
function checkAreaBlock(pf_dmos, pf_block, pf_pref) {
    
    // 全国
    $block1 = document.getElementById(pf_block + 'areaBlock1').checked;
    $block2 = document.getElementById(pf_block + 'areaBlock2').checked;
    $block3 = document.getElementById(pf_block + 'areaBlock3').checked;
    $block4 = document.getElementById(pf_block + 'areaBlock4').checked;
    $block5 = document.getElementById(pf_block + 'areaBlock5').checked;
    $block6 = document.getElementById(pf_block + 'areaBlock6').checked;
    $block7 = document.getElementById(pf_block + 'areaBlock7').checked;
    $block8 = document.getElementById(pf_block + 'areaBlock8').checked;
    $block9 = document.getElementById(pf_block + 'areaBlock9').checked;
    $block10 = document.getElementById(pf_block + 'areaBlock10').checked;
    
    if ($block1 && $block2 && $block3 && $block4 && $block5 && $block6 && $block7 && $block8 && $block9 && $block10) {
        document.getElementById(pf_dmos + 'areaDMOS1').checked = true;
    } else {
        document.getElementById(pf_dmos + 'areaDMOS1').checked = false;
    }

    // 海外
    var overseas = document.getElementById(pf_pref + '48');
    
    if (overseas != null) {
	    
	    if (document.getElementById(pf_pref + '48').checked) {
	        document.getElementById(pf_dmos + 'areaDMOS2').checked = true;
	    } else {
	        document.getElementById(pf_dmos + 'areaDMOS2').checked = false;
	    }
    }
}

/**
 * 都道府県の状態を見てブロックにチェックを付ける
 */
function adjustAreaBlock(prefIds, pf_pref, pf_block, areaBlockId) {
    
    for (prefId in prefIds) {
        if (!document.getElementById(pf_pref + prefIds[prefId]).checked) {
            document.getElementById(pf_block + areaBlockId).checked = false;
            return;
        }
    }
    document.getElementById(pf_block + areaBlockId).checked = true;
}

/**
 * 都道府県にチェックを付ける
 */
function checkAreaPrefecture(prefIds, pf_pref, state) {
    
    for (prefId in prefIds) {
    	var prefecture = document.getElementById(pf_pref + prefIds[prefId]);
    	if (prefecture != null) {
    		prefecture.checked = state;
    	}
    }
}

/**
 * 画面ロード時に都道府県の整合性を取ります。
 */
function onloadAdjustAreas(pf_dmos, pf_block, pf_pref) {
	
	adjustAreaBlock(prefIds_1, pf_pref, pf_block, 'areaBlock1');
	adjustAreaBlock(prefIds_2, pf_pref, pf_block, 'areaBlock2');
	adjustAreaBlock(prefIds_3, pf_pref, pf_block, 'areaBlock3');
	adjustAreaBlock(prefIds_4, pf_pref, pf_block, 'areaBlock4');
	adjustAreaBlock(prefIds_5, pf_pref, pf_block, 'areaBlock5');
	adjustAreaBlock(prefIds_6, pf_pref, pf_block, 'areaBlock6');
	adjustAreaBlock(prefIds_7, pf_pref, pf_block, 'areaBlock7');
	adjustAreaBlock(prefIds_8, pf_pref, pf_block, 'areaBlock8');
	adjustAreaBlock(prefIds_9, pf_pref, pf_block, 'areaBlock9');
	adjustAreaBlock(prefIds_10, pf_pref, pf_block, 'areaBlock10');
	checkAreaBlock(pf_dmos, pf_block, pf_pref);
}

/**
 * 引用返信
 * @param num エレメントオブジェクトの番号
 * @return 無し
 */
function quoteInsert( num ) {
    
    var titleElement = "title_t_" + num;
    var detailElement = "title_d_" + num;
    
    // title
    var title  = document.forms[0].elements[titleElement].value;
    var detail = document.forms[0].elements[detailElement].value;
    
    title  = "Re : " + title;
    detail = ">> " + replaceAll(detail, "\n", "\n>> ");
    detail = detail + "\n";
    detail = replaceAll(detail, ">> \n", "\n");
    document.forms[0].elements[3].value  = title;
    document.forms[0].elements[4].value  = detail;
}

/**
 * 文字列置換関数
 * @param tStr 対象文字列
 * @param sStr 検索文字列
 * @param rStr 置換文字列
 * @return 置換後文字列
 */
function replaceAll( tStr, sStr, rStr ){ 
    
    replaceAllArray = tStr.split(sStr);
    return replaceAllArray.join(rStr);
    
}

/**
 * 全てのチェックボックスのチェックを外す
 */
function checkBoxOff(){
    for(i = 0; i < document.form1.elements.length; i++) {
        document.form1.elements[i].checked = false;
    }
}

/**
 * 渡されたエレメントIDのオブジェクトを隠します
 */
function hideElement(element) {
	document.getElementById(element).style.display = 'none';
}

/**
 * 渡されたエレメントIDのオブジェクトを表示します
 */
function showElement(element) {
	document.getElementById(element).style.display = '';
}

function setupGuide() {
	s = document.getElementById('switchDetailSearch');
	f = document.getElementById('SearchDetailSearch').value;
	if (f == 0) {
		hideGuideDetailSearch(s);
		s.onclick = showGuideDetailSearch;
		s.value = '詳細条件で検索';
	} else if (f == 1) {
		s.onclick = hideGuideDetailSearch;
		s.value = '詳細条件を隠す';
	}
}

/**
 * サポーターズガイドの詳細検索条件を隠します
 */
hideGuideDetailSearch = function () {
	hideElement('DetailCategory');
	hideElement('address');
	hideElement('areaDMOS');
	hideElement('areaBlock');
	hideElement('prefectures');

	document.getElementById('SearchDetailSearch').value = 0;
	s = document.getElementById('switchDetailSearch');
	s.onclick = showGuideDetailSearch;
	s.value = '詳細条件で検索';
}

/**
 * サポーターズガイドの詳細検索条件を表示します
 */
showGuideDetailSearch = function () {
	showElement('DetailCategory');
	showElement('address');
	showElement('areaDMOS');
	showElement('areaBlock');
	showElement('prefectures');

	document.getElementById('SearchDetailSearch').value = 1;
	s = document.getElementById('switchDetailSearch');
	s.onclick = hideGuideDetailSearch;
	s.value = '詳細条件を隠す';
}


