var int;
var title = document.title;
var diskuto = 0;
var mesaghejo = false;
var ajaximg;
var lastaaliro = '';
var unuavoko = 1;
var aktivigo = 0;
var nelegitaj = -1;
var legmes = '/img/mes.png';
var nelegmes = '/img/umes.gif';
var validtempo = 30000;
var lastavoko = 0;
var uzantojenrete = 0;
var malaktiva = 0;
var malaktiva_max = 8;
var aktivindikilo;
var ghisdatigtempo = 300;
var uzanto = 0;
var uzantopagho = 0;
var flashsonludigilo;
var sono = false;
var vezikovivo = 30;
var ensalutintoj;
var unika;

$(document).ready(function() {
    $('a').tooltip({
        showURL: false,
        track: true,
        delay: 0
    });

    $('.tooltip').tooltip({
        showURL: false,
        track: true,
        delay: 0
    });

    $("a[href^='http']").each(function (i) {
        $(this).attr('target','_blank');
        $(this).addClass('external');
    });
    
    $("a.ajax_send").fancybox({ 'hideOnContentClick': false, 'autoDimensions' : false, 'autoScale' : false, 'width' : 750, 'height' : 500, 'scrolling' : 'none', 'centerOnScroll': false });
    $("a#login_ligilo").fancybox({ 'hideOnContentClick': false, 'autoDimensions' : false, 'autoScale' : false, 'width' : 500, 'height' : 400, 'scrolling' : 'none', 'centerOnScroll': false });

    $('.mesaghejo_lanchilo').live('mouseover', function() {
        $(this).fancybox({ 'hideOnContentClick': false, 'autoDimensions' : false, 'autoScale' : false, 'scrolling' : 'none', 'width' : 750, 'height' : 500, 'centerOnScroll': false, 'onComplete': function() { mesaghejo = true; clearTitle(); }, 'onClosed': function() { diskuto = 0; mesaghejo = false; } });
        return false;
    });

    $('.x2eo').x2eo().Watermark('Uzu x-sistemon...');
    $("form").live("submit", function(){ $.Watermark.HideAll(); });  
    ajaximg = '/img/ajax-loader.gif';
    $.AjaxifyDefaults.loading_txt = 'Atendu...';
    $.AjaxifyDefaults.loading_img = ajaximg;
    $.jGrowl.defaults.closerTemplate = '<div>[fermi ĉion]</div>';
    $.jGrowl.defaults.position = 'bottom-right';
    $.jGrowl.defaults.life = vezikovivo*1000;
    addAdv();
});

function riceviFlashSonludigilon(flashnomo) {
    if (window.document[flashnomo]) {
        return window.document[flashnomo];
    }
    if (navigator.appName.indexOf("Microsoft Internet") == -1) {
        if (document.embeds && document.embeds[flashnomo]) return document.embeds[flashnomo];
    } else {
        return document.getElementById(flashnomo);
    }
}

function fariSonon(num) {
    if (!sono) return;
    if (uzanto > 0) {
        if (!flashsonludigilo) flashsonludigilo = riceviFlashSonludigilon("sonigilo");
        flashsonludigilo.SetVariable("/:sonnombro", num);
    }
}

function shaltiSonon(k) {
    var but = $('#sonbutono');
    but.removeClass("shaltita");
    but.removeClass("malshaltita");    
    if (k) {
        but.addClass("shaltita");
        $.cookie("edukado_sono", "1", { expires: 365, path: "/"  });
        sono = true;
    } else {
        but.addClass("malshaltita");
        $.cookie("edukado_sono", null);
        sono = false;
    }
}

function lancxiAktivIndikilon() {
    aktivindikilo=self.setInterval(function() {malaktiva = malaktiva+1;}, (ghisdatigtempo*1000));
}

