export declare const NSDividerBoxCode = "var nsModuleExport = function(root,name,prototype)\r\n\t{\r\n\t\tif(typeof exports === 'object' && typeof module === 'object')\r\n\t\t{\r\n\t\t\tmodule.exports[name] = prototype;\r\n\t\t}\r\n\t\telse if (typeof define === \"function\" && define.amd)\r\n\t\t{\r\n\t\t\tdefine(name,[], function () {return prototype;});\r\n\t\t}\r\n\t\telse if(typeof exports === 'object')\r\n\t\t{\r\n\t\t\texports[name] = prototype;\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\troot[name] = prototype;\r\n\t\t}\r\n\t};var nsIsWeb = function(root)\r\n\t{\r\n\t\tif(typeof exports === 'object' && typeof module === 'object')\r\n\t\t{\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\telse if (typeof define === \"function\" && define.amd)\r\n\t\t{\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\telse if(typeof exports === 'object')\r\n\t\t{\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\treturn true;\r\n\t\t}\r\n\t};if(!nsIsWeb())\r\n\t\t{\r\nvar nsutilRef = require('./nsUtil.min.js');\r\nvar NSUtil = nsutilRef.NSUtil;\r\nvar nscontainerbaseRef = require('./nsContainerBase.min.js');\r\nvar nsExtendPrototype = nscontainerbaseRef.nsExtendPrototype;\r\nvar NSContainerBase = nscontainerbaseRef.NSContainerBase;\r\n\r\n\t\t}\r\n \"use strict\";\r\n var NSDividerBox = (function()\r\n{\r\n\tfunction NSDividerBox(component,setting) \r\n\t{\r\n\t\tthis.DIRECTION_VERTICAL = \"vertical\";\r\n\t\tthis.DIRECTION_HORIZONTAL = \"horizontal\";\r\n\t\tthis.DIVIDER_DIMENSION = 6;\r\n\t\t//should be 5 to avoid overlapping of two dividers but for collapsible it is 0\r\n\t\tthis.DEFAULT_MIN_DIMENSION = 0;\r\n\t\t\r\n\t\tthis.__setting = setting;\r\n\t\tthis.__id = null;\r\n\t\r\n\t\tthis.__component = component;\r\n\t\tthis.__direction = null;\r\n\t\tthis.__ghostDivider = null;\r\n\t\tthis.__beforeOffset = 0;\r\n\t\tthis.__afterOffset = 0;\r\n\t\tthis.__enableAutoComponentResize = true;\r\n\t\tthis.__arrDivider = [];\r\n\t\tthis.__measuringProperty = null;\r\n\t\tthis.__isResizing = false;\r\n\t\tthis.__isCollapsing = false;\r\n\t\tthis.__isInternalCall = false;\r\n\t\tthis.__maxZIndex = 0;\r\n\t\r\n\t\tthis.__currentDivider = null;\r\n\t\tthis.__currentDividerObject = null;\r\n\t\tthis.__offsetDimension = 0;\r\n\t\tthis.__collapsingElement = null;\r\n\t\tthis.__isFirstTimeRender = true;\r\n\t\tthis.__objOrignalMeasurement = {};\r\n\t\tthis.__holdTimeoutInterval = -1;\r\n\t\t\r\n\t\tthis.__documentMouseMoveRef = null;\r\n\t\tthis.__documentMouseUpRef = null;\r\n\t\tthis.base.__setBaseComponent.call(this,component);\r\n\t};\r\n\t\r\n\tnsExtendPrototype(NSContainerBase,NSDividerBox);\r\n\tNSDividerBox.prototype.constructor = NSDividerBox;\r\n\t\r\n\tNSDividerBox.prototype.initializeComponent = function() \r\n\t{\r\n\t\tthis.base.initializeComponent.call(this);\r\n\t\tthis.__setSetting();\r\n\t};\r\n\t\r\n\tNSDividerBox.prototype.setComponentProperties = function() \r\n\t{\r\n\t\tthis.base.setComponentProperties.call(this);\r\n\t\tthis.__maxZIndex = this.util.getMaxZIndex();\r\n\t};\r\n\t\r\n\tNSDividerBox.prototype.propertyChange = function(attrName, oldVal, newVal, setProperty)\r\n\t{\r\n\t\tvar attributeName = attrName.toLowerCase();\r\n\t\tthis.base.propertyChange.call(this,attrName, oldVal, newVal, setProperty);\r\n\t};\r\n\t\r\n\tNSDividerBox.prototype.resizeComponent = function() \r\n\t{\r\n\t\tthis.__clearHoldTime();\r\n\t\tif(this.__component && !this.__isCollapsing && !this.__isResizing)\r\n\t\t{\r\n\t\t\tthis.__isInternalCall = true;\r\n\t\t\tvar self = this;\r\n\t\t\tthis.__holdTimeoutInterval = setTimeout(function () {\r\n\t\t         self.__createComponents.bind(self)();\r\n\t\t       },200);\r\n\t\t}\r\n\t};\r\n\t\r\n\tNSDividerBox.prototype.componentResized = function(event) \r\n\t{\r\n\t\tif(this.__enableAutoComponentResize)\r\n\t\t{\r\n\t\t\tthis.resizeComponent();\r\n\t\t}\r\n\t\t//console.log(\"In DividerBox componentResized with direction \" + this.__direction);\r\n\t\tthis.base.componentResized.call(this,event);\r\n\t};\r\n\t\r\n\tNSDividerBox.prototype.hasAttribute = function(attributeName)\r\n\t{\r\n\t\treturn (this.__setting.hasOwnProperty(attributeName) || this.__setting.hasOwnProperty(attributeName.toLowerCase()));\r\n\t};\r\n\t\r\n\tNSDividerBox.prototype.getAttribute = function(attributeName)\r\n\t{\r\n\t\tvar value = this.__setting[attributeName];\r\n\t\tif(this.util.isUndefined(value))\r\n\t\t{\r\n\t\t\tvalue = this.__setting[attributeName.toLowerCase()];\r\n\t\t}\r\n\t\treturn value;\r\n\t};\r\n\t\r\n\tNSDividerBox.prototype.removeComponent = function()\r\n\t{\r\n\t\tif(this.__documentMouseMoveRef)\r\n\t\t{\r\n\t\t\tthis.util.removeEvent(document,\"mousemove\",this.__documentMouseMoveRef);\r\n\t\t\tthis.__documentMouseMoveRef = null;\r\n\t\t}\r\n\t\tif(this.__documentMouseUpRef)\r\n\t\t{\r\n\t\t\tthis.util.removeEvent(document,\"mouseup\",this.__documentMouseUpRef);\r\n\t\t\tthis.__documentMouseUpRef = null;\r\n\t\t}\r\n\t\tthis.base.removeComponent();\r\n\t};\r\n\t\r\n\tNSDividerBox.prototype.__setSetting = function ()\r\n\t{\r\n\t\tif(this.__setting)\r\n\t\t{\r\n\t\t\tif(this.hasAttribute(\"direction\")) \r\n\t\t\t{\r\n\t\t\t\tthis.__direction = this.getAttribute(\"direction\");\r\n\t\t\t}\r\n\t\t\tif(this.hasAttribute(\"beforeOffset\")) \r\n\t\t\t{\r\n\t\t\t\tthis.__beforeOffset = parseFloat(this.getAttribute(\"beforeOffset\"));\r\n\t\t\t}\r\n\t\t\tif(this.hasAttribute(\"afterOffset\")) \r\n\t\t\t{\r\n\t\t\t\tthis.__afterOffset =  parseFloat(this.getAttribute(\"afterOffset\"));\r\n\t\t\t}\r\n\t\t\tif(this.hasAttribute(\"labelClass\"))\r\n\t\t\t{\r\n\t\t\t\tthis.util.addStyleClass(this.label,this.getAttribute(\"labelClass\"));\r\n\t\t\t}\r\n\t\t\tif(this.hasAttribute(\"enableAutoComponentResize\")) \r\n\t\t\t{\r\n\t\t\t\tthis.__enableAutoComponentResize =  Boolean.parse(this.getAttribute(\"enableAutoComponentResize\"));\r\n\t\t\t}\r\n\t\t\tif(this.__component)\r\n\t\t\t{\r\n\t\t\t\tthis.__createComponents();\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\t\r\n\tNSDividerBox.prototype.__createComponents = function()\r\n\t{\r\n\t\tif(this.__direction == this.DIRECTION_HORIZONTAL)\r\n\t\t{\r\n\t\t\tthis.__setVariables(true);\r\n\t\t\tthis.__setHorizontalComponents();\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tthis.__setVariables(false);\r\n\t\t\tthis.__setVerticalComponents();\r\n\t\t}\r\n\t};\r\n\t\r\n\tNSDividerBox.prototype.__setVariables = function(isHorizontal)\r\n\t{\r\n\t\tvar arrDivider = this.__component.querySelectorAll(\".nsDivider\");\r\n\t\tif(arrDivider && arrDivider.length > 0)\r\n\t\t{\r\n\t\t\tvar element = null;\r\n\t\t\tfor(var count = arrDivider.length - 1;count >= 0;count--)\r\n\t\t\t{\r\n\t\t\t\telement = arrDivider[count];\r\n\t\t\t\tif(element.parentNode === this.__component)\r\n\t\t\t\t{\r\n\t\t\t\t\tthis.__component.removeChild(element);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tvar property = \"\";\r\n\t\tif(isHorizontal)\r\n\t\t{\r\n\t\t\tthis.__measuringProperty = \"top\";\r\n\t\t\tproperty = \"height\";\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tthis.__measuringProperty = \"left\";\r\n\t\t\tproperty = \"width\";\r\n\t\t}\r\n\t\tvar offset = this.util.getOffSet(this.__component);\r\n\t\tthis.__offsetDimension = offset[this.__measuringProperty];\r\n\t\t//console.log(this.__direction + \" offset is \" + this.__offsetDimension);\r\n\t\tvar children = this.__component.children;\r\n\t\tvar child = null;\r\n\t\tif(this.__isFirstTimeRender)\r\n\t\t{\r\n\t\t\tthis.__isFirstTimeRender = false;\r\n\t\t\tfor (var count = 0; count < children.length; count++) \r\n\t\t\t{\r\n\t\t\t\tchild = children[count];\r\n\t\t\t\tif(!this.util.hasStyleClass(child,\"nsResizeDetector\"))\r\n\t\t\t\t{\r\n\t\t\t\t\tif(!child.getAttribute(\"id\"))\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tchild.setAttribute(\"id\",\"compNS\" + this.util.getUniqueId())\r\n\t\t\t\t\t}\r\n\t\t\t\t\t//console.log(child.getAttribute(\"id\") + \" \" + property + \" is \" + this.util.getStyleValue(child,property,true));\r\n\t\t\t\t\tthis.__objOrignalMeasurement[child.getAttribute(\"id\")] = this.util.getStyleValue(child,property,true);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tfor (var count = 0; count < children.length; count++) \r\n\t\t\t{\r\n\t\t\t\tchild = children[count];\r\n\t\t\t\tif(!this.util.hasStyleClass(child,\"nsResizeDetector\"))\r\n\t\t\t\t{\r\n\t\t\t\t\tchild.style[property] = this.__objOrignalMeasurement[child.getAttribute(\"id\")];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\t\r\n\tNSDividerBox.prototype.__setHorizontalComponents = function() \r\n\t{\r\n\t\tthis.__setComponent(\"height\",\"minHeight\",\"nsHorizontal\");\r\n\t};\r\n\t\r\n\tNSDividerBox.prototype.__setVerticalComponents = function() \r\n\t{\r\n\t\tthis.__setComponent(\"width\",\"minWidth\",\"nsVertical\");\r\n\t};\r\n\t\r\n\t//dimensionProperty will be height,width\r\n\t//minDimensionProperty will be minHeight,minWidth\r\n\t//cssClassPrefix will be \"nsHorizontal\" and \"nsVertical\"\r\n\tNSDividerBox.prototype.__setComponent = function(dimensionProperty,minDimensionProperty,cssClassPrefix) \r\n\t{\r\n\t\tthis.util.addStyleClass(this.__component,cssClassPrefix + \"ResizerContainer\");\r\n\t\tvar children = this.__component.children;\r\n\t\tvar arrChildElement = [];\r\n\t\tvar childCount = -1;\r\n\t\tvar child = null;\r\n\t\tvar dimension = null;\r\n\t\tvar item = null;\r\n\t\tfor (var count = 0; count < children.length; count++) \r\n\t\t{\r\n\t\t\tchild = children[count];\r\n\t\t\tif(!this.util.hasStyleClass(child,\"nsResizeDetector\"))\r\n\t\t\t{\r\n\t\t\t\tdimension = child.getBoundingClientRect();\r\n\t\t\t\tif((dimension.width === 0 || dimension.height === 0) && (!this.util.isElementVisible(child)))\r\n\t\t\t\t{\r\n\t\t\t\t\tvar clonedElement = child.cloneNode(true);\r\n\t\t\t\t\tdocument.body.appendChild(clonedElement);\r\n\t\t\t\t\tdimension = clonedElement.getBoundingClientRect();\r\n\t\t\t\t\tdocument.body.removeChild(clonedElement);\r\n\t\t\t\t}\r\n\t\t\t\titem = {child:child,dimension:dimension};\r\n\t\t\t\tarrChildElement[++childCount] = item;\r\n\t\t\t}\r\n\t\t}\r\n\t\tvar totalDimensionAllocated = 0;\r\n\t\tvar expectedChildDimension = 0;\r\n\t\tvar childDimension = 0;\r\n\t\tvar offsetDimension = 0;\r\n\t\tvar minDimension = 0;\r\n\t\tfor (var count = 0; count < arrChildElement.length; count++) \r\n\t\t{\r\n\t\t\titem = arrChildElement[count];\r\n\t\t\tchild = item.child;\r\n\t\t\texpectedChildDimension = item.dimension[dimensionProperty];\r\n\t\t\tchild.setAttribute(\"ns-collapsible\",true);\r\n\t\t\tchild.setAttribute(\"ns-collapsed\",false);\r\n\t\t\tthis.util.addStyleClass(child,\"nsResizerChild\");\r\n\t\t\tthis.util.addStyleClass(child,cssClassPrefix + \"ResizerChild\");\r\n\t\t\t//substracting the dimension of the divider from its calculated dimension \r\n\t\t\tif(count < arrChildElement.length - 1)\r\n\t\t\t{\r\n\t\t\t\texpectedChildDimension = expectedChildDimension - this.DIVIDER_DIMENSION;\r\n\t\t\t}\r\n\t\t\tchildDimension = expectedChildDimension;\r\n\t\t\tchild.style[this.__measuringProperty] = totalDimensionAllocated + \"px\";\r\n\t\t\tchild.style[dimensionProperty] = childDimension + \"px\";\r\n\t\t\tminDimension = this.DEFAULT_MIN_DIMENSION;\r\n\t\t\toffsetDimension = 0;\r\n\t\t\tif(child.style[minDimensionProperty])\r\n\t\t\t{\r\n\t\t\t\tminDimension = this.util.getDimensionAsNumber(child,child.style[minDimensionProperty]);\r\n\t\t\t}\r\n\t\t\toffsetDimension = totalDimensionAllocated;\r\n\t\t\tif(count === 0)\r\n\t\t\t{\r\n\t\t\t\toffsetDimension -= this.__beforeOffset;\r\n\t\t\t}\r\n\t\t\tvar objDivider = {beforeElement:child, afterElement:null, \r\n\t\t\t\t\t\t\t  beforeElementMinDimension:minDimension, afterElementMinDimension:0,\r\n\t\t\t\t\t  \t\t  beforeElementTopDimension:offsetDimension,afterElementTopDimension:0,\r\n\t\t\t\t\t  \t\t  beforeElementNextSiblingTop:offsetDimension,afterElementNextSiblingTop:0,\r\n\t\t\t\t\t  \t\t  orignalBeforeElementDimension:0,orignalAfterElementDimension:0,\r\n\t\t\t\t\t  \t\t  fromDimension:offsetDimension + minDimension,toDimension:0,\r\n\t\t\t\t\t  \t\t  lastPositiontop:-1,lastPositionleft:-1,collapseElementString:\"before\"};\r\n\t\t\ttotalDimensionAllocated += childDimension;\r\n\t\t\tobjDivider.orignalBeforeElementDimension = totalDimensionAllocated;\r\n\t\t\tobjDivider.beforeElementNextSiblingTop = totalDimensionAllocated;\r\n\t\t\tif(count != 0)\r\n\t\t\t{\r\n\t\t\t\t//setting the next element for previous Divider for global Divider Array\r\n\t\t\t\tvar prevDividerID = this.__getDividerID(count - 1);\r\n\t\t\t\tvar objPrevDivider = this.__arrDivider[prevDividerID];\r\n\t\t\t\tobjPrevDivider.afterElement = child;\r\n\t\t\t\tif(count === arrChildElement.length - 1 && count > 1)\r\n\t\t\t\t{\r\n\t\t\t\t\tobjPrevDivider.collapseElementString = \"after\";\r\n\t\t\t\t\ttotalDimensionAllocated += this.__afterOffset;\r\n\t\t\t\t}\r\n\t\t\t\tobjPrevDivider.afterElementMinDimension = minDimension;\r\n\t\t\t\tobjPrevDivider.orignalAfterElementDimension = totalDimensionAllocated;\r\n\t\t\t\tobjPrevDivider.afterElementTopDimension = offsetDimension;\r\n\t\t\t\tobjPrevDivider.toDimension = totalDimensionAllocated;\r\n\t\t\t\tobjPrevDivider.afterElementNextSiblingTop = totalDimensionAllocated;\r\n\t\t\t\t\r\n\t\t\t\tthis.__arrDivider[prevDividerID] = objPrevDivider;\r\n\t\t\t}\r\n\t\t\tif(count < arrChildElement.length - 1)\r\n\t\t\t{\r\n\t\t\t\tvar divider = this.__getDivider(count,arrChildElement.length - 2,cssClassPrefix);\r\n\t\t\t\tvar dividerDimension = this.DIVIDER_DIMENSION;\r\n\t\t\t\tdivider.style[dimensionProperty] = dividerDimension + \"px\";\r\n\t\t\t\tdivider.style[this.__measuringProperty] = totalDimensionAllocated + \"px\";\r\n\t\t\t\ttotalDimensionAllocated += dividerDimension;\r\n\t\t\t\tthis.util.addEvent(divider,\"mousedown\",this.__dividerMouseDownHandler.bind(this));\r\n\t\t\t\tthis.__component.insertBefore(divider,objDivider.afterElement);\r\n\t\t\t\t//setting the global Divider Array\r\n\t\t\t\tthis.__arrDivider[divider.id] = objDivider;\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\t\r\n\tNSDividerBox.prototype.__dividerMouseDownHandler = function(event) \r\n\t{\r\n\t\tevent = this.util.getEvent(event);\r\n\t\tvar divider = this.util.getTarget(event);\r\n\t\tif(divider)\r\n\t\t{\r\n\t\t\tif(!this.util.hasStyleClass(divider,\"nsResizerLines\"))\r\n\t\t\t{\r\n\t\t\t\tif(!this.util.hasStyleClass(divider,\"nsDivider\"))\r\n\t\t\t\t{\r\n\t\t\t\t\tdivider = this.util.findParentBySelector(divider,\".nsDivider\");\r\n\t\t\t\t}\r\n\t\t\t\tif(divider)\r\n\t\t\t\t{\r\n\t\t\t\t\tthis.__createGhost(divider,event);\r\n\t\t\t\t\tvar objDivider = this.__arrDivider[divider.id];\r\n\t\t\t\t\tobjDivider.beforeElement.setAttribute(\"ns-collapsed\",false);\r\n\t\t\t\t\tobjDivider.lastPositiontop = -1;\r\n\t\t\t\t\tobjDivider.lastPositionleft = -1;\r\n\t\t\t\t\tthis.__currentDivider = divider;\r\n\t\t\t\t\tthis.__currentDividerObject = objDivider;\r\n\t\t\t\t\tthis.__documentMouseMoveRef = this.__documentMouseMoveHandler.bind(this);\r\n\t\t\t\t\tthis.__documentMouseUpRef = this.__documentMouseUpHandler.bind(this);\r\n\t\t\t\t\tthis.util.addEvent(document,\"mousemove\",this.__documentMouseMoveRef);\r\n\t\t\t\t\tthis.util.addEvent(document,\"mouseup\",this.__documentMouseUpRef);\r\n\t\t\t\t\tthis.__isResizing = true;\r\n\t\t\t\t\tthis.__isInternalCall = true;\r\n\t\t\t\t\tthis.util.preventDefault(event);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\t\r\n\tNSDividerBox.prototype.__documentMouseMoveHandler = function (event) \r\n\t{\r\n\t\tif(this.__isResizing)\r\n\t\t{\r\n\t\t\tevent = this.util.getEvent(event);\r\n\t\t\tvar posEvent = this.util.getEventPosition(event);\r\n\t\t\tthis.__ghostDivider.style[this.__measuringProperty] = posEvent[this.__measuringProperty] + \"px\";\r\n\t\t}\r\n\t};\r\n\t\r\n\tNSDividerBox.prototype.__documentMouseUpHandler = function (event) \r\n\t{\r\n\t\tif(this.__documentMouseMoveRef)\r\n\t\t{\r\n\t\t\tthis.util.removeEvent(document,\"mousemove\",this.__documentMouseMoveRef);\r\n\t\t\tthis.__documentMouseMoveRef = null;\r\n\t\t}\r\n\t\tif(this.__documentMouseUpRef)\r\n\t\t{\r\n\t\t\tthis.util.removeEvent(document,\"mouseup\",this.__documentMouseUpRef);\r\n\t\t\tthis.__documentMouseUpRef = null;\r\n\t\t}\r\n\t\tif(this.__isResizing)\r\n\t\t{\r\n\t\t\tthis.__performResize(event);\r\n\t\t\tif(this.__ghostDivider)\r\n\t\t\t{\r\n\t\t\t\tthis.__ghostDivider.parentNode.removeChild(this.__ghostDivider);\r\n\t\t\t\tthis.__ghostDivider = null;\r\n\t\t\t}\r\n\t\t\tthis.__isResizing = false;\r\n\t\t}\r\n\t};\r\n\t\r\n\tNSDividerBox.prototype.__collapserClickHandler = function(event)\r\n\t{\r\n\t\tevent = this.util.getEvent(event);\r\n\t\tvar target = this.util.getTarget(event);\r\n\t\ttarget = this.util.findParentBySelector(target,\".nsDivider\");\r\n\t\tif(target)\r\n\t\t{\r\n\t\t\tvar objDivider = this.__arrDivider[target.id];\r\n\t\t\tif(objDivider)\r\n\t\t\t{\r\n\t\t\t\tvar elementProperty = objDivider.collapseElementString + \"Element\";\r\n\t\t\t\tvar dimensionProperty = ((objDivider.collapseElementString === \"before\") ? \"fromDimension\" : \"toDimension\");\r\n\t\t\t\tif(Boolean.parse(objDivider[elementProperty].getAttribute(\"ns-collapsible\")))\r\n\t\t\t\t{\r\n\t\t\t\t\tthis.__currentDivider = target;\r\n\t\t\t\t\tthis.__currentDividerObject = objDivider;\r\n\t\t\t\t\tvar element = objDivider[elementProperty];\r\n\t\t\t\t\tthis.__collapsingElement = element;\r\n\t\t\t\t\tthis.util.addStyleClass(target,\"nsResizerAnimation\");\r\n\t\t\t\t\tobjDivider.beforeElement ? this.util.addStyleClass(objDivider.beforeElement,\"nsResizerAnimation\"):null;\r\n\t\t\t\t\tobjDivider.afterElement ? this.util.addStyleClass(objDivider.afterElement,\"nsResizerAnimation\") : null;\r\n\t\t\t\t\tnew this.util.transition(target,this.__animationHandler.bind(this));\r\n\t\t\t\t\tnew this.util.transition(objDivider.beforeElement,this.__animationHandler.bind(this));\r\n\t\t\t\t\tnew this.util.transition(objDivider.afterElement,this.__animationHandler.bind(this));\r\n\t\t\t\t\tvar isCollapsed = Boolean.parse(element.getAttribute(\"ns-collapsed\"));\r\n\t\t\t\t\tthis.__isCollapsing = true;\r\n\t\t\t\t\tif(isCollapsed)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\telement.style.visibility=\"inherit\";\r\n\t\t\t\t\t\tvar lastDimension = objDivider[\"lastPosition\" + this.__measuringProperty];\r\n\t\t\t\t\t\tthis.__performResize(event,lastDimension);\r\n\t\t\t\t\t\tobjDivider.lastPositiontop = -1;\r\n\t\t\t\t\t\tobjDivider.lastPositionleft = -1;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tvar position = this.util.getPosition(target);\r\n\t\t\t\t\t\tobjDivider.lastPositiontop = position.top;\r\n\t\t\t\t\t\tobjDivider.lastPositionleft = position.left;\r\n\t\t\t\t\t\tconsole.log(objDivider[dimensionProperty]);\r\n\t\t\t\t\t\tthis.__performResize(event,objDivider[dimensionProperty]);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telement.setAttribute(\"ns-collapsed\",!isCollapsed);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tthis.util.preventDefault(event);\r\n\t\t\tevent.stopImmediatePropagation();\r\n\t\t}\r\n\t};\r\n\t\r\n\tNSDividerBox.prototype.__animationHandler = function(event)\r\n\t{\r\n\t\tvar target = this.util.getTarget(event);\r\n\t\tif(target)\r\n\t\t{\r\n\t\t\tthis.util.removeStyleClass(target,\"nsResizerAnimation\");\r\n\t\t}\r\n\t\tif(this.__collapsingElement && Boolean.parse(this.__collapsingElement.getAttribute(\"ns-collapsed\")))\r\n\t\t{\r\n\t\t\tthis.__collapsingElement.style.visibility=\"hidden\";\r\n\t\t}\r\n\t\tthis.__isCollapsing = false;\r\n\t\tthis.__isVisible = !this.__isVisible;\r\n\t};\r\n\t\r\n\tNSDividerBox.prototype.__performResize = function(event,intendedPosition)\r\n\t{\r\n\t\tvar objDivider = this.__currentDividerObject;\r\n\t\tif(!this.__isCollapsing)\r\n\t\t{\r\n\t\t\tobjDivider.beforeElement.style.visibility=\"inherit\";\r\n\t\t\tobjDivider.afterElement.style.visibility=\"inherit\";\r\n\t\t}\r\n\t\tif(this.__direction == this.DIRECTION_VERTICAL)\r\n\t\t{\r\n\t\t\tvar isRelative = true;\r\n\t\t\tif(!this.util.isNumber(intendedPosition))\r\n\t\t\t{\r\n\t\t\t\tintendedPosition = event.pageX;\r\n\t\t\t\tisRelative = false;\r\n\t\t\t}\r\n\t\t\tvar xPos = this.__getValidVerticalPosition(intendedPosition,objDivider,isRelative);\r\n\t\t\tif(xPos > -1)\r\n\t\t\t{\r\n\t\t\t\tvar expectedAfterElementWidth = objDivider.afterElementNextSiblingTop - xPos;\r\n\t\t\t\tthis.__currentDivider.style.left = xPos + \"px\";\r\n\t\t\t\tobjDivider.beforeElement.style.width = (xPos - objDivider.beforeElementTopDimension) + \"px\";\r\n\t\t\t\tobjDivider.afterElement.style.width = expectedAfterElementWidth + \"px\";\r\n\t\t\t\tobjDivider.afterElement.style.left = (xPos + this.DIVIDER_DIMENSION) + \"px\";\r\n\t\t\t\tconsole.log(this.__direction + \",\" + intendedPosition + \",\" + xPos + \",\" + this.__offsetDimension + \",\" + this.__currentDivider.style.left);\r\n\t\t\t\t//console.log(intendedPosition + \",\" + objDivider.afterElementNextSiblingTop);\r\n\t\t\t}\r\n\t\t}\r\n\t\telse if(this.__direction == this.DIRECTION_HORIZONTAL)\r\n\t\t{\r\n\t\t\tvar isRelative = true;\r\n\t\t\tif(!this.util.isNumber(intendedPosition))\r\n\t\t\t{\r\n\t\t\t\tintendedPosition = event.pageY;\r\n\t\t\t\tisRelative = false;\r\n\t\t\t}\r\n\t\t\tvar yPos = this.__getValidHorizontalPosition(intendedPosition,objDivider,isRelative);\r\n\t\t\tif(yPos > -1)\r\n\t\t\t{\r\n\t\t\t\tvar expectedAfterElementHeight = objDivider.afterElementNextSiblingTop - yPos;\r\n\t\t\t\tthis.__currentDivider.style.top = yPos + \"px\";\r\n\t\t\t\tobjDivider.beforeElement.style.height = (yPos - objDivider.beforeElementTopDimension) + \"px\";\r\n\t\t\t\tobjDivider.afterElement.style.height = expectedAfterElementHeight + \"px\";\r\n\t\t\t\tobjDivider.afterElement.style.top = (yPos + this.DIVIDER_DIMENSION) + \"px\";\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis.__recalculateDividerValues();\r\n\t\t\r\n\t\tthis.__currentDivider = null;\r\n\t\tthis.__currentDividerObject = null;\r\n\t};\r\n\t\r\n\tNSDividerBox.prototype.__getValidVerticalPosition = function(proposedXPos,objDivider,isRelative)\r\n\t{\r\n\t\tvar xPos = -1;\r\n\t\tif(proposedXPos > -1 && objDivider)\r\n\t\t{\r\n\t\t\txPos = proposedXPos;\r\n\t\t\tif(!isRelative)\r\n\t\t\t{\r\n\t\t\t\txPos -= this.__offsetDimension;\r\n\t\t\t}\r\n\t\t\tif(xPos < objDivider.fromDimension)\r\n\t\t\t{\r\n\t\t\t\txPos = objDivider.fromDimension;\r\n\t\t\t}\r\n\t\t\telse if(xPos > objDivider.toDimension)\r\n\t\t\t{\r\n\t\t\t\txPos = objDivider.toDimension;\r\n\t\t\t}\r\n\t\t\tvar expectedAfterElementWidth = objDivider.afterElementNextSiblingTop - xPos;\r\n\t\t\t//mouse movement is LEFT\r\n\t\t\tif(xPos < (objDivider.beforeElementTopDimension + objDivider.beforeElementMinDimension))\r\n\t\t\t{\r\n\t\t\t\txPos = -1;\r\n\t\t\t}\r\n\t\t\t//mouse movement is RIGHT\r\n\t\t\telse if(expectedAfterElementWidth < objDivider.afterElementMinDimension)\r\n\t\t\t{\r\n\t\t\t\txPos = -1;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn xPos;\r\n\t};\r\n\t\r\n\tNSDividerBox.prototype.__getValidHorizontalPosition = function(proposedYPos,objDivider,isRelative)\r\n\t{\r\n\t\tvar yPos = -1;\r\n\t\tif(proposedYPos > -1 && objDivider)\r\n\t\t{\r\n\t\t\tyPos = proposedYPos;\r\n\t\t\tif(!isRelative)\r\n\t\t\t{\r\n\t\t\t\tyPos -= this.__offsetDimension;\r\n\t\t\t}\r\n\t\t\tif(yPos < objDivider.fromDimension)\r\n\t\t\t{\r\n\t\t\t\tyPos = objDivider.fromDimension;\r\n\t\t\t}\r\n\t\t\telse if(yPos > objDivider.toDimension)\r\n\t\t\t{\r\n\t\t\t\tyPos = objDivider.toDimension;\r\n\t\t\t}\r\n\t\t\tvar expectedAfterElementHeight = objDivider.afterElementNextSiblingTop - yPos;\r\n\t\t\t//mouse movement is UP || \r\n\t\t\tif(yPos < (objDivider.beforeElementTopDimension + objDivider.beforeElementMinDimension))\r\n\t\t\t{\r\n\t\t\t\tyPos = -1;\r\n\t\t\t}\r\n\t\t\t//mouse movement is down\r\n\t\t\telse if(expectedAfterElementHeight < objDivider.afterElementMinDimension)\r\n\t\t\t{\r\n\t\t\t\tyPos = -1;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn yPos;\r\n\t};\r\n\t\r\n\tNSDividerBox.prototype.__recalculateDividerValues = function()\r\n\t{\r\n\t\tvar count =  parseInt(this.__currentDivider.getAttribute(\"ns-index\"));\r\n\t\tvar beforeDividerID = this.__getDividerID(count - 1);\r\n\t\tvar objPrevDivider = this.__arrDivider[beforeDividerID];\r\n\t\tif(objPrevDivider)\r\n\t\t{\r\n\t\t\tobjPrevDivider.afterElementTopDimension = this.util.getDimensionAsNumber(objPrevDivider.afterElement,objPrevDivider.afterElement.style[this.__measuringProperty]);\r\n\t\t\tvar dividerDimension = this.util.getDimensionAsNumber(this.__currentDivider,this.__currentDivider.style[this.__measuringProperty]);\r\n\t\t\tobjPrevDivider.toDimension = dividerDimension - objPrevDivider.afterElementMinDimension;\r\n\t\t\tvar nextSibling = objPrevDivider.afterElement.nextElementSibling;\r\n\t\t\tif(nextSibling)\r\n\t\t\t{\r\n\t\t\t\tvar nextSiblingDimension = this.util.getDimensionAsNumber(nextSibling,nextSibling.style[this.__measuringProperty]);\r\n\t\t\t\t//substracting this as sometimes the dimension calculation has some limitations\r\n\t\t\t\tobjPrevDivider.afterElementNextSiblingTop = nextSiblingDimension - this.DIVIDER_DIMENSION;\r\n\t\t\t}\r\n\t\t}\r\n\t\tvar nextDividerID = this.__getDividerID(count + 1);\r\n\t\tvar objNextDivider = this.__arrDivider[nextDividerID];\r\n\t\tif(objNextDivider)\r\n\t\t{\r\n\t\t\tobjNextDivider.beforeElementTopDimension = this.util.getDimensionAsNumber(objNextDivider.beforeElement,objNextDivider.beforeElement.style[this.__measuringProperty]);\r\n\t\t\tobjNextDivider.fromDimension = objNextDivider.beforeElementTopDimension + objNextDivider.beforeElementMinDimension;\r\n\t\t\tvar nextSibling = objNextDivider.beforeElement.nextElementSibling;\r\n\t\t\tif(nextSibling)\r\n\t\t\t{\r\n\t\t\t\tvar nextSiblingDimension = this.util.getDimensionAsNumber(nextSibling,nextSibling.style[this.__measuringProperty]);\r\n\t\t\t\tobjNextDivider.beforeElementNextSiblingTop = nextSiblingDimension;\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\t\r\n\t//cssClassPrefix will be \"nsHorizontal\" and \"nsVertical\"\r\n\tNSDividerBox.prototype.__getDivider = function(count,totalChild,cssClassPrefix)\r\n\t{\r\n\t\tvar dividerID  = this.__getDividerID(count);\r\n\t\tvar divider = this.util.createDiv(dividerID,\"nsDivider\");\r\n\t\tthis.util.addStyleClass(divider,cssClassPrefix + \"Resizer\");\r\n\t\tdivider.setAttribute(\"ns-index\",count);\r\n\t\tif(count === 0 || count === totalChild)\r\n\t\t{\r\n\t\t\tvar dividerLines = this.util.createElement(\"span\",null,\"nsResizerLines\");\r\n\t\t\tthis.util.addStyleClass(dividerLines,cssClassPrefix + \"ResizerLines\");\r\n\t\t\tdivider.appendChild(dividerLines);\r\n\t\t\tthis.util.addEvent(dividerLines,\"click\",this.__collapserClickHandler.bind(this));\r\n\t\t\t/*if(this.__maxZIndex > 0)\r\n\t\t\t{\r\n\t\t\t\tdivider.style.zIndex = this.__maxZIndex;\r\n\t\t\t}*/\r\n\t\t}\r\n\t\treturn divider;\r\n\t};\r\n\t\r\n\tNSDividerBox.prototype.__createGhost = function(divider,event)\r\n\t{\r\n\t\tthis.__ghostDivider = divider.cloneNode(true);\r\n\t\tvar objDivider = this.__arrDivider[divider.id];\r\n\t\t//this.__ghostDivider.setAttribute(\"style\",\"{position:absolute;}\");\r\n\t\tvar posEvent = this.util.getEventPosition(event);\r\n\t\tvar offset = this.util.getCumulativeOffset(divider);\r\n\t\tthis.__ghostDivider.style.top = offset.y + \"px\";\r\n\t\tthis.__ghostDivider.style.left = offset.x + \"px\";\r\n\t\tvar rectDivider = divider.getBoundingClientRect();\r\n\t\tthis.__ghostDivider.style.height = rectDivider.height + \"px\";\r\n\t\tthis.__ghostDivider.style.width = rectDivider.width + \"px\";\r\n\t\tif(this.__maxZIndex > 0)\r\n\t\t{\r\n\t\t\tthis.__ghostDivider.style.zIndex = this.__maxZIndex + 1;\r\n\t\t}\r\n\t\tdocument.body.appendChild(this.__ghostDivider);\r\n\t};\r\n\t\r\n\tNSDividerBox.prototype.__clearHoldTime = function()\r\n\t{\r\n\t\tif(this.__holdTimeoutInterval > -1)\r\n\t\t{\r\n\t\t\tclearTimeout(this.__holdTimeoutInterval);\r\n\t\t}\r\n\t\tthis.__holdTimeoutInterval = -1;\r\n\t};\r\n\t\r\n\tNSDividerBox.prototype.__getDividerID = function(count)\r\n\t{\r\n\t\treturn this.getID() + \"#resizer\" + count;\r\n\t};\r\n\t\r\n\treturn NSDividerBox;\r\n})();\r\nnsModuleExport(this,\"NSDividerBox\",NSDividerBox);";
