/**
* toggleNaviTab 製品検索ナビゲーションのタブ制御
*
* @param obj クリックされる箇所
* @return array
*/
function toggleNaviTab(obj)
{
	var parNode = document.getElementById('menu');
	var nodeNum = parNode.childNodes.length;
	var tabNum = 0;
	var tags = '';

	for(var i=0;i<nodeNum;i++){
		tags = String(parNode.childNodes[i].innerHTML);
		if(tags.match(/<a/i)){
			tabNum++;
		}
	}
	
	var preTab = 'nM';
	var preBox = 'bL';
	var objId = '01';
	
	if (obj) {
		objId = obj.id.substr(2);
	}
	
	for(var i=1;i<=tabNum;i++){
		var tempNum = i;
		if(i<10){
			tempNum = '0' + i;
		}
		//メニュー画像をオフに
		if (document.getElementById(preTab + tempNum)) {
			var allTab = document.getElementById(preTab + tempNum);
			allTab.className = 'normaltab';
			allTab.style.backgroundPosition = '0 0';
			allTab.style.color = '#0169BE';
		}
		//ボックスを非表示
		if (document.getElementById(preBox + tempNum)) {
			var allBox = document.getElementById(preBox + tempNum);
			allBox.style.display = 'none';
		}
	}
	if (document.getElementById(preTab + objId)) {
		var targetTab = document.getElementById(preTab + objId);
		targetTab.className = 'selecttab';
		targetTab.style.backgroundPosition = '0 -30px';
		targetTab.style.color = '#fff';
	}
	if (document.getElementById(preBox + objId)) {
		var targetBox = document.getElementById(preBox + objId);
		targetBox.style.display = 'block';
	}
}

/**
* toggleNaviBtn 製品検索ナビゲーションの詳細、製品サブカテゴリのボタン制御
*
* @param obj クリックされる箇所
* @param mode navi or sub ナビゲーション詳細かサブカテゴリか
* @return array
*/
function toggleNaviBtn(obj,mode)
{
	if(!obj || !mode){
		return false;	
	}
	
	//productのみ
	if(location.pathname.indexOf('product') <= -1){
		return false;	
	}
	
	var prefixBtn = '';
	var prefixCheck = '';
	var moveHight = '';
	
	switch (mode) {
		case 'navi':
			prefixBtn = 'nB';
			prefixCheck = 'cb';
			prefixProp = 'pP';
			moveHight = '0 -35px';
			break;
		case 'sub':
			prefixBtn = 'sC';
			prefixCheck = 'cs';
			moveHight = '0 -22px';
			break;
	}
	
	var boxNum = 0;
	var btnNum = 0;
	
	//例cb1201とかsC81
	boxNum = obj.id.substr(2,2);
	btnNum = obj.id.substr(4,2);
	
	var targetBtn = document.getElementById(prefixBtn + boxNum + btnNum);
	var targetCheck = document.getElementById(prefixCheck + boxNum + btnNum);
	
	if(mode == 'navi') {
		var targetProp = document.getElementById(prefixProp + boxNum + btnNum);
	}
	
	if (targetCheck && targetCheck.checked == true) {
		targetBtn.style.backgroundPosition = '0 0';
		targetBtn.style.fontWeight = 'normal';
		targetBtn.style.color = '#0169BE';
		targetCheck.checked = false;
		if	(mode == 'navi') {
			targetProp.style.display = 'none';
		}
	
	} else {
		targetBtn.style.backgroundPosition = moveHight;
		targetBtn.style.fontWeight = 'bold';
		targetBtn.style.color = '#fff';
		targetCheck.checked = true;
		if	(mode == 'navi') {
			targetProp.style.display = 'inline';
		}
	}
}

/**
* toggleMainCtg 製品大カテゴリの制御(2桁対応)
*
* @param obj クリックされる箇所
* @return array
*/
function toggleMainCtg(obj)
{
	var tabNum = 10;
	
	var objId = '01';
	
	if (obj) {
		objId = obj.id.substr(2);
	}
	
	if (document.getElementById('mC' + objId)) {
		var targetTab = document.getElementById('mC' + objId);
		var targetChk = document.getElementById('cm' + objId);
		if(targetChk.checked != true){
			//オン
			targetChk.checked = true;
			targetTab.style.backgroundPosition = '0 -55px';
			targetTab.style.color = '#fff';
			if (document.getElementById('mB' + objId)) {
				var targetBox = document.getElementById('mB' + objId);
				targetBox.style.display = 'block';
			}
		}else{
			categoryOff(objId);
		}
	}
}


