var jangoCovered = false;

$(document).ready(function() {
    //store all jangomail heights (will need for closing the cover)
    $('.jangoMailSignup').each(function(){
        $(this).attr('naturalheight', $(this).height() + "px");
    });
    
    $('.jangoMailSignup .jangoMailSignupTxt').each(
        function() {
            if ($(this).val() == '') {
                $(this).val($(this).attr('initialTxt'));
            }
        }
    );
    $('.jangoMailSignup .jangoMailSignupTxt').focus(
            function() {
                if ($(this).val() == $(this).attr('initialTxt')) {
                    $(this).val('');
                }
            }
        );
    $('.jangoMailSignup .jangoMailSignupTxt').blur(
            function() {
                if ($(this).val() == '') {
                    $(this).val($(this).attr('initialTxt'));
                }
            }
        );
    $('.jangoMailSignup .jangoMailSignupTxt').keypress(
            function(e) {
                if (e.which == 13) {
                    $('.jangoMailSignup .jangoMailSignupButton').click();
                }
            }
        );
        
        
    $(this).click(function(){
        if(jangoCovered)
        {
            jangoCovered = false;
            $('.jangoMailSignup').stop();
            $('.jangoMailCover').stop();
            $('.jangoMailCoverText').stop();
            $('.jangoMailSignup').each(function()
            {
                $(this).animate({height: $(this).attr('naturalHeight')}, 500);
            });
            $('.jangoMailCover').animate({height: "0px"}, 500);
            $('.jangoMailCoverText').html('');
        }
    });

    /*
    &mailList=Retail-Sports
    or
    &mailList=Retail-Concerts
    or
    &mailList=Retail-Sports;Retail-Concerts
    */
    $('.jangoMailSignup .jangoMailSignupButton').click(
        function(event) {
            //first, unerror all errored fields
            var erroredClass = 'errored';
            $('.' + erroredClass).removeClass(erroredClass);
            var emailElement = $(this).parent().children('.jangoMailSignupEmailTxt');
            var zipcodeElement = $(this).parent().children('.jangoMailSignupZipTxt');
            var firstnameElement = $(this).parent().children('.jangoMailSignupFirstNameTxt');
            var concertsElement = $(this).parent().children('.checkboxes:first').children('.concertsCheckbox:first');
            var sportsElement = $(this).parent().children('.checkboxes:first').children('.sportsCheckbox:first');

            var newsletterTargets = 'TN Website Signup'; //name of the newsletter group
            var newsletterDisplay = 'TicketNetwork Newsletter';
            
            var alertMessage = '';

            //Removed the checkboxes so we don't need to choose between newsletter groups.
            /*if (concertsElement.is(':checked') && sportsElement.is(':checked')) {
                newsletterTargets += escape('ShowSaver;SportsSaver');
                newsletterDisplay = 'ShowSaver and SportsSaver.';
            }
            else if (concertsElement.is(':checked')) {
                newsletterTargets += 'ShowSaver';
                newsletterDisplay = 'ShowSaver.';
            }
            else if (sportsElement.is(':checked')) {
                newsletterTargets += 'SportsSaver';
                newsletterDisplay = 'SportsSaver.';
            }
            else {
                sportsElement.addClass(erroredClass);
                concertsElement.addClass(erroredClass);
                alertMessage += '\nPlease select at least one kind of newsletter.';
                //alert('Please select at least one kind of newsletter.');
                //return;
            }*/
            
            if(firstnameElement.val() == '' || firstnameElement.val() == firstnameElement.attr('initialtxt'))
            {
                firstnameElement.addClass(erroredClass);
                alertMessage += '\nPlease enter your name.';
                //alert('Please enter your name.');
                //return;
            }
            
            //var emailReg = /^[0-9a-zA-Z]([-.\w]*[0-9a-zA-Z_+])*@([0-9a-ZA-Z][-\w]*[0-9a-zA-Z]\.)+[alert-zA-Z]{2,9}$/;            

            if(emailElement.val().search("^[0-9a-zA-Z]([-.\\w]*[0-9a-zA-Z_+])*@([0-9a-zA-Z][-\\w]*[0-9a-zA-Z]\\.)+[a-zA-Z]{2,9}$"))
            {
                emailElement.addClass(erroredClass);
                alertMessage += '\nPlease enter a valid email address.';
                //alert("Please enter a valid email address.");
                //return;
            }
            
            if(zipcodeElement.val().search("^[-\\w\\s\\d]*$") ||zipcodeElement.val() == '' || zipcodeElement.val() == '' || zipcodeElement.val() == zipcodeElement.attr('initialtxt'))
            {
                zipcodeElement.addClass(erroredClass);
                alertMessage += '\nPlease enter your zipcode (dashes, spaces, numbers, and letters only).';
                //alert('Please enter your zipcode.');
                //return;
            }
            
            if(alertMessage.length > 0)
            {
                alert(alertMessage);
                return;
            }

            if (emailElement.val() != emailElement.attr('initialTxt')) {
                event.stopPropagation();
                var zipCode = (zipcodeElement.val() != zipcodeElement.attr('initialTxt')) ? zipcodeElement.val() : '';
                var firstName = (firstnameElement.val() != firstnameElement.attr('initialTxt')) ? firstnameElement.val() : '';
                var outerElement = $(this).parent();
                var coverElement = outerElement.parent().children('.jangoMailCover');
                var coverTextElement = outerElement.parent().children('.jangoMailCoverText');
                var originalOuterHeight = outerElement.height();
                outerElement.animate({height: "105px"}, 500);
                coverElement.animate({height: "110px"}, 500, "linear",
                    function()
                    {
                        coverTextElement.html('Thank you for subscribing to the ' + newsletterDisplay);
                    }
                );
                
                $.get('/ajax/jango-signup.aspx?em=' + urlEncode(emailElement.val())
                    + '&zp=' + urlEncode(zipCode) + '&fn=' + urlEncode(firstName) + '&mailList=' + urlEncode(newsletterTargets));
                jangoCovered = true;
            }
        }
    );
});

