Вход Регистрация
Файл: templates/default/js/comments.js
Строк: 386
<?php
var icms icms || {};

icms.comments = (function ($) {

    
this.onDocumentReady = function() {

        $(
'#comments_widget #is_track').click(function(){
            
icms.comments.toggleTrack(this);
        });

        $(
'#comments_widget .rating .buttons .rate-up').click(function(){
            return 
icms.comments.rate(this1);
        });

        $(
'#comments_widget .rating .buttons .rate-down').click(function(){
            return 
icms.comments.rate(this, -1);
        });

        var 
anchor window.location.hash;
        if (!
anchor) {return false;}

        var 
find_id anchor.match(/comment_([0-9]+)/);
        if (!
find_id) {return false;}

        
icms.comments.show(find_id[1]);

    }

    
//=====================================================================//

    
this.add = function (parent_id) {
        var 
form = $('#comments_add_form');

        if (
typeof(parent_id) == 'undefined'){parent_id 0;}

        $(
'#comments_widget #comments_add_link').show();
        $(
'#comments_widget #comments_list .links .reply').show();
        $(
'#comments_widget #comments_list .links .edit').show();

        if (
parent_id == 0){

            $(
'#comments_widget #comments_add_link').hide();
            
form.detach().appendTo('#comments_widget');

        } else {

            $(
'#comments_widget #comments_list #comment_'+parent_id+' .links .reply').hide();
            
form.detach().appendTo('#comments_widget #comments_list #comment_'+parent_id);

        }

        
form.show();

        $(
'input[name=parent_id]'form).val(parent_id);
        $(
'input[name=id]'form).val('');
        $(
'input[name=action]'form).val('add');
        $(
'input[name=submit]'form).valLANG_SEND );

        $(
'textarea'form).val('').focus();

        return 
false;
    }

    
//=====================================================================//

    
this.submit = function (action) {

        var 
form = $('#comments_add_form form');

        var 
is_guest = $('.author_data'form).length >true false;
        var 
content = $('textarea'form).val();

        if (!
content) { return; }

        if (
is_guest){
            
            var 
name = $('.author_data .name input'form).val();
            var 
email = $('.author_data .email input'form).val();
            
            if (!
name) { $('.author_data .name'form).addClass('field_error').focus(); return; }
            
            $.
cookie('icms[comments_guest_name]'name, {expires100path'/'});
            $.
cookie('icms[comments_guest_email]'email, {expires100path'/'});
            
            $(
'.author_data .name'form).removeClass('field_error');
            
        }

        var 
form_data icms.forms.toJSONform );
        var 
url form.attr('action');

        $(
'.loading'form).show();
        $(
'.buttons'form).hide();
        $(
'textarea'form).attr('disabled''disabled');

        if (
action) {form_data.action action;}

        $.
post(urlform_data, function(result){

            if (
form_data.action=='add') { icms.comments.result(result);}
            if (
form_data.action=='preview') { icms.comments.previewResult(result);}
            if (
form_data.action=='update') { icms.comments.updateResult(result);}

        }, 
"json");

    }

    
//=====================================================================//

    
this.preview = function () {

        var 
form = $('#comments_add_form');
        $(
'.preview_box'form).hide();

        var 
content = $('textarea'form).val();

        if (!
content) {return;}

        
this.submit('preview');

    }

    
//=====================================================================//

    
this.previewResult = function (result) {

        if (
result == null || typeof(result) == 'undefined' || result.error){
            
this.error(result.message);
            return;
        }
        
        if (
result.html){
            var 
form = $('#comments_add_form');
            $(
'.preview_box'form).htmlresult.html ).slideDown();            
        }

        
this.restoreForm(false);

    }

    
