/*
	Autore: Torrente Pietro
	Descrizione: questa funzione permette di navigare attraverso i 4 livelli
	in cui si suddivide il proggetto. Inoltre permette di aprire una nuova
	istanza di Explorer qualora l"oggetto da visualizzare non appartiene
	alla banca dati (es.: visualizzare di un territorio avente portale
	marcketing territoriale esistente - come ad esempio "Tortolì-Arbatax"
	in Sardegna).
*/
function viewLevel(idRegione,idTerritorio,idComune,level)
{
/*
	if (isNaN(idRegione))
	{
		window.open(idRegione,"Extra");
	}
	if (isNaN(idComune))
	{
		window.open(idComune,"Extra");
	}
*/
	if (isNaN(idTerritorio))
	{
		avviaricerca('ASI.aspx?flag_tipo=' + level + '&idEnte=' + idRegione);
		return false
	}

	if (idRegione > 0 || idTerritorio > 0 || idComune > 0)
	{
		var admin = document.location.href.indexOf("admin")
		if (admin > 0)
		{
			avviaricerca('default.aspx?cmd=login&flag_tipo=' + level + '&id_regione=' + idRegione + '&id_territorio=' + idTerritorio + '&id_comune=' + idComune);
			//document.location.href = "default.aspx?cmd=login&flag_tipo=" + level + "&id_regione=" + idRegione + "&id_territorio=" + idTerritorio + "&id_comune=" + idComune;
		}
		else
		{
/*
			if (actAree != null)
			{
				//avviaricerca('Aree.aspx?flag_tipo=' + level);
				avviaricerca('Aree.aspx?start=ok&flag_tipo=' + level + '&id_regione=' + idRegione + '&id_territorio=' + idTerritorio + '&id_comune=' + idComune);
			}
			else
*/
			{
				//avviaricerca('default.aspx?flag_tipo=' + level);
				avviaricerca('default.aspx?flag_tipo=' + level + '&id_regione=' + idRegione + '&id_territorio=' + idTerritorio + '&id_comune=' + idComune);
				//document.location.href = "default.aspx?flag_tipo=" + level + "&id_regione=" + idRegione + "&id_territorio=" + idTerritorio + "&id_comune=" + idComune;
			}
		}
	}
}

/*
	Autore: Torrente Pietro
	Descrizione: questa funzione permette di attivare il motore di ricerca
	delle aree.
*/
function avviaricerca(strAction)
{
	if (strAction.indexOf('cmd') > 0)
	{
		switch(querystring('flag_tipo',strAction))
		{
			case 'r':
			{
				document.getElementById('intest_selTerritorio').options[0].selected = true;
				document.getElementById('intest_selComune').options[0].selected = true;
				break;
			}
			case 't':
			{
				document.getElementById('intest_selComune').options[0].selected = true;
				break;
			}
			case '':
			{
				document.getElementById('intest_selRegione').options[0].selected = true;
				document.getElementById('intest_selTerritorio').options[0].selected = true;
				document.getElementById('intest_selComune').options[0].selected = true;
				break;
			}
		}
	}

	document.frmRicercaEnte.action = strAction;
	document.frmRicercaEnte.submit();
}

function goToLevel(idRegione,idTerritorio,idComune,level)
{
	if (idRegione > 0 || idTerritorio > 0 || idComune > 0)
	{
		var admin = document.location.href.indexOf("admin");
		if (admin > 0)
		{
			//avviaricerca('default.aspx?cmd=login&flag_tipo=' + level + '&id_regione=' + idRegione + '&id_territorio=' + idTerritorio + '&id_comune=' + idComune);
			parent.document.location.href = "default.aspx?cmd=login&flag_tipo=" + level + "&id_regione=" + idRegione + "&id_territorio=" + idTerritorio + "&id_comune=" + idComune;
		}
		else
		{
			//avviaricerca('default.aspx?flag_tipo=' + level + '&id_regione=' + idRegione + '&id_territorio=' + idTerritorio + '&id_comune=' + idComune);
			parent.document.location.href = "default.aspx?flag_tipo=" + level + "&id_regione=" + idRegione + "&id_territorio=" + idTerritorio + "&id_comune=" + idComune;
		}
	}
}

