// JavaScript Document

function getElementsByClassName(className, tag, elm){
	var testClass = new RegExp("(^|\\\\s)" + className + "(\\\\s|$)");
	var tag = tag || "*";
	var elm = elm || document;
	var elements = (tag == "*" && elm.all)? elm.all : elm.getElementsByTagName(tag);
	var returnElements = [];
	var current;
	var length = elements.length;
	for(var i=0; i<length; i++){
		current = elements[i];
		if(testClass.test(current.className)){
			returnElements.push(current);
		}
	}
	return returnElements;
}

function Left(str, n) {
	if (n <= 0)
		return "";
	else if (n > String(str).length)
		return str;
	else
		return String(str).substring(0,n);
}

function Right(str, n) {
	if (n <= 0)
		return "";
	else if (n > String(str).length)
		return str;
	else
		return String(str).substring((String(str).length-n),String(str).length);
}



function showHide(target,view){
	if($(target).prev("canvas").val()==""){
		target2="canvas";
	}else{
		target2="div";
	}
	if(view==1){
		$(target).show();
		$(target).prev(target2).show();
	}else{
		$(target).hide();
		$(target).prev(target2).hide();
	}
}


//alert(myLang);

////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///	GESTORE DI CHIAMATE ASINCRONE (GCA)
/// sviluppato da Marco Campanelli
///
///	ISTRUZIONI
///	GCA utilizza la libreria jQuery nella versione jquery-1.3.2.min.js. E' necessario dunque includere tale 
///	libreria prima di utilizzare GCA.
///
///	ARGOMENTI
///
/// myUrl:		è la pagina da caricare dinamicamente eventualmente compresa di percorso e variabili in GET

///	myMethod:	è il metodo di trasporto dati. Accetta GET o POST

/// idForm:		è l'id del form da inviare (lasciare vuoto nel caso di invii in GET)

/// obb:		è la sequenza di campi obbligatori nel formato 0,1,2... (lasciare vuoto nel caso non ci siano 
///				campi obbligatori o in caso di invii in GET)

///	myTarget:	è il DIV dove verrà caricato il file.

///	clear:		valore boleano. True o 1 elimina il contenuto del DIV target prima di caricare 
///				la pagina al suo interno. False o 0 aggiunge al contenuto preesistente la pagina caricata.
///
///	ESEMPI
///	Richiesta pagina GET
///	<a href="javascript:loadObj('pagina.asp?miaVariabile1=mioValore1&miaVariabile2=mioValore2','GET','','','divBersaglio','1');" title="il mio link">il mio link</a>
///	L'esempio carica la pagina "pagina.asp" dentro il div che ha id="divBersaglio" inviando le 2 coppie "variabile" "valore"
///
///	Richiesta pagina POST
///	<a href="javascript:loadObj('pagina.asp?miaVariabile1=mioValore1','POST','clienti','0,1','divBersaglio','1');" title="il mio link">il mio link</a>
///	L'esempio carica in POST la pagina "pagina.asp" dentro il div che ha id="divBersaglio" inviando in GET variabile1=valore1 e 
///	in POST tutti i dati del form che ha come id="clienti". Il valore "0,1" di obb specifica che nel caso il primo o il secondo elemento
///	della form assuma valore='' la richiesta non verrà completata.
///
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
///
///


function attivaErrori(stato){
	if(stato==0){
		showHide('#errorMessage',0);
		$('#errorTitle').empty();
		$('#errorTxt').empty();
	}else{
		showHide('#errorMessage',1);
	}
}

