/* Fade-in script by Bernhard Friedrich

modifications/customization by Ben Boukes, (c) 2001, 2002, 2007

/*************************************************************
 * based on the script found in HomeSite 2.5
 * fade script ver0.1 by Kouichirou@Eto.com 1996/02/20
 * Copyright (c) 1996 Kouichirou Eto. All Rights Reserved.
 * You can freely copy, use, modify this script,
 * if the credit is given in the source.
 */

/* Enter hexadecimal RGB-code for fade begin color and fade-end color here.
   Also set fade-speed. Smaller number means faster fade */

col_begin     = "#FFFFFF";  // begin color
col_end       = "#000000";  // End color
fade_steps    = 50;         // number of steps from begin color to end color
fade_interval = 80;         // time (milliseconds) between two subsequent steps

/* Do not edit past this line */
document.bgcolor=col_end;
var hexchars="0123456789ABCDEF";

function fromHex (str) {
  var high=str.charAt(0); //Note: Netscape 2.0 bug workaround

  var low=str.charAt(1);
  return(16*hexchars.indexOf(high))+hexchars.indexOf(low);
}

function Color(str){
	this.r=fromHex(str.substring(0,2));
	this.g=fromHex(str.substring(2,4));
	this.b=fromHex(str.substring(4,6));
	return this;
}

color_start=col_begin.substring(1,8);
color_end=col_end.substring(1,8);

function makearray(n) {
  this.length = n;
  for(var i = 1; i <= n; i++)
    this[i] = 0;
  return this;
}

hexa = new makearray(16);
for(var i = 0; i < 10; i++)
  hexa[i] = i;
hexa[10]="a"; hexa[11]="b"; hexa[12]="c";
hexa[13]="d"; hexa[14]="e"; hexa[15]="f";

function hex(i) {
  if (i < 0)
    return "00";
  else if (i > 255)
    return "ff";
  else
    return "" + hexa[Math.floor(i/16)] + hexa[i%16];
}

function setbgColor(r, g, b) {
  var hr = hex(r); var hg = hex(g); var hb = hex(b);
  document.bgColor = "#"+hr+hg+hb;
}

var this_step,my_interval;  // global, for communucation between functions fade(), fadein() and fadeout()
function fade(sr, sg, sb, er, eg, eb, steps) {
  this_step++;
  setbgColor(
  Math.floor(sr * ((steps-this_step)/steps) + er * (this_step/steps)),
  Math.floor(sg * ((steps-this_step)/steps) + eg * (this_step/steps)),
  Math.floor(sb * ((steps-this_step)/steps) + eb * (this_step/steps)));
  if (this_step == steps) window.clearInterval(my_interval);
}

function fadein() {
  this_step = 0;
	my_interval = self.setInterval("fade(Color(color_start).r,Color(color_start).g,Color(color_start).b,Color(color_end).r,Color(color_end).g,Color(color_end).b,fade_steps)",fade_interval);
}

function fadeout() {
  this_step = 0;
	my_interval = self.setInterval("fade(Color(color_end).r,Color(color_end).g,Color(color_end).b,Color(color_start).r,Color(color_start).g,Color(color_start).b,fade_steps)",fade_interval);
}

/***** end fade script *****/
/* invoke fading in tag: <BODY onLoad="fadein()">, or use this script from within
the <BODY>:
  <script language="JavaScript" type="text/javascript">
  <!-- 
  fadein();
  //-->
  </script>
/************************************************************/