var current_page = 0;
var album_images_loaded = 0;
var album_timer = 0;
var turn_position;
var turn_square = 0;
var square_page_no = 1;
var rect_page_no = 1;
var left_thumbnail = 1;
var current_gallery = 1;
var current_image = 1;
var is_logged_in = false;
var username = '';
var password = '';
var image_fade_timer = 0;
var image_fade_level;
var image_pages;
var image_positions;
var image_refs;
var number_of_thumbnails = 0;
var buy_image_index;
var purchased_image_refs = new Array();
var purchased_image_options = new Array();
var purchased_image_quantities = new Array();
var purchase_options = 14;
var option_prices = new Array( 27500, 25000, 19500, 15500, 9500, 5995, 3995, 2995, 1995, 
							   7495, 4495, 3295, 2495, 2000 );
var option_names = new Array( '60"x40" Canvas Print', 'A0 48"x32"Canvas Print', 'A1 32"x24" Canvas Print', 'A2 24"x16" Canvas Print', 'A3 16"x12" Canvas Print',
							  'A1 32"x24" High Gloss Print', 'A2 24"x16" High Gloss Print', 'A3 16"x12" High Gloss Print', 'A4 12"x8" High Gloss Print', 
							  'A1 32"x24" Mounted', 'A2 24"x16" Mounted', 
							  'A3 16"x12" Mounted', 'A4 12"x8" Mounted', '9"x6" Mounted' );
var total_price = 0;
var blog_entry_count;
var blog_entry_htmls = new Array();
var blog_entry_pages = new Array();
var blog_separator = '<img class="blog_separator" src="images/burgundy_dot.png">';
var current_blog_page = 1;
var image_cycle_timer = 0;

var home_slide_timer = 0;
var home_slide_element;
var home_slide_start;
var home_slide_end;
var home_slide_step;
var home_slide_pos;
var home_currently_over = -1;
var home_mouse_out_side;
var home_mouse_out_timer = 0;

function init()
{
	var post_data;

	window.onload = on_load_complete;

//	centre_div( 'splash_div', 500, 90 );
	centre_div( 'body_div', 1024, 850 );

	post_data = new Array();
	post_data[ 'gallery_id' ] = 1;

	get_ajax_data( 'get_gallery_info.php', post_data, process_gallery_info );

	post_data = new Array();

	get_ajax_data( 'get_blog_entries.php', post_data, process_blog_entries );

	image_cycle_timer = window.setInterval( 'cycle_image()', 7000 );
}

function process_gallery_info( data )
{
	var image_records;
	var image_counter;
	var fields;

	number_of_thumbnails = 0;

	image_pages = new Array();
	image_positions = new Array();
	image_refs = new Array();

	image_records = data.split( '|' );

	for ( image_counter = 0; image_counter < image_records.length; image_counter++ )
	{
		fields = image_records[ image_counter ].split( ':' );

		if ( fields.length == 3 )
		{
			image_pages[ image_counter ] = parseInt( fields[ 0 ] );
			image_positions[ image_counter ] = fields[ 1 ];
			image_refs[ image_counter ] = fields[ 2 ];

			if ( image_pages[ image_counter ] > number_of_thumbnails )
			{
				number_of_thumbnails = image_pages[ image_counter ];
			}
		}
	}

	if ( document.getElementById( 'gallery_thumbnails' ).style.visibility == 'visible' )
	{
		document.getElementById( 'gallery_left' ).style.visibility = 'hidden';
		document.getElementById( 'gallery_right' ).style.visibility = ( number_of_thumbnails > 8 ) ? 'visible' : 'hidden';
	}
	else
	{
		document.getElementById( 'gallery_left' ).style.visibility = 'hidden';
		document.getElementById( 'gallery_right' ).style.visibility = 'hidden';
	}

	display_buy_buttons();
}

function on_gallery_left()
{
	if ( left_thumbnail > 1 )
	{
		left_thumbnail--;
	}

	load_thumbnails();
}

function on_gallery_right()
{
	if ( left_thumbnail < number_of_thumbnails - 7 )
	{
		left_thumbnail++;
	}

	load_thumbnails();
}

function load_thumbnails()
{
	var thumbnail_counter;
	var element;
	var url;

	for ( thumbnail_counter = 0; thumbnail_counter < 8; thumbnail_counter++ )
	{
		element = document.getElementById( 'thumbnail' + thumbnail_counter );

		url = 'get_thumbnail.php?gallery_id=' + current_gallery + '&page=' + ( thumbnail_counter + left_thumbnail ) ;

		if ( current_gallery > 2 )
		{
			url += '&username=' + username + '&password=' + password;
		}

		element.src = url;
	}

	if ( document.getElementById( 'gallery_thumbnails' ).style.visibility == 'visible' )
	{
		document.getElementById( 'gallery_left' ).style.visibility = ( left_thumbnail > 1 ) ? 'visible' : 'hidden';
		document.getElementById( 'gallery_right' ).style.visibility 
											= ( number_of_thumbnails - left_thumbnail > 7 ) ? 'visible' : 'hidden';
	}
	else
	{
		document.getElementById( 'gallery_left' ).style.visibility = 'hidden';
		document.getElementById( 'gallery_right' ).style.visibility = 'hidden';
	}
}

