/*
	Plays the homepage movie.
*/
function sspace_homepage()
{
	var movie = new SWFObject('home.swf?'+sspace_url_root, 'movie_home', '960', '270', '9');
	movie.addParam('scale', 'noscale');
	movie.write('area_middle_home_main_movie')
	
	return false;
}


/*
	Used to dynamically change images on the site.
*/
function sspace_changeimage(image, url)
{
	image.src = url;
}


/*
	Creates an "are you sure?" dialogue.
*/
function sspace_areyousure_link(message, link)
{
	if (confirm(message))
	{
		document.location = link;
	}
	
	return false;
}


/*
	Updates the page location.
*/
function sspace_location(new_location)
{
	document.location = new_location;
	
	return false;
}


/*
	Opens a URL in a new window.
*/
function sspace_show_external_resource(url, width, height)
{
	window.open(url,'','toolbar=no,location=no,status=no,menubar=no,scrollbars=no,resizable=yes,width='+width+',height='+height);
	
	return false;
}


/*
	Converts a pence value to a pricestring.
*/
function sspace_format_pounds_pence(pence)
{
	// Convert to pounds.
	pounds = parseInt(pence) / 100;
	
	// Finished.
	return String(pounds.toFixed(2));
}


/*
	Called when a form is submitted for client side checking.
*/
function sspace_form_submit(form_name, form_ref)
{
	var warning_message = '';
	
	if (form_name == 'login')
	{
		if (form_ref.email.value == '')
			warning_message = 'Please enter your e-mail address.';
		else if (form_ref.password.value == '')
			warning_message = 'Please enter your password.';
	}
	if (form_name == 'reminder')
	{
		if (form_ref.email.value == '')
			warning_message = 'Please enter your e-mail address.';
	}
	if (form_name == 'subscribe')
	{
		if (form_ref.email.value == '')
			warning_message = 'Please enter your e-mail address.';
	}
	if (form_name == 'unsubscribe')
	{
		if (form_ref.email.value == '')
			warning_message = 'Please enter your e-mail address.';
	}
	
	if (warning_message == '')
	{
		return true;
	}
	else
	{
		alert(warning_message);
		return false;
	}
}


/*
	Shows the password for a device.
*/
function sspace_account_device_password(device_index)
{
	document.getElementById('area_page_account_devices_link_'+device_index).style.display = 'none';
	document.getElementById('area_page_account_devices_pass_'+device_index).style.display = 'inline';
	
	return false;
}


/*
	Called on the card payment form upon submission.
*/
function sspace_account_payment_submit()
{
	var warning_message = '';

	if (document.getElementById('page_account_payment_amount').value == '')
		warning_message = 'Please enter the amount that you wish to pay.';
	if (document.getElementById('page_account_payment_address_id').value == 'ignore')
		warning_message = 'Please select a billing address or enter new billing address details.';
	if (document.getElementById('page_account_payment_card_number').value == '')
		warning_message = 'Please enter the your full card number.';
	if (document.getElementById('page_account_payment_card_name').value == '')
		warning_message = 'Please enter the name as it appears on the front of your card.';
	if (document.getElementById('page_account_payment_card_cvv').value == '')
		warning_message = 'Please enter your card security digits (either the last three numbers on the back of your card or four numbers printed on the front.)';
	if (document.getElementById('page_account_payment_address_id').value == 'new')
	{
		if (document.getElementById('page_account_payment_address_1').value == '')
			warning_message = 'Please enter the first line of your billing address.';
		if (document.getElementById('page_account_payment_town').value == '')
			warning_message = 'Please enter your billing address town.';
		if (document.getElementById('page_account_payment_county').value == '')
			warning_message = 'Please enter your billing address county.';
		if (document.getElementById('page_account_payment_postcode').value == '')
			warning_message = 'Please enter your billing address postcode.';
	}
	
	if (warning_message != '')
	{
		alert(warning_message);
		return false;
	}
	else
	{
		return true;
	}
}


