var parent, update, image, imagewidth, imagespeed, updater;
function unignore(dropdown,item) {
  item.className = "submenulink";
  parent!=dropdown ? document.getElementById(dropdown).style.visibility="hidden" : parent="";
}

function ignore(dropdown, item) {
  item.className = "submenulinkhover";
  parent = dropdown;
}

function getURL(address) {
  window.location = address;
}

function showIMG(img, width, speed) {
  image = document.getElementById(img)
  image.style.visibility = 'visible';
  document.getElementById("productimg").style.visibility = 'hidden';
  document.getElementById("error").style.visibility = 'hidden';
  document.getElementById("loading").style.visibility = 'visible';
  document.getElementById("productimg").onload = function () {
    document.getElementById("loading").style.visibility = 'hidden';   
    document.getElementById("productimg").style.visibility = 'visible';
  }
  document.getElementById("productimg").onerror = function () {
    document.getElementById("loading").style.visibility = 'hidden';
    document.getElementById("error").style.visibility = 'visible';
  }
  clearInterval(updater);
  document.getElementById("productimg").style.height = '150px';
  image.style.marginLeft = '0px';
  imagewidth = width;
  imagespeed = speed;
  clearInterval(update);
  update = setInterval(function() {
    grow();
  },10); 
}

function unshowIMG(speed) {
  imagespeed = speed;
  clearInterval(update);
  update = setInterval(function() {
    shrink()
  },10)
}

function grow() {
  var marginleft = parseInt(image.style.marginLeft.split('px')[0]);
  image.style.marginLeft = (marginleft+(imagewidth-marginleft)/imagespeed)+"px";
}

function shrink() {
   var marginleft = parseInt(image.style.marginLeft.split('px')[0]);
   image.style.marginLeft = (marginleft+(0-marginleft)/imagespeed)+"px";
   if(marginleft <= 1) {
    if(document.getElementById('productdropdown').style.visibility=="visible") {
      image.style.visibility = 'hidden';
      document.getElementById("productimg").style.visibility = 'hidden';
    } else {
      clearInterval(update);
      clearInterval(updater);
      document.getElementById("loading").style.visibility = 'hidden';
      document.getElementById("error").style.visibility = 'hidden';
      updater = setInterval(function() {
        shrinkH();
      },10)
    }
  }
}

function shrinkH() {
  var height = parseInt(document.getElementById('productimg').style.height.split('px')[0]);
  image.style.height = (height+(0-height)/imagespeed)+"px";
  document.getElementById('productimg').style.height = ((height+(0-height)/imagespeed)-2)+"px";
  if(height <= 3) {
    image.style.visibility = 'hidden';
    document.getElementById("productimg").style.visibility = 'hidden';
  }
}

function createLink(dropdown, link, container, width, speed) {
  var element = document.getElementById(dropdown);
  for(var i in element.childNodes) {
    var node = element.childNodes[i];
    node.onmouseover = function() {
      ignore(link, this);
      if(this.imgsrc) {
        document.getElementById("productimg").src = this.imgsrc;
        showIMG(container, width, speed);
      }
    }
    node.onmouseout = function() {
      unignore(link, this);
      unshowIMG(speed);
    }
  }
  document.getElementById(dropdown).onmouseover=document.getElementById(link).onmouseover = function() {
    document.getElementById(dropdown).style.visibility = "visible";
  }
  document.getElementById(link).onmouseout=document.getElementById(dropdown).onmouseout = function() {
    parent!=dropdown ? document.getElementById(dropdown).style.visibility="hidden" : parent="";
  }
}