var ajax_req = null;
var old_target;
var first_exec = true;
var evt;

/*
 * onDOMReady
 * Copyright (c) 2009 Ryan Morr (ryanmorr.com)
 * Licensed under the MIT license.
 */

function onDOMReady(fn, ctx){
	var ready, timer;
	var onStateChange = function(e){
		//Mozilla & Opera
		if(e && e.type == "DOMContentLoaded"){
			fireDOMReady();
		//Legacy	
		}else if(e && e.type == "load"){
			fireDOMReady();
		//Safari & IE
		}else if(document.readyState){
			if((/loaded|complete/).test(document.readyState)){
				fireDOMReady();
			//IE, courtesy of Diego Perini (http://javascript.nwbox.com/IEContentLoaded/)
			}else if(!!document.documentElement.doScroll){
				try{
					ready || document.documentElement.doScroll('left');
				}catch(e){
					return;
				}
				fireDOMReady();
			}
		}
	};
	
	var fireDOMReady = function(){
		if(!ready){
			ready = true;
			//Call the onload function in given context or window object
			fn.call(ctx || window);
			//Clean up after the DOM is ready
			if(document.removeEventListener)
				document.removeEventListener("DOMContentLoaded", onStateChange, false);
			document.onreadystatechange = null;
			//window.onload = null;
			learInterval(timer);
			timer = null;
		}
	};
	
	//Mozilla & Opera
	if(document.addEventListener)
		document.addEventListener("DOMContentLoaded", onStateChange, false);
	//IE
	document.onreadystatechange = onStateChange;
	//Safari & IE
	timer = setInterval(onStateChange, 5);
	//Legacy
	//window.onload = onStateChange;
}

onDOMReady(onReadyPippo,window);
//Aggiungi gli ascoltatori degli eventi quando si carica la pagina

function onReadyPippo(){
var elm = document.getElementById('foto_gallery');

// controlla se ci sono immagini da ridimensionare
res_img();
hide_panel('tutorial');
hide_panel('ricerca');
hide_panel('conv_form_insert');

if (!elm) return;
//W3C
if(elm.addEventListener){
	elm.addEventListener('mouseover', function(event) {
		var target = event.target ? event.target : e;
    	if(target.nodeName == "IMG" && target.name != "ok" && target.name != "lucc"){
			 target.style.border="yellow 2px solid";
		}
		return true;
		}, false);

	elm.addEventListener('mouseout', function(event) {
		var target = event.target ? event.target : e;
    	if(target.nodeName == "IMG" && target.name != "ok" && target.name != "lucc") target.style.border="black 2px solid";
    	return true;
		}, false);

	elm.addEventListener('click', function(event) {
		var target = event.target ? event.target : e; 
		if(target.nodeName == "IMG" && target.name != "lucc"){
			if(first_exec == false){
				old_target.style.border = "gray 2px solid";
				old_target.name = "";
				}
			target.style.border="red 2px solid";
			target.name = "ok";
			old_target = target;
			first_exec = false;
		}
		return true;
	}, false);
	// IE
}else if(elm.attachEvent){
	var r_over=elm.attachEvent('onmouseover', function(event) {
		var target = event.srcElement;
    	if(target.nodeName == "IMG" && target.name != "ok" && target.name != "lucc") target.style.border="yellow 2px solid";
		return r_over;
		});

	var r_out=elm.attachEvent('onmouseout', function(event) {
		var target = event.srcElement;
    	if(target.nodeName == "IMG" && target.name != "ok" && target.name != "lucc") target.style.border="black 2px solid";
    	return r_out;
		});

	var r_click=elm.attachEvent('onclick', function(event) {
		var target = event.srcElement; 
		if(target.nodeName == "IMG" && target.name != "lucc"){
			if(first_exec == false){
				old_target.style.border = "gray 2px solid";
				old_target.name = "";
				}
			target.style.border="red 2px solid";
			target.name = "ok";
			old_target = target;
			first_exec = false;
		}
		return r_click;
	});
}

}