function on_load_complete()
{
	var img_element;
	var image_counter;

	for ( image_counter = 1; image_counter <= 20; image_counter++ )
	{
		img_element = document.getElementById( 'album_square' + make_number( image_counter, 2 ) );
		img_element.onload = album_image_loaded;
		img_element.src = 'images/album_square' + make_number( image_counter, 2 ) + '.jpg';
	}

	for ( image_counter = 1; image_counter <= 22; image_counter++ )
	{
		img_element = document.getElementById( 'album_rect' + make_number( image_counter, 2 ) );
		img_element.onload = album_image_loaded;
		img_element.src = 'images/album_rect' + make_number( image_counter, 2 ) + '.jpg';
	}

	document.getElementById( 'square_right' ).src = 'images/album_square04.jpg';
	document.getElementById( 'rect_right' ).src = 'images/album_rect04.jpg';
	document.getElementById( 'square_left_over' ).src = 'images/album_square03.jpg';
	document.getElementById( 'rect_left_over' ).src = 'images/album_rect03.jpg';
}

function album_image_loaded()
{
	album_images_loaded++;

	if ( ( album_images_loaded == 42 ) && ( current_page == 3 ) )
	{
		window.setTimeout( 'start_page()', 1000 );
	}
}

function make_number( value, digits )
{
	var number_string;

	number_string = '0000000000' + value;

	number_string = number_string.substr( number_string.length - digits, digits );

	return number_string;
}

function highlight_button( button )
{
	if ( button.className == '' )
	{
		button.className = 'highlight';
	}
}

function unhighlight_button( button )
{
	if ( button.className == 'highlight' )
	{
		button.className = '';
	}
}

function send_message()
{
	var post_data;

	post_data = new Array();

	post_data[ 'name' ] = document.getElementById( 'your_name' ).value;
	post_data[ 'address1' ] = document.getElementById( 'address1' ).value;
	post_data[ 'address2' ] = document.getElementById( 'address2' ).value;
	post_data[ 'telephone' ] = document.getElementById( 'telephone' ).value;
	post_data[ 'email' ] = document.getElementById( 'email' ).value;
	post_data[ 'message' ] = document.getElementById( 'message' ).value;

	get_ajax_data( 'send_message.php', post_data, send_message_result );
}

function send_message_result( data )
{
	window.alert( data );
}

function goto_page( page )
{
	// Firstly tidy up old page
	if ( current_page == -1 )
	{
		document.getElementById( 'splash_div' ).style.display = 'none';
		document.getElementById( 'body_div' ).style.display = '';
		centre_div( 'body_div', 1024, 850 );
	}

	if ( ( is_logged_in == true ) 
	  || ( current_page == 6 ) 
	  || ( current_page == 7 ) 
	  || ( current_page == 10 ) 
	  || ( current_page == 12 ) )
	{
		close_purchase();

		is_logged_in = false;
		document.getElementById( 'main_content0' ).style.display = 'none';

		current_gallery = 1;
		current_image = 1;

		if ( ( page != 6 ) && ( page != 7 ) && ( page != 10 ) && ( page != 12 ) )
		{
			url = 'get_page.php?gallery_id=1&page=1';

			image_element = document.getElementById( 'gallery_image' );

			image_element.onload = '';
			image_element.src = url;

			left_thumbnail = 1;

			load_thumbnails();

			post_data = new Array();
			post_data[ 'gallery_id' ] = 1;

			get_ajax_data( 'get_gallery_info.php', post_data, process_gallery_info );
		}
	}

	if ( current_page != -1 )
	{
		document.getElementById( 'menu_item_' + current_page ).className = '';

		if ( page != 6 )
		{
			document.getElementById( 'main_content' + current_page ).style.display = 'none';
		}
	}

	if ( current_page == 10 )
	{
		document.getElementById( 'header_logo' ).src = 'images/logo.png';
//		document.getElementById( 'logo_name' ).innerHTML = 'Graham J Jones';
//		document.getElementById( 'logo_name' ).style.marginTop = '13px';
	}

	current_page = page;

	// Only display the thumbnails if on the images page
	if ( ( current_page == 0 ) || ( current_page == 7 ) || ( current_page == 12 ) )
	{
		document.getElementById( 'gallery_thumbnails' ).style.visibility = 'visible';
		document.getElementById( 'gallery_left' ).style.visibility = ( left_thumbnail > 1 ) ? 'visible' : 'hidden';
		document.getElementById( 'gallery_right' ).style.visibility 
											= ( number_of_thumbnails - left_thumbnail > 7 ) ? 'visible' : 'hidden';
	}
	else
	{
		document.getElementById( 'gallery_thumbnails' ).style.visibility = 'hidden';
		document.getElementById( 'gallery_left' ).style.visibility = 'hidden';
		document.getElementById( 'gallery_right' ).style.visibility = 'hidden';
	}

	// Now set up new page - but don't display new page if about to auto-login
	document.getElementById( 'menu_item_' + current_page ).className = 'current';

	if ( ( ( current_page == 2 ) && ( username != '' ) ) || ( current_page == 6 ) )
	{
		// Page 2 displayed on login result. Page 6 & 7 displayed on images received.
	}
	else
	{
		document.getElementById( 'main_content' + current_page ).style.display = '';
	}

	if ( current_page == 3 )
	{
		if ( album_images_loaded == 42 )
		{
			window.setTimeout( 'start_page()', 1000 );
		}
	}
	else if ( current_page == 4 )
	{
		self.focus();
		document.getElementById( 'your_name' ).focus();
	}
	else if ( current_page == 2 )
	{
		if ( username == '' )
		{
			self.focus();
			document.getElementById( 'username' ).focus();
		}
		else
		{
			login();
		}
	}
	else if ( current_page == 6 )
	{
		goto_stock( 2 );
	}
	else if ( current_page == 7 )
	{
		current_gallery = 0;

		url = 'get_page.php?gallery_id=0&page=1';

		image_element = document.getElementById( 'gallery_image' );

		image_element.onload = '';
		image_element.src = url;

		left_thumbnail = 1;

		load_thumbnails();

		post_data = new Array();
		post_data[ 'gallery_id' ] = 0;

		get_ajax_data( 'get_gallery_info.php', post_data, process_gallery_info );
	}
	else if ( current_page == 8 )
	{
		fill_basket( 1 );
	}
	else if ( current_page == 10 )
	{
		current_gallery = -1;

		url = 'get_page.php?gallery_id=-1&page=1';

		image_element = document.getElementById( 'gallery_image' );

		image_element.onload = '';
		image_element.src = url;

		left_thumbnail = 1;

		load_thumbnails();

		post_data = new Array();
		post_data[ 'gallery_id' ] = -1;

		get_ajax_data( 'get_gallery_info.php', post_data, process_gallery_info );

		document.getElementById( 'header_logo' ).src = 'images/studio_logo.png';
//		document.getElementById( 'logo_name' ).innerHTML = 'Graham J Jones<br />Kevin Mitchell';
//		document.getElementById( 'logo_name' ).style.marginTop = '5px';
	}
	else if ( current_page == 12 )
	{
		current_gallery = -7;

		url = 'get_page.php?gallery_id=-7&page=1';

		image_element = document.getElementById( 'gallery_image' );

		image_element.onload = '';
		image_element.src = url;

		left_thumbnail = 1;

		load_thumbnails();

		post_data = new Array();
		post_data[ 'gallery_id' ] = -7;

		get_ajax_data( 'get_gallery_info.php', post_data, process_gallery_info );
	}
}

