function start() {
  init();
  price();
  plateload(); 
  fsize();
  rsize();
}
window.onload = start;
function setDisplay(objectID, state) {
	var object = document.getElementById(objectID);
	object.style.display = state;
}
function getDisplay(objectID) {
	var object = document.getElementById(objectID);
	state = object.style.display;
	return state;
}
function setVisibility(objectID, state) {
	var object = document.getElementById(objectID);
	object.style.visibility = state;
}
function getVisibility(objectID) {
	var object = document.getElementById(objectID);
	state = object.style.visibility;
	return state;
}
// return the value of the radio button that is checked
// return an empty string if none are checked, or
// there are no radio buttons
function getCheckedValue(radioObj) {
	if(!radioObj)
		return "";
	var radioLength = radioObj.length;
	if(radioLength == undefined)
		if(radioObj.checked)
			return radioObj.value;
		else
			return "";
	for(var i = 0; i < radioLength; i++) {
		if(radioObj[i].checked) {
			return radioObj[i].value;
		}
	}
	return "";
}

// set the radio button with the given value as being checked
// do nothing if there are no radio buttons
// if the given value does not exist, all the radio buttons
// are reset to unchecked
function setCheckedValue(radioObj, newValue) {
	if(!radioObj)
		return;
	var radioLength = radioObj.length;
	if(radioLength == undefined) {
		radioObj.checked = (radioObj.value == newValue.toString());
		return;
	}
	for(var i = 0; i < radioLength; i++) {
		radioObj[i].checked = false;
		if(radioObj[i].value == newValue.toString()) {
			radioObj[i].checked = true;
		}
	}
}

function togglerear() {
		var number = getCheckedValue(document.platemaker.borderselect);
		if (number =='borderY') {
			setVisibility('rearborder', 'hidden');
			setDisplay('rearborder', 'none');
		}else if (number =='borderN') {
			setVisibility('rearborder', 'visible');
			setDisplay('rearborder', 'block');
		}
}

function togglerearbadge() {
		var showrear = getCheckedValue(document.platemaker.badgerear);
		if (showrear =='badgeY') {
			setVisibility('badgeno', 'hidden');
			setDisplay('badgeno', 'none');
			setVisibility('badgenochoice', 'hidden');
			setDisplay('badgenochoice', 'none');
			setVisibility('chooseone', 'hidden');
			setDisplay('chooseone', 'none');
		}else if (showrear =='badgeN') {
			setVisibility('badgeno', 'visible');
			setDisplay('badgeno', 'block');
			setVisibility('badgenochoice', 'visible');
			setDisplay('badgenochoice', 'block');
			setVisibility('chooseone', 'visible');
			setDisplay('chooseone', 'block');
		}
}

function init() {
	if (document.getElementById('top') != null) {
		hide();
	}
	
	if (document.getElementById('art') != null) { setVisibility('art', 'hidden');
	setDisplay('art', 'none'); }
	if (document.getElementById('notes') != null) { setVisibility('notes', 'hidden');
	setDisplay('notes', 'none'); }
	
	
}

function artcheck() {
	var artvalue = document.getElementById('checkart').checked;
	if (artvalue == true) {
		setVisibility('art', 'visible');
		setDisplay('art', 'block');
		
	} else if (artvalue == false) {
		setVisibility('art', 'hidden');
		setDisplay('art', 'none');
	}
	price();
	return;
}

function notescheck() {
	var notesvalue = document.getElementById('checknotes').checked;
	if (notesvalue == true) {
		setVisibility('notes', 'visible');
		setDisplay('notes', 'block');
	} else if (notesvalue == false) {
		setVisibility('notes', 'hidden');
		setDisplay('notes', 'none');
	}
}

