﻿
function BindCalendar() {
    var StartDate = new Date(1920, 1 - 1, 1);
    jQuery('#calendar').datepicker({
        showMonthAfterYear: false,
        showOn: 'button', nextText: '', prevText: '',
        buttonImage: '/Images/Calendar.png',
        buttonImageOnly: true,
        changeMonth: true, changeYear: true,
        firstDay: 1,
        dateFormat: 'dd/mm/yy',
        gotoCurrent: true,
        monthNames: ['Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Aout', 'Septembre', 'Octobre', 'Novembre', 'Décembre'],
        monthNamesShort: ['Jan', 'Feb', 'Mar', 'Avr', 'Mai', 'Jun', 'Jul', 'Aou', 'Sep', 'Oct', 'Nov', 'Dec'],
        dayNames: ['Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi'],
        dayNamesMin: ['Di', 'Lu', 'Ma', 'Me', 'Je', 'Ve', 'Sa'],
        dayNamesShort: ['Dim', 'Lun', 'Mar', 'Mer', 'Jeu', 'Ven', 'Sam'],
        minDate: StartDate,
        onSelect: function(dateText, inst) {
            var TabDate = dateText.split('/');
            var Dte = TabDate[2] + '-' + TabDate[1] + '-' + TabDate[0];
            j$("#hidcalendar")[0].value = Dte;
        }
    });
    jQuery('.ui-datepicker').css('z-index', '9999');
    jQuery('.ui-datepicker-trigger').css('padding-top', '10px');
    jQuery('#labcreateAccountdob').css('padding-top', '10px');
}


function TryLogin() {
    var filledParameters = false;
    var loginTb = $('connectLogin');
    var passwordTb = $('connectPasswd');
    if (loginTb != null && passwordTb != null) {
        var login = $F('connectLogin');
        var password = $F('connectPasswd');
        if (login.blank()) {
            $('LoginMissing').show();
        }
        if (password.blank()) {
            $('PasswordMissing').show();
        }
        if (!login.blank() && !password.blank()) {
            var url = '/Ajax/Profile/Login.aspx';
            new Ajax.Request(url,
        {
            method: 'get',
            asynchronous: false,
            parameters: { Login: login, Password: password },
            onSuccess: function(transport) {
                var response = transport.responseText;
                if (response.include('NotLogged')) {
                    $('InvalidInformations').show();
                }
                else {
                    window.location.href = "/MyAccount.aspx";
                }
            },
            onFailure: function(xhr) {
                var LastError = xhr.status + ' - ' + xhr.statusText;
                //alert("Error :" + LastError);
            }
        });
        }
    }
}


function GetMyCar() {

    var url = '/Ajax/Profile/GetMyCurrentCar.aspx';
    new Ajax.Request(url,
        {
            method: 'get',
            asynchronous: false,
            onSuccess: function(transport) {
                var response = transport.responseText;
                $('divMyCurrentCar').innerHTML = response;
            },
            onFailure: function(xhr) {
                var LastError = xhr.status + ' - ' + xhr.statusText;
                //alert("Error :" + LastError);
            }
        });

    $('reloadFormSelection').hide();

}

function AddMyCar() {
    var prodId = $F('hidProdId');
    var famiId = $F('hidFamiId');
    var url = '/Ajax/UserCustomProduct/CWGAddMyCar.aspx';
    new Ajax.Request(url,
        {
            method: 'get',
            asynchronous: false,
            parameters: {
                ProdId: prodId,
                FamiId: famiId
            },
            onSuccess: function(transport) {
                var response = transport.responseText;
                GetMyCar();
            },
            onFailure: function(xhr) {
                var LastError = xhr.status + ' - ' + xhr.statusText;
                //alert("Error :" + LastError);
            }
        });

}



