var isOpera = false;
var isMSIE = false;

var ua = navigator.userAgent;
		
var opera = "Opera";				
var msie = "MSIE";
if (ua.indexOf(opera) >= 0) isOpera = true;	
if (ua.indexOf(msie) >= 0) isMSIE = true;							

function _el(name) {
	if (document.all)
        return document.all[name];
	if (document.getElementById)
        return document.getElementById(name);	
	return null;
}

var cm;
var ch;
var dh;
var dt;
var interval;

function AbsX( item )
{
  var x = 0;
  do 
  {
    if (item.style.position == 'absolute') 
    {
      return x + item.offsetLeft; 
    }
    else
    {
      x += item.offsetLeft;
      if (item.offsetParent) 
        if (item.offsetParent.tagName == 'TABLE') 
          if (parseInt(item.offsetParent.border) > 0)          
            x++;
    }
  }
  while (item = item.offsetParent);
  return x; 
}

function AbsY( item )
{
  var y = 0;
  do
  {
    if (item.style.position == 'absolute')
    {
      return y + item.offsetTop; 
    }
    else
    {
      y += item.offsetTop;
      if (item.offsetParent)
        if (item.offsetParent.tagName == 'TABLE')
          if (parseInt(item.offsetParent.border) > 0)
            y++;
    }
  }
  while (item = item.offsetParent);
  return y;
}

var imgx;
var imgy;
var popupImage = null;

function img_resize() {
    if (popupImage == null) return;
    imgx -= 2.5;
    imgy -= 3;
    popupImage.style.left = imgx + "px";
    popupImage.style.top = imgy + "px";
    popupImage.width += 5;
    popupImage.height += 6;
    if (popupImage.width>=150) {
        popupImage.width = "150";
        popupImage.height = "212";
    } else setTimeout("img_resize()",10);
}

function popupMouseOut(event) {
    over(null,"");
}

function over(img, text) {
    var popup = _el("popup");

    if (img != null) {
        if (popupImage == null) {
            popupImage = document.createElement("img");
            document.body.appendChild(popupImage);
            popupImage.className = "popupImage";
            popupImage.onmouseout = popupMouseOut;            
        }
        popupImage.style.left = (imgx = AbsX(img)) + "px";
        popupImage.style.top = (imgy = AbsY(img)) + "px";
        popupImage.width = img.width;
        popupImage.height = img.height;
        popupImage.src = img.src;
        popupImage.style.display = "block";
        popupImage.onclick = img.onclick;

        img_resize();
        popup.className = "popup";
        _el("innerpopup").innerHTML = text;
        var x = AbsX(img)+(img.width-226)/2;

        if (x + 226 > document.body.clientWidth)
            x = document.body.clientWidth-226;

        popup.style.left = x + "px";
        popup.style.top = (AbsY(img)+img.height+5)+"px";
    } else {
        popup.className = "hidden";
        popupImage.style.display = "none";
    }
}

function showhint(img, text) {
    var popup = _el("popup");

    popup.className = "popup";
    _el("innerpopup").innerHTML = text;
    var x = AbsX(img)+(img.width-226)/2;

    if (x + 226 > document.body.clientWidth)
        x = document.body.clientWidth-226;

    popup.style.left = x + "px";
    popup.style.top = (AbsY(img)+img.height-5)+"px";
}

function hidehint() {
    _el("popup").className = "hidden";
}

var currentMenu = null;

var shutterStep = 20;
var shutterTime = 15;
var shutterWait = 1000;

function slideIn(menuId) {
    var menu = _el(menuId);

    if (!menu.isOpening)        
        return;

    var slider;

    for (var i = 0; i<menu.childNodes.length; i++) {
        if ("slider" == menu.childNodes[i].className) {
            slider = menu.childNodes[i];
            break;
        }
    }
   
    if (menu.currentHeight + shutterStep < slider.offsetHeight) {
        menu.currentHeight += shutterStep;
        menu.style.height = menu.currentHeight + "px";
        setTimeout("slideIn('"+menuId+"')",shutterTime);
    } else {
        menu.style.height = slider.offsetHeight;
        menu.isOpening = false;
    }
}

function slideOut(menuId) {
    var menu = _el(menuId);

    if (!menu.isShutting)
        return;

    var slider;

    for (var i = 0; i<menu.childNodes.length; i++) {
        if ("slider" == menu.childNodes[i].className) {
            slider = menu.childNodes[i];
            break;
        }
    }

    if (menu.currentHeight > shutterStep) {
        menu.currentHeight -= shutterStep;
        menu.style.height = menu.currentHeight + "px";
        setTimeout("slideOut('"+menuId+"')",shutterTime);
    } else {
        menu.style.visibility = "hidden";
        menu.isShutting = false;
    }
}

function bindMenu(triggerId,menuId) {
    var trigger = _el(triggerId);
    trigger.onmouseover = new Function('showMenu("'+triggerId+'","'+menuId+'");');
}

function showMenu(triggerId,menuId) {
    var menu = _el(menuId);
    var trigger = _el(triggerId);
    if (currentMenu != menu) {
        if (currentMenu != null)
            currentMenu.style.visibility = "hidden";
        currentMenu = menu;
    }    
    menu.style.left = AbsX(trigger) - 11 + 'px';
    menu.style.top = AbsY(trigger) + 17 + 'px';
    
    if (menu.style.visibility == "hidden") {
        menu.currentHeight = 0;
        menu.style.height = "1px";
        menu.style.visibility = 'visible';
    } else menu.currentHeight = menu.offsetHeight;
    menu.isShutting = false;

    menu.onmouseout = new Function('menuOut("'+menuId+'");');
    menu.onmouseover = new Function('menuOver("'+menuId+'");');

    if (!menu.isOpening) {
        setTimeout("slideIn('"+menuId+"')",shutterTime);
        menu.isOpening = true;
    }

    trigger.isOver = true;
    menu.trigger = trigger;
    menu.isOver = false;

    trigger.onmouseout = new Function('triggerOut("'+menuId+'");');
}

function timeout(menuId) {
    var menu = _el(menuId);

    if (!menu.trigger.isOver && !menu.isOver) {
        menu.isOpening = false;
        if (!menu.isShutting) {
            menu.isShutting = true;
            setTimeout("slideOut('"+menuId+"')",shutterTime);
        }
    }
}

function menuOver(menuId) {
    var menu = _el(menuId);
    menu.isOver = true;
    menu.isShutting = false;
    if (!menu.isOpening) {
        menu.isOpening = true;
        setTimeout("slideIn('"+menuId+"')",shutterTime);
    }
}

function menuOut(menuId) {
    var menu = _el(menuId);
    menu.isOver = false;
    setTimeout("timeout('"+menuId+"');",shutterWait);
}

function triggerOut(menuId) {
    var menu = _el(menuId);
    var trigger = menu.trigger;

    trigger.isOver = false;
    setTimeout("timeout('"+menuId+"');",shutterWait);
}