//================================================================================

function openOfficerWindow(strPage)
{
	var k = window.open("officers/" + strPage,null,"height=400,width=500,status=no,toolbar=no,menubar=no,location=no,top=100,scrollbars=yes, left=100");
	k.focus();
}


var validationList = new Array();



function initValidationList()

{

	validationList = new Array();

	

	//if(!setupFormValidation) eval("function setupFormValidation(){}");

	//if(!buildCustomErrorString) eval("function buildCustomErrorString(){	return '';}");

	//alert(buildCustomErrorString)

 	

}


function officerMouseOver(x,y)
{
	        
	var clickMeSpan = document.getElementById("spnClickMe");
	if(clickMeSpan.style.display!="block")
	{
		clickMeSpan.style.display="block";
		clickMeSpan.style.left=x;
		clickMeSpan.style.top=y;
		setTimeout("officerMouseOut()",1000);
	}
	
	
}

function officerMouseOut()
{
	        
	var clickMeSpan = document.getElementById("spnClickMe");
	clickMeSpan.style.display="none";
	
}

function officerMouseOver2(x,y)
{
	        
	var clickMeSpan = document.getElementById("spnClickMe2");
	if(clickMeSpan.style.display!="block")
	{
		clickMeSpan.style.display="block";
		clickMeSpan.style.left=x;
		clickMeSpan.style.top=y;
		setTimeout("officerMouseOut2()",1000);
	}
}

function officerMouseOut2()
{
	        
	var clickMeSpan = document.getElementById("spnClickMe2");
	clickMeSpan.style.display="none";
	
}


//================================================================================





function FormField()

{

	var StrFieldName;

	var BitRequired;

	var StrFieldDisplayName;

	var IntFieldType;

}	



//================================================================================





var STRING = 10;

var DATE = 20;

var INT = 30;

var FLOAT = 40;

var EMAIL = 50;

var WEBADDRESS = 60;

var DIGITSTRING= 70;

function validateStringField(strFieldName, bitRequired, strFieldDisplayName)

{

	if(!strFieldName)

		throw "strFieldName is required.";

	

	

	if(!strFieldDisplayName)

		throw "strFieldDisplayName is required.";

	

	ff = new FormField();

	ff.StrFieldName = strFieldName;

	ff.BitRequired = bitRequired;

	ff.StrFieldDisplayName = strFieldDisplayName;

	ff.IntFieldType = STRING;

	validationList.push(ff);

}



//================================================================================





function validateDateField(strFieldName, bitRequired, strFieldDisplayName)

{

	if(!strFieldName)

		throw "strFieldName is required.";

	

	

	if(!strFieldDisplayName)

		throw "strFieldDisplayName is required.";

	

	ff = new FormField();

	ff.StrFieldName = strFieldName;

	ff.BitRequired = bitRequired;

	ff.StrFieldDisplayName = strFieldDisplayName;

	ff.IntFieldType = DATE;

	

	validationList.push(ff);

}	



//================================================================================



function validateIntField(strFieldName, bitRequired, strFieldDisplayName)

{

	if(!strFieldName)

		throw "strFieldName is required.";





	if(!strFieldDisplayName)

		throw "strFieldDisplayName is required.";



	ff = new FormField();

	ff.StrFieldName = strFieldName;

	ff.BitRequired = bitRequired;

	ff.StrFieldDisplayName = strFieldDisplayName;

	ff.IntFieldType = INT;



validationList.push(ff);

}	



//================================================================================



function validateFloatField(strFieldName, bitRequired, strFieldDisplayName)

{

	if(!strFieldName)

		throw "strFieldName is required.";





	if(!strFieldDisplayName)

		throw "strFieldDisplayName is required.";



	ff = new FormField();

	ff.StrFieldName = strFieldName;

	ff.BitRequired = bitRequired;

	ff.StrFieldDisplayName = strFieldDisplayName;

	ff.IntFieldType = FLOAT;



	validationList.push(ff);

}	



