//this function gets params from a form and formats it for ajax
function get_params(p_formId)
{	
	//get selects element values and set id=value
	var params = "";

	//get the anchor list value
	
	var selects = document.getElementById(p_formId).AnchorList;
	if(selects.options[selects.selectedIndex].value != "undefined" && selects.options[selects.selectedIndex].value != "");
	{
		params += ((params.length > 0) ? '&' : '') + 'AnchorList' + '=' + selects.options[selects.selectedIndex].value;
	}
	
	//get inputs values
	var inputs = document.getElementById(p_formId).Emoticon;
	for(i=0;i<inputs.length;i++)
	{
		if(inputs[i].checked)
		{
			params += ((params.length > 0) ? '&' : '') + 'Emoticon' + '=' + inputs[i].value;
		}
	}
	
	var txtbox = document.getElementById(p_formId).Topic;
	if(txtbox.value != "");
	{
		params += ((params.length > 0) ? '&' : '') + 'Topic' + '=' + txtbox.value;
	}

	//get rte value
	
	//var ctext = document.forms[p_formId].UserComment;
	var ed = tinyMCE.get('UserComment');
	params += ((params.length > 0) ? '&' : '') + 'Comment' + '=' + ed.getContent();	
	return params;
}
//set this to user specific or a default if it is a public surfer 
//need some php code for this $_SESSION{"AJAXDelay"]
var AJAXDelay = 100;

XMLHttpRequestObject = false;
     
if(window.XMLHttpRequest)
{
	XMLHttpRequestObject = new XMLHttpRequest(); //Mozilla,Opera,Safari,Firefox
	//XMLHttpRequestObject.overrideMimeType('text/xml');//over ride server mime type in case they don't have xml mime types
	self.status = "Mozilla Object";
}else if(window.ActiveXObject)
{
	XMLHttpRequestObject = new ActiveXObject("Msxml2.XMLHTTP"); //IE 6, 7
	self.status = "IE 6+ Object";
}else
{
	XMLHttpRequest = new ActiveXObject("Microsoft.XMLHTTP"); //IE 5, 5.5
	self.status = "IE 5+ Object";
}

function getXML(url, divID)
{
	if(XMLHttpRequestObject)
	{
		var obj = document.getElementById(divID);
		
		XMLHttpRequestObject.open("GET", url, true);//true = asynchronous, false = synchronous

		XMLHttpRequestObject.onreadystatechange = function()
		{
			//XMLHttpRequestObject.setRequestHeader("Content-Type", "text/xml");
			//use below for post data
			//XMLHttpRequestObject.setRequestHeader("Content-Type", "application-x-www-forurlencoded");
			
			if(XMLHttpRequestObject.readyState == 4)
			{	
				//urlstr = url.split("?");//urlstr[0]
				self.status = "Completed AJAX request to " + divID + ".";
				//XMLHttpRequestObject.statusText //returns the text msg of the staus number
				
				if( XMLHttpRequestObject.status == 200)
				{
					var txtDoc = XMLHttpRequestObject.responseText;

					//var xmlDoc = XMLHttpRequestObject.responseXML;
					if(txtDoc)
					{
							//obj.innerHTML = XMLHttpRequestObject.responseText;
							//obj.value = txtDoc;
							//erase the objects txt
							//self.status = "Returned AJAX data.";
							obj.innerHTML = "";
							obj.innerHTML = txtDoc;
					}else
					{
						self.status = "Data retrival error!.";
					}
				}else
				{
					XMLstatus(XMLHttpRequestObject.status);
				}
			}else
			{
				XMLreadystate(XMLHttpRequestObject.readyState);
			}
		}
		XMLHttpRequestObject.send(null);//can use name=value pairs to send post data to server
	}else
	{
		self.status = "AJAX Object not initialized.";
	}
}

