JSJaCBuilder.js
Summary
No overview generated for 'JSJaCBuilder.js'
var JSJaCBuilder = {
buildNode: function(doc, elementName) {
var element;
if(arguments[2])
if(JSJaCBuilder._isStringOrNumber(arguments[2]) ||
(arguments[2] instanceof Array)) {
element = doc.createElement(elementName);
JSJaCBuilder._children(doc, element, arguments[2]);
} else {
if (arguments[2]['xmlns']) {
try {
element = doc.createElementNS(arguments[2]['xmlns'],elementName);
} catch(e) { element = doc.createElement(elementName); }
} else
element = doc.createElement(elementName);
for(attr in arguments[2]) {
if (arguments[2].hasOwnProperty(attr)) {
if (attr == 'xmlns' && element.namespaceURI == attr)
continue;
element.setAttribute(attr, arguments[2][attr]);
}
}
}
else
element = doc.createElement(elementName);
if(arguments[3])
JSJaCBuilder._children(doc, element, arguments[3]);
return element;
},
_text: function(doc, text) {
return doc.createTextNode(text);
},
_children: function(doc, element, children) {
if(typeof children=='object') {
for (var i in children) {
if (children.hasOwnProperty(i)) {
var e = children[i];
if (typeof e=='object') {
if (e instanceof Array) {
var node = JSJaCBuilder.buildNode(doc, e[0], e[1], e[2]);
element.appendChild(node);
} else {
element.appendChild(e);
}
} else {
if(JSJaCBuilder._isStringOrNumber(e)) {
element.appendChild(JSJaCBuilder._text(doc, e));
}
}
}
}
} else {
if(JSJaCBuilder._isStringOrNumber(children)) {
element.appendChild(JSJaCBuilder._text(doc, children));
}
}
},
_attributes: function(attributes) {
var attrs = [];
for(attribute in attributes)
if (attributes.hasOwnProperty(attribute))
attrs.push(attribute +
'="' + attributes[attribute].toString().htmlEnc() + '"');
return attrs.join(" ");
},
_isStringOrNumber: function(param) {
return(typeof param=='string' || typeof param=='number');
}
};
Documentation generated by
JSDoc on Mon Nov 29 23:02:43 2010