//================================================================================



function validateEmailField(strFieldName, bitRequired, strFieldDisplayName)

{

	if(!strFieldName)

		throw "strFieldName is required.";





	if(!strFieldDisplayName)

		throw "strFieldDisplayName is required.";



	ff = new FormField();

	ff.StrFieldName = strFieldName;

	ff.BitRequired = bitRequired;

	ff.StrFieldDisplayName = strFieldDisplayName;

	ff.IntFieldType = EMAIL;



	validationList.push(ff);

}	



//================================================================================



function validateWebAddressField(strFieldName, bitRequired, strFieldDisplayName)

{

	if(!strFieldName)

		throw "strFieldName is required.";





	if(!strFieldDisplayName)

		throw "strFieldDisplayName is required.";



	ff = new FormField();

	ff.StrFieldName = strFieldName;

	ff.BitRequired = bitRequired;

	ff.StrFieldDisplayName = strFieldDisplayName;

	ff.IntFieldType = WEBADDRESS;



	validationList.push(ff);

}	



//================================================================================



function validateDigitStringField(strFieldName, bitRequired, strFieldDisplayName)

{

	if(!strFieldName)

		throw "strFieldName is required.";





	if(!strFieldDisplayName)

		throw "strFieldDisplayName is required.";



	ff = new FormField();

	ff.StrFieldName = strFieldName;

	ff.BitRequired = bitRequired;

	ff.StrFieldDisplayName = strFieldDisplayName;

	ff.IntFieldType = DIGITSTRING;



	validationList.push(ff);

}	



//================================================================================



function strltrim() {

    //Match spaces at beginning of text and replace with a null string

    return this.replace(/^\s+/,'');

}

//================================================================================

function strrtrim() {

    //Match spaces at end of text and replace with a null string

    return this.replace(/\s+$/,'');

}

//================================================================================

function strtrim() {

    //Match spaces at beginning and end of text and replace

    //with null strings

    return this.replace(/^\s+/,'').replace(/\s+$/,'');

}

//================================================================================

String.prototype.LeftTrim = strltrim;

String.prototype.RightTrim = strrtrim;

String.prototype.Trim = strtrim;    

//================================================================================

function isDate(strDate)

{

	return _isDate(strDate);

}

//================================================================================

function isValidDate(strDate)

{

	return _isDate(strDate);

}

//================================================================================

function _isDate(strDate)

{

	if(strDate == null || strDate.Trim()=="")

	return false;



	var re

	re = /^((\d{2})|(\d))\/((\d{2})|(\d))\/((\d{4})|(\d{2}))$/



	return strDate.Trim().match(re);

}



//================================================================================

function isInteger(strInt)

{

	if(strInt == null || strInt.Trim()=="")

	return false;

	

	if(strInt.Trim() == "0")

		return true;



	var re

	re = /^[-+]?[1-9]\d*\.?[0]*$/



	return strInt.Trim().match(re);

}



//================================================================================



function isDigitString(str)

{



	var re;

	re = /^[0-9]*$/



	return str.match(re);



}



//================================================================================



function isFloat(strFloat)

{

	if(strFloat == null || strFloat.Trim()=="")

	return false;



	var re

	re = /^(\d|-)?(\d|,)*\.?\d*$/



	return strFloat.Trim().match(re);

}



//================================================================================

/*

function isFloat(s){

	var r = /^[0-9.]*$/; 

	if (!r.test(s.value)) {

		return false;

	}

	return true;

}

*/

//================================================================================



function isEmail(strEmail)

{

	if(strEmail == null || strEmail.Trim()=="")

	return false;



	var re

	re = /^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/



	return strEmail.Trim().match(re);

}



//================================================================================

function isWebAddress(str)

