// ZSite widget library -- keyboard focus routines
// (c) Zagorodnikov Anton 2007-2009

var focuselement = null;

function zsite_focus_gain(id)
{
	focuselement = id;

	var textboxfix = 0;

	if((dojo.byId(id).className == "zsite_textbox")||(dojo.byId(id).className == "zsite_textbox_rollon"))
		textboxfix = 2;

	//calculate needed width and height
	//also calculate position
	dojo.byId('zsite_widget_focus_table1').style.top = (dojo._abs(dojo.byId(id), true).y - 2) + "px";
	dojo.byId('zsite_widget_focus_table1').style.left = (dojo._abs(dojo.byId(id), true).x - 2 + 0) + "px";
	dojo.byId('zsite_widget_focus_table1').style.width = (dojo._getMarginBox(dojo.byId(id)).w - 4 + 6 + 1)+1 + "px";

	dojo.byId('zsite_widget_focus_table2').style.top = (dojo._abs(dojo.byId(id), true).y - 1 - 2 + dojo._getMarginBox(dojo.byId(id)).h) +1 - textboxfix + "px";
	dojo.byId('zsite_widget_focus_table2').style.left = (dojo._abs(dojo.byId(id), true).x - 2 + 0) + "px";
	dojo.byId('zsite_widget_focus_table2').style.width = (dojo._getMarginBox(dojo.byId(id)).w - 4 + 6 + 1)+1 + "px";

	dojo.byId('zsite_widget_focus_div1').style.top = (dojo._abs(dojo.byId(id), true).y - 2 + 4) + "px";
	dojo.byId('zsite_widget_focus_div1').style.left = (dojo._abs(dojo.byId(id), true).x - 2 + 0) + "px";
	dojo.byId('zsite_widget_focus_div1').style.height = (dojo._getMarginBox(dojo.byId(id)).h - 4 - 1)+1 -textboxfix + "px";
                                                                                                    
	dojo.byId('zsite_widget_focus_div2').style.top = (dojo._abs(dojo.byId(id), true).y - 2 + 4) + "px";
	dojo.byId('zsite_widget_focus_div2').style.left = (dojo._abs(dojo.byId(id), true).x - 2 + 1 + dojo._getMarginBox(dojo.byId(id)).w) +1 + "px";
	dojo.byId('zsite_widget_focus_div2').style.height = (dojo._getMarginBox(dojo.byId(id)).h - 4 - 1)+1 -textboxfix + "px";

	dojo.byId('zsite_widget_focus_container').style.visibility='visible';

	//theese may change?
	dojo._setOpacity(dojo.byId('zsite_widget_focus_container'), 0);

	dojo.fadeIn({node:'zsite_widget_focus_container', duration: 400}).play();
	//keep it a bit transparent to be clickable-through
	setTimeout(function() { dojo._setOpacity(dojo.byId('zsite_widget_focus_container'), 50); }, 400);
}

function zsite_focus_show()
{
	if(focuselement != null)
	{
		var id = focuselement;

		var textboxfix = 0;

		if((dojo.byId(id).className == "zsite_textbox")||(dojo.byId(id).className == "zsite_textbox_rollon"))
			textboxfix = 2;

		//calculate needed width and height
		//also calculate position
		dojo.byId('zsite_widget_focus_table1').style.top = (dojo._abs(dojo.byId(id), true).y - 2) + "px";
		dojo.byId('zsite_widget_focus_table1').style.left = (dojo._abs(dojo.byId(id), true).x - 2 + 0) + "px";
		dojo.byId('zsite_widget_focus_table1').style.width = (dojo._getMarginBox(dojo.byId(id)).w - 4 + 6 + 1)+1 + "px";

		dojo.byId('zsite_widget_focus_table2').style.top = (dojo._abs(dojo.byId(id), true).y - 1 - 2 + dojo._getMarginBox(dojo.byId(id)).h) +1 -textboxfix+ "px";
		dojo.byId('zsite_widget_focus_table2').style.left = (dojo._abs(dojo.byId(id), true).x - 2 + 0) + "px";
		dojo.byId('zsite_widget_focus_table2').style.width = (dojo._getMarginBox(dojo.byId(id)).w - 4 + 6 + 1)+1 + "px";

		dojo.byId('zsite_widget_focus_div1').style.top = (dojo._abs(dojo.byId(id), true).y - 2 + 4) + "px";
		dojo.byId('zsite_widget_focus_div1').style.left = (dojo._abs(dojo.byId(id), true).x - 2 + 0) + "px";
		dojo.byId('zsite_widget_focus_div1').style.height = (dojo._getMarginBox(dojo.byId(id)).h - 4 - 1)+1 -textboxfix+ "px";
                                                                                                    
		dojo.byId('zsite_widget_focus_div2').style.top = (dojo._abs(dojo.byId(id), true).y - 2 + 4) + "px";
		dojo.byId('zsite_widget_focus_div2').style.left = (dojo._abs(dojo.byId(id), true).x - 2 + 1 + dojo._getMarginBox(dojo.byId(id)).w) +1 + "px";
		dojo.byId('zsite_widget_focus_div2').style.height = (dojo._getMarginBox(dojo.byId(id)).h - 4 - 1)+1 -textboxfix+ "px";



		dojo.byId('zsite_widget_focus_container').style.visibility='visible';

		//theese may change?
		dojo._setOpacity(dojo.byId('zsite_widget_focus_container'), 0);

		dojo.fadeIn({node:'zsite_widget_focus_container', duration: 400}).play();
		//keep it a bit transparent to be clickable-through
		setTimeout(function() { dojo._setOpacity(dojo.byId('zsite_widget_focus_container'), 50); }, 400);
	}
}