/**
* toggleState 地域
*
* @param obj クリックされる箇所
* @return void
*/
function toggleState(obj)
{
	if (obj) {
		objId = obj.id.substr(2);
	}
	//地域
	if(document.getElementById('s'+objId)){
		var stateObj = document.getElementById('s'+objId);
		if(stateObj.checked == false){
			stateObj.checked = true;	
		}else{
			stateObj.checked = false;	
		}
		//都道府県
		if(document.forms['searchForm'].elements['p[]']){
			var parentObj = document.forms['searchForm'].elements['p[]'];
			var len = parentObj.length;
			for(var i=0;i<len;i++){
				if(parentObj[i].id.indexOf('cb'+objId) > -1){
					if(stateObj.checked == true){
						parentObj[i].checked = true;	
					}else{
						parentObj[i].checked = false;	
					}
				}
			}
		}
	}
}


/**
* categoryOff 製品大カテゴリをオフにする（必然的にサブカテゴリもオフ）
*
* @param idNum 大カテゴリの番号
* @return array
*/
function categoryOff(idNum)
{
	
	if(String(idNum).length <= 1 && idNum < 10){
		idNum = '0' + idNum;
	}
	
	if(!document.getElementById('mC' + idNum) || !document.getElementById('cm' + idNum)){
		return false;	
	}
	
	var targetTab = document.getElementById('mC' + idNum);
	var targetChk = document.getElementById('cm' + idNum);
	//オフ
	targetChk.checked = false;
	targetTab.style.backgroundPosition = '0 0';
	targetTab.style.color = '#0169BE';
	
	if (document.getElementById('mB' + idNum)) {
		var targetBox = document.getElementById('mB' + idNum);
		targetBox.style.display = 'none';
		//子Nodeの数
		var childCnt = targetBox.childNodes.length;
		var liCnt = 0;
		var tags = '';

		for(var i=0;i<childCnt;i++){
			tags = String(targetBox.childNodes[i].innerHTML);
			if(tags.match(/<a/i)){
				liCnt++;
			}
		}
		//サブカテゴリを全部オフにする
		for(var i=1;i<=liCnt;i++){
			var ii = i;
			if(i < 10){
				ii = '0' + i;
			}
			document.getElementById('cs' + idNum + ii).checked = false;
			var targetBtn = document.getElementById('sC' + idNum + ii);
			targetBtn.style.backgroundPosition = '0 0';
			targetBtn.style.color = '#0169BE';
		}
	}
}

/**
* clearNavi 製品ナビゲーション、製品カテゴリを全てオフ
*
* @param void
* @return array
*/
function clearNavi()
{
	//navi
	if(location.pathname.indexOf('product') > -1){
		var boxCnt = 16;
		for(var i=1;i<=boxCnt;i++){
			var tempNum = i;
			if(i<10){
				tempNum = '0' + i;
			}
			if(document.getElementById('nB' + tempNum + '01')){
				var baseObj = document.getElementById('nB' + tempNum + '01');
				var nodeCnt = baseObj.parentNode.parentNode.childNodes.length;
				var btnCnt = 0;
				var tags = '';
				for(var j=0;j<nodeCnt;j++){
					tags = String(baseObj.parentNode.parentNode.childNodes[j].innerHTML);
					
					if(tags.match(/<a/i)){
						btnCnt++;
					}
				}
				
				for(var j=1;j<=btnCnt;j++){
					var subNum = j;
					if(j<10){
						subNum = '0' + j;
					}
					var targetBtn = document.getElementById('nB' + tempNum + subNum);
					var targetCheck = document.getElementById('cb' + tempNum + subNum);
					var targetProp = document.getElementById('pP' + tempNum + subNum);
					targetBtn.style.backgroundPosition = '0 0';
					targetBtn.style.fontWeight = 'normal';
					targetBtn.style.color = '#0169BE';
					targetCheck.checked = false;
					targetProp.style.display = 'none';
				}
			}
		}
	}
	
	//navi menu
	if(document.getElementById('menu')){
		toggleNaviTab();
	}
	
	//category
	var ctgCnt = 10;
	for(var i=1;i<=ctgCnt;i++){
		categoryOff(i);	
	}
		
	//keyword
	if(document.getElementById('k')){
		document.getElementById('k').value = '';
	}
	
	//store theme
	if(document.getElementById('t')){
		document.getElementById('t').selectedIndex = 0;	
	}

	//state
	if(document.forms['searchForm'].elements['s[]']){
		var targetState = document.forms['searchForm'].elements['s[]'];
		var slen = targetState.length;
		for(var i=0;i<slen;i++){
			targetState[i].checked = false;
		}
	}
	
	//prefecture
	if(document.forms['searchForm'].elements['p[]']){
		var targetPre = document.forms['searchForm'].elements['p[]'];
		var plen = targetPre.length;
		for(var i=0;i<plen;i++){
			targetPre[i].checked = false;
		}
	}

}

