var onerror = handleErrors;

function handleErrors(errorMessage, url, line)
{
	var msg;
	msg = "There was an error on this page.\n\n";
	msg += "An internal programming error may keep\n";
	msg += "this page from displaying properly.\n";
	msg += "Click OK to continue.\n\n";
	msg += "Error message: " + errorMessage + "\n";
	msg += "URL: " + url + "\n";
	msg += "Line #: " + line;
	//alert(msg);
	return true
}

function FormatLinks()
 {
    var links = document.getElementsByTagName
        ? document.getElementsByTagName( "a" )
        : document.links;
    for( var i = 0; i < links.length; i++ ) 
    {
        var link = links[ i ];
        if(link.host)
        {
			if((link.host != "dayton.mostmetro.com") && (link.host != "daytonblogs.mostmetro.com"))
			{
				link.target = "_blank";
			}
		}        
    }
}


function CheckNumber(item)
{
	if (isNaN(item.value))
	{
		alert("Please enter a numerical value.");
		item.value = "1";
	}
	return true;
}

function isZIP(field) 
{
	var valid = "0123456789-";
	var hyphencount = 0;

	if (field.length!=5 && field.length!=10)
	 {
		return false;
	}
	
	for (var i=0; i < field.length; i++) 
	{
		temp = "" + field.substring(i, i+1);
		if (temp == "-") hyphencount++;
		if (valid.indexOf(temp) == "-1") 
		{
			return false;
		}
		if ((hyphencount > 1) || ((field.length==10) && ""+field.charAt(5)!="-")) 
		{
			alert("The hyphen character should be used with a properly formatted 5 digit+four zip code, like '12345-6789'.   Please try again.");
			return false;
  		 }
	}
	return true;
}

var blnSubmitted = false;
var intValidationErrors = 0;

function ValidateField(obj, MinLength, MaxLength, InputType, Message)
{
	if ((intValidationErrors == 0)&&(obj)){

		if ((obj.type == "text")||(obj.type == "textarea")||(obj.type == "password"))
		{
			if ((obj.value.length < MinLength)||(obj.value.length > MaxLength)) 
			{
				alert(Message);
				obj.select();
				obj.focus();
				intValidationErrors = intValidationErrors + 1;
			}

			else if (InputType == "number")
			{	
				if (isNaN(obj.value))
				{
					alert("Please enter a numerical value.");
					obj.select();
					obj.focus();
					intValidationErrors = intValidationErrors + 1;
				}
			}
	
			else if (InputType == "email")
			{
				if (!isEmail(obj.value))
				{
					alert("Please enter a valid email address.");
					obj.select();
					obj.focus();
					intValidationErrors = intValidationErrors + 1;
				}
			}
			
			else if (InputType == "date")
			{
				if (!IsDate(obj.value))
				{
					alert("Please enter a valid date (MM/DD/YYYY).");
					obj.select();
					obj.focus();
					intValidationErrors = intValidationErrors + 1;
				}
			}
			else if (InputType == "zip")
			{
				if (!isZip(obj.value))
				{
					
				}
			}
		}
		
		else if (obj.type == "select-one")
		{
			if (GetSelList(obj) == "")
			{
				alert(Message);
				obj.focus();
				intValidationErrors = intValidationErrors + 1;
			}
		}
		
		else if (obj.type == "select-multiple")
		{
			if (GetSelList(obj) == "")
			{
				alert(Message);
				obj.focus();
				intValidationErrors = intValidationErrors + 1;
			}
		}
		
		else if (obj.type == "radio")
		{
			if (GetRadio_List(obj) == "")
			{
				alert(Message);
				obj[0].focus();
				intValidationErrors = intValidationErrors + 1;
			}
		}
		
		else if (obj.type == "checkbox")
		{
			if (GetCheckbox_List(obj) == "")
			{
				alert(Message);
				obj[0].focus();
				intValidationErrors = intValidationErrors + 1;
			}
		}
	}	
}

function MatchFields(obj1, obj2, strMessage)
{
	if ((obj1.value != obj2.value)&&(intValidationErrors == 0))
	{
		alert(strMessage);
		obj2.select();
		obj2.focus();
		intValidationErrors = intValidationErrors + 1;
	}	
}