function badgevalue() { 
	
		if (document.getElementById('regnum1') != null) {
		regnum1_value = document.getElementById('regnum1').value;
		if (regnum1_value == "") { regnum1_value = 0; }
		} else { regnum1_value = 0; }
		
		if (document.getElementById('regnum2') != null) {
		regnum2_value = document.getElementById('regnum2').value;
		if (regnum2_value == "") { regnum2_value = 0; }
		} else { regnum2_value = 0; }
		
		if (document.getElementById('frontsize') != null) {
		frontsize_index = document.getElementById('frontsize').selectedIndex;
		frontsize_value = document.getElementById('frontsize').options[frontsize_index].value;
		if (frontsize_value == "") { frontsize_value = 0; }
		} else { frontsize_value = 0; }
		
		if (document.getElementById('rearsize') != null) {
		rearsize_index = document.getElementById('rearsize').selectedIndex;
		rearsize_value = document.getElementById('rearsize').options[rearsize_index].value;
		if (rearsize_value == "") { rearsize_value = 0; }
		} else { rearsize_value = 0; }
		
		if (document.getElementById('frontone') != null) {
		frontone_index = document.getElementById('frontone').checked;
			if (frontone_index == true) {
				frontone_value = "frontoneY"; 
			} else { frontone_value = 0; }
		} else { frontone_value = 0; } 
		
		if (document.getElementById('rearnum1') != null) {
		rearnum1_value = document.getElementById('rearnum1').value;
		if (rearnum1_value == "") { rearnum1_value = 0; }
		} else { rearnum1_value = 0; }
		
		if (document.getElementById('rearnum2') != null) {
		rearnum2_value = document.getElementById('rearnum2').value;
		if (rearnum2_value == "") { rearnum2_value = 0; }
		} else { rearnum2_value = 0; }
		
		if (document.getElementById('rearone') != null) {
		rearone_index = document.getElementById('rearone').checked;
			if (rearone_index == true) {
				rearone_value = "rearoneY"; 
			} else { rearone_value = 0; }
		} else { rearone_value = 0; } 
		
		if (document.getElementById('addnumber') != null) {
		addnumber_index = document.getElementById('addnumber').selectedIndex;
		addnumber_value = document.getElementById('addnumber').options[addnumber_index].value;
		if (addnumber_value == "") { addnumber_value = 0; }
		} else { addnumber_value = 0; }
		
		if (document.getElementById('font') != null) {
		font_index = document.getElementById('font').selectedIndex;
		font_value = document.getElementById('font').options[font_index].value;
		if (font_value == "") { font_value = 0; }
		} else { font_value = 0; }
		
		if (document.getElementById('badgefront') != null) {
		badgefront_index = document.getElementById('badgefront').selectedIndex;
		badgefront_value = document.getElementById('badgefront').options[badgefront_index].value;
		if (badgefront_value == "") { badgefront_value = 0; }
		} else { badgefront_value = 0; }
		
		if (document.getElementById('subbadge') != null) {
		subbadge_index = document.getElementById('subbadge').selectedIndex;
		subbadge_value = document.getElementById('subbadge').options[subbadge_index].value;
		if (subbadge_value == "") { subbadge_value = 0; }
		} else { subbadge_value = 0; }
		
		if (document.getElementById('border') != null) {
		border_index = document.getElementById('border').selectedIndex;
		border_value = document.getElementById('border').options[border_index].value;
		if (border_value == "") { border_value = 0; }
		} else { border_value = 0; }
		
		if (document.getElementById('slogan') != null) {
		slogan_value = document.getElementById('slogan').value;
		if (slogan_value == "") { slogan_value = 0; }
		} else { slogan_value = 0; }
		
		/*if (document.getElementById('badgerear') != null) {
			badgerear_value = getCheckedValue(document.platemaker.badgerear);
		} else { badgerear_value = 0; } */
		
		if (document.getElementById('honeycomb') != null) {
			honeycomb_value = getCheckedValue(document.platemaker.honeycomb);
		} else { honeycomb_value = 0; }
		
		self.location = "platemaker.php?regnum1=" + regnum1_value + "&regnum2=" + regnum2_value + "&frontsize=" + frontsize_value 
		+ "&rearsize=" + rearsize_value + "&frontone=" + frontone_value + "&addnumber=" + addnumber_value + "&font=" + font_value + "&badgefront=" + badgefront_value + "&subbadge=" + subbadge_value + "&rearnum1=" + rearnum1_value + "&rearnum2=" + rearnum2_value + "&rearone=" + rearone_value + "&border=" + border_value + "&honeycomb=" + honeycomb_value + "&slogan=" + slogan_value;
						
}



