/*
 *   Fading buttons (C) 2009, ILYNS. All rights reserved.
 */

var SPEED = 40;
var MIN_FADE = 0;
var MAX_FADE = 0x80;
var STEP = 10;
var FADE_IN = 1;
var FADE_OUT = 2;

//------------------------------------------------------------------------------

function on_menu_btn_hover(td)
{
 if(window.__menubtn == null)
 {
  window.__menubtn = new Array;
 }
 
 window.__menubtn[td.id] = td;
 td.__fade = MIN_FADE;
 td.__fade_state = FADE_IN;
 window.setTimeout("fade_menu(true, '" + td.id + "');", SPEED);
}

//------------------------------------------------------------------------------

function int2color(v)
{
 var s = v.toString(0x10);
 if(s.length == 1)
 {
  s = "0" + s;
 }
 return "#" + s + s + s;
}

//------------------------------------------------------------------------------

function update_btn(td)
{
 var fade = td.__fade;
 td.style.backgroundColor = int2color(fade);

 var fade_g = fade + 0x7f;

 var fade_b = fade * 2;
 if(fade_b != 0)
 {
  --fade_b;
 }

 var sg = fade_g.toString(0x10);
 if(sg.length == 1)
 {
  sg = "0" + sg;
 }

 var sb = fade_b.toString(0x10);
 if(sb.length == 1)
 {
  sb = "0" + sb;
 }

 td.style.color = ("#ff" + sg + sb);
 
 var nodes = td.childNodes;
 for(var i = 0; i != nodes.length; ++i)
 {
  var node = nodes.item(i);
  try
  {
   node.style.color = td.style.color;
  }
  catch(e) { }
 }
}

//------------------------------------------------------------------------------

function fade_menu(fade, id)
{
 var td = window.__menubtn[id];
 if(fade && td.__fade_state == FADE_IN)
 {
  td.__fade += STEP;
  if(td.__fade <= MAX_FADE)
  {
   update_btn(td);
   window.setTimeout("fade_menu(true, '" + id + "');", SPEED);
  }
 }
 else if(td.__fade_state == FADE_OUT)
 {
  td.__fade -= STEP;
  if(td.__fade >= MIN_FADE)
  {
   update_btn(td);
   window.setTimeout("fade_menu(false, '" + id + "');", SPEED);
  }
 }
}

//------------------------------------------------------------------------------

function on_menu_btn_leave(td)
{
 if(window.__menubtn == null)
 {
  window.__menubtn = new Array;
 }
 
 window.__menubtn[td.id] = td;
 td.__fade = MAX_FADE;
 td.__fade_state = FADE_OUT;
 window.setTimeout("fade_menu(false, '" + td.id + "');", SPEED);
}

//------------------------------------------------------------------------------
