
/*
   Copyright (c) Tomahawk Technologies Inc.  1999

   These scripts may be used to dress up any web page
   without any consent from the author.
   
*/

// Create a browser object whihc gives us details
// about the browser in use
function Browser() 
{
    var agent  = navigator.userAgent.toLowerCase();
    this.major = parseInt(navigator.appVersion);
    this.minor = parseFloat(navigator.appVersion);
    this.ns    = ((agent.indexOf('mozilla')!=-1) && ((agent.indexOf('spoofer')==-1) && (agent.indexOf('compatible') == -1)));
    this.ns2   = (this.ns && (this.major == 2));
    this.ns3   = (this.ns && (this.major == 3));
    this.ns4   = (this.ns && (this.major == 4));
    this.ns5   = (this.ns && (this.major >= 5));
    this.ns406 = (this.ns && (this.minor == 4.06));
    this.ns407 = (this.ns && (this.minor == 4.07));
    this.ns408 = (this.ns && (this.minor == 4.08));
    this.ns45  = (this.ns && (this.minor == 4.5));
    this.ns4b  = (this.ns && (this.minor < 4.04));

    this.ie    = (agent.indexOf("msie") != -1);
    this.ie3   = (this.ie && (this.major == 2));
    this.ie4   = (this.ie && (this.major >= 4));
    this.ie5   = (this.ie && (this.major >= 5));
    this.ie6   = (this.ie && (this.major >= 6));
    this.dhtml = (this.major >= 4);
    this.op3   = (agent.indexOf("opera") != -1);
    this.win   = (agent.indexOf("win")!=-1);
    this.mac   = (agent.indexOf("mac")!=-1);
    this.unix  = (agent.indexOf("x11")!=-1);
}

var browser = new Browser();   // The browser

if( browser.ns4 ) 
{
   doc = "document";
   sty = "";
   htm = ".document";
   visHide = "hide";
   visShow = "show";
}
else if ( browser.ns5 )
{
   doc = "document";
   sty = ".style";
   htm = ".innerHTML";
   visHide = "hidden";
   visShow = "visible";
}
else
{
   doc = "document.all";
   sty = ".style";
   htm = ".innerHTML";
   visHide = "hidden";
   visShow = "visible";
}
function initFollowMouse()
{
   if( browser.ns4 ) 
   {
      document.captureEvents( Event.MOUSEMOVE );
      document.onmousemove = mouseMoved;
   } 
   else if( browser.ie4 ) 
      document.onmousemove = mouseMoved;
}

var mouseX = 0;
var mouseY = 0;
function mouseMoved( e )
{
   if( browser.ie4 ) 
   {
      mouseX = (event.clientX + document.body.scrollLeft);
      mouseY = (event.clientY + document.body.scrollTop );
   }
   else if( browser.ns4 ) 
   {
      mouseX = e.pageX;
      mouseY = e.pageY;
   }
}

var screen_width       = screen.width;
var screen_height      = screen.height;
var full_window_width  = 640;
var full_window_height = 480;
var avail_width        = 0;
var avail_height       = 0;

function getWindowSize()
{
   if( browser.ns4 || browser.ie4 ) 
   {
      var hgtOffset = (browser.ns406 || browser.ns407 || browser.ns408) ? 30 : 48;
      if( screen_height <= 768 )
      {
         full_window_width  = screen.width  - 12;
         full_window_height = screen.height - hgtOffset;
      }
      else
      {
         full_window_width  = 1024 - 12;
         full_window_height =  768 - hgtOffset;
      }
   }
   
   if( browser.ns4 ) 
   {
      avail_width  = innerWidth;
      avail_height = innerHeight;
   } 
   else if( browser.ie4 ) 
   {
      avail_width  = document.body.clientWidth;
      avail_height = document.body.clientHeight;
   }
   if (typeof innerWidth != 'undefined') {
      avail_width = innerWidth;
      avail_height = innerHeight;
   }else if (typeof document.body.clientWidth != 'undefined') {
      avail_width  = document.body.clientWidth;
      avail_height = document.body.clientHeight;
   }
}

function dump_props( obj, obj_name )
{
   var result = "Object: " + obj_name + "\n";
   for( var i in obj )
      result +=  i + " = " + obj[i] + "\n"

   return result;
}

function img_toggle( imgName, mode ) 
{
   if( document.images ) 
      document[ imgName ].src = eval( imgName + "_" + mode + ".src" );
}

var layerList = new Array();     // Layer array
function getLayer( name ) 
{
   if( browser.dhtml )
      return document.getElementById(name).style
//      return eval( doc + '["' + name + '"]' + sty );
   return null;
}

function createLayer( z, name, left, top, width, height, visible, content ) 
{
   layerList[ layerList.length ] = name;
   
   if( avail_width == 0 )
      getWindowSize();

   width  = (width  ? width  : avail_width );
   height = (height ? height : avail_height);

   if( browser.ns4 ) 
   {
      document.writeln( "<layer name='" + name + "' left=" + left + " top=" + top );
      document.writeln( " width="  + width + " height=" + height );
      document.writeln( " visibility=" + (visible ? "'show'" : "'hide'") + " z-index=" + z + ">" );
      document.writeln( content );
      document.writeln( "</layer>" );

      var layer = getLayer( name );
      layer.width  = width;
      layer.height = height;
   }
   else if( browser.ie4 ) 
   {
      document.writeln( "<div id=\"" + name + "\" style=\"position:absolute;overflow:none; left:" + left + "px; top:" + top + "px; " );
      document.writeln( " width=" + width + "px; height=" + height + "px;" );
      document.writeln( " visibility:" + (visible ? "visible;" : "hidden;") + " z-index:" + z + "\">" );
      document.writeln( content );
      document.writeln( '</div>');
   }
   
   clipLayer( name, 0, 0, width, height );
}

