window.onload = function() {

	// Set code to remove Search text when clicking in search input boxes
	var searchBox1 = document.getElementById("inputSearch");
	searchBox1.onclick = function() {
		if (this.value=="Search") this.value = "";
	}
	var searchBox2 = document.getElementById("inputSearch2");
	searchBox2.onclick = function() {
		if (this.value=="Search") this.value = "";
	}

	// Get details of tools as DOM elements
	var tools         = document.getElementById("tools");
	var tools2        = document.getElementById("tools2");

	if (tools) {

		var sendLink      = tools.getElementsByTagName("a")[0]; // First link in tools section
		var feedbackLink  = tools.getElementsByTagName("a")[1]; // Second link in tools section
	
		// Activate display of send to form on send click event
		sendLink.onclick  = send_highlight;
	
		// Activate display of send to form on send click event
		feedbackLink.onclick  = feedback_highlight;
		
	}
	
	if (tools2) {

		var sendLink2      = tools2.getElementsByTagName("a")[0]; // First link in tools section
		var feedbackLink2  = tools2.getElementsByTagName("a")[1]; // Second link in tools section
	
		// Activate display of send to form on send click event
		sendLink2.onclick  = send_highlight;
	
		// Activate display of send to form on send click event
		feedbackLink2.onclick  = feedback_highlight;
		
	}
	
	if (tools||tools2) {
	
		// Activate send to form
		send_reset(); 
		
		// Activate feedback form
		feedback_reset(); 	
		
		// Activate rss form (if available)
		rss_reset();

	}

}


function send_reset() {

	// Clear the send to form
	send_clear();

	// Get send and send content divs
	var send = document.getElementById("send");
	var sendContent = send.getElementsByTagName("div")[0];

	// Unhide the form part of the page
	var sendForm = send.getElementsByTagName("form")[0];
	sendForm.style.display = "block";
	
	// and delete any status messages if there
	if (document.getElementById("sendStatus")) sendContent.removeChild(document.getElementById("sendStatus"));
	
	send.style.display = 'none';
	
	

		
/*

	// Remove everything in the send content div
	while ( sendContent.hasChildNodes() ) { sendContent.removeChild(sendContent.firstChild); }

	// Create the send to form
	var form                         = document.createElement("form");
	
	var from_fieldset                = document.createElement("fieldset");
	var from_legend                  = document.createElement("legend");
	var from_name_label              = document.createElement("label");
	var from_name_input              = document.createElement("input");
	var from_email_label             = document.createElement("label");
	var from_email_input             = document.createElement("input");
	
	var from_legend_text             = document.createTextNode("From");
	var from_name_label_text         = document.createTextNode("Your name [Required]");
	var from_email_label_text        = document.createTextNode("Your e-mail [Required]");
	
	from_name_label.setAttribute("for","sendFromName");
	from_name_input.setAttribute("id","sendFromName");
	from_name_input.setAttribute("type","text");
	
	from_email_label.setAttribute("for","sendFromEmail");
	from_email_input.setAttribute("id","sendFromEmail");
	from_email_input.setAttribute("type","text");
	
	form.appendChild(from_fieldset);
	from_fieldset.appendChild(from_legend);
	from_legend.appendChild(from_legend_text);
	from_fieldset.appendChild(from_name_label);
	from_name_label.appendChild(from_name_label_text);
	from_fieldset.appendChild(from_name_input);
	from_fieldset.appendChild(from_email_label);
	from_email_label.appendChild(from_email_label_text);
	from_fieldset.appendChild(from_email_input);			
	
	var to_fieldset                = document.createElement("fieldset");
	var to_legend                  = document.createElement("legend");
	var to_name_label              = document.createElement("label");
	var to_name_input              = document.createElement("input");
	var to_email_label             = document.createElement("label");
	var to_email_input             = document.createElement("input");
	
	var to_legend_text             = document.createTextNode("To");
	var to_name_label_text         = document.createTextNode("To name [Optional]");
	var to_email_label_text        = document.createTextNode("To e-mail [Required]");
	
	to_name_label.setAttribute("for","sendToName");
	to_name_input.setAttribute("id","sendToName");
	to_name_input.setAttribute("type","text");
	
	to_email_label.setAttribute("for","sendToEmail");
	to_email_input.setAttribute("id","sendToEmail");
	to_email_input.setAttribute("type","text");
	
	form.appendChild(to_fieldset);
	to_fieldset.appendChild(to_legend);
	to_legend.appendChild(to_legend_text);
	to_fieldset.appendChild(to_name_label);
	to_name_label.appendChild(to_name_label_text);
	to_fieldset.appendChild(to_name_input);
	to_fieldset.appendChild(to_email_label);
	to_email_label.appendChild(to_email_label_text);
	to_fieldset.appendChild(to_email_input);
	
	//var message_fieldset                = document.createElement("fieldset");
	//var message_legend                  = document.createElement("legend");
	var message_label                   = document.createElement("label");
	var message_textarea                = document.createElement("textarea");
	//var message_note                    = document.createElement("p");

	var tools         = document.getElementById("tools");
	var sendLink      = tools.getElementsByTagName("a")[0]; // First link in tools section
	var sendLinkHref  = sendLink.getAttribute("href");
	var url = sendLinkHref.replace(/^(.*\/)send\/\?url=(.*)/,"$1$2");
	
	//var message_legend_text             = document.createTextNode("Message");
	//var message_note_text               = document.createTextNode("Thought you might be interested in this page on the MPA website");
	var message_label_text              = document.createTextNode("Message [Optional]");
	var message_textarea_text           = document.createTextNode("Thought you might be interested in this page on the MPA website.");
	
	message_label.setAttribute("for","sendMessage");
	message_textarea.setAttribute("id","sendMessage");
	message_textarea.setAttribute("rows","6");
	
	
	//form.appendChild(message_note);
	//message_note.appendChild(message_note_text);
	
	//form.appendChild(message_fieldset);
	//message_fieldset.appendChild(message_legend);
	//message_legend.appendChild(message_legend_text);
	//message_fieldset.appendChild(message_label);
	form.appendChild(message_label);
	message_label.appendChild(message_label_text);
	//message_fieldset.appendChild(message_textarea);
	form.appendChild(message_textarea);
	message_textarea.appendChild(message_textarea_text);
	
	var form_buttons                    = document.createElement("ul");
	var form_buttons_cancel             = document.createElement("li");
	var form_buttons_submit             = document.createElement("li");
	
	var form_buttons_cancel_input       = document.createElement("input");
	var form_buttons_submit_input       = document.createElement("input");
	
	form_buttons.setAttribute("class","buttonBar");
	
	form_buttons_cancel_input.setAttribute("class","stop");
	form_buttons_cancel_input.setAttribute("id","sendCancel");
	form_buttons_cancel_input.setAttribute("name","sendCancel");
	form_buttons_cancel_input.setAttribute("type","submit");
	form_buttons_cancel_input.value = "Cancel";
	
	form_buttons_submit_input.setAttribute("class","next");
	form_buttons_submit_input.setAttribute("id","sendSubmit");
	form_buttons_submit_input.setAttribute("name","sendSubmit");
	form_buttons_submit_input.setAttribute("type","submit");
	form_buttons_submit_input.value = "Send";
	
	form.appendChild(form_buttons);
	form_buttons.appendChild(form_buttons_submit);
	form_buttons.appendChild(form_buttons_cancel);
	form_buttons_submit.appendChild(form_buttons_submit_input);
	form_buttons_cancel.appendChild(form_buttons_cancel_input);

			
	sendContent.appendChild(form);

*/
	// Append the onclick event handling code for the form buttons 
	var buttonSendCancel = document.getElementById("sendCancel");
	var buttonSendSubmit = document.getElementById("sendSubmit");
	if (buttonSendCancel) buttonSendCancel.onclick = send_reset;
	if (buttonSendSubmit) buttonSendSubmit.onclick = send_submit;
/*
buttonSendCancel.style.backgroundcolor = "red";
buttonSendCancel.style.backgroundrepeat = "no-repeat";
buttonSendCancel.style.border = "none";
buttonSendCancel.style.color = "white !important";
buttonSendCancel.style.fontSize = "1.1em";
buttonSendCancel.style.position = "relative";
buttonSendCancel.style.width = "auto !important";
buttonSendCancel.style.display = "block";
buttonSendCancel.style.backgroundImage = "url(http://10.0.26.23/images/css/button-stop.png)";
buttonSendCancel.style.backgroundpositionx = "0%";
buttonSendCancel.style.backgroundpositiony = "50%";
buttonSendCancel.style.paddingleft = "20px";
*/
	return false;
}


