var webroot = "";
var btn;

image1 = new Image(); 
image1.src="/images/wait.gif"; 

image2 = new Image(); 
image2.src="/images/blank.gif"; 

function sendme() 
{ 
    window.open("","RiskBrowser","width=500,height=300,toolbar=0"); 
    var a = window.setTimeout("document.form1.submit();",500); 
} 

function select_all_fclasses()
{
	m1 = document.getElementById("support");
	for (i=0; i<m1.length; i++) {
		m1.options[i].selected = true;}
	
	m2 = document.getElementById("operational");
	for (i=0; i<m2.length; i++) {
		m2.options[i].selected = true;}
} 

function disappearing_message(id)
{
	document.getElementById(id).innerHTML="&nbsp;";
}

function chkdeleterole()
{
	var msg = "Are you sure you wish to delete this role?";
	if (document.getElementById('delroleid').value=="")
	{
		alert("No Role Selected");
		return false;
	}
	else
		return confirm(msg);
}

function chkdeletefile()
{
	var msg = "Are you sure you wish to delete this file?";
	return confirm(msg);
}

function chkdeleteref()
{
	var msg = "Are you sure you wish to delete this reference?";
	return confirm(msg);
}

function chkdeletefclass()
{
    var flagSelected = false;
    var form = document.getElementById("fclassform");
    //you can skip this if there are no other check boxes on the page, But this is a fail safe code so good to do it.
    for( var i = 0; i < form.elements.length; i++) //Itrate through all the controls on the form
    {
        var elm = form.elements[i];
        if(elm.type == 'checkbox') //Check if the control is a check box
        {	
            if(elm.checked == true)
            {
                var msg = "Are you sure you wish to delete selected functional class(es)?\n\nThis will delete this functional class as well as any other audit elements (constraints, objectives, activities and risks) that are solely associated with this functional class.";
				return confirm(msg);
            }
		}
	} 
	
}

function chkdeleteconstraint()
{
	var msg = "Are you sure you wish to delete this constraint?\n\nThis will delete this constraint, any associated files, and any associations you have made with existing repository objectives.";
	return confirm(msg);
}

function chkdeleteconstraints()
{
	if (btn == 'delete')
	{
		btn='';
		var msg = "Are you sure you wish to delete the selected constraint(s)?\n\nThis will delete these constraints, any associated files, and any associations you have made with existing repository objectives.";
		return confirm(msg);
	}
}

function chkdeleteactivities()
{
	if (btn == 'delete')
	{
		btn='';
		var msg = "Are you sure you wish to delete the selected activity(ies)?\n\nThis will delete these activities and any associations you have made with existing assets.";
		return confirm(msg);
	}
}

function chkdeleteassets()
{
	if (btn == 'delete')
	{
		btn='';
		var msg = "Are you sure you wish to delete the selected asset(s)?\n\nThis will delete these assets and sever any associations you have made with existing activities.";
		return confirm(msg);
	}
}

function chkdeleteobjective()
{
	var msg = "Are you sure you wish to delete this objective?\n\nThis will delete this objective and any associations you have made with existing activities, possibly leading to orphaned activities.";
	return confirm(msg);
}

function chkdeleteobjectives()
{
	if (btn == 'delete')
	{
		btn='';
	var msg = "Are you sure you wish to delete these objectives?\n\nThis will delete these objectives and any associations you have made with existing activities, possibly leading to orphaned activities.";
	return confirm(msg);
	}
}

function chkdeletemandate()
{
	var msg = "Are you sure you wish to delete this mandate?";
	return confirm(msg);
}

function chkdeleteactivity()
{
	var msg = "Are you sure you wish to delete this activity?\n\nThis will delete this activity and any associations you have made with existing assets.";
	return confirm(msg);
}

function chkdeleteasset()
{
	var msg = "Are you sure you wish to delete this asset?\n\nThis will delete this asset and sever any associations you have made with existing activities.";
	return confirm(msg);
}

