// JavaScript Document

<!--
function subWin1(page){
	sub1=window.open(page,"sub_window","resizable=no,menubar=no,directories=no,scrollbars=yes,status=no,location=no,width=570,height=380");
	window.sub1.focus();
}
function subWin2(page){
	sub2=window.open(page,'sub_window2','toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=1,width=480,height=480');
	window.sub2.focus();
}
function subWin3(page){
	sub3=window.open(page,'sub_window3','toolbar=0,location=0,status=0,menubar=0,scrollbars=1,resizable=1,width=720,height=400');
	window.sub3.focus();
}
function subWin4(page){
	sub4=window.open(page,'sub_window4','toolbar=0,location=0,status=0,menubar=0,scrollbars=1,resizable=1,width=500,height=500');
	window.sub4.focus();
}


function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function MM_swapImgRestore_TMP() {
}

function MM_swapImage_onLoad(formObj) {
	presetStyleSheet();
}

/* 検索テキストフィールドプリセット */
var restoreMessage = new Array();
restoreMessage[0] = "お探しの商品名を入力して「検索」ボタンを押下してください";
restoreMessage[1] = "型式を入力して商品を検索することができます";
restoreMessage[2] = "キーワードを入力してサイト全体を検索します";
restoreMessage[3] = "ご注文・お見積の前に型式が正しいかどうかチェックすることができます";

function presetSearchText(formObj) {

	var keywordSearchMode = formObj.keywordSearchMode.value;
	var webSearchMode = formObj.webSearchMode.value;
	var noCheckMode = formObj.noCheckMode.value;
	
	var searchTextObj = formObj.keyword;
	
	searchTextObj.disabled = false;
	setTextColor(searchTextObj, "black");
	if (searchTextObj.value == "") {
		setTextMessage(searchTextObj, webSearchMode, keywordSearchMode, noCheckMode);
	} else {
		for (i = 0; i < 4; i++) {
			if (searchTextObj.value == restoreMessage[i]) {
				setTextMessage(searchTextObj, webSearchMode, keywordSearchMode, noCheckMode);
				break;
			}
		}
	}
}

function setTextMessage(textObj, webSearchMode, keywordSearchMode, noCheckMode) {
	if (noCheckMode == 1) {
		textObj.value = restoreMessage[3];
	} else {
		if (webSearchMode == 1) {
			textObj.value = restoreMessage[2];
		} else {
			if (keywordSearchMode == 1) {
				textObj.value = restoreMessage[0];
			} else if (keywordSearchMode == 2) {
				textObj.value = restoreMessage[1];
			} else {
				textObj.value = "";
			}
		}
	}
	setTextColor(textObj, "gray");
}

function setTextColor(textObj, textColor) {
	textObj.style.color = textColor;
}

function clearSearchText(formObj) {
	
	var searchTextObj = formObj.keyword;
	
	for (i = 0; i < 4; i++) {
		if (searchTextObj.value == restoreMessage[i]) {
			searchTextObj.value = "";
			break;
		}
	}
	setTextColor(searchTextObj, "black");
}

function presetStyleSheet() {
	if(!getActiveStyleSheet()) {
		setActiveStyleSheet('middle');
	}
}

function getSearchType(noCheckMode, keywordSearchMode, webSearchMode) {
	if (noCheckMode == '0') {
		if (webSearchMode == '1') {
			return '3';
		} else {
			if (keywordSearchMode == '1') {
				return '1';
			} else if (keywordSearchMode == '2') {
				return '2';
			}
		}
	}
	return '4';
}

function switchKeywordSearchFormParams(type) {
	
	var formObj = document.keywordSearchForm;
	
	switch(type) {
		case 1:
		case "1":
			formObj.keywordSearchMode.value = '1';
			formObj.webSearchMode.value = '0';
			formObj.noCheckMode.value = '0';
			formObj.action = document.getElementById('hdItemSearchView').value;
			break;
		case 2:
		case "2":
			formObj.keywordSearchMode.value = '2';
			formObj.webSearchMode.value = '0';
			formObj.noCheckMode.value = '0';
			formObj.action = document.getElementById('hdItemSearchView').value;
			break;
		case 3:
		case "3":
			formObj.webSearchMode.value = '1';
			formObj.noCheckMode.value = '0';
			formObj.action = document.getElementById('hdWebSearchView').value;
			break;
	}

	return false;
}

