// JavaScript Document
var k=0;
var vote={"id":0,"value":0};
var globalobj;
var send;
loadImages('bkg_img/back_body.png','bkg_img/dot.png','bkg_img/main.png',
		   'bkg_img/button1.png','bkg_img/button2.png','bkg_img/button3.png','bkg_img/button4.png',
		   'bkg_img/loader1.gif','bkg_img/leftpannel.png','bkg_img/rightpannel.png','bkg_img/dark_nextgreen.png',
		   'bkg_img/dark_backgreen.png','bkg_img/dark_nextwhite.png','bkg_img/dark_backwhite.png');
window.dhtmlHistory.create();
window.onload=function()
{
	    dhtmlHistory.initialize();
		dhtmlHistory.addListener(historyChange);
		historyChange(dhtmlHistory.getCurrentLocation());
	    var butt=$C("button");
		for(i=0;i<butt.length;i++)
		{
			butt[i].onmousemove=function()
			{var yy=bytefx.$position(this).y;bytefx.move(this,{x:650,y:bytefx.$position(this).y},100);}
			butt[i].onmouseout=function()
			{bytefx.move(this,{x:540,y:bytefx.$position(this).y},100);}
			bytefx.fade(butt[i], 0, 100, $time(3-(i/2)));
		}
}
function historyChange(string,data)
{
	    if(k!=0 || dhtmlHistory.isFirstLoad())
		{
			if(!string) string="php/home.php";
			$("leftpannel").innerHTML=$("rightpannel").innerHTML="";
			bytefx.alpha($("leftpannel"),0);
			bytefx.alpha($("rightpannel"),0);
			$("content").style.backgroundImage = "url(bkg_img/loader1.gif)";
			Open(string);										
		}
		k++;
}
function Buttons()
{
	if($("back"))
	{
		$("back").onmousemove=function()
		{this.style.backgroundImage="url(bkg_img/dark_backwhite.png)"}
		$("back").onmouseout=function()
		{this.style.backgroundImage="url(bkg_img/dark_backgreen.png)"}
	}
	if($("next"))
	{
		$("next").onmousemove=function()
		{this.style.backgroundImage="url(bkg_img/dark_nextwhite.png)"}
		$("next").onmouseout=function()
		{this.style.backgroundImage="url(bkg_img/dark_nextgreen.png)"}
	}
}
function Open(string,callback)
{
	var sezione = string.split(".");
	$Ajax(string,"",function(request){
				$("content").style.backgroundImage = "";
				bytefx.fade($("leftpannel"),0,100,$time(6));
				bytefx.fade($("rightpannel"),0,100,$time(6),function(){
					eval("var myobj=" + nl_clean(request.responseText));
					if(sezione[0]=="php/home") OpenHome(myobj);
					else if(sezione[0]=="php/gallery") OpenGallery(myobj);
					else if(sezione[0]=="php/music") OpenMusic(myobj);
					else if(sezione[0]=="php/contact") OpenContact(myobj);
					if(callback) callback();
				});
	});
}
function OpenHome(oggetto)
{
	$("sezione").innerHTML="home";
	$("leftpannel").innerHTML=oggetto.left;
	$("rightpannel").innerHTML=oggetto.right;
}
function OpenGallery(oggetto)
{
	$("sezione").innerHTML="gallery";
	$("leftpannel").innerHTML=oggetto.left;
	$("rightpannel").innerHTML=oggetto.right;
	Buttons();
	showImage($("image"+oggetto.image%5));
	globalobj=oggetto;
	for(i=1;i<=5;i++)
	{
		if($("image"+i))
		{
			$("image"+i).onclick=function(){showImage(this);}
			for(j=1;j<=6;j++)
		    {
				star=$(String(oggetto.vote[i-1].id)+String(j)+"star");
				if(star && oggetto.vote[i-1].votable)
				{
					selvote(oggetto.vote[i-1],60);
					star.onclick=function()
					{
						var id=getIndex(this).id;
						for(f=1;f<=6;f++)
						    $(String(id)+String(f)+"star").onmousemove=
							$(String(id)+String(f)+"star").onmouseout=
							$(String(id)+String(f)+"star").onclick="";
						voteItem(this,"gallery");
						this.onmousemove=this.onmouseout=this.onclick="";
					}
					star.onmousemove=function(){
						vote=getIndex(this);
						selvote(vote,100);
					}
					star.onmouseout=function(){
						var f;
						for(f=0;f<oggetto.vote.length;f++)
							if(vote.id==oggetto.vote[f].id) break;
						vote.value=oggetto.vote[f].value;
						selvote(vote,60);
					}
				}
				else if(!oggetto.vote[i-1].votable)
					selvote(oggetto.vote[i-1],30);
		     }
		}
	}
}
function OpenMusic(oggetto)
{
	$("sezione").innerHTML="music";
	$("leftpannel").innerHTML=oggetto.left;
	$("rightpannel").innerHTML=oggetto.right;
	Buttons();
	showDjset($("image"+oggetto.image%5));
	globalobj=oggetto;
	for(i=1;i<=5;i++)
	{
		if($("image"+i))
		{
			$("image"+i).onclick=function(){showDjset(this);}
			for(j=1;j<=6;j++)
		    {
				star=$(String(oggetto.vote[i-1].id)+String(j)+"star");
				if(star && oggetto.vote[i-1].votable)
				{
					selvote(oggetto.vote[i-1],60);
					star.onclick=function()
					{
						var id=getIndex(this).id;
						for(f=1;f<=6;f++)
						    $(String(id)+String(f)+"star").onmousemove=
							$(String(id)+String(f)+"star").onmouseout=
							$(String(id)+String(f)+"star").onclick="";
						voteItem(this,"music");
						this.onmousemove=this.onmouseout=this.onclick="";
					}
					star.onmousemove=function(){
						vote=getIndex(this);
						selvote(vote,100);
					}
					star.onmouseout=function(){
						var f;
						for(f=0;f<oggetto.vote.length;f++)
							if(vote.id==oggetto.vote[f].id) break;
						vote.value=oggetto.vote[f].value;
						selvote(vote,60);
					}
				}
				else if(!oggetto.vote[i-1].votable)
					selvote(oggetto.vote[i-1],30);
		     }
		}
	}
}
function OpenContact(oggetto)
{
	$("sezione").innerHTML="contact";
	$("leftpannel").innerHTML=oggetto.left;
	$("rightpannel").innerHTML=oggetto.right;
	$ipo_scroller('messages',10,'#345678',20);
	Buttons();
}
function showDjset(id)
{
	bytefx.fade($("show"), 100, 0, $time(5),function(){
		var testo=id.firstChild.innerHTML;
	    $("show").innerHTML=testo;
		bytefx.fade($("show"), 0, 100,$time(6));
    });
}
function showImage(id)
{
	bytefx.fade($("show"), 100, 0, $time(5),function(){
		var urlimg=id.style.backgroundImage;
	    $("show").style.backgroundImage=urlimg;
		bytefx.fade($("show"), 0, 100,$time(6));
    });
}
function sendMessage()
{
	var stringa = "";
	/* controllo email */
	var espressione = /^[_a-z0-9+-]+(\.[_a-z0-9+-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)+$/;
	$("title").value=trim($("title").value);
	$("autore").value=trim($("autore").value);
	$("email").value=trim($("email").value);
	$("testo").value=trim($("testo").value);
	if($("title").value.length<5)
	{
		/* titolo deve essere lungo almeno 5 ch */
		$("log").innerHTML="Errore nel campo \"Titolo\"!";
	}
	else if($("autore").value.length<3)
	{
		/* autore deve essere lungo almeno 3ch */
		$("log").innerHTML="Errore nel campo \"Autore\"!";
	}
	else if(!espressione.test($("email").value))
	{
		/*email non valida*/
		$("log").innerHTML="Email non valida!";
	}
	else if($("testo").value.length<15)
	{
		/* testo almeno 15ch */
		$("log").innerHTML="Errore nel campo \"Testo\"!";
	}
	else
	{
		$("log").innerHTML="Inserimento in corso...";
		stringa += "title="+encodeURIComponent($("title").value.toLowerCase());
		stringa += "&autore="+encodeURIComponent($("autore").value.toLowerCase());
		stringa += "&email="+encodeURIComponent($("email").value.toLowerCase());
		stringa += "&testo="+encodeURIComponent($("testo").value.toLowerCase());
		$Ajax("php/message.php?"+stringa,"",function(request){
				send=parseInt(request.responseText);
				Open("php/contact.php",function()
												{
							if(send)
							$("log").innerHTML="Messaggio inserito correttamente.";
							else
							$("log").innerHTML="Messaggio non inserito (attendere 10 minuti).";
												});
		});
	}
}
/* !!!!!gestione votazioni!!!!! */
function voteItem(id,type)
{
	var elemento=getIndex(id);
	var elemparent=$(elemento.id+"vote").parentNode;
	var contenuto=elemparent.innerHTML;
	elemparent.innerHTML="<div class=\"startext\">Attendere prego...</div>";
	$Ajax("php/vota.php?type="+type+"&id="+elemento.id+"&vote="+elemento.value,"",function(request){
			elemparent.innerHTML=contenuto;
		    eval("var myobj=" + nl_clean(request.responseText));
			$(String(myobj.id)+"vote").innerHTML="voto ("+myobj.value+"):";
			myobj.value=Math.round(myobj.value);
			for(i=1;i<=6;i++) $(String(myobj.id)+String(i)+"star").style.cursor="default";
			selvote(myobj,30);				 
	});
}
function getIndex(id)
{
	var result={"id":0,"value":0};
	var n=parseInt(id.id);
	result.value=n%10;
	result.id=(n-result.value)/10;
	return result;
}
function selvote(obj,trasp)
{
	var id=obj.id;
	var vote=obj.value;
	var k=1;
	for(;k<=vote;k++)
				bytefx.alpha($(String(id)+String(k)+"star"),trasp);
	for(;k<=6;k++)
			    bytefx.alpha($(String(id)+String(k)+"star"),5);
	
}