if(typeof window['iQ'] == "undefined"){
	window['iQ'] = new Object();
}

iQ.Ajax = function(){return{
	CFCMethod : null,
	ResponseFormat : 'JSON',
	URL : '',
	CallbackHandler : null,
	CallbackParams : null,
	HTTPMethod : 'POST',
	bSync : true,
	Params : null,

	Send : function(){
		var CallbackHandler = this.CallbackHandler;
		var CallbackParams = this.CallbackParams;
		var ResponseFormat = this.ResponseFormat.toUpperCase();
		var ret = null;
		
		// Mozilla/Safari
		if (window.XMLHttpRequest) {
			var xmlHttpReq = new XMLHttpRequest();
		// IE
		}else if(window.ActiveXObject) {
			var xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
		}
		
		xmlHttpReq.open(this.HTTPMethod, this.URL, this.bSync);

		if(this.HTTPMethod == 'POST'){
			xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
		}

		xmlHttpReq.onreadystatechange = function() {
			if (xmlHttpReq.readyState == 4) {
		
				if(ResponseFormat == 'JSON'){
					ret = eval('(' + xmlHttpReq.responseText + ')');
				}else{
					ret = xmlHttpReq.responseText;
				}
		
				if(CallbackHandler != null){
					if(CallbackParams != null){
						var arrVals = CallbackParams.split(',');
		
						if(arrVals.length > 0){
							var tmp = ''
							for (i=0;i<arrVals.length;i++){
								if(tmp == ''){
									tmp = "'" + arrVals[i] + "'";
								}else{
									tmp = tmp + ",'" + arrVals[i] + "'";
								}
							}
							eval(CallbackHandler + '(ret,' + tmp + ')');
						}else{
							eval(CallbackHandler + '(ret,CallbackParams)');
						}
					}else{
						eval(CallbackHandler + '(ret)');
					}
				}else{
					return ret;	
				}
			}
		}
		
		var sToPost = 'DomainName=' + window.location.host;
		
		for(i in this.Params){
			sToPost += '&' + i + '=' + this.Params[i];
		}
		
		//alert(sToPost);
		
		if(this.CFCFunction != ''){
			sToPost += '&Method=' + this.CFCMethod;
		
			if(ResponseFormat != ''){
				sToPost += '&ReturnFormat=' + this.ResponseFormat;
			}
		}
		
		//var x = encodeURIComponent(sToPost);
		//alert(sToPost);
		
		xmlHttpReq.send(sToPost);
	}
}}