function IsDate(thedate)
{
	//Only validate date if there is a value
	if (thedate.length > 0)
	{
		// Check length of text value
		if (thedate.length != 10)
		{
			return false;
		}
		
		// Find delimiter
		else if (thedate.indexOf("/") != -1)
		{
			var sdate = thedate.split("/")
	
			// Check the length of sdate... if it is not equal to 3, there is a problem
			if (sdate.length != 3) { return false; }
	
			// SR 05/31/2001
			// Check to make sure month is a length of 2
			if (sdate[0].length != 2 || isNaN(sdate[0]) || sdate[0] < 0) { return false; }
			
			// Check to make sure day is a length of 2
			if (sdate[1].length != 2 || isNaN(sdate[1]) || sdate[1] < 0) { return false; }
	
			// Check to make sure year is a length of 4
			if (sdate[2].length != 4 || isNaN(sdate[2]) || sdate[2] < 0) {	return false; }
	
		}
		else
		{
			return false;
		}
	
		// Attempt to construct JavaScript date
		var JSDate = new Date(Date.parse(thedate))
		
		var month = JSDate.getMonth()+1;
		var day = JSDate.getDate();
		var year = JSDate.getYear();
	
		// Do we have valid numbers for the date parts?
		if (isNaN(month) || isNaN(day) || isNaN(year))
		{
			return false;
		}
	
		// Fix for year 2000
		if (navigator.appVersion.indexOf("MSIE") > -1 || (navigator.appName == "Netscape" && parseInt(navigator.appVersion.charAt(0)) <= 3))
		{
			if (year < 100) year += 1900;
		}
		if (navigator.appName == "Netscape" && parseInt(navigator.appVersion.charAt(0)) >= 4)
		{
			year += 1900;
		}
	
		// Re-assemble date
		var theDate1 = (month) + "/" + (day) + "/" + (year);
		var theDate2 = (Math.abs(sdate[0])) + "/" + (Math.abs(sdate[1])) + "/" + (Math.abs(sdate[2]));
	
		if (theDate1 != theDate2)
		{
			return false;
		}
	}
	return true;
}

function GetSelList(list) 
{
	var value = "";
	for (var i = 0; i < list.length; i++) 
	{
		if (list[i].selected) 
		{
			value = list[i].value;
		}
	}
	return value;
}

function GetSelList_Option(list)
{
	var value = "";
	for (var i = 0; i < list.length; i++) 
	{
		if (list[i].selected) 
		{
			value = list[i].text;
		}
	}
	return value;
}

function GetSelList_Text(list) 
{
	return list.options[list.options.selectedIndex].text;
}

function GetRadio(item)
{
	var value = "";
	if (item.checked) 
	{
		value = item.value;
	}
	return value;
}

function GetRadio_List(list)
{
	var value = "";
	for (var i = 0; i < list.length; i++) 
	{
		if (list[i].checked) 
		{
			value = list[i].value;
		}
	}
	return value;
}


function GetCheckbox(item)
{
	var value = "";
	if (item.checked) 
	{
		value = item.value;
	}
	return value;
}

function GetCheckbox_List(list)
{
	var value = "";
	if (list.length)
	{
		for (var i = 0; i < list.length; i++) 
		{
			if (list[i].checked) 
			{
				value = value + list[i].value + ",";
			}
		}
	}
	else
	{
		value = GetCheckbox(list);
	}
	return value;
}

function SetSelList(list, setval) 
{
	// Set the selected list item's value
	
	if (setval == "")
	{
		list[0].selected = true;
	}
	else
	{
		for (var i = 0; i < list.length; i++) 
		{
			if (list[i].value == setval) 
			{
				list[i].selected = true;
			}
		}
	}
}

