function newXMLHttpRequest() {
	var xmlreq = false;
	if (window.XMLHttpRequest) {
		// Create XMLHttpRequest object in non-Microsoft browsers
		xmlreq = new XMLHttpRequest();
	} else if (window.ActiveXObject) {
		// Create XMLHttpRequest via MS ActiveX
		try {
			// Try to create XMLHttpRequest in later versions
			// of Internet Explorer
			xmlreq = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e1) {
			// Failed to create required ActiveXObject
			try {
				// Try version supported by older versions
				// of Internet Explorer
				xmlreq = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e2) {
				// Unable to create an XMLHttpRequest with ActiveX
			}
		}
	}
	return xmlreq;
}



function paramEscape(paramValue)
{
	return encodeURIComponent(paramValue);
}

function formData2QueryString(docForm, method, actionUrl)
{    
	var submitString = '';
	var formElement = '';
	var lastElementName = '';



	if (method == "POST" ) {
		//alert(docForm.name);

		for(i = 0 ; i < docForm.elements.length ; i++) {
			formElement = docForm.elements[i];

			switch(formElement.type) {
				case 'text' :
				case 'select-one' :
				case 'hidden' :
				case 'password' :
				case 'textarea' :
					submitString += formElement.name + '=' + paramEscape(formElement.value) + '&';
				break;
				case 'radio' :     
					if(formElement.checked) {
					submitString += formElement.name + '=' + paramEscape(formElement.value) + '&';
					}
				break;
					case 'select-multiple' :    
					for(j=0; j<formElement.options.length; j++) {
						if(formElement.options[j].selected == true) {
							submitString += formElement.name + '=' + paramEscape(formElement.options[j].value) + '&';
						}
					}             
				break;
				case 'checkbox' :    
					if(formElement.checked)  {
						submitString += formElement.name + '=' + paramEscape(formElement.value) + '&';
	/*					if(formElement.name = lastElementName) {
							if(submitString.lastIndexOf('&') == submitString.length - 1) {
								submitString = submitString.substring(0, submitString.length - 1);
							}
							submitString += ',' + paramEscape(formElement.value);
						}
						else {
							submitString += formElement.name + '=' + paramEscape(formElement.value); 
						}
						submitString += '&';
						lastElementName = formElement.name; 
	*/
					}
				break;  
			}
		}
	}
	else {
		var splitParam = actionUrl.split("?");
		submitString = paramEscape(splitParam[1]);
		
	}
	submitString = submitString.substring(0, submitString.length - 1);
	//document.all("result").value = submitString;


	return submitString;                                               
}

function xmlHttpPost(actionUrl, submitParameter, resultFunction, method)
{
	var xmlHttpRequest = false;


	//IE
	if(window.ActiveXObject) {
		xmlHttpRequest = new ActiveXObject('Microsoft.XMLHTTP');
	}
	else {
		xmlHttpReq = new XMLHttpRequest();
		xmlHttpReq.overrideMimeType('text/xml');
	}

            
	xmlHttpRequest.open(method, actionUrl, true);
	xmlHttpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	xmlHttpRequest.onreadystatechange = function() {
		if(xmlHttpRequest.readyState == 4) {
			switch (xmlHttpRequest.status) {
				case 404:
					alert('error: ' + actionUrl + ' not found');
				break;
				case 500:
					alert('error: ' + xmlHttpRequest.responseText);
				break;
				default:
					eval(resultFunction + '(xmlHttpRequest);');
				break;
			}
		}
	}
    
    xmlHttpRequest.send(submitParameter);
}                                    

function xmlHttpPost2(actionUrl, submitParameter, resultFunction, method)
{
	var xmlHttpRequest = false;


	//IE
	if(window.ActiveXObject) {
		xmlHttpRequest = new ActiveXObject('Microsoft.XMLHTTP');
	}
	else {
		xmlHttpReq = new XMLHttpRequest();
		xmlHttpReq.overrideMimeType('text/xml');
	}    


	xmlHttpRequest.open(method, actionUrl, true);
	xmlHttpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	xmlHttpRequest.onreadystatechange = function() {
		if(xmlHttpRequest.readyState == 4) {
			switch (xmlHttpRequest.status) {
				case 404:
					alert('error: ' + actionUrl + ' not found');
				break;
				case 500:
					alert('error: ' + xmlHttpRequest.responseText);
				break;
				default:
					eval(resultFunction + '(xmlHttpRequest.responseText);');
				break;
			}
		}
	}
    
    xmlHttpRequest.send(submitParameter);
}                                    

