

// necessary for XHTML with Gecko.
// http://simon.incutio.com/archive/2003/06/15/javascriptWithXML
function createElement(element) {
	if (typeof document.createElementNS != "undefined") {
		return document.createElementNS("http://www.w3.org/1999/xhtml", element);
	}
	if (typeof document.createElement != "undefined") {
		return document.createElement(element);
	}
	return false;
}

function insertJavaScript(srcURL) {
	var head = document.getElementsByTagName("head").item(0);
	var scriptElement = document.createElement('script');
	scriptElement.src = srcURL;
	scriptElement.type = "text/javascript";
	head.appendChild(scriptElement);
}

var waitingPageview;
var pageTracker = null;

function isAnalyticsInitialized() {
	if (window._gat && (typeof _gat != "undefined")
			&& _gat._getTracker 
			&& (typeof _gat._getTracker != "undefined")) {
		return true;
	} else {
		return false;
	}
}

function myTrackPageview(url) {
	if (pageTracker != null && isAnalyticsInitialized()) {
		pageTracker._trackPageview(url);
	} else {
		// save the URL to be set when analytics is initialized
		waitingPageview = url;
	}
}

function initializeAnalyticsWhenReady() {
	if (!isAnalyticsInitialized()) {
		setTimeout("initializeAnalyticsWhenReady()", 100);
	} else {
		pageTracker = _gat._getTracker("UA-5120535-2");
		pageTracker._initData();
		pageTracker._trackPageview();
		if (waitingPageview) {
			pageTracker._trackPageview(waitingPageview);
		}
	}
}

function initializeAnalytics() {
	insertJavaScript("http://www.google-analytics.com/ga.js");
	initializeAnalyticsWhenReady();
}

var additionalOnDOMLoadedFunctions = new Array();
var crazyEggScriptURL = null;


function onDOMLoaded() {
	// quit if this function has already been called
	if (arguments.callee.done) return;
	// flag this function so we don't do the same thing twice
	arguments.callee.done = true;
	// do the stuff we want to do when page loaded
	for (var i = 0, n = additionalOnDOMLoadedFunctions.length; i < n; i++) {
		additionalOnDOMLoadedFunctions[i]();
	}
	initializeAnalytics();
	if (crazyEggScriptURL != null) {
		// do Crazy Egg after Urchin - urchin is consistent across entire site,
		// so don't want to risk messing up results.
		insertJavaScript(crazyEggScriptURL);
	}
}

function setCrazyEggScriptURL(srcURL) {
	crazyEggScriptURL = srcURL;
}

function addOnDOMLoadedFunction(fnToAdd) {
	additionalOnDOMLoadedFunctions[additionalOnDOMLoadedFunctions.length] =
		fnToAdd;
}


/* Following is the code to set off the onDOMLoaded method after DOM has loaded,
 * or in the window.onload event if no browser specific hacks can be used to get
 * it to run earlier.
 */

/* for Mozilla */
if (document.addEventListener) {
   document.addEventListener("DOMContentLoaded", onDOMLoaded, null);
}

/* for Internet Explorer - conditional compilation */
/*@cc_on @*/
/*@if (@_win32)
   document.write("<script defer src=\"/template/ie_onload.js\"><"+"/script>");
/*@end @*/

/* for other browsers */
window.onload = onDOMLoaded;
