function initCuts() {
	$$('span.cutActiveText').invoke('observe', 'click', function(event)
	{
		var cut = getEventSpan(event);
		var textid = cut.getAttribute("textid");

		allNodes = document.getElementsByClassName("cutPassiveText");
		for(i = 0; i < allNodes.length; i++) {
			var node = allNodes[i];
			if (node.getAttribute("textid") == textid) {
				var display = node.style.display;
				if (display == "none" || display == "") {
					node.style.display = "inline";
					cut.style.display = "none";
				}
			}
		}

		Event.stop(event);
	});

	$$('span.cutPassiveText').invoke('observe', 'click', function(event)
	{
		var cut = getEventSpan(event);
		var textid = cut.getAttribute("textid");


		allNodes = document.getElementsByClassName("cutPassiveText");
		for(i = 0; i < allNodes.length; i++) {
			var node = allNodes[i];
			if (node.getAttribute("textid") == textid) {
				var display = node.style.display;
				var el = Event.element(event);
				if (display == "inline") {
					if (el.nodeName == 'A') {
						return;
					/*
						alert(el.getAttribute("href"));
					*/
					} else {
						if (el.parentNode.nodeName == 'A') {
							return;
						}
						node.style.display = "none";
					}
				} // if (display == "inline") 
			} // if
		} // for
		

		allNodes = document.getElementsByClassName("cutActiveText");
		for(i = 0; i < allNodes.length; i++) {
			var node = allNodes[i];
			if (node.getAttribute("textid") == textid) {
				var display = node.style.display;
				if (display == "none" || display == "") {
					node.style.display = "inline";
				}
			}
		}

		Event.stop(event);
	});

}


function getEventSpan(event) {
		var el = Event.element(event);
		if (el.nodeName == "SPAN") {
			return el;
		}

		var ancestors = $(el).ancestors();
		var span = ancestors.find( 
			function s(n) { 
				return (n.nodeName == 'SPAN');
			} 
		);
		return span;
}

function closeIfESC(event) {
	if (event.keyCode == 27) {
		window.close();
		return false;
	}
	
	return true;
}

function popUp(url, width, height, name) {
    if (name == "") {
		name = "popUp";
    }
    
	var left  = (screen.availWidth / 2) - (width / 2);
	var top   = (screen.availHeight / 2) - (height / 2);
	var popUpWin = window.open(url, '',
	'width=' + width + ",height=" + height + ",left=" + left + ",top=" + top +
	',toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=0');
	popUpWin.focus();
	
	return popUpWin;
}

function setCurrentPath() {
	document.currentPath.value = document.location;
}

var _autoCloseWindow_timeOut = 3;
var _autoCloseWindow_button;
var _autoCloseWindow_text;
function autoCloseWindow(button, text) {
	setTimeout("__autoCloseWindow()", 1000);
	_autoCloseWindow_button = button;
	_autoCloseWindow_text   = text;
	button.value = text + " (" + _autoCloseWindow_timeOut + ")";
}

function __autoCloseWindow() {
	_autoCloseWindow_timeOut = _autoCloseWindow_timeOut - 1;
	_autoCloseWindow_button.value = _autoCloseWindow_text + " (" + _autoCloseWindow_timeOut + ")";
	if (_autoCloseWindow_timeOut < 0) {
		window.close();
	}
	setTimeout("__autoCloseWindow()", 1000);
}


	function getSelections(currList) {
		var selectedArr = new Array();
		var currIndex   = 0;
		for (var i = 0 ; i < currList.options.length ; i++) {
			if (currList.options[i].selected) {
			selectedArr[currIndex] = currList.options[i].index;
			currIndex++;
			}
		}
		return selectedArr;
	}
	
	function moveSelected(srcList, destList) {
		var lastPosition = destList.length;
		var selectedArr = new Array();
		selectedArr = getSelections(srcList);
		
		for (i = 0 ; i < selectedArr.length ; i++) {
			destList.options[lastPosition] =
				new Option(
					srcList.options[selectedArr[i]].text,
					srcList.options[selectedArr[i]].value
				);
				lastPosition++;
		}
		
		selectedArr.sort(reverse_sort);		
		
		for (i = 0 ; i < selectedArr.length ; i++) {
			srcList.options[selectedArr[i]] = null;
		}
	}
	
	function reverse_sort(item1, item2) {
		if (item1 > item2) {
			return -1;
		} else if (item1 < item2) {
			return 1;
		} else {
			return 0;
		}
	}
	
	function alertSelected(selectedArr, srcList) {
		var alert_msg = "Selected next ServiceTypes:\n\n";
		for (i = 0 ; i < selectedArr.length ; i++) {
			alert_msg += srcList.options[selectedArr[i]].text + "\n";
		}
		alert(alert_msg);
	}
	
	function markAllOptions(srcList, destList) {
		for (i = 0 ; i < srcList.length ; i++) {
			srcList.options[i].selected = true;
		}
		for (i = 0 ; i < destList.length ; i++) {
			destList.options[i].selected = true;
		}
		
		return true;
	}

	
function isOrderedField(formName, fieldName) {
	var orderableField = document.forms[formName].elements["orderableField"];
	return orderableField.value == fieldName;
}
function getOrderDirection(formName) {
	var orderableField = document.forms[formName].elements["orderDirection"];
	return orderableField.value;
}

function writeOrderImg(formName, fieldName, uri) {
	if (isOrderedField(formName, fieldName)) {
//		var divTag = document.getElementById("orderedField::" + fieldName);
//		divTag.style.visibility = "visible";
		
		var direction = getOrderDirection(formName);
		if (direction == "ASC") {
			direction = "Down";
		} else {
			direction = "Up";
		}

		var imgSrc = uri + "img/order" + direction + ".gif";
		var imgTag = document.images["orderedFieldImg::" + fieldName].src = imgSrc;
	} // if
}

function setOrderedField(formName, fieldName) {
	var orderableField = document.forms[formName].elements["orderableField"];
	orderableField.value = fieldName;
	document.forms[formName].submit();
}

function setOrderDirectionField(formName, fieldName) {
	if (isOrderedField(formName, fieldName)) {
		var orderableField = document.forms[formName].elements["orderDirection"];
		var selectedField = orderableField.value;
		if (selectedField == "DESC") {
			selectedField = "ASC";
		} else {
			selectedField = "DESC";
		}
		orderableField.value = selectedField;
		document.forms[formName].submit();
	
	} else {
		setOrderedField(formName, fieldName);
	}
}


	function ssi_popUp(uri, currForm, currInput) {
		var field = document.forms[currForm].elements[currInput];
		uri = uri + "&value=" + field.value;
		ssi_PopUpWindow = popUp(uri, 500, "ssiPopUpWindow");

	}

function insertAddr(recipient, host) {
	var mail = recipient + "@" + host;
	document.write("<a href='mailto:" + mail + "'>" + mail + "</a>");
}
function insertAddrScript(host, recipient) {
	var mail = recipient + "@" + host;
	document.write("<a href='mailto:" + mail + "'>" + mail + "</a>");
}
