// JScript source code
/**
 * SWFObject v1.4.1: Flash Player detection and embed - http://blog.deconcept.com/swfobject/
 *
 * SWFObject is (c) 2006 Geoff Stearns and is released under the MIT License:
 * http://www.opensource.org/licenses/mit-license.php
 *
 * **SWFObject is the SWF embed script formerly known as FlashObject. The name was changed for
 *   legal reasons.
 */
if(typeof deconcept=="undefined"){var deconcept=new Object();}
if(typeof deconcept.util=="undefined"){deconcept.util=new Object();}
if(typeof deconcept.SWFObjectUtil=="undefined"){deconcept.SWFObjectUtil=new Object();}
deconcept.SWFObject=function(_1,id,w,h,_5,c,_7,_8,_9,_a,_b){
if(!document.createElement||!document.getElementById){return;}
this.DETECT_KEY=_b?_b:"detectflash";
this.skipDetect=deconcept.util.getRequestParameter(this.DETECT_KEY);
this.params=new Object();
this.variables=new Object();
this.attributes=new Array();
if(_1){this.setAttribute("swf",_1);}
if(id){this.setAttribute("id",id);}
if(w){this.setAttribute("width",w);}
if(h){this.setAttribute("height",h);}
if(_5){this.setAttribute("version",new deconcept.PlayerVersion(_5.toString().split(".")));}
this.installedVer=deconcept.SWFObjectUtil.getPlayerVersion(this.getAttribute("version"),_7);
if(c){this.addParam("bgcolor",c);}
var q=_8?_8:"high";
this.addParam("quality",q);
this.setAttribute("useExpressInstall",_7);
this.setAttribute("doExpressInstall",false);
var _d=(_9)?_9:window.location;
this.setAttribute("xiRedirectUrl",_d);
this.setAttribute("redirectUrl","");
if(_a){this.setAttribute("redirectUrl",_a);}};
deconcept.SWFObject.prototype={setAttribute:function(_e,_f){
this.attributes[_e]=_f;
},getAttribute:function(_10){
return this.attributes[_10];
},addParam:function(_11,_12){
this.params[_11]=_12;
},getParams:function(){
return this.params;
},addVariable:function(_13,_14){
this.variables[_13]=_14;
},getVariable:function(_15){
return this.variables[_15];
},getVariables:function(){
return this.variables;
},getVariablePairs:function(){
var _16=new Array();
var key;
var _18=this.getVariables();
for(key in _18){_16.push(key+"="+_18[key]);}
return _16;
},getSWFHTML:function(){
var _19="";
if(navigator.plugins&&navigator.mimeTypes&&navigator.mimeTypes.length){
if(this.getAttribute("doExpressInstall")){this.addVariable("MMplayerType","PlugIn");}
_19="<embed type=\"application/x-shockwave-flash\" src=\""+this.getAttribute("swf")+"\" width=\""+this.getAttribute("width")+"\" height=\""+this.getAttribute("height")+"\"";
_19+=" id=\""+this.getAttribute("id")+"\" name=\""+this.getAttribute("id")+"\" ";
var _1a=this.getParams();
for(var key in _1a){_19+=[key]+"=\""+_1a[key]+"\" ";}
var _1c=this.getVariablePairs().join("&");
if(_1c.length>0){_19+="flashvars=\""+_1c+"\"";}
_19+="/>";}else{if(this.getAttribute("doExpressInstall")){this.addVariable("MMplayerType","ActiveX");}
_19="<object id=\""+this.getAttribute("id")+"\" classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" width=\""+this.getAttribute("width")+"\" height=\""+this.getAttribute("height")+"\">";
_19+="<param name=\"movie\" value=\""+this.getAttribute("swf")+"\" />";
var _1d=this.getParams();
for(var key in _1d){_19+="<param name=\""+key+"\" value=\""+_1d[key]+"\" />";}
var _1f=this.getVariablePairs().join("&");
if(_1f.length>0){_19+="<param name=\"flashvars\" value=\""+_1f+"\" />";}_19+="</object>";}
return _19;},write:function(_20){
if(this.getAttribute("useExpressInstall")){
var _21=new deconcept.PlayerVersion([6,0,65]);
if(this.installedVer.versionIsValid(_21)&&!this.installedVer.versionIsValid(this.getAttribute("version"))){
this.setAttribute("doExpressInstall",true);
this.addVariable("MMredirectURL",escape(this.getAttribute("xiRedirectUrl")));
document.title=document.title.slice(0,47)+" - Flash Player Installation";
this.addVariable("MMdoctitle",document.title);}}
if(this.skipDetect||this.getAttribute("doExpressInstall")||this.installedVer.versionIsValid(this.getAttribute("version"))){
var n=(typeof _20=="string")?document.getElementById(_20):_20;
n.innerHTML=this.getSWFHTML();return true;
}else{if(this.getAttribute("redirectUrl")!=""){document.location.replace(this.getAttribute("redirectUrl"));}}return false;}};
deconcept.SWFObjectUtil.getPlayerVersion=function(_23,_24){
var _25=new deconcept.PlayerVersion([0,0,0]);
if(navigator.plugins&&navigator.mimeTypes.length){
var x=navigator.plugins["Shockwave Flash"];
if(x&&x.description){_25=new deconcept.PlayerVersion(x.description.replace(/([a-z]|[A-Z]|\s)+/,"").replace(/(\s+r|\s+b[0-9]+)/,".").split("."));}
}else{try{var axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
for(var i=3;axo!=null;i++){axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash."+i);_25=new deconcept.PlayerVersion([i,0,0]);}}
catch(e){}
if(_23&&_25.major>_23.major){return _25;}
if(!_23||((_23.minor!=0||_23.rev!=0)&&_25.major==_23.major)||_25.major!=6||_24){
try{_25=new deconcept.PlayerVersion(axo.GetVariable("$version").split(" ")[1].split(","));}
catch(e){}}}return _25;};
deconcept.PlayerVersion=function(_29){
this.major=parseInt(_29[0])!=null?parseInt(_29[0]):0;
this.minor=parseInt(_29[1])||0;
this.rev=parseInt(_29[2])||0;};
deconcept.PlayerVersion.prototype.versionIsValid=function(fv){
if(this.major<fv.major){return false;}
if(this.major>fv.major){return true;}
if(this.minor<fv.minor){return false;}
if(this.minor>fv.minor){return true;}
if(this.rev<fv.rev){return false;}return true;};
deconcept.util={getRequestParameter:function(_2b){
var q=document.location.search||document.location.hash;
if(q){var _2d=q.indexOf(_2b+"=");
var _2e=(q.indexOf("&",_2d)>-1)?q.indexOf("&",_2d):q.length;
if(q.length>1&&_2d>-1){return q.substring(q.indexOf("=",_2d)+1,_2e);}}
return "";}};
deconcept.SWFObjectUtil.cleanupSWFs=function(){
var _2f=document.getElementsByTagName("OBJECT");
for(var i=0;i<_2f.length;i++){
for(var x in _2f[i]){if(typeof _2f[i][x]=="function"){_2f[i][x]=null;}}}};
if(typeof window.onunload=="function"){
var oldunload=window.onunload;
window.onunload=function(){deconcept.SWFObjectUtil.cleanupSWFs();oldunload();};
}else{window.onunload=deconcept.SWFObjectUtil.cleanupSWFs;}
if(Array.prototype.push==null){
Array.prototype.push=function(_32){
this[this.length]=_32;
return this.length;};}

var getQueryParamValue = deconcept.util.getRequestParameter;
var FlashObject = deconcept.SWFObject; // for backwards compatibility
var SWFObject = deconcept.SWFObject;

// JS Functions
function addLoadEvent(func) {	
	var oldonload = window.onload;
	if (typeof window.onload != 'function') {
		window.onload = func;		
	} 
	else {
		window.onload = function() {
		oldonload();
		func();
		}
	}
}

function emailCloak() {		
	if (document.getElementById) {
		var alltags = document.all? document.all : document.getElementsByTagName("*");
		for (i=0; i < alltags.length; i++) {
			if (alltags[i].className == "emailCloak") {
			var oldText = alltags[i].firstChild;
			var emailAddress = alltags[i].firstChild.nodeValue;
			var user = emailAddress.substring(0, emailAddress.indexOf("("));
			var website = emailAddress.substring(emailAddress.indexOf(")")+1, emailAddress.length);
			var newText = user+"@"+website;
			var a = document.createElement("a");
			a.href = "mailto:"+newText;
			var address = document.createTextNode(newText);
			a.appendChild(address);
			alltags[i].replaceChild(a,oldText);
			}
		}
	}	
}
addLoadEvent(emailCloak);

// JScript source code
// Date Validation
var dtCh= "/";
var minYear=1900;
var maxYear=2100;

function isInteger(s){
	var i;
    for (i = 0; i < s.length; i++){   
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}

function stripCharsInBag(s, bag){
	var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++){   
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function daysInFebruary (year){
	// February has 29 days in any year evenly divisible by four,
    // EXCEPT for centurial years which are not also divisible by 400.
    return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
}
function DaysArray(n) {
	for (var i = 1; i <= n; i++) {
		this[i] = 31
		if (i==4 || i==6 || i==9 || i==11) {this[i] = 30}
		if (i==2) {this[i] = 29}
   } 
   return this
}

function isDate(dtStr){
	var daysInMonth = DaysArray(12)
	var pos1=dtStr.indexOf(dtCh)
	var pos2=dtStr.indexOf(dtCh,pos1+1)
	var strDay=dtStr.substring(0,pos1)
	var strMonth=dtStr.substring(pos1+1,pos2)
	var strYear=dtStr.substring(pos2+1)
	strYr=strYear
	if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1)
	if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth=strMonth.substring(1)
	for (var i = 1; i <= 3; i++) {
		if (strYr.charAt(0)=="0" && strYr.length>1) strYr=strYr.substring(1)
	}
	month=parseInt(strMonth)
	day=parseInt(strDay)
	year=parseInt(strYr)
	if (pos1==-1 || pos2==-1){
		//alert("The date format should be : dd/mm/yyyy")
		return false
	}
	if (strMonth.length<1 || month<1 || month>12){
		//alert("Please enter a valid month")
		return false
	}
	if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){
		//alert("Please enter a valid day")
		return false
	}
	if (strYear.length != 4 || year==0 || year<minYear || year>maxYear){
		//alert("Please enter a valid 4 digit year between "+minYear+" and "+maxYear)
		return false
	}
	if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false){		
		return false;
	}
	else{
		return true;
	}
}

function checkPostCode (toCheck) {

  // Permitted letters depend upon their position in the postcode.
  var alpha1 = "[abcdefghijklmnoprstuwyz]";                       // Character 1
  var alpha2 = "[abcdefghklmnopqrstuvwxy]";                       // Character 2
  var alpha3 = "[abcdefghjkstuw]";                                // Character 3
  var alpha4 = "[abehmnprvwxy]";                                  // Character 4
  var alpha5 = "[abdefghjlnpqrstuwxyz]";                          // Character 5
  
  // Array holds the regular expressions for the valid postcodes
  var pcexp = new Array ();

  // Expression for postcodes: AN NAA, ANN NAA, AAN NAA, and AANN NAA
  pcexp.push (new RegExp ("^(" + alpha1 + "{1}" + alpha2 + "?[0-9]{1,2})(\\s*)([0-9]{1}" + alpha5 + "{2})$","i"));
  
  // Expression for postcodes: ANA NAA
  pcexp.push (new RegExp ("^(" + alpha1 + "{1}[0-9]{1}" + alpha3 + "{1})(\\s*)([0-9]{1}" + alpha5 + "{2})$","i"));

  // Expression for postcodes: AANA  NAA
  pcexp.push (new RegExp ("^(" + alpha1 + "{1}" + alpha2 + "?[0-9]{1}" + alpha4 +"{1})(\\s*)([0-9]{1}" + alpha5 + "{2})$","i"));
  
  // Exception for the special postcode GIR 0AA
  pcexp.push (/^(GIR)(\s*)(0AA)$/i);
  
  // Standard BFPO numbers
  pcexp.push (/^(bfpo)(\s*)([0-9]{1,4})$/i);
  
  // c/o BFPO numbers
  pcexp.push (/^(bfpo)(\s*)(c\/o\s*[0-9]{1,3})$/i);
  
  // Overseas Territories
  pcexp.push (/^([A-Z]{4})(\s*)(1ZZ)$/i);

  // Load up the string to check
  var postCode = toCheck;

  // Assume we're not going to find a valid postcode
  var valid = false;
  
  // Check the string against the types of post codes
  for ( var i=0; i<pcexp.length; i++) {
    if (pcexp[i].test(postCode)) {
    
      // The post code is valid - split the post code into component parts
      pcexp[i].exec(postCode);
      
      // Copy it back into the original string, converting it to uppercase and
      // inserting a space between the inward and outward codes
      postCode = RegExp.$1.toUpperCase() + " " + RegExp.$3.toUpperCase();
      
      // If it is a BFPO c/o type postcode, tidy up the "c/o" part
      postCode = postCode.replace (/C\/O\s*/,"c/o ");
      
      // Load new postcode back into the form element
      valid = true;
      
      // Remember that we have found that the code is valid and break from loop
      break;
    }
  }
  
  // Return with either the reformatted valid postcode or the original invalid 
  // postcode
  if (valid) {return postCode;} else return false;
}

// Form Validation
/*
function isValidEmail(str) {
	if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(str)){	
		return true;
	}
	else {
		return false;
	}
}
*/

function isValidEmail(sEmail) {
    var sQtext = '[^\\x0d\\x22\\x5c\\x80-\\xff]';
    var sDtext = '[^\\x0d\\x5b-\\x5d\\x80-\\xff]';
    var sAtom = '[^\\x00-\\x20\\x22\\x28\\x29\\x2c\\x2e\\x3a-\\x3c\\x3e\\x40\\x5b-\\x5d\\x7f-\\xff]+';
    var sQuotedPair = '\\x5c[\\x00-\\x7f]';
    var sDomainLiteral = '\\x5b(' + sDtext + '|' + sQuotedPair + ')*\\x5d';
    var sQuotedString = '\\x22(' + sQtext + '|' + sQuotedPair + ')*\\x22';
    var sDomain_ref = sAtom;
    var sSubDomain = '(' + sDomain_ref + '|' + sDomainLiteral + ')';
    var sWord = '(' + sAtom + '|' + sQuotedString + ')';
    var sDomain = sSubDomain + '(\\x2e' + sSubDomain + ')*';
    var sLocalPart = sWord + '(\\x2e' + sWord + ')*';
    var sAddrSpec = sLocalPart + '\\x40' + sDomain; // complete RFC822 email address spec
    var sValidEmail = '^' + sAddrSpec + '$'; // as whole string
 
    var reValidEmail = new RegExp(sValidEmail);
 
    if (reValidEmail.test(sEmail)) {
        return true;
    } 
    return false;
}


function checkquicklogin(){
	var ftxt = '';
	
	if (document.quicklogin.Username.value==''){
		ftxt += '\n- Please enter your Username.';
	}
	
	if (document.quicklogin.Password.value==''){
		ftxt += '\n- Please enter your Password.';
	}
	
	if (ftxt!==''){
		alert('One or more errors were found while submitting this form. The errors found are displayed below.\n' + ftxt + '\n\nPlease correct the above errors and try again.');
		return false;
	}
	else {
		return true;
	}
}

function checkmainlogin(){
	var ftxt = '';
	
	if (document.mainlogin.Username.value==''){
		ftxt += '\n- Please enter your Username.';
	}
	
	if (document.mainlogin.Password.value==''){
		ftxt += '\n- Please enter your Password.';
	}
	
	if (ftxt!==''){
		alert('One or more errors were found while submitting this form. The errors found are displayed below.\n' + ftxt + '\n\nPlease correct the above errors and try again.');
		return false;
	}
	else {
		return true;
	}
}

function checkforgottenpassword(){
	if (isValidEmail(document.propertyforgotten.EmailAddress.value)==false){
		alert('Please enter your Email Address.');
		return false;
	}
	else {
	    return true;
	}
}

function checkregister(){
	var ftxt = '';

	// Validation Here
	
	if (ftxt!==''){
		alert('One or more errors were found while submitting this form. The errors found are displayed below.\n' + ftxt + '\n\nPlease correct the above errors and try again.');
		return false;
	}
	else {
		return true;
	}
}

function checkenquiry(){
	var ftxt = '';

	if (document.enquiryform.Name.value==''){
		ftxt += '\n- Please enter your Name.';
	}
	
	if (document.enquiryform.Company.value==''){
		ftxt += '\n- Please enter your Company Name.';
	}
	
	if (document.enquiryform.Telephone.value==''){
		ftxt += '\n- Please enter your Telephone Number.';
	}
	
	if (isValidEmail(document.enquiryform.email.value)==false){
		ftxt += '\n- Please enter your Email Address.';
	}
	
	if (document.enquiryform.subject.value==''){
		ftxt += '\n- Please select an Enquiry.';
	}
	
	if (document.enquiryform.Comments.value==''){
		ftxt += '\n- Please enter your Comments.';
	}
	
	if (ftxt!==''){
		alert('One or more errors were found while submitting this form. The errors found are displayed below.\n' + ftxt + '\n\nPlease correct the above errors and try again.');
		return false;
	}
	else {
		return true;
	}
}

function checkbrochure(){
	var ftxt = '';

	if (document.orderbrochure.Name.value==''){
		ftxt += '\n- Please enter your Name.';
	}
	
	if (document.orderbrochure.Company.value==''){
		ftxt += '\n- Please enter your Company Name.';
	}		
	
	if (document.orderbrochure.Address.value==''){
		ftxt += '\n- Please enter your Address.';
	}
	
	if (checkPostCode(document.orderbrochure.Postcode.value)==false){
		ftxt += '\n- Please enter your Postcode.';
	}
	
	if (ftxt!==''){
		alert('One or more errors were found while submitting this form. The errors found are displayed below.\n' + ftxt + '\n\nPlease correct the above errors and try again.');
		return false;
	}
	else {
		return true;
	}
}

function checkadvancedsearch(){
	if (document.adsearch.MonthNum.value==''){	
		alert('Please select a Month to perform an advanced search.');
		return false;		
	}
	else {
		return true;
	}	
}

function confirmEventBasketDelete(submitString){
	if (confirm('Are you sure you want to delete this event from your event basket?')){
		location.href=submitString;
	}
}

function confirmEventAttendDelete(submitString){
	if (confirm('Are you sure you want to cancel your attendance to this event?\n\nIf you wish to cancel your attendance we will immediately remove you from the event and you will need to re-book if you wish to attend.\n\nAre you sure you wish to proceed?')){
		location.href=submitString;
	}
}

function bookonlinenow(){
	var activebuttonimg = 'Images/EventBookButton_Active.gif';
	var inactivebuttonimg = 'Images/EventBookButton_InActive.gif';
	
	var termsagreed = document.getElementById("TermsAgreed").checked;
	
	if (termsagreed){		
		document.getElementById("BookImg").src = activebuttonimg;
	}
	else {		
		document.getElementById("BookImg").src = inactivebuttonimg;
	}
}

function checkbookonline(){
	if (document.bookonline.TermsAgreed.checked==false){
		alert('You must agree to the Booking Terms and Conditions to book online.');
		return false;
	}
	else {
		return true;
	}
}

function checkmyaccount(){
	var ftxt = '';
	
	// Change Password 
	if ((document.myaccount.NewPassword.value!==''||document.myaccount.NewPassword2.value!=='')&&document.myaccount.CurrentPassword.value==''){
		ftxt += '\n- Please enter your Current Password.';	
	}
	else {
		if (document.myaccount.NewPassword.value!==document.myaccount.NewPassword2.value){
			ftxt += '\n- Please ensure Both New Passwords Match.';
		}
	}
	
	// Membership Details
	if (document.myaccount.FirstName.value==''){
		ftxt += '\n- Please enter your First Name.';
	}
	
	if (document.myaccount.LastName.value==''){
		ftxt += '\n- Please enter your LAst Name.';
	}
	
	if (document.myaccount.Company.value==''){
		ftxt += '\n- Please enter your Company Name.';
	}
	
	if (document.myaccount.Address1.value==''){
		ftxt += '\n- Please enter your Address 1.';
	}
	
	if (document.myaccount.City.value==''){
		ftxt += '\n- Please enter your City.';
	}
	
	if (document.myaccount.County.value==''){
		ftxt += '\n- Please enter your County.';
	}
	
	if (checkPostCode(document.myaccount.Postcode.value)==false){
		ftxt += '\n- Please enter your Postcode.';
	}
	
	if (document.myaccount.TelephoneNumber.value==''){
		ftxt += '\n- Please enter your Telephone Number.';
	}
	
	if (isValidEmail(document.myaccount.EmailAddress.value)==false){
		ftxt += '\n- Please enter your Email Address.';
	}
	else {
	    if (document.myaccount.EmailValidated.value=='False'){
	        ftxt += '\n- Please enter a Different Email Address. The one you have chosen is already taken.';
	    }
	}
	
	if (ftxt!==''){
		alert('One or more errors were found while submitting this form. The errors found are displayed below.\n' + ftxt + '\n\nPlease correct the above errors and try again.');
		return false;
	}
	else {
		return true;
	}
}

// Register Functions
var bnewclient = true;
function hideExistingClient(){
	document.getElementById("ExistingClient").style.display='none';
	document.getElementById("newmember").style.display='block';	
	document.getElementById("membershiptype").style.display='block';	
	document.getElementById("billingdetails").style.display='block';
	document.getElementById("discountentry").style.display='block';
	document.getElementById("paymentoptions").style.display='block';
	bnewclient = true;
}

function showExistingClient(){
	document.getElementById("ExistingClient").style.display='';
	document.getElementById("newmember").style.display='none';
	document.existingaccount.Type[1].checked=true;	
	bnewclient = false;	
}

function checkregisterexisting(){
	if (document.existingaccount.AccountNumber.value==''){
		alert('Please enter your Account Number.');
		return false;
	}
	else {
		return true;
	}
}

function dataCatch(formName,amount){ 	
    eval('document.'+formName+'.amount').value = amount
}

function getPrice(quantity){
	if(document.layers && document.layers['datadiv'].load){				
		document.layers['datadiv'].load('Scripts/GetRegisterPrice.asp?Quantity='+quantity + '&FormName=registerform',0);		
	}
	else if(window.frames && window.frames.length){				
		window.frames['dataframe'].window.location.replace('Scripts/GetRegisterPrice.asp?Quantity='+quantity + '&FormName=registerform');				
	}	
}

function getRenewalPrice(quantity){
	if(document.layers && document.layers['datadiv'].load){				
		document.layers['datadiv'].load('Scripts/GetRegisterPrice.asp?Quantity='+quantity + '&FormName=renewalform',0);		
	}
	else if(window.frames && window.frames.length){				
		window.frames['dataframe'].window.location.replace('Scripts/GetRegisterPrice.asp?Quantity='+quantity + '&FormName=renewalform');				
	}	
}

function confirmLogout(bbask){
	var logtxt = '';
	
	if (bbask){
		logtxt += '** REMINDER **\n\nYou have events in your basket.\n\nAre you sure you want to logout?';
	}
	else {
		logtxt += 'Are you sure you want to logout?';
	}
	
	if (confirm(logtxt)){
		location.href='login.asp?Logout=True';
	}
}

function checkregisterform(){
	var ftxt = '';
	
	if (bnewclient){					
		// Members Count Dropdown
		if (document.registerform.MembersCount.value==''){
			ftxt += '\n** Membership Type **\n\nPlease select the number of Members.';
		}
		
		// Billing Contact Details
		var biltxt = '';
		if (document.registerform.SingleSignup.value==false){		    
		    if (document.registerform.BillingName.value==''){
			    biltxt += '\n- Please enter a Billing Name.';		    
		    }
    		
		    if (isValidEmail(document.registerform.BillingEmailAddress.value)==false){
			    biltxt += '\n- Please enter a Billing Email Address.';
		    }
		}		
		
		if (biltxt!==''){
			if (ftxt!==''){
				ftxt += '\n\n';
			}
			ftxt += '\n** Billing Contact Details **\n' + biltxt;
		}		
	}
	
	// Membership Details	
	var memtxt = '';
	if (document.registerform.FirstName.value==''){
		memtxt += '\n- Please enter your First Name.';
	}
	
	if (document.registerform.LastName.value==''){
		memtxt += '\n- Please enter your Last Name.';
	}
	
	if (document.registerform.Company.value==''){
		memtxt += '\n- Please enter your Company Name.';
	}	
	
	if (document.registerform.Address1.value==''){
		memtxt += '\n- Please enter your Address 1.';
	}
	
	if (document.registerform.City.value==''){
		memtxt += '\n- Please enter your City.';
	}
	
	if (document.registerform.County.value==''){
		memtxt += '\n- Please enter your County.';
	}
	
	if (checkPostCode(document.registerform.Postcode.value)==false){
		memtxt += '\n- Please enter your Postcode.';
	}
	
	if (document.registerform.TelephoneNumber.value==''){
		memtxt += '\n- Please enter your Telephone Number.';
	}
	
	if (isValidEmail(document.registerform.EmailAddress.value)==false){
		memtxt += '\n- Please enter your Email Address.';
	}
	else {
	    if (document.registerform.EmailValidated.value=='False'){
	        memtxt += '\n- Please enter a Different Email Address. The one you have chosen is already taken.';
	    }
	}
		
	if (memtxt!==''){
		if (ftxt!==''){
			ftxt += '\n\n';
		}
		ftxt += '\n** Your Membership Details **\n' + memtxt;
	}
	
	//alert(bnewclient)
	
	if (bnewclient){
		// Payment Options		
		var bpaymentmethod = false;
		for (var i=0;i<2;i++){
			if (document.registerform.PaymentMethod[i].checked==true){
				bpaymentmethod = true;
			}
		}
		if (bpaymentmethod==false){
			if (ftxt!==''){
				ftxt += '\n\n';
			}
			ftxt += '\n** Payment Options **\n\nPlease select a Payment Type.';
		}
		
		if (document.registerform.TermsAgreed.checked==false){
		    if (ftxt!==''){
				ftxt += '\n\n';
			}
		    ftxt += '\n** Terms and Conditions **\n\nYou must agree to the Terms and Conditions to register online.';
		}
	}
	
	if (ftxt!==''){
		alert('One or more errors were found while submitting this form. The errors found are displayed below.\n' + ftxt + '\n\nPlease correct the above errors and try again.');
		return false;
	}
	else {
		return true;
	}
}

function checkeventfeedbackform(){
	var ftxt = '';

	// Member Details
	if (document.feedbackform.Name.value==''){
		ftxt += '\n- Please enter your Name.';
	}
	
	if (document.feedbackform.Company.value==''){
		ftxt += '\n- Please enter your Company Name.';
	}
	
	if (isValidEmail(document.feedbackform.Email.value)==false){
		ftxt += '\n- Please enter your Email Address.';
	}

	if (document.feedbackform.MembershipStatus.value==''){
		ftxt += '\n- Please select a Membership Status.';
	}
	
	/*
	if (document.feedbackform.Gender.value==''){
		ftxt += '\n- Please select your Gender.';
	}
	
	if (document.feedbackform.Age.value==''){
		ftxt += '\n- Please select your Age Group.';
	}
	*/

	// Feedback
	var numoptions = 6;
	var feedbackfields = new Array("DeliverySpeaker","QualityContent","QualityDocumentation","LengthSession","StartTime","Venue","BookingProcess","Location","OverallImpression");
	
	var numoptionscompleted = 0;
	var bfieldselected = false;
	for (var i=0;i<feedbackfields.length;i++){
		bfieldselected = false;				
		if (eval('document.feedbackform.'+ feedbackfields[i]+'[0].checked')==true||eval('document.feedbackform.'+ feedbackfields[i]+'[1].checked')==true||eval('document.feedbackform.'+ feedbackfields[i]+'[2].checked')==true||eval('document.feedbackform.'+ feedbackfields[i]+'[3].checked')==true||eval('document.feedbackform.'+ feedbackfields[i]+'[4].checked')==true){
			bfieldselected = true;				
		}
		if (bfieldselected){
			numoptionscompleted += 1;
		}
	}
	
	if (numoptionscompleted<9){
		ftxt += '\n- Please ensure feedback is provided for all questions asked.';
	}		
	
	if (ftxt!==''){
		alert('One or more errors were found while submitting this form. The errors found are displayed below.\n' + ftxt + '\n\nPlease correct the above errors and try again.');
		return false;
	}
	else {
		return true;
	}
}

function calculateRenewalCost(){
	var imemcount = document.renewalform.MembersCount.value;
	
	var iselectedcount = 0;
	if (imemcount>1){
		for (var i=0;i<imemcount;i++){
			if (document.renewalform.MemberID[i].checked==true){
				iselectedcount += 1
			}
		}
	}
	else if (imemcount==1){
		iselectedcount += 1
	}
			
	if(document.layers && document.layers['datadiv'].load){				
		document.layers['datadiv'].load('Scripts/GetRegisterPrice.asp?Quantity='+iselectedcount + '&FormName=renewalform',0);		
	}
	else if(window.frames && window.frames.length){				
		window.frames['dataframe'].window.location.replace('Scripts/GetRegisterPrice.asp?Quantity='+iselectedcount + '&FormName=renewalform');				
	}	
}

function addtoprimarylist(memberString){
	var imemcount = document.renewalform.MembersCount.value;
	var dropDown = document.renewalform.PrimaryUserID;
	var memberarr = '';
	
	if (dropDown){
		dropDown.length = 0;
		
		var bminselected = false;
		var irowcount = 0;
		if (imemcount>1){
			for (var i=0;i<imemcount;i++){	
				if (document.renewalform.MemberID[i].checked==true){	
					memberarr = document.renewalform.MemberID[i].value.split("|");
									
					if (memberarr.length==2){				
						irowcount += 1
						dropDown[irowcount-1] = new Option(memberarr[1],memberarr[0]);
						bminselected = true;
					}
				}
			}
		}
		else if (imemcount==1){
			memberarr = document.renewalform.MemberID.value.split("|");
			dropDown[0] = new Option(memberarr[1],memberarr[0]);
			bminselected = true;
		}
		
		if (bminselected==false){
			dropDown[0] = new Option('No Members Selected','');
		}
	}
}

function checkrenewalform(){
	var ftxt = '';
	var imemcount = document.renewalform.MembersCount.value;
	
	var bmemselected = false;
	if (imemcount>1){
		for (var i=0;i<imemcount;i++){
			if (document.renewalform.MemberID[i].checked==true){
				bmemselected = true;			
			}
		}	
		
		if (bmemselected==false){
			ftxt += '\n- Please select at least one Member you wish to renew.';
		}
	}
	else if (imemcount==1){
		if (document.renewalform.MemberID.checked==false){
			ftxt += '\n- Please select a Member to renew.';
		}	
	}	
	
	

	if (document.renewalform.BillingName.value==''){
		ftxt += '\n- Please enter a Billing Name.';
	}
	
	if (isValidEmail(document.renewalform.BillingEmailAddress.value)==false){
		ftxt += '\n- Please enter a Billing Email Address.';
	}
	
	if (document.renewalform.PrimaryUserID.value==''){
		ftxt += '\n- Please select a Primary Member.';
	}
	
	var bpaymentmethod = false;
	for (var i=0;i<2;i++){
		if (document.renewalform.PaymentMethod[i].checked==true){
			bpaymentmethod = true;
		}
	}
	if (bpaymentmethod==false){
		if (ftxt!==''){
			ftxt += '\n\n';
		}
		ftxt += '\n** Payment Options **\n\nPlease select a Payment Type.';
	}

	if (ftxt!==''){
		alert('One or more errors were found while submitting this form. The errors found are displayed below.\n' + ftxt + '\n\nPlease correct the above errors and try again.');
		return false;
	}
	else {
		return true;
	}
}

function checkupgradeform(){
	var ftxt = '';
	
	if (document.registerform.MembersCount.value==''){
	    ftxt += '\n- Please select the Number of Members.';
	}
	
	if (document.registerform.BillingName.value==''){
	    ftxt += '\n- Please enter your Billing Name.';
	}
	
	if (isValidEmail(document.registerform.BillingEmailAddress.value)==false){  
	    ftxt += '\n- Please enter your Billing Email Address.';
	}
	
	if (document.registerform.PrimaryUserID.value==''){
	    ftxt += '\n- Please select a Primary User.';
	}

	if (ftxt!==''){
		alert('One or more errors were found while submitting this form. The errors found are displayed below.\n' + ftxt + '\n\nPlease correct the above errors and try again.');
		return false;
	}
	else {
		return true;
	}
}

function checkquicksearch(){
    if (document.quicksearch.Criteria.value==''){
        alert('Please enter your Search Criteria.');
        return false;
    }
    else {
        return true;
    }
}

/* Quick Login */
function showhide(layername){
    var thelayer = document.getElementById(layername);
    
    if (thelayer.style.display=='none'||thelayer.style.display==''){
        thelayer.style.display='block';
    }
    else {
        thelayer.style.display='none';
    }
}

function checkquicklogin(){
    var ftxt = '';
    
    if (document.quicklogin.QuickUsername.value==''){
        ftxt += '\n- Please enter your Username.';
    }
    
    if (document.quicklogin.QuickPassword.value==''){
        ftxt += '\n- Please enter your Password.';
    }
    
    if (ftxt!==''){
		alert('One or more errors were found while submitting this form. The errors found are displayed below.\n' + ftxt + '\n\nPlease correct the above errors and try again.');
		return false;
	}
	else {
		return true;
	}
}

/* CPD Records */
function PrintPage(){  
    window.open('myaccount_cpdrecords_print.asp','PrintCPD','toolbar=yes,location=no,directories=yes,menubar=yes,scrollbars=yes,width=750,height=600,left=100,top=25');
}

function DeleteCPDRecord(submitString){
    if (confirm('Are you sure you want to delete this CPD Record?')){
        location.href=submitString;
    }
}

function checkcpdrecordform(){
    var ftxt = '';
    
    var selectevents = document.cpdrecordform.SelectEvents.value;
    var recordid = document.cpdrecordform.ID.value;
    
    if (selectevents&&recordid!==''){
        if (document.cpdrecordform.Title.value==''){
            ftxt += '\n- Please enter a Title.';
        }
    }
    else {
        if (selectevents&&recordid==''){
            if (document.cpdrecordform.Title.value==''&&document.cpdrecordform.EventID.value==''){
                ftxt += '\n- Please enter a Title or Select an Event.';
            }
            else if (document.cpdrecordform.Title.value!==''&&document.cpdrecordform.EventID.value!==''){
                ftxt += '\n- Please select enter either a Title or Select an Event.';
            }
        }
        else {
            if (document.cpdrecordform.Title.value==''){
                ftxt += '\n- Please enter a Title.';
            }
        }        
    }
    
    var activitydate = document.cpdrecordform.dActivityDate.value + '/' + document.cpdrecordform.mActivityDate.value + '/' + document.cpdrecordform.yActivityDate.value;
    if (isDate(activitydate)==false){
        ftxt += '\n- Please enter an Activity Date.';
    }
    
    /*     
    if (document.cpdrecordform.TimeSpent.value==''){
        ftxt += '\n- Please specify the Time Spent (Hrs).';
    }
    */    
    
    if (ftxt!==''){
		alert('One or more errors were found while submitting this form. The errors found are displayed below.\n' + ftxt + '\n\nPlease correct the above errors and try again.');
		return false;
	}
	else {
		return true;
	}
}

/* Check Discount - REGISTRATION */
function calculateRegisterDiscountAmount(){	
	var qstring = "?DiscountCode=" + document.registerform.DiscountCode.value + "&MembershipType=" + document.registerform.MembershipType.value + "&DatacatchForm=dataCatchRegisterDiscount&MembersCount=" + document.registerform.MembersCount.value + "&WebcastEnabled=" + document.registerform.WebcastEnabled.value;
	if(document.layers && document.layers['datadiv'].load){				
		document.layers['datadiv'].load('Scripts/GetDiscountTotal.asp' + qstring,0);		
	}
	else if(window.frames && window.frames.length){				
		window.frames['dataframe'].window.location.replace('Scripts/GetDiscountTotal.asp' + qstring);				
	}	
	//alert('Scripts/GetDiscountTotal.asp' + qstring);		
}

function checkdiscountcode(){
    if (document.registerform.DiscountCode.value==''){
        alert('Please enter a Discount Code.');        
    }
    else {
        calculateRegisterDiscountAmount();
    }
}

/* Check Discount - RENEWAL */
function calculateRenewDiscountAmount(){	
	var qstring = "?DiscountCode=" + document.renewalform.DiscountCode.value + "&MembershipType=" + document.renewalform.MembershipType.value + "&DatacatchForm=dataCatchRegisterDiscount&MembersCount=" + document.renewalform.MembersCount.value + "&WebcastEnabled=True";
	if(document.layers && document.layers['datadiv'].load){				
		document.layers['datadiv'].load('Scripts/GetDiscountTotal.asp' + qstring,0);		
	}
	else if(window.frames && window.frames.length){				
		window.frames['dataframe'].window.location.replace('Scripts/GetDiscountTotal.asp' + qstring);				
	}	
	//alert('Scripts/GetDiscountTotal.asp' + qstring);		
}

function checkrenewdiscount(){
    if (document.renewalform.DiscountCode.value==''){
        alert('Please enter a Discount Code.');        
    }
    else {
        calculateRenewDiscountAmount();
    }
}

/* Check Discount - COMMON */
function dataCatchRegisterDiscount(discountamount){   
	document.getElementById("discountamount").innerHTML = discountamount
}


/* Passport Number */
function IsNumeric(sText){
   var ValidChars = "0123456789";
   var IsNumber=true;
   var Char;
 
   for (i = 0; i < sText.length && IsNumber == true; i++) 
      { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
         {
         IsNumber = false;
         }
      }
   return IsNumber;   
}


function checkpassportentry(){       
    if (IsNumeric(document.passportentry.PassportNumber.value)==false){
        alert('Please enter your Passport Number.');
        return false;
    }   
    else {
        return true;
    }
}