/*
	Autore: Torrente Pietro
	Descrizione: questa funzione permette di visualizzare il box di ricerca
	nelle pagine provviste di motore di ricerca.
*/
function mostraNascondi(objNomeId,objCall)
{

	var obj = document.getElementById(objNomeId);
	if (obj.style.display == "none")
	{
		if (document.getElementById('mostraricerca') != null)
		{
			document.getElementById('mostraricerca').innerHTML = '[nascondi ricerca]';
		}
		else
		{
			if (objCall != null)
			{
				document.getElementById(objCall).innerHTML = Replace(document.getElementById(objCall).innerHTML ,'Visualizza','Nascondi');
			}
		}
		obj.style.display = "";
	}
	else
	{
		if (document.getElementById('mostraricerca') != null) 
		{
			document.getElementById('mostraricerca').innerHTML = '[Ricerca]';
		}
		else
		{
			if (objCall != null)
			{
				document.getElementById(objCall).innerHTML = Replace(document.getElementById(objCall).innerHTML ,'Nascondi','Visualizza');
			}
		}
		obj.style.display = "none";
	}
}

/*
	Autore: Torrente Pietro
	Descrizione: questa funzione permette di controllare che i campi di input
	di tutti i form di modifica e inserimento siano compilati correttamente.
*/
function controllaValore()
{
	var obj;
	var conferma;

	conferma = confirm('Procedere con l\'operazione?')
	if (conferma)
	{
		for (i=0; i<document.forms[0].elements.length; i++)
		{
			obj = document.forms[0].elements[i];
			if (obj.type != 'button')
			{
				if (obj.value == '')
				{
					if (obj.name != 'telefono' && obj.name != 'fax' && obj.name != 'Invest_data_scadenza')
					{
						alert('Attenzione: valore non corretto: ' + obj.name + '.');
						return false;
					}
				}
			}
		}
	}
}

/*
	Autore: Torrente Pietro
	Descrizione: questa funzione permette di confermare la cancellazione di un elemento.
*/
function confermaCancella(psID)
{
	var conferma = confirm("Sicuro di procedere con la cancellazione?");
	if (conferma)
	{
		alert("Operazione avvenuta correttamente");
		//document.location.href = document.location.href + "?cmd=del&id=" + psID;
	}
	else
	{
		alert("Operazione annullata.");
	}
}

/*
	Autore: Torrente Pietro
	Descrizione: questa funzione permette di consultare il calendario.
*/
function openCalendar()
{
	window.open('calendario/calendario.htm','Calendario','width=400,height=350,screenX=400,screenY=350,left=0,top=0,location=no,scrollbars=no')
}

/*
	Autore: Torrente Pietro
	Descrizione: questa funzione esegue l'autenticazione di login.
*/
function autorizzazione(flag_tipo, id_ente)
{
	var objForm = document.getElementById("frmLogin")
	var queryPos = document.location.href.indexOf('?');
	var queryPar = document.location.href.substring(queryPos, document.location.href.length)
	var SeAsi
	if (window.opener != null)
	{
		SeAsi = window.opener.document.location.href.indexOf('tipo_ente');
	}

	switch (flag_tipo)
	{
		case "": objForm.action = "primo_livello/default.aspx"; break;
		case "r": objForm.action = "secondo_livello/default.aspx" + queryPar; break;
		case "t":
			if (SeAsi >= 0)
			{
				objForm.action = "terzo_livello/PresentazioneAsi.aspx" + queryPar; break;
			}
			else
			{
				objForm.action = "terzo_livello/default.aspx" + queryPar; break;
			}
		case "c": objForm.action = "quarto_livello/default.aspx" + queryPar; break;
	}
/*	
	if (objForm.utente.value == "")
	{
		alert("Inserire lo Username.");
		objForm.utente.focus();
		objForm.utente.style.background = "yellow";
		return false;
	}
	if (objForm.pwd.value == "")
	{
		alert("Inserire la Password.");
		objForm.pwd.focus();
		objForm.pwd.style.background = "yellow";
		return false;
	}
*/
	//alert(id_ente);
	document.getElementById("idEnte").value = id_ente;
	objForm.submit();
}

