var openPopup;
var openPopupButton;
function toggle(toggle_id, this_id) {
    var togglebox = document.getElementById(toggle_id);
    var togglebtn = document.getElementById(this_id);
    if (togglebox.className == 'toggle_shown') {
	// User wants to close this help box.
	togglebox.className = 'toggle_hidden';
	if (togglebtn != undefined) {
	    togglebtn.className = "toggle_show";
	}
    } else {
	// User wants to open this help box.

	// First, if there's already an open box, close it.
	if (openPopup != undefined) {
	    openPopup.className = "toggle_hidden";
	    if (openPopupButton != undefined) {
		openPopupButton.className = "toggle_show";
	    }
	}

	// Display the box
	togglebox.className = 'toggle_shown';
	if (togglebtn != undefined) {
	    togglebtn.className = "toggle_hide";
	}

	// Set the currently open box to the box just opened
	openPopup = togglebox;
	openPopupButton = togglebtn;
    }
    return false;
}

function insertRandomSymbol(textbox_id) {
    var req = null;
    if (window.XMLHttpRequest) req = new XMLHttpRequest();
    else if (window.ActiveXObject) req = new ActiveXObject(Microsoft.XMLHTTP);

    req.onreadystatechange = function() {
	if (req.readyState == 4) {
	    if (req.status == 200) {
		document.getElementById(textbox_id).value = req.responseText;
	    }
	}
    };
    req.open("GET", "random.php?ajax=1", true);
    req.send(null);
    return false;
}

function submitTestStock() {
    var buy_rel = document.getElementById('buy_rel').value;
    var sell_rel = document.getElementById('sell_rel').value;
    var buy_point = document.getElementById('buy_point').value;
    var sell_point = document.getElementById('sell_point').value;
    var symbol = document.getElementById('test_stock_symbol').value;

    var req = null;
    if (window.XMLHttpRequest) req = new XMLHttpRequest();
    else if (window.ActiveXObject) req = new ActiveXObject(Microsoft.XMLHTTP);

    req.onreadystatechange = function() {
	if (req.readyState == 4) {
	    if (req.status == 200) {
		addRowToTestStock(buy_rel, sell_rel, buy_point, sell_point,
			symbol, req.responseText);
	    } else {
	    }
	}
    };

    var url = "trystock.php"
	+ "?symbol=" + symbol
	+ "&buy_rel=" + buy_rel
	+ "&sell_rel=" + sell_rel
	+ "&buy_point=" + buy_point
	+ "&sell_point=" + sell_point
	+ "&ajax=1";

    req.open("GET", url, true);
    req.send(null);
    return false;
}
var testStockOverallReturn = 1;
var testStockNumClusters = 0;

function testStockClearData() {
    testStockOverallReturn = 1;
    testStockNumClusters = 0;
    document.getElementById('stock_test_div').style.display = 'none';
    var table = document.getElementById('stock_test_table');
    while (table.rows.length > 1) {
	table.deleteRow(-1);
    }
    return false;
}

function addRowToTestStock(buy_rel, sell_rel, buy_point, sell_point, symbol,
	response) {
    var table = document.getElementById("stock_test_table");
    var newRow = table.insertRow(1);
    var response_elts = response.split("|");
    if (response_elts.length == 5) {
	symbol = response_elts[0];
	newRow.insertCell(-1).innerHTML
	    = "<a href=\"symbol.php?symbol=" + symbol + "\">" + symbol + "</a>";
	newRow.insertCell(-1).textContent = buy_rel;
	newRow.insertCell(-1).textContent = buy_point;
	newRow.insertCell(-1).textContent = sell_rel;
	newRow.insertCell(-1).textContent = sell_point;
	var percent_color = response_elts[4];
	newRow.insertCell(-1).innerHTML
	    = "<span style='color:" + percent_color + "'>" + response_elts[2]
	    + "%</span>";
	newRow.insertCell(-1).innerHTML
	    = "<span style='color:" + percent_color + "'>" + response_elts[3]
	    + "%</span>";
	newRow.insertCell(-1).textContent = response_elts[1];
	testStockOverallReturn
	    = Math.pow(Math.pow(testStockOverallReturn, testStockNumClusters)
		    * (response_elts[3] / 100 + 1),
		    1 / (testStockNumClusters + 1));
	testStockNumClusters++;
	document.getElementById('stock_test_overall_return').textContent
	    = (Math.round((testStockOverallReturn - 1) * 10000) / 100) + "%";
    } else {
	var newCell = newRow.insertCell(-1);
	newCell.colSpan = 7;
	newCell.textContent = response;
    }
    document.getElementById('stock_test_div').style.display = 'block';
}

function stockFormAsRecipient() {
    document.getElementById('buy_point_peak').selected = true;
    document.getElementById('sell_point_peak').selected = true;
    document.getElementById('buy_rel_0').selected = true;
    document.getElementById('sell_rel_2').selected = true;
}
function stockFormAsSpammer() {
    document.getElementById('buy_point_peak').selected = true;
    document.getElementById('sell_point_peak').selected = true;
    document.getElementById('buy_rel_-1').selected = true;
    document.getElementById('sell_rel_0').selected = true;
}
