
//*****************************************************************************
//configurazioni
var timeout = 5;
var timeoutIniziale = 1000;
var fattoreRidimensionamento = 60;
var idImmagineArrivo = 'immagine';
var imgWidth = 486;
var imgHeight = 100;
var widthImgArrivo = 138;
var heightImgArrivo = 31;
var eliminaImmagineAlTermine = true;
var attivaImmagineDiArrivoAlTermine = true;
var objImmagine = new Immagine('/assets/images_dt/logodd_big.gif');
var blankImage = 'blank.gif';
var deltaTop = 50;
//*****************************************************************************


//*****************************************************************************
function Immagine(path)
{
  this.image = new Image();
  this.image.src = path;
  this.obj = null;
	this.css = null;
	this.id = '____immagineMK____';
  this.top = 0;
  this.left = 0;
  this.width = 0;
  this.height = 0;	
	this.idDiv = this.id + '_DIV';
	
	this.init = function(t,l,w,h)
	{
	  var eDiv = document.createElement('div');
		eDiv.id = this.idDiv;
		eDiv.style.backgroundImage = 'url(' + blankImage + ')';		
    if ((browserUtente.name == BROWSER_EXPLORER)||(browserUtente.name == BROWSER_OPERA))
      eDiv.oncontextmenu = disab;
    else
      eDiv.setAttribute('onContextMenu','return disab();');
		
    var eImg = document.createElement('img');
		eImg.id = this.id;
    document.body.appendChild(eDiv);
    document.body.appendChild(eImg);
		this.obj = document.getElementById(this.id);
		this.objDiv = document.getElementById(this.idDiv);
	  if ((this.obj)&&(this.objDiv))
	  {
		  this.obj.src = this.image.src;
      this.css = this.obj.style;	
			this.cssDiv = this.objDiv.style;
			this.posiziona(t,l,w,h);
			this.css.visibility = 'visible';
	  }
	}
	
	this.posiziona = function(t,l,w,h)
	{
    this.top = t;
	  this.left = l;
		if (w > 0)
  	  this.width = w;
		if (h > 0)
  	  this.height = h;
		this.css.position = 'absolute';
		this.css.zIndex = 100000;
    this.css.top = this.top;
	  this.css.left = this.left;
	  this.css.width = this.width;
	  this.css.height = this.height;	
		this.cssDiv.position = 'absolute';
		this.cssDiv.zIndex = 1000000;
    this.cssDiv.top = this.top;
	  this.cssDiv.left = this.left;
	  this.cssDiv.width = this.width;
	  this.cssDiv.height = this.height;			
	}
	
	this.aggiusta = function(dt,dl,dw,dh)
	{
    var top = this.top + dt;
	  var left = this.left + dl;
	  var width = this.width + dw;
	  var height = this.height + dh;

		this.posiziona(top,left,width,height);		
	}
	return this;
}//fine della classe Immagine
//*****************************************************************************


//******************************************************************************
function disab()
{
  return false;
}// fine di disab()
//******************************************************************************


var __array_rid_delta_top = new Array();
var __array_rid_delta_left = new Array();
var __array_rid_delta_width = new Array();
var __array_rid_delta_height = new Array();
var __time = 0;
var __immagineResize = null;
var __counter = 0;


//*****************************************************************************
function resizeTo(topAr,leftAr,widthAr,heightAr,time,timeoutIniz,fRid,objImg)
{
	var delta_top = objImg.top - topAr;
	var delta_left = objImg.left - leftAr;
	var delta_width = objImg.width - widthAr;
	var delta_height = objImg.height - heightAr;
	var rid_delta_top = (-1)*Math.floor(delta_top/fRid);
	setRiduzione(__array_rid_delta_top,rid_delta_top,fRid);
	setRiduzioneArrotondamento(__array_rid_delta_top,rid_delta_top,delta_top,fRid);
	var rid_delta_left = (-1)*Math.floor(delta_left/fRid);
	setRiduzione(__array_rid_delta_left,rid_delta_left,fRid);
	setRiduzioneArrotondamento(__array_rid_delta_left,rid_delta_left,delta_left,fRid);
	var rid_delta_width = (-1)*Math.floor(delta_width/fRid);
	setRiduzione(__array_rid_delta_width,rid_delta_width,fRid);
	setRiduzioneArrotondamento(__array_rid_delta_width,rid_delta_width,delta_width,fRid);
	var rid_delta_height = (-1)*Math.floor(delta_height/fRid);
	setRiduzione(__array_rid_delta_height,rid_delta_height,fRid);
	setRiduzioneArrotondamento(__array_rid_delta_height,rid_delta_height,delta_height,fRid);
	__time = time;
	__fattoreRiduzione = fRid;
	__immagineResize = objImg;
  
	if (__immagineResize)
  	setTimeout('ridimensiona()',timeoutIniz);
}//fine di resizeTo()
//*****************************************************************************