//=====================================================================//

    
this.refresh = function (clear_selection) {

        if (
typeof(clear_selection) == 'undefined'){
            
clear_selection true;
        }

        if (
clear_selection){
            $(
'#comments_widget .comment').removeClass('selected-comment');
        }

        $(
'#comments_widget .refresh_btn').hide();

        var 
form = $('#comments_add_form form');

        var 
form_data = {
            
timestamp: $('input[name=timestamp]'form).val(),
            
tc: $('input[name=tc]'form).val(),
            
ts: $('input[name=ts]'form).val(),
            
ti: $('input[name=ti]'form).val()
        }

        var 
url = $('#comments_urls').data('refresh-url');

        $.
post(urlform_data, function(result){

            if (
result == null || typeof(result) == 'undefined' || result.error){
                
icms.comments.error(result.message);
                return;
            }

            if (
result.total){
                for (var 
comment_index in result.comments){
                    var 
comment result.commentscomment_index ];
                    
icms.comments.appendcomment );
                    $(
'#comment_'+comment.id).addClass('selected-comment');
                    $(
'input[name=timestamp]'form).val(comment.timestamp);
                }
            }

            if (
result.exists <= 0){
                $(
'#comments_widget .refresh_btn').show();
                
icms.comments.showFirstSelected();
                return;
            }

            
icms.comments.refresh(false);

        }, 
"json");

    }

    
//=====================================================================//

    
this.append = function(comment){

        $(
'#comments_widget #comments_list .no_comments').remove();

        if (
comment.parent_id == 0){

            $(
'#comments_widget #comments_list').appendcomment.html );

        }

        if (
comment.parent_id 0){

            var 
= $('#comment_'+comment.parent_id);
            var 
next_id false;
            var 
stop_search false;

            
p.nextAll('.comment').each(function(){
                if (
stop_search) {return;}
                if ( $(
this).data('level') <= p.data('level') ){
                    
next_id = $(this).attr('id'); stop_search true;
                }
            });

            if (!
next_id){
                $(
'#comments_widget #comments_list').appendcomment.html );
            } else {
                $(
'#'+next_id).beforecomment.html );
            }

        }

    }

    
//=====================================================================//

    
this.result = function(result){

        if (
result == null || typeof(result) == 'undefined' || result.error){
            
this.error(result.message);
            return;
        }

        if (
result.html){
            
this.append(result);                        
        }
        
        
this.restoreForm();
        
this.show(result.id);

    }

    
//=====================================================================//

    
this.updateResult = function(result){

        if (
result == null || typeof(result) == 'undefined' || result.error){
            
this.error(result.message);
            return;
        }

        $(
'#comments_list #comment_'+result.id+' .text').htmlresult.html );

        
this.restoreForm();
        
this.show(result.id);

    }

    
//=====================================================================//

    
this.edit = function (id){
        var 
form = $('#comments_add_form');

        $(
'#comments_widget #comments_add_link').show();
        $(
'#comments_widget #comments_list .links .reply').show();
        $(
'#comments_widget #comments_list .links .edit').show();

        $(
'#comments_widget #comments_list #comment_'+id+' .links .edit').hide();

        
form.detach().appendTo('#comments_widget #comments_list #comment_'+id).show();

        $(
'input[name=id]'form).val(id);
        $(
'input[name=action]'form).val('update');
        $(
'input[name=submit]'form).valLANG_SAVE );

        $(
'.loading'form).show();
        $(
'.buttons'form).hide();
        $(
'textarea'form).attr('disabled''disabled');

        var 
url = $('#comments_urls').data('get-url');

        $.
post(url, {idid}, function(result){

            if (
result == null || typeof(result) == 'undefined' || result.error){
                
this.error(result.message);
                return;
            }

            
icms.comments.restoreForm(false);

            $(
'textarea'form).val(result.html).focus();

        }, 
"json");

        return 
false;
    }

    
