var fadingTimeout;
var indice = 0;
var perstTime = 3000;
var stepTime = 50;
var stepTrasp = 5;
var trasp   = 0;
var traspUp = 1;
var traspLim = 100;

var imgArray; // array delle immagini
var imgNames; // nomi immagini
var startTime;
var imgWaitForPreload;
var imgPath;
function init_home() {
  startTime = new Date();
  imgPath = 'img/';
  imgNames = new Array('1.jpg',
		       '2.jpg',
		       '3.jpg',
		       '4.jpg',
		       '5.jpg',
		       '6.jpg',
		       '7.jpg',
		       '8.jpg');


  document.getElementById('homeImg').src = 'img/loading_home.gif';
  preloading();
  imgWaitForPreload = 3;
  wait_for_loading();
}

function preloading () {
    // imgNames caricato dinamicamente dal perl: tabella:photo, view:home, status = on
    imgArray = new Array();
    for (var i=0;i<imgNames.length;i++) {
	imgArray[i] = new Image();
	imgArray[i].src = imgPath + imgNames[i];
    }
}

function wait_for_loading() {
    if (imgArray[0].complete) {
        showFirstImage();
    }
    else {
	setTimeout('wait_for_loading()',100);
	return;
    }

    for (var i=1;i<imgWaitForPreload;i++)
	if (imgArray[i].complete == false) {
	    setTimeout('wait_for_loading()',100);
	    return;
	}

    startShow();
}


function showFirstImage() {
//   document.getElementById('homeImg').src = imgArray[0].src;
   document.getElementById('homeMask').style.display = 'block';
   document.getElementById('homeMask').style.zIndex = 2;
}

function startShow() {
   indice = (imgArray.length-1);
   var n = new Date();
   var d = parseInt(n.getTime()-startTime.getTime());
   if (d > perstTime) fading();
   else fadingTimeout = setTimeout('fading()',parseInt(perstTime-d));
}


function fading() {
  if (traspUp) {
    if (trasp < traspLim) trasp += stepTrasp;
    else {
      //      trasp -= stepTrasp;
      traspUp = 0;
      if (indice == (imgArray.length-1)) indice = 0;
      else indice++;
      document.getElementById('homeImg').src = imgArray[indice].src;
    }
  }
  else {
    if (trasp > 0) trasp -= stepTrasp;
    else {
      trasp += stepTrasp;
      traspUp = 1;
    }
  }
  //  document.getElementById('debug').innerHTML = trasp + '<br>' + traspUp;
  document.getElementById('homeMask').style.filter = 'alpha(opacity='+trasp+')';
  document.getElementById('homeMask').style.opacity = trasp/100;

  if (trasp == 0) 
    fadingTimeout = setTimeout('fading()',perstTime);
  else {
    //    if (trasp == traspLim) {
    //      fadingTimeout = setTimeout('fading()',200);
    //    }
    //    else {
          fadingTimeout = setTimeout('fading()',stepTime);
	  //}
  }
}

var limInf = 30;
var myArray = new Array();
var myArrayT = new Array();
var activated = 0;
var timeStep = 100;
var step = 5;

function hideImg(ev) {
      ev = fixIEevent(ev);
      if (ev.target.nodeName == 'IMG') {
         var v = parseInt(100-step);
         var i = ev.target.parentNode.id;
         if (myArrayT[i]) return;
         if (myArray[i] && 
             myArray[i] != 100) return;
         
         myArray[i] = -v;
         ev.target.style.filter = 'alpha(opacity='+v+')';
         ev.target.style.opacity = v/100;
         if (activated == 0) {
            setTimeout('doFilter()',timeStep);
            activated = 1;
         }
      }
}

function toggleImg(ev) {
      ev = fixIEevent(ev);
      var i = ev.target.parentNode.id;
      if (myArrayT[i]) {
         myArrayT[i] = false;
         _gEl(i).childNodes[0].style.filter = 'alpha(opacity=100)';
         _gEl(i).childNodes[0].style.opacity = 1;
      }
      else {
         myArrayT[i] = true;
         _gEl(i).childNodes[0].style.filter = 'alpha(opacity=0)';
         _gEl(i).childNodes[0].style.opacity = 0;
      }
}

function fixIEevent(ev) {
  if(typeof ev=="undefined")ev=window.event;
  if(typeof ev.target=="undefined")ev.target=window.event.srcElement;
  return ev;
}

function doFilter() {
      var v1,v2;
      var repeat = 0;
      for (i in myArray) {
         if (myArrayT[i]) continue;
         if (myArray[i] == 50) continue;
         repeat = 1;
         myArray[i] += step;
         v1 = Math.abs(myArray[i]);
         v2 = v1/100;
         _gEl(i).childNodes[0].style.filter = 'alpha(opacity='+v1+')';
         _gEl(i).childNodes[0].style.opacity = v2;
      }
      if (repeat) {
         setTimeout('doFilter()',timeStep);
      }
      else {
         activated = 0;
      }
}

function _gEl(n) { return document.getElementById(n); }

