/* ####################################################################################################

【画像ロールオーバー機能】

#################################################################################################### */	

var RollOverImage = {
	
	/* ロールオーバー処理用クラス名
	==================================================================================================== */
	className:"rollover",
	
	
	/* 対象エレメントリスト
	==================================================================================================== */
	eleList:[],
	
	
	/* 初期化実行設定
	==================================================================================================== */
	init:function(){
		var arg = arguments;
		for(var i=0,l=arg.length;i<l;i++) this.eleList.push(arg[i]);
		if(window.addEventListener){
			window.addEventListener("load",this.setUp,false);
		}else if(window.attachEvent){
			window.attachEvent("onload",this.setUp);
		}else{
			window.onload = this.setUp;
		}
	},
	
	
	/* セットアップ
	==================================================================================================== */
	setUp:function(){
		for(var i=0,l=RollOverImage.eleList.length;i<l;i++){
			var ele = document.getElementsByTagName(RollOverImage.eleList[i]);
			for(var j=0,m=ele.length;j<m;j++){
				if(ele[j].className.match(RollOverImage.className)){
					RollOverImage.preLoad(ele[j].src.replace(/_off\./i,"_ov."));
					ele[j].onmouseover = RollOverImage.mouseover;
					ele[j].onmouseout = RollOverImage.mouseout
				}
			}
		}
	},
	
	
	/* プリロード
	==================================================================================================== */
	preLoad:function(){
		if(document.images){
	 	var loadedImg = new Array();
	 	var arg = arguments;
	 	for(i=0,l=arg.length;i<l;i++){
	 		loadedImg[i] = new Image();
	 		loadedImg[i].src = arg[i];
	 	}
	 }
	},
	
	
	/* ロールオーバー
	==================================================================================================== */
	mouseover:function(){
		this.src = this.src.replace(/_off\./i,"_ov.");
	},
	
	
	/* ロールアウト
	==================================================================================================== */
	mouseout:function(){
		this.src = this.src.replace(/_ov\./i,"_off.");
	}
	
};

//初期化
RollOverImage.init("img","input");





/* ####################################################################################################

【テキストサイズ変更機能】

#################################################################################################### */	