function fsize() {
	if (document.getElementById('frontsize') != null) {
		price();
		var frontsize_value = "Standard UK Car Oblong 20½\" x 4 3/8\" - 520mm x 111mm"
		if (document.getElementById('frontsize')) {
		var frontsize_index = document.getElementById('frontsize').selectedIndex;
		}
		if (frontsize_index) {
		frontsize_value = document.getElementById('frontsize').options[frontsize_index].text;
		}
		if (document.getElementById('rearsize') != null) {
			var rearnum1 = document.getElementById('rearnum1');
			var rearnum2 = document.getElementById('rearnum2');
		}
		digits = /\d{2,3}[m]{2}/g;
		digitarray = frontsize_value.match(digits);
		if (digitarray != null) {
			fsize_ratio = (parseInt(digitarray[0])/parseInt(digitarray[1]));
		} else {
			fsize_ratio = null;
		}
		
		if ((fsize_ratio >= 3 ) || (fsize_ratio == null )) {
			shape = "oblong";
			var regnum1 = document.getElementById('regnum1');
			var regnum2 = document.getElementById('regnum2');
			if ((regnum1.value != '') && (regnum2.value != '') && (regnum1.value != ' ') && (regnum2.value != ' ')) {
				var newRegnum = regnum1.value + " " + regnum2.value;
				regnum1.value = newRegnum;
				regnum2.value = '';
			}
			rearnum1.value = regnum1.value;
			rearnum2.value = '';
			setVisibility('frontsquare', 'hidden');
			setDisplay('frontsquare', 'none');
			setVisibility('frontplate', 'visible');
			setDisplay('frontplate', 'block');
			setVisibility('frontline1', 'hidden');
			setVisibility('frontline2', 'hidden');
			setVisibility('regnum2', 'hidden');
			document.getElementById('regnum2').disabled = true;
			document.getElementById('frontone').disabled = true;
		} else if (fsize_ratio < 3 ) {
			shape = "square";
			var regnum1 = document.getElementById('regnum1');
			var regnum2 = document.getElementById('regnum2');
			var regnum1Value = regnum1.value;
			var regnum_index = regnum1Value.indexOf(' ');
			if (regnum_index != '-1') {
				regnum1.value = regnum1Value.substring(0,(regnum_index));
				regnum2.value = regnum1Value.substring(regnum_index+1);
			}
			rearnum1.value = regnum1.value + " " + regnum2.value;
			rearnum2.value = '';
			setVisibility('frontplate', 'hidden');
			setDisplay('frontplate', 'none');
			setVisibility('frontsquare', 'visible');
			setDisplay('frontsquare', 'block');
			setVisibility('frontline1', 'visible');
			setVisibility('frontline2', 'visible');
			setVisibility('regnum2', 'visible');
			document.getElementById('regnum2').disabled = false;
			document.getElementById('frontone').disabled = false;
			var rnum = document.getElementById("regnum1");
			var rnum2 = document.getElementById("regnum2");
			var rnum_value = rnum.value;
			var rnum2_value = rnum2.value;
			if ((rnum_value.length + rnum2_value.length) > 5) {
				document.getElementById('frontone').disabled = true;
			} else if ((rnum_value.length + rnum2_value.length) < 6) {
				document.getElementById('frontone').disabled = false;
			}
		} 
	}
	if (document.getElementById("frontplate")) {updateregnum("frontplate");}
	if (document.getElementById("frontsquare")) {updatesquarenum("frontsquare");}
		
	return;
}

