﻿/*////// set Variable //////////////////////////////////////////////////////////////////////////*/

var clr_dirPath = "/shared/style/color/";
var navi_dirPath = "/";
var lang_array = new Array("english","chinese","korean","french","portuguese","japanese");

/*////// shared Variable ///////////////////////////////////////////////////////////////////////*/

var textCookieName = "yamanashiText";
var colorCookieName = "textColor";

/*////// 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;
	}
}

//配列判定
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();
}

// IE6.0の場合実行
function checkBrowser(){
	var uName = navigator.userAgent;
	if (uName.indexOf("MSIE 6.0") > -1){
		return true;
	}
	return false;
}

/*////// optional function /////////////////////////////////////////////////////////////////////*/
// 文字拡大・縮小
function textSizeUp(){
	var currentSize = document.body.style.fontSize;
	var selectSize;
	if(!currentSize) currentSize = "83%";
	if (currentSize=="70%"){
		selectSize = "83%";
	} else if(currentSize=="83%") {
		selectSize = "100%";
	} else if(currentSize=="100%") {
		selectSize = "120%";
	} else if(currentSize=="120%") {
		alert("Text size cannot be further increased.");
		selectSize = "120%";
	} else {
		selectSize = "83%";
	}
	document.body.style.fontSize = selectSize;
	setCookie(textCookieName,selectSize);
}
//
function textSizeDown(){
	var currentSize = document.body.style.fontSize;
	var selectSize;
	if(!currentSize) currentSize = "83%";
	if (currentSize=="120%"){
		selectSize = "100%";
	} else if(currentSize=="100%") {
		selectSize = "83%";
	} else if(currentSize=="83%") {
		selectSize = "70%";
	} else if(currentSize=="70%") {
		alert("Text size cannot be further reduced.");
		selectSize = "70%";
	} else {
		selectSize = "83%";
	}
	document.body.style.fontSize = selectSize;
	setCookie(textCookieName,selectSize);
}
function textSizeDefault(){
	var currentSize = "83%";
	document.body.style.fontSize = currentSize;
	setCookie(textCookieName,currentSize);
}

//色合いの変更
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('Text size and color in your browser cannot be changed.');
		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 tabMenuObj = getElementsByClassName("tab_menu");
	var hideObj = getElementsByClassName("area_hidden");
	var swObj = getElementsByClassName("switch");
//
	defMenuFun();
	subCateFun();
	gnaviFun();
	setPropertyFun(swMenuObj);
	setPropertyFun(tabMenuObj);

	defTab();
	//
	function subCateFun(){
		for(var i = 0; i < lang_array.length; i++){
			if(thisPath.match(lang_array[i])){
				navi_dirPath = navi_dirPath + lang_array[i] + "/";
				break;
			}
		}	
	}
//
	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);return false;}
				}	
			}
		}		
	}
//

	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;
	}
//
	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;
		}
	}
//

}

// smartRollover
function smartOver() {
	var strArray = new Array("tmp_gnavi");
	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."));
				}
			}
		}
	}
}

/*////// event ////////////////////////////////////////////////////////////////////////////*/

// onload
window.onload = function() {
	naviFun();
	smartOver();
	loadCookie();
}

// cookieの値でonload時に実行
function loadCookie(){
	var thisFont = getCookie(textCookieName);
	document.body.style.fontSize = thisFont;
}

// cookieの値で実行
var thisColor = getCookie(colorCookieName);
changeCSS(thisColor);

