/** COPYRIGHT 2010 ADMX V.O.F., BREDA, THE NETHERLANDS  */
var softRequest = Class.create();XHR = softRequest;softRequest.prototype = {URLLoader: 0,fncAfterLoad: 0,dataAfterLoad: 0,suppressError : false,cancel : function (){},initialize: function (url, sendArray, fncAfterLoad, suppressError){if (!url){alert('softRequest url must be set ');return;}if (!sendArray){alert('softRequest sendArray must not be empty');return;}if (!fncAfterLoad){alert('softRequest fncAfterLoad must be set');return;}if (suppressError == true){this.suppressError = true;}this.fncAfterLoad = fncAfterLoad;this.setLoader();var postData = this.encodeSendArray(sendArray);this.URLLoader.open("POST", url, true);this.URLLoader.setRequestHeader("Content-type", "application/x-www-form-urlencoded");this.URLLoader.onreadystatechange = this.loaderState.bind(this);this.URLLoader.send(postData);},loaderState: function(){switch(this.URLLoader.readyState){case 4: if (this.URLLoader.responseXML == null){var msg ='No server response';var errNr ='-1';var errType ='error';this.systemErrorPop(msg,errNr,errType);}else{if (this.URLLoader.responseXML.documentElement){this.dataAfterLoad = this.URLLoader.responseXML.documentElement;}this.systemErrorHandler();this.fncAfterLoad(this.dataAfterLoad);}break;}},systemErrorHandler : function (){if (this.dataAfterLoad){var errorList = ['error', 'warning', 'sqlError', 'success'];for (var i = 0; i < this.dataAfterLoad.childNodes.length; i++){for (var e = 0; e < errorList.length; e++){var errType = errorList[e];if (this.dataAfterLoad.childNodes[i].nodeName == errType){var msg = nodeAttr(this.dataAfterLoad.childNodes[i], 'msg');var errNr = nodeAttr(this.dataAfterLoad.childNodes[i], 'errorNumber');if (msg == 'noRightsForRequest'){}this.systemErrorPop(msg,errNr,errType);this.dataAfterLoad.childNodes[i] = null;delete this.dataAfterLoad.childNodes[i];}}}}else{}},systemErrorPop : function (msg,errorNumber, type){if (this.suppressError == true){return;}alert( 'Number: ' + errorNumber + "<br />\nMessage: " + msg );},encodeSendArray: function (sendArray){var sendUrl = '';for (var i = 0; i < sendArray.length; i++){var row = sendArray[i];var key = row[0];var val = row[1];if (val == undefined){val = '';}if (isArray(val)){sendUrl += this.encodeSendArrayDeep(key, val);}else{sendUrl += "&" + key + "=" + encodeURI(encodeURIComponent(val));}}return sendUrl;},encodeSendArrayDeep : function (key, data){var sendUrl = '';for(var x = 0; x < data.length; x++){var row = data[x];var key2 = row[0];var val2 = row[1];if (val2 == undefined){val2 = '';}if (isArray(val2)){sendUrl += this.encodeSendArrayDeep(key + "-"+ key2, val2);}else{sendUrl += "&" + key + "-"+ key2 +"=" + encodeURI(encodeURIComponent(val2));}}return sendUrl;},setLoader: function(){if (window.XMLHttpRequest){this.URLLoader=new XMLHttpRequest();}else if (window.ActiveXObject){this.URLLoader=new ActiveXObject("Microsoft.XMLHTTP");}else{alert("Your browser does not support XMLHTTP!");}}};

