
function MyAjax() {
	this.exec = exec;
	this.jexec = jexec;
	this.getXmlHttp = getXmlHttp;
	this.setMethod = setMethod;
	this.addParam = addParam;
	this.clearParams = clearParams;
	var method = "GET";
	var params = new Array();

    function exec(dest_url, response_div, func_before, func_after) {
    	var ms = (new Date()).getTime();
        var xmlHttp = this.getXmlHttp();
        if (xmlHttp) {
        	addParam("ms",ms);
        	var send_buffer = "";
            for ( var i = 0 ; i < params.length ; i+=2 ) {
                send_buffer += params[i]+"="+escape(params[i+1]);
                if ( i+2 < params.length ) send_buffer += "&";
            }

        	if ( func_before ) func_before();
        	if ( method == "GET" ) {
        		xmlHttp.open(method, dest_url.indexOf("?") != -1 ? dest_url+"&"+send_buffer : dest_url+"?"+send_buffer , true);
        	} else {
        		xmlHttp.open(method, dest_url , true);
        		xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
        	}
            xmlHttp.setRequestHeader('If-Modified-Since', 'Sat, 1 Jan 2000 00:00:00 GMT');
            xmlHttp.onreadystatechange = function() {
                if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
                    if ( response_div && document.getElementById(response_div) ) document.getElementById(response_div).innerHTML = xmlHttp.responseText;
                    if ( func_after ) func_after();
                }
            };
            xmlHttp.send(method=="GET"?null:send_buffer);
        }
    }

    function jexec(dest_url, func_before, func_after) {
    	var ms = (new Date()).getTime();
        var xmlHttp = this.getXmlHttp();
        if (xmlHttp) {
        	if ( func_before ) func_before();
            xmlHttp.open('GET', dest_url.indexOf("?") != -1 ? dest_url+"&"+ms+"="+ms : dest_url+"?"+ms+"="+ms, true);
            xmlHttp.setRequestHeader('If-Modified-Since', 'Sat, 1 Jan 2000 00:00:00 GMT');
            xmlHttp.onreadystatechange = function() {
                if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
                    if ( func_after ) func_after(xmlHttp.responseText);
                }
            };
            xmlHttp.send(null);
        }
    }

    function getXmlHttp() {
        var xmlHttp = null;
        // Mozilla, Opera, Safari sowie Internet Explorer 7
        if (window.XMLHttpRequest) {
            xmlHttp = new XMLHttpRequest();
        } else {
            // Internet Explorer 6 und älter
            try {
                xmlHttp  = new ActiveXObject("Msxml2.XMLHTTP");
            } catch(e) {
                try {
                    xmlHttp  = new ActiveXObject("Microsoft.XMLHTTP");
                } catch(e) {
                    xmlHttp  = null;
                }
            }
        }
        return xmlHttp;
    }

    function setMethod(temp) {
    	method = temp;
    }

    function addParam(param,value) {
    	params.push(param);
    	params.push(value);
    }

    function clearParams() {
    	params = new Array();
    }
}