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

    if ( window.ie6 )
    {

        var search_box = $( 'mini_search_field' );
        fix_ie6_background_png_transparancy( search_box );

        var search_box_button = document.getElement( '#search_box button' );
        fix_ie6_background_png_transparancy( search_box_button );

        var printer_search = $( 'printer_search_field' );
        fix_ie6_background_png_transparancy( printer_search );

        fix_ie6_background_png_transparancy( document.getElement( '#printer_search #printer_feature button' ) );

        $$( '.price_break_splash' ).each( function( el )
        {

            fix_ie6_background_png_transparancy( el );

        } );

    }

    var search_field = $( 'mini_search_field' );
    
    if ( $defined( search_field ) )
    {
    
	    var search_field_text =  'Use our "easy-peasy" search to find what you want';
	    search_field.value = search_field_text;
	
	    $( 'mini_search_field' ).addEvents( {
	        'click': function( e ) {
	            if ( search_field.value.contains( search_field_text ) )
	            {
	
	                search_field.value = '';
	
	            }
	        },
	        'focus': function( e ) {
	            if ( search_field.value.contains( search_field_text ) )
	            {
	
	                search_field.value = '';
	
	            }
	        },
	        'blur': function( ) {
	            if ( search_field.value == '' )
	            {
	
	                search_field.value = search_field_text;
	
	            }
	       }
	    } );
	
	    $( 'mini_search_form' ).addEvent( 'submit', function( e ) {
	        if ( $( 'mini_search_field' ).value == search_field_text )
	        {
	
	            new Event( e ).stop( );
	
	        }
	    } );
	    
    }

    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;

            }
        }
        } );

    }

    var printer_search = $( 'printer_search_field' );
    if ( $defined( printer_search ) )
    {
        var printer_search_text = 'Enter keywords or numbers';
        printer_search.value = printer_search_text;

        $( 'printer_search_field' ).addEvents( {
        'click': function( e ) {
            if ( printer_search.value.contains( printer_search_text ) )
            {

                printer_search.value = '';

            }
        },
        'focus': function( ) {
            if ( printer_search.value.contains( printer_search_text ) )
            {

                printer_search.value = '';

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

                printer_search.value = printer_search_text;

            }
        }
        } );

    }
    
    var customer_email_address = document.getElement( '#b2b_login #login #customer_email_address' );
    if ( $defined( customer_email_address ) )
    {
        var customer_email_address_text = 'User Name';
        customer_email_address.value = customer_email_address_text;

        customer_email_address.addEvents( {
        'click': function( e ) {
            if ( customer_email_address.value.contains( customer_email_address_text ) )
            {

                customer_email_address.value = '';

            }
        },
        'focus': function( ) {
            if ( customer_email_address.value.contains( customer_email_address_text ) )
            {

                customer_email_address.value = '';

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

                customer_email_address.value = customer_email_address_text;
            }
        }
        } );

    }
    
    var reminder_email_address = document.getElement( '#b2b_login #login #reminder_email_address' );
    if ( $defined( reminder_email_address ) )
    {

        reminder_email_address.value = customer_email_address_text;

        reminder_email_address.addEvents( {
        'click': function( e ) {
            if ( reminder_email_address.value.contains( customer_email_address_text ) )
            {

                reminder_email_address.value = '';

            }
        },
        'focus': function( ) {
            if ( reminder_email_address.value.contains( customer_email_address_text ) )
            {

                reminder_email_address.value = '';

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

                reminder_email_address.value = customer_email_address_text;
            }
        }
        } );

    }
    
    var customer_password = document.getElement( '#b2b_login #login #customer_password' );
    if ( $defined( customer_password ) )
    {
        var customer_password_text = 'Password';
//        customer_password.setProperty( 'type', 'text' );
        customer_password.value = customer_password_text;

        customer_password.addEvents( {
        'click': function( e ) {
            if ( customer_password.value.contains( customer_password_text ) )
            {

//                customer_password.setProperty( 'type', 'password' );
                customer_password.value = '';

            }
        },
        'focus': function( ) {
            if ( customer_password.value.contains( customer_password_text ) )
            {

//                customer_password.setProperty( 'type', 'password' );
                customer_password.value = '';

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

//                customer_password.setProperty( 'type', 'text' );
                customer_password.value = customer_password_text;
                
            }
        }
        } );

    }

    // Get all of the category links
    var category_links = document.getElements( '#header #category_links li' );

    category_links.each( function( el ) {

        var fx = new Fx.Morph( el.getElement( 'a' ), { duration: 150, wait: false } );

        el.addEvents( {
            'mouseenter': function( e ) {
                fx.start( {
                    'top': '-8px'
                } );
            },
            'mouseleave': function( e ) {
                fx.start( {
                    'top': '0px'
                } );
            }
        } );
    } );

    // Get a list of categories
    var categories = document.getElements( '#content #classification_list div' );

    // Loop through them
    categories.each( function( el )
    {

        // Get the list of links to subcategories
        var links = el.getElement( '.subcategories' );

        // Check they are present
        if ( $defined( links ) )
        {

            // Create a slide effect and don't wait for previous ones to finish,
            // otherwise moving across multiple categories quickly could mean
            // the one you end up over won't start because the previous slides
            // haven't finished.
            var slide = new Fx.Slide( links, { wait: false } );
            var allowSlideIn = false;

            el.addEvent( 'hide', function( e ) {

                slide.slideOut( );

            } );

            var toggleLink = el.getElement( '.show_subcategories a' );

            if ( $defined( toggleLink ) )
            {

                toggleLink.addEvent( 'click', function( e ) {

                    new Event( e ).stop( );

                    slide.toggle( );

                    // Get all of the siblings of this element and make sure
                    // that the mouseleave event was fired.
                    var siblings = el.getParent( ).getChildren( );
                    siblings.each( function( elSib )
                    {

                        if ( elSib != el )
                        {

                            elSib.fireEvent( 'hide' );

                        }

                    } );

                    if ( toggleLink.get('text' ) == 'Click For More Options' )
                    {

                        toggleLink.set('text', 'Click To Hide Options' );

                    }
                    else
                    {

                        toggleLink.set('text', 'Click For More Options' );

                    }

                } );

                // Hide it to start with
                slide.hide( );
                links.setStyle( 'display', 'block' );

            }

        }

    } );

    // 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.getTag( ) == 'a' ) &&
                   ( target.getProperty( 'href' ) != existing_image.getProperty( 'src' ) ) ) ||
                 ( ( target.getParent( ).getTag( ) == '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( );
                replacement.getElement( 'img' ).replaceWith( large_image );

                // 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( )['size']['y'];
                var new_height = new_image.getSize( )['size']['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': 406
                } );

                // 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'
                        } );
                        main_image.replaceWith( replacement );
                    }
                } );
                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
                } );

            }

        } );

    } );
    
    var forgot_form = $( 'forgot_form' );

	if ( $defined( forgot_form ) ) 
	{
		
		var forgotten_link = $( 'show_password_reminder' );
		
		if ( $defined( 'show_password_reminder' ) )
		{
		
			var login_form = $( 'login_form' );
	
			var login_panel = new Fx.Slide( login_form );
			var reminder_panel = new Fx.Slide( forgot_form );
			
			reminder_panel.hide( );
			
			forgotten_link.addEvent( 'click', function( e ) {
			
				e = new Event( e );
				e.stop( );
				login_panel.slideOut( ).chain( function( ) {
					reminder_panel.slideIn( );
				} );				
				
			} );
			
			$( 'return_to_login').addEvent( 'click', function( e ) {
				
				e = new Event( e );
				e.stop( );
				reminder_panel.slideOut( ).chain( function( ) {
					login_panel.slideIn( );
				} );
				
			} );
		}			
	}
});

function forgot()
{
	var login_panel = new Fx.Slide('form_login', {duration: 500});
	login_panel.slideOut().chain(function() {
		var reminder_panel = new Fx.Slide('form_forgot', {duration: 500});
		reminder_panel.slideIn();
	});

	if($('company_users_email').value.trim() != '') {
		$('company_users_email_forgotten').value = $('company_users_email').value;
	}
	document.login.company_users_email_forgotten.focus();
	$('forgotten').value = '1';
}

function login() {

	var reminder_panel = new Fx.Slide('form_forgot', {duration: 500});
	reminder_panel.slideOut().chain(function() {
		var login_panel = new Fx.Slide('form_login', {duration: 500});
		login_panel.slideIn();
	});

	document.login.company_users_email.focus();
	$('forgotten').value = '';
}