function loadObj(myUrl,myMethod,idForm,obb,myTarget,clear){
    
	//////////////////////////////////////
	///// OGGETTO LOADING
	//////////////////////////////////////

	forceRandom = Math.random()*99999999;
	forceRandom = Math.round(forceRandom);
	
	nSize=18;
	sUnit="px";
	
	myLoadObj=	"<script src='js/loading/loading.js'></script>"+
				"<div style='position: relative; float: left; width: 100%; padding: 25px;'>"+
					"<div id='imgLoad' style='position: relative; float: left; width: "+nSize+sUnit+"; padding-right: 8px;'>"+
						"<div id='imgLoad1' style='position: relative; width: "+nSize+sUnit+"; display: block;'>"+
							"<img src='js/loading/img/1.png' width='"+nSize+"' height='"+nSize+"' />"+
						"</div>"+
						"<div id='imgLoad2' style='position: relative; width: "+nSize+sUnit+"; display: none;'>"+
							"<img src='js/loading/img/2.png' width='"+nSize+"' height='"+nSize+"' />"+
						"</div>"+
						"<div id='imgLoad3' style='position: relative; width: "+nSize+sUnit+"; display: none;'>"+
							"<img src='js/loading/img/3.png' width='"+nSize+"' height='"+nSize+"' />"+
						"</div>"+
						"<div id='imgLoad4' style='position: relative; width: "+nSize+sUnit+"; display: none;'>"+
							"<img src='js/loading/img/4.png' width='"+nSize+"' height='"+nSize+"' />"+
						"</div>"+
						"<div id='imgLoad5' style='position: relative; width: "+nSize+sUnit+"; display: none;'>"+
							"<img src='js/loading/img/5.png' width='"+nSize+"' height='"+nSize+"' />"+
						"</div>"+
						"<div id='imgLoad6' style='position: relative; width: "+nSize+sUnit+"; display: none;'>"+
							"<img src='js/loading/img/6.png' width='"+nSize+"' height='"+nSize+"' />"+
						"</div>"+
						"<div id='imgLoad7' style='position: relative; width: "+nSize+sUnit+"; display: none;'>"+
							"<img src='js/loading/img/7.png' width='"+nSize+"' height='"+nSize+"' />"+
						"</div>"+
						"<div id='imgLoad8' style='position: relative; width: "+nSize+sUnit+"; display: none;'>"+
							"<img src='js/loading/img/8.png' width='"+nSize+"' height='"+nSize+"' />"+
						"</div>"+
					"</div>"+
					"<div style='position:relative; float:left; width: 50px; padding-top: 2px; color: black;'>loading...</div>"+
				"</div>";
	//////////////////////////////////////
	
	
	//////////////////////////////////////
	///// FUNZIONI AJAX
	//////////////////////////////////////
	function beforeFunction(){
		$("#"+myTarget).empty();
		if(clear==true){$("#"+myTarget).empty();}
		$("#"+myTarget).append(myLoadObj);
	}
	
	function successFunction(data){
		clearInterval(timerID);
		if(clear==true){$("#"+myTarget).empty();}
		$("#"+myTarget).append(data);
	}
	//////////////////////////////////////
	
	

	forceRandom = Math.random()*99999999;
	forceRandom = Math.round(forceRandom);
	if (Right(myUrl,4)=='.asp'){
		myUrlDef = myUrl+'?forceRand='+forceRandom;
	}else{
		myUrlDef = myUrl+'&forceRand='+forceRandom;
	}
	
	//////////////////////////////////////
	///// CONTROLLO I CAMPI OBBLIGATORI PER L'INVIO IN POST
	//////////////////////////////////////
	if(myMethod=='POST'){
		error = 0;
		if(obb!='' || obb!=0){
			//var obbArray = obb.split(',');
			myLoop=0;
			
			// OLD E FUNZIONANTE// $("[nNumber]").each(function(){
																
			// NUOVO IN TEST // 
			$("[nObb]").each(function(){
				if($(this).attr("nObb")=="1"){
					if($(this).attr("type")=="text" && $(this).val()=="" || $(this).attr("type")=="password" && $(this).val()=="" || $(this).attr("type")=="checkbox" && $(this).attr("checked")=="" || $(this).attr("type")=="textarea" && $(this).val()==""){ 
						error++;
						alert('Il campo '+$(this).attr("id")+' e\' vuoto.');
					}
				}
		  	});
		}
		//////////////////////////////////////
		
		
		if(error==0) {
			//////////////////////////////////////
			///// INVIO POST
			//////////////////////////////////////
			$.ajax({
				type: myMethod,
				url: myUrlDef,
				data: $("#"+idForm).serialize(),
				dataType: "html",
				beforeSend: function() { 
					beforeFunction();
				},
				success: function(data){
					successFunction(data);
				},
				error:function (xhr, ajaxOptions, thrownError){
					$("#errorMessage").append(xhr.responseText);
					attivaErrori(1);
				}
			});
			//////////////////////////////////////
		}else{
			$("[type='password']").attr("value","");
		}
		
    }else{
		//////////////////////////////////////
		///// INVIO GET
		//////////////////////////////////////
        $.ajax({
            type: myMethod,
            url: myUrlDef,
            dataType: "html",
			beforeSend: function() { 
				beforeFunction();
			},
            success: function(data){
				successFunction(data);
            },
			error:function (xhr, ajaxOptions, thrownError){
				$("#errorMessage").append(xhr.responseText);
				attivaErrori(1);
			}
        });
		//////////////////////////////////////
    }
}

