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 inspectChars(vldtn, str)
{
	for(var i=0; i < str.length; i++)
		if(vldtn.indexOf(str.substr(i,1).toLowerCase()) == -1) 
			return false;
	return true;
}

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) errType = "";
	
	if (errType != "") 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;
	
	myname = myObject.name;
	fldInspect = myObject.id.split("|");
	fldInspect2 = myObject.id.split("_");
	alternateName = "";
	required = true;

	if(fldInspect[0].toLowerCase() == "no") required = false;
	
	if(fldInspect.length == 1 && fldInspect2.length == 1)
		alternateName = myObject.id;
	else
	{
		alternateName = fldInspect[0];		
		testName = alternateName.split("_");
		
		if(testName.length > 1)
		{
			if(testName[0].toLowerCase() == "no") required = false;
			alternateName = testName[1];
		}
	}
		
	if(alternateName.toLowerCase() == "no") alternateName = myObject.name;

	if(!required && myObject.value != "") required = true;

	if(myObject.id.indexOf("BilltoCompany") > -1)
		alert(myObject.id + "\n" + alternateName);

	if (!myObject.disabled && required && ("select-one,text,textarea,password,file".indexOf(myObject.type) > -1))
	{
		isValid = true;


		var msg = "";
		if(required && myObject.value == "")
		{
			isValid = false;
		}
		else
		{
			if(fldInspect.length == 1)
			{
				if(myObject.id.toLowerCase().indexOf("email") > -1 && !isValidEmail(myObject.value)) 
					msg = "not a valid e-mail";
			}
			else
			{
				vldtnType = fldInspect[1].toLowerCase(); 
				if((vldtnType == "_e" || vldtnType == "email") && !isValidEmail(myObject.value))
					msg = "not a valid e-mail";
				else if((vldtnType == "_n" || vldtnType == "number") && !inspectChars("0123456789", myObject.value) == true)
					msg = "must be numeric";
				else if((vldtnType == "_d" || vldtnType == "digits") && !inspectChars("0123456789.", myObject.value) == true)
					msg = "must only contain \"0123456789.\"";
				else if((vldtnType == "_p" || vldtnType == "phone") && !inspectChars("0123456789() ", myObject.value) == true)
					msg = "must only contain \"0123456789() \"";
				else if((vldtnType == "_a" || vldtnType == "alpha") && !inspectChars("abcdefghijklmnopqrstuvwxyz. ", myObject.value) == true)
					msg = "must contain letters only";
				else if((vldtnType == "_c" || vldtnType == "alphanumbers")  && !inspectChars("abcdefghijklmnopqrstuvwxyz0123456789. ", myObject.value) == true)
					msg = "must contain numbers and/or letters only";
			}

			if(msg != "") isValid = false;
		}
		
		if(!isValid)
		{
			if(myObject.id != "no" || myObject.id == "")
			{
				err = err + setError(alternateName, msg);			
			}
			else
				err = err + setError(myObject.name, msg);			
		}
	}
}

function formChecker()
{
	err = "";
	errfield = ""; // ted 1/10/05
	
	frm = arguments[0];
	fieldList = "";	
	action = "exclude";
	if(arguments.length == 2)
	{
		fieldList = arguments[1];
	}
	else if(arguments.length == 3)
	{
		fieldList = arguments[1];
		action = arguments[2];
	}


	objList = frm.elements.length;
    for (i=0;i<frm.elements.length;i++) 
	 {
		myObject = frm.elements[i];
		objList = objList + myObject.type + ",";
		if(
		   	(action == "only" && fieldList.toLowerCase().indexOf(myObject.name.toLowerCase()) > -1) ||
		   	(action == "exclude" && fieldList.toLowerCase().indexOf(myObject.name.toLowerCase()) == -1)
		  )
		{
			doCheck(myObject);
		}
	}

	if (err) {
	alert('Please provide the following information:\n\n'+err);
	
	fld = document.getElementById(errfield); // ted 1/10/05
	//fld = eval("frm." + errfield);

	for(var z=0; z<frm.elements.length; z++)
	{
		if(frm.elements[z].name.toLowerCase() == errfield)
		{
			//frm.elements[z].focus(); 									  // ted 1/10/05
		}
	}
	
		document.returnValue = false;
		return false;
	}
	else
	{
		document.returnValue = true;
		return true; // ted 1/10/05
	}
}

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;
}

function capitalize(txt) {
        val =txt;
        newVal = '';
        val = val.split(' ');
        for(var c=0; c < val.length; c++) {
                newVal += val[c].substring(0,1).toUpperCase() +
val[c].substring(1,val[c].length) + ' ';
        }
        return newVal;
}
