jQuery.fn.fadeIn = function(speed, callback) {
    return this.animate({ opacity: 'show' }, speed, function() {
        if (jQuery.browser.msie)
            this.style.removeAttribute('filter');
        if (jQuery.isFunction(callback))
            callback();
    });
};

jQuery.fn.fadeOut = function(speed, callback) {
    return this.animate({ opacity: 'hide' }, speed, function() {
        if (jQuery.browser.msie)
            this.style.removeAttribute('filter');
        if (jQuery.isFunction(callback))
            callback();
    });
};

jQuery.fn.fadeTo = function(speed, to, callback) {
    return this.animate({ opacity: to }, speed, function() {
        if (to == 1 && jQuery.browser.msie)
            this.style.removeAttribute('filter');
        if (jQuery.isFunction(callback))
            callback();
    });
};

function changeCard(index)
{
	if (block || currentCard == index) return;
	
	var speed = 200;
	var oldCard = "#card-" + currentCard;
	var newCard = "#card-" + index;
	
	block = true;
	
	$(oldCard).fadeOut(speed, function() { $(newCard).fadeIn(speed); block = false; });
	
	currentCard = index;
}

function goToIns() {
	changeCard(3);
	$('#link-instrucciones').click();
	return false;
}

$(document).ready(function(){
	
	$("#content, .d3").corner();
	
	$("#unirse").click(function() {
	
		var correo = $("input[name='email']").val();
		
		var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;

		if (!filter.test(correo)) {
			$("#result").removeClass("succeed");
			$("#result").addClass("fail");
			$("#textTitle").html("ERROR!");
			$("#textResult").html("Por favor escriba un correo v&aacute;lido.");
			$("#result").fadeIn("slow");
			setTimeout("ocultarResultado()", 4000);	
			return false;			
		}		

		var inputs = [];
		
		$('#taiperForm input').each(function() {
			inputs.push(this.name + '=' + escape(this.value));
		})
		
		inputs = inputs.join('&');

		$.ajax({
			url: "proxy.php?mode=register_account&fecha=" + new Date().getTime(),
			type: "post",
			data: inputs,
			dataType: "html",
			timeout: 2000,
			beforeSend: function(){
				bloquearRegistro();
			},
			complete: function(){
				desbloquearRegistro();
			},
			success: function(response){
				switch (response) {
					case 'ERROR_INCOMPLETE_FIELDS':
						$("#result").removeClass("succeed");
						$("#result").addClass("fail");
						$("#textTitle").html("ERROR!");
						$("#textResult").html("Por favor completa todos los campos del formulario.");					
					break;
					case 'ERROR_ACCOUNT_INVALID':
						$("#result").removeClass("succeed");
						$("#result").addClass("fail");
						$("#textTitle").html("ERROR!");
						$("#textResult").html("Tu nombre de usuario o contrase&ntilde;a son incorrectos. Por favor, rev&iacute;salos.");
					break;
					case 'ERROR_PHONENUMBER_ALREADY_IN_USE':
						$("#result").removeClass("succeed");
						$("#result").addClass("fail");
						$("#textTitle").html("ERROR!");
						$("#textResult").html("Lo sentimos. El tel&eacute;fono especificado ya est&aacute; inscrito en nuestro servicio.");
					break;
					case 'OK_USER_SAVED':
						$("#result").removeClass("fail");
						$("#result").addClass("succeed");
						$("#textTitle").html("LISTO!");
						$("#textResult").html("Ya puedes usar nuestro servicio. Por favor lee las <a href=\"#\" onclick=\"goToIns()\">instrucciones de uso</a>.");
					break;
					
					default:
						alert(response);
						break;
				}
				$("#result").fadeIn("slow");
				setTimeout("ocultarResultado()", 4000);	
			}
		});
	});
	
	$("#unirse_facebook").click(function() {
	
		var correo = $("input[name='email']").val();
		
		var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;

		if (!filter.test(correo)) {
			$("#result").removeClass("succeed");
			$("#result").addClass("fail");
			$("#textTitle").html("ERROR!");
			$("#textResult").html("Por favor escriba un correo v&aacute;lido.");
			$("#result").fadeIn("slow");
			setTimeout("ocultarResultado()", 4000);	
			return false;			
		}		

		var inputs = [];
		
		$('#taiperForm input').each(function() {
			inputs.push(this.name + '=' + escape(this.value));
		})
		
		inputs = inputs.join('&');

		$.ajax({
			url: "./../proxy.php?mode=register_facebook_account&fecha=" + new Date().getTime(),
			type: "post",
			data: inputs,
			dataType: "html",
			timeout: 2000,
			beforeSend: function(){
				bloquearRegistro();
			},
			complete: function(){
				desbloquearRegistro();
			},
			success: function(response){
				switch (response) {
					case 'ERROR_INCOMPLETE_FIELDS':
						$("#result").removeClass("succeed");
						$("#result").addClass("fail");
						$("#textTitle").html("ERROR!");
						$("#textResult").html("Por favor completa todos los campos del formulario.");					
					break;
					case 'ERROR_PHONENUMBER_ALREADY_IN_USE':
						$("#result").removeClass("succeed");
						$("#result").addClass("fail");
						$("#textTitle").html("ERROR!");
						$("#textResult").html("Lo sentimos. El tel&eacute;fono especificado ya est&aacute; inscrito en nuestro servicio.");
					break;
					case 'OK_USER_SAVED':
						$("#result").removeClass("fail");
						$("#result").addClass("succeed");
						$("#textTitle").html("LISTO!");
						$("#textResult").html("Ya puedes usar nuestro servicio. Envia tus mensajes con la letra F.");
					break;
					
					default:
						alert(response);
						break;
				}
				$("#result").fadeIn("slow");
				setTimeout("ocultarResultado()", 4000);	
			}
		});
	});
	
	var block = false;
	var currentCard = 1;
	

	
	function EsNumero(e) {
    	var keynum;
    	var keychar;
    	var numcheck;

    	if (window.event) // IE
    	{
    	    keynum = e.keyCode;
    	}
    	else if (e.which) // Netscape/Firefox/Opera
    	{
    	    keynum = e.which;
    	}
    
    	keychar = String.fromCharCode(keynum);
    	numcheck = /\d/;
    	return numcheck.test(keychar);
    }
	
	$(".soloNumeros").each(function() {
        $(this).keypress(function(event) {
            //8 == backspace
            var excepciones = [8, undefined];
            var esExcepcion = false;

            var keynum;

            if (window.event) // IE
            {
                keynum = event.keyCode;
            }
            else if (event.which) // Netscape/Firefox/Opera
            {
                keynum = event.which;
            }

            for (var i = 0; i < excepciones.length; i++) {
                if (excepciones[i] == keynum) {
                    esExcepcion = true;
                }
            }

            if (!EsNumero(event) && !esExcepcion) {
                return false;
            }
        });
    });
});

