function checkRegisterEmail(el,action) {
	var email = $("#email").val();
	if(!/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i.test(email)) {
		el.parent().next().attr("class","notice Error").html(messages["iscrizioneEmail"]);
		return false;
	} else if(action == "submit" && emailDisp) {
		if(emailDisp) {
			el.parent().next().attr("class","notice").html("");
			return true;
		} else return false;
	} else {
		return true;
	}
};

function checkNickname(el,action) {
	if($("#username").val().length == 0) {
		el.parent().next().attr("class","notice Error").html(messages["iscrizioneNickname"]);
		return false;
	} else if(action == "submit" && nicknameDisp) {
		if(nicknameDisp) {
			el.parent().next().attr("class","notice").html("");
			return true;
		} else return false;
	} else {
		return true;
	}
};

function checkRePassword(el) {
	if($("#password").val() != $("#repassword").val()) {
		el.parent().next().attr("class","notice Error").html(messages["iscrizioneRepassword"]);
		return false;
	} else {
		el.parent().next().attr("class","notice").html("");
		return true;
	}
};

function checkPassword(el) {
	if($("#password").val().length < 6) {
		el.parent().next().attr("class","notice Error").html(messages["iscrizionePassword"]);
		return false;
	} else {
		el.parent().next().attr("class","notice").html("");
		return true;
	}
};

function checkInformativa(el) {
	if(el.filter(':checked').length == 0) {
		el.parent().next().attr("class","notice Error").html(messages["iscrizioneInformativa"]);
		return false;
	} else {
		el.parent().next().attr("class","notice").html("");
		return true;
	}
};

function checkSubmit() {
	if(nicknameDisp * emailDisp * checkInformativa($("#informativaSi")) * checkRegisterEmail($("#email"),"submit") * checkPassword($("#password")) * checkRePassword($("#repassword")) * checkNickname($("#username"),"submit") == 1) {
		return true;
	} else return false;
};

function checkBlur() {
	/************Nickname********************/
	$("#username").blur(function () {
		var el = $(this);
		if(checkNickname($(this),"blur")) {
			$.ajax({
			  url: PATH_CHECK_EMAIL_NICKNAME+"?action=username&username="+$("#username").val(),
			  cache: false,
			  dataType: "text",
			  success: function(result){
				if(result == "ok") {
					nicknameDisp = true;
					el.parent().next().attr("class","notice siDisp").html(messages["iscrizioneNicknameCheckOK"]);
				}  else {
					nicknameDisp = false;
					el.parent().next().attr("class","notice noDisp").html(messages["iscrizioneNicknameCheckKO"]);
				}
			  }
			});
		}
    });
	/**************Email********************/
	$("#email").blur(function () {
		var el = $(this);
		if(checkRegisterEmail($(this),"blur")) {
			$.ajax({
			  url: PATH_CHECK_EMAIL_NICKNAME+"?action=email&email="+$("#email").val(),
			  cache: false,
			  dataType: "text",
			  success: function(result){
				if(result == "ok") {
					emailDisp = true;
					el.parent().next().attr("class","notice siDisp").html(messages["iscrizioneEmailCheckOK"]);
				}  else {
					el.parent().next().attr("class","notice noDisp").html(messages["iscrizioneEmailCheckKO"]);
				}
			  }
			});
		}
    });	
	/**************Password********************/
	$("#repassword").blur(function () {
		checkRePassword($(this));
    });
	$("#password").blur(function () {
		checkPassword($(this));
    });
 return false;
};
function iscrizione() {
	checkBlur();
	$("#next").click(function() {
		allInputsSubscribe = $(".inserisci input");
		$('html,body').animate( {scrollTop: $( '.Registrazione' ).offset().top});
		if(checkSubmit()) {
			$(".inserisci").fadeOut(1000, function () {
				$("UL.tabIscrizione>LI").toggleClass("selected");
				$(".conferma").fadeIn(1000);
				
				allInputsSubscribe.each(function () {
					var ok = true;
					var id = $(this).attr("id")+"_new";
					var val = $(this).val();
					if($(this).attr("type") == "radio" && $(this).attr("checked").toString() == "false"){
						ok = false;
					}
					if($(this).attr("id").toString() == "password" || $(this).attr("id").toString() == "repassword") {
						val = val.replace(/./g, "*");
					}
					if($(this).attr("id").toString() == "newsletterFlag") {
						val = val == "1" ? "Si" : "No";
					}					
					if(ok) {
						$("#"+id).html(val);
					}
				});
			});
		}
		return false;
	});
	$("#cancel").click(function() {
		$(".inserisci input").val("");
		$(".notice").attr("class","notice").html("");
		return false;
	});
	$("#invia").click(function() {
		var valori = {};
		allInputsSubscribe.each(function () {
			var ok = true;
			var val = $(this).val();
			if($(this).attr("type") == "radio" && $(this).attr("checked").toString() == "false"){
				ok = false;
			}
			if(ok) {
				valori[$(this).attr("id")] = val;
			}			
		});
		$.post(PATH_REGISTRAZIONE, valori,
		  function(data){
			var result = data.split("-");
			var name = result[1] != undefined ? result[1] : "";

			if(result[0] == "ok") {
				$("#esito").html(messages["registrazioneOK"].replace(/#username#/,name));
			} else {
				$("#esito").html(messages["registrazioneKO"]);
			}
			$("#ranzer, .welcome").fadeOut(1000, function () {
				$("#ranzer").remove();
				$("#esito").fadeIn(1000);
				$("#ranzer").remove();
			});
		});
		return false;
	});
	$("#prev").click(function() {
		$('html,body').animate( {scrollTop: $( '.Registrazione' ).offset().top});
		$(".conferma").fadeOut(1000, function () {
			$("UL.tabIscrizione>LI").toggleClass("selected");
			$(".inserisci").fadeIn(1000);
		});
		return false;
	});	
};
var allInputsSubscribe;
var emailDisp = false;
var nicknameDisp = false;
var PATH_REGISTRAZIONE = "http://"+document.domain+"/MyRaiTv/sendRegistration.do";
var PATH_CHECK_EMAIL_NICKNAME = "http://"+document.domain+"/MyRaiTv/checkData.do";
$(function(){iscrizione();});
