﻿/******************************************************************************************************************************************
Script by Bjorn Hall ~CS~ *
www.celebrationstudios.se *
***************************

This script gets the values of the fields #ctl00_Newsletter_yourmail and #ctl00_Newsletter_yourname
and saves them to variables. It the sends the entered values via an ajax call to apsis.
It alsoo show some error messages depending if the user has entered valid Email and/or name

The effects for showing error messages and displaying what field is wrong depends on 
"_root/Scripts/web/jquery-ui-1.8.1.custom.min.js" and jquery.
This script (sendApsis.js) and "jquery-ui-1.8.1.custom.min.js" are included in "_root/Templates/Framework/Controls/web/web_newsletter.ascx"
********************************************************************************************************************************************/

$(document).ready(function () {

    $('.error').hide(); //Hide the container for errormessages

    $('div#infocontent').ajaxError(function (event, request, settings) {
        $(this).append("Error requesting page " + settings.url + ", status:" + request.statusText);
    });

    $("#signup").click(function () {
        var email = $('input#ctl00_Newsletter_yourmail').val(); //Get the value of the email-field
        var name = $('input#ctl00_Newsletter_yourname').val(); //Get the value of the name-field
        var nameLast = $('input#ctl00_Newsletter_yournamelast').val(); //Get the value of the name-field
        //Put name and email in variables 
        //var nameSend = '?pf_SubscriberName='+name;
        //var emailSend = '&pf_Email='+email;
        var host = window.location.hostname.toLowerCase();
        if (host == 'server02') {
            var hdRegister = 'http://server02/Hunkydory/Templates/MyAccountCreate.aspx';
        } else {
			var hdRegister = '/templates/MyAccountCreate.aspx';
		}
        //Apis url
        //var apsisUrl = "http://www.anp.se/processSubscriptionForm.asp";
        //Put the apsis url together
        //var toApsis = apsisUrl+nameSend+emailSend+"&pf_DeliveryFormat=HTML&Submit=Yes&pf_FormType=OptOutList&pf_OptInMethod=SingleOptInMethod&pf_CounterDemogrFields=1&pf_CounterMailinglists=1&pf_AccountId=4154&pf_ListById=1&pf_Version=2&pf_MailinglistName1=70272";

        if (email != 0)//if NOT empty
        {
            if (isValidEmailAddress(email) && name != 'Your Name' && nameLast != 'Your Last Name') //If the email is valid AND name isnt empty
            {

                $.post(hdRegister, { tbFirstname: name, tbNameLast: nameLast, tbEmail: email }, function (regAnswer) {
                    if (regAnswer == 'OK') {
                        //Hide the window

                        $('#newsletter_signup').fadeOut();
                        $('#newsletter_signup').html('');
                        var thankmessage = $('#newsletter_thanks').html();
                        $('#newsletter_signup').html(thankmessage);
                        $('#newsletter_signup').fadeIn();
                        //$('#newsletter').delay(2500).fadeOut('slow');
                    }
                    if (regAnswer == 'Username exists') {
                        $('.error').html('User already exisits').fadeIn('fast').delay(1500).fadeOut('fast');
                        $('input#ctl00_Newsletter_yourmail').parents().filter('div.box').effect("bounce", { times: 3, direction: "left", distance: 10 }, 200);
                    }
                });


            } if (isValidEmailAddress(email) && name == 'Your Name') {//If the adress is valid but no name is entered
                $('.error').html('Name is required').fadeIn('fast').delay(1500).fadeOut('fast'); //display error
                $('input#ctl00_Newsletter_yourname').parents().filter('div.box').effect("bounce", { times: 3, direction: "left", distance: 10 }, 200);
            }
            else if (isValidEmailAddress(email) && nameLast == 'Your Last Name') {//If the adress is valid but no name is entered
                $('.error').html('Last name is required').fadeIn('fast').delay(1500).fadeOut('fast'); //display error
                $('input#ctl00_Newsletter_yournamelast').parents().filter('div.box').effect("bounce", { times: 3, direction: "left", distance: 10 }, 200);
            }
            else if (!isValidEmailAddress(email)) {
                //$('input#ctl00_Newsletter_yourmail').parents().filter('div.box').addClass("box_error", 20);
                $('.error').html('Invalid Email').fadeIn('fast').delay(1500).fadeOut('fast');
                $('input#ctl00_Newsletter_yourmail').parents().filter('div.box').effect("bounce", { times: 3, direction: "left", distance: 10 }, 200);
            }
        }
        if (email == 0 && name == 0) {//If both email and name is empty, dont bounce, just show error text
            $('.error').html('Enter email and Name').fadeIn('fast').delay(1500).fadeOut('fast');
        }

        return false; //make sure we dont follow the link, this is a fallback
    });

    // function for checking if the email is valid
    function isValidEmailAddress(emailAddress) {
        var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
        return pattern.test(emailAddress);
    }


});