var TextsizeChange = {
	
	/* 画像ID
	==================================================================================================== */
	idS:"textsizeS",
	idM:"textsizeM",
	idL:"textsizeL",
	
	
	/* 初期画像
	==================================================================================================== */
	suffixS:"_off",
	suffixM:"_off",
	suffixL:"_off",
	
	
	/* ディレクトリ設定
	==================================================================================================== */
	siteRoot:"/",
	imgDir  :"common/images/",
	
	
	/* 画像サイズ
	==================================================================================================== */
	imgSize:"width=\"18\" height=\"18\"",
	
	
	/* 画像参照一覧
	==================================================================================================== */
	imgSML:[],
	
	
	/* デザインパターン
	==================================================================================================== */
	designPattern:"",
	
	
	/* クッキーの設定
	==================================================================================================== */
	cookieName  :"tsc",
	cookieExpDay:365,
	cookiePath  :"/",
	
	
	/* 初期化
	==================================================================================================== */
	init:function(dp){
		this.designPattern = (!dp)?"A":dp;
		this.setUp();
	},
	
	
	/* セットアップ
	==================================================================================================== */
	setUp:function(){
		//初期サイズの設定
		var size = Cookie.read(this.cookieName);
		var init = (!size||(size.length!=1&&size.match(/[sml]/g)==null))?"s":size;
		var title = (this.designPattern=="A")?"textsizeChange_ti.gif":"textsizeChange_ti_B.gif";
		var titlesize = (this.designPattern=="A")?"width=\"91\" height=\"10\"":"width=\"80\" height=\"9\"";
		this.sizeChange(init);
		//初期画像の設定
		if(init=="s")      this.suffixS = "_on";
		else if(init=="m") this.suffixM = "_on";
		else if(init=="l") this.suffixL = "_on";
		else this.suffixS = "_on";
		//インターフェイスの生成
		var code = "<dl id=\"textsizeChange\">\n";
						code += "<dt><img src=\"" + this.siteRoot + this.imgDir + title + "\" alt=\"文字の大きさの変更\" " + titlesize + "></dt>\n";
		    code += "<dd>\n";
		    code += "<ul class=\"clear\">\n";
		    code += "<li><img src=\"" + this.siteRoot + this.imgDir + "textsizeChange_bt_s" + this.suffixS + ".gif\" alt=\"小\" " + this.imgSize + " id=\"" + this.idS + "\" class=\"rollover\"></li>\n";
		    code += "<li><img src=\"" + this.siteRoot + this.imgDir + "textsizeChange_bt_m" + this.suffixM + ".gif\" alt=\"中\" " + this.imgSize + " id=\"" + this.idM + "\" class=\"rollover\"></li>\n";
		    code += "<li><img src=\"" + this.siteRoot + this.imgDir + "textsizeChange_bt_l" + this.suffixL + ".gif\" alt=\"大\" " + this.imgSize + " id=\"" + this.idL + "\" class=\"rollover\"></li>\n";
		    code += "</ul>\n";
		    code += "</dd>\n";
		    code += "</dl>\n";
		document.write(code);
		//画像参照を格納
		var S = document.getElementById(this.idS);
		var M = document.getElementById(this.idM);
		var L = document.getElementById(this.idL);
		this.imgSML.push(S,M,L);
		//プリロード
		for(var i=0,l=this.imgSML.length;i<l;i++){
			var t = this.imgSML[i];
			if(t.src.match(/_off\./g)){
				RollOverImage.preLoad(t.src.replace(/_off\./i,"_on."));
			}else if(t.src.match(/_on\./g)){
				RollOverImage.preLoad(t.src.replace(/_on\./i,"_off."));
				RollOverImage.preLoad(t.src.replace(/_on\./i,"_ov."));
			}
		}
		//カーソルの初期化
		this.setCursor((init=="s")?S:(init=="m")?M:(init=="l")?L:S);
		//イベント設定
		S.onclick = function(){
			TextsizeChange.cursorChange(this);
			TextsizeChange.imageChange(this);
			TextsizeChange.sizeChange("s");
		};
		M.onclick = function(){
			TextsizeChange.cursorChange(this);
			TextsizeChange.imageChange(this);
			TextsizeChange.sizeChange("m");
		};
		L.onclick = function(){
			TextsizeChange.cursorChange(this);
			TextsizeChange.imageChange(this);
			TextsizeChange.sizeChange("l");
		};
	},
	
	
	/* 画像のセット
	==================================================================================================== */
	setImage:function(t){
		t.src = (t.src.match(/_ov\./g))?t.src.replace(/_ov\./i,"_on."):t.src.replace(/_off\./i,"_on.");
	},
	
	
	/* 画像のリセット
	==================================================================================================== */
	resetImage:function(){
		for(var i=0,l=this.imgSML.length;i<l;i++){
			this.imgSML[i].src = this.imgSML[i].src.replace(/_on\./i,"_off.");
		}
	},
	
	
	/* 画像の変更
	==================================================================================================== */
	imageChange:function(t){
			//画像のリセット
		this.resetImage();
		//画像のセット
		this.setImage(t);
	},
	
	
	/* テキストサイズの取得
	==================================================================================================== */
	getSize:function(size){
		//IEの判定
		var isIE = /*@cc_on!@*/false;
		return (isIE)?this.textSize.ie[size]:this.textSize.notie[size];
	},
	
	
	/* テキストサイズの変更
	==================================================================================================== */
	sizeChange:function(v){
		//CSSの変更
		document.getElementById("size").href = this.siteRoot + "common/css/size" + v.toUpperCase() + ".css";
		//クッキーの更新
		Cookie.write(this.cookieName,v,this.cookieExpDay,this.cookiePath);
	},
	
	
	/* カーソルのセット
	==================================================================================================== */
	setCursor:function(t){
		t.style.cursor = "default";
	},
	
	
	/* カーソルのリセット
	==================================================================================================== */
	resetCursor:function(){
		for(var i=0,l=this.imgSML.length;i<l;i++){
			this.imgSML[i].style.cursor = "pointer";
		}
	},
	
	
	/* カーソルの変更
	==================================================================================================== */
	cursorChange:function(t){
		//カーソルのリセット
		this.resetCursor();
		//カーソルのセット
		this.setCursor(t);
	}
	
};





/* ####################################################################################################

【Cookie機能】

#################################################################################################### */

var Cookie = {
	
	/* Cookieの読込み
	==================================================================================================== */
	read:function(n){
		var cd = document.cookie.split("; ");
		for(var i=0,l=cd.length;i<l;i++){
			if(cd[i].indexOf(n + "=")>=0){
				var latest = cd[i].split("=")[1];
				return latest;
			}
		}
		return false;
	},
	
	
	/* Cookieの書き込み
	==================================================================================================== */
	write:function(n,v,d,p){
		var name  = n;
		var value = v;
		var day   = (d)?d:0;
		var path  = (p)?p:"/";
		var ex = new Date();
		ex.setTime(ex.getTime() + (day*24*60*60*1000));
		document.cookie = n + "=" + v + "; expires=" + ex.toGMTString() + "; path=" + path;
	}
	
};
