var rect=new Object();
rect.checkPosition=function(x,y,screenWidth,screenHeight){
	var xobj=null;
	if(this.x.min+x<0){
		xobj=new Object();
		xobj.x=-rect.x.min;
	}
	if(screenWidth-this.x.max-x<0){
		if(!xobj) xobj=new Object()
		xobj.x=screenWidth-rect.x.max;
	}
	if(this.y.min+y<0){
		if(!xobj) xobj=new Object();
		xobj.y=new Object();
		xobj.y.direction="up";
	}
	if(screenHeight-this.y.max-y<0){
		if(!xobj) xobj=new Object();
		if(!xobj.y){
			xobj.y=new Object();
			xobj.y.direction="down";
		} else xobj.y.direction="both";
	}
	return xobj;
}
rect.x=new Object();
rect.y=new Object();

function show(){
	this.className="showed";
}
function hide(){
	this.className="hidden";
}

function init(){
/*
	var build=document.getElementsByTagName("div");
	var k=0;
	for(var i=0;build[i];i++){
		if(build[i].className=="build"){
			link=document.createElement("a");
			img=document.createElement("img");
			img.src="i/build_"+(k+1)+".gif";
			link.appendChild(img);
			link.href="/";
			build[i].appendChild(link);
			build[i].style.position="absolute";
			var parent=build[i].parentNode;
			var pw=parent.offsetWidth;
			var ph=parent.offsetHeight-100;
			var x=pw/2+pw/10*(Math.random()*10-5);
			var y=ph/2+ph/10*(Math.random()*10-5);
			while(x+img.offsetWidth>pw)x-=img.offsetWidth;
			if(!rect.x.min || rect.x.min>x) rect.x.min=x;
			if(!rect.x.max || rect.x.max<x+img.offsetWidth) rect.x.max=x+img.offsetWidth;
			if(!rect.y.min || rect.y.min>y) rect.y.min=y;
			if(!rect.y.max || rect.y.max<y+img.offsetHeight) rect.y.max=y+img.offsetHeight;
			build[i].style.left=x;
			build[i].style.top=y;
			k++;
		}
	}
	//document.getElementById("game-area").style.width=document.body.clientWidth-206;
	*/
}

var startDrag=false;
var lastPositionX=0;
var lastPositionY=0;
var cPositionX=0;
var cPositionY=0;

function startDragContent(element,xevent){
	//alert('here');
	//window.title="here";
	if(startDrag) return;
	startDrag=true;
	var mevent=window.event?window.event:xevent;
	lastPositionX=mevent.clientX;
	lastPositionY=mevent.clientY;
}

function dragContent(element,xevent){
	if(!startDrag) return;
	var mevent=window.event?window.event:xevent;
	cPositionX+=mevent.clientX-lastPositionX;
	cPositionY+=mevent.clientY-lastPositionY;
	lastPositionX=mevent.clientX;
	lastPositionY=mevent.clientY;
	
	var xrect=rect.checkPosition(cPositionX,cPositionY,element.offsetWidth,element.offsetHeight);
	if(xrect){
		if(xrect.x) cPositionX=xrect.x;
		if(xrect.y) showArrow(xrect.y); 
	} else hideArrows(new function(){this.direction="both";});
		element.parentNode.style.backgroundPosition=cPositionX+"px "+cPositionY+"px";
		element.parentNode.style.backgroundPositionY=cPositionY;
		element.getElementsByTagName("div")[0].style.top=cPositionY;
		element.getElementsByTagName("div")[0].style.left=cPositionX;
	return false;
}

function print(value){
	document.getElementById("printer").innerHTML+=value+"<br>";
}

document.onmouseup=function(xevent){
	startDrag=false;
}

function showArrow(axis){

}

function hideArrows(axis){

}

function drawMe(element){
	if( element.runtimeStyle && element.src.match( /\.png$/ ) ){
		element.runtimeStyle.filter
			= 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src='
			+ element.src
			+ ', sizingMethod=scale)';
		element.src = 'http://img.brokenworlds.com/i/i-blank.gif';
	}
}

function closeMenu(element){
	var xel=element.parentNode.parentNode.parentNode;
	var nodes=xel.getElementsByTagName("div");
	nodes[1].style.display="none";
	element.parentNode.style.display="none";
	nodes[2].style.top="-25px";
	nodes[2].getElementsByTagName("div")[2].style.display="block";
}

function openMenu(element){
	var xel=element.parentNode.parentNode.parentNode;
	var nodes=xel.getElementsByTagName("div");
	nodes[1].style.display="block";
	element.parentNode.style.display="none";
	nodes[2].style.top="-44px";
	nodes[2].getElementsByTagName("div")[0].style.display="block";
}

var _get=false;
var tm=null;
var tm_spos;
var tm_epos;
var tm_object;
var tm_ci;
var tm_dimension="%";
var tm_step=5;

var areaMenu=document.getElementById("area-menu");

if (areaMenu)
{
	var area_menu_minimum=60;
	var area_menu_maximum=areaMenu.offsetHeight;
	var area_menu_currentHeight=80;
}

function switchAreaMenu(element){
	var am=document.getElementById("area-menu");
	var p1=area_menu_minimum;
	var p2=area_menu_maximum;
	tm_object=am;
	tm_dimension="px";
	tm_step=10;
	if(!am.style.height || am.offsetHeight==p2){//Закрываем
		tm_spos=p2;
		tm_epos=p1;
		tm_ci=0;
		tm=window.setInterval("positioner()",1);
		element.childNodes[0].src="http://img.brokenworlds.com/i/b-area-menu-opener.png";
		area_menu_currentHeight=area_menu_minimum;
	} else {//Открываем
		tm_spos=p1;
		tm_epos=p2;
		tm_ci=0;
		tm=window.setInterval("positioner()",1);
		element.childNodes[0].src="http://img.brokenworlds.com/i/b-area-menu-closer.gif";
		area_menu_currentHeight=area_menu_maximum;
	}
	oInt=null;
}

function positioner(){
	increa=(tm_epos-tm_spos>0?1:-1)*tm_step;
	if(Math.abs(tm_ci)<=Math.abs(tm_epos-tm_spos)){
		tm_object.style.height=(tm_spos+tm_ci)+tm_dimension;
		tm_ci+=increa;
	} else {
		tm_object.style.height=tm_epos+tm_dimension;
		window.clearInterval(tm);
	}

}

var chatOpen=true;
function switchChat(){
	var chat=document.getElementById("chat");
	var gameArea=document.getElementById("game-mesh");
	var arrowDown=document.getElementById("arrowDown");
	var areaMenu=document.getElementById("area-menu");
	var areaContent=document.getElementById("area-menu-content");
	var mimimum_for_menu=2;
	if(chatOpen){
		chat.style.display="none";
		gameArea.style.height="100%";
		arrowDown.style.bottom="0%";

		areaMenu.style.height=(areaMenu.offsetHeight-30)+"px";
		area_menu_maximum-=30;
		area_menu_minimum-=30;
		areaMenu.style.bottom="0px";

		chatOpen=false;
	} else {
		chat.style.display="block";
		gameArea.style.height="60%";
		arrowDown.style.bottom="40%";

		areaMenu.style.height=(areaMenu.offsetHeight+30)+"px";
		area_menu_maximum+=30;
		area_menu_minimum+=30;
		areaMenu.style.bottom="40%";
		chatOpen=true;
	}

	var xrect=rect.checkPosition(cPositionX,cPositionY,gameArea.offsetWidth,gameArea.offsetHeight);
	if(xrect && xrect.y) showArrow(xrect.y); else hideArrows(new function(){this.direction="both";});
}
