var menu_item_ids = new Array();
var menu_item_heights = new Array();
var menu_item_displays = new Array();
var menu_item_submenu_of = new Array();
var menu_item_target = new Array();
var menu_item_count = 0;
var menu_mouse_over = '';
var submenu_open_timer = 0;
var submenu_opening_timer = 0;
var submenu_closing_timer = 0;
var open_after_close = false;
var menu_opening = '';
var main_shown_image = 0;
var main_fade_image;
var main_image_fade_step = 0;
var fade_timer;

var preload_image_list = new Array();
var preload_image_dest = new Array();

window.onload = on_load;

function on_load()
{
	position_book_now();
	preload_images();
}

function position_book_now()
{
	var footer_offset;
	var book_now_top;
	var book_now_centre_y;
	var radius2;
	var book_now_centre_x;
	var book_now_left;
	var book_now_button;

	book_now_button = document.getElementById( 'book_now_button' );

	if ( book_now_button != null )
	{
/*
		// Position the Book Now button
		footer_offset = document.getElementById( 'footer' ).offsetTop;
		book_now_top = -36;

		book_now_centre_y = footer_offset + book_now_top + 45;

		book_now_centre_y -= 395;

		radius2 = 964*964;

		book_now_centre_x = Math.floor( Math.sqrt( radius2 - book_now_centre_y * book_now_centre_y ) );

		book_now_left = book_now_centre_x - 44;

		book_now_button.style.left = book_now_left;
		book_now_button.style.visibility = 'visible';
*/
		book_now_button.style.left = "850px";
		book_now_button.style.visibility = 'visible';
	}
}

function set_preload_common_images()
{
	add_preload_image( 'images/home_red.png' );
	add_preload_image( 'images/about_red.png' );
	add_preload_image( 'images/courses_red.png' );
	add_preload_image( 'images/personal_training_red.png' );
	add_preload_image( 'images/contact_red.png' );
	add_preload_image( 'images/book_now_over.png' );
}

function add_preload_image( image_filename )
{
	image_index = preload_image_list.length;

	preload_image_list[ image_index ] = image_filename;
	preload_image_dest[ image_index ] = '';
}

function add_preload_image_with_dest( image_filename, element )
{
	image_index = preload_image_list.length;

	preload_image_list[ image_index ] = image_filename;
	preload_image_dest[ image_index ] = element;
}

function preload_images()
{
	var image_string = '';
	var image_counter;

	for ( image_counter = 0; image_counter < preload_image_list.length; image_counter++ )
	{
		if ( preload_image_dest[ image_counter ] == '' )
		{
			image_string = image_string + '<img src="' + preload_image_list[ image_counter ] + '">';
		}
		else
		{
			document.getElementById( preload_image_dest[ image_counter ] ).src = preload_image_list[ image_counter ];
		}
	}

	document.getElementById( 'preload_images' ).innerHTML = image_string;
}

