
		var lists = new Array();

		lists[''] = new Array ('');
		lists['A'] = new Array ('','1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20');
		lists['B'] = new Array ('','1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20');
		lists['C'] = new Array ('','1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20');
		lists['D'] = new Array ('','1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20');
		lists['E'] = new Array ('','1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20');
		lists['G'] = new Array ('','1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20');
		lists['H'] = new Array ('','1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20');
		lists['J'] = new Array ('','1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','22','30','33','40','44','50','55','60','66','70','77','80','88','90','99','100','111','200','222','300','333','400','444','500','555','600','666','700','777','800','888','900','999');
		lists['K'] = new Array ('','1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','22','30','33','40','44','50','55','60','66','70','77','80','88','90','99','100','111','155','200','222','300','333','400','444','500','555','600','666','700','777','800','888','900','999');
		lists['L'] = new Array ('','1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','22','30','33','40','44','50','55','60','66','70','77','80','88','90','99','100','111','200','222','300','333','400','444','500','555','600','666','700','777','800','888','900','999');
		lists['M'] = new Array ('','1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','22','30','33','40','44','50','55','60','66','70','77','80','88','90','99','100','111','155','200','222','300','333','400','444','500','555','600','666','700','777','800','888','900','999');
		lists['N'] = new Array ('','1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','22','30','33','40','44','50','55','60','66','70','77','80','88','90','99','100','111','200','222','300','333','400','444','500','555','600','666','700','777','800','888','900','999');
		lists['P'] = new Array ('','1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','22','30','33','40','44','50','55','60','66','70','77','80','88','90','99','100','111','200','222','300','333','400','444','500','555','600','666','700','777','800','888','900','999');
		lists['R'] = new Array ('','1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','22','30','33','40','44','50','55','60','66','70','77','80','88','90','99','100','111','200','222','300','333','400','444','500','555','600','666','700','777','800','888','900','999');
		lists['S'] = new Array ('','1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31','33','40','44','50','55','60','66','70','77','80','88','90','99','100','111','121','123','200','222','300','321','333','400','444','500','555','600','666','700','777','800','888','900','999');
		lists['T'] = new Array ('','1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31','33','40','44','50','55','60','66','70','77','80','88','90','99','100','111','121','123','200','222','300','321','333','400','444','500','555','600','666','700','777','800','888','900','999');
		lists['V'] = new Array ('','1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31','33','40','44','50','55','60','66','70','77','80','88','90','99','100','111','121','123','200','222','300','321','333','400','444','500','555','600','666','700','777','800','888','900','999');
		lists['W'] = new Array ('','1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31','33','40','44','50','55','60','66','70','77','80','88','90','99','100','111','121','123','200','222','300','321','333','400','444','500','555','600','666','700','777','800','888','900','999');
		lists['X'] = new Array ('','1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31','33','40','44','50','55','60','66','70','77','80','88','90','99','100','111','121','123','200','222','300','321','333','400','444','500','555','600','666','700','777','800','888','900','999');
		lists['Y'] = new Array ('','1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31','33','40','44','50','55','60','66','70','77','80','88','90','99','100','111','121','123','200','222','300','321','333','400','444','500','555','600','666','700','777','800','888','900','999');

		// Adds window load events safely
		function winAddLoadEvent (func) {
			var oldonload = window.onload;
			if (typeof window.onload != 'function') {
				window.onload = func;
			}
			else {
				window.onload = function () {
					oldonload ();
					func ();
				}
			}
		}


		/* stop scroller when window is closed */
		window.onunload=function() {
			clearInterval(dn_interval);
		}

		// Add our load events
		winAddLoadEvent (initialiseForms);
		winAddLoadEvent (initDOMnews);

		// Hijaxes and prepares the forms (disables buttons, and gets ready for user changes to the select/input boxes)

		function initialiseForms() {
			if (!document.body || !document.getElementById || !document.getElementsByTagName) return false;

			if (document.getElementById('makeaplate_search')) toggleButton(1, document.getElementById('makeaplate_search') );
			if (document.getElementById('newstyle_search')) toggleButton(1, document.getElementById('newstyle_search') );

			// There's a bug in Forefox's autocomplete, so we need to turn it off for these two elements

			if (document.getElementById('makeaplate_step1')) {
				document.getElementById('makeaplate_step3').setAttribute('autocomplete','off');
				document.getElementById('makeaplate_step1').onchange = function () { changeList ('makeaplate'); refreshPlate('makeaplate','lw'); };
				document.getElementById('makeaplate_step2').onchange = function () { refreshPlate('makeaplate','lw'); };
				document.getElementById('makeaplate_step3').onkeyup = function () { validateUserInput(this); refreshPlate('makeaplate','lw'); };
			}

			if (document.getElementById('newstyle_step1')) {
				document.getElementById('newstyle_step3').setAttribute('autocomplete','off');
				document.getElementById('newstyle_step1').onchange = function () { refreshPlate('newstyle','ly'); };
				document.getElementById('newstyle_step2').onchange = function () { refreshPlate('newstyle','ly'); };
				document.getElementById('newstyle_step3').onkeyup = function () { validateUserInput(this); refreshPlate('newstyle','ly'); };
			}

			if (document.getElementById('searchelement')) {
				document.getElementById('searchelement').onfocus = function () { this.value = ''; this.style.textTransform = 'uppercase'; }
			}

			if (document.getElementById('acrylictype_standard') && document.getElementById('acrylictype_coachline') ) {

				if (document.getElementById('acrylictype_coachline').checked) {
					toggleBorderOptions(1);
				}
				else if (document.getElementById('acrylictype_standard').checked) {
					toggleBorderOptions(2);
				}

				document.getElementById('acrylictype_coachline').onclick = function () { toggleBorderOptions(1); }
				document.getElementById('acrylictype_standard').onclick = function () { toggleBorderOptions(2); }
			}

			// Check acrylictype_none exists - it might not if this is an acrylic plate order only
			if (document.getElementById('acrylictype_none')) {
				document.getElementById('acrylictype_none').onclick = function () { toggleBorderOptions(3); }

				if (document.getElementById('acrylictype_none').checked) {
					toggleBorderOptions(3);
				}
			}

			if (!document.body.childNodes || !document.body.parentNode) return false;

			hideAllDD(); // Hide all DD elements

			dt = document.getElementsByTagName('dt');

			for (var i = 0; i < dd.length; i++) {
				dt[i].childNodes[0].onclick = function() { hideAllDD(); showDD(this); return false;  }
			}
		}

		// Enabled / disabled acrylic plate border options

		function toggleBorderOptions(acrylicplates) {
			if (acrylicplates == 1) {
				document.getElementById('borders').style.display = 'block';
				document.getElementById('flags').style.display = 'block';
			}
			else if (acrylicplates == 2) {
				document.getElementById('borders').style.display = 'none';
				document.getElementById('flags').style.display = 'block';
			}
			else {
				document.getElementById('borders').style.display = 'none';
				document.getElementById('flags').style.display = 'none';
			}
		}

		// Shows a DD element when the user clicks on the corresponding DT element

		function showDD(mydd) {
			var n = mydd.parentNode;
			do n = n.nextSibling; 
			while (n && n.nodeType != 1);
			n.className = 'open';
		}

		// Hide all DD elements

		function hideAllDD() {
			dd = document.getElementsByTagName('dd');
			for (var i = 0; i < dd.length; i++) {
				dd[i].className = 'closed';
			}
		}

		// Empties list box number 2 and text field number 3, and re-populates list box 2 according to what you select in list box 1

		function changeList(myform) {
			var populatebox;
			var myselection;

			var step1 = document.getElementById(myform + '_step1');
			var step2 = document.getElementById(myform + '_step2');
			var step3 = document.getElementById(myform + '_step3');


			myselection = step1.options[step1.selectedIndex].text;
			//if (!myselection) { myselection = ' '; }
			emptyList( step2 );
			emptyList( step3 );
			fillList( step2, lists[myselection] );
		}

		// Clear all options from a list box, or remove all text from an input field

		function emptyList( box ) {
			if (box.options) {
				box.options.length = 0;
			}
			else if (box.value) {
				box.value = '';
			}
		}

		// Fill a list box with options

		function fillList( box, arr ) {

			for ( i = 0; i < arr.length; i++ ) {
				option = new Option( arr[i], arr[i] );
				box.options[box.length] = option;
			}
			box.selectedIndex=0;
		}

		// Refresh our number plate div (remove child images and add new child images) and enable/disable search buttons accordingly

		function refreshPlate(area,imagepath) {

			if (!document.getElementById || !document.images) return false;

			var step1 = document.getElementById(area + '_step1');
			var step2 = document.getElementById(area + '_step2');
			var step3 = document.getElementById(area + '_step3');
			var searchbutton = document.getElementById(area + '_search');

			var myplate = step1.options[step1.selectedIndex].text + step2.options[step2.selectedIndex].text + '+' + step3.value;

			//populatePlate(area,myplate,imagepath);

			if (step1[step1.selectedIndex].text && step2.options[step2.selectedIndex].text && step3.value.length == 3) {
				document.getElementById('plate_' + area).src = 'http://www.r4v.co.uk/plate.php?b=' + imagepath + '&p=' + myplate;
				toggleButton(0,searchbutton);
			}
			else if (searchbutton.disabled == false) { // getAttribute function for "disabled" does not work so do it this way
				document.getElementById('plate_' + area).src = 'http://www.r4v.co.uk/plates.php?b=' + imagepath + '&p=' + '___';
				toggleButton(1,searchbutton);
			}
		}

		// Disable or enable a search button

		function toggleButton(disable,searchbutton) {

			if (disable) {
				searchbutton.setAttribute("src","/images/buttons/search_small_disabled.gif");
				searchbutton.disabled=true; // Set attribute method doesn't seem to renable in FF, so do it this way
			}
			else {
				searchbutton.setAttribute("src","/images/buttons/search_small.gif");
				searchbutton.disabled=false;
			}
		}

		// Validate user input and remove anything that's not A-Z

		function validateUserInput(mystring) {

			var tempstring = '';

			for (var i = 0; i < mystring.value.length; i++) {
				var mychar = mystring.value.charAt(i);
				var mycode = mystring.value.toUpperCase().charCodeAt(i);

				if (mycode >= 65 && mycode <= 90) {
					tempstring = tempstring + mychar;
				}
			}

			// Ask the question, to prevent the cursor from jumping

			if (mystring.value != tempstring) {
				mystring.value = tempstring;
			}
		}








