var timeInterval								= 1;
var timeIntervalMove						= 1;
var speedBeginX							= 100;
var speedBeginY							= 100;
var speedStopXdef							= 20;
var speedStopYdef							= 20;
var move										= false;
var oldRX1										= 0;
var oldRY1										= 0;

var percent = new Array();
percent["create-site-arrow"]			= 0;
percent["services-arrow"]				= 0;
percent["portfolio-arrow"]				= 0;
percent["about-company-arrow"]		= 0;

var timesID = new Array();

function setElementOpacity(sElemId, nOpacity)
{
	var opacityProp = getOpacityProperty();
	var elem = document.getElementById(sElemId);

	if (!elem || !opacityProp) return;

	if (opacityProp=="filter") 
	{
		nOpacity *= 100;

		var oAlpha = elem.filters['DXImageTransform.Microsoft.alpha'] || elem.filters.alpha;
		if (oAlpha) 
		{
			oAlpha.opacity = nOpacity;
		} else 
		{
			elem.style.filter += "progid:DXImageTransform.Microsoft.Alpha(opacity="+nOpacity+")";
		}
	} else 
	{
		elem.style[opacityProp] = nOpacity;
	}
}

function getOpacityProperty()
{
	if (typeof document.body.style.opacity == 'string') return 'opacity';
	else if (typeof document.body.style.MozOpacity == 'string') return 'MozOpacity';
	else if (typeof document.body.style.KhtmlOpacity == 'string') return 'KhtmlOpacity';
	else if (document.body.filters && navigator.appVersion.match(/MSIE ([\d.]+);/)[1]>=5.5) return 'filter';
	return false;
}

function vA(object)
{
	if (!move)
	{
		var obj = object+"-arrow";
		var link = object+"-header";
		var hint = object+"-hint";

		if (percent[obj] != 1)
		{
			percent[obj]+=0.05;
			setElementOpacity(obj, percent[obj]);
			setElementOpacity(link, percent[obj]);
			setElementOpacity(hint, percent[obj]*0.75);
			if ( percent[obj] < 1) 
			{
				 timesID[obj] = setTimeout("vA('"+object+"')", timeInterval);  
			} else
			{
				percent[obj]=1;
				setElementOpacity(obj, percent[obj]);
				setElementOpacity(link, percent[obj]);
				setElementOpacity(hint, percent[obj]*0.75);
				clearTimeout(timesID[obj]);
			}
		} 
	}
}

function hA(object)
{
	var obj = object+"-arrow";
	var link = object+"-header";
	var hint = object+"-hint";

	percent[obj]-=0.05;
	setElementOpacity(obj, percent[obj]);
	setElementOpacity(link, percent[obj]);
	setElementOpacity(hint, percent[obj]*0.75);
	if ( percent[obj] > 0) 
	{
		 timesID[obj] = setTimeout("hA('"+object+"')", timeInterval);  
	} else
	{
		percent[obj]=0;
		setElementOpacity(obj, percent[obj]);
		setElementOpacity(link, percent[obj]);
		setElementOpacity(hint, percent[obj]);
		clearTimeout(timesID[obj]);
	}
}

function hAll()
{
	if (percent["create-site-arrow"]>0) { hA('create-site-arrow'); }
	if (percent["services-arrow"]>0) { hA('services-arrow'); }
	if (percent["portfolio-arrow"]>0) { hA('portfolio-arrow'); }
	if (percent["about-company-arrow"]>0) { hA('about-company-arrow'); }
}
	
function goPage(object)
{
	if (!move)
	{
		setElementOpacity(object+"-arrow", 1);
		clearTimeout(timesID[object]);
		move = true;
		speedX = speedBeginX;
		speedY = speedBeginY;
		speedStopX = speedStopXdef;
		speedStopY = speedStopYdef;
		oldRX1	= Math.abs(curX-X[object]);
		oldRY1	= Math.abs(curY-Y[object]);

		curObj = object;

		getPage("menu", object, pages[object],0);
		getPage("text", object, pages[object],0);
		movePage(object);
	}
}

function movePage(object)
{
	var RX1		= curX-X[object];
	var RY1		= curY-Y[object];
	var mRX1	= Math.abs(RX1);
	var mRY1	= Math.abs(RY1);

	speedX++;
	speedY++;

	if ((oldRX1-mRX1>0 && oldRX1-mRX1<200)) { speedX=speedStopX; speedStopX+=5; }
	if ((oldRY1-mRY1>0 && oldRY1-mRY1<200)) { speedY=speedStopY; speedStopY+=5; }
	if ((mRX1>0 && mRX1<200)) { speedX=speedStopX; speedStopX--; }
	if ((mRY1>0 && mRY1<200)) { speedY=speedStopY; speedStopY--; }

	curX = (RX1>0) ? curX-speedX : curX+speedX;
	curY = (RY1>0) ? curY-speedY : curY+speedY;

	if (RY1>0 && curY<Y[object])		{ curY = Y[object]; }
	if (RY1<=0 && curY>Y[object])	{ curY = Y[object]; }
	if (RX1>0 && curX<X[object])		{ curX = X[object]; }
	if (RX1<=0 && curX>X[object])	{ curX = X[object]; }
	window.scrollTo(curX,curY);

	if (curX!=X[object] || curY!=Y[object])
	{
		timesID[object] = setTimeout("movePage('"+object+"')", timeIntervalMove);  
	} else
	{
		clearTimeout(timesID[object]);
		setTimeout("moveFalse()", 500);  
	}
}

