// splitter_bar.js

/***********************************************************************************************************************************
									PUBLIC (goes into API)
***********************************************************************************************************************************/
function MdSplitter_SplitBar (config)
{
	this.Log = new MdControlsNamespace.Log(config["logLevel"], true);

	this.ID = config["ID"];
	this.resizeStep = config["resizeStep"];
	this.collapseMode = config["collapseMode"];
	this.resizeEnabled 	= config["resizeEnabled"];
	
	this.prevPaneId 	= config["prevPaneId"];
	this.nextPaneId 	= config["nextPaneId"];

	// helper objects
	this.browser = window.MdControlsNamespace.Browser;
	this.box     = window.MdControlsNamespace.Box;

	this.splitter = config["splitter"];
	this.isLiveResize = config["liveResize"];

	// Index of the splitbar in splitter
	this.Index 				= config["index"];
	this.indexInSplitItems = config["indexInSplitItems"];// index in the splitter Items collection

	this.collapseImageUrl = config["collapseImageUrl"];
	this.expandImageUrl = config["expandImageUrl"];

	this.collapsed = {};
	this.collapsed[MdSplitterNamespace.Md_SPLITTER_DIRECTION.Forward] = false;
	this.collapsed[MdSplitterNamespace.Md_SPLITTER_DIRECTION.Backward] = false;
}

MdSplitter_SplitBar.prototype.Init = function () 
{
	this.prevPane 			= this.splitter.GetPaneById(this.prevPaneId);
	this.nextPane 			= this.splitter.GetPaneById(this.nextPaneId);

	// add the event handlers 
	MdControlsNamespace.DomEventMixin.Initialize(this);

	var direction = MdSplitterNamespace.Md_SPLITTER_DIRECTION.Forward;
	if (this.IsCollapseDirectionEnabled(direction))
	{
		// forward collapse bar events
		var collapseElement = this.GetCollapseBarElement(direction);

		this.AttachDomEvent(collapseElement, "mousedown" , "CollapseBarFwdOnMouseDown");
		this.AttachDomEvent(collapseElement, "mouseover" , "CollapseBarFwdOnMouseOver" );
		this.AttachDomEvent(collapseElement, "mouseout"  , "CollapseBarFwdOnMouseOut");
	}

	var direction = MdSplitterNamespace.Md_SPLITTER_DIRECTION.Backward;
	if (this.IsCollapseDirectionEnabled(direction))
	{
		// backward collapse bar events
		var collapseElement = this.GetCollapseBarElement(direction);

		this.AttachDomEvent(collapseElement, "mousedown" , "CollapseBarBackOnMouseDown");
		this.AttachDomEvent(collapseElement, "mouseover" , "CollapseBarBackOnMouseOver" );
		this.AttachDomEvent(collapseElement, "mouseout"  , "CollapseBarBackOnMouseOut");
	}
	
	// splitter bar events
	if (this.resizeEnabled) 
	{
		var splitBarElement = this.GetSplitterBarElement();	
		this.AttachDomEvent(splitBarElement, "mousedown" , "OnMouseDown");
		this.AttachDomEvent(splitBarElement, "mouseover" , "OnMouseOver");
		this.AttachDomEvent(splitBarElement, "mouseout"  , "OnMouseOut");
	}
	
	this.setCursorStyle();
	
	var splitBarSize = this.splitter.getSplitBarsSize() / this.splitter.splitBars.length;
	
	var spacerElement = document.getElementById("Md_SPLITBAR_SPACER_" + this.ID);
	
	if (this.splitter.IsVertical()) {
		this.box.SetOuterWidth(this.GetContainerElement(), splitBarSize);
		if (spacerElement)
		{
			spacerElement.style.width = splitBarSize + "px";
		}
	} 
	else 
	{
		this.box.SetOuterHeight(this.GetContainerElement(), splitBarSize);
		if (spacerElement)
		{
			spacerElement.style.height = splitBarSize + "px";
		}
	}
}

MdSplitter_SplitBar.prototype.IsCollapseDirectionEnabled = function (direction) 
{
	if (this.collapseMode == MdSplitterNamespace.Md_SPLITBAR_COLLAPSE_MODE.Both)
	{
		return true;		
	}
	
	if (
		direction == MdSplitterNamespace.Md_SPLITTER_DIRECTION.Forward &&
		this.collapseMode == MdSplitterNamespace.Md_SPLITBAR_COLLAPSE_MODE.Forward
		)
	{
		return true;		
	}
	
	if (
		direction == MdSplitterNamespace.Md_SPLITTER_DIRECTION.Backward &&
		this.collapseMode == MdSplitterNamespace.Md_SPLITBAR_COLLAPSE_MODE.Backward
		)
	{
		return true;		
	}
	
	
	return false;
}

