var menuSwitcher;


function AmoveContentTo(x,y)
{
	var mainContainer = $('MainContainer');
	var middlePic = $('plakat05');
	var x1 = middlePic.offsetLeft + middlePic.offsetWidth/2;
	var x2 = getWindowSize()[0]/2;
	
	var y1 = middlePic.offsetTop + (middlePic.offsetHeight/2);
	var y2 = getWindowSize()[1]/2;
	
	var tweenType = Math.easeInQuint;
	
	var xTween = new Tween(mainContainer,'left',tweenType,parseInt(mainContainer.style.left) ? parseInt(mainContainer.style.left) : 0,Math.round(x2-x1),20);
	var yTween = new Tween(mainContainer,'top',tweenType,parseInt(mainContainer.style.top) ? parseInt(mainContainer.style.top) : 0,Math.round(y2-y1),20);
	
}

function concentrateOn(img)
{
	var mainContainer = $('MainContainer');
	var menuContainer = $('Menu');
//	var img = $(imgId);
//	var img = this;
	var x1 = img.offsetLeft + img.offsetWidth/2;
	var x2 = getWindowSize()[0]/2;
	
	var y1 = img.offsetTop + (img.offsetHeight/2);
	var y2 = getWindowSize()[1]/2 + menuContainer.offsetHeight/2 + (parseInt(menuContainer.style.top) ? parseInt(menuContainer.style.top) : 0);
	
	var tweenType = Math.easeOutBounce;
	
	var xTween = new Tween(mainContainer,'left',tweenType,parseInt(mainContainer.style.left) ? parseInt(mainContainer.style.left) : 0,Math.round(x2-x1),70);
	var yTween = new Tween(mainContainer,'top',tweenType,parseInt(mainContainer.style.top) ? parseInt(mainContainer.style.top) : 0,Math.round(y2-y1),70);
}

function initImages()
{
	var mainContainer = $('MainContainer');
	var aImages = mainContainer.getElementsByTagName('img');
	for (var i = 0; i < aImages.length; i++)
	{
		if (!isOpera)
		{
			//aImages[i].style.width = Math.round((aImages[i].offsetWidth/mainContainer.offsetWidth)*100)/1 + '%';
			//aImages[i].style.height = Math.round((aImages[i].offsetHeight/mainContainer.offsetHeight)*100)/1 + '%';
		}
		//aImages[i].onclick = concentrateOn;
	}
	window.menuSwitcher = $('MenuSwitcherContainer');
}

var bDrag=false;
var bZoomed = true;
var oDragElem;
var oOffset={};

function StartDrag(evt){
	if (!bZoomed)
		return false;
	if((evt=checkEvent(evt))){
		bDrag=true;
		var oDelta={x: evt.clientX, y: evt.clientY};
		oDragElem=$('MainContainer');
		var oPos=getAbsolutePos(oDragElem);
		oOffset={x: oPos.x - oDelta.x, y: oPos.y - oDelta.y};
		return CancelEvent(evt);
	}
	return false;
}

function DoDrag(evt){
	if(bDrag && bZoomed && (evt=checkEvent(evt))){
		oDragElem.style.left=(evt.clientX + oOffset.x)+'px';
		oDragElem.style.top=(evt.clientY + oOffset.y)+'px';
	}
}

function StopDrag(){
	bDrag=false;
}



/**
menu
**/

var menuWidth = null;
var menuState = 1;
var menuOffset = isMSIE ? 200 : 190;

