// JavaScript Document



////////////////////////////////////////////////

///// JAVASCRIPT VALIDATOR CHANGE LOG

/////

///// V1.6

///// It now searches for the word "optional" in a title tag to exclude it from being validated.

///// This way you can keep a title people will understand while still excluding it

/////

///// V1.5

///// New version includes validation fortext areas. if you do not want to validate 

///// the textarea, give the title a value of 'optional'.

////////////////////////////////////////////////





var browser = navigator.appName;



function validate(args) //formID (optional: return )

{	

	var error = false;

	var e = '';

	var l = '';

	var q = 'Error:\r\nThe Following fields are empty. Please fill them in.\r\n';

	var phone = false;

	var fphone = '';

	

	var validateSelects = true;

	

	if( args['validateSelects'] != undefined ) validateSelects = args['validateSelects'];

	

	

	

	// INPUTS

	

	var f = document.getElementById(args['formID']).getElementsByTagName('input');

	

	for(i=0;i<f.length;i++)

	{

		if(f[i].value == '' && f[i].title != 'address 2' && f[i].title.search(/Optional/i) == -1 || f[i].value == ' ' && f[i].title != 'address 2' && f[i].title.search(/Optional/i) == -1  )

		{

			if(f[i].value == '' && f[i].title != 'state provence'  || f[i].value == ' ' && f[i].title != 'state provence')

			{

			

				f[i].style.border = '1px solid #ff0000';

				

				if(f[i].title == 'phone' && phone == false)

				{

					e += f[i].title+"\r\n";

					phone = true;

				} else if(f[i].title != 'phone')

				{

					e += f[i].title+"\r\n";

				}

				error = true;

			}

			

		} else if( f[i].title == 'zip' && isNaN(f[i].value) || f[i].title == 'zip' && f[i].value.length != 5)

		{

			l += '\nError: Invalid Zip Code.';

			f[i].style.border = '1px solid #ff0000';

		

		} else if(f[i].title == 'credit card number')

		{

			if(f[i].value.length != 16 || isNaN(f[i].value))

			{

				l += '\nError: Invalid Credit Card Number.';

				f[i].style.border = '1px solid #ff0000';

			} else

			{

				f[i].style.border = '';

			}

		}else if( f[i].title == 'phone')

		{

			var ph = f[i].value;

			for(j=0;j<ph.length;j++)

			{

				if(!isNaN(ph.charAt(j)) && ph.charAt(j) != ' ')

				{

					fphone += ph.charAt(j);

				}

			}

			

			if(fphone.length < 10)

			{

				l += '\nError: Invalid Phone Number.';

				f[i].style.border = '1px solid #ff0000';

			} else

			{

				f[i].value = fphone;

				f[i].style.border = '';

			}

			

		} else if(f[i].value.indexOf('@') == -1 && f[i].title == 'email' || f[i].value.indexOf('.') == -1 && f[i].title == 'email' )

		{

			l += '\nError: Invalid Email.';

			f[i].style.border = '1px solid #ff0000';

			

		} else

		{

			if(browser != 'Microsoft Internet Explorer')

			{

				f[i].style.border = '';

			} else

			{

				f[i].style.border = '1px solid';

			}

		}

	}

	

	

	// SELECTS

	

	if( validateSelects )

	{

		f = document.getElementById(args['formID']).getElementsByTagName('select');

		

		for(i=0;i<f.length;i++)

		{

			if(f[i].selectedIndex == 0 && f[i].style.display != 'none')

			{

				l += '\nError: Please select a(n) '+f[i].title+'.';

				if(browser != 'Microsoft Internet Explorer')

				{

					f[i].style.border = '1px solid #ff0000';

				} else

				{

					f[i].style.color = '#ff0000';

				}

			}else

			{

				f[i].style.border = '';

				f[i].style.color = '#000000';

			}

		}

	}

	

	

	

	// INPUTS

	

	var f = document.getElementById(args['formID']).getElementsByTagName('textarea');

	

	for(i=0;i<f.length;i++)

	{

		if( f[i].value == '' && f[i].title.search(/Optional/i) == -1 )

		{

			f[i].style.border = '1px solid #ff0000';

			e += f[i].title+"\r\n";

			

		} else

		{

			f[i].style.border = '';

			f[i].style.color = '#000000';

		}

	}

	

	

	if(error == true)

	{

		alert(q+e+l); return false;

		

	} else if(l != '')

	{  

		alert(l); return false; 

	}

	

	

	

	if(args['email_check'] == 'true')

	{

		if(CheckEmail() == 'no')

		{

			alert('Your email addresses must match. Please check to make sure they are correct');

			document.getElementById('email').style.border = '1px solid #ff0000';

			document.getElementById('email2').style.border = '1px solid #ff0000';

			return;

		}

	}

	

	

	



	

	if(args['return'] == undefined)

	{

		document.getElementById( args['formID'] ).submit();

		

	}else

	{

		return 'valid';

	}

	

}