﻿(function($) {
    
    $.sizeGuide = function(options) {
        return $.sizeGuide.impl.init(options);
    };
    
    $.fn.sizeGuide = function(options) {
        return $.sizeGuide.impl.init(this, options);
    };
    
    /*
    * default options
    */
    $.sizeGuide.defaults = {
        category: null
    };
    
$.sizeGuide.impl = {

    /*
    * options
    */
    opts: null,

    /*
    * helper
    */
    helper: {},

    /*
    * Initialize the page
    */
    init: function(modal, options) {
        
        var self = this;
        
        this.opts = $.extend({}, $.sizeGuide.defaults, options);
        
        // helpers
        self.helper.modal = modal;
        self.helper.overlay = $('<div class="overlay"></div>').insertBefore(self.helper.modal);
        self.helper.close = $('<a class="close-sizeGuide" href="#">' + self.opts.res.close + '</a>').prependTo(self.helper.modal);
        
        // initialize the size guide tabs
        self.helper.modal.find('ul.tab-collection').tabs({
            defaultTab: self.opts.category
        });
        
        // position
        self.position();
        
        // events
        self.events();
        
        return self;
    },

    /*
    * Position
    */
    position: function() {

        var self = this;
        var $content = $('div#content');
        
        self.helper.modal
            .css({
                left: '50%',
                top: '50%',
                marginLeft: -self.helper.modal.outerWidth() / 2 + 'px',
                marginTop: -self.helper.modal.outerHeight() / 2 + 'px'
            })
            ;

        return;
    },

    /*
    * Events
    */
    events: function() {
        
        var self = this;
        
        // open
        $('a.open-sizeGuide').click(function(e) {
            e.preventDefault();
            self.show();
        });
        
        // close
        self.helper.close.click(function(e) {
            e.preventDefault();
            self.hide();
        });
        
        // overlay
        self.helper.overlay.click(function(e) {
            e.preventDefault();
            self.hide();
        });
        
        return;
    },

    /*
    * Show
    */
    show: function() {
        
        var self = this;
        
        self.helper.modal
	        .fadeIn(1000)
	        ;
        
        self.helper.overlay
	        .css({
	            opacity: '0.00',
	            display: 'block'
	        })
	        .fadeTo(1000, '0.60')
	        ;
        
        return;
    },
    
    /*
    * Hide
    */
    hide: function() {
        
        var self = this;
        
        self.helper.modal
	        .fadeOut(1000)
	        ;
        
        self.helper.overlay
	        .fadeOut(1000)
	        ;
        
        return;
    },
    
    /*
    * Block
    */
    block: function() {
        
        var self = this;
        
        self.helper.form
	        .block({
	            message: null,
	            overlayCSS: {
	                backgroundColor: '#000',
	                opacity: '0.60'
	            }
	        })
            ;
        
        return;
    },
    
    /*
    * Unblock
    */
    unblock: function() {
        
        var self = this;
        
        self.helper.form.unblock();
        
        return;
    }

};
})(jQuery);