function send_submit() {

	// Get send div
	var send = document.getElementById("send");
	var sendContent = send.getElementsByTagName("div")[0];
	
	// If the form validates, process it
	if (validate_send_form()) {
		
		// Work out which page we are commenting on
		//var tools         = document.getElementById("tools");
		//var sendLink      = tools.getElementsByTagName("a")[0]; // First link in tools section
		//var sendLinkHref  = sendLink.getAttribute("href");
		//var url = sendLinkHref.replace(/^.*\/send\/\?url=(.*)/,"$1");
	
		// Actually do the bit that posts the message here

		send_post();
	}
	else {
		if (document.getElementById("sendStatus")) sendContent.removeChild(document.getElementById("sendStatus"));
		// Tell the user what's up
		var sendContentParagraph = document.createElement("p");
		sendContentParagraph.setAttribute("id","sendStatus");
		var sendContentParagraphText = document.createTextNode("There was a problem with the form. Please complete the required details below, and ensure that you supply valid e-mail addresses.");
		sendContentParagraph.appendChild(sendContentParagraphText);
		sendContent.insertBefore(sendContentParagraph,sendContent.firstChild);
	}
	return false;
}

function send_post() {

	var xmlHttp = get_xml_http_object();
	if (xmlHttp==null) {
		return;
	} 

	// Get send div
	var send = document.getElementById("send");

	var url  = document.getElementById("sendUrl").value;

	var sendFromName  = document.getElementById("sendFromName").value;
	var sendFromEmail = document.getElementById("sendFromEmail").value;
	var sendToName    = document.getElementById("sendToName").value;
	var sendToEmail   = document.getElementById("sendToEmail").value;
	var sendMessage   = document.getElementById("sendMessage").value;
	
	sendMessage = sendMessage.replace(/[\n]/g,"~~");
	
	var post = "sendSubmit=Send&sendUrl=" + url + "&sendToEmail=" + sendToEmail + "&sendFromEmail=" + sendFromEmail + "&sendFromName=" + sendFromName + "&sendMessage=" + sendMessage;
	
	var url = "/cms/comment/send-request.php";

	// Get send content div
	var sendContent = send.getElementsByTagName("div")[0];
	// Remove the form
	// while ( sendContent.hasChildNodes() ) { sendContent.removeChild(sendContent.firstChild); }
	// Modified to hide the form
	var sendForm = send.getElementsByTagName("form")[0];
	sendForm.style.display = "none";

	// Remove the posting message
	if (document.getElementById("sendStatus")) sendContent.removeChild(document.getElementById("sendStatus"));
	
	// Tell the user that the form has been submitted
	var sendContentParagraph = document.createElement("p");
	sendContentParagraph.setAttribute("id","sendStatus");
	var sendContentParagraphText = document.createTextNode("Sending...");
	sendContentParagraph.appendChild(sendContentParagraphText);
	sendContent.insertBefore(sendContentParagraph,sendForm);


	xmlHttp.open("GET",url+"?"+post,true);
	xmlHttp.setRequestHeader("Content-Type", "text/plain;charset=UTF-8");
	xmlHttp.onreadystatechange = function() {
	// in case of network errors this might not give reliable results
	if(xmlHttp.readyState == 4) {

		// Remove the posting message
		// while ( sendContent.hasChildNodes() ) { sendContent.removeChild(sendContent.firstChild); }
		if (document.getElementById("sendStatus")) sendContent.removeChild(document.getElementById("sendStatus"));

		// Add a message telling the user what has happened
		var sendContentParagraph = document.createElement("p");
		sendContentParagraph.setAttribute("id","sendStatus");
		var sendContentParagraphText = document.createTextNode(xmlHttp.responseText);
		sendContentParagraph.appendChild(sendContentParagraphText);
		sendContent.insertBefore(sendContentParagraph,sendForm);
		
		// Remove the message and return the page to normal after a couple of seconds
		setTimeout("send_reset()",2000);	
	
	}
	} 
	xmlHttp.send(null);
	return;
}

