(function(window, undefined) {
    
    var links = $('a[rel~=external]').each(function(i, link) {
        $(link).attr('target', '_blank');
    });
    
    swfobject.embedSWF('/static/swf/logo_1.swf', 'logo', '920', '120', '9');
    
    $('#contact').find('button').bind('click', function(e) {
        e.preventDefault();
        $('#contact').find('form').trigger('submit');
    });
    
    $('#contact').find('#id_name').bind('focus', function(e) {
        if(this.value === 'Name...') {
            $(this).val('');
        }
    }).bind('blur', function(e) {
        if(/^\s*$/.test($(this).val())) {
            $(this).val('Name...');
        }
    });
    
    $('#contact').find('#id_email').bind('focus', function(e) {
        if(this.value === 'Email address...') {
            $(this).val('');
        }
    }).bind('blur', function(e) {
        if(/^\s*$/.test($(this).val())) {
            $(this).val('Email address...');
        }
    });
    
    $('#contact').find('#id_message').bind('focus', function(e) {
        if(this.value === 'Message...') {
            $(this).val('');
        }
    }).bind('blur', function(e) {
        if(/^\s*$/.test($(this).val())) {
            $(this).val('Message...');
        }
    });
    
    $('#contact').find('form').bind('submit', function(e) {
        var email_regex = /^[a-zA-Z][\w\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$/,
            name = $(this).find('#id_name'),
            email = $(this).find('#id_email'),
            message = $(this).find('#id_message'),
            error = false;
            
        e.preventDefault();
        
        if(/^\s*$/.test(name.val()) || name.val() === 'Name...') {
            error = true;
            name.addClass('error');
        }
        
        if(!email_regex.test(email.val()) || email.val() === 'Email address...') {
            error = true;
            email.addClass('error');
        }
        
        if(/^\s*$/.test(message.val()) || message.val() === 'Message...') {
            error = true;
            message.addClass('error');
        }
        
        if(!error) {
            $.post('/api/contact/', {
                name: name.val(),
                email: email.val(),
                message: message.val() 
            }, function(data) {
            
                $('#contact').find(':input')
                    .removeClass('error')
                    .val('');
                    
                $('#contact').find('button').text('Message sent');
            }, 'json');
        }
    });
    
    
    
})(window);

