--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/web/res/metadataplayer/test/interface 1.2/source/ifxopenclose.js Wed Apr 06 16:26:16 2011 +0200
@@ -0,0 +1,227 @@
+/**
+ * Interface Elements for jQuery
+ * FX - open/close/switch
+ *
+ * http://interface.eyecon.ro
+ *
+ * Copyright (c) 2006 Stefan Petre
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
+ * and GPL (GPL-LICENSE.txt) licenses.
+ *
+ *
+ */
+
+/**
+ * Applies an open/close animation to element
+ */
+jQuery.fn.extend(
+ {
+ /**
+ * @name CloseVertically
+ * @description closes the element vertically
+ * @param Mixed speed animation speed, integer for miliseconds, string ['slow' | 'normal' | 'fast']
+ * @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
+ */
+ CloseVertically : function (speed, callback, easing) {
+ return this.queue('interfaceFX', function(){
+ new jQuery.fx.OpenClose(this, speed, callback, 'vertically', 'close', easing);
+ });
+ },
+
+ /**
+ * @name CloseHorizontally
+ * @description closes the element horizontally
+ * @param Mixed speed animation speed, integer for miliseconds, string ['slow' | 'normal' | 'fast']
+ * @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
+ */
+ CloseHorizontally : function (speed, callback, easing) {
+ return this.queue('interfaceFX', function(){
+ new jQuery.fx.OpenClose(this, speed, callback, 'horizontally', 'close', easing);
+ });
+ },
+
+ /**
+ * @name SwitchHorizontally
+ * @description opens/closes the element horizontally
+ * @param Mixed speed animation speed, integer for miliseconds, string ['slow' | 'normal' | 'fast']
+ * @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
+ */
+ SwitchHorizontally : function (speed, callback, easing)
+ {
+ return this.queue('interfaceFX', function(){
+ if (jQuery.css(this, 'display') == 'none') {
+ new jQuery.fx.OpenClose(this, speed, callback, 'horizontally', 'open', easing);
+ } else {
+ new jQuery.fx.OpenClose(this, speed, callback, 'horizontally', 'close', easing);
+ }
+ });
+ },
+
+ /**
+ * @name SwitchVertically
+ * @description opens/closes the element vertically
+ * @param Mixed speed animation speed, integer for miliseconds, string ['slow' | 'normal' | 'fast']
+ * @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
+ */
+ SwitchVertically : function (speed, callback, easing)
+ {
+ return this.queue('interfaceFX', function(){
+ if (jQuery.css(this, 'display') == 'none') {
+ new jQuery.fx.OpenClose(this, speed, callback, 'vertically', 'open', easing);
+ } else {
+ new jQuery.fx.OpenClose(this, speed, callback, 'vertically', 'close', easing);
+ }
+ });
+ },
+
+ /**
+ * @name OpenVertically
+ * @description opens the element vertically
+ * @param Mixed speed animation speed, integer for miliseconds, string ['slow' | 'normal' | 'fast']
+ * @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
+ */
+ OpenVertically : function (speed, callback, easing) {
+ return this.queue('interfaceFX', function(){
+ new jQuery.fx.OpenClose(this, speed, callback, 'vertically', 'open', easing);
+ });
+ },
+
+ /**
+ * @name OpenHorizontally
+ * @description opens the element horizontally
+ * @param Mixed speed animation speed, integer for miliseconds, string ['slow' | 'normal' | 'fast']
+ * @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
+ */
+ OpenHorizontally : function (speed, callback, easing) {
+ return this.queue('interfaceFX', function(){
+ new jQuery.fx.OpenClose(this, speed, callback, 'horizontally', 'open', easing);
+ });
+ }
+ }
+);
+
+jQuery.fx.OpenClose = function (e, speed, callback, direction, type, easing)
+{
+ if (!jQuery.fxCheckTag(e)) {
+ jQuery.dequeue(e, 'interfaceFX');
+ return false;
+ }
+ var z = this;
+ var restoreStyle = false;
+ z.el = jQuery(e);
+ z.easing = typeof callback == 'string' ? callback : easing||null;
+ z.callback = typeof callback == 'function' ? callback : null;
+ z.type = type;
+ z.speed = speed;
+ z.oldP = jQuery.iUtil.getSize(e);
+ z.oldStyle = {};
+ z.oldStyle.position = z.el.css('position');
+ z.oldStyle.display = z.el.css('display');
+ if (z.oldStyle.display == 'none') {
+ oldVisibility = z.el.css('visibility');
+ z.el.show();
+ restoreStyle = true;
+ }
+ z.oldStyle.top = z.el.css('top');
+ z.oldStyle.left = z.el.css('left');
+ if (restoreStyle) {
+ z.el.hide();
+ z.el.css('visibility', oldVisibility);
+ }
+ z.oldStyle.width = z.oldP.w + 'px';
+ z.oldStyle.height = z.oldP.h + 'px';
+ z.oldStyle.overflow = z.el.css('overflow');
+ z.oldP.top = parseInt(z.oldStyle.top)||0;
+ z.oldP.left = parseInt(z.oldStyle.left)||0;
+ //z.el.show();
+
+ if (z.oldStyle.position != 'relative' && z.oldStyle.position != 'absolute') {
+ z.el.css('position', 'relative');
+ }
+ z.el.css('overflow', 'hidden')
+ .css('height', type == 'open' && direction == 'vertically' ? 1 : z.oldP.h + 'px')
+ .css('width', type == 'open' && direction == 'horizontally' ? 1 : z.oldP.w + 'px');
+
+ z.complete = function()
+ {
+ z.el.css(z.oldStyle);
+ if (z.type == 'close')
+ z.el.hide();
+ else
+ z.el.show();
+ jQuery.dequeue(z.el.get(0), 'interfaceFX');
+ };
+
+ switch (direction) {
+ case 'vertically':
+ z.eh = new jQuery.fx(
+ z.el.get(0),
+ jQuery.speed(speed-15, z.easing, callback),
+ 'height'
+ );
+ z.et = new jQuery.fx(
+ z.el.get(0),
+ jQuery.speed(
+ z.speed,
+ z.easing,
+ z.complete
+ ),
+ 'top'
+ );
+ if (z.type == 'close') {
+ z.eh.custom(z.oldP.h,0);
+ z.et.custom(z.oldP.top, z.oldP.top + z.oldP.h/2);
+ } else {
+ z.eh.custom(0, z.oldP.h);
+ z.et.custom(z.oldP.top + z.oldP.h/2, z.oldP.top);
+ }
+ break;
+ case 'horizontally':
+ z.eh = new jQuery.fx(
+ z.el.get(0),
+ jQuery.speed(speed-15, z.easing, callback),
+ 'width'
+ );
+ z.et = new jQuery.fx(
+ z.el.get(0),
+ jQuery.speed(
+ z.speed,
+ z.easing,
+ z.complete
+ ),
+ 'left'
+ );
+ if (z.type == 'close') {
+ z.eh.custom(z.oldP.w,0);
+ z.et.custom(z.oldP.left, z.oldP.left + z.oldP.w/2);
+ } else {
+ z.eh.custom(0, z.oldP.w);
+ z.et.custom(z.oldP.left + z.oldP.w/2, z.oldP.left);
+ }
+ break;
+ }
+};
\ No newline at end of file