//Running on MSIE. Oh no!
var g_browserInternetExploder = document.all;

//Running on something compliant. Huzzah!
var g_browserNice = document.getElementById;

//Running on NetScape
var g_browserNetScape = document.layers;

function document_getElementById( idToGet )
{
  if( g_browserInternetExploder )
    return document.all[ idToGet ];
  else if( g_browserNice )
    return document.getElementById( idToGet );
  else if( g_browserNetScape )
    return document.layers[ idToGet ];
  else
    alert('Your browser confuses me; make me fix this!');
}

function document_getWidth( )
{
  if( g_browserInternetExploder ) {
    var width=document.documentElement.clientWidth-5; /* was document.body.offsetWidth-4;*/
  }
  else
    var width = window.innerWidth-16;
  return width;
}

function document_getHeight( )
{
  if( g_browserInternetExploder )
    return document.documentElement.clientHeight; /*document.documentElement.offsetHeight-8;*/
  else
    return window.innerHeight;
}

function document_getCookie( nameOfCookie )
{
  //alert( 'Getting cookie '+nameOfCookie );
  var beginCookie = document.cookie.indexOf( nameOfCookie + "=" );
  if( beginCookie == -1 )
    return null;

  //alert( unescape(document.cookie) );


  beginCookie += nameOfCookie.length + 1;
  var endCookie = document.cookie.indexOf( ";", beginCookie );
  if( endCookie == -1 )
    {
      endCookie = document.cookie.length;
      //alert( 'Bad end of cookie!' );
    }

  var cookieValue = document.cookie.substring( beginCookie, endCookie );
  //alert( unescape(document.cookie.substring(beginCookie, endCookie)) );

  return unescape( document.cookie.substring(beginCookie, endCookie) );
}

function document_setCookie( nameOfCookie, valueOfCookie, daysToHold )
{
  var expireDate = new Date();
  expireDate.setTime( expireDate.getTime + (daysToHold * 24 * 3600 * 1000) );

  //Does this need += ... ?
  //document.cookie = nameOfCookie + '=' + escape(value) + ((
  var cookieString = nameOfCookie + '=' + escape(valueOfCookie);
  if( daysToHold != null )
    cookieString += '; expires=' + expireDate.toGMTString();
  document.cookie = cookieString + ';';
}

function document_delCookie( nameOfCookie )
{
  if( getCookie(nameOfCookie) )
    {
      document.cookie = nameOfCookie + '=' + "; expires=Thu, 01-Jan-70 00:00:01 GMT";
    }
}

function alignElement( elementName, posnLeft, posnTop, sizeWidth, sizeHeight )
{
  var elementObj = document_getElementById( elementName );  

  if( !elementObj )
    {
      alert( 'Attempted to position undefined or null object: ' + elementName );
      return;
    }

  //if( posnLeft < 0 ) posnLeft = 0;
  //if( posnTop < 0 ) posnTop = 0;

  if( sizeWidth < 0 ) sizeWidth = 0;
  if( sizeWidth < 0 ) sizeWidth = 0;

  elementObj.style.left = posnLeft+"px";
  elementObj.style.top = posnTop+"px";
  if( sizeWidth )
     elementObj.style.width = sizeWidth+"px";
  if( sizeHeight )
     elementObj.style.height = sizeHeight+"px";
}

function loadExternalPage ( urlToLoad )
{
  //alert( 'Loading external page: ' + urlToLoad );
  parent.location.href = urlToLoad;
  //parent.reload();
}