function moveFalse()
{
	move = false;
}

function getClientWidth()
{
	return document.compatMode=='CSS1Compat' && !window.opera?document.documentElement.clientWidth:document.body.clientWidth;
}

function getClientHeight()
{
	return document.compatMode=='CSS1Compat' && !window.opera?document.documentElement.clientHeight:document.body.clientHeight;
}

function getXY()
{
	winX1	= getClientWidth();
	winY1	= getClientHeight();
	X1X2		= (winX1-winX2)/2;
	Y1Y2		= (winY1-winY2)/2;
	X1X3	 	= (winX1-winX3)/2;
	Y1Y3		= (winY1-winY3)/2;

	X["main"]					= winZ+winX1;
	Y["main"]					= winZ+winY1;
	X["create-site"]			= winZ+winX1;
	Y["create-site"]			= 0;
	X["portfolio"]				= winZ+winX1;
	Y["portfolio"]				= 2*(winZ+winY1);
	X["services"]				= 0;
	Y["services"]				= winZ+winY1;
	X["about-company"]	= 2*(winZ+winX1);
	Y["about-company"]	= winZ+winY1;

	document.getElementById("room").style.width						= 3*winX1+2*winZ;
	document.getElementById("room").style.height						= 3*winY1+2*winZ;
	document.getElementById("main").style.left							= X1X2+X["main"];
	document.getElementById("main").style.top							= Y1Y2+Y["main"];
	document.getElementById("create-site-page").style.left			= X1X3+X["create-site"];
	document.getElementById("create-site-page").style.top			= Y1Y3+Y["create-site"];
	document.getElementById("portfolio-page").style.left			= X1X3+X["portfolio"];
	document.getElementById("portfolio-page").style.top			= Y1Y3+Y["portfolio"];
	document.getElementById("services-page").style.left			= X1X3+X["services"];
	document.getElementById("services-page").style.top			= Y1Y3+Y["services"];
	document.getElementById("about-company-page").style.left	= X1X3+X["about-company"];
	document.getElementById("about-company-page").style.top	= Y1Y3+Y["about-company"];

	curX	= X[curObj];
	curY	= Y[curObj];

	window.scrollTo(curX,curY);
}

function str_replace(search, replace, subject) {
return subject.split(search).join(replace);
}


function getPage(page, object, id, start)
{
	var obj			= object+"-page-"+page;
	var header		= object+"-page-header";
	var script		= "/ajax/"+page+".php"
	var menu		= object+"-page-menu";

	if (id>0)
	{
		document.getElementById(obj).innerHTML = "Загрузка...";

		JsHttpRequest.query(script, 
		{
			'id'		: id,
			'object'	: object,
			'start'	: start
		},
		function(result, errors) 
		{ 
			if (result["title"] && result["title"] != "empty")
			{
				if (page=="menu")
				{
					curMenu = errors;
				} else
				{
					if (curMenu)
					{
						curMenu = str_replace("<b>","",curMenu);
						curMenu = str_replace("</b>","",curMenu);
						curMenu = str_replace(result["title"],"<b>"+result["title"]+"</b>",curMenu);
						document.getElementById(menu).innerHTML = curMenu;
					}

					document.getElementById(header).innerHTML = result["header"];
				}
				document.getElementById(obj).innerHTML = errors;
			} else
			{
				document.getElementById(obj).innerHTML = errors;
			}
		}
		);
	}
}


function showHint(ev, hint) 
{
	var mouseX = ev.clientX + document.body.scrollLeft;
	var mouseY = ev.clientY + document.body.scrollTop; 
	var obj = document.getElementById("hint");
	obj.style.top = mouseY + 10;
	obj.style.left = mouseX;
	obj.innerHTML = hint;
	obj.style.visibility = "visible";
}

function hideHint() 
{
	document.getElementById("hint").style.visibility="hidden";
}

function showImg(_this) 
{
	var obj	= document.getElementById("hint-img");
	var src	= str_replace("-small","",_this.src);
	obj.style.top = 142;
	obj.style.left = 96;
	obj.innerHTML = "<img alt='' class=big onmouseout='hideImg()' onclick='hideImg()' src='"+src+"'>";
	obj.style.visibility = "visible";
}

function hideImg() 
{
	document.getElementById("hint-img").style.visibility="hidden";
}