/*
	DOMnews 1.0 
	homepage: http://www.onlinetools.org/tools/domnews/
	released 11.07.05
*/

/* Variables, go nuts changing those! */
	// initial position 
	var dn_startpos=120; 			
	// end position
	var dn_endpos=-2100; 			
	// Speed of scroller higher number = slower scroller 
	var dn_speed=35;				
	// ID of the news box
	var dn_newsID='news';			
	// class to add when JS is available
	var dn_classAdd='hasJS';		
	// Message to stop scroller
	var dn_stopMessage='';	
	// ID of the generated paragraph
	var dn_paraID='DOMnewsstopper';



/*
	This is the functional bit, do not press any buttons or flick any switches
	without knowing what you are doing!
*/

	var dn_scrollpos=dn_startpos;
	var dn_interval;
	/* Initialise scroller */
	function initDOMnews()
	{

		if(!document.getElementById || !document.createTextNode){return;}

		var n=document.getElementById(dn_newsID);
		if(!n){return;}
		n.className=dn_classAdd;
		dn_interval=setInterval('scrollDOMnews()',dn_speed);
		var newa=document.createElement('a');
		var newp=document.createElement('p');
		newp.setAttribute('id',dn_paraID);
		newa.href='#';
		newa.appendChild(document.createTextNode(dn_stopMessage));
		newa.onclick=stopDOMnews;
		newp.appendChild(newa);
		n.parentNode.insertBefore(newp,n.nextSibling);
		n.onmouseover=function()
		{		
			clearInterval(dn_interval);
		}
		n.onmouseout=function()
		{
			dn_interval=setInterval('scrollDOMnews()',dn_speed);
		}
	}

	function stopDOMnews()
	{
		clearInterval(dn_interval);
		var n=document.getElementById('news');
		n.className='';
		n.parentNode.removeChild(n.nextSibling);
		return false;
	}
	function scrollDOMnews()
	{
		var n=document.getElementById(dn_newsID).getElementsByTagName('ul')[0];
		n.style.top=dn_scrollpos+'px';	
		if(dn_scrollpos==dn_endpos){dn_scrollpos=dn_startpos;}
		dn_scrollpos--;	
	}




