    var NS = false;
		var IE = false;
		if(window.navigator.appName.toLowerCase().indexOf("netscape") > -1) { NS = true; }
		if (window.navigator.appName.toLowerCase().indexOf("microsoft internet explorer") > -1){ IE = true; }
		
    var ValidChar = /[^0-9a-zA-Z\-.\ \!\@\#\$\%\^\&\*\(\)\{\[\}\]\:\;\"\'\,\<\>\?\\/\|\\]/gi;
		var InValidExp = /[$\\@\\\#%\^\&\*\[\]\(\)\+\_\{\}\~\=\|\?\;\:\`\<\>\!\,\.\^\/\d]/;
		var NumericOnly = /[$\\@\\\#%\^\&\*\(\)\[\]\+\_\{\}\`\~\=\|\?\;\<\>\!\,\.\-\/\a-z\A-Z]/;
		
		
    //FUNCTION INSERTED ON 3/10/2008 TO COUNT WORDS
    function cnt(w){
      //var y=w.value;
      var r = 0;
      a=w.replace(/\s/g,' ');
      a=a.split(' ');
      for (z=0; z<a.length; z++) {if (a[z].length > 0) r++;}
      //cnt=r;
      return r;
    }
       
    function CheckText(strText){
			strText.value = strText.value.replace(ValidChar,'');
		}
		//FUNCTION ALLOWING THE COUNTRY CODE TO BE ADDED TO THE TELEPHONE INPUT BOX
    function fcnChangeCode(selVal) {
    	var selVal1 = HtmlElement("dlCountryCode").options[HtmlElement("dlCountryCode").selectedIndex].value;
      if (selVal1.length > 0) {
      	var telVal = HtmlElement("txtPhone").value;
        HtmlElement("txtPhone").value = "(+"+selVal1+") ";
      }
    }
    function fcnCountryCode() {
    	var labCountry = HtmlElement("dlJCountry").options[HtmlElement("dlJCountry").selectedIndex].label;
      var answer = '';
      var telVal;
      for (var i = 0; i <HtmlElement("dlCountryCode").options.length; i++) {
				if (HtmlElement("dlCountryCode").options[i].label == labCountry) {
					HtmlElement("dlCountryCode").options[i].selected = true;
          answer = HtmlElement("dlCountryCode").options[i].value
      		telVal = HtmlElement("txtPhone").value;
        	HtmlElement("txtPhone").value = "(+"+answer+") ";
        }
      }
    }
		//Code for Counting TextArea Characters
		function TxtField(field, count, max) {
  		if (field.value.length > max)
  			field.value = field.value.substring(0, max);
  		else 
  			count.value = max - field.value.length;
  	}
		
		function CheckField(FieldVal) {
  		var ValField = FieldVal.value;
  		var FieldLen = ValField.length;
  		var lchar = FieldVal.value.charAt((FieldLen) - 1);
  		if(lchar.search(InValidExp) != -1) {
  			var checked = FieldVal.value.substring(0, (FieldLen) - 1);
  			FieldVal.value = checked;
  		}
		}

		function CheckNumeric(FieldVal) {
  		var ValField = FieldVal.value;
  		var FieldLen = ValField.length;
  		var lchar = FieldVal.value.charAt((FieldLen) - 1);
  		if(lchar.search(NumericOnly) != -1) {
  			var checked = FieldVal.value.substring(0, (FieldLen) - 1);
  			FieldVal.value = checked;
  		}
		}

		function ValidateMe() {
			error = "<b>Missing data:</b><br />";
      
      //PERSONAL FIELDS
      if (HtmlElement("dlTitle").options[HtmlElement("dlTitle").selectedIndex].value == "")
			{ error += "&nbsp;&bull;&nbsp;PERSONAL/Title<br />"; } 
      if (HtmlElement("txtLastName").value == 0) {
      	error += "&nbsp;&bull;&nbsp;PERSONAL/Family Name<br />"; 
      }   
      if (HtmlElement("txtFirstName").value == 0) {
      	error += "&nbsp;&bull;&nbsp;PERSONAL/First Name<br />"; 
			}
		  isOK1 = document.getElementById("radGender1").checked;
		  isOK2 = document.getElementById("radGender2").checked;      
      if ( (isOK1 == false) && (isOK2 == false) ) {
      	error += "&nbsp;&bull;&nbsp;PERSONAL/Gender<br />"; 
			} 
      if (HtmlElement("txtNationality").value == 0) {
      	error += "&nbsp;&bull;&nbsp;PERSONAL/Nationality<br />"; 
      }
      if (HtmlElement("txtPhone").value == 0) {
      	error += "&nbsp;&bull;&nbsp;PERSONAL/Phone<br />"; 
      }
      if (HtmlElement("txtPassword").value == 0) {
      	error += "&nbsp;&bull;&nbsp;PERSONAL/Password<br />"; 
      }

      //JOB FIELDS
      if (HtmlElement("txtInstitution").value == 0) {
      	error += "&nbsp;&bull;&nbsp;JOB/Organization<br />"; 
      }
      if (HtmlElement("txtAddress").value == 0) {
      	error += "&nbsp;&bull;&nbsp;JOB/Address<br />"; 
      }
      if (HtmlElement("txtPostal").value == 0) {
      	error += "&nbsp;&bull;&nbsp;JOB/Postal code<br />"; 
      }
      if (HtmlElement("txtCity").value == 0) {
      	error += "&nbsp;&bull;&nbsp;JOB/City<br />"; 
      }
      if (HtmlElement("dlJCountry").options[HtmlElement("dlJCountry").selectedIndex].value == 0)
			{ error += "&nbsp;&bull;&nbsp;JOB/Country<br />"; }

	  
      //VISA FIELDS
      /*if (document.getElementById("radVisa1").checked) {
        
        if (HtmlElement("txtVNAtionality").value == 0) {
        	error += "&nbsp;&bull;&nbsp;VISA/Nationality<br />"; 
        }
        if (HtmlElement("txtVDOB").value == 0) {
        	error += "&nbsp;&bull;&nbsp;VISA/Date of birth<br />"; 
        }
        if (HtmlElement("txtVPasspno").value == 0) {
        	error += "&nbsp;&bull;&nbsp;VISA/Passport No.<br />"; 
        }
        if (HtmlElement("txtVDOI").value == 0) {
        	error += "&nbsp;&bull;&nbsp;VISA/Date of issue<br />"; 
        }
        if (HtmlElement("txtVPOI").value == 0) {
        	error += "&nbsp;&bull;&nbsp;VISA/Place of issue<br />"; 
        }
        if (HtmlElement("txtVExpiration").value == 0) {
        	error += "&nbsp;&bull;&nbsp;VISA/Expiration date<br />"; 
        }
        if (HtmlElement("txtVAddress").value == 0) {
        	error += "&nbsp;&bull;&nbsp;VISA/Address<br />"; 
        }
        if (HtmlElement("txtVPostcode").value == 0) {
        	error += "&nbsp;&bull;&nbsp;VISA/Postal code<br />"; 
        }
        if (HtmlElement("txtVCity").value == 0) {
        	error += "&nbsp;&bull;&nbsp;VISA/City<br />"; 
        }
        if (HtmlElement("dlVCountry").options[HtmlElement("dlVCountry").selectedIndex].value == 0)
  			{ error += "&nbsp;&bull;&nbsp;VISA/Country<br />"; }
        
        if (HtmlElement("txtVArrivDate").value == 0) {
        	error += "&nbsp;&bull;&nbsp;VISA/Arrival date<br />"; 
        }
        if (HtmlElement("txtVDepartDate").value == 0) {
        	error += "&nbsp;&bull;&nbsp;VISA/Depart. date<br />"; 
        }
      }*/

      //CONFERENCE REGISTRATION FIELDS
      isRole1 = document.getElementById("radRole1").checked;
      isRole2 = document.getElementById("radRole2").checked;
      isRole3 = document.getElementById("radRole3").checked;
      isRole4 = document.getElementById("radRole4").checked;
      isRole = false;
      for (var i=1;i<5;i++) {
        if (document.getElementById('radRole'+i).checked==true) {
          isRole = true;
          break;
        }
      }
      if (isRole==false) {
        error += "&nbsp;&bull;&nbsp;CONFERENCE/Participant category<br />";
      }
       
      if ((isRole1==true) || (isRole3==true)) {      
        if (HtmlElement("txtPresTitle").value == 0) {
        	error += "&nbsp;&bull;&nbsp;CONFERENCE/Oral presentation: proposed title<br />"; 
        }
        if (HtmlElement("dlKeys").options[HtmlElement("dlKeys").selectedIndex].value == 0)
  			{ error += "&nbsp;&bull;&nbsp;CONFERENCE/Oral presentation: proposed session<br />"; }
        
        if (HtmlElement("txtAbstract").value == 0) {
        	error += "&nbsp;&bull;&nbsp;CONFERENCE/Abstract<br />"; 
        } else {
          txt1 = HtmlElement("txtAbstract").value;
          var numwords1 = cnt(txt1);
          if (numwords1 > 300) {
            { error += "&nbsp;&bull;&nbsp;CONFERENCE/Oral presentation: 1st abstract with no. of words over the limit of 300!<br />"; }
          }
        }
        if (HtmlElement("txtAbstract2").value != 0) {
          txt2 = HtmlElement("txtAbstract2").value;
          var numwords2 = cnt(txt2);
          if (numwords2 > 300) {
            { error += "&nbsp;&bull;&nbsp;CONFERENCE/Oral presentation: 2nd abstract with no. of words over the limit of 300!<br />"; }
          }
        }   
      }
      
      
		  isConfirmed = document.getElementById("chkConfirm").checked;  
      if (isConfirmed == false) {
      	error += "&nbsp;&bull;&nbsp;The registration cannot be completed if you do not CONFIRM the statement at the bottom of the page!<br />Contact us for any concerns."; 
			} 
			
			if (error == "<b>Missing data:</b><br />") {
				return true;
			} else {
				ErrorMsg(true);
				HtmlElement("lblMessage").style.display = 'none';
				HtmlElement("IsError").style.display = '';
				HtmlElement("IsError").innerHTML = error;
        alert("Missing mandatory information! See list at the page top.");
				HtmlElement("txtError").focus();
				return false;
			}
		}
		// ----------- End FUNCTION VALIDATE ME -----------
		
		function HtmlElement(strName){
			if(IE) return document.all(strName);
			if(NS) return document.getElementById(strName);
			return null;
		}
		
		var Changes = 0;
	  function rChanges()
		{
			Changes++;
		}
		
		function ErrorMsg(TAction){
		if(TAction == true){
				HtmlElement("ErrorMsg").style.display = '';
				}
			else {
				HtmlElement("ErrorMsg").style.display = 'none';
				}
		}
		
		function ShowSave(TAction){
		if(TAction == true){
			ErrorMsg(true);
			HtmlElement("IsError").style.display = 'none';
			}	
		}
		
		function Logic() {
			if (ValidateMe() == true) {
				return true;
			} else {
				return false;
			}
		}