/*
JavaScript: track.js

last updated on 2008.11.17
(c) 2008 INUI YOSUKE Design Office (http://www.inuiyosuke.jp/)
*/


// ATTENTION!
// This JavaScript need 'system.js'.


load.Set('JSS.set();');

wheel.Set('JSS.wheel();', 'TRACK');
mouse.Set('JSS.drag();', 'JSS_BAR');
down.Set('JSS.slide();','JSS_SPACE');
down.Set('JSS.on();','JSS_BAR');
msup.Set('JSS.off();');
var JSS = { 
timer:undefined, flag:false, key:false, 
	pageH:150, pageW:750, unitH:0, unitW:750,
	obj:new Object(), objX:0, objY:0, objOffset:0, /* to scroll */
	bar:new Object(), barX:0, barY:0, barOffset:20, barSize:120, /* bar */
	JSS_01:new Object(), JSS_02:new Object(), JSS_03:new Object(), JSS_BG01:new Object(), JSS_BG02:new Object(), JSS_BG03:new Object(),
	items:new Array(), viewkey:undefined, CAMPAIGN:new Array(),/* ウィル自社物件 & 新築物件 */
	mouseoffset:0,space:new Object(), up:new Object(), dn:new Object(),
set:function () {
	JSS.obj	= new OBJ('TRACKCONTENTS');
	JSS.space	= new OBJ('JSS_SPACE');
	JSS.bar	= new OBJ('JSS_BAR');
	JSS.up	= new OBJ('JSS_UP');
	JSS.dn	= new OBJ('JSS_DN');

if (JSS.bar.flag && JSS.obj.flag && JSS.obj.W > JSS.pageW ) { JSS.flag = true; }

if (JSS.flag) {
	JSS.barSize = (JSS.barSize) ? JSS.barSize : parseInt(JSS.pageW / (JSS.obj.W + JSS.objOffset)  * JSS.space.W);
	JSS.barSize = (JSS.barSize < 100) ? 100 : JSS.barSize;

	JSS.bar.setX(100 + JSS.barOffset);
	JSS.bar.setW(JSS.barSize);
	JSS.bar.setD(1);

	move.Set(JSS.obj, 0, JSS.objOffset);
	move.Set(JSS.bar, 0, JSS.barOffset);

	/* スクロール中の範囲選択を停止 */
	if ( document.getElementsByTagName('body')[0] )	{ 
		document.getElementsByTagName('body')[0].onmousedown	= function () { return !JSS.key; } 
		document.getElementsByTagName('body')[0].onmousemove	= function () { return !JSS.key; }
	}
	else if ( document.body )			{ 
		document.body.onmousedown				= function () { return !JSS.key; } 
		document.body.onmousemove				= function () { return !JSS.key; }
	}

	JSS.up.path.onclick	= function () { JSS.slide(4/5); JSS.key = false; return false; }
	JSS.dn.path.onclick	= function () { JSS.slide(-4/5); JSS.key = false; return false; }

/* ADD for wills.co.jp track */
	JSS.JSS_01	= new OBJ('JSS_01');
	JSS.JSS_02	= new OBJ('JSS_02');
	JSS.JSS_03	= new OBJ('JSS_03');
	JSS.JSS_BG01	= new OBJ('JSS_BG01');
	JSS.JSS_BG02	= new OBJ('JSS_BG02');
	JSS.JSS_BG03	= new OBJ('JSS_BG03');

	/* 各物件項目 */
	var tmp1, tmp2;

	/* マンション */
	JSS.items = new CLASS('JSS_01');
	JSS.JSS_01.path.onmousedown	= function () { JSS.on(); JSS.slide(); }
	JSS.JSS_01.setD(1);
	JSS.JSS_BG01.setD(1);

	/* 位置（一戸建て） */
	tmp1 = new CLASS('JSS_02');
	if (tmp1.length) { JSS.items = JSS.items.concat(tmp1); 
		tmp2 = parseInt((tmp1[0].path.offsetLeft - 1) / (JSS.obj.W - JSS.pageW) * (JSS.space.W - JSS.barSize)) + JSS.barOffset;
		if (tmp2 > (JSS.space.W - JSS.barSize + JSS.barOffset)) { tmp2 = JSS.space.W - JSS.barSize + JSS.barOffset; }
		JSS.JSS_02.setX(tmp2);
		JSS.JSS_BG02.setX(tmp2);
	JSS.JSS_02.path.onmousedown	= function () { JSS.on(); JSS.slide(); }
	JSS.JSS_02.setD(1);
	JSS.JSS_BG02.setD(1);
	}

	/* 位置（土地） */
	tmp1 = new CLASS('JSS_03');
	if (tmp1.length) { JSS.items = JSS.items.concat(tmp1);
		tmp2 = parseInt((tmp1[0].path.offsetLeft - 1) / (JSS.obj.W - JSS.pageW) * (JSS.space.W - JSS.barSize)) + JSS.barOffset;
		if (tmp2 > (JSS.space.W - JSS.barSize + JSS.barOffset)) { tmp2 = JSS.space.W - JSS.barSize + JSS.barOffset; }
		JSS.JSS_03.setX(tmp2);
		JSS.JSS_BG03.setX(tmp2);
	JSS.JSS_03.path.onmousedown	= function () { JSS.on(); JSS.slide(); }
	JSS.JSS_03.setD(1);
	JSS.JSS_BG03.setD(1);
	}
 



	/* 各物件の詳細表示処理 */
	for (i = 0; i < JSS.items.length; i ++) {
		eval('JSS.items[i].path.onmouseover = function() { if (JSS.flag) {  clearTimeout( JSS.timer); JSS.timer = setTimeout("JSS.view(' + ( i ) + ');", 128) }}'); 
		eval('JSS.items[i].path.onmouseout = function() {  if (JSS.flag) { clearTimeout( JSS.timer); JSS.timer = setTimeout("JSS.hide();", 512) }}'); 
	}

	if (winIE) { JSS.CAMPAIGN = new CLASS('CAMPAIGN'); for (i = 0; i < JSS.CAMPAIGN.length; i ++) { JSS.CAMPAIGN[i].setD(1); }}

/* ADD for wills.co.jp track */

}},
view:function () { if (JSS.flag) { if (arguments[0] != JSS.viewkey) { clearTimeout( JSS.timer);
	JSS.viewkey = arguments[0];
//	alert(JSS.viewkey * 150 + JSS.objX);
	if	(JSS.objX + JSS.viewkey * 150 + 150 > 450)	{ JSS.move(- JSS.viewkey * 150 + 300 - 150); }
	else if	(JSS.objX + JSS.viewkey * 150 + 150 > 300)	{ JSS.move(- JSS.viewkey * 150 + 300 - 150); }
	JSS.off ();
	
	for (i = 0; i < JSS.items.length; i ++) { 
		if (i == JSS.viewkey)	{ size.Set(JSS.items[JSS.viewkey].path.id, 120, 450, 2, 300); }
		else			{ size.Set(JSS.items[i].path.id, 120, 150, 2, 300); }
	}

//	alert(JSS.items[JSS.viewkey].path.innerText);
}}},
hide:function () { if (JSS.flag) { clearTimeout( JSS.timer); 
	JSS.viewkey = undefined;
	for (i = 0; i < JSS.items.length; i ++) { size.Set(JSS.items[i].path.id, 120, 150, 2, 300); }
}},
next:function () { if (JSS.flag) { if (!isNaN(JSS.viewkey)) { clearTimeout( JSS.timer);
	size.Set(JSS.items[(JSS.viewkey)].path.id, 120, 150, 2, 300);
	JSS.viewkey++;
	if (JSS.viewkey >= JSS.items.length) { JSS.viewkey = 0; }

	for (i = 0; i < JSS.items.length; i ++) { 
		if (i == JSS.viewkey)		{ size.Set(JSS.items[JSS.viewkey].path.id, 120, 450, 2, 300); }
		else if (JSS.items[i].W != 150)	{ size.Set(JSS.items[i].path.id, 120, 150, 2, 300); }
	}

	if (JSS.viewkey == 0 )	{ JSS.move(0); }
	else			{ JSS.move(JSS.objX - 150); }
}}},
previous:function () { if (JSS.flag) { if (!isNaN(JSS.viewkey)) { clearTimeout( JSS.timer);
	size.Set(JSS.items[(JSS.viewkey)].path.id, 120, 150, 2, 300);
	JSS.viewkey--;
	if (JSS.viewkey < 0) { JSS.viewkey = JSS.items.length - 1; }

	for (i = 0; i < JSS.items.length; i ++) { 
		if (i == JSS.viewkey)		{ size.Set(JSS.items[JSS.viewkey].path.id, 120, 450, 2, 300); }
		else if (JSS.items[i].W != 150)	{ size.Set(JSS.items[i].path.id, 120, 150, 2, 300); }
	}

	if (JSS.viewkey == 0 )	{ JSS.move(0); }
	else			{ JSS.move(JSS.objX + 150); }

	JSS.flag = false;
	setTimeout('JSS.flag = true;',512);
}}},
on:function () { JSS.key = true; JSS.mouseoffset = MX - JSS.barX;  return false; },
off:function () { JSS.key = false; },
move:function () { if (JSS.flag) {
	JSS.objX = (arguments[0]) ? arguments[0] : 0;

	if	(JSS.objX > 0 )			{ JSS.objX = 0; }
	else if	(JSS.objX < JSS.pageW - JSS.obj.W )	{ JSS.objX = JSS.pageW - JSS.obj.W; }

	JSS.barX = - parseInt(JSS.objX / (JSS.obj.W - JSS.pageW) * (JSS.space.W - JSS.barSize)) + JSS.barOffset;
	if	(JSS.barX < JSS.barOffset )		{ JSS.barX = JSS.barOffset; }
	else if	(JSS.barX > JSS.space.W - JSS.barSize )	{ JSS.barX = JSS.space.W - JSS.barSize + JSS.barOffset; }

	move.Set(JSS.obj, 0, JSS.objX, 2, 750);
	move.Set(JSS.bar, 0, JSS.barX, 2, 120);
}},
drag:function () { if (JSS.flag) {
	if (JSS.key) {
	JSS.barX = MX - JSS.mouseoffset;
	if	(JSS.barX < JSS.barOffset )		{ JSS.barX = JSS.barOffset; }
	else if	(JSS.barX > JSS.space.W - JSS.barSize )	{ JSS.barX = JSS.space.W - JSS.barSize + JSS.barOffset; }
	JSS.bar.setX(JSS.barX); move.Set(JSS.bar, 0, JSS.barX);
	JSS.objX = parseInt( - (JSS.obj.W - JSS.pageW) / (JSS.space.W - JSS.barSize) * (JSS.barX -  + JSS.barOffset));
	JSS.obj.setX(JSS.objX); move.Set(JSS.obj, 0, JSS.objX);
	}
}},
slide:function () { if (JSS.flag) { clearTimeout( JSS.timer);
	var tmp = 1;
	if (arguments[0])					{ tmp	= arguments[0]; }
	else if (MX - get_ANCHORpos('JSS_BAR')[0] > JSS.barSize)	{ tmp	= -4/5; }
	else if (MX - get_ANCHORpos('JSS_BAR')[0] < 0)		{ tmp	= 4/5; }
	else						{ tmp	= 0; }
	JSS.objX += parseInt(tmp * JSS.unitW);
	JSS.move(JSS.objX);
	JSS.on ();
	return false;
}},
jump:function () { if (JSS.flag) { clearTimeout( JSS.timer);
	var tmp = 0;
	if (arguments[0])	{ tmp = (!isNaN(get_ANCHORpos(arguments[0])[0])) ? get_ANCHORpos(arguments[0])[0] - get_ANCHORpos('JSS_SPACE')[0] : 0; }
	JSS.objX = parseInt( - (JSS.obj.W - JSS.pageW) / (JSS.space.W - JSS.barSize) * tmp);
	JSS.move(JSS.objX);
	JSS.key = false;
}},
wheel:function () { if (JSS.flag) { clearTimeout( JSS.timer);
	var tmp = (MW > 0) ? 1/5: -1/5;
	JSS.slide (tmp);
	JSS.key = false;
}}
}