{

	if(str == null || str.Trim()=="")

	return false;



	var re

	re = new RegExp("^(((ht|f)tp(s?))\://)?(www.|[a-zA-Z].)[a-zA-Z0-9\-\.]+\.(com|edu|gov|mil|net|org|biz|info|name|museum|us|ca|uk)(\:[0-9]+)*(/($|[a-zA-Z0-9\.\,\;\?\'\\\+&%\$#\=~_\-]+))*$");



	return str.Trim().match(re);

}



//================================================================================



function isMapKey(str)

{

	if(str == null || str.Trim()=="")

	return false;



	var re

	re = /^[A-Za-z]{1,3}-\d\d\d\S*$/;



	return str.Trim().match(re);

}



//================================================================================



function getFieldByName(objForm, strFieldName)

{

	var i;

	var strCurrent;

	for(i=0;  i<objForm.elements.length;  i++)

	{

		strCurrent = objForm.elements[i].name;

		if(strCurrent == strFieldName)

		{

			return objForm.elements[i];

		}			

	}



	return null;

}



//================================================================================



function formIsOkay(objForm)

{		

    initValidationList();	

	setupFormValidation();	

	

	var i;

	var errorString = "";

	for(i=0;  i<validationList.length;  i++)

	{

		var objField =getFieldByName(objForm, validationList[i].StrFieldName);

		if(objField == null)

		{

			alert("Application Error : field " + validationList[i].StrFieldName + " does not exist.");										

		}else{

		

			var strFieldValue = objField.value.Trim();

			if(validationList[i].BitRequired && strFieldValue == "")

			{

				errorString += " - '"  +validationList[i].StrFieldDisplayName+ "' is required.\n";				

			}			

			

			if(strFieldValue != "")

			{

					if(validationList[i].IntFieldType == DATE && !isDate(strFieldValue) )

					{

						errorString += " - '"  +validationList[i].StrFieldDisplayName+ "' must contain a valid date value. (MM/DD/YY) \n";												

					}

					else if(validationList[i].IntFieldType == INT && !isInteger(strFieldValue) )

					{

						errorString += " - '"  +validationList[i].StrFieldDisplayName+ "' must be a valid integer. \n";												

					}

					//else if(validationList[i].IntFieldType == FLOAT && !isFloat(strFieldValue) )

					//{

					//	errorString += " - '"  +validationList[i].StrFieldDisplayName+ "' must be a valid real number. \n";												

					//}

					else if(validationList[i].IntFieldType == EMAIL && !isEmail(strFieldValue) )

					{

						errorString += " - '"  +validationList[i].StrFieldDisplayName+ "' must be a valid e-mail address. \n";												

					}			

					else if(validationList[i].IntFieldType == WEBADDRESS && !isWebAddress(strFieldValue) )

					{

						errorString += " - '"  +validationList[i].StrFieldDisplayName+ "' must be a valid web address. Make sure to start address with http.\n";												

					}			

			}

		}	

	}				

	

	errorString += buildCustomErrorString();

	

	if(errorString != "")

	{

		alert(errorString);

	}

	

	return errorString == "";

}



//================================================================================



function showFormValues()

{

	var objForm = document.forms[0];

	var objElement;

	var strHTML;

	var strLine;

	var objWindow;

	

	strHTML = "";

	strValue = "";

	strLine = "";

	strHTML += "<style>body{font-family:Arial;}  td{font-family:Arial;}</style>";	

	strHTML += "<table border=1>";

	for(i=0; i<objForm.elements.length; i++)

	{

		objElement = objForm.elements[i];		

		strLine =  "<tr>"

		strLine += "<td>" + objElement.name + "</td>";

		strLine += "<td>" + objElement.value + "&nbsp;</td>";

		strLine += "</tr>";

		strHTML += strLine;



	}

	strHTML += "</table>";

	objWindow = window.open();

	objWindow.document.write(strHTML);	

}



//================================================================================



function getVBFormCode()