function start_page()
{
	if ( ( album_timer == 0 ) && ( current_page == 3 ) )
	{
		turn_square = 1 - turn_square;
		turn_position = 0;
		album_timer = window.setInterval( 'turn_page()', 50 );
	}
}

function turn_page()
{
	var prefix;
	var width_array;
	var height_array = new Array( 0, 4, 8, 12, 15, 17, 19, 20 );
	var top_left_triangle;
	var bottom_left_triangle;
	var top_right_triangle;
	var bottom_right_triangle;
	var edge;
	var left_page_over;
	var right_page_over;
	var page_no;
	var pages;
	var new_page_no;

	if ( turn_square )
	{
		prefix = 'square';
		width_array = new Array( 292, 286, 267, 236, 195, 146, 90, 31 );
		page_no = square_page_no;
		pages = 20;
	}
	else
	{
		prefix = 'rect';
		width_array = new Array( 404, 395, 369, 327, 270, 202, 125, 42 );
		page_no = rect_page_no;
		pages = 22;
	}

	turn_position++;

	top_left_triangle = document.getElementById( prefix + '_top_left' )
	bottom_left_triangle = document.getElementById( prefix + '_bottom_left' )
	top_right_triangle = document.getElementById( prefix + '_top_right' )
	bottom_right_triangle = document.getElementById( prefix + '_bottom_right' )
	edge = document.getElementById( prefix + '_edge' )
	left_page_over = document.getElementById( prefix + '_left_over' )
	right_page_over = document.getElementById( prefix + '_right_over' )

	if ( turn_position == 1 )
	{
		// First step
		top_right_triangle.style.visibility = 'visible';
		bottom_right_triangle.style.visibility = 'visible';
		document.getElementById( prefix + '_right' ).style.visibility = 'visible';
		edge.style.visibility = 'visible';

		left_page_over.style.visibility = 'hidden';

		new_page_no = ( page_no + 1 ) % pages + 1;
		left_page_over.src = 'images/album_' + prefix + make_number( new_page_no, 2 ) + '.jpg';
	}
	else if ( turn_position == 8 )
	{
		// Switch to left hand side
		top_right_triangle.style.visibility = 'hidden';
		bottom_right_triangle.style.visibility = 'hidden';
		right_page_over.style.visibility = 'hidden';
		top_left_triangle.style.visibility = 'visible';
		bottom_left_triangle.style.visibility = 'visible';
		left_page_over.style.visibility = 'visible';

		new_page_no = ( page_no + 2 ) % pages + 1;
		right_page_over.src = 'images/album_' + prefix + make_number( new_page_no, 2 ) + '.jpg';
	}

	if ( turn_position <= 7 )
	{
		// Set positions for right hand side
		top_right_triangle.style.left = width_array[ 0 ] + 1;
		top_right_triangle.style.top = 20 - height_array[ turn_position ];
		top_right_triangle.style.width = width_array[ turn_position ];
		top_right_triangle.style.height = height_array[ turn_position ];

		bottom_right_triangle.style.left = width_array[ 0 ] + 1;
		bottom_right_triangle.style.top = 312;
		bottom_right_triangle.style.width = width_array[ turn_position ];
		bottom_right_triangle.style.height = height_array[ turn_position ];

		edge.style.left = width_array[ 0 ] + width_array[ turn_position ] + 1;

		right_page_over.width = width_array[ turn_position ];
		right_page_over.height = 292;
	}
	else if ( turn_position <= 15 )
	{
		// Set positions for left hand side
		top_left_triangle.style.left = width_array[ 0 ] - width_array[ 15 - turn_position ];
		top_left_triangle.style.top = 20 - height_array[ 15 - turn_position ];
		top_left_triangle.style.width = width_array[ 15 - turn_position ];
		top_left_triangle.style.height = height_array[ 15 - turn_position ];

		bottom_left_triangle.style.left = width_array[ 0 ] - width_array[ 15 - turn_position ];
		bottom_left_triangle.style.top = 312;
		bottom_left_triangle.style.width = width_array[ 15 - turn_position ];
		bottom_left_triangle.style.height = height_array[ 15 - turn_position ];

		edge.style.left = width_array[ 0 ] - width_array[ 15 - turn_position ] - 1;

		left_page_over.style.width = width_array[ 15 - turn_position ];
		left_page_over.style.left = width_array[ 0 ] - width_array[ 15 - turn_position ];
		left_page_over.style.height = 292;
	}

	if ( turn_position == 15 )
	{
		// Done
		top_left_triangle.style.visibility = 'hidden';
		bottom_left_triangle.style.visibility = 'hidden';
		edge.visibility = 'hidden';

		right_page_over.width = width_array[ 0 ];
		right_page_over.style.visibility = 'visible';

		new_page_no = ( page_no + 4 ) % pages + 1;
		document.getElementById( prefix + '_right' ).src = 'images/album_' + prefix + make_number( new_page_no, 2 ) + '.jpg';
		
		new_page_no = ( page_no + 1 ) % pages + 1;
		document.getElementById( prefix + '_left' ).src = 'images/album_' + prefix + make_number( new_page_no, 2 ) + '.jpg';
		
		page_no += 2;
		if ( page_no > pages )
		{
			page_no = 1;
		}

		if ( turn_square )
		{
			square_page_no = page_no;
		}
		else
		{
			rect_page_no = page_no;
		}

		window.clearInterval( album_timer );
		album_timer = 0;

		window.setTimeout( 'start_page()', 2000 );
	}
}