/*
	Autore Ennio Roccamo
	Descrizione: questa funzione permette di intercambiare l'immagine
	della mappa su "Inmvesti in...", evidenziando la regione in cui si
	trova il puntatore
*/
function getMap(psMapName)
{
	var objImg = document.getElementById('base')
	objImg.src=psMapName
}

/*
	Autore: Torrente Pietro
	Descrizione: Questa funzione imposta l'URL degli href dei tag <AREA>
	della mappa dell'Italia.
*/
function go_to(idRegione)
{
	document.location.href='default.aspx?flag_tipo=r&idEnte=' + idRegione;
}

/*
	Autore: Torrente Pietro
	Descrizione: questa funzione permette di editare il titolo del capitolo
	di una sezione, facendo comparire un capo di tipo inputbox al posto del
	nome corrente.
*/
function rinominaCapitolo(id)
{
	var objCapitolo = document.getElementById("capitolo" + id)
	objCapitolo.innerHTML = "<input class=select type=text name=nomeCapitolo value=" + objCapitolo.value + ">"
}

/*
	Descrizione: questa funzione permette di avviare l'editor di testo.
*/
var miaChiave;
function popup(elementID,seAsi)
{
	miaChiave = document.getElementById(elementID)
	if (seAsi == 'ASI')
	{
	window.document.open('../../text_editor/Editor.html' ,'Editor','screenX=720,screenY=440,left=0,top=0,scrollbars=yes,width=720,height=440,resizable=yes,status=no,location=no,toolbar=no');
	}
	else
	{
	window.document.open('../text_editor/Editor.html' ,'Editor','screenX=720,screenY=440,left=0,top=0,scrollbars=yes,width=720,height=440,resizable=yes,status=no,location=no,toolbar=no');
	}
}

/*
	Autore: Torrente Pietro
	Descrizione: La seguente funzione permette di rilevare il
	valore di un parametro della querystring.
*/
function querystring(psKey,psStr)
{
	var strReturn = '';
	var strUrl = window.document.location.href;
	var posArg= strUrl.indexOf('?');
	if (posArg==-1) return '';
	
	var strArg = strUrl.substring(posArg+1);
	if (strArg.length==0)
		return '';
	if (psKey=='' || psKey==null)
		return strArg;
	var arrArg = strArg.split('&')
	var arrKeyValue;
	var psSep = '';
	for(i=0; i<arrArg.length; i++)
	{
		
		var strVal = arrArg[i] + '';
		arrKeyValue = strVal.split('=');

		strVal = '' + arrKeyValue[0];
		if (strVal.toLowerCase() == psKey.toLowerCase())
		{
			strReturn += psSep + arrKeyValue[1]
			psSep = ',';	
		}
		
	}
	
	return strReturn;
/*
	if (psStr != "")
	{
		var strURL = psStr;
	}
	else
	{
		var strURL = window.document.location.href;
	}
	
	var posVal = strURL.indexOf(psPar + '=');

	if (posVal == -1)
	{
		return '';
	}
	else
	{
		subURL = strURL.substring(posVal,strURL.length)
		if (subURL.indexOf('&') != -1)
		{
			var endPos = posVal + subURL.indexOf('&');
		}
		var startPos = posVal + psPar.length + 1;
		return strURL.substring(startPos,endPos);
	}
*/
}

//////////////////////////////////////////////////////////////////////////////////////////////////

//==AZIONI SULLA STRINGHE
function trim(strIn) 
{
   /*
AUTORE: ennio roccamo
e-mail: ennioroccamo@hotmail.com

SOCIETA':

DESCRIZIONE:

   */
   var strOut = strIn;
   if (strOut=='')
		return strIn;
		
		
   //rimozione spazi iniziali
   var strSpace = strOut.substring(0, 1);
   while (strSpace == ' ') 
   {
      strOut = strOut.substring(1, strOut.length);
      strSpace = strOut.substring(0, 1);
   }
   //rimozione spazi finali
   strSpace = strOut.substring(strOut.length-1, strOut.length);
   
   while (strSpace == ' ') 
   {
      strOut = strOut.substring(0, strOut.length-1);
      strSpace = strOut.substring(strOut.length-1, strOut.length);
   }

   return strOut;
}

