// variable to en-/disable debug // set to 1 to enable debug log if (DEBUG === undefined) { var DEBUG; } var gcf = { // decode special characters with their utf-8 representation decodeHtml : function (token) { var i, y, start = [33, 58, 91, 123, 161], stop = [47, 64, 96, 126, 255], startLength = start.length; for (y = 0; y < startLength; y++) { for (i = start[y]; i <= stop[y]; i++) { token = token.replace("&#" + i +";", String.fromCharCode(255)); } } return token; }, // get the path of the cgi-bin dir with correct http(s) protocol // for using with ajax calls (to with same origin policy) getCgiBinPath : function () { // parse actual url and parse for protocol type (http/https) // set the ajax server url dependent on the protocol // for strato ssl-proxy, we have to insert the 1st part of the url path var serverUrl = window.location.protocol + "//" + window.location.hostname; if (serverUrl.indexOf("https") === -1) { serverUrl += "/cgi-bin/"; } else { serverUrl += "/" + window.location.pathname.split("/")[1] + "/cgi-bin/"; } return serverUrl; }, // xmlhttp object function getHTTPObject : function () { // debug log if (DEBUG === 1) {console.log("xml http object function");} // variable definitions var xhr; // check for availibility if xmlhttprequest object if(window.XMLHttpRequest) { xhr = new XMLHttpRequest(); } else if(window.ActiveXObject) { xhr = new ActiveXObject("Msxml2.XMLHTTP"); } return xhr; }, // ajax call function ajaxCall : function (dataUrl, outputElement, callback, responseType) { // debug log if (DEBUG === 1) {console.log("ajax function");} // variable definitions var response, request = this.getHTTPObject(); // get the xmlhttp object which is supported outputElement.innerHTML = "Lade Daten ..."; request.onreadystatechange = function() { if(request.readyState === 4 && request.status === 200) { //save ajax response if (responseType === "json") { response = JSON.parse(request.responseText); } else if (responseType === "xml") { response = request.responseXML; } else { response = request.responseText; } // check if callback is a function if(typeof callback === "function") { callback(response); } else { if (DEBUG === 1) {console.log(callback + " is no callback function");} } } }; request.open("get", dataUrl, true); request.send(null); } };