// Modified by Bryce Drennan
// Based off of Brian Takita [weblog.freeopinion.org]
// Based off of [www.phpied.com/javascript-include/]
if(window.includeOnce) includeOnce("/javascript/formvalidator.js");
var Include = (function() {
	var head = document.getElementsByTagName('head').item(0);
	var fns = {};
	
	function include(filename) {
		var inc, ext;
		var li = filename.lastIndexOf('.')+1;
		var ext= filename.substring(li);
		
		if (ext=='css'){
			inc = document.createElement('link');
			inc.setAttribute('rel','stylesheet');
			inc['rel']='stylesheet';
			inc.setAttribute('type','text/css');
			inc.setAttribute('href',filename + "?rand="+Math.random());
		} else {
			inc = document.createElement('script');
			inc.setAttribute('language', 'javascript');
			inc.setAttribute('type', 'text/javascript');
			inc.setAttribute('origSrc', filename);
			inc.text=getContent(filename);
			var temp = getContent("/javascript/log.cfm?type=JSCall&title="+filename);
		}
		try { head.appendChild(inc); } catch(e) { throw new Error("Could not append script" + filename); }
		return false;
	}
	
	function includeOnce(filename) {
		if(includeExists(filename)) return false;
		return include(filename);
	}
	
	function includeExists(filename) {
		var i,n,elems;
		var li = filename.lastIndexOf('.')+1;
		var ext= filename.substring(li);
		if(ext=="css") {
			for(i=0; i<head.childNodes.length; i++) {
				n = head.childNodes[i];
				if(n.nodeName.toLowerCase() == "link" && (n.getAttribute("href").indexOf(filename)==0)) return true; 
			}
		} else {
			elems = document.getElementsByTagName("script");
			for(i=0;i<elems.length;i++) {
				n=elems[i];
				if(n.getAttribute("src") == filename)  return true;
				if(n.getAttribute("origSrc") == filename) return true;
			}
			if(typeof(includedFiles)=='object') {
				for(i=0; i<includedFiles.length;i++) {
					if(filename == includedFiles[i]) return true;
				}
			}
		}
		return false;
	}
	
	function getContent(url) { 
		var v = [ "MSXML2.XMLHttp.5.0","MSXML2.XMLHttp.4.0","MSXML2.XMLHttp.3.0","MSXML2.XMLHttp","Microsoft.XMLHttp"];
		try { var req = new XMLHttpRequest(); } 
		catch(e) { 
			for (var i = 0; i < v.length; i++) {
				try { var req = new ActiveXObject(v[i]); i=v.length+1; } catch (e) { }
			}
		}
		if(req) {
			req.open("GET", url, false);
			req.send(null);
			fns.req=req;
		}
		if(req.status != 0 && req.status != 200 || req.status == 0 && req.responseText.length == 0)
			throw new Error("Error " + req.status + " (" + req.statusText + ") RS:" + req.readyState + "  File: '" + url + "'");
		return req.responseText;
	}
	
	fns.include=include;
	fns.includeOnce=includeOnce;
	fns.includeExists=includeExists;
	return fns;
}) ();
include=Include.include;
includeOnce=Include.includeOnce;


// Include the Validation Functions
includeOnce("/javascript/formvalidator.js");