function createRequestObject(){
	var request_o; //declare the variable to hold the object.
	var browser = navigator.appName; //find the browser name
	if(browser == "Microsoft Internet Explorer"){ 
		/* Create the object using MSIE's method */
		request_o = new ActiveXObject("Microsoft.XMLHTTP");
	}else{
		/* Create the object using other browser's method */
		request_o = new XMLHttpRequest();
	}
	return request_o; //return the object
}

/* You can get more specific with version information by using 
	parseInt(navigator.appVersion)
	Which will extract an integer value containing the version 
	of the browser being used.
*/

/* The variable http will hold our new XMLHttpRequest object. */
var xmlHttp = createRequestObject(); 


function changeState(element,key) {
	img=document.getElementById('img_'+element+'_'+key);
	item=EVAL('value_'+element+'['+key+']');
	state=1;
	switch (state) {
		case '1' :
		img.src="/images/checkbox/7.gif";
		break;
		default :
		img.src="/images/checkbox/7.gif";
	}		
}

	var	disableOnClick=false;

function CheckBoxGroup (name,init,type) {
	
	var	name;
	var checkboxs;
	var	init;
	var current;
	var count=0;
	this.name=name;
	this.init=init;
	this.type=type;
	this.checkboxs=new Array();
	this.count=0;
	element=document.getElementById(this.name); //get the associated hidden data field
	this.init=element.value;
	var showDemo = 1;
	
this.addBox = function(name) {
		if (this.init==name && this.type=='single'  ) {
			cb=new CheckBox(name,1,this.type);
		} else if ( this.type=='single') {
			cb=new CheckBox(name,0,this.type);
		} else {
			cb=new CheckBox(name,this.init,this.type);			
		}
		
		this.checkboxs[this.count]=cb;
		this.count++;
		img=document.getElementById('img_'+this.name+'_'+name); //get the associated images
		if(cb.current==1&&(name=='627'||name=='628'))
		{
			this.showDemo = 0;
		}//End if
		
		if(this.name=='categoryid' && (name=='5481' || name=='5462')){
			img.src='/images/checkbox/13.gif'
		} else {
			img.src=cb.displayState(this.type);
		}
}

this.onClick= function (name,img) {
		//alert(img.id);
		
		if (this.type=='single') {
			if (disableOnClick) {
				alert ('Changes to registration type are not allowed on confirmed bookings');
				return false;
			}
			element=document.getElementById(this.name); //get the associated hidden data field					

			for(i=0;i<this.checkboxs.length;i++){
				cb=this.checkboxs[i];
				if (cb.getName()==name) {
					image=document.getElementById('img_'+this.name+'_'+cb.getName()); //get the associated hidden image
					image.src=cb.toggleState();
					element.value=name;
				} 
				else {
					image=document.getElementById('img_'+this.name+'_'+cb.getName()); //get the associated hidden image
					image.src=cb.setState(0);
				}
			} //for loop
		} 
		else {
			this.current='';
			for(i=0;i<this.checkboxs.length;i++){
				cb=this.checkboxs[i];
				if (cb.getName()==name) {
					img.src=cb.toggleState();
				} //endif
				this.current=this.current+cb.Encode();
			} //for loop
			element=document.getElementById(this.name); //get the associated hidden data field
			element.value=this.current;
		}
		
		doPrice();
		
		evaluateForm();
}
	
this.Clear = function() {
		var result;
		result=false;
		this.current='';
		for(i=0;i<this.checkboxs.length;i++) {
			cb=this.checkboxs[i];
			image=document.getElementById('img_'+this.name+'_'+cb.getName()); //get the associated hidden image
			image.src=cb.setState(0);
		} //for loop
		element=document.getElementById(this.name); //get the associated hidden data field
		element.value=this.current;
		return result;
}
	
this.exportState =function() {
		for(i=0;i<this.checkboxs.length;i++){
			cb=this.checkboxs[i];
		} //for loop
		return this.current;
}

this.isAnySelected =function () {
		var result;
		result=false;
		for(i=0;i<this.checkboxs.length;i++) {
			cb=this.checkboxs[i];
			if (cb.isSelected()) { result=true; }
		} //for loop
		return result;
}
	
this.getState = function(name) {
	return this.current;
}	


}  // end onject/function checkbok group



