web/res/metadataplayer/test/css-dock-menu/js/ifx.js
changeset 534 0a2505c3b547
parent 533 d824146a9589
child 535 8276f3ff7a3f
--- a/web/res/metadataplayer/test/css-dock-menu/js/ifx.js	Sun Mar 04 14:13:39 2012 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,490 +0,0 @@
-/**
- * Interface Elements for jQuery
- * FX
- * 
- * http://interface.eyecon.ro
- * 
- * Copyright (c) 2006 Stefan Petre
- * Dual licensed under the MIT (MIT-LICENSE.txt) 
- * and GPL (GPL-LICENSE.txt) licenses.
- *   
- *
- */
-
-/**
- * Validates elements that can be animated
- */
-jQuery.fxCheckTag = function(e)
-{
-	if (/^tr$|^td$|^tbody$|^caption$|^thead$|^tfoot$|^col$|^colgroup$|^th$|^body$|^header$|^script$|^frame$|^frameset$|^option$|^optgroup$|^meta$/i.test(e.nodeName) )
-		return false;
-	else 
-		return true;
-};
-
-/**
- * Destroy the wrapper used for some animations
- */
-jQuery.fx.destroyWrapper = function(e, old)
-{
-	var c = e.firstChild;
-	var cs = c.style;
-	cs.position = old.position;
-	cs.marginTop = old.margins.t;
-	cs.marginLeft = old.margins.l;
-	cs.marginBottom = old.margins.b;
-	cs.marginRight = old.margins.r;
-	cs.top = old.top + 'px';
-	cs.left = old.left + 'px';
-	e.parentNode.insertBefore(c, e);
-	e.parentNode.removeChild(e);
-};
-
-/**
- * Builds a wrapper used for some animations
- */
-jQuery.fx.buildWrapper = function(e)
-{
-	if (!jQuery.fxCheckTag(e))
-		return false;
-	var t = jQuery(e);
-	var es = e.style;
-	var restoreStyle = false;
-	
-	if (t.css('display') == 'none') {
-		oldVisibility = t.css('visibility');
-		t.css('visibility', 'hidden').show();
-		restoreStyle = true;
-	}
-	var oldStyle = {};
-	oldStyle.position = t.css('position');
-	oldStyle.sizes = jQuery.iUtil.getSize(e);
-	oldStyle.margins = jQuery.iUtil.getMargins(e);
-	
-	var oldFloat = e.currentStyle ? e.currentStyle.styleFloat : t.css('float');
-	oldStyle.top = parseInt(t.css('top'))||0;
-	oldStyle.left = parseInt(t.css('left'))||0;
-	var wid = 'w_' + parseInt(Math.random() * 10000);
-	var wr = document.createElement(/^img$|^br$|^input$|^hr$|^select$|^textarea$|^object$|^iframe$|^button$|^form$|^table$|^ul$|^dl$|^ol$/i.test(e.nodeName) ? 'div' : e.nodeName);
-	jQuery.attr(wr,'id', wid);
-	var wrapEl = jQuery(wr).addClass('fxWrapper');
-	var wrs = wr.style;
-	var top = 0;
-	var left = 0;
-	if (oldStyle.position == 'relative' || oldStyle.position == 'absolute'){
-		top = oldStyle.top;
-		left = oldStyle.left;
-	}
-	
-	wrs.top = top + 'px';
-	wrs.left = left + 'px';
-	wrs.position = oldStyle.position != 'relative' && oldStyle.position != 'absolute' ? 'relative' : oldStyle.position;
-	wrs.height = oldStyle.sizes.hb + 'px';
-	wrs.width = oldStyle.sizes.wb + 'px';
-	wrs.marginTop = oldStyle.margins.t;
-	wrs.marginRight = oldStyle.margins.r;
-	wrs.marginBottom = oldStyle.margins.b;
-	wrs.marginLeft = oldStyle.margins.l;
-	wrs.overflow = 'hidden';
-	if (jQuery.browser.msie) {
-		wrs.styleFloat = oldFloat;
-	} else {
-		wrs.cssFloat = oldFloat;
-	}
-	if (jQuery.browser == "msie") {
-		es.filter = "alpha(opacity=" + 0.999*100 + ")";
-	}
-	es.opacity = 0.999;
-	//t.wrap(wr);
-	e.parentNode.insertBefore(wr, e);
-	wr.appendChild(e);
-	es.marginTop = '0px';
-	es.marginRight = '0px';
-	es.marginBottom = '0px';
-	es.marginLeft = '0px';
-	es.position = 'absolute';
-	es.listStyle = 'none';
-	es.top = '0px';
-	es.left = '0px';
-	if (restoreStyle) {
-		t.hide();
-		es.visibility = oldVisibility;
-	}
-	return {oldStyle:oldStyle, wrapper:jQuery(wr)};
-};
-
-/**
- * named colors
- */
-jQuery.fx.namedColors = {
-	aqua:[0,255,255],
-	azure:[240,255,255],
-	beige:[245,245,220],
-	black:[0,0,0],
-	blue:[0,0,255],
-	brown:[165,42,42],
-	cyan:[0,255,255],
-	darkblue:[0,0,139],
-	darkcyan:[0,139,139],
-	darkgrey:[169,169,169],
-	darkgreen:[0,100,0],
-	darkkhaki:[189,183,107],
-	darkmagenta:[139,0,139],
-	darkolivegreen:[85,107,47],
-	darkorange:[255,140,0],
-	darkorchid:[153,50,204],
-	darkred:[139,0,0],
-	darksalmon:[233,150,122],
-	darkviolet:[148,0,211],
-	fuchsia:[255,0,255],
-	gold:[255,215,0],
-	green:[0,128,0],
-	indigo:[75,0,130],
-	khaki:[240,230,140],
-	lightblue:[173,216,230],
-	lightcyan:[224,255,255],
-	lightgreen:[144,238,144],
-	lightgrey:[211,211,211],
-	lightpink:[255,182,193],
-	lightyellow:[255,255,224],
-	lime:[0,255,0],
-	magenta:[255,0,255],
-	maroon:[128,0,0],
-	navy:[0,0,128],
-	olive:[128,128,0],
-	orange:[255,165,0],
-	pink:[255,192,203],
-	purple:[128,0,128],
-	red:[255,0,0],
-	silver:[192,192,192],
-	white:[255,255,255],
-	yellow:[255,255,0]
-};
-
-/**
- * parses a color to an object for reg, green and blue
- */
-jQuery.fx.parseColor = function(color, notColor)
-{
-	if (jQuery.fx.namedColors[color]) 
-		return {
-			r: jQuery.fx.namedColors[color][0],
-			g: jQuery.fx.namedColors[color][1],
-			b: jQuery.fx.namedColors[color][2]
-		};
-	else if (result = /^rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)$/.exec(color))
-		return {
-			r: parseInt(result[1]),
-			g: parseInt(result[2]),
-			b: parseInt(result[3])
-		};
-	else if (result = /rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)$/.exec(color)) 
-		return {
-			r: parseFloat(result[1])*2.55,
-			g: parseFloat(result[2])*2.55,
-			b: parseFloat(result[3])*2.55
-		};
-	else if (result = /^#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])$/.exec(color))
-		return {
-			r: parseInt("0x"+ result[1] + result[1]),
-			g: parseInt("0x" + result[2] + result[2]),
-			b: parseInt("0x" + result[3] + result[3])
-		};
-	else if (result = /^#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})$/.exec(color))
-		return {
-			r: parseInt("0x" + result[1]),
-			g: parseInt("0x" + result[2]),
-			b: parseInt("0x" + result[3])
-		};
-	else
-		return notColor == true ? false : {r: 255, g: 255, b: 255};
-};
-/**
- * CSS rules that can be animated
- */
-jQuery.fx.cssProps = {
-	borderBottomWidth:1,
-	borderLeftWidth:1,
-	borderRightWidth:1,
-	borderTopWidth:1,
-	bottom:1,
-	fontSize:1,
-	height:1,
-	left:1,
-	letterSpacing:1,
-	lineHeight:1,
-	marginBottom:1,
-	marginLeft:1,
-	marginRight:1,
-	marginTop:1,
-	maxHeight:1,
-	maxWidth:1,
-	minHeight:1,
-	minWidth:1,
-	opacity:1,
-	outlineOffset:1,
-	outlineWidth:1,
-	paddingBottom:1,
-	paddingLeft:1,
-	paddingRight:1,
-	paddingTop:1,
-	right:1,
-	textIndent:1,
-	top:1,
-    width:1,
-	zIndex:1
-};
-/**
- * CSS color rules that can be animated
- */
-jQuery.fx.colorCssProps = {
-	backgroundColor:1,
-	borderBottomColor:1,
-	borderLeftColor:1,
-	borderRightColor:1,
-	borderTopColor:1,
-	color:1,
-	outlineColor:1
-};
-
-jQuery.fx.cssSides = ['Top', 'Right', 'Bottom', 'Left'];
-jQuery.fx.cssSidesEnd = {
-	'borderWidth': ['border', 'Width'],
-	'borderColor': ['border', 'Color'],
-	'margin': ['margin', ''],
-	'padding': ['padding', '']
-};
-
-/**
- * Overwrite animation to use new FX function
- */
-jQuery.fn.extend({
-	
-	animate: function( prop, speed, easing, callback ) {
-		return this.queue(function(){
-			var opt = jQuery.speed(speed, easing, callback);
-			var e = new jQuery.fxe( this, opt, prop );
-			
-		});
-	},
-	pause: function(speed, callback) {
-		return this.queue(function(){
-			var opt = jQuery.speed(speed, callback);
-			var e = new jQuery.pause( this, opt );
-		});
-	},
-	stop : function(step) {
-		return this.each(function(){
-			if (this.animationHandler)
-				jQuery.stopAnim(this, step);
-			
-		});
-	},
-	stopAll : function(step) {
-		return this.each(function(){
-			if (this.animationHandler)
-				jQuery.stopAnim(this, step);
-			if ( this.queue && this.queue['fx'] )
-				this.queue.fx = [];
-		});
-	}
-});
-/**
- * Improved FXC function that aniamtes collection of properties per timer. Accepts inline styles and class names to animate
- */
-jQuery.extend({
-	pause: function(elem, options)
-	{
-		var z = this, values;
-		z.step = function()
-		{
-			if ( jQuery.isFunction( options.complete ) )
-				options.complete.apply( elem );
-		};
-		z.timer=setInterval(function(){z.step();},options.duration);
-		elem.animationHandler = z;
-	},
-	easing :  {
-		linear: function(p, n, firstNum, delta, duration) {
-			return ((-Math.cos(p*Math.PI)/2) + 0.5) * delta + firstNum;
-		}
-	},
-	fxe: function( elem, options, prop ){
-		var z = this, values;
-
-		// The styles
-		var y = elem.style;
-		var oldOverflow = jQuery.css(elem, "overflow");
-		var oldDisplay= jQuery.css(elem, "display");
-		var props = {};
-		z.startTime = (new Date()).getTime();
-		options.easing = options.easing && jQuery.easing[options.easing] ? options.easing : 'linear';
-		
-		z.getValues = function(tp, vp)
-		{
-			if (jQuery.fx.cssProps[tp]) {
-				if (vp == 'show' || vp == 'hide' || vp == 'toggle') {
-					if ( !elem.orig ) elem.orig = {};
-					var r = parseFloat( jQuery.curCSS(elem, tp) );
-					elem.orig[tp] = r && r > -10000 ? r : (parseFloat( jQuery.css(elem,tp) )||0);
-					vp = vp == 'toggle' ? ( oldDisplay == 'none' ? 'show' : 'hide') : vp;
-					options[vp] = true;
-					props[tp] = vp == 'show' ? [0, elem.orig[tp]] : [elem.orig[tp], 0];
-					if (tp != 'opacity')
-						y[tp] = props[tp][0] + (tp != 'zIndex' && tp != 'fontWeight' ? 'px':'');
-					else
-						jQuery.attr(y, "opacity", props[tp][0]);
-				} else {
-					props[tp] = [parseFloat( jQuery.curCSS(elem, tp) ), parseFloat(vp)||0];
-				}
-			} else if (jQuery.fx.colorCssProps[tp])
-				props[tp] = [jQuery.fx.parseColor(jQuery.curCSS(elem, tp)), jQuery.fx.parseColor(vp)];
-			else if(/^margin$|padding$|border$|borderColor$|borderWidth$/i.test(tp)) {
-				var m = vp.replace(/\s+/g, ' ').replace(/rgb\s*\(\s*/g,'rgb(').replace(/\s*,\s*/g,',').replace(/\s*\)/g,')').match(/([^\s]+)/g);
-				switch(tp){
-					case 'margin':
-					case 'padding':
-					case 'borderWidth':
-					case 'borderColor':
-						m[3] = m[3]||m[1]||m[0];
-						m[2] = m[2]||m[0];
-						m[1] = m[1]||m[0];
-						for(var i = 0; i < jQuery.fx.cssSides.length; i++) {
-							var nmp = jQuery.fx.cssSidesEnd[tp][0] + jQuery.fx.cssSides[i] + jQuery.fx.cssSidesEnd[tp][1];
-							props[nmp] = tp == 'borderColor' ?
-								[jQuery.fx.parseColor(jQuery.curCSS(elem, nmp)), jQuery.fx.parseColor(m[i])]
-								: [parseFloat( jQuery.curCSS(elem, nmp) ), parseFloat(m[i])];
-						}
-						break;
-					case 'border':
-						for(var i = 0; i< m.length; i++) {
-							var floatVal = parseFloat(m[i]);
-							var sideEnd = !isNaN(floatVal) ? 'Width' : (!/transparent|none|hidden|dotted|dashed|solid|double|groove|ridge|inset|outset/i.test(m[i]) ? 'Color' : false);
-							if (sideEnd) {
-								for(var j = 0; j < jQuery.fx.cssSides.length; j++) {
-									nmp = 'border' + jQuery.fx.cssSides[j] + sideEnd;
-									props[nmp] = sideEnd == 'Color' ?
-								[jQuery.fx.parseColor(jQuery.curCSS(elem, nmp)), jQuery.fx.parseColor(m[i])]
-								: [parseFloat( jQuery.curCSS(elem, nmp) ), floatVal];
-								}
-							} else {
-								y['borderStyle'] = m[i];
-							}
-						}
-						break;
-				}
-			} else {
-				y[tp] = vp;
-			}
-			return false;
-		};
-		
-		for(p in prop) {
-			if (p == 'style') {
-				var newStyles = jQuery.parseStyle(prop[p]);
-				for (np in newStyles) {
-					this.getValues(np, newStyles[np]);
-				}
-			} else if (p == 'className') {
-				if (document.styleSheets)
-					for (var i=0; i<document.styleSheets.length; i++){
-						var cssRules = document.styleSheets[i].cssRules||document.styleSheets[i].rules||null;
-						if (cssRules) {
-							for (var j=0; j<cssRules.length; j++) {
-								if(cssRules[j].selectorText == '.' + prop[p]) {
-									var rule = new RegExp('\.' + prop[p] + ' {');
-									var styles = cssRules[j].style.cssText;
-									var newStyles = jQuery.parseStyle(styles.replace(rule, '').replace(/}/g, ''));
-									for (np in newStyles) {
-										this.getValues(np, newStyles[np]);
-									}
-								}
-							}
-						}
-					}
-			} else {
-				this.getValues(p, prop[p]);
-			}
-		}
-		y.display = oldDisplay == 'none' ? 'block' : oldDisplay;
-		y.overflow = 'hidden';
-		
-		/*if (options.show)
-			y.display = "";*/
-		
-		z.step = function(){
-			var t = (new Date()).getTime();
-			if (t > options.duration + z.startTime) {
-				clearInterval(z.timer);
-				z.timer = null;
-				for (p in props) {
-					if ( p == "opacity" )
-						jQuery.attr(y, "opacity", props[p][1]);
-					else if (typeof props[p][1] == 'object')
-						y[p] = 'rgb(' + props[p][1].r +',' + props[p][1].g +',' + props[p][1].b +')';
-					else 
-						y[p] = props[p][1] + (p != 'zIndex' && p != 'fontWeight' ? 'px':'');
-				}
-				if ( options.hide || options.show )
-					for ( var p in elem.orig )
-						if (p == "opacity")
-							jQuery.attr(y, p, elem.orig[p]);
-						else
-							y[p] = "";
-				y.display = options.hide ? 'none' : (oldDisplay !='none' ? oldDisplay : 'block');
-				y.overflow = oldOverflow;
-				elem.animationHandler = null;
-				if ( jQuery.isFunction( options.complete ) )
-					options.complete.apply( elem );
-			} else {
-				var n = t - this.startTime;
-				var pr = n / options.duration;
-				for (p in props) {
-					if (typeof props[p][1] == 'object') {
-						y[p] = 'rgb('
-						+ parseInt(jQuery.easing[options.easing](pr, n,  props[p][0].r, (props[p][1].r-props[p][0].r), options.duration))
-						+ ','
-						+ parseInt(jQuery.easing[options.easing](pr, n,  props[p][0].g, (props[p][1].g-props[p][0].g), options.duration))
-						+ ','
-						+ parseInt(jQuery.easing[options.easing](pr, n,  props[p][0].b, (props[p][1].b-props[p][0].b), options.duration))
-						+')';
-					} else {
-						var pValue = jQuery.easing[options.easing](pr, n,  props[p][0], (props[p][1]-props[p][0]), options.duration);
-						if ( p == "opacity" )
-							jQuery.attr(y, "opacity", pValue);
-						else 
-							y[p] = pValue + (p != 'zIndex' && p != 'fontWeight' ? 'px':'');
-					}
-				}
-
-			}
-		};
-	z.timer=setInterval(function(){z.step();},13);
-	elem.animationHandler = z;
-	},
-	stopAnim: function(elem, step)
-	{
-		if (step)
-			elem.animationHandler.startTime -= 100000000;
-		else {
-			window.clearInterval(elem.animationHandler.timer);
-			elem.animationHandler = null;
-			jQuery.dequeue(elem, "fx");
-		}
-	}
-}
-);
-
-jQuery.parseStyle = function(styles) {
-	var newStyles = {};
-	if (typeof styles == 'string') {
-		styles = styles.toLowerCase().split(';');
-		for(var i=0; i< styles.length; i++){
-			rule = styles[i].split(':');
-			if (rule.length == 2) {
-				newStyles[jQuery.trim(rule[0].replace(/\-(\w)/g,function(m,c){return c.toUpperCase();}))] = jQuery.trim(rule[1]);
-			}
-		}
-	}
-	return newStyles;
-};
\ No newline at end of file