// [start] toggle ------------------------------------------
function toggle(targetId) { 
	var target = document.getElementById(targetId);
	target.style.display = (target.style.display == "block") ? "none" : "block";
} 

function toggleAll(itemname,state) {
	var tmp = document.getElementsByTagName('div');
	for (i=0;i<tmp.length;i++) {
		if (tmp[i].className == itemname) tmp[i].style.display = state;
	}
}
// [end]   toggle ------------------------------------------

// [start] numstuff ----------------------------------------
function gcd() {
	var num1 = parseInt(document.getElementById('num1').value);
	var num2 = parseInt(document.getElementById('num2').value);
	var answer = document.getElementById('answer');
	
	var gcd = sub_gcd(num1, num2);
	
	answer.innerHTML = "<p class=\"p1\"><span>The GCD of <b>" + num1 + 
		"</b> and <b>" + num2 + "</b> is <b>" + gcd + "</b>.</span></p>";
}

function sub_gcd(num1, num2) {
	var smaller = (num1 < num2) ? num1 : num2;
	var larger = (num2 > num1) ? num2 : num1;
	
	while (smaller != 0) {
		var number = larger % smaller;
		larger = smaller;
		smaller = number;
	}
	
	return larger;
}

function lcm() {
	var num1 = parseInt(document.getElementById('num1').value);
	var num2 = parseInt(document.getElementById('num2').value);
	var answer = document.getElementById('answer');
	
	var lcm = sub_lcm(num1, num2);
	answer.innerHTML = "<p class=\"p1\"><span>The LCM of <b>" + num1 + 
		"</b> and <b>" + num2 + "</b> is <b>" + lcm + "</b>.</span></p>";
}

function sub_lcm(num1, num2) {
	var gcd = sub_gcd(num1, num2);
	var lcm = num1 * num2 / gcd;
	return lcm;
}

function randgen() {
	var num1 = parseInt(document.getElementById('num1').value);
	var num2 = parseInt(document.getElementById('num2').value);
	var rolls = parseInt(document.getElementById('rolls').value);
	var answer = document.getElementById('answer');
	var perrow = 20;
	
	var low = (num1 < num2) ? num1 : num2;
	var high = (num2 > num1) ? num2 : num1;
	
	var inner = "";
	if (rolls > 1) {
		inner += "<p class=\"p1\"><span>Here are " + rolls + " random numbers between <b>" +
			low + "</b> and <b>" + high + "</b>.</span></p>\n";
		inner += "<table width=\"100%\"><tr>";
		for(var i = 0; i < rolls; i++) {
			if (i % perrow == 0 && i > 0) {
				inner += "</tr>\n<tr>";
			}
			var rand = sub_randgen(low, high);
			inner += "<td>" + rand + "</td>";
		}
		if (rolls % perrow != 0) {
			for (var i = 0; i < perrow - rolls % perrow; i++) {
				inner += "<td> </td>";
			}
			inner += "</tr></table>";
		}
	} else {
		var rand = sub_randgen(low,high);
		inner += "<p class=\"p1\"><span>A random number between <b>" + low + 
			"</b> and <b>" + high + "</b> is <b>" + rand + "</b>.</span></p>";
	}
	answer.innerHTML = inner;
}

function sub_randgen(low, high) {
	var range = high - low + 1;
	var num = Math.floor(Math.random() * range) + low;
	return num;
}
// [end]   numstuff ----------------------------------------