/*
 * XMLHelper class
 * @version 1.0
 * @author M.F.Endenburg
 * @copyright (c) Denbel Systems, 2008
 */
Denbel.load("util.XmlHelper");Denbel.util.XmlHelper={nodeTypeToString:new Array("unknown","element","attribute","text","cdata","entity_ref","entity","process","comment","document","doctype","docfrag","notation"),stringToXml:function(a,b){if(!b){b="text/xml";}if(!a||a==""){YAHOO.log("Empty string given to convert to XML!","error");return null;}var c=null;if(window.ActiveXObject){c=new ActiveXObject("MSXML2.DOMDocument");c.async=false;c.loadXML(a);}else{if(b=="application/xhtml+xml"){a='<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">'+a;}var d=new DOMParser();c=d.parseFromString(a,b);}if(c.documentElement.tagName.toLowerCase()=="parsererror"){throw Error("Unable to parse string");}return c;},createXmlDocument:function(b,c){if(!b){b="1.0";}if(!c){c="utf-8";}var a=null;if(document.implementation&&document.implementation.createDocument){return document.implementation.createDocument(null,null,null);}else{var g=new ActiveXObject("MSXML2.DOMDocument");g.async=false;if(a){var e="";var d=a;var f=a.indexOf(":");if(f!=-1){e=a.substring(0,f);d=a.substring(f+1);}if(namespaceURL){if(!e){e="a0";}}else{e="";}var h="<"+(e?(e+":"):"")+d+(namespaceURL?(" xmlns:"+e+'="'+namespaceURL+'"'):"")+"/>";g.loadXML(h);}return g;}},xmlToString:function(f,c){if(!f){return null;}if(!c){c="text/xml";}var b=null;if(Denbel.util.BrowserDetect.browser=="Explorer"){b=f.xml;}else{try{switch(c){case"text/xml":var a=new XMLSerializer();b=a.serializeToString(f);break;default:YAHOO.log("Unrecognized XML type to convert to string","error");break;}}catch(d){YAHOO.log(d,"error");b=null;}}return b;},elementToString:function(f){var c=0;var b=f.tagName.toLowerCase();var e="<"+b;for(c=0;c<f.attributes.length;c++){if(!f.attributes[c].name||!f.attributes[c].value||f.attributes[c].value=="null"){continue;}e+=" "+f.attributes[c].name+'="'+f.attributes[c].value+'"';}e+=">";var a=f.childNodes;var d=null;for(c=0;c<a.length;c++){d=a[c].nodeType;switch(d){case 1:e+=Denbel.util.XmlHelper.elementToString(a[c]);break;case 3:case 4:e+=a[c].nodeValue;break;}}if(f.nodeValue){e+=f.nodeValue;}e+="</"+b+">";return e;},getNextChildElementType:function(e,d){if(!e||!d||!YAHOO.lang.isArray(d)){return null;}var b=e.childNodes;var c=null;if(!b||b.length==0){return null;}for(var a=0;a<b.length;a++){if(Denbel.util.inArray(Denbel.util.XmlHelper.nodeTypeToString[b[a].nodeType],d)){c=b[a];break;}}return c;},getNextChildElement:function(a){return Denbel.util.XmlHelper.getNextChildElementType(a,new Array("element"));},getNextChildElementByTagName:function(d,b){if(!d||!b){return null;}var c=null;for(var a=0;a<d.childNodes.length;a++){if(d.childNodes[a].tagName==b){c=d.childNodes[a];break;}}return c;},getNextChildElementByClassName:function(d,b){if(!d||!b){return null;}var c=null;for(var a=0;a<d.childNodes.length;a++){if(YAHOO.util.Dom.hasClass(d.childNodes[a],b)){c=d.childNodes[a];break;}}return c;},getElementValue:function(a){var b=Denbel.util.XmlHelper.getNextChildElementType(a,["text","cdata"]);if(b){return b.nodeValue;}return"";},getNextChildTextValue:function(a){YAHOO.log("Using deprecated function getNextChildTextValue","warn","Denbel.util.XmlHelper");return Denbel.util.XmlHelper.getElementValue(a);},moveNode:function(b,a){if(!b||!a){return false;}if(YAHOO.lang.isString(b)){b=YAHOO.util.Dom.get(b);}if(YAHOO.lang.isString(a)){a=YAHOO.util.Dom.get(a);}var c=Denbel.util.XmlHelper.elementToString(b);b.parentNode.removeChild(b);a.appendChild(b);}};
