function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && document.getElementById) x=document.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}


// Apertura pop-up
function popUp(url,name,w,h) {
	var x_res=screen.width;
	var y_res=screen.height;

	var x_pos;
	var y_pos;

	if (x_res>=w) {
		x_pos=(x_res-w)/2;
		y_pos=((y_res-h)/2)/2;
	} else {
		x_pos=0;
		y_pos=0;
	}

	var win2;
    wi2n=window.open(url,name,'left='+x_pos+',top='+y_pos+',scrollbars=yes,resizable=yes,width='+w+',height='+h+',status=no,location=no,toolbar=no');
	//win.moveTo(((screen.width)-w)/2,((screen.height)-h)/2);
	//win2.moveTo(0,0);
	//win2.focus();
	return win2;
}

// Apertura pop-up vecchia area riservata
// N.B. Workaround: forza il login sul vecchio portale per evitare l'attesa di un minuto ????
function oldRiservata(url,name,w,h)
{
	var ssoUrl='https://www.europmi.it/pls/europmi_sso/PORTAL30.wwsec_app_priv.login?p_requested_url='+encodeURI(url)+'&p_cancel_url='+encodeURI('http://www.europmi.it');
	popUp(ssoUrl,name,w,h);
	return false;
}

// Inizio hint
var hint_clockValue=0;
var hint_ticker;
var hint_active;

function hint_doTick(elemID){
	if (hint_clockValue>=1){
		hint_stopTick();
		hint_close(elemID);
	} else {
		hint_clockValue++;
		hint_ticker=setTimeout("hint_doTick('"+elemID+"');", 400);
	}
}
function hint_stopTick(){
	hint_clockValue=0;
	clearTimeout(hint_ticker);
}

function hint_close(elemID){
	
	child=document.getElementById(elemID);
	//child.style.visibility='hidden';
	child.style.display='none';
}

function hint_mousedOver(elemID){
	hint_stopTick();
	if (hint_active)
	  hint_close(hint_active);
	child=document.getElementById(elemID);
	//child.style.visibility='visible';
	child.style.display='block';
	hint_active=elemID;
}

function hint_mousedOut(elemID){
	hint_doTick(elemID);
}


function hint_mousedOver_fiera(elemID,elm2ID){
	hint_stopTick();
	if (hint_active)
	  hint_close(hint_active);
	child=document.getElementById(elemID);
	//child.style.visibility='visible';
	child.style.display='block';
	hint_active=elemID;
	child=document.getElementById(elm2ID);
	child.style.display='none';
}

function hint_mousedOut_fiera(elemID,elm2ID){
	hint_doTick(elemID);
	child=document.getElementById(elemID);
	child.style.display='none';
	child=document.getElementById(elm2ID);
	child.style.display='block';
}
// Fine hint

/* FORM FINANZIAMENTI */

function copyValue(fromName, toName) { //v4.0
  var oFrom;
	var oTo;
	
	oFrom=MM_findObj(fromName);
	oTo=MM_findObj(toName);

	if ((oFrom==null) || (oTo==null)) return false;
	
	oTo.value=oFrom.value;	
	return false;
}

function copySedeLegale() { //v4.0
  copyValue("soProvincia","slProvincia");
  copyValue("soComune","slComune");
  copyValue("soIndirizzo","slIndirizzo");
  copyValue("soCap","slCap");
  copyValue("soTelefono","slTelefono");
}

function cercaAgenzia(url,target,width,height) { //v4.0
  var idAgenzia=MM_findObj("idAgenzia").value;
	
	return dettaglio(url+idAgenzia,target,width,height);
}


/* VALIDAZIONE FORM */
function getFieldName(field) {
	var name;
	
	name=field.getAttribute("title");
	if ((name=="") || (name==null))
	  name=field.getAttribute("id");
	if ((name=="") || (name==null))
	  name=field.getAttribute("name");
	if ((name=="") || (name==null))
	  name="";

  return name;
}


