﻿/// <reference path="../jquery-1.3.2-vsdoc2.js" />

var tld = window.tld || {};
tld.blog = tld.blog || {};

tld.blog.archives = (function() {
    
    var category, ddlMonths, months, ul, archiveLoading;
    
    function initVars() {
        ddlMonths = $('#ddlMonths');
        months = [
            'January', 
            'February', 
            'March', 
            'April', 
            'May', 
            'June', 
            'July', 
            'August', 
            'September', 
            'October', 
            'November', 
            'December'
        ];
        ul = $('#ul-archive');
        archiveLoading = $('#archive-loading');
    }
    
    function initEvents() {
    
        ddlMonths.change( function( e ) {
            tld.ajax('/WebServices/wsBlog.asmx/getBlogsByMonthAndCategory', JSON.stringify({ month: $(this).val(), category: category }), function( blogs ) {
                ul.hide();
                archiveLoading.show();
                
                if ( blogs && blogs.length > 0 ) {
                    
                    ul.empty();
                    
                    for ( var i = 0; i < blogs.length; i++ ) {
                        var b = blogs[i];
                        $('<li/>')
                            .append($('<a/>').text( b.title ).attr( 'href', '/blog/default.aspx/' + b.url ))
                            .appendTo(ul);
                    }
                    
                    archiveLoading.hide();
                    ul.show();
                }
            
            }, function( error ) {
            
            });    
        
            e.preventDefault();
        });
    
    }
    
    function loadMonths() {
        tld.ajax('/WebServices/wsBlog.asmx/getMonthCountsByCategory', JSON.stringify({ category: category }), function( cMonths ) {
        
            if ( cMonths && cMonths.length > 0 ) {
                for ( var i = cMonths.length - 1; i >= 0; i-- ) {
                    var month = cMonths[i];
                    
                    $('<option/>')
                        .text( months[month.month - 1] + ' ' + month.year + ' (' + month.numBlogs + ')' )
                        .val( month.month )
                        .appendTo( ddlMonths );
                }
                
                ddlMonths.change();
            }
        
        }, function( error ) {
        
        });
    }
    
    function getRecentBlogsSuccess( blogs ) {
        
        if ( blogs && blogs.length > 0 ) {
            ul = $('#ul-rp');
            
            for ( var i = 0; i < blogs.length; i++ ) {
                var b = blogs[i];
                $('<li/>')
                    .append($('<a/>').text( b.title ).attr( 'href', '/blog/default.aspx/' + b.url ))
                    .appendTo(ul);
            }
        }
    }
    
    function getRecentBlogsFailure( error ) {
    
    }
    
    return {
        
        init: function( cat ) {
            category = cat;
            
            initVars();    
            initEvents();
            loadMonths();
        }
        
    }

})();
