Number.prototype.formatMoney = function(c, d, t){
	var n = this, c = isNaN(c = Math.abs(c)) ? 2 : c, d = d == undefined ? "," : d, t = t == undefined ? "." : t, s = n < 0 ? "-" : "", i = parseInt(n = Math.abs(+n || 0).toFixed(c)) + "", j = (j = i.length) > 3 ? j % 3 : 0;
	return s + (j ? i.substr(0, j) + t : "") + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + t) + (c ? d + Math.abs(n - i).toFixed(c).slice(2) : "");
};

nbxOrder = {
	num: 1
};

nbxOrder.Init = function() {
	el('order-form').style.display = 'block';
	nbxOrder.AddRow();
};

nbxOrder.AddRow = function() {
	// Create the row
	var id = nbxOrder.num;
	var wrap = document.createElement('div');
	wrap.className = 'person';
	wrap.id = 'row-'+id;
	wrap.innerHTML = row.replace(/\$id/g, nbxOrder.num);
	el('order-rows').appendChild(wrap);
	nbxOrder.OrderRows();
	nbxOrder.num+= 1;
	// Populate the menu item selects
	nbxOrder.PopMenuSelect(el('row-'+id+'-item'), 'box', true);
	nbxOrder.PopMenuSelect(el('row-'+id+'-side'), 'side', true);
	nbxOrder.PopMenuSelect(el('row-'+id+'-drink'), 'drink', true);
};

nbxOrder.ChangeItem = function(obj) {
	var id = obj.id.split('-');
	if(id[2] == 'item') {
		var sizesel = el('row-'+id[1]+'-size');
		var scope = 'box';
	}
	else {
		var sizesel = el('row-'+id[1]+'-sidesize');
		var scope = 'side';
	}
	sizesel.options.length = 0;
	if(obj.value != '') {
		// Available sizes
		var mitem = menu[scope][obj.value.split('|')[0]];
		if(mitem.size_2 != '') {
			sizesel.options[0] = new Option(mitem.size_2.split('|')[0], mitem.size_2);
			sizesel.options[1] = new Option(mitem.size_1.split('|')[0], mitem.size_1);
		}
		else {
			sizesel.options[0] = new Option(mitem.size_1.split('|')[0], mitem.size_1);	
		}
		// Chilli
		el('row-'+id[1]+'-chilli').options[0] = new Option('No Chilli', 'No Chilli');
		el('row-'+id[1]+'-chilli').options[1] = new Option('Mild', 'Mild');	
		el('row-'+id[1]+'-chilli').options[2] = new Option('Medium', 'Medium');
		el('row-'+id[1]+'-chilli').options[3] = new Option('Hot', 'Hot');
	}
	else {
		el('row-'+id[1]+'-chilli').options.length = 0;
	}
	nbxOrder.Calculate();
};

nbxOrder.Calculate = function() {
	var total = 0;
	var rows = el('order-rows').getElementsByTagName('div');
	for(var i = 0; i < rows.length; i++) {
		var id = rows[i].id.split('-')[1];
		var subtotal = 0;
		// Box
		var itemsel = el('row-'+id+'-size');
		if(itemsel.value != '') {
			subtotal+= parseFloat(itemsel.value.split('|')[1]);
		}
		// Side
		var itemsel = el('row-'+id+'-sidesize');
		if(itemsel.value != '') {
			subtotal+= parseFloat(itemsel.value.split('|')[1]);
		}
		// Drink
		var itemsel = el('row-'+id+'-drink');
		if(itemsel.value != '') {
			subtotal+= parseFloat(menu['drink'][itemsel.value.split('|')[0]]['size_1'].split('|')[1]);
		}
		el('row-'+id+'-subtotal').innerHTML = subtotal.formatMoney(2, '.', ',');
		el('row-'+id+'-subtotal-field').value = subtotal.formatMoney(2, '.', ',');
		total+= subtotal;
	}
	el('order-total').innerHTML = total.formatMoney(2, '.', ',');
	el('order-total-field').value = total.formatMoney(2, '.', ',');
};

nbxOrder.RemRow = function(id) {
	if(nbxOrder.CountRows() > 1) {
		var row = el('row-'+id);
		row.parentNode.removeChild(row);
		nbxOrder.OrderRows();
		nbxOrder.Calculate();
	}
};

nbxOrder.CountRows = function() {
	var rows = el('order-rows').getElementsByTagName('div');
	return rows.length;
};

nbxOrder.OrderRows = function() {
	var count = 1;
	var rows = el('order-rows').getElementsByTagName('div');
	for(var i = 0; i < rows.length; i++) {
		rows[i].getElementsByTagName('span')[0].innerHTML = count;
		count++;
	}
};

nbxOrder.PopMenuSelect = function(obj, scope, blank) {
	obj.options.length = 0;
	if(typeof(blank) != 'undefined') {
		obj.options[0] = new Option('Select one..', '');	
	}
	for(var x in menu[scope]) {
		if(menu[scope][x]['name']) {
			obj.options[obj.options.length] = new Option(menu[scope][x]['name'], x + '|' + menu[scope][x]['name']);	
		}
	}
};

nbxOrder.SelectStore = function(obj) {
	if(obj.value != '') {
		var faxno = obj.value.split('|')[1];
		el('store-fax').innerHTML = 'FAX: ' + faxno;
	}
	else {
		el('store-fax-field').innerHTML = 'Please select a store';
	}
};

nbxOrder.Print = function() {
	if(el('order-rows').getElementsByTagName('select')[0].value == '') {
		return false;	
	}
	var req = ['order-store', 'order-contact', 'order-phone', 'order-pickup'];
	for(var i = 0; i < req.length; i++) {
		if(el(req[i]).value == '') {
			alert('Please complete all required fields (*)');
			return false;
		}
	}
	var oForm = el('order-form');
	if(navigator.userAgent.toLowerCase().indexOf('msie') != -1) {
		oForm.target = '_blank';
	}
	oForm.submit();	
};

addDOMLoadEvent(function(){
	nbxOrder.Init();
});