var currentCard = 1;
var maxIndex = 4;
var block = false;


var showNextCard = function()
{
	if (block) return;

	var index = (currentCard == maxIndex) ? 0 : currentCard + 1;

	var oldCard = "#card-" + currentCard;
	var newCard = "#card-" + index;
  
	block = true;
	$(oldCard).fadeOut(function() { $(newCard).fadeIn(); block = false; });
  
	currentCard = index;
};

function bloquearRegistro() {
	$("input[name='name']").attr("disabled", "disabled");
	$("input[name='lastName']").attr("disabled", "disabled");
	$("input[name='phoneNumber']").attr("disabled", "disabled");
	$("input[name='email']").attr("disabled", "disabled");
	$("#unirse").attr("disabled", "disabled");
}

function desbloquearRegistro() {
	$("input[name='name']").removeAttr("disabled");
	$("input[name='lastName']").removeAttr("disabled");
	$("input[name='twitterAccountName']").removeAttr("disabled");
	$("input[name='twitterAccountPassword']").removeAttr("disabled");
	$("input[name='phoneNumber']").removeAttr("disabled");
	$("input[name='email']").removeAttr("disabled");
}

function ocultarResultado() {
	$("#result").fadeOut("slow", function() {
		$("#unirse").removeAttr("disabled");
	});
}