function setup_menu( host, logged_in, course_material, forums, wiki, crm )
{
	if ( host.toLowerCase().indexOf( 'fasterpt.' ) != -1 )
	{
		add_menu_item( 'menu_home', 26, true, '', 'personal_training.php' );
		add_menu_item( 'menu_about', 26, true, '', 'about.php' );
		add_menu_item( 'menu_blog', 26, true, '', 'blog.php?blog=1' );

		add_my_account_menu( logged_in, course_material, forums, wiki, crm );

		add_menu_item( 'menu_contact', 26, true, '', 'contact.php' );
	}
	else if ( host.toLowerCase().indexOf( 'fastertrx.' ) != -1 )
	{
		add_menu_item( 'menu_home', 26, true, '', 'trx.php' );
		add_menu_item( 'menu_about', 26, true, '', 'about.php' );

		add_my_account_menu( logged_in, course_material, forums, wiki, crm );

		add_menu_item( 'menu_contact', 26, true, '', 'contact.php' );
	}
	else
	{
		add_menu_item( 'menu_home', 26, true, '', 'home.php' );
		add_menu_item( 'menu_about', 26, true, '', 'about.php' );
		add_menu_item( 'menu_courses', 27, true, '', 'courses.php' );
//		add_menu_item( 'menu_personal', 19, false, 'menu_courses', 'ffe.php' );
		add_menu_item( 'menu_personal', 19, false, 'menu_courses', '' );
		add_menu_item( 'menu_ffe1', 19, false, 'menu_courses', 'zerotohero1.php' );
		add_menu_item( 'menu_ffe5', 19, false, 'menu_courses', 'zerotohero5.php' );
		add_menu_item( 'menu_elite_pt', 19, false, 'menu_courses', 'elite_personal_trainer.php' );
//		add_menu_item( 'menu_sports', 19, false, 'menu_courses', '' );
//		add_menu_item( 'menu_golf', 19, false, 'menu_courses', 'golf.php' );
//		add_menu_item( 'menu_tennis', 19, false, 'menu_courses', '' );
//		add_menu_item( 'menu_rugby', 19, false, 'menu_courses', '' );
//		add_menu_item( 'menu_cpd', 19, false, 'menu_courses', 'functional_specialists.php' );
		add_menu_item( 'menu_cpd', 19, false, 'menu_courses', '' );
		add_menu_item( 'menu_performance1', 19, false, 'menu_courses', 'performance1.php' );
		add_menu_item( 'menu_performance12', 19, false, 'menu_courses', 'performance12.php' );
		add_menu_item( 'menu_therapy1', 19, false, 'menu_courses', 'therapy1.php' );
		add_menu_item( 'menu_therapy12', 19, false, 'menu_courses', 'therapy12.php' );
//		add_menu_item( 'menu_short', 19, false, 'menu_courses', 'short_courses.php' );
		add_menu_item( 'menu_short', 19, false, 'menu_courses', '' );
		add_menu_item( 'menu_assess', 19, false, 'menu_courses', 'aft_assess.php' );
		add_menu_item( 'menu_skills', 19, false, 'menu_courses', 'aft_skills.php' );
		add_menu_item( 'menu_extreme', 19, false, 'menu_courses', 'extreme.php' );
		add_menu_item( 'menu_obsessed', 19, false, 'menu_courses', 'obsessed.php' );
		add_menu_item( 'menu_trx', 19, false, 'menu_courses', 'trx.php' );
		add_menu_item( 'menu_group_trx', 19, false, 'menu_courses', 'group_trx.php' );
		add_menu_item( 'menu_ways', 0, false, 'menu_courses', 'ways_to_learn.php' );
		add_menu_item( 'menu_virtual_learning', 26, true, '', 'virtual_learning.php' );
		add_menu_item( 'menu_personal_training', 26, true, '', 'personal_training.php' );
		add_menu_item( 'menu_faster_friends', 26, true, '', 'friends.php' );
		add_menu_item( 'menu_blogs', 27, true, '', 'blogs.php' );
		add_menu_item( 'menu_blog1', 19, false, 'menu_blogs', 'blog.php?blog=1' );
		add_menu_item( 'menu_blog2', 19, false, 'menu_blogs', 'blog.php?blog=2' );
		add_menu_item( 'menu_blog3', 19, false, 'menu_blogs', 'blog.php?blog=3' );

		add_my_account_menu( logged_in, course_material, forums, wiki, crm );

		add_menu_item( 'menu_contact', 26, true, '', 'contact.php' );
	}

	open_submenu_by_page();

	position_menu_items();
}

function add_my_account_menu( logged_in, course_material, forums, wiki, crm )
{
	if ( logged_in == 0 )
	{
		add_menu_item( 'menu_login', 26, true, '', 'login.php' );
	}
	else
	{
		add_menu_item( 'menu_my_account', 26, true, '', '' );

		document.getElementById( 'menu_my_account' ).className = 'menu_item no_page';

		add_menu_item( 'menu_my_details', 19, false, 'menu_my_account', 'my_details.php' );
		add_menu_item( 'menu_my_courses', 19, false, 'menu_my_account', 'my_courses.php' );

		if ( course_material == 1 )
		{
			add_menu_item( 'menu_course_material', 19, false, 'menu_my_account', 'elearning?id=all' );
		}

		if ( forums == 1 )
		{
//			add_menu_item( 'menu_forums', 19, false, 'menu_my_account', 'forums' );
		}

		if ( wiki == 1 )
		{
//			add_menu_item( 'menu_wiki', 19, false, 'menu_my_account', 'wiki' );
		}

		if ( crm == 1 )
		{
			add_menu_item( 'menu_crm', 19, false, 'menu_my_account', 'crm' );
		}

		add_menu_item( 'menu_logout', 19, false, 'menu_my_account', 'logout.php' );
	}
}

function add_menu_item( menu_id, height, display, submenu_of, target )
{
	menu_item_ids[ menu_item_count ] = menu_id;
	menu_item_heights[ menu_item_count ] = height;
	menu_item_displays[ menu_item_count ] = display;
	menu_item_submenu_of[ menu_item_count ] = submenu_of;
	menu_item_target[ menu_item_count ] = target;

	menu_item_count++;
}

