// 'm' = mail
// 'n' = numero
// '' = oblig
// 'mo' = mail oblig
// 'no' = num oblig
// '11','34',... = llargada maxima

function validar(){
    var color2='#AD505D' //'#CCCCFF'
    var color='#FFFFFF'
	var classNormal = 'frmText';
	var classError = 'frmTextError';
	var args=validar.arguments;
	var numargs=args.length;
	var envia,missatge,tipus
	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 
		{
			obj=eval(args[0] + '.' + args[i])
			envia=true;
			(!args[i+1])?nomMostrar=args[i]:nomMostrar=args[i+1];
			missatge='"' + nomMostrar + '"'			
			tipus=args[i+2]
		}
        // obligatorio
        if ((tipus=='') || (tipus=='no') || (tipus=='mo')){
				if (obj.value=="")
				{
					if (!incorrecte){obj.focus()};
					incorrecte+=missatge + ' es obligatorio\n'
					obj.style.backgroundColor=color2
					obj.className = classError;
					//obj.focus()
				}
				else
				{		
					obj.style.backgroundColor=color
					obj.className = classNormal;
					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 dirección de e-mail correcta\n'
				obj.style.backgroundColor=color2
				obj.className = classError;
			}
			else
			{		
				obj.style.backgroundColor=color
				obj.className = classNormal;
			}
		}
		// nombre 
        if(tipus=='n'){
			if ((obj.value!=Number(obj.value)) && (obj.value!=''))
			{
				if (!incorrecte){obj.focus()};
				incorrecte+= missatge + ' ha de ser un número\n'
				obj.style.backgroundColor=color2
				obj.className = classError;
			}
			else
			{		
				obj.style.backgroundColor=color
				obj.className = classNormal;
			}
		}
		// llargada maxima 
        if(tipus>1){
			if (obj.value.length > tipus)
			{
				if (!incorrecte){obj.focus()};
				incorrecte+= missatge + ' has escrito ' + obj.value.length + ' caracteres, pero el máximo es ' + tipus + ' \n'
				obj.style.backgroundColor=color2				
				obj.className = classError;
			}
			else
			{		
				obj.style.backgroundColor=color
				obj.className = classNormal;
			}
		}
// fi validacio
	}
	if (incorrecte){
	    incorrecte= '\nNo has rellenado el formulario correctamente:\n\n' + incorrecte
		alert (incorrecte)
	}
	if (envia){
		return (incorrecte=='')
	}
}