function Replace(Expression, Find, Replace)
{
	var temp = Expression;
	var a = 0;

	for (var i = 0; i < Expression.length; i++) 
	{
		a = temp.indexOf(Find);
		if (a == -1)
			break
		else
			temp = temp.substring(0, a) + Replace + temp.substring((a + Find.length));
	}
	return temp;
}
//==FUNZIONI PER FORMATTAZIONE==================


	
function formatToNumber(campo,strSep) 
{ 

	var strOut='';
	var strChar = '';
	var incr=0;
 
	for(i=0;i<campo.value.length;i++) 
	{ 
			strChar = campo.value.substr(i,1);
			switch (strChar)
			{
				case '1':
				case '2':					
				case '3':	
				case '4':
				case '5':					
				case '6':						
				case '7':
				case '8':					
				case '9':		
				case '0':	
					strOut += strChar;	
					break;
				case '.':
				case ',':

					if(strSep.length>0)
					{
						incr++; 
						if(incr==1) 
						{ 
							strOut += '.'; 
						}	
					}														
			} 
	} 
	

	campo.value=strOut;
} 

function stringFilter(psInput,psCharacters)
{
/*
Autore: Ennio Roccamo
e-mail: ennioroccamo@hotmail.com

descrizione:
Ritorna un valore estraendo dal primo argomento i soli caratteri contenuti nel
secondo.

*/
	var lngLen	= psInput.length;
	var strOut	=''; // la stringa di ritorno
	var char	='';
	if(lngLen==0)
		return '';
		
	for(i=0;i<lngLen;i++)
	{
		char=psInput.substring(i,i+1);
		if(psCharacters.indexOf(char)!=-1)
		{
			strOut +=char;
			char='';
		}
	}
	return strOut;
}


//==============================================


//==AZIONI SULLE DATE===========================
function isBisestile(psValue)
{
	if(isNaN(psValue))
		return false;
	
	var psOut = psValue / 4;
	if (parseInt(psOut) == psOut)
	{
		psOut = psValue / 400;

		if(parseInt(psOut) == psOut)
		{
			return true;
		}
		else
		{
			psOut = psValue / 100;
		}
		
		if(parseInt(psOut) == psOut)
		{
			return false;
		}
		else
		{
			return true;
		}
	}
	else
	{
		return false;
	}
}


function formatToDate(campo)
{
	
	var ultimoCar = campo.value;
	ultimoCar= ultimoCar.substring(ultimoCar.length-1);
	
	if(isNaN(ultimoCar)&& campo.value.length!=3 && campo.value.length!=6)
		campo.value=campo.value.substring(0,campo.value.length-1);
		
	if (campo.value.length==2 || campo.value.length==5 )
		campo.value += '/';
	
}


function setDateFormat(psValue,sDateFormat)
{
		var nDay	= psValue.substring(0,2);
		var nMonth	= psValue.substring(3,5);
		var nYear	= psValue.substring(6,10);
		switch (sDateFormat)
		{
			case 'dmy':
				return nDay +'/'+ nMonth + '/' + nYear;
				break;
			case 'mdy':
				return nMonth +'/'+ nDay + '/' + nYear;
				break;	
			case 'ymd':
				return nYear +'/'+ nMonth + '/' + nDay;
				break;				 			
		}
		
}
function isDate(psValue)
{
	//la stringa dev'essere di dieci caratteri
	
	if (psValue.length==10)
	{
		var nDay	= psValue.substring(0,2);
		var nMonth	= psValue.substring(3,5);
		var nYear	= psValue.substring(6,10);
		if(isNaN(nDay)||isNaN(nMonth)|| isNaN(nYear))
			return false;
			
		nDay = eval(nDay);
		nMonth= eval(nMonth);
		nYear = eval(nYear);
		
		if (nDay <1 || nDay>31)
			return false;
			
		if (eval(nMonth)<1 || eval(nMonth)>12)
			return false;
		
		switch(nMonth)
		{
			case 4:
			case 6:
			case 9:
			case 11:
				if(eval(nDay)>30)
					return false;
				break;
			case 2:
				if(eval(nDay)>28)
					if(isBisestile(nYear)==true && nDay == 29)
					{
						return true;
					}
					else
					{
						return false;
					}
				break;							
		}
		return true;
	}
	else
	{
		return false;
	}
}


