function trim(s)
{
  if (s==undefined) return "";
  return s.replace(/^\s+|\s+$/, '');
}

function validateEmail(fld) {
    var error="";
    var tfld = trim(fld.value);                        // value of field with whitespace trimmed off
    var emailFilter = /^[^@]+@[^@.]+\.[^@]*\w\w$/ ;
    var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/ ;
    fld.style.background = 'White';
    if (fld.value == "") {
        fld.style.background = 'Yellow';
        error = "You didn't enter an email address." + "\n";
    } else if (!emailFilter.test(tfld)) {              //test email for illegal characters
        fld.style.background = 'Yellow';
        error = "Please enter a valid email address." + "\n";
    } else if (fld.value.match(illegalChars)) {
        fld.style.background = 'Yellow';
        error = "The email address contains illegal characters." + "\n";
    } else {
        fld.style.background = 'White';
    }
    return error;
}

function validateEmailNonBlank(fld) {
    var tfld = trim(fld.value);
    if (tfld == "") return "";
    return validateEmail(fld);
}

function validatePhone(fld) {
    var error = "";
    var stripped = fld.value.replace(/[\(\)\.\-\ ]/g, '');
    fld.style.background = 'White';
   if (fld.value == "") {
        error = "You didn't enter a phone number." + "\n";
        fld.style.background = 'Yellow';
    } else if (isNaN(parseInt(stripped))) {
        error = "The phone number contains illegal characters." + "\n";
        fld.style.background = 'Yellow';
    } else if (!(stripped.length == 10)) {
        error = "The phone number must be 10 digits. Make sure you included an area code." + "\n";
        fld.style.background = 'Yellow';
    }
    return error;
}

function validatePhoneNonBlank(fld) {
    var tfld = trim(fld.value);
    if (tfld.value == "") return "";
    return validatePhone(fld);
}


function validateCurrency( fld,err )
{
   var error = "";
   fld.style.background = 'White';
  isPrice = /^\d+\.\d{2}$/;
  if(!isPrice.test( fld.value ))
  {
    if (err != null)
       error = err + "\n";
    else
       error = "Invalid dollar amount. Currency values only." + "\n";
    fld.style.background = 'Yellow';
  }
  return error;
}

function validateNonZero( fld,err )
{
   var error = "";
   fld.style.background = 'White';
  if( fld.value=='' || fld.value=='0' || (fld.value  == 0 && fld.value != '00'))
  {
   if (err != null)
       error = err + "\n";
    else
       error = "You must supply a value for " +fld.name + "\n" ;
    fld.style.background = 'Yellow';
  }
  return error;
}

function validatePositive( fld,err )
{
   var error = "";
   fld.style.background = 'White';
  if( fld.value=='' || fld.value=='0' || (fld.value  <= 0 && fld.value != '00'))
  {
   if (err != null)
       error = err + "\n";
    else
       error = "You must supply a positive value for " +fld.name + "\n" ;
    fld.style.background = 'Yellow';
  }
  return error;
}


function validateExists( fld,err )
{
   var error = "";
   fld.style.background = 'White';
  isPrice = /^\d+\.\d{2}$/;
  if( trim(fld.value ).length == 0)
  {
    if (err != null)
       error = err + "\n";
    else
        error = "You must supply a value for " +fld.name + "\n";
    fld.style.background = 'Yellow';
  }
  return error;
}

function validateMinLen( fld,lngth,err )
{
   var error = "";
   fld.style.background = 'White';
  if( trim(fld.value ).length < lngth)
  {
    if (err != null)
       error = err + "\n";
    else
        error = "The value for " + fld.name + " must be at least " + lngth + " characters.\n";
    fld.style.background = 'Yellow';
  }
  return error;
}

function validateSame(fld1, fld2,err)
{
   var error = "";
   fld2.style.background = 'White';
  if( fld1.value != fld2.value)
  {
    if (err != null)
       error = err + "\n";
    else
        error = fld1.name + " must match " + fld2.name + "\n";
    fld2.style.background = 'Yellow';
  }
  return error;

}

function validateIfThen(fld1, fld2,err)
{
   var error = "";
   fld2.style.background = 'White';
  if( trim(fld1.value ).length > 0 && trim(fld2.value).length==0)
  {
    if (err != null)
       error = err + "\n";
    else
        error = "You must supply a value for " +fld2.name + "\n";
    fld2.style.background = 'Yellow';
  }
  return error;

}

function validateIfThenZero(fld1, fld2,err)
{
  // alert(fld2.value);
   var error = "";
   fld2.style.background = 'White';
  if( trim(fld1.value ).length > 0 && (trim(fld2.value).length==0 || (fld2.value ==0 && fld2.value != '00')))
  {
    if (err != null)
       error = err + "\n";
    else
        error = "You must supply a value for " +fld2.name + "\n";
    fld2.style.background = 'Yellow';
  }
  return error;

}



