function hasInvalidCharacters(form)
{
	var bHasInvalidCharacter = false;
	for(var i=0;i<form.elements.length;i++)
	{
		if((form.elements[i].type == 'text' || 
		    form.elements[i].type == 'password' || 
		    form.elements[i].type == 'textarea') && /[\'"\)\(;~\|\-%\\/<>]+/.test(form.elements[i].value))
		{
			//alert(form.elements[i].name + '=' + form.elements[i].value);
			
			// special case for profile and mailing list
			if((form.name == 'Profile') || (form.name == 'MailingList') || (form.name == 'Login') || (form.name == 'MyBilling'))
			{		
				// allow / for birthday and anniversary fields but still need to check other characters
				if((form.elements[i].name == 'textBirthday') || (form.elements[i].name == 'textAnniversary'))
				{
					if(/[\'"\)\(;~\|\-%\\<>]+/.test(form.elements[i].value))
					{
						bHasInvalidCharacter = true;
						break;
					}
				}
				
				// allow -() for phone number fields and email 
				else if((form.elements[i].name == 'textHomePhone') || (form.elements[i].name == 'textWorkPhone')  || (form.elements[i].name == 'textFax'))
				{
					if(/[\'";~\|%\\/<>]+/.test(form.elements[i].value))
					{
						bHasInvalidCharacter = true;
						break;
					}
				}
				// allow - for email field and zip code
				else if((form.elements[i].name == 'textEmail') || (form.elements[i].name == 'textConfirmEmail') || (form.elements[i].name == 'Email') || (form.elements[i].name == 'textZip'))
				{
					if(/[\'"\)\(;~\|%\\/<>]+/.test(form.elements[i].value))
					{
						bHasInvalidCharacter = true;
						break;
					}
				}
				else
				{
					bHasInvalidCharacter = true;
					break;
				}
			}
			else if(form.name == 'Personal')
			{		
				// allow -() for phone number fields and email 
				if((form.elements[i].name == 'telephone') || (form.elements[i].name == 'shippingTelephone'))
				{
					if(/[\'";~\|%\\/<>]+/.test(form.elements[i].value))
					{
						bHasInvalidCharacter = true;
						break;
					}
				}
				// allow - for email field
				else if((form.elements[i].name == 'email') || (form.elements[i].name == 'emailConfirm'))
				{
					if(/[\'"\)\(;~\|%\\/<>]+/.test(form.elements[i].value))
					{
						bHasInvalidCharacter = true;
						break;
					}
				}
				else
				{
					bHasInvalidCharacter = true;
					break;
				}
			}
			// added by Rajan - for both promo code input box validation
			else if(form.name == 'MyEvening')
			{		
				// allow percent (%) dollar sign ($) double quote (“) and slash (/) for both promotion code fields
				if((form.elements[i].name == 'promo') || (form.elements[i].name == 'promo2'))
				{
					if(/[\'\)\(;~\|\\<>]+/.test(form.elements[i].value))
					{
						bHasInvalidCharacter = true;
						break;
					}
				}
				else
				{
					bHasInvalidCharacter = true;
					break;
				}
			}
			else
			{
				bHasInvalidCharacter = true;
				break;
			}
		}
	}
	 
	// check to see if invalid character was entered
	if(bHasInvalidCharacter)
	{
		// confirm the removal
		if(confirm("The information entered contain at least one illegal character(s) which include:\n" +
				   "\t ' (single quote)\n" +
				   "\t \" (double quote)\n" +
				   "\t ; (semi-colon)\n" + 
				   "\t ~ (tilda)\n" + 
				   "\t | (pipe)\n" + 
				   "\t % (percent)\n" +
				   "\t < (less than)\n" +
				   "\t > (greater than)\n" +
				   "\t \\ (backward slash)\n" +
				   "\t - (dash, only allow for email and phone #)\n" +
				   "\t / (forward slash, only allow for date field)\n" +
				   "\t ) (close parenthesis, only allow for phone #)\n" + 
				   "\t ( (open parenthesis, only allow for phone #)\n\n" +
				   "Would you like to remove it and continue?")) 
			   
		{
			for(var i=0;i<form.elements.length;i++)
			{
				if((form.elements[i].type == 'text' || 
				    form.elements[i].type == 'password' || 
				    form.elements[i].type == 'textarea') && /[\'"\)\(;~\|\-%\\/<>]+/.test(form.elements[i].value))
				{
					// special case for profile and mailing list
					if((form.name == 'Profile') || (form.name == 'MailingList') || (form.name == 'Login') || (form.name == 'MyBilling'))
					{		
						// allow / for birthday and anniversary fields but still need to check other characters
						if((form.elements[i].name == 'textBirthday') || (form.elements[i].name == 'textAnniversary'))
						{
							form.elements[i].value = form.elements[i].value.replace(/[\'"\)\(;~\|\-%\\<>]+/g, '');
						}
						// allow -() for phone number fields and email 
						else if((form.elements[i].name == 'textHomePhone') || (form.elements[i].name == 'textWorkPhone')  || (form.elements[i].name == 'textFax'))
						{
							form.elements[i].value = form.elements[i].value.replace(/[\'";~\|%\\/<>]+/g, '');
						}
						// allow - for email field
						else if((form.elements[i].name == 'textEmail') || (form.elements[i].name == 'textConfirmEmail') || (form.elements[i].name == 'Email'))
						{
							form.elements[i].value = form.elements[i].value.replace(/[\'"\)\(;~\|%\\/<>]+/g, '');
						}
						else
						{
							form.elements[i].value = form.elements[i].value.replace(/[\'"\)\(;~\|\-%\\/<>]+/g, '');
						}
					}
					else if(form.name == 'Personal')
					{		
						// allow -() for phone number fields
						if((form.elements[i].name == 'telephone') || (form.elements[i].name == 'shippingTelephone'))
						{
							form.elements[i].value = form.elements[i].value.replace(/[\'";~\|%\\/<>]+/g, '');
						}
						// allow - for email field
						else if((form.elements[i].name == 'email') || (form.elements[i].name == 'emailConfirm'))
						{
							form.elements[i].value = form.elements[i].value.replace(/[\'"\)\(;~\|%\\/<>]+/g, '');
						}
						else
						{
							form.elements[i].value = form.elements[i].value.replace(/[\'"\)\(;~\|\-%\\/<>]+/g, '');
						}
					}
					// added by Rajan - for promo code input box validation
					else if(form.name == 'MyEvening') 
					{		
						// allow percent (%) dollar sign ($) double quote (“) and slash (/) for both promotion code fields
						if((form.elements[i].name == 'promo') || (form.elements[i].name == 'promo2'))
						{
							form.elements[i].value = form.elements[i].value.replace(/[\'\)\(;~\|\\<>]+/g, '');
						}
						else
						{
							form.elements[i].value = form.elements[i].value.replace(/[\'\)\(;~\|\\<>]+/g, '');
						}
					}
					else
					{
						form.elements[i].value = form.elements[i].value.replace(/[\'"\)\(;~\|%\\/<>]+/g, '');
					}
				}
			}
			bHasInvalidCharacter = false;
		}
	}
	
	return bHasInvalidCharacter;
}