///
///
///
////////////////////////////////////////////////////////////////////


function resetIt(nomeForm) {
	form = document.getElementById(nomeForm);
	myFormElements = form.elements;
	for(i=0;i<myFormElements.length;i++) {
		if(document.getElementById("cont_"+myFormElements[i].name)){
			document.getElementById("cont_"+myFormElements[i].name).style.backgroundColor = '';
		}
	}
	form.reset();
}

function liquidRemove(myObj){
	if($(myObj).prev("canvas").val()==''){
		$(myObj).prev("canvas").remove();
	}else{
		$(myObj).prev("div").remove();
	}	
}


function mostra(attivo,target){
	if(attivo==1){
		valDisplay='block';
	}else{
		valDisplay='none';
	}
	typeSelector=Left(target,1);
	lenTarget=(String(target).length-1);
	
	if(typeSelector=="#"){
		strSelector=document.getElementById(Right(target,lenTarget));
	}
	strSelector.style.display=valDisplay;
}




function expandGallery(zona,idZona,titoloZona,gallerySel){
	
	totFoto=$("#galleryPlus"+gallerySel).attr("totFoto");
	stato=$("#galleryPlus"+gallerySel).attr("stato");
	
//	alert("gallerySel="+gallerySel);
//	alert("totFoto="+totFoto);
//	alert("stato="+stato);
	
	if(stato=="0"){
		
		
		//alert("pasreInt(2.6)="+parseInt(2.8));
		
		
		
		nRow=(totFoto-5)/6;
		
		
		//alert("nRow="+nRow+" - parseInt(nRow)="+parseInt(nRow));
		
		
		if(parseInt(nRow)!=nRow){
			if(nRow>parseInt(nRow)){
				nRow=parseInt(nRow)+1;
			}else{
				nRow=parseInt(nRow);
			}
		}
		//alert(nRow);
		hRow=154;
		hTarget=nRow*hRow;
		galleryTarget="galleryPlus"+gallerySel;
		
		//alert("totFoto="+totFoto+" - nRow="+nRow+" - height="+(hTarget+20));
		
		$(".ctrlGallery[ref='"+gallerySel+"']").children("a").html("nascondi altre foto <img src='img/bttUp.png' />");
		$(".galleryPlus[ref='"+gallerySel+"']").attr("stato","1");
		$(".galleryPlus[ref='"+gallerySel+"']").animate({
			height: hTarget
		},"fast", function(){
			loadObj('galleryPlus.asp?zona='+zona+'&gallerySel='+gallerySel+'&idZona='+idZona+'&titoloZona='+titoloZona,'GET','','',galleryTarget,1);
		});
		
	}else{
		
		$(".ctrlGallery[ref='"+gallerySel+"']").children("a").html("mostra altre foto <img src='img/bttDown.png' />");
		$(".galleryPlus[ref='"+gallerySel+"']").attr("stato","0");
		loadObj('blank.asp','GET','','',galleryTarget,1);
		$(".galleryPlus[ref='"+gallerySel+"']").animate({
			height: 0
		},"fast");
		
	}
	
}



function codificaPassword(target){
	//alert($(target).val());
	if($(target).val()=='' || $(target).val()==null){
		//alert("vuoto");
		$(target).attr('value','');
	}else{
		$(target).attr('value',hex_md5($(target).val()));
	}
}


function verPass(verNam1,verNam2,page,method,idForm,obb,target,empty) {
	pass1=$(verNam1).val();
	pass2=$(verNam2).val();
	//alert(pass1+" - "+pass2);
	//if(pass1==undefined){
		//alert("no submit");
	//}else{
		if(pass1!=pass2) {
			alert('I campi password non corrispondono');
		} else {
			codificaPassword(verNam1);
			codificaPassword(verNam2);
			loadObj(page,method,idForm,obb,target,empty);
			//submitIt(idForm,obb);
		}
	//}
}

function focusOnInput(nomeInput){
	myInput = document.getElementsByName(nomeInput)[0];
	if(myInput.value=='CERCA'){
		myInput.value=''
	}
}

function focusOutInput(nomeInput){
	myInput = document.getElementsByName(nomeInput)[0];
	if(myInput.value==''){
		myInput.value='CERCA'
	}
}


