﻿/*////// set Variable //////////////////////////////////////////////////////////////////////////*/

var clr_dirPath = "/shared/style/color/";
var navi_dirPath = "/";
var navi_openImg = "/shared/templates/top/images/contents/info-open.jpg";
var navi_closeImg = "/shared/templates/top/images/contents/info-close.jpg"
//var navi_openAlt = "メニューを開きます。";
//var navi_closeAlt= "メニューを閉じます。";

//var myMenuMaxValue = 3;
var myMenuNaviMaxValue = 5;
var myMenuDefaultTxt = "登録されたページはありません。";
var myMenuEntryBtn = '<p><input type="image" src="/shared/images/common/mymenu-entry-btn.gif" id="tmp_mymenu_btn" onclick="setMyMenu()" alt="このページをマイメニューに登録する" /></p>';
//var myMenuCantBtn = '/shared/images/common/mymenu-cant-btn.gif';
//var myMenuCantTxt = 'これ以上登録できません';
var myMenuAlreadyBtn = '/shared/images/common/mymenu-already-btn.gif';
var myMenuAlreadyTxt = 'このページは既に登録されています';
var myMenuAllBtn = '<p><a href="/mymenu/index.html#tmp_list"><img src="/shared/images/common/mymenu-all-btn.gif" alt="登録したページの一覧を見る" width="170" height="22" /></a></p>';
/*////// shared Variable ///////////////////////////////////////////////////////////////////////*/

var textCookieName = "anjoText";
var colorCookieName = "textColor";

/*////// shared function ///////////////////////////////////////////////////////////////////////*/

//GetElementClass
var getElementsByClassName = function(className, pElement){
	var d = document, nodes = [];
	if(d.getElementsByClassName){
		nodes = (pElement||d).getElementsByClassName(className);
		return nodes.length > 0 ? nodes : null;
	}else{
		var cls, item;
		var items = (pElement || d).getElementsByTagName("*");
		for(var i = 0, l = items.length; i < l; i++){
			item = items[i];
			if(item.className){
				cls = item.className.split(/\s+/);
				for(var k = 0, kl = cls.length; k < kl; k++){
					if(cls[k]==className){
						nodes[nodes.length] = item; break;
					}
				}
			}
		}
		return nodes.length > 0 ? nodes : null;
	}
}
//配列判定
var isArray = function(obj){
	var flg;
	if(obj instanceof Array){
		flg = true;	
	}else{
		!flg;
	}
	return flg;
};
//プリロード
var preLoadImages = function(){
	for(var i = 0; i < arguments.length; i++){
		if(isArray(arguments[i])){
			var preImages = new Array(arguments[i].length);
			for(var j = 0; j < arguments[i].length; j++){
				preImages[j] = new Image();
				preImages[j].src = arguments[i][j];
			}
		}else{
			var preImages = new Image();
			preImages.src = arguments[i];
		}	
	}	
};

// cookie取得
function getCookie(name){
	if(!name) return;
	var val = "";
	var cookieName = name+"=";
	var tmpCookie = document.cookie + ";";
	var start = tmpCookie.indexOf(cookieName);
	if (start != -1) {
		var end = tmpCookie.indexOf(";", start);
		val = tmpCookie.substring(start + cookieName.length, end);
	}
	return val;
}

