/* -----------------------------------------------------

      BROWSER DETECTION

----------------------------------------------------- */

var win = (navigator.userAgent.indexOf('Win') != -1);        /* DETECT WINDOWS PLATFORM */
var ie = navigator.appName == "Microsoft Internet Explorer"; /* DETECT MSIE */
var ie_ver = navigator.appVersion.charAt(0) >= '4';          /* DETECT MSIE VERSION */
var ns = navigator.appName == "Netscape";                    /* DETECT NETSCAPE */
var ns_ver = navigator.appVersion.charAt(0) >= '5';          /* DETECT NETSCAPE VERSION */
var op = (navigator.userAgent.indexOf('Opera') != -1);       /* DETECT OPERA */

/* -----------------------------------------------------

      END BROWSER DETECTION

----------------------------------------------------- */







/* -----------------------------------------------------

 START SPECIAL FUNCTIONS

----------------------------------------------------- */

function TextAreaMaxLength(Object, MaxLen)
{
//Usage:
//onkeyup="TextAreaMaxLength(this, 250);"
    CurText = Object.value;
if(event.keycode ==  13){
event.keycode == 9}
    window.status = CurText.length;
    if(CurText.length > MaxLen)
    {
        Object.value = CurText.substring(0, MaxLen);
	alert("You have reached the Maximum size for the message box.");
    }
}

/* -----------------------------------------------------

 END SPECIAL FUNCTIONS

----------------------------------------------------- */


























/* -----------------------------------------------------

 START VALIDATION FUNCTIONS

----------------------------------------------------- */



function validate(obj, type, isRequired){
window.status = type
switch(type.toLowerCase()) 
  { 
  case "form":
    val(obj, isRequired)
    break;
  case "number":
    isNumber(obj, isRequired)
    break;
  case "email":
    emailValidation(obj, isRequired)
    break;
  case "phonenumber":
    //checkphone(obj, isRequired)
    break;
  case "zip":
    //checkphone(obj, isRequired)
    break;
  }
}


function checkphone(ctrl, req) {
  var phonein = ctrl.value;
 if(phonein.length <= 0 && req == true){
    alert("Phone is a required field")
    ctrl.focus()
}
else if(phonein.length <= 0){
//do nothing
}
else
{  
  var phoneout = "";
  phoneout = phonein;
  // format main number  
  switch (phoneout.length) {
    case 10:
      phoneout = "(" + phoneout.substring(0,3) + ") " + phoneout.substring(3,6) + "-" + phoneout.substring(6,10);
      break;
    case 11:
      if (phoneout.charAt(0) == "1") {
        // remove the leading 1
        phoneout = "(" + phoneout.substring(1,4) + ") " + phoneout.substring(4,7) + "-" + phoneout.substring(7,11);
      }
      break;
    case 14:
        phoneout = phonein;
      break;
    }
  if(phoneout.length < 14 && phoneout.length > 0){
    alert("Your phone number has too few characters.  Please check it.")
    ctrl.focus()
  }else if (phoneout.length > 14){
    alert("Your phone number has too many characters.  Please check it.")
    ctrl.focus()
  }
ctrl.value = phoneout
window.status = phoneout.length
}
}

function val(this_form){
//alert(this_form);
if(requiredFields.length > 0 ){

  var fieldCheck = true;
  var fieldsNeeded = "Please fill the fields marked in yellow.\n\n\t";
  for(var fieldNum=0; fieldNum < requiredFields.length; fieldNum++) {

if ( requiredFields[fieldNum] != "") {
    document.forms[0].elements[requiredFields[fieldNum]].style.background = 'window';

    //document.forms[0].elements[requiredFields[fieldNum]].style.color = 'black';
  if ((this_form.elements[requiredFields[fieldNum]].value == "") ||
    (this_form.elements[requiredFields[fieldNum]].value == " ")  ||
    (this_form.elements[requiredFields[fieldNum]].selectedIndex == 0)) {
    fieldsNeeded += fieldNames[fieldNum] + "\n\t";
    document.forms[0].elements[requiredFields[fieldNum]].style.background = 'yellow';
    document.forms[0].elements[requiredFields[fieldNum]].style.color = 'Red';
//    document.forms[0].elements[requiredFields[fieldNum]].style.border-color = 'red';
//    document.forms[0].elements[requiredFields[fieldNum]].style.border-width = '2';
//    document.forms[0].elements[requiredFields[fieldNum]].style.border-style = 'dashed';
    fieldCheck = false;
    }
  }
  }

if (fieldCheck == true)
  {
  return true;
  }
  else
  {
  alert(fieldsNeeded);
  return false;
  }
  }
}

function zip(field, isRequired){
  if(isRequired && val.length < 1 ){
  var val = new String(field.value);
  val = trim(val)
       alert("\"" + field.name + "\" field cannot be blank, please\nenter a valid numeric value.");
       field.focus();
       field.select();
       return false;
  }
  if(!isZipcode(field)){
       alert("\"" + field.name + "\" field is not a valid zipcode format, please\nenter a valid format.");
       field.focus();
       field.select();
       return false;
  }

}

