﻿/*////// set Variable //////////////////////////////////////////////////////////////////////////*/

var clr_dirPath = "/shared/style/color/";
var navi_dirPath = "/";
var navi_openImg = "/shared/templates/free/images/navi/lnavi_icon_open.gif";
var navi_closeImg = "/shared/templates/free/images/navi/lnavi_icon_close.gif";
var navi_openAlt = "メニューを開きます。";
var navi_closeAlt= "メニューを閉じます。";
var myMenu_maxLength = 20;
var kanaboChgSource = "<img src=\"/shared/images/header/func_non_indicate.gif\" alt=\"非表示\" width=\"55\" height=\"21\" />";
var kenkeiKanaboChgSource = "<img src=\"/shared/images/kenkei/snavi/func_non_indicate.gif\" alt=\"非表示\" width=\"51\" height=\"20\" />";
var kanaboLevelFlg;
/*////// shared Variable ///////////////////////////////////////////////////////////////////////*/

var textCookieName = "yamanashiText";
var colorCookieName = "textColor";
var myMenuCookieName = "my_menu";

/*////// shared function ///////////////////////////////////////////////////////////////////////*/

//GetElementClass
function getElementsByClassName(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;
	}
}

/*//////////////////////////////////////////////////////////////////////
【isArray】
【引数】オブジェクト
【処理】渡されたオブジェクトが配列だったら、trueを返す
//////////////////////////////////////////////////////////////////////*/
var isArray = function(obj){
	var flg;
	if(obj instanceof Array){
		flg = true;	
	}else{
		!flg;
	}
	return flg;
};


/*//////////////////////////////////////////////////////////////////////
【preLoadImages】
【引数】文字列（複数化）配列
【処理】渡されたパスの画像を先読み
//////////////////////////////////////////////////////////////////////*/
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;
}

/*////// optional function /////////////////////////////////////////////////////////////////////*/

// 最近アクセスしたページ
function setMyMenu() {
	var title = document.title;
	title = title.replace(/[^／]*?／/,"");
	var url   = location.href;
	if(!title || !url) return;
	//
	var get_menu = getCookie(myMenuCookieName);
	if(get_menu) get_menu = eval(get_menu);
	else get_menu = new Array();
	//
	checkMenu(get_menu,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(myMenuCookieName,saveText);
	//
	myMenu();
}
function checkMenu(get_menu,title,url){
	var thisPath = new String(window.location.pathname);
	var ret = document.getElementById("tmp_accesslog");	
	if(ret) return;
	if(!get_menu.length){
		get_menu.push([escape(title),url]);
	}else if(!String(get_menu).match(url)){
		if(get_menu.length == myMenu_maxLength){
			get_menu.pop();
		}
		get_menu.unshift([escape(title),url]);
	}else {
		for(var i=0;i<get_menu.length;i++) {
			if(String(get_menu[i]).match(url)){
				get_menu.splice(i,1);
				get_menu.unshift([escape(title),url]);
				break;
			}
		}
	}
}
function myMenu(){
	var val = getCookie(myMenuCookieName);	
	var ret = document.getElementById("tmp_accesslog");	
	if(!ret) return;
	var dat = eval(val);
	if(!dat) {
		ret.innerHTML = '';
		return;
	}
	var ul = document.createElement('OL');
	var li = "";
	for(var i=0;i<dat.length;i++) {
		title = unescape(dat[i][0]);
		url = dat[i][1];	
		li += '<li><a href="'+url+'">'+ title+'</a></li>';
	}
	ul.innerHTML = li;
	ret.appendChild(ul);
}
function resetMenu(){
	var btn = document.getElementById('tmp_accesslog_reset');
	if(btn){
		btn.onclick = function(){
			deleteCookie(myMenuCookieName);
			myMenu();
		}
	}
}
// ウィンドウ幅を取得して表示幅を設定
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);
	return false;
}
//
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);
	return false;
}
function textSizeDefault(){
	var currentSize = "90%";
	document.body.style.fontSize = currentSize;
	setCookie(textCookieName,currentSize);
	return false;
}

//色合いの変更
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('ご利用のブラウザでは色合いの変更機能はご利用いただけないようです.\n[Element]or[cloneNode Method] None');
		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 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 swMenuObj = getElementsByClassName("swicth_menu");
	var hideObj = getElementsByClassName("area_hidden");
	var swObj = getElementsByClassName("switch");
//
	var preImg = new Image();
	preImg.src = navi_closeImg;
	defMenuFun();
	gnaviFun();
	setPropertyFun(swMenuObj);
//
	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].thisFlg = false;
			}
		}
	}
