var userAgent = navigator.userAgent.toLowerCase();
var is_opera  = (userAgent.indexOf('opera') != -1);
var is_saf    = ((userAgent.indexOf('safari') != -1) || (navigator.vendor == "Apple Computer, Inc."));
var is_webtv  = (userAgent.indexOf('webtv') != -1);
var is_ie     = ((userAgent.indexOf('msie') != -1) && (!is_opera) && (!is_saf) && (!is_webtv));
var is_ie4    = ((is_ie) && (userAgent.indexOf("msie 4.") != -1));
var is_moz    = ((navigator.product == 'Gecko') && (!is_saf));
var is_kon    = (userAgent.indexOf('konqueror') != -1);
var is_ns     = ((userAgent.indexOf('compatible') == -1) && (userAgent.indexOf('mozilla') != -1) && (!is_opera) && (!is_webtv) && (!is_saf));
var is_ns4    = ((is_ns) && (parseInt(navigator.appVersion) == 4));
var theform;

function TrackCount(fieldObj,countFieldName,maxChars)
{
  var countField = eval("fieldObj.form."+countFieldName);
  var diff = maxChars - fieldObj.value.length;

  // Need to check & enforce limit here also in case user pastes data
  if (diff < 0)
  {
    fieldObj.value = fieldObj.value.substring(0,maxChars);
    diff = maxChars - fieldObj.value.length;
  }
  countField.value = diff;
}

function LimitText(fieldObj,maxChars)
{
  var result = true;
  if (fieldObj.value.length >= maxChars)
    result = false;
  
  if (window.event)
    window.event.returnValue = result;
  return result;
}

function getActiveText(theform)
{
    theform.focus();
    if (!is_ie || (is_ie && !document.selection))
    {
	    return false;
    }

    var sel = document.selection;
    var rng = sel.createRange();
    rng.colapse;
    if (rng != null && (sel.type == "Text" || sel.type == "None"))
    {
	    text = rng.text;
    }
    if (theform.createTextRange)
    {
	    theform.caretPos = rng.duplicate();
    }
    return true;
}

function AddText(code, theform)
{
    if (theform.createTextRange && theform.caretPos)
    {
       	var caretPos = theform.caretPos;
       	caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? code + ' ' : code;
    }
    else
    {
      	theform.value += NewCode;
    }

    theform.focus();
    getActiveText(theform);
}

function InsertCode(tag, code1, theform)
{
    if(code1!='' && code1!=null)
    {
		switch(tag)
		{
			case 'c':
                theform.value=code1;
			    break;
			case 'tl':
                if(theform.value=="")
                    theform.value=theform.value+code1;
                else
                    theform.value=theform.value+', '+code1;
			    break;
			case 'l':
			    code = '[but] Some text';
                getActiveText(theform);
                AddText(code, theform);
			    break;
			case 'b':
                if (document.selection && document.selection.createRange)
                {
                    if(document.selection.createRange().text.length>0)
                        document.selection.createRange().text = '[b]' + document.selection.createRange().text + '[/b]';
                    else
                        alert("Select the text you would like to be BOLD");
                }
                break;
			case 'i':
                if (document.selection && document.selection.createRange)
                {
                    if(document.selection.createRange().text.length>0)
                        document.selection.createRange().text = '[i]' + document.selection.createRange().text + '[/i]';
                   else
                        alert("Select the text you would like to be ITALIC");
                }
			    break;
			case 'h':
                if (document.selection && document.selection.createRange)
                {
                    if(document.selection.createRange().text.length>0)
                        document.selection.createRange().text = '[h]' + document.selection.createRange().text + '[/h]';
                    else
                        alert("Select the text you would like to be a HEADER");
                }
			    break;
            case 'u':
                if (document.selection && document.selection.createRange)
                {
                    if(document.selection.createRange().text.length>0)
                        document.selection.createRange().text = '[u]' + document.selection.createRange().text + '[/u]';
                    else
                        alert("Select the text you would like to be UNDERLINED");
                }
                break;
            case 'li':
                if (document.selection && document.selection.createRange)
                {
                    if(document.selection.createRange().text.length>0)
                        document.selection.createRange().text = '[li]' + document.selection.createRange().text + '[/li]';
                    else
                        alert("Select the text you would like to have a bullet next to.");
                }
                break;
            case 'url':
                code1 = prompt('Enter the URL', 'http://www.website.com');

                if(code1!='' && code1!=null)
                {
                    code = '[url link=' + code1 + ']';
                    code1 = prompt('Enter the website name', 'Type in the text you want the user click on');

                    if(code1!='' && code1!=null)
                    {
                        code = code + code1 + '[/url]';
                        getActiveText(theform);
                        AddText(code, theform);
                    }
                }
                break;
            case 'email':
                code1 = prompt('Enter the email', 'site@site.com');

                if(code1!='' && code1!=null)
                {
                    code = '[url link=mailto:' + code1 + ']' + code1 + '[/url]';
                    getActiveText(theform);
                    AddText(code, theform);
                }
                break;
			default:
		}

    }
}