// ---------------------------------------------------------------------
// OverDiv v. 1.0
// (c) troky 2007
// http://www.troky.sk
// You may use this script on your website, but leave this message here.
// ---------------------------------------------------------------------

var overdiv_interval;

var IE=document.all?true:false;
if (!IE) document.captureEvents(Event.MOUSEMOVE);

var mouse_position_x=0;
var mouse_position_y=0;

document.onmousemove=get_mouse_position;

function get_mouse_position(e) {
  if (IE) {
    mouse_position_x=event.clientX+document.body.scrollLeft;
    mouse_position_y=event.clientY+document.body.scrollTop;
  } else {
    mouse_position_x=e.pageX;
    mouse_position_y=e.pageY;
  }  
  if (mouse_position_x<0) { mouse_position_x=0; }
  if (mouse_position_y<0) { mouse_position_y=0; }
}

function overdiv_object(overdiv_id) {
  if (document.getElementById) {
    return document.getElementById(overdiv_id);
  } else if (document.all) {
    return document.all[overdiv_id];
  } else if (document.layers) {
    return document.layers[overdiv_id];
  }
}

function overdiv_show(overdiv_id) {
  var overdiv=overdiv_object(overdiv_id);
  overdiv_set_position(overdiv);
  overdiv.style.visibility="visible";
  overdiv_interval=setInterval("overdiv_set_position(overdiv);",25);
}

function overdiv_set_position(overdiv) {
  var dim=new Array(2);
  var pos=new Array(2);
  dim["w"]=0; dim["h"]=0; pos["left"]=0; pos["top"]=0;

  if (typeof(window.innerWidth)=='number') {
    dim["w"]=window.innerWidth;
    dim["h"]=window.innerHeight;
  } else if (document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight) ) {
    dim["w"]=document.documentElement.clientWidth;
    dim["h"]=document.documentElement.clientHeight;
  } else if(document.body && (document.body.clientWidth || document.body.clientHeight) ) {
    dim["w"]=document.body.clientWidth;
    dim["h"]=document.body.clientHeight;
  }

  if (typeof(window.pageYOffset)=='number') {
    pos["left"]=window.pageXOffset;
    pos["top"]=window.pageYOffset;
  } else if (document.body && (document.body.scrollLeft || document.body.scrollTop) ) {
    pos["left"]=document.body.scrollLeft;
    pos["top"]=document.body.scrollTop;
  } else if (document.documentElement && (document.documentElement.scrollLeft || document.documentElement.scrollTop) ) {
    pos["left"]=document.documentElement.scrollLeft;
    pos["top"]=document.documentElement.scrollTop;
  }
  
  var overdiv_width=0;
  var overdiv_height=0;
  if (overdiv.offsetWidth && overdiv.offsetHeight) {
    overdiv_width=overdiv.offsetWidth;
    overdiv_height=overdiv.offsetHeight;
  }

  if ( (mouse_position_x-pos["left"]+10+overdiv_width)<=(dim["w"]) ) overdiv.style.left=mouse_position_x+10;
  else if ( (mouse_position_x-pos["left"]-5-overdiv_width)>0 ) overdiv.style.left=mouse_position_x-5-overdiv_width;
    else if ( (overdiv_width<dim["w"]) && (mouse_position_x-pos["left"]<Math.round(dim["w"]/2)) ) overdiv.style.left=pos["left"]+dim["w"]-overdiv_width;
      else if ( ( (overdiv_width<dim["w"]) && (mouse_position_x-pos["left"]>=Math.round(dim["w"]/2)) ) || (overdiv_width+pos["left"]<document.body.offsetWidth) ) overdiv.style.left=pos["left"];
        else if ( (pos["left"]+dim["w"]-overdiv_width)>0 ) overdiv.style.left=pos["left"]+dim["w"]-overdiv_width;
          else overdiv.style.left=0;

  if ( (mouse_position_y-pos["top"]+10+overdiv_height)<=(dim["h"]) ) overdiv.style.top=mouse_position_y+10;
  else if ( (mouse_position_y-pos["top"]-5-overdiv_height)>0 ) overdiv.style.top=mouse_position_y-5-overdiv_height;
    else if ( (overdiv_height<dim["h"]) && (mouse_position_y-pos["top"]<Math.round(dim["h"]/2)) ) overdiv.style.top=pos["top"]+dim["h"]-overdiv_height;
      else if ( ( (overdiv_height<dim["h"]) && (mouse_position_y-pos["top"]>=Math.round(dim["h"]/2)) ) || (overdiv_height+pos["top"]<document.body.offsetHeight) ) overdiv.style.top=pos["top"];
        else if ( (pos["top"]+dim["h"]-overdiv_height)>0 ) overdiv.style.top=pos["top"]+dim["h"]-overdiv_height;
          else overdiv.style.top=0;
}
  
function overdiv_hide(overdiv_id) {
  var overdiv=overdiv_object(overdiv_id);
  clearInterval(overdiv_interval);
  overdiv.style.visibility="hidden";
}
