var forceMapping = {
	'dyn>dyn': 1,
	'dyn>gf': 0.001019716,
	'dyn>kgf': 1.019716e-006,
	'dyn>kN': 1e-008,
	'dyn>mN': 0.01,
	'dyn>N': 1e-005,
	'dyn>ozf': 3.596943e-005,
	'dyn>lbf': 2.248089e-006,
	
	'gf>dyn': 980.665,
	'gf>gf': 1,
	'gf>kgf': 0.001,
	'gf>kN': 0.000009807,
	'gf>mN': 9.80665,
	'gf>N': 0.00980665,
	'gf>ozf': 0.03527396,
	'gf>lbf': 0.002204623,
	
	'kgf>dyn': 980665,
	'kgf>gf': 1000,
	'kgf>kgf': 1,
	'kgf>kN': 0.00980665,
	'kgf>mN': 9806.65,
	'kgf>N': 9.80665,
	'kgf>ozf': 35.27396,
	'kgf>lbf': 2.204623,
	
	'kN>dyn': 1e+008,
	'kN>gf': 101971.6,
	'kN>kgf': 101.9716,
	'kN>kN': 1,
	'kN>mN': 1000000,
	'kN>N': 1000,
	'kN>ozf': 3596.943,
	'kN>lbf': 224.8089,
	
	'mN>dyn': 100,
	'mN>gf': 0.1019716,
	'mN>kgf': 0.0001019716,
	'mN>kN': 1e-006,
	'mN>mN': 1,
	'mN>N': 0.001,
	'mN>ozf': 0.003596943,
	'mN>lbf': 0.0002248089,
	
	'N>dyn': 100000,
	'N>gf': 101.9716,
	'N>kgf': 0.1019716,
	'N>kN': 0.001,
	'N>mN': 1000,
	'N>N': 1,
	'N>ozf': 3.596943,
	'N>lbf': 0.2248089,
	
	'ozf>dyn': 27801.39,
	'ozf>gf': 28.34952,
	'ozf>kgf': 0.02834952,
	'ozf>kN': 0.0002780139,
	'ozf>mN': 278.0139,
	'ozf>N': 0.2780139,
	'ozf>ozf': 1,
	'ozf>lbf': 0.0625,
	
	'lbf>dyn': 444822.2,
	'lbf>gf': 453.5924,
	'lbf>kgf': 0.4535924,
	'lbf>kN': 0.004448222,
	'lbf>mN': 4448.222,
	'lbf>N': 4.448222,
	'lbf>ozf': 16,
	'lbf>lbf': 1,
	
	'end': 0
};
jQuery.fn.forceConverter = function() {
	var div = $(this);

	var lookup = $.cookie('forceConverter');
	if (lookup != null) {
		var look = lookup.split('>');

		div.find('.input select option[value=' + look[0] + ']').attr('selected', true);
		div.find('.output select option[value=' + look[1] + ']').attr('selected', true);
	}


	div.find('select,input').change(function() {
		recalculateResult(div);
	});
	div.find('select,input').bind('keyup', function() {
		recalculateResult(div);
	});
	div.find('input').bind('keypress', function(e) {
		if (e.which == 8 || e.which == 46) return true;
		if (e.which < 48 || e.which > 57) return false;
	});
	recalculateResult(div);

	function recalculateResult(div) {
		var inputUnits = div.find('.input select');
		var outputUnits = div.find('.output select');

		var amount = new Number(div.find('.result .input input').val());

		div.find('.input .units').text(inputUnits.find('option:selected').text());
		div.find('.output .units').text(outputUnits.find('option:selected').text());

		var lookup = inputUnits.val() + '>' + outputUnits.val();
		var mux = new Number(forceMapping[lookup]);
		var val = parseFloat(mux * amount).toPrecision(8);

		if (isNaN(val))
			val = '';

		div.find('.result .output input').val(val);

		$.cookie('forceConverter', lookup, { expires: 365 });
	}

	return this;
}