function chkdeleterisk()
{
	var msg = "Are you sure you wish to delete this risk?\n\nThis will delete this risk and any assessments or management information, as well as any relationships that the risk has with other risks, activities, objectives or constraints.";
	return confirm(msg);
}

function chkdeleterisks()
{
	if (btn=='delete')
	{
		btn='';
	var msg = "Are you sure you wish to delete these risk?\n\nThis will delete these risks and any assessments or management information, as well as any relationships that the risk has with other risks, activities, objectives or constraints.";
	return confirm(msg);
	}
}

function update_id_value(id, newValue)
{
	document.getElementById(id).value = newValue;
}

function update_id_name(id, newName)
{
	document.getElementById(id).name = newName;
}

function chkdeletestaff()
{
	var msg = "Are you sure you wish to delete this staff member? ("+document.getElementById('delstaffid').value+")";
	if (document.getElementById('delstaffid').value=="")
	{
		alert("No Staff Member Selected");
		return false;
	}
	else
		return confirm(msg);
}

function selectOptions(selStr)
{
  var selObj = document.getElementById(selStr);
  for (var i=0; i<selObj.options.length; i++) {
    selObj.options[i].selected = true;
  }
}

function Set_Cookie( name, value, expires, path, domain, secure ) 
{
	// set time, it's in milliseconds
	var today = new Date();
	today.setTime( today.getTime() );

	/*
	if the expires variable is set, make the correct 
	expires time, the current script below will set 
	it for x number of days, to make it for hours, 
	delete * 24, for minutes, delete * 60 * 24
	*/
	if ( expires )
	{
	expires = expires * 1000 * 60 * 60 * 24;
	}
	var expires_date = new Date( today.getTime() + (expires) );

	document.cookie = name + "=" +escape( value ) +
	( ( expires ) ? ";expires=" + expires_date.toGMTString() : "" ) + 
	( ( path ) ? ";path=" + path : "" ) + 
	( ( domain ) ? ";domain=" + domain : "" ) +
	( ( secure ) ? ";secure" : "" );
}

function showhide(item,showhidecookie)
{
	if(document.getElementById(item).style.display=="none")
        {
		                          
		document.getElementById(item).style.display="block"  ;
                document.getElementById(item+"_img").src="/images/minus.png" ;
		document.getElementById(item+"_img").alt="Collapse" ;
		
		Set_Cookie(showhidecookie,'1',30,'/','','');
        }
        else
        {
                document.getElementById(item).style.display="none";
                document.getElementById(item+"_img").src="/images/plus.png" ;
		document.getElementById(item+"_img").alt="Expand" ;

		Set_Cookie(showhidecookie,'0',30,'/','','');
        }
}
function savesnapshot()
{
	document.getElementById("snapshot_form").style.display="block";
}

function deltext(id)
{
	id.value = "";
}

function store_cookie(action)
{
	http = createRequestObject();
	http.open('get', '/rpc/getrisk.php?id='+riskid);
   	http.onreadystatechange = handleResponse;
    	http.send(null);
}

function popup(url)
{
	window.open(url, 'helpbrowser', 'toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=0,width=600,height=400');
}

function bigpopup(url)
{
	window.open(url, 'riskbrowser', 'toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=0,width=800,height=600');
}

function customrisk(form)
{
	if (document.getElementById('report_output').value == 'web')
	{
		form.target = "riskbrowser";
		window.open('', 'riskbrowser', 'toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=0,width=800,height=600');
		form.submit();
	}
	else
		form.submit();
}

