  $(function(){			
			redAjaxImg= new Image(); 
			redAjaxImg.src="/images/buttons/ajax-loader-red.gif"; 
			silverAjaxImg= new Image(); 
			silverAjaxImg.src="/images/buttons/ajax-loader-silver.gif"; 
			silverBg102= new Image(); 	
			silverBg102.src="/images/buttons/button-silver-102w.jpg"; 
			silverBg144= new Image(); 	
			silverBg144.src="/images/buttons/button-silver-144w.jpg"; 
			silverBg238= new Image(); 	
			silverBg238.src="/images/buttons/button-silver-238w.jpg"; 
			redBg238= new Image(); 	
			redBg238.src="/images/buttons/button-red-238w.jpg"; 

		/*jquery form validation -- http://docs.jquery.com/Plugins/Validation
		 The following code can be entered in the validate() function to customize the comments
		{
			messages: {
				required: "required",
				contactemail: "Please enter a valid email addressss",
				contactcomments: "Please enter a comment"
			}
		}
    */
	 if ($("#forgotpasswordform").length) {
      $("#forgotpasswordform").validate({
        errorPlacement: function(error, element) {
          error.prependTo( element.parent("div") );
        },
        submitHandler: function(form) {
          hideButton('submitbutton');
          form.submit();
        }
      
      });
	  }
	  else if ($("#loginform").length) {
      $("#loginform").validate({
				//Custom rules
  			rules: {
  				'userid': {
  				  required: true
  				},
					'password': {
  					required: true
  				}
  			},
  			messages: {
  			  'userid': {
  				  required: "Please enter a userid."
  				},
  				'password': {
  				  required: "Please enter a password."
  				}
  			},
				
				
    		errorPlacement: function(error, element) {
    	    error.prependTo( element.parent("div") );
    	  },
    	
        submitHandler: function(form) {
    	    hideButton('loginbutton');
    	    form.submit();
    	  }
    	
    	});

      $("#signupform").validate({
				//Custom rules
  			rules: {
  				'HNT_USER.USERID': {
  				  required: true
  				},
					'HNT_USER.PASSWORD': {
  					required: true,
  					minlength: 6
  				}, 
  				'HNT_USER.CONFIRM_PASSWORD': {
  					required: true,
  					equalTo: "#newuserpw"
  				},
          'HNT_USER.EMAIL': {
            required: true,
            email: true
          },
  				'HNT_USER.CONFIRM_EMAIL': {
  					required: true,
  					equalTo: "#newuseremail"
  				}
  			},
  			messages: {
  			  'HNT_USER.USERID': {
  				  required: "Please enter a userid."
  				},
  				'HNT_USER.PASSWORD': {
  				  required: "Please enter a password.",
  					minlength: jQuery.format("Must be at least {0} characters.")
  				}, 
  				'HNT_USER.CONFIRM_PASSWORD': {
  				  required: "Please confirm your password.",
  					equalTo: "Your passwords do not match."
  				},
  				'HNT_USER.CONFIRM_EMAIL': {
  				  required: "Please confirm your email.",
  					equalTo: "Your emails do not match."
  				}
  			},
        submitHandler: function(form) {
          hideButton('signupbutton');
          form.submit();
        },			
  			errorPlacement: function(error, element) {
  			  error.prependTo( element.parent("div") );
  			}
  		});
	  }
	  else if ($("#editaccountform").length) {
      $("#editaccountform").validate({
        errorPlacement: function(error, element) {
          error.prependTo( element.parent("div") );
        },
        rules: {
          'HNT_USER.PASSWORD': {
          minlength: 6
          }, 
          'HNT_USER.CONFIRM_PASSWORD': {
            equalTo: "#userpw"
          },
          'HNT_USER.EMAIL': {
            required: true,
            email: true
          },
  				'HNT_USER.CONFIRM_EMAIL': {
  					required: true,
  					equalTo: "#useremail"
          }
        },
				messages: {
  				'HNT_USER.PASSWORD': {
  				  required: "Please enter a password.",
  					minlength: jQuery.format("Must be at least {0} characters.")
  				}, 
  				'HNT_USER.CONFIRM_PASSWORD': {
  				  required: "Please confirm your password.",
  					equalTo: "Your passwords do not match."
          },
          'HNT_USER.CONFIRM_EMAIL': {
            required: "Please confirm your email.",
            equalTo: "Your emails do not match."
  				}
  			},
      
        submitHandler: function(form) {
          if ($('#primarysport').val() == 'Other') {
            if (jQuery.trim($('#primarysportother').val()) == '') {
              alert('You selected "Other" for a Primary Sport, please fill in the text field provided.');
              return;
            }
            $('#primarySportInput').val('Other-' + jQuery.trim($('#primarysportother').val()));
          }
          else {
            $('#primarySportInput').val($('#primarysport').val());
          }
          
          
          hideButton('submitbuttona');
          hideButton('submitbuttonb');
          form.submit();
        }
      
      });
	  }


  // set up all the onclicks on the form elements
	$('#shippingcolumn .formblock input').click(function(){enableShipping(true);});
	$('#shippingcolumn .formblock select').click(function(){enableShipping(true);});
	$('#shippingcolumn .formblock input').change(function(){enableShipping(true);});
	$('#shippingcolumn .formblock select').change(function(){enableShipping(true);});
});
	