function ensaluti(href) {
    if (href !== undefined && href != '#' && href.indexOf("javascript") != 0 && href.indexOf("/ext") != 0) {
        $("a#login_ligilo").attr("href", "/ext/ensaluti?pagho=ensaluti&reen=" + escape(strim(href, '/')));
    }
    $("a#login_ligilo").trigger('click');
}

function shlosuLigilojn() {
    $("a.sxlosita, input.sxlosita").each(function (i) {
        var decor = $(this).css('text-decoration');
        if (decor !== undefined && decor == 'underline') $(this).addClass("internal");
        this.onclick = function() {
            var href = $(this).attr("href");
            ensaluti(href);
            return false;
        }
    });
}

function random() {
    return randomnumber=Math.floor(Math.random()*20000)+1000;
}

function lanchiGhisdatigon() {
    lancxiAktivIndikilon();
    malaktiva = 0;
    $("#main").mouseover(function() {
        clearTimeout(aktivindikilo); lancxiAktivIndikilon(); malaktiva = 0;
    });
    if ($("#sonbutono").hasClass("shaltita")) {
        sono = true;
    }
    if (!window.name) window.name = uniqid();
    unika = window.name;
    if (!unika) uniqid();
    ghisdatigo();
    int=self.setInterval("ghisdatigo()",3000);
}

function fromJSON(data) {
    return $.secureEvalJSON(data);
}

function indikiMesaghoNombron(num) {
    var html = '';
    html += '<img src="' + (num > 0 ? nelegmes : legmes) + '" alt="" class="newmes_icon" /> ';
    html += '<small><a id="mesaghejo_lanchilo" class="mesaghejo_lanchilo" href="/ext/mesaghoj">' + num + (num == 1 ? ' mesaĝo' : ' mesaĝoj') + '</a></small>';
    $('#top_mes_icon').html(html);
    $(".ajax_mes").text(num);
}

function lanchiMesaghilon(el) {
    $(el).fancybox({ 'hideOnContentClick': false, 'autoDimensions' : false, 'autoScale' : false, 'scrolling' : 'none', 'width' : 750, 'height' : 500, 'centerOnScroll': false, 'onComplete': function() { mesaghejo = true; clearTitle(); }, 'onClosed': function() { diskuto = 0; mesaghejo = false; } });
}

function prilaboriGhisdatigon(data) {
    if (data == null) return;
    if (data.lastavoko != lastavoko) return;
    lastavoko = 0;
    if (data.lastaaliro) lastaaliro = data.lastaaliro;

    if (data.atentigi && mesaghejo == false) {
        changeTitle('['+data.nelegitaj+']');
        if (data.lastapartnero && data.uzantoinfo) {
            if (data.uzantoinfo[data.lastapartnero]) {
                var html = '';
                if (data.uzantoinfo[data.lastapartnero].foto) {
                    html += '<div class="imgLeft"><img src="/upload/uzantoj/.thumbs3/' + data.uzantoinfo[data.lastapartnero].foto + '" alt="" /></div>';
                } else {
                    html += '<div class="imgLeft"><img src="/img/nofoto3.png" alt="" /></div>';
                }
                html += 'Mesaĝo de <a href="/uzanto?id='+ data.lastapartnero +'">' + data.uzantoinfo[data.lastapartnero].salutnomo + '</a><br />';
                html += '<a class="mesaghejo_lanchilo" href="/ext/mesaghoj?id=' + data.lastapartnero + '">Vidi ĝin</a>';
                $.jGrowl('<div class="clearfix">' + html + '</div>', { life: vezikovivo*1000 });
            } else {
                $.jGrowl('Vi havas nelegitajn mesaĝojn.');
            }
        } else {
            $.jGrowl('Vi havas nelegitajn mesaĝojn.'); 
        }
        fariSonon(3);
    }

    if (data.nelegitaj != 'undefined') {
        if (nelegitaj != data.nelegitaj) {
			nelegitaj = data.nelegitaj;
            indikiMesaghoNombron(data.nelegitaj);
        }
    }
    if (data.uzantojenrete != 'undefined') {
        if (uzantojenrete != data.uzantojenrete) {
			uzantojenrete = data.uzantojenrete;
            $(".ajax_enretajuzantoj").text(data.uzantojenrete);
        }
    }
    if (data.diskutoj != 'undefined' && mesaghejo == true) {
        prilaboriDiskutojn(data.diskutoj);
    }
    
    if (data.uzantostatoshangho) {
        enmetiUzantoStaton(data);
    }
}

