function hasInvalidCharacters111(form)
{
	var bHasInvalidCharacter = false;
	
	
	//try to know which control is invalid & at end put focus on that control
	var elementInValid = "";
	var hashFieldNames = new Array();
	hashFieldNames['txtFName'] = "First Name";
	hashFieldNames['txtLName'] = "Last Name";
	hashFieldNames['txtEmail'] = "Email Address";
	hashFieldNames['txtZip'] = "Zip";
	hashFieldNames['txtSSN'] = "Social Security Number";
	hashFieldNames['txtPhone'] = "Phone Number";
	hashFieldNames['txtAlternatePhone'] = "Alternate Phone #";
	hashFieldNames['txtAddressLine1'] = "Mailing Address Line 1";
	hashFieldNames['txtAddressLine2'] = "Mailing Address Line 2";
	hashFieldNames['txtCity'] = "City";
	hashFieldNames['txtState'] = "State";
	hashFieldNames['txtPosition'] = "Position Applying For";
	hashFieldNames['txtComments'] = "Other Comments";
	
	var invalidFieldName = "";
	
	
	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))
		{
				// allow dash 
				//if((form.elements[i].name == 'txtEmail') || (form.elements[i].name == 'txtZip') || (form.elements[i].name == 'txtSSN') || (form.elements[i].name == 'txtFName') || (form.elements[i].name == 'txtLName') || (form.elements[i].name == 'txtAddressLine1') || (form.elements[i].name == 'txtAddressLine2') || (form.elements[i].name == 'txtCity'))
                if((IsUniqueIDEqControlID(form.elements[i].name,'txtEmail')) || (IsUniqueIDEqControlID(form.elements[i].name,'txtZip')) || (IsUniqueIDEqControlID(form.elements[i].name,'txtSSN')) || (IsUniqueIDEqControlID(form.elements[i].name,'txtFName')) || (IsUniqueIDEqControlID(form.elements[i].name,'txtLName')) || (IsUniqueIDEqControlID(form.elements[i].name,'txtAddressLine1')) || (IsUniqueIDEqControlID(form.elements[i].name,'txtAddressLine2')) || (IsUniqueIDEqControlID(form.elements[i].name,'txtCity')))
				{
					if(/[\'"\)\(;~\|%\\/<>]+/.test(form.elements[i].value))
					{
						bHasInvalidCharacter = true;
						elementInValid = form.elements[i].name;
						invalidFieldName = hashFieldNames[elementInValid];
						break;
					}
				}
				//allow not a single invalid character
				//else if( (form.elements[i].name == 'txtState') || (form.elements[i].name == 'txtPosition'))
				else if( (IsUniqueIDEqControlID(form.elements[i].name,'txtState')) || (IsUniqueIDEqControlID(form.elements[i].name,'txtPosition')))
				{
					if( /[\'"\)\(;~\|\-%\\/<>]+/.test(form.elements[i].value) )
					{
						bHasInvalidCharacter = true;
						elementInValid = form.elements[i].name;
						invalidFieldName = hashFieldNames[elementInValid];
						break;
					}
				}
				//else if( (form.elements[i].name == 'txtComments') ) 
				else if( (IsUniqueIDEqControlID(form.elements[i].name,'txtComments')) ) 
				{	
					if( /[~\|\\/<>]+/.test(form.elements[i].value) )
					{
						bHasInvalidCharacter = true;
						elementInValid = form.elements[i].name;
						invalidFieldName = hashFieldNames[elementInValid];
						break;
					}
				}
				//else if( (form.elements[i].name == 'txtPhone') || (form.elements[i].name == 'txtAlternatePhone') )
				else if( (IsUniqueIDEqControlID(form.elements[i].name,'txtPhone')) || (IsUniqueIDEqControlID(form.elements[i].name,'txtAlternatePhone')) ) 
				{	
					if(/[\'";~\|%\\/<>]+/.test(form.elements[i].value))
					{
						bHasInvalidCharacter = true;
						elementInValid = form.elements[i].name;
						invalidFieldName = hashFieldNames[elementInValid];
						break;
					}
				}
				else
				{
					bHasInvalidCharacter = true;
					elementInValid = form.elements[i].name;
					invalidFieldName = hashFieldNames[elementInValid];
					break;
				}
		}
	}

	 
	// check to see if invalid character was entered
	if(bHasInvalidCharacter)
	{
		alert("The information entered contain at least one illegal character(s) which include:\n" +
				   "\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" +
				   "Please make the necessary changes and try again.")

		//put focus in first control where invalid character is
		document.forms[0][elementInValid].focus();
	}

	return bHasInvalidCharacter;
}

//decides whether asp.net generated control unique id is same as developer created control id
function IsUniqueIDEqControlID(uniqueID, controlID)
{
    var found=0;
    var pos = uniqueID.indexOf(controlID);
    if(pos >= 0)
    {
        found = 1;            
    }
    if(found == 1)
    {
        return true;
    }
    else
    {
        return false;
    }
}













/*
////////////////////
function hasValidCharacters(element)
{
	var bHasValidCharacters = true;
	if( /[\'"\)\(;~\|\-%\\/<>]+/.test(element.Value) )
	{
		bHasValidCharacters = false;
	}
	return ! bHasValidCharacters;
}
*/

/*
function hasValidCharactersInComments(element)
{
	var bHasValidCharacters = true;
	if( /[~\|\\/<>]+/.test(element.value) )
	{
		bHasValidCharacters = false;
	}
	return bHasValidCharacters;
}


function hasValidCharactersWithoutDash(element)
{
	var bHasValidCharacters = true;
	if( /[\'"\)\(;~\|%\\/<>]+/.test(element.value) )
	{
		bHasValidCharacters = false;
	}
	return bHasValidCharacters;
}
*/
/////////////////