function BlockEnterKeywordSearch(evt){
	evt = (evt) ? evt : event; 
	var charCode=(evt.charCode) ? evt.charCode : 
		((evt.which) ? evt.which : evt.keyCode);
	if ( Number(charCode) == 13 || Number(charCode) == 3) {
		document.getElementById("keywordSearchFormSubmitImage").click();
		return false;
	} else {
		return true;
	}
}

function attachBlockEnterKeywordSearch(formid) {
	var elements = document.getElementById(formid).elements;
	for (var j=0; j < elements.length; j++) {
		var e = elements[j];	
		if (e.type == "text" && e.name == "keyword"){
			e.onkeypress=BlockEnterKeywordSearch;
		}
	}
}

/* 検索結果0件ページ用 */
function presetDummySearchText(dummyNo) {
	var dummyTextObj = document.getElementById("dummyKeyword" + dummyNo);

	if (dummyTextObj) {
		if (!dummyTextObj.value) {
			dummyTextObj.value = restoreMessage[dummyNo - 1];
		}
		if (dummyTextObj.value == restoreMessage[dummyNo - 1]) {
			setTextColor(dummyTextObj, "gray");
		}
	}
}
function clearDummySearchText(dummyNo) {
	var dummyTextObj = document.getElementById("dummyKeyword" + dummyNo);

	if (dummyTextObj.value == restoreMessage[dummyNo - 1]) {
		dummyTextObj.value = "";
	}
	setTextColor(dummyTextObj, "black");
}
function submitDummySearchText(dummyNo) {

	var dummyTextObj = document.getElementById("dummyKeyword" + dummyNo);
	
	if (dummyTextObj.value == restoreMessage[dummyNo - 1]) {
		return false;
	}
	
	document.keywordSearchForm.keyword.value = document.getElementById("dummyKeyword" + dummyNo).value;
	
	switchKeywordSearchFormParams(dummyNo);
	
	if (document.keywordSearchForm.keyword.value != "") {
		document.getElementById("keywordSearchFormSubmitImage").click();
		return false;
	}
	
	return false;
}
function presetDummies() {
	presetDummySearchText(1);
	presetDummySearchText(2);
	presetDummySearchText(3);
	
	document.keywordSearchForm.isMissing.value = "no-support-box";
}



/* キーワードハイライト */
function hilightKeywords(keywords) {
	
	if (keywords == "") {
		return;
	}
	var keywordArray = keywords.split(" ");
	for (splitIndex = 0; splitIndex < keywordArray.length; splitIndex++) {
		var keyword = keywordArray[splitIndex];
		if (keyword == "") {
			continue;
		}
		var d=document.getElementById("right_area");
		var htmlText = d.innerHTML;
		var regex = RegExp(">([^<]*)("+keyword+")([^<]*)<", "ig");
		
		htmlText = htmlText.replace(regex, ">$1<span class=\"highlight\">$2</span>$3<");
		
		d.innerHTML = htmlText;
	}
	writeInnerPDF();
}


/* キーワード履歴表示 */
/* support-box config */
var onSupportBox = false;
function showSupportBox(resultHTMLText) {
	var boxObj = document.getElementById("supportBox");
	boxObj.style.visibility = "visible";
	boxObj.innerHTML = resultHTMLText;
	
	if (resultHTMLText.indexOf("</a>") > 0) {
		resizeSupportBox(resultHTMLText);
	} else {
		removeSupportBox();
	}
	
	// キー入力のイベントを設定
	document.keywordSearchForm.keyword.onkeydown=catchSupportEvent;
}

function removeSupportBox() {
	var boxObj = document.getElementById("supportBox");
	boxObj.style.visibility = "hidden";
	boxObj.innerHTML = "";
}

