instructionController=function() {

	return {
		initialize : function() {
			$('#instructions').show();
			set_page("game_story");
			$(window).resize(center_title);
			center_title();
			load_variable_values();
			load_all_icons();
			load_agent_names();
			load_location_names();
			load_special_action_names();
			countdownController.setCountdown(
				"instruction_submit_timer",
				variables.turn_length,
				function(id) { }
			);
			[ "fuel_costs",
                          "explosion_costs",
                          "capture_costs",
                          "special_actions" ].forEach(function(table) {
				var html;
				html = $('#'+table).html();
				$('#'+table+'_waiting').html(html);
			} );
			$('#start_game').click(function() {
				set_page("wait_page");
				setTimeout(function() {
					submit("instruction_done")
				}, 30000);
			} );
		},

		end : function() {
			$('#instructions').hide();
		}
	}

	function center_title() {
		var instruction_width = $("#instructions").width();

		[ "#title_box", "#start_game" ].forEach(function(element_id) {
			var element_width = $(element_id).width();
			var diff, pixels, margin_left;

			diff = instruction_width - element_width;
			pixels = Math.floor(diff / 2);
			margin_left = String(pixels) + "px";
			$(element_id).css("margin-left", margin_left);
		} );
	}

	function hide_all_instruction_pages() {
		$('#game_story').hide();
		$('#wait_page').hide();
	}

	function set_page(page) {
		hide_all_instruction_pages();
		$('#'+page).show();
	}

	function load_variable_values() {
		[ "aid_decrement",
		  "aid_impact",
		  "aid_level",
		  "bank_balance",
		  "blue_team_strength_target",
		  "bomber_building_ied_wait",
		  "cp_blown_to_bits_cost",
		  "cp_blown_to_bits_wait",
		  "cp_engaging_wait",
		  "cp_fuel_capacity",
		  "cp_out_of_fuel_wait",
		  "cp_refueling_wait",
		  "convoy_blown_to_bits_cost",
		  "convoy_blown_to_bits_wait",
		  "convoy_delivering_wait",
		  "convoy_fuel_capacity",
		  "convoy_loading_wait",
		  "convoy_out_of_fuel_wait",
		  "convoy_refueling_wait",
		  "digger_captured_cost",
		  "digger_captured_wait",
		  "digger_planting_wait",
		  "financier_captured_cost",
		  "financier_captured_wait",
		  "ied_cost",
		  "smuggler_captured_cost",
		  "smuggler_captured_wait",
		  "turn_length",
		  "uav_fuel_capacity",
		  "uav_out_of_fuel_wait",
		  "uav_refueling_wait",
		  "village_sentiment_target",
		].forEach(function(variable) {
			$(variable).text(variables[variable]);
		} );
	}

	function load_all_icons() {
		for (var agent_type in agents) {
			var agent = agents[agent_type];
			load_icon(agent_type + '_img', agent.file);
		}
		load_icon("bomb_img", "bmico.png");
		load_icon("explosion_img", "Boom2.png");
		load_icon("map_img", "IED_Background2.png");
	}

	function load_icon(element, img_file) {
		var img_html = '<img src="' + getFile(img_file) + '" />';
		$(element).html(img_html);
	}

	function load_agent_names() {
		for (var agent_type in agents) {
			var agent = agents[agent_type];
			var name_html;

			name_html = '<span class="' +
				agent.side +
				'_instruction">' +
				agent.display_name +
				'</span>';

			$(agent_type + '_name').html(name_html);
		}
	}

	function load_location_names() {
		for (var location_name in locations) {
			var location = locations[location_name];
			var name_html;

			name_html = '<span>' +
				location.display_name +
				'</span>';

			$(location_name + '_name').html(name_html);
		}
	}

	function load_special_action_names() {
		for (var action_type in special_actions) {
			var action = special_actions[action_type];
			var action_html;

			action_html = '<span>' +
				action.display_name +
				'</span>';

			$(action_type + '_name').html(action_html);
		}
	}

} ();