function setElementValue(name,value) {
		if (element=document.getElementById(name)) { //get the associated hidden data field
			element.value=value;
			return true;
		}
			return false;
}

function CheckBox (name,data,type) {
	
	var name;
	var	init=null;
	var	current=null;
	this.name=name;
	if ((data !='') && type !='single') {
		zero=data.indexOf('<'+this.name+'0'+this.name+'>');
		one=data.indexOf('<'+this.name+'1'+this.name+'>');
		if (zero>=0) {
			this.init=0;
		} else if (one>=0) {
			this.init=1;
		}
		this.current=this.init;
	}
	if ((data !='') && type =='single') {
		if (data=='1') {
			this.init=1;
		} else {
			this.init=0;
		}	
		this.current=this.init;
	}

this.Decode =function(data) {
	//return this.current;
}
this.isSelected =function() {
	return this.current;
}
	
this.getName = function() {
	return this.name;
}	

this.Encode=function() {
	if (this.current==null) this.current=0;
	return '<'+cb.getName()+''+this.current+''+cb.getName()+'>'
}	
this.toggleState=function() {
	if (this.current==1) {
		this.current=0;
	} else {
		this.current=1;		
	}
	return this.displayState();
}

this.setState= function(state) {
		this.current=state;
		return this.displayState();
}
this.displayState=function() {
	if (this.init==null) {
		if (this.current==1) {
		 	return "/images/checkbox/2.gif";
		} else {
		 	return "/images/checkbox/1.gif";			
		}	 			
	} else if (this.current==this.init) {
		// basic image on or off
		if (this.current==1) {
		 	return "/images/checkbox/2.gif";
		} else {
		 	return "/images/checkbox/1.gif";			
		}
	} else { // state has changed show current state but with a red border
		if (this.current==1) {
		 	return "/images/checkbox/7.gif";
		} else {
		 	return "/images/checkbox/10.gif";			
		}
	}
}
		
		} // end checkbox



function fillcombos(form) {
}
// this function should be called whenever the form is be be evaluated dynamically

function evaluateForm() {
	var item;
	var value=0;
	formObj=document.frmRegForm;
	
	value=formObj.categoryid.value;
	if ( (value=='228') ) {  // Exhibition only
		viewState("SECTION_1A","none");
		viewState("SECTION_1B","none");
		viewState("SECTION_2A","block");
		viewState("SECTION_2B","block");
	} else {
		viewState("SECTION_1A","block");
		viewState("SECTION_1B","block");
		viewState("SECTION_2A","none");
		viewState("SECTION_2B","none");
	}
	item=level0[value];
	if (item) changehtml("morepricedetail",item["morepricedetail"]);
	if (false) {
		style=item["style"];
		if (item["p2"]=="") {
			setstyle("three");		
		} else {
			setstyle("one");		
		}
		changehtml("price1",item["p1"]);
		changehtml("price2",item["p2"]);
		changehtml("price3",item["p3"]);
		changehtml("price4",item["p4"]);
		changehtml("price5",item["p5"]);
		//changehtml("price6",item["p6"]);
		changehtml("price7",item["p7"]);
		//changehtml("price7",item["p7"]);
		viewState("D1",true);
		viewState("D2",false);
	}

	/*if(cbg_categoryid.showDemo == 0)
	{
		document.getElementById('demoA').style.display='none';
		document.getElementById('demoB').style.display='none';
	}
	else
	{
		document.getElementById('demoA').style.display='none';
		document.getElementById('demoB').style.display='none';
	}//End if*/
}