function open_submenu_by_page()
{
	var page_filename;
	var filename_start;
	var menu_counter;
	var menu_item_index = -1;
	var menu_to_open;

	page_filename = window.location.href;

	filename_start = page_filename.lastIndexOf( '/' );

	if ( filename_start != -1 )
	{
		page_filename = page_filename.substr( filename_start + 1 );

		if ( page_filename != '' )
		{
			for ( menu_counter = 0; menu_counter < menu_item_target.length; menu_counter++ )
			{
				if ( menu_item_target[ menu_counter ] == page_filename )
				{
					menu_item_index = menu_counter;
				}
			}

			if ( menu_item_index != -1 )
			{
				if ( menu_item_submenu_of[ menu_item_index ] != '' )
				{
					menu_to_open = menu_item_submenu_of[ menu_item_index ];
				}
				else
				{
					menu_to_open = menu_item_ids[ menu_item_index ];
				}

				for ( menu_counter = 0; menu_counter < menu_item_submenu_of.length; menu_counter++ )
				{
					if ( menu_item_submenu_of[ menu_counter ] == menu_to_open )
					{
						menu_item_displays[ menu_counter ] = true;
					}
				}
			}
		}
	}
}

function position_menu_items()
{
	var menu_top = 120;
	var menu_item_counter;

	for ( menu_item_counter = 0; menu_item_counter < menu_item_count; menu_item_counter++ )
	{
		menu_element = document.getElementById( menu_item_ids[ menu_item_counter ] );

		if ( menu_item_displays[ menu_item_counter ] )
		{
			if ( menu_top > 401 )
			{
				// Work out top corner
				menu_y = menu_top - 401;
				menu_offset = 0;
			}
			else
			{
				// Work out bottom corner
				menu_y = menu_top - 401 + menu_item_heights[ menu_item_counter ];
			}

			radius2 = 86000;

			menu_left = Math.sqrt( radius2 - menu_y * menu_y );

			menu_element.style.top = menu_top;
			menu_element.style.left = menu_left;
			menu_element.style.visibility = 'inherit';

			menu_top += menu_item_heights[ menu_item_counter ];
		}
		else
		{
			menu_element.style.visibility = 'hidden';
		}
	}
}

function menu_over( menu_id )
{
	var menu_element;
	var menu_counter;
	var submenu_found = false;

	menu_element = document.getElementById( 'menu_' + menu_id );

	if ( menu_element.className.indexOf( 'no_page' ) == -1 )
	{
		menu_element.src = 'images/' + menu_id + '_red.png';
	}

	menu_mouse_over = 'menu_' + menu_id;

	start_submenu_open_timer();
}

function menu_out( menu_id )
{
	document.getElementById( 'menu_' + menu_id ).src = 'images/' + menu_id + '_white.png';

	menu_mouse_over = '';

	stop_submenu_open_timer();
}

function menu_mouse_move()
{
	start_submenu_open_timer();
}

function submenu_over( menu_id )
{
	menu_element = document.getElementById( 'menu_' + menu_id );

	if ( menu_element.className.indexOf( 'no_page' ) == -1 )
	{
		menu_element.style.color = '#ed1c24';
	}

	menu_mouse_over = menu_id;

	stop_submenu_open_timer();
}

function submenu_out( menu_id )
{
	document.getElementById( 'menu_' + menu_id ).style.color = '#FFFFFF';

	menu_mouse_over = '';

	stop_submenu_open_timer();
}

function start_submenu_open_timer()
{
	if ( submenu_open_timer != 0 )
	{
		window.clearTimeout( submenu_open_timer );
	}

	submenu_open_timer = window.setTimeout( 'open_submenu()', 100 );
}

function stop_submenu_open_timer()
{
	if ( submenu_open_timer != 0 )
	{
		window.clearTimeout( submenu_open_timer );
		submenu_open_timer = 0;
	}
}

function open_submenu()
{
	var open_submenu = '';
	var menu_counter;
	var menu_has_submenu = false;

	for ( menu_counter = 0; menu_counter < menu_item_count; menu_counter++ )
	{
		if ( ( menu_item_displays[ menu_counter ] ) && ( menu_item_submenu_of[ menu_counter ] != '' ) )
		{
			open_submenu = menu_item_submenu_of[ menu_counter ];
		}

		if ( menu_item_submenu_of[ menu_counter ] == menu_mouse_over )
		{
			menu_has_submenu = true;
		}
	}

	if ( menu_has_submenu )
	{
		menu_opening = menu_mouse_over;

		if ( open_submenu == '' )
		{
			if ( submenu_opening_timer == 0 )
			{
				submenu_opening_timer = window.setInterval( 'open_submenu_step()', 20 );
			}
		}
		else if ( open_submenu != menu_mouse_over )
		{
			close_submenu();
			open_after_close = true;
		}
	}
}