//*****************************************************************************
function setRiduzione(array_rid_delta,rid_delta,nRid)
{
  for (var i = 0; i < nRid; i++)
    array_rid_delta[i] = rid_delta;
}//fine di setRiduzione()
//*****************************************************************************

//*****************************************************************************
function setRiduzioneArrotondamento(array_rid_delta,delta,rid_delta,nRid)
{
  var resto = Math.abs(Math.abs(rid_delta)-Math.abs(delta*nRid));
  var coeff = -1;
	var i = 0;

	while (resto > 0)
	{
	  i = 0;
	  while ((i < nRid)&&(resto > 0)){
		  array_rid_delta[i] += coeff;
			resto--;
			i++;
		}
	}
}//fine di setRiduzione()
//*****************************************************************************


//*****************************************************************************
function ridimensiona()
{
  if (__counter < __fattoreRiduzione)
	{
    __immagineResize.aggiusta(__array_rid_delta_top[__counter],__array_rid_delta_left[__counter],__array_rid_delta_width[__counter],__array_rid_delta_height[__counter]);
	  __counter++;
    setTimeout('ridimensiona()',__time);
  }
	else
	{
	  if(eliminaImmagineAlTermine)
  	  __immagineResize.css.display = 'none';
		if(attivaImmagineDiArrivoAlTermine)
		{
		  var obj = document.getElementById(idImmagineArrivo);
			if (obj)
			{
			  obj.style.visibility = 'visible';
			  obj.style.display = 'inline';
			}
		}
  }
}//fine di ridimensiona()
//*****************************************************************************


//*****************************************************************************
function showImmagine()
{
  var actual_w, actual_h;
	
	if ((browserUtente.name == BROWSER_EXPLORER)||(browserUtente.name == BROWSER_OPERA))
	{
	  actual_w = document.body.clientWidth;
	  actual_h = document.body.clientHeight;
	}
	else
	{
	  actual_w = window.innerWidth;
	  actual_h = window.innerHeight;
	}
	imgTop = Math.floor((actual_h - imgHeight)/2);
	imgLeft = Math.floor((actual_w - imgWidth)/2);
	if (imgTop < 0)
	  imgTop = 0;
	if (imgLeft < 0)
	  imgLeft = 0;	
  imgTop += deltaTop;

  objImmagine.init(imgTop,imgLeft,imgWidth,imgHeight);
	
	var objImmagineArrivo = document.getElementById(idImmagineArrivo);
	if (objImmagineArrivo)
	{
	  topImgArrivo = getOffsetTop(objImmagineArrivo);
		leftImgArrivo = getOffsetLeft(objImmagineArrivo);
		resizeTo(topImgArrivo,leftImgArrivo,widthImgArrivo,heightImgArrivo,timeout,timeoutIniziale,fattoreRidimensionamento,objImmagine);		
	}
	else
  	alert('Attenzione immagine di destinazione non presente!');	
}//fine di showImmagineNatale()
//*****************************************************************************


//******************************************************************************
function getOffsetTop(elm) 
{
  var mOffsetTop = elm.offsetTop;
  var mOffsetParent = elm.offsetParent;

  while(mOffsetParent)
	{
    mOffsetTop += mOffsetParent.offsetTop;
    mOffsetParent = mOffsetParent.offsetParent;
  }

  return mOffsetTop;
}// fine di getOffsetTop()
//******************************************************************************


//******************************************************************************
function getOffsetLeft(elm) 
{
  var mOffsetLeft = elm.offsetLeft;
  var mOffsetParent = elm.offsetParent;

  while(mOffsetParent)
	{
    mOffsetLeft += mOffsetParent.offsetLeft;
    mOffsetParent = mOffsetParent.offsetParent;
  }
	
  return mOffsetLeft;
}// fine di getOffsetLeft()
//******************************************************************************