function changehtml(idname,text) {
	//
	if (element=document.getElementById(idname)) {
		if (text=="0") {
			element.innerHTML = "FREE";		
		} else if (text=="") {
			element.innerHTML = "NA";				
		} else {
			element.innerHTML = text;
		}
	}
}

function buttonSubmit(button,formObj,result) {
	if (result===true) {
		button.innerHTML ='Please Wait...';
		button.disabled=true;
		formObj.submit();
	} else {
		//alert ('result of validation not true')	
	}
}

function setstyle(days) {

	switch (days) {
		case 'three':
			form.oneday.checked = false;		
			form.oneday.disabled = true;		
			form.threeday.checked = true;		
			form.threeday.disabled = true;		
			form.day1.checked = true;		
			form.day1.disabled = true;		
			form.day2.checked = true;		
			form.day2.disabled = true;		
			form.day3.checked = true;		
			form.day3.disabled = true;		
		
		break;
		default:
			form.oneday.disabled = false;		
			form.threeday.disabled = false;		
			form.day1.disabled = false;		
			form.day2.disabled = false;		
			form.day3.disabled = false;		
		break;
	}

}

function Selectable (name,checked) {
	this.name=name;
	this.checked=checked;
}

function viewState (childname,state) {
   	if (element = document.getElementById(childname)) {
 	    element.style.display = state;
   	}
}


Selectable.prototype.IsSelected = function() {
	return this.selected;	
}

var day1 = new Selectable('day1',false);
var day2 = new Selectable('day2',false);
var day3 = new Selectable('day3',false);
var oneday = new Selectable('oneday',false);
var threeday = new Selectable('threeday',false);




// generic isvalid function changes use based on name of form
// use framework for all formsbased on name of form

function isFormValid(formObj,eventnumber) {
	var prompt ="";
	switch (formObj.name) {
		case 'frmRegForm' :
			prompt=validateRegForm(formObj,eventnumber);
		break;
		case 'frmCheckout' :
			prompt=validateCheckoutForm(formObj,eventnumber);
		break;
		case 'frmHotelCheckout' :
			prompt=validateHotelCheckoutForm(formObj,eventnumber);
		break;
		case 'frmUnlock' :
			prompt=validateUnlockForm(formObj,eventnumber);
		break;
		case 'frmStatementAddress' :
			prompt=validateStatementAddress(formObj,eventnumber);
		break;	
		default :
			prompt= 'function to validate form not found, proceed? '+formObj.name;
		break	
	} // switch
	if (prompt) {
		alert(convertChars(prompt));
		return false;
	} else {
		if (eventnumber != "" ) formObj.event.value=eventnumber; // set the exit event
		return true;
	}

}


