aryPriceList = new Array;
aryPriceList[0] = [];
aryPriceList[1] = [];
var totalPrice = 0;
var platesTotal = 0;
var extrasTotal = 0;
var frontPlatePrice = 0;
var rearPlatePrice = 0;
var sloganPrice = 0;
var badgePrice = 0;
var borderPrice = 0;
var imageBackgroundPrice = 0;
var ghostPrice = 0;
var backgroundPrice = 0;
var numberOfPlates = 0;

function updatePrice(){
	extrasTotal = sloganPrice + badgePrice + borderPrice + imageBackgroundPrice + ghostPrice + backgroundPrice;
	platesTotal = frontPlatePrice + rearPlatePrice;
	if(document.order.frontPlateValue.value !=0 && document.order.rearPlateValue.value != 0){
		totalPrice = platesTotal + (extrasTotal * 2);
	}
	else{
		totalPrice = platesTotal + extrasTotal;
	}
	document.getElementById("totalPrice").innerHTML = currency(totalPrice);
}

function currency(num)
{
	var temp = Math.round(num*100.0);
	if (temp<10) return "0.0" + temp;
	if (temp<100) return "0." + temp;
	temp = temp + "";
	return temp.substring(0,temp.length-2) + "." + temp.substring(temp.length-2);
} 

function checkInput(myString){
//This function checks myString for illegal characters.
	var myRegExpression = /([a-zA-Z0-9]$)|(\s$)/;
	if(myRegExpression.test(myString)){
		return true;
	}
	else{
		if(myString.length>0){
			return false;
		}
		else{
			return true;
		}
	}
}

function updatePlateText(myString){
//This function updates the numberplate text using the innerHTML property.
	if(checkInput(myString.value)){
		plateTextString = "<table width='100%'><tr><td align='center'>";
		fontValue = document.order.fontValue;

		for (i=0; i<myString.value.length; i++){
				if(myString.value.charAt(i)!=" "){
					plateTextString = plateTextString + "<img src='images/fonts/" + fontValue.value +"/" + myString.value.charAt(i) + ".gif' class='plateChar'>";
				}
				else{
					plateTextString = plateTextString + "<img src='images/fonts/space.gif' width=30>";
				}
			}
		plateTextString = plateTextString + "</td></tr></table>";

		document.getElementById("plateText").innerHTML = (plateTextString);
	}
	else{
	alert("Only numbers, letters and spaces please")
	myString.value = myString.value.substring(0,myString.value.length-1);
	}
	document.order.registrationValue.value = document.order.registrationValue.value.toUpperCase();
}

function updateBadge(badgeValue){
//This function pastes the badge graphic onto our plate, using innerHTML.
	if(badgeValue.value != "None"){
		document.getElementById("plateText").className = "plateAndBadgeText";
		document.order.imageBackgroundValue.disabled = false;
//		document.getElementById("sloganTextArea").className = "sloganAndBadgeTextArea";
//		document.getElementById("plateGhost").className = "plateAndBadgeGhost";
		if(document.getElementById("imageBackgroundValue").value != "None"){
			imageString = "<img src='images/badges/" + (badgeValue.value).replace(" ","").toLowerCase() + document.getElementById("imageBackgroundValue").value + ".gif'>";
		}
		else{
			imageString = "<img src='images/badges/" + badgeValue.value + "01.gif'>";
		}
		document.getElementById("badgeImage").innerHTML = imageString;
		badgePrice = 0;
	}
	else{
		document.getElementById("plateText").className = "plateText";
		document.order.imageBackgroundValue.disabled = true;
//		document.getElementById("plateGhost").className = "plateGhost";
//		document.getElementById("sloganTextArea").className = "sloganTextArea";
		document.getElementById("badgeImage").innerHTML = "";
		badgePrice = 0;
		document.order.imageBackgroundValue.selectedIndex = 0;
	}
	updatePrice();
}

function updateImageBackground(imageBackgroundValue){
//This function pastes the image background graphic onto the plate, using innerHTML.
	if(imageBackgroundValue.value != "None"){
		imageString = "<img src='images/badges/" + (document.getElementById("badgeValue").value).replace(" ","").toLowerCase() + imageBackgroundValue.value + ".gif'>";
		document.getElementById("badgeImage").innerHTML = imageString;
//		imageBackgroundPrice = 1.50;
	}
	else{
		document.getElementById("badgeImage").innerHTML = "";
//		imageBackgroundPrice = 0;
	}
	updatePrice();
}

function updateCraftySlogan(){
	if(document.order.craftySlogan.checked==true){
		document.order.sloganValue.value = "www.craftyplates.com";
		updateSlogan(document.order.sloganValue);
		document.order.sloganValue.disabled = true;
	}
	else{
		document.order.sloganValue.value = "";
		updateSlogan(document.order.sloganValue);
		document.order.sloganValue.disabled = false;
	}
}

