//onsubmit="return validar('document.agenda','Nom','Nom','','Lloc','Lloc','','DataInici','Data inici','di','DataFi','Data fi','df')"

function validar(){
    var color2='#E6E6E6';
    var color='#FFFFFF';
  
	var args=validar.arguments;
	var numargs=args.length;
	var envia,missatge,tipus, mail;
	var incorrecte='';
		
	for (i=1; i<(numargs-1); i+=3)
	{
		if (numargs==3)
		{
			obj=args[0];
			envia=false;
			missatge=args[1];
			tipus=args[2];
		}
		else 
		{
			//alert(args[0] + '.' + args[i]);
			obj=eval(args[0] + '.' + args[i]);
			envia=true;
			missatge='"' + args[i+1] + '"';
			tipus=args[i+2];
		}
        // obligatori
        if ((tipus=='') || (tipus=='no') || (tipus=='mo')){
				
				if (obj.value=="")
				{
					if (!incorrecte){obj.focus()};
					incorrecte+=missatge + ' es obligatorio\n';
					obj.style.backgroundColor=color2;
					//obj.focus()
				}
				else
				{		
					obj.style.backgroundColor=color;
					if (tipus=='no'){tipus='n'};
					if (tipus=='mo'){tipus='m'};
				}
		}
		// mail
	    if ((tipus=='m')  && (obj.value!='')){
			mail=obj.value;
			arrob=mail.indexOf('@');
			punt=mail.indexOf('.',arrob+2);
			ultim=mail.length-1;		
			if ((arrob==-1) || (punt==-1) || (arrob==0) || (punt==ultim))
			{
				if (!incorrecte){obj.focus()};
				incorrecte+= missatge + ' no es una direccion de E-Mail valida\n';
				obj.style.backgroundColor=color2;		
			}
			else
			{		
				obj.style.backgroundColor=color;
			}
		}

		// nmero 
        if(tipus=='n'){
			if (((obj.value!=Number(obj.value)) && (obj.value!='')) || (obj.value==''))
			{
				if (!incorrecte){obj.focus()};
				incorrecte+= missatge + ' debe ser valor numérico\n';
				obj.style.backgroundColor=color2;
			}
			else
			{		
				obj.style.backgroundColor=color;
			}
			//if (obj.value==''){obj.value='0';}
		}

		// cp
		if (tipus=='cp')
		{
			if ((obj.value!=Number(obj.value)) && (obj.value!='')  || (obj.value<10000))
			{			
				if (!incorrecte){obj.focus()};
				incorrecte+= missatge + ' debe ser valor numérico de 5 dígitos.\n';
				obj.style.backgroundColor=color2;				
			}
			else
			{		
				obj.style.backgroundColor=color;
			}
		}

		// llargada maxima 
        if(tipus>1){
			if (obj.value.length > tipus)
			{
				if (!incorrecte){obj.focus()};
				incorrecte+= missatge + ' contiene ' + obj.value.length + ' carcteres, no puede ser mas ancho de ' + tipus + ' \n';
				obj.style.backgroundColor=color2;				
			}
			else
			{		
				obj.style.backgroundColor=color;
			}
		}

		// data
		if (tipus=='di')
		{
			var obj2=eval(args[0]);
			var Any=obj2.ano.value;
			var Mes=obj2.mes.options[obj2.mes.selectedIndex].value;
			var Dia=obj2.dia.options[obj2.dia.selectedIndex].value;
			
			if ((Any == "") || (Any!=Number(Any)))
			{
			incorrecte+= missatge + "Olvida el ao o ha introducido un valor no numrico \n";
			}
			else
				{
				if ((Any<999) || (Any>9999))
					{
					incorrecte+= missatge + "El ao es incorrecto \n";
					}
				}
			
		    if ((Mes==2) && (Dia>28))
			{
				if (((Any/4)==parseInt(Any/4)) && (Dia<30))
				{
				}
				else
				{
				incorrecte+= missatge + 'La fecha es incorrecta \n';
				}
			}
			if ((Mes==4) || (Mes==6) || (Mes==9) || (Mes==11))
			{
				if (Dia>30)
				{
					incorrecte+= missatge + 'La fecha es incorrecta \n';
				}
			}
		}
		
// valor del select 
        if(tipus.indexOf('VAL')!=1){
			if (('VAL' + obj.value)==tipus)
			{
				if (!incorrecte){obj.focus()};
				incorrecte+='Debe seleccionar ' + missatge + ' \n';
//				obj.style.backgroundColor=color2				
			}
			else
			{		
				//obj.style.backgroundColor=color
			}
		}
		

// fecha
        if(tipus=='data'){
        var tmp=obj.value;
			if (!validaData(obj) && (tmp!=''))
				{
					if (!incorrecte){obj.focus()};
					incorrecte+= missatge + ' no es correcta\n';
					obj.style.backgroundColor=color2;			
				}	
			else
				{
				obj.style.backgroundColor=color;
				} 
		}
		
	//alert(incorrecte);
// fi validacio
	}
	
	if (incorrecte != ""){
	    //incorrecte= '\nNo ha rellenado el formulario correctamente:\n\n' + incorrecte;
		alert (incorrecte);
	}
	if (envia){
		return (incorrecte=='');
	}
}



function validaData(obj)
{
	var fecha,DataNova;
	fecha = obj.value;	
	fechaArray = fecha.split("/");
	
	if (fechaArray.length!=3)
		{
		fechaArray = fecha.split("-");
		}	
	
	if (fechaArray.length==3)
		{
		DataNova = new Date(fechaArray[2],fechaArray[1]-1,fechaArray[0]);
		}
	else
		{
		obj.value = '';
		return false;
		}
	if (isNaN(DataNova))
		{
		obj.value = '';
		return false;
		}
	else
		{
		obj.value = DataNova.getDate() + '/' + (DataNova.getMonth() + 1) + '/' + DataNova.getYear() ;
		return true;
		}
}

