
// Studio Livio srl
// Via Segurana 16 Torino
// Tel.		+39-011-8197090
// Fax.		+39-011-8196005
// e-mail:		livio@livio.it
// internet:	http://www.livio.it

function aggancia(ancora, ancorato, dx, dy) {
 var x=0,y=0,ox=0,oy=0;
 var a = parseInt(dx);
 var b = parseInt(dy);

 var pa='px';
 if (IsNav() || window.opera) pa='';

 var g  = CSFindElement(ancora);
 
 if (g == null || CSFindElement(ancorato) == null) return;

 var d="";

 if(IsW3C()){
  d="document.getElementsByName('"+ancora+"')[0]";
  if(!eval(d)){
   d="document.getElementById('"+ancora+"')";
   if(!eval(d)){
    d="document.all['"+ancora+"']";
   }
  }
 } else if(IsIE()) {
  d="document.all['"+ancora+"']";
 }

 if(IsIE() || IsW3C()){
  var p=".offsetParent";
  while(eval(d+p)){
   x+=parseInt(eval(d+p+".offsetLeft"));
   y+=parseInt(eval(d+p+".offsetTop"));

   p+=".offsetParent";
  }

  ox=parseInt(g.offsetLeft);
  oy=parseInt(g.offsetTop);

  if((x+ox+y+oy)==0 || (navigator.appVersion.indexOf("MSIE 4") > -1 && navigator.appVersion.indexOf("Mac")>-1)){
   ox=0;
   oy=0;

   if(g.style.left){
    x=parseInt(g.style.left);
    y=parseInt(g.style.top);
   }else{
    var bx = (a<0) ? (-5-parseInt(CSFindElementStyle(ancorato).width)) : -10;

    a=(Math.abs(a)<1000)?0:a;
    b=(Math.abs(b)<1000)?0:b;

    x = document.body.scrollLeft +event.clientX + bx;
    y = document.body.scrollTop  +event.clientY;
   }
  }
 }else if(IsNav()){
  x=g.x;
  y=g.y;

  for(var s=0;s<document.layers.length;s++){
   var dd = 'document.'+document.layers[s].name;
   if(eval(dd+'.document.'+ancora)){
    x+=eval(dd+'.left');
    y+=eval(dd+'.top');
    break;
   }
  }
 }

 var xx = parseInt(x + ox + a);
 var yy = parseInt(y + oy + b);

 CSFindElementStyle(ancorato).left = xx + pa;
 CSFindElementStyle(ancorato).top  = yy + pa;
}