window.addEvent('domready', function( ) {

    var newsletter_signup = $( 'register_email_address' );
    if ( $defined( newsletter_signup ) )
    {
        var newsletter_signup_text = 'My e-mail address is...';
        newsletter_signup.value = newsletter_signup_text;

        $( 'register_email_address' ).addEvents( {
        'focus': function( ) {
            if ( newsletter_signup.value.contains( newsletter_signup_text ) )
            {

                newsletter_signup.value = '';

            }
        },
        'blur': function( ) {
            if ( newsletter_signup.value == '' )
            {

                newsletter_signup.value = newsletter_signup_text;

            }
        }
        } );

    }

    if ( window.ie6 )
    {

        var view_button = $( 'view' );
        fix_ie6_background_png_transparancy( view_button );

        var checkout_button = $( 'checkout' );
        fix_ie6_background_png_transparancy( checkout_button );

    }

    // Additional images
    var images = $$( '#additional_images .additional_image a' ).each( function( el ) {

        var large_image = new Asset.image( el.getProperty( 'href' ) );

        el.addEvent( 'click', function( e ) {
            e = new Event( e );
            e.stop( );

            // Get the main image div
            var main_image = $( 'main_image' );
            var existing_image = main_image.getElement( 'img' );
            var target = $( e.target );

            if ( ( ( target.get('tag') == 'a' ) &&
                   ( target.getProperty( 'href' ) != existing_image.getProperty( 'src' ) ) ) ||
                 ( ( target.getParent().get('tag') == 'a' ) &&
                   ( target.getParent().getProperty( 'href' ) != existing_image.getProperty( 'src' ) ) ) )
           {

                // Get the main image div
                var main_image = $( 'main_image' );

                // Set position: relative on the parent so we can position the new
                // image properly
                main_image.getParent( ).setStyle( 'position', 'relative' );

                // Clone main image
                var replacement = main_image.clone(true, true);
                
                large_image.replaces(replacement.getElement( 'img' ));
                
                // Get image
                var new_image = replacement.getElement( 'img' );

                // Insert replacement div off the page so we can get the size of
                // the new image
                replacement.setStyles( {
                    'position': 'absolute',
                    'left': -2000
                } );
                replacement.injectBefore( main_image );
                var large_image_size = large_image.getSize( );
                var existing_height = existing_image.getSize( ).y;
                var new_height = new_image.getSize( ).y;

                // position it absolutely over the top of the existing image, but
                // invisible
                replacement.setStyles( {
                    'height': existing_height,
                    'left': 0,
                    'opacity': 0,
                    'overflow': 'hidden',
                    'position': 'absolute',
                    'right': 0,
                    'top': 0,
                    'width': 218
                } );

                // Get the size it would like to be

                // Transition to this size while making the div visible
                replacement_fx = new Fx.Morph( replacement, {
                    duration: 1000,
                    onComplete: function( ) {
                        replacement.setStyles( {
                            'position': 'static'
                        } );
                        replacement.replaces(main_image);
                    }
                } );
                replacement_fx.start( {
                    'height': new_height,
                    'opacity': 1
                } );

                main_image_fx = new Fx.Morph( main_image, {
                    duration: 1000
                } );
                main_image_fx.start( {
                    'height': new_height,
                    'opacity': 0
                } );

            }

        } );

    } );	
    
    // Stop propogation of the event once the form is submitted on add to 
    // basket to stop the click forwarding to the product page
    var basket_add_forms = $$( '.basket_add_form button[type=submit]' );
    basket_add_forms.addEvent( 'click', function( e ) { 
    
        e = new Event( e );
        e.stopPropagation( );
    
    } );
    
    $$( '#frequently_asked_questions a' ).each( function( el ) {
    
        // Remove the hidden class 
        var answer = el.getParent( ).getNext( );
        answer.removeClass( 'faq_answer_hiden' );
        answer.addClass( 'faq_answer_visible' );
        
        // Put the div in a toggle slide thing
        var fx = new Fx.Slide( answer );
        fx.hide( );
        
        // CLicking the link should toggle it
        el.addEvent( 'click', function( e ) {
        
            e.stop( );
            fx.toggle( );
        
        }.bindWithEvent( ) );
    
    } );

} );

function check_customer_subscribe( form ) 
{   

    var error = 0; 
    var error_message = "PLEASE REVIEW AND COMPLETE THE FOLLOWING\n\n";   
    
    if ( form.customer_email_address.value.trim( ) == '' || 
         !isEmail( form.customer_email_address.value.trim( ) ) ) 
    {  
    
        error_message = error_message + "* Email Address must be a valid email address\n";  
        error = 1; 
        
    } 
    
    if ( error == 1 ) 
    {
    
        alert( error_message ); 
        
        return false;
        
    } 
    else 
    {
    
        return true;
        
    }
    
}