MdSplitter_SplitBar.prototype.IsResizeEnabled = function () 
{
	return this.resizeEnabled;
}

MdSplitter_SplitBar.prototype.GetContainerElement = function () 
{
	return this.GetSplitterBarElement();
}

MdSplitter_SplitBar.prototype.GetSplitterBarElement = function () 
{

	return document.getElementById(this.ID);
}

MdSplitter_SplitBar.prototype.GetCollapseBarElement = function (direction) 
{
	var directionStr = "Forward";
	if (direction == MdSplitterNamespace.Md_SPLITTER_DIRECTION.Backward) {
		directionStr = "Backward";		
	}
	
	return document.getElementById('Md_SPLITTER_BAR_COLLAPSE_' + directionStr + '_' + this.ID);
}

MdSplitter_SplitBar.prototype.IsCollapsed = function (direction) 
{
	
	return this.collapsed[direction];
}

MdSplitter_SplitBar.prototype.GetWidth = function () 
{
	return this.box.GetOuterWidth(this.GetSplitterBarElement());
}

MdSplitter_SplitBar.prototype.GetHeight = function () 
{
	return this.box.GetOuterHeight(this.GetSplitterBarElement());
}

MdSplitter_SplitBar.prototype.CollapseBarFwdOnMouseOut = function (e) 
{

	MdControlsNamespace.DomEvent.StopPropagation(e);
	
	var collapseBarElement = this.GetCollapseBarElement(MdSplitterNamespace.Md_SPLITTER_DIRECTION.Forward);
	collapseBarElement.className = (this.splitter.IsVertical()) ? 'collapseBar' : 'collapseBarHorizontal';
	
	return false;
}

MdSplitter_SplitBar.prototype.CollapseBarFwdOnMouseOver = function (e) 
{
	MdControlsNamespace.DomEvent.StopPropagation(e);
	
	var collapseBarElement = this.GetCollapseBarElement(MdSplitterNamespace.Md_SPLITTER_DIRECTION.Forward);
	collapseBarElement.className = (this.splitter.IsVertical()) ? 'collapseBarOver' : 'collapseBarOverHorizontal';
	
	return false;
}

MdSplitter_SplitBar.prototype.CollapseBarFwdOnMouseDown = function (e) 
{
	if (e.button && e.button != 1) return true;// leave only the left button click
	
	MdControlsNamespace.DomEvent.PreventDefault(e);
	MdControlsNamespace.DomEvent.StopPropagation(e);
	
	this.collapseTargetPane(MdSplitterNamespace.Md_SPLITTER_DIRECTION.Forward);
	
	var self = this;
	var setCollapseBarNormalState = function ()
	{
		self.CollapseBarFwdOnMouseOut();		
	}
	
	setTimeout(setCollapseBarNormalState, 10);
	
	return false;
}

MdSplitter_SplitBar.prototype.CollapseBarBackOnMouseOut = function (e) 
{

	MdControlsNamespace.DomEvent.StopPropagation(e);

	var collapseBarElement = this.GetCollapseBarElement(MdSplitterNamespace.Md_SPLITTER_DIRECTION.Backward);
	collapseBarElement.className = (this.splitter.IsVertical()) ? 'collapseBar' : 'collapseBarHorizontal';
	
	return false;
}

MdSplitter_SplitBar.prototype.CollapseBarBackOnMouseOver = function (e) 
{
	MdControlsNamespace.DomEvent.StopPropagation(e);
	
	var collapseBarElement = this.GetCollapseBarElement(MdSplitterNamespace.Md_SPLITTER_DIRECTION.Backward);
	collapseBarElement.className = (this.splitter.IsVertical()) ? 'collapseBarOver' : 'collapseBarOverHorizontal';
	
	return false;
}

