/*'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'FunctionJava.asp	-	18/01/2008	- Diego Gonzalez            '
'File che contiene tutte le funzioni comuni per il sito del SMA '
'Questo file viene incluso nelle pagine che ne hanno bisogno    '
'Nessuna Variabile in INPUT ne OUTPUT                           '
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''*/


/*Funzione che ritorna la posizione dello scroll
Utilizzo: getScrollXY()
Input: - 
Output: un Array[PosX, PosY]
*/
function getScrollXY() {
  var scrOfX = 0, scrOfY = 0;
  if( typeof( window.pageYOffset ) == 'number' ) {
	//Netscape compliant
	scrOfY = window.pageYOffset;
	scrOfX = window.pageXOffset;
  } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
	//DOM compliant
	scrOfY = document.body.scrollTop;
	scrOfX = document.body.scrollLeft;
  } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
	//IE6 standards compliant mode
	scrOfY = document.documentElement.scrollTop;
	scrOfX = document.documentElement.scrollLeft;
  }
  return [ scrOfX, scrOfY ];
}

/*Funzione che lancia una funzione dopo che è stata caricata tutta la pagina
Utilizzo: getScrollXY()
Input: 
	func = nome della funzione da lanciare
	param = parametri della funzione da lanciare
Output: un addLoadEvent(funcname, 'param1,param2....')
*/
function addLoadEvent(func, param) {
	  var oldonload = window.onload;
	 
	  if (typeof window.onload != 'function') 
	  {
	   window.onload = function (){func(param)};
	  }
	  else
	  {
	   window.onload = function() {
			   if (oldonload)
			   {
				oldonload();
			   }
			   func(param);
			  }
	  }
}

/*Funzione che permette solo l'inserimento dei numeri in una text
Utilizzo: onKeyPress="return AceptNum(event);"
*/
var nav4 = window.Event ? true : false;
function AceptNum(evt){
	var key = nav4 ? evt.which : evt.keyCode; 
	return (key <= 13 || (key >= 48 && key <= 57)); 
} 
/*Funzione che permette solo l'inserimento solo delle lettere in una text
Utilizzo: onKeyPress="return soloLettere(event);"
*/
function soloLettere(evt){
	var key = nav4 ? evt.which : evt.keyCode; 
	return (key != 32 && (key <= 13 || (key >= 65 && key <= 90) || (key >= 97 && key <= 122))); 
}
function NoEntry(evt){
	var key = nav4 ? evt.which : evt.keyCode; 
	return (key <= 0); 
}


/*Funzione che restituisce il Nome del Browser e la versione
Utilizzo: BrowserDetect()
*/
function BrowserDetect()
{
	var StringBrowser = navigator.userAgent.toLowerCase() + '---';
	var VersioneBrowser
	var MyBrowser
	var PosizioneTitolo
	var PosizioneMeno
	
	if (StringBrowser.indexOf('firefox') != -1)
	{
		PosizioneTitolo = StringBrowser.indexOf('firefox') + 8;
		PosizioneMeno = StringBrowser.indexOf('---');
		VersioneBrowser = StringBrowser.substring(PosizioneTitolo ,PosizioneMeno);
		MyBrowser = "firefox " + VersioneBrowser
	}else if(StringBrowser.indexOf('msie') != -1)
	{
		var ArrBrow 
		ArrBrow = StringBrowser.split(';');
		for (mb = 0; mb < ArrBrow.length - 1; mb++)
		{
			if (ArrBrow[mb].indexOf('msie') != -1)
			{
				MyBrowser = ArrBrow[mb];
				break;
			}
		}
	}else if (StringBrowser.indexOf('opera') != -1)
	{
		MyBrowser = StringBrowser.substring(0,StringBrowser.indexOf(' ('))
		MyBrowser = MyBrowser.replace('/', ' ');
	}else
	{
		MyBrowser = "Compatible"
	}
	MyBrowser = MyBrowser.toUpperCase();
	return MyBrowser;
}

/* FUNZIONE che permete solo l'inseriemnto di una data in un text box 
// UTILIZZO: onKeyUp = "this.value=formateadata(this.value);"
*/

function IsNumeric(valor) 
{ 
var log=valor.length; var sw="S"; 
for (x=0; x<log; x++) 
{ v1=valor.substr(x,1); 
v2 = parseInt(v1); 
//Compruebo si es un valor numérico 
if (isNaN(v2)) { sw= "N";} 
} 
if (sw=="S") {return true;} else {return false; } 
} 