function get_risk(riskid)
{
	
	if (!riskid)
	{
		document.getElementById('message_text').innerHTML="Submission incomplete - Please select a Risk";
	}
	else
	{
		http = createRequestObject();
		http.open('get', '/rpc/getrisk.php?id='+riskid);
   		http.onreadystatechange = handleResponse;
    		http.send(null);
		
		document.getElementById("recycled_risk").style.display="block";	
	}
	
}
function disregard_staff()
{

		document.getElementById("delstaffid").value=""
		document.getElementById("position").value = "";
		document.getElementById("uniquestaffnumber").value = "";
		document.getElementById("address").value = "";
		document.getElementById("telephone").value = "";
		document.getElementById("email_staff").value = "";
		document.getElementById("status")[0].selected = true;


		//and also get rid of existing user information if appropriate
		close_div('existing_user');
		close_div('new_user');
		clear_new_user();
		document.getElementById("username_search").value = "";
		search_and_display_user(document.getElementById('username_search').value);

		document.getElementById("previoususer").innerHTML = "";
}

function clear_new_user()
{
	document.getElementById("username").value="";
	document.getElementById("fname").value="";
	document.getElementById("sname").value="";
	document.getElementById("email").value="";
	document.getElementById("pass1").value="";
	document.getElementById("pass2").value="";
	document.getElementById("title")[0].selected = true;
}


function update_staff(repositoryid)
{
		document.getElementById("repository_wait").src = "/images/wait.gif";

	disregard_staff();
	
	if (!repositoryid)
	{
		clearOptionListLeaveGuidance(document.getElementById('staff'));
	}

	else
	{
		http = createRequestObject();
		http.open('get', '/rpc/getstaff.php?repid='+repositoryid);
		http.onreadystatechange = handleResponse6;
			http.send(null);
	}
		document.getElementById("repository_wait").src = "/images/blank.gif";

}

function update_roles_edit(repositoryid)
{
		document.getElementById("repository_wait").src = "/images/wait.gif";

	document.getElementById("rolename").value ="";
	document.getElementById("roledescription").value="";
	document.getElementById("delroleid").value="";
	
	if (!repositoryid)
	{
		clearOptionListLeaveGuidance(document.getElementById('role'));
	}
	
	else
	{
		http = createRequestObject();
		http.open('get', '/rpc/getroles.php?repid='+repositoryid);
		http.onreadystatechange = handleResponse31;
			http.send(null);
	}
		document.getElementById("repository_wait").src = "/images/blank.gif";	

}

function update_roles(repositoryid)
{
	document.getElementById("repository_wait").src = "/images/wait.gif";
	
	document.getElementById("rolename").value ="";
	//document.getElementById("roledescription").value ="";
	if (!repositoryid)
	{
		clearOptionListLeaveGuidance(document.getElementById('role'));
		clearOptionList(document.getElementById('staff'));
		clearOptionList(document.getElementById('inrole'));
		
	}
	
	else
	{
		http = createRequestObject();
		http.open('get', '/rpc/getroles.php?repid='+repositoryid);
		http.onreadystatechange = handleResponse3;
			http.send(null);
	}
	
	document.getElementById("repository_wait").src = "/images/blank.gif";	
}

function update_role_assignment(roleid)
{
	document.getElementById("role_wait").src = "/images/wait.gif";

	if (!roleid)
	{
		clearOptionList(document.getElementById('staff'));
		clearOptionList(document.getElementById('inrole'));
		
		document.getElementById("rolename").innerHTML = "&nbsp;";
	}
	else
	{
		
		var selected = document.getElementById("role");
		document.getElementById("rolename").innerHTML = selected.options[selected.selectedIndex].text;
		var repoid = document.getElementById('repository').value;
		http = createRequestObject();
		http.open('get', '/rpc/getassignments.php?roleid='+roleid+'&repoid='+repoid);
		http.onreadystatechange = handleResponse4;
			http.send(null);
	}
	
		document.getElementById("role_wait").src = "/images/blank.gif";	

}

