//------------------------------------------------------------
// Module: SolicitationInfoAdmin.js
// Author: Carl Perkins
// Notes:  Functions specific to SolicitationInfoAdmin.asp
//------------------------------------------------------------
var gv_ErrorMessages = '';
var gvBackgroundColorValid = 'White';
var gvBackgroundColorError = 'Aqua';
//----------------------------------------------------------------------------
//  The following fields on the screen are edited and are required:
//			document.getElementById("id_CompanyName").value;
//			document.getElementById("id_Address1").value;
//			document.getElementById("id_City").value;				
//			document.getElementById("id_State").value;		
//			document.getElementById("id_ZipCode").value;
//			document.getElementById("id_Telephone").value;		
//			document.getElementById("id_PointOfContact_Email").value;
//			document.getElementById("id_PointOfContact_Name").value
//			document.getElementById("id_SolicitationNumber").value
//  The following fields on the screen are edited BUT ARE OPTIONAL:
//          document.getElementById("id_ZipPlus4").value;
//          document.getElementById("id_Fax").value;
//----------------------------------------------------------------------------
function f_EditLogic()
{
	gv_ErrorMessages = '';  // clear out from last execution
	//alert('f_EditLogic() entered');  // for testing only
	//gv_ErrorMessages += '\nTesting error message - should prevent add';  // for testing only
	
	// following fields are edited and are REQUIRED
	f_EditCompanyName(document.getElementById("id_CompanyName"));
	f_EditAddress1(document.getElementById("id_Address1"));
	f_EditCity(document.getElementById("id_City"));
	f_EditState(document.getElementById("id_State"));
	f_EditZipCode(document.getElementById("id_ZipCode"));
	f_EditTelephone(document.getElementById("id_Telephone"));
	f_EditPointOfContact_Email(document.getElementById("id_PointOfContact_Email"));
	f_EditPointOfContact_Name(document.getElementById("id_PointOfContact_Name"));
	f_EditSolicitationNumber(document.getElementById("id_SolicitationNumber"));	
	
	// following fields are edited, are optional, but must be correct if entered
	f_EditZipPlus4(document.getElementById("id_ZipPlus4"));
	f_EditFax(document.getElementById("id_Fax"));
} // end function

function f_EditCompanyName(oField)
{
	
	// Something must be entered
	
	if (oField.value.length > 0)
		{
			// ok
			oField.style.backgroundColor = gvBackgroundColorValid;
		}
	else
		{
			gv_ErrorMessages += '\nCompany Name must be entered but has been omitted.';
			oField.style.backgroundColor = gvBackgroundColorError;
		} // end if


} // end function

function f_EditAddress1(oField)
{
	
	// Something must be entered
	
	if (oField.value.length > 0)
		{
			// ok
			oField.style.backgroundColor = gvBackgroundColorValid;
		}
	else
		{
			gv_ErrorMessages += '\nAddress 1 must be entered but has been omitted.';
			oField.style.backgroundColor = gvBackgroundColorError;
		} // end if


} // end function

function f_EditCity(oField)
{
	
	// Something must be entered
	
	if (oField.value.length > 0)
		{
			// ok
			oField.style.backgroundColor = gvBackgroundColorValid;
		}
	else
		{
			gv_ErrorMessages += '\nCity must be entered but has been omitted.';
			oField.style.backgroundColor = gvBackgroundColorError;
		} // end if


} // end function

function f_EditState(oField)
{
	
	// Something must be entered
	
	if (oField.value.length > 0)
		{
			// ok
			oField.style.backgroundColor = gvBackgroundColorValid;
		}
	else
		{
			gv_ErrorMessages += '\nState must be entered but has been omitted.';
			oField.style.backgroundColor = gvBackgroundColorError;
		} // end if


} // end function

function f_EditZipCode(oField)
{
	// get rid of any spaces in the field
	var regExpression = / /g;
	var originalString = oField.value;
	var parsedZipCode = originalString.replace(regExpression, "");
	
	//var parsedZipCode = parseInt(oField.value);
	//alert('zip code field passed: ' + oField.value +
	//      '\nzip code field parsed: ' + parsedZipCode);

	
	// create string version of the parsed integer field
	var stringParsedZipCode = parsedZipCode.toString();
	//alert('stringParsedZipCode.length: ' + stringParsedZipCode.length);
	
	// Something must be entered
	
	if (parsedZipCode.length > 0)
		{
			//if (isNaN(stringParsedZipCode))
			if (isNaN(parsedZipCode))
				{ 
					gv_ErrorMessages += '\nZip Code entered is NOT numeric.';
					oField.style.backgroundColor = gvBackgroundColorError;				
				}
			else
				{
					//if (stringParsedZipCode.length == 5)
					if (parsedZipCode.length == 5)
						{
							// ok
							oField.style.backgroundColor = gvBackgroundColorValid;   	
						}
					else
						{
							gv_ErrorMessages += '\nZip Code entered is NOT five(5) numeric digits.';
							oField.style.backgroundColor = gvBackgroundColorError;										
						}	
				}
		}
	else
		{
			gv_ErrorMessages += '\nZip Code must be entered but has been omitted.';
			oField.style.backgroundColor = gvBackgroundColorError;
		} // end if

} // end function

