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 findHandle(item) {	var children = item.getElementsByTagName("div")	for (var i = 0; i < children.length; i++) {		var child = children[i]		
		if (child.className == "handle") {
			return child
		}
	}
}

var reorderOn = false;



function toggleReOrder(listId, linkObj) {
	var linkItem = document.getElementById(linkObj);
	var item = document.getElementById(listId);
	var children = item.getElementsByTagName("div")
	

	for (var i = 0; i < children.length; i++) {		var child = children[i]
		if (child.className == "handle") {
			if (child.style.display == "none") {
				child.style.display = "block";
				linkItem.innerHTML = "[done]";
			} else if (child.style.display == "block") {
				child.style.display = "none";
				linkItem.innerHTML = "[sort]";
			} else {
				child.style.display = "block";
				linkItem.innerHTML = "[done]";
			}
		}
	}
}

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

	var editBtn = document.getElementById(editBtn);
	editBtn.view = view;
	
	var saveBtn = document.getElementById(saveBtn);
	saveBtn.editor = document.getElementById(name + "Edit")
	
	editBtn.saveBtn = saveBtn;
	saveBtn.editBtn = editBtn;
	
	
	editBtn.onclick = function(event) {
	
		event = fixEvent(event)

		var view = this.view
		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'
		this.style.display = "none";
		this.saveBtn.style.display = "block";
		
		var txtAreas = view.editor.getElementsByTagName('textarea');
		for (var i = 0; i < txtAreas.length; i++) {
			txtAreas[i].style.overflow = "auto";
		}
		return false
	}

	saveBtn.onclick = function(event) {
		event = fixEvent(event)

		var editor = this.editor
		var view = this.editor.currentView

		//if (!editor.abandonChanges) view.innerHTML = editor.value
		//editor.abandonChanges = false
		editor.style['visibility'] = 'hidden'
		//editor.value = '' // fixes firefox 1.0 bug
		view.innerHTML = "saving..."
		view.style['visibility'] = 'visible'
		editor.currentView = null
		
		//this.style.display = "none";
		//this.editBtn.style.display = "block";
		
		
		var mediaProperties = new Array();
		var titleChildren = editor.getElementsByTagName("input")		for (var i = 0; i < titleChildren.length; i++) {			var titleChild = titleChildren[i]
			mediaProperties.push(titleChild.value);		}
		
		var captionChildren = editor.getElementsByTagName("textarea")		for (var i = 0; i < captionChildren.length; i++) {			var captionChild = captionChildren[i]
			mediaProperties.push(captionChild.value);		}
		
		var txtAreas = editor.getElementsByTagName('textarea');
		for (var i = 0; i < txtAreas.length; i++) {
			txtAreas[i].style.overflow = "hidden";
		}

		editMedia(mediaProperties);
		return true
	}
	
	view.editor.onkeydown = function(event) {
		event = fixEvent(event)
		
		var editor = event.target
		if (event.keyCode == TAB) {
			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
	}
}


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

	var topLeft = coordinates.topLeftOffset(view)
	topLeft.reposition(editor)

}
