var px = "px";
var loadTxt = 'Loading...';

/*
 * A java script controller uses the XMLHttpRequest object for dynamic page loading 
 * param: loadtype, loadlink, loaddest, x, width
 */
function ajaxController() {
	var args = ajaxController.arguments;

	var x;
	try { 
		// Try to create object for Firefox, Safari, IE7, etc. 
		x = new XMLHttpRequest(); 
	} catch (e) { 
		try { 
			// Try to create object for later versions of IE. 
			x = new ActiveXObject('MSXML2.XMLHTTP'); 
		} catch (e) { 
			try { 
				// Try to create object for early versions of IE. 
				x = new ActiveXObject('Microsoft.XMLHTTP'); 
			} catch (e) { 
				// Could not create an XMLHttpRequest object. 
				return false; 
			} 
		} 
	}

	switch (args[0]) {
	case "load_page":
		el = document.getElementById(args[2]);
		el.innerHTML = loadTxt;
		if (args[3]) {
			el.style.left = args[3] + px;
		}
		if (args[4]) {
			el.style.width = args[4] + px;
		}
		el.style.visibility = "visible";
		x.onreadystatechange = function() {
			if (x.readyState == 4) {
				if (x.status >= 200 && x.status <= 299) {
					el.innerHTML = x.responseText;
				}
			}
		}
		x.open("GET", args[1], true);
		x.send(null);
		break;

	case "hide_page":
		if (document.getElementById(args[1])) {
			el = document.getElementById(args[1]);
			el.style.visibility = "hidden";
		}
		break;

	case "load_js":
		x.onreadystatechange = function() {
			if (x.readyState == 4) {
				if (x.status >= 200 && x.status <= 299) {
					var getheadTag = document.getElementsByTagName('head')[0];
					setjs = document.createElement('script');
					setjs.setAttribute('type', 'text/javascript');
					getheadTag.appendChild(setjs);
					setjs.text = x.responseText;
				}
			}
		}
		x.open("GET", args[1], true);
		x.send(null);
		break;
	
	case "make_call":
		x.open("GET", args[1], true);
		x.send(null);
		break;
	}
}