;(function(){
	// Global object
	window.DSG = {
		fn: {} // functions
	};
	window.SearchObj = {
		fn: {} // functions
	};
	
	// Header nav
	DSG.fn.headerNav = function() {
		
		function getHoverClass($elt) {
			return "hover" + (($elt.hasClass("first"))? " hover-first" : ($elt.hasClass("last"))? " hover-last" : "");
		};
		
		var $hoverNavs = $j("#header-nav ul.top-nav >li >ul");
		
		$hoverNavs.parent().hover(
			
			function() {
				
				var $this = $j(this);
				var docWidth = $j(document).width();
				
				var $thisHoverNav = $this.addClass( getHoverClass($this) ).find(">ul").show().css({left: 0, right: "auto"});
				
				var hoverNavRight = $thisHoverNav.offset().left + $thisHoverNav.outerWidth();
				
				if ( hoverNavRight > docWidth ) {
					$thisHoverNav.css({left: "auto", right: 0});
				}
				
				$thisHoverNav.setWindowed();
			},
			
			function() {
				$j(this).find(">ul").hide().unsetWindowed()
				.parent().removeClass( getHoverClass( $j(this) ) );
			}
		)
		
		.parent().addClass("top-nav-js").end();
		
		// Firefox fix
		$j(function(){
			$j("#header-search-field").mouseover(function(){
				$hoverNavs.parent().trigger("mouseleave");
			});
		});
	};
	
	
	// Add "js" class to body element
	$j(function(){
		$j("body").addClass("js");
	});
	
	// Main AJAX setup : trim AJAX response
	$j.ajaxSetup({dataFilter:function(data,type){return $j.trim(data);}});
})();
