	var IE = document.all?true:false;

	var options;
	var overclockoptions = new Array();
	var silentoptions = new Array();
	var BasePrice;

	var optionsIndex = 0;
	var pageLoaded = 0;
	
	var overclockSystem = false;
	var silentSystem = false;

	function setPageLoaded()
	{
		pageLoaded = 1;
	}

	function initOptions(num)
	{
		options = new Array(num);
		for (i=0;i<options.length;i++)
			options[i] = new Array(6)
	}

	function setBasePrice(value)
	{
		BasePrice = value;
		if(document.getElementById('basePrice2') != null)
		{
			if(document.getElementById('basePrice') != null) document.getElementById('basePrice').innerHTML = formatCurrency(BasePrice);
			document.getElementById('basePrice2').innerHTML = formatCurrency(BasePrice);
		}
	}

	function overclock()
	{
		var count;
		var overclockColor = '66CCFF';
		var clearColor = 'white';

		overclockSystem = !overclockSystem;
		
		if(overclockSystem == true)
		{
			silentSystem = false;
			for(count=0;count<silentoptions.length;count++)
			{
				//selectRadio(silentoptions[count]);
				document.getElementById('td' + silentoptions[count] + '-1').style.backgroundColor=clearColor;
				document.getElementById('td' + silentoptions[count] + '-2').style.backgroundColor=clearColor;
				document.getElementById('td' + silentoptions[count] + '-3').style.backgroundColor=clearColor;
			}

			for(count=0;count<overclockoptions.length;count++)
			{
				//selectRadio(overclockoptions[count]);
				document.getElementById('td' + overclockoptions[count] + '-1').style.backgroundColor=overclockColor;
				document.getElementById('td' + overclockoptions[count] + '-2').style.backgroundColor=overclockColor;
				document.getElementById('td' + overclockoptions[count] + '-3').style.backgroundColor=overclockColor;
			}
			showSpanAtLeft('spanOverclock');
		}
		else
		{
			for(count=0;count<overclockoptions.length;count++)
			{
				//selectRadio(overclockoptions[count]);
				document.getElementById('td' + overclockoptions[count] + '-1').style.backgroundColor=clearColor;
				document.getElementById('td' + overclockoptions[count] + '-2').style.backgroundColor=clearColor;
				document.getElementById('td' + overclockoptions[count] + '-3').style.backgroundColor=clearColor;
			}
		}
	}

	function addOCOption(id)
	{
		//id = systemproductid
		overclockoptions[overclockoptions.length] = id;
	}

	function makeSilent()
	{
		var count;
		var silentColor = '99FF99';
		var clearColor = 'white';
		
		silentSystem = !silentSystem;
		
		if(silentSystem == true)
		{
			overclockSystem = false;
			for(count=0;count<overclockoptions.length;count++)
			{
				//selectRadio(overclockoptions[count]);
				document.getElementById('td' + overclockoptions[count] + '-1').style.backgroundColor=clearColor;
				document.getElementById('td' + overclockoptions[count] + '-2').style.backgroundColor=clearColor;
				document.getElementById('td' + overclockoptions[count] + '-3').style.backgroundColor=clearColor;
			}

			for(count=0;count<silentoptions.length;count++)
			{
				//selectRadio(silentoptions[count]);
				document.getElementById('td' + silentoptions[count] + '-1').style.backgroundColor=silentColor;
				document.getElementById('td' + silentoptions[count] + '-2').style.backgroundColor=silentColor;
				document.getElementById('td' + silentoptions[count] + '-3').style.backgroundColor=silentColor;
			}
			showSpanAtLeft('spanSilent');
		}
		else
		{
			for(count=0;count<silentoptions.length;count++)
			{
				//selectRadio(silentoptions[count]);
				document.getElementById('td' + silentoptions[count] + '-1').style.backgroundColor=clearColor;
				document.getElementById('td' + silentoptions[count] + '-2').style.backgroundColor=clearColor;
				document.getElementById('td' + silentoptions[count] + '-3').style.backgroundColor=clearColor;
			}
		}
	}

	function addSilentOption(id)
	{
		silentoptions[silentoptions.length] = id;
	}


	function selectRadio(Id)
	{
		if(document.getElementById(Id) != null)
		{
			document.getElementById(Id).checked = true;
			clickedChildOption(Id);
		}
	}
	
	function changeQty(Id, qty)
	{
		if(document.getElementById(Id) != null)
		{
			document.getElementById(Id).selectedIndex = qty - 1;
			clickedChildOption(Id);
		}
	}
	
	function getCheckedId(pid)
	{
		for (i=0;i<options.length;i++)
		{
			if(options[i][0] == pid)
			{
				if(document.getElementById(options[i][1]) != null)
				{
					if(document.getElementById(options[i][1]).type == 'checkbox')
					{
						if(document.getElementById(options[i][1]).checked == true) return options[i][1]
					}
					else //radio
					{
						if(document.getElementById(options[i][1]).checked == true) return options[i][1]
					}
				}
			}
		}
	}

	function formatCurrency(num)
	{
		num = num.toString().replace(/\$|\,/g,'');
		if(isNaN(num)) num = "0";
		sign = (num == (num = Math.abs(num)));
		num = Math.floor(num*100+0.50000000001);
		pence = num%100;
		num = Math.floor(num/100).toString();
		if(pence<10)
			pence = "0" + pence;
		for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
			num = num.substring(0,num.length-(4*i+3))+','+
		num.substring(num.length-(4*i+3));
		//alert(num);
		//return (((sign)?'':'-') + '£' + num + '.' + pence);
		return ('£' + num + '.' + pence);
	}

	function addOption(pid, id, value, label, description, groupname)
	{
		//alert(optionsIndex);
		options[optionsIndex][0] = pid;
		options[optionsIndex][1] = id;
		options[optionsIndex][2] = value;
		options[optionsIndex][3] = label;
		options[optionsIndex][4] = description;
		options[optionsIndex][5] = groupname;
		if(optionsIndex > 1)
		{
			//alert(options[optionsIndex][1]);
		}
		optionsIndex++;
	}

	function clickedParent(pid)
	{
		if(document.getElementById(pid) == null)
		{
			enableChildOptions(pid);
		}
		else
		{
			if(document.getElementById(pid).checked)
			{
				enableChildOptions(pid);
			}
			else
			{
				disableChildOptions(pid);
			}
		}
		refreshTotal();
	}

	function clickedChildOption(id)
	{
		var pid, optionValue, optionDiff, qty;

		for (i=0;i<options.length;i++)
		{
			if(options[i][1] == id)
			{
				//alert();
				pid = options[i][0];
				qty = document.getElementById('qty' + id).value;
				optionValue = (options[i][2] * qty);
			}
		}
		for (i=0;i<options.length;i++)
		{
			if(options[i][0] == pid)
			{
				if(document.getElementById(options[i][1]) != null)
				{
					if(document.getElementById(options[i][1]).type == 'checkbox')
					{
						if(options[i][1] == id)
						{
							if(document.getElementById(options[i][1]).checked == false)
							{
								optionDiff = options[i][2] * document.getElementById('qty' + options[i][1]).value;
								document.getElementById(options[i][3]).innerHTML = '(' + formatCurrency(options[i][2]) + ') add ' + formatCurrency(optionDiff.toString());
							}
							else
							{
								document.getElementById(options[i][3]).innerHTML = '(' + formatCurrency(options[i][2]) + ')';
							}
						}
						else
						{
							if(document.getElementById(options[i][1]).checked == false)
							{
								optionDiff = options[i][2] * document.getElementById('qty' + options[i][1]).value;
								document.getElementById(options[i][3]).innerHTML = '(' + formatCurrency(options[i][2]) + ') add ' + formatCurrency(optionDiff.toString());
							}
						}
					}
					else //radio
					{
						qty = document.getElementById('qty' + options[i][1]).value
						//if(options[i][1] == id)
						if(document.getElementById(options[i][1]).checked == true)
						{
							document.getElementById(options[i][3]).innerHTML = '(' + formatCurrency(options[i][2] * qty) + ')';
						}
						else
						{
							optionDiff = (options[i][2] * qty) - optionValue
							if(optionDiff >= 0)
							{
								document.getElementById(options[i][3]).innerHTML = '(' + formatCurrency(options[i][2] * qty) + ') add ' + formatCurrency(optionDiff.toString());
							}
							else
							{
								optionDiff = optionDiff.toString();
								optionDiff = optionDiff.replace('-','')
								document.getElementById(options[i][3]).innerHTML = '(' + formatCurrency(options[i][2] * qty) + ') subtract ' + formatCurrency(optionDiff.toString());
							}
						}
					}
				}
			}
		}
		refreshTotal();
	}

	function disableChildOptions(pid)
	{
		if(document.getElementById(pid+'AllowOptionsHide') != null)
		{
			document.getElementById(pid+'options').style.visibility = 'hidden';
			document.getElementById(pid+'options').style.display = 'none';
		}
		for (i=0;i<options.length;i++)
		{
			if(options[i][0] == pid)
			{
				document.getElementById(options[i][1]).disabled = true;
				document.getElementById(options[i][1]).checked = false;
				document.getElementById(options[i][3]).innerHTML = '';
			}
		}
	}

	function enableChildOptions(pid)
	{
		document.getElementById(pid+'options').style.visibility = 'visible';
		document.getElementById(pid+'options').style.display = '';

		for (i=0;i<options.length;i++)
		{
			if(options[i][0] == pid)
			{
				document.getElementById(options[i][1]).disabled = false;
				document.getElementById(options[i][3]).innerHTML = '(' + formatCurrency(options[i][2]) + ') add ' + formatCurrency(options[i][2].toString());
			}
		}
	}

	function toggleSpan(id)
	{
		if(document.getElementById(id).style.display == 'none')
		{
			showSpan(id);
		}
		else
		{
			hideSpan(id);
		}
	}

	function showSpan(id)
	{
		document.getElementById(id).style.visibility = 'visible';
		document.getElementById(id).style.display = '';
	}

	function hideSpan(id)
	{
		document.getElementById(id).style.visibility = 'hidden';
		document.getElementById(id).style.display = 'none';
	}

	function recalc()
	{
		var total = 0, qty, ov;
		
		ov = '<b>System Overview</b><br><br>';
		
		for (i=0;i<options.length;i++)
		{
			if(document.getElementById(options[i][1]) != null)
			{
				if(document.getElementById(options[i][1]).checked == true)
				{
					qty = document.getElementById('qty' + options[i][1]).value;
					total = total + (options[i][2] * qty);
					ov = ov + '<b>' + options[i][5] + ':</b>  ' + options[i][4]
					if(qty > 1)
					{
						ov = ov + ',  ' + qty + ' selected';
					}
					ov = ov + '<br>';
					
				}
			}
		}
		document.getElementById('SystemOverviewText').innerHTML = ov;
		return total;
	}

	function refreshTotal()
	{
		if(document.getElementById('options') == null)
		{
			var options, nettotal, vat, grosstotal, grosslessdeposit;
			options = recalc();

			nettotal = BasePrice + options;
			vat = nettotal * 0.2;
			grosstotal = nettotal * 1.2;
			grosslessdeposit = grosstotal * 0.9;
			

			if(pageLoaded == 1)
			{
				document.getElementById('netPrice').innerHTML = formatCurrency(nettotal);
				document.getElementById('netPrice3').innerHTML = formatCurrency(nettotal);
				document.getElementById('vatPrice').innerHTML = formatCurrency(vat);
				document.getElementById('grossPrice').innerHTML = formatCurrency(grosstotal);
				if(document.getElementById('netPrice2') != null)
				{
					document.getElementById('netPrice2').innerHTML = formatCurrency(nettotal);
					document.getElementById('vatPrice2').innerHTML = formatCurrency(vat);
					document.getElementById('grossPrice2').innerHTML = formatCurrency(grosstotal);
				}
				document.getElementById('months36').innerHTML = formatCurrency(grosslessdeposit * 0.0363);
				document.getElementById('months48').innerHTML = formatCurrency(grosslessdeposit * 0.02953);
			}
		}
		else
		{
			alert('Total SPAN could not be found');
		}
	}

	function Format(total,DecimalPlaces)
	{
		if(isNaN(total))
		{
			return "0.00";
		}

		var RoundedTotal = total * Math.pow(10, DecimalPlaces);
		RoundedTotal = Math.round(RoundedTotal);
		RoundedTotal = RoundedTotal / Math.pow(10, DecimalPlaces);

		var Totalstring = RoundedTotal.toString(); // Convert to a string
		var DecimalPoint = Totalstring.indexOf("."); // Look for decimal point

		if(DecimalPoint == -1)
		{
			currentDecimals = 0;
			Totalstring += DecimalPlaces > 0 ? "." : "";
		}
		else
		{
			currentDecimals = Totalstring.length - DecimalPoint - 1;
		}
		var Pad = DecimalPlaces - currentDecimals;
		if(Pad > 0)
		{
			for(var count = 1; count <= Pad; count++)
			Totalstring += "0";
		}
		return Totalstring;
	}

	var MainImage1, MainImage2, MainImage3

	function preloadImage(path)
	{
		image1 = new Image();
		image1.src = path;
	}

	function loadImages(image1, image2, image3)
	{
		MainImage1 = image1;
		MainImage2 = image2;
		MainImage3 = image3;
		changeImageView(1);
	}

	function changeImageView(index)
	{
		switch(index)
		{
			case 1:
				if(MainImage1=='')
				{
					document.getElementById('mainImage').src = 'images/nopic.gif';
				}
				else
				{
					document.getElementById('mainImage').src = MainImage1;
				}
				break;
			case 2:
				if(MainImage2=='')
				{
					document.getElementById('mainImage').src = 'images/nopic.gif';
				}
				else
				{
					document.getElementById('mainImage').src = MainImage2;
				}
				break;
			case 3:
				if(MainImage3=='')
				{
					document.getElementById('mainImage').src = 'images/nopic.gif';
				}
				else
				{
					document.getElementById('mainImage').src = MainImage3;
				}
				break;
		}
	}

