function Banner(url, width, height, link, alt){
  var timer;
  var object = init(url, width, height, link);
  var shift = 0;
  function init(url, width, height, link){
	  document.write("<div id=\"banner_" + url + "\"></div><br />");
	  var a = document.createElement("a");
	  a.href = link;
    var img = document.createElement("img");
    img.alt = alt;
    img.src = url;
    img.style.width = width + "px";
    img.style.height = height + "px";
	img.style.border = 0 + "px";
    img.onmouseover = bannerMouseOver;
    img.onmouseout = bannerMouseOut;
    img.style.cursor = "pointer";
    a.appendChild(img);
    var source = document.getElementById("banner_" + url);
    source.style.width = width + "px";
    source.style.height = height + "px";
    source.appendChild(a);
    return img;
  }
  function bannerMouseOver(event){
    var bound = getBound(object);
    object.style.left = bound[0] + "px";
    object.style.top = bound[1] + "px";
    object.style.position = "absolute";
    object.style.zIndex = 100;
    window.clearTimeout(timer);
    zoomUp();
  }
  function bannerMouseOut(event){
    window.clearTimeout(timer);
    zoomDown();
  }
  function zoomUp(){
    if(shift < 10){
      shift++;
      var bound = getBound(object);
      object.style.left = bound[0] - (2) + "px";
      object.style.top =  bound[1] - (2) * 1 + "px";
      object.style.width = bound[2] + (4) + "px";
      object.style.height = bound[3] + (4) * 1 + "px";
      timer = window.setTimeout(zoomUp, 1);
    }else window.clearTimeout(timer);
  }
  function zoomDown(){
    if(shift >= 0){
      shift--;
      var bound = getBound(object);
      object.style.left = bound[0] + (2) + "px";
      object.style.top = bound[1] + (2) * 1 + "px";
      object.style.width = bound[2] - (4) + "px";
      object.style.height = bound[3] - (4) * 1 + "px";
      timer = window.setTimeout(zoomDown, 1);
    }else{
      window.clearTimeout(timer);
      object.style.left = "";
      object.style.top = "";
      object.style.zIndex = 1;
      object.style.position = "relative";
    }
  }
  function getBound(object){
	  var current = object;
	  var x = 0, y = 0;
	  while(current){
	     x += current.offsetLeft;
	     y += current.offsetTop;
	     current = current.offsetParent;
	  }
	  var width = object.offsetWidth;
	  var height = object.offsetHeight;
	  return [x, y, width, height];
	}
}