var primerslap=false; 
var segundoslap=false; 
function formateadata(fecha) 
{ 
			var longvar = fecha.length; 
			var dia; 
			var mes; 
			var ano; 
			
			if ((longvar>=2) && (primerslap==false)) { dia=fecha.substr(0,2); 
			if ((IsNumeric(dia)==true) && (dia<=31) && (dia!="00")) { fecha=fecha.substr(0,2)+"/"+fecha.substr(3,7); primerslap=true; } 
			else { fecha=""; primerslap=false;} 
			} 
			else 
			{ dia=fecha.substr(0,1); 
			if (IsNumeric(dia)==false) 
			{fecha="";} 
			if ((longvar<=2) && (primerslap=true)) {fecha=fecha.substr(0,1); primerslap=false; } 
			} 
			if ((longvar>=5) && (segundoslap==false)) 
			{ mes=fecha.substr(3,2); 
			if ((IsNumeric(mes)==true) &&(mes<=12) && (mes!="00")) { fecha=fecha.substr(0,5)+"/"+fecha.substr(6,4); segundoslap=true; } 
			else { fecha=fecha.substr(0,3);; segundoslap=false;} 
			} 
			else { if ((longvar<=5) && (segundoslap=true)) { fecha=fecha.substr(0,4); segundoslap=false; } } 
			if (longvar>=7) 
			{ ano=fecha.substr(6,4); 
			if (IsNumeric(ano)==false) { fecha=fecha.substr(0,6); } 
			else { if (longvar==10){ if ((ano==0) || (ano<1900) || (ano>2100)) { fecha=fecha.substr(0,6); } } } 
			} 
			
			if (longvar>=10) 
			{ 
			fecha=fecha.substr(0,10); 
			dia=fecha.substr(0,2); 
			mes=fecha.substr(3,2); 
			ano=fecha.substr(6,4); 
			// Año no viciesto y es febrero y el dia es mayor a 28 
			if ( (ano%4 != 0) && (mes ==02) && (dia > 28) ) { fecha=fecha.substr(0,2)+"/"; } 
			} 
			return (fecha); 
} 

/* Funzione che gestisce il RollOver e Out */
function ChangeImage(arg1, arg2) {
	var myImmagine = arg1.src;
	var myImmagineID = arg1.id;
	var myImmagineLenght = myImmagine.length;
	
	if (arg2 == 'over') { /*onmouseover*/
		var  myImmaginenamefile = myImmagine.substring(0, myImmagineLenght-4) + "_over" ;
		var  myImmaginenameExt =  myImmagine.substring(myImmagineLenght-4, myImmagineLenght);
		var myNewImmagine = myImmaginenamefile + myImmaginenameExt
		
	} else { /*onmouseout*/
		var myNewImmagine = myImmagine.replace(/_over/, "");
	}
		
	document.getElementById(myImmagineID).src = myNewImmagine;
}

var myhttp = getXMLHTTPRequest()
var myRNDM = parseInt(Math.random()*999999);
var DivContenitore;
var boosostituzione;
var dasostituire;

function getXMLHTTPRequest()
{
	var req = false;
	try 
	{
		req = new XMLHttpRequest();  // ALtri Browser come Firefox
	}
	catch(err1)
	{
		try
			{
				req = new ActiveXObject("Msxml2.XMLHTTP"); // vecche I.E.
			}	
		catch(err2)
		{
			try
			{
				req = new ActiveXObject("Microsoft.XMLHTTP"); // altre I.E.
			}
			catch(err3)
			{
				req = false;
			}
		}	
	}
	return req;
}
	
