<script type="text/javascript">
/*

Copyright (c) 2003. All Rights reserved.

If you use this script, please email me and let me know, thanks!

Andrew Hedges
andrew@efficacy.net

If you want to hire me to write JavaScript for you, see my resume.

http://efficacy.net/resume/

*/

doc = document;

function init()
{
	// set up objects
	stob = doc.forms["teaser"].stayer;
	rob  = doc.forms["teaser"].randomer;
	swob = doc.forms["teaser"].switcher;
}

function proveIt()
{
	// create/clear out array
	doors = new Array(false,false,false);
	
	// reset tallies
	stwin  = 0;
	stloss = 0;
	
	rwin  = 0;
	rloss = 0;
	
	swwin  = 0;
	swloss = 0;
	
	// clear out textareas
	stob.value = "";
	rob.value  = "";
	swob.value = "";
	
	// loop through 100 times
	for (l=100;l>0;l--)
	{
		// decide which door holds the prize
		d = rand(3);
		doors[d] = true;
		
		// randomly pick a door
		p = rand(3);
		
		// randomly remove one of the loser doors
		removed = false;
		while (!removed)
		{
			r = rand(3);
			
			if (r != d && r != p)
			{
				removedvalue = r;
				removed      = true;
			}
		}
		
		// for randomer, randomly switch/stay
		ss = rand(2);
		if (ss==0)
		{
			// switch
			switchstay = false;
			while (!switchstay)
			{
				s1 = rand(3);
				
				if (s1 != p && s1 != removedvalue)
				{
					switchstayvalue = s1;
					switchstay      = true;
				}
			}
		}
		else
		{
			// stay
			switchstayvalue = p;
		}
		
		// for switcher, switch
		for (s2=0;s2<3;s2++)
		{
			if (s2 != p && s2 != removedvalue)
			{
				switchervalue = s2;
				switcher      = true;
				break;
			}
		}
		
		// determine outcomes
		// stayer
		if (d==p)
		{
			stwin++;
			stob.value = stwin + " Winner\n" + stob.value;
		}
		else
		{
			stloss++;
			stob.value = stloss + " Loser\n" + stob.value;
		}
		
		// randomer
		if (d==switchstayvalue)
		{
			rwin++;
			rob.value = rwin + " Winner\n" + rob.value;
		}
		else
		{
			rloss++;
			rob.value = rloss + " Loser\n" + rob.value;
		}
		
		// switcher
		if (d==switchervalue)
		{
			swwin++;
			swob.value = swwin + " Winner\n" + swob.value;
		}
		else
		{
			swloss++;
			swob.value = swloss + " Loser\n" + swob.value;
		}
	}
	
	// write final tallies
	stob.value = stwin + " winners\n" + stloss + " losses" + "\n-----\n" + stob.value;
	rob.value  = rwin  + " winners\n" + rloss  + " losses" + "\n-----\n" + rob.value;
	swob.value = swwin + " winners\n" + swloss + " losses" + "\n-----\n" + swob.value;
}

// The Central Randomizer 1.3 (C) 1997 by Paul Houle (houle@msc.cornell.edu)
// See:  http://www.msc.cornell.edu/~houle/JavaScript/randomizer.html
// Usage: rand(n) returns random integer between 0 and n-1

rnd.today = new Date();
rnd.seed  = rnd.today.getTime();

function rnd()
{
	rnd.seed = (rnd.seed*9301+49297) % 233280;
	return rnd.seed/(233280.0);
}

function rand(number)
{
	return Math.ceil(rnd()*number)-1;
}
</script>