﻿$(function() {
        //$('#RSP_TIT').focus();
	    $.validator.addMethod("checkConnexionKey", checkConnexionKey, alreadyExistsText);
	    $('#FRM_INFO').validate({
	        rules : {
	            // Responsible details
	            RSP_TIT : {required:true},
	            RSP_MEL : {required:true, email:true},
	            RSP_NAM : {required:true},
	            RSP_PRN : {required:true},
	            
	            // Account details
	            CNX_LOG : {required:true, checkConnexionKey:true, alphanum: true},
	            CNX_PWD : {required:true,minlength:5},
	            CNX_PWD2 : {equalTo:"#CNX_PWD"},
	            
	            // Resource information mandatory fields (only if hasRessource is checked)
	            SOC_NAM : {required:true},
	            SOC_RSC : {required:true},
	            SOC_COP : {required:true},
	            SOC_ADR : {required:true},
	            SOC_VIL : {required:true},
	            SOC_CNT : {required:true}
            },
            messages : {
                // Password confirmation message
                CNX_PWD2 : {equalTo:"Confirmation de mot de passe mal saisie"},
            },
            invalidHandler: formNotValidatedGeneric
        });

	    /* overwrite default validator messages */
	    $.extend($.validator.messages, {
	    	minlength: $.format("Veuillez saisir au moins {0} caractères"),
	        required: "Champ obligatoire",
	        email:"Veuillez entrer une adresse email valide"
	    });
	    jQuery.validator.addMethod("alphanum", function(value, element) {
	    		return this.optional(element) || /^[a-z0-9_]+$/i.test(value); },
	    		"Caractères alphanumériques et '_' autorisés uniquement");
	    
	    // Initializes method access (asynchronously) in order to improve response time
        AccountManager.accountIsAvailable("", function() {});
    });

function setPage(crtDivId, divIdToShow, previous) {
    if (previous || $('#FRM_INFO').validate().form()) {
        $('#'+crtDivId).hide();
        $('#'+divIdToShow).show();
    }
}

function updateCompanyCode() {
    var socName = $('#SOC_NAM').val();
    var companyCode = removeFromString(socName, " ");
    if (companyCode) {
        $('#SOC_RSC').val(socName);
        $('#CNX_LOG').val(companyCode);
    }
}

function checkConnexionKey() {
    return AccountManager.accountIsAvailable($('#CNX_LOG').val());
}

function registerNewUser() {
    if (!$('#FRM_INFO').validate().form() || !$('#cgvCheckBox').is(':checked')) {
        return;
    }

    setPage('CGV', 'SENDING');
    setTimeout(function() {
        $(':input').attr('disabled', true).css('background-color', '#aaa');
        var result = AccountManager.registerNewAccount(
            $('#RSP_TIT').val(), $('#RSP_NAM').val(), $('#RSP_PRN').val(), $('#RSP_MEL').val(), $('#RSP_TEL').val(), $('#RSP_SRC').val(),
            $('#SOC_NAM').val(), $('#SOC_RSC').val(), $('#SOC_ADR').val(), $('#SOC_ADR2').val(), $('#SOC_COP').val(), $('#SOC_VIL').val(),
            $('#SOC_CNT').val(), $('#CNX_LOG').val(), $('#CNX_PWD').val());
        if (result == "ok") {
            $('#ResultText').html(sentText1 + $('#RSP_MEL').val() + sentText2 + "<br/><br/><a href='" + defaultPageUrl + "'>Revenir au site e-TimeTracker</a>");
            setPage('SENDING', 'RESULT');
        }
        else if (result == "alreadyExists") {
            $(':input').attr('disabled', false).css('background-color', '#fff');
            $('#loginExistMessage').html(alreadyExistsText);
            $('#RESULT').hide();
            setPage('SENDING', 'INFO', true);
        }
        else {
            $(':input').attr('disabled', false).css('background-color', '#fff');
            $('#ResultText').html(errorText);
            setPage('SENDING', 'RESULT');
        }
    }, 10);
}

