/**************************** rbmAjax.js *******************************
**** Version 3.04.0003
**** last changed 31.03.2011
**** (c) 2007, 2008, 2009, 2010 Bernd Rudolf, rbm digtaltechnik, www.rbm.de
***********************************************************************/
var $A=Array.from=function(c){if(!c){return[];}if(c.toArray){return c.toArray();}else{var b=[];for(var a=0;a<c.length;a++){b.push(c[a]);}return b;}};Function.prototype.bind=function(){var a=this,c=$A(arguments),b=c.shift();return function(){return a.apply(b,c.concat($A(arguments)));};};function globalEval(text){eval(text);}function rbmAjax(b,c){this.bOffline=(typeof(c)=="undefined")?false:true;this.debug=false;this.info=false;this.XMLeval=(typeof(b)=="undefined")?true:b;this.url=null;this.formData=null;this.formToPost=null;this.oXML=null;this.oXSL=null;this.xslURL="";this.oResult=null;this.xsltProcessor=null;this.readyState=0;this.target=null;this.alternateTarget=null;this.oElement=null;this.bappend=false;this.render=true;this.waitElement=null;this.waitSRC="";this.waitOrigSRC="";this.waitNode=null;this.newNode=null;this.waitStatus=false;this.disableOutputEscaping=true;this.done=null;this.error=null;this.customRenderToDoc=function(){return true;};this.onRenderingCompleted=function(){};this.debuglog=function(e){alert(e);};this.wait=function(e){if(this.waitElement&&this.waitNode){if(e){if(!this.waitStatus){this.waitOrigSRC=this.waitNode.src;this.waitNode.src=this.waitElement.src;this.waitStatus=true;}}else{if(this.waitStatus){this.waitNode.src=this.waitOrigSRC;this.waitStatus=false;}}}};try{this.XMLHttp=rbmXML.createXMLHttp(this.XMLeval);}catch(d){if(this.error){this.error(d);}}this.xml=function(){if(this.oXML){var e=rbmXML.showXML(this.oXML);}return e;};this.xsl=function(){if(this.oXSL){var e=rbmXML.showXML(this.oXSL);}return e;};this.createXML=function(){this.oXML=rbmXML.createDoc();};this.loadXML=function(f){var e=null;if(rbmXML.buseActiveX){e=rbmXML.createDoc();e.loadXML(f);}else{if(typeof DOMParser!="undefined"){var g=new DOMParser();e=g.parseFromString(f,"text/xml");}}this.oXML=e;};this.importNode=function(e){this.oXML.documentElement.appendChild(clone);};this.getXML=function(h,g,f,e){if(h.indexOf("file://")!=-1){this.bOffline=true;}if(h.indexOf("MECO:dispatcher")!=-1){return false;}if(this.readyState==4||this.readyState==0){this.readyState=1;this.wait(true);this.url=!!h?h:this.url;f=typeof(f)=="undefined"?true:f;if(!!g&&typeof(g)=="object"){this.formToPost=g;this.formData=this.getFormData(g);}else{this.formToPost=null;this.formData=g;}if(e){result=this.loadHTTP(this.url,this.formData,f,e);if(this.XMLeval){this.oXML=result;}return result;}else{this.loadHTTP(this.url,this.formData,f);}}};this.getCompletePath=function(f){var e=f.substring(0,f.lastIndexOf("/")+1);if(e.indexOf("http://")==-1&&e.indexOf("file://")==-1){e=location.href.substring(0,location.href.lastIndexOf("/")+1)+e;}return e;};this.getCompleteURL=function(e){e=location.href.substring(0,location.href.lastIndexOf("/")+1)+e;return e;};var a="______________________________________________________________________";this.fixIncludePath=function(u,e,g,t){var q=new Date();var m=this.getCompletePath(e);var r=new Object();r.xsl="http://www.w3.org/1999/XSL/Transform";var p="";var f="";var o=null;var n=null;var l=null;var k=0;var h=0;t=(!t)?"":t;var o=rbmXML.selectNodes(u,"//xsl:include",r);if(o.length>0){if(!!g){var s=o[0].cloneNode(false);s.setAttribute("href",g);if(typeof(o[o.length-1].nextSibling)=="object"){u.documentElement.insertBefore(s,o[o.length-1].nextSibling);}else{u.documentElement.appendChild(s);}o=rbmXML.selectNodes(u,"//xsl:include",r);}o=rbmXML.selectNodes(u,"//xsl:include",r);if((browserDetect.bIsIE||browserDetect.bXSLIncludeBug)){for(var k=0;k<o.length;k++){if(!!o[k]){t=this.includeXSL(o[k],u,u,t,m,r,0);}}}}};this.includeXSL=function(n,s,f,r,l,p,g){var o=n.getAttribute("href");o=n.getAttribute("href");var e=l;if(o.indexOf("http://")==-1&&o.indexOf("file://")==-1){e=l;while(o.indexOf("../")==0){o=o.substring(3,o.length);e=e.substring(0,e.lastIndexOf("/",e.length-2)+1);}o=e+o;e=this.getCompletePath(o);}if(r.indexOf("~"+o+"~")==-1){r+="~"+o+"~";}else{if(c_bLogFlow){console.warn("WARNING: Double-Include in rbmAjax.fixIncludePath: removing XSL-Include "+o);}s.documentElement.removeChild(n);return r;}if(c_bLogFlow){console.log(a.substr(0,2*g)+"...loading..."+o);}if(!rbmXML.loadedXSL[o]){var m=this.loadHTTP(o,null,false,true,true,true);rbmXML.loadedXSL[o]=m;}else{var m=rbmXML.loadedXSL[o];}var k=m.documentElement;for(var h=0;h<k.childNodes.length;h++){if(k.childNodes[h].nodeName.indexOf("xsl:output")==-1){var q=k.childNodes[h].cloneNode(true);s.documentElement.insertBefore(q,n);if(q.nodeName.indexOf("xsl:include")!=-1){r=this.includeXSL(q,s,m,r,e,p,++g);}}}s.documentElement.removeChild(n);return r;};this.createXSLTProcessor=function(g){if(!rbmXML.buseActiveX){this.xsltProcessor=new XSLTProcessor();try{this.xsltProcessor.importStylesheet(g);}catch(f){console.dir(f);alert("XSLT-Error");}}};this.getXSL=function(h,g){this.xslURL=h;if(this.debug){this.debuglog("getXSL (URL): "+h);}if(h){var e=this.getCompleteURL(h);if(e.indexOf("file://")!=-1){this.bOffline=true;}if(!rbmXML.loadedXSL[e]||cmsXSLDebug){var f=this.loadHTTP(e,null,false,true,true,true,true);if((typeof(f)=="object"&&this.XMLHttp.status==200)||(this.bOffline&&this.XMLHttp.status==0)){this.fixIncludePath(f,e,g);rbmXML.loadedXSL[e]=f;this.oXSL=f;this.createXSLTProcessor(this.oXSL);}else{return 404;}}else{this.oXSL=rbmXML.loadedXSL[e];this.fixIncludePath(this.oXSL,e,g);this.createXSLTProcessor(this.oXSL);}}else{this.oXSL=document.XSLDocument;}if(this.debug){this.debuglog("getXSL (data): "+this.xsl());}return 200;};this.onStateChange=function(){if(this.XMLHttp.readyState==4){if(this.debug){this.debuglog(this.XMLHttp.getAllResponseHeaders());}if(rbmXML.buseActiveX){if(!this.bOffline&&this.XMLHttp.getResponseHeader("Content-Type").indexOf("/xml")==-1){this.XMLeval=false;}if(this.XMLeval){var e=rbmXML.createDoc();e.loadXML(this.XMLHttp.responseText);if(e.parseError.errorCode!=0){e.loadXML(this.XMLHttp.responseXML.xml);if(e.parseError.errorCode!=0){rbmXML.displayParseError(e.parseError);var f=document.getElementById("debug");if(f){f.style.display="block";f.innerHTML="Status: "&this.XMLHttp.status&"<br>URL: "&this.URL&"<br>"&this.XMLHttp.responseText;}else{this.debuglog("error: "+this.XMLHttp.responseText);}}}}if(this.debug||this.info){this.debuglog("onStateChange "+this.XMLHttp.responseText);}this.readyState=4;this.oXML=e;}else{this.readyState=4;if(this.debug||this.info){this.debuglog("onStateChange "+this.XMLHttp.responseText);}if(this.XMLHttp.getResponseHeader("Content-Type").indexOf("xml")==-1){if(c_bLogFlow){console.error("NO XML RECEIVED!");}this.XMLeval=false;}if(this.XMLeval){this.oXML=this.XMLHttp.responseXML;}}if(this.target&&this.XMLeval&&this.render){switch(this.XMLHttp.status){default:this.renderToDoc(this.target);break;case 201:if(!!this.alternateTarget){this.renderToDoc(this.alternateTarget);}else{this.renderToDoc(this.target);}break;case 500:case 404:this.copyXMLHttpToDoc(this.target);break;}}else{if(this.target&&this.render){this.copyXMLHttpToDoc(this.target);}}this.wait(false);if(this.done){this.done();}}};this.simpleReadyState=function(){this.readyState=this.XMLHttp.readyState;};this.loadHTTP=function(f,m,j,g,n,k){k=!!k;if(typeof j=="undefined"){j=false;}if(typeof g=="undefined"){g=false;}if(typeof n=="undefined"){n=this.XMLeval;}if(this.debug){this.debuglog("loadHTTP: URL: "+f+" - "+j+" - "+g+" - "+n);}if(!m){this.XMLHttp.open("GET",f,j);}else{if(this.debug){this.debuglog("Post: "+m);}this.XMLHttp.open("POST",f,j);}this.XMLHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");this.XMLHttp.setRequestHeader("Encoding","UTF-8");if(!g){this.XMLHttp.onreadystatechange=this.onStateChange.bind(this);}else{this.XMLHttp.onreadystatechange=this.simpleReadyState.bind(this);}try{if(!m){this.XMLHttp.send(null);}else{this.XMLHttp.send(m);}}catch(l){console.log("LoadHTTP-Error: "+f);return 404;}if(!j&&this.XMLHttp.status==404){return 404;}var o=false;if(!j){if(rbmXML.buseActiveX){if(n){var h=rbmXML.createDoc();h.loadXML(this.XMLHttp.responseText);if(h.parseError.errorCode!=0){rbmXML.displayParseError(h.parseError);this.debuglog(this.XMLHttp.responseText);}}this.readyState=4;var o=(h?h:null);}else{this.readyState=4;if(n){o=(this.XMLHttp.responseXML?this.XMLHttp.responseXML:null);}else{o=this.XMLHttp.responseText;}}if(g||k){return o;}else{if(n){this.oXML=o;}if(this.target&&n){this.renderToDoc(this.target,this.bappend);}else{if(this.target){this.copyXMLHttpToDoc(this.target,this.bappend);}}this.wait(false);if(!k&&this.done){this.done();}}}};this.appendNode=function(j,l,h){var f=l.getElementsByTagName("div");if(f.length>0&&!!h&&h!=""){var e=j.getElementById((!!h?h:l.getElementsByTagName("div")[0].id));if(!!e){var k=e.nextSibling;var g=e.parentNode;e.parentNode.removeChild(e);if(k){g.insertBefore(l,k);return true;}}}j.appendChild(l);};this.renderToDoc=function(l,g,f,q){if(!f){f=this.oXML;}if(!l){l=$(this.target);}q=(!!q)?q:(!!this.appendDivId)?this.appendDivId:"";this.appendDivId="";if(this.debug){this.debuglog("render to: "+l+" - append: "+g);}this.oElement=$(l);if(this.customRenderToDoc(l,g,f,q)){if(typeof(g)=="undefined"){g=this.bappend;}if(!this.oElement){if(c_bLogFlow){console.warn("renderToDoc: Element "+l+" not found!");}return;}if(rbmXML.buseActiveX){if(!this.oXSL){this.getXSL();if(!this.oXSL){this.copyXMLHttpToDoc(l);return;}}try{var o=f.transformNode(this.oXSL);}catch(m){alert(m.description+" in line "+m.line+"\n\nURL: "+this.xslURL);return;}if(this.debug||this.info){this.debuglog(o);}if(o==""){o=this.XMLHttp.responseText;var h=document.getElementById("debug");if(h){h.style.display="block";h.innerHTML=o;}}if(this.disableOutputEscaping){o=o.replace(/&amp;/gi,"&");o=o.replace(/&lt;/gi,"<");o=o.replace(/&gt;/gi,">");o=o.replace(/&#60;/gi,"<");o=o.replace(/&#62;/gi,">");o=o.replace(/&#38;/gi,"&");}if(!this.bappend){rbmXML.clearTarget(this.oElement);this.oElement.innerHTML=o;var n=$(this.oElement).getElementsByTagName("script");}else{var p=document.createElement("div");if(!!q){p.setAttribute("id",q);}p.innerHTML=o;this.appendNode(this.oElement,p,q);var n=$(p).getElementsByTagName("script");}var k;for(k=0;k<n.length;k++){globalEval(n[k].innerHTML);}}else{if(!this.oXSL){this.copyXMLHttpToDoc(l);return;}if(browserDetect.bIsOP){this.xsltProcessor=new XSLTProcessor();try{this.xsltProcessor.importStylesheet(this.oXSL);}catch(m){}}var j=this.xsltProcessor.transformToFragment(f,document);if(!this.bappend&&this.oElement.hasChildNodes()){rbmXML.clearTarget(this.oElement);}var p=document.createElement("div");if(!!q){p.setAttribute("id",q);}try{p.appendChild(j);}catch(m){console.warn("rbmAjax: objOut is empty! XSL-Error?");}o=p.innerHTML;if(this.disableOutputEscaping){o=o.replace(/&amp;/gi,"&");o=o.replace(/&lt;/gi,"<");o=o.replace(/&gt;/gi,">");o=o.replace(/&#60;/gi,"<");o=o.replace(/&#62;/gi,">");o=o.replace(/&#38;/gi,"&");}if(!this.bappend){this.oElement.innerHTML=o;var n=$(this.oElement).getElementsByTagName("script");}else{p.innerHTML=o;this.appendNode(this.oElement,p,q);if(browserDetect.bIsSF||browserDetect.bIsCR||browserDetect.bIsOP||(browserDetect.bIsFF&&browserDetect.version>=4)){var n=$(p).getElementsByTagName("script");}else{var n=null;}}if(!!n){var k;for(k=0;k<n.length;k++){if(c_bLogFlow&&!!console.groupCollapsed){console.groupCollapsed("gloabalEval");console.log(n[k].innerHTML);console.groupEnd();}globalEval(n[k].innerHTML);}}aTextAreas=$(this.oElement).getElementsByTagName("textarea");for(var k=0;k<aTextAreas.length;k++){if(aTextAreas[k].className.indexOf("tinyMCE")==-1){aTextAreas[k].innerHTML=aTextAreas[k].value.replace(/<br\/>/g,"\n");}}}}this.onRenderingCompleted(this.bappend?p:this.oElement,false);this.oElement=null;this.bappend=false;};this.copyXMLHttpToDoc=function(h,e){if(typeof(h)=="undefined"){h=$(this.target);}var g=$(h);if(!g){debugalert("copyXMLHttpToDoc: Element "+h+" not found!");return;}if(this.debug){debugalert("copy to: "+h+" - append: "+e);}if(this.XMLHttp.responseText.length>0){if(!e){g.innerHTML=this.XMLHttp.responseText;var j=$(g).getElementsByTagName("script");}else{var k=document.createElement("div");g.appendChild(k);k.innerHTML=this.XMLHttp.responseText;var j=null;}}if(j){var f;for(f=0;f<j.length;f++){globalEval(j[f].innerHTML);}}this.onRenderingCompleted();};this.getFormData=function(h){var k="";var g;if(!h||typeof(h)!="object"){return h;}var l=h.getElementsByTagName("input");for(g=0;g<l.length;g++){switch(l[g].type){case"checkbox":if(k!=""){k+="&";}if(l[g].checked==true){k+=l[g].name+"=1";}else{k+=l[g].name+"=0";}break;case"radio":var e=l[g].name;if(l[g].checked){if(k!=""){k+="&";}k+=l[g].name+"="+l[g].value;}break;case"button":break;case"submit":break;default:if(k!=""){k+="&";}k+=l[g].name+"="+this.urlEncode(l[g].value);break;}}l=h.getElementsByTagName("select");for(g=0;g<l.length;g++){if(k!=""){k+="&";}k+=l[g].name+"="+l[g].value;}l=h.getElementsByTagName("textarea");for(g=0;g<l.length;g++){if(k!=""){k+="&";}if(l[g].className.indexOf("tinyMCE")==-1){var j=this.correctInputData(l[g].value);}else{var f=tinyMCE.get(l[g].id);j=f.getContent();if(f){f.remove();}}k+=l[g].name+"="+this.urlEncode(j);}if(this.debug){this.debuglog("Post to Server: "+k);}return k;};this.correctInputData=function(e){e=e.replace(/&lt;/g,"<");e=e.replace(/&gt;/g,">");e=e.replace(/\r\n/g,"<br/>");e=e.replace(/\n/g,"<br/>");return e;};this.clearFormData=function(f){var e;f=f||this.formToPost;var g=f.getElementsByTagName("input");for(e=0;e<g.length;e++){switch(g[e].type){case"checkbox":g[e].checked=false;break;case"radio":g[e].checked=false;break;case"button":break;default:g[e].value="";break;}}g=f.getElementsByTagName("textarea");for(e=0;e<g.length;e++){g.innerHTML="";}};this.urlEncode=function(e){strEnc=encodeURI(e);strEnc=strEnc.replace(/\+/g,"%2B");strEnc=strEnc.replace(/&/g,"%26");strEnc=strEnc.replace(/;/g,"%3B");return strEnc;};this.query=function(f,j,l,e){var k;var g;var h;var m;if(typeof(l)=="undefined"){l=this.target;}if(this.debug){alert(f);alert(this.oXML.xml());}if(j.substr(0,1)!="<"){j="<"+j+" />";}g=rbmXML.loadXML(j);h=g.documentElement;if(!!e){k=this.selectNodes(e);if(k.length!=0){m=k[0].cloneNode(false);g.documentElement.appendChild(m);h=m;}}k=this.selectNodes(f);for(i=0;i<k.length;i++){m=k[i].cloneNode(true);h.appendChild(m);}if(this.debug){alert(g.xml());}if(!!l){this.renderToDoc(l,false,g);}};this.rebuildClone=function(p,e,l,h,f){var o;var k;var n;var m;var j;if(typeof(l)=="undefined"){l=this.target;}if(this.debug){alert(p);alert(this.oXML.xml());}if(e.substr(0,1)!="<"){e="<"+e+" />";}k=rbmXML.loadXML(e);n=k.documentElement;if(!!h){o=this.selectNodes(h);if(o.length!=0){m=o[0].cloneNode(true);k.documentElement.appendChild(m);n=m;if(!!f){var g=this.selectNodes(f,k);for(j=0;j<g.length;j++){n=g[j].parentNode;g[j].parentNode.removeChild(g[j]);}}}}o=this.selectNodes(p);for(j=0;j<o.length;j++){m=o[j].cloneNode(true);n.appendChild(m);}if(this.debug){alert(k.xml());}if(!!l){this.renderToDoc(l,false,k);}};this.selectSingleNode=function(e,f){var g=rbmXML.selectSingleNode(this.oXML,e,f);return g;};this.setParam=function(f,h,g){if(rbmXML.buseActiveX){var e=new Object();e.xsl="http://www.w3.org/1999/XSL/Transform";aParams=rbmXML.selectNodes(this.oXSL,"//xsl:stylesheet/xsl:param[@name = '"+h+"']",e);if(aParams.length==1){aParams[0].text=g;}}else{if(this.xsltProcessor){this.xsltProcessor.setParameter(f,h,g);}else{console.warn("rbmAjax.setParam: no xsltProcessor found!");}}};this.setNodeValue=function(f,g,j,k,e){k=k||this.oXML;e=e||{};aParams=rbmXML.selectNodes(k,f,e);for(var h=0;h<aParams.length;h++){aParams[h].setAttribute(g,j);}this.modifiedXSLValues=aParams;};this.resetNodeValues=function(e,g){if(this.modifiedXSLValues){for(var f=0;f<this.modifiedXSLValues.length;f++){this.modifiedXSLValues[f].setAttribute(e,g);}this.modifiedXSLValues=null;}};this.selectNodes=function(h,m){if(!m){m=this.oXML;}if(rbmXML.buseActiveX){var k=m.selectNodes(h);return k;}else{if(typeof XPathEvaluator!="undefined"){var g=m.createNSResolver(m.documentElement);var n=[];try{var f=m.evaluate(h,m,g,XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,null);for(var j=0;j<f.snapshotLength;j++){n[j]=f.snapshotItem(j);}}catch(l){console.warn(h);console.dirxml(m);}return n;}}};this.corrCRinTextAreas=function(f){var g=$(f).getElementsByTagName("textarea");var e;for(e=0;e<g.length;e++){g[e].innerHTML=g[e].innerHTML.replace(/&lt;br \/&gt;/g,"\r\n");}};this.getScript=function(e){this.render=false;this.XMLeval=false;code=this.getXML(e,null,false,true);globalEval(code);};}
