$(function(){
    $('#newsletterSignupFrm').submit(function(){
        
        $('#newsletterMsgContainer').html('');
        
        $('#newsletterSignupFrm #submit').after('<img src="../img/ajax-loader.gif" class="loader" />');  
        
        var error = validateNewsletterSignup();
        if(!error) postData();
        
        $('#newsletterSignupFrm img.loader').fadeOut('slow',function(){$(this).remove()});
        
        return false;
    });       

    $('#newsletterEmail').click(function(){
        if( $('#newsletterEmail').val().match(/e-mail/i) ) $('#newsletterEmail').val('');
    });
});

function validateNewsletterSignup()
{
    var error;    
    var errorMsg;    
    
    if(error = validateEmail('#newsletterEmail')){
        highlightError('#newsletterEmail');
        errorMsg = 'Invalid Email Address';
    } else {
        unHighlightError('#newsletterEmail');
    }   
    
    if(errorMsg) {
        writeErrors(errorMsg);        
        return true;
    } else {
        return false;
    }
} 

function validateEmail(id)
{
    var error = false;
    var emailRegex = /^([A-Z0-9\._-]+)@([A-Z0-9\.-]+)\.([A-Z]{2,6})$/i;
    
    if(!$(id).val().match(emailRegex)) error = true;
    
return error;
}

function postData()
{   
    var error;
    var action = $('#newsletterSignupFrm').attr('action');

    if(action)
    {
        $.post
        (
            action,
            $('#newsletterSignupFrm').serialize(),
            function(data){
                if(data.match('success') == null) {
                    highlightError();
                    writeErrors(data);
                } else {
                    $('#newsletterFrmContainer').html('');
                    $('#newsletterMsgContainer').html('<div class="Text1">Congratulations!</div>');
                    $('#newsletterMsgContainer').append('<div class="Text2">You have successfully signed up to receive the Ludia.com newsletter. Look out for our latest newsletter coming soon to your inbox.</div>');                    
                }
            }
        );
    } else {
        alert('HTML Error: No Form Action');
    } 
}

function writeErrors(errorMsg) {
    $('#newsletterMsgContainer').html('<div class="error_message">' + errorMsg + '</div>');  
}

function highlightError(id){
    $(id).css({'border-color':'#fff', 'background-color':'red'});
}

function unHighlightError(id){
    $(id).css({'border-color':'','background-color':''});
}