var req = null;

function doAjaxPostRequest(url,params,responseObject) {
	
	try {
		req = new XMLHttpRequest();
	} catch (ms) {
		try {
			req = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (nonms) {
			try {
				req = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (failed) {
				req = null;
			}
		}
	}

	if (req == null)
		alert("Error creating request object!");

	req.open("POST", url, true);
	req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	req.setRequestHeader("Content-length", params.length);
	req.setRequestHeader("Connection", "close");

	req.onreadystatechange = function() {
		switch (req.readyState) {
		case 4:
			if (req.status != 200) {
				alert("Fehler:" + req.status);
			} else {
				setEditorStatus(req.responseText);
			}
			break;

		default:
			return false;
			break;
		}
	};

	req.send(params);
}

function doAjaxGetRequest(url,responseHandler) {

	try {
		req = new XMLHttpRequest();
	} catch (ms) {
		try {
			req = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (nonms) {
			try {
				req = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (failed) {
				req = null;
			}
		}
	}

	if (req == null)
		alert("Error creating request object!");

	req.open("GET", url, true);
	req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	req.setRequestHeader("Connection", "close");

	req.onreadystatechange = repsonseHandler;

	req.send();
}


function encode64(inp){
    var key="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
    var chr1,chr2,chr3,enc3,enc4,i=0,out="";
    while(i<inp.length){
        chr1=inp.charCodeAt(i++);if(chr1>127) chr1=88;
        chr2=inp.charCodeAt(i++);if(chr2>127) chr2=88;
        chr3=inp.charCodeAt(i++);if(chr3>127) chr3=88;
        if(isNaN(chr3)) {enc4=64;chr3=0;} else enc4=chr3&63
        if(isNaN(chr2)) {enc3=64;chr2=0;} else enc3=((chr2<<2)|(chr3>>6))&63
        out+=key.charAt((chr1>>2)&63)+key.charAt(((chr1<<4)|(chr2>>4))&63)+key.charAt(enc3)+key.charAt(enc4);
    }
    return encodeURIComponent(out);
}