function validateField(field) { //v4.0
  var i, btn, errors='';
  var subtype;
  var required;
  var type;
  var data1;
  var data2;
  var data3;
  var data4;
  var equalsToName;
  var equalsTo;
  var name;
  
  name=getFieldName(field);  
  required=parseInt(field.getAttribute('required'));
	if (isNaN(required)) required=false;	//Se required non specificato allora = falso

//Se il campo non e' obbligatorio ed e' vuoto esce	
  if ((!required) && (field.value=="")) return true;
  
  equalsToName=field.getAttribute('equalsTo');
  if (equalsToName!=null) {
    equalsTo=MM_findObj(equalsToName);
	 if (equalsTo.value!=field.value) {
	   errors += "- " + name + " diverso da " + getFieldName(equalsTo) + ".\n";
	 }
  }
  if ((required) && (field.value=="")) {
   errors += "- " + name + " obbligatorio.\n";
  }
//Controlla chekbox obbligatoria
	if ((required) && (field.type.toUpperCase()=="CHECKBOX")) {
		if (!field.checked) {
			errors += "- " + name + " obbligatorio.\n";
		}
	}

  type=parseInt(field.getAttribute('subtype'));
  data1=parseInt(field.getAttribute('data1'));
  data2=parseInt(field.getAttribute('data2'));
  data3=parseInt(field.getAttribute('data3'));
  data4=parseInt(field.getAttribute('data4'));

  switch (type) {
  //Testo
    case 1: {
    	if ((data1!=0) && (field.value.length>data1)) errors+="- " + name + " troppo lungo, max " + data1 + " caratteri.\n";
    	break;}
  //Area di testo
    case 2: {
    	if ((data1!=0) && (field.value.length>data1)) errors+="- " + name + " troppo lungo, max " + data1 + " caratteri.\n";

break;}
  //eMail
    case 3: {
			var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9])+$/;
			if (!filter.test(field.value)) errors+="- " + name + " non e\' indirizzo e-mail.\n";
    	break;}
  //Numero Intero
    case 4: {
			//N.B. parseInt("1.2abc")   Returns 1.2
      var valueAux=parseInt(field.value);
      if (isNaN(valueAux) || (valueAux+""!=field.value)) errors+="- " + name + " non e\' un numero.\n";
    	if ((isNaN(data1)) || (isNaN(data2))) break;
    	if ((field.value<data1) || (field.value>data2)) errors+="- " + name + " deve essere compreso tra " + data1 + " e " + data2 + ".\n";
    	break;}
  //Numero Reale
    case 5: {
			data1=parseFloat(field.getAttribute('data1'));
			data2=parseFloat(field.getAttribute('data2'));
			var filter  = /(^-?\d\d*\,\d*$)|(^-?\d\d*$)|(^-?\,\d\d*$)/;
			if (!filter.test(field.value)) 
			  errors+="- " + name + " non e\' un numero.\n";
			else {
			  if ((isNaN(data1)) || (isNaN(data2))) break;
			  if ((field.value<data1) || (field.value>data2)) errors+="- " + name + " deve essere compreso tra " + data1 + " e " + data2 + ".\n";
			}
    	break;}
  //Data/Ora
    case 6: {
    	if (isNaN(Date.parse(field.value))) errors+="- " + name + " non e\' una data.\n"; 
    	break;}
  //ComboBox
    case 7: {
    	break;}
  //Si/no
    case 8: {
    	break;}
  }

  if (errors) alert(errors);
  document.MM_returnValue = (errors == '');
  return document.MM_returnValue;
}

function validate(form)
{
  var i;
  var elem;
	var operazione;
	var isValid;

//Esegue la validazione solo durante Avanti,Indietro e Salva
	elem=form.elements["operazione"];
	if (typeof(elem)!="undefined") {
		operazione=parseInt(elem.value);
		if (!isNaN(operazione)) {
			if ((operazione!=10) && (operazione!=20) && (operazione!=30)) 
				return true;
		}
	}
//Se uguale a Avanti,Indietro o Salva valida campi			
  for (i=0;i<form.elements.length;++i) {
  	elem=form.elements[i];
//Ignora campi hidden
    if (elem.type=="hidden") continue;
//Valida campo
    isValid=validateField(elem);
//Se il campo non e' valido imposta il focus ed esce
		if (!isValid) {
			if (typeof(elem.focus)=="object") {
			  elem.focus();
			}
			return false;
		}
  }

  return true;
}

