﻿function ClearNewsLetterForm() {
    HideSpinner();
    $("#TB_NewsLetter input").val('');
}

var callInProgress = false;

function ShowNewsLetterSpinner() {
    $("#TB_NewsLetter .content").hide();
    $("#TB_NewsLetter .footer").hide();
    $("#TB_NewsLetter .spinner").show();
}

function HideNewsLetterSpinner() {
    $("#TB_NewsLetter .spinner").hide();
    $("#TB_NewsLetter .content").show();
    $("#TB_NewsLetter .footer").show();
}

function ValidateNewsLetterInput() {
    var valid = true;

    var name = $("#TB_NewsLetter .name input").val();
    var email = $("#TB_NewsLetter .email input").val();

    if (name == '' || name == 'your name') {
        $("#TB_NewsLetter .name span.err").show();
        valid = false;
    }
    else {
        $("#TB_NewsLetter .name span.err").hide();
    }


    if (email == '' || email == 'your email') {
        $("#TB_NewsLetter .email span.err").show();
        valid = false;
    }
    else {
        if (validateEmail(email)) {
            $("#TB_NewsLetter .email span.err").hide();
        }
        else {
            $("#TB_NewsLetter .email span.err").attr("title", "Email is invalid!").show();
            valid = false;
        }
    }

    return valid;
}

function RegisterNewsLetter() {

    if (!callInProgress && ValidateNewsLetterInput()) {

        ShowNewsLetterSpinner();

        var name = $("#TB_NewsLetter .name input").val();
        var email = $("#TB_NewsLetter .email input").val();

        callInProgress = true;
        IcelandToday.Services.Contact.NewsLetterSignup(name, email, RegisterNewsLetterComplete, RegisterNewsLetterFailed);
    }
}

function RegisterNewsLetterComplete(data, methodContext, methodName) {
    if (data != null) {
        if (data.Value == 1) {//Success
            $("#TB_NewsLetter .field").hide();
            $("#TB_NewsLetter .controls").hide();
            $("#TB_NewsLetter .content").html('<h5><span>Our Newsletter</span></h5><p style="font-size: 12px;">Thank you for signing up for the newsletter.<br /><br />You are now required to confirm your email address. <br />You should receive an email shortly which contains details of your subscription and instructions on how to confirm your email address. <br />Once you have confirmed your email address, <br />you will be subscribed to the newsletter.</p>');
        }
        else if (data.Value == -1) {//Email already registered
            $("#TB_NewsLetter .message p").text('Email already registered.').addClass("err").parent("div.message").show();
        }
        else {//Failed
            $("#TB_NewsLetter .message p").text("Could't signup you up, please try again later.").addClass("err").parent("div.message").show();
        }
    }
    else {//Error
        alert("Error: Register newsletter.");
    }

    //Hide the spinner
    HideNewsLetterSpinner();
    //Set the loading status to false
    callInProgress = false;

}

function RegisterNewsLetterFailed(exception, methodContext, methodName) {
    //Error

    alert("Error: Register newsletter.");

    //Hide the spinner
    HideNewsLetterSpinner();
    //Set the loading status to false
    callInProgress = false;
}

function ShowSendPageSpinner() {
    $("#TB_Send .content").hide();
    $("#TB_Send .footer").hide();
    $("#TB_Send .spinner").show();
}

function HideSendPageSpinner() {
    $("#TB_Send .spinner").hide();
    $("#TB_Send .content").show();
    $("#TB_Send .footer").show();
}

function ValidateSendPageInput() {
    var valid = true;

    var name = $("#TB_Send .name input").val();
    var email = $("#TB_Send .email input").val();

    if (name == '' || name == 'your name') {
        $("#TB_Send .name span.err").show();
        valid = false;
    }
    else {
        $("#TB_Send .name span.err").hide();
    }


    if (email == '' || email == 'email address of recipient') {
        $("#TB_Send .email span.err").show();
        valid = false;
    }
    else {
        if (validateEmail(email)) {
            $("#TB_Send .email span.err").hide();
        }
        else {
            $("#TB_Send .email span.err").attr("title", "Email is invalid!").show();
            valid = false;
        }
    }

    return valid;
}

function SendPage() {

    if (!callInProgress && ValidateSendPageInput()) {

        ShowSendPageSpinner();

        var name = $("#TB_Send .name input").val();
        var email = $("#TB_Send .email input").val();
        var body = $("#TB_Send .body textarea").text();

        var url = window.location.href;
        var newsID = 0;

        callInProgress = true;
        IcelandToday.Services.Contact.SendPage(name, email, body, url, newsID, SendPageComplete, SendPageFailed);
    }
}

function SendPageComplete(data, methodContext, methodName) {
    if (data != null) {
        if (data.Value == 1) {//Success
            $("#TB_Send .field").hide();
            $("#TB_Send .controls").hide();
            $("#TB_Send .message p").text('Page notification sent.').removeClass("err").parent("div.message").show();
        }        
        else {//Failed
            $("#TB_Send .message p").text("Could't send page, please try again later.").addClass("err").parent("div.message").show();
        }
    }
    else {//Error
        alert("Error: Sending page.");
    }

    //Hide the spinner
    HideSendPageSpinner();
    //Set the loading status to false
    callInProgress = false;

}

function SendPageFailed(exception, methodContext, methodName) {
    //Error

    alert("Error: Sending page.");

    //Hide the spinner
    HideSendPageSpinner();
    //Set the loading status to false
    callInProgress = false;
}
