$("#subscriptionCanvas").ready(function()
 {
		$("#subscriptionForm").find("input[type='image'],input[type='submit']").removeAttr("disabled");
		$("#subscriptionForm2").find("input[type='image'],input[type='submit']").removeAttr("disabled");
		$("#createButton img").hide();

		initSubscriptionForms();
		initCustomValidators();
		initBirthDateCombos();		
		initCountries();
		initZip();
		validateFirstForm();
		validateSecondForm();
		validateSecondForm();
 }
);
 function fillDays()
	{
		$("#sl_day").find("option").remove().end();				
		$("#sl_day").append ("<option value=''>Jour</option>");
		for (var i = 1; i <= 9; i++)
			$("#sl_day").append ("<option value='" + i + "'>" + ("0" + i) + "</option>");
		for (var i = 10; i <= 31; i++)
			$("#sl_day").append ("<option value='" + i + "'>" + (i) + "</option>");
	}
	
	function initCountries()
	{		
		$.getJSON('/getCountries',
		 function(data)
		 {
			$("#sl_country").removeAttr("disabled");	
			for (var i = 0; i < data.length; i++)
			{
				$("#sl_country").append("<option value='" + data[i].id + "'>" + data[i].name + "</option>");					
			}
		 }
		);

	}
	
	function updateCity()
	{
		if ($("#sl_country").val() == "")
		{
			$("#ti_zip").val("");
			$("#ti_zip").attr('disabled','disabled');
			$("div_cities").slideUp('fast');
		}
		else
		{
			$("#ti_zip").removeAttr('disabled');
		}
		
		$.getJSON('/getCities', {id_country: $("#sl_country").val(), zip: $("#ti_zip").val()},
			function(data)
		 	{					
				$("#sl_cities").empty();								
				if (data.length == 0)
				{
					$("#div_cities").slideUp('fast');
				}
				else
				{
					$("#div_cities").slideDown('fast');
				}
					
				for (var i = 0; i < data.length; i++)
					$("#sl_cities").append("<option value='" + data[i].id + "'>" + data[i].name + "</option>");
		 	}
		);
		
		
	}
	
	function initZip()
	{
		$("#ti_zip").attr('disabled','disabled');		
		$("#div_cities").hide();
		$("#ti_zip").keyup(function(){updateCity();});
		$("#sl_country").change(function(){updateCity();});
	}
	
	function submitForm()
	{
		$.ajax({
		  type:"POST",
		  url: '/createProfile',
		  success: function(data)
		  {
			connect();
		  },
		  error:function(data)
		  {
		  	jAlert('Erreur lors de la création du profile', 'Erreur');
		  },
		  data:({sex : $("#sl_sex").val(), day:$("#sl_day").val(), month:$("#sl_month").val(),
		  year:$("#sl_year").val(),email:$("#ti_email").val(),city:$("#sl_cities").val(),pseudo:$("#ti_pseudo").val(),
		  password:$("#ti_password").val()})
		});
	}

	function initYears()
	{
		var today = new Date();
		var max_bdate = today.getFullYear() - 18;
		var diff = max_bdate - 1910;
		var years = new Array();
		for (var i = 0; i <= diff; i++)
			$("#sl_year").append("<option value='" + (max_bdate-i )+ "'>" + (max_bdate - i) + "</option>");		
	}
	
	function initCustomValidators()
	{
		jQuery.validator.addMethod("birthdate", function(value, element)
		{ 
  			return $("#sl_day").val() != "" && $("#sl_month").val() != "" && $("#sl_year").val() != "";
		}, 'Vous devez sélectionner un jour, un mois et une année.');
		
		jQuery.validator.addMethod("cityzip", function(value, element)
		{
  			return $("#sl_cities option").length != 0;
		}, "Ce code postal n'est pas reconnu.");
		
		
		jQuery.validator.addMethod("pseudonum", function(value, element)
		{ 
			var reg = /^[0-9]*$/;
			return (reg.test(value) == false);
		}, "Votre pseudonyme ne peut pas contenir uniquement des chiffres.");
		
		jQuery.validator.addMethod("pseudovalid", function(value, element)
		{ 
			var reg = /^[a-z0-9\-_]+$/i;
			return (reg.test(value) == true);
		}, "Votre pseudonyme ne doit comprendre que des chiffres, des lettres ou les caractères - et _");
		
		jQuery.validator.addMethod("emailAccent", function(value, element)
		{ 
			var reg = /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]+$/i;
			return (reg.test(value) == true);
		}, "Veuillez entrer une adresse email valide (sans accents)");
	}
	
	function initBirthDateCombos()
	{
		initYears();
		fillDays();		
		$("#sl_day").change(function(){
		$("#subscriptionForm2").validate().element( "#sl_year" );
		});
		
		$("#sl_month").change(function(){
			$("#subscriptionForm2").validate().element( "#sl_year" );
		});
	}
	
	function validateSecondForm()
	{
		$("#subscriptionForm2").validate({
		success: "valid",		 
		rules:
		 {
			year:"birthdate",
			country:"required",
			zip:"cityzip",
			password:
			{
				required:true,
				minlength:4
			},
			pseudo:
			{
				pseudovalid:true,
				pseudonum:true,
				required:true,
				minlength:3,
				remote: "/checkPseudo"
			}
		},
		messages:
		 {
			country:
			{
				required: "Ce champ est obligatoire."
			},
			confirmation:
			{
				required: "Vous devez à nouveau saisir votre adresse email.",
				equalTo:"Votre adresse email et sa confirmation ne correspondent pas."
			},
			city:
			{
				required:"Ce code postal n'est pas reconnu."
			},
			password:
			{
				required: "Ce champ est obligatoire.",
				minlength:"Votre mot de passe doit comprendre au moins 4 caractères."
			},
			pseudo:
			{
				required:"Ce champ est obligatoire.",
				minlength:"Votre pseudonyme doit comprendre au moins 3 caractères.",
				remote:"Ce pseudonyme n'est pas disponible."
			}
		},
		submitHandler: function()
		{
			var connectURL = $("#subscriptionForm2").attr("action");
			$("#subscriptionForm2").find("input[type='image'],input[type='submit']").attr("disabled", "true");
			$("#createButton img").show();
			$.ajax({
			type:"POST",
			dataType:"text",
			url: connectURL,
			success: function(data)
			{
				$("#subscriptionForm2").find("input[type='image'],input[type='submit']").removeAttr("disabled");
				var cryptPwd = MD5("$1$/G10LWKG" + $("#ti_pseudo").val().toUpperCase() + "*" + $("#ti_password").val());
				var pseudo = $("#ti_pseudo").val();				
				$.ajax({
				type:"POST",
				dataType:"text",
				url: "/login",
				success: function(data)
				{
					$("#createButton img").hide();
					window.location = "/idylive.html#page=congratulations";
				},
				
				data:{login:pseudo, password:cryptPwd, lang:"FRA"}
				});
			},
			error:function(data)
			{
				$("#subscriptionForm2").find("input[type='image'],input[type='submit']").removeAttr("disabled");
				$("#createButton img").hide();
				jAlert('Il y a eu une erreur lors de la création de votre profil, il est possible que votre pseudo soit déjà pris.', 'Erreur');
			},				
			data:$("#subscriptionForm2").serialize()
			});			
		}		
	});
	}
	
	function validateFirstForm()
	{
		$("#subscriptionForm").validate({

		success: "valid",
		 
		rules:
		 {
			
			email:
			{
				email: true,
				required: true,
				emailAccent:true,				
				remote: "/checkEmail"
			},
			
			sex:
			{
				required:true
			},
			
			cgu:
			{
				required:true
			}
		},
		messages:
		 {
		 	sex:
			{
				required:"Ce champ est obligatoire."
			},
			email:
			 {
				required: "Ce champ est obligatoire.",
				email:"Veuillez entrer une adresse email valide",
				remote: "Cette adresse email est déjà utilisée."
			},
			cgu:
			{
				required:"Vous devez certifier être majeur(e) et avoir lu les CGU d'Idylive."
			}
		},
		
		submitHandler: function()
		{
				//event.preventDefault();
				//$("#connectSpinner").show();
				var connectURL = "/createPreUser";				
				$("#subscriptionForm").find("input[type='image'],input[type='submit']").attr("disabled", "true");
				$.ajax({
				type:"POST",
				dataType:"text",
				url: connectURL,
				success: function(data)
				{
					$("#subscriptionForm").find("input[type='image'],input[type='submit']").removeAttr("disabled");
					$("#hdIdPreUser").val(data);
					$("#subscriptionForm").hide();
					$("#subscriptionForm2").show();
				},
				error:function(data)
				{
					$("#subscriptionForm").find("input[type='image'],input[type='submit']").removeAttr("disabled");
					jAlert('Il y a eu une erreur lors de la création de votre profil, il est possible que votre pseudo soit déjà pris.', 'Erreur');
				},				
				data:$("#subscriptionForm").serialize()
				});
		}
	});
	}
	
	function initSubscriptionForms()
	{
		$("#subscriptionForm2").hide();		
	}
	