function isEmail(emailStr) 
{
	var checkTLD=1;
	var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;
	var emailPat=/^(.+)@(.+)$/;
	var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
	var validChars="\[^\\s" + specialChars + "\]";
	var quotedUser="(\"[^\"]*\")";
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
	var atom=validChars + '+';
	var word="(" + atom + "|" + quotedUser + ")";
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
	var matchArray=emailStr.match(emailPat);

	if (matchArray==null) {
		//alert("Email address seems incorrect (check @ and .'s)");
		return false;
	}

	var user=matchArray[1];
	var domain=matchArray[2];

	for (i=0; i<user.length; i++) {
		if (user.charCodeAt(i)>127) {
			//alert("The username contains invalid characters.");
			return false;
		}
	}

	for (i=0; i<domain.length; i++) {
		if (domain.charCodeAt(i)>127) {
			//alert("The domain name contains invalid characters.");
			return false;
		}
	}
 
	if (user.match(userPat)==null) {
		//alert("The username doesn't seem to be valid.");
		return false;
	}

	var IPArray=domain.match(ipDomainPat);
	
	if (IPArray!=null) {

		for (var i=1;i<=4;i++) {
			if (IPArray[i]>255) {
				//alert("Destination IP address is invalid!");
				return false;
			}
		}
	
		return true;
	}

	var atomPat=new RegExp("^" + atom + "$");
	var domArr=domain.split(".");
	var len=domArr.length;
	
	for (i=0;i<len;i++) {
		if (domArr[i].search(atomPat)==-1) {
			//alert("The domain name does not seem to be valid.");
			return false;
		}
	}

	if (checkTLD && domArr[domArr.length-1].length!=2 && 
		domArr[domArr.length-1].search(knownDomsPat)==-1) {
		//alert("The address must end in a well-known domain or two letter " + "country.");
		return false;
	}

	if (len<2) {
		//alert("This address is missing a hostname!");
		return false;
	}

	return true;
}

function ResetForm(intForm)
{
	var elementarray = document.forms[intForm].elements;
	for(var i = 0; i < elementarray.length; i++)
	{
		// for each element of the form...
		with(elementarray[i]) 
		{
			if(type == "text")
			{
				value = "";
			}
			else if(type == "select-one")
			{
				elementarray[i][0].selected = true;
			}
			else if((type == "radio")||(type == "checkbox"))
			{
				checked = false;
			}
		}
	}
}

function ToggleCheckBoxes(objElement, blnChecked)
{
	for(var i = 0; i < objElement.length; i++)
	{
		objElement[i].checked = blnChecked;
	}
}

function formatCurrency(num) 
{
	num = num.toString().replace(/\$|\,/g,'');
	if(isNaN(num))
		num = "0";
		sign = (num == (num = Math.abs(num)));
		num = Math.floor(num*100+0.50000000001);
		cents = num%100;
		num = Math.floor(num/100).toString();
	if(cents<10)
		cents = "0" + cents;
	for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
		num = num.substring(0,num.length-(4*i+3))+','+
		num.substring(num.length-(4*i+3));
	return (((sign)?'':'-') + num + '.' + cents);
}

var newWindow;

function PopupPage(url, width, height, menubar)
{
	var strMenubar;
	if (menubar){strMenubar="yes"}
	else{strMenubar="no"}
	
	// Find left and top coordinates to center window
	if (navigator.appVersion.indexOf("MSIE") > -1 || (navigator.appName == "Netscape" && parseInt(navigator.appVersion.charAt(0)) >= 4))
	{
		var h = (screen.availHeight - height) / 2;
		var w = (screen.availWidth - width) / 2;
		var center = ",top=" + h + ",left=" + w;
	}
		
	// Is there a search window open now?
	if (!newWindow || newWindow.closed)
	{
		winSurvey = window.open(url,"newWindow","resizable=yes,scrollbars=yes,toolbar=" + strMenubar + ",location=" + strMenubar + ",directories=no,status=" + strMenubar + ",menubar=" + strMenubar + ",height=" + height + ",width=" + width + center);
	}
	else	
	{
		// Close current search window and spawn another
		newWindow.close();
		newWindow = window.open(url,"newWindow","resizable=yes,scrollbars=yes,toolbar=" + strMenubar + ",location=" + strMenubar + ",directories=no,status=" + strMenubar + ",menubar=" + strMenubar + ",height=" + height + ",width=" + width + center);
	}
}

