﻿function isEmailAddr(email)
{
  var result = false;
  var theStr = new String(email);
  var index = theStr.indexOf("@");
  if (index > 0)
  {
    var pindex = theStr.indexOf(".",index);
    if ((pindex > index+1) && (theStr.length > pindex+1))
    result = true;
  }
  return result;
}
function validRequired(formField,fieldLabel)
{
    var result = true;
    if (formField.value == "")
    {
        alert('Please enter a value for the "' + fieldLabel +'" field.');
        formField.focus();
        result = false;
    }
    return result;
}
function allDigits(str)
{
    return inValidCharSet(str,"0123456789");
}
function allDigitsDecimals(str)
{
    return inValidCharSet(str,"0123456789.");
}
function inValidCharSet(str,charset)
{
    var result = true;
    // Note: doesn't use regular expressions to avoid early Mac browser bugs    
    for (var i=0;i<str.length;i++)
        if (charset.indexOf(str.substr(i,1))<0)
        {
            result = false;
            break;
        }
    return result;
}
function validEmail(formField,fieldLabel,required)
{
    var result = true;
    if (required && !validRequired(formField,fieldLabel))
        result = false;
    if (result && ((formField.value.length < 3) || !isEmailAddr(formField.value)) )
    {
        alert("Please enter a complete email address in the form: yourname@yourdomain.com");
        formField.focus();
        result = false;
    }
  return result;
}
function validNum(formField,fieldLabel,required)
{
    var result = true;
    if (required && !validRequired(formField,fieldLabel))
        result = false;
     if (result)
     {
         if (!allDigitsDecimals(formField.value))
         {
             alert('Please enter a number for the "' + fieldLabel +'" field.');
            formField.focus();        
            result = false;
        }
    } 
    return result;
}
function validInt(formField,fieldLabel,required)
{
    var result = true;
    if (required && !validRequired(formField,fieldLabel))
        result = false;
     if (result)
     {
         var num = parseInt(formField.value);
         if (isNaN(num))
         {
             alert('Please enter a number for the "' + fieldLabel +'" field.');
            formField.focus();        
            result = false;
        }
    } 
    return result;
}
function validDate(formField,fieldLabel,required)
{
    var result = true;
    if (required && !validRequired(formField,fieldLabel))
        result = false;
     if (result)
     {
         var elems = formField.value.split("/");
         result = (elems.length == 3); // should be three components
         if (result)
         {
             var month = elems[0];
            var day = parseInt(elems[1]);
             var year = parseInt(elems[2]);
            result = allDigits(elems[0]) && (month > 0) && (month < 13) &&
                     allDigits(elems[1]) && (day > 0) && (day < 32) &&
                     allDigits(elems[2]) && ((elems[2].length == 2) || (elems[2].length == 4));
         }
          if (!result)
         {
             alert('Please enter a date in the format MM/DD/YYYY for the "' + fieldLabel +'" field.');
            formField.focus();        
        }
    } 
    return result;
}
function validateSelect(formField, label)
{
    if(formField[formField.selectedIndex].value == "")
    {
        alert('Please enter the ' + label);
        formField.focus();
        return false;    
    }
    return true;
}
        function round(number,X) 
        {
            X = (!X ? 2 : X);
            var num =  Math.round(number*Math.pow(10,X))/Math.pow(10,X);
            var snum = new String(num);
            if(snum.indexOf(".") == -1)
            {
                snum = snum + ".00";
                num = snum;
            }
            return num;
        }
        function commafy(iNum)
        {
            var first = "";
            var last = "";
            var isNegative=false;
            if (parseFloat(iNum)<0)
            {
                    isNegative=true;
                    iNum=Math.abs(iNum);
            }
            var sNum = iNum.toString();
            if(sNum.indexOf(".") != -1)
            {
                first = sNum.substring(0,sNum.indexOf("."))
                last = sNum.substring(sNum.indexOf("."))
                sNum = first;
            }
            var len = sNum.length;
            var firstBit = "";
            var lastBit = "";
            for(k=len-1;k>=0;k--)
            {
                if(((len-k)%3==0) &&(k>0))
                {
                    firstBit = sNum.substring(0,k);
                    lastBit = sNum.substring(k);
                    sNum = firstBit + "," + lastBit;
                }
            }
            sNum += last;
            if (isNegative)
                    sNum="-"+sNum;
                return(sNum)
        }

var digits = "0123456789";
var phoneNumberDelimiters = "()-. ";
var validWorldPhoneChars = phoneNumberDelimiters + "+";
var minDigitsInIPhoneNumber = 10;
function isInteger(s)
{   var i;
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}
function stripCharsInBag(s, bag)
{   var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character isn't whitespace.
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}
function checkPhone(strPhone)
{
    s=stripCharsInBag(strPhone,validWorldPhoneChars);
    return (isInteger(s) && s.length >= minDigitsInIPhoneNumber);
}
function validatePhone(Phone, required, num_text)
{
    if(required == true)
    {
        if ((Phone.value==null)||(Phone.value==""))
        {
            alert("Please Enter the " + num_text + " Number in the format (###)###-#### or ###-###-####")
            Phone.focus()
            return false
        }
    }
    if(required == false && Phone.value == "")
        return true;
    if (checkPhone(Phone.value)==false)
    {
        alert("Please Enter the " + num_text + " Number in the format (###)###-#### or ###-###-####")
        Phone.focus()
        return false
    }
    return true
 }