function send_highlight(){
	var feedback = document.getElementById("feedback");
	var send = document.getElementById("send");
	tools_form_highlight(send);
	feedback.style.display = 'none';
	// Clear the rss form if it is present
	var rss = document.getElementById("rss");
	if (rss) rss.style.display = 'none';
	return false;
}

function send_clear(){
	var send = document.getElementById("send");
	tools_form_clear(send);
	return false;
}



function feedback_reset() {

	// Clear the feedback form
	feedback_clear();

	// Get send and send content divs
	var feedback = document.getElementById("feedback");
	var feedbackContent = feedback.getElementsByTagName("div")[0];

	// Unhide the form part of the page
	var feedbackForm = feedback.getElementsByTagName("form")[0];
	feedbackForm.style.display = "block";
	
	// and delete any status messages if there
	if (document.getElementById("feedbackStatus")) feedbackContent.removeChild(document.getElementById("feedbackStatus"));

	feedback.style.display ='none';

	/*

	// Remove everything in the send content div
	while ( feedbackContent.hasChildNodes() ) { feedbackContent.removeChild(feedbackContent.firstChild); }

	// Create the send to form
	var form                         = document.createElement("form");
	
	var from_fieldset                = document.createElement("fieldset");
	var from_legend                  = document.createElement("legend");
	var from_name_label              = document.createElement("label");
	var from_name_input              = document.createElement("input");
	var from_email_label             = document.createElement("label");
	var from_email_input             = document.createElement("input");
	
	var from_legend_text             = document.createTextNode("From");
	var from_name_label_text         = document.createTextNode("Your name [Required]");
	var from_email_label_text        = document.createTextNode("Your e-mail [Optional]");
	
	from_name_label.setAttribute("for","feedbackFromName");
	from_name_input.setAttribute("id","feedbackFromName");
	from_name_input.setAttribute("type","text");
	
	from_email_label.setAttribute("for","feedbackFromEmail");
	from_email_input.setAttribute("id","feedbackFromEmail");
	from_email_input.setAttribute("type","text");
	
	form.appendChild(from_fieldset);
	from_fieldset.appendChild(from_legend);
	from_legend.appendChild(from_legend_text);
	from_fieldset.appendChild(from_name_label);
	from_name_label.appendChild(from_name_label_text);
	from_fieldset.appendChild(from_name_input);
	from_fieldset.appendChild(from_email_label);
	from_email_label.appendChild(from_email_label_text);
	from_fieldset.appendChild(from_email_input);			
	
	var about_fieldset                = document.createElement("fieldset");
	var about_legend                  = document.createElement("legend");
	var about_page_para               = document.createElement("p");
	var about_page_label              = document.createElement("label");
	var about_page_input              = document.createElement("input");
	var about_site_para               = document.createElement("p");
	var about_site_label              = document.createElement("label");
	var about_site_input              = document.createElement("input");
	
	var about_legend_text             = document.createTextNode("About");
	var about_page_label_text         = document.createTextNode("This page");
	var about_site_label_text         = document.createTextNode("The website as a whole");
	
	about_page_label.setAttribute("for","feedbackAboutPage");
	about_page_label.className = "radio";
	about_page_input.setAttribute("id","feedbackAboutPage");
	about_page_input.setAttribute("name","feedbackAbout");
	about_page_input.setAttribute("type","radio");
	about_page_input.setAttribute("checked","checked");
	about_page_input.className = "radio";
	about_page_input.value = "page";
	
	about_site_label.setAttribute("for","feedbackAboutSite");
	about_site_label.className = "radio";
	about_site_input.setAttribute("id","feedbackAboutSite");
	about_site_input.setAttribute("name","feedbackAbout");
	about_site_input.setAttribute("type","radio");
	about_site_input.className = "radio";
	about_site_input.value = "site";
	
	form.appendChild(about_fieldset);
	about_fieldset.appendChild(about_legend);
	about_legend.appendChild(about_legend_text);
	
	about_fieldset.appendChild(about_page_para);
	about_page_para.appendChild(about_page_input);
	about_page_para.appendChild(about_page_label);
	about_page_label.appendChild(about_page_label_text);

	about_fieldset.appendChild(about_site_para);
	about_site_para.appendChild(about_site_input);
	about_site_para.appendChild(about_site_label);
	about_site_label.appendChild(about_site_label_text);
		
	var message_div                     = document.createElement("div");
	var message_label                   = document.createElement("label");
	var message_textarea                = document.createElement("textarea");
	var message_label_text              = document.createTextNode("Message [Required]");
	var message_textarea_text           = document.createTextNode("");
	
	message_label.setAttribute("for","feedbackMessage");
	message_textarea.setAttribute("id","feedbackMessage");
	message_textarea.setAttribute("rows","6");
	message_textarea.setAttribute("cols","30");
	
	form.appendChild(message_div);
	message_div.appendChild(message_label);
	message_label.appendChild(message_label_text);
	message_div.appendChild(message_textarea);
	message_textarea.appendChild(message_textarea_text);
	
	var form_buttons                    = document.createElement("ul");
	var form_buttons_cancel             = document.createElement("li");
	var form_buttons_submit             = document.createElement("li");
	
	var form_buttons_cancel_input       = document.createElement("input");
	var form_buttons_submit_input       = document.createElement("input");
	
	form_buttons.setAttribute("class","buttonBar");

	form_buttons_cancel_input.setAttribute("class","stop");
	form_buttons_cancel_input.setAttribute("id","buttonFeedbackCancel");
	form_buttons_cancel_input.setAttribute("name","buttonFeedbackCancel");
	form_buttons_cancel_input.setAttribute("type","submit");
	form_buttons_cancel_input.value = "Cancel";

	form_buttons_submit_input.setAttribute("class","next");
	form_buttons_submit_input.setAttribute("id","buttonFeedbackSubmit");
	form_buttons_submit_input.setAttribute("name","buttonFeedbackSubmit");
	form_buttons_submit_input.setAttribute("type","submit");
	form_buttons_submit_input.value = "Send";
	
	form.appendChild(form_buttons);
	form_buttons.appendChild(form_buttons_submit);
	form_buttons.appendChild(form_buttons_cancel);
	form_buttons_submit.appendChild(form_buttons_submit_input);
	form_buttons_cancel.appendChild(form_buttons_cancel_input);

			
	feedbackContent.appendChild(form);

	*/

	// Append the onclick event handling code for the form buttons 
	var buttonFeedbackCancel = document.getElementById("feedbackCancel");
	var buttonFeedbackSubmit = document.getElementById("feedbackSubmit");
	if (buttonFeedbackCancel) buttonFeedbackCancel.onclick = feedback_reset;
	if (buttonFeedbackSubmit) buttonFeedbackSubmit.onclick = feedback_submit;



	return false;
}

