function zoom_with_label(aZoomDot){
  aZoomDot.setCSSAttribute("width", "190px");
  aZoomDot.setCSSAttribute("height", "152px");

  var aDot = geid(aZoomDot.aLabelID);
  aDot.setCSSAttribute("display", "inherit");

  var aDot = geid(aZoomDot.aColorLabelID);
  if(aDot.originalColor==undefined){
    aDot.originalColor = aDot.getCSSAttribute("color");
  }
  aDot.setCSSAttribute("color", aZoomDot.aLabelColor);//"#00a000");
}

function unzoom_with_label(aZoomDot){
  aZoomDot.setCSSAttribute("width", "170px");
  aZoomDot.setCSSAttribute("height", "136px");
  var aDot = geid(aZoomDot.aLabelID);
  aDot.setCSSAttribute("display", "none");

  var aDot = geid(aZoomDot.aColorLabelID);
  aDot.setCSSAttribute("color", aDot.originalColor);
}

function init_zoom_image(aDot, aLabelID, aColorLabelID, aLabelColor){
  aDot.aLabelID = aLabelID;
  aDot.aColorLabelID = aColorLabelID;
  aDot.aLabelColor = aLabelColor;

  aDot.zoom = bind(aDot, function(){
    zoom_with_label(this);
  });

  aDot.unzoom = bind(aDot, function(){
    unzoom_with_label(this);
  });


  if(OPENDOTS_MODE == OPENDOTS_DISPLAY_MODE){
    aDot.onmouseover = chain(aDot.onmouseover, bind(aDot, function(){
      this.zoom();
    }));

    aDot.onmouseout = chain(aDot.onmouseout, bind(aDot, function(){
      this.unzoom();
    }));
  }
}


function init_opaque_zoomer_control(aDot, aZoomTargetID){
  // Inits a dot to turn opaque on mouse over and also trigger another dots zoom/unzoom

  aDot.zoom_target = geid(aZoomTargetID);

  aDot.zoom = bind(aDot, function(){
    if(this.zoom_target != undefined){
      this.zoom_target.zoom();
    }
  });

  aDot.unzoom = bind(aDot, function(){
    if(this.zoom_target != undefined){
      this.zoom_target.unzoom();
    }
  });

  if(OPENDOTS_MODE == OPENDOTS_DISPLAY_MODE){
    aDot.onmouseover = chain(aDot.onmouseover, bind(aDot, function(){
      this.setAttributeText("opacity", 70);
      this.zoom();
    }));

    aDot.onmouseout = chain(aDot.onmouseout, bind(aDot, function(){
      this.setAttributeText("opacity", 100);
      this.unzoom();
    }));
  }

}

