/**
 * PostVote Script
 * @author Nikolay Ermin
 * @link http://ermin.ru
 */

var postvote = {
        
    timer: 0,
    basketlist_close: function() 
    {
        jQuery('div.b-postvote-basketlist').fadeOut(100);
    },
    messages: {
        1:'Вы уже голосовали за это сообщение',
        2:'Голос успешно добавлен',
        3:'Нельзя голосовать за себя',
    	4:'Недостаточно репутации для голосования',
    	5:'Еще нельзя голосовать за этого пользователя, голосуйте пока за других',
    	6:'В сутки можно голосовать только 3 раза',
    	7:'Вы недавно голосовали, подождите немного'
    },
    get_spam: function() {
        var href = jQuery(this).attr('href');
        var postid = jQuery(this).attr('postid');
        
        //alert(href + "&postid=" + postid);
        //return false;
        
        jQuery.getJSON( href + "&postid=" + postid, function( data ) {
        	//alert( data );
            if ( data.ret == 'ok' ) {
                jQuery("a[rel="+data.postid+"]")
                    .attr('flud', data.flud)
                    .attr('spam', data.spam);
                alert( postvote.messages[ data.mes ] );
            } 
            else if ( data.ret == 'no' ) {
                alert( postvote.messages[ data.mes ] );
            } 
            else {
                alert( data.ret );
            }
            postvote.basketlist_close();
        });
        
        return false;
    }
};

jQuery(document).ready(function() {
    
    jQuery('div.b-postvote').find('a').click(function(){
        
        var href = jQuery(this).attr('href');
        jQuery.getJSON( href, function( data ) {
            if ( data.ret == 'ok' ) {
                alert( postvote.messages[2] );
            } else if ( data.ret == 'no' ) {
                alert( postvote.messages[ data.mes ] );
            } else {
                alert( data.ret );
            }
        });
        
        return false;
    });
    
    //jQuery('a.b-postvote-basket').attr('href','#');
    jQuery('a.b-postvote-basket').unbind().click(function()
    {
        try {
            var postid = jQuery(this).attr('rel');
            var spam   = jQuery(this).attr('spam');
            var flud   = jQuery(this).attr('flud');
    
            var offset = jQuery(this).offset();
            offset.top  += 10;
            offset.left += 20;
            
    
            
            // создать подсказку, если не существует
            if ( jQuery('div.b-postvote-basketlist').length == 0 ) {
                jQuery('body').append('<div class="b-postvote-basketlist">' +
                		'<ul>' +
                        '<li><a href="clientscript/postvote/postvote.php?vote=spam" class="b-postvote-spam" '+
                        ' postid="'+postid+'">Спам (<span>'+spam+'</span>)</a></li>'+
                        '<li><a href="clientscript/postvote/postvote.php?vote=flud" class="b-postvote-flud" '+
                        ' postid="'+postid+'">Флуд (<span>'+flud+'</span>)</a></li>'+
                        '</ul>' +                		
            		'</div>');
                
                jQuery('div.b-postvote-basketlist')
                	.find('a').bind('click', postvote.get_spam)
                	.end()
                    .bind('mouseout', function() {
                        postvote.timer = setTimeout(function(){
                            postvote.basketlist_close();
                        }, 2000);
                    }).bind('mouseover', function(){
                        clearTimeout( postvote.timer );
                    });
            }
            
            jQuery('div.b-postvote-basketlist')
                .css({top:offset.top,left:offset.left})
                .find('a.b-postvote-spam').attr('postid',postid)
                    .find('span').html(spam).end()
                .end()
                .find('a.b-postvote-flud').attr('postid',postid)
                    .find('span').html(flud).end()
                .end().fadeIn(100);
        } catch ( e ) {
            alert( e.toLocaleString() );
        }
        return false;
    });
    
    jQuery('body').click(function(){
        postvote.basketlist_close();
    });
});