var ie=/MSIE/.test(navigator.userAgent);var moz=!ie&&navigator.product=="Gecko";function extendEventObject(){Event.prototype.__defineSetter__("returnValue",function(b){if(!b){window.event.preventDefault();}return b;});Event.prototype.__defineSetter__("cancelBubble",function(b){if(b){window.event.stopPropagation();}return b;});Event.prototype.__defineGetter__("srcElement",function(){var node=window.event.target;while(node.nodeType!=1){node=node.parentNode;}return node;});Event.prototype.__defineGetter__("fromElement",function(){var node;if(window.event.type=="mouseover"){node=window.event.relatedTarget;}else if(window.event.type=="mouseout"){node=window.event.target;}if(!node){return;}while(node.nodeType!=1){node=node.parentNode;}return node;});Event.prototype.__defineGetter__("toElement",function(){var node;if(window.event.type=="mouseout"){node=window.event.relatedTarget;}else if(window.event.type=="mouseover"){node=window.event.target;}if(!node){return;}while(node.nodeType!=1){node=node.parentNode;}return node;});Event.prototype.__defineGetter__("offsetX",function(){return window.event.layerX;});Event.prototype.__defineGetter__("offsetY",function(){return window.event.layerY;});}function emulateAttachEvent(){HTMLDocument.prototype.attachEvent=HTMLElement.prototype.attachEvent=function(sType,fHandler){var shortTypeName=sType.replace(/on/,"");fHandler._ieEmuEventHandler=function(e){window.event=e;return fHandler();};this.addEventListener(shortTypeName,fHandler._ieEmuEventHandler,false);};HTMLDocument.prototype.detachEvent=HTMLElement.prototype.detachEvent=function(sType,fHandler){var shortTypeName=sType.replace(/on/,"");if(typeof fHandler._ieEmuEventHandler=="function"){this.removeEventListener(shortTypeName,fHandler._ieEmuEventHandler,false);}else{this.removeEventListener(shortTypeName,fHandler,true);}};}function emulateEventHandlers(eventNames){for(var i=0;i<eventNames.length;i++){document.addEventListener(eventNames[i],function(e){window.event=e;},true);}}function emulateAllModel(){var allGetter=function(){var a=this.getElementsByTagName("*");var node=this;a.tags=function(sTagName){return node.getElementsByTagName(sTagName);};return a;};HTMLDocument.prototype.__defineGetter__("all",allGetter);HTMLElement.prototype.__defineGetter__("all",allGetter);}function extendElementModel(){HTMLElement.prototype.__defineGetter__("parentElement",function(){if(this.parentNode==this.ownerDocument){return null;}return this.parentNode;});HTMLElement.prototype.__defineGetter__("children",function(){var tmp=[];var j=0;var n;for(var i=0;i<this.childNodes.length;i++){n=this.childNodes[i];if(n.nodeType==1){tmp[j++]=n;if(n.name){if(!tmp[n.name]){tmp[n.name]=[];}tmp[n.name][tmp[n.name].length]=n;}if(n.id){tmp[n.id]=n;}}}return tmp;});HTMLElement.prototype.contains=function(oEl){if(oEl==this){return true;}if(oEl==null){return false;}return this.contains(oEl.parentNode);};}function emulateCurrentStyle(){HTMLElement.prototype.__defineGetter__("currentStyle",function(){return this.ownerDocument.defaultView.getComputedStyle(this,null);});}function emulateHTMLModel(){function convertTextToHTML(s){s=s.replace(/\&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/\n/g,"<BR>");while(/\s\s/.test(s)){s=s.replace(/\s\s/,"&nbsp; ");}return s.replace(/\s/g," ");}HTMLElement.prototype.insertAdjacentHTML=function(sWhere,sHTML){var df;var r=this.ownerDocument.createRange();switch(String(sWhere).toLowerCase()){case "beforebegin":r.setStartBefore(this);df=r.createContextualFragment(sHTML);this.parentNode.insertBefore(df,this);break;case "afterbegin":r.selectNodeContents(this);r.collapse(true);df=r.createContextualFragment(sHTML);this.insertBefore(df,this.firstChild);break;case "beforeend":r.selectNodeContents(this);r.collapse(false);df=r.createContextualFragment(sHTML);this.appendChild(df);break;case "afterend":r.setStartAfter(this);df=r.createContextualFragment(sHTML);this.parentNode.insertBefore(df,this.nextSibling);break;}};HTMLElement.prototype.__defineSetter__("outerHTML",function(sHTML){var r=this.ownerDocument.createRange();r.setStartBefore(this);var df=r.createContextualFragment(sHTML);this.parentNode.replaceChild(df,this);return sHTML;});HTMLElement.prototype.__defineGetter__("canHaveChildren",function(){switch(this.tagName){case "AREA":case "BASE":case "BASEFONT":case "COL":case "FRAME":case "HR":case "IMG":case "BR":case "INPUT":case "ISINDEX":case "LINK":case "META":case "PARAM":return false;}return true;});HTMLElement.prototype.__defineGetter__("outerHTML",function(){var attr,attrs=this.attributes;var str="<"+this.tagName;for(var i=0;i<attrs.length;i++){attr=attrs[i];if(attr.specified){str+=" "+attr.name+'="'+attr.value+'"';}}if(!this.canHaveChildren){return str+">";}return str+">"+this.innerHTML+"</"+this.tagName+">";});HTMLElement.prototype.__defineSetter__("innerText",function(sText){this.innerHTML=convertTextToHTML(sText);return sText;});var tmpGet;HTMLElement.prototype.__defineGetter__("innerText",tmpGet=function(){var r=this.ownerDocument.createRange();r.selectNodeContents(this);return r.toString();});HTMLElement.prototype.__defineSetter__("outerText",function(sText){this.outerHTML=convertTextToHTML(sText);return sText;});HTMLElement.prototype.__defineGetter__("outerText",tmpGet);HTMLElement.prototype.insertAdjacentText=function(sWhere,sText){this.insertAdjacentHTML(sWhere,convertTextToHTML(sText));};}