prices = new Array();
prices['intradePrice'] = new Array();
prices['digitalPrice'] = new Array();
prices['fixedPrice'] = new Array();
prices['displayDigital'] = new Array();
for(i = 0; i < 100; i++)
{
	prices['intradePrice'][i] = i+1;
	prices['digitalPrice'][i] = 100 / prices['intradePrice'][i];
	prices['displayDigital'][i] = round(100 / prices['intradePrice'][i]);
	prices['fixedPrice'][i] = (i < 99)? fractApprox((prices['digitalPrice'][i]-1),100) : '-';
}
function nextNearest(value, number) {
//	Gets the decimal portion of the number (if any). 
//	If > 5, rounds up - < 5, rounds down ....
var val = String(value);
var ceil;
if(val.indexOf('.')!= -1)
{
	isDecimal = true;
	if(val.charAt((val.indexOf('.')+1)) > 5)
		ceil = Math.ceil(value);
	else
	{
		ceil = Math.floor(value);
		return ceil;
	}
}
else
	ceil = Math.ceil(value);
var remainder = value % number;
if (remainder > 0)
  value = value - remainder + number;
return value;
}

function fractApprox(x,maxDenominator) {
	// Created 1997 by Brian Risk.  http://members.aol.com/brianrisk
	maxDenominator = parseInt(maxDenominator);
	var approx = 0;
	var error = 0;
	var best = 0;
	var besterror = 0;
	for (var i=1; i <= maxDenominator; i++) {
		approx = Math.round(x/(1/i));
		error = (x - (approx/i))
		if (i==1) {best = i; besterror = error;}
		if (Math.abs(error) < Math.abs(besterror)) 
			{best = i; besterror = error;}
	}
	return (Math.round(x/(1/best)) + "/" + best);
}

function pop_calc(url)
{
	if(window.frames['calcWin'])
		alert('Already Open!');
	var calcWin = window.open(url,'calcWin','width=390,height=350,scrollbars=auto,resizable=yes');
	calcWin.focus();

}

function pix_win(url)
{
	pixWin = window.open(url,'pixWin','width=250,height=400,top=3,left=3,resizable=no,menubar=no,personalbar=no,status=no,titlebar=no,dependent=yes');
	pixWin.focus();
	return;
}
function round(number,X)
{
// rounds number to X decimal places, defaults to 2
    X = (!X ? 2 : X);
    return Math.round(number*Math.pow(10,X))/Math.pow(10,X);
}

function setSelects(index)
{
	document.calco.intrade.value = prices2['intrade'][index];
	document.calco.digital.value = prices2['digital'][index];
}
function writeCalcTable()
{
	window.parent.resizeTo(350,350);
	bgColors = new Array("#ffffe1","#ddeeff","#eafff4");
	rowStart = '\t<tr align=center>';
	tdStart = '\t\t<td width="40" bgColor=';
	divStart = '<div align="center"><b>';

	divStop = '</b></div>';
	tdStop = '\t\t</td>';
	rowStop = '\t</tr>';
	c = 0;

	fullStart = rowStart+tdStart;
	for(i = 0,j = 50; i < 50,j < 100; i++,j++)
	{
		document.write(fullStart);
		document.write(bgColors[0]+'>');
		document.write(divStart);
		document.write(prices['intradePrice'][i]);
		document.write(divStop+tdStop);
		document.write(tdStart+bgColors[1]+'>'+divStart);
		document.write(prices['displayDigital'][i]);
		document.write(divStop+tdStop);
		document.write(tdStart+bgColors[2]+'>'+divStart);
		document.write(prices['fixedPrice'][i]);
		document.write(divStop+tdStop);
		document.write('\n\t\t<td width=5>&nbsp;</td>');
		document.write(tdStart+bgColors[0]+'>'+divStart);
		document.write(prices['intradePrice'][j]);
		document.write(divStop+tdStop);
		document.write(tdStart+bgColors[1]+'>'+divStart);
		document.write(prices['displayDigital'][j]);
		document.write(divStop+tdStop);
		document.write(tdStart+bgColors[2]+'>'+divStart);
		document.write(prices['fixedPrice'][j]);
		document.write(divStop+tdStop);
		document.write(rowStop);
	}
}
function isDigit (c)
{   
	return ((c >= "0") && (c <= "100"))
}
function fixedToIntrade(fixedString)
{
	var endIndex = fixedString.length;
	if(fixedString.indexOf(' ') == -1)
	{
		var indexer = fixedString.indexOf('/',0);
		var x = parseInt(fixedString.substring(0,indexer));
		var y = parseInt(fixedString.substring(indexer+1,endIndex));
		var dPrice = (1/((x/y)+1)*100);
	}
	else
		dPrice = 0;
	return dPrice;
}
function intradeToDigital(digitalString)
{
	if(digitalString <= 0)
		return '0';
	else
		{
			intrade = 100/(parseInt(digitalString));
			if(intrade % 1 == 0)
				return intrade+'.00';
			return round(intrade,2);
		}
}
function fixedToDigital(fixedString)
{
	var endIndex = fixedString.length;
	if(fixedString.indexOf(' ') == -1)
	{
		var indexer = fixedString.indexOf('/',0);
		var x = parseInt(fixedString.substring(0,indexer));
		var y = parseInt(fixedString.substring(indexer+1,endIndex));
		var dPrice = ((x/y)+1);
	}
	else
		dPrice = 0;
	return dPrice;
}

prices2 = new Array();
prices2['fixed'] = new Array('99/1','80/1','66/1','50/1','40/1','33/1','28/1','25/1','22/1','20/1','18/1','16/1','14/1','13/1','12/1','11/1','10/1','9/1','8/1','15/2','7/1','13/2','6/1','11/2','5/1','9/2','4/1','7/2','10/3','3/1','11/4','5/2','9/4','85/40','2/1','15/8','7/4','13/8','6/4','11/8','5/4','6/5','11/10','21/20','5/6','4/5','8/11','4/6','8/13','4/7','8/15','1/2','40/85','4/9','2/5','4/11','1/3','30/100','2/7','1/4','2/9','1/5','2/11','1/6','2/13','1/7','1/10','1/12','1/13','1/16','1/19','1/24','1/33','1/50','1/99');
prices2['digital'] = new Array(prices2['fixed'].length);
prices2['intrade'] = new Array(prices2['fixed'].length);
for(i = 0; i < prices2['fixed'].length; i++)
{
	prices2['intrade'][i] = nextNearest(fixedToIntrade(prices2['fixed'][i]),1);
	//prices2['intrade'][i] = fixedToIntrade(prices2['fixed'][i]);
	//prices2['digital'][i] = intradeToDigital(prices2['intrade'][i],2);
	prices2['digital'][i] = intradeToDigital(fixedToIntrade(prices2['fixed'][i]));
}