function highlight_thumbnail( id )
{
	document.getElementById( 'thumbnail' + id ).className='thumbnail_highlight';
}

function unhighlight_thumbnail( id )
{
	document.getElementById( 'thumbnail' + id ).className='thumbnail';
}

function click_thumbnail( id )
{
	var url;
	var image_element;

	close_purchase();

	current_image = id + left_thumbnail;

	if ( image_cycle_timer != 0 )
	{
		window.clearInterval( image_cycle_timer );
		image_cycle_timer = 0;
	}

	load_image( current_image );
}

function load_image( image_number )
{
	url = 'get_page.php?gallery_id=' + current_gallery + '&page=' + current_image;

	if ( is_logged_in )
	{
		url = url + '&username=' + username + '&password=' + password;
	}

	image_element = document.getElementById( 'gallery_fade_image' );

	image_element.onload = gallery_fade_loaded;
	image_element.src = url;
}

function gallery_fade_loaded()
{
	var gallery_image;
	var gallery_fade_image;
	var switch_page = false;

	if ( ( current_page != 0 )
	  && ( current_page != 6 )
	  && ( current_page != 7 )
	  && ( current_page != 10 )
	  && ( current_page != 12 )
	  && ( is_logged_in == false ) )
	{
		switch_page = true;
	}

	if ( ( current_page == 10 ) && ( document.getElementById( 'main_content10' ).style.display == '' ) )
	{
		switch_page = true;
	}

	if ( ( current_page == 7 ) && ( document.getElementById( 'main_content7' ).style.display == '' ) )
	{
		switch_page = true;
	}

	if ( ( current_page == 12 ) && ( document.getElementById( 'main_content12' ).style.display == '' ) )
	{
		switch_page = true;
	}

	if ( switch_page )
	{
		gallery_image = document.getElementById( 'gallery_image' );
		gallery_fade_image = document.getElementById( 'gallery_fade_image' );

		set_opacity( gallery_fade_image, 100 );

		gallery_image.onload = gallery_image_loaded;
		gallery_image.src = gallery_fade_image.src;

		if ( current_page == 7 )
		{
			document.getElementById( 'main_content7' ).style.display = 'none';
			document.getElementById( 'main_content0' ).style.display = '';
		}
		else if ( current_page == 10 )
		{
			document.getElementById( 'main_content10' ).style.display = 'none';
			document.getElementById( 'main_content0' ).style.display = '';
		}
		else if ( current_page == 12 )
		{
			document.getElementById( 'main_content12' ).style.display = 'none';
			document.getElementById( 'main_content0' ).style.display = '';
		}
		else
		{
			goto_page( 0 );
		}
	}
	else if ( image_fade_timer == 0 )
	{
		hide_buy_buttons();

		image_fade_level = 0;
		image_fade_timer = window.setInterval( 'fade_gallery_image()', 50 );
	}
}

function fade_gallery_image()
{
	var gallery_fade_image;
	var gallery_image;

	image_fade_level += 5;

	gallery_fade_image = document.getElementById( 'gallery_fade_image' );

	set_opacity( gallery_fade_image, image_fade_level );

	if ( image_fade_level == 100 )
	{
		window.clearInterval( image_fade_timer );
		image_fade_timer = 0;

		gallery_image = document.getElementById( 'gallery_image' );

		gallery_image.onload = gallery_image_loaded;
		gallery_image.src = gallery_fade_image.src;

		display_buy_buttons();
	}
}

function gallery_image_loaded()
{
	document.getElementById( 'gallery_fade_image' ).style.visibility = 'hidden';
}

