function jSubmit(form_id, url)
{
    var values = $(form_id).serialize();
    $.post(url, values, function (data) {
        $('#facebox_content').html(data);
    }
    );
    return false;
}

function fSubmit(form_id, url, selector)
{
    var values = $(form_id).serialize();
	
    $.post(url, values, function (data) {
        $(selector).html(data);
    }
    );
    return false;
}

function rurl(url)
{
    document.location = url;
}


function article_box_show(index, element)
{
    $('#main_ajax #ajax-buttons a').each(function (){
        $(this).removeClass('active');
    });
    $(element).addClass('active');
	
    $('#main_ajax .ajax-content').each(
        function () {
            $(this).removeClass('visible');
        }
        );
    $('#ajax-'+index).addClass('visible');
}

function jReload(url, selector)
{
    $(selector).load(url);
    return false;
}


function jShowFacebox(url) {

    $.get(url, '', function(data, status) {

        $.facebox(data);

    });

}

function jCloseFacebox()
{
    $(document).trigger('close.facebox');
}

function get_random(max_number)
{
    var ranNum= Math.floor(Math.random()*max_number);
    return ranNum;
}

function ff_getitem(list, skip)
{
    var mm = [];
    var max = 0;
    var min = 0;
    for(var i=0; i<list.length; i++)
    {
        if(!mm[list[i].num])
            mm[list[i].num] = [];
        mm[list[i].num].push(list[i]);
        max = Math.max(max, list[i].num);
        min = Math.min(min, list[i].num);
    }
    for(var m=min; m<=max; m++)
    {
        if(jQuery.isArray(mm[m]))
        {
            var a = mm[m];
            if(skip.length)
            {
                var avail = [];
                for(var i=0;i<a.length; i++)
                {
                    var ind = a[i].ind;
                    if(jQuery.inArray(ind,skip) == -1)
                    {
                        avail.push(i);
                    }
                }
                if(avail.length)
                {
                    var ind = get_random(avail.length);
                    return a[avail[ind]];
                }
            }
            else
            {
                return a[get_random(a.length)];
            }
        }
    }

    return list[get_random(list.length)];
}

var topics = [];

function findInArray(array, value) {

    for (var i = 0; i < array.length; i++)
        if (array[i] == value)
            return i;

    return -1;
}

function onShoutbox_up() {
    var s = parseInt($('#shoutbox_id').val());
    var index = findInArray(topics, s);
    if (index >= 0 && topics.length > 1) {
        if (index > 1)
            $('#shoutbox_id').attr('value', topics[index - 1]);
        else
            $('#shoutbox_id').attr('value', topics[topics.length - 1]);    
        onShoutbox_reload(true);
    }
    else {
        onShoutbox_reload(true);
    }    
}

function onShoutbox_down() {
    var s = parseInt($('#shoutbox_id').val());
    var index = findInArray(topics, s);
    if (index >= 0 && topics.length > 1) {
        if (index < topics.length - 1)
            $('#shoutbox_id').attr('value', topics[index + 1]);
        else
            $('#shoutbox_id').attr('value', topics[0]);       
        onShoutbox_reload(true);
    }
    else {
        onShoutbox_reload(true);
    }  
}

function onShoutbox_form(default_value)
{
    if($('#shoutbox_form textarea').attr('value') != default_value )
    {
        var values = $('#shoutbox_form').serialize();
        $.post(shoutbox_backend_url, values, function (data) {
            shoutbox_handle_data(data);
			
        }, 'json');
        $('#shoutbox_form textarea').attr('value', default_value);
    }
}

function shoutbox_handle_data(data)
{
    shoutbox_total = data.total;
    topics = data.topics;
    $('#scroller').empty();
    $('#scroller').html('<div></div>');
    for(var i=0; i<data.data.length; i++)
    {
        var cl="a"
        if(i%2){
            var cl="b";
        }
        var d = data.data[i];
        $('#scroller div').append('<span class="login"><a href="'+d.url+'">'+d.nick+'</a></span>');
        $('#scroller div').append('<p class="'+cl+'"><span>'+d.text+'</span></p>');
    }
    var contentHeight = $('#scroller div').height();

    if (contentHeight >= 475)
        $('#scroller').css({
            overflow: 'auto'
        });
    else
        $('#scroller').css({
            overflow: 'hidden'
        });

    contentHeight = Math.min(475, contentHeight);
    
    $('#scroller').css({
        height: contentHeight + 'px'
    });
    $('#shoutbox_id').attr('value', data.shoutbox);
    $('.box_shoutbox p.h4').html(data.shoutbox_text);
}

function onShoutbox_reload(shoutbox) {

    if (!shoutbox) {
        $.getJSON(shoutbox_backend_url, function(data) {
            shoutbox_handle_data(data);
        });
    }
    else {
        $.getJSON(shoutbox_backend_url + '&shoutbox=' + $('#shoutbox_id').val(), function(data) {
            shoutbox_handle_data(data);
        });
    }
}

var loginpage_url = '';

function facebook_onlogin_ready()
{
    FB.Connect.requireSession( function() {
        jShowFacebox(loginpage_url);
    });
}
	
function refresh_page() {
    window.location = '/logout.php';
//location.reload(true);
}



function facebook_prompt_permission(permission, callbackFunc) {
    FB.ensureInit(function() {

        FB.Facebook.apiClient.users_hasAppPermission(permission,
            function(result) {

                if (result == 0) {

                    FB.Connect.showPermissionDialog(permission, callbackFunc);
                } else {
                    callbackFunc(true);
                }
            });
    });
}



function delete_comment(cid, url, a)
{
    
}


function jSelectText(element) {
    var $element = $(element);
    if($element.length)
    {
        var text = $element.element;
        if ($.browser.msie) {
            var range = document.body.createTextRange();
            range.moveToElementText(text);
            range.select();
        } else if ($.browser.mozilla || $.browser.opera) {
            var selection = window.getSelection();
            var range = document.createRange();
            range.selectNodeContents(text);
            selection.removeAllRanges();
            selection.addRange(range);
        } else if ($.browser.safari) {
            var selection = window.getSelection();
            selection.setBaseAndExtent(text, 0, text, 1);
        }
    }
}
