SuperX-Kernmodul
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

380 lines
8.9 KiB

/*
Copyright (c) 2004-2006, The Dojo Foundation
All Rights Reserved.
Licensed under the Academic Free License version 2.1 or above OR the
modified BSD license. For more information on Dojo licensing, see:
http://dojotoolkit.org/community/licensing.shtml
*/
dojo.provide("dojo.dom");
dojo.dom.ELEMENT_NODE=1;
dojo.dom.ATTRIBUTE_NODE=2;
dojo.dom.TEXT_NODE=3;
dojo.dom.CDATA_SECTION_NODE=4;
dojo.dom.ENTITY_REFERENCE_NODE=5;
dojo.dom.ENTITY_NODE=6;
dojo.dom.PROCESSING_INSTRUCTION_NODE=7;
dojo.dom.COMMENT_NODE=8;
dojo.dom.DOCUMENT_NODE=9;
dojo.dom.DOCUMENT_TYPE_NODE=10;
dojo.dom.DOCUMENT_FRAGMENT_NODE=11;
dojo.dom.NOTATION_NODE=12;
dojo.dom.dojoml="http://www.dojotoolkit.org/2004/dojoml";
dojo.dom.xmlns={svg:"http://www.w3.org/2000/svg",smil:"http://www.w3.org/2001/SMIL20/",mml:"http://www.w3.org/1998/Math/MathML",cml:"http://www.xml-cml.org",xlink:"http://www.w3.org/1999/xlink",xhtml:"http://www.w3.org/1999/xhtml",xul:"http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul",xbl:"http://www.mozilla.org/xbl",fo:"http://www.w3.org/1999/XSL/Format",xsl:"http://www.w3.org/1999/XSL/Transform",xslt:"http://www.w3.org/1999/XSL/Transform",xi:"http://www.w3.org/2001/XInclude",xforms:"http://www.w3.org/2002/01/xforms",saxon:"http://icl.com/saxon",xalan:"http://xml.apache.org/xslt",xsd:"http://www.w3.org/2001/XMLSchema",dt:"http://www.w3.org/2001/XMLSchema-datatypes",xsi:"http://www.w3.org/2001/XMLSchema-instance",rdf:"http://www.w3.org/1999/02/22-rdf-syntax-ns#",rdfs:"http://www.w3.org/2000/01/rdf-schema#",dc:"http://purl.org/dc/elements/1.1/",dcq:"http://purl.org/dc/qualifiers/1.0","soap-env":"http://schemas.xmlsoap.org/soap/envelope/",wsdl:"http://schemas.xmlsoap.org/wsdl/",AdobeExtensions:"http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"};
dojo.dom.isNode=function(wh){
if(typeof Element=="function"){
try{
return wh instanceof Element;
}
catch(e){
}
}else{
return wh&&!isNaN(wh.nodeType);
}
};
dojo.dom.getUniqueId=function(){
var _2=dojo.doc();
do{
var id="dj_unique_"+(++arguments.callee._idIncrement);
}while(_2.getElementById(id));
return id;
};
dojo.dom.getUniqueId._idIncrement=0;
dojo.dom.firstElement=dojo.dom.getFirstChildElement=function(_4,_5){
var _6=_4.firstChild;
while(_6&&_6.nodeType!=dojo.dom.ELEMENT_NODE){
_6=_6.nextSibling;
}
if(_5&&_6&&_6.tagName&&_6.tagName.toLowerCase()!=_5.toLowerCase()){
_6=dojo.dom.nextElement(_6,_5);
}
return _6;
};
dojo.dom.lastElement=dojo.dom.getLastChildElement=function(_7,_8){
var _9=_7.lastChild;
while(_9&&_9.nodeType!=dojo.dom.ELEMENT_NODE){
_9=_9.previousSibling;
}
if(_8&&_9&&_9.tagName&&_9.tagName.toLowerCase()!=_8.toLowerCase()){
_9=dojo.dom.prevElement(_9,_8);
}
return _9;
};
dojo.dom.nextElement=dojo.dom.getNextSiblingElement=function(_a,_b){
if(!_a){
return null;
}
do{
_a=_a.nextSibling;
}while(_a&&_a.nodeType!=dojo.dom.ELEMENT_NODE);
if(_a&&_b&&_b.toLowerCase()!=_a.tagName.toLowerCase()){
return dojo.dom.nextElement(_a,_b);
}
return _a;
};
dojo.dom.prevElement=dojo.dom.getPreviousSiblingElement=function(_c,_d){
if(!_c){
return null;
}
if(_d){
_d=_d.toLowerCase();
}
do{
_c=_c.previousSibling;
}while(_c&&_c.nodeType!=dojo.dom.ELEMENT_NODE);
if(_c&&_d&&_d.toLowerCase()!=_c.tagName.toLowerCase()){
return dojo.dom.prevElement(_c,_d);
}
return _c;
};
dojo.dom.moveChildren=function(_e,_f,_10){
var _11=0;
if(_10){
while(_e.hasChildNodes()&&_e.firstChild.nodeType==dojo.dom.TEXT_NODE){
_e.removeChild(_e.firstChild);
}
while(_e.hasChildNodes()&&_e.lastChild.nodeType==dojo.dom.TEXT_NODE){
_e.removeChild(_e.lastChild);
}
}
while(_e.hasChildNodes()){
_f.appendChild(_e.firstChild);
_11++;
}
return _11;
};
dojo.dom.copyChildren=function(_12,_13,_14){
var _15=_12.cloneNode(true);
return this.moveChildren(_15,_13,_14);
};
dojo.dom.replaceChildren=function(_16,_17){
var _18=[];
if(dojo.render.html.ie){
for(var i=0;i<_16.childNodes.length;i++){
_18.push(_16.childNodes[i]);
}
}
dojo.dom.removeChildren(_16);
_16.appendChild(_17);
for(var i=0;i<_18.length;i++){
dojo.dom.destroyNode(_18[i]);
}
};
dojo.dom.removeChildren=function(_1a){
var _1b=_1a.childNodes.length;
while(_1a.hasChildNodes()){
dojo.dom.removeNode(_1a.firstChild);
}
return _1b;
};
dojo.dom.replaceNode=function(_1c,_1d){
return _1c.parentNode.replaceChild(_1d,_1c);
};
dojo.dom.destroyNode=function(_1e){
if(_1e.parentNode){
_1e=dojo.dom.removeNode(_1e);
}
if(_1e.nodeType!=3){
if(dojo.evalObjPath("dojo.event.browser.clean",false)){
dojo.event.browser.clean(_1e);
}
if(dojo.render.html.ie){
_1e.outerHTML="";
}
}
};
dojo.dom.removeNode=function(_1f){
if(_1f&&_1f.parentNode){
return _1f.parentNode.removeChild(_1f);
}
};
dojo.dom.getAncestors=function(_20,_21,_22){
var _23=[];
var _24=(_21&&(_21 instanceof Function||typeof _21=="function"));
while(_20){
if(!_24||_21(_20)){
_23.push(_20);
}
if(_22&&_23.length>0){
return _23[0];
}
_20=_20.parentNode;
}
if(_22){
return null;
}
return _23;
};
dojo.dom.getAncestorsByTag=function(_25,tag,_27){
tag=tag.toLowerCase();
return dojo.dom.getAncestors(_25,function(el){
return ((el.tagName)&&(el.tagName.toLowerCase()==tag));
},_27);
};
dojo.dom.getFirstAncestorByTag=function(_29,tag){
return dojo.dom.getAncestorsByTag(_29,tag,true);
};
dojo.dom.isDescendantOf=function(_2b,_2c,_2d){
if(_2d&&_2b){
_2b=_2b.parentNode;
}
while(_2b){
if(_2b==_2c){
return true;
}
_2b=_2b.parentNode;
}
return false;
};
dojo.dom.innerXML=function(_2e){
if(_2e.innerXML){
return _2e.innerXML;
}else{
if(_2e.xml){
return _2e.xml;
}else{
if(typeof XMLSerializer!="undefined"){
return (new XMLSerializer()).serializeToString(_2e);
}
}
}
};
dojo.dom.createDocument=function(){
var doc=null;
var _30=dojo.doc();
if(!dj_undef("ActiveXObject")){
var _31=["MSXML2","Microsoft","MSXML","MSXML3"];
for(var i=0;i<_31.length;i++){
try{
doc=new ActiveXObject(_31[i]+".XMLDOM");
}
catch(e){
}
if(doc){
break;
}
}
}else{
if((_30.implementation)&&(_30.implementation.createDocument)){
doc=_30.implementation.createDocument("","",null);
}
}
return doc;
};
dojo.dom.createDocumentFromText=function(str,_34){
if(!_34){
_34="text/xml";
}
if(!dj_undef("DOMParser")){
var _35=new DOMParser();
return _35.parseFromString(str,_34);
}else{
if(!dj_undef("ActiveXObject")){
var _36=dojo.dom.createDocument();
if(_36){
_36.async=false;
_36.loadXML(str);
return _36;
}else{
dojo.debug("toXml didn't work?");
}
}else{
var _37=dojo.doc();
if(_37.createElement){
var tmp=_37.createElement("xml");
tmp.innerHTML=str;
if(_37.implementation&&_37.implementation.createDocument){
var _39=_37.implementation.createDocument("foo","",null);
for(var i=0;i<tmp.childNodes.length;i++){
_39.importNode(tmp.childNodes.item(i),true);
}
return _39;
}
return ((tmp.document)&&(tmp.document.firstChild?tmp.document.firstChild:tmp));
}
}
}
return null;
};
dojo.dom.prependChild=function(_3b,_3c){
if(_3c.firstChild){
_3c.insertBefore(_3b,_3c.firstChild);
}else{
_3c.appendChild(_3b);
}
return true;
};
dojo.dom.insertBefore=function(_3d,ref,_3f){
if((_3f!=true)&&(_3d===ref||_3d.nextSibling===ref)){
return false;
}
var _40=ref.parentNode;
_40.insertBefore(_3d,ref);
return true;
};
dojo.dom.insertAfter=function(_41,ref,_43){
var pn=ref.parentNode;
if(ref==pn.lastChild){
if((_43!=true)&&(_41===ref)){
return false;
}
pn.appendChild(_41);
}else{
return this.insertBefore(_41,ref.nextSibling,_43);
}
return true;
};
dojo.dom.insertAtPosition=function(_45,ref,_47){
if((!_45)||(!ref)||(!_47)){
return false;
}
switch(_47.toLowerCase()){
case "before":
return dojo.dom.insertBefore(_45,ref);
case "after":
return dojo.dom.insertAfter(_45,ref);
case "first":
if(ref.firstChild){
return dojo.dom.insertBefore(_45,ref.firstChild);
}else{
ref.appendChild(_45);
return true;
}
break;
default:
ref.appendChild(_45);
return true;
}
};
dojo.dom.insertAtIndex=function(_48,_49,_4a){
var _4b=_49.childNodes;
if(!_4b.length||_4b.length==_4a){
_49.appendChild(_48);
return true;
}
if(_4a==0){
return dojo.dom.prependChild(_48,_49);
}
return dojo.dom.insertAfter(_48,_4b[_4a-1]);
};
dojo.dom.textContent=function(_4c,_4d){
if(arguments.length>1){
var _4e=dojo.doc();
dojo.dom.replaceChildren(_4c,_4e.createTextNode(_4d));
return _4d;
}else{
if(_4c.textContent!=undefined){
return _4c.textContent;
}
var _4f="";
if(_4c==null){
return _4f;
}
for(var i=0;i<_4c.childNodes.length;i++){
switch(_4c.childNodes[i].nodeType){
case 1:
case 5:
_4f+=dojo.dom.textContent(_4c.childNodes[i]);
break;
case 3:
case 2:
case 4:
_4f+=_4c.childNodes[i].nodeValue;
break;
default:
break;
}
}
return _4f;
}
};
dojo.dom.hasParent=function(_51){
return Boolean(_51&&_51.parentNode&&dojo.dom.isNode(_51.parentNode));
};
dojo.dom.isTag=function(_52){
if(_52&&_52.tagName){
for(var i=1;i<arguments.length;i++){
if(_52.tagName==String(arguments[i])){
return String(arguments[i]);
}
}
}
return "";
};
dojo.dom.setAttributeNS=function(_54,_55,_56,_57){
if(_54==null||((_54==undefined)&&(typeof _54=="undefined"))){
dojo.raise("No element given to dojo.dom.setAttributeNS");
}
if(!((_54.setAttributeNS==undefined)&&(typeof _54.setAttributeNS=="undefined"))){
_54.setAttributeNS(_55,_56,_57);
}else{
var _58=_54.ownerDocument;
var _59=_58.createNode(2,_56,_55);
_59.nodeValue=_57;
_54.setAttributeNode(_59);
}
};