var catCur = 0;
var catCurC = 0;
var catList = new Array();

function showCat(category, el) {
  if(category.id==catCur)
    return;
  if(category.timeout)
    clearTimeout(category.timeout);
  category.timeout = catOp(50, 100, 500, 500, category.id);
  if(catCur) {
    if(catCurC.timeout)
      clearTimeout(catCurC.timeout);
    catCurC.timeout = catOp(100, 50, 500, 500, catCur);
  }
  catCur = category.id;
  catCurC = category;
/*  if(exCatE && el.parentNode) {
    exC = document.getElementById('exCat');
    if(exC && exC.parentNode) {
      exC.style.display = 'none';
        exC.parentNode.removeChild(exC);
    }	
    exC	= null;
    if(!exC) {
      exC = document.createElement('div');
      exC.id='exCat';
      exC.onmouseover=function() { exCatOv(1); };
      exC.onmouseout=function() { exCatTo = setTimeout('if(exCatTo) exCatOu(0)', 100); };
    }
    if(exC) {
      exC.style.display = 'none';
      node = el.parentNode;
      if(!node.nextSibling || node.nextSibling.nodeName=='#text') {
        node = node.previousSibling;
      }
      if(el.getBoundingClientRect)
        node = node.previousSibling;
      node.appendChild(exC);
      html = '';
      for(i = 0; i < category.sub.length; i++)
        html += '<a onmouseover="exCatOv(2)" onmouseout="exCatOu(1);" href="'+catPattern.replace('@', category.sub[i].id)+'">'+category.sub[i].name+'</a>';
      exC.innerHTML = html;
      setTimeout("exC.style.display = '';", 100);
    }
  }*/
  if(!document.getElementById("cnm"))
    return;
  img = document.getElementById("cmig");
  img.src=category.ico;
  img.alt=category.name;
  document.getElementById("cnm").innerHTML = category.name;
  cmnu = document.getElementById("ccm");
  html = '<table border="0" cellpadding="0" cellspacing="0"><tr>';
  for(i = 0; i < category.sub.length; i++) {
    html += '<td class="SubLink"><a href="'+catPattern.replace('@', category.sub[i].id)+'">'+category.sub[i].name+'</a></td>';
    if(i % 3 == 2)
      html+='</tr><tr>';
  }
  html+='</tr></table>';
  cmnu.innerHTML = html;
}
var catFl = 1;
function flashCat(category) {
  if(catCur!=category.id) {
    if(catFl)
      category.timeout = catOp(50, 100, 500, 500, category.id);
    else
      category.timeout = catOp(100, 50, 500, 500, category.id);
    catFl++;
    catFl%= 2;
  }
  setTimeout('flashCat(c'+category.id+')', 500);
}

function catOp(st, end, dt, t, id) {
    dt = Math.max(0, dt);
    op = Math.max(0, Math.min(end - Math.floor((end - st) * (dt / t)), 100));
    el = document.getElementById('cimg'+id);
    el.style.opacity = el.MozOpacity = el.KhtmlOpacity = (op / 100);
    el.style.filter = "alpha(opacity=" + op + ")";
    if(dt > 0)
      return setTimeout('c'+id+'.timeout = catOp('+st+', '+end+', '+(dt-50)+', '+t+', \''+id+'\');', 5);
    else {
      return 0;
    }
}

function flashCats() {
  return;
  if(catCur) {
    for(i = 0; catList[i] != catCur && i < catList.length; i++) {
      setTimeout('c'+catList[i]+'.timeout = catOp(50, 100, 300, 300, \''+catList[i]+'\');', 1000 + i * 200);
      setTimeout('c'+catList[i]+'.timeout = catOp(100, 50, 300, 300, \''+catList[i]+'\');', 1000 + i * 200 + 300);
    }
    f = Math.max(50, Math.floor(i / (catList.length-1) * 2 * 200));
    for(i = catList.length-1; catList[i] != catCur && i > 0; i--) {
      setTimeout('c'+catList[i]+'.timeout = catOp(50, 100, 300, 300, \''+catList[i]+'\');', 1000 + (catList.length-i) * f);
      setTimeout('c'+catList[i]+'.timeout = catOp(100, 50, 300, 300, \''+catList[i]+'\');', 1000 + (catList.length-i) * f + 300);
    }
  } else {
    for(i = 0; i < catList.length; i++)
      if(catCur != catList[i]) {
        setTimeout('c'+catList[i]+'.timeout = catOp(50, 100, 300, 300, \''+catList[i]+'\');', 1000 + i * 200);
        setTimeout('c'+catList[i]+'.timeout = catOp(100, 50, 300, 300, \''+catList[i]+'\');', 1000 + i * 200 + 300);
      }
//    setTimeout('flashCats();', 10000);
  }
}

var exCatC = 0;
var exCatTo = 0;
function exCatOu(min) {
  if(!exCatE) return;
  exCatC = Math.max(min, exCatC-1);
  exCatC = isNaN(exCatC) ? 0 : exCatC;
  if(exCatC <= 0) {
//    div = document.getElementById('exCat');
    exCatC = 0;
//    div.style.display='none';
//    div.style.visibility='hidden';
  }
}
function exCatOv(max) {
  if(!exCatE) return;
  exCatC = Math.max(max, exCatC);
  exCatC = isNaN(exCatC) ? 0 : exCatC;
  exCatTo = 0;
  if(exCatC > 0) {
//    div = document.getElementById('exCat');
//    div.style.display='';
//    div.style.visibility='';
  }
}
