/*
 * Jquery AccordionImageMenu Plugin 0.4.
 * Examples and documentation at: http://web-argument.com/jquery-accordion-image-menu-plugin
 * By Alain Gonzalez (http://web-argument.com)
 * Copyright (c) 2011 Alain Gonzalez 
 * Licensed under the MIT License: http://www.opensource.org/licenses/mit-license.php
*/
(function($) {
    function accordionMenuSetting(obj, settings) {
        this.menuSettings = settings;
        this.menuAnimate = animate;
        var _this = this;
        function animate(obj, i) {
            $.each(obj, function(j) {
                var otherDim = Math.round(((_this.menuSettings.closeDim * obj.length) - (_this.menuSettings.openDim)) / (obj.length - 1));
                //var otherDim = 33;
                var itemDim = otherDim;
                if (j == i) {
                    itemDim = _this.menuSettings.openDim;
                }
                if (typeof i == 'undefined') {
                    if (_this.menuSettings.openItem == null)
                        itemDim = _this.menuSettings.closeDim;
                    else if (_this.menuSettings.openItem == j)
                        itemDim = _this.menuSettings.openDim;
                    else
                        itemDim = otherDim;
                }
                var title = $('span', this);
                title.stop(true, false);
                if (_this.menuSettings.fadeInTitle != null && title.length > 0) {
                    if (itemDim == _this.menuSettings.openDim) {
                        if (_this.menuSettings.fadeInTitle)
                            title.animate({ 'opacity': 0.7 });
                        else title.animate({ 'opacity': 0.7 });
                    }
                    else {
                        if (_this.menuSettings.fadeInTitle)
                            title.animate({ 'opacity': 0.7 });
                        else title.animate({ 'opacity': 0.7 });
                    }
                }
                if (_this.menuSettings.position == 'vertical')
                    $(this).animate({ 'height': itemDim }, _this.menuSettings.duration, _this.menuSettings.effect);
                else
                    $(this).animate({ 'width': itemDim }, _this.menuSettings.duration, _this.menuSettings.effect);
            });
        }
        var $this = $('a', obj);
        _this.menuAnimate($this);
        var maxDim = _this.menuSettings.closeDim * $this.length + _this.menuSettings.border * $this.length + 10;
        if (_this.menuSettings.position == 'vertical')
            $(obj).css({ 'width': _this.menuSettings.width + 'px', 'height': maxDim + 'px' });
        else
            $(obj).css({ 'height': _this.menuSettings.height + 'px', 'width': maxDim + 'px' });
        $.each($this, function(i) {
            ImgSrc = $('img', this).attr('src');
            $('img', this).hide();
            $('img', this).css({ 'left' : '0px' });
            var borderBottomValue = 0;
            var borderRightValue = 'solid ' + _this.menuSettings.border + 'px ' + _this.menuSettings.color; var aWidth = 'auto';
            var aHeight = _this.menuSettings.height + 'px';
            if (_this.menuSettings.position == 'vertical') {
                borderBottomValue = 'solid ' + _this.menuSettings.border + 'px ' + _this.menuSettings.color; borderRightValue = 0;
                aWidth = _this.menuSettings.width + 'px'; aHeight = 'auto'; 
            }
            if (i == ($this.length - 1)) {
                borderBottomValue = 0; 
                borderRightValue = 0; 
            }
            $(this).css({ 'width': aWidth, 'height': aHeight, 'background-image': 'url(' + ImgSrc + ')', 'background-color': _this.menuSettings.color, 'background-repeat': 'no-repeat', 'border-bottom': borderBottomValue, 'border-right': borderRightValue }).mouseenter(function() { $this.stop(true, false); _this.menuAnimate($this, i); });
        }); $(obj).mouseleave(function() { _this.menuAnimate($this); });
    }
    $.fn.AccordionImageMenu = function(options) { var settings = { 'closeDim': 100, 'openDim': 200, 'width': 200, 'height': 200, 'effect': 'swing', 'duration': 400, 'openItem': null, 'border': 2, 'color': '#000000', 'position': 'horizontal', 'fadeInTitle': true }; return this.each(function() { $(this).addClass("aim"); $('br', this).remove(); if (options) $.extend(settings, options); var menu = new accordionMenuSetting(this, settings); }); };
})(jQuery);
