web/res/metadataplayer/test/interface 1.2/source/ifxhighlight.js
changeset 99 6cb4d10f0b8b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/res/metadataplayer/test/interface 1.2/source/ifxhighlight.js	Wed Apr 06 16:26:16 2011 +0200
@@ -0,0 +1,64 @@
+/**
+ * Interface Elements for jQuery
+ * FX - Highlight
+ * 
+ * http://interface.eyecon.ro
+ * 
+ * Copyright (c) 2006 Stefan Petre
+ * Dual licensed under the MIT (MIT-LICENSE.txt) 
+ * and GPL (GPL-LICENSE.txt) licenses.
+ *   
+ *
+ */
+
+
+/**
+ * @name Highlight
+ * @description Animates the backgroudn color to create a highlight animation
+ * @param Mixed speed animation speed, integer for miliseconds, string ['slow' | 'normal' | 'fast']
+ * @param String color color to highlight from
+ * @param Function callback (optional) A function to be executed whenever the animation completes.
+ * @param String easing (optional) The name of the easing effect that you want to use.
+ * @type jQuery
+ * @cat Plugins/Interface
+ * @author Stefan Petre
+ */
+jQuery.fn.Highlight = function(speed, color, callback, easing) {
+	return this.queue(
+		'interfaceColorFX',
+		function()
+		{
+			this.oldStyleAttr = jQuery(this).attr("style") || '';
+			easing = typeof callback == 'string' ? callback : easing||null;
+			callback = typeof callback == 'function' ? callback : null;
+			var oldColor = jQuery(this).css('backgroundColor');
+			var parentEl = this.parentNode;
+			while(oldColor == 'transparent' && parentEl) {
+				oldColor = jQuery(parentEl).css('backgroundColor');
+				parentEl = parentEl.parentNode;
+			}
+			jQuery(this).css('backgroundColor', color);
+			
+			
+			/* In IE, style is a object.. */
+			if(typeof this.oldStyleAttr == 'object') this.oldStyleAttr = this.oldStyleAttr["cssText"];
+			
+			jQuery(this).animate(
+				{'backgroundColor':oldColor},
+				speed,
+				easing,
+				function() {
+					jQuery.dequeue(this, 'interfaceColorFX');
+					if(typeof jQuery(this).attr("style") == 'object') {
+						jQuery(this).attr("style")["cssText"] = "";
+						jQuery(this).attr("style")["cssText"] = this.oldStyleAttr;
+					} else {
+						jQuery(this).attr("style", this.oldStyleAttr);	
+					}
+					if (callback)
+						callback.apply(this);
+				}
+		  	);
+		}
+	);
+};
\ No newline at end of file