function update_risk_link(linktype)
{
	document.getElementById("linktype_wait").src = "/images/wait.gif";

	if (!linktype || linktype==0)
	{
		clearOptionList(document.getElementById('linkedrisk'));
	}
	else
	{
		
		var linkrisk = document.getElementById("linkrisk").value;
		http = createRequestObject();
		http.open('get', '/rpc/getrisklink.php?linktype='+linkrisk);
		http.onreadystatechange = handleResponse44;
			http.send(null);
	}
	
		document.getElementById("linktype_wait").src = "/images/blank.gif";	

}

function edit_role(roleid)
{
		document.getElementById("role_wait").src = "/images/wait.gif";

	if (!roleid)
	{
		document.getElementById("rolename").value ="";
		document.getElementById("roledescription").value="";
		document.getElementById("delroleid").value="";
	}
	else
	{
		document.getElementById("delroleid").value=roleid;
		http = createRequestObject();
		http.open('get', '/rpc/getroles.php?roleid='+roleid);
		http.onreadystatechange = handleResponse5;
			http.send(null);
	}
			document.getElementById("role_wait").src = "/images/blank.gif";	

}

function edit_staff(staffid)
{
	document.getElementById("staff_wait").src = "/images/wait.gif";

	disregard_staff();

	if(staffid)
	{
		document.getElementById("delstaffid").value=staffid;
		http = createRequestObject();
		http.open('get', '/rpc/getstaff.php?staffid='+staffid);
		http.onreadystatechange = handleResponse7;
			http.send(null);
	}
		document.getElementById("staff_wait").src = "/images/blank.gif";

}

function search_and_display_user(username)
{
	if (username)
	{
		http = createRequestObject();
		http.open('get', '/rpc/getuser.php?username='+username);
		http.onreadystatechange = handleResponse2;
			http.send(null);
	}
	else
	{
		document.getElementById("existing_user_id").value = "";
		document.getElementById("existing_username").value = "";
		document.getElementById("existing_fname").value = "";
		document.getElementById("existing_sname").value = "";
		document.getElementById("existing_title").value = "";
		document.getElementById("username_search").style.backgroundColor = "white";
	}
}

function close_div(id)
{
	document.getElementById(id).style.display="none";
}

function open_div(id)
{
	document.getElementById(id).style.display="block";
}

function createRequestObject() {
    var ro;
    var browser = navigator.appName;
    if(browser == "Microsoft Internet Explorer"){
        ro = new ActiveXObject("Microsoft.XMLHTTP");
    }else{
        ro = new XMLHttpRequest();
    }
    return ro;
}

var http = createRequestObject();

if (typeof DOMParser == "undefined") {
   	DOMParser = function () {}

   	DOMParser.prototype.parseFromString = function (str, contentType) {
     	 if (typeof ActiveXObject != "undefined") {
         var d = new ActiveXObject("MSXML.DomDocument");
         d.loadXML(str);
         return d;
     	 } else if (typeof XMLHttpRequest != "undefined") {
         var req = new XMLHttpRequest;
         req.open("GET", "data:" + (contentType || "application/xml") +
                         ";charset=utf-8," + encodeURIComponent(str), false);
         if (req.overrideMimeType) {
            req.overrideMimeType(contentType);
         }
         req.send(null);
         return req.responseXML;
      	}
    }
}