function showMenu()
{
	var menuContainer = $('MenuContainer');
	
	var tweenType = Math.easeOutQuint;
	var menuTween = new Tween(menuContainer,'width',tweenType,menuContainer.offsetWidth,menuWidth,15,'px');
	var menuSwitcher = $('MenuSwitcherContainer');
	menuSwitcher.onclick = hideMenu;
	menuTween.onMotionFinished = function()
	{
		var aArrows = menuSwitcher.getElementsByTagName('img');
		for (var i = 0; i < aArrows.length; i++)
		{
			if (aArrows[i].src.match(/left/i))
			{
				removeClass(aArrows[i],'hidden');
			}
			else
			{
				addClass(aArrows[i],'hidden');
			}
		}
		if (window.oCanvas && oCanvas.oNavigator)
		{
			oCanvas.oNavigator.onResize();
		}
		menuState = 1;
	}
}
function hideMenu()
{
	var menuContainer = $('MenuContainer');
	var tweenType = Math.easeInQuint;
	var menuTween = new Tween(menuContainer,'width',tweenType,menuWidth,36,15,'px');
	var menuSwitcher = $('MenuSwitcherContainer');
	menuSwitcher.onclick = showMenu;
	menuTween.onMotionFinished = function()
	{
		var aArrows = menuSwitcher.getElementsByTagName('img');
		for (var i = 0; i < aArrows.length; i++)
		{
			if (aArrows[i].src.match(/right/i))
			{
				removeClass(aArrows[i],'hidden');
				if (isOpera)
					menuSwitcher.innerHTML += '';
			}
			else
			{
				addClass(aArrows[i],'hidden');
			}
		}
		if (window.oCanvas && oCanvas.oNavigator)
		{
			oCanvas.oNavigator.onResize();
		}
		menuState = 0;
	}
}

document.ondragstart=function(){return false;}


function debug(str,add)
{
	if ($('DebugDiv'))
		$('DebugDiv').innerHTML = add ? $('DebugDiv').innerHTML + str : str;
}

var aWindowSize = getWindowSize();
var menuWidth;
window.onresize = function ()
{
	aWindowSize = getWindowSize();
	if (window.oCanvas)
	{
		oCanvas.onResize();
	}
	menuWidth = aWindowSize[0] - menuOffset;
	if (menuState == 1)
		$('MenuContainer').style.width = menuWidth + 'px';
}
window.onload = function ()
{
	aWindowSize = getWindowSize();
	menuWidth = aWindowSize[0] - menuOffset;
	if (menuState == 1)
	{
		$('MenuContainer').style.width = menuWidth + 'px';
	}
	fOnLoad();
}

function fOnLoad(){
}

function zoom(target)
{
	if (oCanvas){
		oCanvas.doZoom(target);
		var oZoomSwitcher = $('ZoomSwitcher');
		if(oZoomSwitcher){
			if(oCanvas._cZoom == 1){
				oZoomSwitcher.innerHTML = 'Посмотреть вблизи';
			} else {
				oZoomSwitcher.innerHTML = 'Посмотреть издалека';
			}
		}	
		
	}
}

function zoomTo(ev)
{
	if (!window.oCanvas || oCanvas._zoomed)
		return false;
	if (ev = checkEvent(ev))
	{
		var oHeader = $(ev.target.id.replace(/-toplink$/i,''));
		var aCoord = getAbsolutePos(oHeader);
		ev.clientX = aCoord[0];
		ev.clientY = aCoord[1];
		zoom(ev);
	}
}


function getRel(start,end,position)
{
	return (position - start)/(end-start);
}


function Restrictions(minX, maxX, minY, maxY)
{
	return {minX:minX, maxX:maxX, minY:minY, maxY:maxY};
}

function hasParentWithId(oNode,pId)
{
	while(oNode)
	{
		if (oNode.id == pId)
			return true;
		oNode = oNode.parentNode;
	}
	return false;
}

var currentThumb = 1;

function hoverObject(ev)
{	
	
	ev = checkEvent(ev);
	if (ev.target)
	{
		addClass(ev.target,'hovered');
		if (isOpera)
			document.getElementsByTagName('body')[0].className += ' ';
	}
}
function unhoverObject(ev)
{
	ev = checkEvent(ev);
	if (ev.target)
	{
		removeClass(ev.target,'hovered');
		if (isOpera)
			document.getElementsByTagName('body')[0].className += ' ';
	}
}