function set_opacity( opacity_object, opacity_percent )
{
	if ( opacity_percent == 0 )
	{
		opacity_object.style.visibility = 'hidden';
	}
	else
	{
		opacity_object.style.visibility = 'visible';
	}

	opacity_object.style.opacity = opacity_percent / 100;
	
	if ( opacity_percent == 100 )
	{
		opacity_object.style.filter = '';
	}
	else
	{
		opacity_object.style.filter = 'progid:DXImageTransform.Microsoft.Alpha(Opacity=' + String( opacity_percent ) + ')';
	}
}

function login()
{
	var post_data = new Array();

	username = document.getElementById( 'username' ).value;
	password = document.getElementById( 'password' ).value;

	post_data[ 'username' ] = username;
	post_data[ 'password' ] = password;

	get_ajax_data( 'check_login.php', post_data, process_login_data );
}

function process_login_data( data )
{
	var url;
	var image_element;
	var new_gallery;
	var post_data

	new_gallery = parseInt( data );

	if ( new_gallery > 0 )
	{
		if ( current_page == 2 )
		{
			is_logged_in = true;
			current_gallery = new_gallery;
			current_image = 1;

			url = 'get_page.php?gallery_id=' + current_gallery + '&page=1' + '&username=' + username + '&password=' + password;

			image_element = document.getElementById( 'gallery_image' );

			image_element.onload = display_private_gallery;
			image_element.src = url;

			left_thumbnail = 1;

			load_thumbnails();

			document.getElementById( 'logout' ).style.visibility = 'visible';

			post_data = new Array();
			post_data[ 'gallery_id' ] = current_gallery;
			post_data[ 'username' ] = username;
			post_data[ 'password' ] = password;

			document.getElementById( 'gallery_thumbnails' ).style.visibility = 'visible';

			get_ajax_data( 'get_gallery_info.php', post_data, process_gallery_info );
		}
	}
	else
	{
		window.alert( data );
		username = '';
		password = '';

		goto_page( 2 );
	}
}

function goto_stock( gallery )
{
	current_gallery = gallery;
	current_image = 1;

	url = 'get_page.php?gallery_id=' + current_gallery + '&page=1';

	image_element = document.getElementById( 'gallery_image' );

	image_element.onload = display_private_gallery;
	image_element.src = url;

	left_thumbnail = 1;

	load_thumbnails();

	post_data = new Array();
	post_data[ 'gallery_id' ] = current_gallery;

	get_ajax_data( 'get_gallery_info.php', post_data, process_gallery_info );

	document.getElementById( 'gallery_thumbnails' ).style.visibility = 'visible';
}

function display_private_gallery()
{
	image_element = document.getElementById( 'gallery_image' );

	image_element.onload = '';

	document.getElementById( 'main_content1' ).style.display = 'none';
	document.getElementById( 'main_content2' ).style.display = 'none';
	document.getElementById( 'main_content3' ).style.display = 'none';
	document.getElementById( 'main_content4' ).style.display = 'none';
	document.getElementById( 'main_content5' ).style.display = 'none';
	document.getElementById( 'main_content6' ).style.display = 'none';
	document.getElementById( 'main_content7' ).style.display = 'none';
	document.getElementById( 'main_content8' ).style.display = 'none';
	document.getElementById( 'main_content9' ).style.display = 'none';
	document.getElementById( 'main_content10' ).style.display = 'none';
	document.getElementById( 'main_content11' ).style.display = 'none';
	document.getElementById( 'main_content0' ).style.display = '';

	display_buy_buttons();
}

function hide_buy_buttons()
{
	document.getElementById( 'buy_button_left' ).style.visibility = 'hidden';
	document.getElementById( 'buy_button_right' ).style.visibility = 'hidden';
}

function display_buy_buttons()
{
	var image_counter;

	document.getElementById( 'buy_button_left' ).style.visibility = 'hidden';
	document.getElementById( 'buy_button_right' ).style.visibility = 'hidden';

	if ( ( is_logged_in ) || ( current_page == 6 ) )
	{
		for ( image_counter = 0; image_counter < image_pages.length; image_counter++ )
		{
			if ( image_pages[ image_counter ] == current_image )
			{
				if ( image_positions[ image_counter ] == 'L' )
				{
					document.getElementById( 'buy_button_left' ).style.visibility = 'visible';
				}
				else
				{
					document.getElementById( 'buy_button_right' ).style.visibility = 'visible';
				}
			}
		}
	}
}

function on_buy( position )
{
	var image_counter;
	var image_ref;
	var option_counter;
	var purchased_image_counter;

	if ( image_cycle_timer != 0 )
	{
		window.clearInterval( image_cycle_timer );
		image_cycle_timer = 0;
	}

	buy_image_index = -1;

	for ( image_counter = 0; image_counter < image_pages.length; image_counter++ )
	{
		if ( image_pages[ image_counter ] == current_image )
		{
			if ( image_positions[ image_counter ] == 'L' )
			{
				if ( position == 'left' )
				{
					buy_image_index = image_counter;
				}
			}
			else
			{
				if ( position == 'right' )
				{
					buy_image_index = image_counter;
				}
			}
		}
	}

	image_ref = image_refs[ buy_image_index ];

	for ( option_counter = 0; option_counter < purchase_options; option_counter++ )
	{
		document.getElementById( 'option' + option_counter ).value = '';
	}

	for ( purchased_image_counter = 0; purchased_image_counter < purchased_image_refs.length; purchased_image_counter++ )
	{
		if ( purchased_image_refs[ purchased_image_counter ] == image_ref )
		{
			document.getElementById( 'option' + purchased_image_options[ purchased_image_counter ] ).value
														= purchased_image_quantities[ purchased_image_counter ];
		}
	}

	if ( buy_image_index != -1 )
	{
		document.getElementById( 'buy_control' ).style.visibility = 'visible';

		document.getElementById( 'buy_thumbnail' ).src = 'get_purchase_thumbnail.php?ref=' 
								+ image_refs[ buy_image_index ] + '&username=' + username + '&password=' + password;
	}
}

