function wopen(url, name, w, h)
{
  // Fudge factors for window decoration space.
  // In my tests these work well on all platforms & browsers.

  w += 32;
  h += 96;
  wleft = (screen.width - w) / 2;
  wtop = (screen.height - h) / 2;
  var win = window.open(url,
    name,
    'width=' + w + ', height=' + h + ', ' +
    'left=' + wleft + ', top=' + wtop + ', ' +
    'location=no, menubar=no, ' +
    'status=no, toolbar=no, scrollbars=no, resizable=no');
  // Just in case width and height are ignored

  //win.resizeTo(w, h);
  // Just in case left and top are ignored
  //win.moveTo(wleft, wtop);
  //win.focus();
}

function toggleLayer(whichLayer)
{
if (document.getElementById)
{
// this is the way the standards work
var style2 = document.getElementById(whichLayer).style;
//style2.display = style2.display? "":"none";

	if (style2.display) {
		style2.display = '';
		window.scroll(0,237);
	} else {
		style2.display = 'none';
	}
}
else if (document.all)
{
// this is the way old msie versions work
var style2 = document.all[whichLayer].style;
//style2.display = style2.display? "":"none";
	if (style2.display) {
		style2.display = '';
		window.scroll(0,237);
	} else {
		style2.display = 'none';
	}

}
else if (document.layers)
{
// this is the way nn4 works
var style2 = document.layers[whichLayer].style;
//style2.display = style2.display? "":"none";
	if (style2.display) {
		style2.display = '';
		window.scroll(0,237);
	} else {
		style2.display = 'none';
	}

}
}


// F. Permadi 2005.
// Highlights table row
// Copyright (C) F. Permadi
// This code is provided "as is" and without warranty of any kind.  Use at your own risk.
// Programmer found this code and the tutorial on http://www.permadi.com/tutorial/cssHighlightTableRow/exampleTableHandler.html



// These variables are for saving the original background colors
var savedStates=new Array();
var savedStateCount=0;

/////////////////////////////////////////////////////
// This function takes an element as a parameter and 
//   returns an object which contain the saved state
//   of the element's background color.
/////////////////////////////////////////////////////
function saveBackgroundStyle(myElement)
{
  saved=new Object();
  saved.element=myElement;
  saved.className=myElement.className;
  saved.backgroundColor=myElement.style["backgroundColor"];
  return saved;   
}

/////////////////////////////////////////////////////
// This function takes an element as a parameter and 
//   returns an object which contain the saved state
//   of the element's background color.
/////////////////////////////////////////////////////
function restoreBackgroundStyle(savedState)
{
  savedState.element.style["backgroundColor"]=savedState.backgroundColor;
  if (savedState.className)
  {
    savedState.element.className=savedState.className;    
  }
}

/////////////////////////////////////////////////////
// This function is used by highlightTableRow() to find table cells (TD) node
/////////////////////////////////////////////////////
function findNode(startingNode, tagName)
{
  // on Firefox, the TD node might not be the firstChild node of the TR node
  myElement=startingNode;
  var i=0;
  while (myElement && (!myElement.tagName || (myElement.tagName && myElement.tagName!=tagName)))
  {
    myElement=startingNode.childNodes[i];
    i++;
  }  
  if (myElement && myElement.tagName && myElement.tagName==tagName)
  {
    return myElement;
  }
  // on IE, the TD node might be the firstChild node of the TR node  
  else if (startingNode.firstChild)
    return findNode(startingNode.firstChild, tagName);
  return 0;
}

/////////////////////////////////////////////////////
// Highlight table row.
// newElement could be any element nested inside the table
// highlightColor is the color of the highlight
/////////////////////////////////////////////////////
function highlightTableRow(myElement, highlightColor)
{
  var i=0;
  // Restore color of the previously highlighted row
  for (i; i<savedStateCount; i++)
  {
    restoreBackgroundStyle(savedStates[i]);          
  }
  savedStateCount=0;

  // To get the node to the row (ie: the <TR> element), 
  // we need to traverse the parent nodes until we get a row element (TR)
  // Netscape has a weird node (if the mouse is over a text object, then there's no tagName
  while (myElement && ((myElement.tagName && myElement.tagName!="TR") || !myElement.tagName))
  {
    myElement=myElement.parentNode;
  }

  // If you don't want a particular row to be highlighted, set it's id to "header"
  // If you don't want a particular row to be highlighted, set it's id to "header"
  if (!myElement || (myElement && myElement.id && myElement.id=="header") )
    return;
		  
  // Highlight every cell on the row
  if (myElement)
  {
    var tableRow=myElement;
    
    // Save the backgroundColor style OR the style class of the row (if defined)
    if (tableRow)
    {
	  savedStates[savedStateCount]=saveBackgroundStyle(tableRow);
      savedStateCount++;
    }

    // myElement is a <TR>, then find the first TD
    var tableCell=findNode(myElement, "TD");    

    var i=0;
    // Loop through every sibling (a sibling of a cell should be a cell)
    // We then highlight every siblings
    while (tableCell)
    {
      // Make sure it's actually a cell (a TD)
      if (tableCell.tagName=="TD")
      {
        // If no style has been assigned, assign it, otherwise Netscape will 
        // behave weird.
        if (!tableCell.style)
        {
          tableCell.style={};
        }
        else
        {
          savedStates[savedStateCount]=saveBackgroundStyle(tableCell);        
          savedStateCount++;
        }
        // Assign the highlight color
        tableCell.style["backgroundColor"]=highlightColor;

        // Optional: alter cursor
        tableCell.style.cursor='hand';
        i++;
      }
      // Go to the next cell in the row
      tableCell=tableCell.nextSibling;
    }
  }
}