function open_submenu_step()
{
	var menu_found = false;
	var menu_counter = 0;

	while ( ( menu_found == false )
		 && ( menu_counter < menu_item_count ) )
	{
		if ( ( menu_item_submenu_of[ menu_counter ] == menu_opening )
		  && ( menu_item_displays[ menu_counter ] == false ) )
		{
			menu_found = true;

			menu_item_displays[ menu_counter ] = true;

			position_menu_items();
		}

		menu_counter++;
	}

	if ( menu_found == false )
	{
		window.clearInterval( submenu_opening_timer );
		submenu_opening_timer = 0;
	}
}

function close_submenu()
{
	var open_submenu = '';
	var menu_counter;

	if ( submenu_opening_timer != 0 )
	{
		window.clearInterval( submenu_opening_timer );
		submenu_opening_timer = 0;
	}

	if ( submenu_closing_timer != 0 )
	{
		window.clearInterval( submenu_closing_timer );
		submenu_closing_timer = 0;
	}

	submenu_closing_timer = window.setInterval( 'close_submenu_step()', 20 );
}

function close_submenu_step()
{
	var menu_found = false;
	var menu_counter = menu_item_count - 1;

	while ( ( menu_found == false )
		 && ( menu_counter >= 0 ) )
	{
		if ( ( menu_item_displays[ menu_counter ] == true )
		  && ( menu_item_submenu_of[ menu_counter ] != '' ) )
		{
			menu_found = true;

			menu_item_displays[ menu_counter ] = false;

			position_menu_items();
		}

		menu_counter--;
	}

	if ( menu_found == false )
	{
		window.clearInterval( submenu_closing_timer );
		submenu_closing_timer = 0;

		if ( open_after_close )
		{
			if ( submenu_opening_timer == 0 )
			{
				submenu_opening_timer = window.setInterval( 'open_submenu_step()', 20 );
			}
		}
	}
}

function menu_click( item )
{
	var menu_counter;
	var target = '';

	for ( menu_counter = 0; menu_counter < menu_item_ids.length; menu_counter++ )
	{
		if ( menu_item_ids[ menu_counter ] == ( 'menu_' + item ) )
		{
			target = menu_item_target[ menu_counter ];
		}
	}

	if ( target != '' )
	{
		if ( target.indexOf( '.php' ) == -1 )
		{
			window.open( target, '_blank' );
		}
		else
		{
			window.location.href = target;
		}
	}
}

function search_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 )
	{
		search();
	}
}

function search()
{
	var search_text;

	search_text = document.getElementById( 'search' ).value;

	if ( search_text != '' )
	{
		document.getElementById( 'search_text' ).value = search_text;
		document.getElementById( 'search_form' ).submit();
	}
}

function start_image_cycle()
{
	window.setTimeout( 'start_image_fade()', 5000 );
}

function start_image_fade()
{
	main_image_fade_step = 0;

	fade_timer = window.setInterval( 'on_image_fade()', 20 );

	main_fade_image = document.getElementById( 'main' + ( ( main_shown_image + 1 ) % 4 ) );

	set_opacity( main_fade_image, 0 );
	main_fade_image.className = 'main_image fade';
}

function on_image_fade()
{
	if ( main_image_fade_step < 100 )
	{
		main_image_fade_step += 2;

		set_opacity( main_fade_image, main_image_fade_step );
	}
	else
	{
		document.getElementById( 'main' + main_shown_image ).className = 'main_image hidden';
		main_fade_image.className = 'main_image';

		main_fade_image.className = 'main_image';

		main_shown_image = ( main_shown_image + 1 ) % 4;

		window.clearInterval( fade_timer );
		fade_timer = 0;

		start_image_cycle();
	}
}

function set_opacity( opacity_object, opacity_percent )
{
	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 mouse_over_book_now()
{
	document.getElementById( 'book_now_button' ).src = "images/book_now_over.png";
}

function mouse_out_book_now()
{
	document.getElementById( 'book_now_button' ).src = "images/book_now.png";
}

function format_price( price )
{
	price_string = String( Math.floor( price / 100 ) );

	pence = price % 100;

	if ( pence != 0 )
	{
		if ( pence < 10 )
		{
			price_string = price_string + '.0' + String( pence );
		}
		else
		{
			price_string = price_string + '.' + String( pence );
		}
	}

	return price_string;
}


