﻿jQuery.fn.flashMenu = function(options) {
  
    var options = jQuery.extend( {
    width:980,
    height:316,
    imageDivClass:'flashMenuImage',
    linkDivClass:'flashMenuLink',
    items:0,
    itemWidth:0,
    zindex:5,
    linkWidthShrink:2,
    linkWidthReminder:0,
    linkWidth:0,
    linkHeight:50,
    linkHoverHeight:100
    },options);

   
    return this.each(function() {
        if (options.items == 0)
        {
            options.items = jQuery(this).find('.'+options.imageDivClass).length;
        }
        
        if (options.itemWidth == 0)
        {
            options.itemWidth = options.width / options.items; 
        }
        if (options.linkWidth == 0)
        {
            options.linkWidth = (options.width - ((options.items * options.linkWidthShrink)-options.linkWidthShrink) )/ options.items;
            var linkWidth = (options.width - ((options.items * options.linkWidthShrink)-options.linkWidthShrink) )/ options.items;
            var linkWidthFloor = Math.floor(linkWidth);
            options.linkWidthReminder = (options.linkWidth -linkWidthFloor);
        }
        
        jQuery(this).attr("currentlyOver","0");
        for(var count=0;count<=options.items;count++)
        {
            var top = count * options.height;
            var top = "-"+top+"px";
            var left = count * options.itemWidth;
            
            $("."+options.imageDivClass+(count+1)).css("position","relative");
            $("."+options.imageDivClass+(count+1)).css("top",top);
            $("."+options.imageDivClass+(count+1)).css("left",left);
            $("."+options.imageDivClass+(count+1)).attr("pos",(count+1));
            $("."+options.imageDivClass+(count+1)).css("width",options.itemWidth);
            
                       
            
            
            var linkTop = (count+ options.items) * options.height;
            linkTop = linkTop - (linkTop * 2);
            var linkLeft = count * options.itemWidth;
            if ($.browser.msie)
            {
                //linkLeft = linkLeft + options.linkWidthShrink;
            }
            
            $("."+options.linkDivClass+(count+1)).css("position","relative");
            $("."+options.linkDivClass+(count+1)).css("top",linkTop);
            $("."+options.linkDivClass+(count+1)).css("left",linkLeft);
            $("."+options.linkDivClass+(count+1)).css("z-index",options.zindex);
            $("."+options.linkDivClass+(count+1)).css("height",options.height);
            $("."+options.linkDivClass+(count+1)).css("width",options.itemWidth);
            $("."+options.linkDivClass+(count+1)).attr("pos",(count+1));
            
            $("."+options.linkDivClass+(count+1)).click(function()
            {
                var position = $(this).attr("pos");
                window.location.href = $("."+options.linkDivClass+position+" a").attr("href");
            });
            
            
            $("."+options.linkDivClass+(count+1)).mouseover(function()
            {
                var position = $(this).attr("pos");
                var hoverTop = options.height - options.linkHeight;
                $("."+options.linkDivClass+position+" a").css("top",hoverTop);
                $("."+options.linkDivClass+position+" a").css("height",options.linkHoverHeight);
                $("."+options.linkDivClass+position).addClass("flashMenuLink"+position+"Selected");
                $("."+options.imageDivClass+position).css("z-index",5);
                $("."+options.imageDivClass+position).animate({width:options.width,left:0},options.speed);
                //$("#htmlDebug").html("over"+position);
            });
            $("."+options.linkDivClass+(count+1)).mouseleave(function()
            {
                var position = $(this).attr("pos");
                var leftValue = (position-1) * options.itemWidth;
                $("."+options.linkDivClass+position+" a").css("top",options.height);
                $("."+options.linkDivClass+position+" a").css("height",options.linkHeight);
                $("."+options.linkDivClass+position).removeClass("flashMenuLink"+position+"Selected");
                $("."+options.imageDivClass+position).css("z-index",0);
                $("."+options.imageDivClass+position).animate({width:options.itemWidth,left:leftValue},options.speed);
                //$("#htmlDebug").html("mouseOut"+position);
            });
            
            var ilinkWidth = options.linkWidth;
            
            if (count == 0)
            {
                //alert(options.linkWidthReminder);
                ilinkWidth += (options.linkWidthReminder * options.items);
            }
            if ($.browser.msie)
            {
                ilinkWidth = options.itemWidth;  
            }
            else
            {
                ilinkWidth += (options.linkWidthReminder * options.items);
            }
            
            $("."+options.linkDivClass+(count+1)+" a").css("width",ilinkWidth);
            $("."+options.linkDivClass+(count+1)+" a").css("top",options.height);
            $("."+options.linkDivClass+(count+1)+" a").css("height",options.linkHeight);
        }

    });

  
};