/////////////////////////////////////////////////////
// This function is to be assigned to a <table> mouse event handler.
// If the element that fired the event is within a table row,
//   this function will highlight the row.
/////////////////////////////////////////////////////
function trackTableHighlight(mEvent, highlightColor)
{
  if (!mEvent)
    mEvent=window.event;
		
  // Internet Explorer
  if (mEvent.srcElement)
  {
    highlightTableRow( mEvent.srcElement, highlightColor);
  }
  // Netscape and Firefox
  else if (mEvent.target)
  {
    highlightTableRow( mEvent.target, highlightColor);		
  }
}

/////////////////////////////////////////////////////
// Highlight table row.
// newElement could be any element nested inside the table
// highlightColor is the color of the highlight
/////////////////////////////////////////////////////
function highlightTableRowVersionA(myElement, highlightColor)
{
  var i=0;
  // Restore color of the previously highlighted row
  for (i; i<savedStateCount; i++)
  {
    restoreBackgroundStyle(savedStates[i]);          
  }
  savedStateCount=0;

  // If you don't want a particular row to be highlighted, set it's id to "header"
  if (!myElement || (myElement && myElement.id && myElement.id=="header") )
    return;
		  
  // Highlight every cell on the row
  if (myElement)
  {
    var tableRow=myElement;
    
    // Save the backgroundColor style OR the style class of the row (if defined)
    if (tableRow)
    {
	  savedStates[savedStateCount]=saveBackgroundStyle(tableRow);
      savedStateCount++;
    }

    // myElement is a <TR>, then find the first TD
    var tableCell=findNode(myElement, "TD");    

    var i=0;
    // Loop through every sibling (a sibling of a cell should be a cell)
    // We then highlight every siblings
    while (tableCell)
    {
      // Make sure it's actually a cell (a TD)
      if (tableCell.tagName=="TD")
      {
        // If no style has been assigned, assign it, otherwise Netscape will 
        // behave weird.
        if (!tableCell.style)
        {
          tableCell.style={};
        }
        else
        {
          savedStates[savedStateCount]=saveBackgroundStyle(tableCell);        
          savedStateCount++;
        }
        // Assign the highlight color
        tableCell.style["backgroundColor"]=highlightColor;

        // Optional: alter cursor
        tableCell.style.cursor='default';
        i++;
      }
      // Go to the next cell in the row
      tableCell=tableCell.nextSibling;
    }
  }
}

var pos=0;
var msg="Loading Please Wait...";
function Type(){
pos++;
if (msg.substring(pos-1,pos) == " ")
{
pos++
}
text=msg.substring(0,pos);
if (document.layers)
{
document.layers.loadingtext.document.open();
document.layers.loadingtext.document.write("<div style='position:absolute;top:0px;left:0px;font-family:Verdana;font-size:16px;color:#777777'>" + text + "</div>");
document.layers.loadingtext.document.close();
}
else if (document.all)
document.all.loadingtext.innerHTML=text;

if (pos < msg.length)
{Tm=setTimeout('Type()',100)}
else
{
pos=0;
Tm=setTimeout('Type()',100)}
}

function displayloading(){
window.scroll(0,0);
Type();
if (document.getElementById)
{
// this is the way the standards work
var style2 = document.getElementById('loading').style;
	if (style2.display) {
		style2.display = '';
	} else {
		style2.display = 'none';
	}
}
else if (document.all)
{
// this is the way old msie versions work
var style2 = document.all['loading'].style;
//style2.display = style2.display? "":"none";
	if (style2.display) {
		style2.display = '';
	} else {
		style2.display = 'none';
	}
}
else if (document.layers)
{
// this is the way nn4 works
var style2 = document.layers['loading'].style;
//style2.display = style2.display? "":"none";
	if (style2.display) {
		style2.display = '';
	} else {
		style2.display = 'none';
	}

}

if (document.getElementById)
{
// this is the way the standards work
var style2 = document.getElementById('top').style;
	if (style2.display) {
		style2.display = '';
	} else {
		style2.display = 'none';
	}
}
else if (document.all)
{
// this is the way old msie versions work
var style2 = document.all['top'].style;
//style2.display = style2.display? "":"none";
	if (style2.display) {
		style2.display = '';
	} else {
		style2.display = 'none';
	}
}
else if (document.layers)
{
// this is the way nn4 works
var style2 = document.layers['top'].style;
//style2.display = style2.display? "":"none";
	if (style2.display) {
		style2.display = '';
	} else {
		style2.display = 'none';
	}

}

}