function sendi(url, data, callback) {
    $.post(url, data, callback, "json");
}

function ghisdatigo() {
    if (malaktiva > malaktiva_max) {
        unuavoko = 1;
        return;
    }
    var laste = (new Date().getTime());
    if (lastavoko == 0 || laste > lastavoko + validtempo) {
        lastavoko = laste;
        if (malaktiva) {
            var obj = {lastaaliro: lastaaliro, unuavoko: unuavoko, unika: unika}
        } else {
            var obj = {lastaaliro: lastaaliro, aktivigi: 1, unuavoko: unuavoko, unika: unika}
        }
        sendi("/ext/ghisdatigo?lastavoko=" + lastavoko, obj, prilaboriGhisdatigon);
        if (unuavoko) unuavoko = 0;
    }
}

function changeTitle(text) {
    document.title = text + ' ' + title;
}

function clearTitle() {
    document.title = title;
}

function installTabs() {
    $(".tabs li").each(function (i) {
        this.onclick = function() {
            $(".tabs li").each(function () {
                $(this).removeClass('active');
                $(this.id).hide();
            });
            $(this).addClass('active');
            $(this.id).show();
        }
    });
}

function toggle() {
    if ($('#login-addinfo').is(":hidden")) {
        $('#login-addinfo').slideDown("fast");
        $('#loginarrow').addClass('bot');
    } else {
        $('#login-addinfo').slideUp("fast");
        $('#loginarrow').removeClass('bot');
    }
}

function flag(id) {
    var code = $('#'+id).val().toLowerCase();
    var celo = id + '_flag';
    enmetiFlagon(id, code, celo);
}

function enmetiFlagon(id, code, celo) {
    if (code == "") {
        $('#'+ id + '_flag').css('background-position', '0 0');
        $('#'+ id + '_flag').hide();
    } else {
        $('#'+ id + '_flag').show();
        var x = (code.toUpperCase().charCodeAt(0) - 65) * 16;
        var y = (code.toUpperCase().charCodeAt(1) - 65) * 11;
        $('#'+ celo).css('background-position', '-'+ x + 'px '+ '-' + y + 'px');
    }
}

function strim(s, t) {
	var l=0; var r=s.length -1;
	while(l < s.length && s[l] == t) {	l++; }
	while(r > l && s[r] == t) {	r-=1;	}
	return s.substring(l, r+1);
}

function trim(stringToTrim) {
	return stringToTrim.replace(/^\s+|\s+$/g,"");
}

function ltrim(stringToTrim) {
	return stringToTrim.replace(/^\s+/,"");
}

function rtrim(stringToTrim) {
	return stringToTrim.replace(/\s+$/,"");
}

function addAdv() {
    var iframe = $('<iframe id="reklamo" scrolling="no" height="60" style="left: 0; position: absolute; top: 0;" frameborder="0" width="468" vspace="0" src="/ext/reklamo" name="" marginwidth="0" marginheight="0" hspace="0" allowtransparency="true"></iframe>');
    $('#adv').html(iframe);
}

function unloadAction(d) {
    window.onbeforeunload = function(e) {
        if (d != null) return d;
    }
}

function setUnloadMessage(q, a) {
    $(q).bind("change", function(e){
        $(q).unbind("change");
        unloadAction(a);
    });
}

function iksigi(el) {
    $(el).x2eo().Watermark('Uzu x-sistemon...');
}

function mesaghoSharghilo(dd) {
    if (!dd) $('#messages_loader').hide();
    else $('#messages_loader').show();
}

