
	function enableSpecifyOthers(){
	if(getCheckedValue(document.forms['form1'].elements['How']) == 'Others'){
		document.form1.Others_specify.disabled = false;
	}else{
		document.form1.Others_specify.disabled = true;
		document.form1.Others_specify.value = "";
	}
	}

	function doValidation(){
		
			var invalidEvents = '\n';
		
			if(document.form1.Name.value.length <= 0){
				invalidEvents = invalidEvents + 'Name' + '\n';
			}
			
			if(!emailCheck(document.form1.Email.value)){
				invalidEvents = invalidEvents + 'Email' + '\n';
			}
	
			if(!ValidatePhoneNo()){
				invalidEvents = invalidEvents + 'Telephone' + '\n';
			}
			
			if(document.form1.Organization.value.length <= 0){
				invalidEvents = invalidEvents + 'Organization' + '\n';
			}
						
			if(document.form1.Country.value.length <= 0 || document.form1.Country.value == '[ Select a country ]'){
				invalidEvents = invalidEvents + 'Country' + '\n';
			}

			if(getCheckedValue(document.forms['form1'].elements['How']) == 'Others'){
				if(document.form1.Others_specify.value <= 0){
					invalidEvents = invalidEvents + 'Other sources to know about us' + '\n';
				}
			}

			if(document.form1.Comments.value <= 0){
				invalidEvents = invalidEvents + 'Questions' + '\n';
			}
			
			if(invalidEvents.length == 1){
				document.form1.submit();
			}else{
				var invalidEventsHeader = 'The following information is not valid.\nPlease fill in correctly.\n';
				alert(invalidEventsHeader+invalidEvents);
			}
			
		}
		
	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 "";
	}
	
	function emailCheck (emailStr) {
		var checkTLD=1;
		var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;
		var emailPat=/^(.+)@(.+)$/;
		var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
		var validChars="\[^\\s" + specialChars + "\]";
		var quotedUser="(\"[^\"]*\")";
		var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
		var atom=validChars + '+';
		var word="(" + atom + "|" + quotedUser + ")";
		var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
		var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
		var matchArray=emailStr.match(emailPat);

		if (matchArray==null) {
			//alert("Email address seems incorrect (check @ and .'s)");
			return false;
		}
		
		var user=matchArray[1];
		var domain=matchArray[2];

		for (i=0; i<user.length; i++) {
			if (user.charCodeAt(i)>127) {
				//alert("Ths username contains invalid characters.");
				return false;
		   }
		}

		for (i=0; i<domain.length; i++) {
			if (domain.charCodeAt(i)>127) {
				//alert("Ths domain name contains invalid characters.");
				return false;
		   }
		}

		if (user.match(userPat)==null) {
			//alert("The username doesn't seem to be valid.");
			return false;
		}

		var IPArray=domain.match(ipDomainPat);

		if (IPArray!=null) {
			for (var i=1;i<=4;i++) {
				if (IPArray[i]>255) {
					//alert("Destination IP address is invalid!");
					return false;
			   }
			}
		
		return true;
		}

		var atomPat=new RegExp("^" + atom + "$");
		var domArr=domain.split(".");
		var len=domArr.length;

		for (i=0;i<len;i++) {
			if (domArr[i].search(atomPat)==-1) {
				//alert("The domain name does not seem to be valid.");
				return false;
		   }
		}

		if (checkTLD && domArr[domArr.length-1].length!=2 && domArr[domArr.length-1].search(knownDomsPat)==-1) {
			//alert("The address must end in a well-known domain or two letter " + "country.");
			return false;
		}

		if (len<2) {
			//alert("This address is missing a hostname!");
			return false;
		}

		return true;
	}
	
	var digits = "0123456789";
	var phoneNumberDelimiters = "()- ";
	var validWorldPhoneChars = phoneNumberDelimiters + "+";
	var minDigitsInIPhoneNumber = 10;

function isInteger(s)
{   var i;
	var okFlagIsInteger = true;

    for (i = 0; i < s.length; i++)
    {   
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) okFlagIsInteger = false;
    }
    // All characters are numbers.
	
    return okFlagIsInteger;
}

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++)
    {   
        // Check that current character isn't whitespace.
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function checkInternationalPhone(strPhone){
	s=stripCharsInBag(strPhone,validWorldPhoneChars);
	return (isInteger(s) && s.length >= minDigitsInIPhoneNumber);
}

function ValidatePhoneNo(){
	var Phone=document.form1.Telephone
	var okFlag = true;
	
	if ((Phone.value==null)||(Phone.value=="")){
		okFlag = false;
	}
	if (checkInternationalPhone(Phone.value)==false){
		okFlag = false;
	}
	
	return okFlag;
 }
 
 function chooseCountry(){
	 document.form1.Country.value = document.form1.CountrySelection.options[document.form1.CountrySelection.selectedIndex].text;	 		
 }