function PopupCalendar(element) {
	// define URL for new window
	var url = "http://www.traxteam.net/seldate.asp?element=" + element
	var center = "";
		
	// Find left and top coordinates to center window
	if (navigator.appVersion.indexOf("MSIE") > -1 || (navigator.appName == "Netscape" && parseInt(navigator.appVersion.charAt(0)) >= 4)) {
		var h = (screen.availHeight - 385) / 2;
		var w = (screen.availWidth - 375) / 2;
		var center = ",top=" + h + ",left=" + w;
	}
	
	if (!newWindow || newWindow.closed) {
		newWindow = window.open(url,"","resizable=yes,scrollbars=yes,toolbar=no,location=no,directories=no,status=no,menubar=no,height=385,width=375" + center)
		if (!newWindow.opener) {
			newWindow.opener = window
		}
	} else {
		// window's already open; bring to front
		newWindow.focus();
	}
}

// Set image objects for node icons
var Search_OpenImg = new Image();
Search_OpenImg.src = "http://intranetbeta.cranepumps.com/images/toggle_close.gif";
var Search_ClosedImg = new Image();
Search_ClosedImg.src = "http://intranetbeta.cranepumps.com/images/toggle_open.gif";

// Collapse/Expand child menu item and toggle node icon
function Search_ShowBranch(trigger,branch)
{
	// Set parent item object
	var objTriggerImg = document.getElementById(trigger);
	// Set child item object
	var objBranch = document.getElementById(branch).style;
	// If the child items are expanded then collapse them
	if(objBranch.display=="block")
	{
		objTriggerImg.src = Search_ClosedImg.src;
		objBranch.display="none";
		
	}
	// If the child items are collapsed then expand them
	else
	{
		objTriggerImg.src = Search_OpenImg.src;
		objBranch.display="block";
	}
}

function ToggleSpan(strSpanItem, blnDisplay)
{
	var objSpanItem = document.getElementById(strSpanItem).style;

	if(!blnDisplay)
	{
		objSpanItem.display="none";
	}
	else
	{
		objSpanItem.display="block";
	}
}

function ToggleCheckBox(strChecked, objList)
{
	for (var i = 0; i < objList.length; i++) 
	{
		objList[i].checked = strChecked;
	}
}

function MoveNext(KeyPressed, FormNumber, ObjVal, TargetVal, NextField)
{
	if ((ObjVal.length == TargetVal)&&(KeyPressed != 9))
	{
		eval("document.forms[" + FormNumber + "]." + NextField + ".focus()");
		eval("document.forms[" + FormNumber + "]." + NextField + ".select()");
	}
}

function ProcessField(obj, type)
{
	if (type=="focus")
	{
		obj.style.background = "#f2ffff";
		obj.style.color = "#000000";
	}
	else
	{
		obj.style.background = "#ffffff";
		obj.style.color = "#000000";
	}
}

var arrayOfRolloverClasses = new Array();
var arrayOfClickClasses = new Array();
var activeRow = false;
var activeRowClickArray = new Array();
	
function highlightTableRow()
{
	var tableObj = this.parentNode;
	if(tableObj.tagName!='TABLE')tableObj = tableObj.parentNode;

	if(this!=activeRow){
		this.setAttribute('origCl',this.className);
		this.origCl = this.className;
	}
	this.className = arrayOfRolloverClasses[tableObj.id];
		
	activeRow = this;
		
}
	
function clickOnTableRow()
{
	var tableObj = this.parentNode;
	if(tableObj.tagName!='TABLE')tableObj = tableObj.parentNode;		
		
	if(activeRowClickArray[tableObj.id] && this!=activeRowClickArray[tableObj.id]){
		activeRowClickArray[tableObj.id].className='';
	}
	this.className = arrayOfClickClasses[tableObj.id];
		
	activeRowClickArray[tableObj.id] = this;
				
}
	
