function sb(message) {
  window.status = message;
  return true;
}

function clsb() {
  return sb('');
}

function bmk(url, title) {
  if (navigator.userAgent.indexOf('MSIE') >= 0)
    window.external.AddFavorite(url, title);
}

function hmp(url) {
  if (navigator.userAgent.indexOf('MSIE') >= 0) {
    pagina_centrale.style.behavior = 'url(#default#homepage)';
    pagina_centrale.setHomePage(url);
  }
}          

function MouseCoordinates(e)
{
	if (e.layerX)
	{
		x = e.layerX;
		y = e.layerY;
	}
	else if (e.offsetX)
	{
		x = e.offsetX;
		y = e.offsetY;
	}
var position=new Array(x,y)
return position;
}
denyCreateBox='';
myBox='';
myBoxContainer='';
mappaHeight=532;
myRadioConversion=0;
myRadio=0;
maxRadio=3;
minRadio=0.000014;
if(typeof(defaultRadio)=='undefined')
defaultRadio=0.005;
ajaxVars='';
scrollh=0;
scrollv=0;
allow_ajax='yes';
scrollRadio=0;
zoomState=8
function createbox(e,obj,obj2,vars)
{
if(denyCreateBox=='yes' || (e.which!=1 && e.button!=1) || document.getElementById(obj) || allow_ajax=='no')
return false;
myRadio=(myRadio==0)?defaultRadio:myRadio;
scrollRadio=myRadio;
ajaxVars=vars;
myRadioConversion=mappaHeight/(2*myRadio);
myBox=obj;
myBoxContainer=obj2;
position=MouseCoordinates(e);
upperbox=document.createElement('div');
upperbox.setAttribute('id','uppermap');
var upperboxstyle=upperbox.style;
upperboxstyle.position='absolute';
upperboxstyle.height='532px';
upperboxstyle.width='532px';
upperboxstyle.margin='0px';
upperboxstyle.left='0px';
upperboxstyle.top='0px';
upperboxstyle.zIndex='300';
upperboxstyle.display='block';
upperboxstyle.overflow='hidden';
document.getElementById(myBoxContainer).appendChild(upperbox);

divbox=document.createElement('div');
divbox.setAttribute('id',obj);
var boxstyle=divbox.style;
boxstyle.left=position[0]+'px';
boxstyle.top=position[1]+'px';
document.getElementById(myBoxContainer).appendChild(divbox);

if(document.all)
{
document.body.attachEvent('onmouseup',removebox);
document.getElementById('uppermap').attachEvent('onmousemove',mousemove);
}
else
{
document.body.addEventListener('mouseup',removebox,true);
document.getElementById('uppermap').addEventListener('mousemove',mousemove,true);
}
oldpos=new Array(parseInt(boxstyle.left),parseInt(boxstyle.top));

}
function mousemove(e)
{
var box=document.getElementById(myBox);
if(box)
{
box=document.getElementById(myBox).style;
var newpos1=MouseCoordinates(e);
var newpos= new Array();
var coordinates=new Array()
newpos[0]=newpos1[0]-oldpos[0];
newpos[1]=newpos1[1]-oldpos[1];

if(newpos[0]<0)
{
coordinates[0]=(newpos1[0]-2);
newpos[0]=-newpos[0];
}
else
coordinates[0]=(oldpos[0]);
if(newpos[1]<0)
{
coordinates[1]=(newpos1[1]-2);
newpos[1]=-newpos[1];
}
else
coordinates[1]=(oldpos[1]);

coordinates[2]=newpos[0];
coordinates[3]=newpos[1];
var traslation=changebox(coordinates);
newScrollh=traslation[0]+scrollh;
newScrollv=traslation[1]-scrollv;

myRadio = (coordinates[2]>coordinates[3])?parseInt(coordinates[2]):parseInt(coordinates[3]);
myRadio=myRadio/(2*myRadioConversion);
myRadio=(myRadio<minRadio)?minRadio:myRadio;
newStep=changeStep();
changeStep(newStep);
changeStep();
}
}
function changebox(coordinates)
{
if(document.getElementById(myBox))
{
var box=document.getElementById(myBox).style;
box.left=coordinates[0]+'px';
box.top=coordinates[1]+'px';
box.width=coordinates[2]+'px';
box.height=coordinates[3]+'px';
var traslation=new Array();
traslation[0]=(Math.abs(coordinates[0]+coordinates[2]/2)-532/2)*(100/532);
traslation[1]=(Math.abs(coordinates[1]+coordinates[3]/2)-532/2)*(100/532);
return traslation;
}
}
function removebox()
{

if(document.getElementById('uppermap'))
{
document.getElementById(myBoxContainer).removeChild(document.getElementById('uppermap'));
document.getElementById(myBoxContainer).removeChild(document.getElementById(myBox));
if(document.all)
document.body.detachEvent('mouseup',removebox);
else
document.body.removeEventListener('mouseup',removebox,true);
scrollh=newScrollh*(scrollRadio/myRadio);
scrollv=-newScrollv*(scrollRadio/myRadio);
rsconnect(myBoxContainer,'POST','ajax_response.php',ajaxVars+'&radio='+myRadio+'&scrollh='+scrollh+'&scrollv='+scrollv);
myRadioConversion=0;
document.getElementById('zoom'+zoomState).className='zoom'
zoomState=changeStep();
document.getElementById('zoom'+zoomState).className='zoomattive';
}
}
function zoom(myBoxContainer,ajaxVars,myStep)
{
if(allow_ajax=='no')
return false;
if(myStep==16 || myStep<=1)
return false;
var oldRadio=(myRadio==0)?defaultRadio:myRadio;
changeStep(myStep);
if(scrollv!=0)
scrollv=(oldRadio/myRadio)*scrollv;
if(scrollh!=0)
scrollh=(oldRadio/myRadio)*scrollh;
rsconnect(myBoxContainer,'POST','ajax_response.php',ajaxVars+'&radio='+myRadio+'&scrollh='+scrollh+'&scrollv='+scrollv);
document.getElementById('zoom'+zoomState).className='zoom'
zoomState=myStep;
document.getElementById('zoom'+zoomState).className='zoomattive';
}
function changeStep(step)
{
	var ratios=new Array();
	var m=minRadio;
	var M=maxRadio;
	var d=defaultRadio;
	var c=(14*d-7*m-7*M)/(14*(Math.exp(8)-Math.exp(1))-7*(Math.exp(15)-Math.exp(1)));
	var b=(M-m-c*(Math.exp(15)-Math.exp(1)))/14;
  var a=m-b-c*Math.exp(1);	
	//14 punti effettivi...scartato il primo valore poiche' la pendente
	//della funzione esponenziale e molto bassa per i primi due punti
	for(var i=2;i<=15;i++)
	ratios[i]=a+b*i+c*Math.exp(i);
	if(step>0)
	{
	myRadio=ratios[step];
	return;
	}
  else
	{
	for(i in ratios)
	{
		if(i==2)
		{
			var min=Math.abs(myRadio-ratios[i])
			var selectedMin=2;
		}
		else
		{
			if(Math.abs(myRadio-ratios[i])<min)
			{
				min=Math.abs(myRadio-ratios[i]);
				selectedMin=i;
			}
		}
	}
	}
	return selectedMin;
}
function scrollMap(h,v,ajaxVars,myBoxContainer)
{
if(allow_ajax=='no')
return false;
myRadio=(myRadio==0)?defaultRadio:myRadio;
scrollh=(scrollh==0)?h:scrollh+h;
scrollv=(scrollv==0)?v:scrollv+v;
rsconnect(myBoxContainer,'POST','ajax_response.php',ajaxVars+'&radio='+myRadio+'&scrollh='+scrollh+'&scrollv='+scrollv);
}