function isNumber(objField, isRequired){
  var val = new String(objField.value);
  val = trim(val)
  if(isRequired && val.length < 1 ){
       alert("\"" + objField.name + "\" field cannot be blank, please\nenter a valid numeric value.");
       objField.focus();
       objField.select();
       return false;
  }
  for (i = 0; i < val.length; i++)
  if( (val.charAt(i) < '0' || val.charAt(i)  > '9') && val.charAt(i) != '.'){
     alert("\"" + objField.name + "\" must be a valid numeric entry."
           +"\nPlease do not use commas or dollar signs"
           +"\nor any non-numeric symbols.");
     objField.focus();
     objField.select();
     return false;
  }
  objField.value = val;
  return true;
  }

function fail(fld, message){
       alert(message);
       fld.focus();
       fld.select();
       return false;
       }

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 emailValidation(emailAddress, isRequired) {
  txt=emailAddress.value;
  if ( isRequired && txt.length < 2 ){
       alert("This email address field is a required field, please enter an email address.");
       emailAddress.select();
  }else if( txt.length > 1 && txt.indexOf("@") == -1){
       alert("I'm sorry. This email address seems wrong. Please be sure there is an @ sign.");
       emailAddress.select();
  }else if( txt.length > 1 && txt.indexOf(" ") >= 0){
       alert("I'm sorry. This email address contains spaces.  Email addresses cannot contain a space.");
       emailAddress.select();
  }else
  if (  txt.length > 1 && (txt.indexOf(".com")<5)&&(txt.indexOf(".org")<5)
        &&(txt.indexOf(".gov")<5)&&(txt.indexOf(".net")<5)
        &&(txt.indexOf(".mil")<5)&&(txt.indexOf(".edu")<5)
        &&(txt.indexOf(".us")<5)&&(txt.indexOf(".ca")<5)){
       alert("I'm sorry. This email address seems wrong. Please check the suffix for accuracy. (It should include a .com,.net,.org,.gov or .mil) and be sure there is an @sign.");
       emailAddress.select();
  }
}

function v_Email(field,message){
     address = field.value
     if(!isEmail(address)){
          if(message.length > 1){
               alert(message)
          }else{
               alert("The email address you entered appears to be invalid:\n\n" + address)
          }
          field.select()
          return false
     } else {
          return true
     }

}

function isEmail (s){
// Email (STRING s [, BOOLEAN emptyOK])
// 
// Email address must be of form a@b.c ... in other words:
// * there must be at least one character before the @
// * there must be at least one character before and after the .
// * the characters @ and . are both required
//
// For explanation of optional argument emptyOK,
// see comments of function isInteger.

if (isEmpty(s))
if (isEmail.arguments.length == 1) return defaultEmptyOK;
else return (isEmail.arguments[1] == true);

// is s whitespace?
if (isWhitespace(s)) return false;

// there must be >= 1 character before @, so we
// start looking at character position 1 
// (i.e. second character)
var i = 1;
var sLength = s.length;

// look for @
while ((i < sLength) && (s.charAt(i) != "@"))
{ i++
}

if ((i >= sLength) || (s.charAt(i) != "@")) return false;
else i += 2;

// look for .
while ((i < sLength) && (s.charAt(i) != "."))
{ i++
}

// there must be at least one character after the .
if ((i >= sLength - 1) || (s.charAt(i) != ".")) return false;
else return true;
}



function v_Date(field,message){
m_strDate = field.value
  if(message == null){
    message = "The date you entered is not valid:\n=====================\n\n\t" + m_strDate
}
  m_strDate = field.value
  if(m_strDate==""){return true;}
    var m_arrDate = m_strDate.split("/");
    var m_MONTH = m_arrDate[0];
    var m_DAY = m_arrDate[1];
    var m_YEAR = m_arrDate[2];
  if(m_YEAR.length > 4){return false;}
    m_strDate = m_MONTH + "/" + m_DAY + "/" + m_YEAR;
    var testDate=new Date(m_strDate);
  if(testDate.getMonth()+1==m_MONTH){
    return true;
  }else{
    if(message.length > 0){
      alert(message )
    }else{
      alert("The date you entered is not valid:\n=====================\n\n\t" + m_strDate)
    }
      field.select()
      return false;
  }
}//end function


/****************************************************************/

// This function determines if the string passed in is a valid
// US zip code. It accepts either ##### or #####-####. If the
// string is valid, it returns true, else false.

function isZipcode(strZip)
{
var s = new String(strZip);

if (s.length != 5 && s.length != 10)
// inappropriate length
return false;


for (var i=0; i < s.length; i++)
if ((s.charAt(i) < '0' || s.charAt(s) > '9') && s.charAt(i) != '-')
return false;

return true;
}

/* -----------------------------------------------------

 END VALIDATION FUNCTIONS

----------------------------------------------------- */























