function switchThumb(dir)
{
	// dir = f | b
	var newThumb = (dir == 'f' ? (currentThumb == ThumbCount ? 1 : currentThumb + 1) : (currentThumb == 1 ? ThumbCount : currentThumb - 1));
	
	addClass($('thumb_' + currentThumb),'hidden');
	addClass($('thumbCaption_' + currentThumb),'hidden');
	
	removeClass($('thumb_' + newThumb),'hidden');
	removeClass($('thumbCaption_' + newThumb),'hidden');
	
	currentThumb = newThumb;
	
}


function str_pad(str,pad_len,pad_str,pad_type)
{
	//pad_type = 'left' | 'right'
	var newStr = '';
	if (String(str).length < pad_len)
	{
		if (pad_type == 'left')
		{
			newStr = str_repeat(pad_str,pad_len - String(str).length) + str;
		}
		else
		{
			newStr = str + str_repeat(pad_str,pad_len - String(str).length);
		}
	}
	else
	{
		newStr = str;
	}
	return newStr;
}

function str_repeat(str,len)
{
	var newStr = '';
	var iRCount = len/str.length;
	for (var i = 0; i < iRCount; i++){newStr+=str;}
	iRCount = len - newStr.length;
	newStr += str.substr(0,iRCount);
	return newStr;
}

var  m = document.uniqueID /*IE*/
        && document.compatMode  /*>=IE6*/
        && !window.XMLHttpRequest /*<=IE6*/
        && document.execCommand ;

        try{
                if(!!m){
                        m("BackgroundImageCache", false, true) /* = IE6 only */
                }

        }catch(oh){};
		
		
		
function toggleRoadWayText (tId)
{
	if (!$('roadSwitchers') || !$('roadTexts'))
		return false;
		
	var aSwitchers = $('roadSwitchers').getElementsByTagName('span');
	var aTexts = $('roadTexts').getElementsByTagName('p');
	
	var re = null;
	for (var i = 0; i < aSwitchers.length; i++)
	{
		re = new RegExp('^' + tId);
		if (matchClass(aSwitchers[i],'switcher'))
		{
			if (aSwitchers[i].id.match(re))
				addClass(aSwitchers[i],'selected');
			else
				removeClass(aSwitchers[i],'selected');
		}
		if (matchClass(aTexts[i],'roadWayText'))
		{
			if (aTexts[i].id.match(re))
				addClass(aTexts[i],'selected');
			else
				removeClass(aTexts[i],'selected');
		}
	}
}


var isRoadWayShown = false;

var roadWayTween = null;
function toggleRoadWay(preSet)
{

	if (roadWayTween || siteMapTween)
		return false;
	
	if (preSet === 0)
		isRoadWayShown = false;
	if (preSet === 1)
		isRoadWayShown = true;
	
	if (isSiteMapShown)
	{
		toggleSiteMap();
	}
	
	if (!isRoadWayShown)
	{
		roadWayTween = new Tween($('ContactsContainer'),'left',Math.easeInSine,'-50','50',10,'%');
	}
	else
	{
		roadWayTween = new Tween($('ContactsContainer'),'left',Math.easeOutSine,'50','-100',10,'%');
	}
	roadWayTween.onMotionFinished = function ()
	{
		isRoadWayShown = !isRoadWayShown;
		roadWayTween = null;
	}
		
}

var isSiteMapShown = false;
var siteMapTween = null;
function toggleSiteMap(preSet)
{

	if (siteMapTween || roadWayTween)
		return false;
	
	if (preSet === 0)
		isSiteMapShown = false;
	if (preSet === 1)
		isSiteMapShown = true;
	
	if (isRoadWayShown)
	{
		toggleRoadWay();
	}
	
	if (!isSiteMapShown)
	{
		$('SiteMapContainer').style.display = 'block';
		siteMapTween = new Tween($('SiteMap'),'left',Math.easeInSine,'150','50',10,'%');
	}
	else
	{
		
		siteMapTween = new Tween($('SiteMap'),'left',Math.easeOutSine,'50','150',10,'%');
	}
	siteMapTween.onMotionFinished = function ()
	{
		isSiteMapShown = !isSiteMapShown;
		if (!isSiteMapShown)
		{
			$('SiteMapContainer').style.display = 'none';
		}
		siteMapTween = null;
	}
		
}