var updateAccountStates = function(countryID, stateID, stateCode){
  countryCode = $('#' + countryID).val();
  
  
  $('#' + stateID).html("<option value=''>Loading . . .</option>");

  $('#' + stateID).load('/includes/load-states/', {
    selectedCountryCode:countryCode,
    selectedStateCode:stateCode
  });
}

function billingChanged() { 
  if ($('#shipbillbox').attr('checked')) {
    // copy billing to shipping
    copyBillingAddressToShipping();
  }
}


function requireShipping(state) { 
	if(state == true) { 
		//Adds and removes rules to  the jquery validate plugin.
		$("#usershipfirstname").rules("add", 'required');
		$("#usershiplastname").rules("add", 'required');
		$("#usershipstreet1").rules("add", 'required');
		$("#usershipcity").rules("add", 'required');
		$("#usershippingstateselect").rules("add", 'required');
		$("#usershipcountry").rules("add", 'required');
		$("#usershipzip").rules("add", 'required');
		$("#usershipzip").rules("add", 'validUSZip');
		$("#usershipphonedaytime").rules("add", 'required');
	}
	else { 
		$("#usershipfirstname").rules("remove", 'required');
		$("#usershiplastname").rules("remove", 'required');
		$("#usershipstreet1").rules("remove", 'required');
		$("#usershipcity").rules("remove", 'required');
		$("#usershippingstateselect").rules("remove", 'required');
		$("#usershipcountry").rules("remove", 'required');
		$("#usershipzip").rules("remove", 'required');
		$("#usershipzip").rules("remove", 'validUSZip');
    $("#usershipphonedaytime").rules("remove", 'required');
		$("#addressform").validate().resetForm();	
	}
}


function enableShipping(status) {
  if (status == true) {
		addTabIndex();
		$('.shiplabel').removeClass('disabled');
    $('#shippingcolumn .formblock input').removeClass('inactivefield');
    $('#shippingcolumn .formblock select').removeClass('inactivefield');   
		$('#shipbillbox').removeAttr('checked');  
		requireShipping(true);
  }
  else {
    $('#shippingcolumn .formblock input').addClass('inactivefield');
    $('#shippingcolumn .formblock select').addClass('inactivefield');
		$('.shiplabel').addClass('disabled');
		requireShipping(false);
  }
}

var addTabIndex = function(){
	var i = 20;
	$('.shiplabel').next().each(function(){
		$(this).attr('tabindex',i);
		i++;
	});
}


/** todo: put this in checkout.js
var stateChange = function(select) {
  alert('hre')
	var shippingLoad = '<div class="loadingbutton"><img height="16" width="66" src="/images/common/please-wait.gif"/><img height="16" width="16" src="/images/common/ajax-loader-mini.gif" /></div>'
  var defaultMsg = "<i>Shipping options will displayed after the shipping address has been entered</i>";
  
  if ($('input[name=zo_use_bill_as_ship]').is(':checked')) {
    var state = $('#userbillingstateselect').val();
    var country = $("input[name='zo_bill_country_code']").val();
  }
  else {
    var state = $('#usershippingstateselect').val();
    var country = $("input[name='zo_ship_country_code']").val();
    if (select.name == 'zo_bill_state') {
      return;
    }
  }
  
  if (state == '') {
    $('#shipingmethods').html(defaultMsg);
  }
  else {
		$('#shipingmethods').html(shippingLoad);
    $('#shipingmethods').load('/za/HNT/checkout/includes/shipping-methods.jsp?state=' + state + '&country=' + country,function(responseText) {
			$('.loadingbutton').remove();
      if (jQuery.trim(responseText) == '') {
        $('#shipingmethods').html(defaultMsg);
      }
    });
  }
}
*/


