/* from inujax */

function ajaxRequest(target,targetElement){
	if(!targetElement) 
	var targetElement 	= 'div';
	var xmlInstanceMsg	= 'Giving up :( Cannot create an XMLHTTP instance';
	var loadingEvent	= '<img src="'+baseImgSpin+'" />';

	this.XMLrequest = function (){
		objXmlHttp 	= false;
        if (window.XMLHttpRequest) {
            objXmlHttp = new XMLHttpRequest();
            if (objXmlHttp.overrideMimeType) {
                objXmlHttp.overrideMimeType('text/xml');
            }
        } else if (window.ActiveXObject) {
            try {
                objXmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
            } catch (e) {
                try {
                    objXmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
                } catch (e) {}
            }
        }
        if (!objXmlHttp) {
            alert(xmlInstanceMsg);
            return false;
        }
		return objXmlHttp;
	}

	this.requestHandle 	= function() {
		var div 		= document.getElementById(target);
		var resValue 	= http.responseText; 
		if (http.readyState == 4 && http.status == 200) { 
			if(targetElement=='div')
				div.innerHTML = resValue;
			else
				div.value = resValue;
		} else { 
			//if(targetElement=='div')
				div.innerHTML = loadingEvent;
		}
	}
	
	this.ajaxSend = function (url, data, action) {
		if(!action) action = 'POST';
		if (action.toUpperCase() == "POST") {
			http.open("POST", url, true);
			http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
			http.setRequestHeader("Content-length", data.length);
			http.setRequestHeader("Connection", "close");
			http.setRequestHeader("Pragma", "no-chace");
			http.onreadystatechange = this.requestHandle;
			http.send(data);
		} else {
			this.http.open(action, url + '?' + data, true);
			this.http.onreadystatechange = this.requestHandle;
			this.http.send(null);
		}
	}
	
	var http = this.XMLrequest();
}