window.addEvent('domready', function() {

    if(document.getElementById('categories_tree')) {
        new Request.JSON({
            'url': 'forum/show_categories_tree.json',
            onComplete: function(res) {
                var parent = document.getElementById('categories_tree');
                var ul = new Element('ul').inject(parent);
                for(var i in res){
                    var li = new Element('li', {'id': 'list-'+i,'value' : i, 'class' : 'forum_path_title'}).inject(ul);
                    li.innerHTML = res[i].title;
                    makeTree(res[i].children, i);
                }
            }
        }).post({
        });
    }

    $$('.vote_stars').each(function(item){
      item.addEvent('mouseenter', function(evt){
          if(this.hasClass('vote_active')) {
              var children = this.getChildren('div');
              for(var i=0; i<children.length; i++){
                  children[i].getFirst().removeClass('icon_star_active');
                  children[i].getFirst().removeClass('icon_star_half_active');
              }
          }
          $('mypoint-'+this.id.split('-').pop()).removeClass('hidden');
        });
        item.addEvent('mouseleave', function(evt){
            if(this.hasClass('vote_active')) {
                var children = this.getChildren('div');
                for(var i=0; i<children.length; i++){
                    if(children[i].getFirst().hasClass('star_selected')) {
                        children[i].getFirst().addClass('icon_star_active');
                    } else if(children[i].getFirst().hasClass('star_half_selected')){
                        children[i].getFirst().addClass('icon_star_half_active');
                    } else {
                        children[i].getFirst().removeClass('icon_star_active');
                    }
                }
            }
            if(!$('mypoint-'+this.id.split('-').pop()).hasClass('voted')) {
                $('mypoint-'+this.id.split('-').pop()).addClass('hidden');
            }
        });
    });
    $$('.star_container').each(function(item){
      item.addEvent('mouseenter', function(evt){
            if(this.getParent('div').hasClass('vote_active')) {
                var children = this.getParent('div').getChildren('div');
                 for(i=0; i<children.length; i++){
                    if(children[i]!=this){
                            children[i].getFirst().addClass('icon_star_active');
                    } else {
                        children[i].getFirst().addClass('icon_star_active');
                        break;
                    }
                }
            }
        });
        item.addEvent('mouseleave', function(evt){
            if(this.getParent('div').hasClass('vote_active')) {
                var children = this.getParent('div').getChildren('div');
                for(var i=0; i<children.length; i++){
                    children[i].getFirst().removeClass('icon_star_active');
                }
            }
        });
    });
    $$('.vote_active .star_container').each(function(item){
    	item.addEvent('click',function(evt){
            if(this.getParent('div').hasClass('vote_active')){
                var id = this.getParent('div').id.split('-').pop();
                var children = this.getParent('div').getChildren('div');
                var count = 0;
                this.getFirst().addClass('star_selected');
                for(var i=0; i<children.length; i++){
                    if(children[i]!=this){
                        count+=1;
                        children[i].getFirst().addClass('icon_star_active');
                    } else {
                        count+=1;
                        children[i].getFirst().addClass('icon_star_active');
                        break;
                    }
                }
                new Request.JSON({
                            'url': 'catalog/vote_message.json',
                            onComplete: function(res) {
                                if(res.res){
                                    for(var i=0; i<res.res.length; i++) {
                                        if(res.res[i] == 1) {
                                            children[i].getFirst().addClass('icon_star_active');
                                        } else if(res.res[i] == 0) {
                                            children[i].getFirst().removeClass('icon_star_active');
                                        } else {
                                            children[i].getFirst().addClass('icon_star_half_active');
                                        }
                                    }
                                    $('vote-'+id).removeClass('vote_active');
                                    $('mypoint-'+id).getLast('span').innerHTML = count;
                                    $('mypoint-'+id).getFirst('span').innerHTML = 'моя оценка';
                                    $('mypoint-'+id).addClass('voted');
                                    $('mypoint-'+id).removeClass('hidden');
                                }
                            }
                        }).post({
                            'id': id,
                            'point': count,
                            'flag':3
                        });
            }
        	evt.stop();
    	});
    });

    if(document.getElementById('close_review_window')) {
        $('close_review_window').addEvent('click', function() {
            this.getParent('div').addClass('none');
        });
    }
    if(document.getElementById('external_logout')){
        $('external_logout').addEvent('click', function(){
           location = '/logout/';
        });
    }
    $$('.edit').each(function(item){
    	item.addEvent('click',function(evt){
    		var id = 'reply-to-'+evt.target.id.split('-').pop();
            var mid = evt.target.id.split('-').pop();
            $$('#post_comment_form .post_comment_header_forum').addClass('none');
            $$('#post_comment_form .block_wide_bottom_res').addClass('none');
            $('close_form').removeClass('none');
    		$(id).grab($('post_comment_form'), 'after');
            $('field-text').setStyle('width', $(id).getWidth()-240);
            $('field-subject').addClass('none');
            $('label-for-field-subject').addClass('none');
            $('field-text').value = $('content-'+mid).innerHTML;
            $('field-text').value = $('field-text').value.replace( /\<br(\s*\/|)\>/g, '' );
            $('is_edit').value = 1;
            $('id_message').value = mid;
            if(document.getElementById('existing_user')) {
                $('existing_user').addClass('none');
            }
            $('_node_id_parent').value = evt.target.id.split('-').pop();
        	evt.stop();
    	});
    });

    if(document.getElementById('newcategoryform')) {
        $('addcategory').addEvent(
                'click', function(){
                        var caterr = 0;
                        if(($('title').value == null) || ($('title').value == '')) {
                            $('cateerr').removeClass('none');
                        } else {
                            $('cateerr').addClass('none');
                            $('newcategoryform').submit();
                        }
        });
    }
    
    $$('.show_move_message').each(function(item) {
        item.addEvent('click', function(evt) {
            var id = this.id.split('-').pop();
            $('message_to_move_id').value = id;
            var eleft = this.getParent('div').getLeft();
            var etop = this.getParent('div').getTop();
            $('categories_tree').setStyle('left', eleft+200);
            $('categories_tree').setStyle('top', etop+25);
            $('categories_tree').removeClass('none');
            $('type-edit').set('value',1);
            $$('.message_action').each(function(item){
                var id = item.getParent().get('value');
                item.set('onClick','javascript:moveMessage('+id+');');
            });
        });
    });
    if(document.getElementById('close_category_window')) {
        $('close_category_window').addEvent('click', function() {
            this.getParent('div').addClass('none');
        });
    }

    $$('.move_forum_category').each(function(item) {
        item.addEvent('click', function(evt) {
            var id = this.getParent('div').getPrevious('a').get('id');
            $('message_to_move_id').value = id;
            var eleft = this.getParent('div').getLeft();
            var etop = this.getParent('div').getTop();
            $('categories_tree').setStyle('left', eleft+200);
            $('categories_tree').setStyle('top', etop+25);
            $('categories_tree').removeClass('none');
            $('type-edit').set('value',2);
            $$('.message_action').each(function(item){
                var id = item.getParent().get('value');
                item.set('onClick','javascript:moveCategory('+id+');');
            });


        });
    });
    
    if(document.getElementById('close_category_window')) {
        $('close_category_window').addEvent('click', function() {
            this.getParent('div').addClass('none');
        });
    }

    $$('.more').each(function(item){
        item.addEvent('click',function(evt){
            var id = evt.target.get('id').split('-').pop();
            new Request({
                'url' : '/forum/get_read_more/',
                'onComplete': function(res) {
                    $('content-'+id).appendText(res);
                    $('more-'+id).getParent('div').setStyle('display','none');
                }
            }).post({
               'id': id 
            });
        });
    });
    if(document.getElementById('is-system')){
        $('is-system').addEvent('click', function(){
           if(this.value == 1) {
               this.value = 0;
           } else {
               this.value = 1;
           }
        });
    }
});
function validEmail(string){
     return /^((([a-z]|[0-9]|!|#|$|%|&|'|\*|\+|\-|\/|=|\?|\^|_|`|\{|\||\}|~)+(\.([a-z]|[0-9]|!|#|$|%|&|'|\*|\+|\-|\/|=|\?|\^|_|`|\{|\||\}|~)+)*)@((((([a-z]|[0-9])([a-z]|[0-9]|\-){0,61}([a-z]|[0-9])\.))*([a-z]|[0-9])([a-z]|[0-9]|\-){0,61}([a-z]|[0-9])\.)[\w]{2,4}|(((([0-9]){1,3}\.){3}([0-9]){1,3}))|(\[((([0-9]){1,3}\.){3}([0-9]){1,3})\])))$/.test(string);
}

function makeTree(nodes, parentid){
    var parent = $('list-'+parentid);
    var ul = new Element('ul').inject(parent);
    for(var i in nodes) {
        var li = new Element('li', {'id': 'list-'+i,'value' : i, 'class' : 'forum_path_title'}).inject(ul);
        li.innerHTML = nodes[i].title;
        li.innerHTML += '  <span class="message_action"  onClick="javascript:moveMessage('+i+');">Переместить</span>';
        makeTree(nodes[i].children, i);
    }
}

function moveMessage(idcategory, idproduct){
    if(idcategory != null){
        $('new_category_id').value = idcategory;
        $('change_message_category').submit();
    }

}

function moveCategory(idcategory, idproduct){
    if(idcategory != null){
        $('new_category_id').value = idcategory;
        $('change_message_category').submit();
    }

}