MdSplitter_SplitBar.prototype.CollapseBarBackOnMouseDown = function (e) 
{
	if (e.button && e.button != 1) return true;// leave only the left button click
	
	MdControlsNamespace.DomEvent.PreventDefault(e);
	MdControlsNamespace.DomEvent.StopPropagation(e);

	this.collapseTargetPane(MdSplitterNamespace.Md_SPLITTER_DIRECTION.Backward);
	
	var self = this;
	var setCollapseBarNormalState = function ()
	{
		self.CollapseBarBackOnMouseOut();		
	}
	
	setTimeout(setCollapseBarNormalState, 10);
	
	return false;
}


MdSplitter_SplitBar.prototype.Dispose = function () 
{
	this.DisposeDomEventHandlers();
}

MdSplitter_SplitBar.prototype.OnMouseDown = function (e) 
{
	// calculate the max delta which can be done for the current splitter ( for the left side and for the right side of the current splitter position)
	
	MdControlsNamespace.DomEvent.PreventDefault(e);
	MdControlsNamespace.DomEvent.StopPropagation(e);
	

	/*
		Get the splitter w or h according to the splitter orientation

		get the avail w/h of the panels that are at the left (or top) side of the splitterbar
		get the avail w/h of the panels that are at the right (or bottom) side of the splitterbar

	*/
	if (this.IsCollapsed(MdSplitterNamespace.Md_SPLITTER_DIRECTION.Forward) || this.IsCollapsed(MdSplitterNamespace.Md_SPLITTER_DIRECTION.Backward)) return false;

	this.maxDecreaseDelta = this.getAvailDecreaseDelta();
	this.maxIncreaseDelta = this.getAvailIncreaseDelta();
	
	var element = this.GetSplitterBarElement();

	var pos = window.MdControlsNamespace.Screen.GetElementPosition(element);
	
	this.Log.Debug(['SplitBar.onMouseDown: panex[%d], paney[%d], mousex[%d], mousey[%d]\\n' + 
			'maxDecrease[%d], maxIncrease[%d]', pos.x, pos.y, e.clientX, e.clientY,this.maxDecreaseDelta,this.maxIncreaseDelta]);

	this.mouseStartX = e.clientX;
	this.mouseStartY = e.clientY;

	this.targetResizePane = this.splitter.getAvailAdjacentPane(this.prevPane.Index + 1, MdSplitterNamespace.Md_SPLITTER_DIRECTION.Backward);
	
	if (this.targetResizePane == null) return false;
	
	this.liveResMouseX = e.clientX;
	this.liveResMouseY = e.clientY;
	this.liveResPaneStartSize = this.targetResizePane.getVarSize();

	this.mouseOffsetX = e.clientX - pos.x;
	this.mouseOffsetY = e.clientY - pos.y;
	
	this.handlerStartLeftPos = pos.x;
	this.handlerStartTopPos = pos.y;

	this.currentDelta = 0;

	this.AttachDomEvent(document, "mouseup"   , "OnMouseUp");
	this.AttachDomEvent(document, "mousemove" , "OnMouseMove");
	
	return false;
}

