// addevent function addevent(o,type,cb){ if(o.addeventlistener){ o.addeventlistener(type,cb,false); }else if(o.attachevent){ o.attachevent('on'+type,cb); }else{ o['on'+type]=cb; } } // contains function contains(pn,cn){ if(pn.contains){ return pn.contains(cn); }else if(pn.comparedocumentposition){ return pn.comparedocumentposition(cn)==20 || pn.comparedocumentposition(cn)==16 || pn==cn; } } // haselem function haselem(arr,o){ for(var i=0,len=arr.length;i