$j = jQuery.noConflict();

function formValidate(){
    var r = true;
    var data = [];
    var $e = $j(".invalid_error_msg:first");
    var filter = /^[a-zA-Z0-9]+$/;
    var uid = $j("input[name=uid]:first").val();

    // Champs Vides
    $j("td:has(font)+td input").each(function(idx){
       var $$ = $j(this);
       $$.removeClass("field_invalid");

       if ($$.val() == "") {
           r = false;
           $$.addClass("field_invalid");
           $e.parent().show().end().text("Les champs marqués ne peuvent être vide.");
       }

       // Code Postal
       if (r && idx == 2 && ($j("select[name='pays'] option:selected:first").val() == "France" || $j("select[name='pays'] option:selected:first").val() == "Monaco") && (isNaN($$.val()) || $$.val().length != 5)){
           r = false;
           $$.addClass("field_invalid");
           $e.parent().show().end().text("Le code postal doit être composé de 5 chiffres.");
       }
	   if (r && idx == 2 && ($j("select[name='pays'] option:selected:first").val() != "France" && $j("select[name='pays'] option:selected:first").val() != "Monaco") && (isNaN($$.val()) || $$.val().length != 4)){
           r = false;
           $$.addClass("field_invalid");
           $e.parent().show().end().text("Le code postal doit être composé de 4 chiffres.");
       }

       // Minimum
       if (r && idx > 5 && $$.val().length < 6) {
           r = false;
           $$.addClass("field_invalid");
           $e.parent().show().end().text("Vérifiez la taille min. des champs marqués.");
       }

       // Login & Password Alnum
       if (r && ((idx == 6 && uid == 0)  || idx == 7) && !filter.test($$.val())) {
           r = false;
           $$.addClass("field_invalid");
           $e.parent().show().end().text("Les champs marqués acceptent uniquement des caractères alphanumériques.");
       }

       data.push($$);
    });

    // Champ Mail
    filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
    if (r && !filter.test(data[5].val())) {
        r = false;
        data[5].addClass("field_invalid");
        $e.parent().show().end().text("Cet adresse mail est invalide.");
    }

    // Password != ConfPassword
    if (r && (data[7].val() != data[8].val())) {
        r = false;
        data[7].addClass("field_invalid");
        data[8].addClass("field_invalid");
        $e.parent().show().end().text("Les mots de passe doivent être identiques.");
    }

    // Login == Password
    if (r && (data[6].val() == data[7].val())) {
        r = false;
        data[6].addClass("field_invalid");
        data[7].addClass("field_invalid");
        $e.parent().show().end().text("Le login doit être différent du mot de passe.");
    }

    // Login
    if (r) {
        $j.ajax({
           type: "GET",
           url: "index.php",
           data: "lien=checkLoginPlease&login=" + data[6].val(),
           async: false,
           success: function(d){
			$j('.login_error_msg').hide();
             if (d > 0) {
                 r = false;
                 data[6].addClass("field_invalid");
                 $e.parent().show().end().text("Ce login existe déjà.");
				 $j('.login_error_msg').show();
             }
           }
         });
    }

    return r;
}

$j(function(){
    $j(".datepicker").each(function(){
        var $$ = $j(this);
        $$.datepicker({showOn: 'both',
                       buttonImage: 'images/calendar.png',
                       buttonImageOnly: true,
                       buttonText: 'Choisissez une date',
                       changeFirstDay: false,
                       yearRange: '-100:+0',
                       firstDay: 1,
                       dateFormat: 'yy-m-dd',
                       defaultDay: +0,
            onClose: function(date){
                if (date != null)
                    $$.prev().val($j.datepicker.formatDate('yy-mm-dd', date));
            }});
    });
});