/*Utility.js
Hold functions that can be used across different forms.*/

// JavaScript Document
//set field bg error color here
var errColor = "#FFE18F";
var validColor = "";

/********************************************************
FUNCTION:		msgBuilder

AUTHOR:			(adapted from) dherold

DESCRIPTION: 	This function builds a list of messages
				inside a div which name is passsed in.  
				Used when validating forms.

PARAMETERS: 	msgArray 	an array of messages.
				blnShow 	should the messages be displayed
							or hidden.
				msgDivName	name of the div to display.

**********************************************************/
function msgBuilder(msgArray, blnShow, divName)
{

	var objDiv = document.getElementById(divName);
	
	if(blnShow)
	{
		
		strInnerHTML = "<div class='err'><h5>Validation Errors:</h5><ol>";
		
		//place each message inside an html li tag
		for(i=0; i<msgArray.length; i++){
		
			strInnerHTML = strInnerHTML + "<li>" + msgArray[i] + "</li>";
		}
		
		strInnerHTML = strInnerHTML + "</ol></div>";
		
		objDiv.innerHTML = strInnerHTML;
		objDiv.style.visibility = 'visible';
	}
	else{
		objDiv.style.visibility = 'hidden';
	}
	
}

/********************************************************
FUNCTION:		trimAll

AUTHOR:			(adapted from) dherold

DESCRIPTION: 	This function strips whitespace from a value

PARAMETERS: 	strValue 	value to strip whitespace

**********************************************************/
function trimAll( strValue ) {
	var objRegExp = /^(\s*)$/;
	//check for all spaces
	if(objRegExp.test(strValue)){
	   strValue = strValue.replace(objRegExp, '');
	   if( strValue.length == 0)
		  return strValue;
	}

   //check for leading & trailing spaces
   objRegExp = /^(\s*)([\W\w]*)(\b\s*$)/;
   if(objRegExp.test(strValue)) {
	   //remove leading and trailing whitespace characters
	   strValue = strValue.replace(objRegExp, '$2');
	}
  return strValue;
}
	
/**************************************************************

Function : validateZip

**************************************************************/
function validateZIP(field) {
	var valid = "0123456789-";
	var hyphencount = 0;
	
	if (field.value.length!=5 && field.value.length!=10 && trimAll(field.value) != '') {
		//field.style.backgroundColor = errColor;
		return false;
	}
	
	for (var i=0; i < field.value.length; i++) {
		temp = "" + field.value.substring(i, i+1);
		if (temp == "-") {
			hyphencount++;
		}
		if (valid.indexOf(temp) == "-1") {
			//field.style.backgroundColor = errColor;
			return false;
					}
		if ((hyphencount > 1) || ((field.value.length==10) && ""+field.value.charAt(5)!="-")) {
			//field.style.backgroundColor = errColor;
			return false;
		}
	}
	if(field.value.match("-") != null){
		arrStr = field.value.split("-");
		if((arrStr[1] == 0000) || (arrStr[1] == 9999)){
			//field.style.backgroundColor = errColor;
			return false;
			
		}
	}
	return true;
}

/**************************************************************

Function Round

**************************************************************/
function round(number,X) {
	// rounds number to X decimal places, defaults to 2
	X = (!X ? 2 : X);
	return Math.round(number*Math.pow(10,X))/Math.pow(10,X);
}