
Type.registerNamespace('AjaxControlToolkit.Animation');var $AA=AjaxControlToolkit.Animation;$AA.registerAnimation=function(name,type){
if(type&&((type===$AA.Animation)||(type.inheritsFrom&&type.inheritsFrom($AA.Animation)))){
if(!$AA.__animations){
$AA.__animations={};}
$AA.__animations[name.toLowerCase()]=type;type.play=function(){
var animation=new type();type.apply(animation,arguments);animation.initialize();var handler=Function.createDelegate(animation,
function(){
animation.remove_ended(handler);handler=null;animation.dispose();});animation.add_ended(handler);animation.play();}}else{
throw Error.argumentType('type',type,$AA.Animation,AjaxControlToolkit.Resources.Animation_InvalidBaseType);}}
$AA.buildAnimation=function(json,defaultTarget){
if(!json||json===''){
return null;}
var obj;json='('+ json +')';if(!Sys.Debug.isDebug){
try{obj=Sys.Serialization.JavaScriptSerializer.deserialize(json);}catch(ex){}}else{
obj=Sys.Serialization.JavaScriptSerializer.deserialize(json);}
return $AA.createAnimation(obj,defaultTarget);}
$AA.createAnimation=function(obj,defaultTarget){
if(!obj||!obj.AnimationName){
throw Error.argument('obj',AjaxControlToolkit.Resources.Animation_MissingAnimationName);}
var type=$AA.__animations[obj.AnimationName.toLowerCase()];if(!type){
throw Error.argument('type',String.format(AjaxControlToolkit.Resources.Animation_UknownAnimationName,obj.AnimationName));}
var animation=new type();if(defaultTarget){
animation.set_target(defaultTarget);}
if(obj.AnimationChildren&&obj.AnimationChildren.length){
if($AA.ParentAnimation.isInstanceOfType(animation)){
for(var i=0;i<obj.AnimationChildren.length;i++){
var child=$AA.createAnimation(obj.AnimationChildren[i]);if(child){
animation.add(child);}}}else{
throw Error.argument('obj',String.format(AjaxControlToolkit.Resources.Animation_ChildrenNotAllowed,type.getName()));}}
var properties=type.__animationProperties;if(!properties){
type.__animationProperties={};type.resolveInheritance();for(var name in type.prototype){
if(name.startsWith('set_')){
type.__animationProperties[name.substr(4).toLowerCase()]=name;}}
delete type.__animationProperties['id'];properties=type.__animationProperties;}
for(var property in obj){
var prop=property.toLowerCase();if(prop=='animationname'||prop=='animationchildren'){
continue;}
var value=obj[property];var setter=properties[prop];if(setter&&String.isInstanceOfType(setter)&&animation[setter]){
if(!Sys.Debug.isDebug){
try{animation[setter](value);}catch(ex){}}else{
animation[setter](value);}}else{
if(prop.endsWith('script')){
setter=properties[prop.substr(0,property.length - 6)];if(setter&&String.isInstanceOfType(setter)&&animation[setter]){
animation.DynamicProperties[setter]=value;}else if(Sys.Debug.isDebug){
throw Error.argument('obj',String.format(AjaxControlToolkit.Resources.Animation_NoDynamicPropertyFound,property,property.substr(0,property.length - 5)));}}else if(Sys.Debug.isDebug){
throw Error.argument('obj',String.format(AjaxControlToolkit.Resources.Animation_NoPropertyFound,property));}}}
return animation;}
$AA.Animation=function(target,duration,fps){
$AA.Animation.initializeBase(this);this._duration=1;this._fps=25;this._target=null;this._tickHandler=null;this._timer=null;this._percentComplete=0;this._percentDelta=null;this._owner=null;this._parentAnimation=null;this.DynamicProperties={};if(target){
this.set_target(target);}
if(duration){
this.set_duration(duration);}
if(fps){
this.set_fps(fps);}}
$AA.Animation.prototype={
dispose:function(){
if(this._timer){
this._timer.dispose();this._timer=null;}
this._tickHandler=null;this._target=null;$AA.Animation.callBaseMethod(this,'dispose');},
play:function(){
if(!this._owner){
var resume=true;if(!this._timer){
resume=false;if(!this._tickHandler){
this._tickHandler=Function.createDelegate(this,this._onTimerTick);}
this._timer=new Sys.Timer();this._timer.add_tick(this._tickHandler);this.onStart();this._timer.set_interval(1000/this._fps);this._percentDelta=100/(this._duration*this._fps);this._updatePercentComplete(0,true);}
this._timer.set_enabled(true);this.raisePropertyChanged('isPlaying');if(!resume){
this.raisePropertyChanged('isActive');}}},
pause:function(){
if(!this._owner){
if(this._timer){
this._timer.set_enabled(false);this.raisePropertyChanged('isPlaying');}}},
stop:function(finish){
if(!this._owner){
var t=this._timer;this._timer=null;if(t){
t.dispose();if(this._percentComplete!==100){
this._percentComplete=100;this.raisePropertyChanged('percentComplete');if(finish||finish===undefined){
this.onStep(100);}}
this.onEnd();this.raisePropertyChanged('isPlaying');this.raisePropertyChanged('isActive');}}},
onStart:function(){
this.raiseStarted();for(var property in this.DynamicProperties){
try{
this[property](eval(this.DynamicProperties[property]));}catch(ex){
if(Sys.Debug.isDebug){
throw ex;}}}},
onStep:function(percentage){
this.setValue(this.getAnimatedValue(percentage));},
onEnd:function(){
this.raiseEnded();},
getAnimatedValue:function(percentage){
throw Error.notImplemented();},
setValue:function(value){
throw Error.notImplemented();},
interpolate:function(start,end,percentage){
return start +(end - start)*(percentage/100);},
_onTimerTick:function(){
this._updatePercentComplete(this._percentComplete + this._percentDelta,true);},
_updatePercentComplete:function(percentComplete,animate){
if(percentComplete>100){
percentComplete=100;}
this._percentComplete=percentComplete;this.raisePropertyChanged('percentComplete');if(animate){
this.onStep(percentComplete);}
if(percentComplete===100){
this.stop(false);}},
setOwner:function(owner){
this._owner=owner;},
raiseStarted:function(){
var handlers=this.get_events().getHandler('started');if(handlers){
handlers(this,Sys.EventArgs.Empty);}},
add_started:function(handler){
this.get_events().addHandler("started",handler);},
remove_started:function(handler){
this.get_events().removeHandler("started",handler);},
raiseEnded:function(){
var handlers=this.get_events().getHandler('ended');if(handlers){
handlers(this,Sys.EventArgs.Empty);}},
add_ended:function(handler){
this.get_events().addHandler("ended",handler);},
remove_ended:function(handler){
this.get_events().removeHandler("ended",handler);},
get_target:function(){
if(!this._target&&this._parentAnimation){
return this._parentAnimation.get_target();}
return this._target;},
set_target:function(value){
if(this._target!=value){
this._target=value;this.raisePropertyChanged('target');}},
set_animationTarget:function(id){
var target=null;var element=$get(id);if(element){
target=element;}else{
var ctrl=$find(id);if(ctrl){
element=ctrl.get_element();if(element){
target=element;}}}
if(target){
this.set_target(target);}else{
throw Error.argument('id',String.format(AjaxControlToolkit.Resources.Animation_TargetNotFound,id));}},
get_duration:function(){
return this._duration;},
set_duration:function(value){
value=this._getFloat(value);if(this._duration!=value){
this._duration=value;this.raisePropertyChanged('duration');}},
get_fps:function(){
return this._fps;},
set_fps:function(value){
value=this._getInteger(value);if(this.fps!=value){
this._fps=value;this.raisePropertyChanged('fps');}},
get_isActive:function(){
return(this._timer!==null);},
get_isPlaying:function(){
return(this._timer!==null)&&this._timer.get_enabled();},
get_percentComplete:function(){
return this._percentComplete;},
_getBoolean:function(value){
if(String.isInstanceOfType(value)){
return Boolean.parse(value);}
return value;},
_getInteger:function(value){
if(String.isInstanceOfType(value)){
return parseInt(value);}
return value;},
_getFloat:function(value){
if(String.isInstanceOfType(value)){
return parseFloat(value);}
return value;},
_getEnum:function(value,type){
if(String.isInstanceOfType(value)&&type&&type.parse){
return type.parse(value);}
return value;}}
$AA.Animation.registerClass('AjaxControlToolkit.Animation.Animation',Sys.Component);$AA.registerAnimation('animation',$AA.Animation);$AA.ParentAnimation=function(target,duration,fps,animations){
$AA.ParentAnimation.initializeBase(this,[target,duration,fps]);this._animations=[];if(animations&&animations.length){
for(var i=0;i<animations.length;i++){
this.add(animations[i]);}}}
$AA.ParentAnimation.prototype={
initialize:function(){
$AA.ParentAnimation.callBaseMethod(this,'initialize');if(this._animations){
for(var i=0;i<this._animations.length;i++){
var animation=this._animations[i];if(animation&&!animation.get_isInitialized){
animation.initialize();}}}},
dispose:function(){
this.clear();this._animations=null;$AA.ParentAnimation.callBaseMethod(this,'dispose');},
get_animations:function(){
return this._animations;},
add:function(animation){
if(this._animations){
if(animation){
animation._parentAnimation=this;}
Array.add(this._animations,animation);this.raisePropertyChanged('animations');}},
remove:function(animation){
if(this._animations){
if(animation){
animation.dispose();}
Array.remove(this._animations,animation);this.raisePropertyChanged('animations');}},
removeAt:function(index){
if(this._animations){
var animation=this._animations[index];if(animation){
animation.dispose();}
Array.removeAt(this._animations,index);this.raisePropertyChanged('animations');}},
clear:function(){
if(this._animations){
for(var i=this._animations.length - 1;i>=0;i--){
this._animations[i].dispose();this._animations[i]=null;}
Array.clear(this._animations);this._animations=[];this.raisePropertyChanged('animations');}}}
$AA.ParentAnimation.registerClass('AjaxControlToolkit.Animation.ParentAnimation',$AA.Animation);$AA.registerAnimation('parent',$AA.ParentAnimation);$AA.ParallelAnimation=function(target,duration,fps,animations){
$AA.ParallelAnimation.initializeBase(this,[target,duration,fps,animations]);}
$AA.ParallelAnimation.prototype={
add:function(animation){
$AA.ParallelAnimation.callBaseMethod(this,'add',[animation]);animation.setOwner(this);},
onStart:function(){
$AA.ParallelAnimation.callBaseMethod(this,'onStart');var animations=this.get_animations();for(var i=0;i<animations.length;i++){
animations[i].onStart();}},
onStep:function(percentage){
var animations=this.get_animations();for(var i=0;i<animations.length;i++){
animations[i].onStep(percentage);}},
onEnd:function(){
var animations=this.get_animations();for(var i=0;i<animations.length;i++){
animations[i].onEnd();}
$AA.ParallelAnimation.callBaseMethod(this,'onEnd');}}
$AA.ParallelAnimation.registerClass('AjaxControlToolkit.Animation.ParallelAnimation',$AA.ParentAnimation);$AA.registerAnimation('parallel',$AA.ParallelAnimation);$AA.SequenceAnimation=function(target,duration,fps,animations,iterations){
$AA.SequenceAnimation.initializeBase(this,[target,duration,fps,animations]);this._handler=null;this._paused=false;this._playing=false;this._index=0;this._remainingIterations=0;this._iterations=(iterations!==undefined)?iterations:1;}
$AA.SequenceAnimation.prototype={
dispose:function(){
this._handler=null;$AA.SequenceAnimation.callBaseMethod(this,'dispose');},
stop:function(){
if(this._playing){
var animations=this.get_animations();if(this._index<animations.length){
animations[this._index].remove_ended(this._handler);for(var i=this._index;i<animations.length;i++){
animations[i].stop();}}
this._playing=false;this._paused=false;this.raisePropertyChanged('isPlaying');this.onEnd();}},
pause:function(){
if(this.get_isPlaying()){
var current=this.get_animations()[this._index];if(current!=null){
current.pause();}
this._paused=true;this.raisePropertyChanged('isPlaying');}},
play:function(){
var animations=this.get_animations();if(!this._playing){
this._playing=true;if(this._paused){
this._paused=false;var current=animations[this._index];if(current!=null){
current.play();this.raisePropertyChanged('isPlaying');}}else{
this.onStart();this._index=0;var first=animations[this._index];if(first){
first.add_ended(this._handler);first.play();this.raisePropertyChanged('isPlaying');}else{
this.stop();}}}},
onStart:function(){
$AA.SequenceAnimation.callBaseMethod(this,'onStart');this._remainingIterations=this._iterations - 1;if(!this._handler){
this._handler=Function.createDelegate(this,this._onEndAnimation);}},
_onEndAnimation:function(){
var animations=this.get_animations();var current=animations[this._index++];if(current){
current.remove_ended(this._handler);}
if(this._index<animations.length){
var next=animations[this._index];next.add_ended(this._handler);next.play();}else if(this._remainingIterations>=1||this._iterations<=0){
this._remainingIterations--;this._index=0;var first=animations[0];first.add_ended(this._handler);first.play();}else{
this.stop();}},
onStep:function(percentage){
throw Error.invalidOperation(AjaxControlToolkit.Resources.Animation_CannotNestSequence);},
onEnd:function(){
this._remainingIterations=0;$AA.SequenceAnimation.callBaseMethod(this,'onEnd');},
get_isActive:function(){
return true;},
get_isPlaying:function(){
return this._playing&&!this._paused;},
get_iterations:function(){
return this._iterations;},
set_iterations:function(value){
value=this._getInteger(value);if(this._iterations!=value){
this._iterations=value;this.raisePropertyChanged('iterations');}},
get_isInfinite:function(){
return this._iterations<=0;}}
$AA.SequenceAnimation.registerClass('AjaxControlToolkit.Animation.SequenceAnimation',$AA.ParentAnimation);$AA.registerAnimation('sequence',$AA.SequenceAnimation);$AA.SelectionAnimation=function(target,duration,fps,animations){
$AA.SelectionAnimation.initializeBase(this,[target,duration,fps,animations]);this._selectedIndex=-1;this._selected=null;}
$AA.SelectionAnimation.prototype={
getSelectedIndex:function(){
throw Error.notImplemented();},
onStart:function(){
$AA.SelectionAnimation.callBaseMethod(this,'onStart');var animations=this.get_animations();this._selectedIndex=this.getSelectedIndex();if(this._selectedIndex>=0&&this._selectedIndex<animations.length){
this._selected=animations[this._selectedIndex];if(this._selected){
this._selected.setOwner(this);this._selected.onStart();}}},
onStep:function(percentage){
if(this._selected){
this._selected.onStep(percentage);}},
onEnd:function(){
if(this._selected){
this._selected.onEnd();this._selected.setOwner(null);}
this._selected=null;this._selectedIndex=null;$AA.SelectionAnimation.callBaseMethod(this,'onEnd');}}
$AA.SelectionAnimation.registerClass('AjaxControlToolkit.Animation.SelectionAnimation',$AA.ParentAnimation);$AA.registerAnimation('selection',$AA.SelectionAnimation);$AA.ConditionAnimation=function(target,duration,fps,animations,conditionScript){
$AA.ConditionAnimation.initializeBase(this,[target,duration,fps,animations]);this._conditionScript=conditionScript;}
$AA.ConditionAnimation.prototype={
getSelectedIndex:function(){
var selected=-1;if(this._conditionScript&&this._conditionScript.length>0){
try{
selected=eval(this._conditionScript)?0:1;}catch(ex){}}
return selected;},
get_conditionScript:function(){
return this._conditionScript;},
set_conditionScript:function(value){
if(this._conditionScript!=value){
this._conditionScript=value;this.raisePropertyChanged('conditionScript');}}}
$AA.ConditionAnimation.registerClass('AjaxControlToolkit.Animation.ConditionAnimation',$AA.SelectionAnimation);$AA.registerAnimation('condition',$AA.ConditionAnimation);$AA.CaseAnimation=function(target,duration,fps,animations,selectScript){
$AA.CaseAnimation.initializeBase(this,[target,duration,fps,animations]);this._selectScript=selectScript;}
$AA.CaseAnimation.prototype={
getSelectedIndex:function(){
var selected=-1;if(this._selectScript&&this._selectScript.length>0){
try{
var result=eval(this._selectScript)
if(result!==undefined)
selected=result;}catch(ex){}}
return selected;},
get_selectScript:function(){
return this._selectScript;},
set_selectScript:function(value){
if(this._selectScript!=value){
this._selectScript=value;this.raisePropertyChanged('selectScript');}}}
$AA.CaseAnimation.registerClass('AjaxControlToolkit.Animation.CaseAnimation',$AA.SelectionAnimation);$AA.registerAnimation('case',$AA.CaseAnimation);$AA.FadeEffect=function(){
throw Error.invalidOperation();}
$AA.FadeEffect.prototype={
FadeIn:0,
FadeOut:1}
$AA.FadeEffect.registerEnum("AjaxControlToolkit.Animation.FadeEffect",false);$AA.FadeAnimation=function(target,duration,fps,effect,minimumOpacity,maximumOpacity,forceLayoutInIE){
$AA.FadeAnimation.initializeBase(this,[target,duration,fps]);this._effect=(effect!==undefined)?effect:$AA.FadeEffect.FadeIn;this._max=(maximumOpacity!==undefined)?maximumOpacity:1;this._min=(minimumOpacity!==undefined)?minimumOpacity:0;this._start=this._min;this._end=this._max;this._layoutCreated=false;this._forceLayoutInIE=(forceLayoutInIE===undefined||forceLayoutInIE===null)?true:forceLayoutInIE;this._currentTarget=null;this._resetOpacities();}
$AA.FadeAnimation.prototype={
_resetOpacities:function(){
if(this._effect==$AA.FadeEffect.FadeIn){
this._start=this._min;this._end=this._max;}else{
this._start=this._max;this._end=this._min;}},
_createLayout:function(){
var element=this._currentTarget;if(element){
var originalWidth=$common.getCurrentStyle(element,'width');var originalHeight=$common.getCurrentStyle(element,'height');var originalBackColor=$common.getCurrentStyle(element,'backgroundColor');if((!originalWidth||originalWidth==''||originalWidth=='auto')&&
(!originalHeight||originalHeight==''||originalHeight=='auto')){
element.style.width=element.offsetWidth +'px';}
if(!originalBackColor||originalBackColor==''||originalBackColor=='transparent'||originalBackColor=='rgba(0, 0, 0, 0)'){
element.style.backgroundColor=$common.getInheritedBackgroundColor(element);}
this._layoutCreated=true;}},
onStart:function(){
$AA.FadeAnimation.callBaseMethod(this,'onStart');this._currentTarget=this.get_target();this.setValue(this._start);if(this._forceLayoutInIE&&!this._layoutCreated&&Sys.Browser.agent==Sys.Browser.InternetExplorer){
this._createLayout();}},
getAnimatedValue:function(percentage){
return this.interpolate(this._start,this._end,percentage);},
setValue:function(value){
if(this._currentTarget){
$common.setElementOpacity(this._currentTarget,value);}},
get_effect:function(){
return this._effect;},
set_effect:function(value){
value=this._getEnum(value,$AA.FadeEffect);if(this._effect!=value){
this._effect=value;this._resetOpacities();this.raisePropertyChanged('effect');}},
get_minimumOpacity:function(){
return this._min;},
set_minimumOpacity:function(value){
value=this._getFloat(value);if(this._min!=value){
this._min=value;this._resetOpacities();this.raisePropertyChanged('minimumOpacity');}},
get_maximumOpacity:function(){
return this._max;},
set_maximumOpacity:function(value){
value=this._getFloat(value);if(this._max!=value){
this._max=value;this._resetOpacities();this.raisePropertyChanged('maximumOpacity');}},
get_forceLayoutInIE:function(){
return this._forceLayoutInIE;},
set_forceLayoutInIE:function(value){
value=this._getBoolean(value);if(this._forceLayoutInIE!=value){
this._forceLayoutInIE=value;this.raisePropertyChanged('forceLayoutInIE');}},
set_startValue:function(value){
value=this._getFloat(value);this._start=value;}}
$AA.FadeAnimation.registerClass('AjaxControlToolkit.Animation.FadeAnimation',$AA.Animation);$AA.registerAnimation('fade',$AA.FadeAnimation);$AA.FadeInAnimation=function(target,duration,fps,minimumOpacity,maximumOpacity,forceLayoutInIE){
$AA.FadeInAnimation.initializeBase(this,[target,duration,fps,$AA.FadeEffect.FadeIn,minimumOpacity,maximumOpacity,forceLayoutInIE]);}
$AA.FadeInAnimation.prototype={
onStart:function(){
$AA.FadeInAnimation.callBaseMethod(this,'onStart');if(this._currentTarget){
this.set_startValue($common.getElementOpacity(this._currentTarget));}}}
$AA.FadeInAnimation.registerClass('AjaxControlToolkit.Animation.FadeInAnimation',$AA.FadeAnimation);$AA.registerAnimation('fadeIn',$AA.FadeInAnimation);$AA.FadeOutAnimation=function(target,duration,fps,minimumOpacity,maximumOpacity,forceLayoutInIE){
$AA.FadeOutAnimation.initializeBase(this,[target,duration,fps,$AA.FadeEffect.FadeOut,minimumOpacity,maximumOpacity,forceLayoutInIE]);}
$AA.FadeOutAnimation.prototype={
onStart:function(){
$AA.FadeOutAnimation.callBaseMethod(this,'onStart');if(this._currentTarget){
this.set_startValue($common.getElementOpacity(this._currentTarget));}}}
$AA.FadeOutAnimation.registerClass('AjaxControlToolkit.Animation.FadeOutAnimation',$AA.FadeAnimation);$AA.registerAnimation('fadeOut',$AA.FadeOutAnimation);$AA.PulseAnimation=function(target,duration,fps,iterations,minimumOpacity,maximumOpacity,forceLayoutInIE){
$AA.PulseAnimation.initializeBase(this,[target,duration,fps,null,((iterations!==undefined)?iterations:3)]);this._out=new $AA.FadeOutAnimation(target,duration,fps,minimumOpacity,maximumOpacity,forceLayoutInIE);this.add(this._out);this._in=new $AA.FadeInAnimation(target,duration,fps,minimumOpacity,maximumOpacity,forceLayoutInIE);this.add(this._in);}
$AA.PulseAnimation.prototype={
get_minimumOpacity:function(){
return this._out.get_minimumOpacity();},
set_minimumOpacity:function(value){
value=this._getFloat(value);this._out.set_minimumOpacity(value);this._in.set_minimumOpacity(value);this.raisePropertyChanged('minimumOpacity');},
get_maximumOpacity:function(){
return this._out.get_maximumOpacity();},
set_maximumOpacity:function(value){
value=this._getFloat(value);this._out.set_maximumOpacity(value);this._in.set_maximumOpacity(value);this.raisePropertyChanged('maximumOpacity');},
get_forceLayoutInIE:function(){
return this._out.get_forceLayoutInIE();},
set_forceLayoutInIE:function(value){
value=this._getBoolean(value);this._out.set_forceLayoutInIE(value);this._in.set_forceLayoutInIE(value);this.raisePropertyChanged('forceLayoutInIE');},
set_duration:function(value){
value=this._getFloat(value);$AA.PulseAnimation.callBaseMethod(this,'set_duration',[value]);this._in.set_duration(value);this._out.set_duration(value);},
set_fps:function(value){
value=this._getInteger(value);$AA.PulseAnimation.callBaseMethod(this,'set_fps',[value]);this._in.set_fps(value);this._out.set_fps(value);}}
$AA.PulseAnimation.registerClass('AjaxControlToolkit.Animation.PulseAnimation',$AA.SequenceAnimation);$AA.registerAnimation('pulse',$AA.PulseAnimation);$AA.PropertyAnimation=function(target,duration,fps,property,propertyKey){
$AA.PropertyAnimation.initializeBase(this,[target,duration,fps]);this._property=property;this._propertyKey=propertyKey;this._currentTarget=null;}
$AA.PropertyAnimation.prototype={
onStart:function(){
$AA.PropertyAnimation.callBaseMethod(this,'onStart');this._currentTarget=this.get_target();},
setValue:function(value){
var element=this._currentTarget;if(element&&this._property&&this._property.length>0){
if(this._propertyKey&&this._propertyKey.length>0&&element[this._property]){
element[this._property][this._propertyKey]=value;}else{
element[this._property]=value;}}},
getValue:function(){
var element=this.get_target();if(element&&this._property&&this._property.length>0){
var property=element[this._property];if(property){
if(this._propertyKey&&this._propertyKey.length>0){
return property[this._propertyKey];}
return property;}}
return null;},
get_property:function(){
return this._property;},
set_property:function(value){
if(this._property!=value){
this._property=value;this.raisePropertyChanged('property');}},
get_propertyKey:function(){
return this._propertyKey;},
set_propertyKey:function(value){
if(this._propertyKey!=value){
this._propertyKey=value;this.raisePropertyChanged('propertyKey');}}}
$AA.PropertyAnimation.registerClass('AjaxControlToolkit.Animation.PropertyAnimation',$AA.Animation);$AA.registerAnimation('property',$AA.PropertyAnimation);$AA.DiscreteAnimation=function(target,duration,fps,property,propertyKey,values){
$AA.DiscreteAnimation.initializeBase(this,[target,duration,fps,property,propertyKey]);this._values=(values&&values.length)?values:[];}
$AA.DiscreteAnimation.prototype={
getAnimatedValue:function(percentage){
var index=Math.floor(this.interpolate(0,this._values.length - 1,percentage));return this._values[index];},
get_values:function(){
return this._values;},
set_values:function(value){
if(this._values!=value){
this._values=value;this.raisePropertyChanged('values');}}}
$AA.DiscreteAnimation.registerClass('AjaxControlToolkit.Animation.DiscreteAnimation',$AA.PropertyAnimation);$AA.registerAnimation('discrete',$AA.DiscreteAnimation);$AA.InterpolatedAnimation=function(target,duration,fps,property,propertyKey,startValue,endValue){
$AA.InterpolatedAnimation.initializeBase(this,[target,duration,fps,((property!==undefined)?property:'style'),propertyKey]);this._startValue=startValue;this._endValue=endValue;}
$AA.InterpolatedAnimation.prototype={
get_startValue:function(){
return this._startValue;},
set_startValue:function(value){
value=this._getFloat(value);if(this._startValue!=value){
this._startValue=value;this.raisePropertyChanged('startValue');}},
get_endValue:function(){
return this._endValue;},
set_endValue:function(value){
value=this._getFloat(value);if(this._endValue!=value){
this._endValue=value;this.raisePropertyChanged('endValue');}}}
$AA.InterpolatedAnimation.registerClass('AjaxControlToolkit.Animation.InterpolatedAnimation',$AA.PropertyAnimation);$AA.registerAnimation('interpolated',$AA.InterpolatedAnimation);$AA.ColorAnimation=function(target,duration,fps,property,propertyKey,startValue,endValue){
$AA.ColorAnimation.initializeBase(this,[target,duration,fps,property,propertyKey,startValue,endValue]);this._start=null;this._end=null;this._interpolateRed=false;this._interpolateGreen=false;this._interpolateBlue=false;}
$AA.ColorAnimation.prototype={
onStart:function(){
$AA.ColorAnimation.callBaseMethod(this,'onStart');this._start=$AA.ColorAnimation.getRGB(this.get_startValue());this._end=$AA.ColorAnimation.getRGB(this.get_endValue());this._interpolateRed=(this._start.Red!=this._end.Red);this._interpolateGreen=(this._start.Green!=this._end.Green);this._interpolateBlue=(this._start.Blue!=this._end.Blue);},
getAnimatedValue:function(percentage){
var r=this._start.Red;var g=this._start.Green;var b=this._start.Blue;if(this._interpolateRed)
r=Math.round(this.interpolate(r,this._end.Red,percentage));if(this._interpolateGreen)
g=Math.round(this.interpolate(g,this._end.Green,percentage));if(this._interpolateBlue)
b=Math.round(this.interpolate(b,this._end.Blue,percentage));return $AA.ColorAnimation.toColor(r,g,b);},
set_startValue:function(value){
if(this._startValue!=value){
this._startValue=value;this.raisePropertyChanged('startValue');}},
set_endValue:function(value){
if(this._endValue!=value){
this._endValue=value;this.raisePropertyChanged('endValue');}}}
$AA.ColorAnimation.getRGB=function(color){
if(!color||color.length!=7){
throw String.format(AjaxControlToolkit.Resources.Animation_InvalidColor,color);}
return{'Red':parseInt(color.substr(1,2),16),'Green':parseInt(color.substr(3,2),16),'Blue':parseInt(color.substr(5,2),16)};}
$AA.ColorAnimation.toColor=function(red,green,blue){
var r=red.toString(16);var g=green.toString(16);var b=blue.toString(16);if(r.length==1)r='0'+ r;if(g.length==1)g='0'+ g;if(b.length==1)b='0'+ b;return'#'+ r + g + b;}
$AA.ColorAnimation.registerClass('AjaxControlToolkit.Animation.ColorAnimation',$AA.InterpolatedAnimation);$AA.registerAnimation('color',$AA.ColorAnimation);$AA.LengthAnimation=function(target,duration,fps,property,propertyKey,startValue,endValue,unit){
$AA.LengthAnimation.initializeBase(this,[target,duration,fps,property,propertyKey,startValue,endValue]);this._unit=(unit!=null)?unit:'px';}
$AA.LengthAnimation.prototype={
getAnimatedValue:function(percentage){
var value=this.interpolate(this.get_startValue(),this.get_endValue(),percentage);return Math.round(value)+ this._unit;},
get_unit:function(){
return this._unit;},
set_unit:function(value){
if(this._unit!=value){
this._unit=value;this.raisePropertyChanged('unit');}}}
$AA.LengthAnimation.registerClass('AjaxControlToolkit.Animation.LengthAnimation',$AA.InterpolatedAnimation);$AA.registerAnimation('length',$AA.LengthAnimation);$AA.MoveAnimation=function(target,duration,fps,horizontal,vertical,relative,unit){
$AA.MoveAnimation.initializeBase(this,[target,duration,fps,null]);this._horizontal=horizontal?horizontal:0;this._vertical=vertical?vertical:0;this._relative=(relative===undefined)?true:relative;this._horizontalAnimation=new $AA.LengthAnimation(target,duration,fps,'style','left',null,null,unit);this._verticalAnimation=new $AA.LengthAnimation(target,duration,fps,'style','top',null,null,unit);this.add(this._verticalAnimation);this.add(this._horizontalAnimation);}
$AA.MoveAnimation.prototype={
onStart:function(){
$AA.MoveAnimation.callBaseMethod(this,'onStart');var element=this.get_target();this._horizontalAnimation.set_startValue(element.offsetLeft);this._horizontalAnimation.set_endValue(this._relative?element.offsetLeft + this._horizontal:this._horizontal);this._verticalAnimation.set_startValue(element.offsetTop);this._verticalAnimation.set_endValue(this._relative?element.offsetTop + this._vertical:this._vertical);},
get_horizontal:function(){
return this._horizontal;},
set_horizontal:function(value){
value=this._getFloat(value);if(this._horizontal!=value){
this._horizontal=value;this.raisePropertyChanged('horizontal');}},
get_vertical:function(){
return this._vertical;},
set_vertical:function(value){
value=this._getFloat(value);if(this._vertical!=value){
this._vertical=value;this.raisePropertyChanged('vertical');}},
get_relative:function(){
return this._relative;},
set_relative:function(value){
value=this._getBoolean(value);if(this._relative!=value){
this._relative=value;this.raisePropertyChanged('relative');}},
get_unit:function(){
this._horizontalAnimation.get_unit();},
set_unit:function(value){
var unit=this._horizontalAnimation.get_unit();if(unit!=value){
this._horizontalAnimation.set_unit(value);this._verticalAnimation.set_unit(value);this.raisePropertyChanged('unit');}}}
$AA.MoveAnimation.registerClass('AjaxControlToolkit.Animation.MoveAnimation',$AA.ParallelAnimation);$AA.registerAnimation('move',$AA.MoveAnimation);$AA.ResizeAnimation=function(target,duration,fps,width,height,unit){
$AA.ResizeAnimation.initializeBase(this,[target,duration,fps,null]);this._width=width;this._height=height;this._horizontalAnimation=new $AA.LengthAnimation(target,duration,fps,'style','width',null,null,unit);this._verticalAnimation=new $AA.LengthAnimation(target,duration,fps,'style','height',null,null,unit);this.add(this._horizontalAnimation);this.add(this._verticalAnimation);}
$AA.ResizeAnimation.prototype={
onStart:function(){
$AA.ResizeAnimation.callBaseMethod(this,'onStart');var element=this.get_target();this._horizontalAnimation.set_startValue(element.offsetWidth);this._verticalAnimation.set_startValue(element.offsetHeight);this._horizontalAnimation.set_endValue((this._width!==null&&this._width!==undefined)?
this._width:element.offsetWidth);this._verticalAnimation.set_endValue((this._height!==null&&this._height!==undefined)?
this._height:element.offsetHeight);},
get_width:function(){
return this._width;},
set_width:function(value){
value=this._getFloat(value);if(this._width!=value){
this._width=value;this.raisePropertyChanged('width');}},
get_height:function(){
return this._height;},
set_height:function(value){
value=this._getFloat(value);if(this._height!=value){
this._height=value;this.raisePropertyChanged('height');}},
get_unit:function(){
this._horizontalAnimation.get_unit();},
set_unit:function(value){
var unit=this._horizontalAnimation.get_unit();if(unit!=value){
this._horizontalAnimation.set_unit(value);this._verticalAnimation.set_unit(value);this.raisePropertyChanged('unit');}}}
$AA.ResizeAnimation.registerClass('AjaxControlToolkit.Animation.ResizeAnimation',$AA.ParallelAnimation);$AA.registerAnimation('resize',$AA.ResizeAnimation);$AA.ScaleAnimation=function(target,duration,fps,scaleFactor,unit,center,scaleFont,fontUnit){
$AA.ScaleAnimation.initializeBase(this,[target,duration,fps]);this._scaleFactor=(scaleFactor!==undefined)?scaleFactor:1;this._unit=(unit!==undefined)?unit:'px';this._center=center;this._scaleFont=scaleFont;this._fontUnit=(fontUnit!==undefined)?fontUnit:'pt';this._element=null;this._initialHeight=null;this._initialWidth=null;this._initialTop=null;this._initialLeft=null;this._initialFontSize=null;}
$AA.ScaleAnimation.prototype={
getAnimatedValue:function(percentage){
return this.interpolate(1.0,this._scaleFactor,percentage);},
onStart:function(){
$AA.ScaleAnimation.callBaseMethod(this,'onStart');this._element=this.get_target();if(this._element){
this._initialHeight=this._element.offsetHeight;this._initialWidth=this._element.offsetWidth;if(this._center){
this._initialTop=this._element.offsetTop;this._initialLeft=this._element.offsetLeft;}
if(this._scaleFont){
this._initialFontSize=parseFloat(
$common.getCurrentStyle(this._element,'fontSize'));}}},
setValue:function(scale){
if(this._element){
var width=Math.round(this._initialWidth*scale);var height=Math.round(this._initialHeight*scale);this._element.style.width=width + this._unit;this._element.style.height=height + this._unit;if(this._center){
this._element.style.top=(this._initialTop +
Math.round((this._initialHeight - height)/2))+ this._unit;this._element.style.left=(this._initialLeft +
Math.round((this._initialWidth - width)/2))+ this._unit;}
if(this._scaleFont){
var size=this._initialFontSize*scale;if(this._fontUnit=='px'||this._fontUnit=='pt'){
size=Math.round(size);}
this._element.style.fontSize=size + this._fontUnit;}}},
onEnd:function(){
this._element=null;this._initialHeight=null;this._initialWidth=null;this._initialTop=null;this._initialLeft=null;this._initialFontSize=null;$AA.ScaleAnimation.callBaseMethod(this,'onEnd');},
get_scaleFactor:function(){
return this._scaleFactor;},
set_scaleFactor:function(value){
value=this._getFloat(value);if(this._scaleFactor!=value){
this._scaleFactor=value;this.raisePropertyChanged('scaleFactor');}},
get_unit:function(){
return this._unit;},
set_unit:function(value){
if(this._unit!=value){
this._unit=value;this.raisePropertyChanged('unit');}},
get_center:function(){
return this._center;},
set_center:function(value){
value=this._getBoolean(value);if(this._center!=value){
this._center=value;this.raisePropertyChanged('center');}},
get_scaleFont:function(){
return this._scaleFont;},
set_scaleFont:function(value){
value=this._getBoolean(value);if(this._scaleFont!=value){
this._scaleFont=value;this.raisePropertyChanged('scaleFont');}},
get_fontUnit:function(){
return this._fontUnit;},
set_fontUnit:function(value){
if(this._fontUnit!=value){
this._fontUnit=value;this.raisePropertyChanged('fontUnit');}}}
$AA.ScaleAnimation.registerClass('AjaxControlToolkit.Animation.ScaleAnimation',$AA.Animation);$AA.registerAnimation('scale',$AA.ScaleAnimation);$AA.Action=function(target,duration,fps){
$AA.Action.initializeBase(this,[target,duration,fps]);if(duration===undefined){
this.set_duration(0);}}
$AA.Action.prototype={
onEnd:function(){
this.doAction();$AA.Action.callBaseMethod(this,'onEnd');},
doAction:function(){
throw Error.notImplemented();},
getAnimatedValue:function(){},
setValue:function(){}}
$AA.Action.registerClass('AjaxControlToolkit.Animation.Action',$AA.Animation);$AA.registerAnimation('action',$AA.Action);$AA.EnableAction=function(target,duration,fps,enabled){
$AA.EnableAction.initializeBase(this,[target,duration,fps]);this._enabled=(enabled!==undefined)?enabled:true;}
$AA.EnableAction.prototype={
doAction:function(){
var element=this.get_target();if(element){
element.disabled=!this._enabled;}},
get_enabled:function(){
return this._enabled;},
set_enabled:function(value){
value=this._getBoolean(value);if(this._enabled!=value){
this._enabled=value;this.raisePropertyChanged('enabled');}}}
$AA.EnableAction.registerClass('AjaxControlToolkit.Animation.EnableAction',$AA.Action);$AA.registerAnimation('enableAction',$AA.EnableAction);$AA.HideAction=function(target,duration,fps,visible){
$AA.HideAction.initializeBase(this,[target,duration,fps]);this._visible=visible;}
$AA.HideAction.prototype={
doAction:function(){
var element=this.get_target();if(element){
$common.setVisible(element,this._visible);}},
get_visible:function(){
return this._visible;},
set_visible:function(value){
if(this._visible!=value){
this._visible=value;this.raisePropertyChanged('visible');}}}
$AA.HideAction.registerClass('AjaxControlToolkit.Animation.HideAction',$AA.Action);$AA.registerAnimation('hideAction',$AA.HideAction);$AA.StyleAction=function(target,duration,fps,attribute,value){
$AA.StyleAction.initializeBase(this,[target,duration,fps]);this._attribute=attribute;this._value=value;}
$AA.StyleAction.prototype={
doAction:function(){
var element=this.get_target();if(element){
element.style[this._attribute]=this._value;}},
get_attribute:function(){
return this._attribute;},
set_attribute:function(value){
if(this._attribute!=value){
this._attribute=value;this.raisePropertyChanged('attribute');}},
get_value:function(){
return this._value;},
set_value:function(value){
if(this._value!=value){
this._value=value;this.raisePropertyChanged('value');}}}
$AA.StyleAction.registerClass('AjaxControlToolkit.Animation.StyleAction',$AA.Action);$AA.registerAnimation('styleAction',$AA.StyleAction);$AA.OpacityAction=function(target,duration,fps,opacity){
$AA.OpacityAction.initializeBase(this,[target,duration,fps]);this._opacity=opacity;}
$AA.OpacityAction.prototype={
doAction:function(){
var element=this.get_target();if(element){
$common.setElementOpacity(element,this._opacity);}},
get_opacity:function(){
return this._opacity;},
set_opacity:function(value){
value=this._getFloat(value);if(this._opacity!=value){
this._opacity=value;this.raisePropertyChanged('opacity');}}}
$AA.OpacityAction.registerClass('AjaxControlToolkit.Animation.OpacityAction',$AA.Action);$AA.registerAnimation('opacityAction',$AA.OpacityAction);$AA.ScriptAction=function(target,duration,fps,script){
$AA.ScriptAction.initializeBase(this,[target,duration,fps]);this._script=script;}
$AA.ScriptAction.prototype={
doAction:function(){
try{
eval(this._script);}catch(ex){}},
get_script:function(){
return this._script;},
set_script:function(value){
if(this._script!=value){
this._script=value;this.raisePropertyChanged('script');}}}
$AA.ScriptAction.registerClass('AjaxControlToolkit.Animation.ScriptAction',$AA.Action);$AA.registerAnimation('scriptAction',$AA.ScriptAction);