/*alert('testing');*/
function Ajax()
{ 
 var http_request = false;
 //var _datareturn='';//data return
 var _postvalue='';//get data from form value
 var _method='';//get or post
 var _url='';//url address
 var _responsetype='';//text or xml
 var _formobject;//form id
 var _documentid='';//get document id
 var _loading='';
 
 function setMethod(setValue){
	 _method=setValue;
	 return false;
 }
 
 this.setMethod=setMethod;
 
 function setUrl(setValue){
	 _url=setValue;
 }
 
 this.setUrl=setUrl;
 
 function setResponseType(setValue){
	_responsetype=setValue; 
 }
 
 this.setResponseType=setResponseType;
 
 function setDocumentId(setValue){
	 _documentid=setValue;
 }
 
 this.setDocumentId=setDocumentId;
 
 function setFormObject(setValue){
	 _formobject=setValue;
 }
 
 this.setFormObject=setFormObject;

 function setLoading(setValue){
	 _loading=setValue;
 }
 
 this.setLoading=setLoading;
 
 function createRequest()
 {
	http_request = false ; 
	if (window.XMLHttpRequest) 
	{// Mozilla, Safari ,...
	 http_request = new XMLHttpRequest();
	 if (http_request.overrideMimeType) 
	 {
		http_request.overrideMimeType('text/xml'); 
	 }	
	}else
	if (window.ActiveXObject) 
	{//ie
		var aVersions = [ "MSXML2.XMLHttp.6.0", 
	 	"MSXML2.XMLHttp.5.0", 
		"MSXML2.XMLHttp.4.0", 
		"MSXML2.XMLHttp.3.0", 
		"MSXML2.XMLHTTP",
		"Microsoft.XMLHTTP" ];
		for (var i = 0; i < aVersions.length; i++) 
		{
		 	try
			{
				http_request = new ActiveXObject(aVersions[ i ]);
				break;
			}
			catch (e)
			{
				//do nothing
			}
			
		}//end for
	}//end if window.ActiveXObject
	
	if (!http_request) 
	{
		alert ('Giving up :( Cannot create an XMLHTTP instance');
		return false;
	}
	
	var timestamp = new Date();
	var uniqueURI = _url;//+ (_url.indexOf("?") > 0 ? "&" : "?")+ "timestamp="+timestamp.getTime();
	
	if(_method=="get")
	{
		http_request.open('GET', uniqueURI, true);
		http_request.onreadystatechange = handleResponse;
		http_request.send(null);
	}
	else
	{
		if(!_formobject)return false;
		for(i = 0; i < _formobject.length; i++)
		{
			if (_postvalue.length) _postvalue += '&';
			switch(_formobject.elements[i].type)
			{
				case "text":
				_postvalue += _formobject.elements[i].name + '=' +encodeURI(_formobject.elements[i].value);
				break;
				
				case "password":
				_postvalue += _formobject.elements[i].name + '=' +encodeURI(_formobject.elements[i].value);
				break;
				
				case "textarea":
				_postvalue += _formobject.elements[i].name + '=' +encodeURI(_formobject.elements[i].value);
				break;
				
				case "hidden":
				_postvalue += _formobject.elements[i].name + '=' +encodeURI(_formobject.elements[i].value);
				break;
				
				case "select-one":
				if(_formobject.elements[i].selectedIndex>=0)
				{
					_postvalue += _formobject.elements[i].options[_formobject.elements[i].selectedIndex-1].value;
				}
				break;
			}//end switch
		}//end for
		
		http_request.open('POST', uniqueURI, true);
		http_request.onreadystatechange = handleResponse;
		http_request.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
		http_request.send(_postvalue);
		for(i = 0; i < _formobject.length; i++)
		{
			if((_formobject.elements[i].type=="text")||(_formobject.elements[i].type=="textarea")||(_formobject.elements[i].type=="hidden")||(_formobject.elements[i].type=="password")) _formobject.elements[i].value="";
		}
		
	}//end else (_method=="get")
 }//end function createRequest()
 
 this.createRequest=createRequest;
 
 function handleResponse()
 {
	 if (http_request.readyState < 4)
	 {
		 //document.getElementById('typehp').innerHTML += "Request status: 1 (loading) <br/>";
		 document[_loading].style.display='block' ;
	 }
	
	 if (http_request.readyState == 4) 
	 {
		 if (http_request.status == 200) 
		 {
			 document[_loading].style.display='none' ;
			 var docid=new Array();
			 var i;
			 //docid=_documentid.split('~');
			 docid=_documentid;
			 
			 if(_responsetype=="text")
			 {
				 //var responsetxt=new Array();
				 //responsetxt=http_request.responseText.split('|');
				 responsetxt=http_request.responseText;
				 
				 /*for(i=0;i<docid.length;i++)
				 {
					 document.getElementById(docid[i]).innerHTML=''+responsetxt;
				 }*/
				 document.getElementById(docid).innerHTML=responsetxt;
			 }
			 else if(_responsetype=="xml")
			 alert(http_request.responseXML);
		 }else alert('There was a problem with the request.');
	 }//else alert('There was a problem with the request '+http_request.readyState);
	 return false;
 }//end function 
}//end class

function doRequest(requestmethod, urladdress, responsetype, documentid, formobject,loading){
	try
	{
		var obj=new Ajax();
		obj.setMethod(requestmethod);
		obj.setUrl(urladdress);
		obj.setResponseType(responsetype);
		obj.setDocumentId(documentid);
		obj.setLoading(loading);
		if(formobject)
		{
			obj.setFormObject(formobject);
		}
		obj.createRequest();
	}catch(ex)
	{
		alert(ex.message);
	}
	//var name = new String(document.getElementById('myName').value);
	//setTimeout("doRequest('get','nquickstart.php?name='+escape(new String(document.getElementById('myName').value)),'text','divMessage','')", 1000);
} 

function handleKey(e,form)
{
	// get the event
	e = (!e) ? window.event : e;
	// get the code of the character that has been pressed
	code = (e.charCode) ? e.charCode : 
	((e.keyCode) ? e.keyCode : 
	((e.which) ? e.which : 0));
	
	// handle the keydown event
	if (e.type == "keydown")
	{
		// if enter (code 13) is pressed
		if(code == 13)
		{
			// send the current message
			submitForm();
			
		}
	}
}
