function rebuildFormUrl() {
	var action = '/wine/browse';
	
	if ($('#current_variety').val() !== '') {
		action += '/variety/' + encodeURIComponent($('#current_variety').val());
	}
	
	if ($('#current_region').val() !== '') {
		action += '/region/' + encodeURIComponent($('#current_region').val());
	}
	
	if ($('#current_winery').val() !== '') {
		action += '/winery/' + encodeURIComponent($('#current_winery').val());
	}
	
	$('#wine_finder_form').attr('action', action);
}

function rebuildRegions(data) {

	$('#current_region').val('');
	$('#region .wine_finder_selected').html('<span class="wine_finder_display">All Regions</span>');
	
	var ul = $('#region.wine_finder_ul ul');
	ul.find('.wine_finder_remove').remove();
	
	var html = '';
	for (x in data.regions) {
			//console.log(x + data.regions[x] + '\n' );
		
		if (typeof data.regions[x] !== 'undefined' && typeof data.regions[x] !== 'function') {
			var textRegion = '';
			textRegion = data.regions[x];
			textRegion = textRegion.replace(/-/gi, ' ');
			html += '<li class="wine_finder_remove"><a rel="region" href="/wine/browse/variety/' + encodeURIComponent($('#current_variety').val()) + '/region/' + encodeURIComponent(data.regions[x]) + '/" title="' + textRegion + '" value="' + data.regions[x] + '">' + textRegion + '</a></li>';
		}
	}
	
	if (html === '') {
		html += '<li><em><a class="please_select wine_finder_remove" href="javascript:;" title="Please select a variety first">Please select a variety first</a></em></li>';
	} else {
		html = '<li><em><a class="wine_finder_remove" href="javascript:;" rel="region" value="All Regions" title="All Regions">- All Regions -</a></em></li>' + html;
	}
	ul.append(html);
}

function rebuildWineries(data) {
	$('#current_winery').val('');
	$('#winery .wine_finder_selected').html('<span class="wine_finder_display">All Wineries</span>');
	
	var ul = $('#winery.wine_finder_ul ul');
	ul.find('.wine_finder_remove').remove();
	
	var html = '';
	
	for (x in data.wineries) {
		if (typeof data.wineries[x] !== 'undefined' && typeof data.wineries[x] !== 'function') {
			var textWinery = '';
			textWinery = data.wineries[x];
			textWinery = textWinery.replace(/-/gi, ' ');
			html += '<li class="wine_finder_remove"><a rel="winery" href="/wine/browse/variety/' + encodeURIComponent($('#current_variety').val()) + '/region/' + encodeURIComponent($('#current_region').val()) + '/winery/' + encodeURIComponent(data.wineries[x]) + '/" title="' + textWinery + '" value="' + data.wineries[x] + '">' + textWinery + '</a></li>';
		}
	}
	
	html.replace(' ', '-');
	
	if (html === '') {
		html += '<li><em><a class="please_select wine_finder_remove" href="javascript:;" title="Please select a region first">Please select a region first</a></em></li>';
	} else {
		html = '<li><em><a class="wine_finder_remove" href="javascript:;" rel="winery" value="All Wineries" title="All Wineries">- All Wineries -</a></em></li>' + html;
	}
	
	ul.append(html);
}

$(function() {

	$('.wine_finder_ul a').live('click', function(e) {
		e.preventDefault();
		var link = $(this);
		if (!link.hasClass('please_select')) {
			var display = $(link.parents('.wine_finder_ul').find('.wine_finder_display'));
			//console.log(link.attr('value'));
			if (link.attr('value') === 'All Wineries' || link.attr('value') === 'All Regions' || link.attr('value') === 'All Varieties') {
				
				$('#current_' + link.attr('rel')).val('');
				display.html(link.attr('value'));
				//link.parents('.wine_finder_ul').find('.wine_finder_display').html(link.attr('value'));
			} else {
				$('#current_' + link.attr('rel')).val(link.attr('value'));
				display.html(link.html());
				//link.parents('.wine_finder_ul').find('.wine_finder_display').html(link.html());
			}
		}
		
		if (link.attr('rel') === 'variety') {
			$.ajax({
				url: '/wine/update-regions/',
				data: {variety : $('#current_variety').val()},
				dataType: 'json',
				type: 'post',
				success: function(data){
					rebuildRegions(data);
					rebuildWineries({});
					rebuildFormUrl();
				}
			});	
		} else if (link.attr('rel') === 'region') {
			$.ajax({
				url: '/wine/update-wineries/',
				data: {variety : $('#current_variety').val(), region : $('#current_region').val()},
				dataType: 'json',
				type: 'post',
				success: function(data){
					rebuildWineries(data);
					rebuildFormUrl();
				}
			});	
		} else if (link.attr('rel') === 'winery') {
		
		}
		
		list = $(this).parent();
		if (list.is('.hovered')) {	
			$('ul',list).find('ul').slideUp('fast').removeClass('hovered').parent().removeClass('selection');
		} else {
			$('.wine-finder ul li ul').slideUp('fast').removeClass('hovered').parent().removeClass('selection');
			$('ul',list).slideDown('fast').addClass('hovered').parent().addClass('selection');
		}
		
		rebuildFormUrl();
		
		return false;
	});
	
	$('#wine_finder_submit').click(function() {
		$('#wine_finder_form').submit();
	});
	
	// Click anywhere else to close dropdown
	$('body').click(function() {
		$('.wine-finder ul li ul').slideUp('fast').removeClass('hovered').parent().removeClass('selection');
		//return false;	
	}); 	


});