function CreateAccount() {
    // On clean les messages d'erreur / informations
    $$('.erreur').each(function(item) { item.innerHTML = ''; });
    // récupération des champs
    var civilite = $F('selectionCivilite');
    var firstName = $F('create-account-prenom');
    var lastName = $F('create-account-nom');
    var nickName = $F('createAccountPseudo');
    var email = $F('create-account-email');
    var postCode = $F('create-account-postcode');
    var password1 = $F('createAccountPwd');
    var password2 = $F('createAccountConfirmPwd');
    var newsletter = $('createAccountNewsletter').checked;
    var calendar = $F('hidcalendar');

    var finalValidation = true;

    // Prenom
    if (firstName.blank()) {
        $('divPrenom').innerHTML = '*';
        finalValidation = false;
    }

    // Nom
    if (lastName.blank()) {
        $('divNom').innerHTML = '*';
        finalValidation = false;
    }

    // Pseudo
    if (nickName.blank()) {
        $('divPseudo').innerHTML = '*';
        finalValidation = false;
    }
    else { // pseudo pas encore utilisé
        var url = '/Ajax/Profile/CheckNicknameAvailibility.aspx';
        new Ajax.Request(url,
        {
            method: 'get',
            asynchronous: false,
            parameters: {
                NicknameToCheck: nickName
            },
            onSuccess: function(transport) {
                var response = transport.responseText;
                if (response.include('True')) {
                    // ok, next step
                }
                else {
                    $('divPseudo').innerHTML = 'Ce login est déjà utilisé';
                    finalValidation = false;
                }
            },
            onFailure: function(xhr) {
                var LastError = xhr.status + ' - ' + xhr.statusText;
                //alert("Error :" + LastError);
            }
        });
    }

    // Email
    if (email.blank()) {
        $('divMail').innerHTML = '*';
        finalValidation = false;
    }
    else { // syntaxe du mail
        var verif = new RegExp('^([a-zA-Z0-9_-])+([.]?[a-zA-Z0-9_-]{1,})*@([a-zA-Z0-9-_]{2,}[.])+[a-zA-Z]{2,3}$');
        if (!verif.test(email)) {
            $('divMail').innerHTML = 'E-mail incorrect';
            finalValidation = false;
        }
        else { // email correct - verif disponibilite
            //appel ajax
            var url = '/Ajax/Profile/CheckEMailAvailibility.aspx';
            new Ajax.Request(url,
        {
            method: 'get',
            asynchronous: false,
            parameters: {
                MailToCheck: email
            },
            onSuccess: function(transport) {
                var response = transport.responseText;
                if (response.include('True')) {
                    // ok, next step
                }
                else {
                    $('divMail').innerHTML = 'Cet e-mail est déjà utilisé';
                    finalValidation = false;
                }
            },
            onFailure: function(xhr) {
                var LastError = xhr.status + ' - ' + xhr.statusText;
                //alert("Error :" + LastError);
            }
        });


        }
    }

    if (password1.blank() || password2.blank()) {
        if (password1.blank()) {
            $('divPwd').innerHTML = '*';
            finalValidation = false;
        }
        if (password2.blank()) {
            $('divRepeatPwd').innerHTML = '*';
            finalValidation = false;
        }
    }
    else if (password1 != password2) {
        $('divRepeatPwd').innerHTML = 'Mauvaise saisie';
        finalValidation = false;
    }
    if (finalValidation) {
        var url = '/Ajax/Profile/CreateAccount.aspx';
        new Ajax.Request(url,
        {
            method: 'get',
            asynchronous: false,
            parameters: {
                Civilite: civilite,
                FirstName: firstName,
                LastName: lastName,
                NickName: nickName,
                Email: email,
                PostCode: postCode,
                Password: password1,
                Newsletter: newsletter,
                BirthDay: calendar
            },
            onSuccess: function(transport) {
                var response = transport.responseText;
                var ReturnCode = response.strip();
                switch (ReturnCode) {
                    case "ERROR":
                        Element.update($('ErrorMessage'), "Une erreur est survenue pendant l'initialisation");
                        break;
                    case "OK":
                        window.location.href = "/MyAccount.aspx";
                        break;
                    case "EMPTY":
                        Element.update($('ErrorMessage'), "Les informations obligatoires ne doivent pas être vide");
                        break;
                    default:
                        Element.update($('ErrorMessage'), "Une erreur est survenue pendant l'initialisation");
                        break;
                }
            },
            onFailure: function(xhr) {
                var LastError = xhr.status + ' - ' + xhr.statusText;
                //alert("Error :" + LastError);
            }
        });
    }
}

function UpdatePassword() {
    $$('.error').each(function(item) { item.hide(); });
    var missingParameters = false;
    var oldPassword = $F('oldPassword');
    var newPassword1 = $F('newPassword1');
    var newPassword2 = $F('newPassword2');
    if (oldPassword.blank()) {
        $('PasswordMissing').show();
        missingParameters = true;
    }
    if (newPassword1.blank()) {
        $('SpanMissingPassword1').show();
        missingParameters = true;
    }
    if (newPassword2.blank()) {
        $('SpanMissingPassword2').show();
        missingParameters = true;
    }
    if (newPassword2 != newPassword1) {
        $('SpanNotIdenticalPassword').show();
        missingParameters = true;
    }
    if (!missingParameters) {
        var url = '/Ajax/Profile/UpdatePassword.aspx';
        new Ajax.Request(url,
        {
            method: 'get',
            asynchronous: false,
            parameters: { OldPwd: oldPassword, NewPwd: newPassword1 },
            onSuccess: function(transport) {
                var response = transport.responseText;
                if (response.include('BadPwd')) {
                    $('InvalidInformations').show();
                }
                else {
                    $('dialogmessage').innerHTML = 'Votre mot de passe a été mis à jour.';
                    j$('#dialogmessage').show();
                    j$(function() {
                        jQuery("#dialogmessage").dialog({
                            bgiframe: true,
                            resizable: false,
                            minheight: 140,
                            modal: true,
                            zIndex: 11000,
                            overlay: {
                                backgroundColor: '#FFF',
                                opacity: 0.5
                            },
                            buttons: {
                                'OK': function() {
                                    jQuery(this).dialog('destroy');
                                }
                            }
                        });
                    });
                }
            },
            onFailure: function(xhr) {
                var LastError = xhr.status + ' - ' + xhr.statusText;
                //alert("Error :" + LastError);
            }
        });
    }
}