function setSupportKeyword(supportLinkTag) {
	document.keywordSearchForm.keyword.value = supportLinkTag.innerHTML;
	
	onSupportBox = false;
	releaseSupport();
}

function resizeSupportBox(resultHTMLText) {
	var boxObj = document.getElementById("supportBox");
	
	if (resultHTMLText && resultHTMLText.split("</a>\n").length >= 9) {
		if (!document.all && (document.layers || document.getElementById)){
			boxObj.style.height = "144px";
		} else {
			boxObj.style.height = "134px";
		}
	} else {
		boxObj.style.height = "auto";
	}
}


/* Watching Keyword Field  */
var tmpKeyword;
var watchTimer;
function catchKeywordText(formObj) {
	var keywordValue = formObj.keyword.value;
	var keywordSearchMode = formObj.keywordSearchMode.value;
	var webSearchMode = formObj.webSearchMode.value;
	var noCheckMode = formObj.noCheckMode.value;
	var searchType = getSearchType(noCheckMode, keywordSearchMode, webSearchMode);
	var isMissing = formObj.isMissing.value;
	
	if (!isMissing && keywordValue && tmpKeyword != keywordValue) {

		// keyword is changed
		tmpKeyword = keywordValue;
		
		// search support
		var urlHead = formObj.action.substring(0, formObj.action.lastIndexOf("/"));
		var searchResult = searchSupportkeyword(keywordValue, searchType, urlHead);
		
		// change support-box status
		if (searchResult) {
			showSupportBox(searchResult);
		} else {
			removeSupportBox();
		}
	} else if (!keywordValue) {
		tmpKeyword = "";
		removeSupportBox();
	}
	
	watchTimer = setTimeout(function() {catchKeywordText(formObj)}, 200);
}

function releaseSupport() {
	clearTimeout(watchTimer);
	if (!onSupportBox) {
		removeSupportBox();
	}
}


/* search */
function searchSupportkeyword(keywordValue, searchType, urlHead){
	return getXmlHttpRequestObj(urlHead + "/KeywordSearchHistoryPulldown.html?keyword=" + encodeURI(keywordValue) + "&searchType=" + encodeURI(searchType));
}

/* リクエスト */
function getXmlHttpRequestObj(xmlURL){

    /* XMLHttpRequestオブジェクト作成 */
    var xmlhttp=false;
    if(typeof ActiveXObject!="undefined"){ /* IE5, IE6 */
        try {
            xmlhttp=new ActiveXObject("Msxml2.XMLHTTP"); /* MSXML3 */
        }
        catch(e){
            xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); /* MSXML2 */
        }
    }
    if(!xmlhttp && typeof XMLHttpRequest!="undefined"){
        xmlhttp=new XMLHttpRequest(); /* Firefox, Safari, IE7 */
    }
    if(!xmlhttp){
        return false;
    }
    
    /* ★HTTPリクエスト初期化＋HTTPメソッドおよびリクエスト先URLの設定 */
    if (xmlURL.indexOf("?") == -1) {
	    xmlhttp.open("GET",xmlURL + "?hoge=" + Math.random(),false);
    } else {
	    xmlhttp.open("GET",xmlURL + "&hoge=" + Math.random(),false);
    }
    /* リクエスト送信 */
    xmlhttp.send(null);

	return xmlhttp.responseText
}


//イベント振分け
function catchSupportEvent(evt){
	
	evt = (evt) ? evt : event;
	var charCode=(evt.charCode) ? evt.charCode : 
		((evt.which) ? evt.which : evt.keyCode);
	
	//履歴BOXが表示かどうか
	if(isSuggestBoxOn()){
		if (Number(charCode) == 38) {
			//KEY_DOWN（↑押下）時
			moveFocusTarget(-1);
		} else if (Number(charCode) == 40){
			//KEY_DOWN（↓押下）時
			moveFocusTarget(1);
		} else if (Number(charCode) == 13 || Number(charCode) == 3) {
			//ENTER押下時
			var focusObj = getFocusTarget();
			if (focusObj) {
				setSupportKeyword(focusObj);
				tmpKeyword = document.keywordSearchForm.keyword.value;
				catchKeywordText(document.keywordSearchForm);
				return false;
			}
		}
	}
}