//=====================================================================//

    
this.remove = function (id){
        var 
= $('#comments_list #comment_'+id);

        var 
username = $('.name .user'c).html();

        if (!
confirm(LANG_COMMENT_DELETE_CONFIRM.replace('%s'username))){return false;}

        var 
url = $('#comments_urls').data('delete-url');

        $.
post(url, {idid}, function(result){

            if (
result == null || typeof(result) == 'undefined' || result.error){
                
icms.comments.error(result.message);
                return;
            }

            
c.html('<span class="deleted">'+LANG_COMMENT_DELETED+'</span>');

            
icms.comments.restoreForm();

        }, 
"json");
    }

    
//=====================================================================//

    
this.toggleTrack = function(checkbox){
        var 
is_track checkbox.checked;

        $(
checkbox).attr('disabled''disabled');

        var 
form = $('#comments_add_form form');

        var 
form_data = {
            
tc: $('input[name=tc]'form).val(),
            
ts: $('input[name=ts]'form).val(),
            
ti: $('input[name=ti]'form).val(),
            
is_trackNumber(is_track)
        }

        var 
url = $('#comments_urls').data('track-url');

        $.
post(urlform_data, function(result){

            $(
checkbox).removeAttr('disabled');

            if (
result.error){
                $(
checkbox).attr('checked', !is_track);
                return;
            }

        }, 
"json");
    }

    
//=====================================================================//

    
this.show = function(id){
        $(
'#comments_widget .comment').removeClass('selected-comment');
        var 
= $('#comment_'+id);
        
c.addClass('selected-comment');
        $.
scrollToc500, {offset: {left:0top:-10}} );
        return 
false;
    }

    
this.showFirstSelected = function(){
        if (!$(
'.selected-comment').length) { return false; }
        var 
= $('.selected-comment').eq(0);
        $.
scrollToc500, {offset: {left:0top:-10}} );
        return 
false;
    }

    
//=====================================================================//

    
this.up = function(to_idfrom_id){
        var 
= $('#comment_'+to_id);
        $(
'#comments_widget .scroll-down').hide();
        $(
'.nav .scroll-down'c).show().data('child-id'from_id);
        
this.show(to_id);
    }

    
this.down = function (link){
        var 
to_id = $(link).data('child-id');
        $(
link).hide();
        
this.show(to_id);
    }

    
//=====================================================================//

    
this.rate = function (linkscore){

        var 
id = $(link).data('id');

        var 
url = $('#comments_urls').data('rate-url');

        var 
data = {
            
comment_idid,
            
scorescore
        
}

        $.
post(urldata);

        var 
rating_block = $('#comment_'+id+' .rating');
        var 
value_block = $('.value'rating_block);
        var 
rating Number($('#comment_'+id+' .rating .value').html());

        
rating += score;

        if (
rating == 0){
            
value_block.html('');
        } else {
            
value_block.htmlrating '+'+rating rating );
        }

        
value_block.removeClass('positive').removeClass('negative').removeClass('zero');

        if (
rating 0){ value_block.addClass('positive') }
        if (
rating 0){ value_block.addClass('negative') }
        if (
rating == 0){ value_block.addClass('zero') }

        $(
'.buttons'rating_block).remove();

        return 
false;

    }

    
//=====================================================================//

    
this.error = function(message){
        
alert(message);
        
this.restoreForm(false);
    }

    
this.restoreForm = function(clear_text){
        if (
typeof(clear_text)=='undefined'){clear_text true;}

        var 
form = $('#comments_add_form');

        $(
'.loading'form).hide();
        $(
'.buttons'form).show();
        $(
'textarea'form).removeAttr('disabled');

        if (
clear_text) {
            
form.hide();
            $(
'textarea'form).val('');
            $(
'#comments_widget #comments_add_link').show();
            $(
'#comments_widget #comments_list .links .edit').show();
            $(
'#comments_widget #comments_list .links .reply').show();
            $(
'.preview_box'form).html('').hide();
        }
    }

    
//=====================================================================//

    
return this;

}).
call(icms.comments || {},jQuery);
?>
Онлайн: 1
Реклама