function CtrlICIAliVal(frmName,p) 
{
	var obj,ctrl=true;
//	var name;
	//alert('pagina:'+p);
	if (p!='view')
	{
		obj=eval('document.'+frmName);
		
	//	name=eval('document.'+frmName+'.name');
	//	alert(name);
		
		for(j=0;j<obj.elements.length;j++){
		//  alert(obj.elements[j].value);
		  if(obj.elements[j].value=='0,00') 
		  ctrl=false;
		  
		}
	}
	if(ctrl==false) alert('ATTENZIONE!\n'+
	                      'I campi valore e aliquota devono essere diversi da zero.\n'+
                          'Correggi quelli marcati in rosso prima di proseguire.');
	return ctrl;
 }

function CtrlICIRate(frmName,nIciTotale) 
{
    var campi=new Array('id_tprec','id_tprim','id_tsec','id_tult','stop');
    var num=false;
    var obj;
    var str;

    //alert('frmName '+frmName.name);
    obj = getObj(frmName,campi[0]);
    //alert('debug '+obj.value);
    str = obj.value;
    num = isNumber(str.charAt(0));
    //alert('debug ' + num);
    if(num==true)
    {   if(nIciTotale<0) alert('Valore totale di imposta non corretto.');
    } 
    else alert('Valore inserito non corretto.\r\n Inserire solo numeri positivi.');

    return num;
    //alert('num '+num);
    //alert('nIciTotale '+nIciTotale);
}

function CalcICIRate(frmName,nIciTotale) {

var campi=new Array('id_tprec','tprimname','tsecname','tultname','stop');
var num=false,prim=0,sec=0,prec=0;
var objp,objs,obju;

obj = getObj(frmName,campi[0]);
num=isNumber(obj.value);
//alert('num '+obj.value);
if(num==true){
	if(nIciTotale>0){
	    prec=obj.value;
		prec=prec.replace('.','');
		prec=prec.replace(',','.');
		if (prec==0){
			prim=nIciTotale/2;
			sec=nIciTotale/2;
		} else {
			 
			 prim=prec/2;
			 if(prim>nIciTotale) prim=nIciTotale;
			 sec=nIciTotale-prim;
		}
	    objp= getObj(frmName,campi[1]);
		objp.value=prim;
		alert(objp.name+' '+objp.value);
		objs= getObj(frmName,campi[2]);
		objs.value=sec;
		alert(objs.name+' '+objs.value);
		obju= getObj(frmName,campi[3]);
		obju.value=nIciTotale;
		alert(obju.name+' '+obju.value);
	} else alert('Valore totale di imposta non corretto.');
} else alert('Valore inserito non corretto.\r\n Inserire solo numeri positivi.');

}


/* controlla il campo di salvataggio nome file abbia un valore valido */
function ctrlICIProfileLoad(frmName)
{
	var campi=new Array('id_save','id_load','id_idprofilo','stop');
	var strAlert=new Array('Il nome del file corrisponde ad un profilo già esistente.\r\nSovrascriverlo?');
	var msgErr=new Array(' può contenere solo caratteri alfanumerici (lettere e numeri) e non'
	                      +'  può essere vuoto.\r\nTi chiediamo cortesemente di ricompilarlo correttamente.','stop');
	
	var ret=false,ind=0;
	
	objSel = getObj(frmName,campi[1]);
	if((objSel)&&(objSel!=null))
	{	
		ind=objSel.selectedIndex;
		if(ind!=0)
		{	//SetParm(frmName, campi[2], objSel.options[ind].value);
			//SetParm(frmName, campi[1], ind);//objSel.options[ind].text);
			ret=true;
		}
	}
	if(ret==false) alert('Non si è selezionato nessun profilo ICI.\r\n'+
                      'Per caricare un profilo ICI valido selezionarlo dall\'elenco sottostante.');
	
	return ret;
}


/* controlla il campo di salvataggio nome file abbia un valore valido */
function ctrlICIProfileSave(frmName)
{
	var campi=new Array('id_save','id_load','id_idprofilo','stop');
	var strAlert='Il nome del file corrisponde ad un profilo già esistente.\r\nSovrascriverlo?';
	var msgErr=' può contenere solo caratteri alfanumerici (lettere e numeri) e non'
	                      +'  può essere vuoto.\r\nTi chiediamo cortesemente di ricompilarlo correttamente.';
	var msg = 'Si è scelto di salvare la situazione attuale ICI con il nome ';
		
	var exit=false,exist=false, ret=false, fl=2, str='';
	var minlen=1, numopt=0, valopt,j=0;
	var tmp1,tmp2;
	
	obj = getObj(frmName,campi[0]);
	if((obj)&&(obj!=null))
	{	str=obj.value;
		fl=str.length;
		if (fl<minlen)exit=true;
		else exit=(!(isAlfaNum(str)));
	}
   
    if (exit==false) 
	{	objSel = getObj(frmName,campi[1]);
		numopt = objSel.length;
		while ((j<numopt)&&(!exist))
		{	tmp1=objSel.options[j].text.toLowerCase();
		    tmp2=str.toLowerCase();
		   // alert(tmp1);
			//alert(tmp2);
			if (tmp1==tmp2) 
			{	SetParm(frmName, campi[2], objSel.options[j].value);
				exist=true;
			}
			j++;
		}
	}
   	
    if (exit==true) 
	{	alert('Attenzione!\r\nIl campo del file' + msgErr);
		obj.focus();
		ret=false;
	} 
	else if (exist==true) 
	{	if (confirm (strAlert)) ret=true;
		else ret=false;
	} 
	else {ret=true;}
    
	//alert('ret '+ret+'exist '+exist);
	if 	(ret==true) ret=confirm (msg+str+'.\r\nConferma?');
		
	return ret; 
}


