﻿
const MESSAGE_FRENCH_SUCCESS = "Thank you for signing up";
const MESSAGE_FRENCH_ERROR = "We're sorry, there was an error processing your signup.\nPlease try again later.";
const MESSAGE_FRENCH_VALIDATION = "Merci d’indiquer votre nom et une adresse email valide";

const MESSAGE_ENGLISH_SUCCESS = "Thank you for signing up";
const MESSAGE_ENGLISH_ERROR = "We're sorry, there was an error processing your signup.\nPlease try again later.";
const MESSAGE_ENGLISH_VALIDATION = "Sorry, you must enter your name and provide a valid email address";

const MESSAGE_GERMAN_SUCCESS = "Thank you for signing up";
const MESSAGE_GERMAN_ERROR = "We're sorry, there was an error processing your signup.\nPlease try again later.";
const MESSAGE_GERMAN_VALIDATION = "Bitte füllen Sie das Namensfeld aus und geben Sie eine gülitge Email Adresse an";



function validateCampaignSignupForm() {
    var firstName = $("#FirstName").val().trim();
    var lastName = $("#LastName").val().trim();
    var email = $("#Email").val().trim();
    var optIn = $("#OptIn").attr("checked");

    if (firstName.isNullOrEmpty() || lastName.isNullOrEmpty() || email.isNullOrEmpty() || !Is.EmailAddress(email)) {
        languageAlert("Validation");
    } else {
        postForm();
    }
}

function postForm() {

    var url = "http://consumerchoice.eu/ProcessForm.aspx?FirstName=" + $("#FirstName").val() + "&LastName=" + $("#LastName").val() + "&Email=" + $("#Email").val() + "&OptIn=" + $("#OptIn").attr("checked") + "&Language=" + $("#Language").val() + "&Country=" + $("#Country").val();
    window.location = url;

    // Issues with JSONP implementation so using simple querystring based contact form
//    var data = { "FirstName": $("#FirstName").val(),
//                 "LastName": $("#LastName").val(),
//                 "Email": $("#Email").val(),
//                 "OptIn": $("#OptIn").attr("checked") };
//    $.ajax({
//        type: "POST",
//        url: "http://dev.consumerchoice.clients.doteditor.co.uk/ProcessForm.asmx/CampaignSignup?callback=?&format=json",
//        data: JSON.stringify(data),
////        contentType: "application/json",
//        dataType: "jsonp",
//        success: onSuccess,
//        processData: false
//    });
//    return false;
}

//function onSuccess(data) {
//    if (data.d) { // .NET JSON result returns inside d object wrapper
//        $("#FirstName").val("");
//        $("#LastName").val("");
//        $("#Email").val("");
//        $("#OptIn").attr("checked", false);

//        languageAlert("Success");
//    } else {
//        // processing didn't return true so throw error
//        onFailure(data);
//    }
//}

//function onFailure(data) {
//    languageAlert("Error");
//}

function languageAlert(messageKey) {
    switch ($("#Language").val())
    {
        case "French":
            switch (messageKey) {
                case "Success":
                    alert(MESSAGE_FRENCH_SUCCESS);
                    break;
                case "Error":
                    alert(MESSAGE_FRENCH_ERROR);
                    break;
                case "Validation":
                    alert(MESSAGE_FRENCH_VALIDATION);
                    break;
            }
            break;
        case "German":
            switch (messageKey) {
                case "Success":
                    alert(MESSAGE_GERMAN_SUCCESS);
                    break;
                case "Error":
                    alert(MESSAGE_GERMAN_ERROR);
                    break;
                case "Validation":
                    alert(MESSAGE_GERMAN_VALIDATION);
                    break;
            }
            break;
        default:
            switch (messageKey) {
                case "Success":
                    alert(MESSAGE_ENGLISH_SUCCESS);
                    break;
                case "Error":
                    alert(MESSAGE_ENGLISH_ERROR);
                    break;
                case "Validation":
                    alert(MESSAGE_ENGLISH_VALIDATION);
                    break;
            }
            break;
    }
}

String.prototype.trim = function() {
    return this.replace(/^\s*/, "").replace(/\s*$/, "");
}

String.prototype.isNullOrEmpty = function() {
    return ((this == "") || (this == null) || (this == undefined));
}