/*
www.newnhamscouts.org.uk

Newnham Scouts Website xmlhttp-script
by Ian Horsley 2006 
ian@newnhamscouts.org.uk

*/

// stores the reference to the XMLHttpRequest object
var xmlHttp = createXmlHttpRequestObject();
var lastlink = 'none';
var lastgroup = 'none';

// retrieves the XMLHttpRequest object
function createXmlHttpRequestObject()
{
   // will store the reference to the XMLHttpRequest object
   var xmlHttp = new zXmlHttp.createRequest();
   
   // return the created object or display an error message
   if (!xmlHttp)
      alert("Error creating the XMLHttpRequest object.");
   else
      return xmlHttp;
}

// make asynchronous HTTP request using the XMLHttpRequest object
function showpage(param,group,getpage)
{
   // proceed only if the xmlHttp object isn't busy
   if (xmlHttp.readyState == 4 || xmlHttp.readyState == 0)
   {
      // retrieve the name typed by the user on the form
      //name = encodeURIComponent(document.getElementById("myName").value);
      // execute the quickstart.php page from the server
      xmlHttp.open("GET", getpage + "?param=" + param, true);
      // define the method to handle server responses
      xmlHttp.onreadystatechange = handleServerResponse;
      // make the server request
      xmlHttp.send(null);
      
      if(group == 'none')
      	changelink(param);
      else
      	changelinkandgroup(param,group);
      
   }
   else
      // if the connection is busy, try again after one second
      setTimeout('process()', 1000);
}

// executed automatically when a message is received from the server
function handleServerResponse()
{
   // move forward only if the transaction has completed
   if (xmlHttp.readyState == 4)
   {
      // status of 200 indicates the transaction completed successfully
      if (xmlHttp.status == 200)
      {
         // extract the XML retrieved from the server
          xmlResponse = xmlHttp.responseXML;
		 // obtain the document element (the root element) of the XML structure
          xmlDocumentElement = xmlResponse.documentElement;
         // get the text message, which is in the first child of
         // the the document element
          //knot_name = xmlDocumentElement.getElementsByTagName('knot_name').data;
          //helloMessage = xmlDocumentElement.firstChild.data;
          knot_name = xmlDocumentElement.getElementsByTagName('knot_name')[0].firstChild.data;
          //knot_image = xmlDocumentElement.getElementsByTagName('knot_image')[0].firstChild.data;
          knot_about = xmlDocumentElement.getElementsByTagName('knot_about')[0].xml;
		if(xmlDocumentElement.getElementsByTagName('image_path')[0].firstChild){
			image_path = xmlDocumentElement.getElementsByTagName('image_path')[0].firstChild.data;
			document.getElementById("contentimage").innerHTML = '<img src="'+image_path+'" width="209" alt="'+knot_name+'" title="'+knot_name+'" />'+ knot_name;
		}

          if(xmlDocumentElement.getElementsByTagName('stages')[0]){
			  stage_html = '</i><strong>Tying the knot</strong><i>';
	          stages = xmlDocumentElement.getElementsByTagName('stages')[0].childNodes.length;
          
	          for(var x = 0; x < stages; x++){
				instruction = xmlDocumentElement.getElementsByTagName('stages')[0].childNodes[x].firstChild.firstChild.data;    
				photo = xmlDocumentElement.getElementsByTagName('stages')[0].childNodes[x].lastChild.firstChild.data;    
				stage_html = stage_html + '<DIV class=\"instruction\"><DIV><IMG src=\"' + photo + '\"></DIV>' + instruction + '</DIV>\n';
			  }
		  }
		  else stage_html = '';
         // update the client display using the data received from the server
		 document.getElementById("contentdetail").innerHTML ='<p class=first><strong>' + knot_name + '</strong></p>' + knot_about + stage_html;
         // restart sequence
         //setTimeout('process()', 1000);
      }
      // a HTTP status different than 200 signals an error
      else
      {
         alert("There was a problem accessing the server: " + xmlHttp.statusText);
      }
   }
} 


function changeclass(id, newClass) {

if(identity=document.getElementById(id))
	identity.className=newClass;

}

function changelinkandgroup(param, group){
      changeclass('link'+param,"on");
      changeclass('link'+lastlink,"off");
      changeclass('link'+group,"on");
      if(lastgroup!=group)
	      changeclass('link'+lastgroup,"off");
      lastlink = param;
      lastgroup = group;
}

function changelink(param){
      changeclass('link'+param,"on");
      changeclass('link'+lastlink,"off");
      lastlink = param;
}