var SiteSearch = {
    text: null,

    init: function() {
        SiteSearch.text = $('#search input.search').val();
        $('#search input.search').focus( SiteSearch.focus );
        $('#search input.search').blur( SiteSearch.blur );
        $('#search').submit( SiteSearch.submit );
    },

    focus: function() {
        if (this.value == SiteSearch.text) this.value = '';
    },

    blur: function() {
        if (this.value == '') this.value = SiteSearch.text;
    },

    submit: function() {
        if (this.search.value == SiteSearch.text) {
            $.prompt('Nie wpisano szukanego wyrażenia',{show:'slideDown'});
            return false;
        }
    }
};


var Effects = {
    init: function(){
        $('a[@rel=ext]').attr('target', '_blank');
        $('tr:even').addClass('even');
        $('tr').mouseover( Effects.itemHover );
        $('tr').mouseout( Effects.itemNotHover );
        $('div.column div.item').mouseover( Effects.itemHover );
        $('div.column div.item').mouseout( Effects.itemNotHover );

        $('form.hs').submit( Effects.formSubmits );

        //links sources
        /*var sources = $('td.src');
        jQuery.each(sources, function() {
            var url = $(this).text();
            $(this).html('<a href="http://'+ url +'" target="_blank">'+ url +'</a>');
        });*/
        
        //votes
        jQuery.each($('td.vote'), function() {
            $(this).append('<img class="p" src="images/votep.gif" alt="Oceń na plus" /> <img class="m" src="images/votem.gif" alt="Oceń na minus" />');
        });
        
        $('td.vote img.p').click( Voting.plus );
        $('td.vote img.m').click( Voting.minus );

    },

    itemHover: function(){
        $(this).addClass('active');
    },

    itemNotHover: function(){
        $(this).removeClass('active');
    },

    formSubmits: function(){
        this.blur();
        $('input[@type=submit]',$(this)).attr('disabled','disabled');
        $('input[@type=submit]',$(this)).addClass('disabled');
    }
};


var Voting = {
    init: function(){
        $('a.plus').click( Voting.plus );
        $('a.minus').click( Voting.minus );
    },

    plus: function(){
        this.blur();

        $.ajax({
            type: "POST",
            url: URL+"vote",
            data: "id="+$(this).parent().attr('id')+"&vote=plus",
            dataType: "json",
            success: function(response){
                $.prompt(response.msg,{show:'slideDown'});

                /*if (response.status == 1) {
                    var container = $('#'+response.id);
                    var rate = parseInt($('b.rate',container).html());
                    $('b.rate',container).html(rate==-1?'0':rate+1);
                    $('b.vc',container).html(parseInt($('b.vc',container).html())+1);
                }*/
            },
            error: function(msg) { alert(msg.responseText); }
        });

        return false;
    },

    minus: function(){
        this.blur();

        $.ajax({
            type: "POST",
            url: URL+"vote",
            data: "id="+$(this).parent().attr('id')+"&vote=minus",
            dataType: "json",
            success: function(response){
                $.prompt(response.msg,{show:'slideDown'});

                /*if (response.status == 1) {
                    var container = $('#'+response.id);
                    var rate = parseInt($('b.rate',container).html());
                    $('b.rate',container).html(rate==1?'0':rate-1);
                    $('b.vc',container).html(parseInt($('b.vc',container).html())+1);
                }*/
            },
            error: function(msg) { alert(msg.responseText); }
        });

        return false;
    }
};


var Errors = {
    init: function(){
        $('td.e img').click( Errors.report );
    },

    report: function(){
        $.prompt('Dziękujemy za zgłoszenie ',{show:'slideDown'});
        
        $.ajax({
            type: "POST",
            url: URL+"zgloszenie",
            data: "id="+$(this).attr('id'),
            error: function(msg) { alert(msg.responseText); }
        });
    }
}


var Newlink = {
    category: function(id,level){
        $('#loading').remove();
        $('#category_select input.text').remove();
        $('input[@name=category]').val(id);

        if ($('#cl'+(level-1)).val() != id && level < 3) {
            for(i=level+1;i<=3;i++) {
                $('#cl'+i).remove();
                $('a.level'+i).remove();
            }

            $('#category_select').append('<div id="loading">Pobieranie podkategorii... proszę czekać...</div>');
            $('#register input[@type=submit]').addClass('disabled');
            $('#register input[@type=submit]').attr('disabled','disabled');

            $.ajax({
                type: "POST",
                url: URL + "ajax",
                data: "cat_id="+id,
                dataType: "json",
                success: Newlink.load,
                error: function(msg) {
                    $('#loading').remove();
                    $('#register input[@type=submit]').removeClass('disabled');
                    $('#register input[@type=submit]').attr('disabled','');
                    alert(msg.responseText);
                }
            });
        }
    },

    load: function(data) {
        var html = '';

        if ( data.level < 2 ) {
            html += '<select name="cl'+ (data.level + 2) +'" id="cl'+ (data.level + 2) +'" onchange="Newlink.category(this.value,'+ (data.level + 2) +')">';
            html += '<option value="'+ data.category +'">...</option>';

            jQuery.each(data.childrens, function(){
                html += '<option value="'+ this.id +'">'+ this.name +'</option>';
            });

            html += '</select>';

            html += '<a class="add level'+ (data.level + 2) +'" href="javascript:void(0)" onclick="Newlink.addCategory('+ (data.level + 2) +')">dodaj podkategorię w kategorii '+ data.name +'</a>';

            $('#category_select').append(html);
        }

        $('#loading').remove();
        $('#register input[@type=submit]').removeClass('disabled');
        $('#register input[@type=submit]').attr('disabled','');
    },

    addCategory: function(level) {
        for(i=level;i<=3;i++) {
            $('a.level'+i).remove();
            $('#cl'+i).remove();
        }

        $('#category_select input.text').remove();
        $('input[@name=category]').val(level==3 ? $('#cl2').val() : $('#cl1').val());

        for(i=level;i<=3;i++) {
            $('#category_select').append('<input class="text" type="text" name="newcat'+i+'" />');
        }
    }
}


$(document).ready(function(){
    SiteSearch.init();
    Effects.init();
    Voting.init();
    Errors.init();
});