// JavaScript Document

//if (top.location.href.indexOf("index.php") == -1)
//top.location.href = "index.php";

function rand(minimo,massimo) {
	var r=Math.round(massimo*Math.random())+minimo;
	return r;
}

Array.prototype.inArray = function (value) {
	var i;
	for (i=0; i < this.length; i++) {
		if (this[i] === value) {
			return true;
		}
	}
	return false;
};

bolle = new Array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); /* 75 */

function addBubbles(n) {
	if (bolle.inArray(0)) {
		for (i=0; i<n; i++) {
			setTimeout('magic()',100*i);
		}
	}
}

function remBubbles(n) {
	if (bolle.inArray(1)) {
		for (i=0; i<n; i++) {
			setTimeout('unMagic()',100*i);
		}
	}
}

function remAllBubbles() {
	if (bolle.inArray(1)) {
		for (i=0; i<bolle.length; i++) {
			setTimeout("Effect.Fade('b"+(i+1)+"', { duration: 0.5 });",(1501-(20*i)));
			bolle[i]=0;
		}
	}
}

function magic(val) {
	if (bolle.inArray(0)) {
		if (val==null) var x=rand(0,74); else var x=val;
		if (bolle[x]==0) {
			Effect.Appear('b'+(x+1), { duration: 1.0 });
			bolle[x]=1;
		} else {
			if(x<74) x++; else x=0;
			magic(x);
		}
	//	document.getElementById('debug').innerHTML+=x+"<br />";
	}
}

function unMagic(val) {
	if (bolle.inArray(1)) {
		if (val==null) var x=rand(1,74); else var x=val;
		if (bolle[x]==1) {
			Effect.Fade('b'+(x+1), { duration: 1.0 });
			bolle[x]=0;
		} else {
			if(x<74) x++; else x=0;
			unMagic(x);
		}
	//	document.getElementById('debug').innerHTML+=x+"<br />";
	}
}

function magicSeq(val) {
	if (bolle.inArray(0)) {
		if (val==null) var x=1; else var x=val+1;
		if (bolle[x]==0) {
			Effect.Appear('b'+x, { duration: 1.0 });
			bolle[x]=1;
		} else {
			if(x<75) x++; else x=1;
			magic(x);
		}
	//	document.getElementById('debug').innerHTML+=x+"<br />";
	}
}

function menu(val) {
	for (i=1; i<=3; i++) {
		if (i==val) Effect.toggle('sub'+i, 'blind', {duration: 0.4});
		else Effect.BlindUp('sub'+i, {duration: 0.4});
	}
	if (val==3) updateMain('contact');
	else addBubbles(5);
}

function showServizi(val) {
	for (i=37; i<=40; i++) {
		if (i==val) Effect.toggle('subServizi'+i, 'blind', {duration: 0.4});
		else Effect.BlindUp('subServizi'+i, {duration: 0.4});
	}
	addBubbles(2);
}

// ---------------------------------- //

function loadImage(imgURL) {
	var target = document.getElementById('picture');
	var img = new Image();
	img.onload = function () {
		target.src="img/"+imgURL+".jpg";
		Effect.Appear('visore', { duration: 0.3 });
	}
	img.src = "img/"+imgURL+".jpg";
	img.onerror = function() { img.src="img/no_image.jpg";}
}

function getHTTPObject() {
	var xhr = false;
	if (window.XMLHttpRequest) {
		xhr = new XMLHttpRequest();
	} else if (window.ActiveXObject) {
		try {
			xhr = new ActiveXObject("Msxml2.XMLHTTP");
		} catch(e) {
			try {
				xhr = new ActiveXObject("Microsoft.XMLHTTP");
			} catch(e) {
				xhr = false;
			}
		}
	}
	return xhr;
}

function updateMain(file,check,name,surname,mail) {
	if (file!=6 && loop>0) album.finish();
	var request = getHTTPObject();
	if (request) {
		request.onreadystatechange = function() {
			displayResponse(request, file);
		}
		if (check==1) request.open("GET", 'content.php?clear=1&sez='+file+'&check='+check+'&name='+name+'&surname='+surname+'&email='+mail, true);
		else request.open("GET", 'content.php?clear=1&sez='+file, true);
		request.send(null);
	}
	if (file=="home") {
		remAllBubbles();
		for (i=1; i<=3; i++) Effect.BlindUp('sub'+i, {duration: 0.4});
	} else addBubbles(5);	
}

function displayResponse(request, file) {
	if (request.readyState == 4) {
		if (request.status == 200 || request.status == 304) {
			Effect.Fade('visore', { duration:0.3, afterFinish: function () { document.getElementById('testoAjax').innerHTML=request.responseText; loadImage(file); } });
			if (file==6 && loop==0) {
				album.startup();
			}
		} else alert("File non trovato!");
	}
}

function updateServizi(file) {
	if (loop>0) album.finish();
	var request = getHTTPObject();
	if (request) {
		request.onreadystatechange = function() {
			displayResponseServizi(request, file);
		}
		request.open("GET", 'content.php?clear=1&sez='+file, true);
		request.send(null);
	}
	addBubbles(5);	
}

function displayResponseServizi(request, file) {
	if (loop>0) album.finish();
	var target = document.getElementById('picture');
	if (request.readyState == 4) {
		if (request.status == 200 || request.status == 304) {
			if (target.getAttribute("src")!="img/servizi.jpg") {
				Effect.Fade('visore', { duration:0.3, afterFinish: function () { document.getElementById('testoAjax').innerHTML=request.responseText; loadImage('servizi'); } });
			} else {
				Effect.Fade('testoAjax', { duration:0.3, afterFinish: function () { document.getElementById('testoAjax').innerHTML=request.responseText; Effect.Appear('testoAjax', { duration: 0.3 });} });
			}
		} else alert("File non trovato!");
	}
}

function updateTeam(file) {
	if (loop>0) album.finish();
	var request = getHTTPObject();
	if (request) {
		request.onreadystatechange = function() {
			displayResponseTeam(request, file);
		}
		request.open("GET", 'content.php?clear=1&sez='+file, true);
		request.send(null);
	}
	addBubbles(5);	
}

function displayResponseTeam(request, file) {
	if (loop>0) album.finish();
	var target = document.getElementById('picture');
	if (request.readyState == 4) {
		if (request.status == 200 || request.status == 304) {
			if (target.getAttribute("src")!="img/5.jpg") {
				Effect.Fade('visore', { duration:0.3, afterFinish: function () { document.getElementById('testoAjax').innerHTML=request.responseText; loadImage('5'); } });
			} else {
				Effect.Fade('testoAjax', { duration:0.3, afterFinish: function () { document.getElementById('testoAjax').innerHTML=request.responseText; Effect.Appear('testoAjax', { duration: 0.3 });} });
			}
		} else alert("File non trovato!");
	}
}

var loop=0;

var album = { 
  startup: function() { 
    pe = new PeriodicalExecuter(album.cycle, 5) // change image every 5 seconds 
	loop=1;
  }, 
  finish: function() { 
  	 pe.stop();
  }, 
  cycle: function() { 
    new Effect.Fade('slides', { // the id of the <DIV> containing the photos 
      duration: 0.3, 
      fps: 25, 
      afterFinish: function() { 
        new Ajax.Updater('slides','nextimg.php?img='+loop, { // URL for next <IMG> tag 
          asynchronous: true, 
          onSuccess: function() { 
            new Effect.Appear('slides', {
              duration: 0.3,
              fps: 25,
              queue:'end'
            })
			loop++;
			if (loop==6) loop=1;
          } 
        }) 
      } 
    }) 
  } 
} 
 