function f_EditTelephone(oField)
{
	// get rid of any spaces in the field (this converts string to integer)
	//-var parsedTelephone = parseInt(oField.value);
	
	// create string version of the parsed integer field
	//-var stringParsedTelephone = parsedTelephone.toString();
	//alert('unparsed initial phone: ' + oField.value);
	// get rid of "-" in phone field
	var regExpression = /-/g;
	var originalString;
	var newString;
	originalString = oField.value;
	newString = originalString.replace(regExpression, "");
	
	// get rid of ")" in phone field
	regExpression = /\)/g;
	originalString = newString;
	newString = originalString.replace(regExpression, "");
	
	// get rid of "(" in phone field
	regExpression = /\(/g;
	originalString = newString;
	newString = originalString.replace(regExpression, "");
	
	// get rid of " " in phone field
	regExpression = / /g;
	originalString = newString;
	newString = originalString.replace(regExpression, "");
	
	//alert('reformatted phone: ' + newString);
	
	// Something must be entered
	if (oField.value.length > 0)
		{
			if (isNaN(newString))
				{ 
					gv_ErrorMessages += '\nTelephone entered is NOT numeric.';
					oField.style.backgroundColor = gvBackgroundColorError;				
				}
			else
				{
					if (newString.length == 10)
						{
							// ok
							oField.style.backgroundColor = gvBackgroundColorValid; 
							oField.value = newString; 	
						}
					else
						{
							gv_ErrorMessages += '\nTelephone entered is NOT ten(10) numeric digits.';
							oField.style.backgroundColor = gvBackgroundColorError;										
						}	
				}
		}
	else
		{
			gv_ErrorMessages += '\nTen digit Telephone number must be entered but has been omitted.';
			oField.style.backgroundColor = gvBackgroundColorError;
		} // end if	

} // end function

function f_EditPointOfContact_Email(oField)
{
	
	// Something must be entered
	
	if (oField.value.length > 0)
		{
			if (oField.value.indexOf("@", 0) == -1  ||  oField.value.indexOf(".", 0) == -1)
				{
					gv_ErrorMessages += '\nContact eMail is not a valid format.';
					oField.style.backgroundColor = gvBackgroundColorError;
				}
			else
				{
					// ok
					oField.style.backgroundColor = gvBackgroundColorValid;	
				}	
			
		}
	else
		{
			gv_ErrorMessages += '\nContact eMail must be entered but has been omitted.';
			oField.style.backgroundColor = gvBackgroundColorError;
		} // end if


} // end function


function f_EditPointOfContact_Name(oField)
{
	
	// Something must be entered
	
	if (oField.value.length > 0)
		{
			// ok
			oField.style.backgroundColor = gvBackgroundColorValid;
		}
	else
		{
			gv_ErrorMessages += '\nContact Name must be entered but has been omitted.';
			oField.style.backgroundColor = gvBackgroundColorError;
		} // end if


} // end function

function f_EditSolicitationNumber(oField)
{
	
	// Something must be entered
	
	if (oField.value.length > 0)
		{
			// ok
			oField.style.backgroundColor = gvBackgroundColorValid;
		}
	else
		{
			gv_ErrorMessages += '\nSolicitation Number must be entered but has been omitted.';
			oField.style.backgroundColor = gvBackgroundColorError;
		} // end if

} // end function

function f_EditZipPlus4(oField)
{
	var regExpression = / /g;
	var originalString;
	var newString;
	originalString = oField.value;
	newString = originalString.replace(regExpression, "");
	//alert('newString: ' + newString);
			
	//-----------------------------------------------------------------------
	//               optional field length detection note
	// note - use original field NOT parsed/stringed field as length is wrong
	//-----------------------------------------------------------------------
	if (newString.length > 0)
		{
			if (isNaN(newString))
				{ 
					gv_ErrorMessages += '\nZip Plus 4 entered: ' + newString + ' is NOT numeric.';
					oField.style.backgroundColor = gvBackgroundColorError;				
				}
			else
				{
					if (newString.length == 4)
						{
							// ok
							oField.style.backgroundColor = gvBackgroundColorValid;   	
							oField.value = newString;
						}
					else
						{
							gv_ErrorMessages += '\nZip Plus 4 entered: ' + newString + ' is NOT four(4) numeric digits.';
							oField.style.backgroundColor = gvBackgroundColorError;										
						}	
				}
		}
	else
		{
			// ok - optional field
		} // end if
		

} // end function

function f_EditFax(oField)
{
	// get rid of any spaces in the field (this converts string to integer)
	//-var parsedTelephone = parseInt(oField.value);
	
	// create string version of the parsed integer field
	//-var stringParsedTelephone = parsedTelephone.toString();
	//alert('unparsed initial phone: ' + oField.value);
	// get rid of "-" in phone field
	var regExpression = /-/g;
	var originalString;
	var newString;
	originalString = oField.value;
	newString = originalString.replace(regExpression, "");
	
	// get rid of ")" in phone field
	regExpression = /\)/g;
	originalString = newString;
	newString = originalString.replace(regExpression, "");
	
	// get rid of "(" in phone field
	regExpression = /\(/g;
	originalString = newString;
	newString = originalString.replace(regExpression, "");
	
	// get rid of " " in phone field
	regExpression = / /g;
	originalString = newString;
	newString = originalString.replace(regExpression, "");
	
	//alert('reformatted fax: ' + newString);
	//alert('reformatted fax.length: ' + newString.length);
	//alert('oField.value.length: ' + oField.value.length);
	
	// Something must be entered
	if (newString.length > 0)
		{
			if (isNaN(newString))
				{ 
					gv_ErrorMessages += '\nFax entered: ' + newString + ' is NOT numeric.';
					oField.style.backgroundColor = gvBackgroundColorError;				
				}
			else
				{
					if (newString.length == 10)
						{
							// ok
							oField.style.backgroundColor = gvBackgroundColorValid; 
							oField.value = newString; 	
						}
					else
						{
							gv_ErrorMessages += '\nFax entered:'  + newString + ' is NOT ten(10) numeric digits.';
							oField.style.backgroundColor = gvBackgroundColorError;										
						}	
				}
		}
	else
		{
			// ok - optional field
		} // end if	


} // end function