MdSplitter_SplitBar.prototype.OnMouseMove = function (e) 
{
	MdControlsNamespace.DomEvent.PreventDefault(e);
	MdControlsNamespace.DomEvent.StopPropagation(e);
	
	var currentDelta = 0;
	if (this.splitter.IsVertical()) 
	{
		currentDelta = e.clientX - this.mouseStartX;
	} 
	else 
	{
		currentDelta = e.clientY - this.mouseStartY;
	}
	
	//this.Log.Debug(["SplitBar.onMouseMove current delta[%d], Max Decrease[%d], Max Increase[%d], MouseOffset[%d], resizeStep[%d]", currentDelta, this.maxDecreaseDelta, this.maxIncreaseDelta, this.mouseOffsetX, this.resizeStep]);

	var helperBarOffset = 150;
	if (!this.helperBar) 
	{

		var helperBarElm 			= document.createElement('TABLE');
		helperBarElm.className 		= this.splitter.GetContainerElement().className;
		helperBarElm.style.borderCollapse	= "separate";
		helperBarElm.cellSpacing	= helperBarOffset;
		helperBarElm.cellPadding	= 0;
		helperBarElm.style.borderWidth = "0px";
		helperBarElm.style.background = "";
		helperBarElm.style.cursor = this.getCursorStyle();
		
		var tBody = document.createElement('TBODY');
		helperBarElm.appendChild(tBody);
		
		var TR=document.createElement('TR');
		tBody.appendChild(TR);
		
		var TD=document.createElement('TD');
		TR.appendChild(TD);
		
		var decoration 			= document.createElement('DIV');
		decoration.className	= "helperBarDrag";
		decoration.style.width	= this.GetWidth() - this.splitter.borderSize * (this.splitter.IsVertical()? 1 : 0 ) + "px";
		decoration.style.height	= Math.ceil(this.GetHeight() - this.splitter.borderSize * (!this.splitter.IsVertical()? 1 : 1/2 )) + "px";

		TD.appendChild(decoration);
		
		helperBarElm.style.position = 'absolute';
		//helperBarElm.style.border = '1px solid red';

		var ffAddonLeft = 0;
		var ffAddonTop = 0; 
		if (!document.all && this.splitter.IsNested())
		{
			if (this.splitter.IsVertical()) {
				ffAddonTop += 2;				
			} else {
				ffAddonLeft += 2;
			}
		}
		
		helperBarElm.style.left   = this.handlerStartLeftPos - helperBarOffset + ffAddonLeft + "px";
		helperBarElm.style.top    = this.handlerStartTopPos - helperBarOffset + ffAddonTop+ "px";

		//helperBarElm.style.border = "1px solid red"
		helperBarElm.style.zIndex = 1;

		this.helperBar = document.body.insertBefore(helperBarElm, document.body.firstChild);
		this.helperBarDecoration = decoration;
	}
		
	var maxReached = false;
	if (currentDelta < ((-1) * this.maxDecreaseDelta))
	{
		maxReached = true;
		currentDelta = this.maxDecreaseDelta * (-1);
	}

	if (currentDelta > this.maxIncreaseDelta )
	{
		maxReached = true;
		currentDelta = this.maxIncreaseDelta;
	}

	if (this.resizeStep > 0 && !this.isLiveResize) 
	{
		currentDelta -= currentDelta % this.resizeStep;
	}

	this.helperBarDecoration.className = 'helperBarDrag';
	
	if (this.splitter.IsVertical())
	{
		this.helperBar.style.left = this.handlerStartLeftPos - helperBarOffset  + this.splitter.borderSize/2 + currentDelta + "px";
	} 
	else 
	{
		this.helperBar.style.top  = this.handlerStartTopPos - helperBarOffset  + this.splitter.borderSize/2 + currentDelta + "px";
	}
	
	if (!this.isLiveResize) 
	{	
		this.currentDelta = currentDelta;
	}
	

	if (maxReached) {
		// stop resizing
		if (this.helperBarDecoration) 
		{
			this.helperBarDecoration.className = 'helperBarError';
		}
		if(!this.isLiveResize)
		{
			return false;
		}
	}
	 
	if(this.isLiveResize)
	{
		// TODO - optimization is needed
		var timeoutInterval = 32;//ms

		if (this.lastUpdate && ((new Date() - this.lastUpdate) < timeoutInterval) ) 
		{
			this.Log.Warning(['MdSplitter_SplitBar.onMouseMove Skip this live resize.']);
			return false;
		}
		
		this.lastUpdate = new Date();

		if (this.splitter.IsVertical()) 
		{
			
			currentDelta = e.clientX - this.liveResMouseX;
		} 
		else 
		{
			currentDelta = e.clientY - this.liveResMouseY;
		}

		this.liveResMouseX = e.clientX;
		this.liveResMouseY = e.clientY;

		var deltaToApply = currentDelta;
		if (maxReached)
		{
			var paneStartSize = this.liveResPaneStartSize;
			var paneCurrentSize = this.targetResizePane.getVarSize();
			
			var mouseDelta = (this.splitter.IsVertical()) ?(this.liveResMouseX - this.mouseStartX) :(this.liveResMouseY - this.mouseStartY) ;
			
			if (mouseDelta > 0)
			{
				deltaToApply = this.maxIncreaseDelta - (paneCurrentSize - paneStartSize);
			} else {
				deltaToApply = this.maxDecreaseDelta - (paneStartSize - paneCurrentSize);
				deltaToApply *= -1;
			}
			if (deltaToApply == 0) return;
		}
		this.targetResizePane.Resize(deltaToApply, MdSplitterNamespace.Md_SPLITTER_DIRECTION.Forward)
	}

	return false;
}