function close_purchase()
{
	document.getElementById( 'buy_control' ).style.visibility = 'hidden';
}

function save_purchases( goto_purchases )
{
	var option_counter;
	var purchase_counter;
	var purchased_image_ref;
	var purchase_count;

	purchased_image_ref = image_refs[ buy_image_index ];

	for ( purchase_counter = purchased_image_refs.length - 1; purchase_counter >= 0; purchase_counter-- )
	{
		if ( purchased_image_refs[ purchase_counter ] == purchased_image_ref )
		{
			purchased_image_refs.splice( purchase_counter, 1 );
			purchased_image_options.splice( purchase_counter, 1 );
			purchased_image_quantities.splice( purchase_counter, 1 );
		}
	}

	for ( option_counter = 0; option_counter < purchase_options; option_counter++ )
	{
		purchase_count = parseInt( document.getElementById( 'option' + option_counter ).value );

		if ( purchase_count > 0 )
		{
			purchase_counter = purchased_image_refs.length;
			purchased_image_refs[ purchase_counter ] = purchased_image_ref;
			purchased_image_options[ purchase_counter ] = option_counter;
			purchased_image_quantities[ purchase_counter ] = purchase_count;
		}
	}

	close_purchase();

	if ( goto_purchases )
	{
		goto_page( 8 );
	}
}

function fill_basket( page )
{
	var basket_line;
	var item_counter;
	var item_price;
	var page_counter;
	var page_element;

	for ( basket_line = 0; basket_line < 13; basket_line++ )
	{
		document.getElementById( 'basket_name' + basket_line ).innerHTML = '';
		document.getElementById( 'basket_size' + basket_line ).innerHTML = '';
		document.getElementById( 'basket_quantity' + basket_line ).innerHTML = '';
		document.getElementById( 'basket_price' + basket_line ).innerHTML = '';
	}

	total_price = 0;

	for ( item_counter = 0; item_counter < purchased_image_refs.length; item_counter++ )
	{
		item_price = option_prices[ purchased_image_options[ item_counter ] ] * purchased_image_quantities[ item_counter ];
		total_price += item_price;

		basket_line = item_counter - ( ( page - 1 ) * 13 );

		if ( ( basket_line >= 0 ) && ( basket_line < 13 ) )
		{
			document.getElementById( 'basket_name' + basket_line ).innerHTML = purchased_image_refs[ item_counter ];
			document.getElementById( 'basket_size' + basket_line ).innerHTML = option_names[ purchased_image_options[ item_counter ] ];
			document.getElementById( 'basket_quantity' + basket_line ).innerHTML = purchased_image_quantities[ item_counter ];
			document.getElementById( 'basket_price' + basket_line ).innerHTML = format_price( item_price );
		}
	}

	document.getElementById( 'subtotal_price' ).innerHTML = format_price( total_price );

	total_price += 300;

	document.getElementById( 'total_price' ).innerHTML = '<b>' + format_price( total_price ) + '</b>';

	for ( page_counter = 1; page_counter <= 7; page_counter++ )
	{
		page_element = document.getElementById( 'purchase_page' + page_counter );

		if ( ( purchased_image_refs.length > 13 ) && ( ( purchased_image_refs.length + 12 ) / 13 >= page_counter ) )
		{
			page_element.style.visibility = 'visible';
		}
		else
		{
			page_element.style.visibility = 'hidden';
		}

		if ( page_counter == page )
		{
			page_element.className = 'current';
		}
		else
		{
			page_element.className = '';
		}
	}
}

function format_price( price )
{
	var price_string;

	price_string = '&pound;' + Math.floor( price / 100 ) + '.' + make_number( price % 100, 2 );

	return price_string;
}

function on_logout()
{
	username = '';
	password = '';

	document.getElementById( 'logout' ).style.visibility = 'hidden';

	document.getElementById( 'username' ).value = '';
	document.getElementById( 'password' ).value = '';

	if ( is_logged_in )
	{
		goto_page( 0 );
	}
}

function login_on_return( event )
{
	var keynum
	var keychar
	var numcheck

	if( window.event ) // IE
	{
		keynum = event.keyCode;
	}
	else if( event.which ) // Netscape/Firefox/Opera
	{
		keynum = event.which;
	}

	if ( keynum == 13 )
	{
		login();
	}
}

function buy_now()
{
	var customer_email;
	var post_data = new Array();
	var order = "";
	var item_counter;

	if ( total_price <= 300 )
	{
		window.alert( "There's nothing in the shopping basket" );
	}
	else
	{
		customer_email = window.prompt( "If you would like a copy of the order,\r\nplease enter your e-mail address" );

		if ( customer_email == null )
		{
			customer_email = '';
		}

		for ( item_counter = 0; item_counter < purchased_image_refs.length; item_counter++ )
		{
			item_price = option_prices[ purchased_image_options[ item_counter ] ] * purchased_image_quantities[ item_counter ];

			order += pad_right( purchased_image_refs[ item_counter ], 20 );
			order += pad_right( option_names[ purchased_image_options[ item_counter ] ], 25 );
			order += pad_left( purchased_image_quantities[ item_counter ], 6 );
			order += pad_left( format_price_text( item_price ), 12 );
			order += "\r\n";
		}

		order += 'Postage and Packaging                                      3.00' + "\r\n";
		order += 'Total                                              ' + pad_left( format_price_text( total_price ), 12 ) + "\r\n";

		post_data[ 'order' ] = order;
		post_data[ 'customer_email' ] = customer_email;

		get_ajax_data( 'submit_order.php', post_data, buy_now2 );		
	}
}

