var isNN = (navigator.appName.indexOf("Netscape")!=-1);

function autoTab(input,len, e)
{
  var keyCode = (isNN) ? e.which : e.keyCode;
  var filter = (isNN) ? [0,8,9] : [0,8,9,16,17,18,37,38,39,40,46];
  if(input.value.length >= len && !containsElement(filter,keyCode))
  {
    input.value = input.value.slice(0, len);
    input.form[(getIndex(input)+1) % input.form.length].focus();
  }
  function containsElement(arr, ele)
  {
    var found = false, index = 0;
    while(!found && index < arr.length)
      if(arr[index] == ele)
        found = true;
      else
        index++;
    return found;
  }
  function getIndex(input)
  {
    var index = -1, i = 0, found = false;
    while (i < input.form.length && index == -1)
      if (input.form[i] == input)
        index = i;
      else
        i++;
    return index;
  }
  return true;
}

function createDays(maxDay, sel)
{
  sel++;
  sel--;
  for (k=1; k<=maxDay; k++)
    document.write('<Option Value="'+k+'" ' + ((sel==k)?'Selected':'') + '>' + k + '</Option>');
}
function createMonths(sel)
{
  sel++;
  sel--;
  var mnt = new Array('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');
  for (k=1; k<=mnt.length; k++)
    document.write('<Option Value="'+k+'" ' + ((sel==k)?'Selected':'') + '>' + mnt[k-1] + '</Option>');
}
function createYears(y1, y2, sel)
{
  if (y2<1800) y2+=1900;
  sel++;
  sel--;
  for (k=y1; k<=y2; k++)
    document.write('<Option Value="'+k+'" ' + ((sel==k)?'Selected':'') + '>' + k + '</Option>');
}
function getLastDays(M, Y)
{
  if (M==4 || M==6 || M==9 || M==11)
    d=30;
  if(M==2)
    d=(Y%4==0)?29:28;
  else
    d=31;
  return d;
}

function MonthChange(YearID, MonthID, DayID)
{
  d=getLastDays(MonthID.value, YearID.value);
  j=DayID.selectedIndex;
  for (var k=0; k<31; k++)
    DayID.options[0]=null;
  for (var k=0; k<d; k++)
    DayID.options[k]=new Option(k+1);
  DayID.selectedIndex = j;
}

function validate(thisForm)
{
  if (!noProducts){
      var checkedBox = false;
      for (i=0; i<thisForm.elements.length; i++) {
           if (thisForm.elements[i].type == "checkbox") {
               if (thisForm.elements[i].checked) {
                    checkedBox = true;
                    break;
                }
            }
       }
   }
     
   if(!checkedBox) {
      alert ('You must select a product');
      return false;
    }

  if (thisForm.FirstName.value == '')
  {
    alert ('Enter your first name.');
    thisForm.FirstName.focus();
    return false;
  }
  if(thisForm.LastName.value == '')
  {
    alert ('Enter your last name.');
    thisForm.LastName.focus();
    return false;
  }
  if(thisForm.Address1.value == '')
  {
    alert ('Enter your address.');
    thisForm.Address1.focus();
    return false;
  }
  if(thisForm.City.value == '')
  {
    alert ('Enter your city.');
    thisForm.City.focus();
    return false;
  }
  if(thisForm.State.options[thisForm.State.selectedIndex].value == '')
  {
    alert ('Select your state.');
    thisForm.State.focus();
    return false;
  }
  if(thisForm.ZipCode.value == '')
  {
    alert ('Enter your zip code.');
    thisForm.ZipCode.focus();
    return false;
  }
  if(thisForm.DeliveryMethod.options[thisForm.DeliveryMethod.selectedIndex].value == '')
  {
    alert ('Select a method of delivery');
    thisForm.DeliveryMethod.focus();
    return false;
  }
  
  if( (thisForm.DeliveryMethod.options[thisForm.DeliveryMethod.selectedIndex].value == 'Fax') && ((thisForm.Fax1.value == '') || (thisForm.Fax2.value == '') || (thisForm.Fax3.value == '')) )
  {
    alert ('Enter a fax number.');
    thisForm.Fax1.focus();
    return false;
  }
  if( (thisForm.DeliveryMethod.options[thisForm.DeliveryMethod.selectedIndex].value == 'Email') && (thisForm.Email_Address.value == '') )
  {
    alert ('Enter an email address.');
    thisForm.Email_Address.focus();
    return false;
  }
  if(thisForm.Country.options[thisForm.Country.selectedIndex].value == 'USA' && !(top.validateZipCode(thisForm.ZipCode.value)))
  {
    alert ('Enter a valid zip code.');
    thisForm.ZipCode.focus();
    thisForm.ZipCode.select();
    return false;
  }
  if(thisForm.Country.options[thisForm.Country.selectedIndex].value == 'USA' && !(top.validatePostalCode(thisForm.ZipCode.value)) && !(top.validateZipCode(thisForm.ZipCode.value)))
  {
    alert ('Enter a valid zip code or postal code.');
    thisForm.ZipCode.focus();
    thisForm.ZipCode.select();
    return false;
  }
  if( thisForm.Tel1.value != '' && thisForm.Tel2.value != '' && thisForm.Tel3.value != '' && !(top.validateTel(thisForm.Tel1.value, thisForm.Tel2.value, thisForm.Tel3.value, thisForm.Tel4.value)) )
  {
    alert ('Enter a valid telephone number.');
    thisForm.Tel1.focus();
    thisForm.Tel1.select();
    return false;
  }
  if( thisForm.Fax1.value != '' && thisForm.Fax2.value != '' && thisForm.Fax3.value != '' && !(top.validateTel(thisForm.Fax1.value, thisForm.Fax2.value, thisForm.Fax3.value, '')) )
  {
    alert ('Enter a valid fax number.');
    thisForm.Fax1.focus();
    thisForm.Fax1.select();
    return false;
  }
  return true;
}
