function post(thisform,url,target)
{
// Process tinyMCE
tinyMCE.triggerSave(true,true); 

//General Purpose Ajax form submitter.
//Written by Carl(bag) @ Thybag.co.uk
//var thisform = document.getElementById(thisform);
// Set up data variable
var formdata = "";

// Set up Ajax request variable
xmlhttp = getXMLHttpRequestObject();

// 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) + "&";
		//formdata = formdata + 'content=' + escape(FCKeditorAPI.GetInstance('content').GetXHTML()) + "&";
		//origianl:
		//var pars = 'page_content=' + escape(FCKeditorAPI.GetInstance('page_content').GetXHTML());
		}
    }
	
xmlhttp.onreadystatechange = function() 
	{
	// Pass it this request object:
	handleResponse(xmlhttp,target,thisform);
	}

/*
//Send Ajax Request
xmlhttp.onreadystatechange = function()
	{
	var wait = document.getElementById(target);
	wait.innerHTML = '<div id=\"ajax_loader\"><table border=\"0\"><tr><td><img src=\"img_iconies/ajax_loader_search.gif\"> </td><td> Processing... please wait.</td></tr></table><div>';
	//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.
		//alert("Your form has been successfully submitted");
		var request_response = document.getElementById(target);
		//var userSignature= FCKeditorAPI.GetInstance('content').GetHTML();
		request_response.innerHTML = xmlhttp.responseText;
		}
    }
*/
//Make connection
xmlhttp.open("POST", url);
//Set Headers
xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
//Send data
xmlhttp.send(formdata);
//stops form from submitting normally
return false;
}

// Function that handles the response from the PHP script:
function handleResponse(xmlhttp,target,thisform) 
{

// To wait
var wait = document.getElementById(target);
wait.style.display = 'block';
wait.innerHTML = '<div id=\"ajax_loader\"><table border=\"0\"><tr><td><img src=\"img_iconies/ajax_loader_search.gif\"> </td><td> Processing... please wait.</td></tr></table><div>';

// Check that the transaction is complete:
if (xmlhttp.readyState == 4) 
	{
	
	// Check for a valid HTTP status code:
    if ((xmlhttp.status == 200) || (xmlhttp.status == 304) ) 
		{
		//var request_response = document.getElementById(target);
		//request_response.innerHTML = xmlhttp.responseText;
		
		var results = document.getElementById(target);
      	var labels = document.getElementsByTagName('label');
		var imgs = thisform.getElementsByTagName('img');
		// Reset all the labels:
		for (i=0; i < labels.length; i++)
			{
			labels[i].className = 'title';
			//alert(labels[i].id);
			/*
			document.getElementById('pg_title_label').className = 'title';
			document.getElementById('pg_title_clean_label').className = 'title';
			document.getElementById('pg_content_label').className = 'title';
			document.getElementById('pg_hide_label').className = 'title';
			*/
			}
		for (i=0; i < imgs.length; i++)
			{
			imgs[i].style.visibility = 'hidden';
			//alert(labels[i].id);
			}
		
		// Get the XML data:
		var data = xmlhttp.responseXML;
      
		// Get the URL if there is any:
		var urls = data.getElementsByTagName('url');
		for (var i = 0; i < urls.length; i++) 
			{
			// Get the error value:
			url = urls[i].firstChild.nodeValue;
			//alert(url);
			//document.location='index.php';
			get(url, target);
			}
			
		// Get the main response:
		var message = data.getElementsByTagName('result');
      
		// Get all the errors:
		var errors = data.getElementsByTagName('error');
		
		// Temp variable to use in the loop:
		var temp = false;
      
		// Loop through each error:
		for (var i = 0; i < errors.length; i++) 
			{
			// Get the error value:
			temp = errors[i].firstChild.nodeValue;
			//alert(temp);
			
			// Change the class:
			document.getElementById(temp + '_label').className = 'error';
			document.getElementById(temp + '_img').style.visibility = 'visible';
			} // End of FOR loop.
  
		// Put the received response in the DOM:
		var msg = "";
		for (var i = 0; i < message.length; i++) 
			{
			//
			var div_caption = document.createElement("div");
			
			//
			var get_result = message[i].firstChild.nodeValue;
			var create_title = document.createTextNode(get_result);
			
			//
			div_caption.appendChild(create_title)
			//alert(message[i].firstChild.nodeValue);
			msg = msg + '<div>* ' + message[i].firstChild.nodeValue + '\n' + '</div>';
			}
		//alert(msg); 
		results.innerHTML = msg;
		// Make the results box visible:
		results.style.display = 'block';
		} 	
	} // End of readyState IF. 
} // End of handleResponse() function.
