/**
 * @fileOverview    XMLHttpRequest for SWF headers. Thur, June 16 2008
 * @name            rlemenille
 */

/**
 * @description    create http_request and load in requested xml document
 * @param {string}    urlPath              url path to xml for swf header content
 */

var http_request = false;
var moduleArray = new Array();
function makeXMLRequest(urlPath) {
	http_request = false;
	if (window.XMLHttpRequest) { // Mozilla, Safari
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType) {
			http_request.overrideMimeType('text/xml');
		}
	} else if (window.ActiveXObject) { // IE
		try {
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}
	if (!http_request) {
		return false;
	}
	http_request.onreadystatechange = loadContent;
	http_request.open('GET', urlPath, true);
	http_request.send(null);
}

/**
 * @description    traverse rss format xml object and place "item" nodes in an array - called from makeXMLRequest();
 */
function loadContent() {
    if (http_request.readyState == 4) {
		if (http_request.status == 200) {
			var xmldoc = http_request.responseXML;
			var root = xmldoc.getElementsByTagName('rss').item(0);
			for (var cindex = 0; cindex < root.childNodes.length; cindex++) {
				if (root.childNodes.item(cindex).nodeName == "channel") {
					var channel = root.childNodes.item(cindex);
				}
			}
			for (var nodeIndex = 0; nodeIndex < channel.childNodes.length; nodeIndex++) {
				var node = channel.childNodes.item(nodeIndex);
				if (node.nodeType == "1" && node.nodeName == "item") {
					for (var i = 0; i < node.childNodes.length; i++) {
						if (node.childNodes.item(i).nodeName == "title") {
							moduleArray.push(node.childNodes.item(i).firstChild.nodeValue);
						}
					}
				}
			}
		}
	}
}

/**
 * @description    setTimeout function for each swf header allowing time for xml document to be loaded before rendering
 * @param {string}    moduleName              unique name of swf header function
 * @param {function}  soFunction              reference to swf header function to be called on setTimeout
 *
 */
function loadSwfHeaders(moduleName, soFunction) {
	var timer = moduleName;
	timer = setTimeout(soFunction, 1500)
}