{

	var objForm = document.forms[0];

	var objElement;

	var strHTML;

	var strLine;

	var objWindow;

	

	strHTML = "";

	strValue = "";

	strLine = "";

	strHTML += "<style>body{font-family:Arial;}  td{font-family:Arial;}</style>";	

	for(i=0; i<objForm.elements.length; i++)

	{

		objElement = objForm.elements[i];		

		strLine =  "<div>"

		strLine += "dim " + objElement.name;

		strLine += "</div>";

		strHTML += strLine;



	}

	

	for(i=0; i<objForm.elements.length; i++)

	{

		objElement = objForm.elements[i];		

		strLine =  "<div>"

		strLine += objElement.name + " = Request.Form(\""+objElement.name+"\") ";

		strLine += "</div>";

		strHTML += strLine;

	}

	

	objWindow = window.open();

	objWindow.document.write(strHTML);	

}



//================================================================================



function fillInTheBlanks()

{

	var objForm = document.forms[0];

	var objElement;

	

	for(i=0; i<objForm.elements.length; i++)

	{

		objElement = objForm.elements[i];	

		if(objElement.type=="text" || objElement.type=="textarea")

		{				

			objElement.value = objElement.name;		

		}

	}		

}



//================================================================================



function initHTMLEdit()

{

	

	_editor_url = "";                     // URL to htmlarea files

	var win_ie_ver = parseFloat(navigator.appVersion.split("MSIE")[1]);

	if (navigator.userAgent.indexOf('Mac')        >= 0) { win_ie_ver = 0; }

	if (navigator.userAgent.indexOf('Windows CE') >= 0) { win_ie_ver = 0; }

	if (navigator.userAgent.indexOf('Opera')      >= 0) { win_ie_ver = 0; }

	if (win_ie_ver >= 5.5) 

	{

		document.write('<scr' + 'ipt src="' +_editor_url+ 'editor.js"');

		document.write(' language="Javascript1.2"></scr' + 'ipt>');  

	} else { 

		document.write('<scr'+'ipt>function editor_generate() { return false; }</scr'+'ipt>'); 

	}



}



//================================================================================



function replace(strToSearch, strToFind, strChangeTo)

{

	var re = new RegExp (strToFind, 'gi') ;

	var newstr = strToSearch.replace(re, strChangeTo) ;

	return newstr;

}



//================================================================================



function limitContentLength(field, maxLength)

{

	 if (field.value.length > maxLength + 1)

		alert('You text must be limited to ' + maxLength + ' characters.');

		

	 if (field.value.length > maxLength)

		field.value = field.value.substring(0, maxLength);								

}



//================================================================================



function getFrequencyInForm(strSomeString,objMainForm)

{

	var intCount = 0;

	for(i=0;  i<objMainForm.elements.length;  i++)

	{

		var fieldValue = objMainForm.elements[i].value;

		if(fieldValue.indexOf(strSomeString) != -1)

		{

			intCount++;		

		}

	}

	

	return intCount;



}



//================================================================================



function getErrorString(objForm)

