function getBodyScrollTop()
{
  return self.pageYOffset || (document.documentElement && document.documentElement.scrollTop) || (document.body && document.body.scrollTop);
}

function getBodyScrollLeft()
{
  return self.pageXOffset || (document.documentElement && document.documentElement.scrollLeft) || (document.body && document.body.scrollLeft);
}


function set_element_pos(cont,sX,sY)
{
	var container = document.getElementById(cont);
	if (container != null)
	{
		var posX = getBodyScrollLeft();
		var posY = getBodyScrollTop();
		
		container.style.left = posX + sX+'px';
		container.style.top = posY + sY+'px';
	}
}

function set_element_posm(cont,sX,sY)
{
	var container = document.getElementById(cont);
	if (container != null)
	{
		var posX = event.clientX+getBodyScrollLeft();
		var posY = event.clientY+getBodyScrollTop();
		
		container.style.left = posX + sX+'px';
		container.style.top = posY + sY+'px';
	}
}

var TScene = function ()
{
	this.scene_rules	= new Array();
}

TScene.prototype.add_scene_rule = function(action,state)
{
	if (this.scene_rules['ac_'+action]==null) this.scene_rules['ac_'+action] = new Array();
	return this.scene_rules['ac_'+action].push(state);
}

TScene.prototype.apply_scene = function(action)
{
	for (var i in this.scene_rules['ac_'+action])
	{
		var state = this.scene_rules['ac_'+action][i];
		if (state[0]!=null) var obj = document.getElementById(state[0]);
		if (state[1]!=null) var pid = document.getElementById(state[1]);
		
		if (obj!=null) 
		{
			if (state[3]!=null&&state[3]!="") obj.className = state[3];
			if (state[4]!=null) obj.style.display = state[4];
			if (pid!=null&&obj.parentNode.id!=state[1]) pid.appendChild(obj);
		}
		else if (pid!=null)
		{
			var obj = document.createElement(state[2]);
			obj.id = state[0];
			if (state[3]!=null&&state[3]!="") obj.className = state[3];
			if (state[4]!=null) obj.style.display = state[4];
			pid.appendChild(obj);
		}
	}
}

TScene.prototype.fill_scene = function(unit_name,managed,managed_by,scene_div,pid_div,buttons_div,work_div,qpanel)
{
	if (ScenesDefs[unit_name]!=null) eval(ScenesDefs[unit_name].join("\n"));
	else eval(ScenesDefs['default'].join("\n"));
}

function apply_scene(state)
{
	if (state[0]!=null) var obj = document.getElementById(state[0]);
	if (state[1]!=null) var pid = document.getElementById(state[1]);
	
	if (obj!=null) 
	{
		if (state[3]!=null&&state[3]!="") obj.className = state[3];
		if (state[4]!=null) obj.style.display = state[4];
		if (pid!=null&&obj.parentNode.id!=state[1]) pid.appendChild(obj);
	}
	else if (pid!=null)
	{
		var obj = document.createElement(state[2]);
		obj.id = state[0];
		if (state[3]!=null&&state[3]!="") obj.className = state[3];
		if (state[4]!=null) obj.style.display = state[4];
		pid.appendChild(obj);
	}
}


var ScenesDefs = new Array();
/****************************************По умолчанию******************************************************************/
ScenesDefs['default'] = new Array();
ScenesDefs['default'].push("if (managed=='') this.add_scene_rule('create',[pid_div+'_mng',scene_div,'div']);");
ScenesDefs['default'].push("this.add_scene_rule('create',[pid_div+'_address',scene_div,'div','address_class']);");
ScenesDefs['default'].push("if (managed=='') this.add_scene_rule('create',[pid_div+'_buttons',scene_div,'div','buttons_class']);");
ScenesDefs['default'].push("this.add_scene_rule('create',[pid_div,scene_div,'div','place_class']);");
ScenesDefs['default'].push("if (managed=='') this.add_scene_rule('create',[pid_div+'_lbd',buttons_div,'div','left_buttons_div']);");
ScenesDefs['default'].push("if (managed=='') this.add_scene_rule('create',[pid_div+'_cbd',buttons_div,'div','left_buttons_div']);");
ScenesDefs['default'].push("if (managed=='') this.add_scene_rule('create',[pid_div+'_rbd',buttons_div,'div','right_buttons_div']);");
ScenesDefs['default'].push("this.add_scene_rule('create',[work_div,pid_div,'div','work_div']);");
ScenesDefs['default'].push("this.add_scene_rule('browse',[pid_div+'_mng',null,null,null,'none']);");
ScenesDefs['default'].push("if (managed!='') this.add_scene_rule('browse',[scene_div,null,null,null,'none']);");