// cookie保存
function setCookie(name,value){
	if(!name || !value) return;
	var cookieName = name+"=";
	var exp = new Date();
	exp.setTime(exp.getTime() + 31536000000);
	document.cookie = cookieName + value + "; path=/" + "; expires=" + exp.toGMTString();
}
// cookie削除
function deleteCookie(name,value){
	var cookieName = name+"=";
	var deleteTime = new Date();
	deleteTime.setYear(deleteTime.getYear() - 1);
	document.cookie = cookieName + value + "; path=/" + ";expires=" + deleteTime.toGMTString();
}
// IE6.0の場合実行
function checkBrowser(){
	var uName = navigator.userAgent;
	if (uName.indexOf("MSIE 6.0") > -1){
		return true;
	}
	return false;
}
//ナビゲーション
function searchText(){
	var obj = document.getElementById('tmp_query');
	if(!obj) return;
	obj.onfocus = function() {
		if(this.value == 'キーワードを入力') {
			this.value = '';
		}
	}
	obj.onblur=function() {
		if(this.value == '') {
			this.value = 'キーワードを入力';
		}
	}
}
// ウィンドウ幅を取得して表示幅を設定
function wrapperWidth(){
	//
	var maxWidth = 1280;
	var maxSetWidth = '1280px';
	var minWidth = 760;
	var minSetWidth = '760px';
	var defaultSetWidth = '100%';
	//
	var wid = document.body.clientWidth;
	var obj = document.getElementById('tmp_wrapper');	
	//
	if(!checkBrowser()) return;
	if(!wid || !obj) return;
	if(wid > maxWidth) {
		obj.style.width = maxSetWidth;
	} else if(wid < minWidth) {
		obj.style.width = minSetWidth;
	} else {
		obj.style.width = defaultSetWidth;
	}
}
// 文字拡大・縮小
function textSizeUp(){
	var currentSize = document.body.style.fontSize;
	var selectSize;
	if(!currentSize) currentSize = "90%";
	if (currentSize=="80%"){
		selectSize = "90%";
	} else if(currentSize=="90%") {
		selectSize = "110%";
	} else if(currentSize=="110%") {
		selectSize = "130%";
	} else if(currentSize=="130%") {
		alert("これ以上文字を拡大することはできません。");
		selectSize = "130%";
	} else {
		selectSize = "90%";
	}
	document.body.style.fontSize = selectSize;
	setCookie(textCookieName,selectSize);
}
//
function textSizeDown(){
	var currentSize = document.body.style.fontSize;
	var selectSize;
	if(!currentSize) currentSize = "90%";
	if (currentSize=="130%"){
		selectSize = "110%";
	} else if(currentSize=="110%") {
		selectSize = "90%";
	} else if(currentSize=="90%") {
		selectSize = "80%";
	} else if(currentSize=="80%") {
		alert("これ以上文字を縮小することはできません。");
		selectSize = "80%";
	} else {
		selectSize = "90%";
	}
	document.body.style.fontSize = selectSize;
	setCookie(textCookieName,selectSize);
}
//色合いの変更
function changeCSS(par){
	var targetLINK  = "tmp_changecss";
	var css_keyword = "color";
	if(!par || par == "") return;
	var target = document.getElementById(targetLINK);
	if(!target) {
		var links = document.getElementsByTagName('link');
		for(var i=0;i<links.length;i++) {
			var temp = links[i].href;
			var chk = temp.indexOf(css_keyword);
			if(chk!=-1) {
				target = links[i];
				break;
			}
		}
	}
	//
	if(!target || !target.cloneNode) {
		alert('ご利用のブラウザでは色合いの変更機能はご利用いただけないようです。');
		return;
	}
	//
	var css_path = clr_dirPath + par;
	//
	var newNode = target.cloneNode(true);
	newNode.href = css_path;
	target.parentNode.replaceChild(newNode,target);
	//
	setCookie(colorCookieName,par);
}

//// 閲覧支援機能　//////////////////////////////////////////////////////////////////////////////
function setParamAcc() {
	//get
	var c0 = (document.getElementById('color0').checked)? document.getElementById('color0').value : false;
	var c1 = (document.getElementById('color1').checked)? document.getElementById('color1').value : false;
	var c2 = (document.getElementById('color2').checked)? document.getElementById('color2').value : false;
	var c3 = (document.getElementById('color3').checked)? document.getElementById('color3').value : false;
	//set
	var color;
	if(c0) color = c0;
	if(c1) color = c1;
	if(c2) color = c2;
	if(c3) color = c3;
	//send
	changeCSS(color);
}
function setNormalAcc() {
	changeCSS('color0.css');
	document.getElementById('color0').checked = true;
}
function setFormColor(p) {
	var c0 = document.getElementById('color0');
	var c1 = document.getElementById('color1');
	var c2 = document.getElementById('color2');
	var c3 = document.getElementById('color3');
	if(!c0 || !c1 || !c2 || !c3) return;
	switch(p) {
		case "color0.css":
			c0.checked = true;
			break;
		case "color1.css":
			c1.checked = true;
			break;
		case "color2.css":
			c2.checked = true;
			break;
		case "color3.css":
			c3.checked = true;
			break;
		default:
			c0.checked = true;
			break;
	}
}