/*
	Called on the card payment form upon address selection.
*/
function sspace_account_payment_address()
{
	if (document.getElementById('page_account_payment_address_id').value == 'new')
	{
		document.getElementById('page_account_payment_address_details').style.display = 'block';
	}
	else
	{
		document.getElementById('page_account_payment_address_details').style.display = 'none';
	}		
	
	return false;
}


/*
	Recalculates the price of the selected options.
*/
function sspace_order_calculate()
{
	// Make sure that all quantities are within their defined boundaries.
	for (var key in ssorder_values)
	{
		if (ssorder_values[key]['quantity_min'] != 1 || ssorder_values[key]['quantity_max'] != 1)
		{
			if (document.getElementById('page_order_step2_quantity_'+key).value > ssorder_values[key]['quantity_max'])
				document.getElementById('page_order_step2_quantity_'+key).value = ssorder_values[key]['quantity_max'];
			if (document.getElementById('page_order_step2_quantity_'+key).value < ssorder_values[key]['quantity_min'])
				document.getElementById('page_order_step2_quantity_'+key).value = ssorder_values[key]['quantity_min'];
		}
	}	
	
	// Get the configuration prices.
	var price_setup = ssorder_config_setup;
	var price_monthly = ssorder_config_monthly;
	
	// Remove all values that are in the configuration.
	for (var key in ssorder_config_values)
	{
		price_setup -= ssorder_values[key]['price_setup'] * ssorder_config_values[key];
		price_monthly -= ssorder_values[key]['price_monthly'] * ssorder_config_values[key];
	}

	// Go through all values and process those that are selected.  Keep track of the prices for each attribute.
	var selected_attributes = Array();
	for (var key in ssorder_values)
	{
		if (document.getElementById('page_order_step2_value_'+key).checked)
		{
			selected_attributes[ssorder_values[key]['attribute_id']] = Array();
			if (ssorder_values[key]['quantity_min'] == 1 && ssorder_values[key]['quantity_max'] == 1)
			{
				selected_attributes[ssorder_values[key]['attribute_id']]['price_setup'] = ssorder_values[key]['price_setup'];
				selected_attributes[ssorder_values[key]['attribute_id']]['price_monthly'] = ssorder_values[key]['price_monthly'];
				price_setup += selected_attributes[ssorder_values[key]['attribute_id']]['price_setup'];
				price_monthly += selected_attributes[ssorder_values[key]['attribute_id']]['price_monthly'];
				document.getElementById('page_order_step2_attribute_'+ssorder_values[key]['attribute_id']).innerHTML = ssorder_values[key]['content'];
			}
			else
			{
				selected_attributes[ssorder_values[key]['attribute_id']]['price_setup'] = ssorder_values[key]['price_setup'] * document.getElementById('page_order_step2_quantity_'+key).value;
				selected_attributes[ssorder_values[key]['attribute_id']]['price_monthly'] = ssorder_values[key]['price_monthly'] * document.getElementById('page_order_step2_quantity_'+key).value;
				price_setup += selected_attributes[ssorder_values[key]['attribute_id']]['price_setup'];
				price_monthly += selected_attributes[ssorder_values[key]['attribute_id']]['price_monthly'];
				document.getElementById('page_order_step2_attribute_'+ssorder_values[key]['attribute_id']).innerHTML = document.getElementById('page_order_step2_quantity_'+key).value+' x '+ssorder_values[key]['content'];
			}
		}
	}

	// Write the summaries for every value.
	for (var key in ssorder_values)
	{
		var value_summary = '';
		
		if (ssorder_values[key]['quantity_min'] == 1 && ssorder_values[key]['quantity_max'] == 1)
		{
			if (document.getElementById('page_order_step2_value_'+key).checked)
			{
				value_summary += 'Currently Selected';
			}
			else
			{
				var difference_setup = 0;
				difference_setup -= selected_attributes[ssorder_values[key]['attribute_id']]['price_setup'];
				difference_setup += ssorder_values[key]['price_setup'];
				if (difference_setup < 0)
					value_summary += 'Setup: -&#163;'+sspace_format_pounds_pence(difference_setup*-1);
				else
					value_summary += 'Setup: +&#163;'+sspace_format_pounds_pence(difference_setup);
	
				var difference_monthly = 0;
				difference_monthly -= selected_attributes[ssorder_values[key]['attribute_id']]['price_monthly'];
				difference_monthly += ssorder_values[key]['price_monthly'];
				if (difference_monthly < 0)
					value_summary += ', Monthly: -&#163;'+sspace_format_pounds_pence(difference_monthly*-1);
				else
					value_summary += ', Monthly: +&#163;'+sspace_format_pounds_pence(difference_monthly);
			}
		}
		else
		{
			if (ssorder_values[key]['quantity_min'] > 1)
				value_summary += 'Minimum Quantity:' +ssorder_values[key]['quantity_min']+', ';
			value_summary += 'Maximum Quantity:' +ssorder_values[key]['quantity_max'];

			if (document.getElementById('page_order_step2_value_'+key).checked)
			{
				
				value_summary += '<br />';
				value_summary += 'Setup: +&#163;'+sspace_format_pounds_pence(ssorder_values[key]['price_setup'])+' per unit';
				value_summary += '<br />';
				value_summary += 'Monthly: +&#163;'+sspace_format_pounds_pence(ssorder_values[key]['price_monthly'])+' per unit';
			}
			else
			{
				var deduct_setup = selected_attributes[ssorder_values[key]['attribute_id']]['price_setup'];
				value_summary += '<br />';
				if (deduct_setup <= 0)
					value_summary += 'Setup: +&#163;'+sspace_format_pounds_pence(selected_attributes[ssorder_values[key]['attribute_id']]['price_setup']*-1)+' then +&#163;'+sspace_format_pounds_pence(ssorder_values[key]['price_setup'])+' per unit';
				else
					value_summary += 'Setup: -&#163;'+sspace_format_pounds_pence(selected_attributes[ssorder_values[key]['attribute_id']]['price_setup'])+' then +&#163;'+sspace_format_pounds_pence(ssorder_values[key]['price_setup'])+' per unit';
	
				var deduct_monthly = selected_attributes[ssorder_values[key]['attribute_id']]['price_monthly'];
				value_summary += '<br />';
				if (deduct_monthly <= 0)
					value_summary += 'Monthly: +&#163;'+sspace_format_pounds_pence(selected_attributes[ssorder_values[key]['attribute_id']]['price_monthly']*-1)+' then +&#163;'+sspace_format_pounds_pence(ssorder_values[key]['price_monthly'])+' per unit';
				else
					value_summary += 'Monthly: -&#163;'+sspace_format_pounds_pence(selected_attributes[ssorder_values[key]['attribute_id']]['price_monthly'])+' then +&#163;'+sspace_format_pounds_pence(ssorder_values[key]['price_monthly'])+' per unit';
			}
		}
		
		document.getElementById('page_order_step2_summary_'+key).innerHTML = value_summary;
	}

	/*
	// Include VAT.
	price_setup = price_setup + Math.ceil(price_setup * sspace_vat_rate);
	price_monthly = price_monthly + Math.ceil(price_monthly * sspace_vat_rate);
	
	// Update the summary prices.
	document.getElementById('page_order_step2_summary_setup').innerHTML = '<span>&#163;'+sspace_format_pounds_pence(price_setup)+'</span> setup inc. VAT';
	document.getElementById('page_order_step2_summary_monthly').innerHTML = '<span>&#163;'+sspace_format_pounds_pence(price_monthly)+'</span> monthly inc. VAT';
	*/
	
	// Update the summary prices.
	document.getElementById('page_order_step2_summary_setup').innerHTML = '<span>&#163;'+sspace_format_pounds_pence(price_setup)+'</span> setup ex. VAT';
	document.getElementById('page_order_step2_summary_monthly').innerHTML = '<span>&#163;'+sspace_format_pounds_pence(price_monthly)+'</span> monthly ex. VAT';

	// Finished.
	return true;
}


