// JavaScript Document
function ctrlData(sNameForm) // se è una data
	 {
      var flagEr=false;
	  for (var i=0; i <= document.forms[sNameForm].length-1; i++) 
          {
			if(document.forms[sNameForm].elements[i].id)
				{
				var sNameElement=document.forms[sNameForm].elements[i].name; 
				sValId=document.forms[sNameForm].elements[i].id;  
				aValId=sValId.split(","); 
				sElemType=aValId[0]; 
				isNullable=aValId[1]; 
				sNameDiv =aValId[2];	 
				nLengthMin =aValId[3]; 
				if(sElemType=='GIORNO')
   					{
                    break;
					}
				}
			}
		  sOriginalDataName=sNameElement.substr(0,sNameElement.length-3); 
	      var day = document.forms[sNameForm].elements[sOriginalDataName+'_gg'].value;
	      var month = document.forms[sNameForm].elements[sOriginalDataName+'_mm'].value;
		  var year =  document.forms[sNameForm].elements[sOriginalDataName+'_aa'].value; 
		  var ggmmaa=String(day+month+year);
				  if ((ggmmaa.length != 8) && (ggmmaa.length != 0) )
					 {
					  alert('Data di nascita incompleta');
					  flagEr = true;			  
					  }
				  else if (ggmmaa.length == 8)   
					 {
					 var isDataPopolata=true;
					 var bisestile =true;
					 month = '00'+month;
					 day = '00'+day;
					 year = '0000'+year;
					 if( month < 1 || month > 12 )
					   {
					   flagEr = true;
					   }
					 else if( day < 1 || day > 31 )
					   {
					  flagEr = true;
					  }
					 else if( year < 1 || year  >2050 )
					  {
					  flagEr = true;
					  }
					 else if ((month==4 || month==6 || month==9 || month==11) && day>30)
					  {
					  flagEr = true;
					  }
					 else if (month == 2) 
						{
						 if(year % 4 != 0 || year % 100 == 0 && year % 400 != 0)
							{
							 bisestile=false;
							 }
						 if (day>29 || (day==29 && !bisestile))
							{
							 flagEr = true;
							}
						}
							
					 if (flagEr==true)
						{
						 alert('Data di nascita errata');
						}
					 } 
		 
				   else if( (ggmmaa.length == 0) && (isNullable=="NO") )  
					  {
					  alert('Data di nascita richiesta'); 
					  flagEr = true;
					  }
			   if( flagEr==false)
				{
				var flgBorn=0;
				var dateNow=new Date();
				var yearNow=dateNow.getFullYear();
				var monthNow=dateNow.getMonth();
			    monthNow=monthNow+1;
				var dayNow=dateNow.getDate();
				if(yearNow-year<18)
				   {
				   flgBorn=1;
				   }
				else if(yearNow-year==18)
				   {
				   if(monthNow-month<0)
					   {
					   flgBorn=1;
					   }
				   else if(monthNow-month==0)
					  {
                      if(dayNow-day<0)
						 {
						 flgBorn=1;
						 }
					  }
				   }
				if( flgBorn==1)
					{
					alert('Per poter partecipare e\x60 richiesta la maggiore eta\x60');
					flagEr=true;
					}
				}
		if(flagEr==true )
           {
			return false
			}
		else 
            {
            return true;
            }
        }  



function control_num_data(event)
	{
//	alert('0');
   	var ie = (navigator.appName.indexOf('Microsoft Internet Explorer')>-1);
	if(ie)
		{
  	    if(!((event.keyCode >= 48 && event.keyCode <= 59) ||  event.keyCode=='\b' || event.keyCode=='\n'))
		    {
		    event.keyCode=null;
		    return false;
		    }
		}
	else
		{
 	    if((event.which>=48 && event.which<=59) || event.which==8 ||  event.which==0)
		    {
		    return true;
		    }
	    else return false;		
		} 
	 } 

function handCursor(obj)
	{
	var ie = (navigator.appName.indexOf('Microsoft Internet Explorer')>-1);
	if(ie)
		{
		obj.style.cursor='hand';
		}
	else
		{
		obj.style.cursor='pointer';
		}
	}

function handCursor(obj)
	{
	var ie=(navigator.appName.indexOf('Microsoft Internet Explorer')>-1);
	if(ie)
		{
		obj.style.cursor='hand';
		}
	else
		{
		obj.style.cursor='pointer';
		}
	}