function validateStatementAddress (formObj,eventnumber) {
		var prompt="";
	if (element=document.getElementById('StatementAddressSection1')) {
		element.value="1";  //enable this section during save
		if ( formObj.title.value =="" ) prompt=prompt +"Title is a required field"+"\n";
		if ( formObj.firstname.value =="" ) prompt=prompt +"First name is a required field"+"\n";
		if ( formObj.lastname.value =="" ) prompt=prompt +"Last name is a required field"+"\n";
		if ( formObj.phone1.value =="" ) prompt=prompt +"Telephone is a required field"+"\n";
		if ( formObj.email.value =="" ) prompt=prompt +"E-mail address is a required field"+"\n";
		if ( !validateemail(formObj.email.value) ) prompt=prompt +"E-mail address is not a valid E-mail address format"+"\n";
		if ( formObj.company.value =="" ) prompt=prompt +"Company name is a required field"+"\n";
		if ( formObj.address1.value =="" ) prompt=prompt +"Address is a required field"+"\n";
		if ( formObj.city.value =="" ) prompt=prompt +"City is a required field"+"\n";
		if ( formObj.postcode.value =="" ) prompt=prompt +"Postal code is a required field"+"\n";
		if ( formObj.countryname.options[formObj.countryname.selectedIndex].value=="" ) prompt=prompt +"Country is a required field"+"\n";
		return prompt;
	}
	if ( (element=document.getElementById('StatementAddressSection2'))  ) {
		//if  (!(formObj.firstname_1.value+formObj.lastname_1.value+formObj.company_1.value+formObj.address1_1.value+formObj.city_1.value+formObj.postcode_1.value==""))  {
			element.value="1";  //enable this section during save
			if ( formObj.firstname_1.value =="" ) prompt=prompt +"Invoice first name is a required field"+"\n";
			if ( formObj.lastname_1.value =="" ) prompt=prompt +"Invoice last name is a required field"+"\n";
			if ( formObj.phone1_1.value =="" ) prompt=prompt +"Invoice telephone is a required field"+"\n";
//			if ( formObj.address3_1.value =="" ) prompt=prompt +"Invoice telephone  prefix is a required field"+"\n";
			if ( formObj.company_1.value =="" ) prompt=prompt +"Invoice company name is a required field"+"\n";
			if ( formObj.address1_1.value =="" ) prompt=prompt +"Invoice address is a required field"+"\n";
			if ( formObj.city_1.value =="" ) prompt=prompt +"Invoice city is a required field"+"\n";
			if ( formObj.postcode_1.value =="" ) prompt=prompt +"Invoice postcode is a required field"+"\n";
			if ( formObj.countryname_1.options[formObj.countryname_1.selectedIndex].value=="" ) prompt=prompt +"Invoice country is a required field"+"\n";
			if ( formObj.email_1.value =="" ) prompt=prompt +"Invoice email address is a required field"+"\n";
			if ( !validateemail(formObj.email_1.value) ) prompt=prompt +"Invoice email address is not a valid E-mail address format"+"\n";
		//} 
		//else {
		//	element.value="0";  //disable this section during save
		//}
	} 
	if ( (element=document.getElementById('StatementAddressSection3'))  ) {

		element.value="1";  //enable this section during save
		/*if  (!(formObj.address1_2.value+formObj.city_2.value+formObj.postcode_2.value+formObj.payDevice.value==""))  {
			prompt=validateCheckoutForm(formObj,eventnumber)
			if ( formObj.address1_2.value =="" ) prompt=prompt +"Card address is a required field"+"\n";
			if ( formObj.city_2.value =="" ) prompt=prompt +"Card city is a required field"+"\n";
			if ( formObj.postcode_2.value =="" ) prompt=prompt +"Card postal code is a required field"+"\n";
			if ( formObj.countryname_2.options[formObj.countryname_2.selectedIndex].value=="" ) prompt=prompt +"Card country is a required field"+"\n";
		} else {
			element.value="0";  //disable this section during save
		}*/
		element.value="0";
	} 
	return prompt;
}


