﻿function displayList(divId) {
	var divs = Array();
	for (i = 0; i < 7; i++) {
		var divEl = document.getElementById('GroupItems_' + (i + 1));
		var divTabEl = document.getElementById('TabItem_' + (i + 1));
		if (divEl != null) divEl.style.display = 'none';
		if (divTabEl != null) divTabEl.className = 'tabItem';
	}

	var divToShow = document.getElementById('GroupItems_' + divId);
	var divTabToShow = document.getElementById('TabItem_' + divId);
	
	if (divToShow != null) divToShow.style.display = 'block';
	if (divTabToShow != null) divTabToShow.className = 'tabItemActive';
}

function strTrim(stringToTrim) {
	return stringToTrim.replace(/^\s+|\s+$/g, '')
}

function addToBasket(imgObj) {

	var trElement = imgObj.parentNode.parentNode;
	var inputElement = trElement.cells[2].childNodes[0];
	var countValue = strTrim(inputElement.value);
	var itemId = trElement.getAttribute('itemId');
	var price = trElement.getAttribute('price');

	if (countValue != null && countValue != '' && !isNaN(inputElement.value)) {
		var newItem = new basketItem(itemId, inputElement.value, price, trElement.cells[0].innerHTML);
		currentBasket.addToBasket(newItem);
		addItemsToTotalTable(newItem);
	}
	displayTotal();
}

function displayTotal() {
	var divCurrentBasketTotalPrice = document.getElementById('currentBasketTotalPrice');
	divCurrentBasketTotalPrice.innerHTML = currentBasket.getTotalPrice();
}

function addItemsToTotalTable(itemObj) {

	var objTableCurrentTotal = document.getElementById('tableCurrentTotal');

	var existingRow = null;
	for (i = 0; i < objTableCurrentTotal.tBodies[0].rows.length; i++) {
		var rowItemId = objTableCurrentTotal.tBodies[0].rows[i].getAttribute('itemId')
		if (rowItemId == itemObj.itemId) {
			existingRow = objTableCurrentTotal.tBodies[0].rows[i];
		}
	}

	if (existingRow == null) {
		existingRow = document.createElement('tr');
		existingRow.setAttribute('itemId', itemObj.itemId);
		existingRow.setAttribute('itemCount', itemObj.itemCount);

		var cell1 = document.createElement('td');
		cell1.align = 'center';
		cell1.innerHTML = '<img src="/Images/deleteIcon.jpg" onclick="deleteItem(this)" style="cursor:pointer;"/>';
		existingRow.appendChild(cell1);

		var cell2 = document.createElement('td');
		cell2.innerHTML = itemObj.itemName;
		existingRow.appendChild(cell2);

		var cell3 = document.createElement('td');
		cell3.align = 'center';
		cell3.innerHTML = itemObj.itemCount;
		existingRow.appendChild(cell3);

		var cell4 = document.createElement('td');
		cell4.innerHTML = '£' + itemObj.itemTotalPrice();
		cell4.align = 'right';
		existingRow.appendChild(cell4);

		var tBodyElements = objTableCurrentTotal.getElementsByTagName('tbody');
		if (tBodyElements != null && tBodyElements.length > 0) {
			tBodyElements[0].appendChild(existingRow);
		}
	} else {
		var existingItem = currentBasket.getItemById(itemObj.itemId);
		existingRow.cells[2].innerHTML = existingItem.itemCount;
		existingRow.cells[3].innerHTML = '£' + existingItem.itemTotalPrice();
	}
}

function deleteItem(srcObj) {
	var currentTotalItemRow = srcObj.parentNode.parentNode;
	var tableElement = document.getElementById('tableCurrentTotal');
	currentBasket.removeItemById(currentTotalItemRow.getAttribute('itemId'));
	tableElement.deleteRow(currentTotalItemRow.rowIndex);
	displayTotal();
}

function clearTotalTable() {
	currentBasket.clearBasket();
	var tableElement = document.getElementById('tableCurrentTotal');
	rowCount = tableElement.tBodies[0].rows.length;
	for(i=0;i<rowCount;i++) {
		tableElement.tBodies[0].deleteRow(rowCount - i - 1);
	}
	displayTotal();
}

/*classess*/
/* Class: basketItem */
function basketItem(id, count, price, name) {
	this.itemId = id;
	this.itemCount = parseInt(count);
	this.itemPrice = parseFloat(price);
	this.itemName = name;
	// ClassFunction: basketItem.itemTotalPrice()
	this.itemTotalPrice = function() {
		return (parseInt(this.itemCount) * parseFloat(this.itemPrice)).toFixed(2);
	}
}

/* laundryBasket class instantion*/
var currentBasket = new laundryBasket();

/* Class: laundryBasket */
function laundryBasket() {
	this.items = Array();

	// ClassFunction: laundryBasket.addToBasket()
	this.addToBasket = function(itemObj) {
		var existingItem = null;
		for (i = 0; i < this.items.length; i++) {
			if (this.items[i].itemId == itemObj.itemId)
				existingItem = this.items[i];
		}
		if (existingItem == null) {
			this.items[this.items.length] = itemObj;
		} else {
		existingItem.itemCount = parseInt(existingItem.itemCount) + parseInt(itemObj.itemCount);
		}
	}

	// ClassFunction: laundryBasket.getTotalPrice()
	this.getTotalPrice = function() {
		var totalPrice = 0;
		for (i = 0; i < this.items.length; i++) {
			totalPrice = totalPrice + parseFloat(this.items[i].itemTotalPrice());
		}
		return totalPrice.toFixed(2);
	}

	// ClassFunction: laundryBasket.getItemById()
	this.getItemById = function(itemId) {
		for (i = 0; i < this.items.length; i++) {
			if (this.items[i].itemId == itemId) {
				return this.items[i];
			}
		}
		return null;
	}

	// ClassFunction: laundryBasket.removeItemById()
	this.removeItemById = function(itemId) { 
		for(i=0;i<this.items.length;i++) {
			if(this.items[i].itemId==itemId) {
				this.items.splice(i,1);
			}
		}
	}

	// ClassFuncction: laundryBasket.clearBasket()
	this.clearBasket = function() {
		this.items.splice(0, this.items.length);
	}
}