function get_ANCHORpos () {
if (error) return false;
var AX = 0; var AY = 0;
if	(document.layers) { /*NN4.5*/
	if (document.anchors[(arguments[0])]) {
		AX = parseInt(document.anchors[(arguments[0])].x);
		AY = parseInt(document.anchors[(arguments[0])].y);
	} else { alert('base_js.get_ANCHORpos: "' + arguments[0] + '" is not Anchor.'); }
} else if	(document.all) { /*IE4.0*/
	var obj = new OBJ (arguments[0]);
	if (obj.flag) {
		AX = parseInt(obj.path.offsetLeft);
		AY = parseInt(obj.path.offsetTop);
		var tmp = obj.path;
		while ((tmp = tmp.offsetParent) != null) { AX += parseInt(tmp.offsetLeft); AY += parseInt(tmp.offsetTop); }
	} else { alert('base_js.get_ANCHORpos: "' + arguments[0] + '" is not Anchor.'); }
} else if	(document.getElementById) {
	if (document.getElementById(arguments[0])) {
		AX = parseInt(document.getElementById(arguments[0]).offsetLeft);
		AY = parseInt(document.getElementById(arguments[0]).offsetTop);
		var tmp = document.getElementById(arguments[0]);
		while ((tmp = tmp.offsetParent) != null) { AX += parseInt(tmp.offsetLeft); AY += parseInt(tmp.offsetTop); }
	} else { alert('base_js.get_ANCHORpos: "' + arguments[0] + '" is not Anchor.'); }
}
AX = (AX > 0) ? AX : 0; AY = (AY > 0) ? AY : 0;
return new Array(AX, AY);
}

