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 inValidCharSet(str,charset)
{
        var result = true;

        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 (!allDigits(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,10);
                if (isNaN(num))
                {
                        alert("Please enter a number for the " + fieldLabel + " field.");
                        formField.focus();
                        result = false;
                }
        }

        return result;
}


function validateForm(theForm)
{
        // Customize these calls for your form

        // Start ------->
        if (!validRequired(theForm["company"],"Company"))
                return false;

        if (!validRequired(theForm["contact1"],"Primary Contact"))
                return false;

        if (!validRequired(theForm["address"],"Mailing Address"))
                return false;

        if (!validRequired(theForm["city"],"City"))
                return false;

        if (!validRequired(theForm["zip"],"Zip Code"))
                return false;

        if (!validEmail(theForm["email"],"Email Address",true))
                return false;

        if (!validRequired(theForm["password"],"Password"))
                return false;

        if (!validRequired(theForm["phone"],"Phone"))
                return false;

        // <--------- End

        return true;
}

function ValidPhone(formField,fieldLabel,required)
{
// declare valid variable as a string with all valid characters (digits from 0 to 9 )
var valid = "0123456789";

 if (required && !validRequired(formField,fieldLabel))
                 result = false;


//if phone field is empty - display a warning and return false
         if(formField.value=="")
         {
         alert ("This field is required. Please enter phone number without dashes!")
         return false
         }
//if number of character in phone field is not equal 10 - display warning and return false
         if(formField.value.length !=10)
         {
         alert("Invalid phone number length! Please try again.")
         return false
         }
//check each character entered in the phone field
        for (var i=0; i < formField.value.length; i++)
        {
        //put in temp variable each character, one at a time.
        temp = "" + formField.value.substring(i, i+1);
   //check index of a phone character in the "valid" variable.
   // if temp contains a character which is not in "valid" variable,
   //then valid.indexOf(temp) will be -1, otherwise it may be 0.1.2.3.4.5.6.7.8 or 9

        if (valid.indexOf(temp) == "-1")
        {
        alert("Invalid characters in your phone. Please try again.")
        return false;
        }
        }
//if all conditions are passed, then return true
      return true
}

var zChar = new Array(' ', '(', ')', '-', '.');
var maxphonelength = 13;
var phonevalue1;
var phonevalue2;
var cursorposition;

function ParseForNumber1(object){
phonevalue1 = ParseChar(object.value, zChar);
}
function ParseForNumber2(object){
phonevalue2 = ParseChar(object.value, zChar);
}

function backspacerUP(object,e) {
if(e){
e = e
} else {
e = window.event
}
if(e.which){
var keycode = e.which
} else {
var keycode = e.keyCode
}

ParseForNumber1(object)

if(keycode >= 48){
ValidatePhone(object)
}
}

function backspacerDOWN(object,e) {
if(e){
e = e
} else {
e = window.event
}
if(e.which){
var keycode = e.which
} else {
var keycode = e.keyCode
}
ParseForNumber2(object)
}

function GetCursorPosition(){

var t1 = phonevalue1;
var t2 = phonevalue2;
var bool = false
for (i=0; i<t1.length; i++)
{
if (t1.substring(i,1) != t2.substring(i,1)) {
if(!bool) {
cursorposition=i
bool=true
}
}
}
}


function textBoxOnBlur(elementRef)
{
 //5754578787, it should be 575-457-8787

 var elementValue = elementRef.value;

 // Remove all "(", ")", "-", and spaces...
 elementValue = elementValue.replace(/\(/g, '');
 elementValue = elementValue.replace(/\)/g, '');
 elementValue = elementValue.replace(/\-/g, '');
 elementValue = elementValue.replace(/\s+/g, '')

 if ( elementValue.length < 10 )
 {
  alert('The phone number needs 10 characters');
  elementRef.select();
  elementRef.focus();
  return;
 }

 elementRef.value = (elementValue.substr(0, 3) + '-' + elementValue.substr(3, 3) + '-' + elementValue.substr(6, 4));
}

function setItems(checkObj) {

var checkCount = 0;
var maxChecks = 4;

var itemNum = 1;

//Determine the number of checked boxes
while (document.getElementById('spec'+itemNum))
{
fieldObj = document.getElementById('spec'+itemNum);
if (fieldObj.checked)
{
checkCount++;
}
itemNum++;
}

var itemNum = 1;
//Enable/disable unchecked boxes
while (document.getElementById('spec'+itemNum))
{
fieldObj = document.getElementById('spec'+itemNum);
if (!fieldObj.checked)
{
fieldObj.disabled = (checkCount==maxChecks);
}
itemNum++;
}
}
