/* ---------------------------------------------------------
	date:2008-12-28
	code:UTF-8
	MAC-DOCK風メニューバー
	document.write版  画像拡大方法設定版
	- function Name -
	iallbig() - 画像の拡大前処理 マウスの座標抽出 -> adImgRenewal()
	iallImgRenewal() - 画像を拡大
	iallsma() - 画像の縮小
------------------------------------------------------------ */
/* ----- ユーザー設定 ----- */
/* ----- comment data ----- */
titleSTR = "ラグナロクオンライン (c) Gravity Co., Ltd. & Lee MyoungJin(studio DTDS). All rights reserved.<br />(c) 2008 GungHo Online Entertainment, Inc. All Rights Reserved.";

var barImage = "http://amaforest.sakura.ne.jp/ogetc/images/ragnarokonline_all.jpg";		//結合画像
var imgList = 9;		//結合した画像数
var barWidth = 540;	//表示するイメージバーの幅
var iWb = 250;			//画像のオリジナルの幅
var iHb = 188;			//画像のオリジナルの高さ

var kdFlag = 0;		//画像の拡大方法 1:オリジナルのサイズで拡大 0:bairiで設定した値での拡大
var bairi = 4;			//拡大表示する辺の拡大率(kdFlagを0にした場合に有効)


/* *********************************************
 *    ここから下はユーザー設定の必要なし
 *********************************************** */

/* -- イメージバーの幅は共通設定ファイルがある場合は共通設定値が有効に -- */
try{
	if( common_ImageBarWight ){ var barWidth = common_ImageBarWight; }
}
catch(e){ }

/* ----- IDNameをユニークに設定 ----- */
var IDName = "obj"+(new Date()).getTime();

var iWs = Math.floor(barWidth / imgList); 	//縮小画像の幅
var iHs = iHb / (iWb / iWs);			//縮小画像の高さ

var timeWaitID = null;


document.write('<div style="border:1px solid #faa;width:',barWidth,'px;height:',iHs,'px;"><div style="position:absolute;position:absolute;">');

for(var i=0; i<imgList; i++){

	document.write('<div id="',IDName,'a',i,'" style="position:absolute;top:0px;left:',(i*iWs),'px;width:',iWs,'px;height:',iHs,'px;overflow:hidden;" onMouseMove="iallbig(\'',IDName,'\',',barWidth,',',bairi,',',iWb,',',iWs,',',iHs,',',i,',',imgList,',',iHb,',',kdFlag,',event)" onMouseOut="iallsma(\'',IDName,'\',',barWidth,',',iWs,',',iHs,',',imgList,',',iWb,',',iHb,')"><img src="',barImage,'" width="',barWidth,'" height="',iHs,'" id="',IDName,'b',i,'" style="position:absolute;top:0px;left:-',(i*iWs),'px;" /></div>');

}

document.write('</div></div><div style="padding:2px;font-size:10px;color:#700;">',titleSTR,'</div><div id="',IDName,'xxx" style="display:none;"></div>');


function iallbig(d1,d2,d3,d4,d5,d6,index,lh,d7,kd,e){
/*	d1=基本ＩＤ名、d2=画像バー元幅、d3=拡大倍率
 *  d4=元画像幅 d5=縮小画像幅、d6=縮小画像高さ、index=カレントオブジェクト番号
 *  lh=画像数 d7=元画像高さ、kd=画像拡大フラグ、e=イベント*/

	if(document.getElementById(d1+"xxx").innerHTML != 0){
		clearInterval(document.getElementById(d1+"xxx").innerHTML);
		document.getElementById(d1+"xxx").innerHTML = 0;
	}
	if(timeWaitID){ return; }

	if (!e){ e = window.event; }
	var across = (e.layerX || e.offsetX);
	if(!across){ return; }		//マウス座標取得できてない場合離脱

	data = document.getElementById(d1+"b"+index).width / lh * index;
	var mz = across-data;

	iallImgRenewal(d1,d2,d3,d4,d5,d6,index,lh,d7,kd,mz);
	iallImgRenewal(d1,d2,d3,d4,d5,d6,index,lh,d7,kd,mz);

	//ウエイト
	timeWaitID = setTimeout(
			function(){
				timeWaitID = null;
			}
	, 100);
}



