﻿function insert_tags(form,field,type,link,link_type) {

	content = document.getElementById(field);
	insert_tags_position();

	var text 	= content.value;
	var sbStr 	= text.substring(startPosition,endPosition);
	
	if (startPosition != endPosition) {

		if (type == "unicode")   	{ sbStr = unicode_repair(sbStr); }
		if (type == "unordered")  	{ sbStr = insert_tags_list(sbStr,"unordered"); }
		if (type == "ordered")   	{ sbStr = insert_tags_list(sbStr,"ordered"); }
		if (type == "break")   		{ sbStr = sbStr+"<br>"; }
		if (type == "bold") 		{ sbStr = "<b>"+sbStr+"</b>"; }
		if (type == "italic")		{ sbStr = "<i>"+sbStr+"</i>"; }
		if (type == "underline")	{ sbStr = "<u>"+sbStr+"</u>"; }
		if (type == "link") 		{ sbStr = "<a href = '"+link+"' target = '_"+link_type+"'>"+sbStr+"</a>"; }

		if (type == "plain")		{ 

			sbStr					= sbStr.replace("<b>", "");	
			sbStr                   = sbStr.replace("<i>", "");
			sbStr                   = sbStr.replace("<u>", "");
			sbStr					= sbStr.replace("<li>", "");				
			sbStr					= sbStr.replace("<ol>", "");	
			sbStr					= sbStr.replace("<uk>", "");				
			sbStr                   = sbStr.replace("</b>", "");
			sbStr                   = sbStr.replace("</i>", "");
			sbStr                   = sbStr.replace("</u>", "");
			sbStr                   = sbStr.replace("</li>", "");
			sbStr                   = sbStr.replace("</ol>", "");
			sbStr                   = sbStr.replace("</ul>", "");			
		}
	}

	else { 	if (type == "break")  	{ sbStr = sbStr+"<br>"; } }

	insert_tags_format(form,field,text,sbStr);
}


function insert_tags_position() {

	var text = content.value;
	if (document.selection) {
	
		// Internet Explorer
		var range = document.selection.createRange();
		var dpl = range.duplicate();
		
		if (range.text.length > 0) {
			
			dpl.moveToElementText(content);
			dpl.setEndPoint("EndToEnd", range);
			startPosition = dpl.text.length-range.text.length;
			endPosition = startPosition + range.text.length;
		}
	}
	
	else {
		
		// Mozilla Firefox
		startPosition = content.selectionStart;
		endPosition = content.selectionEnd;
	}
}


function insert_tags_format(form,field,text,selectedText) {

	// split textarea value into three pieces: before startPosition,
   	// startPosition until endPosition, and after endPosition
	var str1 = text.substring(0,startPosition);
	var str2 = text.substring(startPosition,endPosition);
	var str3 = text.substring(endPosition,text.length);

	// replace str2 with formatted substring (selectedText)
	str2 = selectedText;
		
	// form the new string
	formattedStr = str1+str2+str3;
   	document.forms[form].elements[field].value = formattedStr;									
}	


function insert_tags_list (text,type) {

	var temp 	= text; 
	
	var i 		= temp.indexOf("["); 

	while(i > -1) { 
		
		temp 	= temp.replace("[", "<li>"); 		
		temp 	= temp.replace("]", "</li>"); 						 
		i 		= temp.indexOf("["); 
	} 		
	
	if (type == "unordered") 	{ temp = "<ul>"+temp+"</ul>"; }
	if (type == "ordered") 		{ temp = "<ol>"+temp+"</ol>"; }
			
	return temp;
}			


function insert_tags_menu (form,field,menu) {

	var tag_mode_formatting = 
		" <input type='button' id='break_button' value='br' onclick='insert_tags(\""+form+"\",\""+field+"\",\"break\",\"\",\"\")' class = 'mini_dropdown' /> " +
		" <input type='button' id='unordered_button' value='ul' onclick='insert_tags(\""+form+"\",\""+field+"\",\"unordered\",\"\",\"\")' class = 'mini_dropdown' /> " +
		" <input type='button' id='ordered_button' value='ol' onclick='insert_tags(\""+form+"\",\""+field+"\",\"ordered\",\"\",\"\")' class = 'mini_dropdown' />";
	
	var tag_mode_links = 
		" <input type='button' id='link_button' value='link' onclick='insert_tags(\""+form+"\",\""+field+"\",\"link\",document."+form+".link.value,document."+form+".link_type.value)' class = 'mini_dropdown' /> " +
	    " <input type='text' id='link' size = '14' class = 'mini_dropdown' /> " +
		" <select name='link_type' class = 'mini_dropdown' id='link_type'> " +
			" <option value = '_blank'>new</option> " +
			" <option value = '_self'>current</option> " +
		" </select>";
				
	var tag_mode_other = 		
		" <input type='button' id='unicode_button' value='unicode' " +
		" onclick='insert_tags(\""+form+"\",\""+field+"\",\"unicode\",\"\",\"\")' " +
		" class = 'mini_dropdown' />";
		
	var tag_mode_style =
		" <input type='button' id='plain_button' value='plain' onclick='insert_tags(\""+form+"\",\""+field+"\",\"plain\",\"\",\"\")' class = 'mini_dropdown' /> " +
        " <input type='button' id='bold_button' value='bold' onclick='insert_tags(\""+form+"\",\""+field+"\",\"bold\",\"\",\"\")' class = 'mini_dropdown' /> " +
        " <input type='button' id='italic_button' value='italic' onclick='insert_tags(\""+form+"\",\""+field+"\",\"italic\",\"\",\"\")' class = 'mini_dropdown' /> " +
        " <input type='button' id='underline_button' value='underline' onclick='insert_tags(\""+form+"\",\""+field+"\",\"underline\",\"\",\"\")' class = 'mini_dropdown' />";
			
			
	if (menu == "formatting")	 	{  loadVar('tag_menus',tag_mode_formatting); }			
	if (menu == "links") 			{  loadVar('tag_menus',tag_mode_links); }
	if (menu == "other") 			{  loadVar('tag_menus',tag_mode_other); }
	if (menu == "style") 			{  loadVar('tag_menus',tag_mode_style); }	
}