(function($) {

    $.fn.Navigation = function(subNavigationBlocks, navigationButton, navigationElements) {

        return $(this).each(function() {
            var root = $(this);
            var hoverElements = root.find(navigationElements);
            var navigateButton = $(navigationButton);
            var offsetElements = root.find(subNavigationBlocks);
            var miniLogin = $('.MiniLogin');

            var n = null, m = null;

            $(function() {
                var breadcrumbs = $(document).find('.BreadCrumbs');
                breadcrumbs.find('a:last').addClass('Current');
            });

            var selectedBlock = offsetElements.find('li.Menu-sel');

            selectedBlock.parent().prev('a').addClass('Menu-sel');

            navigateButton.add(miniLogin).bind('mouseover', function() {
                var el = $(this);
                n = setTimeout(function() {
                    miniLogin.show('fast');
                }, 500);
                clearTimeout(m);
            }).bind('mouseout', function() {
                var el = $(this);
                m = setTimeout(function() {
                    miniLogin.hide('fast');
                }, 500);
                clearTimeout(n);
            });

            offsetElements.each(function() {
                var parent = $(this).parent();
                var subNavElements = $(this).find('li');
                if (subNavElements.length <= 5) {
                    $(this).addClass('OneColumn');
                }
                var offsetRight = parseInt(parent.parent().outerWidth()) + parseInt(root.css('margin-left'));
                var elementOffset = parseInt(parent.parent().css('margin-left')) + parseInt(parent.position().left) + parseInt($(this).outerWidth());
                if (elementOffset > offsetRight) {
                    var width = parent.parent().width();
                    var right = parseInt(width) - parseInt(parent.position().left) - parseInt(parent.width()) + parseInt(root.css('margin-left')) - 3;
                    $(this).css('right', right).css('left', null);
                }
            });
            var t = null, k = null;
			var loginButton = $('.LoginButton');
			loginButton.bind('mouseover', function() {
				clearTimeout(t);
				clearTimeout(k);
				
				t = setTimeout(function() {
					hoverElements.removeClass('Hover');
                }, 500);
			});
            hoverElements.bind('mouseover', function() {
                var el = $(this);
                k = setTimeout(function() {
                    el.addClass('Hover');
                    hoverElements.not(el).removeClass('Hover');
                }, 500);
                clearTimeout(t);
            }).bind('mouseout blur', function() {
                var el = $(this);
                t = setTimeout(function() {
                    el.removeClass('Hover');
                }, 500);
                clearTimeout(k);
            });
        });
    };



    $(function() {

        function doSearch(e) {
            var terms = $("#minisearchinput").val().replace(/^\s+|\s+$/g, "");
            if (terms != "") {
                location.href = "/SearchResults/tabid/39/Default.aspx?Search=" + encodeURIComponent(terms);
            }
            e.preventDefault();
            return false;
        }

        $("#minisearchinput").click(function() {
            this.select();
        }).keypress(function(e) {
            if (e.which == 13) {
                return doSearch(e);
            }
        });

        $("#minisearchbutton").click(doSearch);
        var inputDefault = $('#minisearchinput').val();

        $('#minisearchinput').bind('focus', function() {
            if ($(this).val() == inputDefault) {
                $(this).val("");
            }
        }).bind('blur', function() {
            if ($(this).val() == '') {
                $(this).val(inputDefault);
            }
        });

    });
})(jQuery);