/*
	Initialises the configuration page.
*/
function sspace_order_init()
{
	// Select the radio input and optionally set the quantity of all values included in the initial configuration.
	for (var key in ssorder_config_values)
	{
		document.getElementById('page_order_step2_value_'+key).checked = true;
		if (ssorder_values[key]['quantity_min'] != 1 || ssorder_values[key]['quantity_max'] != 1)
		{
			document.getElementById('page_order_step2_quantity_'+key).value = ssorder_config_values[key];
		}
	}
	
	// Optionally set the quantity of all values not included in the original configuration.
	for (var key in ssorder_values)
	{
		if (ssorder_values[key]['quantity_min'] != 1 || ssorder_values[key]['quantity_max'] != 1)
		{
			if (document.getElementById('page_order_step2_quantity_'+key).value == '')
			{
				document.getElementById('page_order_step2_quantity_'+key).value = ssorder_values[key]['quantity_min'];
			}
		}
	}
	
	// Recalculate.
	sspace_order_calculate();
}


/*
	Selects a value.
*/
function sspace_order_select(p_value_id)
{
	document.getElementById('page_order_step2_value_'+p_value_id).checked = true;
	sspace_order_calculate();
	return false;
}


/*
	Adjusts the quantity of a value.
*/
function sspace_order_quantity(p_value_id, p_increase)
{
	sspace_order_select(p_value_id);
	if (p_increase)
		document.getElementById('page_order_step2_quantity_'+p_value_id).value = parseInt(document.getElementById('page_order_step2_quantity_'+p_value_id).value) + 1;
	else
		document.getElementById('page_order_step2_quantity_'+p_value_id).value = parseInt(document.getElementById('page_order_step2_quantity_'+p_value_id).value) - 1;
	sspace_order_calculate();
	return false;
}