function pad_right( str, len )
{
	return ( str + "                              " ).substr( 0, len );
}

function pad_left( str, len )
{
	var padded_string;

	padded_string = "                              " + str; 
	return padded_string.substr( padded_string.length - len, len );
}

function format_price_text( price )
{
	var price_string;

	price_string = Math.floor( price / 100 ) + '.' + make_number( price % 100, 2 );

	return price_string;
}

function buy_now2( data )
{
	var order_number;

	if ( data.length > 20 )
	{
		window.alert( data );
	}
	else
	{
		order_number = parseInt( data );

		window.alert( 'Your order number is ' + order_number + ".\r\n"
					+ 'You will now be transferred to PayPal. Please enter your ' + "\r\n"
					+ 'PayPal or credit card details to complete the order.' );

		document.getElementById( 'paypal_item_name' ).value = 'MyPhotoCompany Order ' + data;
		document.getElementById( 'paypal_amount' ).value = format_price_text( total_price );

		document.getElementById( 'paypal_form' ).submit();
	}
}

function process_blog_entries( data )
{
	var records;
	var entry_counter;
	var record_counter;
	var blog_entry_title;
	var blog_entry_date;
	var blog_entry_location;
	var blog_entry_body;
	var blog_html;
	var current_page;
	var entries_on_page;

	records = data.split( '|' );

	entry_counter = 0;
	record_counter = 0;

	while ( record_counter + 3 < records.length )
	{
		blog_entry_title = records[ record_counter ];
		blog_entry_date = records[ record_counter + 1 ];
		blog_entry_location = records[ record_counter + 2 ];
		blog_entry_body = records[ record_counter + 3 ];
		
		blog_entry_htmls[ entry_counter ] =
			  '<div class="blog_header">'
			+ '<P class="title">' + blog_entry_title + '</P>'
			+ '<P class="date">' + blog_entry_date + '</P>'
			+ '<P class="location">' + blog_entry_location + '</P>'
			+ '</div>'
			+ '<div class="blog_body">' + blog_entry_body + '</div>';
		
		blog_entry_pages[ entry_counter ] = Math.floor( entry_counter / 10 ) + 1;

		entry_counter++;
		record_counter += 4;
	}

	blog_entry_count = entry_counter;

	// Now lay out the first page
	document.getElementById( 'blog_content' ).innerHTML = get_blog_html( current_blog_page );
	setup_blog_controls();
}

function get_blog_html( page )
{
	blog_html = '';
	first_on_page = true;

	for ( entry_counter = 0; entry_counter < blog_entry_count; entry_counter++ )
	{
		if ( blog_entry_pages[ entry_counter ] == page )
		{
			if ( first_on_page )
			{
				first_on_page = false;
			}
			else
			{
				blog_html += blog_separator;
			}

			blog_html += blog_entry_htmls[ entry_counter ];
		}
	}

	return blog_html;
}

function setup_blog_controls()
{
	var last_page;
	var page_counter;
	var selector_element;
	var selector_page;

	last_page = blog_entry_pages[ blog_entry_count - 1 ];

	if ( current_blog_page > 5 )
	{
		document.getElementById( 'blog_separator_first' ).style.display = '';
	}
	else
	{
		document.getElementById( 'blog_separator_first' ).style.display = 'none';
	}

	if ( current_blog_page > 4 )
	{
		document.getElementById( 'blog_first' ).innerHTML = 'Page 1';
		document.getElementById( 'blog_first' ).style.display = '';
	}
	else
	{
		document.getElementById( 'blog_first' ).style.display = 'none';
	}

	for ( page_counter = 0; page_counter < 7; page_counter++ )
	{
		selector_element = document.getElementById( 'blog_selector_adjust' + page_counter );

		selector_page = current_blog_page + page_counter - 3;

		if ( ( selector_page >= 1 ) && ( selector_page <= last_page ) )
		{
			selector_element.innerHTML = 'Page ' + selector_page;
			selector_element.style.display = '';
		}
		else
		{
			selector_element.style.display = 'none';
		}
	}

	if ( current_blog_page > 5 )
	{
		document.getElementById( 'blog_separator_first' ).style.display = '';
	}
	else
	{
		document.getElementById( 'blog_separator_first' ).style.display = 'none';
	}

	if ( last_page > current_blog_page + 3 )
	{
		document.getElementById( 'blog_last' ).innerHTML = 'Page ' + last_page;
		document.getElementById( 'blog_last' ).style.display = '';
	}
	else
	{
		document.getElementById( 'blog_last' ).style.display = 'none';
	}

	if ( last_page > current_blog_page + 4 )
	{
		document.getElementById( 'blog_separator_last' ).style.display = '';
	}
	else
	{
		document.getElementById( 'blog_separator_last' ).style.display = 'none';
	}

	document.getElementById( 'blog_content' ).scrollTop = 0;
}