function useHttpResponse () 
{ 
//sono interessato al valore 4 di readyState ovvero caricato
	if (myhttp.readyState == 4) 
	{
		if (myhttp.status == 200) {
			//è OK per cui lancio qualcosa
		
			//recupero le informazioni sottoforma di stringa
			var mytext= myhttp.responseText;
			//Tratto la Stringa
			
			if (boosostituzione == true && dasostituire != '')
			{
				//Prendo tutti i parametri e converto in un array
				arrparametri = '';
				arrparametri = dasostituire.split(';');
				//percorrotutto l'array
				for (posarrasost = 0; posarrasost  < arrparametri.length; posarrasost ++)
				{
					/*Ricavo la posizione dei due punti*/
					pospunti = arrparametri[posarrasost].indexOf(':');
					/*Ricavo il valore originale*/
					valoreoriginale = arrparametri[posarrasost].substring(0, pospunti)
					/*Ricavo il nuovo valore */
					valorenuovo = arrparametri[posarrasost].substring(pospunti+1);
					intIndexOfMatch = -1
					intIndexOfMatch = mytext.indexOf(valoreoriginale);
					while (intIndexOfMatch > 0){
						// Relace out the current instance.
						mytext = mytext.replace(valoreoriginale, valorenuovo)
						// Get the index of any next matching substring.
						intIndexOfMatch = mytext.indexOf(valoreoriginale);
					}
				}
			}
			//document.write(mytext);
			document.getElementById(DivContenitore).innerHTML = mytext;
		}else{
		document.getElementById(DivContenitore).innerHTML = "Si è verificato un errore: " + myhttp.statusText;
		}
	}else{ 
			// cioè stato è diverso da 4 visualizzo loader
			document.getElementById(DivContenitore).innerHTML = '<div class="carica" align=center>In Caricamento<br/><img src="immagini/ajax-loader.gif" /></div>'
		}
}
	
/*
La funzione getByAjax, se ne ocupa di fare una riquiesta http tramite java
i parametri in input sono
MyUrl	-	Url di richiesta
DivContenitoreAjax	-	Nome del div dove sara inserito il contenuto
datidasostituire	-	nel caso che questa variabile si diversa da vuoto ('') saranno sostituiti
	i valori alla sinistra dei due punti (:) con il valore alla destra dei due punti (:)
	La formatazione di questo parametro e: [VALORE ORIGINALE]:[NUOVO VALORE][;][VALORE ORIGINALE]:[NUOVO VALORE]
	NB. L'ULTIMO DI QUESTI VALORI "NON DEVE PORTARE" IL PUNTO E VIRGOGA (;)
*/

function getByAjax(MyUrl, DivContenitoreAjax, datidasostituire)
{
	modUrl = MyUrl  + '&A=' + myRNDM
	if (modUrl.indexOf('?') == -1)
	{
		modUrl = modUrl.replace('&','?');
	}
	myhttp.open ("GET", modUrl , true);
	DivContenitore = DivContenitoreAjax;
	myhttp.onreadystatechange = useHttpResponse;
	if (datidasostituire != null && datidasostituire != '')
	{
		boosostituzione = true;
		dasostituire = datidasostituire;
	} 
	else
	{
		boosostituzione = false;
		dasostituire = '';
	}
	myhttp.send(null);
}

/* Visualizza il box Cornice  DS. */
function openMyPop (mylink, altriparametri){
	document.getElementById("iframeContent").src = "iframe/" + mylink + "?" + altriparametri;
	bloccaBody();
	
}

function bloccaBody() {
	document.getElementById("copriBody").style.width = 	window.screen.width + 'px'
	document.getElementById("copriBody").style.height = window.screen.height + 'px'
	document.getElementById("copriBody").style.bgcolor = '#FAFAFA'
}

/* La funzione deve mettere in visibile il file conrnice che include i vari iframe DS.*/
function visParent() {

	parent.document.getElementById("mycornice").style.display = "block";
	parent.document.getElementById("mycornice").style.visibility = "visible";
}

/* Effettua rollover delle immagini DS. */

function ChangeImage(arg1, arg2) {
	var myImmagine = arg1.src;
	var myImmagineID = arg1.id;
	var myImmagineLenght = myImmagine.length;
	
	if (arg2 == 'over') { /*onmouseover*/
		var  myImmaginenamefile = myImmagine.substring(0, myImmagineLenght-4) + "_over" ;
		var  myImmaginenameExt =  myImmagine.substring(myImmagineLenght-4, myImmagineLenght);
		var myNewImmagine = myImmaginenamefile + myImmaginenameExt
		
	} else { /*onmouseout*/
		var myNewImmagine = myImmagine.replace(/_over/, "");
	}	
	document.getElementById(myImmagineID).src = myNewImmagine;
}

function mprint(mdiv)
{
	docPrint=window.open('','Print','width=100px, height=100px, top=0, left=0, resizable=no');
	docPrint.document.open();
	docPrint.document.write('<html><head><title>NotiFy.Now Printer</title>');
	docPrint.document.write('</head><body onLoad="self.print();window.close()"><left>');
	docPrint.document.write('');
	docPrint.document.write(document.getElementById(mdiv).innerHTML);  
	docPrint.document.write('</body></html>');
	docPrint.document.close();  
	docPrint.focus();
}





