	function calculate_next_feature() {
		if (current_feature < features_to_display) {
			next_feature = current_feature + 1;
		} else {
			next_feature = 1;
		}
		return next_feature;
	}

	function calculate_previous_feature() {
		if (current_feature > 1) {
			previous_feature = current_feature - 1;
		} else {
			previous_feature = features_to_display;
		}
		return previous_feature;
	}

	function rotate_features(go) {
		rotation_speed = 5; // seconds
		
		if (go) { // start or continue rotation
		
			if (!isset("current_feature")) { current_feature = 0; }
			
			next_feature = calculate_next_feature();
			display_feature(next_feature);
			
			rotation = setTimeout("rotate_features(1)", (rotation_speed * 1000));
			document.control_button_play_pause.src = "template_images/featurenav_pause.gif";
			
		} else { // stop rotation
			clearTimeout(rotation);
			document.control_button_play_pause.src = "template_images/featurenav_play.gif";
		}
	}

	function display_feature(feature) {
		for (i=1; i<=features_to_display; i++) {
			eval("document.number_button_" + i + ".src = 'template_images/featurenav_" + i + "_off.gif';");
		}
		eval("document.number_button_" + feature + ".src = 'template_images/featurenav_" + feature + "_on.gif';");

		eval("this_image = feature_" + feature + "_image;");
		eval("this_headline = feature_" + feature + "_headline;");
		eval("this_subheadline = feature_" + feature + "_subheadline;");
		eval("this_file_name = feature_" + feature + "_file_name;");
		
		this_image = "<a href=\"" + this_file_name + "\"><img src=\"" + this_image + "\" width=\"" + feature_image_width + "\" height=\"" + feature_image_height + "\" alt=\"" + this_headline + "\" border=\"0\"></a>";
		this_headline = "<a href=\"" + this_file_name + "\">" + this_headline + "</a>";
		
		document.getElementById("feature_image").innerHTML = this_image;
		document.getElementById("feature_headline").innerHTML = this_headline;
		document.getElementById("feature_subheadline").innerHTML = this_subheadline;
		
		current_feature = feature;
	}

	function display_feature_and_stop(feature) {
		display_feature(feature);
		rotate_features(0);
	}
	
	function toggle_play_pause() {
		if (document.control_button_play_pause.src.indexOf("play") != -1) {
			rotate_features(1);
		} else {
			rotate_features(0);
		}
	}
	
	function build_number_buttons() {
		number_buttons = "";
		for (i=1; i<=features_to_display; i++) {
			number_buttons += "<a href=\"JavaScript:display_feature_and_stop(" + i + ");\"><img \n";
			number_buttons += " src=\"template_images/featurenav_" + i + "_off.gif\"\n";
			//number_buttons += " onmouseover=\"swap('number_button_" + i + "', 'on')\"\n";
			//number_buttons += " onmouseout=\"swap('number_button_" + i + "', 'off')\"\n";
			number_buttons += " width=\"27\" height=\"27\" name=\"number_button_" + i + "\" border=\"0\" alt=\"" + i + "\"\n";
			number_buttons += "></a>\n";
		}
		document.getElementById("feature_number_buttons").innerHTML = number_buttons;
	}
	
	function build_control_buttons() {
		control_buttons = "";
		
		control_buttons += "<a href=\"JavaScript:display_feature_and_stop(calculate_previous_feature())\"><img \n";
		control_buttons += " src=\"template_images/featurenav_back.gif\"\n";
		control_buttons += " width=\"27\" height=\"27\" name=\"control_button_back\" border=\"0\" alt=\"back\"\n";
		control_buttons += "></a>\n";
		
		control_buttons += "<a href=\"JavaScript:toggle_play_pause()\"><img \n";
		control_buttons += " src=\"template_images/featurenav_pause.gif\"\n";
		control_buttons += " width=\"27\" height=\"27\" name=\"control_button_play_pause\" border=\"0\" alt=\"play/pause\"\n";
		control_buttons += "></a>\n";
		
		control_buttons += "<a href=\"JavaScript:display_feature_and_stop(calculate_next_feature())\"><img \n";
		control_buttons += " src=\"template_images/featurenav_forward.gif\"\n";
		control_buttons += " width=\"27\" height=\"27\" name=\"control_button_forward\" border=\"0\" alt=\"forward\"\n";
		control_buttons += "></a>\n";
		
		document.getElementById("feature_control_buttons").innerHTML = control_buttons;
	}