MdSplitter_SplitBar.prototype.OnMouseUp = function (e) 
{

	MdControlsNamespace.DomEvent.PreventDefault(e);
	MdControlsNamespace.DomEvent.StopPropagation(e);
	
	this.DetachDomEvent(document, "mousemove", "OnMouseMove");
	this.DetachDomEvent(document, "mouseup"  , "OnMouseUp");

	if (this.helperBar) 
	{
		this.helperBar.parentNode.removeChild(this.helperBar);
		this.helperBar = null;
	}

	if (!this.isLiveResize && this.currentDelta != 0) 
	{
		
		this.Log.Debug(["SplitBar.onMouseUp Going to resize. delta is [%d]", this.currentDelta]);
		
		this.targetResizePane.Resize(this.currentDelta, MdSplitterNamespace.Md_SPLITTER_DIRECTION.Forward);
	}
	return false;
}	

MdSplitter_SplitBar.prototype.OnMouseOver = function (e) 
{

	if (!this.isInactive) 
	{
		var slitterBarElement = this.GetSplitterBarElement();
		slitterBarElement.className = (this.splitter.IsVertical()) ? 'resizeBarOver' : 'resizeBarOverHorizontal';
	}
}


MdSplitter_SplitBar.prototype.OnMouseOut = function (e) 
{
	if (!this.isInactive) 
	{
		var slitterBarElement = this.GetSplitterBarElement();
		slitterBarElement.className = (this.splitter.IsVertical()) ? 'resizeBar' : 'resizeBarHorizontal';
	}
}

/***********************************************************************************************************************************
									PRIVATE
***********************************************************************************************************************************/

MdSplitter_SplitBar.prototype.setCursorStyle = function () 
{
	var splitBarElement = this.GetSplitterBarElement();
	splitBarElement.style.cursor=this.getCursorStyle();
}

MdSplitter_SplitBar.prototype.getCursorStyle = function () 
{
	
	if (!this.IsResizeEnabled())
	{
		return '';
	}

	if (this.splitter.IsVertical()) 
	{
		return 'w-resize';
	}
	else 
	{
		return 'n-resize';
	}	
}


MdSplitter_SplitBar.prototype.getCollapseTarget = function (direction) 
{
	return (direction == MdSplitterNamespace.Md_SPLITTER_DIRECTION.Forward) ? this.prevPane : this.nextPane;
}

MdSplitter_SplitBar.prototype.getAvailDecreaseDelta = function () 
{

	var currentPane = this.splitter.getAvailAdjacentPane(this.prevPane.Index + 1, MdSplitterNamespace.Md_SPLITTER_DIRECTION.Backward);
	
	if (currentPane == null) return 0;
	
	var currentPaneAvailDelta = 0;

	currentPaneAvailDelta = currentPane.getAvailDecreaseDelta();
	
	if (currentPaneAvailDelta <= 0) return 0;
	
	var targetPanesAvailDelta = this.splitter.getAvailIncreaseDelta(currentPane.Index, MdSplitterNamespace.Md_SPLITTER_DIRECTION.Forward);

	return Math.min(targetPanesAvailDelta, currentPaneAvailDelta);
}

MdSplitter_SplitBar.prototype.getAvailIncreaseDelta = function () 
{

	var currentPane = this.splitter.getAvailAdjacentPane(this.prevPane.Index + 1, MdSplitterNamespace.Md_SPLITTER_DIRECTION.Backward);
	if (currentPane == null) return 0;
	
	var currentPaneAvailDelta = 0;

	currentPaneAvailDelta = currentPane.getAvailIncreaseDelta();
	
	if (currentPaneAvailDelta <= 0) return 0;
	
	var targetPanesAvailDelta = this.splitter.getAvailDecreaseDelta(currentPane.Index, MdSplitterNamespace.Md_SPLITTER_DIRECTION.Forward);

	return Math.min(targetPanesAvailDelta, currentPaneAvailDelta);
}

MdSplitter_SplitBar.prototype.getCollapseBarHeight = function (direction) 
{
	if (this.GetCollapseBarElement(direction) == null) return 0;
	return this.box.GetOuterHeight(this.GetCollapseBarElement(direction));
}

MdSplitter_SplitBar.prototype.getCollapseImageUrl = function (direction)
{
	var imgSrc = this.collapseImageUrl; 
	if (direction == MdSplitterNamespace.Md_SPLITTER_DIRECTION.Backward) {
		imgSrc = this.expandImageUrl;
	}
		
	return imgSrc;
}

MdSplitter_SplitBar.prototype.getExpandImageUrl = function (direction)
{
	var imgSrc = this.expandImageUrl; 
	if (direction == MdSplitterNamespace.Md_SPLITTER_DIRECTION.Backward) {
		imgSrc = this.collapseImageUrl;
	}
		
	return imgSrc;
}