//ナビゲーション
function naviFun(){
//
	var thisPath = new String(window.location.pathname);
	var thisPro = new String(window.location.protocol);
	var thishost = new String(window.location.host);
	var thisDomain = thisPro + "\/\/" + thishost;
	var thisCate = cateFun(thisCate,navi_dirPath);
	var dir_path_sub = navi_dirPath + thisCate + "/";
	var subCate = cateFun(subCate,dir_path_sub);
	var swMenuObj = getElementsByClassName("swicth_menu");
	var tabMenuObj = getElementsByClassName("tab_menu");
	var hideObj = getElementsByClassName("area_hidden");
	var swObj = getElementsByClassName("switch");
//
	preLoadImages(navi_openImg,navi_closeImg);
	defMenuFun();
	gnaviFun();
	setPropertyFun(swMenuObj);
	setPropertyFun(tabMenuObj);
	defTab();
//
	function cateFun(cate,path){
		cate = thisPath.replace(path,"");
		cate = cate.replace(/([^\/]+?)\/.*/,"$1");
		if(!cate.length){
			cate = "index.html";
		}
		return cate;
	}
//
	function flgFun(menuName,num,num2,flg){
		if(menuName == swMenuObj){
			openSwitch(num,num2,flg);
		}else if(menuName == tabMenuObj){	
			openTab(num,num2,flg);
		}
	}
//
	function defMenuFun() {
		if (hideObj){
			for (var i=0;i<hideObj.length;i++){
				hideObj[i].style.display = "none";
			}
		}
		if (swObj){
			for (var i=0;i<swObj.length;i++){
				swObj[i].href ="javascript:void(0);";
				swObj[i].thisFlg = false;
				var preImage = swObj[i].getElementsByTagName("img");
				for(var j = 0; j < preImage.length; j++){
					var img = preImage[j].src.replace("-open.","-close.")
					preLoadImages(img);
				}
			}
		}
	}
//
	function gnaviFun(){
		var gnObj = document.getElementById("tmp_gnavi");
		var panObj = document.getElementById("tmp_pankuzu");
		if(gnObj){
			var gnElm = gnObj.getElementsByTagName("a");
			var gnElm2 = gnObj.getElementsByTagName("img");	
			var preImg = new Array();
			for(var i = 0; i < gnElm2.length; i++){
				preImg[i] = String(gnElm2[i].src.replace("-off.","-on."));
			}
			preLoadImages(preImg);
			if (panObj){
				var panElm = panObj.getElementsByTagName("a");
				for(var i = 0; i < panElm.length; i++){
					var cateDir = []; 
					cateDir = new String(panElm[1]);
					cateDir = cateDir.replace(thisDomain + navi_dirPath,"");
					cateDir = cateDir.replace(/([^\/]+?)\/.*/,"$1");
				}
				for(var i = 0; i < gnElm.length; i++){
					var linkDir = [];
					var linkPath = new String(gnElm.item(i));
					var linkPath2 = linkPath.replace(thisDomain,"");
					var cateID = linkPath.replace(thisDomain + navi_dirPath,"");
					cateID = cateID.replace(/([^\/]+?)\/.*/,"$1");
					linkDir[i] = cateID;
					if(thisPath==linkPath2){
						gnElm2[i].src = gnElm2[i].src.replace("-off.","-on.");
						break;
					}
					if(linkDir[i]==cateDir){
						gnElm2[i].src = gnElm2[i].src.replace("-off.","-on.");
						break;
					}
				}
			}else{
				gnElm2[0].src = gnElm2[0].src.replace("-off.","-on.");
			}
		}
	}
//
	function setPropertyFun(menuName){
		if(menuName){
			for(var i = 0; i < menuName.length; i++){
				menuName[i].list = getElementsByClassName("switch",menuName[i]);
				menuName[i].cont = getElementsByClassName("area_hidden",menuName[i]);
				for(var j = 0; j < menuName[i].list.length; j++){
					menuName[i].list[j].num = i;
					menuName[i].list[j].num2 = j;
					menuName[i].list[j].onclick = function(){flgFun(menuName,this.num,this.num2,this.thisFlg);}
				}	
			}
		}		
	}
//
	function defTab() {
		if(tabMenuObj){
			for (var i=0;i<tabMenuObj.length;i++){
				tabMenuObj[i].cont[0].style.display = "block";
				tabMenuObj[i].list[0].thisFlg = true;
				var thisListImg = tabMenuObj[i].list[0].getElementsByTagName("img");				
				if(thisListImg.length){	
					for(var j = 0; j < thisListImg.length; j++){
						thisListImg[j].src = thisListImg[j].src.replace("-open.","-close.");
						//thisListImg[j].alt = navi_closeAlt;
					}
				}
			}
		}
	}
//
	function openTab(num,num2,flg){
		var thisList = tabMenuObj[num].list[num2];
		var thisCont = tabMenuObj[num].cont[num2];
		var thisListImg = tabMenuObj[num].list[num2].getElementsByTagName("img");
		if(!flg){
			for(var i = 0; i < tabMenuObj[num].list.length; i++){
				tabMenuObj[num].cont[i].style.display = "none";
				var imgObj = tabMenuObj[num].list[i].getElementsByTagName("img");
				var preImg = new Array();
				if(imgObj.length){
					for(var j = 0; j < imgObj.length; j++){
						imgObj[j].src = imgObj[j].src.replace("-close.","-open.");
						preImg[j] = imgObj[j].src.replace("-open.","-close.");
					}
					preLoadImages(preImg);
				}
				tabMenuObj[num].list[i].thisFlg = false;
			}
			thisCont.style.display = "block";
			if(thisListImg.length){
				for(var j = 0; j < imgObj.length; j++){
					thisListImg[j].src = thisListImg[j].src.replace("-open.","-close.");
					//thisListImg[j].alt = navi_closeAlt;
				}
			}
			thisList.thisFlg = !flg;
		}
	}
//
}
//マイメニュー
function myMenu() {
	var val = getCookie('my_menu');
	var ret = document.getElementById('tmp_mymenu_list');
	var ret2 = document.getElementById('tmp_mymenu_kanri_list');
	preLoadImages(myMenuAlreadyBtn,myMenuAllBtn);
	//
	if(!ret) return;
	ret.innerHTML = "";
	if(!val) {
		ret.innerHTML = '<p>' + myMenuDefaultTxt + '</p>';
		ret.innerHTML += myMenuEntryBtn;
		return;
	}
	//
	var dat = eval(val);
	if(ret2){
		kanriListCreate(dat,ret2);
	}
	//
	listCreate(dat,ret);
	checkMenu(val);	
}
//
function checkMenu(val) {
	var addUI = document.getElementById('tmp_mymenu_btn');
	if(!val) return;
	var dat = eval(val);
	/*if(dat.length >= myMenuMaxValue && addUI) {	
		addUI.disabled = 'disabled';
		addUI.alt = myMenuAlreadyTxt;
		addUI.src = myMenuCantBtn;
	}*/
	var url = location.href;
	url = url.replace(/index\..*/,'');
	//
	for(var i=0;i<dat.length;i++) {
		if(dat[i][1] == url) {
			addUI.disabled = 'disabled';
			addUI.alt = myMenuAlreadyTxt;
			addUI.src = myMenuAlreadyBtn;
			addUI.style.cursor = "default";
			break;
		}
	}
}
//
function setMyMenu() {
	var title = document.title;	
	var url   = location.href;
	url = url.replace(/index\..*/,'');
	if(!title || !url) return;
	//
	var get_menu = getCookie('my_menu');
	if(get_menu) {
		get_menu = eval(get_menu);
	} else {
		get_menu = new Array();
	}
	//
	get_menu.push([escape(title),url]);	
	//
	var saveArray = new Array();
	var tmp;
	for(var i=0;i<get_menu.length;i++) {
		tmp = "['"+get_menu[i][0]+"','"+get_menu[i][1]+"']";
		saveArray.push(tmp);
	}
	//
	var saveText;
	saveText = "[" + saveArray.join(",") + "]";
	//
	setCookie('my_menu',saveText);
	//
	myMenu();
}
//
function delMenu(){
	var ret = document.getElementById('tmp_mymenu_list');
	var ret2 = document.getElementById('tmp_mymenu_kanri_list');
	var ul = ret2.getElementsByTagName("ul");
	var input = ul[0].getElementsByTagName("input");
	var get_menu = getCookie('my_menu');
	var checkNum = new Array();
	var set_menu = new Array();
	//
	if(get_menu) {
		get_menu = eval(get_menu);
	}else{
		get_menu = new Array();
	}
	//
	for(var i = 0; i < input.length; i++){
		if(input[i].checked){
			checkNum[i] = true;
		}else{
			checkNum[i] = false;
		}
	}
	//
	checkNum.reverse();
	for(var i = 0; i < get_menu.length; i++){
		if(!checkNum[i]){
			set_menu.push(get_menu[i]);
		}
	}
	checkNum.reverse();
	//
	listCreate(set_menu,ret)
	kanriListCreate(set_menu,ret2);
	//
	var saveArray = new Array();
	var tmp;
	for(var i = 0 ; i<set_menu.length; i++) {
		tmp = "['" + set_menu[i][0] + "','" + set_menu[i][1]+"']";
		saveArray.push(tmp);
	}
	//
	var saveText;
	saveText = "[" + saveArray.join(",") + "]";
	//
	setCookie('my_menu',saveText);
	//
}
//
function kanriListCreate(dat,ret2){
	var li ;
	var liAry = new Array();
	for(var i = 0; i < dat.length; i++){
		var title = unescape(dat[i][0]);
		var url  = dat[i][1];
		liAry.unshift('<li><input type="checkbox" name="del" value="'+ url +'" id="del'+ i +'" /><a href="'+ url +'">' + title+'</a></li>');
	}
	li = liAry.join([""]) ;
	if(li == ""){
		ret2.innerHTML = '<p>' + myMenuDefaultTxt + '</p>';
	}else{
		ret2.innerHTML = '<ul id="tmp_mylist">' + li + '</ul>';
	}
	ret2.innerHTML += '<p><a href="javascript:all_ui(true);">全選択</a> | <a href="javascript:all_ui(false);">全解除</a></p>';
	ret2.innerHTML += '<p><input type="button" value="削除" onclick="delMenu();" /></p>';	
}
//
function listCreate(dat,ret){
	var li = "";
	var liAry = new Array();
	for(var i = 0; i < dat.length; i++) {
		var title = unescape(dat[i][0]);
		var url  = dat[i][1];
		liAry.unshift('<li><a href="' + url + '">' + title + '</a></li>');
	}
	if(dat.length > myMenuNaviMaxValue){
		liAry.splice(myMenuNaviMaxValue,(dat.length - myMenuNaviMaxValue))
	}	
	li = liAry.join([""]) ;
	if(li == ""){
		ret.innerHTML = '<p>' + myMenuDefaultTxt + '</p>';
	}else{
		ret.innerHTML = '<ul>' + li + '</ul>';
	}
	ret.innerHTML += myMenuEntryBtn + myMenuAllBtn;
}
//
function all_ui(flg){
	var ret2 = document.getElementById('tmp_mymenu_kanri_list');
	var input = ret2.getElementsByTagName("input");
	for(var i = 0; i < input.length; i++){
		input[i].checked = flg;
	}
}

