﻿/*////// set Variable //////////////////////////////////////////////////////////////////////////*/

var clr_dirPath = "/blog/chiji/themes/yamanashi/css/color/";
var myMenu_maxLength = 20;
var kanaboChgSource = "<img src=\"/blog/chiji/themes/yamanashi/images/header/func_non_indicate.gif\" alt=\"非表示\" width=\"55\" height=\"21\" />";

/*////// 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;
	}
}

//プリロード
function cxPreImages() {
	var d=document;
	if(d.images){
		if(!d.MM_p) d.MM_p=new Array();
	    var i;
		var j=d.MM_p.length;
		var a=cxPreImages.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];
			}
		}
	}
}

// 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 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("my_menu");	
	var ret = document.getElementById("tmp_accesslog");	
	if(!ret) return;
	var dat = eval(val);
	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 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 textSizeDefault(){
	var currentSize = "90%";
	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('ご利用のブラウザでは色合いの変更機能はご利用いただけないようです.\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);
}

// 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."));
				}
			}
		}
	}
}
// kanboChange
function kanboChange() {
	if(isExecutedKanaboWeb()){
		var swicth = document.getElementById("tmp_kanabo_change");
		if(swicth){
			var defTxt = swicth.innerHTML;
			swicth.innerHTML = kanaboChgSource;
		}
	}
}
// onloadFlg for flash 
function onloadFlg() {
	var onLoadFlg = true;
}
/*////// event ////////////////////////////////////////////////////////////////////////////*/

// onload
window.onload = function() {
	smartOver();
	setMyMenu();
	loadCookie();
	wrapperWidth();
	kanboChange();
	onloadFlg();
}

// 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);
