This repository has been archived on 2024-11-28. You can view files and clone it, but cannot push or open issues or pull requests.
Incam_SGD/thirdpartyjs/yui/dom/dom.js

1 line
8.7 KiB
JavaScript
Raw Normal View History

(function(){var Y=YAHOO.util,getStyle,setStyle,id_counter=0,propertyCache={};var ua=navigator.userAgent.toLowerCase(),isOpera=(ua.indexOf("opera")>-1),isSafari=(ua.indexOf("safari")>-1),isGecko=(!isOpera&&!isSafari&&ua.indexOf("gecko")>-1),isIE=(!isOpera&&ua.indexOf("msie")>-1);var _3={HYPHEN:/(-[a-z])/i};var _4=function(_5){if(!_3.HYPHEN.test(_5)){return _5;}if(propertyCache[_5]){return propertyCache[_5];}while(_3.HYPHEN.exec(_5)){_5=_5.replace(RegExp.$1,RegExp.$1.substr(1).toUpperCase());}propertyCache[_5]=_5;return _5;};if(document.defaultView&&document.defaultView.getComputedStyle){getStyle=function(el,_7){var _8=null;var _9=document.defaultView.getComputedStyle(el,"");if(_9){_8=_9[_4(_7)];}return el.style[_7]||_8;};}else{if(document.documentElement.currentStyle&&isIE){getStyle=function(el,_b){switch(_4(_b)){case "opacity":var _c=100;try{_c=el.filters["DXImageTransform.Microsoft.Alpha"].opacity;}catch(e){try{_c=el.filters("alpha").opacity;}catch(e){}}return _c/100;break;default:var _d=el.currentStyle?el.currentStyle[_b]:null;return (el.style[_b]||_d);}};}else{getStyle=function(el,_f){return el.style[_f];};}}if(isIE){setStyle=function(el,_11,val){switch(_11){case "opacity":if(typeof el.style.filter=="string"){el.style.filter="alpha(opacity="+val*100+")";if(!el.currentStyle||!el.currentStyle.hasLayout){el.style.zoom=1;}}break;default:el.style[_11]=val;}};}else{setStyle=function(el,_14,val){el.style[_14]=val;};}YAHOO.util.Dom={get:function(el){if(!el){return null;}if(typeof el!="string"&&!(el instanceof Array)){return el;}if(typeof el=="string"){return document.getElementById(el);}else{var _17=[];for(var i=0,len=el.length;i<len;++i){_17[_17.length]=Y.Dom.get(el[i]);}return _17;}return null;},getStyle:function(el,_1a){_1a=_4(_1a);var f=function(_1c){return getStyle(_1c,_1a);};return Y.Dom.batch(el,f,Y.Dom,true);},setStyle:function(el,_1e,val){_1e=_4(_1e);var f=function(_21){setStyle(_21,_1e,val);};Y.Dom.batch(el,f,Y.Dom,true);},getXY:function(el){var f=function(el){if(el.parentNode===null||el.offsetParent===null||this.getStyle(el,"display")=="none"){return false;}var _25=null;var pos=[];var box;if(el.getBoundingClientRect){box=el.getBoundingClientRect();var doc=document;if(!this.inDocument(el)&&parent.document!=document){doc=parent.document;if(!this.isAncestor(doc.documentElement,el)){return false;}}var _29=Math.max(doc.documentElement.scrollTop,doc.body.scrollTop);var _2a=Math.max(doc.documentElement.scrollLeft,doc.body.scrollLeft);return [box.left+_2a,box.top+_29];}else{pos=[el.offsetLeft,el.offsetTop];_25=el.offsetParent;if(_25!=el){while(_25){pos[0]+=_25.offsetLeft;pos[1]+=_25.offsetTop;_25=_25.offsetParent;}}if(isSafari&&this.getStyle(el,"position")=="absolute"){pos[0]-=document.body.offsetLeft;pos[1]-=document.body.offsetTop;}}if(el.parentNode){_25=el.parentNode;}else{_25=null;}while(_25&&_25.tagName.toUpperCase()!="BODY"&&_25.tagName.toUpperCase()!="HTML"){if(Y.Dom.getStyle(_25,"display")!="inline"){pos[0]-=_25.scrollLeft;pos[1]-=_25.scrollTop;}if(_25.parentNode){_25=_25.parentNode;}else{_25=null;}}return pos;};return Y.Dom.batch(el,f,Y.Dom,true);},getX:function(el){var f=function(el){return Y.Dom.getXY(el)[0];};return Y.Dom.batch(el,f,Y.Dom,true);},getY:function(el){var f=function(el){return Y.Dom.getXY(el)[1];};return Y.Dom.batch(el,f,Y.Dom,true);},setXY:function(el,pos,_33){var f=function(el){var _36=this.getStyle(el,"position");if(_36=="static"){this.setStyle(el,"position","relative");_36="relative";}var _37=this.getXY(el);if(_37===false){return false;}var _38=[parseInt(this.getStyle(el,"left"),10),parseInt(this.getStyle(el,"top"),10)];if(isNaN(_38[0])){_38[0]=(_36=="relative")?0:el.offsetLeft;}if(isNaN(_38[1])){_38[1]=(_36=="relative")?0:el.offsetTop;}if(pos[0]!==null){el.style.left=pos[0]-_37[0]+_38[0]+"px";}if(pos[1]!==null){el.style.top=pos[1]-_37[1]+_38[1]+"px";}var _39=this.getXY(el);if(!_33&&(_39[0]!=pos[0]||_39[1]!=pos[1])){this.setXY(el,pos,true);}};Y.Dom.batch(el,f,Y.Dom,true);},setX:function(el,x){Y.Dom.setXY(el,[x,null]);},setY:function(el,y){Y.Dom.setXY(el,[null,y]);},getRegion:function(el){var f