﻿	function validate_email(id) 
	{ 
		var strEmail=document.getElementById(id).value;;
		var at='@';
		var dot='.'; 
		var lat=strEmail.indexOf(at);
		var lstr=strEmail.length-1;
		var ldot=strEmail.indexOf(dot); 
		if (strEmail.indexOf(at)==-1)
		{
			alert("Por favor introduce un email válido. (Te has olvidado de la \"@\").");
			document.getElementById(id).className='form_object_error';
			document.getElementById(id).focus();
			return false 
		}
		if (strEmail.indexOf(at)==-1 || strEmail.indexOf(at)==0 || strEmail.indexOf(at)==lstr)
		{
			alert("Por favor introduce un email válido. (El simbolo \"@\", no esta esta en su posición).");
			document.getElementById(id).className='form_object_error';
			document.getElementById(id).focus();
			return false 
		} 
		if (strEmail.indexOf(dot)==-1 || strEmail.indexOf(dot)==0 || strEmail.indexOf(dot)==lstr)
		{
			alert("Por favor introduce un email válido. (Te has olvidado del \".\" punto o no lo has puesto en su sitio).");
			document.getElementById(id).className='form_object_error';
			document.getElementById(id).focus();
			return false
		} 
		if (strEmail.indexOf(at,(lat+1))!=-1)
		{
			alert("Por favor introduce un email válido. Has puesto más de una vez el simbolo \"@\"");
			document.getElementById(id).className='form_object_error';
			document.getElementById(id).focus();
			return false
		} 
		if (strEmail.substring(lat-1,lat)==dot || strEmail.substring(lat+1,lat+2)==dot)
		{ 
			alert("Por favor introduce un email válido.");
			document.getElementById(id).className='form_object_error';
			document.getElementById(id).focus();
			return false 
		} 
		if (strEmail.indexOf(dot,(lat+2))==-1)
		{ 
			alert("Por favor introduce un email válido.");
			document.getElementById(id).className='form_object_error';
 			document.getElementById(id).focus();
			return false 
		}
		if (strEmail.indexOf(" ")!=-1)
		{
			alert("Por favor introduce un email válido.");
			document.getElementById(id).className='form_object_error';
			document.getElementById(id).focus();
			return false
		}
		document.getElementById(id).className='form_object';
		return true
	 } 

	 function validate_textAndNumbers(id, minLength)
	 {
		 try
		 {
			text=document.getElementById(id).value;
			if(text.length>=minLength)
			{
				document.getElementById(id).className='form_object';
				return true;
			}
			else
			{
				alert("Este dato no es válido, tienes que poner al menos "+minLength+" caracteres");
				document.getElementById(id).className='form_object_error';
				document.getElementById(id).focus();
				return false;
			}
		 }
		 catch(e)
		 {
			alert("Este dato no es válido, tienes que poner al menos "+minLength+" caracteres");
			document.getElementById(id).className='form_object_error';
			document.getElementById(id).focus();
			return false;
		 }
	 }
		
	function validate_float_value(number)
	{
		var pattern = new RegExp(/^((\d+(\.\d*)?)|((\d*\.)?\d+))$/);
 
		if (!pattern.test(number))
		{
			return false;
		}
		else
		{
			return true;
		}
	}
		
	function validate_integer(id)
	{
		var state = validate_integer_value(document.getElementById(id).value);
		if(state)
		{
			document.getElementById(id).className='form_object';
		}
		else
		{
                        alert("Este dato ha de ser un numero");
                        document.getElementById(id).className='form_object_error';
                        document.getElementById(id).focus();
		}
		return state;
	}
	
	function validate_integer_value(number)
	{
		var pattern = new RegExp(/^\d+$/);
 
		if (!pattern.test(number))
		{
			return false;
		}
		else
		{
			return true;
		}
	}
	
	function validateInputNumber(input, onkeypress)
	{
		if(onkeypress && input.value.length==0)
		{
			return false;
		}
		if(!validate_float_value(input.value))
		{
			alert("Numero no valido");
			input.style.backgroundColor = "#F7D5D5";
			input.focus();
			input.value="0";
			return false;
		}
		else
		{
			input.style.backgroundColor = "";
			return true;
		}
	}
	
	function forceValidation(id, rigth)
	{
		if(rigth)
		{
			document.getElementById(id).className='form_object';
		}
		else
		{
			document.getElementById(id).className='form_object_error';
			document.getElementById(id).focus();
		}
	}
	
	function deleteOnDefault(id, defaultValues)
	{
		if(id.value==defaultValues[id.name])
		{
			id.value = "";
		}
	}
	
	function restoreDefault(id, defaultValues)
	{
		if(id.value=="")
		{
			id.value=defaultValues[id.name];
		}
	}
	
	function checkForm(campos)
	{
		var validated = true;
		for (var i in campos)
		{
			if(campos[i]['tipo'] == "texto")
			{
				if(validated && !validate_textAndNumbers(campos[i]['id'], campos[i]['tamano_min']))
				{
					validated = false;
				}
			}
			else if(campos[i]['tipo'] == "email")
			{
				if(validated && !validate_email(campos[i]['id']))
				{
					validated = false;
				}
			}
			else if(campos[i]['tipo'] == "numero")
			{
				if(validated && !validate_integer(campos[i]['id'], campos[i]['tamano_min']))
				{
					validated = false;
				}
			}
		}
		return validated;
	}