function getFocusTarget() {
	for (i = 0; i < 100; i++) {
		var supportKeywordObj = document.getElementById("supportKeyword_" + i);
		if (!supportKeywordObj) {
			break;
		}
		if (supportKeywordObj.className == "supportKeywordFocus") {
			return supportKeywordObj;
		}
	}
}
function setFocusTarget(focusTarget) {
	for (i = 0; i < 100; i++) {
		var supportKeywordObj = document.getElementById("supportKeyword_" + i);
		if (!supportKeywordObj) {
			break;
		}
		if (supportKeywordObj.className == "supportKeywordFocus") {
			supportKeywordObj.className = "supportKeyword";
			break;
		}
	}
	focusTarget.className = "supportKeywordFocus";
}


function moveFocusTarget(direction) {
	var focusSupportKeywordObj = getFocusTarget();
	if (!focusSupportKeywordObj && direction == 1) {
		focusSupportKeywordObj = document.getElementById("supportKeyword_0");
		focusSupportKeywordObj.className = "supportKeywordFocus";
		return;
	} else if (!focusSupportKeywordObj && direction == -1) {
		return;
	}
	
	var keywordIndex = Number(focusSupportKeywordObj.id.substring("supportKeyword_".length));
	
	var nextFocusTarget = document.getElementById("supportKeyword_" + (keywordIndex + direction));
	if (nextFocusTarget) {
		focusSupportKeywordObj.className = "supportKeyword";
		nextFocusTarget.className = "supportKeywordFocus";
	} else if (direction == -1) {
		focusSupportKeywordObj.className = "supportKeyword";
	}
}


//履歴ボックスが表示されているかどうか判定
function isSuggestBoxOn(){
	var boxObj = document.getElementById("supportBox");
	if(boxObj.style.visibility == "hidden"){
		return false;
	} else {
		return true;
	}
}

//マウスオーバーイベント時の処理
function focusSupportKeyword(target){
	setFocusTarget(target);
}

//マウスアウト時のイベント処理(このイベントがないと履歴がひとつの時に消せないため)
function unFocusSupportKeyword(target){
	target.className = "supportKeyword";
}


function setDefaultLoginPanelMenu() {
	if (document.getElementById("mypage")) {
		document.getElementById("mypage_menu").style.display = "block";
	} else if (document.getElementById("loginPanelButtonArea")) {
		document.getElementById("loginPanelButtonArea").style.display = "block";
	} else {
		if (document.getElementById("head_login_link")) {
			document.getElementById("head_login_link").style.display = "block";
			
		}
		if (document.getElementById("head_cart_link")) {
			document.getElementById("head_cart_link_logged").style.display = "none";
			document.getElementById("head_cart_link").style.display = "block";
		}
	}
}
function resizeLoginPanelMenu() {
	var menuDisp = document.getElementById("mypage_menu").style.display;
	
	if (!menuDisp || menuDisp == "block") {
		document.getElementById("mypage_menu").style.display = "none";
		document.getElementById("resizeLoginPanelMenuButton").src = "/img/g_max.gif";
	} else {
		document.getElementById("mypage_menu").style.display = "block";
		document.getElementById("resizeLoginPanelMenuButton").src = "/img/g_min.gif";
	}
}
function katashikiSearch(sinaname) {
	var formObj = document.keywordSearchForm;
	formObj.keyword.value = sinaname;
	switchKeywordSearchFormParams(2);
	if (formObj.keyword.value != "") {
		document.getElementById("keywordSearchFormSubmitImage").click();
		return false;
	}
}

function showItemDetail(partsIndex) {
	document.getElementById("sinacd").value = document.getElementById("sinacd_" + partsIndex).value;
	if (document.getElementById("psNo")) {
		document.getElementById("psNo").value = document.getElementById("psNo_" + partsIndex).value;
	}
	if (document.getElementById("ecConfiguratorId")) {
		document.getElementById("ecConfiguratorId").value = document.getElementById("configuratorId_" + partsIndex).value;
	}
	document.getElementById("itemLink").action = document.getElementById("url_" + partsIndex).value;
	document.getElementById("itemLink").submit();
}

