			var FTDAT = {}
			FTDAT.gender = "male";
			FTDAT.current = "";
			FTDAT.counter = 0;
			FTDAT.loadfile = "ft_data.txt";
			FTDAT.grams = "g";
			FTDAT.fr = function() {

				FTDAT.grams = " g";
			}

			
			// Loads FT data
			function loadData() {
				$.getJSON(FTDAT.loadfile,
					function(data, textStatus){							 
						 if (textStatus == "success") {
							for (var i in data) {
								FTDAT[i] = data[i];
							}
							loaded();
							}
					}
				);					
			}


			//
			// Create the table that contains fibre tracker data
			//
			function makeTable(id) {
				$(".ftitemlink").removeClass( "selected" );
				$(".ftitemlink:eq("+id+")").addClass("selected");
			
				FTDAT.current = id;//escape(link.text())
				var list = FTDAT.list[parseInt(id,10)];
				$('tbody').empty();
								
				for (var i =0; i < list.length; i++) {									
					$('tbody').append('<tr><td class="ftitemname">'+list[i].item+'</td><td class="ftgrams">'+list[i].grams+FTDAT.grams+'</td><td class="ftserving">'+list[i].serving+'</td><td class="ftcounters"><a href="#" class="ftplus"><img src="images/ft/plus.gif" /></a> <a href="#" class="ftminus"><img src="images/ft/minus.gif" /></a></td><td class="ftvalue">'+list[i].day+'</td></tr>');				
					$(".ftcounters:eq("+i+")").data("row", i);					
				}
				
				$(".ftplus").click(function() { modcounter($(this).parent(), 1); return false;});
				$(".ftminus").click(function() { modcounter($(this).parent(), -1); return false;});
			}
			
			//
			// Modify servings/day count
			// field: table row td; val: modifier amount
			function modcounter(field, val) {
				var num = parseInt($(field).siblings(".ftvalue").text(), 10);
				var inc = val*(parseInt($(field).siblings(".ftgrams").text(), 10))
				if (num + val >= 0 && FTDAT.counter + inc <= 999) {
					num += val;
					FTDAT.counter += inc;					
					$(field).siblings(".ftvalue").text(num);					
					FTDAT.list[FTDAT.current][$(field).data("row")].day = num;
					
					refreshBar();					
				}
			}

			function reset() {
				for (i in FTDAT.list) {
					for (j in FTDAT.list[i]) {
						FTDAT.list[i][j].day = 0;
					}
				}
				FTDAT.counter = 0;
				refreshBar();
				makeTable(0);
				return false;
			}
			
			//
			// Update the results bar.
			function refreshBar() {
				$("#ftcount").text(FTDAT.counter + FTDAT.grams)
				var perc = Math.min(100,parseInt(100*FTDAT.counter /(FTDAT.target[FTDAT.gender]))); // ***
				$("#ftbarmeasure").stop();
				$("#ftbarmeasure").animate(
						{"width": perc + "%"}
						, 100);	// bar animation speed
				$("#ftgoal").text(FTDAT.target[FTDAT.gender] + FTDAT.grams);
				$(".ftnotice").hide();
				if (perc != 0) {
					//$(".ftnotice:eq("+Math.max(0, Math.floor(perc/25)-1)+")").show();
					for (var i=FTDAT[FTDAT.gender].length-1; i >= 0; i--) {
						if (FTDAT.counter >= FTDAT[FTDAT.gender][i]) {
							$(".ftnotice:eq("+(i)+")").show();							
							return;
						}
					}
				}
			
			}
			
							
			function changeMale() {
				FTDAT.gender = "male";
				$("a#ftmale").addClass("selected");
				$("a#ftfemale").removeClass("selected");
				refreshBar();
				return false;
			}
			function changeFemale() {
				FTDAT.gender = "female";
				$("a#ftmale").removeClass("selected");
				$("a#ftfemale").addClass("selected");
				refreshBar();
				return false;
			}
			
			//
			// Set up the Fibre Tracker after loading initial content
			//
			function loaded() {
				// create navigation
				var firstlastclass = "";
				for (i = 0; i < FTDAT.categories.length; i++) {		
					
					if (i == 0) {
						firstlastclass = " first";
					} else if (i == FTDAT.categories.length - 1) {
						firstlastclass = " last";
					} else {
						firstlastclass = "";
					}

					$("#ftstep2options").append('<a href="#" class="ftitemlink'+firstlastclass+'">' + FTDAT.categories[i] + '</a>');	
				}
			
				($("#ftstep2options").children()).click(function() { 					
					makeTable($(this).prevAll().length);
					
					return false;
				});	

				// Initial selection
				makeTable(0);
				
				// male/female options
				$("a#ftmale").click(changeMale);
				$("a#ftfemale").click(changeFemale);
				$("a#ftreset").click(reset);
				$(".ftnotice:gt(0)").hide();
				changeMale();
			}
			
			// On init
			$(document).ready(function(){	
				if ( !($.browser.msie && $.browser.version < 7)) {
						
						$("#ftbarborder").css("background-image", "url(../en/images/ft/grid.png)");
						$("#ftbarmeasure").css("top", "4px")
					
				} else {
					//alert ($.browser.version);
				}

				loadData();
	
			});
		
