function calculate() {
//Calculate Time
	Quantity=document.BadgeOrder.Quantity.value;
	GrandTotal = 0;
	BadgePrice = 0;
	SetUpCosts = 0;
	PostageCosts = 0;
	ErrorString = "";

// initial sanity checks - ensure quantity is a number and that its between 1 and 100 inclusive
	if(isNaN(Quantity))
	{
		document.BadgeOrder.GrandTotal.value = "ERROR";
		document.BadgeOrder.Quantity.focus();
		ErrorString = ErrorString + "Please Enter BADGE QUANTITY in number format.";
	}
	else if(Quantity <= 0)
	{
		document.BadgeOrder.GrandTotal.value = "ERROR";
		document.BadgeOrder.Quantity.focus();
		ErrorString = ErrorString + "Please enter a BADGE QUANTITY greater than 0.";
	}
	else if(Quantity > 100)
	{
		document.BadgeOrder.GrandTotal.value = "ERROR";
		document.BadgeOrder.Quantity.focus();
		ErrorString = ErrorString + "Please Enter a BADGE QUANTITY of 1 to 100 Badges.";
	}

//Set initial per badge price based on the size
	if (document.getElementById("BadgeSize_0").checked === true)
	{
		BadgePrice = BadgePrice + 2.80 + 0.00;
	}
	else if (document.getElementById("BadgeSize_1").checked === true)
	{
		BadgePrice = BadgePrice + 3.40 + 0.00;
	}
	else if (document.getElementById("BadgeSize_2").checked === true)
	{
		BadgePrice = BadgePrice + 4.10 + 0.00;
	}
	else
	{
		ErrorString = ErrorString + "Please choose a Badge SIZE.";
	}

//apply 10% discount for > 20 and 10% again (compounded) for >50
	if (Quantity > 20)
	{
		BadgePrice = BadgePrice * 0.9;
	}
	if (Quantity > 50)
	{
		BadgePrice = BadgePrice * 0.9;
	}

//Check that Colour has been selected - Add to ErrorString Message if not
	if (document.getElementById("BadgeColour_0").checked === true)
	{
		BadgePrice = BadgePrice + 0.00;
	}
	else if (document.getElementById("BadgeColour_1").checked === true)
	{
		BadgePrice = BadgePrice + 0.00;
	}
	else if (document.getElementById("BadgeColour_2").checked === true)
	{
		BadgePrice = BadgePrice + 0.00;
	}
	else if (document.getElementById("BadgeColour_3").checked === true)
	{
		BadgePrice = BadgePrice + 0.00;
	}
	else if (document.getElementById("BadgeColour_4").checked === true)
	{
		BadgePrice = BadgePrice + 0.00;
	}
	else if (document.getElementById("BadgeColour_5").checked === true)
	{
		BadgePrice = BadgePrice + 0.00;
	}
	else if (document.getElementById("BadgeColour_6").checked === true)
	{
		BadgePrice = BadgePrice + 0.00;
	}
	else if (document.getElementById("BadgeColour_7").checked === true)
	{
		BadgePrice = BadgePrice + 0.00;
	}
	else if (document.getElementById("BadgeColour_8").checked === true)
	{
		BadgePrice = BadgePrice + 0.00;
	}
	else if (document.getElementById("BadgeColour_9").checked === true)
	{
		BadgePrice = BadgePrice + 0.00;
	}
	else
	{
		ErrorString = ErrorString + "NEXT STEP : choose a COLOUR for the Badge.";
	}

//add costings for number of lines of text 1, 2, or 3 lines
	if (document.getElementById("BadgeText_0").checked === true)
	{
		BadgePrice = BadgePrice + 2.30 + 0.00;
	}
	else if (document.getElementById("BadgeText_1").checked === true)
	{
		BadgePrice = BadgePrice + 2.80 + 0.00;
	}
	else if (document.getElementById("BadgeText_2").checked === true)
	{
		BadgePrice = BadgePrice + 3.20 + 0.00;
	}
	else
	{
		ErrorString = ErrorString + "NEXT STEP : choose number of TEXT lines for the Badge.";
	}

//add check/warning for Text Style - Add to ErrorString if not selected
	if (document.getElementById("BadgeTextStyle_1").checked === true)
	{
		BadgePrice = BadgePrice + 0.00;
	}
	else if (document.getElementById("BadgeTextStyle_2").checked === true)
	{
		BadgePrice = BadgePrice + 0.00;
	}
	else if (document.getElementById("BadgeTextStyle_3").checked === true)
	{
		BadgePrice = BadgePrice + 0.00;
	}
	else
	{
		ErrorString = ErrorString + "NEXT STEP : choose a TYPEFACE for the Badge.";
	}

//Check for TextCase - Add to ErrorString if not
	if (document.getElementById("TextCase_1").checked === true)
	{
		BadgePrice = BadgePrice + 0.00;
	}
	else if (document.getElementById("TextCase_2").checked === true)
	{
		BadgePrice = BadgePrice + 0.00;
	}
	else
	{
		ErrorString = ErrorString + "NEXT STEP : choose TYPE CASE for the Badge.";
	}

//Add costings for Logo - 0 = No Logo, 1 = Print Screened Logo, 2 = Digitized Logo
	if (document.getElementById("Logo_0").checked === true)
	{
		BadgePrice = BadgePrice + 0.00 + 0.00;
	}
	else if (document.getElementById("Logo_1").checked === true)
	{
		BadgePrice = BadgePrice + 3.75 + 0.00;
	}
	else if (document.getElementById("Logo_2").checked === true)
	{
		BadgePrice = BadgePrice + 4.20 + 0.00;
	}
	else
	{
		ErrorString = ErrorString + "NEXT STEP : Will the badge display a LOGO?.";
	}

//Add Artwork Setup Costings If New Order - 0 = New Artwork Required, 1 =Artwork Already Exists
	if (document.getElementById("UsePreviousArtwork_0").checked === true)
	{
		if (document.getElementById("Logo_0").checked === true)
		{
			SetUpCosts = SetUpCosts + 0.00 + 0.00;
		}
		else if (document.getElementById("Logo_1").checked === true)
		{
			SetUpCosts = SetUpCosts + 18.00 + 0.00;
		}
		else if (document.getElementById("Logo_2").checked === true)
		{
			SetUpCosts = SetUpCosts + 80.00 + 0.00;
		}
		else
		{
			ErrorString = ErrorString + "NEXT STEP : tell us if you have ordered this badge style before.";
		}
	}
	else if (document.getElementById("UsePreviousArtwork_1").checked === true)
	{
	}
	else
	{
		ErrorString = ErrorString + "NEXT STEP : tell us if you have ordered this badge style before.";
	}

//Add costings for Epoxy Coating if it has been chosen
	if (document.getElementById("Epoxy_0").checked === true)
	{
		BadgePrice = BadgePrice + 0.00 + 0.00;
	}
	else if (document.getElementById("Epoxy_1").checked === true)
	{
		BadgePrice = BadgePrice + 1.50 + 0.00;
	}
	else
	{
		ErrorString = ErrorString + "NEXT STEP : Does the badge require a protective coating?.";
	}

//Add costings for fitting type - 0 = mag, 1 = clip/pin
	if (document.getElementById("Fitting_0").checked === true)
	{
		BadgePrice = BadgePrice + 1.60 + 0.00;
	}
	else if (document.getElementById("Fitting_1").checked === true)
	{
		BadgePrice = BadgePrice + 0.45 + 0.00;
	}
	else if (document.getElementById("Fitting_2").checked === true)
	{
		BadgePrice = BadgePrice + 0.65 + 0.00;
	}
	else
	{
		ErrorString = ErrorString + "NEXT STEP : Please choose a CLIP for the Badge.";
	}

//Add Postage - 0 = $4.80, 1 =$8.80
	if (document.getElementById("PostageCharge_0").checked === true)
	{
		PostageCosts = PostageCosts + 4.80 + 0.00;
	}
	else if (document.getElementById("PostageCharge_1").checked === true)
	{
		PostageCosts = PostageCosts + 8.80 + 0.00;
	}
	else if (document.getElementById("PostageCharge_2").checked === true)
	{
		PostageCosts = PostageCosts + 0.00 + 0.00;
	}
	else
	{
		ErrorString = ErrorString + "NEXT STEP : choose a POSTAGE option.";
	}


	if (ErrorString === "")
	{
	}
	else
	{
		ErrorString = ErrorString.substring(0, ErrorString.indexOf("."));
		document.BadgeOrder.SingleBadgeCost.value = "0.00";
		document.BadgeOrder.SetUpCosts.value = "0.00";
		document.BadgeOrder.PostageCosts.value = "0.00";
		document.BadgeOrder.GrandTotal.value = "0.00";
		document.BadgeOrder.ErrorString.value = ErrorString;
		document.BadgeOrder.ErrorString.className = "ErrorString";
		return;
	}
	
//Here is our main total
	document.BadgeOrder.SingleBadgeCost.value = "AU$"+BadgePrice.toFixed(2);
//	document.getElementById("SingleBadgeCostDisplay").innerHTML = "AU$"+BadgePrice.toFixed(2);
	document.BadgeOrder.SetUpCosts.value = "AU$"+SetUpCosts.toFixed(2);
//	document.getElementById("SetUpCostsDisplay").innerHTML = "AU$"+SetUpCosts.toFixed(2);
	document.BadgeOrder.PostageCosts.value = "AU$"+PostageCosts.toFixed(2);
//	document.getElementById("PostageCostsDisplay").innerHTML = "AU$"+PostageCosts.toFixed(2);
	GrandTotal = (Quantity * BadgePrice) + SetUpCosts + PostageCosts;
	document.BadgeOrder.GrandTotal.value = "AU$"+GrandTotal.toFixed(2);
//	document.getElementById("GrandTotalDisplay").innerHTML = "AU$"+GrandTotal.toFixed(2);
	document.BadgeOrder.ErrorString.value = "";
	document.BadgeOrder.ErrorString.className = "OpenMessage";

}

function swapIt(target, image, id) {
	if (document.images[target]) {
		document.images[target].src = "Images/" + image + ".gif";
	}
	//alert(id);
	calculate();
}




