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);
}

function formatNumber(num,defaultvalue) {
num = num.toString().replace(/\$|\,/g,'');
if(isNaN(num)){
	num = defaultvalue;
}
return num;
}

function check_for_range(form){
  if (form.daterange.options[form.daterange.selectedIndex].value == "range") {
  document.getElementById("datediv").style.display = "";
  }else{
   document.getElementById("datediv").style.display = "none";
  }

  
} 

function setError(mytext,errType)
{
	newDesc = "";
	fullDesc = "";
	
	if(err == "") errfield = mytext; // ted 01/10/05

	for (xx=0;xx < mytext.length;xx++)
	{
		newDesc = mytext.substr(xx,1);
		newDescUpper = newDesc.toUpperCase();
		if (newDesc == newDescUpper)
			fullDesc += " " + newDesc;
		else
		{
			if (xx == 0)
				fullDesc += newDescUpper;
			else
				fullDesc += newDesc;
		}
	}
	
	if (errType != undefined)
		fullDesc = fullDesc + " " + "( " + errType + " )";
		
	return '- ' + '' + fullDesc+  '' + '\n'; 
}


function isValidEmail(src) {
  var emailReg =  /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,})+$/;
     var regex = new RegExp(emailReg);
     return regex.test(src);
  }

function doCheck(myObject)
{
	myName = myObject.name;
	
	isEmail = false;
	//if (myObject.id.substring( == "email")										 
	if (myObject.id.indexOf("email") > -1 && myObject.value != "")
	{		
		isEmail = true;
		//if ( !isValidEmail( eval("document.form." + myName + ".value") ))
		if ( !isValidEmail(myObject.value)) // ted 3/28/05
			err = err + setError(myObject.name, "not a valid e-mail");
	}
	
	//if ( myObject.id != "no" && myObject.id != "email" && myObject.type != "hidden" )
	if ( myObject.id != "no" && !isEmail && myObject.type != "hidden" )
	{
		/* // ted 05/02/05
		myName = myObject.name;
		if ( eval("document.form." + myName +"2"))
		{
	 		if ( (eval("document.form." + myName +"2" +".type") == "text") && (eval("document.form." + myName +".type") == "select-one"))
			{
	 			if ( (eval("document.form." + myName +"2" +".value") == "") || (eval("document.form." + myName + ".value") == "") )
	  				err = err + setError(myObject.name);
	 		}
	 	}
		else
		{
		*/
			myname = myObject.name;
			mylastchar = myname.substr(myname.length-1,1);	
			//if (mylastchar != "2") // ted 05/02/05
			//{ // ted 05/02/05

			// ted 05/04/05 - simplify condition & added validation of checkbox to condition
			//if(myObject.type == "checkbox") alert(myObject.name + "=" + getCheckboxCount(myObject));

			//if("select-one,text,textarea,password,file".indexOf(myObject.type) > -1 && myObject.value=="")

			//if("select-one,text,textarea,password,file,checkbox".indexOf(myObject.type) > -1  && 
			// ((myObject.type != "checkbox" && myObject.value=="") || (myObject.type == "checkbox" && getCheckboxCount(myObject) == 0)))
			//	err = err + setError(myObject.name);

			// ted 05/04/05 - removed code below - start
				if (myObject.type == "select-one"  && myObject.value=="" )
				   err = err + setError(myObject.name);

				if (myObject.type=="text" && myObject.value=="")  
	   			err = err + setError(myObject.name);

			   if (myObject.type=="textarea" && myObject.value=="")  // ted 1/10/05
	   			err = err + setError(myObject.name);

				if (myObject.type=="password" && myObject.value=="")  // ted 2/10/05
	   			err = err + setError(myObject.name);
			   
				if (myObject.type=="file" && myObject.value=="")  // ted 2/10/05
	   			err = err + setError(myObject.name);
			// ted 05/04/05 - removed code - end
			//} ted 05/02/05
		//} ted 05/02/05
	}
}

// ted 05/04/05 - new function
function searchInArray(arr,str)
{
	for(var i=0; i<arr.length; i++)
		if(arr[i] == str) return i;
	return -1;
}

// ted 05/04/05 - new function
function getCheckboxCount(obj)
{
	ctr = 0;
	chkCtr = 0;
	if(obj.length != undefined)	
		for(var i=0; i<obj.length; i++) 
			if(obj[i].checked==true) chkCtr++;
	else
		if(obj.checked==true) chkCtr++;
	return chkCtr;
}

function formChecker(form, exclude)
	{
	err = "";
	errfield = ""; // ted 1/10/05
	validatedFields = new Array(); // ted 05/04/05
	
	if(exclude != undefined)
			excludeFlds = exclude;
	else
			excludeFlds = "";	

	objList = form.elements.length;
    for (i=0;i<form.elements.length;i++) 
	 {
		myObject = form.elements[i];
		objList = objList + myObject.type + ",";
		if(excludeFlds.toLowerCase().indexOf(myObject.name.toLowerCase()) == -1)
		{
			// ted 05/04/05 - check array for validated fields
			if(searchInArray(validatedFields, myObject.name) == -1)
			{
				doCheck(myObject);
				// ted 05/04/05 - array of validated fields
				validatedFields[validatedFields.length] = myObject.name;
			}
		}
	}

	if (err) 
	{
		alert('Please provide the following information:\n\n'+err);
	
		//if(document.getElementById(errfield))	// ted 10/24/05
		//	fld = document.getElementById(errfield); // ted 1/10/05
		//else													  // ted 10/24/05
		//	fld = eval("form." + errfield); 			  // ted 10/24/05
		//fld.focus(); 									  	 	
		getElementById(form, errfield);				// ted 12/02/05
		document.returnValue = false;
		return false;
	}
	else
	{
		document.returnValue = true;
		return true; // ted 1/10/05
	}
}

function getElementById(frm, id)
{
	for(var i=0; i<=frm.elements.length; i++)
	{
		obj = frm.elements[i];
		if(obj.id == id)
		{
			obj.focus();
			break;
		}
	}
}

function appendParameter()
{
	var url = arguments[0]; 
	var array1 = new Array();
	var array2 = new Array();
	
	for(var j=1;(j+1) <= arguments.length; j = j + 2)
	{
		array1[array1.length] = arguments[j];
		array2[array2.length] = arguments[j+1];
	}
		
	for(var j=0; j < array1.length; j++)
	{
		thisLink = url.split("?");
		newUrl = "";
		replaced = false;

		newParamName = array1[j];
		newParamVal = array2[j];
		if(thisLink.length > 1)
		{
			lnk = thisLink[0];
			params = thisLink[1].split("&");
			params2 = new Array();
			for(var i=0; i<params.length; i++)
			{							
				param = params[i].split("=");
				paramName = param[0];
				
				if(paramName == newParamName)
				{
					replaced = true;
					if(newParamVal != "")
					{
						param[1] = newParamVal;
						params2[params2.length] = param.join("=");							
					}
				}
				else
					params2[params2.length] = param.join("=");							
							
				//params[i] = param.join("=");							
			}
			
			if(!replaced)
			{
				if(newParamName != undefined && newParamVal != "")
					params2[params2.length] = newParamName + "=" + newParamVal;						
			}
			
			thisLink[1] = params2.join("&");
			if(thisLink[1] != "")
				newUrl = thisLink.join("?");
			else
				newUrl = thisLink[0];
		}
		else
		{
			if(newParamName != undefined && newParamVal != "")
				newUrl = url + "?" + newParamName + "=" + newParamVal;
		}
		url = newUrl;
	}
	return newUrl;
}