function verifyDate(obj)
{
	if(isDate(obj.value)==false && obj.value!='')
	{
		alert('ATTENZIONE!!!\nLa data inserita non è corretta.');
		obj.focus();
		obj.select();
	}
}

function spostaOptions(selectIdOrigine, selectIdDestinazione)
{
	var i = 0;
	var objOrigine = document.getElementById(selectIdOrigine);
	var objDestin  = document.getElementById(selectIdDestinazione);
	while (i < objOrigine.options.length)
	{
		if (objOrigine.options[i].selected)
		{
			var obj = new Option(objOrigine.options[i].text, objOrigine.options[i].value, false, false);
			var iLen =objDestin.options.length;
			objDestin.options[iLen]=obj;
			objOrigine.remove(objOrigine.selectedIndex);
		}
		else
		{
			i = i + 1;
		}
	}	
}

function nextPage(nomeForm)
{		
	var curPage = document.getElementById('hdCurPage');
	var numPage = curPage.value;
	curPage.value= parseInt(numPage) + 1;
	
	document.getElementById(nomeForm).submit();
}

function prevPage(nomeForm)
{		
	var curPage = document.getElementById('hdCurPage');
	var numPage = curPage.value;
	if (numPage > 1){
		curPage.value= parseInt(numPage) - 1;
	}else{
		curPage.value= 1;
	}
	
	document.getElementById(nomeForm).submit();
}

function saltaPagina(numPage,nomeForm)
{
	var curPage = document.getElementById('hdCurPage');
	curPage.value=numPage;
	document.getElementById(nomeForm).submit();
}


function riportaNumeroPagine()
{
	var fontPag = document.getElementById('fontPagine');
	//esclude la visualizzazione del "1 di 3" pagine
	//fontPag.innerHTML= '&nbsp;' + document.getElementById('hdCurPage').value + ' di ' + document.getElementById('hdPageCount').value +'&nbsp;&nbsp;'
	
	if (document.getElementById('hdCurPage').value == document.getElementById('hdPageCount').value)
	{
		document.getElementById('btnForw').disabled = true;
	}
}

/*
	setMaxLength
		Autore: Ennio Roccamo
		Descrizione: Questa funzione data una text area impedisce all'utente
		di digitare un numero di caratteri superiore a quello massimo previsto
		la funzione dev'essere chiamata all'evento onkeyup della textarea
		
		Parametri:
			objTextArea	=> textarea passata come riferimento
			plMaxLength => numero di caratteri massimo per l'oggetto
			il numero di caratteri da passare deve corrispondere alla lunghezza
			effettiva prevista
			
			
		Esempio per chiamata
		<textarea name="xxx" onkeyup="setMaxLength(this,255)">aaa</textarea>
		
*/
function setMaxLength(objTextArea,plMaxLength)
{
	var strText = objTextArea.value
	if(strText.length > plMaxLength-1)
	{
		strText = strText.substr(0,plMaxLength-1);
		objTextArea.value = strText;
	}	
}

/*
	queryString
	Autore: Ennio Roccamo
	Descrizione: Restituisce una stringa leggendo dall'url i valori delle ricorrenze
	rispetto a querystring già presente:
		- supporta le ricorrenze multiple nell'url ritornando
		in tal caso una stringa composta dall'insieme dei valori trovati separati da virgola.
		- non fa distinzione tra minuscole e maiuscole
*/
function queryString(psKey)
{
	var strReturn = '';
	var strUrl = window.document.location.href;
	var posArg= strUrl.indexOf('?');
	if (posArg==-1) return '';
	
	var strArg = strUrl.substring(posArg+1);
	if (strArg.length==0)
		return '';
	if (psKey=='' || psKey==null)
		return strArg;
	var arrArg = strArg.split('&')
	var arrKeyValue;
	var psSep = '';
	for(i=0; i<arrArg.length; i++)
	{
		
		var strVal = arrArg[i] + '';
		arrKeyValue = strVal.split('=');

		strVal = '' + arrKeyValue[0];
		if (strVal.toLowerCase() == psKey.toLowerCase())
		{
			strReturn += psSep + arrKeyValue[1]
			psSep = ',';	
		}
		
	}
	
	return strReturn;
}


function sendUrlArgs()
{
	var strArgs = queryString();
	if (strArgs!='')
	{
		strArgs = '?' + strArgs;
	}
	return strArgs;
}

