Hacked By AnonymousFox

Current Path : C:/AppServ/www/stat/lib/tool-man/
Upload File :
Current File : C:/AppServ/www/stat/lib/tool-man/dragsort.js

/* Copyright (c) 2005 Tim Taylor Consulting (see LICENSE.txt) */



ToolMan._dragsortFactory = {

	makeSortable : function(item) {

		var group = ToolMan.drag().createSimpleGroup(item)



		group.register('dragstart', this._onDragStart)

		group.register('dragmove', this._onDragMove)

		group.register('dragend', this._onDragEnd)



		return group

	},



	/** 

	 * Iterates over a list's items, making them sortable, applying

	 * optional functions to each item.

	 *

	 * example: makeListSortable(myList, myFunc1, myFunc2, ... , myFuncN)

	 */

	makeListSortable : function(list) {

		var helpers = ToolMan.helpers()

		var coordinates = ToolMan.coordinates()

		var items = list.getElementsByTagName("li")



		helpers.map(items, function(item) {

			var dragGroup = dragsort.makeSortable(item)

			dragGroup.setThreshold(4)

			var min, max

			dragGroup.addTransform(function(coordinate, dragEvent) {

				return coordinate.constrainTo(min, max)

			})

			dragGroup.register('dragstart', function() {

				var items = list.getElementsByTagName("li")

				min = max = coordinates.topLeftOffset(items[0])

				for (var i = 1, n = items.length; i < n; i++) {

					var offset = coordinates.topLeftOffset(items[i])

					min = min.min(offset)

					max = max.max(offset)

				}

			})

		})

		for (var i = 1, n = arguments.length; i < n; i++)

			helpers.map(items, arguments[i])

	},



	_onDragStart : function(dragEvent) {

	},



	_onDragMove : function(dragEvent) {

		var helpers = ToolMan.helpers()

		var coordinates = ToolMan.coordinates()



		var item = dragEvent.group.element

		var xmouse = dragEvent.transformedMouseOffset

		var moveTo = null



		var previous = helpers.previousItem(item, item.nodeName)

		while (previous != null) {

			var bottomRight = coordinates.bottomRightOffset(previous)

			if (xmouse.y <= bottomRight.y && xmouse.x <= bottomRight.x) {

				moveTo = previous

			}

			previous = helpers.previousItem(previous, item.nodeName)

		}

		if (moveTo != null) {

			helpers.moveBefore(item, moveTo)

			return

		}



		var next = helpers.nextItem(item, item.nodeName)

		while (next != null) {

			var topLeft = coordinates.topLeftOffset(next)

			if (topLeft.y <= xmouse.y && topLeft.x <= xmouse.x) {

				moveTo = next

			}

			next = helpers.nextItem(next, item.nodeName)

		}

		if (moveTo != null) {

			helpers.moveBefore(item, helpers.nextItem(moveTo, item.nodeName))

			return

		}

	},



	_onDragEnd : function(dragEvent) {

		ToolMan.coordinates().create(0, 0).reposition(dragEvent.group.element)

	}

}


Hacked By AnonymousFox1.0, Coded By AnonymousFox