//
	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");	
			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 j = 0; j < gnElm.length; j++){
					var linkDir = [];
					var linkPath = new String(gnElm.item(j));
					var linkPath2 = linkPath.replace(thisDomain,"");
					var cateID = linkPath.replace(thisDomain + navi_dirPath,"");
					cateID = cateID.replace(/([^\/]+?)\/.*/,"$1");
					linkDir[j] = cateID;
					if(thisPath==linkPath2){
						gnElm2[j].src = gnElm2[j].src.replace("_off","_on");
						break;
					}
					if(linkDir[j]==cateDir){
						gnElm2[j].src = gnElm2[j].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 openSwitch(num,num2,flg){
		var thisList = swMenuObj[num].list[num2];
		var thisCont = swMenuObj[num].cont[num2];
		var thisListImg = swMenuObj[num].list[num2].getElementsByTagName("img");
		if(!flg){
			thisCont.style.display = "block";
			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;
				}
			}
		}else{
			thisCont.style.display = "none";
			if(thisListImg.length){
				for(var j = 0; j < thisListImg.length; j++){
					thisListImg[j].src = thisListImg[j].src.replace("_close","_open");
					thisListImg[j].alt = navi_openAlt;
				}
			}
		}
		thisList.thisFlg = !flg;
	}
//
}

// smartRollover
function smartOver() {
	var strArray = new Array("tmp_gnavi","tmp_lnavi","tmp_miryoku_lnavi","tmp_special","tmp_quick","tmp_introduction","tmp_kids_gnavi_cnt");
	var roArea;
	for(var i=0;i<strArray.length;i++) {
		roArea = document.getElementById(strArray[i]);
		if(!roArea) continue;
		smartRollover(strArray[i]);
	}
}
function smartRollover(idName) {
	if(document.getElementsByTagName) {
		var images = document.getElementById(idName).getElementsByTagName("img");
		for(var i=0; i < images.length; i++) {
			if(images[i].getAttribute("src").match("_off.")) {
				var fileName = new Array(images[i].getAttribute("src").replace("_off.", "_on."));
				var preImages = new Array();
				for (var j=0; j<fileName.length; j++) {
					preImages[j] = new Image();
					preImages[j].src = fileName[j];
				}
				images[i].onmouseover = function() {
					this.setAttribute("src", this.getAttribute("src").replace("_off.", "_on."));
				}
				images[i].onmouseout = function() {
					this.setAttribute("src", this.getAttribute("src").replace("_on.", "_off."));
				}
			}
		}
	}
}
// kanaboLevelFlgFnc
function kanaboLevelFlgFnc(){
	var strURL = String(document.location);
	if(strURL.match(/default\.ashx/) && strURL.match(/kb_url=.*$/) && strURL.match(/kb_lv=\d/)){
		var paramKB_URL = String(strURL.match(/kb_url=.*$/)).split('=');
		var strURL_ROOT = String(paramKB_URL[1]).match(/.*\w\//);
		var paramKB_LV = String(strURL.match(/kb_lv=\d/g)).split('=');
		var strLV = parseInt(paramKB_LV[1]);
		return strLV;
	}
}
// kanboChange
function kanboChange() {
	if(isExecutedKanaboWeb()){
		var flaSwicth = document.getElementById("flashcontent");
		if(flaSwicth){
			toHTML();
		}
		var swicth = document.getElementById("tmp_kanabo_change");
		if(swicth){
			swicth.innerHTML = kanaboChgSource;
		}
		var toFlaBtn = document.getElementById("tmp_header_flash");
		if(toFlaBtn){
			toFlaBtn.style.visibility = "hidden";
		}
		var kenkei_swicth = document.getElementById("tmp_kenkei_kanabo_change");
		if(kenkei_swicth){
			kenkei_swicth.innerHTML = kenkeiKanaboChgSource;
		}
	}
}
function kanaboLevelChange(){
	if(typeof(kanaboLevelFlg) == "number"){
		var obj = document.getElementById("tmp_kb_lv" + kanaboLevelFlg);
		if(obj){
			var img = obj.getElementsByTagName("img");
			for(var i=0; i < img.length; i++) {
				img[i].src = img[i].src.replace("_off","_on");
			}
		}
	}
}

/*////// event ////////////////////////////////////////////////////////////////////////////*/

// onload
window.onload = function() {
	naviFun();
	smartOver();
	setMyMenu();
	resetMenu();
	loadCookie();
	wrapperWidth();
	kanaboLevelFlg = kanaboLevelFlgFnc();
	kanboChange();
	kanaboLevelChange();
}

// onresize
window.onresize = function() {
	wrapperWidth();
}

// cookieの値でonload時に実行
function loadCookie(){
	var thisFont = getCookie(textCookieName);
	document.body.style.fontSize = thisFont;
}

// cookieの値で実行
var thisColor = getCookie(colorCookieName);
changeCSS(thisColor);