{

	var i;

	var errorString = "";

	for(i=0;  i<validationList.length;  i++)

	{

		var objField =getFieldByName(objForm, validationList[i].StrFieldName);

		if(objField == null)

		{

			alert("Application Error : field " + validationList[i].StrFieldName + " does not exist.");										

		}else{

		

			var strFieldValue = objField.value.Trim();

			if(validationList[i].BitRequired && strFieldValue == "")

			{

				errorString += " - '"  +validationList[i].StrFieldDisplayName+ "' is required.\n";				

			}			

			

			if(strFieldValue != "")

			{

					if(validationList[i].IntFieldType == DATE && !_isDate(strFieldValue) )

					{

						errorString += " - '"  +validationList[i].StrFieldDisplayName+ "' must contain a valid date value. (MM/DD/YY) \n";												

					}

					else if(validationList[i].IntFieldType == INT && !isInteger(strFieldValue) )

					{

						errorString += " - '"  +validationList[i].StrFieldDisplayName+ "' must be a valid integer. \n";												

					}

					else if(validationList[i].IntFieldType == FLOAT && !isFloat(strFieldValue) )

					{

						errorString += " - '"  +validationList[i].StrFieldDisplayName+ "' must be a valid real number. \n";												

					}

					else if(validationList[i].IntFieldType == EMAIL && !isEmail(strFieldValue) )

					{

						errorString += " - '"  +validationList[i].StrFieldDisplayName+ "' must be a valid e-mail address. \n";												

					}			

					else if(  validationList[i].IntFieldType == WEBADDRESS && !isWebAddress(strFieldValue) )

					{

						errorString += " - '"  +validationList[i].StrFieldDisplayName+ "' must be a valid web address. Make sure to start address with http.\n";												

					}

					else if(  validationList[i].IntFieldType == DIGITSTRING && !isDigitString(strFieldValue) )

					{

						errorString += " - '"  +validationList[i].StrFieldDisplayName+ "' must contain numeric information.\n";																	

					}

			}			

			

		}	

	}					



	return errorString;

}



//================================================================================



function openTSMapByLatLong(intLat,intLong, strCaption)

{

	var strURL;

				

	strURL = "http://terraserver.microsoft.com/addressimage.aspx";

	strURL+= "?t=4";

	strURL+= "&s=10";

	strURL+= "&Lon=" + intLong;

	strURL+= "&Lat=" + intLat;

	strURL+= "&Alon="  + intLong;

	strURL+= "&Alat=" + intLat;

	strURL+= "&w=1";

	strURL+= "&opt=0";

	strURL+= "&ref=A|" + strCaption;

	strURL+= "&random=" + Math.random();

	window.open(strURL, null, "width=850,height=710,location=no,resizable=no,scrollbars=no");			

}				



//================================================================================



function fixXMLChars(str)

{

	//	> 	Begins a tag. 	&gt;

	//	< 	Ends a tag. 	&lt;

	//	" 	Quotation mark. 	&quot;

	//	' 	Apostrophe. 	&apos;

	//	& 	Ampersand.	



	var s	

	s = str;

	s = replace(s, '&', "&amp;");

	s = replace(s, '>', "&gt;")

	s = replace(s, '<', "&lt;")

	s = replace(s, '"', "&quot;")

	s = replace(s, "'", "&apos;");

	

	return s;	

}



//================================================================================



function Browser() {



  var ua, s, i;



  this.isIE    = false;  // Internet Explorer

  this.isNS    = false;  // Netscape

  this.version = null;



  ua = navigator.userAgent;



  s = "MSIE";

  if ((i = ua.indexOf(s)) >= 0) {

    this.isIE = true;

    this.version = parseFloat(ua.substr(i + s.length));

    return;

  }



  s = "Netscape6/";

  if ((i = ua.indexOf(s)) >= 0) {

    this.isNS = true;

    this.version = parseFloat(ua.substr(i + s.length));

    return;

  }



  // Treat any other "Gecko" browser as NS 6.1.



  s = "Gecko";

  if ((i = ua.indexOf(s)) >= 0) {

    this.isNS = true;

    this.version = 6.1;

    return;

  }

}







function stripNonNumericChars(s)

{

	var strNewString = ""

	var i



	if (s==null)

		return s;

	

	for(i=0;  i<s.length;  i++)

	{

		if(s.charAt(i) >= '0' && s.charAt(i) <= '9')

			strNewString += s.charAt(i);

		



	}



	return  strNewString;	

	

}







function getSelectedOptions(objCombo)

{

	var strReturn, z;

	var objList = new Array();



	if(objCombo == null || objCombo.type != "select-multiple")

		return "";



	for(z=0;  z<objCombo.options.length; z++)

		if(objCombo.options[z].selected)

			objList.push(objCombo.options[z].value);



	return objList.toString();

}