function trim(stringToTrim)
{
  return stringToTrim.replace(/^\s+|\s+$/g,"");
}
function ltrim(stringToTrim)
{
  return stringToTrim.replace(/^\s+/,"");
}
function rtrim(stringToTrim)
{
  return stringToTrim.replace(/\s+$/,"");
}
function replaceNewline(stringToReplace)
{
  return stringToReplace.replace(/\n/g," <br/> ");
}
function popEmail(pUrl)
{
  var lUrl = "/rm/email/form.do";
  if (pUrl)
    lUrl += "?url=" + escape(pUrl);
  var lWin = window.open(lUrl, 'rmemail', 'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=0,width=500,height=460');
  lWin.focus();
}

function popMtcEmail()
{
  var lUrl = "/rm/email/form.do?mtc=true";
  var lWin = window.open(lUrl, 'rmemail', 'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=0,width=500,height=520');
  lWin.focus();
}

function popEmailTo(pTo, pAdId)
{
  var lUrl = "/rm/email/form.do?to=" + escape(pTo);
  if (pAdId)
    lUrl += "&hto=true&siteId=-1&adId=" + pAdId;
  var lWin = window.open(lUrl, 'rmemail', 'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=0,width=500,height=460');
  lWin.focus();
}

function popWin(pUrl, pName, pWidth, pHeight)
{
  var lWin = window.open(pUrl, pName, 'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=1,width='+pWidth+',height='+pHeight);
  lWin.focus();
}
function popWinScroll(pUrl, pName, pWidth, pHeight)
{
  var lWin = window.open(pUrl, pName, 'toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=1,width='+pWidth+',height='+pHeight);
  lWin.focus();
}

