// functions.js

function runajax(objID, serverPage)
{
	//Create a boolean variable to check for a valid Internet Explorer instance.
	var xmlhttp = false;

	//Check if we are using IE.
	try {
		//If the JavaScript version is greater than 5.
		xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
	} catch (e) {
		//If not, then use the older ActiveX object.
		try {
			//If we are using Internet Explorer.
			xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (E) {
			//Else we must be using a non-IE browser.
			xmlhttp = false;
		}
	}
	// If we are not using IE, create a JavaScript instance of the object.
	if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
		xmlhttp = new XMLHttpRequest();
	}

	var obj = document.getElementById(objID);
	obj.innerHTML = "<b>Loading...</b>";
	xmlhttp.open("GET", serverPage);
	xmlhttp.onreadystatechange = function() {
		if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
			obj.innerHTML = xmlhttp.responseText;
		}
	}
	xmlhttp.send(null);
}



function ajaxform(thisform,formhandler)
{
    //General Purpose Ajax form submitter.
    //Written by Carl(bag) @ Thybag.co.uk

	//if(validForm()){
		// Set up data variable
		var formdata = "";

		// Set up Ajax request variable
		try {xmlhttp = window.XMLHttpRequest?new XMLHttpRequest(): new ActiveXObject("Microsoft.XMLHTTP");}  catch (e) { alert("Error: Could not load page.");}
		// Loop through form fields
		for (i=0; i < thisform.length; i++)
		{
			 //Build Send String
			 if(thisform.elements[i].type == "text"){ //Handle Textbox's
					  formdata = formdata + thisform.elements[i].name + "=" + escape(thisform.elements[i].value) + "&";
			 }else if(thisform.elements[i].type == "textarea"){ //Handle textareas
					  formdata = formdata + thisform.elements[i].name + "=" + escape(thisform.elements[i].value) + "&";
			 }else if(thisform.elements[i].type == "checkbox"){ //Handle checkbox's
					 formdata = formdata + thisform.elements[i].name + "=" + thisform.elements[i].checked + "&";
			 }else if(thisform.elements[i].type == "radio"){ //Handle Radio buttons
					  if(thisform.elements[i].checked==true){
						 formdata = formdata + thisform.elements[i].name + "=" + thisform.elements[i].value + "&";
					  }
			 }else{
					  //finally, this should theoretically this is a select box.
					  formdata = formdata + thisform.elements[i].name + "=" + escape(thisform.elements[i].value) + "&";
			 }
		}

		//Send Ajax Request
		xmlhttp.onreadystatechange = function(){
				   //Check page is completed and there were no problems.
				   if ((xmlhttp.readyState == 4) && (xmlhttp.status == 200)) {
						  //What to do once the form is submitted - to inform the user.
						  document.getElementById("contents").innerHTML = xmlhttp.responseText;
				   }
		}
		//Make connection
		xmlhttp.open("POST", formhandler);
		//Set Headers
		xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		//Send data
		xmlhttp.send(formdata);
		//stops form from submitting normally
		return false;
	//}
}

function toggleLayer( whichLayer )
{
  var elem, vis;
  if( document.getElementById ) // this is the way the standards work
	elem = document.getElementById( whichLayer );
  else if( document.all ) // this is the way old msie versions work
	  elem = document.all[whichLayer];
  else if( document.layers ) // this is the way nn4 works
	elem = document.layers[whichLayer];
  vis = elem.style;
  // if the style.display value is blank we try to figure it out here
  if(vis.display==''&&elem.offsetWidth!=undefined&&elem.offsetHeight!=undefined)
	vis.display = (elem.offsetWidth!=0&&elem.offsetHeight!=0)?'block':'none';
  vis.display = (vis.display==''||vis.display=='block')?'none':'block';
   	var imgs = elem.previousSibling.getElementsByTagName("img"); 
	toggleArrow(imgs[0]);
}

function toggleArrow(thisarrow){

	if(thisarrow.src.indexOf("images/small-down16.gif") > 0){
		thisarrow.src='images/small-next16.gif';
	}
	else{
		thisarrow.src='images/small-down16.gif';
	}
}


//load the xsl file
var xsldocloaded = false;
var xsldoc;

if (window.XSLTProcessor)
{
	// support Mozilla/Gecko based browsers
	xsldoc = document.implementation.createDocument("", "", null);
	xsldoc.addEventListener("load", onXslLoad, false);
	xsldoc.load('members.xsl');
}
else if(window.ActiveXObject)
{
	// support Windows / ActiveX
	xsldoc = new ActiveXObject("Microsoft.XMLDOM");
	xsldoc.ondataavailable = onXslLoad;
	xsldoc.load('members.xsl');
}


function runXSLajax(objID, serverPage, xsl)
{

	while (!xsldocloaded)
	{
	if (window.XSLTProcessor)
	{
		// support Mozilla/Gecko based browsers
		xsldoc = document.implementation.createDocument("", "", null);
		xsldoc.addEventListener("load", onXslLoad, false);
		xsldoc.load(xsl);
	}
	else if(window.ActiveXObject)
	{
		// support Windows / ActiveX
		xsldoc = new ActiveXObject("Microsoft.XMLDOM");
		xsldoc.ondataavailable = onXslLoad;
		xsldoc.load(xsl);
	}
	}

	if(xsldoc != null){
		
		//Create a boolean variable to check for a valid Internet Explorer instance.
		var xmlhttp = false;

		//Check if we are using IE.
		try {
			//If the JavaScript version is greater than 5.
			xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			//If not, then use the older ActiveX object.
			try {
				//If we are using Internet Explorer.
				xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (E) {
				//Else we must be using a non-IE browser.
				xmlhttp = false;
			}
		}
		// If we are not using IE, create a JavaScript instance of the object.
		if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
			xmlhttp = new XMLHttpRequest();
		}

		var obj = document.getElementById(objID);
		obj.innerHTML = "<b>Loading...</b>";
		xmlhttp.open("GET", serverPage);
		xmlhttp.onreadystatechange = function() {
			if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
				obj.innerHTML = xmlhttp.responseText;
   
				if (window.XSLTProcessor)
				{
					// support Mozilla/Gecko based browsers
					var xsltProcessor = new XSLTProcessor();
					xsltProcessor.importStylesheet(xsldoc);
					var outputXHTML = xsltProcessor.transformToFragment(xmlhttp.responseXML, document);
					obj.innerHTML = "";
					obj.appendChild(outputXHTML);
				}
				else if(window.ActiveXObject)
				{
					// support Windows/ActiveX enabled browsers
					var outputXHTML = xmlhttp.responseXML.transformNode(xsldoc);
					obj.innerHTML = outputXHTML;
				}
			}
		}
		xmlhttp.send(null);
	}
}

function onXslLoad()
{
	// flag that the xsl is loaded
	xsldocloaded = true;
}

function rollover()
{
  if(!document.getElementById || !document.createTextNode){return;}
  var n=document.getElementById('nav');
  if(!n){return;}
  var lis=n.getElementsByTagName('li');
  for (var i=0;i<lis.length;i++)
  {
    lis[i].onmouseover=function()
    {
      this.className=this.className?'cur':'over';
    }
    lis[i].onmouseout=function()
    {
       this.className=this.className=='cur'?'cur':'';
    }
  }
}
window.onload=rollover;

