
function load_selection(_objTextbox) {
 var strResult = "";
 
 if (document.selection) {
  strResult = document.selection.createRange().text;
  _objTextbox.caretPos = document.selection.createRange().duplicate();
  }
 else if (_objTextbox.setSelectionRange) {
  strResult = _objTextbox.value.substring(_objTextbox.selectionStart, _objTextbox.selectionEnd);
  }
 return strResult;
 }

var strFontName = "";
var strSizeName = "";
var strColorName = "";
var strStyleName = "";

function add_font(_strTextField, _strSelection, _strFontName, _strSizeName, _strColorName, _strStyleName) {
 strFontName = _strFontName;
 strSizeName = _strSizeName;
 strColorName = _strColorName;
 strStyleName = _strStyleName;
 return add_format(_strTextField, _strSelection, 'font');
 }

function add_format(_strFieldName, _strSelection, _strCommand) {
 var objTextbox = document.getElementById(_strFieldName);
 
 if (objTextbox) {
  switch (_strCommand) {
   case "l" :
   case "r" :
   case "c" :
   case "j" :
   	strText = "[" + _strCommand + "]" + _strSelection + "[/" + _strCommand + "]";
    break;
   case "line" :
    strText = "[line]"
    break;
   case "link" :
   case "newlink" :
   case "email" :
   	strText = "[" + _strCommand + "=\"" + _strSelection + "\"]";
    break;
   //case "ulist" :
   //	strText = "[ul]\r[li] " + _strSelection + "\r[li] \r[li] \r[/ul]";
   //  break;
   //case "olist" :
   //	strText = "[ol]\r[li] " + _strSelection + "\r[li] \r[li] \r[/ol]";
   //  break;
   case "font" :
    var strFont = getfontlistvalue(strFontName);
    var strSize = getfontlistvalue(strSizeName);
    var strColor = getfontlistvalue(strColorName);
    var strStyle = getfontlistvalue(strStyleName);
    if (strFont != "" || strSize != "" || strColor != "" || strStyle != "") {
     strText = "[";
     if (strFont != "") {
      strText += " font=\"" + strFont + "\"";
      }
     if (strSize != "") {
      strText += " size=\"" + strSize + "\"";
      }
     if (strColor != "") {
      strText += " color=\"" + strColor + "\"";
      }
     if (strStyle != "") {
      strText += " style=\"" + strStyle + "\"";
      }
     strText = strText.replace("[ ", "[") + "]" + _strSelection + "[/font]";
     }
    else {
     alert("Please choose Font settings from the lists.");
     strText = strSelection;
     }
    break;
   }

  //alert(strText);
  
  if (objTextbox.createTextRange && objTextbox.caretPos) {
   var objTemp = objTextbox.caretPos;
   objTemp.text = objTemp.text.charAt(objTemp.text.length - 1) == ' ' ? strText + ' ' : strText;
   }
  else if (objTextbox.setSelectionRange) {
   var strValue = objTextbox.value;
   var intStart = objTextbox.selectionStart;
   var intEnd = objTextbox.selectionEnd;
   objTextbox.value = strValue.substring(0, intStart) + strText + strValue.substring(intEnd, strValue.length);
   }
  else {
   objTextbox.value += strText;
   }
  
  objTextbox.focus();
  return ""; // to reset the selection string
  }
 }




function AddText(_strNewCode) {
  if (strTextboxName != "") {
	  var objTemp = document.getElementById(strTextboxName);
	  if (objTemp.createTextRange && objTemp.caretPos) {
  		var caretPos = objTemp.caretPos;
		  caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? _strNewCode + ' ' : _strNewCode;
	  }
	  else if (objTemp.setSelectionRange) {
  		objTemp.value = objTemp.value.substring(0,objTemp.selectionStart) + _strNewCode + objTemp.value.substring(objTemp.selectionEnd,objTemp.value.length);
  	}
  	else {
		  objTemp.value += _strNewCode;
	  }
   objTemp.focus();
	  strSelection = "";
	}
	else {
	  alert("Please click in the desired text area before applying formatting.")
	}
}



var strSelection = "";
var strTextboxName = "";

function add_format2(_strTextField, _strCommand) {
  strTextboxName = _strTextField;
  var strText = "";
  
  switch (_strCommand) {
    case "l" :
    case "r" :
    case "c" :
    case "j" :
    	strText = "[" + _strCommand + "]" + strSelection + "[/" + _strCommand + "]";
      break;
    case "line" :
      strText = "[line]"
      break;
    case "link" :
    case "newlink" :
    case "email" :
    	strText = "[" + _strCommand + "=\"" + strSelection + "\"]";
      break;
    //case "ulist" :
    //	strText = "[ul]\r[li] " + strSelection + "\r[li] \r[li] \r[/ul]";
    //  break;
    //case "olist" :
    //	strText = "[ol]\r[li] " + strSelection + "\r[li] \r[li] \r[/ol]";
    //  break;
    case "font" :
      var strFont = getfontlistvalue(strFontName);
      var strSize = getfontlistvalue(strSizeName);
      var strColor = getfontlistvalue(strColorName);
      var strStyle = getfontlistvalue(strStyleName);
      if (strFont != "" || strSize != "" || strColor != "" || strStyle != "") {
        strText = "[";
        if (strFont != "") {
          strText += " font=\"" + strFont + "\"";
          }
        if (strSize != "") {
          strText += " size=\"" + strSize + "\"";
          }
        if (strColor != "") {
          strText += " color=\"" + strColor + "\"";
          }
        if (strStyle != "") {
          strText += " style=\"" + strStyle + "\"";
          }
        strText += "]" + strSelection + "[/font]";
        strText = strText.replace("[ ", "[");
        }
      else {
        alert("Please choose Font settings from the lists.");
        strText = strSelection;
        }
      break;
  }
  AddText(strText);
}



function getActiveText(_objTextbox) {
 return;
	var objTemp = _objTextbox;
	strTextboxName = _objTextbox.name;
	strSelection = (document.selection) ? document.selection.createRange().text : "";
	
	if (_objTextbox.createTextRange) {
		_objTextbox.caretPos = document.selection.createRange().duplicate();
	} 
	else if (objTemp.setSelectionRange) {
		strSelection = objTemp.value.substring(objTemp.selectionStart,objTemp.selectionEnd);
	} 
}

/*
Additional Helper functions - don't change below this line
*/

function getfontlistvalue(_strListName) {
  var strReturn = "";
  var objList = document.getElementById(_strListName);
  if (objList) {
    if (objList.selectedIndex != 0) {
      strReturn = objList.options[objList.selectedIndex].value;
      objList.selectedIndex = 0;
      }
    else {
      strReturn = "";
      }
    }
  else {
    strReturn = "";
    }
  return strReturn;
  }
