// tagleen.js
//
// 001. Table Of Contents show/hide   DF/Mar 2004
// 002. Highlight Search target
// 003. Collapsable list items or menus  DF/Apr 2004
// 004. zebra-table DF/May 2004
// 005. enableTopMenu  DF / May 2004
// 006. Increase/Decrease size of Textarea in EditContent.jsp  DF / May 2004
// 007. Remember 10 most recent search topics DF / May 2004
// 008. GraphBar on the findpage DF / May 2004
// 009. Edit Find and Replace DF / Jun 2004
// 010. SkinSeletor DF / May 2004
// 011. Tree Box / December 2004 - Val
// 012. Tree / Januar 2005 - Val
// 013. Transparent Pop-up/ November 2005 - Val


// 006. Increase/Decrease size of Textarea in EditContent.jsp  DF / May 2004
// Height, width may be negative values.
// doesnt work yet : opera ok, safari nok, ie ok
//
function changeTextAreaSize(height,form)
{
  var textArea = form.text;

  //alert("tst:" + height + " " + textArea.rows+ " ff " + form.action + " rows " + form.rows);
  if (textArea && height != 0 && textArea.rows + height > 10)
  {
    textArea.rows += height;
    if (form.rows) form.rows.value = textArea.rows;
  }
  //alert("tst:" + height + " " + textArea.rows+ " ff "+form.rows);

}


// 008. GraphBar on the findpage DF / May 2004
// Generate BARS on the FindPage

var graphBarMinimum    = 0;
var graphBarMaximum    = 60;
var graphBarMultiplier = 1;

function initGraphBar (low,high,maxx)
{
  graphBarMultiplier = maxx / (high-low);
  graphBarMinimum = low;
  graphBarMaximum = high;
}

function graphBar (count)
{
   var s = "<span class=\"graph-bar\">";
   var orig_count = count;
   if (count < graphBarMinimum) count = graphBarMinimum;
   if (count > graphBarMaximum) count = graphBarMaximum;
   var size = ( count - graphBarMinimum) * graphBarMultiplier;
   size = Math.floor(size);
   for (var i=0; i < size ; i++)  { s += "."; }
   s+= "</span>&nbsp;" + orig_count;

   document.write(s);
}


// 009 Edit Find and Replace DF/Jun 2004
//
// See EditContent.jsp and CommentContent.jsp
//
function editReplace(form, dataField)
{
  if (!form) return;
  if (!document.forms["editorForm"]) return;
  if (form.findText.value    =="") return;

  var findText = form.findText.value;
  var replaceText = form.replaceText.value;
  var isRegExp = form.regExp.checked;
  var reGlobal = ((form.global.checked) ? "g" : "") ;
  var reIgnoreCase = ((form.ignoreCase.checked) ? "i" : "") ;
  var data = dataField.value;

  if (! isRegExp) /* escape all special re characters */
  {
    var re = new RegExp( "([\.\*\\\?\+\[\^\$])", "gi");
    findText = findText.replace(re,"\\$1");
  }

  var re = new RegExp(findText, reGlobal+reIgnoreCase);
  if ( ! re.exec(data) )
  {
    alert("No match found!");
    return(true);
  }

  data = data.replace(re,replaceText);

  undoMemory.value = dataField.value;
  var undoButton = document.getElementById("undoHideOrShow");
  undoButton.style.visibility = "visible";
  dataField.value = data;

  return(true);
}

function editReplaceMoreInfo(form)
{
  var info = document.getElementById("FindAndReplaceHelp");
  if (!info) return;
  if (info.style.visibility == "visible")
  {
     info.style.visibility = "hidden";
     info.style.display = "none";
     form.moreInfo.value="More Info";

  } else
  {
     info.style.visibility = "visible";
     info.style.display = "block";
     form.moreInfo.value="Hide Info";
  }
}

function editUndo(form, dataField)
{
  var undoButton = document.getElementById("undoHideOrShow");
  undoButton.style.visibility = "hidden";
  dataField.value = form.undoMemory.value;
  form.undoMemory.value = "";
  return(true);
}


// ++++++++++++++++++++++

function putFocus()
{
  if (document.forms.editorForm) document.forms.editorForm.text.focus();

}

