var clientPC = navigator.userAgent.toLowerCase();
var clientVer = parseInt(navigator.appVersion);
var is_ie = ((clientPC.indexOf("msie") != -1) && (clientPC.indexOf("opera") == -1));
var is_nav = ((clientPC.indexOf('mozilla')!=-1) && (clientPC.indexOf('spoofer')==-1)
                && (clientPC.indexOf('compatible') == -1) && (clientPC.indexOf('opera')==-1)
                && (clientPC.indexOf('webtv')==-1) && (clientPC.indexOf('hotjava')==-1));
var is_moz = 0;

var is_win = ((clientPC.indexOf("win")!=-1) || (clientPC.indexOf("16bit") != -1));
var is_mac = (clientPC.indexOf("mac")!=-1);



/**
 *
 */
var cfg_path_web;
var cfg_site_theme;




/**
 *
 */




/**
 *
 */
function putString(context, str){
	var m=document.getElementById(context);
	if(m){
		if(document.selection){
			m.focus();
			sel=document.selection.createRange();
			sel.text=str;
		}else if(m.selectionStart || m.selectionStart=="0"){
			var s=m.selectionStart;
			var e=m.selectionEnd;
			m.value=m.value.substring(0,s)+str+m.value.substring(e,m.value.length);
		}else{
			m.value += str;
		}
		m.focus();
	}
}




function putURL(context)
{
	if(url=prompt('Введите ссылку','http://'))
	{
		var m=document.getElementById(context);
		if(m){
			m.focus();
			if((clientVer >= 4) && is_ie && is_win)
			{
				sel = document.selection.createRange();
				if(sel.text!='') {
					sel.text = '<a href="'+url+'">'+sel.text+'</a>';
				}
				else {
					putString(context, '<a href="'+url+'">'+url+'</a>');
				}
			}
			else {
				mozWrap(m, '<a href="'+url+'">','</a>', url);
			}
			m.focus();
		}
	}
}

function putTag(context, tag)
{
	var m=document.getElementById(context);
	if(m){
		m.focus();
		if ((clientVer >= 4) && is_ie && is_win)
		{
			sel = document.selection.createRange();
			sel.text = '<'+tag+'>'+sel.text+'</'+tag+'>';
		}
		else {
			mozWrap(m, '<'+tag+'>', '</'+tag+'>');
		}
		m.focus();
	}
}


function putSmiles(context, tag)
{
	var m=document.getElementById(context);
	if(m){
		m.focus();
		if ((clientVer >= 4) && is_ie && is_win)
		{
			sel = document.selection.createRange();
		//	sel.text = '<'+tag+'>';
			sel.text = '<img src="'+cfg_path_web+'/themes/'+cfg_site_theme+'/images/smiles/'+tag+'.gif">';
			
		// sel.text = '<'+cfg_path_web+'>';	 
			
		}
		else {
			mozWrap(m, '<img src="'+cfg_path_web+'/themes/'+cfg_site_theme+'/images/smiles/'+tag+'.gif">', '', '');
		}
		m.focus();
	}
}


function mozWrap(txtarea, open, close, somevalue)
{
	var selLength = txtarea.textLength;
	var selStart = txtarea.selectionStart;
	var selEnd = txtarea.selectionEnd;
	if (selEnd == 1 || selEnd == 2) {
		selEnd = selLength;
	}

	var s1 = (txtarea.value).substring(0,selStart);
	var s2 = (txtarea.value).substring(selStart, selEnd)
	var s3 = (txtarea.value).substring(selEnd, selLength);
	if (s2!='') {
		txtarea.value = s1 + open + s2 + close + s3;
	}
	else {
		if(somevalue) txtarea.value = s1 + open + somevalue + close + s3;
	}
	return;
}



/**
 *
 */
function nlToBr(text) {
	return text.replace(/(\r\n)|(\n)/g, "<br>");
}



/**
 *
 */
function preview(area_id, text)
{
	jQuery('#'+area_id).html('<div style="width: 100%; padding-top: 10px">'+text+'</div>');
	jQuery('#'+area_id).slideToggle();
}

function closePreview(area_id) {
	jQuery('#'+area_id).slideToggle();
}



/**
 *
 */