function validateUnlockForm (formObj,eventnumber) {

	if ( (formObj.unlock.value=="") && (formObj.unlock.value.length!=5) )  return 'Enter a valid unlock Code';

}


	
	function isAnySessionSelected(item)  {
		var result;
		window.alert(item);
		result = item.indexOf(">1<"); // look for selected settions
		alert(result);
	}
	
	var bRTC = false;				
	var	bAllowCookies=false;
	function doTermsHotel(srcimage,state,terms) {
		if (terms!='') bigpopupwindow(terms,true);
		setCookie("bReadTC","Y");
		bRTC = state;

		return false;
	}	
	
	function doTerms(srcimage,state,terms) {
		element = document.getElementById("payType");
		if (terms!='') bigpopupwindow(terms,true);
		setCookie("bReadTC","Y");
		bRTC = state;
		if (state) {
			document.getElementById(srcimage).src = "/images/checkbox/7.gif";
		} else {
			document.getElementById(srcimage).src = "/images/checkbox/1.gif";		
		}
		return false;	
	} // doTerms
	
	function doTermsGuest(srcimage,state,terms) {
		
		if (terms!='') bigpopupwindow(terms+'guest',true);
		setCookie("bReadTC","Y");
		bRTC = state;
		if (state) {
			document.getElementById(srcimage).src = "/images/checkbox/7.gif";
		} else {
			document.getElementById(srcimage).src = "/images/checkbox/1.gif";		
		}
		return false;	
	} // doTerms
	
	function toggleHidden (childname) {
	    element = document.getElementById(childname);
	    element.style.display = (element.style.display == "none") ? "" : "none";
	}
	
	function validateReadTerms(frm,event) {	
		var prompt="";
		if (!bRTC) {
			prompt=prompt+ 'Please ensure you have read the Terms and Conditions'+"\n";
		}
		if (prompt) {
			alert(convertChars(prompt));
			return false;
		} else {
			return true;
		}
	}
	var	bCheckcv2;
	var bCheckcv2=1;
	function validateCheckoutForm(frm,event) {	
		var prompt="";
			
		if (frm.payType.value=="Cheque" || frm.payType.value=="EFT") {
			//if (frm.poNumber.value=='') {
				//return 'A reference or PO number must be specified'+"\n";
			//}
		}
		if (frm.payType.value=="Free") {
		}
		if (frm.payType.value=="MyCard") {
		}
		if (frm.payType.value=='CreditCard') {
			if (frm.payMethod.selectedIndex=='0') {
				 prompt=prompt+ 'A card type must be selected'+"\n" ;
			}
			now = new Date();		
			endDate = new Date(frm.endYear.options[frm.endYear.selectedIndex].value,frm.endMonth.options[frm.endMonth.selectedIndex].value);
			if (now > endDate) {
				prompt=prompt+ 'Credit card has expired'+"\n";
			}
			
			if (frm.cardName.value.length<2) {
				 prompt=prompt+ 'Credit card name not supplied'+"\n" ;
			}
			if ( bCheckcv2 && (frm.cv2.value.length<3) && (frm.payMethod.value!='swch')) {
				 prompt=prompt+ 'The security code is required'+"\n" ;
			}
			if ( (frm.postcode_2.value.length<3) ) {
				 prompt=prompt+ 'A cardholder address is required'+"\n" ;
			}
			
			if (frm.payMethod.value=='swch') {
				// validate switch stuff
				if (frm.issueNumber.value=='' || !isFinite(frm.issueNumber.value)) {
					 //prompt=prompt+ 'A SWITCH card requires a valid issue number'+"\n";
				}	
				startDate = new Date(frm.startYear.options[frm.startYear.selectedIndex].value,frm.startMonth.options[frm.startMonth.selectedIndex].value);
				if (startDate >= endDate) {
					 prompt=prompt+ 'SWITCH card requires a valid from date'+"\n";
				} // if				
			} // if switch
			if (!isValidCardNumber(frm.payDevice.value)) {
				 prompt=prompt+ 'Invalid credit card number (length and format)'+"\n";
			}		
		} // if creditcard
		return prompt;	

} // validateCheckoutForm	