//サイト内検索切り替え
var googleSearchSetUp = function(){

	var resultHtmlPath = '/search/result.html';		//結果を表示するHTMLのパス
	var hiddenBoxId = 'tmp_search_hidden';	//googleSearchのhiddenでパラメータを設定しているinputを内包している要素
	var inputCof = 'FORID:9';
	
	//===========================================================
	
	var sBox = 'cse-search-box';
	
	if(document.getElementById(sBox)){
	
		var form = document.forms[sBox];
		form.action = location.protocol.replace(/(http)s?/,'$1') + '//' + location.hostname + resultHtmlPath;
		
		var p = document.getElementById(hiddenBoxId);
		var ele = document.createElement('input');
		ele.type = 'hidden';
		ele.name = 'cof';
		ele.value = inputCof;
		
		p.appendChild(ele);
	
	}
};

/*////// event ////////////////////////////////////////////////////////////////////////////*/

// onload
window.onload = function() {
	searchText();
	naviFun();
	loadCookie();
	wrapperWidth();
	myMenu();
	googleSearchSetUp();
}

// onresize
window.onresize = function() {
	wrapperWidth();
}

// cookieの値でonload時に実行
function loadCookie(){
	var thisFont = getCookie(textCookieName);
	var thisColor = getCookie(colorCookieName);
	document.body.style.fontSize = thisFont;
	changeCSS(thisColor);
}