/* jQuery Gooey Menu
 * Created: April 7th, 2011 by DynamicDrive.com. This notice must stay intact for usage
 * Author: Dynamic Drive at http://www.dynamicdrive.com/
 * Visit http://www.dynamicdrive.com/ for full source code
 */

jQuery.noConflict()

jQuery.extend(jQuery.easing, {
    easeOutBack:function(x, t, b, c, d, s){ //see http://gsgd.co.uk/sandbox/jquery/easing/
        if (s == undefined) s = 0.60158;
        return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b;
    }
})
jQuery('.sub-menu').mouseout(function(){
    $(this).hide();
});

var gooeymenu={
    effectmarkup: '<li class="active"></li>',

    setup:function(usersetting){
        jQuery(function($){ //on document.ready
            function snapback(dur){
                if ($selectedlink.length>0)
                    $effectref.dequeue().animate({
                        left:$selectedlink.position().left,
                        width:$selectedlink.outerWidth()
                    }, dur, setting.fx)
            }
            var setting=jQuery.extend({
                fx:'easeOutBack',
                fxtime:500,
                snapdelay:300
            }, usersetting)
            var $menu=$('#'+setting.id).find('li:eq(0)').parents('ul:eq(0)') //select main menu UL
            var $menulinks=$menu.find('li a.link');
            var $menulinks_li=$menu.find('li');
            var $effectref=$(gooeymenu.effectmarkup).css({
                top:$menulinks.eq(0).position().top,
                height:$menulinks.eq(0).outerHeight(),
                zIndex:-1
            }).appendTo($menu) //add trailing effect LI to the menu UL
            $effectref.css({
                left:-$menu.offset().left-$effectref.outerWidth()-5
            }) //position effect LI behind the left edge of the window
            if (typeof setting.selectitem!="undefined"){ //if setting.selectitem defined
                var $selectedlink=$menulinks.removeClass('selected').eq(setting.selectitem).addClass('selected')
            }
            else{
                var $selectedlink=$menulinks.filter('.selected:eq(0)') //find item with class="selected" manually defined
            }
            setting.defaultselectedBool=$selectedlink.length
            $menulinks_li.mouseover(function(){
                clearTimeout(setting.snapbacktimer)
                var $target=$(this)
                //alert($target.position().left+" "+$target.get(0).offsetLeft)
                id=$(this).attr('id');
                $effectref.dequeue().animate({
                    left:$target.position().left,
                    width:$target.outerWidth()
                }, setting.fxtime, setting.fx,function(){
                    
                     
                });
                 $('.sub-menu').hide();
                     id=$target.attr('id');
                     $('#d'+id).show();
            if (setting.defaultselectedBool==0) //if there is no default selected menu item
                $selectedlink=$target //set current mouseover element to selected element
        })
        if ($selectedlink.length>0){
            snapback(0);
            id=$(this).parent().attr('id');
            $menu.mouseleave(function(){
                setting.snapbacktimer=setTimeout(function(){
                    snapback(setting.fxtime)
                }, setting.snapdelay);
                $('.sub-menu').hide();
            })
        }
        $(window).bind('resize', function(){
            snapback(setting.fxtime)
        })
    })
}
}


