/* ========================================================================================

		File: 			stockists.js
		Dependencies: 	jquery
		
		Description:	Handles country/region/state switching on stockists page

   ======================================================================================== */
	
	var Stockists = {
		
		// stockist vars
		countries: {
			'australia': [],
			'new-zealand': [],
			'europe': [],
			'usa': [],
			'all-other-countries' : []
		},
		
		country_select: '#countries',
		state_select: '#states',
		stockists_list: '#stockists-list',
		
		// == init stockists ================================================================
		init: function() {
			$(Stockists.country_select).bind('change', Stockists.region_change);
		},
		
		// == region change event handler ===================================================
		region_change: function() {
			
			var selected = $(Stockists.country_select + ' option:selected').val();
			var states = Stockists.countries[selected];
			var state_list = $(Stockists.state_select);
		
			// if country/region has been selected
			if (selected.length > 0) { 
			
				$(Stockists.stockists_list).fadeOut('normal', function() {
					// empty states drop down if previous populated
					$(Stockists.state_select).empty();
					$('.none-available').hide('fast');
					$(Stockists.stockists_list + ' li').removeClass('active');
			
					// if Australian location handle by state
					if (selected.toLowerCase() == 'australia') {
						
						$(Stockists.state_select).append('<option value="">Select State</option>');
					
						//state_list. clear the dropdown for states
						for (var i = 0; i < states.length; i++) {
							// add this state to the dropdown
							$(Stockists.state_select).append('<option value="' + states[i].toLowerCase() + '">' + states[i] + '</option>');
						}
						
						// attach change listener for state drown down
						$(Stockists.state_select).bind('change', Stockists.state_change);
						$(Stockists.state_select).fadeIn('fast');
						
					} else {	// everywhere else just show region stockists
						$(Stockists.state_select).fadeOut('fast');
						$(Stockists.stockists_list + ' li.' + selected).addClass('active');
						$(Stockists.stockists_list).fadeIn('normal', function(){
							Stockists.none_availble();																									
						});
					}
			});
			
			}			
			
		},
		
		// == state change event handler =====================================================
		state_change: function() {
									  
			var selectedState = $(Stockists.state_select + ' option:selected').val();
			
			// if state selected
			if (selectedState.length > 0) {
				$(Stockists.stockists_list).stop().fadeOut('normal', function() {
					$('.none-available').hide('fast');
					$(Stockists.stockists_list + ' li').removeClass('active');
					$(Stockists.stockists_list + ' li.' + selectedState).addClass('active');
					$(Stockists.stockists_list).fadeIn('normal', function() {
						Stockists.none_availble();
					});
				});
			}
		},
		
		// == display none avail message if no stockists in region ============================
		none_availble: function() {
			
			if ($(Stockists.stockists_list + ' li.active').length <= 0)
			{
				if ($('.none-available').length <= 0) {
					$(Stockists.stockists_list).after('<p class="none-available" style="display: none;">There are no stockists available in this location.</p>');
				}
				$('.none-available').fadeIn('normal');
			}
		}		
		
	}
	
/* =========================================================================================
	jQuery main
	=========================================================================================	*/
	$(document).ready(function() { 
										

	});
	