var kAgent = window.navigator.userAgent;
var kIsIE  = (kAgent.indexOf("MSIE") > 0);
var kIsNN6 = (kAgent.indexOf("Gecko") > 0);
var kVersion = parseInt(kAgent.charAt(kAgent.indexOf("/")+1), 10);

function CSIEStyl(s) { return document.all(s).style; };
function CSNSStyl(s) { return CSFindElement(s,0); };
function CSNSElem(s){
  if (kIsNN6) return document.getElementById(s);
  else return  CSFindElement(s,0);
}

function CSFindElement(n, ly) {
  if (kVersion < 4) return document[n];
  if (kIsNN6)     return document.getElementById(n).style;

  var curDoc = ly ? ly.document : document; 
  var element = curDoc[n];
  if (!element) { 
    for (var i=0; i<curDoc.layers.length; i++) {
      elem = CSFindElement(n, curDoc.layers[i]);
      if (element) return element; 
    }
  }
  return element;
}

function CSSetStyleVis(s,v) { 
  if (kIsIE) 
    CSIEStyl(s).visibility = (v == 0) ? "hidden" : "visible";
  else if(kIsNN6)
    CSNSStyl(s).visibility = (v == 0) ? 'hidden' : 'visible';
  else 
    CSNSStyl(s).visibility = (v == 0) ? 'hide' : 'show';
}

function CSGetStyleVis(s) {
  if (kIsIE)
    return (CSIEStyl(s).visibility == "hidden") ? 0 : 1;
  else if(kIsNN6)
    return (CSNSStyl(s).visibility == "hidden") ? 0 : 1;
  else
    return (CSNSStyl(s).visibility == "hide") ? 0 : 1;
}


function CSSetStylePos(s,d,p) { 
   if (kIsIE){
      if (d == 0) CSIEStyl(s).posLeft = p; else CSIEStyl(s).posTop = p;
   } else { 
      if (d == 0) CSNSStyl(s).left = p; else CSNSStyl(s).top = p;
   } 
}

function ATGetImagePos(s, d) { 
  if (kIsIE) {
	return ATIEGetImagePos(document.all.tags("img")[s], d);
      } else if (kIsNN6) {
        if (d == 0) return CSNSElem(s).offsetLeft; 
          else return CSNSElem(s).offsetTop;
      } else { 
        if (d == 0) return document.images[s].x; else return document.images[s].y;}
}


function ATIEGetImagePos(obj, d) {
   if((obj.offsetParent) && (obj.offsetParent.tagName != 'BODY')){
      if (d == 0) return obj.offsetLeft + ATIEGetImagePos(obj.offsetParent, d);
      	else return obj.offsetTop + ATIEGetImagePos(obj.offsetParent, d);
   }else{
		if (d == 0) return obj.offsetLeft;
		else return obj.offsetTop;
	}	
}


function ATSetLayerPos(layer, x, y) {
  CSSetStylePos(layer, 0, x);
  CSSetStylePos(layer, 1, y);
}

var x = 0;
var y = 0;
var tim;

function MoveLayer() {
  var dx = (posX - x) / 4;
  var dy = (posY - y) / 4;

  if (Math.abs(dx) < 1 && Math.abs(dy) < 1) {
      x = posX; y = posY;
	 CSSetStyleVis('mark', 1);
  }else{
      x = x + dx; y = y + dy;
  }
  ATSetLayerPos('mark',x,y);

  if (tim) clearTimeout(tim);
  tim = setTimeout("MoveLayer()", 30);
}


var ottim;
function MarkInitTimeout()
{
  MoveMarkTo(initImage);
}


function StartMarkInitTimeout()
{
  if (ottim) clearTimeout(ottim);
  ottim = setTimeout("MarkInitTimeout()", 800);
}


function MoveMarkTo(name) {
  posX = ATGetImagePos(name, 0);
  posY = ATGetImagePos(name, 1) + 33;
  
  if (ottim) clearTimeout(ottim);
  ottim = 0;

  if (tim) clearTimeout(tim);
  tim = setTimeout("MoveLayer()", 50);

//  CSSetStyleVis('down',0);
}


var activeMenuID;
var mtim;
var initImage;

function MenuTimeout()
{
  CSSetStyleVis(activeMenuID, 0);
}


function StartMenuTimeout()
{
  StartMarkInitTimeout();

  if (mtim) clearTimeout(mtim);
  mtim = setTimeout("MenuTimeout()", 400);
}


function StopMenuTimeout()
{
  if (ottim) clearTimeout(ottim);
  ottim = 0;

  if (mtim) clearTimeout(mtim);
  mtim = 0;
}


function ShowUnderMenu(image, name)
{
  if(CSGetStyleVis(name)){
    StopMenuTimeout();
  } else {
    var ix = ATGetImagePos(image, 0);
    var iy = ATGetImagePos(image, 1) + 14;

    MoveMarkTo(image);
//    ATSetLayerPos('down',ix,iy);
//    CSSetStyleVis('down',1);

    activeMenuID = name;
    ATSetLayerPos(name,ix,iy);
 }
}


function ShowMenu(image, name)
{
  if (ottim) clearTimeout(ottim);
  ottim = 0;

  CSSetStyleVis(activeMenuID, 1);
//  CSSetStyleVis('down',0);
}


function Init(name)
{
  initImage = name;
   MoveMarkTo(name);
   x = posX;
   y = posY;

}
