// JavaScript Document
<!--

function addHTMLTag(field,tagType){
	var myArea = document.getElementById(field);
	myArea.focus();

	if(document.selection){ /*IE MODIFICATION */
		var browser='ie';
		var range = document.selection.createRange();
		var stored_range=range.duplicate();
		stored_range.moveToElementText(myArea);
		stored_range.setEndPoint('EndToEnd',range);
		myArea.selectionStart=stored_range.text.length-range.text.length;
		myArea.selectionEnd=myArea.selectionStart+range.text.length;
	}

	if(myArea.selectionEnd){

		if(tagType=="indent"||tagType=='unindent'){
			var select_paragraph=1;
		}

		var begin=myArea.value.substr(0,myArea.selectionStart);
		var selection=myArea.value.substr(myArea.selectionStart,myArea.selectionEnd-myArea.selectionStart);
		var end=myArea.value.substr(myArea.selectionEnd);

		if(select_paragraph){
			if(myArea.selectionStart>0){
				var begin_last_newline=begin.lastIndexOf("\n");
				if(begin_last_newline!=-1){
					myArea.selectionStart=begin_last_newline+1;
				}else{
					myArea.selectionStart=0;
				}
				var end_first_newline=end.indexOf("\n");
				if(end_first_newline!=-1){
					if(browser=='ie'){
						myArea.selectionEnd=begin.length+selection.length+end_first_newline-1;
					}else{
						myArea.selectionEnd=begin.length+selection.length+end_first_newline;
					}
				}else{
					myArea.selectionEnd=myArea.value.length;
				}
				var begin=myArea.value.substr(0,myArea.selectionStart);
				var selection=myArea.value.substr(myArea.selectionStart,myArea.selectionEnd-myArea.selectionStart);
				var end=myArea.value.substr(myArea.selectionEnd);
			}
		}

		switch (tagType){
			case "underline":
			startTag = "<u>";
			endTag = "</u>";
			break;
			case "bold":
			startTag = "<b>";
			endTag = "</b>";
			break;
			case "list":
			if(selection.indexOf("\n")!=-1){
				var selectionarray=selection.split("\n");
				selection='';
				for(var i in selectionarray){
					selectionli=selectionarray[i].replace(/\s+$/,"");
					if(selectionli.length>0){
						selection+="<li>"+selectionli+"</li> ";
					}
				}
				startTag = "<ul> ";
				endTag = "</ul>";
			}else{
				startTag = "<li>";
				endTag = "</li>";
			}
			break;
			case "code":
			selection=selection.replace(/&/g,"&amp;");
			selection=selection.replace(/</g,"&lt;");
			selection=selection.replace(/>/g,"&gt;");
			selection=selection.replace(/\\/g,"&#92;");
			startTag = "<code>";
			endTag = "</code>";
			break;
			case "italic":
			startTag = "<i>";
			endTag = "</i>";
			break;
			case "image":
			startTag = "<img src='";
			endTag = "'>";
			break;
			case "link":
			startTag = "<a href='"+selection+"'>";
			endTag = "</a>";
			break;
			case "indent":
			startTag="<blockquote>";
			endTag="</blockquote>";
			break;
			case "unindent":
			startTag="";
			endTag="";
			selection=selection.replace(/\<blockquote\>/i,"");
			var i_find="</blockquote>";
			var i=selection.toLowerCase().lastIndexOf(i_find);
			if(i>0){selection=selection.substr(0,i)+selection.substr(i+i_find.length);}
			break;
		}

		myArea.value=begin+startTag+selection+endTag+end;
		myArea.focus();
		myArea.selectionEnd=myArea.selectionStart;
	}
}




function quoteSelectedText (e) {
	if (! quoteResults) return;

	var rhett = "";
	var erste;

	if (BROWSER_SAFARI) {
		rhett = window.getSelection();
		erste = e.keyCode;
	} else if ((document.getSelection) && (BROWSER_NET_SIX)) {
		rhett = document.getSelection();
		erste = e.which;
	if (rhett != "") window.getSelection().removeAllRanges();
	} else if ((document.selection) && (document.selection.createRange)) {
		rhett = document.selection.createRange().text;
		erste = event.keyCode;
	} else if ((document.getSelection) && (! BROWSER_NET_SIX)) {
		rhett = document.getSelection();
		erste = event.keyCode;
	}

	if ((String.fromCharCode(erste).toLowerCase() == "q") && (rhett != "") && (orig_poster_name != "")) {
		if (! BROWSER_SAFARI) {
			// why this stopped working in safari after a point release is a mystery of the ages
			rhett = rhett.replace(/\s+$/g, "");
		}
		var curVal = document.bodyForm.msgPost.value;
		if(curVal){
			curVal+="\n\n";
		}
		document.bodyForm.msgPost.value = (curVal + "<B>[" + orig_poster_name + "]</B> <I>\"" + rhett + "\"</I>\n\n");
		document.bodyForm.msgPost.focus();
		// sigh
		if (BROWSER_SAFARI) {
			//window.scrollTo(0, 100000);
		}
	}
}

function noteStartDragLocation (e) {
	if (BROWSER_NET_SIX) {
		quoteResults = ((e != null) && (e.target.id == "msgPost")) ? false : true;
	} else {
		quoteResults = ((event.srcElement.name == "htmlButton") || (event.srcElement.id == "msgPost")) ? false : true;
	}
}

function safariHack () {
	document.onkeyup = quoteSelectedText;
	document.hiddenForm.safarihack.focus();
}


var BROWSER_SAFARI=(navigator.userAgent.indexOf("Safari") != -1) ? true : false;
if(!orig_poster_name){
	var orig_poster_name="";
}
var selected_text="";
var quoteResults = true;

if (window.Event){
	document.captureEvents(Event.MOUSEDOWN);
	document.captureEvents(Event.MOUSEUP);
	document.captureEvents(Event.KEYUP);
}

if (BROWSER_SAFARI) {
	window.onload = safariHack;
} else {
	document.onmousedown = noteStartDragLocation;
	document.onkeyup = quoteSelectedText;
}

//-->
