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_validateForm() { //v4.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];

        if(test.indexOf('isCheck')!=-1)
        {
            val=args[i];
            if(!checkbox_checker(val))
            {
                errors += '- Terms of Agreement\n';
            }
        }
        else
        {
            val=MM_findObj(args[i]);
            if (val)
            {
                nm=val.name;
                if ((val=val.value)=="")
                {
                    if (test.charAt(0) == 'R')
                    {
                        errors += '- '+nm+'\n';
                    }
                    else
                    {
                        if (test.indexOf('NisEmail')!=-1)
                        {
                            p=val.indexOf('@');
                            if (p<1 || p==(val.length-1))
                                errors+='- '+nm+'\n';
                        }
                        else if (test!='R')
                        {
                            num = parseFloat(val);
                            if (isNaN(val))
                                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';
                            }
                        }
                    }
                }
            }
        }
    }

    if (errors)
    {
		alert('The form is incomplete.\nPlease fill in the following fields :\n\n'+errors);
    }

    document.MM_returnValue = (errors == '');
}

function checkbox_checker(nm)
{
var checkbox_choices = 0;
var objForm = document.forms[0];
var el = document.getElementsByName(nm);

for (counter = 0; counter < el.length; counter++)
{
    if (el[counter].checked)
    {
        checkbox_choices = checkbox_choices + 1;
    }
}
if (checkbox_choices < 1 )
{
    return (false);
}
return (true);
}
function textCounter(field, countfield, maxlimit) {
    if (field.value.length > maxlimit) // if too long...trim it!
        field.value = field.value.substring(0, maxlimit);
        // otherwise, update 'characters left' counter
    else 
        countfield.value = maxlimit - field.value.length;
}