//Filtro tastiera: Ascii alfanumerici, spazio, apice

function kbAlfanum(e)

	{

	var ie=(navigator.appName.indexOf('Microsoft Internet Explorer')>-1);

	if(ie)

		{

		key=event.keyCode; 

		}

	else

		{

		key=e.which;

		}

	//Internet Explorer

	if(ie) 

		{

		if((key < 48 || key > 57) && (key < 65 || key > 90) && (key < 97 || key > 122) && (key != 32) && (key != 39))

			{

			key=null;

			return false;	

			}

		}

	//Mozilla Firefox

	else if((key < 48 || key > 57) && (key < 65 || key > 90) && (key < 97 || key > 122) && (key != 0) && (key != 8) && (key != 32) && (key != 39))

		{

		key=null;

		return false;	

		}

	}



//Filtro tastiera: numeri, converte la virgola in punto

function kbChknum()

	{

	if(event.keyCode==44) event.keyCode=46;

	if(!((event.keyCode>=48 && event.keyCode<=59) ||  event.keyCode=='\b' || event.keyCode=='\n' || event.keyCode==46))

		{

		event.keyCode=null;

		return false;

		}

	} 

	

//::Funzioni di controllo campi::

function sRightfrom(sString, sChar)
	{
	var sReturn="";
	var flag=0
	for (i=0; i<sString.length ; i++)
		{
		if(flag==1)
			{
			sReturn=sReturn+sString.charAt(i);
			}
		if(sChar.indexOf(sString.charAt(i))!=-1)
			{
		flag=1;
			}
		}
	return sReturn;
	}

function sLeftfrom(sString, sChar)
	{
	var sReturn="";
	var flag=1
	for (i=0; i<sString.length ; i++)
		{
		if(sChar.indexOf(sString.charAt(i))!=-1)
			{
			flag=0;
			}
		if(flag==1)
			{
			sReturn=sReturn+sString.charAt(i);
			}
		}
	return sReturn;
	}
	
function sBetween(sString, sInichar, sFinalchar)
	{
	var sReturn="";
	var flag=0
	for (i=0; i<sString.length ; i++)
		{
		if(sFinalchar.indexOf(sString.charAt(i))!=-1)
			{
			flag=0;
			}
		if(flag==1)
			{
			sReturn=sReturn+sString.charAt(i);
			}
		if(sInichar.indexOf(sString.charAt(i))!=-1)
			{
			flag=1;
			}
		}
	return sReturn;
	}

function isNull(sNameForm, sNameElement)
	{
	if(document.forms[sNameForm].elements[sNameElement].value.length==0)
		{
		return true;
		}
	}

function isDirtchar(sNameForm, sNameElement)
	{
	var sDirtchar="";
	var sElement=document.forms[sNameForm].elements[sNameElement].value;
	for (j=0; j< sElement.length ; j++)
		{
		if("qwertyuiopasdfghjklzxcvbnmàèìòùQWERTYUIOPASDFGHJKLZXCVBNM_- .,?!'()<>/0123456789".indexOf(sElement.charAt(j))==-1)
			{
			sDirtchar=sDirtchar+sElement.charAt(j);
			}
		}
	if(sDirtchar.length>0) return true;
	}

function isLenmin(sNameForm, sNameElement, iLen)
	{
	var sLen=document.forms[sNameForm].elements[sNameElement].value.length;
	if(sLen<iLen && sLen!=0)
		{
		return true;
		}
	}

function isLenmax(sNameForm, sNameElement, iLen)
	{
	if(document.forms[sNameForm].elements[sNameElement].value.length>iLen)
		{
		return true;
		}
	}
		
function isEmail(sNameForm, sNameElement)
	{
	var sEmail="";
	sEmail=document.forms[sNameForm].elements[sNameElement].value;
	if(sEmail.length<=6)
		{
		return true;
		}
	if(sEmail.length>6)
		{
		var iAt;
		var dotiAt;
		iAt=sEmail.indexOf("@");
		if((iAt >= (sEmail.length-2) ) || (iAt < 1))
			{
			return true;
			}
		iAt=iAt+1;
		dotiAt=sEmail.indexOf(".", iAt);
		if(dotiAt>(sEmail.length-3))
			{
			return true;
			}
		sEmail=sEmail.substr(iAt);
		if ((sEmail.length < 5) || (dotiAt <= 0))
			{
			return true;
			}
		}
	}
	
