﻿
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;
  }
