diff -r 861cae17abda -r 6cb4d10f0b8b web/res/metadataplayer/test/css-dock-menu/js/iutil.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/web/res/metadataplayer/test/css-dock-menu/js/iutil.js Wed Apr 06 16:26:16 2011 +0200 @@ -0,0 +1,245 @@ +/** + * Interface Elements for jQuery + * utility function + * + * http://interface.eyecon.ro + * + * Copyright (c) 2006 Stefan Petre + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * + */ + +jQuery.iUtil = { + getPosition : function(e) + { + var x = 0; + var y = 0; + var es = e.style; + var restoreStyles = false; + if (jQuery(e).css('display') == 'none') { + var oldVisibility = es.visibility; + var oldPosition = es.position; + restoreStyles = true; + es.visibility = 'hidden'; + es.display = 'block'; + es.position = 'absolute'; + } + var el = e; + while (el){ + x += el.offsetLeft + (el.currentStyle && !jQuery.browser.opera ?parseInt(el.currentStyle.borderLeftWidth)||0:0); + y += el.offsetTop + (el.currentStyle && !jQuery.browser.opera ?parseInt(el.currentStyle.borderTopWidth)||0:0); + el = el.offsetParent; + } + el = e; + while (el && el.tagName && el.tagName.toLowerCase() != 'body') + { + x -= el.scrollLeft||0; + y -= el.scrollTop||0; + el = el.parentNode; + } + if (restoreStyles == true) { + es.display = 'none'; + es.position = oldPosition; + es.visibility = oldVisibility; + } + return {x:x, y:y}; + }, + getPositionLite : function(el) + { + var x = 0, y = 0; + while(el) { + x += el.offsetLeft || 0; + y += el.offsetTop || 0; + el = el.offsetParent; + } + return {x:x, y:y}; + }, + getSize : function(e) + { + var w = jQuery.css(e,'width'); + var h = jQuery.css(e,'height'); + var wb = 0; + var hb = 0; + var es = e.style; + if (jQuery(e).css('display') != 'none') { + wb = e.offsetWidth; + hb = e.offsetHeight; + } else { + var oldVisibility = es.visibility; + var oldPosition = es.position; + es.visibility = 'hidden'; + es.display = 'block'; + es.position = 'absolute'; + wb = e.offsetWidth; + hb = e.offsetHeight; + es.display = 'none'; + es.position = oldPosition; + es.visibility = oldVisibility; + } + return {w:w, h:h, wb:wb, hb:hb}; + }, + getSizeLite : function(el) + { + return { + wb:el.offsetWidth||0, + hb:el.offsetHeight||0 + }; + }, + getClient : function(e) + { + var h, w, de; + if (e) { + w = e.clientWidth; + h = e.clientHeight; + } else { + de = document.documentElement; + w = window.innerWidth || self.innerWidth || (de&&de.clientWidth) || document.body.clientWidth; + h = window.innerHeight || self.innerHeight || (de&&de.clientHeight) || document.body.clientHeight; + } + return {w:w,h:h}; + }, + getScroll : function (e) + { + var t=0, l=0, w=0, h=0, iw=0, ih=0; + if (e && e.nodeName.toLowerCase() != 'body') { + t = e.scrollTop; + l = e.scrollLeft; + w = e.scrollWidth; + h = e.scrollHeight; + iw = 0; + ih = 0; + } else { + if (document.documentElement) { + t = document.documentElement.scrollTop; + l = document.documentElement.scrollLeft; + w = document.documentElement.scrollWidth; + h = document.documentElement.scrollHeight; + } else if (document.body) { + t = document.body.scrollTop; + l = document.body.scrollLeft; + w = document.body.scrollWidth; + h = document.body.scrollHeight; + } + iw = self.innerWidth||document.documentElement.clientWidth||document.body.clientWidth||0; + ih = self.innerHeight||document.documentElement.clientHeight||document.body.clientHeight||0; + } + return { t: t, l: l, w: w, h: h, iw: iw, ih: ih }; + }, + getMargins : function(e, toInteger) + { + var el = jQuery(e); + var t = el.css('marginTop') || ''; + var r = el.css('marginRight') || ''; + var b = el.css('marginBottom') || ''; + var l = el.css('marginLeft') || ''; + if (toInteger) + return { + t: parseInt(t)||0, + r: parseInt(r)||0, + b: parseInt(b)||0, + l: parseInt(l) + }; + else + return {t: t, r: r, b: b, l: l}; + }, + getPadding : function(e, toInteger) + { + var el = jQuery(e); + var t = el.css('paddingTop') || ''; + var r = el.css('paddingRight') || ''; + var b = el.css('paddingBottom') || ''; + var l = el.css('paddingLeft') || ''; + if (toInteger) + return { + t: parseInt(t)||0, + r: parseInt(r)||0, + b: parseInt(b)||0, + l: parseInt(l) + }; + else + return {t: t, r: r, b: b, l: l}; + }, + getBorder : function(e, toInteger) + { + var el = jQuery(e); + var t = el.css('borderTopWidth') || ''; + var r = el.css('borderRightWidth') || ''; + var b = el.css('borderBottomWidth') || ''; + var l = el.css('borderLeftWidth') || ''; + if (toInteger) + return { + t: parseInt(t)||0, + r: parseInt(r)||0, + b: parseInt(b)||0, + l: parseInt(l)||0 + }; + else + return {t: t, r: r, b: b, l: l}; + }, + getPointer : function(event) + { + var x = event.pageX || (event.clientX + (document.documentElement.scrollLeft || document.body.scrollLeft)) || 0; + var y = event.pageY || (event.clientY + (document.documentElement.scrollTop || document.body.scrollTop)) || 0; + return {x:x, y:y}; + }, + traverseDOM : function(nodeEl, func) + { + func(nodeEl); + nodeEl = nodeEl.firstChild; + while(nodeEl){ + jQuery.iUtil.traverseDOM(nodeEl, func); + nodeEl = nodeEl.nextSibling; + } + }, + purgeEvents : function(nodeEl) + { + jQuery.iUtil.traverseDOM( + nodeEl, + function(el) + { + for(var attr in el){ + if(typeof el[attr] === 'function') { + el[attr] = null; + } + } + } + ); + }, + centerEl : function(el, axis) + { + var clientScroll = jQuery.iUtil.getScroll(); + var windowSize = jQuery.iUtil.getSize(el); + if (!axis || axis == 'vertically') + jQuery(el).css( + { + top: clientScroll.t + ((Math.max(clientScroll.h,clientScroll.ih) - clientScroll.t - windowSize.hb)/2) + 'px' + } + ); + if (!axis || axis == 'horizontally') + jQuery(el).css( + { + left: clientScroll.l + ((Math.max(clientScroll.w,clientScroll.iw) - clientScroll.l - windowSize.wb)/2) + 'px' + } + ); + }, + fixPNG : function (el, emptyGIF) { + var images = jQuery('img[@src*="png"]', el||document), png; + images.each( function() { + png = this.src; + this.src = emptyGIF; + this.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + png + "')"; + }); + } +}; + +// Helper function to support older browsers! +[].indexOf || (Array.prototype.indexOf = function(v, n){ + n = (n == null) ? 0 : n; + var m = this.length; + for (var i=n; i