/*
	jquery.include-2
	@version  2.0
 	@author   John Hunter on 2008-09-20.
	Licence CC-BSD <http://creativecommons.org/licenses/BSD/>
	
	Uses a standard tag with an src value <span src=""></span> - these are stripped from the dom after loading.
	Can handle nested includes - linking paths in the include file are modifed to match the host page context.
	For post-include scripts $(document).includeReady works the same as $(document).ready
	
	Based on ideas from hinclude by Mark Nottingham <mnot@pobox.com>
*/



(function($) {
	var maxRegression = 20;
	var tagName = 'span';
	var keepIncludeTags = false;
	
	
	var parse = function (domNode) {
		if (maxRegression-- < 1) return this;
		
		// remove include tags and fire ready event
		if ($(tagName +'[src]').length === 0) {
			if (!keepIncludeTags) $(tagName +'.include-loaded').unwrap();
			else $(tagName +'.include-loaded').show();
			
			$(document).trigger('includeReady');
			return this;
		}
		
		// load and parse include
		$(tagName +'[src]', domNode).each(function () {
			var inc = $(this);
			var src = inc.attr('src');
			if (src) {
				var path = src.split('http://www.thegnomonworkshop.com/').slice(0, -1).join('http://www.thegnomonworkshop.com/') + '/';
				$.get(src, function(data) {
					
					// modify any relative paths 
					data = data.replace(/(\b(?:src|href)=")([^"]+")/g, function () {
						var s = arguments;
						if (/^http(s{0,1}):\/{2}|^\//.test(s[2])) {
							return s[1] + s[2];
						}
						return s[1] + path + s[2];
					});
					
					inc.html(data).addClass('include-loaded').removeAttr('src').hide();
					
					setTimeout(function () { parse(inc.get(0)); }, 30);// delay for IE
				});	
			}
		});
		return this;
	};
	
	
	// create the custom event
	$.fn.includeReady = function (observerFn) {
		$(document).bind('includeReady', function(event) {
			observerFn(event);
		});
		return this;
	};
	
	$.fn.unwrap = function () {
		$(this).each(function () {
			var el = $(this);
			el.replaceWith(el.contents());
		});
	};
	
	$(document).ready(function() {
		parse(document);
	});
		
})(jQuery);

/**
 * jQuery Delay - A delay function
 * Copyright (c) 2009 Clint Helfers - chelfers(at)gmail(dot)com | http://blindsignals.com
 * Dual licensed under MIT and GPL.
 * Date: 7/01/2009
 * @author Clint Helfers
 * @version 1.0.0
 *
 * http://blindsignals.com/index.php/2009/07/jquery-delay/
 */


$.fn.delay = function( time, name ) {

    return this.queue( ( name || "fx" ), function() {
        var self = this;
        setTimeout(function() { $.dequeue(self); } , time );
    } );

};

