var ReviewClass = Class.create();
ReviewClass.prototype = {
    initialize: function()
    { 
    },
    
    showerror: function(message)
    {
        if(message.needauth=='1')
        {
             m('1');
        }
        else 
        {
            alert(message.error_message);
            $('review_comment_form_'+message.object).select('TEXTAREA').first().focus();
        }
    },
    
    toggle: function(review_id,comment_id)
    {
        var ul = $('review_comments_'+review_id+'_'+comment_id);
        var link = $('review_linktoshow_'+review_id+'_'+comment_id);
        if(ul.getStyle('display')=='none')
        {
            if(ul.childElements().length==0)
            {
                new Ajax.Request(window.location.href,{method:'post',parameters:{act:'review',subact:'show_comments',id:review_id},onSuccess:review.on_show_comments});return false;
            }
            else
            {
                ul.show();
                link.setAttribute('rel',link.innerHTML);
                link.update('Свернуть комментарии');
            }
        }
        else
        {
            ul.hide();
            link.update(link.getAttribute('rel'));
        }
        return false;
    },
    
    hide: function(review_id,comment_id)
    {
        var ul = $('review_comments_'+review_id+'_'+comment_id);  
        ul.hide();
        return false;
    },
    
    on_show_comments: function(transport)
    {
        //console.log('on_show_comments');
        var res = transport.responseText.evalJSON();
        //console.log(res);
        if(res.error==0)
        {
            var ul = $('review_comments_'+res.object);
            var link = $('review_linktoshow_'+res.object);
        
            ul.update(res.html);
            ul.show();
            
            link.setAttribute('rel',link.innerHTML);
            link.update('Свернуть комментарии');
        }
        else 
        {
            review.showerror(res);
        }
    },
    
    on_ajax_create: function(transport)
    {
        var res = transport.responseText.evalJSON(); 
        if(res.error==0)
        {
            $('review_comment_form_'+res.object).update(res.html);
            $('review_comment_form_'+res.object).show();
            if($('review_comment_form_'+res.object).select('TEXTAREA'))
            {
                $('review_comment_form_'+res.object).select('TEXTAREA').first().focus();
            }
        }
        else 
        {
            review.showerror(res);
        }
    },
    
    on_ajax_create_save: function(transport)
    {
        $$('.review_button').each(function(el){el.select('BUTTON').first().writeAttribute('disabled',false).removeClassName('btn-small-dis');});
        
        var res = transport.responseText.evalJSON(); 
        if(res.error==0)
        {
            if(res.object=='')
            {
                $$('.comments').first().insert(res.html);
                $('write-comment-1').value = '';
            }
            else
            {
                $('review_comments_'+res.object).insert(res.html);
                $('review_comments_'+res.object).show();
                $('review_comment_form_'+res.object).update('');
                $('review_comment_form_'+res.object).hide();
                
                if(res.counts.length>0)
                {
                    for(var i=0;i<res.counts.length;i++)
                    {
                        var el = res.counts[i].el;
                        
                        var count = res.counts[i].count;
                        $('review_linktoshow_'+el).setAttribute('rel',count);
                        
                        if($('review_linktoshow_'+el).innerHTML!='Свернуть комментарии')
                        {
                            if($('review_comments_'+res.object).getStyle('display')=='none')
                            {
                                $('review_linktoshow_'+el).update(count);                            
                            }
                            else
                            {
                                $('review_linktoshow_'+el).update('Свернуть комментарии');                            
                            }
                            
                        }
                        $('review_linktoshow_'+el).show();
                    }
                } 
                
                if( $('review_'+res.created))
                {
                    Element.scrollTo($('review_'+res.created));
                }

            }
            
        }
        else 
        {
            review.showerror(res);
        }
    },
    
    on_ajax_edit: function(transport)
    {
        var res = transport.responseText.evalJSON(); 
        if(res.error==0)
        {
            $('review_comment_form_'+res.object).update(res.html);
            $('review_comment_form_'+res.object).show();
        }
        else 
        {
            review.showerror(res);
        }
    },
    
    on_ajax_edit_save: function(transport)
    {   
        $$('.review_button').each(function(el){el.select('BUTTON').first().writeAttribute('disabled',false).removeClassName('btn-small-dis');});    
        
        var res = transport.responseText.evalJSON(); 
        if(res.error==0)
        {
            var vars = res.object.split('_');
            var ul = $('review_comments_'+res.object);
            if(ul.getStyle('display')=='none')
            {
                Element.insert($('review_'+res.object),{after:res.html});
                Element.remove($('review_'+res.object));
                var link = $('review_linktoshow_'+res.object);
                link.update(link.getAttribute('rel'));  
                //review.toggle(vars[0],vars[1]);
            }
            else
            {
                Element.insert($('review_'+res.object),{after:res.html});
                Element.remove($('review_'+res.object));
                var link = $('review_linktoshow_'+res.object);
                link.update('Свернуть комментарии');   
            }
            
        }
        else 
        {
            review.showerror(res);
        }      
    },
    
    on_ajax_delete: function(transport)
    {       
        var res = transport.responseText.evalJSON(); 
        if(res.error==0)
        {
            var par = $('review_'+res.object).up(); 
            var vars = res.object.split('_');
            var ul = $('review_comments_'+res.object);
            if(ul.getStyle('display')=='none')
            {
                Element.insert($('review_'+res.object),{after:res.html});
                Element.remove($('review_'+res.object));
                var link = $('review_linktoshow_'+res.object);
                link.update(link.getAttribute('rel'));
                review.toggle(vars[0],vars[1]);
            }
            else
            {
                Element.insert($('review_'+res.object),{after:res.html});
                Element.remove($('review_'+res.object));
                var link = $('review_linktoshow_'+res.object);
                link.update('Свернуть комментарии');
            }
            
            if(res.counts.length>0)
            {
                for(var i=0;i<res.counts.length;i++)
                {
                    var el = res.counts[i].el;
                    
                    var count = res.counts[i].count;
                    $('review_linktoshow_'+el).setAttribute('rel',count);
                    if($('review_linktoshow_'+el).innerHTML!='Свернуть комментарии')
                    {
                        $('review_linktoshow_'+el).update(count);
                    }
                    if($('review_comments_'+el).childElements().length>0)
                    {
                        $('review_linktoshow_'+el).show();
                    }
                }
            } 
        }
        else 
        {
            review.showerror(res);
        }
    },
    
    on_ajax_restore: function(transport)
    {       
        var res = transport.responseText.evalJSON(); 
        if(res.error==0)
        {
            var par = $('review_'+res.object).up();
            var vars = res.object.split('_');
            var ul = $('review_comments_'+res.object);
            if(ul.getStyle('display')=='none')
            {
                Element.insert($('review_'+res.object),{after:res.html});
                Element.remove($('review_'+res.object));
                var link = $('review_linktoshow_'+res.object);
                link.update(link.getAttribute('rel'));  
                review.toggle(vars[0],vars[1]);
            }
            else
            {
                Element.insert($('review_'+res.object),{after:res.html});
                Element.remove($('review_'+res.object));
                var link = $('review_linktoshow_'+res.object);
                link.update('Свернуть комментарии');   
            }
            
            if(res.counts.length>0)
            {
                for(var i=0;i<res.counts.length;i++)
                {
                    var el = res.counts[i].el;
                    
                    var count = res.counts[i].count;
                    $('review_linktoshow_'+el).setAttribute('rel',count);
                    if($('review_linktoshow_'+el).innerHTML!='Свернуть комментарии')
                    {
                        $('review_linktoshow_'+el).update(count);
                    }
                    if($('review_comments_'+el).childElements().length>0)
                    {
                        $('review_linktoshow_'+el).show();
                    }
                }
            }
            
        }
        else 
        {
            review.showerror(res);
        }
    }
}

review = new ReviewClass();