function autofill_ip(one,two,three,four)
{
	document.getElementById("ipaddress1[0]").value=one;
	document.getElementById("ipaddress2[0]").value=two;
	document.getElementById("ipaddress3[0]").value=three;
	document.getElementById("ipaddress4[0]").value=four;
	
}
function handleResponse2() {

if(http.readyState == 4) {
	
	
	document.getElementById("existing_user_id").value = "";
	document.getElementById("existing_username").value = "";
	document.getElementById("existing_fname").value = "";
	document.getElementById("existing_sname").value = "";
	document.getElementById("existing_title").value = "";
	
	var response = http.responseText;
		
	if (response!=0)
	{	
		document.getElementById("username_search").style.backgroundColor = "lightgreen";
		
		var xmlobject = (new DOMParser()).parseFromString(response, "text/xml");
		var root = xmlobject.getElementsByTagName('data')[0]
		
		if (root.getElementsByTagName("firstname")[0].hasChildNodes())
		{
			cur_var = root.getElementsByTagName("firstname")[0].firstChild.nodeValue;
			if (document.getElementById("existing_fname"))
			{
				document.getElementById("existing_fname").value = cur_var;
			}
		}
		
		if (root.getElementsByTagName("surname")[0].hasChildNodes())
		{
			cur_var = root.getElementsByTagName("surname")[0].firstChild.nodeValue;
			if (document.getElementById("existing_sname"))
			{
				document.getElementById("existing_sname").value = cur_var;
			}
		}
		
		if (root.getElementsByTagName("username")[0].hasChildNodes())
		{
			cur_var = root.getElementsByTagName("username")[0].firstChild.nodeValue;
			if (document.getElementById("existing_username"))
			{
				document.getElementById("existing_username").value = cur_var;
			}
		}
		
		if (root.getElementsByTagName("title")[0].hasChildNodes())
		{
			cur_var = root.getElementsByTagName("title")[0].firstChild.nodeValue;
			if (document.getElementById("existing_title"))
			{
				document.getElementById("existing_title").value = cur_var;
			}
		}
		
		
		if (root.getElementsByTagName("userid")[0].hasChildNodes())
		{
			cur_var = root.getElementsByTagName("userid")[0].firstChild.nodeValue;
			if (document.getElementById("existing_user_id"))
			{
				document.getElementById("existing_user_id").value = cur_var;
			}
		}
	}
	else
		document.getElementById("username_search").style.backgroundColor = "lightpink";
	}
}