function zsite_focus_move()
{
	if(focuselement != null)
	{
		var id = focuselement;

		var textboxfix = 0;

		if((dojo.byId(id).className == "zsite_textbox")||(dojo.byId(id).className == "zsite_textbox_rollon"))
			textboxfix = 2;

		//calculate needed width and height
		//also calculate position
		dojo.byId('zsite_widget_focus_table1').style.top = (dojo._abs(dojo.byId(id), true).y - 2) + "px";
		dojo.byId('zsite_widget_focus_table1').style.left = (dojo._abs(dojo.byId(id), true).x - 2 + 0) + "px";
		dojo.byId('zsite_widget_focus_table1').style.width = (dojo._getMarginBox(dojo.byId(id)).w - 4 + 6 + 1)+1 + "px";

		dojo.byId('zsite_widget_focus_table2').style.top = (dojo._abs(dojo.byId(id), true).y - 1 - 2 + dojo._getMarginBox(dojo.byId(id)).h) +1 -textboxfix+ "px";
		dojo.byId('zsite_widget_focus_table2').style.left = (dojo._abs(dojo.byId(id), true).x - 2 + 0) + "px";
		dojo.byId('zsite_widget_focus_table2').style.width = (dojo._getMarginBox(dojo.byId(id)).w - 4 + 6 + 1)+1 + "px";

		dojo.byId('zsite_widget_focus_div1').style.top = (dojo._abs(dojo.byId(id), true).y - 2 + 4) + "px";
		dojo.byId('zsite_widget_focus_div1').style.left = (dojo._abs(dojo.byId(id), true).x - 2 + 0) + "px";
		dojo.byId('zsite_widget_focus_div1').style.height = (dojo._getMarginBox(dojo.byId(id)).h - 4 - 1) +1 -textboxfix+ "px";
                                                                                                    
		dojo.byId('zsite_widget_focus_div2').style.top = (dojo._abs(dojo.byId(id), true).y - 2 + 4) + "px";
		dojo.byId('zsite_widget_focus_div2').style.left = (dojo._abs(dojo.byId(id), true).x - 2 + 1 + dojo._getMarginBox(dojo.byId(id)).w) +1 + "px";
		dojo.byId('zsite_widget_focus_div2').style.height = (dojo._getMarginBox(dojo.byId(id)).h - 4 - 1) +1 -textboxfix+ "px";
	}
}

function zsite_focus_lose()
{
	//focuselement = null;

	dojo.byId('zsite_widget_focus_container').style.visibility = 'hidden';

	dojo.byId('zsite_widget_focus_container').style.top = '0px';

	//theese may change?
	dojo._setOpacity(dojo.byId('zsite_widget_focus_container'), 100);

	dojo.fadeOut({node:'zsite_widget_focus_container', duration: 400}).play();

	setTimeout("dojo.byId('zsite_widget_focus_container').style.top = '0px'; dojo.byId('zsite_widget_focus_container').style.left = '0px';", 400);
}

