/*
 * @require jade.js
 * @require jade/Schedular.js
 */
jade.HTMLUtils=function(){};
jade.HTMLUtils.hasClassName=function(b,c){var d,a;if(!b||!b.className){return false
}d=b.className.split(" ");for(a in d){if(d[a]==c){return true}}return false};jade.HTMLUtils.getElementsByClassName=function(e,g,d){var f,h,b,a,j,c;
if(d===undefined){d=-1}else{if(d>=0){d--;if(d<0){return[]}}}b=e.childNodes;j=[];for(f=0,h=b.length;
f<h;f++){a=b[f];if(a){if(jade.HTMLUtils.hasClassName(a,g)){j.push(a)}c=jade.HTMLUtils.getElementsByClassName(a,g,d);
if(c.length>0){j=j.concat(c)}}}return j};jade.HTMLUtils.getElementByClassName=function(a,b,d){var c;
c=jade.HTMLUtils.getElementsByClassName(a,b,d);if(c.length>0){return c[0]}else{return null
}};jade.HTMLUtils.removeClassName=function(c,d){var f,b,a,e;if(!c){throw new Error("element must be set")
}if(!c.className){return false}f=c.className.split(" ");e=false;for(b=0,a=f.length;
b<a;b++){if(f[b]==d){f.splice(b,1);b--;e=true}}c.className=f.join(" ");return e};
jade.HTMLUtils.addClassName=function(a,b){if(!a){throw new Error("element must be set")
}if(jade.HTMLUtils.hasClassName(a,b)){return false}if(a.className){a.className+=" "+b
}else{a.className=b}return true};jade.HTMLUtils.replaceClassName=function(b,a,c){jade.HTMLUtils.removeClassName(b,a);
jade.HTMLUtils.addClassName(b,c)};jade.HTMLUtils.getParentByClassName=function(b,c){var a;
if(typeof(b.parentNode)===undefined){return null}a=b;do{a=a.parentNode;if(jade.HTMLUtils.hasClassName(a,c)){return a
}}while(a.parentNode!==null);return null};jade.HTMLUtils.getSiblingByTagName=function(b,a,c){c=(c===undefined)?"forward":c;
b=(c=="forward")?b.nextSibling:b.previousSibling;while(b!==null){if(b.tagName==a.toUpperCase()){return b
}b=(c=="forward")?b.nextSibling:b.previousSibling}return null};jade.HTMLUtils.getClassNames=function(c){var b,a,d;
a=[];if(!c||!c.className){return a}d=c.className.split(" ");for(b in d){a.push(d[b])
}return a};jade.HTMLUtils.removeChildren=function(b){for(var a=b.childNodes.length-1;
a>=0;a--){b.removeChild(b.childNodes[a])}};jade.HTMLUtils.autoSizeFileUpload=function(e,f){var c,a,b,d;
if(e!==null){e.style.visibility="hidden";if(f!==null&&f.scrollWidth){b=f.scrollWidth;
f.style.overflow="hidden";for(c=1,a=15;c<a;c++){e.size=c;d=f.scrollWidth;if(d>b){e.size=c>1?c-1:1;
break}}}e.style.visibility="visible"}};jade.HTMLUtils.getDocumentOffset=function(b){var a,c;
a=0;c=0;while(b!==null){a+=b.offsetLeft?b.offsetLeft:0;c+=b.offsetTop?b.offsetTop:0;
b=b.offsetParent}return{x:a,y:c}};jade.HTMLUtils.changeCSS=function(c,l,k){var f,d,g,e,b,h,a;
g=document.styleSheets;for(f=0,d=g.length;f<d;f++){h=g[f]["cssRules"]||g[f]["rules"];
for(e=0,b=h.length;e<b;e++){a=h[e];if(a.selectorText==c){a.style[l]=k}}}};jade.HTMLUtils.measureElement=function(c,g,i,f){var h,a,b,d;
a=document.body;if(!a){jade.Schedular.schedule(25,this.measureElement,this,c,g,i,f);
return false}b=document.createElement("div");d=b.style;d.position="absolute";d.overflow="visible";
d.visibility="hidden";if(g){d.width=Math.max(0,g)+"px"}h=c.cloneNode(true);d=h.style;
d.width="auto";d.height="auto";d.position="relative";b.appendChild(h);a.appendChild(b);
i.call(f,h.offsetWidth,h.offsetHeight,c);a.removeChild(b);return true};jade.HTMLUtils.getElementSize=function(b,d){var c,a;
if(!jade.HTMLUtils.measureElement(b,d,function(e,f){c=e;a=f})){return null}return new jade.Dimension(c,a)
};