var dom={'element':{'get':function(id,type){switch(type||'id'){case 'id':return document.getElementById(id);case 'tag':return document.getElementsByTagName(id)[0];default:return document.getElementsByName(id)[0];}},'add':function(type,attr){var obj=document.createElement(type);dom.attributes.set(obj,attr);return obj;},'prepend':function(obj,child_obj){obj.insertBefore(child_obj,obj.firstChild);},'append':function(obj,child_obj){obj.appendChild(child_obj);},'replace':function(obj,new_obj,old_obj){if(old_obj===null){this.clean(obj);obj.appendChild(new_obj);}else{obj.replaceChild(new_obj,old_obj);}},'remove':function(obj){obj.parentNode.removeChild(obj);},'clean':function(obj){while(obj.hasChildNodes()){obj.removeChild(obj.childNodes[0]);}}},'elements':{'get':function(id,type){switch(type||'tag'){case 'tag':return document.getElementsByTagName(id);default:return document.getElementsByName(id);}}},'attributes':{'set':function(obj,attr){var key,value;for(key in attr){value=attr[key];switch(true){case(key=='style'):var key2,value2;for(key2 in value){value2=value[key2];if(key2=='opacity'){dom.opacity.set(obj,value2);}else{obj['style'][key2]=value2;}}break;case(key=='text'):dom.element.append(obj,document.createTextNode(value));break;case(key.substring(0,2)=='on'):obj[key]=new Function(value);break;case(key.substring(0,3)=='set'):obj.setAttribute(key.substring(4),value);break;default:obj[key]=value;break;}}}},'event':{'add':function(obj,type,func){if(obj.addEventListener){obj.addEventListener(type,func,false);return true;}else if(obj.attachEvent){if(type=='mousedown'){eval('document.on'+type+'='+func);}else{return obj.attachEvent('on'+type,func);}}return false;},'remove':function(obj,type,func){if(obj.detachEvent){obj.detachEvent('on'+type,obj[type+func]);obj[type+func]=null;}else{obj.removeEventListener(type,func,false);}}},'opacity':{'get':function(obj){switch(extension.browser.type()){case 'msie':return parseFloat(obj.filters.item('alpha').opacity/100);default:return parseFloat(obj.style.opacity);}},'set':function(obj,opacity){if(opacity<0||opacity>1){return;}switch(extension.browser.type()){case 'msie':obj.style.filter='alpha(opacity='+parseInt(opacity * 100,10)+')';break;default:obj.style.opacity=opacity;break;}}}};