 	available = skuSelectorObj.findAvailableSkus()
 	if available.length is 0
 		# showWarningUnavailable
-		options.selectors.warnUnavailable($template).find('input#notifymeSkuId').val(skus[0].sku)
-		options.selectors.warnUnavailable($template).show()
-		$('.skuselector-buy-btn', $template).hide()
+		options.selectors.warnUnavailable(this).find('input#notifymeSkuId').val(skus[0].sku)
+		options.selectors.warnUnavailable(this).show()
+		options.selectors.buyButton(this).hide()
 	else if available.length is 1
 		updatePrice(available[0], options, this)
 

	if value? and not isNaN value
		return parseFloat(value/100).toFixed(2).replace('.',',').replace(/(\d)(?=(\d\d\d)+(?!\d))/g, '$1.')
	else
		return "Grátis"

# Disable unselectable SKUs given the current selections
disableInvalidInputs = (uniqueDimensionsMap, undefinedDimensions, selectableSkus, $template, selectors) ->
	# First, find the first undefined dimension selection list
	firstUndefinedDimensionName = undefinedDimensions[0]

	# If there is no undefined dimension, there is nothing to disable.
	return unless firstUndefinedDimensionName

	for dimension in undefinedDimensions
		# Second, disable all options in this row, add disabled class, remove checked class and matching removeAttr checked
		selectors.itemDimensionInput(dimension, $template).addClass('item_unavaliable').removeAttr('checked').removeClass('checked sku-picked').attr('disabled', 'disabled')
		selectors.itemDimensionLabel(dimension, $template).addClass('disabled item_unavaliable').removeClass('checked sku-picked')

		# Third, enable all selectable options in this row
		for value in uniqueDimensionsMap[dimension]
			# Search for the sku dimension value corresponding to this dimension
			for sku in selectableSkus
				skuDimensionValue = sku.dimensions[dimension]
				# If the dimension value matches, enable the button
				if skuDimensionValue is value
					selectors.itemDimensionValueInput(dimension, value, $template).removeAttr('disabled')
				# If the dimension value matches and this sku is available, show as selectable
				if skuDimensionValue is value and sku.available
					selectors.itemDimensionValueInput(dimension, value, $template).removeClass('item_unavaliable')
					selectors.itemDimensionValueLabel(dimension, value, $template).removeClass('disabled item_unavaliable')
					skuDimensionValue = sku.dimensions[dimension]
					# If the dimension value matches, enable the button
					if skuDimensionValue is value
						selectors.itemDimensionValueInput(dimension, value, context).removeAttr('disabled')
					# If the dimension value matches and this sku is available, show as selectable
					if skuDimensionValue is value and sku.available
						selectors.itemDimensionValueInput(dimension, value, context).removeClass('item_unavaliable')
						selectors.itemDimensionValueLabel(dimension, value, context).removeClass('disabled item_unavaliable')


$.fn.skuSelector = (productId, name, dimensions, skus, options = {}) ->
