var loadedJSFiles = new Array();

function includeJS(url,callback) {
	if (loadedJSFiles[url]) { callback(); return; }
	loadedJSFiles[url] = 1;
	var script = document.createElement("script");
	script.lang = 'javascript';
	loadContent(url,function(gotit,content) { if (gotit) { script.text = content; document.body.appendChild(script); callback(); }});
}

function loadContent(url,callback) {
	var req = (window.ActiveXObject)? new ActiveXObject("Microsoft.XMLHTTP") : ((window.XMLHttpRequest)? new XMLHttpRequest() : null);
	if (req) {
		req.onreadystatechange = function() {
			if (req.readyState == 4) { // Complete
				if (req.status == 200) // OK response 
					callback(true,req.responseText);
				else
					callback(false,"Error");
			}
		};
		if (window.ActiveXObject) {
			req.open("GET", url, true);
			req.send();
		}
		else {
			try {
				req.open("GET", url, true);
			} catch (e) {
				callback(false,"Error");
			}
			req.send(null);
		}
	}
}

function loadContentById(id,url) {
	var obj = document.getElementById(id);
	var retryTime = 15;
	var retryCmd = "loadContentById('"+id+"','"+url+"')"
	var callback = function(gotResponse,response) {
			if(gotResponse)
				document.getElementById(id).innerHTML = response;
			else
				setTimeout(retryCmd,retryTime*1000);
		};
	loadContent(url,callback);
}

function getFileList(url,callback) {
	loadContent(url,function(gotit,txt) {
			if (gotit) {
				txt = txt.split("Parent Directory")[1];
				txt = txt.split('<A HREF="');
				var i;
				var list = new Array();
				for (i=1;i<txt.length;i++)
					list.push(txt[i].split('">')[0]);
				callback(list);
			}
		});	
}

function getURLParam(strParamName) {
	var strReturn = "";
	var strHref = window.location.href;
	if ( strHref.indexOf("?") > -1 ){
		var strQueryString = strHref.substr(strHref.indexOf("?"));
		var aQueryString = strQueryString.split("&");
		for ( var iParam = 0; iParam < aQueryString.length; iParam++ ) {
			if (aQueryString[iParam].indexOf(strParamName + "=") > -1 ) {
			        var aParam = aQueryString[iParam].split("=");
			        strReturn = aParam[1];
			        break;
			}
		}
	}
	return strReturn;
} 