function Richiesta_prov(url)
{
	var nome_reg = document.getElementById("regione").value;
	url = url.replace(/\&amp;/g,'&');
	url = url+"&reg="+nome_reg;
	url = url+ "&dummy=" + new Date().getTime();
    if (url.length > 0)
    {
    	//alert(url);
        ajax_req = RicavaBrowser(CambioStato_prov);
        ajax_req.open("GET", url, true);
        ajax_req.send(null);
    }
    else
    {
        document.getElementById("Title").innerHTML = "";
    } 
}

function Richiesta_com(url)
{
	var sigla_prov = document.getElementById("provincia").value;
	url = url.replace(/\&amp;/g,'&');
	url = url+"&prov="+sigla_prov;
	url = url+ "&dummy=" + new Date().getTime();
    if (url.length > 0)
    {
    	//alert(url);
        ajax_req = RicavaBrowser(CambioStato_com);
        ajax_req.open("GET", url, true);
        ajax_req.send(null);
    }
    else
    {
        document.getElementById("Title").innerHTML = "";
    } 
}

function Richiesta(url)
{
	
	url = url.replace(/\&amp;/g,'&');
	url = url+ "&dummy=" + new Date().getTime();
    if (url.length > 0)
    {
    	//alert(url);
        ajax_req = RicavaBrowser(CambioStato);
        ajax_req.open("GET", url, true);
        ajax_req.send(null);
    }
    else
    {
        document.getElementById("Title").innerHTML = "";
    } 
}

function Richiesta_canc(url)
{
	var new_url;
	var id_comm = document.getElementById("form_commenti").id_commento.value;
	//alert(url);
	new_url = build_url(url);
	new_url = new_url.replace(/\&amp;/g,'&');
	new_url = Reset_q_string(new_url);
	new_url = new_url+"&cancella=ok"+"&IdComm="+id_comm+"&dummy=" + new Date().getTime();
    if (new_url.length > 0)
    {
    	//alert(new_url);
        ajax_req = RicavaBrowser(CambioStato);
        ajax_req.open("GET", new_url, true);
        ajax_req.send(null);
    }
    else
    {
        document.getElementById("Title").innerHTML = "";
    } 
}

function Richiesta_upd(url)
{
	var new_url;
	
	new_url = build_url(url);
	new_url = new_url.replace(/\&amp;/g,'&');
	new_url = Reset_q_string(new_url);
	new_url = new_url+"&update_form=ok"+"&dummy=" + new Date().getTime();
    if (new_url.length > 0)
    {
    	//alert(new_url);
        ajax_req = RicavaBrowser(CambioStato);
        ajax_req.open("GET", new_url, true);
        ajax_req.send(null);
    }
    else
    {
        document.getElementById("Title").innerHTML = "";
    } 
}

function Richiesta_form()
{
	var url = "ajax.php?";
	var voto = document.getElementById("form_voto").scegli_voto.value;
	var q_string = document.getElementById("form_voto").q_string.value;
	var get_var = q_string.split('&');
	var i=0;
	for(i=0;i<get_var.length;i++){
		if((get_var[i].search('fix') != -1)){
			url = url + get_var[i]+"&";
			break;
		} 
		else url = url + get_var[i]+"&";
	}
	url = url +"voto="+ voto+ "&dummy=" + new Date().getTime();;
	url = url.replace(/\&amp;/g,'&');
    if (url.length > 0)
    {
    	//alert(url);
        ajax_req = RicavaBrowser(CambioStato);
        ajax_req.open("GET", url, true);
        ajax_req.send(null);
    }
    else
    {
        document.getElementById("Title").innerHTML = "";
    } 
}

function Richiesta_form_com()
{
	var url = "ajax.php?";
	var commento = document.getElementById("form_commenti").text_commento.value;
	var update = document.getElementById("form_commenti").update_comm.value;
	var insert = document.getElementById("form_commenti").ins_commento.value;
	var id_comm = document.getElementById("form_commenti").id_commento.value;
	var q_string = document.getElementById("form_commenti").q_string_comm.value;
	url = Reset_q_string(url+q_string);
	//alert(url);
	if(update == 'ok'){
		url = url +"update=ok&commenta=ok&" + "id_comm=" + id_comm + "&commento_img=" + commento;
	}else if(insert == 'ok'){
		url = url +"commenta=ok&update=no&" + "commento_img=" + commento;
	}
	
	url = url.replace(/\&amp;/g,'&');
	url = url + "&dummy=" + new Date().getTime();
	//alert(url);
    if (url.length > 0)
    {
    	//alert(url);
        ajax_req = RicavaBrowser(CambioStato);
        ajax_req.open("GET", url, true);
        ajax_req.send(null);
        url = url.replace(/\update=ok/g,'update=no');
        document.getElementById("form_commenti").q_string_comm.value = url;
    }
    else
    {
        document.getElementById("Title").innerHTML = "";
    } 
}

