function hideEntryAreas()
{
	var divs = document.getElementsByTagName('div');
	for( var i=0; i<divs.length; i++)
	{
		if( divs[i].className == 'entryArea' )
			divs[i].style.display = 'none';
	}
}

function checkToggle(checkbox, divId, inputId)
{
	var div = document.getElementById(divId);
	var input = document.getElementById(inputId);

	if( div && !checkbox.checked)
		div.style.display = 'none';
	else
		div.style.display = '';
}

function updateItems()
{
	updateItem('student');
	updateItem('teacher');
	updateItem('share');
}

function updateCurrency(select)
{
	var currency = select.value;
//	alert(currency);

	var rate = document.getElementById('exchangeRate');

	var xmlhttp = getAjaxObject();
	xmlhttp.onreadystatechange=function()
	{
		if(xmlhttp.readyState==4)
		{
			if( xmlhttp.status == 200 && xmlhttp.responseText > 0 )
			{
				rate.value = xmlhttp.responseText;
				updateCurrencySymbols(currency);
				updateItem('student');
				updateItem('teacher');
				updateItem('share');
			}
			else
			{
				alert("Sorry, this exchange rate cannot be retrieved at this time");
			}
		}
	}
	xmlhttp.open("GET","exchange_rate.pl?c=" + currency,true);
	xmlhttp.send(null);
}


function updateCurrencySymbols(currency)
{
	var spans = document.getElementsByTagName('span');
	for( var i=0; i<spans.length; i++)
	{
		if( spans[i].className == 'currency' )
			spans[i].innerHTML = currency;
	}
}


function updateItem(name)
{
	var currency = document.getElementById('currency').value;
	var exchange = document.getElementById('exchangeRate').value;
	
	var basePrice = document.getElementById(name+'Cost').value;
	var price = basePrice * exchange;
	price = Math.round(price);
	var userPrice = document.getElementById(name+'CostUser');
	userPrice.innerHTML = currency + ' ' + price;

	var number = document.getElementById(name+'Number').value;
	var total = price * number;
	total = Math.round(total);
	var span = document.getElementById(name+'Amount');
	span.innerHTML = currency + ' ' + total;
}

function changeCountry(select)
{
	var c = select.value;

	changeStateLabel(c, 'stateLabel');
	changePostalCodeLabel(c, 'postalCodeLabel');
	changeStateSelect(c, 'stateSelect');
}

function changeStateLabel(c, elementId)
{
	var l = 'State/Province/Region';

	if( c == 'AU' )
		l = 'State/Territory';
	else if( c == 'CA' )
		l = 'Province'; 
	else if( c == 'GB' )
		l = 'County'; 
	else if( c == 'US' )
		l = 'State';

	document.getElementById(elementId).innerHTML = l;
}

function changePostalCodeLabel(c, elementId)
{
	var l = 'Postal Code';

	if( c == 'AU' || c == 'GB' )
		l = 'Postcode';
	else if( c == 'US' )
		l = 'ZIP Code';

	document.getElementById(elementId).innerHTML = l;
}

function changeStateSelect(c, elementId)
{
	var v = '<input id="state" name="State" type="text" size="25" />';
	var element = document.getElementById(elementId);
	element.innerHTML = v;

	if( c == 'AU' || c == 'CA' || c == 'GB' || c == 'US' )
	{
		var xmlhttp = getAjaxObject();
		xmlhttp.onreadystatechange=function()
		{
			if(xmlhttp.readyState==4)
			{
				if( xmlhttp.status == 200 )
				{
					var response = xmlhttp.responseText;
					element.innerHTML = '<select id="state" name="State">' + response + '</select>';
				}
			}
		}
		xmlhttp.open("GET","states_" + c + ".ssi",true);
		xmlhttp.send(null);
	}
}


function getAjaxObject()
{
	var xmlhttp=false;
	/*@cc_on @*/
	/*@if (@_jscript_version >= 5)
	// JScript gives us Conditional compilation, we can cope with old IE versions.
	// and security blocked creation of the objects.

	try
	{ xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); }
	catch (e)
	{
		try
		{ xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); }
		catch (E)
		{ xmlhttp = false; }
	}
	@end @*/

	if (!xmlhttp && typeof XMLHttpRequest!='undefined')
	{
		try
		{ xmlhttp = new XMLHttpRequest(); }
		catch (e)
		{ xmlhttp=false; }
	}
	if (!xmlhttp && window.createRequest)
	{
		try
		{ xmlhttp = window.createRequest(); }
		catch (e)
		{ xmlhttp=false; }
	}

	return xmlhttp;
}
