﻿// (c) 2010 CodePlex Foundation
(function(){var b="ExtendedAlwaysVisible";function a(){var d="repositioned",c="repositioning",a=null,b=false;Type.registerNamespace("Sys.Extended.UI");Sys.Extended.UI.HorizontalSide=function(){throw Error.invalidOperation();};Sys.Extended.UI.HorizontalSide.prototype={Left:0,Center:1,Right:2};Sys.Extended.UI.HorizontalSide.registerEnum("Sys.Extended.UI.HorizontalSide",b);Sys.Extended.UI.VerticalSide=function(){throw Error.invalidOperation();};Sys.Extended.UI.VerticalSide.prototype={Top:0,Middle:1,Bottom:2};Sys.Extended.UI.VerticalSide.registerEnum("Sys.Extended.UI.VerticalSide",b);Sys.Extended.UI.AlwaysVisibleControlBehavior=function(d){var c=this;Sys.Extended.UI.AlwaysVisibleControlBehavior.initializeBase(c,[d]);c._horizontalOffset=0;c._horizontalSide=Sys.Extended.UI.HorizontalSide.Left;c._verticalOffset=0;c._verticalSide=Sys.Extended.UI.VerticalSide.Top;c._scrollEffectDuration=.1;c._repositionHandler=a;c._animate=b;c._animation=a};Sys.Extended.UI.AlwaysVisibleControlBehavior.prototype={initialize:function(){var a=this;Sys.Extended.UI.AlwaysVisibleControlBehavior.callBaseMethod(a,"initialize");var c=a.get_element();if(!c)throw Error.invalidOperation(Sys.Extended.UI.Resources.AlwaysVisible_ElementRequired);a._repositionHandler=Function.createDelegate(a,a._reposition);if(Sys.Browser.agent==Sys.Browser.InternetExplorer&&Sys.Browser.version<7)a._animate=true;if(a._animate){a._animation=new Sys.Extended.UI.Animation.MoveAnimation(c,a._scrollEffectDuration,25,0,0,b,"px");c.style.position="absolute"}else c.style.position="fixed";$addHandler(window,"resize",a._repositionHandler);a._animate&&$addHandler(window,"scroll",a._repositionHandler);a._reposition()},dispose:function(){var b=this;if(b._repositionHandler){b._animate&&$removeHandler(window,"scroll",b._repositionHandler);$removeHandler(window,"resize",b._repositionHandler);b._repositionHandler=a}if(b._animation){b._animation.dispose();b._animation=a}Sys.Extended.UI.AlwaysVisibleControlBehavior.callBaseMethod(b,"dispose")},_reposition:function(){var a=this,d=a.get_element();if(!d)return;a.raiseRepositioning(Sys.EventArgs.Empty);var b=0,c=0;if(a._animate)if(document.documentElement&&document.documentElement.scrollTop){b=document.documentElement.scrollLeft;c=document.documentElement.scrollTop}else{b=document.body.scrollLeft;c=document.body.scrollTop}var e=$common.getClientBounds(),g=e.width,f=e.height;switch(a._horizontalSide){case Sys.Extended.UI.HorizontalSide.Center:b=Math.max(0,Math.floor(b+g/2-d.offsetWidth/2-a._horizontalOffset));break;case Sys.Extended.UI.HorizontalSide.Right:b=Math.max(0,b+g-d.offsetWidth-a._horizontalOffset);break;case Sys.Extended.UI.HorizontalSide.Left:default:b+=a._horizontalOffset}switch(a._verticalSide){case Sys.Extended.UI.VerticalSide.Middle:c=Math.max(0,Math.floor(c+f/2-d.offsetHeight/2-a._verticalOffset));break;case Sys.Extended.UI.VerticalSide.Bottom:c=Math.max(0,c+f-d.offsetHeight-a._verticalOffset);break;case Sys.Extended.UI.VerticalSide.Top:default:c+=a._verticalOffset}if(a._animate&&a._animation){a._animation.stop();a._animation.set_horizontal(b);a._animation.set_vertical(c);a._animation.play()}else{d.style.left=b+"px";d.style.top=c+"px"}a.raiseRepositioned(Sys.EventArgs.Empty)},get_HorizontalOffset:function(){return this._horizontalOffset},set_HorizontalOffset:function(b){var a=this;if(a._horizontalOffset!=b){a._horizontalOffset=b;a._reposition();a.raisePropertyChanged("HorizontalOffset")}},get_HorizontalSide:function(){return this._horizontalSide},set_HorizontalSide:function(b){var a=this;if(a._horizontalSide!=b){a._horizontalSide=b;a._reposition();a.raisePropertyChanged("HorizontalSide")}},get_VerticalOffset:function(){return this._verticalOffset},set_VerticalOffset:function(b){var a=this;if(a._verticalOffset!=b){a._verticalOffset=b;a._reposition();a.raisePropertyChanged("VerticalOffset")}},get_VerticalSide:function(){return this._verticalSide},set_VerticalSide:function(b){var a=this;if(a._verticalSide!=b){a._verticalSide=b;a._reposition();a.raisePropertyChanged("VerticalSide")}},get_ScrollEffectDuration:function(){return this._scrollEffectDuration},set_ScrollEffectDuration:function(b){var a=this;if(a._scrollEffectDuration!=b){a._scrollEffectDuration=b;a._animation&&a._animation.set_duration(b);a.raisePropertyChanged("ScrollEffectDuration")}},get_useAnimation:function(){return this._animate},set_useAnimation:function(a){a|=Sys.Browser.agent==Sys.Browser.InternetExplorer&&Sys.Browser.version<7;if(this._animate!=a){this._animate=a;this.raisePropertyChanged("useAnimation")}},add_repositioning:function(a){this.get_events().addHandler(c,a)},remove_repositioning:function(a){this.get_events().removeHandler(c,a)},raiseRepositioning:function(b){var a=this.get_events().getHandler(c);a&&a(this,b)},add_repositioned:function(a){this.get_events().addHandler(d,a)},remove_repositioned:function(a){this.get_events().removeHandler(d,a)},raiseRepositioned:function(b){var a=this.get_events().getHandler(d);a&&a(this,b)}};Sys.Extended.UI.AlwaysVisibleControlBehavior.registerClass("Sys.Extended.UI.AlwaysVisibleControlBehavior",Sys.Extended.UI.BehaviorBase);Sys.registerComponent(Sys.Extended.UI.AlwaysVisibleControlBehavior,{name:"alwaysVisible"})}if(window.Sys&&Sys.loader)Sys.loader.registerScript(b,["ExtendedAnimations","ExtendedBase"],a);else a()})();