function Insert_data()
{
	var url = "ajax.php?";
	var nome_foto = document.getElementById("Nome").value;
	var comm_foto = document.getElementById("text_comm").value;
	var ins_q_string = document.getElementById("form_foto").ins_q_string.value;
	url = Reset_q_string(url+ins_q_string);
	//alert(url);
	if(nome_foto == ""){
		alert("Il titolo della foto \350 obbligatorio");
		return;
	} 
	
	url = url+"&insert=ok"+"&nome=" + nome_foto+"&commento="+comm_foto;
	url = url.replace(/\&amp;/g,'&');
	url = url + "&dummy=" + new Date().getTime();
    if (url.length > 0)
    {
		//alert(url);
        ajax_req = RicavaBrowser(CambioStato);
        ajax_req.open("GET", url, true);
        ajax_req.send(null);
    }
    else
    {
        document.getElementById("Title").innerHTML = "";
    } 
}

/**
*Cambia stato menu province
*/
function CambioStato_prov()
{
    if (ajax_req.readyState == 4 && ajax_req.status == 200)
    {
		var obj = eval("(" + ajax_req.responseText + ")");
		var option = document.createElement("OPTION");
		var i=1;
		var nome="";
		var val="- Provincia -";
		var elm=document.getElementById("provincia");
		// Rimuove le opzioni vecchie
		while (document.getElementById("provincia").options.length > 0) document.getElementById("provincia").remove(0);
		// Inserisce la prima opzione
		option.text = val;
		option.value = nome;
		try
		{
			elm.add(option, null);
		}
		catch(ex)
		{
			// For IE.
			elm.add(option);
		}

		for(i=1;i<obj.length;i++){
			option = document.createElement("OPTION");
			nome = obj[i]['SIGLA'];
			val = obj[i]['NOME']
			option.text = val;
			option.value = nome;
			try
			{
				document.getElementById("provincia").add(option, null);
			}
			catch(ex)
			{
				// For IE.
				document.getElementById("provincia").add(option);
			}
		}
	}
}

/**
*Cambia stato menu comuni
*/
function CambioStato_com()
{
    if (ajax_req.readyState == 4 && ajax_req.status == 200)
    {
		var obj = eval("(" + ajax_req.responseText + ")");
		var option = document.createElement("OPTION");
		var i=1;
		var nome="";
		var val="- Comune -";
		var elm=document.getElementById("comune");
		// Rimuove le opzioni vecchie
		while (document.getElementById("comune").options.length > 0) document.getElementById("comune").remove(0);
		// Inserisce la prima opzione
		option.text = val;
		option.value = nome;
		
		try
		{
			elm.add(option, null);
		}
		catch(ex)
		{
			// For IE.
			elm.add(option);
		}

		for(i=1;i<obj.length;i++){
			option = document.createElement("OPTION");
			nome = obj[i]['ID'];
			val = obj[i]['NOME']
			option.text = val;
			option.value = nome;
			try
			{
				document.getElementById("comune").add(option, null);
			}
			catch(ex)
			{
				// For IE.
				document.getElementById("comune").add(option);
			}
		}
	}
}