function handleResponse() {
    if(http.readyState == 4){
      
	var response = http.responseText;

      // convert the string to an XML object
	var xmlobject = (new DOMParser()).parseFromString(response, "text/xml");

	document.getElementById("usedriskdesc").value = "";

	document.getElementById("usedriskphysimg").src = webroot+"/images/cross.png";
	document.getElementById("usedriskpmaimg").src = webroot+"/images/cross.png";
	document.getElementById("usedriskopsimg").src = webroot+"/images/cross.png";
	document.getElementById("usedriskhscimg").src = webroot+"/images/cross.png";

	document.getElementById("usedriskrelevant").innerHTML = "";
	document.getElementById("usedriskmanifestations").innerHTML = "";
	document.getElementById("usedriskavoidance").innerHTML = "";
	document.getElementById("usedrisktreatment").innerHTML = "";

	
	// get the XML root item
	var root = xmlobject.getElementsByTagName('data')[0];
	if (root.getElementsByTagName("description")[0].hasChildNodes())
	{
		cur_var = root.getElementsByTagName("description")[0].firstChild.nodeValue;
		if (document.getElementById("usedriskdesc"))
		{	
			document.getElementById("usedriskdesc").value = cur_var;
		}
	}
	if (root.getElementsByTagName("nature")[0].hasChildNodes())
	{
		cur_var = root.getElementsByTagName("nature")[0].firstChild.nodeValue;
		
		if (cur_var.substring(0,1)>0)
		{
			
			document.getElementById("usedriskphysimg").src = webroot+"/images/tick.png";
		}
		if (cur_var.substring(1,2)>0)
		{
			document.getElementById("usedriskpmaimg").src = webroot+"/images/tick.png";

		}
		if (cur_var.substring(2,3)>0)
		{
			document.getElementById("usedriskopsimg").src = webroot+"/images/tick.png";

		}
		if (cur_var.substring(3)>0)
		{
			document.getElementById("usedriskhscimg").src = webroot+"/images/tick.png";

		}
	}
	if (root.getElementsByTagName("question")[0].hasChildNodes())
	{
		cur_var = root.getElementsByTagName("question");
		
		var counter = 0;
		var string = "";

		while (cur_var[counter])
		{
			string+= "<li>"+cur_var[counter].firstChild.nodeValue+"</li>";
			counter++;
		}
		document.getElementById("usedriskrelevant").innerHTML = "<ul>"+string+"</ul>";
	}
	
	if (root.getElementsByTagName("example")[0].hasChildNodes())
	{
		cur_var = root.getElementsByTagName("example"); //means that example exists, and has content
		
		var counter = 0;
		var string = "";

		while (cur_var[counter]) //iterate through each example
		{
			string+= "<li>"+cur_var[counter].firstChild.nodeValue+"</li>";//write out the firstChild node value for each example (i.e. the text)
			counter++;
		}
		document.getElementById("usedriskmanifestations").innerHTML = "<ul>"+string+"</ul>";
	}
	
	if (root.getElementsByTagName("examplecons")[0].hasChildNodes())
	{
		cur_var = root.getElementsByTagName("examplecons"); //means that example exists, and has content
		
		var counter = 0;
		var string = "";

		while (cur_var[counter]) //iterate through each example
		{
			string+= "<li>"+cur_var[counter].firstChild.nodeValue+"</li>";//write out the firstChild node value for each example (i.e. the text)
			counter++;
		}
		document.getElementById("usedriskconsequences").innerHTML = "<ul>"+string+"</ul>";
	}
	
	if (root.getElementsByTagName("mitigation")[0].hasChildNodes())
	{
		var string = "";
		cur_var = root.getElementsByTagName("mitigation")[0]; //means that example exists, and has content
		
		for (x = 0; x < cur_var.getElementsByTagName("type0").length; x++)
		{
		string += "<li>"+cur_var.getElementsByTagName("type0")[x].firstChild.nodeValue+"</li>";
		}
		document.getElementById("usedriskavoidance").innerHTML = "<ul>"+string+"</ul>";
		var string = "";
		for (x = 0; x < cur_var.getElementsByTagName("type1").length; x++)
		{
		string += "<li>"+cur_var.getElementsByTagName("type1")[x].firstChild.nodeValue+"</li>";
		}
		document.getElementById("usedrisktreatment").innerHTML = "<ul>"+string+"</ul>";
	}
		
	}
}


function clearOptionList(option)
{
	// Always clear an option list from the last entry to the first
   for (x = option.length; x >= 0; x = x - 1) {
      option[x] = null;
   }
}

function clearOptionListLeaveGuidance(option)
{
	// Always clear an option list from the last entry to the first
   for (x = option.length; x >= 1; x = x - 1) {
      option[x] = null;
   }
}

function handleResponse4() {
    if(http.readyState == 4){
    
	var response = http.responseText;

      	// convert the string to an XML object
	var xmlobject = (new DOMParser()).parseFromString(response, "text/xml");

	clearOptionList(document.getElementById("staff"));
	clearOptionList(document.getElementById("inrole"));

	// get the XML root item
	var root = xmlobject.getElementsByTagName('data')[0];

	for (x = 0; x<root.getElementsByTagName("notinrole").length; x++) 
	{
		var notinrole = root.getElementsByTagName("notinrole")[x]; //assign current role to a variable
		
		//assign id and name variables for this role
		var staffid = notinrole.getElementsByTagName("staffid")[0].firstChild.nodeValue;
		var position = notinrole.getElementsByTagName("position")[0].firstChild.nodeValue+" ("+notinrole.getElementsByTagName("name")[0].firstChild.nodeValue+")";
		document.getElementById("staff")[document.getElementById("staff").length] = new Option(position, staffid);
	}
	
	for (x = 0; x<root.getElementsByTagName("inrole").length; x++) 
	{
		var inrole = root.getElementsByTagName("inrole")[x]; //assign current role to a variable
		
		//assign id and name variables for this role
		var staffid = inrole.getElementsByTagName("staffid")[0].firstChild.nodeValue;
		var position = inrole.getElementsByTagName("position")[0].firstChild.nodeValue+" ("+inrole.getElementsByTagName("name")[0].firstChild.nodeValue+")";
		document.getElementById("inrole")[document.getElementById("inrole").length] = new Option(position, staffid);
	}

    }
}

