magnifier = new Object();
magnifier.zoom = true;
magnifier.show = false;

magnifier.select = function (lx,ly,src) {
  var s;
  magnifier.lx = lx;
  magnifier.ly = ly;
  magnifier.src = src;
  magnifier.show = true;
  s = '<img style="position:absolute; left:'+((xpos>330)?(xpos-lx-25):(xpos+15))+'px; top:'+((ly/2>ypos)?0:ypos-(ly-ly%2)/2)+
      'px; width:'+(lx+4)+'px; height:'+(ly+4)+'px; border:2px solid; border-color:#B6C2D8; visibility:'+(magnifier.zoom?'visible':'hidden')+
      ';" src="'+src+'" />';
  $('magnifier').innerHTML = s;
};

magnifier.hide = function () {
  magnifier.show = false;
  $('magnifier').childNodes[0].style.visibility = 'hidden';
};

xpos = 0; ypos = 0;

magnifier.move = function (e) {
	var mouseDOC = crossBrowser.getMousePos(e);
	xpos = mouseDOC.x;
	ypos = mouseDOC.y;
  if (magnifier.show) {
    $('magnifier').childNodes[0].style.left = ''+((xpos>330)?(xpos-magnifier.lx-25):(xpos+15))+'px';
    $('magnifier').childNodes[0].style.top = ''+((magnifier.ly/2>ypos)?0:ypos-(magnifier.ly-magnifier.ly%2)/2)+'px';
  }
};

magnifier.key = function (e) {
  e = (e || window.event);
  var k = (e.charCode) ? e.charCode : ((e.keyCode) ? e.keyCode: ((e.which) ? e.which : 0));
  if ((k == 122) || (k == 90)) { magnifier.zoom = !magnifier.zoom; }
  if (magnifier.show) {
    $('magnifier').childNodes[0].style.visibility = magnifier.zoom ? 'visible' : 'hidden';
  }  
};

magnifier.init = function () {
  crossBrowser.addEvent(document,'mousemove',magnifier.move);
  crossBrowser.addEvent(document,'keypress',magnifier.key);
};

