/* Spry.Effect.js - Revision: Spry Preview Release 1.4 */
// (version 0.23)
//
// Copyright (c) 2006. Adobe Systems Incorporated.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are met:
//
//   * Redistributions of source code must retain the above copyright notice,
//     this list of conditions and the following disclaimer.
//   * Redistributions in binary form must reproduce the above copyright notice,
//     this list of conditions and the following disclaimer in the documentation
//     and/or other materials provided with the distribution.
//   * Neither the name of Adobe Systems Incorporated nor the names of its
//     contributors may be used to endorse or promote products derived from this
//     software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
// POSSIBILITY OF SUCH DAMAGE.
var Spry;if(!Spry){Spry={}}Spry.forwards=1;Spry.backwards=2;Spry.linearTransition=1;Spry.sinusoidalTransition=2;if(!Spry.Effect){Spry.Effect={}}Spry.Effect.Registry=function(){this.elements=new Array();_AnimatedElement=function(a){this.element=a;this.currentEffect=-1;this.effectArray=new Array()};this.AnimatedElement=_AnimatedElement};Spry.Effect.Registry.prototype.getRegisteredEffect=function(d,g){var c=this.getIndexOfElement(d);if(c==-1){this.elements[this.elements.length]=new this.AnimatedElement(d);c=this.elements.length-1}var b=-1;for(var a=0;a<this.elements[c].effectArray.length;a++){if(this.elements[c].effectArray[a]){if(this.effectsAreTheSame(this.elements[c].effectArray[a],g)){b=a;if(this.elements[c].effectArray[a].isRunning==true){this.elements[c].effectArray[a].cancel()}this.elements[c].currentEffect=a;if(this.elements[c].effectArray[a].options&&(this.elements[c].effectArray[a].options.toggle!=null)){if(this.elements[c].effectArray[a].options.toggle==true){this.elements[c].effectArray[a].doToggle()}}else{this.elements[c].effectArray[a]=g}break}}}if(b==-1){var e=this.elements[c].effectArray.length;this.elements[c].effectArray[e]=g;this.elements[c].currentEffect=e}var f=this.elements[c].currentEffect;return this.elements[c].effectArray[f]};Spry.Effect.Registry.prototype.getIndexOfElement=function(c){var b=-1;for(var a=0;a<this.elements.length;a++){if(this.elements[a]){if(this.elements[a].element==c){b=a}}}return b};Spry.Effect.Registry.prototype.effectsAreTheSame=function(b,c){if(b.name!=c.name){return false}if(b.effectsArray){if(!c.effectsArray||b.effectsArray.length!=c.effectsArray.length){return false}for(var a=0;a<b.effectsArray.length;a++){if(!Spry.Effect.Utils.optionsAreIdentical(b.effectsArray[a].effect.options,c.effectsArray[a].effect.options)){return false}}}else{if(c.effectsArray||!Spry.Effect.Utils.optionsAreIdentical(b.options,c.options)){return false}}return true};var SpryRegistry=new Spry.Effect.Registry;if(!Spry.Effect.Utils){Spry.Effect.Utils={}}Spry.Effect.Utils.showError=function(a){alert("Spry.Effect ERR: "+a)};Spry.Effect.Utils.Position=function(){this.x=0;this.y=0;this.units="px"};Spry.Effect.Utils.Rectangle=function(){this.width=0;this.height=0;this.units="px"};Spry.Effect.Utils.PositionedRectangle=function(){this.position=new Spry.Effect.Utils.Position;this.rectangle=new Spry.Effect.Utils.Rectangle};Spry.Effect.Utils.intToHex=function(b){var a=b.toString(16);if(a.length==1){a="0"+a}return a};Spry.Effect.Utils.hexToInt=function(a){return parseInt(a,16)};Spry.Effect.Utils.rgb=function(a,b,e){var c=Spry.Effect.Utils.intToHex(a);var d=Spry.Effect.Utils.intToHex(b);var f=Spry.Effect.Utils.intToHex(e);compositeColorHex=c.concat(d,f);compositeColorHex="#"+compositeColorHex;return compositeColorHex};Spry.Effect.Utils.camelize=function(b){var d=b.split("-");var f=true;var c="";for(var e=0;e<d.length;e++){if(d[e].length>0){if(f){c=d[e];f=false}else{var a=d[e];c+=a.charAt(0).toUpperCase()+a.substring(1)}}}return c};Spry.Effect.Utils.isPercentValue=function(a){var b=false;try{if(a.lastIndexOf("%")>0){b=true}}catch(c){}return b};Spry.Effect.Utils.getPercentValue=function(a){var b=0;try{b=Number(a.substring(0,a.lastIndexOf("%")))}catch(c){Spry.Effect.Utils.showError("Spry.Effect.Utils.getPercentValue: "+c)}return b};Spry.Effect.Utils.getPixelValue=function(a){var b=0;try{b=Number(a.substring(0,a.lastIndexOf("px")))}catch(c){}return b};Spry.Effect.Utils.getFirstChildElement=function(b){if(b){var a=b.firstChild;while(a){if(a.nodeType==1){return a}a=a.nextSibling}}return null};Spry.Effect.Utils.fetchChildImages=function(a,f){if(!a||a.nodeType!=1||!f){return}if(a.hasChildNodes()){var d=a.getElementsByTagName("img");var b=d.length;for(var e=0;e<b;e++){var g=d[e];var c=Spry.Effect.getDimensions(g);f.push([g,c.width,c.height])}}};Spry.Effect.Utils.optionsAreIdentical=function(c,e){if(c==null&&e==null){return true}if(c!=null&&e!=null){var a=0;var f=0;for(var d in c){a++}for(var b in e){f++}if(a!=f){return false}for(var g in c){if(c[g]===undefined){if(e[g]!==undefined){return false}}else{if((e[g]===undefined)||(c[g]!=e[g])){return false}}}return true}return false};Spry.Effect.getElement=function(a){var b=null;if(a&&typeof a=="string"){b=document.getElementById(a)}else{b=a}if(b==null){Spry.Effect.Utils.showError('Element "'+a+'" not found.')}return b};Spry.Effect.getStyleProp=function(c,f){var a;try{a=c.style[Spry.Effect.Utils.camelize(f)];if(!a){if(document.defaultView&&document.defaultView.getComputedStyle){var b=document.defaultView.getComputedStyle(c,null);a=b?b.getPropertyValue(f):null}else{if(c.currentStyle){a=c.currentStyle[Spry.Effect.Utils.camelize(f)]}}}}catch(d){Spry.Effect.Utils.showError("Spry.Effect.getStyleProp: "+d)}return a=="auto"?null:a};Spry.Effect.getStylePropRegardlessOfDisplayState=function(e,g,b){var f=b?b:e;var c=Spry.Effect.getStyleProp(f,"display");var d=Spry.Effect.getStyleProp(f,"visibility");if(c=="none"){Spry.Effect.setStyleProp(f,"visibility","hidden");Spry.Effect.setStyleProp(f,"display","block");if(window.opera){f.focus()}}var a=Spry.Effect.getStyleProp(e,g);if(c=="none"){Spry.Effect.setStyleProp(f,"display","none");Spry.Effect.setStyleProp(f,"visibility",d)}return a};Spry.Effect.setStyleProp=function(b,d,a){try{b.style[Spry.Effect.Utils.camelize(d)]=a}catch(c){Spry.Effect.Utils.showError("Spry.Effect.setStyleProp: "+c)}return null};Spry.Effect.makePositioned=function(b){var a=Spry.Effect.getStyleProp(b,"position");if(!a||a=="static"){b.style.position="relative";if(window.opera){b.style.top=0;b.style.left=0}}};Spry.Effect.isInvisible=function(c){var a=Spry.Effect.getStyleProp(c,"display");if(a&&a.toLowerCase()=="none"){return true}var b=Spry.Effect.getStyleProp(c,"visibility");if(b&&b.toLowerCase()=="hidden"){return true}return false};Spry.Effect.enforceVisible=function(c){var a=Spry.Effect.getStyleProp(c,"display");if(a&&a.toLowerCase()=="none"){Spry.Effect.setStyleProp(c,"display","block")}var b=Spry.Effect.getStyleProp(c,"visibility");if(b&&b.toLowerCase()=="hidden"){Spry.Effect.setStyleProp(c,"visibility","visible")}};Spry.Effect.makeClipping=function(c){var a=Spry.Effect.getStyleProp(c,"overflow");if(a!="hidden"&&a!="scroll"){var b=0;var d=/MSIE 7.0/.test(navigator.userAgent)&&/Windows NT/.test(navigator.userAgent);if(d){b=Spry.Effect.getDimensionsRegardlessOfDisplayState(c).height}Spry.Effect.setStyleProp(c,"overflow","hidden");if(d){Spry.Effect.setStyleProp(c,"height",b+"px")}}};Spry.Effect.cleanWhitespace=function(c){var a=c.childNodes.length;for(var b=a-1;b>=0;b--){var f=c.childNodes[b];if(f.nodeType==3&&!/\S/.test(f.nodeValue)){try{c.removeChild(f)}catch(d){Spry.Effect.Utils.showError("Spry.Effect.cleanWhitespace: "+d)}}}};Spry.Effect.getComputedStyle=function(b){var a=/MSIE/.test(navigator.userAgent)?b.currentStyle:document.defaultView.getComputedStyle(b,null);return a};Spry.Effect.getDimensions=function(d){var c=new Spry.Effect.Utils.Rectangle;var a=null;if(d.style.width&&/px/i.test(d.style.width)){c.width=parseInt(d.style.width)}else{a=Spry.Effect.getComputedStyle(d);var b=a&&a.width&&/px/i.test(a.width);if(b){c.width=parseInt(a.width)}if(!b||c.width==0){c.width=d.offsetWidth}}if(d.style.height&&/px/i.test(d.style.height)){c.height=parseInt(d.style.height)}else{if(!a){a=Spry.Effect.getComputedStyle(d)}var b=a&&a.height&&/px/i.test(a.height);if(b){c.height=parseInt(a.height)}if(!b||c.height==0){c.height=d.offsetHeight}}return c};Spry.Effect.getDimensionsRegardlessOfDisplayState=function(d,a){var e=a?a:d;var f=Spry.Effect.getStyleProp(e,"display");var c=Spry.Effect.getStyleProp(e,"visibility");if(f=="none"){Spry.Effect.setStyleProp(e,"visibility","hidden");Spry.Effect.setStyleProp(e,"display","block");if(window.opera){e.focus()}}var b=Spry.Effect.getDimensions(d);if(f=="none"){Spry.Effect.setStyleProp(e,"display","none");Spry.Effect.setStyleProp(e,"visibility",c)}return b};Spry.Effect.getOpacity=function(b){var a=Spry.Effect.getStyleProp(b,"opacity");if(a==undefined||a==null){a=1}return a};Spry.Effect.getColor=function(b){var a=Spry.Effect.getStyleProp(ele,"background-color");return a};Spry.Effect.getPosition=function(c){var d=new Spry.Effect.Utils.Position;var a=null;if(c.style.left&&/px/i.test(c.style.left)){d.x=parseInt(c.style.left)}else{a=Spry.Effect.getComputedStyle(c);var b=a&&a.left&&/px/i.test(a.left);if(b){d.x=parseInt(a.left)}if(!b||d.x==0){d.x=c.offsetLeft}}if(c.style.top&&/px/i.test(c.style.top)){d.y=parseInt(c.style.top)}else{if(!a){a=Spry.Effect.getComputedStyle(c)}var b=a&&a.top&&/px/i.test(a.top);if(b){d.y=parseInt(a.top)}if(!b||d.y==0){d.y=c.offsetTop}}return d};Spry.Effect.getOffsetPosition=Spry.Effect.getPosition;Spry.Effect.Animator=function(a){this.name="Animator";this.element=null;this.timer=null;this.direction=Spry.forwards;this.startMilliseconds=0;this.repeat="none";this.isRunning=false;this.options={duration:500,toggle:false,transition:Spry.linearTransition,interval:33};this.setOptions(a)};Spry.Effect.Animator.prototype.setOptions=function(a){if(!a){return}for(var b in a){this.options[b]=a[b]}};Spry.Effect.Animator.prototype.start=function(a){if(arguments.length==0){a=false}var b=this;if(this.options.setup){try{this.options.setup(this.element,this)}catch(c){Spry.Effect.Utils.showError("Spry.Effect.Animator.prototype.start: setup callback: "+c)}}this.prepareStart();var d=new Date();this.startMilliseconds=d.getTime();if(a==false){this.timer=setInterval(function(){b.drawEffect()},this.options.interval)}this.isRunning=true};Spry.Effect.Animator.prototype.stop=function(){if(this.timer){clearInterval(this.timer);this.timer=null}this.startMilliseconds=0;if(this.options.finish){try{this.options.finish(this.element,this)}catch(a){Spry.Effect.Utils.showError("Spry.Effect.Animator.prototype.stop: finish callback: "+a)}}this.isRunning=false};Spry.Effect.Animator.prototype.cancel=function(){if(this.timer){clearInterval(this.timer);this.timer=null}this.isRunning=false};Spry.Effect.Animator.prototype.drawEffect=function(){var a=true;var b=this.getElapsedMilliseconds()/this.options.duration;if(this.getElapsedMilliseconds()>this.options.duration){b=1}else{if(this.options.transition==Spry.sinusoidalTransition){b=(-Math.cos(b*Math.PI)/2)+0.5}else{if(this.options.transition==Spry.linearTransition){}else{Spry.Effect.Utils.showError("unknown transition")}}}this.animate(b);if(this.getElapsedMilliseconds()>this.options.duration){this.stop();a=false}return a};Spry.Effect.Animator.prototype.getElapsedMilliseconds=function(){if(this.startMilliseconds>0){var a=new Date();return(a.getTime()-this.startMilliseconds)}else{return 0}};Spry.Effect.Animator.prototype.doToggle=function(){if(this.options.toggle==true){if(this.direction==Spry.forwards){this.direction=Spry.backwards}else{if(this.direction==Spry.backwards){this.direction=Spry.forwards}}}};Spry.Effect.Animator.prototype.prepareStart=function(){};Spry.Effect.Animator.prototype.animate=function(a){};Spry.Effect.Move=function(c,a,b,d){this.dynamicFromPos=false;if(arguments.length==3){d=b;b=a;a=Spry.Effect.getPosition(c);this.dynamicFromPos=true}Spry.Effect.Animator.call(this,d);this.name="Move";this.element=Spry.Effect.getElement(c);if(a.units!=b.units){Spry.Effect.Utils.showError("Spry.Effect.Move: Conflicting units ("+a.units+", "+b.units+")")}this.units=a.units;this.startX=a.x;this.stopX=b.x;this.startY=a.y;this.stopY=b.y;this.rangeMoveX=this.startX-this.stopX;this.rangeMoveY=this.startY-this.stopY};Spry.Effect.Move.prototype=new Spry.Effect.Animator();Spry.Effect.Move.prototype.constructor=Spry.Effect.Move;Spry.Effect.Move.prototype.animate=function(c){var b=0;var a=0;if(this.direction==Spry.forwards){b=this.startX-(this.rangeMoveX*c);a=this.startY-(this.rangeMoveY*c)}else{if(this.direction==Spry.backwards){b=this.rangeMoveX*c+this.stopX;a=this.rangeMoveY*c+this.stopY}}this.element.style.left=b+this.units;this.element.style.top=a+this.units};Spry.Effect.Move.prototype.prepareStart=function(){if(this.dynamicFromPos==true){var a=Spry.Effect.getPosition(this.element);this.startX=a.x;this.startY=a.y;this.rangeMoveX=this.startX-this.stopX;this.rangeMoveY=this.startY-this.stopY}};Spry.Effect.MoveSlide=function(d,b,c,a,e){this.dynamicFromPos=false;if(arguments.length==4){e=a;a=c;c=b;b=Spry.Effect.getPosition(d);this.dynamicFromPos=true}Spry.Effect.Animator.call(this,e);this.name="MoveSlide";this.element=Spry.Effect.getElement(d);this.horizontal=a;this.firstChildElement=Spry.Effect.Utils.getFirstChildElement(d);this.overflow=Spry.Effect.getStyleProp(this.element,"overflow");this.originalChildRect=Spry.Effect.getDimensionsRegardlessOfDisplayState(this.firstChildElement,this.element);if(b.units!=c.units){Spry.Effect.Utils.showError("Spry.Effect.MoveSlide: Conflicting units ("+b.units+", "+c.units+")")}this.units=b.units;var f=Spry.Effect.getDimensionsRegardlessOfDisplayState(d);this.startHeight=f.height;this.startX=Number(b.x);this.stopX=Number(c.x);this.startY=Number(b.y);this.stopY=Number(c.y);this.rangeMoveX=this.startX-this.stopX;this.rangeMoveY=this.startY-this.stopY;this.enforceVisible=Spry.Effect.isInvisible(this.element)};Spry.Effect.MoveSlide.prototype=new Spry.Effect.Animator();Spry.Effect.MoveSlide.prototype.constructor=Spry.Effect.MoveSlide;Spry.Effect.MoveSlide.prototype.animate=function(f){if(this.horizontal){var a=(this.direction==Spry.forwards)?this.startX:this.stopX;var g=(this.direction==Spry.forwards)?this.stopX:this.startX;var b=a+f*(g-a);if(b<0){b=0}if(this.overflow!="scroll"||b>this.originalChildRect.width){this.firstChildElement.style.left=b-this.originalChildRect.width+this.units}this.element.style.width=b+this.units}else{var d=(this.direction==Spry.forwards)?this.startY:this.stopY;var e=(this.direction==Spry.forwards)?this.stopY:this.startY;var c=d+f*(e-d);if(c<0){c=0}if(this.overflow!="scroll"||c>this.originalChildRect.height){this.firstChildElement.style.top=c-this.originalChildRect.height+this.units}this.element.style.height=c+this.units}if(this.enforceVisible){Spry.Effect.enforceVisible(this.element);this.enforceVisible=false}};Spry.Effect.MoveSlide.prototype.prepareStart=function(){if(this.dynamicFromPos==true){var a=Spry.Effect.getPosition(this.element);this.startX=a.x;this.startY=a.y;this.rangeMoveX=this.startX-this.stopX;this.rangeMoveY=this.startY-this.stopY}};Spry.Effect.Size=function(c,e,b,a){this.dynamicFromRect=false;if(arguments.length==3){a=b;b=e;e=Spry.Effect.getDimensionsRegardlessOfDisplayState(c);this.dynamicFromRect=true}Spry.Effect.Animator.call(this,a);this.name="Size";this.element=Spry.Effect.getElement(c);if(e.units!=b.units){Spry.Effect.Utils.showError("Spry.Effect.Size: Conflicting units ("+e.units+", "+b.units+")")}this.units=e.units;var g=Spry.Effect.getDimensionsRegardlessOfDisplayState(c);this.originalWidth=g.width;this.startWidth=e.width;this.startHeight=e.height;this.stopWidth=b.width;this.stopHeight=b.height;this.childImages=new Array();if(this.options.scaleContent){Spry.Effect.Utils.fetchChildImages(c,this.childImages)}this.fontFactor=1;if(this.element.style&&this.element.style.fontSize){if(/em\s*$/.test(this.element.style.fontSize)){this.fontFactor=parseFloat(this.element.style.fontSize)}}if(Spry.Effect.Utils.isPercentValue(this.startWidth)){var h=Spry.Effect.Utils.getPercentValue(this.startWidth);this.startWidth=g.width*(h/100)}if(Spry.Effect.Utils.isPercentValue(this.startHeight)){var f=Spry.Effect.Utils.getPercentValue(this.startHeight);this.startHeight=g.height*(f/100)}if(Spry.Effect.Utils.isPercentValue(this.stopWidth)){var d=Spry.Effect.Utils.getPercentValue(this.stopWidth);var g=Spry.Effect.getDimensionsRegardlessOfDisplayState(c);this.stopWidth=g.width*(d/100)}if(Spry.Effect.Utils.isPercentValue(this.stopHeight)){var i=Spry.Effect.Utils.getPercentValue(this.stopHeight);var g=Spry.Effect.getDimensionsRegardlessOfDisplayState(c);this.stopHeight=g.height*(i/100)}this.widthRange=this.startWidth-this.stopWidth;this.heightRange=this.startHeight-this.stopHeight;this.enforceVisible=Spry.Effect.isInvisible(this.element)};Spry.Effect.Size.prototype=new Spry.Effect.Animator();Spry.Effect.Size.prototype.constructor=Spry.Effect.Size;Spry.Effect.Size.prototype.animate=function(e){var b=0;var a=0;var c=0;if(this.direction==Spry.forwards){b=this.startWidth-(this.widthRange*e);a=this.startHeight-(this.heightRange*e);c=this.fontFactor*(this.startWidth+e*(this.stopWidth-this.startWidth))/this.originalWidth}else{if(this.direction==Spry.backwards){b=this.widthRange*e+this.stopWidth;a=this.heightRange*e+this.stopHeight;c=this.fontFactor*(this.stopWidth+e*(this.startWidth-this.stopWidth))/this.originalWidth}}if(this.options.scaleContent==true){this.element.style.fontSize=c+"em"}this.element.style.width=b+this.units;this.element.style.height=a+this.units;if(this.options.scaleContent){var f=(this.direction==Spry.forwards)?(this.startWidth+e*(this.stopWidth-this.startWidth))/this.originalWidth:(this.stopWidth+e*(this.startWidth-this.stopWidth))/this.originalWidth;for(var d=0;d<this.childImages.length;d++){this.childImages[d][0].style.width=f*this.childImages[d][1]+this.units;this.childImages[d][0].style.height=f*this.childImages[d][2]+this.units}}if(this.enforceVisible){Spry.Effect.enforceVisible(this.element);this.enforceVisible=false}};Spry.Effect.Size.prototype.prepareStart=function(){if(this.dynamicFromRect==true){var a=Spry.Effect.getDimensions(element);this.startWidth=a.width;this.startHeight=a.height;this.widthRange=this.startWidth-this.stopWidth;this.heightRange=this.startHeight-this.stopHeight}};Spry.Effect.Opacity=function(b,a,d,c){this.dynamicStartOpacity=false;if(arguments.length==3){c=d;d=a;a=Spry.Effect.getOpacity(b);this.dynamicStartOpacity=true}Spry.Effect.Animator.call(this,c);this.name="Opacity";this.element=Spry.Effect.getElement(b);if(/MSIE/.test(navigator.userAgent)&&(!this.element.hasLayout)){Spry.Effect.setStyleProp(this.element,"zoom","1")}this.startOpacity=a;this.stopOpacity=d;this.opacityRange=this.startOpacity-this.stopOpacity;this.enforceVisible=Spry.Effect.isInvisible(this.element)};Spry.Effect.Opacity.prototype=new Spry.Effect.Animator();Spry.Effect.Opacity.prototype.constructor=Spry.Effect.Opacity;Spry.Effect.Opacity.prototype.animate=function(b){var a=0;if(this.direction==Spry.forwards){a=this.startOpacity-(this.opacityRange*b)}else{if(this.direction==Spry.backwards){a=this.opacityRange*b+this.stopOpacity}}this.element.style.opacity=a;this.element.style.filter="alpha(opacity="+Math.floor(a*100)+")";if(this.enforceVisible){Spry.Effect.enforceVisible(this.element);this.enforceVisible=false}};Spry.Effect.Size.prototype.prepareStart=function(){if(this.dynamicStartOpacity==true){this.startOpacity=Spry.Effect.getOpacity(element);this.opacityRange=this.startOpacity-this.stopOpacity}};Spry.Effect.Color=function(c,b,a,d){this.dynamicStartColor=false;if(arguments.length==3){d=a;a=b;b=Spry.Effect.getColor(c);this.dynamicStartColor=true}Spry.Effect.Animator.call(this,d);this.name="Color";this.element=Spry.Effect.getElement(c);this.startColor=b;this.stopColor=a;this.startRedColor=Spry.Effect.Utils.hexToInt(b.substr(1,2));this.startGreenColor=Spry.Effect.Utils.hexToInt(b.substr(3,2));this.startBlueColor=Spry.Effect.Utils.hexToInt(b.substr(5,2));this.stopRedColor=Spry.Effect.Utils.hexToInt(a.substr(1,2));this.stopGreenColor=Spry.Effect.Utils.hexToInt(a.substr(3,2));this.stopBlueColor=Spry.Effect.Utils.hexToInt(a.substr(5,2));this.redColorRange=this.startRedColor-this.stopRedColor;this.greenColorRange=this.startGreenColor-this.stopGreenColor;this.blueColorRange=this.startBlueColor-this.stopBlueColor};Spry.Effect.Color.prototype=new Spry.Effect.Animator();Spry.Effect.Color.prototype.constructor=Spry.Effect.Color;Spry.Effect.Color.prototype.animate=function(d){var a=0;var b=0;var c=0;if(this.direction==Spry.forwards){a=parseInt(this.startRedColor-(this.redColorRange*d));b=parseInt(this.startGreenColor-(this.greenColorRange*d));c=parseInt(this.startBlueColor-(this.blueColorRange*d))}else{if(this.direction==Spry.backwards){a=parseInt(this.redColorRange*d)+this.stopRedColor;b=parseInt(this.greenColorRange*d)+this.stopGreenColor;c=parseInt(this.blueColorRange*d)+this.stopBlueColor}}this.element.style.backgroundColor=Spry.Effect.Utils.rgb(a,b,c)};Spry.Effect.Size.prototype.prepareStart=function(){if(this.dynamicStartColor==true){this.startColor=Spry.Effect.getColor(element);this.startRedColor=Spry.Effect.Utils.hexToInt(startColor.substr(1,2));this.startGreenColor=Spry.Effect.Utils.hexToInt(startColor.substr(3,2));this.startBlueColor=Spry.Effect.Utils.hexToInt(startColor.substr(5,2));this.redColorRange=this.startRedColor-this.stopRedColor;this.greenColorRange=this.startGreenColor-this.stopGreenColor;this.blueColorRange=this.startBlueColor-this.stopBlueColor}};Spry.Effect.Cluster=function(a){Spry.Effect.Animator.call(this,a);this.name="Cluster";this.effectsArray=new Array();this.currIdx=-1;_ClusteredEffect=function(c,b){this.effect=c;this.kind=b;this.isRunning=false};this.ClusteredEffect=_ClusteredEffect};Spry.Effect.Cluster.prototype=new Spry.Effect.Animator();Spry.Effect.Cluster.prototype.constructor=Spry.Effect.Cluster;Spry.Effect.Cluster.prototype.drawEffect=function(){var a=true;var d=false;if(this.currIdx==-1){this.initNextEffectsRunning()}var b=false;var e=false;for(var c=0;c<this.effectsArray.length;c++){if(this.effectsArray[c].isRunning==true){b=this.effectsArray[c].effect.drawEffect();if(b==false&&c==this.currIdx){this.effectsArray[c].isRunning=false;e=true}}}if(e==true){d=this.initNextEffectsRunning()}if(d==true){this.stop();a=false;for(var c=0;c<this.effectsArray.length;c++){this.effectsArray[c].isRunning=false}this.currIdx=-1}return a};Spry.Effect.Cluster.prototype.initNextEffectsRunning=function(){var b=false;this.currIdx++;if(this.currIdx>(this.effectsArray.length-1)){b=true}else{for(var a=this.currIdx;a<this.effectsArray.length;a++){if((a>this.currIdx)&&this.effectsArray[a].kind=="queue"){break}this.effectsArray[a].effect.start(true);this.effectsArray[a].isRunning=true;this.currIdx=a}}return b};Spry.Effect.Cluster.prototype.doToggle=function(){if(this.options.toggle==true){if(this.direction==Spry.forwards){this.direction=Spry.backwards}else{if(this.direction==Spry.backwards){this.direction=Spry.forwards}}}for(var a=0;a<this.effectsArray.length;a++){if(this.effectsArray[a].effect.options&&(this.effectsArray[a].effect.options.toggle!=null)){if(this.effectsArray[a].effect.options.toggle==true){this.effectsArray[a].effect.doToggle()}}}};Spry.Effect.Cluster.prototype.cancel=function(){for(var a=0;a<this.effectsArray.length;a++){this.effectsArray[a].effect.cancel()}if(this.timer){clearInterval(this.timer);this.timer=null}this.isRunning=false};Spry.Effect.Cluster.prototype.addNextEffect=function(a){this.effectsArray[this.effectsArray.length]=new this.ClusteredEffect(a,"queue");if(this.effectsArray.length==1){this.element=a.element}};Spry.Effect.Cluster.prototype.addParallelEffect=function(a){this.effectsArray[this.effectsArray.length]=new this.ClusteredEffect(a,"parallel");if(this.effectsArray.length==1){this.element=a.element}};Spry.Effect.AppearFade=function(c,a){var c=Spry.Effect.getElement(c);var g=1000;var i=0;var h=100;var d=false;var k=Spry.sinusoidalTransition;var b=null;var f=null;if(a){if(a.duration!=null){g=a.duration}if(a.from!=null){i=a.from}if(a.to!=null){h=a.to}if(a.toggle!=null){d=a.toggle}if(a.transition!=null){k=a.transition}if(a.setup!=null){b=a.setup}if(a.finish!=null){f=a.finish}}a={duration:g,toggle:d,transition:k,setup:b,finish:f,from:i,to:h};i=i/100;h=h/100;var e=new Spry.Effect.Opacity(c,i,h,a);e.name="AppearFade";var j=SpryRegistry.getRegisteredEffect(c,e);j.start();return j};Spry.Effect.Blind=function(i,h){var i=Spry.Effect.getElement(i);Spry.Effect.makeClipping(i);var b=1000;var m=false;var q=Spry.sinusoidalTransition;var c=false;var d=null;var g=null;var p=Spry.Effect.getDimensionsRegardlessOfDisplayState(i);var e=p.height;var j=0;var n=h?h.from:p.height;var o=h?h.to:0;if(h){if(h.duration!=null){b=h.duration}if(h.from!=null){if(Spry.Effect.Utils.isPercentValue(h.from)){e=Spry.Effect.Utils.getPercentValue(h.from)*p.height/100}else{e=Spry.Effect.Utils.getPixelValue(h.from)}}if(h.to!=null){if(Spry.Effect.Utils.isPercentValue(h.to)){j=Spry.Effect.Utils.getPercentValue(h.to)*p.height/100}else{j=Spry.Effect.Utils.getPixelValue(h.to)}}if(h.toggle!=null){m=h.toggle}if(h.transition!=null){q=h.transition}if(h.setup!=null){d=h.setup}if(h.finish!=null){g=h.finish}}var l=new Spry.Effect.Utils.Rectangle;l.width=p.width;l.height=e;var f=new Spry.Effect.Utils.Rectangle;f.width=p.width;f.height=j;h={duration:b,toggle:m,transition:q,scaleContent:c,setup:d,finish:g,from:n,to:o};var a=new Spry.Effect.Size(i,l,f,h);a.name="Blind";var k=SpryRegistry.getRegisteredEffect(i,a);k.start();return k};function setupHighlight(a,b){Spry.Effect.setStyleProp(a,"background-image","none")}function finishHighlight(a,b){Spry.Effect.setStyleProp(a,"background-image",b.options.restoreBackgroundImage);if(b.direction==Spry.forwards){Spry.Effect.setStyleProp(a,"background-color",b.options.restoreColor)}}Spry.Effect.Highlight=function(e,a){var j=1000;var o="#ffffff";var f=false;var n=Spry.sinusoidalTransition;var d=setupHighlight;var i=finishHighlight;var e=Spry.Effect.getElement(e);var c=Spry.Effect.getStyleProp(e,"background-color");var l=c;if(c=="transparent"){c="#ffff99"}var g=a?a.from:"#ffff00";var m=a?a.to:"#0000ff";if(a){if(a.duration!=null){j=a.duration}if(a.from!=null){c=a.from}if(a.to!=null){o=a.to}if(a.restoreColor){l=a.restoreColor}if(a.toggle!=null){f=a.toggle}if(a.transition!=null){n=a.transition}if(a.setup!=null){d=a.setup}if(a.finish!=null){i=a.finish}}var b=Spry.Effect.getStyleProp(e,"background-image");a={duration:j,toggle:f,transition:n,setup:d,finish:i,restoreColor:l,restoreBackgroundImage:b,from:g,to:m};var k=new Spry.Effect.Color(e,c,o,a);k.name="Highlight";var h=SpryRegistry.getRegisteredEffect(e,k);h.start();return h};Spry.Effect.Slide=function(e,i){var e=Spry.Effect.getElement(e);var a=2000;var n=false;var s=Spry.sinusoidalTransition;var b=false;var g=null;var h=null;var l=Spry.Effect.Utils.getFirstChildElement(e);if(/MSIE 7.0/.test(navigator.userAgent)&&/Windows NT/.test(navigator.userAgent)){Spry.Effect.makePositioned(e)}Spry.Effect.makeClipping(e);if(/MSIE 6.0/.test(navigator.userAgent)&&/Windows NT/.test(navigator.userAgent)){var t=Spry.Effect.getStyleProp(e,"position");if(t&&(t=="static"||t=="fixed")){Spry.Effect.setStyleProp(e,"position","relative");Spry.Effect.setStyleProp(e,"top","");Spry.Effect.setStyleProp(e,"left","")}}if(l){Spry.Effect.makePositioned(l);Spry.Effect.makeClipping(l);var m=Spry.Effect.getDimensionsRegardlessOfDisplayState(l,e);Spry.Effect.setStyleProp(l,"width",m.width+"px")}var j=Spry.Effect.getDimensionsRegardlessOfDisplayState(e);var c=new Spry.Effect.Utils.Position();c.x=parseInt(Spry.Effect.getStyleProp(l,"left"));c.y=parseInt(Spry.Effect.getStyleProp(l,"top"));if(!c.x){c.x=0}if(!c.y){c.y=0}if(i&&i.horizontal!==null&&i.horizontal===true){b=true}var k=b?j.width:j.height;var o=new Spry.Effect.Utils.Position;o.x=c.x;o.y=c.y;var f=new Spry.Effect.Utils.Position;f.x=b?c.x-k:c.x;f.y=b?c.y:c.y-k;var p=i?i.from:j.height;var q=i?i.to:0;if(i){if(i.duration!=null){a=i.duration}if(i.from!=null){if(b){if(Spry.Effect.Utils.isPercentValue(i.from)){o.x=k*Spry.Effect.Utils.getPercentValue(i.from)/100}else{o.x=Spry.Effect.Utils.getPixelValue(i.from)}}else{if(Spry.Effect.Utils.isPercentValue(i.from)){o.y=k*Spry.Effect.Utils.getPercentValue(i.from)/100}else{o.y=Spry.Effect.Utils.getPixelValue(i.from)}}}if(i.to!=null){if(b){if(Spry.Effect.Utils.isPercentValue(i.to)){f.x=k*Spry.Effect.Utils.getPercentValue(i.to)/100}else{f.x=Spry.Effect.Utils.getPixelValue(i.to)}}else{if(Spry.Effect.Utils.isPercentValue(i.to)){f.y=k*Spry.Effect.Utils.getPercentValue(i.to)/100}else{f.y=Spry.Effect.Utils.getPixelValue(i.to)}}}if(i.toggle!=null){n=i.toggle}if(i.transition!=null){s=i.transition}if(i.setup!=null){g=i.setup}if(i.finish!=null){h=i.finish}}i={duration:a,toggle:n,transition:s,setup:g,finish:h,from:p,to:q};var r=new Spry.Effect.MoveSlide(e,o,f,b,i);r.name="Slide";var d=SpryRegistry.getRegisteredEffect(e,r);d.start();return d};Spry.Effect.GrowShrink=function(n,k){var n=Spry.Effect.getElement(n);Spry.Effect.makePositioned(n);Spry.Effect.makeClipping(n);var d=new Spry.Effect.Utils.Position();d.x=parseInt(Spry.Effect.getStylePropRegardlessOfDisplayState(n,"left"));d.y=parseInt(Spry.Effect.getStylePropRegardlessOfDisplayState(n,"top"));if(!d.x){d.x=0}if(!d.y){d.y=0}var t=Spry.Effect.getDimensionsRegardlessOfDisplayState(n);var h=t.width;var c=t.height;var l=(h==0)?1:c/h;var a=500;var x=false;var y=Spry.sinusoidalTransition;var r=new Spry.Effect.Utils.Rectangle;r.width=0;r.height=0;var v=new Spry.Effect.Utils.Rectangle;v.width=h;v.height=c;var i=null;var j=null;var f=true;var u=k?k.from:t.width;var w=k?k.to:0;var m=false;var z=true;if(k){if(k.referHeight!=null){m=k.referHeight}if(k.growCenter!=null){z=k.growCenter}if(k.duration!=null){a=k.duration}if(k.from!=null){if(Spry.Effect.Utils.isPercentValue(k.from)){r.width=h*(Spry.Effect.Utils.getPercentValue(k.from)/100);r.height=c*(Spry.Effect.Utils.getPercentValue(k.from)/100)}else{if(m){r.height=Spry.Effect.Utils.getPixelValue(k.from);r.width=Spry.Effect.Utils.getPixelValue(k.from)/l}else{r.width=Spry.Effect.Utils.getPixelValue(k.from);r.height=l*Spry.Effect.Utils.getPixelValue(k.from)}}}if(k.to!=null){if(Spry.Effect.Utils.isPercentValue(k.to)){v.width=h*(Spry.Effect.Utils.getPercentValue(k.to)/100);v.height=c*(Spry.Effect.Utils.getPercentValue(k.to)/100)}else{if(m){v.height=Spry.Effect.Utils.getPixelValue(k.to);v.width=Spry.Effect.Utils.getPixelValue(k.to)/l}else{v.width=Spry.Effect.Utils.getPixelValue(k.to);v.height=l*Spry.Effect.Utils.getPixelValue(k.to)}}}if(k.toggle!=null){x=k.toggle}if(k.transition!=null){y=k.transition}if(k.setup!=null){i=k.setup}if(k.finish!=null){j=k.finish}}k={duration:a,toggle:x,transition:y,scaleContent:f,from:u,to:w};var q=new Spry.Effect.Cluster({toggle:x,setup:i,finish:j});q.name="GrowShrink";var p=new Spry.Effect.Size(n,r,v,k);q.addParallelEffect(p);if(z){k={duration:a,toggle:x,transition:y,from:u,to:w};var s=new Spry.Effect.Utils.Position;s.x=d.x+(h-r.width)/2;s.y=d.y+(c-r.height)/2;var g=new Spry.Effect.Utils.Position;g.x=d.x+(h-v.width)/2;g.y=d.y+(c-v.height)/2;var b={top:s.y,left:s.x};var e=new Spry.Effect.Move(n,s,g,k,b);q.addParallelEffect(e)}var o=SpryRegistry.getRegisteredEffect(n,q);o.start();return o};Spry.Effect.Shake=function(d,a){var d=Spry.Effect.getElement(d);Spry.Effect.makePositioned(d);var c=null;var f=null;if(a){if(a.setup!=null){c=a.setup}if(a.finish!=null){f=a.finish}}var j=new Spry.Effect.Utils.Position();j.x=parseInt(Spry.Effect.getStyleProp(d,"left"));j.y=parseInt(Spry.Effect.getStyleProp(d,"top"));if(!j.x){j.x=0}if(!j.y){j.y=0}var g=new Spry.Effect.Cluster({setup:c,finish:f});g.name="Shake";var h=new Spry.Effect.Utils.Position;h.x=j.x+0;h.y=j.y+0;var i=new Spry.Effect.Utils.Position;i.x=j.x+20;i.y=j.y+0;a={duration:50,toggle:false};var b=new Spry.Effect.Move(d,h,i,a);g.addNextEffect(b);var h=new Spry.Effect.Utils.Position;h.x=j.x+20;h.y=j.y+0;var i=new Spry.Effect.Utils.Position;i.x=j.x+-20;i.y=j.y+0;a={duration:100,toggle:false};var b=new Spry.Effect.Move(d,h,i,a);g.addNextEffect(b);var h=new Spry.Effect.Utils.Position;h.x=j.x+-20;h.y=j.y+0;var i=new Spry.Effect.Utils.Position;i.x=j.x+20;i.y=j.y+0;a={duration:100,toggle:false};var b=new Spry.Effect.Move(d,h,i,a);g.addNextEffect(b);var h=new Spry.Effect.Utils.Position;h.x=j.x+20;h.y=j.y+0;var i=new Spry.Effect.Utils.Position;i.x=j.x+-20;i.y=j.y+0;a={duration:100,toggle:false};var b=new Spry.Effect.Move(d,h,i,a);g.addNextEffect(b);var h=new Spry.Effect.Utils.Position;h.x=j.x+-20;h.y=j.y+0;var i=new Spry.Effect.Utils.Position;i.x=j.x+20;i.y=j.y+0;a={duration:100,toggle:false};var b=new Spry.Effect.Move(d,h,i,a);g.addNextEffect(b);var h=new Spry.Effect.Utils.Position;h.x=j.x+20;h.y=j.y+0;var i=new Spry.Effect.Utils.Position;i.x=j.x+0;i.y=j.y+0;a={duration:50,toggle:false};var b=new Spry.Effect.Move(d,h,i,a);g.addNextEffect(b);var e=SpryRegistry.getRegisteredEffect(d,g);e.start();return e};Spry.Effect.Squish=function(e,a){var e=Spry.Effect.getElement(e);var k=500;var f=true;var d=null;var h=null;if(a){if(a.duration!=null){k=a.duration}if(a.toggle!=null){f=a.toggle}if(a.setup!=null){d=a.setup}if(a.finish!=null){h=a.finish}}Spry.Effect.makePositioned(e);Spry.Effect.makeClipping(e);var m=Spry.Effect.getDimensionsRegardlessOfDisplayState(e);var i=m.width;var j=m.height;var g=0;var l=0;var b=new Spry.Effect.Utils.Rectangle;b.width=i;b.height=j;var n=new Spry.Effect.Utils.Rectangle;n.width=g;n.height=l;var p=true;a={duration:k,toggle:f,scaleContent:p,setup:d,finish:h};var c=new Spry.Effect.Size(e,b,n,a);c.name="Squish";var o=SpryRegistry.getRegisteredEffect(e,c);o.start();return o};Spry.Effect.Pulsate=function(c,a){var c=Spry.Effect.getElement(c);var i=400;var l=100;var j=0;var e=false;var m=Spry.linearTransition;var b=null;var g=null;if(a){if(a.duration!=null){i=a.duration}if(a.from!=null){l=a.from}if(a.to!=null){j=a.to}if(a.toggle!=null){e=a.toggle}if(a.transition!=null){m=a.transition}if(a.setup!=null){b=a.setup}if(a.finish!=null){g=a.finish}}a={duration:i,toggle:e,transition:m,setup:b,finish:g};l=l/100;j=j/100;var k=new Spry.Effect.Cluster();var d=new Spry.Effect.Opacity(c,l,j,a);var h=new Spry.Effect.Opacity(c,j,l,a);k.addNextEffect(d);k.addNextEffect(h);k.addNextEffect(d);k.addNextEffect(h);k.addNextEffect(d);k.addNextEffect(h);k.name="Pulsate";var f=SpryRegistry.getRegisteredEffect(c,k);f.start();return f};Spry.Effect.Puff=function(s,r){var s=Spry.Effect.getElement(s);Spry.Effect.makePositioned(s);var b=null;var h=null;if(r){if(r.setup!=null){b=r.setup}if(r.finish!=null){h=r.finish}}var v=new Spry.Effect.Cluster;var a=500;var t=Spry.Effect.getDimensions(s);var k=t.width;var q=t.height;var i=k*2;var e=q*2;var o=new Spry.Effect.Utils.Rectangle;o.width=k;o.height=q;var g=new Spry.Effect.Utils.Rectangle;g.width=i;g.height=e;var d=false;r={duration:a,toggle:false,scaleContent:d};var n=new Spry.Effect.Size(s,o,g,r);v.addParallelEffect(n);r={duration:a,toggle:false};var j=1;var c=0;var m=new Spry.Effect.Opacity(s,j,c,r);v.addParallelEffect(m);r={duration:a,toggle:false};var p=new Spry.Effect.Utils.Position;p.x=0;p.y=0;var f=new Spry.Effect.Utils.Position;f.x=k/2*-1;f.y=q/2*-1;var u=new Spry.Effect.Move(s,p,f,r);v.addParallelEffect(u);v.setup=b;v.finish=h;v.name="Puff";var l=SpryRegistry.getRegisteredEffect(s,v);l.start();return l};Spry.Effect.DropOut=function(c,a){var c=Spry.Effect.getElement(c);var m=new Spry.Effect.Cluster;var j=500;Spry.Effect.makePositioned(c);var b=null;var g=null;if(a){if(a.setup!=null){b=a.setup}if(a.finish!=null){g=a.finish}}var h=new Spry.Effect.Utils.Position();h.x=parseInt(Spry.Effect.getStyleProp(c,"left"));h.y=parseInt(Spry.Effect.getStyleProp(c,"top"));if(!h.x){h.x=0}if(!h.y){h.y=0}var i=new Spry.Effect.Utils.Position;i.x=h.x+0;i.y=h.y+0;var l=new Spry.Effect.Utils.Position;l.x=h.x+0;l.y=h.y+160;a={from:i,to:l,duration:j,toggle:true};var e=new Spry.Effect.Move(c,a.from,a.to,a);m.addParallelEffect(e);a={duration:j,toggle:true};var d=1;var k=0;var n=new Spry.Effect.Opacity(c,d,k,a);m.addParallelEffect(n);m.setup=b;m.finish=g;m.name="DropOut";var f=SpryRegistry.getRegisteredEffect(c,m);f.start();return f};Spry.Effect.Fold=function(d,a){var d=Spry.Effect.getElement(d);var k=1000;var g=false;var h=true;var f=new Spry.Effect.Cluster();var m=Spry.Effect.getDimensions(d);var i=m.width;var j=m.height;var o=i;var l=j/5;var b=new Spry.Effect.Utils.Rectangle;b.width=i;b.height=j;var c=new Spry.Effect.Utils.Rectangle;c.width=o;c.height=l;a={duration:k,toggle:g,scaleContent:h};var e=new Spry.Effect.Size(d,b,c,a);f.addNextEffect(e);k=500;a={duration:k,toggle:g,scaleContent:h};b.width="100%";b.height="20%";c.width="10%";c.height="20%";var e=new Spry.Effect.Size(d,b,c,a);f.addNextEffect(e);f.name="Fold";var n=SpryRegistry.getRegisteredEffect(d,f);n.start();return n};Spry.Effect.DoFade=function(a,b){return Spry.Effect.AppearFade(a,b)};Spry.Effect.DoBlind=function(a,b){return Spry.Effect.Blind(a,b)};Spry.Effect.DoHighlight=function(a,b){return Spry.Effect.Highlight(a,b)};Spry.Effect.DoSlide=function(a,b){return Spry.Effect.Slide(a,b)};Spry.Effect.DoGrow=function(a,b){return Spry.Effect.GrowShrink(a,b)};Spry.Effect.DoShake=function(a,b){return Spry.Effect.Shake(a,b)};Spry.Effect.DoSquish=function(a,b){return Spry.Effect.Squish(a,b)};Spry.Effect.DoPulsate=function(a,b){return Spry.Effect.Pulsate(a,b)};Spry.Effect.DoPuff=function(a,b){return Spry.Effect.Puff(a,b)};Spry.Effect.DoDropOut=function(a,b){return Spry.Effect.DropOut(a,b)};Spry.Effect.DoFold=function(a,b){return Spry.Effect.Fold(a,b)};
