var xmlData = new Object;
var labor_force = 155852928;
var gdp = 14241000000000;

var individual_spent = new Array;
var total_spent = 0;
var individual_jobs = new Array;
var jobs_saved = 0;
var grades = new Array;

function addCommas(nStr) {
	nStr += '';
	x = nStr.split('.');
	x1 = x[0];
	x2 = x.length > 1 ? '.' + x[1] : '';
	var rgx = /(\d+)(\d{3})/;
	while (rgx.test(x1)) {
		x1 = x1.replace(rgx, '$1' + ',' + '$2');
	}
	return x1 + x2;
} //addCommas

function abbreviateNumber(number) {
	var abbrNo;
	
	if (number == 0) {
		finalAbbr = 0;
	} else if (Math.abs(number) >= Math.pow(10,12)) {
		abbrNo = number/Math.pow(10,12);
		finalAbbr = abbrNo.toPrecision(3) + " trillion";
	} else if (Math.abs(number) >= Math.pow(10,9)) {
		abbrNo = number/Math.pow(10,9);
		finalAbbr = abbrNo.toPrecision(3) + " billion";
	} else if (Math.abs(number) >= Math.pow(10,6)) {
		abbrNo = number/Math.pow(10,6);
		finalAbbr = abbrNo.toPrecision(3) + " million";
	} else {
		finalAbbr = addCommas(number);
	}
		
	return finalAbbr;
} //abbreviateNumber
		
function parseXML() {
	labor_force = parseInt($("constants labor", xmlData).text());
	gdp = parseInt($("constants gdp", xmlData).text());
	$("ul.tab_content").text("");
	var iterator = 0;
	$("items item", xmlData).each(function() {
		var itemID = $(this).attr("id");
		var title = $("title", this).text();
		var desc = $("desc", this).text();
		var max = $("max", this).text();
		var mult = $("mult", this).text();
		var cat = $(this).attr("cat");
		$("<li>").attr("id", itemID).addClass("item")
			.append($("<ul>").addClass("item_elements")
				.append($("<li>").addClass("item_head").append(title))
				.append($("<li>").addClass("item_desc").append(desc))
				.append($("<li>").addClass("slider")
					.append($("<span>").addClass("ui-slider").data("itemID", itemID).data("max", max).data("mult", mult).data("iterator", iterator).attr("id", "slider_"+itemID)
						.append($("<div>").addClass("ui-slider-handle")
					).slider({
						orientation: 'horizontal',
						slide: sliderAdjust,
						change: sliderAdjust,
						max: 200
					}).slider("disable").bind("mouseover", function() {$(this).slider("enable"); }) // $("li.slider").toggleClass("ie6sucks"); }).bind("mouseout", function() {$("li.slider").toggleClass("ie6sucks")})
				)
				.append($("<span>").addClass("item_cost").append("Cost: $0")))			)
			.attr("max", max).attr("mult", mult)
			.appendTo("#"+cat);
		iterator++;
	});
	var g_i = 0;
	$("grades grade", xmlData).each(function(){
		grades[g_i] = new Object;
		grades[g_i].grade = $("title", this).text();
		grades[g_i].min = parseInt($("min", this).text());
		grades[g_i].max = parseInt($("max", this).text());
		g_i++;
	});
	//$("#mainlist, li.slider").toggleClass("ie6sucks");
} //parseXML

function sumArray(array) {
	var sum = 0;
	for ( var i in array ) {
		sum += (array[i]);
	}
	return sum;
} //sumArray

function findGrade(value) {
	var found_grade = value;
	for (var i = 0; i<grades.length; i++) {
		if (value >= grades[i].min && value < grades[i].max) {
			found_grade = grades[i].grade;
			break;
		}
	}
if (isNaN(value) || value == 0) {found_grade = "";}
	return found_grade;
} //findGrade
		
function sliderAdjust(e, ui) {
	var slider_value = ui.value;
	var slider_ID = $(this).data("itemID");
	var max_value = parseInt($(this).data("max"));
	var mult_value = parseFloat($(this).data("mult"));
	var slider_spending = parseInt(slider_value/200 * max_value);
	$("#"+slider_ID+" span.item_cost").text("Cost: $"+abbreviateNumber(slider_spending));
	individual_spent[$(this).data("iterator")] = slider_spending;
	total_spent = sumArray(individual_spent);
	$("#spending").text("$"+abbreviateNumber(total_spent));
	individual_jobs[$(this).data("iterator")] = (parseInt(((((slider_spending*mult_value+gdp)/gdp)-1)/-2)*labor_force*-1));
	jobs_saved = sumArray(individual_jobs);
	$("#jobs").text(addCommas(jobs_saved));
	$("#gdp").text(parseInt(total_spent/(gdp*2)*10000)/100+"%");
	$("#grade").text(findGrade((total_spent/(jobs_saved+1))));
	//$("li.slider").toggleClass("ie6sucks");
}

$(document).ready(function() {
	$("#tab_box").tabs();
	$.get("interactive/stimulus-data.xml", function(data) {
		xmlData = data;
		parseXML();
	});

if ($.browser.mozilla && parseFloat($.browser.version.substr(0,3))<1.9) { $("#mainlist").css("clear","both"); }
});

