/*@cc_on _d=document;eval('var document=_d')@*/
/**
 * オブザーブメソッド
	* @author uemura
 */
var observe = window.addEventListener
? function(target, type, listener) { target.addEventListener(type, listener, false); }
: function(target, type, listener) { target.attachEvent('on' + type, function() { listener.call(target, window.event); }); }; 

var deleteObserve = window.addEventListener
? function(target, type, listener) { target.removeEventListener(type, listener, false); }
: function(target, type, listener) { target.detachEvent('on' + type, function() { listener.call(target, window.event); }); }; 


/* ロールオーバー処理 */

function Btn(elm) {
	var me = this;
	this.elm = elm;
	this.over = function() { me.changeImage(true); };
	this.out = function() {	me.changeImage(false); };
	this.init();
}

var _Btn = Btn.prototype;

_Btn.init = function() {
	var me = this;
	var img_on = new Image();
	var img_str = this.elm.getAttribute("src");
	img_on.src = img_str.replace("_off", "_on");
	this.setEvent();
};

_Btn.doSelect = function() {
	this.deleteEvent();
	this.changeImage(true);
};

_Btn.setEvent = function() {
	observe(this.elm,"mouseover", this.over);
	observe(this.elm,"mouseout", this.out);
};

_Btn.deleteEvent = function() {
	deleteObserve(this.elm,"mouseover", this.over);
	deleteObserve(this.elm,"mouseout", this.out);
};

_Btn.changeImage = function(flag) {
	var img = this.elm.getAttribute("src");
	this.elm.setAttribute("src", (flag) ? img.replace("_off", "_on") : img.replace("_on", "_off"));
};

/* ページスクロール */

var smooth = 10;
var speed = 10;

function scrlWin(){
	if(distYY >= 1 || distYY <= -1){
		if(distYY > 0){
			moveYY = Math.ceil(distYY / smooth);
		}else{
			moveYY = Math.floor(distYY / smooth);
		}
		distYY -= moveYY;
		window.scrollBy(0, -moveYY);
		clearTimeout(timerId);
		timerId = setTimeout("scrlWin()", speed);
	}
}

function smScrl(ET){
	if(document.body.scrollTop){
		winYY = document.body.scrollTop;
	}else{
		winYY = document.documentElement.scrollTop;
	}
	if(window.innerHeight){
		winHH = window.innerHeight;
	}else if(document.all && document.getElementById && (document.compatMode == 'CSS1Compat')){
		winHH = document.documentElement.clientHeight;
	}else{
		winHH = document.body.clientHeight;
	}
	linkVal = "" + ET;
	linkName = linkVal.split("#");
	targetEt = document.getElementById(linkName[1]);
	targetYY = targetEt.offsetTop;

	distYY = winYY - targetYY;
	pageHH = document.documentElement.scrollHeight;
	if(pageHH - targetYY < winHH){
		difVal = winHH - (pageHH - targetYY) - 15;
		distYY += difVal;
	}
	timerId = setTimeout("scrlWin()", speed);
}


// フォントサイズの切替
//----------------------------------------

var oldImg;
var oldImgPass;

function changeFont(val){
	document.getElementsByTagName('body')[0].className='changeFontSize'+val;
	setCookieFont(val);
	var btnNum = val;
	if(document.getElementById('fontSize') != null){
		var btnLength= document.getElementById('fontSize').getElementsByTagName('li').length; 
		for(var i = 1;i<btnLength;i++)
		{
			if(btnNum == i){
			var img =document.getElementById('size'+i);
			var imgPass = img.getAttribute("src");
				img.setAttribute('src',imgPass.replace('_deact', '_act'));  
			//img.setAttribute("src",imgPass.replace("_on", "_act")); 
			}
			else{
				var img =document.getElementById('size'+i);
				var imgPass = img.getAttribute('src');
				img.setAttribute('src',imgPass.replace('_act', '_deact')); 
			}
		}
	}
}

// クッキーの書き込み
function setCookieFont(val) {	
	//alert("set"+val);
	cName = "NAME=";
	cDays = 30; // データの保存日数
	var setPre;
	setPre = new Date();
	setPre.setTime(setPre.getTime() + (cDays*1000*24*3600));
	prd = setPre.toGMTString();
	document.cookie = cName + val  + "; path=/; expires=" + prd;
}

// クッキーの読み込み
function getCookieFont() {
	cData = "";
	cName = "NAME=";
	cCookie = document.cookie+";";
	//alert("cookie : " + cCookie);
	str = cCookie.indexOf(cName);
	if(str != -1) {
		end = cCookie.indexOf(";",str);
		cData = unescape(cCookie.substring(str + cName.length, end));
		return cData;
 } else {
		return null;
	}
}



/*
	対象の要素をフェードイン/アウトする
	element: 対象の要素オブジェクト
	interval: 透明度を変化させる間隔(ms)
	time: 透明度を変化させる合計時間(ms)
	fadeMode: 0=フェードアウト, 1=フェードイン
*/
function fadeElement(element,interval,time,fadeMode)
{
	var count = 0;
	var begin = new Date();
	var per;
	var opacity;
	var callback = function()
	{
		per = Math.min(Math.floor(((new Date()) - begin)/time*100),100);
		opacity = fadeMode ? per : 100-per;
		// Opera, Safari, Chrome, Firefox>=3.5
		element.style.opacity = opacity/100;
		// Firefox
		element.style.MozOpacity = opacity/100;
		// Internet Explorer
		element.style.filter = 'alpha(opacity='+opacity+')';
		if ( per<100 )
		{
			// countが100未満であれば
			// setTimeoutに自身（関数オブジェクト）を指定
			setTimeout(callback,interval);
		}
		//99を超えたらバナーを移動
		else if( per>99 && fadeMode == 1)
		{
			//imgLoop();	
		}
	};
	callback();
}

/*オンロード処理*/

(function(func) {
	observe(this,"load", func);
})(function() {
	//ロールオーバー画像切替
	//----------------------------------------
	var btnArray01 = document.getElementsByTagName("img");
	var btnArray02 = document.getElementsByTagName("input");
	for (var i = 0, ln = btnArray01.length; i < ln; i++) {
		if (btnArray01[i].getAttribute("src").indexOf("_off.") >= 0) new Btn(btnArray01[i]);
	}
	for (var i = 0, ln = btnArray02.length; i < ln; i++) {
		try{
			if (btnArray02[i].getAttribute("src").indexOf("_off.") >= 0) new Btn(btnArray02[i]);
		} catch(e){
		}
	}
	//フォントサイズの切替
	//----------------------------------------
	var _cookie = getCookieFont();
		if (_cookie != null) {
			base_size = _cookie;
			changeFont(base_size);
		}else{
			changeFont(2);
		}
});



/*新規ウィンドウ表示*/
function setEvent(target, ev, func){
	try {
		target.addEventListener(ev, func, false);
	} catch(e) {
		target.attachEvent("on" + ev, func);
	};	
};

setEvent(window,"load", externalLinks);

function externalLinks() {
	if (!document.getElementsByTagName) return;
	var anchors = document.getElementsByTagName("a");
	for (var i=0; i<anchors.length; i++) {
		var anchor = anchors[i];
		if (anchor.getAttribute("href") && anchor.getAttribute("rel") == "external") anchor.target = "_blank";
	}
}

