/*                                                    ,  ,       *\
                                                     / \/ \
                                                    (/ //_ \_
      .-._                                           \||  .  \
       \  '-._                                 _,:__.-"/---\_ \
  ______/___  '.    .-------------------------'~-'--.)__( , )\ \
 `'--.___  _\  /    |                              ,'    \)|\ `\|
      /_.-' _\ \ _:,_       Cross-browser functions      " ||   (
    .'__ _.' \'-/,`-~`            Version 1.4              |/
        '. ___.> /=,|        Written by Marco Tijs         |
         / .-'/_ )  |                                      |
         )'  ( /(/  '--------------------------------------'
              \\ "
\*             '=='                                              */

$browser=0;

function browser(){
  var $ua=(navigator.userAgent).toLowerCase();
  var $an=(navigator.appName).toLowerCase();
  this.$opera=($ua.indexOf('opera')==-1)?0:1*($ua.replace(/.*opera\s*(\d+).*/i,'$1'));
  this.$ff=($ua.indexOf('firefox')==-1)?0:1*($ua.replace(/.*firefox\/(\d+).*/i,'$1'));
  this.$nn=($an.indexOf('netscape')==-1)?0:($ua.replace(/.*netscape\s*(\d+).*/i,'$1'));
  if(isNaN(1*this.$nn))
    this.$nn=($ua.replace(/.*mozilla\s*\/\s*(\d+)\.\d*\s.*/i,'$1'));
  this.$ie=($ua.indexOf('msie')==-1||this.$opera)?0:1*($ua.replace(/.*msie\s*(\d+).*/i,'$1'));
  this.$which=this.$nn?"nn":this.$ie?"ie":"opera";
  this.$width=0;
  this.$height=0;
  if(document.body||window.innerWidth){
    this.$width=(window.innerWidth)?window.innerWidth:document.body.clientWidth;
    this.$height=(window.innerWidth)?window.innerHeight:document.body.clientHeight;
  }
}

function getElement($which,$style){
  if(!$browser)
    $browser=new browser();

  if(document.getElementById){
    if(document.getElementById($which)){
      if(document.getElementById($which).style&&$style){
        return document.getElementById($which).style;
      }else
        return document.getElementById($which);
    }
  }

  if(document.all){
    if(document.all[$which]){
      if($style)
        return document.all[$which].style;
      else
        return document.all[$which];
    }
  }

  if($browser.$nn<=4&&$browser.$nn||document.layers){
    if(document.layers[$which])
      return document.layers[$which];
    var $layers=new Array();var $layer;var $k=0;
    for(var $i=0;$i<document.layers.length;$i++){
      $layers[$layers.length]=document.layers[$i];
    }
    while($layers.length&&$k<1000){
      $layer=$layers[$layers.length-1];
      $layers.length--;
      if($layer.id==$which||$layer.name==$which)
        return $layer;
      for(var $i=0;$i<$layer.document.layers.length;$i++){
        $layers[$layers.length]=$layer.document.layers[$i];
      }
      $k++;
    }      
  }
  alert("Error in function getElement:\n\'"+$which+"\' could not be found.");
  return false;
}

function getImage($image){
  if(!$browser)
    $browser=new browser();

  if(document.getElementByName){
    if(document.getElementByName($image))
      return document.getElementByName($image);
  }

  if(document.images){
    if(document.images[$image])
      return document.images[$image];
  }

  if($browser.$nn<=4&&$browser.$nn||document.layers){
    var $layers=new Array();var $layer;var $k=0;
    for(var $i=0;$i<document.layers.length;$i++){
      $layers[$layers.length]=document.layers[$i];
    }
    while($layers.length&&$k<1000){
      $layer=$layers[$layers.length-1];
      $layers.length--;
      if($layer.document.images[$image])
        return $layer.document.images[$image];
      for(var $i=0;$i<$layer.document.layers.length;$i++){
        $layers[$layers.length]=$layer.document.layers[$i];
      }
      $k++;
    }      
  }
  alert("Error in function getImage:\n\'"+$image+"\' could not be found.");
  return false;  
}

function getStyle($which){
  return getElement($which,1);
}

function getLayer($which){
  return getElement($which,0);
}

function getCursor($which,$event){
  if(!$browser)
    $browser=new browser();
  
  $which=$which.toLowerCase();

  if($event.pageX){
    var $value = ($which=="x")?($event.pageX):($event.pageY);
    if(!$browser.$ff)
      $value += ($which=='x')?window.pageXOffset:window.pageYOffset;
    return $value;
  }else
    return ($which=="x")?(document.body.scrollLeft+event.x):(document.body.scrollTop+event.y)
}

function writeLayer($which,$what){
  if(!$browser)
    $browser=new browser();

  if($browser.$nn<=4&&$browser.$nn){
    getElement($which,0).document.open();
    getElement($which,0).document.write($what);
    getElement($which,0).document.close();
  }else{
    getElement($which,0).innerHTML=$what;
  }
}

$visible=((navigator.userAgent).toLowerCase().indexOf('netscape 4')==-1)?'visible':'show';
$hidden=((navigator.userAgent).toLowerCase().indexOf('netscape 4')==-1)?'hidden':'hide';