function printMessages(aMessages)
{
	if (aMessages.length > 0)
	{
		var mess_ul = jQuery('<ul></ul>');
		
		
		for (var i = 0; i < aMessages.length; i++)
		{
			var message_title = '';
			if (aMessages[i].is_error)
			{
				if (aMessages[i].title) {
					message_title = aMessages[i].title;
				} else {
					message_title = 'Ошибка:';
				}
				var mess_span = jQuery('<span>' + message_title + ' </span>').addClass('red');
			} else {
				if (aMessages[i].title) {
					var mess_span = jQuery('<span>' + aMessages[i].title + ' </span>').addClass('green');
				} 
			}
			if (mess_span) {
				mess_span.appendTo(mess_li);
			}
			
			var mess_span = jQuery('<span>' + aMessages[i].text + '</span>');
			var mess_li = jQuery('<li></li>');
			
			mess_span.appendTo(mess_li);
			mess_li.appendTo(mess_ul);
			
		}
		jQuery("#system_messages").html('');
		mess_ul.appendTo("#system_messages");
		jQuery('#system_messages').css({display: 'block'});		
	}
}





function GetPageSize()
{
	var xScroll, yScroll;
	
	if (window.innerHeight && window.scrollMaxY)
	{
		xScroll = window.innerWidth + window.scrollMaxX;
		yScroll = window.innerHeight + window.scrollMaxY;
	}
	else if (document.body.scrollHeight > document.body.offsetHeight)
	{
		xScroll = document.body.scrollWidth;
		yScroll = document.body.scrollHeight;
	}
	else
	{
		xScroll = document.body.offsetWidth;
		yScroll = document.body.offsetHeight;
	}
	
	var windowWidth, windowHeight;
	
	if (self.innerHeight)
	{
		if(document.documentElement.clientWidth) {
			windowWidth = document.documentElement.clientWidth; 
		} else {
			windowWidth = self.innerWidth;
		}
		windowHeight = self.innerHeight;
	}
	else if (document.documentElement && document.documentElement.clientHeight)
	{
		windowWidth = document.documentElement.clientWidth;
		windowHeight = document.documentElement.clientHeight;
	}
	else if (document.body)
	{
		windowWidth = document.body.clientWidth;
		windowHeight = document.body.clientHeight;
	}
	
	if(yScroll < windowHeight) {
		pageHeight = windowHeight;
	} else { 
		pageHeight = yScroll;
	}
	
	if(xScroll < windowWidth) {
		pageWidth = xScroll;		
	} else {
		pageWidth = windowWidth;
	}
	
	arrayPageSize = new Array(pageWidth, pageHeight, windowWidth, windowHeight);
	
	return arrayPageSize;
}

function GetScrollSize()
{
	var xScroll, yScroll;
	
	if (self.pageYOffset)
	{
		yScroll = self.pageYOffset;
		xScroll = self.pageXOffset;
	}
	else if (document.documentElement && document.documentElement.scrollTop)
	{
		yScroll = document.documentElement.scrollTop;
		xScroll = document.documentElement.scrollLeft;
	}
	else if (document.body)
	{
		yScroll = document.body.scrollTop;
		xScroll = document.body.scrollLeft;	
	}
	
	arrayPageScroll = new Array(xScroll, yScroll);
	
	return arrayPageScroll;
};


/**
 * Popuper
 */
