﻿(function($) {
    $.fn.tabs = function(options) {
        var defaults = {
            SelectedClass: "selected",
            NavigationLinkSelector: "ul a",
            ContainerSelector: "div.tabContainer > div"
        };

        var settings = $.extend({}, defaults, options);

        var $TabPanel = $(this);
        var $NavigationLinks = $(settings.NavigationLinkSelector, $TabPanel);
        var $Containers = $(settings.ContainerSelector, $TabPanel);

        $Containers.hide().first().show();
        $NavigationLinks.first().addClass(settings.SelectedClass);

        $NavigationLinks.each(function(index, value) {
            $(this).bind("click", function(e) {
                e.preventDefault();

                var $this = $(this);

                $NavigationLinks.removeClass(settings.SelectedClass);
                $Containers.hide();
                $($this.attr("href")).show();

                $this.addClass(settings.SelectedClass);
            });
        });

        return this;
    }
})(jQuery);

(function($) {
    $.fn.megaMenu = function(options) {
        var $this = $(this);
        var $children = $this.children();

        var defaults = {
            SubClass: ".sub",
            FadeOpacity: 0,
            MaxWidth: "auto",
            FadeSpeed: "fast",
            sensitivity: 2,
            interval: 10,
            over: megaHoverOver,
            timeout: 50,
            out: megaHoverOut
        };

        var settings = $.extend({}, defaults, options);

        $this.find(settings.SubClass).css({ 'opacity': settings.FadeOpacity });
        $children.hoverIntent(settings);

        if (settings.MaxWidth === "auto") {
            var tWidth = 0;

            $children.each(function(index, value) {
                tWidth += $(this).width() + 1;
            });

            $this.width(tWidth);
        }

        function megaHoverOver() {
            $(this).find(settings.SubClass).stop().fadeTo(settings.FadeSpeed, 1, function() { $(this).show(); });
        }

        //On Hover Out
        function megaHoverOut() {
            $(this).find(settings.SubClass).stop().fadeTo(settings.FadeSpeed, 0, function() { $(this).hide(); });
			 Cufon.refresh();
        }
		
		/*$("ul#megaMenu li a").hover(
		function () {
			$(this).css({'background-color' : '#ffffff'}) ;
		},
		function () {
			$(this).css({'background-color' : '#3d3d3d'}) ;
		}
		);
		
		$("ul#megaMenu li a").hover(
		function () {
			$(this).stop().animate({
				
				background: '#ffffff',
				color:'#333333'
				}, "fast", function() {
				});
		},
		function () {
			$(this).removeClass("hover");
		}
		);
		
		///////////////////////////////////////*/
		
		$("ul#megaMenu > li").hover(
		function () {
			$(this).addClass("hover");
		},
		function () {
			$(this).removeClass("hover");
		}
		);
		
    }
})(jQuery);

(function($) {
    $.fn.accordion = function(options) {
        var defaults = {
            HeaderSelector: "h2,h3",
            TeaserSelector: "div.info",
            BodySelector: "div.more",
            SpriteOpenText: "more &raquo;",
            SprintCloseText: "close &raquo;",
            ToggleSpeed: 500
        };

        var settings = $.extend({}, defaults, options);

        var $Accordion = $(this);
        var $Header = $(settings.HeaderSelector, $Accordion);
        var $Teaser = $(settings.TeaserSelector, $Accordion);
        var $Body = $(settings.BodySelector, $Accordion);

        $Body.addClass("section").hide();
        //        $Body.each(function() {
        //            $Container = $(this);

        //            var tHeight = 0;

        //            $Container.children().each(function(index, value) {
        //                tHeight += $(this).height();
        //            });

        //            $Container.height(tHeight).hide();
        //        });

        $Teaser.css("cursor", "pointer");
        $Header.css("cursor", "pointer");
        $("<span class='toggleSprite'>" + settings.SprintCloseText + "</span>").appendTo($Teaser);

        $Header.each(function() {
            $(this).bind("click", function() {
                ProcessClick($(this).siblings(settings.TeaserSelector));
            });
        });

        $Teaser.each(function() {
            $(this).bind("click", function() {
                ProcessClick($(this));
            });
        });

        function ProcessClick($this) {
            $this.siblings(settings.BodySelector).slideToggle(settings.ToggleSpeed);
            $this.toggleClass("close");

            if (settings.SpriteOpenText != settings.SprintCloseText) {
                $this.find("span.toggleSprite").html($this.hasClass("close") ? settings.SpriteOpenText : settings.SprintCloseText);
            }
        }

        return this;
    }
})(jQuery);
