/****************************************************************************
* Object: 		CometAjax													*
* Author: 		Rami Gabai													*
* Last Update:	November 16th, 2005											*
*																			*
* Copyrights:	Comet Information Systems									*
* Website:		http://www.comet.co.il										*
*																			*
****************************************************************************/


CometAjax.prototype.http_request 	= null;

CometAjax.prototype.getHttpRequestObject = function(){
	var obj_request = null;
	if (window.XMLHttpRequest) { // if Mozilla, Safari etc
		obj_request = new XMLHttpRequest();
		if (obj_request.overrideMimeType){
			obj_request.overrideMimeType("text/xml");
		}
	} else if (window.ActiveXObject) { // if IE
		try {
			obj_request = new ActiveXObject("Msxml2.XMLHTTP")
		} catch (e){
			try {
				obj_request = new ActiveXObject("Microsoft.XMLHTTP")
			} catch (e){}
		}
	}
	return obj_request;
};

/**
  method <br />
  url    <br />
  async  <br />
  context<br />
  data   <br />
 */
CometAjax.prototype.sendRequest = function(method, url, async, context, data){
    try {
		var http_request = this.getHttpRequestObject();
		url += "?rnd=" + Math.random() + "&context=" + context;
        switch (method){
			case "POST":
				http_request.open(method, url, async);
				http_request.setRequestHeader("X-comet-cms-context", context);
				http_request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8");
				http_request.setRequestHeader("Content-length", data.length);
                break;
			case "GET":
				url += ("&" + data);
                http_request.open(method, url, async);
                http_request.setRequestHeader("X-comet-cms-context", context);
				break;
		}

		if (async == true){
			http_request.onreadystatechange = function(){
				if (http_request.readyState == 4) {
					if (http_request.status == 200) {
						var context = http_request.getResponseHeader("X-comet-cms-context");
                        setContent(context, http_request.responseText);
					} else {
						alert("[" + http_request.status + "] There was a problem with the request.");
					}
				}
			};

			http_request.send(data);
		} else {
			http_request.send(data);
			var context = http_request.getResponseHeader("X-comet-cms-context");
            setContent(context, http_request.responseText);
		}
	} catch(e) {
		alert(e.description);
	}
};

function CometAjax(){};

var ajax = new CometAjax();

