$(function(){

    var commentsScrollSettings = {
        scrollbarWidth:9,
        dragMinHeight:40,
        dragMaxHeight:40
    };

    $('#s').labelify();

    $('.comment-n-share input[type=text], .comment-n-share textarea').labelify();

    $('#sneak-peek, .post .post-gallery').dxSlider();

    $('div.comments .list li span a').attr('rel', 'external');
    $("a[rel=external]").attr('target', '_blank');
    
    var validateOptions = {
        rules:{
            author:{
                required:true,
                minlength:2
            },
            email:{
                required:true,
                email:true
            },
            comment:{
                required:true
            }
        },
        messages:{
            author:{
                required:'Please provide your name',
                minlength:'Your name must be at least 2 characters long'
            },
            email:{
                required:'Please provide your correct email address'
            },
            comment:{
                required:'Please provide your message',
                minlength:'Your message must be at least 5 characters long'
            }
        },
        ignoreTitle: true,
        onkeyup: false,
        onfocusout: false,
        showErrors:function(errorMap, errorList){
            $.each(errorList, function(key, elm){
                $(elm.element)
                   .animate( {opacity: 0.2}, 175 )
                   .animate( {opacity: 1}, 150 )
                   .animate( {opacity: 0.2}, 150 )
                   .animate( {opacity: 1}, 150 )
                   .animate( {opacity: 0.2}, 150 )
                   .animate( {opacity: 1}, 150 );
            })
        }
    };
    
    $('form.comment-form').each(function(key, form){
        $(form).validate(validateOptions);
    });
    
    $('#nav ul li a').click(function(){
        var fn = $(this);
        var container = $('#nav-' + fn.parent().attr('class'));
        if (container.length) {
            openContainer(container, fn);
            return false;
        }
        return true;
    });

    var openContainer = function(container, fn)
    {
        fn.parent().siblings().find('a').removeClass('active');
        if (container.is(':visible')) {
            container.slideUp('fast', function(){
                $('#nav').css('border-color', '#fff');
                fn.removeClass('active');
            });
            
        } else {
            var sibl = container.siblings(':visible');
            if (sibl.length) {
                sibl.slideUp('fast', function(){
                    container.slideDown('fast');
                });
            } else {
                container.slideDown('fast');
            }
            $('#nav').css('border-color', '#c6d139');
            fn.addClass('active');
        }
    }

    

    




    $('div.post a.add-comment').click(function(){
        var link = $(this);
        var post = $(this).parents('div.post');
        var share = post.find('.comment-n-share');


        share.scrollTo();

//        post.find('div.comment-n-share').slideToggle('fast', function(){
//            var fn = $(this);
//            if (fn.is(':visible')) {
//                share.scrollTo();
//            }
//        });

        return false;
    });

    $('div.post a.view-comments').click(function(){
        var link = $(this);
        var post = $(this).parents('div.post');

        post.find('div.comments').slideToggle('fast', function(){
            var fn = $(this);
            if (fn.is(':visible')) {
                $(this).find('.list').jScrollPane(commentsScrollSettings);
                link.scrollTo();
            }
        });
        return false;
    });

    $('div.post a.open-comments').click(function(){
        $(this).parents('div.post').find('a.view-comments').trigger('click');
        return false;
    })



    $('div.post a.toggle').click(function(){
        var fn = $(this);
        var post = fn.parents('div.post');
        var more = post.find('div.more');
        
        if (more.is(':visible')) {
            more.slideUp('fast', function(){
                fn.text('Vezi mai mult');
            });
            more.find('div.comment-n-share, div.comments').hide();
        } else {
            var postSiblings = post.siblings('div.post').find('div.more:visible');
            postSiblings.hide()
                .find('div.comment-n-share, div.comments').hide();
            
            more.slideDown('fast', function(){
                fn.text('Închide postul');
                post.scrollTo();
            });
        }
        return false;
    });

    $('div.post .post-gallery').click(function(){
        $(this).parents('.post').find('a.toggle').trigger('click');
        return false;
    })
    

    function _initSidebarBoxes()
    {
        var sidebar = $('#sidebar');
        var box = sidebar.find('div.box');

        box.find('a.title').click(function(){
            var fn = $(this);
            var b = fn.parent();
            var toggle = b.find('div.toggle');

            if (toggle.is(':visible')) {
                toggle.slideUp();
                fn.css('background-position', '0 100%');
            } else {
                toggle.slideDown();
                fn.css('background-position', '0 0');
            }
            return false;
        })
    }
    _initSidebarBoxes();

    


    $('div.post a.toggle').click(function(obj, isComment){

        var fn = $(this);
        var post = fn.parents('div.post');
        var more = post.find('div.more');

        if (more.is(':visible')) {
            more.hide();
            post.removeClass('open-post');
        } else {
            // close other posts
            post.siblings('.open-post').find('a.toggle').trigger('click');
            more.slideDown(400, function(){
                post.addClass('open-post');

                if (isComment) {
                    post.find('div.postmeta').scrollTo();
                } else {
                    post.scrollTo();
                }
            });
        }
        return false;
    });

    $('div.post a.open-comments').click(function(){
        var fn = $(this);
        var post = fn.parents('div.post');
        var meta = post.find('div.postmeta');
        if (!post.find('.more').is(':visible')) {
            post.find('a.toggle').trigger('click', [true]);
        } else {
            meta.scrollTo();
        }
        return false;
    });
});