function isNum(sNameForm,sNameElement)
	{
	var sNotnum="";
	var sElement=document.forms[sNameForm].elements[sNameElement].value;
	for (j=0; j< sElement.length ; j++)
		{
		if("0123456789".indexOf(sElement.charAt(j))==-1)
			{
			sNotnum=sNotnum+sElement.charAt(j);
			}
		}
	if(sNotnum.length>0) return true;
	}
		
function chkFields(sNameForm, sControlField)
		{
		var aMainField=new Array();
		var aControlField=new Array();
		var aTmp=new Array();
		
		aMainField=sControlField.split("|");
		for(var i=0; i<aMainField.length; i++)
			{
			aControlField=aMainField[i].split(":");
			//aControlField[0]=Nome campo
			//aControlField[1]=Etichetta campo
			for(var j=2; j<aControlField.length; j++)
				{
				if(aControlField[j]=='isNull')
					{
					if(isNull(sNameForm,aControlField[0]))
						{
						alert(aControlField[1]+': campo richiesto');
						if(document.forms[sNameForm].elements[aControlField[0]].type!='hidden')
							{
							document.forms[sNameForm].elements[aControlField[0]].focus();
							}
						return false;
						}
					}
				else if(aControlField[j]=='isDirtchar')
					{
					if(isDirtchar(sNameForm,aControlField[0]))
						{
						alert('Caratteri non previsti per il campo '+aControlField[1]);
						document.forms[sNameForm].elements[aControlField[0]].style.color='#ff0000';
						if(document.forms[sNameForm].elements[aControlField[0]].type!='hidden')
							{
							document.forms[sNameForm].elements[aControlField[0]].focus();
							}
						return false;
						}
					else
						{
						document.forms[sNameForm].elements[aControlField[0]].style.color='#666666';
						}
					}
				else if(sLeftfrom(aControlField[j],"(")=='isLenmin')
					{
					if(isLenmin(sNameForm,aControlField[0], sBetween(aControlField[j],"(",")")))
						{
						alert('La lunghezza minima del campo '+aControlField[1]+' è di '+sBetween(aControlField[j],"(",")")+' caratteri');
						document.forms[sNameForm].elements[aControlField[0]].style.color='#ff0000';
						if(document.forms[sNameForm].elements[aControlField[0]].type!='hidden')
							{
							document.forms[sNameForm].elements[aControlField[0]].focus();
							}
						return false;
						}
					else
						{
						document.forms[sNameForm].elements[aControlField[0]].style.color='#666666';
						}
					}
				else if(sLeftfrom(aControlField[j],"(")=='isLenmax')
					{
					if(isLenmax(sNameForm,aControlField[0], sBetween(aControlField[j],"(",")")))
						{
						alert('Il campo '+aControlField[1]+' prevede al massimo '+sBetween(aControlField[j],"(",")")+' caratteri');
						document.forms[sNameForm].elements[aControlField[0]].style.color='#ff0000';
						if(document.forms[sNameForm].elements[aControlField[0]].type!='hidden')
							{
							document.forms[sNameForm].elements[aControlField[0]].focus();
							}
						return false;
						}
					else
						{
						document.forms[sNameForm].elements[aControlField[0]].style.color='#666666';
						}
					}
				else if(aControlField[j]=='isEmail')
					{
					if(isEmail(sNameForm,aControlField[0]))
						{
						alert('Sintassi errata per il campo '+aControlField[1]);
						document.forms[sNameForm].elements[aControlField[0]].style.color='#ff0000';
						if(document.forms[sNameForm].elements[aControlField[0]].type!='hidden')
							{
							document.forms[sNameForm].elements[aControlField[0]].focus();
							}
						return false;
						}
					else
						{
						document.forms[sNameForm].elements[aControlField[0]].style.color='#666666';
						}
					}
				else if(aControlField[j]=='isNum')
					{
					if(isNum(sNameForm,aControlField[0]))
						{
						alert('Il campo '+aControlField[1]+' può contenere solo cifre');
						document.forms[sNameForm].elements[aControlField[0]].style.color='#ff0000';
						if(document.forms[sNameForm].elements[aControlField[0]].type!='hidden')
							{
							document.forms[sNameForm].elements[aControlField[0]].focus();
							}
						return false;
						}
					else
						{
						document.forms[sNameForm].elements[aControlField[0]].style.color='#666666';
						}
					}
				}
			}
		return true;
		}