function konfirmiSendon(obj) {}

function forigiMesaghon(num) {
    mesaghoSharghilo(true);
	$('#message_' + num).css("border-color", "red");
	sendi("/ext/mesaghoj?ago=forigiMesaghon", { num: num }, function(obj) {
		if (obj.num) {
			$('#message_' + obj.num).slideUp("slow", function() {$(this).remove(); mesaghoSharghilo(false); })
		}
	});
}

function forigiDiskuton(num) {
    mesaghoSharghilo(true);
	$('#messages_chat_' + num).css("border-color", "red");
	sendi("/ext/mesaghoj?ago=forigiDiskuton", { num: num }, function(obj) {
		if (obj.num) {
			$('#messages_chat_' + obj.num).slideUp("slow", function() {
                $(this).remove();
                if (obj.num == diskuto) {
                    $("#messages_user_messages_main").html('<p id="messages_nomessages" class="messages_nochats"><small>Maldesktre vi vidas la liston de personoj al kiuj vi jam sendis mesaĝon. Elektu tie laŭdezire al kiu vi volas denove mesaĝi.<br />Se en la listo mankas la persono, kiun vi volas kontakti, vizitu la profilon de tiu uzanto kaj sendu mesaĝon al li de tie.<br />Uzantojn vi povas serĉi en <a href="/komunumo/uzantoj">tiu ĉi paĝo</a>.</small></p>');
                    $('#messages_partner').html('');
                    if ($('.messages_user_box').length > 0) {
                    } else {
                        if ($('#messages_nochats').length) {
                            $('#messages_nochats').show();
                        } else {
                            $('#messages_userlist').html('<p id="messages_nochats" class="messages_nochats"><small>Vi ne havas diskutojn.</small></p>');
                        }
                    }
                    mesaghoSharghilo(false);
                }
			})
		}
	});
}

function sendiMesaghon(diskuto) {
    var mes = $('#messages_textarea_' + diskuto).val();
    if (mes != 'Uzu x-sistemon...' && mes.length > 0) {
        mesaghoSharghilo(true);
        $('#messages_textarea_' + diskuto).val('');
        $('#messages_textarea_' + diskuto).Watermark('Uzu x-sistemon...');
        $('#messages_textarea_' + diskuto).attr("disabled", true);
		$('#messages_sendlink_' + diskuto).attr("disabled", true);
        $('#messages_textarea_' + diskuto).css("color", "#ccc");
        sendi("/ext/mesaghoj?ago=aldoni", { mesagho: mes, diskuto: diskuto}, konfirmiSendon);
    }
}

function aldoniMesaghon(obj) {
    if ($('#messages_meslist_' + obj.diskuto).length) {
    	var mes = $(obj.mesagho);
    	mes.hide();
    	$('#messages_meslist_' + obj.diskuto).append(mes);
    	mes.slideDown("slow", function() {$("#messages_user_messages_box").animate({ scrollTop: $("#messages_user_messages_box").attr("scrollHeight") }, 200);});
        $("#messages_user_messages_box").animate({ scrollTop: $("#messages_user_messages_box").attr("scrollHeight") }, 200);
        mesaghoSharghilo(false);
        $('#messages_textarea_' + obj.diskuto).attr("disabled", false);
		$('#messages_sendlink_' + diskuto).attr("disabled", false);
        fariSonon(3);
    }
}

function prilaboriDiskutojn(obj) {
    for (var i in obj) {
        enmetiDiskuton({ diskuto: i, marki: obj[i].marki, html: obj[i].html, movi: obj[i].movi });
        if (diskuto == obj[i].diskuto) {
            for (var d in obj[i].mesaghoj) {
                aldoniMesaghon({diskuto: obj[i].diskuto, mesagho: obj[i].mesaghoj[d].html});
            }
            if (obj[i].marki) {
                atentigi = true;
                markiLegitajn({lastaaliro: obj[i].lasta, diskuto: obj[i].diskuto});
            }
        }
    }
}