function validateHotelCheckoutForm(frm,event) {	
		var prompt="";
			
		//Always a credit card
			
			if (frm.payMethod.selectedIndex=='0') {
				 prompt=prompt+ 'A card type must be selected'+"\n" ;
			}
			now = new Date();		
			endDate = new Date(frm.endYear.options[frm.endYear.selectedIndex].value,frm.endMonth.options[frm.endMonth.selectedIndex].value);
			if (now > endDate) {
				prompt=prompt+ 'Credit card has expired'+"\n";
			}
			
			if (frm.cardName.value.length<2) {
				 prompt=prompt+ 'Credit card name not supplied'+"\n" ;
			}
			
			if ( bCheckcv2 && (frm.cv2.value.length<3) && (frm.payMethod.value!='swch')) {
				 prompt=prompt+ 'The security code is required'+"\n" ;
			}
			
			
			if (frm.payMethod.value=='swch') {
				// validate switch stuff
				if (frm.issueNumber.value=='' || !isFinite(frm.issueNumber.value)) {
					 //prompt=prompt+ 'A SWITCH card requires a valid issue number'+"\n";
				}	
				startDate = new Date(frm.startYear.options[frm.startYear.selectedIndex].value,frm.startMonth.options[frm.startMonth.selectedIndex].value);
				if (startDate >= endDate) {
					 prompt=prompt+ 'SWITCH card requires a valid from date'+"\n";
				} // if				
			} // if switch
			
			if (!isValidCardNumber(frm.payDevice.value)) {
				 prompt=prompt+ 'Invalid credit card number (length and format)'+"\n";
				 
					}		
			
			/*var checked1=false; 
			for (var i = 0; i < frm.HOTEL_DECHAR2.length; i++ ) { 
				if (frm.HOTEL_DECHAR2[i].checked==true) { 
					checked1=true; 
				}   
			} 
			if(!checked1) prompt=prompt+ 'Please indicate your smoking preference'+"\n";
*/
		return prompt;	

} // validateHotelCheckoutForm

function copyCardholder(formObj,state) {

	if (state) {

		formObj.address1_2.value=document.myaddress.address1.value;
		formObj.address2_2.value=document.myaddress.address2.value;
		formObj.city_2.value=document.myaddress.city.value;
		formObj.county_2.value=document.myaddress.county.value;
		formObj.postcode_2.value=document.myaddress.postcode.value;
		CountryCombo(formObj.countryname_2,document.myaddress.countryname.value,'SHOW_AUTO');
		formObj.countryname_2.value=document.myaddress.countryname.value;

	} else {

		formObj.address1_2.value=document.cardholderaddress.address1.value;
		formObj.address2_2.value=document.cardholderaddress.address2.value;
		formObj.city_2.value=document.cardholderaddress.city.value;
		formObj.county_2.value=document.cardholderaddress.county.value;
		formObj.postcode_2.value=document.cardholderaddress.postcode.value;
		formObj.countryname_2.value=document.cardholderaddress.countryname.value;
	}

}

