var g_bSortTableEnabled = false;

function changeBtnState(bOver, strId, strImage)
{
  var strImg = '/img/' + strImage + (bOver ? '-on' : '-off') + '.gif';
  var ctl = document.getElementById(strId);
  if (ctl)
    ctl.src = strImg;
}

function change3SliceButton(bOver, strrTdNamePrefix)
{
  var strImgL = '/img/' + (bOver ? 'over-left.gif' : 'off-left.gif');
  var strImgC = '/img/' + (bOver ? 'over-bkgd.gif' : 'off-bkgd.gif');
  var strImgR = '/img/' + (bOver ? 'over-right.gif': 'off-right.gif');


  var ctlL = document.getElementById(strrTdNamePrefix + "_L");
  var ctlC = document.getElementById(strrTdNamePrefix + "_C");
  var ctlR = document.getElementById(strrTdNamePrefix + "_R");

  if (ctlL && ctlC && ctlR)
  {
    ctlL.src= strImgL;
    ctlC.background= strImgC;
    ctlR.src= strImgR;
  }
}

function popHTMLHelp()
{
  window.open('SpecialSymbolLookup.jsp', '_blank', 'width=400,height=500,resizable=true');
}

//g_bSortTableEnabled = document.all||document.getElementById;
//g_bSortTableEnabled = true;
//if (g_bSortTableEnabled)
//{
//  document.write('<SCRIPT language="javascript" SRC="sortTable.js"><\/SCRIPT>');
//}


function writeSortCol(label, dbColumn)
{
  var sImgU = "img/arrow_up.gif";
  var sImgD = "img/arrow_down.gif";
  var fsv = getSortValue();
  if (fsv.indexOf(dbColumn) != -1)
  {
    var bDesc = fsv.indexOf(" desc") !=-1;
    if (bDesc)
      sImgD = "_images/arrow_down_green.gif";
    else
      sImgU = "_images/arrow_up_green.gif";
  }

  document.writeln(
      '<table border=0 cellpadding=0 cellspacing=0>' +
      '<tr valign=middle>' +
        '<td class=columnheader>' + label + '&nbsp;</td>' +
        '<td><table border=0 cellpadding=0 cellspacing=0>' +
          ' <tr><td width=11><a href="javascript:doSort(\'' + dbColumn + '\', 1)"><img alt="Ascending" src=' + sImgU + ' border=0></a></td></tr>' +
          ' <tr><td width=11><a href="javascript:doSort(\'' + dbColumn + '\', 2)"><img alt="Descending" src=' + sImgD + ' border=0></a></td></tr>' +
        '</table></td>' +
      '</tr>' +
      '</table>'
      );
}

function checkValidEmail(f)
{
  var emailStr = f.value;
  

  var emailPat=/^(.+)@(.+)$/;
  var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]";
  var validChars="\[^\\s" + specialChars + "\]";
  var quotedUser="(\"[^\"]*\")";
  var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
  var atom=validChars + '+';
  var word="(" + atom + "|" + quotedUser + ")";
  var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
  var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");

  // Begin with the coarse pattern to simply break up user@domain into different pieces that are easy to analyze.
  var matchArray=emailStr.match(emailPat)
  if (matchArray==null)
  {
    alert("Email address seems incorrect (check @ and .'s)")
    f.focus();
    return false
  }
  var user=matchArray[1]
  var domain=matchArray[2]

  if (user.match(userPat)==null)
  {
    alert("Email address seems incorrect: The username doesn't seem to be valid.")
    f.focus();
    return false
  }

  // if the e-mail address is at an IP address (as opposed to a symbolic host name) make sure the IP address is valid.
  var IPArray=domain.match(ipDomainPat)
  if (IPArray!=null)
  {
      // this is an IP address
      for (var i=1;i<=4;i++)
      {
        if (IPArray[i]>255)
        {
          alert("Email address seems incorrect: Destination IP address is invalid!")
          f.focus();
          return false
        }
      }
      return true
  }

  var domainArray=domain.match(domainPat)
  if (domainArray==null)
  {
    alert("Email address seems incorrect: The domain name doesn't seem to be valid.")
    f.focus();
    return false
  }

  // Need to break up the domain to get a count of how many atoms it consists of.
  var atomPat=new RegExp(atom,"g")
  var domArr=domain.match(atomPat)
  var len=domArr.length
  if (domArr[domArr.length-1].length<2)
  {
     alert("Email address seems incorrect: The address must end in at least a 2-letter domain.")
     f.focus();
     return false
  }

  // Make sure there's a host name preceding the domain.
  if (len<2)
  {
     alert("Email address seems incorrect: This address is missing a hostname!")
     f.focus();
     return false
  }

  return true;
}

function tuCreateCookie(name,value,days)
{
  if (days)
  {
    var date = new Date();
    date.setTime(date.getTime()+(days*24*60*60*1000));
    var expires = "; expires="+date.toGMTString();
  }
  else 
    var expires = "";
  var c = name+"="+value+expires+"; path=/";
  document.cookie = c;
}

function tuReadCookie(name)
{
  var nameEQ = name + "=";
  var ca = document.cookie.split(';');
  for(var i=0;i < ca.length;i++)
  {
    var c = ca[i];
    while (c.charAt(0)==' ') c = c.substring(1,c.length);
    if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
  }
  return null;
}

function tuEraseCookie(name)
{
  createCookie(name,"",-1);
}