function CambioStato()
{
    if (ajax_req.readyState == 4 && ajax_req.status == 200)
    {
        //alert(ajax_req.responseText);
        var obj = eval("(" + ajax_req.responseText + ")");
        var comm_root=document.getElementById('tab_commenti');
        var comm_src=document.getElementById('blocco_comm');
        var n_comm;
        var tot_com = obj.TOT_COMM;
        var gps_lat,gps_lon;
        //pulisco tutte le caselle di testo
        document.getElementById("form_foto").Nome.value = "";
        document.getElementById("form_foto").text_comm.value = "";
		 
        //alert(obj.U_RIGHT_Q_STRING);
        document.getElementById("ImageBig").src = obj.U_RIGHT_F;
        document.getElementById("ImageBig").style.width=obj.RIGHT_WIDTH+"px";
        document.getElementById("ImageBig").style.heigth=obj.RIGHT_HEIGHT+"px";
        document.getElementById("ImageBig").style.border="3px solid white";
        //document.getElementById("ImageBig").style.innerHTML="width:"+obj.RIGHT_WIDTH+"px; height:"+obj.RIGHT_HEIGTH+"px border: 3px solid white";
        document.getElementById("ImageBig").title = obj.RIGHT_TITOLO;
        document.getElementById("Enlarge").href = obj.U_RIGHT_F;        
        document.getElementById("Enlarge").title = obj.RIGHT_TITOLO;
        document.getElementById("Title").innerHTML = obj.RIGHT_TITOLO;
        document.getElementById("info_voto").innerHTML = obj.RIGHT_F_VOTO;
        document.getElementById("info_votanti").innerHTML = obj.RIGHT_F_VOTANTI;
        if(!obj.RIGHT_NO_TITLE){
                document.getElementById("form_foto").Nome.value = obj.RIGHT_TITOLO;
        }
        document.getElementById("form_foto").text_comm.innerHTML = obj.RIGHT_COMMENTO;
        document.getElementById("commento_autore").innerHTML = obj.RIGHT_COMMENTO;
        document.getElementById("info_user").innerHTML = obj.RIGHT_F_USER+" "+obj.RIGHT_F_DATA;
        document.getElementById("dx_arrow").onclick = function() {Richiesta(encodeURI(obj.U_RIGHT_F_SUCC));}
        document.getElementById("sx_arrow").onclick = function() {Richiesta(encodeURI(obj.U_RIGHT_F_PREC));}
        document.getElementById("rot_sx").onclick = function() {Richiesta(encodeURI(obj.RIGHT_U_ROT_SX));}
        document.getElementById("rot_dx").onclick = function() {Richiesta(encodeURI(obj.RIGHT_U_ROT_DX));}
        document.getElementById("gps_ico").onclick = function() {		
            document.getElementById("tab_gps").style.display="block";
            gps_lat = obj.GPS_LAT;
            gps_lon = obj.GPS_LON;

            var latlng = new google.maps.LatLng(gps_lat,gps_lon);
            var myOptions = {
            zoom: 14,
            center: latlng,
            streetViewControl: true,
            mapTypeId: google.maps.MapTypeId.SATELLITE
            };
            var map = new google.maps.Map(document.getElementById("g_maps"),myOptions);

            //var image = obj.U_RIGHT_THUMB;
            var image = './ICO-GIF/marker.png';
            var myLatLng = new google.maps.LatLng(gps_lat,gps_lon);
            var beachMarker = new google.maps.Marker({
                position: myLatLng,
                map: map,
                title:obj.RIGHT_TITOLO,
                icon: image
            });
        }
        document.getElementById("form_nome_comm").style.display="none";
        document.getElementById("tab_gps").style.display="none";
        document.getElementById("gps_ico").style.display="none";
        if(obj.HAS_GPS == true){
                document.getElementById("gps_ico").style.display="block";
        }
        //document.getElementById("img_tag").innerHTML = obj.IMG_TAG;
        if(obj.RIGHT_IS_OWNER == false){
                document.getElementById("but_nome_comm").style.display="none";
                document.getElementById("rot_sx").style.display="none";
                document.getElementById("rot_dx").style.display="none";
        }else{
                document.getElementById("but_nome_comm").style.display="block";
                document.getElementById("form_foto").ins_q_string.value = encodeURI(obj.U_RIGHT_Q_STRING);
                document.getElementById("rot_sx").style.display="block";
                document.getElementById("rot_dx").style.display="block";
        }
        if(obj.RIGHT_NO_COMMENT == true){
                document.getElementById("tab_comm").style.display="none";
        }else{
                document.getElementById("tab_comm").style.display="block";
        }
        if(obj.RIGHT_IS_U_LOGGED == false){
                document.getElementById("div_voto").style.display="none";
                document.getElementById("form_commenti").style.display="none";
        }else{
                document.getElementById("div_voto").style.display="block";
                document.getElementById("form_commenti").style.display="block";
                document.getElementById("form_voto").q_string.value = encodeURI(obj.U_RIGHT_Q_STRING);
                document.getElementById("form_commenti").q_string_comm.value = encodeURI(obj.U_RIGHT_Q_STRING);
                //alert(encodeURI(obj.U_RIGHT_Q_STRING));
        }
        if(obj.RIGHT_IS_FRECCIA_SX == false || obj.RIGHT_IS_SINGOLA == true){
                document.getElementById("sx_arrow").style.display="none";
        }else{
                document.getElementById("sx_arrow").style.display="block";
                document.getElementById("dx_arrow").title="precedente";
        }
        if(obj.RIGHT_IS_FRECCIA_DX == false || obj.RIGHT_IS_SINGOLA == true){
                document.getElementById("dx_arrow").style.display="none";
        }else{
                document.getElementById("dx_arrow").style.display="block";
                document.getElementById("dx_arrow").title="successiva";
        }
        if(obj.RIGHT_NO_COMMENT == true){
                document.getElementById("tab_comm").style.display="none";
        }else{
                document.getElementById("tab_comm").style.display="block";
        }
        if(obj.IS_UPDATE == true){
                document.getElementById("update_comm").value="ok";
                document.getElementById("id_commento").value=obj.ID_COMMENTO;
                document.getElementById("text_commento").value=obj.TEXTAREA_COM;
        }else{
                document.getElementById("update_comm").value="no";
        }
        if(obj.IS_COMMENTI == true){
                var clone = new Array();
                //alert(comm_root.childNodes.length);
                while( comm_root.hasChildNodes() ) { 
                        comm_root.removeChild( comm_root.firstChild );
                } 

                document.getElementById("no_commenti").style.display="none";
                document.getElementById("tab_commenti").style.display="block";
                for(n_comm=1;n_comm<=tot_com;n_comm++){
                                var a,p,img,span = new Array();
                                var url_canc,url_mod;

                                clone[n_comm]=comm_src.cloneNode(true); 
                                clone[n_comm].setAttribute('id','blocco_comm'+n_comm);
                                a = clone[n_comm].getElementsByTagName("a");
                                p = clone[n_comm].getElementsByTagName("p");
                                img = clone[n_comm].getElementsByTagName("img");
                                span = clone[n_comm].getElementsByTagName("span");
                                //alert(span.length);
                                a[0].innerHTML = eval("obj.comm"+n_comm+".COM_USER");
                                a[0].href = eval("obj.comm"+n_comm+".U_COM_USER").replace(/\&amp;/g,'&');
                                a[1].href = eval("obj.comm"+n_comm+".U_COM_USER").replace(/\&amp;/g,'&');
                                a[2].href = eval("obj.comm"+n_comm+".U_COM_USER").replace(/\&amp;/g,'&');
                                a[2].innerHTML = eval("obj.comm"+n_comm+".COM_USER").replace(/\&amp;/g,'&');
                                span[3].innerHTML = eval("obj.comm"+n_comm+".USER_REG");
                                span[2].innerHTML = eval("obj.comm"+n_comm+".COM_DATA");
                                span[4].innerHTML = eval("obj.comm"+n_comm+".USER_FROM");
                                if (eval("obj.comm"+n_comm+".IS_COM_OWNER") == true){
                                        a[3].style.display="block";
                                        a[4].style.display="block";
                                        img[1].src = eval("obj.comm"+n_comm+".U_IMG_MOD");
                                        img[2].src = eval("obj.comm"+n_comm+".U_IMG_CANC");
                                        url_mod = encodeURI(eval("obj.comm"+n_comm+".U_COM_MOD"));
                                        url_canc = encodeURI(eval("obj.comm"+n_comm+".U_COM_CANC"));
                                        img[1].onclick = r_upd(url_mod);
                                        img[2].onclick = r_canc(url_canc);
                                }else{
                                        a[3].style.display="none";
                                        a[4].style.display="none";
                                }
                                p[1].innerHTML = eval("obj.comm"+n_comm+".COM_TEXT");
                                img[0].src = eval("obj.comm"+n_comm+".U_FOTO_AVATAR");

                                comm_root.appendChild(clone[n_comm]);
                                clone[n_comm].style.display="block";
                }
                document.getElementById("blocco_comm").style.display="none";
        }else{
                document.getElementById("no_commenti").style.display="block";
                document.getElementById("tab_commenti").style.display="none";
                document.getElementById("blocco_comm").style.display="none";
        }
    }
}

