﻿Type.registerNamespace('AjaxControlToolkit');AjaxControlToolkit.DropShadowBehavior=function(element){AjaxControlToolkit.DropShadowBehavior.initializeBase(this,[element]);this._opacity=1.0;this._width=5;this._shadowDiv=null;this._trackPosition=null;this._trackPositionDelay=50;this._timer=null;this._tickHandler=null;this._roundedBehavior=null;this._shadowRoundedBehavior=null;this._rounded=false;this._radius=5;this._lastX=null;this._lastY=null;this._lastW=null;this._lastH=null;};AjaxControlToolkit.DropShadowBehavior.prototype={initialize:function(){AjaxControlToolkit.DropShadowBehavior.callBaseMethod(this,'initialize');var e=this.get_element();if(CommonToolkitScripts.getCurrentStyle(e,'position',e.style.position)!="absolute"){e.style.position="relative";}if(this._rounded){this.setupRounded();}if(this._trackPosition){this.startTimer();}this.setShadow();},dispose:function(){this.stopTimer();this.disposeShadowDiv();AjaxControlToolkit.DropShadowBehavior.callBaseMethod(this,'dispose');},buildShadowDiv:function(){var e=this.get_element();if(!this.get_isInitialized()||!e||!this._width)return;var div=document.createElement("DIV");div.style.backgroundColor="black";div.style.position="absolute";if(e.id){div.id=e.id+"_DropShadow";}this._shadowDiv=div;e.parentNode.appendChild(div);if(this._rounded){this._shadowDiv.style.height=Math.max(0,e.offsetHeight-(2*this._radius))+"px";if(!this._shadowRoundedBehavior){this._shadowRoundedBehavior=$create(AjaxControlToolkit.RoundedCornersBehavior,{"Radius":this._radius},null,null,this._shadowDiv);}else{this._shadowRoundedBehavior.set_Radius(this._radius);}}else if(this._shadowRoundedBehavior){this._shadowRoundedBehavior.set_Radius(0);}if(this._opacity!=1.0){this.setupOpacity();}this.setShadow(false,true);this.updateZIndex();},disposeShadowDiv:function(){if(this._shadowDiv){if(this._shadowDiv.parentNode){this._shadowDiv.parentNode.removeChild(this._shadowDiv);}this._shadowDiv=null;}if(this._shadowRoundedBehavior){this._shadowRoundedBehavior.dispose();this._shadowRoundedBehavior=null;}},onTimerTick:function(){this.setShadow();},startTimer:function(){if(!this._timer){if(!this._tickHandler){this._tickHandler=Function.createDelegate(this,this.onTimerTick);}this._timer=new Sys.Timer();this._timer.set_interval(this._trackPositionDelay);this._timer.add_tick(this._tickHandler);this._timer.set_enabled(true);}},stopTimer:function(){if(this._timer){this._timer.remove_tick(this._tickHandler);this._timer.set_enabled(false);this._timer.dispose();this._timer=null;}},setShadow:function(force,norecurse){var e=this.get_element();if(!this.get_isInitialized()||!e||(!this._width&&!force))return;var existingShadow=this._shadowDiv;if(!existingShadow){this.buildShadowDiv();}var location=AjaxControlToolkit.CommonToolkitScripts.getLocation(e);if(force||this._lastX!=location.x||this._lastY!=location.y||!existingShadow){this._lastX=location.x;this._lastY=location.y;var w=this.get_Width();if((e.parentNode.style.position=="absolute")||(e.parentNode.style.position=="fixed")){location.x=w;location.y=w;}else{location.x+=w;location.y+=w;}AjaxControlToolkit.CommonToolkitScripts.setLocation(this._shadowDiv,location);}var h=e.offsetHeight;var w=e.offsetWidth;if(force||h!=this._lastH||w!=this._lastW||!existingShadow){this._lastW=w;this._lastH=h;if(!this._rounded||!existingShadow||norecurse){this._shadowDiv.style.width=w+"px";this._shadowDiv.style.height=h+"px";}else{this.disposeShadowDiv();this.setShadow();}}if(this._shadowDiv){this._shadowDiv.style.visibility=CommonToolkitScripts.getCurrentStyle(e,'visibility');}},setupOpacity:function(){if(this.get_isInitialized()&&this._shadowDiv){CommonToolkitScripts.setElementOpacity(this._shadowDiv,this._opacity);}},setupRounded:function(){if(!this._roundedBehavior&&this._rounded){this._roundedBehavior=$create(AjaxControlToolkit.RoundedCornersBehavior,null,null,null,this.get_element());}if(this._roundedBehavior){this._roundedBehavior.set_Radius(this._rounded?this._radius:0);}},updateZIndex:function(){if(!this._shadowDiv)return;var e=this.get_element();var targetZIndex=e.style.zIndex;var shadowZIndex=this._shadowDiv.style.zIndex;if(shadowZIndex&&targetZIndex&&targetZIndex>shadowZIndex){return;}else{targetZIndex=Math.max(2,targetZIndex);shadowZIndex=targetZIndex-1;}e.style.zIndex=targetZIndex;this._shadowDiv.style.zIndex=shadowZIndex;},updateRoundedCorners:function(){if(this.get_isInitialized()){this.setupRounded();this.disposeShadowDiv();this.setShadow();}},get_Opacity:function(){return this._opacity;},set_Opacity:function(value){if(this._opacity!=value){this._opacity=value;this.setupOpacity();this.raisePropertyChanged('Opacity');}},get_Rounded:function(){return this._rounded;},set_Rounded:function(value){if(value!=this._rounded){this._rounded=value;this.updateRoundedCorners();this.raisePropertyChanged('Rounded');}},get_Radius:function(){return this._radius;},set_Radius:function(value){if(value!=this._radius){this._radius=value;this.updateRoundedCorners();this.raisePropertyChanged('Radius');}},get_Width:function(){return this._width;},set_Width:function(value){if(value!=this._width){this._width=value;if(this._shadowDiv){Sys.UI.DomElement.setVisible(this._shadowDiv,value>0);}this.setShadow(true);this.raisePropertyChanged('Width');}},get_TrackPositionDelay:function(){return this._trackPositionDelay;},set_TrackPositionDelay:function(value){if(value!=this._trackPositionDelay){this._trackPositionDelay=value;if(this._trackPosition){this.stopTimer();this.startTimer();}this.raisePropertyChanged('TrackPositionDelay');}},get_TrackPosition:function(){return this._trackPosition;},set_TrackPosition:function(value){if(value!=this._trackPosition){this._trackPosition=value;if(this.get_element()){if(value){this.startTimer();}else{this.stopTimer();}}this.raisePropertyChanged('TrackPosition');}}};AjaxControlToolkit.DropShadowBehavior.registerClass('AjaxControlToolkit.DropShadowBehavior',AjaxControlToolkit.BehaviorBase);
if(typeof(Sys)!=='undefined')Sys.Application.notifyScriptLoaded();