function iallImgRenewal(d1,d2,d3,d4,d5,d6,index,lh,d7,kd,mz){
/*	d1=基本ＩＤ名、d2=画像バー元幅、d3=拡大倍率
 * d4=元画像幅 d5=縮小画像幅、d6=縮小画像高さ d7=元画像高さ
 * index=カレントオブジェクト番号、lh=画像数、kd=画像拡大フラグ、mz=マウスＸ座標 */

dumy = [];			//現在の各オブジェクトの中心座標を格納
dumy2 = 0;			//現在のマウスの座標

for(var i=0; i<lh; i++){
	dumy[i] = 0;
	for(var j=0; j<i+1; j++){
		if(j==i){
			dumy[i] = dumy[i] + eval(document.getElementById(d1+"a"+j).style.width.replace(/px/,""))/2;
		}else{
			dumy[i] = dumy[i] + eval(document.getElementById(d1+"a"+j).style.width.replace(/px/,""));
		}
	}

	if(i < index){
		dumy2 = dumy2 + eval(document.getElementById(d1+"a"+i).style.width.replace(/px/,""));
	}else if(i == index){
		dumy2 = dumy2 + mz;
	}
}

dumyH = d5;		//画像サイズ変更後、最も高い画像値を格納
dumyW = 0;		//現在の全オブジェクトの幅を格納
aryW = [];
aryH = [];

for(var i=0; i<lh; i++){
	dumy3 = Math.abs(dumy[i]-dumy2);		//dumy3=マウス座標からオブジェクトの距離

  /* ここからオブジェクトサイズの変更開始。
   * マウス座標からオブジェクト中心までの距離が範囲未満の場合に画像を拡大する。
   */

	if(kd == 0){ hani = (d5*d3)*0.8;
	}else{ hani = d4*0.8; }

	if(dumy3 < hani){

		if(kd == 0){ dummyWidth = d5 + ((hani-dumy3)/hani)*(d5*d3-d5);
		}else{       dummyWidth = d5 + ((hani-dumy3)/hani)*(d4-d5);   }
		aryW[i] = dummyWidth;
		dumyW = dumyW + dummyWidth;

		if(kd == 0){ dummyHeight = d6 + ((hani-dumy3)/hani)*(d6*d3-d6);
		}else{       dummyHeight = d6 + ((hani-dumy3)/hani)*(d7-d6);   }
		aryH[i] = dummyHeight;
		if(dumyH < dummyHeight){
			dumyH = dummyHeight;
		}
	}else{
		//hani以上離れたオブジェクトは元のサイズへ
		aryW[i] = d5;
		dumyW = dumyW + d5;
		aryH[i] = d6;
	}
}

zW = -((dumyW-d2)/2); //Ｘ軸移動分

 for(var i=0; i<lh; i++){
	dmyOBJ = document.getElementById(d1+"a"+i);
	dmyOBJ.style.left = zW+"px";
	zW += aryW[i];
	dmyOBJ.style.top = d6-aryH[i]+"px";
	dmyOBJ.style.width = aryW[i]+"px";
	dmyOBJ.style.height = aryH[i]+"px";

	dmyOBJ = document.getElementById(d1+"b"+i);
	dmyOBJ.width = aryW[i]*lh;
	dmyOBJ.height = aryH[i];
	dmyOBJ.style.left = -(aryW[i]*i)+"px";
 }
}//function end


function iallsma(d1,d2,d3,d4,d5,d6,d7){
/*	d1=基本ＩＤ名
 * d2=画像バー元幅 d3=縮小画像幅、d4=縮小画像高さ d5=画像数
 * d6=元画像幅　d7=元画像高さ  */

	if( document.getElementById(d1+"xxx").innerHTML == 0 ){
		document.getElementById(d1+"xxx").innerHTML = setInterval(
			function(){
				dumyW = 0;
				dumyH = d4;
				aryW = [];
				aryH = [];
				for(var i=0; i<d5; i++){
					dmyOBJ = document.getElementById(d1+"a"+i);

					aryW[i] = eval(dmyOBJ.style.width.replace(/px/,""))*0.90;
					if(aryW[i] < d3){ aryW[i] = d3; }
					dumyW += aryW[i];

					aryH[i] = eval(dmyOBJ.style.height.replace(/px/,""))*0.90;
					if(aryH[i] < d4){ aryH[i] = d4; }

					if(aryH[i] > dumyH){ dumyH = aryH[i]; }
				}

				zW = -((dumyW-d2)/2); //Ｘ軸移動分
				for(var i=0; i<d5; i++){
					dmyOBJ = document.getElementById(d1+"a"+i);
					dmyOBJ.style.left = zW+"px";
					zW += aryW[i];
					dmyOBJ.style.top = d4-aryH[i]+"px";
					dmyOBJ.style.width = aryW[i]+"px";
					dmyOBJ.style.height = aryH[i]+"px";

					dmyOBJ = document.getElementById(d1+"b"+i);
					dmyOBJ.width = aryW[i]*d5;
					dmyOBJ.height = aryH[i];
					dmyOBJ.style.left = -(aryW[i]*i)+"px";
				}

				if(dumyW <= d2 && dumyH <= d4){
					clearInterval(document.getElementById(d1+"xxx").innerHTML);
					document.getElementById(d1+"xxx").innerHTML = 0;
				}
			}, 25);

	}//if end
}

