
//------------- validate form start

// FORM VALIDATION
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_validateForm() { //v3.0
  var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments,FirstError='';
  for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);
    if (val) { nm=args[i+1]; if(nm==''){nm=val.name;} if ((val=val.value)!="") {
      if (test.indexOf('isEmail')!=-1) {
        if (!ValidateEmail(val)) {
        	errors+='- '+nm+' must contain an e-mail address.\n';if(FirstError=='') FirstError=args[i]
        }
      } else if (test!='R') { num = parseFloat(val);
        if (val!=num) {errors+='- '+nm+' must contain a number.\n';if(FirstError=='') FirstError=args[i];}
        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 be between '+min+' and '+max+'.\n';if(FirstError=='') FirstError=args[i]}
    } } } else if (test.charAt(0) == 'R') {errors += '- '+nm+' is required.\n';if(FirstError=='') FirstError=args[i]} }
  } if (errors) {alert('The following error(s) occurred:\n'+errors); }
  document.MM_returnValue = (errors == '');
}

function ValidateEmail(strEmail)
{
	strAddress= new String(strEmail);
	lngCountAt = new Number(0);
	lngCountAt=0;
	lngLastDotPos = new Number(0);
	lngLastDotPos=0;
	try
	{
		if (strAddress.length < 7)
			throw "e";
		strCurrentChar = new String(strAddress.substr(0,1));
		if ((strCurrentChar==".") || (strCurrentChar=="@") || (strCurrentChar=="_") || (strCurrentChar=="-"))
			throw "e";
		for(i=0;i<strAddress.length;i++)
		{
			strCurrentChar = strAddress.charAt(i);
			if (strCurrentChar == "@")
				lngCountAt = lngCountAt + 1;
			if (strCurrentChar == ".")
			{
		          if (i == lngLastDotPos + 1)
        		      throw "e";
        		  else
		              lngLastDotPos = i;
			}
			if ((strAddress.charCodeAt(i)>=1 && strAddress.charCodeAt(i)<=44) || (strAddress.charCodeAt(i)>=58 && strAddress.charCodeAt(i)<=63) || (strAddress.charCodeAt(i)>=91 && strAddress.charCodeAt(i)<=94) || (strAddress.charCodeAt(i)>=123 && strAddress.charCodeAt(i)<=255))
					throw "e";
			if (strAddress.charCodeAt(i)==47 || strAddress.charCodeAt(i)==96)
    	       	throw "e";
		}
		if (lngCountAt != 1)
				throw "e";
		if (lngLastDotPos == 0)
				throw "e";

		return true;
	}
	catch(er)
	{
		if (er=="e")
			return false;
	}
}

//-------------- validate form end

