var tab_name = "arb_tab";
var max=7;
var arb_num = 0;

function IsNumeric(sText){
        var ValidChars = "0123456789.";
        var IsNumber=true;
        var Char;

        for (i = 0; i < sText.length && IsNumber == true; i++)
        {
                Char = sText.charAt(i);
		// If the first character is + or -
		if (((Char == '-') || (Char == '+')) && (i==0)) continue;
		if (Char == '.') continue;
                if (ValidChars.indexOf(Char) == -1) {
                        IsNumber = false;
                }
        }
        return IsNumber;
}
function make_dec(x) {
	if (x==0) return 0;
	if (x>=100) {
		x=x/100 +1;
	} else if (x < 0) {
		x=-1*100/x + 1;
	}
	return x;
}



function win_lose() {
	var y=document.getElementById("win_lose_tie").value;
	var a = new Array();
	var b = new Array();
	var c = new Array();
	if (y == 1) limit=2;
	else limit=3;

	for (k=0; k < limit; k++) {
		if (k==0) v="a";
		else if (k==1) v="b";
		else if (k==2) v="c";

		for (z=0; z< max; z++) {
			x = document.getElementById(v+z).value;
			if (!IsNumeric(x)) {
				alert("Invalid"); 
				return false;
			}
			x = make_dec(x);
        	        if (k==0) a.push(x);
			else if (k==1) b.push(x);
			else if (k==2) c.push(x);
		}
	}
	for (i=0;i< max; i++) {
		for (j=0;j < max; j++) {
			if (a[i] == 0) continue;
			if (b[j] == 0) continue;
			perA = 1/a[i];
			perB = 1/b[j]
			
			if (limit==2) {
				total = perA + perB;
				//alert(a[i] +" + "+b[j]+" total "+i+" "+j+" "+total);
				if (total < 0.9975) {  
					arb_num++;
					pperA = perA*100;
					pperB = perB*100;
					casino1 = i+1;
					casino2 = j+1;
					display_2(casino1,casino2,perA,perB);
				}
			} else if (limit==3) {
				for (k=0;k < max; k++) {
					if (c[k] == 0) continue;
					perC= 1/c[k];
					total = perA + perB + perC;
					if (total < 1) {
						arb_num++;
						pperA = perA*100;
						pperB = perB*100;
						pperC = perC*100;
						casino1 = i+1;
						casino2 = j+1;
						casino3 = k+1;
						display_3(casino1,casino2,casino3,perA,perB,perC);
					}
				}
			}	
		}
	}
}


function display_2(casino1,casino2,perA,perB) {
	var w=document.getElementById("wager").value;
	var t = perA+perB;
	
	percentA = perA/t *100;
	percentB = perB/t *100;
	profit = (1-t)*100;
	win    = profit/100*w;
	win=win.toFixed(2);
	profit =profit.toFixed(2);
	percentA = percentA.toFixed(2);
	percentB = percentB.toFixed(2);
	if (w) {
		real_wager = w/t;
		var wager = perA * real_wager;
		wager = wager.toFixed(2);
		str1 = "Bet $"+wager+" ("+percentA+"%) on team one at sports book "+casino1+"<br>";
		wager = perB * real_wager;
		wager = wager.toFixed(2);
		str1 += "Bet $"+wager+" ("+percentB+"%) on team two at sports book "+casino2+"<br><br>";
		str1 += "win $"+win+" ("+profit+"%)";
	} else {
		str1 = "Bet "+percentA+"% on team one at Sports Book "+casino1+"<br>";
		str1 += "Bet "+percentB+"% on team two at Sports Book "+casino2+"<br><br>";
		str1 += "win ("+profit+"%)";
	}
	str1 += "<br><br>";
	add_to_table (str1);
}