function doVoucher(cat,bEBavailable){
	// get out if no category selected
	if (cat=="") {
		alert('A ticket type must be selected before a voucher can be validated');
		return;				
	}
	
	if ($('voucher1').value=='') {
		alert('Please enter a voucher number');
		return;
	}
	
	// force upper case voucher or buggers up 'xmlResponse.getElementsByTagName' in voucherResults (don't know why!!)
	//vouchercode = $('voucher1').value.toUpperCase();
	vouchercode = $('voucher1').value;
	$('voucher1').value = vouchercode;
	
	// cannot use certain codes at certain times
	if (!bEBavailable && (vouchercode=="P0001")) {
		alert('This voucher is not yet available for use');
		return;
	}	
	//alert(vouchercode);
	// check member stuff
	xmlHttp.open('get', 'vouchercheck.php?cat='+cat+'&x='+new Date().getTime()+'&voucher=' + vouchercode);
	xmlHttp.onreadystatechange = 	function () {
																			if (xmlHttp.readyState==4) {
																				if (xmlHttp.status == 200)  { 
																					var xmlResponse = xmlHttp.responseXML;   

																					var status = xmlResponse.getElementsByTagName('status')[0].firstChild.data;
																					//alert(xmlResponse.getElementsByTagName('reachedcap')[0].firstChild.data);

																					if (status == 'invalid') {
																						alert(xmlResponse.getElementsByTagName('error')[0].firstChild.data + "\n\nIf you believe there is an issue please contact the Registration Office on 01252 771493.");
																					}
																					else if (xmlResponse.getElementsByTagName('reachedcap')[0].firstChild && xmlResponse.getElementsByTagName('reachedcap')[0].firstChild.data == '1' ) {
																						//alert("This voucher has been used a maximum number of times.\n\n If you believe there is an issue please contact the UKOUG Registration Office on 01252 771493.");
																					}
																					else if (cat>0 && xmlResponse.getElementsByTagName('couponcat')[0].firstChild && xmlResponse.getElementsByTagName('couponcat')[0].firstChild.data != cat) {
																						alert('This voucher cannot be used with this ticket');
																					}
																					else{
																						discountText='';
																						
																						if (vouchercode=="MS0001" && !bEBavailable) {
																							$('voucher1').disabled = true;
																							txValidate.innerHTML='<img src="../images/tick.gif">&nbsp;voucher valid';
																							txValidate.className='valid';
																							frmRegForm.voucherValid.value='Y';																								
																						}
																						else {
																						var spanPrice=document.getElementById('spanPrice');
																						var newPrice=document.getElementById('newPrice');
																						var txValidate=document.getElementById('txValidate');
																						var voucherInput=document.getElementById('voucherInput');
																						
																							// show discounted price if applicable																
																							if (xmlResponse.getElementsByTagName('discount')[0].firstChild.data > 0 || xmlResponse.getElementsByTagName('moneyoff')[0].firstChild.data > 0) {
																								currentPrice = spanPrice.innerHTML.substring(1,spanPrice.innerHTML.indexOf('&nbsp;'));
																								if (xmlResponse.getElementsByTagName('ispercentdiscount')[0].firstChild && xmlResponse.getElementsByTagName('ispercentdiscount')[0].firstChild.data=='1') {
																									// apply percentage discount
																									discount = 1 - (xmlResponse.getElementsByTagName('discount')[0].firstChild.data / 100);
																									discountedPrice = currentPrice*discount;				
																									discountText=' ('+xmlResponse.getElementsByTagName('discount')[0].firstChild.data+'% discount applied)';
																								}
																								else {
																									// apply 'money off' discount 
																									discount = xmlResponse.getElementsByTagName('moneyoff')[0].firstChild.data / 1.175; // ... (removing VAT)
																									//discount = xmlResponse.getElementsByTagName('moneyoff')[0].firstChild.data;
																									discountedPrice = Math.round((currentPrice - discount)*100)/100;	
																									discountText=' (discount applied)';
																								}

																								spanPrice.className='line-through';
																								spanPrice.disabled=true;
																								newPrice.innerHTML = '&nbsp;&pound;'+discountedPrice+'&nbsp;(+17.5% VAT = &pound;'+(Math.round((discountedPrice*1.175)*100)/100)+')';

																							}		

																							$('voucher1').disabled = true;
																							txValidate.innerHTML='<img src="../images/tick.gif">&nbsp;voucher valid'+discountText;
																							txValidate.className='valid';
																							document.frmRegForm.voucherValid.value='Y';			
																						}
																						// load up voucher stuff for request
																						$('voucher').value = xmlResponse.getElementsByTagName('voucher')[0].firstChild.data;
																						$('voucher_5107').value = xmlResponse.getElementsByTagName('voucher_5107')[0].firstChild.data;
																						$('couponid_5107').value = xmlResponse.getElementsByTagName('couponid_5107')[0].firstChild.data;
																						voucherInput.innerHTML='<input type="hidden" name="vouchernbr" value="'+xmlResponse.getElementsByTagName('vouchernbr')[0].firstChild.data+'">';
																						voucherInput.innerHTML+='<input type="hidden" name="digest" value="'+xmlResponse.getElementsByTagName('digest')[0].firstChild.data+'">';
																						voucherInput.innerHTML+='<input type="hidden" name="productid_5107" value="'+xmlResponse.getElementsByTagName('productid_5107')[0].firstChild.data+'">'
																						
																					}
																				}
																				else {
																					alert('Invalid response from database');
																				}
																			}
																		}; 
	xmlHttp.send(null);		
}