var hRow;
var hpClassName;
function changeHighlighted(pEvent)
{
  var lTd = (pEvent) ? pEvent.target : event.srcElement;
  if ('TR' != lTd.parentNode.nodeName) { return; }
  if (hRow)
  {
    hRow.className = hpClassName;
  }
  hRow = lTd.parentNode;
  hpClassName = hRow.className;
  hRow.className = 'mover'
}
function registerHighlightTable()
{
  var lTable = document.getElementById('htable');
  if (!lTable) { return; }
  var lTrs = lTable.getElementsByTagName("TR");
  for (var i = 0; i < lTrs.length; i++)
  {
    var lTr = lTrs[i];
    if (lTr.id != 'ignoreh')
    {
      lTr.onmouseover = changeHighlighted;
    }
  }
}
function findTableForCell(pCell)
{
  var lParent = pCell.parentNode;
  if (lParent)
    if (lParent.tagName != "TABLE")
      return findTableForCell(lParent);
  return lParent;
}
function resetHighlightTableTrBg(pCell)
{
  var lTable = null;
  if (pCell)
    lTable = findTableForCell(pCell);
  else
    lTable = document.getElementById('htable');
  if (!lTable) { return; }
  var even = true;
  var lTrs = lTable.getElementsByTagName("TR");
  for (var i = 0; i < lTrs.length; i++)
  {
    var lTr = lTrs[i];
    if (lTr.id == 'ignoreh')
      continue;
    if (!even)
      lTr.className = 'odd';
    else
      lTr.className = 'even';
    even = !even;
  }
}
function openWindow(pName, pUrl, pWidth, pHeight)
{
  var lProps = 'toolbar=0,scrollbars=1,location=1,statusbar=0,menubar=0,resizable=1';
  if (pWidth && pHeight)
   lProps += ',width=' + pWidth + ',height=' + pHeight;
  else
   lProps += ',width=700,height=600';
  var lWin = window.open(pUrl, pName, lProps);
  lWin.moveTo(window.screenX+25,window.screenY+25);
  lWin.focus();
}
function showHideDiv(pDivId)
{
  var lDiv = document.getElementById(pDivId);
  if (lDiv.style.display == 'block')
  {
    lDiv.style.display = "none";
  }
  else
  {
    lDiv.style.display = 'block';
  }
}
function showHideDivFlash(pDivId)
{
  var lDiv = document.getElementById(pDivId);
  if (lDiv.style.display == 'block')
  {
    lDiv.style.display = 'none';
  }
  else
  {
    lDiv.style.display = 'block';
    window.setTimeout('showHideDivFlash("'+pDivId+'")', 3000);
  }
}
function fixDivPos(pDiv, pAdjX, pAdjY, pEvent)
{
  var curleft;
  var curtop;
  var curleft = curtop = 0;
  var obj = (pEvent) ? ((pEvent.target) ? pEvent.target : pEvent.srcElement) : event.srcElement;
  if (obj.offsetParent) {
    var curleft = obj.offsetLeft;
    var curtop = obj.offsetTop;
    while (obj = obj.offsetParent) {
      curleft += obj.offsetLeft
      curtop += obj.offsetTop
    }
  }
  var lAdjX = pAdjX ? pAdjX : 0;
  pDiv.style.top=(curtop+lAdjX);
  pDiv.style.left=(curleft+pAdjY);
}
function getTextValueFromFormField(pField)
{
  if (!pField)
    return;
  if (pField.type == 'select-one')
  {
    var lOptions = pField.options;
    var lSelected = pField.selectedIndex;
    if (lOptions.length == 0)
      return pField.value;
    else if (lSelected == -1)
      return lOptions[0].text;
    else
      return lOptions[lSelected].text;
  }
  else if (pField.type == 'textarea')
  {
    var lFieldValue = replaceNewline(pField.value);
    return makeLinksActive(lFieldValue);
  }
  else
  {
    return pField.value;
  }
  return '???';
}
function makeLinksActive(pParagraph)
{
  var lWords = pParagraph.split(" ");
  var lParagraph = "";
  for (var j = 0; j < lWords.length; j++)
  {
    var lWord = lWords[j];
    if (lWord.search(/http/) != -1)
      lParagraph += "<a href='" + lWord + "' target='_blank'>" + lWord + "</a> ";
    else
      lParagraph += lWord + " ";
  }
  return lParagraph;
}
function makeFormEditable(pEnableEdit, pFormId)
{
  var lElems = document.getElementsByTagName("SPAN");
  var lForm = document.getElementById(pFormId);
  if (!lForm)
    return;
  for (i = 0; i < lElems.length; i++)
  {
    var lSpan = lElems[i];
    if (lSpan.id.length < 5)
      continue;
    var lName = lSpan.id.substring(0,5); // 'view-' or 'edit-'
    if (lName != 'view-' && lName != 'edit-')
      continue;
    var lField = lSpan.id.substring(5);
    var lViewSpan = document.getElementById('view-'+lField);
    var lEditSpan = document.getElementById('edit-'+lField);
    if (!lViewSpan || !lEditSpan)
      continue;
    if (pEnableEdit) // enable edit
    {
      lViewSpan.style.display = 'none';
      lEditSpan.style.display = '';
    }
    else // disable edit
    {
      lViewSpan.style.display = '';
      lViewSpan.style.fontWeight = 'bold';
   	  lViewSpan.innerHTML = getTextValueFromFormField(lForm.elements[lField]);
      lEditSpan.style.display = 'none';
    }
  }
  
  document.getElementById('edit-buttons').style.display =  pEnableEdit ? '' : 'none';
  document.getElementById('view-buttons').style.display = !pEnableEdit ? '' : 'none';
}
function clearForm(pForm)
{
  if (!pForm)
    return;
  var lElements = pForm.elements;
  for (i = 0; i < lElements.length; i++)
  {
    var lElement = lElements[i];
    if ('hidden' == lElement.type)
      continue;
    if ('checkbox' == lElement.type)
      lElement.checked = false;
    else if ('select-one' == lElement.type)
      lElement.value = lElement.options[0].value;
    else
      lElement.value = "";
  }
}
function selectElement (element) {
  if (document.selection) {
    var range = document.body.createTextRange();
    range.moveToElementText(element);
    range.select();
  }
  else if (window.getSelection) {
    var range = document.createRange();
    range.selectNodeContents(element);
    var selection = window.getSelection();
    selection.removeAllRanges();
    selection.addRange(range);
 }
}
