function createXMLHttpRequest() {

var ua;

if(window.XMLHttpRequest) {
    try {
      ua = new XMLHttpRequest();
    } catch(e) {
      ua = false;
    }
  } else if(window.ActiveXObject) {
    try {
      ua = new ActiveXObject("Microsoft.XMLHTTP");
    } catch(e) {
      ua = false;
    }
  }
  return ua;
}

var req = createXMLHttpRequest();

function startRequest(script, query)
{
	req.open('get', '/script/ajax/ajax-switcher.php?script='+script+'&'+query);
	req.setRequestHeader('Content-Type',  "text/xml");
	req.onreadystatechange = handleResponse;
	req.send(null);
}


function handleResponse()
{
	if (req.readyState == 4 && req.status == 200 && req.responseXML )
	{
		var ops = req.responseXML.getElementsByTagName('op');

		for (var i=0; i<ops.length; i++)
		{
			var opi = ops.item(i);

			var type = opi.getElementsByTagName('type')[0].firstChild.nodeValue;

			if (type == "function")
			{
				// Do function stuff

				var functionToDo = opi.getElementsByTagName('name')[0].firstChild.nodeValue;
				var parameters = opi.getElementsByTagName('parameter');

				window[functionToDo](parameters);
			}
			else if (type == "update")
			{
				// Do update stuff
				var elementToUpdate = opi.getElementsByTagName('element')[0].firstChild.nodeValue;
				var contents = opi.getElementsByTagName('content');

				// Clear the element
				document.getElementById(elementToUpdate).innerHTML = "";

				// New content
				for (var j=0; j<contents.length; j++)
				{
					document.getElementById(elementToUpdate).innerHTML += contents[j].firstChild.nodeValue;
				}
			}
			else if (type == "style")
			{
				var elementToUpdate = opi.getElementsByTagName('element')[0].firstChild.nodeValue;
				var styleToUpdate = opi.getElementsByTagName('style')[0].firstChild.nodeValue;
				var styleContents = opi.getElementsByTagName('styleContents')[0].firstChild.nodeValue;

				document.getElementById(elementToUpdate).style[styleToUpdate] = styleContents;

			} else if (type == "append")
			{
				var elementToUpdate = opi.getElementsByTagName('element')[0].firstChild.nodeValue;
				var contents = opi.getElementsByTagName('content');

				// New content
				for (var j=0; j<contents.length; j++)
				{
					document.getElementById(elementToUpdate).innerHTML += contents[j].firstChild.nodeValue;
				}
			}

		}
	}



}

