/***************************/
//@Author: Adrian "yEnS" Mato Gondelle & Ivan Guardado Castro
//@website: www.yensdesign.com
//@email: yensamg@gmail.com
//@license: Feel free to use it, but keep this credits please!					
/***************************/

$(document).ready(function(){
	//global vars
	var form = $("#solicitarPresupuesto");
	var nombre = $("#nombre");
	var nombreError = $("#nombreError");
	var email = $("#email");
	var emailError = $("#emailError");
	var telefono = $("#telefono");
	var telefonoError = $("#telefonoError");
	var empresa = $("#empresa");
	var empresaError = $("#empresaError");
	var requerimientos = $("#requerimientos");
	var requerimientosError = $("#requerimientosError");
	var ie6Error = $("#ie6Error");
	var detalles =  $("#detalles");
	var referencia1 =  $("#referencia1");
	var referencia2 =  $("#referencia2");
	var referencia3 =  $("#referencia3");
	var referencia1 =  $("#referencia1");
	var presupuesto =  $("#presupuesto");
	var errorGral =  $("#errorGral");
	
	//On blur
	nombre.blur(validateNombre);
	email.blur(validateEmail);
	telefono.blur(validateTelefono);
	empresa.blur(validateEmpresa);
	requerimientos.blur(validateRequerimientos);
	detalles.blur(completado);
	referencia1.blur(completado);
	referencia2.blur(completado);
	referencia3.blur(completado);	
	presupuesto.blur(completado);
	$("input[name=ie6]").click(function() {
		  validateIe6();
	});
	
	//On Submitting
	form.submit(function(){
		if(validateNombre() & validateEmail() & validateTelefono() & validateEmpresa() & validateRequerimientos() & validateIe6 ())
			return true
		else
			return false;
	});
	
	
	//validation functions
	function validateEmail(){
		
		var a = $("#email").val();
		var filter = /^[a-zA-Z0-9]+[a-zA-Z0-9_.-]+[a-zA-Z0-9_-]+@[a-zA-Z0-9]+[a-zA-Z0-9.-]+[a-zA-Z0-9]+.[a-z]{2,4}$/;
		//if it's valid email
		if(filter.test(a)){
			email.removeClass("error");
			email.removeClass("focus");
			email.addClass("correcto");
			emailError.text('');
			return true;
		} 		
		//if it's NOT valid
		else {
			email.addClass("error");
			emailError.text('Ingrese su e-mail para poder contactarlo.');
			email.focus(function() {
 				 $(this).addClass("focus");
			});
			email.blur(function() {
 				 $(this).removeClass("focus");
			});
			return false;		
		} 	
	}
	function validateNombre(){
		//if it's NOT valid
		if(nombre.val().length < 3){
			nombre.addClass("error");
			nombreError.text('Por favor, ingrese su Nombre.');
			nombre.focus(function() {
 				 $(this).addClass("focus");
			});
			nombre.blur(function() {
 				 $(this).removeClass("focus");
			});
		    return false;
		}
		else if (nombre.val().length > 20){
			nombre.addClass("error");
			nombreError.text('Ingrese un nombre m\u00E1s corto por favor');
			nombre.focus(function() {
 				 $(this).addClass("focus");
			});
			nombre.blur(function() {
 				 $(this).removeClass("focus");
			});
			return false;
		} 
		//if it's valid
		else{
			nombre.removeClass("error");
			nombre.removeClass("focus");
			nombre.addClass("correcto");
			nombreError.text('');
			return true;
		}
	}
	function validateTelefono(){
		
		//if it's NOT valid
		  var value = $('#telefono').val().replace(/^\s\s*/, '').replace(/\s\s*$/, '');
  		  var intRegex = /^\d+$/;
 	  	  if(!intRegex.test(value)) {
			telefono.addClass("error");
			telefonoError.text('Por favor, ingrese su Tel\u00E9fono en n\u00FAmeros y sin espacios.');
			telefono.focus(function() {
 				 $(this).addClass("focus");
			});
			telefono.blur(function() {
 				 $(this).removeClass("focus");
			});
			return false;			
		} 
		else if (telefono.val().length < 8){
			telefono.addClass("error");
			telefonoError.text('Por favor, ingrese su Tel\u00E9fono para contactarme con Ud.');
			telefono.focus(function() {
 				 $(this).addClass("focus");
			});
			telefono.blur(function() {
 				 $(this).removeClass("focus");
			});
			return false;		
		} 
		else if (telefono.val().length > 20){
			telefono.addClass("error");
			telefonoError.text('El n\u00FAmero de tel\u00E9fono es muy largo');
			telefono.focus(function() {
 				 $(this).addClass("focus");
			});
			telefono.blur(function() {
 				 $(this).removeClass("focus");
			});
			return false
		}
		
		//if it's valid
		else{
			telefono.removeClass("error");
			telefono.removeClass("focus");
			telefono.addClass("correcto");
			telefonoError.text('');
			return true;
		}
	}
	function validateEmpresa(){
		//if it's NOT valid
		if(empresa.val().length < 5){
			empresa.addClass("error");
			empresaError.text('Por favor, ingrese su Empresa y/o Profesi\u00F3n.');
			empresa.focus(function() {
 				 $(this).addClass("focus");
			});
			empresa.blur(function() {
 				 $(this).removeClass("focus");
			});
			return false;
		} else if (empresa.val().length > 40){
			empresa.addClass("error");
			empresaError.text('Por favor, acorte el nombre de su Empresa y/o Profesi\u00F3n. ');
			empresa.focus(function() {
 				 $(this).addClass("focus");
			});
			empresa.blur(function() {
 				 $(this).removeClass("focus");
			});
			return false;
		} 
		//if it's valid
		else{
			empresa.removeClass("error");
			empresa.removeClass("focus");
			empresa.addClass("correcto");
			empresaError.text('');
			return true;
		}
	}		
function validateIe6(){
		//if it's NOT valid
		if($("input[@name='ie6']:checked").val() == null){
			ie6Error.text('Recuerde indicar si desea que su sitio tenga compatibilidad con Internet Explorer 6');
			return false;
		}
		//if it's valid
		else{
			ie6Error.text('');
			return true;
		}
	}	
	
	function validateRequerimientos(){
		//it's NOT valid
		
		if(requerimientos.val().length < 10){
			requerimientos.addClass("error");
			requerimientosError.text('Por favor, ingrese detalles de lo que desea para su sitio.');
			requerimientos.focus(function() {
 				 $(this).addClass("focus");
			});
			requerimientos.blur(function() {
 				 $(this).removeClass("focus");
			});
			return false;
		} else if (requerimientos.val().length > 5000){
			requerimientos.addClass("error");
			requerimientosError.text('Por favor, acorte sus requerimientos. ');
			requerimientos.focus(function() {
 				 $(this).addClass("focus");
			});
			requerimientos.blur(function() {
 				 $(this).removeClass("focus");
			});
			return false;
		} 
		//it's valid
		else{ 		
			requerimientos.removeClass("error");
			requerimientos.removeClass("focus");
			requerimientos.addClass("correcto");
			requerimientosError.text('');
			return true;
		}
	}
	
	function completado(){
		
		var campo = $(this)
		// no valido
		if(campo.val().length < 1){
			$(this).removeClass("correcto");
			return false;			
		} else if (campo.val().length > 50){
			$(this).addClass("error");
			$(this).removeClass("correcto");
			errorGral.text('Chequee los campos en rojo, hay demasiado texto.');
			requerimientos.focus(function() {
 				 $(this).addClass("focus");
			});
			requerimientos.blur(function() {
 				 $(this).removeClass("focus");
			});
			return false;
		} 
		// valido
		else {
			$(this).addClass("correcto");
			errorGral.text('');
			return true;
		}
	}
	
});
