var xmlHttpReq;
var div;
var xmlForm;

function initObjXHMLReq(){
	//mozilla
	if( window.XMLHttpRequest  ){
		return new XMLHttpRequest();
	}
	else if( window.ActiveXObject ){
		return new ActiveXObject("Microsoft.XMLHTTP");
	}
}

function validXMLHttpReq(){
	if( this.xmlHttpReq ){
		return true;
	}
	alert("Your browser doesn't support Ajax sorry!");
	return false;
}

function xmlHttpPost(strURL,params){
	
	if( !validXMLHttpReq() ){
		return false;
	}
	
	xmlHttpReq = this.xmlHttpReq;
	
    xmlHttpReq.open('POST', strURL , true);

    xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    xmlHttpReq.onreadystatechange = processState;

	if( xmlForm == 0){
		xmlHttpReq.send( params );
	}else{
			
		xmlHttpReq.send( getquerystring() );
	}
}

function processState(){

	if( xmlHttpReq.readyState == 4){
		updatePage( self.xmlHttpReq.responseText );
	}
}

function getquerystring() {
    var form     = document.forms[ xmlForm ];
    qstr = '';
    items = form.elements.length;
    for( i=0; i< items; i++){
		qstr += form.elements[ i ].name + '=' + escape(form.elements[ i ].value) +'&';    	
    }
    // NOTE: no '?' before querystring
    //alert(qstr);
    return qstr;
}

function updatePage(str){
    document.getElementById( div ).innerHTML = str;
}

//-------------------------------------------------



function configureXML( paramDiv, paramForm ){
	xmlHttpReq = initObjXHMLReq();
	div = paramDiv;
	xmlForm = paramForm;
}



function executeXML( url, params , paramDiv ){
	configureXML( paramDiv, 0);
	xmlHttpPost( url,params );
}

function executeXMLForm( url, paramForm, paramDiv ){
	configureXML( paramDiv, paramForm );
	xmlHttpPost( url );
}