﻿var previousCheckBox = '';
var previousState = false;

var provinceStartIndex = 1;
var provinceEndIndex = 13;
var defaultProvinceIndex = 2;
var stateStartIndex = 14;
var stateEndIndex = 64;
var defaultStateIndex = 61;
var otherIndex = 0;

$(document).ready(function() {

  $('#preview-button').click(function() {
    if ($.browser.msie && $.browser.version < 7) {
      $('select').hide();
    }

    $('#preview').fadeIn();
    return false;
  });

  $('#preview-close').click(function() {
    if ($.browser.msie && $.browser.version < 7) {
      $('select').show();
    }

    $('#preview').fadeOut();
    return false;
  });

  var stateDropDownList = $('#ddlProvince').get(0);
  var countryDropDownList = $('#ddlCountry').get(0);

  $('#ddlProvince').change(function() {
    var index = $('#ddlProvince')[0].selectedIndex;
    if (index >= provinceStartIndex && index <= provinceEndIndex) {
      $('#ddlCountry').val('CA');
    }
    else {
      if (index >= stateStartIndex && index <= stateEndIndex) {
        $('#ddlCountry').val('US');
      }
      else {
        if (!($('#ddlCountry').val() == 'US' || $('#ddlCountry').val() == 'CA')) {
          $('#ddlCountry').val('');
        }
      }
    }
    checkPostalCodeMessage();
  });


  $('#ddlCountry').change(function() {
    var index = $('#ddlProvince')[0].selectedIndex;
    var country = $('#ddlCountry').val();

    $('#tbPostalCode').removeClass('zipcode').removeClass('postalcode');
    switch (country) {
      case 'CA':
        if (index < provinceStartIndex || index > provinceEndIndex) {
          $('#ddlProvince').val('');
        }
        break;
      case 'US':
        if (index < stateStartIndex || index > stateEndIndex) {
          $('#ddlProvince').val('');
        }
        break;
    }
    checkPostalCodeMessage();
  });
});

function checkPostalCodeMessage() {
  var country = $('#ddlCountry').val();
  $('#tbPostalCode').removeClass('zipcode').removeClass('postalcode');
  switch (country) {
    case 'CA':
      $('#lblPostalZip').text('Postal Code');
      $('#tbPostalCode').addClass('postalcode').attr('title', 'Please enter a valid Canadian postal code.');
      $('#ddlProvince').attr('title', 'Please enter a province.');
      break;
    case 'US':
      $('#lblPostalZip').text('Zip Code');
      $('#tbPostalCode').addClass('zipcode').attr('title', 'Please enter a valid US zip code.');
      $('#ddlProvince').attr('title', 'Please enter a state.');
      break;
    case '':
      $('#lblPostalZip').text('Postal Code or Zip Code');
      $('#tbPostalCode').addClass('zipcode').attr('title', 'Please enter your postal code or zip Code.');
      break;
    
  }
}

jQuery.validator.addMethod('zipcode', function(value) {
  return /^(\d{5}-\d{4})|(\d{5})$/.test(value);
}, 'Please enter a valid US zip code.');

jQuery.validator.addMethod('postalcode', function(value) {
  return /^[A-Za-z]\d[A-Za-z][\s]?\d[A-Za-z]\d$/.test(value);
}, 'Please enter a valid Canadian postal code.');

var validator = $("#signupForm").validate();