function enmetiDiskuton(obj) {
    if (mesaghejo && obj.diskuto) {
        if ($('#messages_chat_' + obj.diskuto).length) {
            if (obj.marki == 0) {
                if ($('#messages_chat_' + obj.diskuto).hasClass("newmessage")) {
                    $('#messages_chat_' + obj.diskuto).removeClass("newmessage");
                }
            } else {
                if (!$('#messages_chat_' + obj.diskuto).hasClass("newmessage")) {
                    $('#messages_chat_' + obj.diskuto).addClass("newmessage");
                }
            }
            if (obj.movi) {
                $('#messages_userlist').animate({scrollTop:0}, 200);
                $('#messages_chat_' + obj.diskuto).prependTo('#messages_userlist');
            }
        } else {
            if (obj.html) {
                $('#messages_nochats').hide();
                var mes = $(obj.html);
                mes.hide();
                $('#messages_userlist').prepend(mes);
                mes.slideDown("slow", function() {$('#messages_userlist').animate({scrollTop:0}, 200);});
            }
        }
    }
}

function markiLegitajn(obj) {
    sendi("/ext/mesaghoj?ago=markilegitaj", { lastaaliro: obj.lastaaliro, diskuto: obj.diskuto}, enmetiDiskuton);
}

function montriPliaj(kodo, disk) {
    if (diskuto != disk) return;
    preniDiskutojn(disk, kodo);
}

function enmetiPlenanDiskuton(obj) {
    if (obj.html) {
        if (obj.ago == 'enmeti') {
            $('#messages_partner').html('<a href="/uzanto?id=' + obj.partnero.id + '">' + obj.partnero.salutnomo + '</a> <span class="messages_delete_all"> [ <a href="javascript:void(0);" onclick="if (confirm(\'Ĉu vi volas forigi la tutan diskuton?\')) {forigiDiskuton(\'' + obj.diskuto + '\')}">forigi ĉiujn mesaĝojn</a> ]</span>');
            $('#messages_user_messages_main').html(obj.html);
            $(".messages_user_box").removeClass('dialogselected');
            $('#messages_chat_'+obj.diskuto).addClass('dialogselected');
            iksigi("#messages_textarea_" + obj.diskuto);
            diskuto = obj.diskuto;
            if (obj.marki)
                markiLegitajn({lastaaliro: obj.lastaaliro, diskuto: obj.diskuto});
            mesaghoSharghilo(false);
            $("#messages_user_messages_box").animate({ scrollTop: $("#messages_user_messages_box").attr("scrollHeight") }, 200);
        } else if (obj.ago == 'aldoni') {
            if (diskuto == obj.diskuto) {
                $('#messages_more').remove();
                $('#messages_meslist_' + obj.diskuto).prepend(obj.html);
                mesaghoSharghilo(false);
            }
        }
    }
}

function preniDiskutojn(diskuto, kodo) {
    diskuto = diskuto;
    if (!kodo) kodo = '';
    if (kodo == '') {
        $('#messages_user_messages_main').html('');
        $('#messages_partner').html('');
        $(".messages_user_box").removeClass('dialogselected');
    }
    mesaghoSharghilo(true);
    sendi("/ext/mesaghoj?ago=plenalisto", {diskuto: diskuto, lastaaliro: lastaaliro, kodo: kodo}, enmetiPlenanDiskuton);
}

function refreshigiUzantoStaton() {
    $(".uzauto").each(function(){
        $(this).removeClass("aktiva");
        $(this).removeClass("malaktiva");
    });
}