/* controlla che campi di login e password abbiano valori validicampi */
function ctrlICIReg(frmName)
{
	var campi=new Array('id_login','id_pw','id_question','id_answer','stop');
	var campName=new Array('Login','Password','Domanda','Risposta','stop');
	var strAlert=new Array('login non valida: ','Password non valida: ','Seleziona una domanda',
	                         'Risposta non valida: ','stop');
	var msgErr=new Array(' può contenere solo caratteri alfanumerici (lettere e numeri) e non'
	                      +'  può essere vuoto.\r\nTi chiediamo cortesemente di ricompilarlo correttamente.',
						  ' è obbligatorio!','stop');
	var campErr=new Array(0,0,1,0,'stop');
	
	var exit=false, ret=true, fl=2, str='', j=0;
	var minlen=1;
	
	while((campi[j]!='stop')&&(!exit)) 
	{	obj = getObj(frmName,campi[j]);
		if((obj)&&(obj!=null))
		{	str=obj.value;
			fl=str.length;
			if (fl<minlen)exit=true;
			else exit=(!(isAlfaNum(str)));
		}
    	j++;
	}

	if (exit==true)
	{	alert('Attenzione!\r\nIl campo '+ campName[--j] + msgErr[campErr[j]]);
		obj.focus();
		ret=false;
	}
	return ret;
}

// controlla se s è una stringa formata dai soli caratteri alfabetici o numerici o da \'àèéìòù
function isAlfaNum (s)
{
	var i;
	for (i=0; i<s.length; i++)
		if (!(isSpec(s.charAt(i), "_") || isLetter(s.charAt(i)) || isNumber(s.charAt(i))))
			return false;
	return true;
}

// controlla se il carattere c è presente nella stringa spec
function isSpec (c, spec)
{
	var i;
	for (i=0; i<spec.length; i++)
		if (spec.charAt(i)==c)
			return true;
	return false;
}

// controlla se il carattere c è una lettera dell'alfabeto
function isLetter (c)
{
	if ((c>='a' && c<='z') || (c>='A' && c<='Z'))
		return true;
	return false;
}

// controlla se il carattere c è una cifra
function isNumber (c)
{
	if (c>='0' && c<='9')
		return true;
	return false;
}


/*************funzione che controlla il valore di determinati campi*******************/
function ctrlICIParm(frmName)
{
	var campi=new Array('id_valore','id_qposs_num','id_qposs_den','id_detrazione','id_pdetrazione','stop');
	var minval=new Array(0,0,1,0,0,'stop');
	var maxval=new Array(1000000000,100,100,10000,100,'stop');
	var tipval=new Array('float','float','int','float','int','stop');
	var strAlert=new Array(	'Valore inserito non valido: ',
    					     'Parte numeratore della quota di possesso non valido: ',
							 'Parte denominatore della quota di possesso non valido: ',
							 'Valore della detrazione non valido: ',
							 'Valore di utilizzo della detrazione non valido: ','stop');
	var j=0,obj,val,val1, is0=0;
	exit=false,ret=true;
    
	while((campi[j]!='stop')&&(!exit)) 
	{	obj = getObj(frmName,campi[j]);
		
	    //alert(obj);
		if((obj)&&(obj!=null))
		{
			val=str2fl(obj.value);
			//alert('val'+val+' object ' +obj.value)
			is0=isZero(obj.value);
			if((val==0)&&(is0==0)) exit=true;
			else 
			{
		    	if( (val<minval[j]) || (val>maxval[j])) 
				{	exit=true;
					//alert(val+' '+minval[j]+' '+maxval[j]);
				} 
				
				if(tipval[j]=='int')
				{	val1=parseInt(val);
					if (val!=val1)
						exit=true;
				}
			}
	    }
    	j++;
	}
   
	if (exit==true)
	{	alert(strAlert[--j]+ obj.value +'\r\n'+'Range:['+minval[j]+' .. '+maxval[j]+']');
		obj.focus();
		ret=false;
	}
	//alert(ret);
	return ret;
}

/* converte stringa in float 
( si aspetta stringa con il punto come separat. migliaia e virgola come sep. decimali)  */
function str2fl(str){
		var fl;
		str=str.replace('.','');
		str=str.replace(',','.');
	    fl=parseFloat(str);
		if(isNaN(fl)) fl=0;
		return fl;
}
/*********  Controlla se il valore numerico di una stringa è zero***********/
function isZero(str){
	var ret=0;
	if (str=='0')ret=1 ;
	if (str=='0,0')ret=1;
	if (str=='0,00')ret=1;
	if (str=='0,000')ret=1;
	
return ret

}