function getXMLtxt(url)
{
	if(XMLHttpRequestObject)
	{
		XMLHttpRequestObject.open("GET", url, true);//true = asynchronous, false = synchronous
		
		XMLHttpRequestObject.onreadystatechange = function()
		{
			//XMLHttpRequestObject.setRequestHeader("Content-Type", "text/xml");
			//use below for post data
			//XMLHttpRequestObject.setRequestHeader("Content-Type", "application-x-www-forurlencoded");

			if(XMLHttpRequestObject.readyState == 4)
			{	
				self.status = "Completed AJAX text request.";
				//XMLHttpRequestObject.statusText //returns the text msg of the staus number
				if( XMLHttpRequestObject.status == 200)
				{
					var txtDoc = XMLHttpRequestObject.responseText;
					
					//var xmlDoc = XMLHttpRequestObject.responseXML;
					if(txtDoc)
					{
						self.status = "AJAX Data returned";
						return txtDoc;
					}else
					{
						self.status = "Data retrival error!.";
						return false;
					}
				}else
				{
					XMLstatus(XMLHttpRequestObject.status);
				}
			}else
			{
				XMLreadystate(XMLHttpRequestObject.readyState);
			}
		}
		XMLHttpRequestObject.send(null);//can use name=value pairs to send post data to server
	}else
	{
		self.status = "AJAX Object not initialized.";
	}
}
function getPostXML(url, divID)
{
	if(XMLHttpRequestObject)
	{
		var obj = document.getElementById(divID);
		var params = url.substr((url.indexOf("?")+1));
		url = url.substr(0,(url.indexOf("?")));
		XMLHttpRequestObject.open("POST", url, true);//true = asynchronous, false = synchronous
		XMLHttpRequestObject.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		XMLHttpRequestObject.setRequestHeader("Content-length", params.length);
		XMLHttpRequestObject.setRequestHeader("Connection", "close");
		
		
		
		XMLHttpRequestObject.onreadystatechange = function()
		{
			//XMLHttpRequestObject.setRequestHeader("Content-Type", "text/xml");
			//use below for post data

			if(XMLHttpRequestObject.readyState == 4)
			{	
				self.status = "Completed AJAX request.";
				//XMLHttpRequestObject.statusText //returns the text msg of the staus number
				if( XMLHttpRequestObject.status == 200)
				{	
					var txtDoc = XMLHttpRequestObject.responseText;
					//var xmlDoc = XMLHttpRequestObject.responseXML;
					if(txtDoc)
					{
							//obj.innerHTML = XMLHttpRequestObject.responseText;
							//obj.value = txtDoc;
							//erase the objects txt
							//self.status = "Returned AJAX data.";
							obj.innerHTML = "";
							obj.innerHTML = txtDoc;
					}else
					{
						self.status = "Data retrival error!.";
					}
				}else
				{
					XMLstatus(XMLHttpRequestObject.status);
				}
			}else
			{
				XMLreadystate(XMLHttpRequestObject.readyState);
			}
		}
		XMLHttpRequestObject.send(params);//can use name=value pairs to send post data to server
	}else
	{
		self.status = "AJAX Object not initialized.";
	}
}

function XMLreadystate(r)
{
	switch(r)
	{
		case 0:
			self.status = "Uninitialized AJAX request.";
			break;
		case 1:
			self.status = "Loading AJAX request.";
			break;
		case 2:
			self.status = "Loaded AJAX request.";
			break;
		case 3:
			self.status = "Interacting with AJAX request.";
			break;
		case 4:
			self.status = "Completed AJAX request.";
			break;
	}
}
function XMLstatus(e)
{
	switch(e)
	{
		case 201:
			self.status = "Created.";
			break;
		case 204:
			self.status = "No Content";
			break;
		case 205:
			self.status = "Reset Content";
			break;
		case 206:
			self.status = "Partial Content";
			break;
		case 400:
			self.status = "Bad Request";
			break;
		case 401:
			self.status = "Unauthorized Request";
			break;
		case 403:
			self.status = "Forbidden Request";
			break;
		case 404:
			self.status = "Source Not Found";
			break;
		case 405:
			self.status = "Method Not Allowed.";
			break;
		case 406:
			self.status = "Request Not Acceptable";
			break;
		case 407:
			self.status = "Proxy Authentication Required.";
			break;
		case 408:
			self.status = "Request Timed Out.";
			break;
		case 411:
			self.status = "Length Required.";
			break;
		case 413:
			self.status = "Request Entity Too Large";
			break;
		case 414:
			self.status = "Requested URL Too Long";
			break;
		case 415:
			self.status = "Unsupported Media Type.";
			break;
		case 500:
			self.status = "Internal Server Error";
			break;
		case 501:
			self.status = "Not Implemented";
			break;
		case 502:
			self.status = "Bad Gateway.";
			break;
		case 503:
			self.status = "Service Unavailable";
			break;
		case 504:
			self.status = "Gateway Time Out.";
			break;
		case 505:
			self.status = "HTTP Version Not Supported.";
			break;
	}
	
}

