var jq_filterSizeOptions_id = null;
var jq_filterSizeOptions_allSizeOpts = null;
var jq_filterSizeOptions_filteredSizeOpts = null;


(function($) {

	 $.fn.loadFilteredSizeOptions = function(productId, sizeSelectBox, ValidSizeOptionsURL) {
		 if (jq_filterSizeOptions_id == null || jq_filterSizeOptions_id != productId) {
			 //This call needs to be synchronous because we need to block user
			 //actions until it completes.
			 $.ajax({
				url: ValidSizeOptionsURL,
				async: false,
				success: function(html) {
				 	jq_filterSizeOptions_id = productId;
				 	jq_filterSizeOptions_allSizeOpts = sizeSelectBox.html();
				 	jq_filterSizeOptions_filteredSizeOpts = $(html);
				},
				error: function(XMLHttpRequest, textStatus, errorThrown) {
					//alert(textStatus + errorThrown);
					//alert(XMLHttpRequest.responseText);
					return;
				}
			});
		 }
	};
	
		
	$.fn.filterSizeOptions = function(productId, selectedColor, selectedSize, sizeSelectBox, ValidSizeOptionsURL) {
		$.fn.loadFilteredSizeOptions(productId, sizeSelectBox, ValidSizeOptionsURL);
		
		if (selectedColor) {			
			var filteredOpts = jq_filterSizeOptions_filteredSizeOpts.find('#filteredSizes_' + selectedColor).html();
			
			if (filteredOpts.length) {
				sizeSelectBox.html(filteredOpts);
			}
			else {
				sizeSelectBox.html(jq_filterSizeOptions_allSizeOpts);
			}
		}
		else {
			sizeSelectBox.html(jq_filterSizeOptions_allSizeOpts);
		}
		
		if (selectedSize) {
			sizeSelectBox.find('.' + selectedSize.toLowerCase()).attr('selected','selected');
		}
	};

})(jQuery)