function resetRowStyle()
{
	var tableObj = this.parentNode;
	if(tableObj.tagName!='TABLE')tableObj = tableObj.parentNode;

	if(activeRowClickArray[tableObj.id] && this==activeRowClickArray[tableObj.id]){
		this.className = arrayOfClickClasses[tableObj.id];
		return;	
	}
		
	var origCl = this.getAttribute('origCl');
	if(!origCl)origCl = this.origCl;
	this.className=origCl;
		
}
		
function addTableRolloverEffect(tableId,whichClass,whichClassOnClick)
{
	arrayOfRolloverClasses[tableId] = whichClass;
	arrayOfClickClasses[tableId] = whichClassOnClick;
		
	var tableObj = document.getElementById(tableId);
	var tBody = tableObj.getElementsByTagName('TBODY');
	if(tBody){
		var rows = tBody[0].getElementsByTagName('TR');
	}else{
		var rows = tableObj.getElementsByTagName('TR');
	}
	for(var no=0;no<rows.length;no++){
		rows[no].onmouseover = highlightTableRow;
		rows[no].onmouseout = resetRowStyle;
			
		if(whichClassOnClick){
			rows[no].onclick = clickOnTableRow;	
		}
	}
		
}

if(window.attachEvent)
    window.attachEvent("onload",setListeners);

  function setListeners(){
    inputList = document.getElementsByTagName("INPUT");
    for(i=0;i<inputList.length;i++){
      inputList[i].attachEvent("onpropertychange",restoreStyles);
      inputList[i].style.backgroundColor = "";
    }
    selectList = document.getElementsByTagName("SELECT");
    for(i=0;i<selectList.length;i++){
      selectList[i].attachEvent("onpropertychange",restoreStyles);
      selectList[i].style.backgroundColor = "";
    }
  }

  function restoreStyles(){
    if(event.srcElement.style.backgroundColor != "")
      event.srcElement.style.backgroundColor = "";
  }
  
  function ToggleRow(objTD, strBGColor, strTextColor)
{
	if (objTD)
	{
		objTD.style.backgroundColor = strBGColor;
		objTD.style.color = strTextColor;
	}
}

function KeywordSearch()
{
	var theform = document.frm_KeywordSearch;
	var strRootPath = theform.RootPath.value;
	var intKeywordType = GetSelList(theform.KeywordType);
	var strKeyword = theform.Keyword.value;
	strKeyword = strKeyword.replace(' ', '+');
	strKeyword = strKeyword.replace('"', '%22');
	
	if (intKeywordType == 1)
	{
		theform.action = strRootPath + "/userdirectory_list.asp";
		return true;
	}
	else if (intKeywordType == 2)
	{
		theform.action = strRootPath + "/searchlink_list.asp";
		return true;
	}
	else
	{
		PopupPage('http://www.google.com/search?q=' + strKeyword, 800, 600, true);
		return false;
	}	
}

function ToggleRow(objTD, strBGColor, strTextColor)
{
	if (objTD)
	{
		objTD.style.backgroundColor = strBGColor;
		objTD.style.color = strTextColor;
	}
}

function CheckMax(objTextArea, intMax, strSpanItem)
{
	if(objTextArea.value.length > intMax)
	{
		objTextArea.value = objTextArea.value.substr(0, intMax);
	}
	
	if (strSpanItem != "")
	{
		document.getElementById(strSpanItem).	innerHTML = intMax - objTextArea.value.length;
	}
}

function formatCurrency(num, blnSymbol) 
{
	num = num.toString().replace(/\$|\,/g,'');
	if(isNaN(num))
	num = "0";
	sign = (num == (num = Math.abs(num)));
	num = Math.floor(num*100+0.50000000001);
	cents = num%100;
	num = Math.floor(num/100).toString();
	if(cents<10)
	cents = "0" + cents;
	for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
	num = num.substring(0,num.length-(4*i+3))+','+
	num.substring(num.length-(4*i+3));
	if (blnSymbol)
	{
		return (((sign)?'':'-') + '$' + num + '.' + cents);
	}
	else
	{
		return (num + '.' + cents);
	}
}

function roundNumber(num, dec) 
{
	var result = Math.round(num*Math.pow(10,dec))/Math.pow(10,dec);
	return result;
}
  //-->