function handleResponse44() {
    if(http.readyState == 4){
    
	var response = http.responseText;

      	// convert the string to an XML object
	var xmlobject = (new DOMParser()).parseFromString(response, "text/xml");

	clearOptionList(document.getElementById("linkedrisk"));
	
	// get the XML root item
	var root = xmlobject.getElementsByTagName('data')[0];

	for (x = 0; x<root.getElementsByTagName("item").length; x++) 
	{
		var item = root.getElementsByTagName("item")[x]; //assign current role to a variable
		
		//assign id and name variables for this role
		var id = item.getElementsByTagName("id")[0].firstChild.nodeValue;
		var name = item.getElementsByTagName("name")[0].firstChild.nodeValue;
		var desc = item.getElementsByTagName("desc")[0].firstChild.nodeValue;
		document.getElementById("linkedrisk")[document.getElementById("linkedrisk").length] = new Option(name, id);
	}
    }
}

function handleResponse5() {
    if(http.readyState == 4){

	var response = http.responseText;
	if (response != 0)
	{
	      	// convert the string to an XML object
		var xmlobject = (new DOMParser()).parseFromString(response, "text/xml");

		document.getElementById("rolename").value ="";
		document.getElementById("roledescription").value="";
		
		// get the XML root item
		var root = xmlobject.getElementsByTagName('data')[0];

		var role = root.getElementsByTagName("role")[0]; //assign current role to a variable
			
		//assign id and name variables for this role
		document.getElementById("rolename").value = role.getElementsByTagName("name")[0].firstChild.nodeValue;
		document.getElementById("roledescription").value = role.getElementsByTagName("description")[0].firstChild.nodeValue;
		
	}
	else
	{
		document.getElementById("rolename").value ="";
		document.getElementById("roledescription").value="";
		document.getElementById("delroleid").value="";
	}
    }
}

function handleResponse3() {
    if(http.readyState == 4){
        
	var id = new Array();
	var name = new Array();
	var description = new Array();

	var response = http.responseText;
	if (response != 0)
	{
	      	// convert the string to an XML object
		var xmlobject = (new DOMParser()).parseFromString(response, "text/xml");

		clearOptionListLeaveGuidance(document.getElementById("role"));
		
		// get the XML root item
		var root = xmlobject.getElementsByTagName('data')[0];

		for (x = 0; x<root.getElementsByTagName("role").length; x++) 
		{
			var role = root.getElementsByTagName("role")[x]; //assign current role to a variable
			
			//assign id and name variables for this role
			var id = role.getElementsByTagName("roleid")[0].firstChild.nodeValue; //
			var name = role.getElementsByTagName("name")[0].firstChild.nodeValue;
			document.getElementById("role")[document.getElementById("role").length] = new Option(name, id);
		}
	}
	else
	{
		clearOptionListLeaveGuidance(document.getElementById('role'));
		clearOptionList(document.getElementById('staff'));
		clearOptionList(document.getElementById('inrole'));
		document.getElementById("rolename").value ="";
	}
    }
}