function ShowPopuper(sText)
{
	HidePopuper();
	if (typeof(sText) != 'object') {
		sText = jQuery('<div>' + sText + '</div>');
	} else {
		sText = sText.appendTo(jQuery('<div></div>'));
	}
	
	var aPageSize = GetPageSize();
	var aScrollSize = GetScrollSize();
	
	var FaderDIV = jQuery('<div id="fader"></div>')
	.css({
		opacity:	0.35,
		width:		aPageSize[0],
		height:		aPageSize[1]
	});
	
	FaderDIV.prependTo('body');
	FaderDIV.fadeIn(300);
	
	var PopuperDIV = jQuery('<div id="popuper"></div>');
	
	PopuperBgTABLE = jQuery('<table></table>').addClass('popuper-background');
	PopuperBgTr = jQuery('<tr></tr>');
	PopuperBgTd = jQuery('<td></td>');
	var PopuperCloserDIV = jQuery('<div id="popuper-closer">Закрыть</div>');
	PopuperCloserDIV.appendTo(PopuperBgTd);
	jQuery('<div id="popuper-indicator"><img src="'+cfg_path_web+'/themes/'+ cfg_site_theme +'/images/indicator.gif" border="0" alt="Загрузка данных"><div>').appendTo(PopuperBgTd);
	jQuery('<div id="popuper-content">' + sText.html() + '<div>').appendTo(PopuperBgTd);
	
	PopuperBgTd.appendTo(PopuperBgTr);
	PopuperBgTr.appendTo(PopuperBgTABLE);
	PopuperBgTABLE.appendTo(PopuperDIV);
	
	PopuperDIV.appendTo('body');
	
	CenterPopuper();
	
	jQuery('#fader').click(function() {
		HidePopuper();
	});
	jQuery('#popuper-closer').click(function() {
		HidePopuper();
	});
}
function HidePopuper()
{
	jQuery('#fader').fadeOut();
	jQuery('#popuper').remove();
}

function ShowIndicator(sText) {
	ShowPopuper(sText);
	jQuery('#popuper-indicator').css({display: 'block'});
}
function HideIndicator() {
	HidePopuper();
}

function CenterPopuper()
{
	var aPageSize	= GetPageSize();
	var aScrollSize	= GetScrollSize();
	
	PopuperDIV = jQuery('#popuper');
	
	var iTop = aScrollSize[1] + aPageSize[3] - aPageSize[3] / 2 - PopuperDIV.height() / 2;
	if (iTop < aScrollSize[1]) {
		iTop = aScrollSize[1] + 20;
	}
	
	var iLeft = (aPageSize[0] - PopuperDIV.width()) / 2;

	PopuperDIV.css({
		top:	iTop,
		left:	iLeft
	});
}


/**
 * System Messages
 */
function BuildMessagesList(aMessages)
{
	var messagesUL = false;
	
	if (aMessages.length > 0)
	{
		messagesUL = jQuery('<ul></ul>').addClass('system_messages');
		for (var i = 0; i < aMessages.length; i++)
		{
			var messageLI = jQuery('<li></li>');
			
			if (aMessages[i].is_error == 1)
			{
				if (aMessages[i].title) {
					var sTitle = aMessages[i].title + ' ';
				} else {
					var sTitle = 'Ошибка: ';
				}
				var titleSPAN = jQuery('<span></span>').html(sTitle).addClass('red');
				titleSPAN.appendTo(messageLI);
			}
			else
			{
				if (aMessages[i].title)
				{
					var titleSPAN = jQuery('<span></span>').html(aMessages[i].title + ' ').addClass('green');
					titleSPAN.appendTo(messageLI);
				}
			}
			
			var textSPAN = jQuery('<span></span>').html(aMessages[i].text);
			
			textSPAN.appendTo(messageLI);
			messageLI.appendTo(messagesUL);
		}
	}
	return messagesUL;
}

function ShowMessages(aMessages)
{
	if (aMessages.length && aMessages.length > 0)
	{
		jQuery('#popuper-content').html('');
		jQuery('#popuper-indicator').remove();
		
		messagesUl = BuildMessagesList(aMessages);
		
		if (messagesUl != false)
		{
			if (jQuery('#popuper').is('hidden')) {
				ShowPopuper();
			}
			addedUL = jQuery('#popuper-content ul.system_messages');
			if (addedUL.html() == null)
			{
				addedUL.remove();
				messagesUl.prependTo('#popuper-content');
			}
			else {
				addedUL.html(addedUL.html() + messagesUl.html());
			}
			
			CenterPopuper();
		}
	}
}

function PrintMessages(aMessages)
{
	if (aMessages.length && aMessages.length > 0)
	{
		messagesList = BuildMessagesList(aMessages);
		if (messagesList != false)
		{
			messagesUL = jQuery('#system_messages');
			messagesUL.html(messagesUL.html() + messagesList.html());
			
			if (messagesUL.is(':hidden')) {
				messagesUL.fadeIn();
			}
			
		}
	}
}

function ViewFeedbackForm()
{
	ShowPopuper(jQuery('#feedback_form').html());
}
