if (!window.XMLHttpRequest) 
{ 
    window.XMLHttpRequest = function() 
    { 
        var types = [ 
            'Microsoft.XMLHTTP', 
            'MSXML2.XMLHTTP.5.0', 
            'MSXML2.XMLHTTP.4.0', 
            'MSXML2.XMLHTTP.3.0', 
            'MSXML2.XMLHTTP' 
        ]; 

        for (var i = 0; i < types.length; i++) 
        { 
            try 
            { 
                return new ActiveXObject(types[i]); 
            } 
            catch(e) {} 
        } 

        return undefined; 
    } 
}


function cRequest(){
	
	this.sArgs	= '';
	this.sUrl	= '';
	this.sType	= 'GET';
	var xmlhttp	= new XMLHttpRequest(); 
	
	
	this.addArgument = function (name, value){
		this.sArgs += escape(name) + '=' + escape(value) + '&';
	};
	this.clearArguments = function(){
		this.sArgs = '';
	};
	this.getContent = function(){
				
		if (this.sType.toUpperCase() == 'POST'){
			xmlhttp.open('POST', this.sUrl, false);
			xmlhttp.setRequestHeader('Content-type',	'application/x-www-form-urlencoded');	
			xmlhttp.setRequestHeader('Content-length',	this.sArgs.length);	
			xmlhttp.setRequestHeader('Connection',		'close');	
			xmlhttp.send(this.sArgs);
		} else {					
			xmlhttp.open('GET', this.sUrl + '?' + this.sArgs, false);
			xmlhttp.send(null);			
		}
		this.clearArguments();
		return xmlhttp;
	};
	
	
	this.sendForm = function(oForm){

		this.sUrl 	= oForm.action;
		this.sType	= oForm.method;

		var aInputs  = oForm.getElementsByTagName('input');	
		for (var i = 0; i < aInputs.length; i++){
			if (aInputs[i].type == 'checkbox' || aInputs[i].type == 'radio'){
				if (aInputs[i].checked){
					this.addArgument(aInputs[i].name, aInputs[i].value);
				}
			} else {
				this.addArgument(aInputs[i].name, aInputs[i].value);
			}
		}
		var aSelects = oForm.getElementsByTagName('select');
		for (var i = 0; i < aSelects.length; i++){
			for (var j=0; j < aSelects[i].options.length; j++){
				if (aSelects[i].options[j].selected){
					this.addArgument(aSelects[i].name, aSelects[i].options[j].value);
				}
			}
		}	
		return this.getContent();		
	};
}