function r_canc(x){
	return function(){Richiesta_canc(x);} 
}

function r_upd(x){
	return function(){Richiesta_upd(x);} 
}


function RicavaBrowser(QualeBrowser)
{
    if (navigator.userAgent.indexOf("MSIE") != (-1))
    {
        var Classe = "Msxml2.XMLHTTP";
        if (navigator.appVersion.indexOf("MSIE 5.5") != (-1));
        {
            Classe = "Microsoft.XMLHTTP";
        } 
        try
        {
            OggettoXMLHTTP = new ActiveXObject(Classe);
            OggettoXMLHTTP.onreadystatechange = QualeBrowser;
            return OggettoXMLHTTP;
        }
        catch(e)
        {
            alert("Errore: l'ActiveX non verr\u0865seguito!");
        }
    }
    else if (navigator.userAgent.indexOf("Mozilla") != (-1))
    {
        OggettoXMLHTTP = new XMLHttpRequest();
        OggettoXMLHTTP.onload = QualeBrowser;
        OggettoXMLHTTP.onerror = QualeBrowser;
        return OggettoXMLHTTP;
    }
    else
    {
        alert("Non funziona con questo browser!");
    }
}

function Pulisci_nome()
{
	document.getElementById("form_foto").Nome.value="";
}

/*
* Pulisce la query string
*/
function Reset_q_string(url){
	var new_url;
	var q_string = url.split('?');
	var get_var = q_string[1].split('&');
	var i=0;
	new_url = 'ajax.php?';
	for(i=0;i<get_var.length;i++){
		if((get_var[i].search('insert') != -1) || (get_var[i].search('update') != -1) || 
			(get_var[i].search('commenta') != -1) || (get_var[i].search('commento_img') != -1) || 
			(get_var[i].search('dummy') != -1) || (get_var[i].search('nome') != -1) || (get_var[i].search('commento') != -1) ||
			(get_var[i].search('IdComm') != -1) || (get_var[i].search('cancella') != -1) ) continue;
		else if(i==(get_var.legth - 1)){
			new_url = new_url + get_var[i];
			} else{
			new_url = new_url + get_var[i]+"&";
		}
	}
	return new_url;
}

