

var _Cpersona;
var _pantalla;
jQuery(document).ready(function() {
	var FailItem = ["validation-failed","validation-advice","advice-required-entry-"];
	var EmpresaCheck = false;
	if (_Cpersona == "RIF"){jQuery("#juridica").trigger('click');MoveToJuridica();}	
	jQuery("#natural").click(function(){
		jQuery("#identidad").val("").removeClass("required-entry").removeClass("validation-failed");
		jQuery(".div_ci").css("display","block");
		jQuery(".div_empresa").css("display","none");
		EmpresaCheck = false;
		
		ToDestroy("DosRif");
		ToDestroy("empresa");
		
	});
	jQuery("#juridica").click(function(){

		MoveToJuridica();
	});
	function MoveToJuridica()
	{
		jQuery("#identidad").val("").removeClass("required-entry").removeClass("validation-failed");
		jQuery(".div_empresa").css("display","block");
		jQuery(".div_ci").css("display","none");
		EmpresaCheck = true;		
		jQuery("#NumeroCedula").removeClass("required-entry").removeClass("validation-failed");
		ToDestroy("NumeroCedula");		
	}


	jQuery('#MdSender').click(function(){
		EvalForm();
	})

	function ToDestroy(_item){jQuery('#'+FailItem[2]+_item).remove();}
	function CreateAdvice(_item,_msg){
		return "<div class=\"validation-advice MdItem\" id=\""+FailItem[2]+_item+"\" style=\"display:none;\">"+_msg+"</div>"	
	}
	
	function MyTest(_string,_exp,_max,_min)
	{
		if(!_exp.test(_string) || _string.length > _max || _string.length < _min) return false;
		else return true;
	}
	
	function EvalForm()
	{
		var Error = false;
		if (EmpresaCheck == true)
		{
			if (!CheckRif()) Error = true;
			if (!CheckGeneral("empresa")) Error = true;
		}
		else
		{
			if (!CheckCI()) Error = true;
		}
		
		
		
		if(!CheckGeneral("firstname")) Error = true;
		if(!CheckGeneral("lastname")) Error = true;
		if (!CheckEmail()) Error = true;
		if (!CheckBirth()) Error = true;
		
		if (_pantalla != "edit")
		{
			if (!CheckPass()) Error = true;
		}
		if (Error != true){
			jQuery("#submiter").trigger('click');
		}
	}
	function CheckCI()
	{
		var NumeroCedula = jQuery('#NumeroCedula');
		var v = NumeroCedula.val();
		
		ToDestroy("NumeroCedula");
		if (!MyTest(v,/^\d+$/,8,6))
		{
			NumeroCedula.after(CreateAdvice("NumeroCedula","Introduzca una C&eacute;dula v&aacute;lida"));
			NumeroCedula.addClass(FailItem[0]);
			jQuery(".MdItem").fadeIn('fast',function(){});
			return false;
		}
		else{
			NumeroCedula.removeClass(FailItem[0]);
			FinalValue = "CI-"+jQuery('#NacionalidadCedula').val()+"-"+v;
			FinalValue = FinalValue.toUpperCase();
			jQuery('#identidad').val(FinalValue);
			return true;
		}		
		
	}
	function CheckGeneral(_item)
	{
		var Error = false;
		var _obj = jQuery("#"+_item)
		
		ToDestroy(_item);
		if (_obj.val().length < 1)
		{
			_obj.after(CreateAdvice(_item,"Campo requerido"));	
			_obj.addClass(FailItem[0]);
			jQuery(".MdItem").fadeIn('fast',function(){});
			return false;
		}
		else{_obj.removeClass(FailItem[0]); return true;}
	}
	function CheckBirth()
	{
		var Day = jQuery("#day");
		var Month = jQuery("#month");
		var Year = jQuery("#year");
		var Error = false;
		
		for (x=0;x<4;x++){ToDestroy("birth");}
		
		if (Day.val().length > 0 || Month.val().length > 0 || Year.val().length > 0)
		{
			if (Day.val().length < 1 ||
			    Month.val().length < 1 ||
			    Year.val().length < 1
			    ){Error=true;}
			else
			{
				if (Day.val().length > 2 ||
				    Month.val().length > 2 ||
				    Year.val().length > 4 ||
				    Year.val().length < 4){Error = true;}
				else
				{
					
					if (!/^\d+$/.test(Day.val()) ||
					    !/^\d+$/.test(Month.val()) ||
					    !/^\d+$/.test(Year.val())){Error=true;}
					else
					{
						if (Day.val() > 31 ||
						    Month.val() > 12 ||
						    Year.val() > 2011){Error=true;}
					}
				}
			}	
		}
		else{
			Error = false;
		}
		
		if (Error == true)
		{
			jQuery(".label-dob").before(CreateAdvice("birth",""));
			jQuery(".dob-full").after(CreateAdvice("birth","Introduzca una fecha v&aacute;lida."));
			Day.addClass(FailItem[0]);
			Month.addClass(FailItem[0]);
			Year.addClass(FailItem[0]);
			jQuery(".MdItem").fadeIn('fast',function(){});
			return false;
		}
		else
		{
			Day.removeClass(FailItem[0]);
			Month.removeClass(FailItem[0]);
			Year.removeClass(FailItem[0]);
			return true;	
		}
		
	}
        function CheckPass()
	{
		var Pass = jQuery("#password");
		var Confirmation = jQuery("#confirmation");
		var v = Pass.val();
		var _msg = "Campo obligatorio";
		var Error = false;
		ToDestroy("password");
		ToDestroy("confirmation");
		
		if (v.length < 1){Error = true;}
		else
		{
			if (v.length < 6)
			{
				_msg = "Por favor, escriba 6 o más caracteres. Los espacios al principio y al final serán ignorados.";
				Error = true;
			}
		}
		
		if (Error == true)
		{
			Pass.after(CreateAdvice("password",_msg));	
			Pass.addClass(FailItem[0]);
			jQuery(".MdItem").fadeIn('fast',function(){});
			return false;
		}
		else
		{
			Pass.removeClass(FailItem[0]);
			
			if (Confirmation.val() != v)
			{
				Confirmation.after(CreateAdvice("confirmation","Asegúrese de que sus contraseñas coinciden."));
				Confirmation.addClass(FailItem[0]);
				jQuery(".MdItem").fadeIn('fast',function(){});
				return false;
			}
			else
			{
				Confirmation.removeClass(FailItem[0]);
				return true;
			}	
		}
		
	}
	function CheckEmail()
	{
		var Name = "email_address";
		
		if (_pantalla == "edit") Name = "email";
		
		var Email = jQuery("#"+Name);
		var v = Email.val();
		var _msg = "Campo obligatorio";
		var Error = false;
		ToDestroy(Name);
		
		if (v.length < 1){Error = true;}
		else
		{
			if (!/^([a-z0-9,!\#\$%&'\*\+\/=\?\^_`\{\|\}~-]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z0-9,!\#\$%&'\*\+\/=\?\^_`\{\|\}~-]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*@([a-z0-9-]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z0-9-]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*\.(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]){2,})$/i.test(v))
			{
				Error = true;
				_msg = "Por favor, escriba una dirección de correo válida. Por ejemplo perez@dominio.com";
			}
			
		}
		if (Error == true)
		{
			Email.after(CreateAdvice(Name,_msg));	
			Email.addClass(FailItem[0]);
			jQuery(".MdItem").fadeIn('fast',function(){});
			return false;
		}
		else
		{
			Email.removeClass(FailItem[0]);
			return true;
		}
	}
	function CheckRif()
	{
		var Error = false;
		var LastItem = jQuery('#DosRif');
		if (!MyTest(jQuery('#UnoRif').val(),/[a-zA-Z]/,1,1)) Error = true;
		if (!MyTest(jQuery('#DosRif').val(),/^\d+$/,10,9)) Error = true;
		ToDestroy("DosRif");
		if (Error)
		{
			LastItem.after(CreateAdvice("DosRif","Introduzca un RIF v&aacute;lido."));
			jQuery('#UnoRif').addClass(FailItem[0]);
			jQuery('#DosRif').addClass(FailItem[0]);
			LastItem.addClass(FailItem[0]);
			jQuery(".MdItem").fadeIn('fast',function(){});
			return false;
		}
		else
		{
			jQuery(".validation-advice").remove();
			LastItem.removeClass(FailItem[0]);
			jQuery("#UnoRif").removeClass(FailItem[0]);
			FinalValue = "RIF-"+jQuery('#UnoRif').val()+'-'+jQuery('#DosRif').val();
			FinalValue = FinalValue.toUpperCase();
			jQuery('#identidad').val(FinalValue);
			return true;
		}
	}
 });