function feedback_submit() {

	// Get send div
	var feedback = document.getElementById("feedback");
	var feedbackContent = feedback.getElementsByTagName("div")[0];
	
	// If the form validates, process it
	if (validate_feedback_form()) {
		
		// Work out which page we are commenting on
		//var tools         = document.getElementById("tools");
		//var sendLink      = tools.getElementsByTagName("a")[0]; // First link in tools section
		//var sendLinkHref  = sendLink.getAttribute("href");
		//var url = sendLinkHref.replace(/^.*\/send\/\?url=(.*)/,"$1");
	
		// Actually do the bit that posts the message here

		feedback_post(url);
	}
	else {

		if (document.getElementById("feedbackStatus")) feedbackContent.removeChild(document.getElementById("feedbackStatus"));
		// Tell the user what's up
		var feedbackContentParagraph = document.createElement("p");
		feedbackContentParagraph.setAttribute("id","feedbackStatus");
		var feedbackContentParagraphText = document.createTextNode("There was a problem with the form. Please complete the required details below. If you supply an e-mail address, it must be a valid one.");
		feedbackContentParagraph.appendChild(feedbackContentParagraphText);
		feedbackContent.insertBefore(feedbackContentParagraph,feedbackContent.firstChild);
	
	}
	return false;
}

function feedback_post() {

	var xmlHttp = get_xml_http_object();
	if (xmlHttp==null) {
		return;
	} 

	// Get send div
	var feedback = document.getElementById("feedback");

	var url  = document.getElementById("feedbackUrl").value;

	var feedbackFromName  = document.getElementById("feedbackFromName").value;
	var feedbackFromEmail = document.getElementById("feedbackFromEmail").value;
	var feedbackMessage   = document.getElementById("feedbackMessage").value;

	var feedbacktype = "";
	var feedbackAboutPage = document.getElementById("feedbackAboutPage");
	var feedbackAboutSite = document.getElementById("feedbackAboutSite");
	if (feedbackAboutPage.checked) feedbacktype = 1;
	if (feedbackAboutSite.checked) feedbacktype = 2;

	feedbackMessage = feedbackMessage.replace(/[\n]/g,"~~");
	
	var post = "feedbackSubmit=Send&feedbackUrl=" + url + "&feedbackFromEmail=" + feedbackFromEmail + "&feedbackFromName=" + feedbackFromName + "&feedbackMessage=" + feedbackMessage + "&feedbackAbout=" + feedbacktype;

	var url = "/cms/comment/feedback-request.php";

	// Get send content div
	var feedbackContent = feedback.getElementsByTagName("div")[0];
	// Remove the form
	// while ( feedbackContent.hasChildNodes() ) { feedbackContent.removeChild(feedbackContent.firstChild); }
	
	// Remove the posting message
	if (document.getElementById("feedbackStatus")) feedbackContent.removeChild(document.getElementById("feedbackStatus"));
	
	// Modified, now just hide the form
	var feedbackForm = feedback.getElementsByTagName("form")[0];
	feedbackForm.style.display = "none";	
	
	// Tell the user that the form has been submitted
	var feedbackContentParagraph = document.createElement("p");
	feedbackContentParagraph.setAttribute("id","feedbackStatus");
	var feedbackContentParagraphText = document.createTextNode("Sending...");
	feedbackContentParagraph.appendChild(feedbackContentParagraphText);
	feedbackContent.insertBefore(feedbackContentParagraph,feedbackForm);

	xmlHttp.open("GET",url+"?"+post,true);
	xmlHttp.setRequestHeader("Content-Type", "text/plain;charset=UTF-8");
	xmlHttp.onreadystatechange = function() {
	// in case of network errors this might not give reliable results
	if(xmlHttp.readyState == 4) {

		// Remove the posting message
		// while ( feedbackContent.hasChildNodes() ) { feedbackContent.removeChild(feedbackContent.firstChild); }
		if (document.getElementById("feedbackStatus")) feedbackContent.removeChild(document.getElementById("feedbackStatus"));

		// Add a message telling the user what has happened
		var feedbackContentParagraph = document.createElement("p");
		feedbackContentParagraph.setAttribute("id","feedbackStatus");
		var feedbackContentParagraphText = document.createTextNode(xmlHttp.responseText);
		feedbackContentParagraph.appendChild(feedbackContentParagraphText);
		feedbackContent.insertBefore(feedbackContentParagraph,feedbackForm);
		
		// Remove the message and return the page to normal after a couple of seconds
		setTimeout("feedback_reset()",2000);	
	
	}
	} 
	xmlHttp.send(null);
	return;
}

function feedback_highlight(){
	var feedback = document.getElementById("feedback");
	var send = document.getElementById("send");	
	tools_form_highlight(feedback);
	send.style.display = 'none';
	// Clear the rss form if it is present
	var rss = document.getElementById("rss");
	if (rss) rss.style.display = 'none';	
	return false;
}

function feedback_clear(){
	var feedback = document.getElementById("feedback");
	tools_form_clear(feedback);
	return false;
}

