if(typeof(XML)=="undefined"){XML=function(){}}XML.ObjTree=function(){return this};XML.ObjTree.VERSION="0.24";XML.ObjTree.prototype.xmlDecl='<?xml version="1.0" encoding="UTF-8" ?>\n';XML.ObjTree.prototype.attr_prefix="-";XML.ObjTree.prototype.overrideMimeType="text/xml";XML.ObjTree.prototype.parseXML=function(g){var f;if(window.DOMParser){var e=new DOMParser();var h=e.parseFromString(g,"application/xml");if(!h){return}f=h.documentElement}else{if(window.ActiveXObject){e=new ActiveXObject("Microsoft.XMLDOM");e.async=false;e.loadXML(g);f=e.documentElement}}if(!f){return}return this.parseDOM(f)};XML.ObjTree.prototype.parseHTTP=function(n,l,t){var m={};for(var s in l){m[s]=l[s]}if(!m.method){if(typeof(m.postBody)=="undefined"&&typeof(m.postbody)=="undefined"&&typeof(m.parameters)=="undefined"){m.method="get"}else{m.method="post"}}if(t){m.asynchronous=true;var r=this;var o=t;var p=m.onComplete;m.onComplete=function(b){var a;if(b&&b.responseXML&&b.responseXML.documentElement){a=r.parseDOM(b.responseXML.documentElement)}else{if(b&&b.responseText){a=r.parseXML(b.responseText)}}o(a,b);if(p){p(b)}}}else{m.asynchronous=false}var k;if(typeof(HTTP)!="undefined"&&HTTP.Request){m.uri=n;var q=new HTTP.Request(m);if(q){k=q.transport}}else{if(typeof(Ajax)!="undefined"&&Ajax.Request){var q=new Ajax.Request(n,m);if(q){k=q.transport}}}if(t){return k}if(k&&k.responseXML&&k.responseXML.documentElement){return this.parseDOM(k.responseXML.documentElement)}else{if(k&&k.responseText){return this.parseXML(k.responseText)}}};XML.ObjTree.prototype.parseDOM=function(e){if(!e){return}this.__force_array={};if(this.force_array){for(var h=0;h<this.force_array.length;h++){this.__force_array[this.force_array[h]]=1}}var g=this.parseElement(e);if(this.__force_array[e.nodeName]){g=[g]}if(e.nodeType!=11){var f={};f[e.nodeName]=g;g=f}return g};XML.ObjTree.prototype.parseElement=function(o){if(o.nodeType==7){return}if(o.nodeType==3||o.nodeType==4){var p=o.nodeValue.match(/[^\x00-\x20]/);if(p==null){return}return o.nodeValue}var l;var n={};if(o.attributes&&o.attributes.length){l={};for(var q=0;q<o.attributes.length;q++){var i=o.attributes[q].nodeName;if(typeof(i)!="string"){continue}var m=o.attributes[q].nodeValue;if(!m){continue}i=this.attr_prefix+i;if(typeof(n[i])=="undefined"){n[i]=0}n[i]++;this.addNode(l,i,n[i],m)}}if(o.childNodes&&o.childNodes.length){var r=true;if(l){r=false}for(var q=0;q<o.childNodes.length&&r;q++){var k=o.childNodes[q].nodeType;if(k==3||k==4){continue}r=false}if(r){if(!l){l=""}for(var q=0;q<o.childNodes.length;q++){l+=o.childNodes[q].nodeValue}}else{if(!l){l={}}for(var q=0;q<o.childNodes.length;q++){var i=o.childNodes[q].nodeName;if(typeof(i)!="string"){continue}var m=this.parseElement(o.childNodes[q]);if(!m){continue}if(typeof(n[i])=="undefined"){n[i]=0}n[i]++;this.addNode(l,i,n[i],m)}}}return l};XML.ObjTree.prototype.addNode=function(g,e,f,h){if(this.__force_array[e]){if(f==1){g[e]=[]}g[e][g[e].length]=h}else{if(f==1){g[e]=h}else{if(f==2){g[e]=[g[e],h]}else{g[e][g[e].length]=h}}}};XML.ObjTree.prototype.writeXML=function(c){var d=this.hash_to_xml(null,c);return this.xmlDecl+d};XML.ObjTree.prototype.hash_to_xml=function(k,j){var n=[];var i=[];for(var m in j){if(!j.hasOwnProperty(m)){continue}var p=j[m];if(m.charAt(0)!=this.attr_prefix){if(typeof(p)=="undefined"||p==null){n[n.length]="<"+m+" />"}else{if(typeof(p)=="object"&&p.constructor==Array){n[n.length]=this.array_to_xml(m,p)}else{if(typeof(p)=="object"){n[n.length]=this.hash_to_xml(m,p)}else{n[n.length]=this.scalar_to_xml(m,p)}}}}else{i[i.length]=" "+(m.substring(1))+'="'+(this.xml_escape(p))+'"'}}var o=i.join("");var l=n.join("");if(typeof(k)=="undefined"||k==null){}else{if(n.length>0){if(l.match(/\n/)){l="<"+k+o+">\n"+l+"</"+k+">\n"}else{l="<"+k+o+">"+l+"</"+k+">\n"}}else{l="<"+k+o+" />\n"}}return l};XML.ObjTree.prototype.array_to_xml=function(g,j){var f=[];for(var h=0;h<j.length;h++){var i=j[h];if(typeof(i)=="undefined"||i==null){f[f.length]="<"+g+" />"}else{if(typeof(i)=="object"&&i.constructor==Array){f[f.length]=this.array_to_xml(g,i)}else{if(typeof(i)=="object"){f[f.length]=this.hash_to_xml(g,i)}else{f[f.length]=this.scalar_to_xml(g,i)}}}}return f.join("")};XML.ObjTree.prototype.scalar_to_xml=function(c,d){if(c=="#text"){return this.xml_escape(d)}else{return"<"+c+">"+this.xml_escape(d)+"</"+c+">\n"}};XML.ObjTree.prototype.xml_escape=function(b){return String(b).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")};
