jQuery.jCore.modules.shoppingOrders = {	admin: {
		newOrder: {
			cart: {
				currency: '$',
				subtotal: 0,
				discount: 0,
				fee: 0,
				items: Array(),

				getDiscount: function(subtotal) {
					if (!subtotal) {
						this.discount = 0;
						jQuery.jCore.modules.shoppingOrders.admin.newOrder.cart.refreshTotals();
						return;
					}

					jQuery.loading(true, {text: 'Loading...'});
					url = '?request=modules/shoppingorders&subtotal='+escape(subtotal)+'&discount=1&admin=1&ajax=1';

					jQuery.get(url, function(data){
						jQuery.loading(true, {text: 'Done'});
						jQuery.loading(false);
						jQuery.jCore.modules.shoppingOrders.admin.newOrder.cart.discount = parseFloat(data);
						jQuery.jCore.modules.shoppingOrders.admin.newOrder.cart.refreshTotals();
					});
				},

				getFee: function(subtotal) {
					if (!subtotal) {
						this.fee = 0;
						jQuery.jCore.modules.shoppingOrders.admin.newOrder.cart.refreshTotals();
						return;
					}

					jQuery.loading(true, {text: 'Loading...'});
					url = '?request=modules/shoppingorders&subtotal='+escape(subtotal)+'&fee=1&admin=1&ajax=1';

					jQuery.get(url, function(data){
						jQuery.loading(true, {text: 'Done'});
						jQuery.loading(false);
						jQuery.jCore.modules.shoppingOrders.admin.newOrder.cart.fee = parseFloat(data);
						jQuery.jCore.modules.shoppingOrders.admin.newOrder.cart.refreshTotals();
					});
				},

				add: function(itemid, refnumber, title, quantity, price) {
					cart = jQuery('#neworderform .shopping-order-cart tbody');

					if (!refnumber || !title || !quantity || !price) {
						itemtds = jQuery('#shoppingorderneworderitemlistrow'+itemid+' td');

						if (!refnumber)
							refnumber = jQuery(itemtds.get(0)).html();

						if (!title)
							title = jQuery(itemtds.get(1)).html();

						if (!price)
							price = jQuery(itemtds.get(3)).find('input').val();

						if (!quantity) {
							if (jQuery(itemtds.get(2)).find('select').val())
								quantity = jQuery(itemtds.get(2)).find('select').val();
							else
								quantity = jQuery(itemtds.get(2)).find('input').val();
						}
					}

					this.items[this.items.length] = {
							id: itemid,
							refnumber: refnumber,
							title: title,
							quantity: quantity,
							price: price
						};

					this.refresh();
					return false;
				},

				remove: function(cartitemid) {
					items = new Array();
					for(i = 0; i < this.items.length; i++)
						if (i != cartitemid)
							items[items.length] = this.items[i];

					this.items = new Array();
					this.items = items;

					this.refresh();
					return false;
				},

				refresh: function() {
					cart = jQuery('#neworderform .shopping-order-cart tbody');
					cart.find('tr').remove();

					this.subtotal = 0;

					for(i = 0; i < this.items.length; i++) {
						cart.append(
							"<tr"+(i%2?" class='pair'":null)+">"+
								"<td>" +
									this.items[i].refnumber + "<input type='hidden' name='ShoppingItemID[]' value='"+this.items[i].id+"'>" +
								"</td>" +
								"<td class='auto-width'>" +
									this.items[i].title +
								"</td>" +
								"<td align='center'>" +
									this.items[i].quantity + "<input type='hidden' name='ShoppingItemQuantity[]' value='"+this.items[i].quantity+"'>" +
								"</td>" +
								"<td align='right'>" +
									this.currency + jQuery.numberFormat(this.items[i].price, 2) + "<input type='hidden' name='ShoppingItemPrice[]' value='"+this.items[i].price+"'>" +
								"</td>" +
								"<td align='right'>" +
									this.currency + jQuery.numberFormat((this.items[i].quantity*this.items[i].price), 2) +
								"</td>" +
								"<td align='center'>" +
									"<a class='shopping-order-new-order-remove-item' href='javascript://' onclick='jQuery.jCore.modules.shoppingOrders.admin.newOrder.cart.remove("+i+");' title='Remove'></a>" +
								"</td>" +
							"</tr>");

						this.subtotal += (this.items[i].quantity*this.items[i].price);
					}

					this.getDiscount(this.subtotal);
					this.getFee(this.subtotal);

					if (jQuery('#neworderform .shopping-orders-cart-add-item').data('qtip'))
						jQuery('#neworderform .shopping-orders-cart-add-item').qtip('api').updatePosition();
				},

				refreshTotals: function() {
					grandtotal = this.subtotal-this.discount+this.fee;

					jQuery('#neworderform .shopping-order-cart-totals .shopping-order-cart-subtotal span.bold').html(this.currency+jQuery.numberFormat(this.subtotal, 2));
					jQuery('#neworderform .shopping-order-cart-totals .shopping-order-cart-discount span.bold').html(this.currency+jQuery.numberFormat(this.discount, 2));
					jQuery('#neworderform .shopping-order-cart-totals .shopping-order-cart-fee span.bold').html(this.currency+jQuery.numberFormat(this.fee, 2));
					jQuery('#neworderform .shopping-order-cart-totals .shopping-order-cart-grand-total span.bold').html(this.currency+jQuery.numberFormat(grandtotal, 2));
				}
			},

			items: {
				search: function() {
					jQuery.loading(true, {text: 'Loading...'});

					container = jQuery('.shopping-order-new-order-items-search').parent().parent();
					shoppingid = jQuery('.shopping-order-new-order-items-search select').get(0).value;
					search = jQuery('.shopping-order-new-order-items-search input').get(0).value;

					url = '?request=modules/shoppingorders&neworderitems=1&shoppingid='+shoppingid+'&search='+escape(search)+'&admin=1&ajax=1';

					jQuery.get(url, function(data){
						container.html(data);
						container.jCore();

						jQuery.loading(true, {text: 'Done'});
						jQuery.loading(false);
					});

					return false;
				}
			},

			users: {
				search: function() {
					jQuery.loading(true, {text: 'Loading...'});

					container = jQuery('.shopping-order-new-order-users-search').parent().parent();
					search = jQuery('.shopping-order-new-order-users-search input').get(0).value;

					url = '?request=modules/shoppingorders&neworderusers=1&search='+escape(search)+'&admin=1&ajax=1';

					jQuery.get(url, function(data){
						container.html(data);
						container.jCore();

						jQuery.loading(true, {text: 'Done'});
						jQuery.loading(false);
					});

					return false;
				},

				select: function(userid, username) {
					usertds = jQuery('#shoppingorderneworderuserrow'+userid+' td');

					if (!username)
						username = jQuery(usertds.get(0)).text();

					jQuery('#neworderform #entryUserName').val(username);

					if (jQuery('#neworderform .shopping-order-new-order-add-user').data('qtip'))
						jQuery('#neworderform .shopping-order-new-order-add-user').qtip('hide');

					return false;
				}
			}
		}
	}
}
