var http_display;

if (window.XMLHttpRequest) {
	http_display = new XMLHttpRequest();
} else if (window.ActiveXObject) {
	http_display = new ActiveXObject("Microsoft.XMLHTTP");
}

var target = "";

function loadDisplay(url,args) {
	if (http_display != null) {
		var append = "";
		if(typeof args == 'object') {
			var i;
			for(i=0;i<args.length;i+=2) {
				if(args[i].indexOf("target") == 0) {
					target = args[i+1];
				} else {
					append += '&'+args[i] + "=" + args[i+1];
				}
			}
		}
		http_display.open("GET",encodeURI(url) + "&ajaxdisplay=true"+encodeURI(append),"false");
//		window.alert(url + "&ajaxdisplay=true"+append);
		http_display.onreadystatechange = openDisplay;
		http_display.send(null);
		delete append;
	}
}

function openDisplay() {
	var display = document.getElementById("display");
	if(null == display) {
		display = document.createElement('div');
		display.id = "display";
	}
	if(http_display.readyState == 4 && http_display.responseText.length > 4) {
		var response = eval("(" + http_display.responseText + ")");
		location.replace('#'+target);
		while(display.hasChildNodes()) {
			display.removeChild(display.firstChild);
		}
		var toplayer = document.createElement("div");
		toplayer.id = "toplayer";
		var closebutton = document.createElement("p");
		closebutton.id = "closedisplay1";
		closebutton.className = "center";
		closebutton.innerHTML = "<a href=\"#"+target+"\" onclick=\"return closeDisplay()\" class=\"close\">x close this window</a><br />\n";
		toplayer.appendChild(closebutton);
		var toplayercontent = document.createElement("div");
		toplayercontent.innerHTML = response[0].html;
		if(typeof response[0].js != 'undefined' && response[0].js.length > 10) {
			evalScript(response[0].js);
		}
		toplayer.appendChild(toplayercontent);
		var closebutton2 = closebutton.cloneNode(true);
		closebutton2.id = "closedisplay2";
		toplayer.appendChild(closebutton2);
		display.appendChild(toplayer);
		document.getElementById("body").appendChild(display);
		document.getElementById("body").style.overflow = "hidden";
		
		// clean up
		delete toplayer;
		delete closebutton;
		delete closebutton2;
		delete display;
		delete toplayercontent;
		delete response;
	}
}

function closeDisplay() {
	if(null != document.getElementById('display')) {
		document.getElementById('display').parentNode.removeChild(document.getElementById('display'));
		document.getElementById("body").style.overflow = "auto";
		
	}
	http_display.open("GET","/crewlist/userfunctions/unsetopendisplay.php","false");
	http_display.onreadystatechange = showState;
	http_display.send(null);
}

function showState() {
	return true;
}

function evalScript(script) {
	try {
		var var_global = this;
		if(script) (window.execScript) ? window.execScript(script) : var_global.eval(script);
		return false;
	}
	catch(e) {
		window.alert(e)
	}
	return false;
}