MdSplitter_SplitBar.prototype.collapseTargetPane = function (direction)
{
	var targetPane = this.getCollapseTarget(direction);
	
	if (!targetPane) return false;
	
	if (targetPane.IsLocked()) {
		this.showExpandCollapseError(direction);
		return false;
	}

	var collapseBarElement = this.GetCollapseBarElement(direction);
	var splitterBarElement = this.GetSplitterBarElement();

	var collapseIsSuccess = false;

	if (this.IsCollapsed(direction)) 
	{
		
		// if we have adjacent splitter bars with different directions - its possible
		// the pane to be expanded already
		if (targetPane.IsCollapsed()) 
		{
			if (this.splitter.expandPane(targetPane, direction))
			{
				if (collapseBarElement != null) {
					collapseBarElement.src = this.getCollapseImageUrl(direction);
				}

				this.setActive();
				this.collapsed[direction] = false;
				collapseIsSuccess = true;

			} 
			else 
			{
				this.showExpandCollapseError(direction);
			};
		}		
	}
	else 
	{
		
		// if we have adjacent splitter bars with different directions - its possible
		// the pane to be collapsed already
		if (!targetPane.IsCollapsed()) 
		{
			if (this.splitter.collapsePane(targetPane, direction)) 
			{
				if (collapseBarElement != null) {
					collapseBarElement.src = this.getExpandImageUrl(direction);
				}
				
				this.setInactive();
				this.collapsed[direction] = true;
				collapseIsSuccess = true;
			}
			else 
			{
				this.showExpandCollapseError(direction);
			}
		}
	}
	
	if (collapseIsSuccess)
	{
		var oppositeDirection = (direction == MdSplitterNamespace.Md_SPLITTER_DIRECTION.Forward) ?MdSplitterNamespace.Md_SPLITTER_DIRECTION.Backward :MdSplitterNamespace.Md_SPLITTER_DIRECTION.Forward ;
		var collapseElement = this.GetCollapseBarElement(oppositeDirection);
		if (collapseElement != null)
		{
			collapseElement.style.display =  (targetPane.IsCollapsed()) ? "none" : "";
		}		
	}
	
	
	return collapseIsSuccess;
}

MdSplitter_SplitBar.prototype.showExpandCollapseError = function (direction)
{
	var collapseBarElement = this.GetCollapseBarElement(direction);
	if (collapseBarElement == null) return;

	var normalCss = (this.splitter.IsVertical()) ? 'collapseBar' : 'collapseBarHorizontal';
	var errorCss  = (this.splitter.IsVertical()) ? 'collapseBarError' : 'collapseBarErrorHorizontal';
	
	setTimeout(function () {setCollapseBarCss (errorCss)}, 0);
	setTimeout(function () {setCollapseBarCss (normalCss)}, 200);
	setTimeout(function () {setCollapseBarCss (errorCss)}, 400);
	setTimeout(function () {setCollapseBarCss (normalCss)}, 600);
	setTimeout(function () {setCollapseBarCss (errorCss)}, 800);
	setTimeout(function () {setCollapseBarCss (normalCss)}, 1000);

	function setCollapseBarCss (cssName) 
	{
		collapseBarElement.className = cssName;
	}
}

MdSplitter_SplitBar.prototype.setActive = function ()
{
	var splitterBarElement = this.GetSplitterBarElement();
	this.setCursorStyle();
	splitterBarElement.className = (this.splitter.IsVertical()) ? 'resizeBar' : 'resizeBarHorizontal';
	this.isInactive = false;
}

MdSplitter_SplitBar.prototype.setInactive = function ()
{
	var splitterBarElement = this.GetSplitterBarElement();
	splitterBarElement.style.cursor = '';
	var cssClass = (this.splitter.IsVertical()) ? 'resizeBarInactive' : 'resizeBarInactiveHorizontal';
	splitterBarElement.className = (this.splitter.IsVertical()) ? 'resizeBarInactive' : 'resizeBarInactiveHorizontal';

	this.isInactive = true;
}

//BEGIN_ATLAS_NOTIFY
if (typeof(Sys) != "undefined")
{
	if (Sys.Application != null && Sys.Application.notifyScriptLoaded != null)
	{
		Sys.Application.notifyScriptLoaded();
	}
}
//END_ATLAS_NOTIFY