/**
* setNaviFromQuery 検索クエリからナビを再セットする
*
* @param query 検索クエリ
* @return void
*/
function setNaviFromQuery(query){
	var arr = path2Array(query);
	var tForm = document.forms['searchForm'];
	var tFormLen = tForm.elements.length;
	
	//すべてのフォーム要素
	for(var i=0;i<tFormLen;i++){
		//チェックボックスのみ
		if(tForm.elements[i].type == 'checkbox'){
			var tEleId = tForm.elements[i].id;
			var tEleName = tForm.elements[i].name;
			var tEleValue = tForm.elements[i].value;
			//alert('id:'+tEleId+' name:'+tEleName+' val:'+tEleValue);
			//URLのパラメータ配列
			for(var j in arr){
				if(tEleName.indexOf(j) != -1){//URLパラメータとエレメント名が一致
					//配列の配列
					for(var k in arr[j]){
						if(arr[j][k] == tEleValue){
							//大カテゴリ
							if(j == 'main' || j == 'sub'){
								//大カテゴリtoggle
								var tParNum = tEleId.substr(2,2);
								if(!document.getElementById('cm'+tParNum).activeToggle){
									document.getElementById('cm'+tParNum).activeToggle = true;
									toggleMainCtg(document.getElementById('cm'+tParNum));
								}
								//productのときだけ
								if(document.getElementById(tEleId)){
									toggleNaviBtn(document.getElementById(tEleId),'sub');
								}
							//都道府県
							}else if(j == 'p'){
								document.getElementById(tEleId).checked = true;
							//地域
							}else if(j == 's'){
								document.getElementById(tEleId).checked = true;
							}else{
								//ナビのtoggle
								if(document.getElementById(tEleId)){
									toggleNaviBtn(document.getElementById(tEleId),'navi');
								}
							}
						}
					}
				}
			}
		//キーワード
		}else if(tForm.elements[i].type == 'text' && tForm.elements[i].name == 'k'){
			if(arr['k']){
				tForm.elements[i].value = arr['k'];
			}
		//テーマ
		}else if(tForm.elements[i].type == 'select-one' && tForm.elements[i].name == 't'){
			if(arr['t']){
				tForm.elements[i].selectedIndex = arr['t'];
			}
		}
	}
}

/**
* setSearchQuery cookieにクエリをセット
*
* @param void
* @return void
*/
function setSearchQuery(type){
	var query = '';
	var cookie_name = '';
	if(location.search != ''){
		query = location.search.replace('?','');
	}
	switch(type){
		case 'product':
			cookie_name = 'ekjProductSearch';
			break;
		case 'location':
			cookie_name = 'ekjLocationSearch';
			break;
	}

	setCookie( cookie_name, query, 0.05);
}

/**
* setPreSearchValue 前回の検索値をセット
*
* @param void
* @return void
*/
function setPreSearchValue(type){
	var query = '';
	
	switch(type){
		case 'product':
			query = getCookie('ekjProductSearch');
			break;
		case 'location':
			query = getCookie('ekjLocationSearch');
			break;
	}
	
	//一旦リセット
	clearNavi();
	
	//queryがなければ何もしない
	if(query == ''){
		return;	
	}
	
	setNaviFromQuery(query);
}

/**
* resetNavi ナビをリセット,cookieも削除
*
* @param void
* @return void
*/
function resetNavi(){
	clearNavi();
	deleteCookie('ekjProductSearch');
}


/**
* dispChanger 表示切替
*
* @param void
* @return void
*/
function dispChanger(){
    this.mode = '';
    if(getCookie('ekjProductListMode')){
        this.mode = getCookie('ekjProductListMode');
    }
    
    this.setDefault = function(){
        if(this.mode == '' || this.mode == 'list'){
                setActiveStyleSheetFollow();
                this.mode = 'list';
        }else{
                setActiveStyleSheetFollow('listBox');
                this.mode = 'box';
        }
    }
    
    this.doChanger = function(){
        if(this.mode == 'box'){
                setActiveStyleSheetFollow();
                this.mode = 'list';
        }else{
                setActiveStyleSheetFollow('listBox');
                this.mode = 'box';
        }
        deleteCookie('ekjProductListMode');
        setCookie( 'ekjProductListMode', this.mode, 0.05);
    }
} 
