document.write('<script src="text-tags-config.js" type="text/javascript"></script>');
													
function initQuicktags() {
	var getCanvas = document.getElementsByTagName("textarea");
	for (var i = 0; i < getCanvas.length; i++) {
		if (getCanvas[i].name =="body") {
			edToolbar(getCanvas[i]);
		}
	}
}

function edToolbar(canvas) {
	var toolbar = document.createElement("div");
	//alert("processing " + canvas.id);
	//toolbar.id = canvas.id + "_ed_toolbar";
	//alert(toolbar.id);
	//toolbar.style.background = "red";
	//toolbar.style.height = "45px";
	canvas.parentNode.insertBefore(toolbar, canvas);
	// Create the local Button array by assigning theButtons array to edButtons
	var edButtons = new Array();
	edButtons = theButtons;
	for (var i = 0; i < edButtons.length; i++) {
		var thisButton = edShowButton(edButtons[i], canvas);
		toolbar.appendChild(thisButton);
	}
}


function edShowButton(button, edCanvas) {
	var theButton = document.createElement("input");
	theButton.type='button';
	theButton.id = button.id;
	theButton.className = 'ed_button';
	theButton.className += ' ' + button.id;
	theButton.tagStart = button.tagStart;
	theButton.tagEnd = button.tagEnd;
	theButton.open = button.open;
	if (button.id == 'ed_image') {
		theButton.onclick = function() { edInsertImage(edCanvas); }
	} 
	else if (button.id == 'ed_link') {
		theButton.onclick = function() { edInsertLink(edCanvas,this); }
	} 
	else if (button.id == 'ed_close') {
		theButton.onclick = function() { edCloseAllTags(edCanvas); }
	} 
	else if (button.id == 'ed_spell') {
		theButton.onclick = function() { edSpell(edCanvas); }
	} 
	else {
		theButton.onclick = function() { edInsertTag(edCanvas,this); } 
	}
	theButton.value = (button.display) + "";
	
	return theButton;	
}

function edAddTag(button) {
	if (button.tagEnd != '') {
		edOpenTags[edOpenTags.length] = button;
		//alert(button.id);
		button.value = '/' + button.value;
	}
}

function edRemoveTag(button) {
	for (i = 0; i < edOpenTags.length; i++) {
		if (edOpenTags[i] == button) {
			edOpenTags.splice(button, 1);
			button.value = button.value.replace('/', '');
		}
	}
}

function edCheckOpenTags(button) {
	var tag = 0;
	for (i = 0; i < edOpenTags.length; i++) {
		if (edOpenTags[i] == button) {
			tag++;
		}
	}
	if (tag > 0) {
		return true; // tag found
	}
	else {
		return false; // tag not found
	}
}	

function edCloseAllTags(edCanvas) {
	var count = edOpenTags.length;
	for (o = 0; o < count; o++) {
		edInsertTag(edCanvas, edOpenTags[edOpenTags.length - 1]);
	}
}

function edSpell(myField) {
	var word = '';
	if (document.selection) {
		myField.focus();
	    var sel = document.selection.createRange();
		if (sel.text.length > 0) {
			word = sel.text;
		}
	}
	else if (myField.selectionStart || myField.selectionStart == '0') {
		var startPos = myField.selectionStart;
		var endPos = myField.selectionEnd;
		if (startPos != endPos) {
			word = myField.value.substring(startPos, endPos);
		}
	}
	if (word == '') {
		word = prompt('Enter a word to look up:', '');
	}
	if (word != '') {
		window.open('http://dictionary.reference.com/search?q=' + escape(word));
	}
}


function edInsertTag(myField, button) {
	//IE support
	if (document.selection) {
		myField.focus();
	    sel = document.selection.createRange();
		if (sel.text.length > 0) {
			sel.text = button.tagStart + sel.text + button.tagEnd;
		}
		else {
			if (!edCheckOpenTags(button) || button.tagEnd == '') {
				sel.text = button.tagStart;
				edAddTag(button);
			}
			else {
				sel.text = button.tagEnd;
				edRemoveTag(button);
			}
		}
		myField.focus();
	}
	//MOZILLA/NETSCAPE support
	else if (myField.selectionStart || myField.selectionStart == '0') {
		var startPos = myField.selectionStart;
		var endPos = myField.selectionEnd;
		var cursorPos = endPos;
		var scrollTop = myField.scrollTop;

		if (startPos != endPos) {
			myField.value = myField.value.substring(0, startPos)
			              + button.tagStart
			              + myField.value.substring(startPos, endPos) 
			              + button.tagEnd
			              + myField.value.substring(endPos, myField.value.length);
			cursorPos += button.tagStart.length + button.tagEnd.length;
		}
		else {
			if (!edCheckOpenTags(button) || button.tagEnd == '') {
				myField.value = myField.value.substring(0, startPos) 
				              + button.tagStart
				              + myField.value.substring(endPos, myField.value.length);
				edAddTag(button);
				cursorPos = startPos + button.tagStart.length;
			}
			else {
				myField.value = myField.value.substring(0, startPos) 
				              + button.tagEnd
				              + myField.value.substring(endPos, myField.value.length);
				edRemoveTag(button);
				cursorPos = startPos + button.tagEnd.length;
			}
		}
		myField.focus();
		myField.selectionStart = cursorPos;
		myField.selectionEnd = cursorPos;
		myField.scrollTop = scrollTop;
	}
	else {
		if (!edCheckOpenTags(button) || button.tagEnd == '') {
			myField.value += button.tagStart;
			edAddTag(button);
		}
		else {
			myField.value += button.tagEnd;
			edRemoveTag(button);
		}
		myField.focus();
	}
}

function edInsertContent(myField, myValue) {
	//IE support
	if (document.selection) {
		myField.focus();
		sel = document.selection.createRange();
		sel.text = myValue;
		myField.focus();
	}
	//MOZILLA/NETSCAPE support
	else if (myField.selectionStart || myField.selectionStart == '0') {
		var startPos = myField.selectionStart;
		var endPos = myField.selectionEnd;
		myField.value = myField.value.substring(0, startPos)
		              + myValue 
                      + myField.value.substring(endPos, myField.value.length);
		myField.focus();
		myField.selectionStart = startPos + myValue.length;
		myField.selectionEnd = startPos + myValue.length;
	} else {
		myField.value += myValue;
		myField.focus();
	}
}

function edInsertLink(myField, button, defaultValue) {
	if (!defaultValue) {
		defaultValue = 'http://';
	}
	if (!edCheckOpenTags(button)) {
		var URL = prompt('Enter the URL' ,defaultValue);
		if (URL) {
			button.tagStart = '"';
			button.tagEnd = '":'+ URL;
			edInsertTag(myField, button);
		}
	}
	else {
		edInsertTag(myField, button);
	}
}

function edInsertImage(myField) {
	var myValue = prompt('Enter the URL of the image', 'http://');
	if (myValue) {
		myValue = '!' + myValue + '!';
		edInsertContent(myField, myValue);
	}
}