function updateSlogan(myString){
//this one rebuilds the slogan text, again using innerHTML
		if(myString.value.length>0){
			if(document.order.plateView[0].checked == true){
				strImageString = "<table width='100%'><tr><td><table align='center' bgcolor='#EEC120' cellpadding='0' cellspacing='0'><tr class='sloganText'><td><font face=arial>&nbsp;"+myString.value+"&nbsp;</font></td></tr></table></td></tr></table>";
			}
			else{
				strImageString = "<table width='100%'><tr><td><table align='center' bgcolor='#FFFFFF' cellpadding='0' cellspacing='0'><tr class='sloganText'><td><font face=arial>&nbsp;"+myString.value+"&nbsp;</font></td></tr></table></td></tr></table>";
			}
			document.getElementById("sloganTextArea").innerHTML = strImageString;
			if(document.order.craftySlogan.checked==true){
				sloganPrice = 0;
			}
			else{
				sloganPrice = 0;
			}
		}
		else{
			document.getElementById("sloganTextArea").innerHTML = "";
			document.getElementById("sloganTextArea").style.backgroundColor = "";
			sloganPrice = 0;
		}
		updatePrice();
		document.order.sloganValue.value = document.order.sloganValue.value.toUpperCase();
}

function updateBorder(borderValue){
//loads the relevant border
	if(borderValue.value != '0'){
		imageString = "<img src='images/borders/" + borderValue.value + ".gif'>";
		document.getElementById("plateBorder").innerHTML = imageString;
		borderPrice = 0;
	}
	else{
		document.getElementById("plateBorder").innerHTML = "";
		borderPrice = 0;
	}
	updatePrice();
}

function updateGhost(myString){
//This function pastes the badge graphic onto our plate, using innerHTML.
	if(myString.value != "None"){
		ghostString = "<img align='middle' src='images/ghosts/" + myString.value + ".gif'>";
		document.getElementById("plateGhost").innerHTML = ghostString;
		ghostPrice = 0;
	}
	else{
		document.getElementById("plateGhost").innerHTML = "";
		ghostPrice = 0;
	}
	updatePrice();
}

function updatePlateBackground(){
//loads relevant numberplate graphic, like the honeycomb, front (white) or rear (yellow)
	var backgroundValue = 0;
	if(document.order.plateView[0].checked == true){
		backgroundValue = 0;
	}
	else{
		backgroundValue = 2;
	}
	backgroundValue = backgroundValue + parseInt(document.order.backgroundValue.value);
	tempString = "<img src='images/plates/" + backgroundValue +".jpg'>";
	document.getElementById("plateImage").innerHTML = tempString;
	if(backgroundValue == 1 || backgroundValue == 3){
		backgroundPrice = 0;
	}
	else{
		backgroundPrice = 0;
	}
	updateSlogan(document.order.sloganValue);
}

function updatePlateType(thisPlate){
	//if this.plate.value=0 then that.plate.value=standard road legal plate
	//stops user selecting two blank plates
	if(thisPlate.value == 0){
		if(thisPlate.name == "frontPlateValue"){
			if(rearPlateValue = document.order.rearPlateValue.value == 0){
				document.order.rearPlateValue.value = 1;
			}
		}
		else{
			if(frontPlateValue = document.order.frontPlateValue.value == 0){
				document.order.frontPlateValue.value = 1;
			}
		}
	}
	if(frontPlateValue = document.order.frontPlateValue.value == 0){
		frontPlatePrice = 0;
	}
	if(frontPlateValue = document.order.frontPlateValue.value == 1){
		frontPlatePrice = 15;
	}	
	if(frontPlateValue = document.order.frontPlateValue.value >= 2){
		frontPlatePrice = 17;
	}
	if(rearPlateValue = document.order.rearPlateValue.value == 0){
		rearPlatePrice = 0;
	}
	if(rearPlateValue = document.order.rearPlateValue.value ==1){
		rearPlatePrice = 15;
	}
	if(rearPlateValue = document.order.rearPlateValue.value >= 2){
		rearPlatePrice = 17;
	}
	updatePrice();
}

function sendForm(){
//checks forms for errors and submits
	if(document.order.registrationValue.value.length < 1){
		alert("You must enter a registration number for your plate(s)!");
	} else if(document.order.disclaimerAgree.checked==false){
		alert("You must agree to the disclaimer before you can continue.");
	} else if(document.order.email.value.length < 1){
		alert("You must enter your email address before you can continue.");
	} else {
		updatePrice();
		document.order.totalPrice.value = currency(totalPrice);
		numberOfPlates = 0;
		if(document.order.frontPlateValue.value != "0"){
			numberOfPlates++;
		}
		if(document.order.rearPlateValue.value != "0"){
			numberOfPlates++;
		}
		document.order.numberOfPlates.value = numberOfPlates;
		document.order.sloganValue.disabled = false;
		document.order.Continue.disabled = true;
		document.order.submit();
	}
}

function resetForm(){
//resets all form elements to defaults and updates price
	document.order.reset();
	updatePlateType(document.order.frontPlateValue);
	updatePlateText(document.order.registrationValue);
	updateBadge(document.order.badgeValue);
	updateSlogan(document.order.sloganValue);
	updateBorder(document.order.borderValue);
	updateGhost(document.order.ghostValue);
	updatePlateBackground();
}
