/******************************************************************
 * DOM module
 * Copyright (c) Ja-Web.com
 ******************************************************************/

JAWJS.registerNS("JAWJS.DOM");JAWJS.DOM={nodType:{ELEMENT:1,ATTRIBUTE:2,TEXT:3,CDATA_SECTION:4,ENTITY_REFERENCE:5,ENTITY:6,PROCESSING_INSTRUCTION:7,COMMENT:8,DOCUMENT:9,DOCUMENT_TYPE:10,DOCUMENT_FRAGMENT:11,NOTATION:12},getOwnerDocument:function(nod){return(nod.nodeType==JAWJS.DOM.nodType.DOCUMENT)?nod:nod.ownerDocument||nod.document;},isAllWs:function(nod){return!(/[^\t\n\r ]/.test(nod.data));},isIgnorable:function(nod){return(nod.nodeType==JAWJS.DOM.nodType.COMMENT)||((nod.nodeType==JAWJS.DOM.nodType.TEXT)&&JAWJS.DOM.isAllWs(nod));},w3:function(){return!!(document.getElementById&&document.createElement);}(),get:function(el){if(typeof el==='string'){if(document.getElementById(el)&&document.getElementById(el).nodeType==JAWJS.DOM.nodType.ELEMENT){return document.getElementById(el);}}else if(el&&el.nodeType==JAWJS.DOM.nodType.ELEMENT){return el;}else{return null;}},getElementsByClass:function(classList,tagName,obj){var oT,arrReturn,arrCM,arrC,dlm,i,j,k,l,m,n,c;tagName=JAWJS.DOM.trimString(tagName)||"*";classList=JAWJS.DOM.trimString(classList);obj=obj||document;oT=obj.getElementsByTagName(tagName);arrReturn=[];dlm=classList.indexOf('|')!=-1?'|':' ';arrCM=classList.split(dlm);if(!oT.length&&tagName=="*"&&obj.all){oT=obj.all;}
for(i=0,j=oT.length;i<j;i++){arrC=oT[i].className.split(' ');if(dlm==' '&&arrCM.length>arrC.length){continue;}
c=0;cLoop:for(k=0,l=arrC.length;k<l;k++){for(m=0,n=arrCM.length;m<n;m++){if(JAWJS.DOM.trimString(arrCM[m])==JAWJS.DOM.trimString(arrC[k])){c++;}
if((dlm=='|'&&c==1)||(dlm==' '&&c==arrCM.length)){arrReturn.push(oT[i]);break cLoop;}}}}
return arrReturn;},getLabelAttr:function(el,attrName,attrValue,onlyOneLabel){var arrReturn=[],oCurrent,arrLabels,i;onlyOneLabel=(onlyOneLabel===true)?true:false;el=el||document;if(!attrValue||attrValue.constructor!=String){return;}
attrName={'for':'htmlFor','class':'className'}[attrName]||attrName;arrLabels=el.getElementsByTagName("label");for(i=0;i<arrLabels.length;i++){oCurrent=arrLabels[i];if(arrLabels[i][attrName]&&arrLabels[i][attrName]==attrValue){arrReturn.push(oCurrent);if(onlyOneLabel===true){break;}}}
return arrReturn;},getHash:function(el){if(el.hash){return el.hash.substring(1);}},getTarget:function(e){var el;if(e.target){el=(e.target.nodeType==JAWJS.DOM.nodType.TEXT)?e.target.parentNode:e.target;}else{el=e.srcElement;}
return el;},attr:function(el,attrName,attrValue){if(!attrName||attrName.constructor!=String||el.nodeType==JAWJS.DOM.nodType.TEXT||el.nodeType==JAWJS.DOM.nodType.COMMENT){return;}
attrName={'for':'htmlFor','class':'className'}[attrName]||attrName;if(typeof attrValue!='undefined'){if(el.setAttribute){el.setAttribute(attrName,attrValue);}else{el[attrName]=attrValue;}}
return el[attrName]||el.getAttribute(attrName)||'';},create:function(tag,txt,attrObj){if(!tag){return;}
var el;if(typeof tag==="string"){el=document.createElement(tag);el.appendChild(document.createTextNode(txt));if(typeof attrObj=="object"){for(var i in attrObj){el[i]=attrObj[i];}}
return el;}},remove:function(el){var nod=JAWJS.DOM.get(el);nod.parentNode.removeChild(nod);},add:function(el,dest){var newNod=JAWJS.DOM.get(el),nod=JAWJS.DOM.get(dest);nod.appendChild(newNod);},insertAfter:function(el,target){var p=target.parentNode;if(p.lastchild==target){p.appendChild(el);}else{p.insertBefore(el,target.nextSibling);}},trimString:function(str){if(typeof str==="string"){return str.replace(/(^\s*)|(\s*$)/g,"");}},toggle:function(obj){if(!obj||typeof obj!='object'){return;}
obj.style.display=(obj.style.display=='none')?'block':'none';},css:function(whatCase,el,c,cSwap){if((typeof el=='undefined')||(whatCase=='')||(c=='')){return;}
switch(whatCase){case'swap':el.className=(!JAWJS.DOM.css('check',el,c))?el.className.replace(cSwap,c):el.className.replace(c,cSwap);break;case'add':if(!JAWJS.DOM.css('check',el,c)){el.className+=el.className?' '+c:c;}
break;case'remove':var r=el.className.match(' '+c)?' '+c:c;el.className=el.className.replace(r,'');break;case'check':return new RegExp("(^|\\s)"+c+"(\\s|$)").test(el.className);break;default:return;}},jsSpecial:function(insertId,jsClass){if(jsClass!==""&&(insertId!==""&&JAWJS.DOM.get(insertId))){return JAWJS.DOM.css('add',JAWJS.DOM.get(insertId),jsClass);}else if(jsClass!==""){return JAWJS.DOM.css('add',document.documentElement,jsClass);}},stopDef:function(e){e=e||window.event;if(e&&e.preventDefault){e.preventDefault();}
else if(window.event){e.returnValue=false;}},stopProp:function(e){e=e||window.event;if(e&&e.stopPropagation){e.stopPropagation();}
else if(window.event){e.cancelBubble=true;}},innerTxt:function(el){if(!el){return;}
if(el.nodeType==JAWJS.DOM.nodType.TEXT){return el.nodeValue;}
var txt=[],i=0;while((el.childNodes[i])){if(!JAWJS.DOM.isIgnorable(el.childNodes[i])){txt[txt.length]=this.innerTxt(el.childNodes[i]);}
i++;}
return txt.join("");},parentNode:function(nod){while((nod=nod.parentNode)){if(!JAWJS.DOM.isIgnorable(nod)){return nod;}}
return null;},firstCh:function(nod){var fc=nod.firstChild;while((fc)){if(!JAWJS.DOM.isIgnorable(fc)){return fc;}
fc=fc.nextSibling;}
return null;}};