summaryrefslogtreecommitdiff
path: root/frontend/beta/js/YUI-extensions/CustomTagReader.js
Unidiff
Diffstat (limited to 'frontend/beta/js/YUI-extensions/CustomTagReader.js') (more/less context) (show whitespace changes)
-rw-r--r--frontend/beta/js/YUI-extensions/CustomTagReader.js40
1 files changed, 40 insertions, 0 deletions
diff --git a/frontend/beta/js/YUI-extensions/CustomTagReader.js b/frontend/beta/js/YUI-extensions/CustomTagReader.js
new file mode 100644
index 0000000..12faaa9
--- a/dev/null
+++ b/frontend/beta/js/YUI-extensions/CustomTagReader.js
@@ -0,0 +1,40 @@
1/**
2 * @class YAHOO.ext.CustomTagReader
3 * Utility class to normalize reading of custom tags across browsers.
4 */
5YAHOO.ext.CustomTagReader = function(namespace){
6 this.namespace = namespace;
7};
8YAHOO.ext.CustomTagReader.prototype = {
9 getAttribute : function(el, name, defaultValue){
10 return (this.useNS ?
11 v = el.getAttributeNS(this.namespace, name) : null) ||
12 el.getAttribute(this.namespace+':'+name) ||
13 el.getAttribute(name);
14 },
15
16 getElements : function(tagName, targetEl){
17 targetEl = targetEl || document.body;
18 var els;
19 if(this.useNS){ // no namespaces in IE
20 els = targetEl.getElementsByTagNameNS(this.namespace, tagName);
21 }
22 if(!els || els.length < 1){ // ie6, firefox 1.5, firefox 2 depending on doc type
23 els = targetEl.getElementsByTagName(this.namespace+':'+tagName);
24 }
25 if(!els || els.length < 1){ // everyone else
26 els = targetEl.getElementsByTagName(tagName);
27 }
28 return els;
29 },
30
31 eachElement : function(tagName, targetEl, fn, scope){
32 var els = this.getElements(tagName, targetEl);
33 for(var i = 0, len = els.length; i < len; i++) {
34 var el = els[i];
35 fn.call(scope || el, el);
36 }
37 },
38
39 useNS : (!YAHOO.ext.util.Browser.isIE && document.getElementsByTagNameNS) ? true : false
40};