/******AJAX CODE*******/
function rsconnect(myId,tipo,myUrl,myVars,myReferer)
{
allow_ajax='no';
  rsconnection=false;
  try
  {
    rsconnection=new XMLHttpRequest();	//mozilla, firefox, safari, netscape
  }
  catch(e)			//microsoft recente
  {
    try
    {
      rsconnection=new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch(e)			//microsoft vecchio
    {
      try
      {
	rsconnection=new ActiveXObject("Microsoft.XMLHTTP");
      }
      catch(e)			//altrimenti
      {
	rsconnection=false;
      }
    }
  }
  ajaxContainer=myId;
  if(!rsconnection)
	{
  document.getElementById(ajaxContainer).innerHTML='Browser non compatibile';
  return;
	}
  responseDiv(ajaxContainer);
  rsconnection.onreadystatechange=rscontrol;
  rsconnection.open(tipo, myUrl, true);
  rsconnection.setRequestHeader('Content-Type','application/x-www-form-urlencoded;');
  //No necesario, pero de otro modo adios al referer....
  //if(myReferer!='')
   // rsconnection.setRequestHeader("Referer",myReferer);
  //null en el caso de peticion GET
  if(tipo == 'POST')
    rsconnection.send(myVars);
  else
    rsconnection.send(null);
}

function rscontrol ()
{
	if(rsconnection.readyState!=4)
	{
	document.getElementById ('responseDiv').innerHTML='<img alt="" src="images/ajax.gif" style="float:left;border:0px;"><div style="width:86%;padding-left:2px;padding-top:2px;float:left">Loading...</div>';
	}
	else
  {
    if(rsconnection.status!=200)
    document.getElementById('responseDiv').innerHTML='<img alt="" src="images/ajax.gif" style="float:left;border:0px;"><div style="width:86%;padding-left:2px;padding-top:2px;float:left">Loading...</div>';
    else
    document.getElementById('responseDiv').innerHTML='<img alt="" src="images/ajax.gif" style="float:left;border:0px;"><div style="width:86%;padding-left:2px;padding-top:2px;float:left">Loading...</div>';
    var myHtml = rsconnection.responseText;
		if(myHtml!='')
		{
		allow_ajax='yes';
		if(myHtml.match('http'))
		{
		tmp=myHtml.split('http');
		if(tmp[0]=='')
		{
		myHtml=tmp[1];
		document.getElementById(ajaxContainer).removeChild(document.getElementById('responseDiv'));
		}
		else
		{
		document.getElementById('responseDiv').innerHTML=tmp[0];
		myHtml=tmp[1];
		}
    document.getElementById(ajaxContainer).style.backgroundImage = "url('http"+myHtml+"')";
		}
		else
		{
		document.getElementById('responseDiv').innerHTML = '<img alt="" src="images/cancel.gif"	style="float:left;border:0px;"><div style="width:90%;padding-left:4px;float:left">'+myHtml+'</div>';
		}	
		}
  }
}

function responseDiv(parentDiv)
{
if(document.getElementById('responseDiv'))
return;
divbox=document.createElement('div');
divbox.setAttribute('id','responseDiv');
document.getElementById(parentDiv).appendChild(divbox);
}

jsloaded='yes';
