<!--  common code only: js1.3 or ECMA 262 compliant

function checkEmail (strng) {
	var error="";
	if (strng == "") {
   	error = "You didn't enter an email address.\n";
	}
    var emailFilter=/^.+@.+\..{2,5}$/;
    if (!(emailFilter.test(strng))) { 
       error = "Please enter a valid email address.\n";
    } else { //test email for illegal characters
       var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/
         if (strng.match(illegalChars)) {
          error = "The email address contains illegal characters.\n";
       }
    }
	return error;    
}

function checkRadio(radioObj,radioName) {
	var error = "";
//	alert("checking"+radioObj+" of name "+radioName);
	var count = -1;
	for (var k=0; k<radioObj.length; k++) {
		if (radioObj[k].checked) count+=1;
	}
	if(count < 0 ) {
		error = "Please tick one of the choices for "+radioName+".\n";
//alert ("radioObj has length "+radioObj.length+" and var count is "+count);
	}
	return error;
}


function isEmpty(strng,fldname) {
var error = "";
  if (strng.length == 0 || strng=='TBD') {
     error = "The mandatory text area "+fldname+" has not been filled in.\n"
  }
return error;	  
}

var bPresent = true;
var bSession = true;


function validate(thisform) {
	var str = "";
	var radionames = new String();
	var radioArray=new Array();

	for(var i = 0; i < thisform.elements.length-1; i++) {

//alert (i+": "+thisform.elements[i].type);

		if(thisform.elements[i].name.substr(0,4) == 'opt_') continue;
		if(thisform.elements[i].name == 'Organisation') continue;
		if(thisform.elements[i].name == 'Department') continue;
		if(thisform.elements[i].name == 'Postbox') continue;
		if(thisform.elements[i].name == 'Province') continue;
		if(thisform.elements[i].name == 'Fax') continue;
		if(thisform.elements[i].name == 'catID') continue;

		if(thisform.elements[i].name == 'country' && thisform.elements[i].selectedIndex == 0) {
    		str += "Country is invalid\n"; 
			continue;
		}

		if(thisform.elements[i].name == 'email') {
    		str += checkEmail(thisform.elements[i].value); continue;

		}

		if(thisform.elements[i].type == 'text' ||  thisform.elements[i].type == 'textarea' ||  thisform.elements[i].type == 'password' ) {
    		str += isEmpty(thisform.elements[i].value, thisform.elements[i].name); continue;
		}


		if(thisform.elements[i].name == 'session') {
			for (var j=0;j<thisform.session.length;j++) { 
				if (thisform.session[j].checked)  bSession = true;  
			}
		}

		if(thisform.elements[i].type == 'radio') {
			if(radionames.indexOf(thisform.elements[i].name) == -1) {
				radionames += thisform.elements[i].name + ',';
			}
		}

 	}



	radioArray=radionames.split(',');
	for (var i=0; i < radioArray.length-1; i++) {
		var rNm = radioArray[i]; 
		var rObj =  eval("thisform.elements."+rNm);
		str += checkRadio(rObj,rNm);
   }

   if (str != "") {
      alert(str);
      return false;
   } else { // form values are valid; submit
      return true;
   }

}

// -->


