var speed = 150, valid = /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i;

(function($) {

    $( document ).ready( function() {

        $( '#newsletter input' ).each( function() {
            if ( $( this ).hasClass( 'text' ) ) {
                if ( this.value == '' ) $( this ).val( 'your email' );
                $( this ).focus( function() { if ( this.value == 'your email' ) $( this ).val( '' ); } );
                $( this ).blur( function() { if ( this.value == '' ) $( this ).val( 'your email' ); } );
            } else {
                $( this ).click( function() {
                    $( '#newsletter #form, #newsletter #invalid, #newsletter #success, #newsletter #failure' ).slideUp( speed );
                    e = $( '#email' ).val();
                    if ( e != 'your email' && e != '' && valid.test( e ) ) {
                        $( '#newsletter #loading' ).slideDown( speed );
                        $.post(
                            '/ajax.php',
                            { action: 'newsletter', e: e },
                            function( data ) {
                                if ( data.status == true ) $( '#newsletter #loading' ).slideUp( speed, function() { $( '#newsletter #success' ).slideDown( speed ); } );
                                else {
                                    if ( data.reason == 'invalid' ) $( '#newsletter #loading' ).slideUp( speed, function() { $( '#newsletter #invalid' ).slideDown( speed ); } );
                                    else $( '#newsletter #loading' ).slideUp( speed, function() { $( '#newsletter #failure' ).slideDown( speed ); } );
                                }
                            },
                            'json'
                        );
                    } else $( '#newsletter #invalid' ).slideDown( speed );
                } );
            }
        } );

        $( '#newsletter #intro a' ).click( function() {
            $( '#newsletter #invalid, #newsletter #success, #newsletter #failure' ).slideUp( speed, function() {
                $( '#newsletter #form' ).slideDown( speed );
            } );
        } );

        $( '#compform input.button' ).click( function() {
            $( '#compform, #compinvalid, #compsuccess, #compfailure' ).slideUp( speed );
            e = $( '#compemail' ).val();
            n = $( '#compname' ).val();
            p = $( '#compph' ).val();
            if ( e != '' && valid.test( e ) && n != '' && p != '' ) {
                $( '#comploading' ).slideDown( speed );
                $.post(
                    '/ajax.php',
                    { action: 'competition', e: e, n: n, p: p },
                    function( data ) {
                        if ( data.status == true ) $( '#comploading' ).slideUp( speed, function() { $( '#compsuccess' ).slideDown( speed ); } );
                        else {
                            if ( data.reason == 'invalid' ) $( '#comploading' ).slideUp( speed, function() { $( '#compinvalid' ).slideDown( speed ); } );
                            else $( '#comploading' ).slideUp( speed, function() { $( '#compfailure' ).slideDown( speed ); } );
                        }
                    },
                    'json'
                );
            } else $( '#compinvalid' ).slideDown( speed ).delay( 3000 ).slideUp( speed, function() { $( '#compform' ).slideDown( speed ); } );
        } );

    } );

} )( jQuery );
