var mGidRecipient = 0;
var mGidRecipientName = '';
var mGidOpened = false;
var mGidTimer = null;
var mGidPage = 0;
var mGidLastID = 0;
var mGidUpdateProcess = 0;

function setGidElementOpacity(sElemId, nOpacity)
{
	var opacityProp = getGidOpacityProperty();
	var elem = document.getElementById(sElemId);

	if (!elem || !opacityProp) return;
    
	if (opacityProp=="filter")
	{
		nOpacity *= 100;
	
		var oAlpha = elem.filters['DXImageTransform.Microsoft.alpha'] || elem.filters.alpha;
		if (oAlpha)
			oAlpha.opacity = nOpacity;
		else
			elem.style.filter += "progid:DXImageTransform.Microsoft.Alpha(opacity="+nOpacity+")";
	}
	else
		elem.style[opacityProp] = nOpacity;
}

function getGidOpacityProperty()
{
	if (typeof document.body.style.opacity == 'string') // CSS3 compliant (Moz 1.7+, Safari 1.2+, Opera 9, IE7)
		return 'opacity';
	else
	if (typeof document.body.style.MozOpacity == 'string') // Mozilla 1.6 и младше, Firefox 0.8 
		return 'MozOpacity';
	else
	if (typeof document.body.style.KhtmlOpacity == 'string') // Konqueror 3.1, Safari 1.1
		return 'KhtmlOpacity';
	else
	if (document.body.filters && navigator.appVersion.match(/MSIE ([\d.]+);/)[1]>=5.5) // Internet Exploder 5.5+
		return 'filter';

	return false;
}

var gidFL = getCookie('firstlogin');
var gidPage = getCookie('pagenum');

function checkFirstLogin()
{
    if (gidFL > 0 && ((gidFL < Math.round(new Date().getTime() / 1000) - 120) || (-(-gidPage) > 5)))
    {
        return true;
    }
    return false;
}

function showGidInvite()
{
	var blackBack = document.getElementById('blackBack');
	var gidInvite = document.getElementById('gidInvite');
	blackBack.style.display = 'block';
	blackBack.style.visibility = 'visible';
	blackBack.style.height = '1px';
	blackBack.style.width = '1px';
	blackBack.style.left = '0';
	blackBack.style.top = '0';
	var bodyHeight = document.body.offsetHeight;
	if (bodyHeight < document.documentElement.offsetHeight)
	{
		bodyHeight = document.documentElement.offsetHeight;
	}
	if (bodyHeight < document.documentElement.clientHeight)
	{
		bodyHeight = document.documentElement.clientHeight;
	}
	if (bodyHeight < document.body.offsetHeight)
	{
		bodyHeight = document.body.offsetHeight;
	}
	if (bodyHeight < document.body.clientHeight)
	{
		bodyHeight = document.body.clientHeight;
	}
	if (bodyHeight < document.documentElement.scrollHeight)
	{
		bodyHeight = document.documentElement.scrollHeight;
	}
	if (bodyHeight < document.body.scrollHeight)
	{
		bodyHeight = document.body.scrollHeight;
	}
	blackBack.style.height = bodyHeight + 'px';
	blackBack.style.width = document.documentElement.clientWidth + 'px';
    blackBack.style.visibility = 'visible';
    blackBack.style.display = 'block';
    gidInvite.style.visibility = 'visible';
    gidInvite.style.display = 'block';
	setGidElementOpacity('blackBack',0.8);
}

function gidCloseInv()
{
    var blackBack = document.getElementById('blackBack');
	var gidInvite = document.getElementById('gidInvite');
    blackBack.style.visibility = 'hidden';
    blackBack.style.display = 'none';
    gidInvite.style.visibility = 'hidden';
    gidInvite.style.display = 'none';
    cancelGidQuery();
}

function getCookie(name) {
	var cookie = " " + document.cookie;
	var search = " " + name + "=";
	var setStr = null;
	var offset = 0;
	var end = 0;
	if (cookie.length > 0) {
		offset = cookie.indexOf(search);
		if (offset != -1) {
			offset += search.length;
			end = cookie.indexOf(";", offset)
			if (end == -1) {
				end = cookie.length;
			}
			setStr = unescape(cookie.substring(offset, end));
		}
	}
	return(setStr);
}

