// (c) 2010 CodePlex Foundation (function(){var b="ExtendedAnimationBehavior";function a(){var c="mouseout",b="mouseover",a=null;Type.registerNamespace("Sys.Extended.UI.Animation");Sys.Extended.UI.Animation.AnimationBehavior=function(c){var b=this;Sys.Extended.UI.Animation.AnimationBehavior.initializeBase(b,[c]);b._onLoad=a;b._onClick=a;b._onMouseOver=a;b._onMouseOut=a;b._onHoverOver=a;b._onHoverOut=a;b._onClickHandler=a;b._onMouseOverHandler=a;b._onMouseOutHandler=a};Sys.Extended.UI.Animation.AnimationBehavior.prototype={initialize:function(){var a=this;Sys.Extended.UI.Animation.AnimationBehavior.callBaseMethod(a,"initialize");var d=a.get_element();if(d){a._onClickHandler=Function.createDelegate(a,a.OnClick);$addHandler(d,"click",a._onClickHandler);a._onMouseOverHandler=Function.createDelegate(a,a.OnMouseOver);$addHandler(d,b,a._onMouseOverHandler);a._onMouseOutHandler=Function.createDelegate(a,a.OnMouseOut);$addHandler(d,c,a._onMouseOutHandler)}},dispose:function(){var d=this,e=d.get_element();if(e){if(d._onClickHandler){$removeHandler(e,"click",d._onClickHandler);d._onClickHandler=a}if(d._onMouseOverHandler){$removeHandler(e,b,d._onMouseOverHandler);d._onMouseOverHandler=a}if(d._onMouseOutHandler){$removeHandler(e,c,d._onMouseOutHandler);d._onMouseOutHandler=a}}d._onLoad=a;d._onClick=a;d._onMouseOver=a;d._onMouseOut=a;d._onHoverOver=a;d._onHoverOut=a;Sys.Extended.UI.Animation.AnimationBehavior.callBaseMethod(d,"dispose")},get_OnLoad:function(){return this._onLoad?this._onLoad.get_json():a},set_OnLoad:function(b){var a=this;if(!a._onLoad){a._onLoad=new Sys.Extended.UI.Animation.GenericAnimationBehavior(a.get_element());a._onLoad.initialize()}a._onLoad.set_json(b);a.raisePropertyChanged("OnLoad");a._onLoad.play()},get_OnLoadBehavior:function(){return this._onLoad},get_OnClick:function(){return this._onClick?this._onClick.get_json():a},set_OnClick:function(b){var a=this;if(!a._onClick){a._onClick=new Sys.Extended.UI.Animation.GenericAnimationBehavior(a.get_element());a._onClick.initialize()}a._onClick.set_json(b);a.raisePropertyChanged("OnClick")},get_OnClickBehavior:function(){return this._onClick},OnClick:function(){this._onClick&&this._onClick.play()},get_OnMouseOver:function(){return this._onMouseOver?this._onMouseOver.get_json():a},set_OnMouseOver:function(b){var a=this;if(!a._onMouseOver){a._onMouseOver=new Sys.Extended.UI.Animation.GenericAnimationBehavior(a.get_element());a._onMouseOver.initialize()}a._onMouseOver.set_json(b);a.raisePropertyChanged("OnMouseOver")},get_OnMouseOverBehavior:function(){return this._onMouseOver},OnMouseOver:function(){var a=this;if(a._mouseHasEntered)return;a._onMouseOver&&a._onMouseOver.play();if(a._onHoverOver){a._onHoverOut&&a._onHoverOut.quit();a._onHoverOver.play()}a._mouseHasEntered=true},get_OnMouseOut:function(){return this._onMouseOut?this._onMouseOut.get_json():a},set_OnMouseOut:function(b){var a=this;if(!a._onMouseOut){a._onMouseOut=new Sys.Extended.UI.Animation.GenericAnimationBehavior(a.get_element());a._onMouseOut.initialize()}a._onMouseOut.set_json(b);a.raisePropertyChanged("OnMouseOut")},get_OnMouseOutBehavior:function(){return this._onMouseOut},OnMouseOut:function(e){var a=this,d=e.rawEvent,b=a.get_element(),f=e.target;if(f.nodeName!==b.nodeName)return;var c=d.relatedTarget||d.toElement;if(b!=c&&!a._isChild(b,c)){a._mouseHasEntered=false;a._onMouseOut&&a._onMouseOut.play();if(a._onHoverOut){a._onHoverOver&&a._onHoverOver.quit();a._onHoverOut.play()}}},_isChild:function(b,a){var c=document.body;while(a&&b!=a&&c!=a)try{a=a.parentNode}catch(d){return false}return b==a},get_OnHoverOver:function(){return this._onHoverOver?this._onHoverOver.get_json():a},set_OnHoverOver:function(b){var a=this;if(!a._onHoverOver){a._onHoverOver=new Sys.Extended.UI.Animation.GenericAnimationBehavior(a.get_element());a._onHoverOver.initialize()}a._onHoverOver.set_json(b);a.raisePropertyChanged("OnHoverOver")},get_OnHoverOverBehavior:function(){return this._onHoverOver},get_OnHoverOut:function(){return this._onHoverOut?this._onHoverOut.get_json():a},set_OnHoverOut:function(b){var a=this;if(!a._onHoverOut){a._onHoverOut=new Sys.Extended.UI.Animation.GenericAnimationBehavior(a.get_element());a._onHoverOut.initialize()}a._onHoverOut.set_json(b);a.raisePropertyChanged("OnHoverOut")},get_OnHoverOutBehavior:function(){return this._onHoverOut}};Sys.Extended.UI.Animation.AnimationBehavior.registerClass("Sys.Extended.UI.Animation.AnimationBehavior",Sys.Extended.UI.BehaviorBase);Sys.Extended.UI.Animation.GenericAnimationBehavior=function(b){Sys.Extended.UI.Animation.GenericAnimationBehavior.initializeBase(this,[b]);this._json=a;this._animation=a};Sys.Extended.UI.Animation.GenericAnimationBehavior.prototype={dispose:function(){this.disposeAnimation();Sys.Extended.UI.Animation.GenericAnimationBehavior.callBaseMethod(this,"dispose")},disposeAnimation:function(){this._animation&&this._animation.dispose();this._animation=a},play:function(){var a=this;if(a._animation&&!a._animation.get_isPlaying()){a.stop();a._animation.play()}},stop:function(){if(this._animation)this._animation.get_isPlaying()&&this._animation.stop(true)},quit:function(){if(this._animation)this._animation.get_isPlaying()&&this._animation.stop(false)},get_json:function(){return this._json},set_json:function(c){var a=this;if(a._json!=c){a._json=c;a.raisePropertyChanged("json");a.disposeAnimation();var b=a.get_element();if(b){a._animation=Sys.Extended.UI.Animation.buildAnimation(a._json,b);a._animation&&a._animation.initialize();a.raisePropertyChanged("animation")}}},get_animation:function(){return this._animation}};Sys.Extended.UI.Animation.GenericAnimationBehavior.registerClass("Sys.Extended.UI.Animation.GenericAnimationBehavior",Sys.Extended.UI.BehaviorBase)}if(window.Sys&&Sys.loader)Sys.loader.registerScript(b,["ExtendedAnimations","ExtendedBase"],a);else a()})();