function validEmail(email)
        {
                var invalidChars="`~!#$%^&*()+|<>?/:,; "

                for(i=0;i<invalidChars.length;i++)
                {
                        var badChar=invalidChars.charAt(i);
                        if(email.indexOf(badChar,0)!=-1)
                        {
                                return false;
                        }
                }

                var atPos=email.indexOf("@",1)
                if(atPos==-1)
                {
                        return false;
                }

                if(email.indexOf("@",atPos+1)!=-1)
                {
                        return false;
                }

                var periodPos=email.indexOf(".",atPos)
                if(periodPos==-1)
                {
                        return false;
                }

                if(periodPos+3>email.length)
                {
                        return false;
                }
                return true;
        }
        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) { //v3.0
  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); return x;
}

function MM_jumpMenuGo(selName,targ,restore){ //v3.0
  var selObj = MM_findObj(selName); if (selObj) MM_jumpMenu(targ,selObj,restore);
}

function MM_validateForm() { //v3.0
  var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
  for (i=0; i<(args.length-2); i+=3)
  {
   test=args[i+2];
   val=MM_findObj(args[i]);
   if(val) { nm=val.name;
//    alert('Name: '+nm);
    if ((val=val.value)!="")
    {
      if (test.indexOf('isEmail')!=-1)
      {// p=val.indexOf('@');
        //if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\n';
        if (validEmail(val) == false)errors+='- '+nm+' must contain an e-mail address.\n';
      } else if (test!='R') { num = parseFloat(val);
        if (val!=''+num) errors+='- '+nm+' must contain a number.\n';
        if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
          min=test.substring(8,p); max=test.substring(p+1);
          if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
    } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' is required.\n'; }
  }
  if (errors) alert('The following error(s) occurred:\n'+errors);
  submitted = (errors == '')
  document.MM_returnValue = (errors == '');
}

var submitted = false;

