$j( document ).ready( function() {
    if( $j( 'body' ).hasClass( 'checkout-onepage-success' ))
    {
        function doNewsletterSubscribe()
        {
            $j( '#newsletter' ).removeClass( 'valid' ).removeClass( 'invalid' ).before( '' )
            $j( '.validation-message' ).remove();

            var position = $j( '#newsletter-checkout-success .v-fix' ).position();
            $j( '#newsletter-checkout-success .v-fix' ).before( '<div class="onestepcheckout-ajax-overlay" style="position: absolute;">&nbsp;</div>' );
            $j( '.onestepcheckout-ajax-overlay' )
                    .height( $j( '#newsletter-checkout-success .v-fix' ).outerHeight() + 10 )
                    .width( $j( '#newsletter-checkout-success .v-fix' ).outerWidth() )
                    .css("top", position.top);

            $j.ajax({
                url:        '/front/ajax/subscribe',
                data:       {'email': $j( '#newsletter' ).val() },
                dataType:   'json',
                error:      function( request, status, error )
                            {
                                $j( '.onestepcheckout-ajax-overlay' ).remove();
                                alert( 'Error sending subscription request: ' + status );
                            },
                success:    function( data, status, request )
                            {
                                if( data['error'] )
                                {
                                    $j( '#newsletter' ).addClass( 'invalid' ).after( '<div class="validation-error-message validation-message">' + data['message'] + '</div>' )
                                    $j( '.onestepcheckout-ajax-overlay' ).remove();
                                }
                                else
                                {
                                    $j( '#newsletter' ).addClass( 'valid' ).after( '<div class="validation-success-message validation-message">' + data['message'] + '</div>' )
                                    $j( '.onestepcheckout-ajax-overlay' ).remove();
                                }
                            }
            })
        }

        $j( '#newsletter-checkout-success' ).submit(function( event ) {
            event.preventDefault();
            doNewsletterSubscribe();
        });

        $j( '#subscribe' ).click(function( event ) {
            event.preventDefault();
            event.stopPropagation();
            doNewsletterSubscribe();
        });
    }
});