function rsize() {
	if (document.getElementById('rearsize') != null) {
		price();
		var rearsize_value = "Standard UK Car Oblong 20½\" x 4 3/8\" - 520mm x 111mm"
		if (document.getElementById('rearsize')) {
		var rearsize_index = document.getElementById('rearsize').selectedIndex;
		}
		if (rearsize_index) {
		rearsize_value = document.getElementById('rearsize').options[rearsize_index].text;
		}
		digits = /\d{2,3}[m]{2}/g;
		digitarray = rearsize_value.match(digits);
		if (digitarray != null) {
			rsize_ratio = (parseInt(digitarray[0])/parseInt(digitarray[1]));
		} else {
			rsize_ratio = null;
		}		
		if ((rsize_ratio >= 3 ) || (rsize_ratio == null ))  {
			shape = "oblong";
			var rearnum1 = document.getElementById('rearnum1');
			var rearnum2 = document.getElementById('rearnum2');
			if ((rearnum1.value != '') && (rearnum2.value != '') && (rearnum1.value != ' ') && (rearnum2.value != ' ')) {
				var newRegnum = rearnum1.value + " " + rearnum2.value;
				rearnum1.value = newRegnum;
				rearnum2.value = '';
			}
			setVisibility('rearsquare', 'hidden');
			setDisplay('rearsquare', 'none');
			setVisibility('rearplate', 'visible');
			setDisplay('rearplate', 'block');
			setVisibility('rearline1', 'hidden');
			setVisibility('rearline2', 'hidden');
			setVisibility('rearnum2', 'hidden');
			document.getElementById('rearnum2').disabled = true;
			document.getElementById('rearone').disabled = true;
		} else {
			shape = "square";
			var rearnum1 = document.getElementById('rearnum1');
			var rearnum2 = document.getElementById('rearnum2');
			var rearnum1Value = rearnum1.value;
			var rearnum_index = rearnum1Value.indexOf(' ');
			if (rearnum_index != '-1') {
				rearnum1.value = rearnum1Value.substring(0,(rearnum_index));
				rearnum2.value = rearnum1Value.substring(rearnum_index+1);
			}
			setVisibility('rearplate', 'hidden');
			setDisplay('rearplate', 'none');
			setVisibility('rearsquare', 'visible');
			setDisplay('rearsquare', 'block');
			setVisibility('rearline1', 'visible');
			setVisibility('rearline2', 'visible');
			setVisibility('rearnum2', 'visible');
			document.getElementById('rearnum2').disabled = false;
			document.getElementById('rearone').disabled = false;
		}
	}
	if (document.getElementById("rearplate")) {updateregnum("rearplate");}
	if (document.getElementById("rearsquare")) {updatesquarenum("rearsquare");}
	return;
}