function clipLayer( name, clipleft, cliptop, clipright, clipbottom ) 
{
  var layer = getLayer( name );

  if( browser.ns4 ) 
  {
    layer.clip.left   = clipleft;
    layer.clip.top    = cliptop;
    layer.clip.right  = clipright;
    layer.clip.bottom = clipbottom;
  }
  else if( browser.ie4 )
  {
    layer.clip = "rect(" + cliptop + " " +  clipright + " " + clipbottom + " " + clipleft +")";
  }
}

function hideLayer( name ) 
{
   var layer = getLayer( name );
   layer.visibility = visHide;
}

function showLayer( name ) 
{
   var layer = getLayer( name );
   layer.visibility = visShow;
}

function showLayerAt( name, x, y ) 
{
   var layer = getLayer( name );
   moveAbs( name, x, y );
   layer.visibility = visShow;
}

function isVisible( name )
{
   var layer = getLayer( name );
   return layer.visibility == visShow;
}

function getLayerX( name )
{
   var layer  = getLayer( name );
   return parseInt( layer.left );
}

function getLayerY( name )
{
   var layer  = getLayer( name );
   return parseInt( layer.top );
}

function changeLayerContent( name, text )
{
   var layer = getLayer( name );
   layer.htm = text;
}

var shown = false;
function changeLayerFontSize( name, size )
{
   var layer = getLayer( name );
   layer.fontSize = size;
}

function changeLayerFontColor( name, color )
{
   var layer = getLayer( name );
   layer.color = color;
}

function changeLayerFontFamily( name, font )
{
   var layer = getLayer( name );
   layer.fontFamily = font;
}

function moveAbs( name, x, y ) 
{
   var layer  = getLayer( name );
   layer.left = x+'px';
   layer.top  = y+'px';
}

var mVertTimer = null;
function autoMoveVert( name, dir, dist, pause ) 
{
   var layer = getLayer( name );
   var y_pos = parseInt( layer.top );

   var func = "autoMoveVert( '" + name + "', '" + dir + "', " + dist + "," + pause + " )";

   if( dir == "up" )
   {
      if( y_pos > dist ) 
      {
         layer.top = y_pos - 1;
         mVertTimer = setTimeout( func, parseInt( pause ) );
      }
   }
   else if( dir == "down" ) 
   {
      if( y_pos < dist ) 
      {
         layer.top = y_pos + 1;
         mVertTimer = setTimeout( func, parseInt( pause ) );
      }
   }
}

var mHorizTimer = null;
function autoMoveHoriz( name, dir, dist, pause ) 
{
   var layer = getLayer( name );
   var x_pos = parseInt( layer.left );

   var func = "autoMoveHoriz( '" + name + "', '" + dir + "', " + dist + "," + pause + " )";

   if( dir == "left" )
   {
      if( x_pos > dist ) 
      {
         layer.left = x_pos - 5;
         mHorizTimer = setTimeout( func, pause );
      }
   }
   else if( dir == "right" ) 
   {
      if( x_pos < dist ) 
      {
         layer.left = x_pos + 5;
         mHorizTimer = setTimeout( func, pause );
      }
   }
}



var loop        = true;
var scrollTimer = null;

function stopScroll( ) 
{
   loop = false;
   clearTimeout( scrollTimer );
}

function startScroll( name, dir, speed ) 
{
   loop = true;
   scrollLayer( name, dir, speed );
}

function scrollLayer( name, dir, speed ) 
{
   var layer = getLayer( name );
   var y_pos = parseInt( layer.top );
   var x_pos = parseInt( layer.left );

   var func = "scrollLayer( '" + name + "', '" + dir + "', " + speed + " )";
   if( loop == true ) 
   {
      if( dir == "down" ) 
      {
         layer.top = ( y_pos - speed );
         if( scrollTimer )
            clearTimeout( scrollTimer );
         scrollTimer = setTimeout( func, 10 );
      } 
      else if( dir == "up" && (y_pos < 10) ) 
      {
         layer.top = ( y_pos + speed );
         if( scrollTimer )
            clearTimeout( scrollTimer );
         scrollTimer = setTimeout( func, 10 );
      }
      else if( dir == "right" ) 
      {
         layer.left = ( x_pos - speed );
         if( scrollTimer )
            clearTimeout( scrollTimer );
         scrollTimer = setTimeout( func, 10 );
      }
      else if( dir == "left" ) 
      {
         layer.left = ( x_pos + speed );
         if( scrollTimer )
            clearTimeout( scrollTimer );
         scrollTimer = setTimeout( func, 10 );
      }
   }
   if( dir == "top" ) 
   {
      layer.top = 10;
      if( scrollTimer )
         clearTimeout( scrollTimer );
   }
}

