function showReflectsKnownRatesDateStr(lang)
{
	var elReflectsDate = document.getElementById("reflectsDateElement");
	if (elReflectsDate)
	{
		var reflectsKnownRatesDateStr = eval("reflectsKnownRatesDateStr_"+lang);
		elReflectsDate.innerHTML = reflectsKnownRatesDateStr;
	}
}


function addcommas(x) {
	var newstring="";
	x=x+"c"
	for (i=0 ; i<x.length-1 ; i++) {
		if ((x.length-i)%3 == 1  &  i != 0) {
			newstring = newstring + "," + x.substring(i,i+1);
		} else {
			newstring = newstring + x.substring(i,i+1);
	}	}
	return newstring;
}
function formatnumber(a,b) {
	if (b==0) {
		a=a;
		if (a == 0) { return "0"; }
		else if (a/Math.abs(a) == 1) { return addcommas(Math.round(a)); }
		else { return "- " + addcommas(Math.round(-a)); }
	} else {
		if (a == 0) { return "$0"; }
		else if (a/Math.abs(a) == 1) { return "$" + addcommas(Math.round(a)); }
		else { return "- $" + addcommas(Math.round(-a)); }
}	}
function unformat(x) {
	var newvalue=0;
	for (i=0 ; i<x.length ; i++) {
		y = x.substring(i,i+1);
		if (y=='0' | y=='1' | y=='2' | y=='3' | y=='4' | y=='5' | y=='6' | y=='7' | y=='8' | y=='9') {
			newvalue=10*newvalue + Number(x.substring(i,i+1));
	}	}
	return newvalue;
}
function isnotint(a) {
	if ( (navigator.appName != "Netscape") && (parseInt(navigator.appVersion)<=3) ) {
		for (k=0 ; k<a.length ; k++) {
			if (a.substring(k,k+1) < "0" | a.substring(k,k+1) > "9") {
				if (a.substring(k,k+1) != "," & a.substring(k,k+1) != "$" & a.substring(k,k+1) != "%")
				return true;
	}	}	}
	return false;
}
function formatpercent(a) {
	var string = Math.round(a*10000)/100 + "00x";
	if (string.indexOf(".") == -1) { string = string.substring(0,string.length-3) + ".00x"; }
	string = string.substring(0,string.indexOf(".")+3) + "%";
	return string;
}
function formatpercentSimple(a) {
	return unformat(a) + "%"
}

function taxfromcharts(chart, a, b) {
	var rmaxlen = eval("range_max_"+chart+"[a].length");
	if (b <= 0) { return 0; }
	for (i=0 ; i<rmaxlen ; i++) { 
		var rmax = eval("range_max_"+chart+"[a][i]");
		var btax = eval("basic_tax_"+chart+"[a][i]");
		var rmin = eval("range_min_"+chart+"[a][i]");
		var itax = eval("incometax_"+chart+"[a][i]");
		if (b <= rmax) {
			return btax+(b-rmin)*itax;
		}
	}
	return btax+(b-rmin)*itax;
}
function ratefromcharts(chart, a, b) {
	var rminlen = eval("range_min_"+chart+"[a].length");
	for (i=0 ; i<rminlen ; i++) {
		var rmax = eval("range_max_"+chart+"[a][i]");
		var itax = eval("incometax_"+chart+"[a][i]");
		if (b <= rmax) {
			return itax;
	}	}
	return 0;
}
function capgainsfromcharts(chart, a, b) {
	var rminlen = eval("range_min_"+chart+"[a].length");
	for (i=0 ; i<rminlen ; i++) {
		var rmax = eval("range_max_"+chart+"[a][i]");
		var capg = eval("capgains_"+chart+"[a][i]");
		if (b <= rmax) {
			return capg;
	}	}
	return 0;
}
function elgdivratefromcharts(chart, a, b) {
	var rminlen = eval("range_min_"+chart+"[a].length");
	for (i=0 ; i<rminlen ; i++) {
		var rmax = eval("range_max_"+chart+"[a][i]");
		var divr = eval("elgdivrate_"+chart+"[a][i]");
		if (b <= rmax) {
			return divr;
	}	}
	return 0;
}

function othdivratefromcharts(chart, a, b) {
	var rminlen = eval("range_min_"+chart+"[a].length");
	for (i=0 ; i<rminlen ; i++) {
		var rmax = eval("range_max_"+chart+"[a][i]");
		var divr = eval("othdivrate_"+chart+"[a][i]");
		if (b <= rmax) {
			return divr;
	}	}
	return 0;
}

function divratefromcharts(chart, a, b) {
	var rminlen = eval("range_min_"+chart+"[a].length");
	for (i=0 ; i<rminlen ; i++) {
		var rmax = eval("range_max_"+chart+"[a][i]");
		var divr = eval("divrate_"+chart+"[a][i]");
		if (b <= rmax) {
			return divr;
	}	}
	return 0;
}