function startGid(recipient, recipientName)
{
	mGidRecipient = recipient;
	mGidRecipientName = recipientName;
	mGidOpened = true;
	getStartGidMessages();
	mGidTimer = setInterval(onGidMessagesTimer, 3000);
}

function stopGid()
{
	mGidRecipient = 0;
	mGidOpened = false;
	clearIntervel(mGidTimer);
}

function onGidMessagesTimer()
{
	updateGidMessages();
}

function getStartGidMessages()
{
	mGidUpdateProcess = true;
	
	$.ajax({
		url: '?ajax=query&module=20&func=GetStartMessages&params='+mGidRecipient,
		dataType : "json",
		cache: false,
		success: function (data) {
			fillGidMessages(data);
		},
		error: function () {
			mGidUpdateProcess = false;
		}
	});
}

function updateGidMessages()
{
	if (mGidUpdateProcess) return;
	mGidUpdateProcess = true;
	$.ajax({
		url: '?ajax=query&module=20&func=GetNewMessages&params='+mGidRecipient+'|'+mGidLastID,
		dataType : "json",
		cache: false,
		success: function (data) {
			fillGidMessages(data);
		},
		error: function () {
			mGidUpdateProcess = false;
		}
	});
}

function cancelGidQuery()
{
	if (mGidUpdateProcess) return;
	mGidUpdateProcess = true;
	$.ajax({
		url: '?ajax=query&module=20&func=CancelGid',
		dataType : "json",
		cache: false,
		success: function (data) {
			
		},
		error: function () {
			
		}
	});
}

function fillGidMessages(data)
{
	mGidUpdateProcess = false;
	var newMessages = '';
	$.each(data.messages, 
		function (i, message){
			if (i == 0)
			{
                if (mGidLastID != message.id && message.own == 0)
                {
                    gidBlinkTitle();
                }
				mGidLastID = message.id;
			}
			newMessages = '<div class="message'+message.own+'"><div><span class="time">'+message.time+'</span> <span class="name">'+message.name+'</span></div>'+message.message+'</div>' + newMessages;
		}
	);
	
	$('#mHistory').append(newMessages);
	
	var scrollHeight = document.getElementById('mHistory').scrollHeight;
	var scrollTop = document.getElementById('mHistory').scrollTop;
	$('#mHistory').animate({scrollTop: scrollHeight});
}

var gidTitleInterval = null;

function gidBlinkTitle()
{
    document.body.onclick = function ()
    {
        stopBlinkTitle();
    }
    if (gidTitleInterval != null) return;
    gidTitleInterval = setInterval(gidChangeTitle, 1000);
}

function gidChangeTitle()
{
    if (document.title != '***** У Вас новое сообщение! *****')
    {
        document.title = '***** У Вас новое сообщение! *****';
    }
    else
    {
        document.title = '******************************';
    }
}

function stopBlinkTitle()
{
    clearInterval(gidTitleInterval);
    gidTitleInterval = null;
    document.title = 'Сообщения';
}

function sendGidMessage()
{
	var message = $('#messagebox').val();
	$('#messagebox').val('');
	$.ajax({
		type: "POST",
		url: "?ajax=query&module=20&func=SendMessage",
		data: "m="+encodeURIComponent(message)+"&r="+mGidRecipient,
		success: function(msg){
			if (msg != 'ok')
				alert(msg);
			else
			{
				updateGidMessages();
			}
		}
	});
}

function ctrlGidEnter(e)
{
	e = e || window.event;
    stopBlinkTitle();
	if ((e.keyCode == 0xA)||(e.keyCode == 0xD))
	{
		if (e.preventDefault)
			e.preventDefault();
		else
			e.returnValue = false;
	}
	return /*(e.ctrlKey) && */((e.keyCode == 0xA)||(e.keyCode == 0xD));
}


