// JavaScript Document
var undoHistory = Array();
var panelWidth = 350;
var selectionIE = "";

preloadImages("close.gif");

function addTag(name, tag, tagClose) {
	var element = document.getElementsByName(name)[0];
	element.focus();
	var text = element.value;
	undoHistory.push(text);

	// IE
	if (document.selection) {
		if (selectionIE.parentElement() != element) return;
		if (tagClose.length == 0) selectionIE.text = tag;
		else selectionIE.text = tag + selectionIE.text + tagClose;
		
	}
	
	// OTHER BROWSERS
	else {
		var tagArgs;
		if (tagClose.length == 0) tagArgs = "";
		else tagArgs = text.substring(element.selectionStart, element.selectionEnd);
		
		var selStart = element.selectionStart;
		element.value = text.substring(0, element.selectionStart) + tag + tagArgs + tagClose + text.substring(element.selectionEnd, text.length);

		element.selectionEnd = selStart + tag.length + tagClose.length + tagArgs.length;
		element.selectionStart = element.selectionEnd;
	}
}

function undoAddTag(name) {
	if (undoHistory.length == 0) return;
	document.getElementsByName(name)[0].value = undoHistory.pop();
}

function submitForm(element) {
	document.getElementById(element).submit();
}

function drawPanel(element, content) {
	var button = document.getElementById(element);
	var panel = document.getElementById("panel");
	
	panel.style.visibility = "hidden";
	panel.innerHTML = "<table width='" + panelWidth + "px' class='add_tag_box' border='0' cellspacing='1' cellpadding='0'><tr><td class='add_tag_fill'><a class='main_link' href='javascript:hidePanel();' title='Close'><img border='0' align='right' src='images/close.gif' width='14px' height='14px' style='margin-left: 7px; margin-bottom: 2px;'></a>" + content + "</td></tr></table>";
	
	panel.style.top = (getOffsetTop(button) - panel.clientHeight - 2).toString() + "px";
	panel.style.left = (getOffsetLeft(button) - panelWidth + 25).toString() + "px";
	panel.style.visibility = "visible";
}

function hidePanel() {
		document.getElementById("panel").innerHTML = "";
}

function addTagArgs(name, tag, tagClose) {
	var i = 0;
	var arg = document.getElementsByName("tag_args_0");
	
	while (arg[0] != null) {
		if (arg[0].type == "radio") {
			
			for (var j = 0; j < arg.length; j++) {
				if (arg[j].checked) {
					if (i > 0) tag += ";";
					tag += arg[j].value;
				}
			}
		
		} else {
			if (i > 0) tag += ";";
			tag += arg[0].value;
		}
		i++;
		arg = document.getElementsByName("tag_args_" + i);
	}

	addTag(name, tag, tagClose);
}

function drawAddTagPanel(name, button, title, tag, tagClose) {
	var element = document.getElementsByName(name)[0];
	element.focus();

	if (document.selection) {
		if (selectionIE.text.length > 0) {
			addTag(name, tag, tagClose);
			return;
		}
	}
	else if (element.selectionStart != element.selectionEnd) {
		addTag(name, tag, tagClose);
		return;
	}

	var elements = "";

	for(var i = 5; i < arguments.length; i++) {
		if (arguments[i].match(/;/g)) {
			var opts = arguments[i].split(";");
			elements += "<tr><td>" + opts[0] + "</td><td>";
			for (var j = 1; j < opts.length; j++) {
				var checked = "";
				if (j == 1) checked = " checked='checked'";
				elements += "<input type='radio' name='tag_args_" + (i - 5) + "' value='" + opts[j] + "'" + checked + ">" + opts[j] + "&nbsp;&nbsp;";
			}
			elements += "</td></tr>";
		} else {
			elements += "<tr><td>" + arguments[i] + "</td><td><input class='form_text' type='text' name='tag_args_" + (i - 5) + "' size='30' maxlength='255'></td></tr>";
		}
	}
	
	drawPanel(button, "<strong>" + title + "</strong><img src='images/spacer.gif' width='100%' height='5px'><table width='100%' class='main_text' border='0' cellpadding='2' cellspacing='0'>" + elements + "</table><img src='images/spacer.gif' width='100%' height='5px'><button class='form_button' onclick=\"addTagArgs('" + name + "', '" + tag + "', '" + tagClose + "');hidePanel();\">Add Tag</button>");
}

function saveHistory(name) {
	var text = document.getElementsByName(name)[0].value;
	if (undoHistory[undoHistory.length - 1] != text) undoHistory.push(text);
}

function saveSelection(name) {
	// IE
	if (document.selection) {
		var element = document.getElementsByName(name)[0];
		element.focus();
		selectionIE = document.selection.createRange();
	}
}