function blog_page_change( page_change )
{
	var last_page;

	current_blog_page += page_change;

	last_page = blog_entry_pages[ blog_entry_count - 1 ];

	if ( current_blog_page > last_page )
	{
		current_blog_page = last_page;
	}

	if ( current_blog_page < 1 )
	{
		current_blog_page = 1;
	}

	document.getElementById( 'blog_content' ).innerHTML = get_blog_html( current_blog_page );
	setup_blog_controls();
}

function blog_first()
{
	current_blog_page = 1;

	document.getElementById( 'blog_content' ).innerHTML = get_blog_html( current_blog_page );
	setup_blog_controls();
}

function blog_last()
{
	current_blog_page = blog_entry_pages[ blog_entry_count - 1 ];

	document.getElementById( 'blog_content' ).innerHTML = get_blog_html( current_blog_page );
	setup_blog_controls();
}

function pay_retainer()
{
	var customer_email;
	var post_data = new Array();
	var order = "";
	var item_counter;

	if ( window.confirm( 'This function should not be used until you have agreed the date of your wedding with MyPhotoCompany. '
						+ 'If you have not done this yet, please cancel, and contact MyPhotoCompany through the details at '
						+ 'the bottom of the page.' ) )
	{
		customer_email = window.prompt( "If you would like a copy of the order,\r\nplease enter your e-mail address" );

		if ( customer_email == null )
		{
			customer_email = '';
		}

		post_data[ 'customer_email' ] = customer_email;

		get_ajax_data( 'submit_retainer.php', post_data, pay_retainer2 );		
	}
}

function pay_retainer2( data )
{
	var order_number;

	if ( data.length > 20 )
	{
		window.alert( data );
	}
	else
	{
		order_number = parseInt( data );

		window.alert( 'Your order number is ' + order_number + ".\r\n"
					+ 'You will now be transferred to PayPal. Please enter your ' + "\r\n"
					+ 'PayPal or credit card details to complete the order.' );

		document.getElementById( 'paypal_item_name' ).value = 'MyPhotoCompany Retainer Order ' + data;
		document.getElementById( 'paypal_amount' ).value = format_price_text( 39500 );

		document.getElementById( 'paypal_form' ).submit();
	}
}

function select_link_page( page )
{
	if ( page == 1 )
	{
		document.getElementById( 'links_table1' ).style.display = 'table';
		document.getElementById( 'links_table2' ).style.display = 'none';
		document.getElementById( 'link_page1' ).className = 'current';
		document.getElementById( 'link_page2' ).className = '';
	}
	else
	{
		document.getElementById( 'links_table1' ).style.display = 'none';
		document.getElementById( 'links_table2' ).style.display = 'table';
		document.getElementById( 'link_page1' ).className = '';
		document.getElementById( 'link_page2' ).className = 'current';
	}
}

function cycle_image()
{
	if ( document.getElementById( 'main_content0' ).style.display != 'none' )
	{
		current_image++;

		if ( current_image > number_of_thumbnails )
		{
			current_image = 1;
		}

		load_image( current_image );
	}
}

function mouse_over_home( home_side )
{
	if ( ( home_mouse_out_timer != 0 )
	  && ( home_mouse_out_side == home_side ) )
	{
		window.clearTimeout( home_mouse_out_timer );
		home_mouse_out_timer = 0;
	}
	else
	{
		if ( home_mouse_out_timer != 0 )
		{
			window.clearTimeout( home_mouse_out_timer );
			on_mouse_out_timer();
		}

		if ( home_slide_timer != 0 )
		{
			home_slide_element.style.left = home_slide_end + 'px';

			window.clearInterval( home_slide_timer );
			home_slide_timer = 0;
		}

		if ( home_side == 0 )
		{
			home_fade_element = document.getElementById( 'home_right' );
			home_slide_element = document.getElementById( 'home_click_here_left' );
			home_slide_start = 171;
			home_slide_end = 256;
			home_slide_step = 5;
		}
		else
		{
			home_fade_element = document.getElementById( 'home_left' );
			home_slide_element = document.getElementById( 'home_click_here_right' );
			home_slide_start = 2;
			home_slide_end = -83;
			home_slide_step = -5;
		}

		home_fade_element.className = 'home_area home_area_fade';

		home_slide_pos = home_slide_start;

		home_slide_timer = window.setInterval( 'on_home_slide_timer()', 20 );
	}
}

function mouse_out_home( home_side )
{
	home_mouse_out_side = home_side;
	home_mouse_out_timer = window.setTimeout( 'on_mouse_out_timer()', 20 );
}

function on_mouse_out_timer()
{
	home_mouse_out_timer = 0;

	if ( home_mouse_out_side == 0 )
	{
		home_fade_element = document.getElementById( 'home_right' );
		home_slide_element = document.getElementById( 'home_click_here_left' );
		home_slide_start = 256;
		home_slide_end = 171;
		home_slide_step = -5;
	}
	else
	{
		home_fade_element = document.getElementById( 'home_left' );
		home_slide_element = document.getElementById( 'home_click_here_right' );
		home_slide_start = -83;
		home_slide_end = 2;
		home_slide_step = 5;
	}

	home_fade_element.className = 'home_area';

	if ( home_slide_timer == 0 )
	{
		home_slide_pos = home_slide_start;

		home_slide_timer = window.setInterval( 'on_home_slide_timer()', 20 );
	}
}

function on_home_slide_timer()
{
	home_slide_pos += home_slide_step;

	home_slide_element.style.left = home_slide_pos + 'px';

	if ( home_slide_pos == home_slide_end )
	{
		window.clearInterval( home_slide_timer );
		home_slide_timer = 0;
	}
}


