var field_index = 2;
var table_index = 1;
$(document).ready(function() {

	
	$("input.copy_billing_checkbox").click(function() {
		if(this.checked) {
			copy_form("billing_field","shipping_field");	
		} else {
			clearFields("shipping_field");	
		}
	});	
	
	$("#checkout_form input.copy_address_checkbox").unbind('click').click(function() {
		var copy = $(this).attr("class").split(" ");
		if(this.checked) {
			copy_form(copy[1],copy[2],1);	
		} else {
			clearFields(copy[2]);	
		}
	});	
		
	$("select.load_shipping_address").change(function() {
		var classes = $(this).attr("class").split(" ");
		get_shipping_address($(this).val(), classes[0]);
	});
	
	$("select.country").change(function() {
		get_states($(this).val(), $(this).attr("class").split(" ")[0]);
	});
		
	load_shipping_addresses();	
	
});

function get_states(countryID, className) { 
	$("select." + className + ".StateID").empty();
	if(objPropExists(countries[countryID],"States")) {
		for(var i in countries[countryID].States) {
			$("select." + className + ".StateID").append('<option value="' + countries[countryID].States[i].StateID + '">'	+ countries[countryID].States[i].StateName + '</option>');
		}
	}
}

function load_shipping_addresses() {
	var custid = $("input.CustomerID.Customer_Info").val();
	if(typeof(custid) != 'undefined' && custid.length > 0) {
		$.ajax({
		   type: "POST",
		   url: "includes/ajax_functions.php",
		   data: constructQueryString('get_shipping_addresses', custid),
		   dataType: "json",
		   success: function(result) {
				if(result.result) {
					$("select.load_shipping_address").empty().append('<option value="-1">Load Address...</option>');
					for(var i in result.data) {
						$("select.load_shipping_address").append('<option value="' + result.data[i].ShippingAddressID + '">' + result.data[i].Address1 + '</option>');
					}
					
					
				}
		   }
		 });
	}
}

function delete_shipping_address(className) {
	var addressid = $('select.' + className).val();
	if(confirm('Are you sure you want to delete this address?') && addressid > 0) {
		$.ajax({
		   type: "POST",
		   url: "includes/ajax_functions.php",
		   data: constructQueryString('delete_shipping_address', addressid),
		   dataType: "json",
		   success: function(result) {
				if(result.result) {
					load_shipping_addresses();
					//$('span.load_shipping_address_message').html(result.message);
				}
		   }
		 });
	}
}

function get_shipping_address(val, className) {
	if(val == -1) { return false; }
	if(className == null) { className = ""; } else { className = "." + className; }
	var custid = $("input.CustomerID.Customer_Info").val();
	$("div.modal_loader").show();
	$.ajax({
	   type: "POST",
	   url: "includes/ajax_functions.php",
	   data: constructQueryString('get_shipping_address', custid, val),
	   dataType: "json",
	   success: function(result) {
			if(result.result) {
				if(objPropExists(result.data,"CountryID")) { //if a country is returned, update the state dropdown before filling in values
					get_states(	result.data.CountryID, className );
				}
				$(".form_group").find("input" + className + ":hidden,input" + className + ":enabled,select" + className + ":enabled,textarea" + className + ":enabled").not(".load_shipping_address").each(function() {
					var classes = $(this).attr("class").split(" ");
					var field = classes[field_index];
					$(this).val(result.data[field]);
				});
				$("#customer_box_modal div.saveTable").show();
			}
			$("div.modal_loader").hide();
	   }
	 });	
}

function add_shipping_address(className, context) {
	if(className == null) { className = ""; } else { className = "." + className; }
	if(typeof(context) == 'undefined') { context='.form_group'; }
	
	var custid = $("input.CustomerID.Customer_Info").val();
	var address = new Object();
	$(context).find("input" + className + ":hidden,input" + className + ":enabled,select" + className + ":enabled,textarea" + className + ":enabled").not(".load_shipping_address").each(function() {
		var classes = $(this).attr("class").split(" ");
		var field = classes[field_index];
		address[field] = $(this).val();
	});
	
	var addressJSON = $.toJSON(address);
	$.ajax({
	   type: "POST",
	   url: "includes/ajax_functions.php",
	   data: constructQueryString('add_shipping_address', addressJSON, custid),
	   dataType: "json",
	   success: function(result) {
			if(result.result && result.address_id > 0) {
				$("select.load_shipping_address").append('<option value="' + result.address_id + '">' + address.Address1 + '</option>');
				print_result(result);
				//$('span.load_shipping_address_message').html(result.message);
			}
	   }
	 });
	
}

function zipcode_lookup(form_class) {
	var zipcode = $('.zipcode.' + form_class).val();
	var country_id = $('.country.' + form_class).val();
	if (country_id == '1') {
		$.ajax({
			type: "POST",
			url: "includes/ajax/ziplookup.php",
			data: constructQueryString('ziplookup',zipcode),
			dataType: "json",
			success: function(ziplookup) {
				if (ziplookup.result) {
					$('.City.' + form_class).val(ziplookup.CityName);
					$('.StateID.' + form_class).val(ziplookup.StateID);
				}
			}
		});
	}
}