function verificaExt(ext,target) {
	nomeFile = document.getElementById(target).value;
	extFile = nomeFile.split('.');
	extLow = ext;
	extFirstUp = ext.substring(0,1).toUpperCase();
	extUp = ext.toUpperCase();
	if(extFile[(extFile.length-1)]==extLow || extFile[(extFile.length-1)]==extFirstUp || extFile[(ext.length-1)]==extUp) {
	} else {
		alert('Il file selezionato non è un file '+ext+'. Selezionare solo file '+ext+'.');
		document.getElementById(target).value = '';
	}
}


function verificaJPG() {
	nomeFile = document.getElementsByName('imgtmb')[0].value;
	ext = nomeFile.split('.');
	if(ext[(ext.length-1)]=='jpg' || ext[(ext.length-1)]=='Jpg' || ext[(ext.length-1)]=='JPG') {
	} else {
		alert('L\'immagine selezionata non &egrave; un JPG. Selezionare solo immagini formato JPG.');
		document.getElementsByName('imgtmb')[0].value = '';
	}
}


//function rollOverBttMenu(id) {
//	document.getElementById('bttMenu'+id).className = 'bttMenuOn';
//	$("#bttMenu"+id).liquidCanvas("gradient{from:rgba(145,0,0,1); to:rgba(229,49,56,1); xO:0; yO:#60; xD:0; yD:#40;} => ecken{tl:10;tr:0;bl:0;br:10;}");
//	if($("#bttMenu"+id).prev("canvas").val()==""){
//		$("#bttMenu"+id).prev("canvas").show();
//	}else{
//		$("#bttMenu"+id).prev("div").show();
//	}
//	document.getElementById('abttMenu'+id).style.color = '#fff';
//}
//function rollOutBttMenu(id) {
//	document.getElementById('bttMenu'+id).className = 'bttMenu';
//	if($("#bttMenu"+id).prev("canvas").val()==""){
//		$("#bttMenu"+id).prev("canvas").hide();
//	}else{
//		$("#bttMenu"+id).prev("div").hide();
//	}
//	document.getElementById('abttMenu'+id).style.color = '#000';
//	document.getElementById('bttMenu'+id).style.backgroundColor = 'transparent';
//}


function rollOverBttMenu(id) {
	//$('#abttMenu'+id).attr("style","color: white; cursor: pointer;");
	$("#bttMenu"+id).css({"cursor":"pointer"});
	$("#abttMenu"+id).css({"color":"white"});
	//liquidRemove("#bttMenu"+id);
	$("#bttMenu"+id).liquidCanvas("gradient{from:rgba(229,49,56,1); to:rgba(145,0,0,1); xO:0; yO:#60; xD:0; yD:#40;} => rect");
	//$("#bttMenu"+id).liquidCanvas("gradient{from:rgba(255,255,255,0.8); to:rgba(255,255,255,0.5); xO:0; yO:#49; xD:0; yD:#51;} => rect");
}
function rollOutBttMenu(id) {
	$('#abttMenu'+id).attr("style","color:black");
	liquidRemove("#bttMenu"+id);
	//$("#bttMenu"+id).liquidCanvas("gradient{from:rgba(255,255,255,0.4); to:rgba(255,255,255,0.25); xO:0; yO:#49; xD:0; yD:#51;} => rect");
}



//function rollBtt(stato,btt) {
//	myBtt = document.getElementById(btt);
//		myBtt.style.color = 'black';
//	} else {
//		myBtt.style.color = 'white';
//	}
//}

function goToPage(pag) {
	document.location.href = 'index.asp?zona='+pag;
}


//FUNZIONI DELLA HOME

function detectFF() {
	if(navigator.userAgent.indexOf("Firefox")!=-1){
		trovato = 'FF';
	} else if (navigator.appVersion.indexOf("MSIE")!=-1){
		trovato = 'IE';
	} else {
		trovato = 'UNKNOW';
	}
}



//FUNZIONI DELLA GALLERY
function allineaImg(target) {
	element = document.getElementById(target);
	//bytefx.alpha(element, 0);
	hImg = element.offsetHeight;
	wImg = element.offsetWidth;
	hBox = document.getElementById('out'+target).clientHeight;
	wBox = document.getElementById('out'+target).clientWidth;
	topImg = (hBox-hImg)/2;
	leftImg = (wBox-wImg)/2;
	//if (topImg > 0) {
		element.style.marginTop = topImg+'px';
		element.style.marginLeft = leftImg+'px';
	//}
	
	//bytefx.alpha(element, 100);
}
