	/**
  	  * Verify that an email addres is valid
 	  * Written by Paolo Wales (paolo@taize.fr)
	**/
	function isValidEmail(emailad) {
   		var exclude=/[^@\-\.\w]|^[_@\.\-]|[\._\-]{2}|[@\.]{2}|(@)[^@]*\1/;
   		var check=/@[\w\-]+\./;
   		var checkend=/\.[a-zA-Z]{2,3}$/;

   		if(((emailad.search(exclude) != -1) ||
       		(emailad.search(check)) == -1) ||
       		(emailad.search(checkend) == -1)){
      			return false;
   		} else {
      		return true;
   		}
	}

	/**
 	* Validate phone number for signup
	**/
	function isValidPhoneNumber(num) {
    	var digits = 0;
    	if (num == null) return false;
    	for( i=0; i<num.length; i++ ){
    		var c = num.charCodeAt(i);  
    		//convert the i-th character to ascii code value
    		if( (c>=48) && (c<=57) ) digits++;
    	}	
    	return (digits >= 10);
	}
	
	/*Check to see if a selection box has a value being chosen */
	function IsSelectionValid(selObj){
		if (selObj.selectedIndex== -1)	return false;
		if (selObj.options[selObj.selectedIndex].value == ''||selObj.options[selObj.selectedIndex].value==0){
			return false;
		}else {
			return true;
		}
	}
	
	/*Check to see if a radio group has a value */
	function validRadio(formField){
	for (var i=0; i<formField.length; i++){ 
		if (formField[i].checked) { 
			return formField[i].value;
		} 
	}
		return '';
	} 
	
	/*Check to see if a selection that allows multiple selections have a valid value*/
	function validMultiSel(selObj){
		var num= selObj.length;
		for (i = 1; i<num; i++){
			if (selObj.options[i].selected) {
				return true;
			}
		}
		return false;
	}
	
	/*Get the value of a combo box that allows for multiple selections.*/
	function getMultiComboValue(comboObj){
		var num = comboObj.length;
		var comboValue = ""
		for (i=0; i < num; i++)
			if(comboObj.options[i].selected){
				if (comboObj.options[i].value != ""){
					comboValue += comboObj.options[i].value + ","
				}
			}
		return comboValue;
	}
	
	function trim(str)
	{
   		return str.replace(/^\s*|\s*$/g,"");
	}
	
	/*Change the cursor shape to a hand when an event happens. */
	function changeCursorToHand(id){
		document.getElementById(id).style.cursor="pointer";
	}

	function MM_showHideLayers() { //v3.0
  		var i,p,v,obj,args=MM_showHideLayers.arguments;
  		for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
    		if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v='hide')?'hidden':v; }
    	obj.visibility=v; }
	}
	
	function MM_jumpMenu(targ,selObj,restore){ //v3.0
	  eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
	  if (restore) selObj.selectedIndex=0;
	}

	function MM_findObj(n, d) { //v4.01
	  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
		d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
	  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
	  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
	  if(!x && d.getElementById) x=d.getElementById(n); return x;
	}

	function MM_jumpMenuGo(selName,targ,restore){ //v3.0
	  var selObj = MM_findObj(selName); if (selObj) MM_jumpMenu(targ,selObj,restore);
	}