function display_3(casino1,casino2,casino3,perA,perB,perC) {
	var w=document.getElementById("wager").value;
	var t = perA+perB+perC;
	
//alert(perA+" "+perB+" "+perC);
	percentA = perA/t *100;
	percentB = perB/t *100;
	percentC = perC/t *100;
	profit = (1-t)*100;
	win    = profit/100*w;
	win=win.toFixed(2);
	profit =profit.toFixed(2);
	percentA = percentA.toFixed(2);
	percentB = percentB.toFixed(2);
	percentC = percentC.toFixed(2);
	if (w) {
		real_wager = w/t;
		var wager = perA * real_wager;
		wager = wager.toFixed(2);
		str1 = "Bet $"+wager+" ("+percentA+"%) on team one at sports book "+casino1+"<br>";
		wager = perB * real_wager;
		wager = wager.toFixed(2);
		str1 += "Bet $"+wager+" ("+percentB+"%) on team two at sports book "+casino2+"<br>";
		wager = perC * real_wager;
		wager = wager.toFixed(2);
		str1 += "Bet $"+wager+" ("+percentC+"%) on a Tie at sports book "+casino3+"<br><br>";
		str1 += "win $"+win+" ("+profit+"%)";
	} else {
		str1 = "Bet "+percentA+"% on team one at Sports Book "+casino1+"<br>";
		str1 += "Bet "+percentB+"% on team two at Sports Book "+casino2+"<br><br>";
		str1 += "Bet "+percentB+"% on a tie at Sports Book "+casino3+"<br><br>";
		str1 += "win ("+profit+"%)";
	}
	str1 += "<br><br>";
	add_to_table (str1);
}

function add_to_table (str) {

	var tab1= document.getElementById("res_tab");
	
	var aRow1= tab1.insertRow(-1);
        aCell2 = aRow1.insertCell(0);
	if (arb_num != 0) {
		str = "Arbitrage "+arb_num+"<br><br>" + str;
	}

        aCell2.innerHTML = str;
}

function calc_arb() {
	arb_num=0;
	var tab1= document.getElementById("res_tab");
	var len = tab1.rows.length;
	for(i = 0;i < len; i++) {
		tab1.deleteRow(0);
	}

	var y=document.getElementById("win_lose_tie").value;
	win_lose();
	if (arb_num==0) {

		add_to_table("No Arbitrages")
	}
}

function reset_arb() {


	var y=document.getElementById("win_lose_tie").value;
	document.getElementById("a1").value = '';
	document.getElementById("a2").value = '';
	document.getElementById("a3").value = '';
	document.getElementById("a4").value = '';
	document.getElementById("a5").value = '';
	document.getElementById("a6").value = '';
	document.getElementById("a0").value = '';
	document.getElementById("b1").value = '';
	document.getElementById("b2").value = '';
	document.getElementById("b3").value = '';
	document.getElementById("b4").value = '';
	document.getElementById("b5").value = '';
	document.getElementById("b6").value = '';
	document.getElementById("b0").value = '';
	if (y==2) {
	        document.getElementById("c1").value = '';
	        document.getElementById("c2").value = '';
	        document.getElementById("c3").value = '';
	        document.getElementById("c4").value = '';
	        document.getElementById("c5").value = '';
	        document.getElementById("c6").value = '';
	        document.getElementById("c0").value = '';
	}
}

function  win_lose_tie(x) {
	var y=document.getElementById(x).value;
	var tab= document.getElementById(tab_name);
	var len = tab.rows.length;

	if (y==1) {
		if (len <= 3) return;
		tab.deleteRow(3);
	} else if (y==2) {
		if (len == 4) return;
		var aRow= tab.insertRow(-1);
                aCell1 = aRow.insertCell(0);
                aCell1.innerHTML = "Tie";

                aCell1 = aRow.insertCell(1);
                aCell1.innerHTML = "<input size=8 type=text id=c0 name='c0'>";
                aCell1 = aRow.insertCell(2);
                aCell1.innerHTML = "<input size=8 type=text id=c1 name='c1'>";
                aCell1 = aRow.insertCell(3);
                aCell1.innerHTML = "<input size=8 type=text id=c2 name='c2'>";
                aCell1 = aRow.insertCell(4);
                aCell1.innerHTML = "<input size=8 type=text id=c3 name='c3'>";
                aCell1 = aRow.insertCell(5);
                aCell1.innerHTML = "<input size=8 type=text id=c3 name='c4'>";
                aCell1 = aRow.insertCell(6);
                aCell1.innerHTML = "<input size=8 type=text id=c3 name='c5'>";
                aCell1 = aRow.insertCell(7);
                aCell1.innerHTML = "<input size=8 type=text id=c3 name='c6'>";
	}
}


