var slider_value = 0;

var xmlData = new Object;
var state_data;

function makeSlider() {
	$("#slider").slider({
		min: 0,
		max: 500,
		slide: sliderAdjust,
start: showEightyThree
	});
}

function showEightyThree() {
$("#handle-1983").fadeIn(500);
}

function showHandles() {
	$("#handle-2007, #user-handle").fadeIn(500);
}

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 (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;
}

function showSliderValue() {
	$("#slider_value").stop(true, true).fadeIn(500);
}

function hideSliderValue() {
	$("#slider_value").fadeOut(500);
}
		
function sliderAdjust(e, ui) {
	slider_value = Math.round(ui.value)/1000
	$("#slider_value").text(Math.round(ui.value)/10+"%").css("left", slider_value*1000);
	doSliderMath();
} //sliderAdjust

function doSliderMath() {
	var current_workers = $("no_workers", state_data).text();
	var rate_2007 = $("rate[year='2007']", state_data).text();
	var current_unionized = current_workers * rate_2007;
	var slider_unionized = current_workers * slider_value;
	var addl_unionized = slider_unionized - current_unionized;
	$("#addl_unionized").text(addCommas(Math.round(addl_unionized)));
	var current_total_wages = $("current_wages_overall", state_data).text();
	var annual_uwp = $("annual_uwp", state_data).text();
	var slider_new_wages = addl_unionized * annual_uwp;
	var slider_total_wages = parseFloat(current_total_wages) + slider_new_wages;
	$("#total_state_wages").text("$"+abbreviateNumber(Math.round(slider_total_wages)));
	$("#new_wages").text("$"+abbreviateNumber(Math.round(slider_new_wages)));
}

function selectState(state) {
	state_data = $("state[abbr='"+state+"']", xmlData);
	$(".state_name").text($("state_name", state_data).text());
	if (state == "USA") {
		$(".spec_state_name").prepend("the ");
	}
	var newimage = "url(http://images2.americanprogress.org/CAP/2009/01/unionization_states/"+state+".jpg)";
	$("#state_graphic").css({"background-image" : newimage});
	$("#hourly_premium").text("$"+$("hourly_uwp", state_data).text());
	$("#state_uwp").text(($("union_wage_prem", state_data).text()*100).toFixed(2)+"%*");
	$("#state_auwp").text("$"+addCommas($("annual_uwp", state_data).text()));
	rate_1983 = parseFloat($("rate[year='1983']", state_data).text());
	rate_2007 = parseFloat($("rate[year='2007']", state_data).text());
	$("#handle-1983").animate({left : rate_1983*1000}).data("value", rate_1983*1000);
	$("#handle-2007").animate({left : rate_2007*1000}).data("value", rate_2007*1000);
	$("#user-handle").animate({left : (rate_1983)*1000});
	slider_value = rate_1983;
	$("#slider_value").text(Math.round(slider_value*1000)/10+"%").animate({left : slider_value*1000}).fadeOut(500);
	//$("#slider").slider("value", rate_2007*1000, 1);
	doSliderMath();
$("#handle-1983").fadeOut(500);
} //selectState

function startUp(filepath) {
	$("#slider_value").hide();
	$("#slider-container").bind("mouseenter", showSliderValue).bind("mouseleave", hideSliderValue);
	$.get(filepath, function(data) {
		xmlData = data;
		makeSlider();
		selectState("USA");
showHandles();
	});
}