function tools_form_highlight(formObj) {

	var contentBody = document.getElementById("contentBody");
	var tools = document.getElementById("tools");
	var extras = document.getElementById("extras");
	//var send = document.getElementById("send");
	
	// Dim the preamble
	var preamble = document.getElementById("preamble");
	//preamble.style.opacity = "0.4";

	// Dim the rest of the page		
	//contentBody.style.opacity = "0.4";

	// Dim everything on the right except the Send bit
	var extrasWrapper = extras.getElementsByTagName("div")[0];
	var extrasWrapperDivs = extrasWrapper.getElementsByTagName("div");
	for(var i=0; i<extrasWrapperDivs.length; i++) {
		var extrasDiv = extrasWrapperDivs[i];
		//if (extrasDiv.className=="section") extrasDiv.style.opacity = "0.4";
	}
		
	// Highlight the specified div
	formObj.style.display   = "block";
	//formObj.style.opacity   = "1";

	// Set the containing form block styles
	var forms = document.getElementById("forms");
	forms.className = "active";
	/*
	forms.style.position  = "absolute";
	forms.style.left      = "30%";
	forms.style.maxWidth  = "25em";
	forms.style.top       = "30px";
	forms.style.width     = "40%";	
	*/
	
	// Set focus to top of form
	// formObj.focus();
	
	// Set focus in first input box
	var firstInput = formObj.getElementsByTagName("input")[0];
	firstInput.focus();

	return false;
}


function tools_form_clear(formObj){

	if (formObj) {

	var contentBody = document.getElementById("contentBody");
	var tools = document.getElementById("tools");
	var extras = document.getElementById("extras");
	
	// Hide the send to form
	formObj.style.display = 'none';
	
	// Undim the preamble
	var preamble = document.getElementById("preamble");
	// if (preamble) preamble.style.opacity = "1";

	// Undim the rest of the page		
	contentBody.style.opacity = "1";

	// Undim everything on the right
	var extrasWrapper = extras.getElementsByTagName("div")[0];
	var extrasWrapperDivs = extrasWrapper.getElementsByTagName("div");
	for(var i=0; i<extrasWrapperDivs.length; i++) {
		var extrasDiv = extrasWrapperDivs[i];
		if (extrasDiv.className=="section") extrasDiv.style.opacity = "1";
	}
	
	}
	
	return false;
}

function validate_send_form() {

	var isError       = false;
	var sendFromName  = document.getElementById("sendFromName");
	var sendFromEmail = document.getElementById("sendFromEmail");
	var sendToEmail   = document.getElementById("sendToEmail");

	if (sendFromName.value=="") {
		isError = true;
		sendFromName.className = "error";
	}
	else {
		sendFromName.className = "";
	}
	if (sendFromEmail.value==""||!valid_email(sendFromEmail.value)) {
		isError = true;
		sendFromEmail.className = "error";
	}
	else {
		sendFromEmail.className = "";
	}
	if (sendToEmail.value==""||!valid_email(sendToEmail.value)) {
		isError = true;
		sendToEmail.className = "error";
	}
	else {
		sendToEmail.className = "";
	}
	return (!isError);
}

function validate_feedback_form() {
	
	var isError           = false;
	var feedbackFromName  = document.getElementById("feedbackFromName");
	var feedbackFromEmail = document.getElementById("feedbackFromEmail");
	var feedbackMessage   = document.getElementById("feedbackMessage");

	if (feedbackFromName.value=="") {
		isError = true;
		feedbackFromName.className = "error";
	}
	else {
		feedbackFromName.className = "";
	}
	if (feedbackFromEmail.value!="") {
		if (!valid_email(feedbackFromEmail.value)) {
			isError = true;
			feedbackFromEmail.className = "error";
		}
		else {
			feedbackFromEmail.className = "";
		}	
	}
	else {
		feedbackFromEmail.className = "";
	}	
	if (feedbackMessage.value=="") {
		isError = true;
		feedbackMessage.className = "error";
	}
	else {
		feedbackMessage.className = "";
	}
	return (!isError);

}

function valid_email(email) {

	var emailReg ="^[\\w-\\.']{1,}\\@([\\da-zA-Z-]{1,}\\.){1,}[\\da-zA-Z-]{2,3}$";
    var regex = new RegExp(emailReg);
	return regex.test(email);

}