//Personalizzo per la Richiesta di Finaziamento
function valida_Richiesta(form)
{
  var i;
  var elem;
	var operazione;
	var isValid;


//Persinalizzazione
var oggi=new Date();
var anno=oggi.getFullYear().toString();
var _Verifica=new Array("annoUltimoBilancio","fattUltimoBilancio","utileNettoUltimo","annoPenultimoBilancio","fattPenultimoBilancio","utileNettoPenultimo");

	if (form.annoCostituzione.value.toString()<anno.toString()) {
		 for (i=0;i<_Verifica.length;++i) {
			elem=document.getElementById(_Verifica[i]);		
			elem.setAttribute('required','1');
		  }
	} else {
		 for (i=0;i<_Verifica.length;++i) {
			elem=document.getElementById(_Verifica[i]);		
			elem.setAttribute('required','0');
		  }
	}
		
  for (i=0;i<form.elements.length;++i) {
  	elem=form.elements[i];
//Ignora campi hidden
    if (elem.type=="hidden") continue;
//Valida campo
    isValid=validateField(elem);
//Se il campo non e' valido imposta il focus ed esce
		if (!isValid) {
			if (typeof(elem.focus)=="object") {
			  elem.focus();
			}
			return false;
		}
  }

  return true;
}

function ECsubmit(e)
{
 var operation = ECsubmit.arguments[0];
 var target = ECsubmit.arguments[1];
 var ie4 = document.all;
 var ns4 = document.layers;
 var ns6 = document.getElementById && !document.all; 
 var f;
 var action;
 var idx;
 var ris;
 
 if ((ns4) || (ns6)) {
 f=window.document.forms[window.document.forms.length-1]; 
 } else {
 f=window.event.srcElement.form;
 }
 
//Rimuove gli eventuali parametri get
/*
 action=f.action;
 if (action.length==0) action=f.document.location.pathname;
 idx=action.indexOf('?');
 if (idx!=-1) {
	f.action=action.substr(1,idx);
 }
*/ 
 if (typeof(target)=="string") f.action=f.action+"#"+target;
 f.elements["operazione"].value=operation;
 
//Se necessario valida il form 
 if (typeof(f.onsubmit) == "function") {
   ris=f.onsubmit();
 } else {
   ris=true;
 }
 
 if (ris)
	 f.submit();
 
 return false;
}
/* VALIDAZIONE FORM FINE */

function validateUBI(frm) {
  var elem;
	var elemAgenzia;
	
	elem=frm.elements['idClienteIstituto'];
	elemAgenzia=frm.elements['nomeAgenzia'];
	
	if (elem.selectedIndex==1) {
		window.location.href="noncliente.jsp";
		return false;
	}
	
	if (elem.value == elem.options[elem.length-1].value) {
	  elemAgenzia.setAttribute('required','0');
	} else {
	  elemAgenzia.setAttribute('required','1');
	}
	
  return validate(frm);
}

function validateAgevolazione598(frm) {
  var elems;
	var required;
	var isValid;
	var i;
	
	elems=frm.elements['acquistaAbbonamento'];
	
	isValid=false;
	for (i=0; i < elems.length; i++)
	{
		required=elems[i].getAttribute('required');
		if ((required == "1") && (elems[i].checked)) {
			isValid=true;
			break;
		} else if (elems[i].checked) {
			isValid=true;
			break;
		}
	}
	
	if (!isValid) {
		window.alert('Selezionare il tipo di associazione o di abbonamento');
		return false;
	}
	
  return validate(frm);
}

function richiediFinanziamento(frm, acquistaAbbonamento) {
	var elem;
	
	elem=frm.elements['acquistaAbbonamento'];
	if (acquistaAbbonamento) {
		elem.value='3';
	} else {
		elem.value='';
	}
	
	return true;
}

function changeIstitutoUBI(frm) {
  var elem;
	var elemAgenzia;
	var idAgenzia;
	var divSeleziona;
	
	elem=frm.elements['idClienteIstituto'];
	elemAgenzia=frm.elements['nomeAgenzia'];
	idAgenzia=frm.elements['idAgenzia'];
	divSeleziona=document.getElementById('selezionaAgenzia');
	
	if ((elem.selectedIndex==1) || (elem.selectedIndex==3)) {
	  elemAgenzia.setAttribute('required','0');
		idAgenzia.value='';
		elemAgenzia.value='';
		divSeleziona.style.visibility="hidden";
	} else {
	  elemAgenzia.setAttribute('required','1');
		divSeleziona.style.visibility="visible";
	}
	
  return true;
}

/* FORM FINANZIAMENTI FINE */

// Apertuta pop-up dettaglio 
function dettaglio(url,name,w,h)
{
	popUp(url,name,w,h);
	return false;
}

function Pdf(blocco) {

    if (document.getElementById(blocco).style.display == "none") {
        document.getElementById(blocco).style.display = "block";
    }
    else {
        document.getElementById(blocco).style.display = "none";
    }
}
