function display(fname)
{ var i, fs = 0, el = document.forms['form'].elements;
  var browserName=navigator.appName; 
 if (browserName=="Microsoft Internet Explorer")
 {
  for (i = 0; i < el.length; ++i) {
    if (el[i].nodeName.toLowerCase() == 'fieldset') {
      el[i].style.display = (el[i].childNodes[0].firstChild.nodeValue.substr(0,fname.length) == fname) ? 'block' : 'none';
    }
  }
  } else {
  for (i = 0; i < el.length; ++i) {
    if (el[i].nodeName.toLowerCase() == 'fieldset') {
      el[i].style.display = (el[i].textContent.substr(0,fname.length) == fname) ? 'block' : 'none';
    }
  }
  }
}
function display_all()
{  var i, fs = 0, el = document.forms['form'].elements;
  for (i = 0; i < el.length; ++i) {
    if (el[i].nodeName.toLowerCase() == 'fieldset') {
      el[i].style.display = 'block';
    }
  }
}
//first section used for ptviewer

function ZoomIn(t)
//----------------------------------------------------------------------
// Zoom in on the PTViewer applet.
//----------------------------------------------------------------------
{
  t.stopAutoPan();
  t.startAutoPan(0, 0, 1.0 / 1.03);
}

function ZoomOut(t)
//----------------------------------------------------------------------
// Zoom out on the PTViewer applet.
//----------------------------------------------------------------------
{
  t.stopAutoPan();
  t.startAutoPan(0, 0, 1.03);
}

function StopZoom(t)
{
  t.stopAutoPan();
}

function HelpPt(t)
{
  var x, y;
  var w;

  if (isNav) {
    x = window.screenX + 20;
    y = window.screenY + 20;
    w = window.setTimeout(
    'window.open("http://www.fh-furtwangen.de/~dersch/PTVJ/doc.html",' +
    '"PTViewerHelp",' +
    '",screenX=' + x + ',screenY=' + y +
    ',resizable=yes,scrollbars=yes")', 0);
  } else {
    w = window.setTimeout(
    'window.open("http://www.fh-furtwangen.de/~dersch/PTVJ/doc.html",' +
    '"PTViewerHelp",' +
    '",screenX=' + x + ',screenY=' + y +
    ',resizable=yes,scrollbars=yes")', 0);
  }
  return;
}

function Info(t)
{
  alert(t.getAppletInfo());
  return;
}


/**
* Sets/unsets the pointer in browse mode
*
* @param   object   the table row
* @param   object   the color to use for this row
* @param   object   the background color
*
* @return  boolean  whether pointer is set or not
*/
//function setPointer(theRow, thePointerColor, theNormalBgColor)
function setPointer(theRow, thePointerColor)
{
  var theCells = null;

  if (thePointerColor == '' || typeof(theRow.style) == 'undefined') {
    return false;
  }
  if (typeof(document.getElementsByTagName) != 'undefined') {
    theCells = theRow.getElementsByTagName('td');
  }
  else if (typeof(theRow.cells) != 'undefined') {
    theCells = theRow.cells;
  }
  else {
    return false;
  }

  var rowCellsCnt  = theCells.length;
  var currentColor = null;
  var newColor     = null;
  currentColor = theCells[0].style.backgroundColor;
  newColor     = (currentColor.toLowerCase() == thePointerColor.toLowerCase())
  ? theNormalBgColor
  : thePointerColor;
  for (var c = 0; c < rowCellsCnt; c++) {
    theCells[c].style.backgroundColor = newColor;
  }
  return true;
}

var _console = null;
function allowInString (InString, RefString)  {
  if(InString.length==0) return (false);
  for (Count=0; Count < InString.length; Count++)  {
    TempChar= InString.substring (Count, Count+1);
    if (RefString.indexOf (TempChar, 0)==-1)
    return (false);
  }
  return (true);
}

function allowNotInString (InString, RefString)  {
  if(InString.length==0) return (false);
  for (Count=0; Count < InString.length; Count++)  {
    TempChar= InString.substring (Count, Count+1);
    if (RefString.indexOf (TempChar, 0)!=-1)
    return (false);
  }
  return (true);
}

function daysTil(Year, Month, Day)  {
  now = new Date();
  Hour = now.getHours();
  Minute = now.getMinutes();
  Second = now.getSeconds();
  elapse = Date.parse(new Date (Year, Month, Day, Hour, Minute, Second))
  - Date.parse (new Date());
  elapse = Math.round (elapse / (24 * 60 * 60 * 1000));
  return (elapse);
}

function filenameOnly (InString)  {
  LastSlash=InString.lastIndexOf ('/', InString.length-1)
  OutString=InString.substring  (LastSlash+1, InString.length)
  return (OutString);
}