function get_xml_http_object() {

	var xmlHttp = null;
	try {
		// Firefox, Opera 8.0+, Safari
		xmlHttp = new XMLHttpRequest();
	}
	catch (e) {
		// Internet Explorer
		try {
			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e) {
			xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
	return xmlHttp;

}	


function rss_add(){

	/*
	// Is this URL already in the feed?
	var xmlHttp = get_xml_http_object();
	if (xmlHttp==null) {
		return;
	} 	
	

	// Grab this from the send form which should be present
	var url = document.getElementById("sendUrl").value;;
	
	xmlHttp.open("GET",url,true);
	xmlHttp.setRequestHeader("Content-Type", "text/plain;charset=UTF-8");
	xmlHttp.onreadystatechange = function() {
	// in case of network errors this might not give reliable results
	if(xmlHttp.readyState == 4) {

		// Get some page details
		// var dom = createDocument("","",null);
		var parser = new DOMParser();
		alert(xmlHttp.requestBody);
		var dom  = parser.parseFromString(xmlHttp.requestBody,"text/xml"

		alert(dom.getElementsByTagName("title").nodeName);

		// Remove the posting message
		// while ( feedbackContent.hasChildNodes() ) { feedbackContent.removeChild(feedbackContent.firstChild); }
		if (document.getElementById("rssStatus")) feedbackContent.removeChild(document.getElementById("rssStatus"));
		
		// Remove the message and return the page to normal after a couple of seconds
		setTimeout("rss_reset()",2000);	
	
	}
	} 
	xmlHttp.send(null);	
	*/
	
	var tags = "";
	var metas = document.getElementsByTagName("meta");
	for(var i=0;i<metas.length;i++){
		var meta = metas[i];
		if (meta.getAttribute("name")=="keywords") tags = meta.getAttribute("content");
	} 

	var rssTags = document.getElementById("rssTags");
	rssTags.value = tags;

	rss_highlight();
}

function rss_highlight() {
	var rss = document.getElementById("rss");
	tools_form_highlight(rss);
	var feedback = document.getElementById("feedback");
	var send = document.getElementById("send");	
	feedback.style.display = 'none';
	send.style.display = 'none';	
	return false;
}

function rss_clear() {
	var rss = document.getElementById("rss");
	tools_form_clear(rss);
	return false;
}

function rss_reset() {

	// Clear the send to form
	rss_clear();

	// Get send and send content divs
	var rss = document.getElementById("rss");
	
	if (rss) {
	
	var rssContent = rss.getElementsByTagName("div")[0];

	// Unhide the form part of the page
	var rssForm = rss.getElementsByTagName("form")[0];
	rssForm.style.display = "block";
	
	// and delete any status messages if there
	if (document.getElementById("rssStatus")) rssContent.removeChild(document.getElementById("rssStatus"));
	
	// and those other buttons
	if (document.getElementById("frmRssUpdate")) rssContent.removeChild(document.getElementById("frmRssUpdate"));

	rss.style.display = 'none';

	// Append the onclick event handling code for the form buttons 
	var buttonRssCancel = document.getElementById("rssCancel");
	var buttonRssSubmit = document.getElementById("rssSubmit");
	buttonRssCancel.onclick = rss_reset;
	buttonRssSubmit.onclick = rss_submit;

	}

	return false;
}

function rss_submit() {

	// Is this URL already in the feed?
	var xmlHttp = get_xml_http_object();
	if (xmlHttp==null) {
		return;
	} 	

	var url = "http://" + "www.mpa.gov.uk" + "/" + document.getElementById("rssUrl").value;

	var rss = document.getElementById("rss");
	var rssContent = rss.getElementsByTagName("div")[0];
	var rssForm = rss.getElementsByTagName("form")[0];

	// Hide the form
	rssForm.style.display = "none";

	var rssFeed = "";
	var rssFeedPress = document.getElementById("rssFeedPress");
	var rssFeedCommittee = document.getElementById("rssFeedCommittee");
	if (rssFeedPress.checked) rssFeed = rssFeedPress.value;
	if (rssFeedCommittee.checked) rssFeed = rssFeedCommittee.value;	

	var status = "Adding to RSS feed, please wait a moment..."
	
	// Add a message telling the user what has happened
	var rssContentParagraph = document.createElement("p");
	rssContentParagraph.setAttribute("id","rssStatus");
	var rssContentParagraphText = document.createTextNode(status);
	rssContentParagraph.appendChild(rssContentParagraphText);
	rssContent.insertBefore(rssContentParagraph,rssForm);

	// Grab this from the send form which should be present
	var checkurl = "/cms/comment/rss-request-check.php?url=" + url + "&id=" + rssFeed;
	
	xmlHttp.open("GET",checkurl,true);
	xmlHttp.setRequestHeader("Content-Type", "text/plain;charset=UTF-8");
	xmlHttp.onreadystatechange = function() {
	// in case of network errors this might not give reliable results
	if(xmlHttp.readyState == 4) {
		
		var $status = "";

		var responseText = xmlHttp.responseText.replace(/^\s*/, "").replace(/\s*$/, "");

		if (responseText!="0") {

			// Remove the posting message
			if (document.getElementById("rssStatus")) rssContent.removeChild(document.getElementById("rssStatus"));

			var status = "This page has already been added to this feed - would you like to update it?"
			
			// Add a message telling the user what has happened
			var rssContentParagraph = document.createElement("p");
			rssContentParagraph.setAttribute("id","rssStatus");
			var rssContentParagraphText = document.createTextNode(status);
			rssContentParagraph.appendChild(rssContentParagraphText);
			rssContent.insertBefore(rssContentParagraph,rssForm);
			
			// Show update and cancel buttons

			var form                            = document.createElement("form");
			
			form.setAttribute("id","frmRssUpdate");
		
			var form_buttons                    = document.createElement("ul");
			var form_buttons_cancel             = document.createElement("li");
			var form_buttons_submit             = document.createElement("li");
			
			var form_buttons_cancel_input       = document.createElement("input");
			var form_buttons_submit_input       = document.createElement("input");
			
			//form_buttons.setAttribute("class","buttonBar");
			form_buttons.className = "buttonBar";
		
			//form_buttons_cancel_input.setAttribute("class","stop");
			form_buttons_cancel_input.setAttribute("id","rssCancel2");
			form_buttons_cancel_input.setAttribute("name","rssCancel2");
			form_buttons_cancel_input.setAttribute("type","submit");
			form_buttons_cancel_input.className = "stop";
			form_buttons_cancel_input.value = "Cancel";
		
			//form_buttons_submit_input.setAttribute("class","next");
			form_buttons_submit_input.setAttribute("id","rssUpdate");
			form_buttons_submit_input.setAttribute("name","rssUpdate");
			form_buttons_submit_input.setAttribute("type","submit");
			form_buttons_submit_input.className = "next";
			form_buttons_submit_input.value = "Update";
			
			form.appendChild(form_buttons);
			form_buttons.appendChild(form_buttons_submit);
			form_buttons.appendChild(form_buttons_cancel);
			form_buttons_submit.appendChild(form_buttons_submit_input);
			form_buttons_cancel.appendChild(form_buttons_cancel_input);
			
			
			var form_rssid_input = document.createElement("input");
			form_rssid_input.setAttribute("id","rssId");
			form_rssid_input.setAttribute("type","hidden");
			form_rssid_input.value = responseText;
			
			form.appendChild(form_rssid_input);
			
			rssContent.appendChild(form);
					
			var buttonRssCancel = document.getElementById("rssCancel2");
			var buttonRssUpdate = document.getElementById("rssUpdate");
			buttonRssCancel.onclick = rss_reset;
			buttonRssUpdate.onclick = rss_update;

		}
		else {
			rss_post();
		}
	
	} 
	}
	xmlHttp.send(null);	
	return false;
}

function rss_post() {

	var rss = document.getElementById("rss");
	var rssContent = rss.getElementsByTagName("div")[0];
	var rssForm = rss.getElementsByTagName("form")[0];

	var url = "http://" + "www.mpa.gov.uk" + "/" + document.getElementById("rssUrl").value;
	var title = document.getElementById("h1000").firstChild.nodeValue;
	var bodyNode = document.getElementById("contentBody");
	var bodyClone = bodyNode.cloneNode(true);
	bodyClone = fix_urls(bodyClone,url);	
	var body = get_content_string(bodyClone);
	var tags = document.getElementById("rssTags").value;

	var rssFeed = "";
	var rssFeedPress = document.getElementById("rssFeedPress");
	var rssFeedCommittee = document.getElementById("rssFeedCommittee");
	if (rssFeedPress.checked) rssFeed = rssFeedPress.value;
	if (rssFeedCommittee.checked) rssFeed = rssFeedCommittee.value;	
	
	var syndicationId = document.getElementById("rssSyndicationId").value;

	var post = "rssSubmit=1&rssId=" + rssFeed + "&rssUrl=" + url + "&rssTitle=" + urlencode(title) + "&rssBody=" + urlencode(body) + "&rssTags=" + urlencode(tags) + "&syndicationId=" + syndicationId;

	var xmlHttp = get_xml_http_object();
	if (xmlHttp==null) {
		return;
	} 	

	xmlHttp.open("POST","/cms/comment/rss-request.php",true);
	xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	xmlHttp.onreadystatechange = function() {
	// in case of network errors this might not give reliable results
	if(xmlHttp.readyState == 4) {

		// Remove the posting message
		if (document.getElementById("rssStatus")) rssContent.removeChild(document.getElementById("rssStatus"));

		var status = xmlHttp.responseText;
		var link = status.match(/http:\/\/.+/);
		status = status.replace(/http:\/\/.+/,"");


		// Add a message telling the user what has happened
		var rssContentParagraph = document.createElement("p");
		rssContentParagraph.setAttribute("id","rssStatus");
		var rssContentParagraphText = document.createTextNode(status);
		rssContentParagraph.appendChild(rssContentParagraphText);
		/*
		var rssContentLink = document.createElement("a");
		rssContentLink.setAttribute("href",link);
		rssContentParagraph.appendChild(rssContentLink);
		var rssContentLinkText = document.createTextNode(link);
		rssContentLink.appendChild(rssContentLinkText);
		*/
		rssContent.insertBefore(rssContentParagraph,rssForm);

		// Remove the message and return the page to normal after a couple of seconds
		// setTimeout("rss_reset()",2000);
		
		var form                            = document.createElement("form");
		
		form.setAttribute("id","frmRssUpdate");
	
		var form_buttons                    = document.createElement("ul");
		var form_buttons_view               = document.createElement("li");
		var form_buttons_submit             = document.createElement("li");
		
		var form_buttons_view_input         = document.createElement("input");
		var form_buttons_submit_input       = document.createElement("input");
		
		//form_buttons.setAttribute("class","buttonBar");
		form_buttons.className = "buttonBar";

		//form_buttons_view_input.setAttribute("class","next");
		form_buttons_view_input.setAttribute("id","rssView");
		form_buttons_view_input.setAttribute("name","rssView");
		form_buttons_view_input.setAttribute("type","submit");
		//form_buttons_view_input.setAttribute("onclick","rss_reset(); location.href='" + link + "'; return false;");
		form_buttons_view_input.className = "next";
		form_buttons_view_input.value = "View RSS feed";
	
		//form_buttons_submit_input.setAttribute("class","next");
		form_buttons_submit_input.setAttribute("id","rssOK");
		form_buttons_submit_input.setAttribute("name","rssOK");
		form_buttons_submit_input.setAttribute("type","submit");
		form_buttons_submit_input.className = "next";
		form_buttons_submit_input.value = "OK";
		
		form.appendChild(form_buttons);
		form_buttons.appendChild(form_buttons_view);
		form_buttons.appendChild(form_buttons_submit);
		form_buttons_view.appendChild(form_buttons_view_input);
		form_buttons_submit.appendChild(form_buttons_submit_input);
		
		rssContent.appendChild(form);
				
		var buttonRssView = document.getElementById("rssView");
		buttonRssView.onclick = new Function("rss_reset(); location.href='" + link + "'; return false;");
		var buttonRssOK = document.getElementById("rssOK");
		buttonRssOK.onclick = rss_reset;		
		
	}
	}
	xmlHttp.send(post);	
	return false;

}

function rss_update() {

	var rss = document.getElementById("rss");
	var rssContent = rss.getElementsByTagName("div")[0];
	var rssForm = rss.getElementsByTagName("form")[0];

	var url = "http://" + "www.mpa.gov.uk" + "/" + document.getElementById("rssUrl").value;
	var title = document.getElementById("h1000").firstChild.nodeValue;
	var bodyNode = document.getElementById("contentBody");
	var bodyClone = bodyNode.cloneNode(true);
	bodyClone = fix_urls(bodyClone,url);	
	var body = get_content_string(bodyClone);
	var tags = document.getElementById("rssTags").value;
	var rssId = document.getElementById("rssId").value;

	// Remove the posting message
	if (document.getElementById("rssStatus")) rssContent.removeChild(document.getElementById("rssStatus"));
	if (document.getElementById("frmRssUpdate")) rssContent.removeChild(document.getElementById("frmRssUpdate"));

	var status = "Updating RSS feed, please wait a moment..."
	
	// Add a message telling the user what has happened
	var rssContentParagraph = document.createElement("p");
	rssContentParagraph.setAttribute("id","rssStatus");
	var rssContentParagraphText = document.createTextNode(status);
	rssContentParagraph.appendChild(rssContentParagraphText);
	rssContent.insertBefore(rssContentParagraph,rssForm);	
	
	var syndicationId = document.getElementById("rssSyndicationId").value;

	var post = "rssUpdate=1&rssId=" + rssId + "&rssUrl=" + url + "&rssTitle=" + urlencode(title) + "&rssBody=" + urlencode(body) + "&rssTags=" + urlencode(tags) + "&syndicationId=" + syndicationId;

	var xmlHttp = get_xml_http_object();
	if (xmlHttp==null) {
		return;
	} 	

	xmlHttp.open("POST","/cms/comment/rss-request.php",true);
	xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	xmlHttp.onreadystatechange = function() {
	// in case of network errors this might not give reliable results
	if(xmlHttp.readyState == 4) {

		// Remove the posting message
		if (document.getElementById("rssStatus")) rssContent.removeChild(document.getElementById("rssStatus"));

		var status = xmlHttp.responseText;

		// Add a message telling the user what has happened
		var rssContentParagraph = document.createElement("p");
		rssContentParagraph.setAttribute("id","rssStatus");
		var rssContentParagraphText = document.createTextNode(status);
		rssContentParagraph.appendChild(rssContentParagraphText);
		rssContent.insertBefore(rssContentParagraph,rssForm);

		var form                            = document.createElement("form");
		
		form.setAttribute("id","frmRssUpdate");
	
		var form_buttons                    = document.createElement("ul");
		var form_buttons_submit             = document.createElement("li");
		
		var form_buttons_submit_input       = document.createElement("input");
		
		//form_buttons.setAttribute("class","buttonBar");
		form_buttons.className = "buttonBar";
	
		//form_buttons_submit_input.setAttribute("class","next");
		form_buttons_submit_input.setAttribute("id","rssOK");
		form_buttons_submit_input.setAttribute("name","rssOK");
		form_buttons_submit_input.setAttribute("type","submit");
		form_buttons_submit_input.className = "next";
		form_buttons_submit_input.value = "OK";
		
		form.appendChild(form_buttons);
		form_buttons.appendChild(form_buttons_submit);
		form_buttons_submit.appendChild(form_buttons_submit_input);

		
		rssContent.appendChild(form);
				
		var buttonRssOK = document.getElementById("rssOK");
		buttonRssOK.onclick = rss_reset;	
		
	}
	}
	xmlHttp.send(post);	
	return false;

}

function get_content_string(obj){
	var html = obj.innerHTML;
	html = html.replace(/<\/?div[^>]*>/gi,"");
	html = html.replace(/<h[^>]*>.*?<\/h1>/gi,"");
	return html;
}

function fix_urls(obj,url) {
	//var parser = new DOMParser();
	//var dom  = parser.parseFromString(html,"text/html");
	var anchors = obj.getElementsByTagName("a");
	for(var i=0;i<anchors.length;i++){
		var anchor = anchors[i];
		var href = anchor.getAttribute("href");
		if (href!=null) {
			href = href.replace(/^about:/,""); // to handle some odd IE behaviour
			if (href.match(/^\.\.\//ig)) {
				var dd = href.match(/\.\.\//ig).length;
				var u = url;
				for(var d=0;d<=dd;d++) {
					u = u.substring(0,u.lastIndexOf("/"))
					href = href.replace(/^\.\.\//,""); 
				}
				href = u + "/" + href;
				anchor.setAttribute("href",href);
			}
		}
	}
	var images = obj.getElementsByTagName("img");
	for(var i=0;i<images.length;i++){
		var image = images[i];
		var src = image.getAttribute("src");
		if (src!=null) {
			src = src.replace(/^about:/,""); // to handle some odd IE behaviour
			if (src.match(/^\.\.\//ig)) {
				var dd = src.match(/\.\.\//ig).length;
				var u = url;
				for(var d=0;d<=dd;d++) {
					u = u.substring(0,u.lastIndexOf("/"))
					src = src.replace(/^\.\.\//,""); 
				}
				src = u + "/" + src;
				image.setAttribute("src",src);
			}
		}
	}
	return(obj);
}

function urlencode( str ) {
    // http://kevin.vanzonneveld.net
    // +   original by: Philip Peterson
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +      input by: AJ
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: Brett Zamir (http://brettz9.blogspot.com)
    // %          note: info on what encoding functions to use from: http://xkr.us/articles/javascript/encode-compare/
    // *     example 1: urlencode('Kevin van Zonneveld!');
    // *     returns 1: 'Kevin+van+Zonneveld%21'
    // *     example 2: urlencode('http://kevin.vanzonneveld.net/');
    // *     returns 2: 'http%3A%2F%2Fkevin.vanzonneveld.net%2F'
    // *     example 3: urlencode('http://www.google.nl/search?q=php.js&ie=utf-8&oe=utf-8&aq=t&rls=com.ubuntu:en-US:unofficial&client=firefox-a');
    // *     returns 3: 'http%3A%2F%2Fwww.google.nl%2Fsearch%3Fq%3Dphp.js%26ie%3Dutf-8%26oe%3Dutf-8%26aq%3Dt%26rls%3Dcom.ubuntu%3Aen-US%3Aunofficial%26client%3Dfirefox-a'
                             
    var histogram = {};
    var tmp_arr = [];
    var ret = str.toString();
    
    function replacer(search, replace, str) {
        var tmp_arr = [];
        tmp_arr = str.split(search);
        return tmp_arr.join(replace);
    };


    // The histogram is identical to the one in urldecode.
    histogram["'"]   = '%27';
    histogram['(']   = '%28';
    histogram[')']   = '%29';
    histogram['*']   = '%2A';
    histogram['~']   = '%7E';
    histogram['!']   = '%21';
    histogram['%20'] = '+';
    
    // Begin with encodeURIComponent, which most resembles PHP's encoding functions
    ret = encodeURIComponent(ret);
    
    for (var search in histogram) {
        replace = histogram[search];
        ret = replacer(search, replace, ret) // Custom replace. No regexing
    }

    // Uppercase for full PHP compatibility
    return ret.replace(/(\%([a-z0-9]{2}))/g, function(full, m1, m2) {
        return "%"+m2.toUpperCase();
    });
    
    return ret;
}

// Set the containing form block styles
var formStyle = "<style type=\"text/css\">\n";
formStyle += "\t#tools {\n";
formStyle += "\t\tdisplay: block;\n";
formStyle += "\t}\n";	
formStyle += "\t#send {\n";
formStyle += "\t\tdisplay: none;\n";
formStyle += "\t}";	
formStyle += "\t#buttonSendCancel {\n";
formStyle += "\t\tdisplay: inline;\n";
formStyle += "\t}";	
formStyle += "\t#feedback {\n";
formStyle += "\t\tdisplay: none;\n";
formStyle += "\t}";	
formStyle += "\t#buttonFeedbackCancel {\n";
formStyle += "\t\tdisplay: inline;\n";
formStyle += "\t}";	

formStyle += "\t#rss {\n";
formStyle += "\t\tdisplay: none;\n";
formStyle += "\t}";	
formStyle += "\t#buttonRssCancel {\n";
formStyle += "\t\tdisplay: inline;\n";
formStyle += "\t}";	

formStyle += "</style>";
document.write(formStyle);

