var MouseOnMessage = false; //Если мышка на окне с сообщением
var MessageVisible = false; //Сообщение на экране

//Проверка на щелчок мышкой. В основном, чтобы убрать сообщение
function CheckMouseKey( evt )
{
	if( MessageVisible  && !MouseOnMessage )
		HideMessage();
}

//Показать сообщение
function ShowMessage( img, label, text, top, left, error, quick )
{
	var message = $( 'Message' );

	if( !message )
	{
		alert( text );
		return;
	}
	
	//Формируем html
	var html = '';
	if( img )
		html += '<img src="' + img + '" align="absmiddle" />';
	if( label )
		html += '<strong>' + label + '</strong>';
	if( text )
		html += '<br>' + text;
	
	//Произошла ошибка - меняем цвет фона на красный
	if( error )
		message.style.backgroundColor = '#FAE2E2';
	else
		message.style.backgroundColor = '#FFFFFF'; //'#FFF7D7';
	
	message.innerHTML = html;

	message.style.visibility = 'hidden';
	message.style.display = 'block';

	//Положение окна на экране
	
	var coord = getPos();
	
	message.style.top = ( coord ) ? coord.y + coord.h / 2 - 50 : 400;
	message.style.left = ( coord ) ? coord.x + coord.w / 2 - message.offsetWidth / 2 : 400;
	
	var messagebg = $( 'MessageBg' );
	if( messagebg )
	{
		//messagebg.style.visibility = 'hidden';
		//messagebg.style.display = 'block';
		messagebg.style.top = message.style.top;
		messagebg.style.left = message.style.left;
		messagebg.style.width = message.offsetWidth;
		messagebg.style.height = message.offsetHeight;
		//messagebg.style.display = 'none';
		//messagebg.style.visibility = 'visible';
	}
	
	message.style.display = 'none';
	message.style.visibility = 'visible';

	MessageVisible = true;
	if( !quick )
	{
		if( messagebg ) new Effect.Appear( messagebg, {from: 0.0, to:0.85} );
		new Effect.Appear( message, {from: 0.0, to:1.00} );
	}
	else
	{
		if( messagebg ) new Effect.Appear( messagebg, {from: 0.0, to:0.85, duration: 0.0} );
		new Effect.Appear( message, {from: 0.0, to:1.00, duration: 0.0} );
	}
}

//Скрыть сообщение
function HideMessage()
{
	var messagebg = $( 'MessageBg' );
	var message = $( 'Message' );

	if( message )
	{
		MessageVisible = false;
		if( messagebg ) new Effect.Fade( messagebg, {from: 0.85, to:0.0} );
		new Effect.Fade( message, {from: 0.85, to:0.0} );
	}
}

function ShowError( text )
{	
	ShowMessage('img/failure.gif', ruError, //text,
	'<div style="width:400px">' + text + '</div>', 
	document.body.scrollTop + document.body.clientHeight/4, null, true);
}

function ShowWaitMsg( )
{
	ShowMessage('img/execute.gif', '</strong>'+ruWaitPlease+'<strong>', null, 
	document.body.scrollTop + document.body.clientHeight/4);
}

function getPos() 
{
	var rDiv = 0;
	var coords;
	
	for(var l = 0; l < document.getElementsByTagName("div").length; l ++) {
		if(document.getElementsByTagName("div")[l].className == "c_form")
			var rDiv = document.getElementsByTagName("div")[l];
	}
	
	if(rDiv) {
		coords = getAbsPosition(rDiv);
		coords.w = rDiv.clientWidth;
		coords.h = rDiv.clientHeight;
	}
	else
		coords = 0;	

	return coords;
}

function getAbsPosition(el)
{
	var SL = 0, ST = 0;
	var is_div = /^div$/i.test(el.tagName);
	if (is_div && el.scrollLeft)
		SL = el.scrollLeft;
	if (is_div && el.scrollTop)
		ST = el.scrollTop;
	var r = { x: el.offsetLeft - SL, y: el.offsetTop - ST };
	if (el.offsetParent) {
		var tmp = getAbsPosition(el.offsetParent);
		r.x += tmp.x;
		r.y += tmp.y;
	}
	return r;
}

