/* # RwGet # */
RwGet = {
    pathto: function(path, file) {
        var rtrim = function(str, list) {
            var charlist = !list ? 's\xA0': (list + '').replace(/([\[\]\(\)\.\?\/\*\{\}\+\$\^\:])/g, '$1');
            var re = new RegExp('[' + charlist + ']+$', 'g');
            return (str + '').replace(re, '');
        };
        var jspathto = rtrim(RwSet.pathto, "javascript.js");
        if ((path !== undefined) && (file !== undefined)) {
            jspathto = jspathto + path + file;
        } else if (path !== undefined) {
            jspathto = jspathto + path;
        }
        return jspathto;
    },
    baseurl: function(path, file) {
        var jsbaseurl = RwSet.baseurl;
        if ((path !== undefined) && (file !== undefined)) {
            jsbaseurl = jsbaseurl + path + file;
        } else if (path !== undefined) {
            jsbaseurl = jsbaseurl + path;
        }
        return jsbaseurl;
    }
};
// 'gravity' is the global object for the Gravity RapidWeaver theme
var gravity = {};
// reduce potential conflicts with other scripts on the page
gravity.jQuery = jQuery.noConflict(true);
var $gravity = gravity.jQuery;
// Create unique object and namespace for theme functions
gravity.themeFunctions = {};
// Define a closure
gravity.themeFunctions = (function() {
    // When jQuery is used it will be available as $ and jQuery but only
    // inside the closure.
    var jQuery = gravity.jQuery;
    var $ = jQuery;
	var $gravity = jQuery.noConflict();

	function mobileCheck() { if((navigator.userAgent.match(/iPhone/i))||(navigator.userAgent.match(/iPod/i))||(navigator.userAgent.match(/Android/))||(navigator.userAgent.match(/webOS/))||(navigator.userAgent.match(/BlackBerry/))) { return "TRUE"; } else { return "FALSE"; } }
	
	function iPadCheck() { if(navigator.userAgent.match(/iPad/i)) { return "TRUE"; } else { return "FALSE"; } }

	function mobileViewport(){
		if( mobileCheck() == "TRUE" && ($gravity('#mobileMenuTab').is(':visible')) ){
			$gravity('head').append('<meta name = "viewport" content = "width=device-width, initial-scale=1, maximum-scale=1" />');
			$gravity('#mainMenu').addClass('menuNoGradient');
		}
	}
	$gravity(function(){ mobileViewport(); });
	
	$gravity(document).ready(function() {
		if( mobileCheck() == "TRUE" && ($gravity('#mobileMenuTab').is(':visible')) ){ mobileMenu(); mobileImageResize(); } else { nimblehostMenu(); }
		if( iPadCheck() == "TRUE" ) { iPadAdjustments(); }
		
		extraContent();
		siteEnhancements();
		
		var breadcrumbWidth = $gravity("#breadcrumbcontainer").width() + 6;
		$gravity("#breadcrumbcontainer").css({width: breadcrumbWidth + 'px', float: 'none'});
	});
	
	function nimblehostMenu() {
	 	var nhMenuConfig = { sensitivity: 3, interval: 30, over: revealChildren, timeout: 400, out: hideChildren};
		function revealChildren(){ $gravity(this).find("ul:first").css({display: "block"}); }
		function hideChildren(){ $gravity(this).find("ul:first").fadeOut(300); }
	 	
	 	$gravity("#mainMenu ul .menuSection").each(function(){
	 		var sectionLabel = $gravity(this).text();
	 		$gravity("<li class='menuSectionLabel' style='display: block;'>" + sectionLabel + "</li>").insertBefore($gravity(this).parent().parent());
	 	});
	 	
	 	$gravity("<div class='menuPointer'></div>").prependTo($gravity("#mainMenu ul ul"));
	 	$gravity("#mainMenu ul ul").css('margin-top', '15px');
	 	$gravity("#mainMenu ul ul ul").css('margin', '-7px 0 0 15px');
	 	$gravity("#mainMenu ul ul ul").parent().append("<span class='childIndicator'>&middot;</span>");
	 	$gravity("#mainMenu ul ul").css({display: "none"}); //Opera fix
		$gravity("#mainMenu ul li").hoverIntent(nhMenuConfig); 
	}
	
	function iPadAdjustments() {
		if ( ($gravity('#pageHeader').width() > '900') ) { $gravity('#pageHeader, #pageContent, #subFeature, #footerECwrapper').css({width: '94%'}); }
		var contentWidth = $gravity('#contentContainer #content').width();
		$gravity('#content .imageStyle').each(function(){ if(($gravity(this).width()) > contentWidth){ $gravity(this).css({width: '100%', height: 'auto'}); } });
	}
	
	function mobileMenu() {
		$gravity("#mainMenu ul ul").parent().append("<span class='childIndicator'>&#8964;</span>");
		$gravity("#mainMenu ul .menuSection").each(function(){
	 		var sectionLabel = $gravity(this).text();
	 		$gravity("<li class='menuSectionLabel'>" + sectionLabel + "</li>").insertBefore($gravity(this).parent().parent());
	 	});
		
		$gravity('#mobileMenuTab, #hideMenu').click(function () {
			$gravity('#mainMenuWrapper').fadeToggle('medium', function() {
				if ( $gravity('#mainMenuWrapper').is(':visible') ) {
					$gravity('#mobileMenuTab').fadeTo('fast', 0).animate({backgroundPosition: '0 0'}, 0).fadeTo('fast', 1);		
				} else {
					$gravity('#mobileMenuTab').fadeTo('fast', 0).animate({backgroundPosition: '0 -50'}, 0).fadeTo('fast', 1);
				}
			});
		});
		
		var nhMenuConfig = { sensitivity: 3, interval: 30, over: revealChildren, timeout: 400, out: hideChildren};
		function revealChildren(){ $gravity(this).find("ul:first").slideDown() }
		function hideChildren(){ $gravity(this).find("ul:first").slideUp(); }
		$gravity("#mainMenu ul li").hoverIntent(nhMenuConfig);
	}
	
	function mobileImageResize() {
		var contentWidth = $gravity('#pageContent').width();
		$gravity('img.imageStyle').each(function(){ if( ($gravity(this).width() > contentWidth) ) {	$gravity(this).css({width: '100%', height: 'auto'}); } });
		$gravity('#logo img').each(function(){ if( ($gravity(this).width() > contentWidth) ) {	$gravity(this).css({width: '100%', height: 'auto'}); } });
		$gravity(window).load(function(){ if( ($gravity('#headerImage img').width() > contentWidth) ) { $gravity('#headerImage img').css({width: '100%', height: 'auto'}); } });
		if( $gravity('#logo').css('float') === "right" ) { $gravity('#logo').css('right', '40px'); }
	}

	/* ExtraContent */
	function extraContent() {
		var extraContent =  (function() {
			var ecValue = 10;
			for (i=1;i<=ecValue;i++)
			{
				$gravity('#myExtraContent'+i+' script').remove();
				$gravity('#myExtraContent'+i).appendTo('#extraContainer'+i).show(0);
			}
		})();
	}
	
	function siteEnhancements() {
		$gravity("p.blog-entry-tags").each(function(){
			$gravity('<div class="clearer"></div>').insertBefore($gravity(this));
			$gravity('<div class="clearer"></div>').insertAfter($gravity(this));
		});
		
		$gravity(window).load(function(){
			if ( !($gravity('#blog-rss-feeds').is(':visible')) ) {
				$gravity('ul.blog-tag-cloud').css({borderWidth: '0px', marginBottom: '5px', paddingBottom: '0px'});
			}
			
			if ( !($gravity('#blog-rss-feeds').is(':visible')) && !($gravity('ul.blog-tag-cloud').is(':visible')) ) {
				$gravity('#blog-archives').css({borderWidth: '0px', paddingBottom: '5px'});
			}
		});
		
		$gravity('<div class="entryDivider"></div>').insertAfter('.filesharing-item');
		$gravity('.filesharing-item').addClass('enhancedFilesharingItem');
	}
	
	/**
	* hoverIntent r6 // 2011.02.26 // jQuery 1.5.1+
	* <http://cherne.net/brian/resources/jquery.hoverIntent.html>
	* 
	* @param  f  onMouseOver function || An object with configuration options
	* @param  g  onMouseOut function  || Nothing (use configuration options object)
	* @author    Brian Cherne brian(at)cherne(dot)net
	*/
	(function($){$.fn.hoverIntent=function(f,g){var cfg={sensitivity:7,interval:100,timeout:0};cfg=$.extend(cfg,g?{over:f,out:g}:f);var cX,cY,pX,pY;var track=function(ev){cX=ev.pageX;cY=ev.pageY};var compare=function(ev,ob){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);if((Math.abs(pX-cX)+Math.abs(pY-cY))<cfg.sensitivity){$(ob).unbind("mousemove",track);ob.hoverIntent_s=1;return cfg.over.apply(ob,[ev])}else{pX=cX;pY=cY;ob.hoverIntent_t=setTimeout(function(){compare(ev,ob)},cfg.interval)}};var delay=function(ev,ob){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);ob.hoverIntent_s=0;return cfg.out.apply(ob,[ev])};var handleHover=function(e){var ev=jQuery.extend({},e);var ob=this;if(ob.hoverIntent_t){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t)}if(e.type=="mouseenter"){pX=ev.pageX;pY=ev.pageY;$(ob).bind("mousemove",track);if(ob.hoverIntent_s!=1){ob.hoverIntent_t=setTimeout(function(){compare(ev,ob)},cfg.interval)}}else{$(ob).unbind("mousemove",track);if(ob.hoverIntent_s==1){ob.hoverIntent_t=setTimeout(function(){delay(ev,ob)},cfg.timeout)}}};return this.bind('mouseenter',handleHover).bind('mouseleave',handleHover)}})(jQuery);

})(gravity.themeFunctions);