function handleResponse31() {
    if(http.readyState == 4){
        
	var id = new Array();
	var name = new Array();
	var description = new Array();

	var response = http.responseText;
	if (response != 0)
	{
	      	// convert the string to an XML object
		var xmlobject = (new DOMParser()).parseFromString(response, "text/xml");

		clearOptionListLeaveGuidance(document.getElementById("role"));
		
		// get the XML root item
		var root = xmlobject.getElementsByTagName('data')[0];

		for (x = 0; x<root.getElementsByTagName("role").length; x++) 
		{
			var role = root.getElementsByTagName("role")[x]; //assign current role to a variable
			
			//assign id and name variables for this role
			var id = role.getElementsByTagName("roleid")[0].firstChild.nodeValue; //
			var name = role.getElementsByTagName("name")[0].firstChild.nodeValue;
			document.getElementById("role")[document.getElementById("role").length] = new Option(name, id);
		}
	}
	else
	{
		clearOptionListLeaveGuidance(document.getElementById('role'));
		document.getElementById("roledescription").value="";
		document.getElementById("rolename").value ="";
		document.getElementById("delroleid").value="";
	}
    }
}

function handleResponse6() {
    if(http.readyState == 4){

	var response = http.responseText;
	if (response != 0)
	{
	      	// convert the string to an XML object
		var xmlobject = (new DOMParser()).parseFromString(response, "text/xml");

		clearOptionListLeaveGuidance(document.getElementById("staff"));
		
		// get the XML root item
		var root = xmlobject.getElementsByTagName('data')[0];

		for (x = 0; x<root.getElementsByTagName("staff").length; x++) 
		{
			var role = root.getElementsByTagName("staff")[x]; //assign current role to a variable
			
			//assign id and name variables for this role
			var id = role.getElementsByTagName("staffid")[0].firstChild.nodeValue; //
			var name = role.getElementsByTagName("position")[0].firstChild.nodeValue;
			document.getElementById("staff")[document.getElementById("staff").length] = new Option(name, id);
		}
	}
    }
}

function handleResponse7() {
    if(http.readyState == 4){

	var response = http.responseText;
	if (response != 0)
	{
	      	// convert the string to an XML object
		var xmlobject = (new DOMParser()).parseFromString(response, "text/xml");

		// get the XML root item
		var root = xmlobject.getElementsByTagName('data')[0];

		var role = root.getElementsByTagName("staff")[0]; //assign current role to a variable
			
		//assign id and name variables for this role
		if (role.getElementsByTagName("position")[0].hasChildNodes())
		{
			document.getElementById("position").value = role.getElementsByTagName("position")[0].firstChild.nodeValue;
		}

		if (role.getElementsByTagName("unique_staff_id")[0].hasChildNodes())
		{
			document.getElementById("uniquestaffnumber").value = role.getElementsByTagName("unique_staff_id")[0].firstChild.nodeValue;
		}

		if (role.getElementsByTagName("address")[0].hasChildNodes())
		{
			document.getElementById("address").value = role.getElementsByTagName("address")[0].firstChild.nodeValue;
		}

		if (role.getElementsByTagName("telephone")[0].hasChildNodes())
		{
			document.getElementById("telephone").value = role.getElementsByTagName("telephone")[0].firstChild.nodeValue;
		}

		if (role.getElementsByTagName("email_staff")[0].hasChildNodes())
		{
			document.getElementById("email_staff").value = role.getElementsByTagName("email_staff")[0].firstChild.nodeValue;
		}

		if (role.getElementsByTagName("status")[0].firstChild.nodeValue == 0)
		{
			document.getElementById("status")[0].selected = true;
		}
		else
		{
			document.getElementById("status")[1].selected = true;
		}
		
		document.getElementById("status").value = role.getElementsByTagName("status")[0].firstChild.nodeValue;

		if (role.getElementsByTagName("username")[0].hasChildNodes())
		{
			open_div('existing_user');
			close_div('new_user');
			update_id_value('submit_type','Submit With Existing User'); 
			update_id_name('submit_type','with_existing_user');
			document.getElementById("username_search").value = role.getElementsByTagName("username")[0].firstChild.nodeValue;
			search_and_display_user(document.getElementById('username_search').value);
		}
	
		else
		{
			document.getElementById("previoususer").innerHTML = "No user is currently associated with this staff member";
		}
	}
    }
}



