var DOM=function(){var lessThan=/</g;var greaterThan=/>/g;var ampersand=/&/g;var lessThanEntity=/&lt;/g;var greaterThanEntity=/&gt;/g;var ampersandEntity=/&amp;/g;return{hasClass:function(element,className){var pattern=new RegExp("\\b"+className+"\\b");return pattern.test(element.className);},addClass:function(element,className){if(DOM.hasClass(element,className)){return;}
element.className=[element.className,className].join(" ");},removeClass:function(element,className){if(!DOM.hasClass(element,className)){return;}
var oldClasses=element.className.split(" ");var newClasses=[];for(var i=0;i<oldClasses.length;i+=1){if(oldClasses[i]!==className){newClasses.push(oldClasses[i]);}}
element.className=newClasses.join(" ");},getElementsByClass:function(className,parent,filter){var matches=[];var node=parent||document;var tag=filter||"*";var elements=node.getElementsByTagName(tag);var len=elements.length;for(var i=0;i<len;i+=1){if(DOM.hasClass(elements[i],className)){matches.push(elements[i]);}}
return matches;},entityify:function(text){return text.replace(ampersand,"&amp;").replace(lessThan,"&lt;").replace(greaterThan,"&gt;");},deentityify:function(text){return text.replace(ampersandEntity,"&").replace(lessThanEntity,"<").replace(greaterThanEntity,">");}}}();