function shipAsBill() {
  if ($('#shipbillbox').attr('checked')) {
    // copy billing to shipping
    $('.shiplabel').next().removeAttr('tabindex');
		copyBillingAddressToShipping();
    // gray inputs
    enableShipping(false);
    //stateChange();
  }
  else {
    enableShipping(true);
  }
}




function copyBillingAddressToShipping() { 
	// pass all the values to the shipping address
	$('#usershipfirstname').val($('#userbillfirstname').val());
	$('#usershiplastname').val($('#userbilllastname').val());
	$('#usershipcompany').val($('#userbillcompany').val());
	$('#usershipstreet1').val($('#userbillstreet1').val());
	$('#usershipstreet2').val($('#userbillstreet2').val());
	$('#usershipcity').val($('#userbillcity').val());
	$('#usershipzip').val($('#userbillzip').val());
	$('#usershipphonedaytime').val($('#userbillphonedaytime').val());
	$('#usershipphoneevening').val($('#userbillphoneevening').val());
	
	
	var countryChanged = false;
	// alert($('#userbillcountry').val() + " ... " + $('#usershipcountry').val())
	if ($('#userbillcountry').val() != $('#usershipcountry').val()) {
	  $('#usershipcountry').attr('selectedIndex', $('#userbillcountry').attr('selectedIndex'));
	  countryChanged = true;
  }
	
  if (countryChanged) {
    updateAccountStates('usershipcountry', 'usershippingstateselect', $('#userbillingstateselect').val());
	}
  else {
    $('#usershippingstateselect').attr('selectedIndex', $('#userbillingstateselect').attr('selectedIndex'));
  }
}


var primarySportChanged = function(select) {
  if ($(select).val() == 'Other') {
    $('#primarysportotherdiv').removeClass("accountdisplaynone");
    $('#primarysportother').addClass("required");
  }
  else {
    $('#primarysportotherdiv').addClass("accountdisplaynone");
    $('#primarysportother').removeClass("required");
    $('#primarysportother').val('');
  }
}


var toggleOrders = function(status){
	if(status == 'show') { 
	$('#acctordertable .hide').addClass('show');
	$('#acctordertable .hide').removeClass('hide');
	$('#accountviewall').addClass('hide');
	$('#accountviewrecent').removeClass('hide');
	
	}
	else if (status == 'hide') { 
		$('#acctordertable .show').addClass('hide');
		$('#acctordertable .show').removeClass('show');
		$('#accountviewall').removeClass('hide');
	$('#accountviewrecent').addClass('hide');
	}
}


var orderAddToCart = function(e,host) { 
	hideButton($(e).attr('id'));
	if(e.value == 'shop') {
//		alert('add it to the cart and shop');
    var url = host + '/add-to-cart-continue-shopping';
//    alert('url = ' + url);
    $('#form1').attr('action',url);
	}
	else if(e.value == 'checkout') {
//		alert('add it to the cart and go the checkout');
	}
 
  return false;
}

var orderAddToCartCheckBox = function(id) {
  var skuChecked = $('#zoi_sku-'+id).attr('checked');
//  alert('skuChecked = '+ skuChecked);
  if (skuChecked) {
//    alert('checked');
     $('#zoi_save-'+id).removeAttr('disabled');
     $('#zoi_quantity-'+id).removeAttr('disabled');
  } else {
//    alert('NOT checked');
    $('#zoi_save-'+id).attr('disabled','disabled');
    $('#zoi_quantity-'+id).attr('disabled','disabled');
  }
}
    
var orderAddToQogCheckBox = function(id){
  var skuChecked = $('#zli_sku-'+id).attr('checked');
  if (skuChecked) {
     $('#zli_save-'+id).removeAttr('disabled');
     $('#zli_quantity-'+id).removeAttr('disabled');
  } else {
    $('#zli_save-'+id).attr('disabled','disabled');
    $('#zli_quantity-'+id).attr('disabled','disabled');
  }
}
    