//------------------------------------------------------------------------------	

function ReloadPage( path )	
{	self.location.href = path;
}


function ReloadParentPage( path )	
{	parent.location.href = path;
}


function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}


function SetParm(frmName, parm, val)
{	//alert('document.'+frmName+'.'+parm+'.value = \''+val+'\'');
	eval( 'document.'+frmName+'.'+parm+'.value = \''+val+'\'' );
}


function ConfirmBox(frmName, parm, val, msg)
{	
	if ( confirm( msg ) )
	{	SetParm(frmName, parm, val);
		eval( 'document.'+frmName+'.submit()' );
	}
}

function ConfirmICIParm(frmName, parm, val, msg)
{	
	if (ctrlICIParm(frmName))
	{	if ( confirm( msg ) )
		{	SetParm(frmName, parm, val);
			eval( 'document.'+frmName+'.submit()' );
		}
	}
}

function ConfirmICIReg(frmName)
{	
	if ( ctrlICIReg(frmName) )
	{	eval( 'document.'+frmName+'.submit()' );
	}
}
         
function ConfirmICIProfileSave(frmName, parm, val, msg)
{	
	if (ctrlICIProfileSave(frmName))
	{ //	if ( confirm( msg ) )
		{	SetParm(frmName, parm, val);
			eval( 'document.'+frmName+'.submit()' );
		}
	}
}

function ConfirmICIProfileLoad(frmName, parm, val, msg)
{	
	if (ctrlICIProfileLoad(frmName))
	{ 	if ( confirm( msg ) )
		{	SetParm(frmName, parm, val);
			eval( 'document.'+frmName+'.submit()' );
		}
	}
}


function ConfirmCalcICIRate(frmName, val)
{	
	if (CtrlICIRate(frmName,val))
	{  
	//    CalcICIRate(frmName,val);
		eval( 'document.'+frmName+'.submit()' );
    }
}


function printscr()
{
	if (document.all)
	{   if (navigator.appVersion.indexOf("5.0") == -1)
		{	var OLECMDID_PRINT = 6;
	        var OLECMDEXECOPT_DONTPROMPTUSER = 2;
	        var OLECMDEXECOPT_PROMPTUSER = 1;
	        var WebBrowser = "<OBJECT ID=\"WebBrowser1\" WIDTH=0 HEIGHT=0 CLASSID=\"CLSID:8856F961-340A-11D0-A96B-00C04FD705A2\"></OBJECT>";
	        document.body.insertAdjacentHTML("beforeEnd", WebBrowser);
	        WebBrowser1.ExecWB(6, 2);
	        WebBrowser1.outerHTML = "";
	    }
		else
		{	self.print();
	    }
	}
	else
	{	self.print();
	}
}


//------------------------------------------------------------------------------	


function optSelect(obj) {
	var tmp;
	
	eval('tmp='+obj.name);
	if(obj.checked) tmp=1;
	else tmp=0;
	eval(obj.name+'=tmp');
	
}

function resetOptions(objId) {
	var i=0;
	while(objId[i]!='stop') {
		eval(objId[i]+'=0');
		i++;
	}
}


function getObj(frmName,id) {
	var obj;
	if(obj=eval('document.'+frmName+'.'+id)) return obj;
	else if(obj=document.getElementById(id)) return obj;
	else {
		alert('oggetto non trovato');
		return false;
	}
}

function init(frmName,id) {
	var obj;
	obj=getObj(frmName,id);
	obj.focus();
}


function checkFields(frmName,id,alarm) {
	var obj,obj1,obj1Id,complete=true;
	var tmp;
	
	obj=getObj(frmName,id);

	if(obj.type =="text") {
		if(obj.value=='') complete=false;
	} else if(obj.type =="select-one") {
		if(obj.value==0) complete=false;
	} else if(obj.type =="checkbox")  {	
		if(!(obj.checked)) complete=false;
	} else if(obj.type =="radio") {
		eval('tmp='+obj.name);
		if(tmp==0) complete=false;
	}

	if(!complete) {
		if(alarm==true) {
			alert('Mancanza di dati obbligatori');
			obj.focus();
		}
		return false;	
	}
	else return true;
}


function abilita(frmName,id,status) {
	var obj;
	obj=getObj(frmName,id);
	obj.disabled=status;
	if(status==false) {
		obj.focus();
		obj.select();
	}
}

function resizeScreen() {
    var appletWidth=220;
	var appletLeft=860;
	var obj1,obj2;
	if(screen.width==800){
	  //  alert(document.getElementById('appletDiv'));
		if(obj1=document.getElementById('appletDiv')){
		  obj1.style.left=660;
		}
		else alert('oggetto div');
		if(obj2=document.getElementById('appletTMP')){
		  obj2.width=110;
		}
		else alert('oggetto applet');
		
  } 
} 