function formatCommas (Val)  {
  OutString="";
  len=Val.length;
  if (len>=3) {
    while (len>0) {
      TempString=Val.substring(len-3, len)
      if (TempString.length==3) {
        OutString=","+TempString+OutString
        len=len-3;
      } else {
        OutString=TempString+OutString
        len=0
      }
    }
    if (OutString.substring(0, 1)==",")
    Val=OutString.substring (1, OutString.length)
    else
    Val=OutString
  }
  return (Val);
}
function getMaxList ()  {
  var Count, NumItems, HighestVal
  NumItems = getMaxList.arguments.length;
  HighestVal = getMaxList.arguments[0];
  for (Count = 0; Count < NumItems; Count++) {
    if (getMaxList.arguments[Count] > HighestVal)
    HighestVal = getMaxList.arguments[Count]
  }
  return (HighestVal)
}

function getMinList ()  {
  var Count, NumItems, LowestVal
  NumItems = getMinList.arguments.length;
  LowestVal = getMinList.arguments[0];
  for (Count = 0; Count < NumItems; Count++) {
    if (getMinList.arguments[Count] < LowestVal)
    LowestVal = getMinList.arguments[Count]
  }
  return (LowestVal)
}


function ifExists (CheckVar) {
  CheckVar = "" + CheckVar;
  if (CheckVar == "<undefined>")
  return (false);
  else
  return (true);
}

function ifExistsString (CheckVar) {
  if (CheckVar == null)
  return (false);
  else
  return (true);
}

function initUpper (InString)  {
  if(InString.length==0) return(InString)
  InString=InString.toLowerCase();
  Space=false;
  OutString="";
  OutString+=InString.substring(0, 1).toUpperCase();
  for(Count=1; Count<InString.length; Count++)  {
    if(InString.substring(Count, Count+1)==" ")  {
      Space=true;
      OutString+=InString.substring(Count, Count+1)
      continue;
    }
    if (Space)  {
      OutString+=InString.substring(Count, Count+1).toUpperCase();
      Space=false;
      continue;
    }
    OutString+=InString.substring(Count, Count+1);
  }
  return (OutString);
}
function isAlphabeticString (InString)  {
  if(InString.length==0)
  return (false);
  if(isNumberString (InString))
  return (false);
  InString=InString.toLowerCase ()
  RefString="abcdefghijklmnopqrstuvwxyz_0123456789";
  for (Count=0; Count < InString.length; Count++)  {
    TempChar= InString.substring(Count, Count+1);
    if (RefString.indexOf(TempChar, 0)==-1)
    return (false);
  }
  return (true);
}

function isBlank (InString) {
  if (InString==null) return (!false)
  if (InString.length!=0)
  return (!true);
  else
  return (!false);
}

function isNotBlank (InString) {
  if (InString==null) return (false)
  if (InString.length!=0)
  return (true);
  else
  return (false);
}
function isNumberString (InString)  {
  if(InString.length==0)
  return (false);
  RefString="-1234567890";
  for (Count=0; Count < InString.length; Count++)  {
    TempChar= InString.substring (Count, Count+1);
    if (RefString.indexOf (TempChar, 0)==-1)
    return (false);
  }
  return (true);
}
function isWithinRange (InString, RangeMin, RangeMax)  {
  if ((InString == null) || (InString == ""))
  return (false)
  if((InString>=RangeMin) && (InString<=RangeMax))
  return (true);
  else
  return (false);
}

function makeArray (NumElements, Fill)  {
  var Count;
  this.length = NumElements;
  for (Count = 1; Count <= NumElements; Count++)  {
    this[Count] = Fill;
  }
  return (this);
}

function makeArray2 (X, Y) {
  var Count;
  this.length = X;
  for (var Count= 1; Count <= X; Count++)
  this[Count] = new makeArray(Y);
}


function makeArrayImplicit () {
  var Count;
  this.length=makeArrayImplicit.arguments.length;
  for (Count = 1; Count < makeArrayImplicit.arguments.length+1; Count ++)
  this[Count]=makeArrayImplicit.arguments[Count-1];
  return (this);
}

function makeArraySimple (NumElements) {
  var Count;
  this.length = NumElements;
  for (Count = 1; Count <= NumElements; Count++)
  this[Count]=0;
  return (this);
}
function parser (InString, Sep)  {
  NumSeps=1;
  for (Count=1; Count < InString.length; Count++)  {
    if (InString.charAt(Count)==Sep)
    NumSeps++;
  }
  parse = new makeArray (NumSeps);
  Start=0; Count=1; ParseMark=0;
  LoopCtrl=1;
  while (LoopCtrl==1)  {
    ParseMark = InString.indexOf(Sep, ParseMark);
    TestMark=ParseMark+0;
    if ((TestMark==0) || (TestMark==-1)){
      parse[Count]= InString.substring (Start, InString.length);
      LoopCtrl=0;
      break;
    }
    parse[Count] = InString.substring (Start, ParseMark);
    Start=ParseMark+1;
    ParseMark=Start;
    Count++;
  }
  parse[0]=Count;
  return (parse);
}