function replaceBusiCateTreeInner(replaceObj) {
	document.getElementById("treeTop").innerHTML = document.getElementById(replaceObj).innerHTML;
	document.getElementById(replaceObj).innerHTML = "";
}
function showBusiCateTree() {
	if (document.getElementById('treeTop') && document.getElementById('treeTop').innerHTML) {
		document.getElementById('treeTop').style.display = "block";
	}
	if (document.getElementById('treeEle') && document.getElementById('treeEle').innerHTML) {
		document.getElementById('treeEle').style.display = "block";
	}
	if (document.getElementById('treeMec') && document.getElementById('treeMec').innerHTML) {
		document.getElementById('treeMec').style.display = "block";
	}
}

function resetRdoElement(element) {
	if (element == null) return;
	for (i = 0; i < element.length; i++) {
		if (element[i].type == 'radio') {
			if (element[i].checked) {
				element[i].checked = false;
			}
		}
	}
}
function resetCheckBoxElement(element) {
	if (element == null) return;
	for (i = 0; i < element.length; i++) {
		if (element[i].type == 'checkbox') {
			if (element[i].checked) {
				element[i].checked = false;
			}
		}
	}
}
function resetCmbElement(element) {
	if (element == null) return;
	element.value = null;
}

function innerLink() {
	// たぶん10個も無いので、超える時は修正してください。
	var maxLinkCount = 10;
	for (i = 0; i < maxLinkCount; i++) {
		if (maxLinkCount - i <= 1) {
		        break;
		}
		var linkKey = "mech" + (maxLinkCount - i);
		if (document.getElementById(linkKey)) {
			location.href = "#" + linkKey;
			break;
		}
	}
}

function initSearchTypeList() {
	var searchTypeArray = document.getElementById("searchTypeList").options;
	
	if (document.getElementById("webSearchMode").value == 1) {
		searchTypeArray[2].selected = true;
		switchKeywordSearchFormParams(3);
	} else {
		if (document.getElementById("keywordSearchMode").value == 1) {
			searchTypeArray[1].selected = true;
			switchKeywordSearchFormParams(1);
		} else {
			searchTypeArray[0].selected = true;
			switchKeywordSearchFormParams(2);
		}
	}
}

function isSelectedRdo(element) {
	if (element == null) return false;
	for (i = 0; i < element.length; i++) {
		if (element[i].type == 'radio' && element[i].checked) {
			return true;
		}
	}
	return false;
}
function isSelectedTxt(element) {
	if (element == null) return false;
	if (element.value != "") {
		return true;
	}
	return false;
}
function isSelectedCmb(element) {
	if (element == null) return false;
	if (element.value != "") {
		return true;
	}
	return false;
}

function isFloatValue(val) {
	if(val == "") {
		return true;
	}
	var reg = /^[0-9]+(\.[0-9]+)?$/;
	return val.match(reg);
	
}
function isIntValue(val) {
	if(val == "") {
		return true;
	}
	var reg = /^[0-9]+$/;
	return val.match(reg);
}


function addPrimaryCookie(addCookieName,loadCookieName) {
  var loadCookieValue = loadPrimaryCookie(loadCookieName);
  if (!loadCookieValue) {
    return;
  }
  var date = new Date();
  date.setTime(date.getTime()+(100*24*60*60*1000));
  var expires = "; expires="+date.toGMTString();
  document.cookie = addCookieName+"="+loadCookieValue+expires+"; path=/";
}
function loadPrimaryCookie(name) {
  var nameEQ = name + "=";
  var ca = document.cookie.split(';');
  for(var i=0;i < ca.length;i++) {
    var c = ca[i];
    while (c.charAt(0)==' ') c = c.substring(1,c.length);
    if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
  }
  return null;
}

// -->