/*
* Forammata l'url
*/
function build_url(url){
	var new_url;
	var get_var = url.split('&');
	var i=0;
	new_url = get_var[0]+"&";
	for(i=1;i<get_var.length;i++){
		if((get_var[i].search('fix') != -1)){
			new_url = new_url + get_var[i];
			break;
		} 
		else new_url =new_url + get_var[i]+"&";
	}
	return new_url;
}

function show_panel(id_panel){
if(document.getElementById(id_panel)){
	document.getElementById(id_panel).style.display="block";
}
}

function hide_panel(id_panel){
if(document.getElementById(id_panel)){
	document.getElementById(id_panel).style.display="none";
}
}

/*
* Fa il resize delle immagini
*/
function res_img()
{
 if (document.getElementsByTagName)
 {
 	for (i=0; i<document.getElementsByTagName('img').length; i++)
 	{
 		im = document.getElementsByTagName('img')[i];
 		if (im.id){
			if(im.id == "img_topten") return;	
		} 
 		if (im.width > 600)
 		{
 		im.style.width = '600px';
 		eval("pop" + String(i) + " = new Function(\"pop = window.open('" + im.src + " ','fullscale','width=500,height=500,scrollbars=1,resizable=1'); pop.focus();\")");
 		eval("im.onclick = pop" + String(i) + ";");
 		if (document.all) im.style.cursor = 'hand';
 		if (!document.all) im.style.cursor = 'pointer';
 		im.title = 'Clicca sulla foto per vederla in formato originale ';
 		}
 	}
 }
} 
