function MM_preloadImages()
{ //v3.0
	var d = document;
	if (d.images)
	{
		if (!d.MM_p)
			d.MM_p = new Array();
    
		var i, j = d.MM_p.length, a = MM_preloadImages.arguments;
    
		for (i = 0; i < a.length; i ++)
			if (a[i].indexOf("#") != 0)
			{
				d.MM_p[j] = new Image;
				d.MM_p[j++].src = a[i];
			}
	}
}

function MM_swapImgRestore()
{ //v3.0
	var i, x, a = document.MM_sr;
  
	for (i = 0; a&&i < a.length&&(x=a[i])&&x.oSrc; i++)
		x.src = x.oSrc;
}

function MM_findObj(n, d)
{ //v4.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);

	if (!x && document.getElementById)
		x = document.getElementById(n);
		
	return x;
}

function MM_swapImage()
{ //v3.0
	var i, j = 0, x, a = MM_swapImage.arguments;
	
	document.MM_sr = new Array;
	
	for (i = 0; i < (a.length - 2); i += 3)
		if ((x=MM_findObj(a[i])) != null)
		{
			document.MM_sr[j++] = x;
			if (!x.oSrc)
				x.oSrc = x.src;
			
			x.src = a[i+2];
		}
}

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];
		val = MM_findObj(args[i]);

		if (val)
		{
			nm = val.name;
			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';
				}
				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 required.\n';
		}
	}

	if (errors)
		alert('The following error(s) occurred:\n'+errors);

	document.MM_returnValue = (errors == '');
}

function MM_openBrWindow (theURL, winName, features)
{ //v2.0
	window.open(theURL,winName,features);
}