/*
	Called when the page is scrolled on the configuration page.
*/
function sspace_order_scroll()
{
	var offset = 325;
	var pageOffset = 0;

	if (!document.all)
	{
		// Non-IE
		pageOffset = window.pageYOffset;
	}
	else
	{
		// IE
		pageOffset = document.documentElement.scrollTop;
	}

	if (pageOffset < offset)
	{
		document.getElementById('page_order_step2_summary').style.top = '0px';
	}
	else
	{
		document.getElementById('page_order_step2_summary').style.top = parseInt(pageOffset - offset)+'px';
	}
}


/*
	Called on the order checkout form upon submission.
*/
function sspace_order_checkout()
{
	var warning_message = '';

	if (document.getElementById('page_order_checkout_email').value == '')
		warning_message = 'Please enter your e-mail address.';
	if (document.getElementById('page_order_checkout_phone_day').value == '')
		warning_message = 'Please enter your phone number.';
	if (document.getElementById('page_order_checkout_firstname').value == '')
		warning_message = 'Please enter your firstname.';
	if (document.getElementById('page_order_checkout_surname').value == '')
		warning_message = 'Please enter your surname.';
	if (document.getElementById('page_order_checkout_address_1').value == '')
		warning_message = 'Please enter the first line of your billing address.';
	if (document.getElementById('page_order_checkout_town').value == '')
		warning_message = 'Please enter your billing address town.';
	if (document.getElementById('page_order_checkout_county').value == '')
		warning_message = 'Please enter your billing address county.';
	if (document.getElementById('page_order_checkout_postcode').value == '')
		warning_message = 'Please enter your billing address postcode.';
	if (document.getElementById('page_order_checkout_payment_card').checked)
	{
		if (document.getElementById('page_order_checkout_card_number').value == '')
			warning_message = 'Please enter the your full card number.';
		if (document.getElementById('page_order_checkout_card_name').value == '')
			warning_message = 'Please enter the name as it appears on the front of your card.';
		if (document.getElementById('page_order_checkout_card_cvv').value == '')
			warning_message = 'Please enter your card security digits (either the last three numbers on the back of your card or four numbers printed on the front.)';
	}
	
	if (warning_message != '')
	{
		alert(warning_message);
		return false;
	}
	else
	{
		return true;
	}
}

