var folder="./images/map/"; // ���� �� ����������� � ����������
	var curOpacity=-1;
var dragMaster = (function() {
	var dragObject;
	var mouseOffset;
	var current;
	var currentvis;
	var leftIndent=481; // ������ ������ ����� �� ������ ���� �������� ��������
	var xDelta=1370;   // ������� ����� �������� ����� �� X � �������� ���� 
	var yDelta=805;   // ������� ����� �������� ����� �� Y � �������� ����
	var xMenuD=137;  // ������ ������������ ���� �� X
	var xMenu=164;  // ������ ������������ ���� �� X
	var xVis=400;  // �������� �������� ������� ���� �� X
	var yVis=177; // �������� �������� ������� ���� �� Y
	var yMenu=91;// ������ ������������ ���� �� Y
	var curXmenu=-1;
	var curYmenu=-1;
	var vistext= {l:6,t:17,w:154,h:50};
	window.setTimeout("cache();", 5);
	function mouseUp(){
		document.body.style.cursor = 'move';
		dragObject = null;
		document.onmousemove = mouseMv;
		document.onmouseup = null;
		document.ondragstart = null;
		document.body.onselectstart = null;
	}
	function mousemove(e){
		e = fixEvent(e);
		with(dragObject.style) {
		var XX=parseInt(marginLeft) + e.pX - mouseOffset.pX;
		var YY=parseInt(marginTop) + e.pY - mouseOffset.pY;
		if(XX>0) XX=0;
		if(YY>0) YY=0;
		if(XX<-xDelta) XX=-xDelta;
		if(YY<-yDelta) YY=-yDelta;
			marginTop = YY + 'px';
			marginLeft = XX + 'px';
			mouseOffset=e;
		}
		return false
	}
	function mouseDown(e) {
		e = fixEvent(e);
		if (e.which!=1) return;
		if(e.pX<leftIndent) return;
		var nmap=document.getElementById('imenu');
		if(curYmenu>-1)
		{
			if(e.pX-leftIndent>curXmenu+vistext.l&&e.pX-leftIndent<curXmenu+vistext.l+vistext.w&&e.pY>curYmenu+vistext.t&&e.pY<curYmenu+vistext.t+vistext.h)
				window.location = massive[currentvis].u;
			else
				curYmenu=-1;
		}
		if(current>-1)
		{
			if(currentvis==current)
			{
				currentvis=-1;
				nmap.style.visibility='hidden';
				return false;
			}
			currentvis=current;
			curXmenu=e.pX-leftIndent;
			curYmenu=e.pY;
			var dY=5;
			if(curXmenu<xVis)
			{
					if(curYmenu<yVis)
					{
						dY=16;
						curXmenu-=xMenu-xMenuD;
						curOpacity=10;
					}
					else
					{
						curXmenu-=xMenu-xMenuD;
						curYmenu-=yMenu;
						curOpacity=30;
					}
			}
			else
			{
					if(curYmenu<yVis)
					{
						dY=16;
						curXmenu-=xMenuD;
						curOpacity=20;
					}
					else
					{
						curXmenu-=xMenuD;
						curYmenu-=yMenu;
						curOpacity=40;
					}
			}
                        nmap.style.visibility='hidden';			
                        nmap.style.top=curYmenu+'px';
			nmap.style.left=curXmenu+'px';
			with(document.getElementById('menutext'))
			{
			innerHTML=massive[current].t;
			dY+=(yMenu-massive[current].s-23)/2;
			style.height=massive[current].s+'px';
			vistext.t=parseInt(dY);
			vistext.h=massive[current].s;
			style.top=vistext.t+'px';
			}
			document.getElementById('pmenu').src=folder+'menu'+curOpacity+'.png';
			current=-1;
			window.setTimeout("opacity(0);", 50);
		}
		else
		{
		curOpacity=-1;
		currentvis=-1;
		curYmenu=-1;
		nmap.style.visibility='hidden';
		dragObject = document.getElementById('pict');
		document.body.style.cursor = 'crosshair';
		mouseOffset=e;
		document.onmousemove = mousemove;
		document.onmouseup = mouseUp;
		document.ondragstart = function() { return false; }
		document.body.onselectstart = function() { return false; }
		}
		return false
	}
		function mouseOver(e) {
		current=-1;
		document.onmousemove=mouseMv;
		return false;
		}
		function mouseMv(e)
		{
		e = fixEvent(e);
		if(e.pX<leftIndent) { 
		document.body.style.cursor = 'auto';
		return;
		}
		var map= document.getElementById('pict');
		var XX=e.pX - parseInt(map.style.marginLeft) - leftIndent;
		var YY=e.pY - parseInt(map.style.marginTop);
		if(curYmenu>-1)
		{
			var px=e.pX-leftIndent;
			if(px>curXmenu&&px<curXmenu+xMenu&&e.pY>curYmenu&&e.pY<curYmenu+yMenu)
			{
				if(px>curXmenu+vistext.l&&px<curXmenu+vistext.l+vistext.w&&e.pY>curYmenu+vistext.t&&e.pY<curYmenu+vistext.t+vistext.h)
					document.body.style.cursor = 'pointer';
					else
					document.body.style.cursor = 'move';
			return false;
			}
		}
		if(current>-1)
			if(XX>massive[current].x&&XX<(massive[current].x+massive[current].w)&&YY>massive[current].y&&YY<(massive[current].y+massive[current].h))
				return false;
		for(var i in massive)
			if(XX>massive[i].x&&XX<(massive[i].x+massive[i].w))		
				if(YY>massive[i].y&&YY<(massive[i].y+massive[i].h))
				{
					current=i;
					document.getElementById('upc').src=folder+massive[i].p;
					XX=massive[i].x+parseInt(map.style.marginLeft);
					YY=massive[i].y+parseInt(map.style.marginTop);
					var icon = document.getElementById('icon');
					icon.style.top=YY+'px';
					icon.style.left=XX+'px';
					overm(icon);
					return false;
				}
			if(current>-1)
			{
				outm(document.getElementById('icon'));
				current=-1;
			}
			document.body.style.cursor = 'move';
			return false;
	}
			function mouseOut(e) {
			document.body.style.cursor = 'auto';
			document.onmousemove=null;
		}
	function outm(e)
	{
		e.style.visibility='hidden';
		document.body.style.cursor = 'move';
	}
	function overm(e)
	{
		e.style.visibility='visible';
		document.body.style.cursor = 'pointer';
	}
		function mouseOut(e) {
		document.body.style.cursor = 'auto';
		document.onmousemove = null;
		return false
	}
	return {
		makeDraggable: function(element){
			element.onmousedown = mouseDown;
			element.onmouseover = mouseOver;
			element.onmouseout = mouseOut;
		}
	}
}())
function fixEvent(e) {
	e = e || window.event;
	var body = document.body;
	if ( e.pageX == null && e.clientX != null ) {
		var html = document.documentElement;
		e.pageX = e.clientX + (html && html.scrollLeft || body && body.scrollLeft || 0) - (html.clientLeft || 0);
		e.pageY = e.clientY + (html && html.scrollTop || body && body.scrollTop || 0) - (html.clientTop || 0);
	}
	if (!e.which && e.button) {
		e.which = e.button & 1 ? 1 : ( e.button & 2 ? 3 : ( e.button & 4 ? 2 : 0 ) );
	}
	var gen=document.getElementById('general');
	e.pX=e.pageX-gen.offsetLeft;
	e.pY=e.pageY-gen.offsetTop;
	return e;
}
function cache() {
	for(var i in massive)
		document.getElementById('cache').innerHTML+='<img src="'+ folder + massive[i].p + '">';
	for(var i=1;i<5;i++)
	{
		document.getElementById('cache').innerHTML+='<img src="'+ folder + 'menu' + i + '.png">';	
		for(var j=0;j<6;j++)
		{
		document.getElementById('cache').innerHTML+='<img src="'+ folder + 'menu' + i;
		document.getElementById('cache').innerHTML+=j + '.png">';
		}
	}
}
function opacity(a) {
	if(curOpacity>-1)
	{
                if(a==0)
                {
                       document.getElementById('imenu').style.visibility='visible';
                       window.setTimeout("opacity(1);", 50);
                }
                else
                {
		if(a<6)
		{
			curOpacity++;
			a++;
			document.getElementById('pmenu').src=folder+'menu'+curOpacity+'.png';
			window.setTimeout("opacity("+a+");", 50);
		}
		else
		{
			curOpacity=parseInt((curOpacity-a+1)/10);
			document.getElementById('pmenu').src=folder+'menu'+curOpacity+'.png';
			curOpacity=-1;
		}
                }
	}
}