function addUrlArg(psArgName)
{
	var strQuery = sendUrlArgs();
	var psConcat = '&';
	if(strQuery=='')
		psConcat='?';
	
	return strQuery + psConcat + psArgName
}

function controllaURL(obj)
{
	if (obj.value.substring(0,7) != 'http://')
	{
		obj.value = 'http://';
	}
}

function getNomeEnte(TipoLivello)
{
	var nomeEnte;
	
	if (TipoLivello == 'c')
	{
		nomeEnte = document.getElementById('ComSel').value;
	
		if (document.getElementById('nome_ente') != null)
		{
			document.getElementById('nome_ente').innerHTML = nomeEnte;
		}
	}
	if (TipoLivello == 't')
	{
		nomeEnte = document.getElementById('TerSel').value;

		if (document.getElementById('nome_ente_t') != null)
		{
			document.getElementById('nome_ente_t').innerHTML = nomeEnte;
		}
	}
	if (TipoLivello == 'r')
	{
		nomeEnte = document.getElementById('RegSel').value;
	}
}

function gotoTerritorio()
{
	//alert(document.getElementById('TerSel').value);
	switch (queryString('flag_tipo'))
	{
		case '':
		{
			if (document.getElementById('intest_immagine_territorio') != null)
			{
				document.getElementById('intest_immagine_territorio').innerHTML = '';
			}
			break;
		}
		case 'r':
		{
			if (document.getElementById('_ctl0_immagine_territorio') != null)
			{
				document.getElementById('_ctl0_immagine_territorio').innerHTML = '';
			}
			break;
		}
		case 't':
		{
			if (document.getElementById('nome_ente_r') != null)
			{
				document.getElementById('nome_ente_r').href = 'default.aspx?flag_tipo=r&idEnte=' + document.getElementById('selReg').value;
			}
			break;
		}
		case 'c':
		{
			if (document.getElementById('nome_ente_t') != null)
			{
				document.getElementById('nome_ente_r').href = 'default.aspx?flag_tipo=r&idEnte=' + document.getElementById('selReg').value;
				if (document.getElementById('selTer').value.toLowerCase() != 'seleziona territorio...')
				{
					if (document.getElementById('nome_ente_t').innerHTML == '')
						document.getElementById('nome_ente_t').innerHTML = document.getElementById('TerSel').value;
					document.getElementById('nome_ente_t').href = 'default.aspx?flag_tipo=t&idEnte=' + document.getElementById('selTer').value;
				}
			}
			break;
		}
	}
}

function setPreferiti()
{
	var indirizzo = document.location.href;
	var Array1 = indirizzo.split('//');
	var Array2 = Array1[1].split('/');
	var protocollo = Array1[0];
	var nomesito = Array2[0];
	
	if (indirizzo.indexOf('prototipo4') != -1)
	{
		window.external.AddFavorite(protocollo + '//' + nomesito + '/prototipo4','INVESTinSUD');
	}
	else
	{
		window.external.AddFavorite(protocollo + '//' + nomesito,'INVESTinSUD');
	}
}

function setPreferitiDett(nome)
{
		window.external.AddFavorite(document.location.href,nome);
}

function getSitoConsigliato(ancor)
{
	var indirizzoreale = getIndirizzoReale()
	ancor.href = 'mailto:?subject=Sito consigliato&body=' + indirizzoreale;
	//ancor.click();
}

function getIndirizzoReale()
{
	var indirizzo = document.location.href;
	var Array1 = indirizzo.split('//');
	var Array2 = Array1[1].split('/');
	var protocollo = Array1[0];
	var nomesito = Array2[0];
	
	if (indirizzo.indexOf('prototipo4') != -1)
	{
		return protocollo + '//' + nomesito + '/prototipo4';
	}
	else
	{
		return protocollo + '//' + nomesito;
	}
}

function getCommento()
{
	window.open('Commento.aspx?HP=0','Commento','width=400,height=200,screenX=400,screenY=200,left=100,top=100,location=no,scrollbars=no');
}

function registraPortale()
{
	window.open('Autocandidatura.aspx?HP=0','Autocanditatura','width=700,height=600,screenX=400,screenY=200,left=100,top=40,location=no,scrollbars=yes');
}

