// Place your application-specific JavaScript functions and classes here
// This file is automatically included by javascript_include_tag :defaults

jQuery.fn.ul_to_select = function(){
  return this.each(function(){
    var select_box  = document.createElement('select');
    select_box.id   = this.id + '_select'
    this.parentNode.insertBefore(select_box, this);
      $('<option></option>').html('Choose...').appendTo('#'+select_box.id);
    $(this).find('li a').each(function(link){
      $('<option></option>').html(this.innerHTML).attr('value', this.href).appendTo('#'+select_box.id);
    });
   this.parentNode.removeChild(this);
  });
};

$(document).ready(function(){
  $('#nav_brands').ul_to_select();
  $('#nav_brands_select').change(function(){
    document.location.href=$("#nav_brands_select option:selected").val();
    return false;
  });
});

var shipping_costs = new Hash();

function calculate_order_total(radio){
	$('order_total_cell').update(number_to_currency(order_total_without_shipping + shipping_costs.get(radio.value)));
}

function number_to_currency(number, options) {
	try {
 		var options   = options || {};
		var precision = options["precision"] || 2;
 		var unit      = options["unit"] || "$";
 		var separator = precision > 0 ? options["separator"] || "." : "";
		var delimiter = options["delimiter"] || ",";
   
 		var parts = parseFloat(number).toFixed(precision).split('.');
		return unit + number_with_delimiter(parts[0], delimiter) + separator + parts[1].toString();
	} catch(e) {
		return number
	}
 }

function number_with_delimiter(number, delimiter, separator) {
	try {
		var delimiter = delimiter || ",";
 		var separator = separator || ".";

		var parts = number.toString().split('.');
		parts[0] = parts[0].replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1" + delimiter);
		return parts.join(separator);
	} catch(e) {
		return number
	}
}