function price() {
	if (document.getElementById('font') != null) {
		var totalPrice = 0.00;
		if (document.getElementById("hiddenfrontprice")) {
		var frontPriceHidden = document.getElementById("hiddenfrontprice");
		var frontPriceValue = frontPriceHidden.value;
		var frontPriceArray = frontPriceValue.split(",");
		if (!document.getElementById("frontsize")) {
			return false
		} else {
		var frontsizeHidden = document.getElementById("frontsize");	
		frontsize_index = frontsizeHidden.selectedIndex;
		frontsizeHidden_value = frontsizeHidden.options[frontsize_index].value;
		//alert (overArray.length);
		for (var i=0; i<(frontPriceArray.length); i++) {		
			var pipe = frontPriceArray[i].split("|");		
			if (frontsizeHidden_value == pipe[0]) {
				var fprice = pipe[1];
				totalPrice = totalPrice + parseFloat(pipe[1]);
			}
		}	
		}
		}
		
		if (document.getElementById("hiddenrearprice")) {
		var rearPriceHidden = document.getElementById("hiddenrearprice");
		var rearPriceValue = rearPriceHidden.value;
		var rearPriceArray = rearPriceValue.split(",");
		if (!document.getElementById("rearsize")) {
			return false
		} else {
		var rearsizeHidden = document.getElementById("rearsize");	
		rearsize_index = rearsizeHidden.selectedIndex;
		rearsizeHidden_value = rearsizeHidden.options[rearsize_index].value;
		//alert (overArray.length);
		for (var i=0; i<(rearPriceArray.length); i++) {		
			var pipe2 = rearPriceArray[i].split("|");		
			if (rearsizeHidden_value == pipe2[0]) {
				var rprice = pipe2[1];
				totalPrice = totalPrice + parseFloat(pipe2[1]);
			}
		}	
		}
		}
		
		var platenoHidden = document.getElementById("plateno");
		var platenoValue = platenoHidden.value;
		var addHidden = document.getElementById("add");
		var addValue = addHidden.value;
		var addstyleHidden = document.getElementById("addstyle");
		var addstyleValue = addstyleHidden.value;
		
		if ((addValue == 'Y') && (addstyleValue == 'cheap')) {
			var addnoHidden = document.getElementById("addnumber");	
			addnoHidden_index = addnoHidden.selectedIndex;
			addnoHidden_value = addnoHidden.options[addnoHidden_index].value;
			if (addnoHidden_value == '0') { platenoValue = parseInt(platenoValue) - 1; }
			else if (addnoHidden_value == '1') { platenoValue = parseInt(platenoValue) - 1; }
			else if (addnoHidden_value == '2') { platenoValue = parseInt(platenoValue) -1; }
			else if (addnoHidden_value == '3') { platenoValue = parseInt(platenoValue) -1; }
			else if (addnoHidden_value == '4') { platenoValue = parseInt(platenoValue) -1; }
			totalPrice = (totalPrice + (parseFloat(rprice)*parseInt(addnoHidden_value)));
		} 
		
		if ((addValue == 'Y') && (addstyleValue == 'same')) {
			var addnoHidden = document.getElementById("addnumber");	
			addnoHidden_index = addnoHidden.selectedIndex;
			addnoHidden_value = addnoHidden.options[addnoHidden_index].value;
			if (addnoHidden_value == '0') { platenoValue = parseInt(platenoValue) - 1; }
			else if (addnoHidden_value == '1') { platenoValue = parseInt(platenoValue); }
			else if (addnoHidden_value == '2') { platenoValue = parseInt(platenoValue) + 1; }
			else if (addnoHidden_value == '3') { platenoValue = parseInt(platenoValue) + 2; }
			else if (addnoHidden_value == '4') { platenoValue = parseInt(platenoValue) + 3; }
			totalPrice = (totalPrice + (parseFloat(rprice)*(platenoValue-2)));
		} 
		
		if (document.getElementById("slogan")) {
			var slogan = document.getElementById("slogan");
			var sloganValue = slogan.value;
			regexSlogan = /\w{2,}/;			
			if (sloganValue.match(regexSlogan)) {
				totalPrice = (totalPrice + (platenoValue * 1.25));
			}
		}
		
		if (document.getElementById("badgefront")) {
			var badge = document.getElementById("badgefront");
			badge_index = badge.selectedIndex;
			badge_value = badge.options[badge_index].value;					
			if (badge_value != '0') {
				totalPrice = (totalPrice + (platenoValue * 2.50));
			}
		}
		
		if (document.getElementById("border")) {
			var border = document.getElementById("border");
			border_index = border.selectedIndex;
			border_value = border.options[border_index].value;					
			if (border_value != '0') {
				totalPrice = (totalPrice + (platenoValue * 1.25));
			}
		}
		
		if (document.getElementById("honeycomb")) {
			var honeycomb = document.getElementById("honeycomb");
			honeycomb_value = getCheckedValue(honeycomb);						
			if (honeycomb_value == 'honeyY') {
				totalPrice = (totalPrice + (platenoValue * 2.00));
			}
		}
		
		var fontType = document.getElementById("font");
		fontType_index = fontType.selectedIndex;
		fontType_value = fontType.options[fontType_index].text;
		f = fontType_value;
		regexPlain = /Pla.*/;
		regex3D = /3.*/;
		if (f.match(regexPlain)) {
			totalPrice = totalPrice;
		} else if (f.match(regex3D)) {
			totalPrice = (totalPrice + (platenoValue * 2.00));
		} else {
			totalPrice = (totalPrice + (platenoValue * 4.00));
		}
		
		var artvalue = document.getElementById('checkart').checked;
		if (artvalue == true) {
			totalPrice = (totalPrice + 8.00);
		}
		
		var priceLabel = document.getElementById("price");
		if (totalPrice.toFixed) { //if browser supports toFixed() method
			totalPrice = totalPrice.toFixed(2)
		}	
		priceLabel.innerHTML = "£" + totalPrice;
	}
	return;
}
