var ESCAPE = 27
var ENTER = 13
var TAB = 9



var coordinates = ToolMan.coordinates()
var dragsort = ToolMan.dragsort()
var junkdrawer = ToolMan.junkdrawer()


function setHandle(item) {
	item.toolManDragGroup.setHandle(findHandle(item))
}


function setHandle(item) {
	item.toolManDragGroup.setHandle(findHandle(item))
}

function findHandle(item) {
	var children = item.getElementsByTagName("div")
	for (var i = 0; i < children.length; i++) {
		var child = children[i]

		if (child.getAttribute("class") == null) continue

		if (child.getAttribute("class").indexOf("handle") >= 0)
			return child
	}
	return item
}

function join(name, isDoubleClick) {
	var view = document.getElementById(name + "View")
	view.editor = document.getElementById(name + "Edit")

	var showEditor = function(event) {
		event = fixEvent(event)

		var view = this
		var editor = view.editor

		if (!editor) return true

		if (editor.currentView != null) {
			editor.blur()
		}
		editor.currentView = view

		var topLeft = coordinates.topLeftOffset(view)
		topLeft.reposition(editor)
		if (editor.nodeName == 'TEXTAREA') {
			editor.style['width'] = view.offsetWidth + "px"
			editor.style['height'] = view.offsetHeight + "px"
		}
		editor.value = view.innerHTML
		editor.style['visibility'] = 'visible'
		view.style['visibility'] = 'hidden'

		// Endi's code start
		/*
		var _browser = navigator.appName
		var isIE = false;
		if (_browser.indexOf('Microsoft') != -1)
		   isIE = true;

		 if ( isIE )
		  myOffsetTop = -50;
		 else myOffsetTop = 0;
		Position.clone(view, editor, {offsetTop: myOffsetTop, setHeight: false, setWidth: false});
		*/
		// Endi's code finish

		editor.focus()
		return false
	}

	if (isDoubleClick) {
		view.ondblclick = showEditor
	} else {
		view.onclick = showEditor
	}
	view.onmouseover = function(event)
	{
		try		{
		var view = event.target;
		view.style.background="#FFFFCC";
		} catch(e) {}
	}
	view.onmouseout = function(event)
	{
		try		{
		var view = event.target;
		view.style.background="#EEEEEE";
		} catch(e) {}
	}

	view.editor.onblur = function(event) {
		event = fixEvent(event)

		var editor = event.target
		var view = editor.currentView

		if (!editor.abandonChanges) view.innerHTML = editor.value
		editor.abandonChanges = false
		editor.style['visibility'] = 'hidden'
		editor.value = '' // fixes firefox 1.0 bug
		view.style['visibility'] = 'visible'
		//var list=junkdrawer.inspectListOrder('slideshow');
		var list=inspectListOrder('slideshow');
		updateList(list);
		editor.currentView = null
		return true
	}

	view.editor.onkeydown = function(event) {
		event = fixEvent(event)

		var editor = event.target
		if (event.keyCode == TAB || event.keyCode == ENTER) {
			editor.blur()
			return false
		}
	}

	view.editor.onkeyup = function(event) {
		event = fixEvent(event)

		var editor = event.target
		if (event.keyCode == ESCAPE) {
			editor.abandonChanges = true
			editor.blur()
			return false
		} else if (event.keyCode == TAB) {
			return false
		} else {
			return true
		}
	}

	// TODO: this method is duplicated elsewhere
	function fixEvent(event) {
		if (!event) event = window.event
		if (event.target) {
			if (event.target.nodeType == 3) event.target = event.target.parentNode
		} else if (event.srcElement) {
			event.target = event.srcElement
		}

		return event
	}
}
