
function findObj(n, d)
{
	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=findObj(n,d.layers[i].document);

	if(!x && document.getElementById)
		x=document.getElementById(n);

	return x;
}


function frm_valid()
{
	var i,p,q,nm,test,num,min,max,errors='',args=frm_valid.arguments;

	for (i=0; i<(args.length-2); i+=3)
	{
		test=args[i+2];
		val=findObj(args[i]);

		if (val)
		{
			nm=val.title;

			if ((val=val.value)!="")
			{
				if (test.indexOf('isPass')!=-1)
				{
					if (document.forms[0].sPwd.value != document.forms[0].sPwdConf.value)
						errors+='- Password and Confirm Password must be the same.\n';
				}
				else if (test.indexOf('isLen')!=-1)
				{
					if (p=test.indexOf(':'));
					min=test.substring(6,p);
					max=test.substring(p+1);

					if (val<min.length || max.length<val)
						errors+='- '+nm+' must be between ' +min+ ' and ' +max+ ' characters in length.\n';
				}
				else if (test.indexOf('isEmail')!=-1)
				{
					p=val.indexOf('@');

					if (p<1 || p==(val.length-1))
						errors+='- '+nm+' must contain an e-mail address.\n';
				}
				else if (test!='R')
				{
					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 (val<min || max<val)
							errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
					}
				}
			}
			else if (test.charAt(0) == 'R')
				errors += '- '+nm+' is a required field.\n';
		}
	}

	if (errors)
		alert('The following error(s) occurred:\n\n'+errors);

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