function enmetiUzantoStaton(obj) {
    var refreshigo = false;
    if (obj.refreshigiuzantojn) {
        refreshigiUzantoStaton();
        refreshigo = true;
    }
    if (obj.uzantostatoshangho) {
        var listorefreshigo = false;
        for (var i in obj.uzantostatoshangho) {
            var d = $(".uzauto.uz"+i);
            if (!refreshigo) {
                d.removeClass("aktiva");
                d.removeClass("malaktiva");
            }
            if (obj.uzantostatoshangho[i] == 1) {
                // aktivigxis
                d.addClass("aktiva");
            } else if (obj.uzantostatoshangho[i] == 2) {
                // okupita
                d.addClass("malaktiva");
            } else if (obj.uzantostatoshangho[i] == 3) {
                // eniris
                d.addClass("aktiva");
                preniliston = true;
                listorefreshigo = true;
                if (!refreshigo)  {
                    if (uzanto && uzanto != i) {
                        if (obj.uzantoinfo[i])
                            var html = '';
                            if (obj.uzantoinfo[i].foto)
                                html += '<div class="imgLeft"><img src="/upload/uzantoj/.thumbs3/' + obj.uzantoinfo[i].foto + '" alt="" /></div>';
                            else
                                html += '<div class="imgLeft"><img src="/img/nofoto3.png" alt="" /></div>';
                            html += '<a href="/uzanto?id='+ i +'">' + obj.uzantoinfo[i].salutnomo + '</a> eniris';
                            fariSonon(1);
                            $.jGrowl('<div class="clearfix">' + html + '</div>', { life: vezikovivo*1000 })
                    }
                }
            } else {
                // foriris
                listorefreshigo = true;
                
                if (!refreshigo)  {
                    if (uzanto && uzanto != i) {
                        if (obj.uzantoinfo[i])
                            var html = '';
                            if (obj.uzantoinfo[i].foto)
                                html += '<div class="imgLeft"><img src="/upload/uzantoj/.thumbs3/' + obj.uzantoinfo[i].foto + '" alt="" /></div>';
                            else
                                html += '<div class="imgLeft"><img src="/img/nofoto3.png" alt="" /></div>';
                            html += '<a href="/uzanto?id='+ i +'">' + obj.uzantoinfo[i].salutnomo + '</a> foriris';
                            fariSonon(2);
                            $.jGrowl('<div class="clearfix">' + html + '</div>', { life: vezikovivo*1000 })
                    }
                }
            }
        }
        // cxu refresxigi la liston?
        if (uzantopagho && listorefreshigo && !refreshigo) {
            $.post('/ext/preniuzantoliston', function(data) {
                $('#uzantolisto').replaceWith(data);
                $("#uzantolisto a.uzantofoto").fancybox();
            });
        }
    }
}

function multipleSelect(id) {
    $('#' + id + '_listo').html("");
    var teksto = "";
    $('#'+id+' :selected').each(function(i, selected){ 
        teksto += $(selected).text() + "<br />"; 
    });
    $('#' + id + '_listo').html('<small>'+teksto+'</small>');
}

function uniqid() {
    var newDate = new Date;
    return newDate.getTime();
}



(function ($) {
    $.fn.fiksita = function () {
        var obj;
        return this.each(function () {
            obj = this;
    		obj.offset = $(obj).offset().top;
    		obj.timeout = 0;
    		obj.height = parseInt($(obj).height());
    		obj.max = parseInt($('#bottom-menu-wrap').offset().top - obj.height);
    		$(window).scroll(function(){
                var scrolltop = $(this).scrollTop();
        		if (scrolltop > obj.offset) {
                    var topoffset = scrolltop;
                } else {
                    var topoffset = obj.offset;
                }
                max = parseInt( - obj.height);
                if (topoffset > obj.max) {
                    topoffset = obj.max;
                    if (topoffset < obj.offset) topoffset = obj.offset;
                }
                if (obj.timeout) clearTimeout(obj.timeout);
                obj.timeout = setTimeout(function(){$(obj).animate({ top: topoffset }, 500);
                                                   obj.height = parseInt($(obj).height());
                                                   obj.max = parseInt($('#bottom-menu-wrap').offset().top - obj.height);
                                                   }, 100);

    		});
        });
    }
})(jQuery);

