function listTemplates()
{
	startLoading();
	setTimeout("_listTemplates()", 10);
}

function _listTemplates()
{
	var objAjax;
	
	objAjax = new CAjax();
	objAjax.create();

	objTab.addTab("tab_templateList", lang("Template List"), true);
	objTab.showTab("tab_templateList");
	
	if (objAjax.open("ajax/ajax_listTemplates.php", true))
	{
		var objTabDiv = document.getElementById("tab_templateList");
		objTabDiv.innerHTML = objAjax.getResponse();
	}
	
	endLoading();
}

function loadTemplate()
{
	var objForm, strTemplateName, strEmptyBasket;
	
	objForm = document.templateForm;
	strTemplateName = objForm.templateName.value;
	
	if (strTemplateName == "")
	{
		alert(lang("Please select a template"));
		return false;
	}
	
	startLoading();
	
	strEmptyBasket = "false";
	
	if (confirm(lang("Empty basket before applying template?")))
	{
		strEmptyBasket = "true";
	}
	
	setTimeout("_loadTemplate('" + strTemplateName + "', '" + strEmptyBasket + "')", 10);
}

function _loadTemplate(strTemplateName, strEmptyBasket)
{
	var objAjax;
	
	objAjax = new CAjax();
	objAjax.create();

	if (objAjax.open("ajax/ajax_basket.php?mode=LOADTEMPLATE&name=" + strTemplateName + "&empty=" + strEmptyBasket, true))
	{
		var objTabDiv = document.getElementById("mainContent");
		objTabDiv.innerHTML = objAjax.getResponse();
		resizeMenu();
		viewBasket();
	}
	
	endLoading();
}

function viewTemplate(strTemplateName)
{
	startLoading();
	
	setTimeout("_viewTemplate('" + strTemplateName + "')", 10);
}

function _viewTemplate(strTemplateName)
{
	var objAjax;
	
	objAjax = new CAjax();
	objAjax.create();

	if (objAjax.open("ajax/ajax_basket.php?mode=VIEWTEMPLATE&name=" + escape(strTemplateName), true))
	{
		objTab.addTab("tab_viewTemplate", lang("View Template"), true);
		objTab.showTab("tab_viewTemplate");
		var objTabDiv = document.getElementById("tab_viewTemplate");
		objTabDiv.innerHTML = objAjax.getResponse();
	}
	
	endLoading();
}

function addMultipleToBasket(bAll)
{
	var strAddQuantity, strEmptyBasket;
	
	strEmptyBasket = "true";
	strAddQuantity = "false";
	
	if (confirm(lang("Keep current basket?")))
	{
		strEmptyBasket = "false";
		strAddQuantity = "true";
	}
	
	startLoading();
	setTimeout("_addMultipleToBasket(" + bAll + ", '" + strEmptyBasket + "', '" + strAddQuantity + "')", 10);	
}

function getSelectedItems(bAll)
{
	var arrElements, arrTally, objTally, objTallyXmlNode, objInput, strId, objXmlRequestDom, objProductNode, objSelect, iCount, objDescription;
	
	arrElements = document.getElementsByTagName("input");
	
	objXmlRequestDom = xml_createXmlDom();
	objXmlRequestDom.loadXML("<kmsg></kmsg>");
	iCount = 0;
	
	for (var i = 0; i < arrElements.length; i++)
	{
		objInput = arrElements[i];
		strId = objInput.id;

		if (strId.substr(0,14) == "temp_quantity_")
		{
			strCode = strId.substr(14);
			objSelect = document.getElementById("temp_select_" + strCode);
			objDescription = document.getElementById("temp_description_" + strCode);
			objBalance = document.getElementById("temp_balance_" + strCode);
			objNotes = document.getElementById("temp_notes_" + strCode);
			arrTally = document.getElementsByTagName("tally");
		
						
			if (bAll || objSelect.value == 'true')
			{
				objProductNode = getProductRow(objXmlRequestDom, strCode);
				objProductNode.setAttribute("quantity", objInput.value);
				objProductNode.setAttribute("balance", objBalance.value);
				objProductNode.setAttribute("notes", objNotes.value);
				
				if (objDescription)
				{
					objProductNode.setAttribute("description", objDescription.value);
				}
			
				for (var iTallyCount = 0; iTallyCount < arrTally.length; iTallyCount++)
				{
					objTally = arrTally[iTallyCount];
					
					if (objTally.getAttribute("name") == "temp_tally_" + strCode)
					{	
						objTallyXmlNode = xml_createNode(objProductNode, "tally");
						objTallyXmlNode.setAttribute("quantity", objTally.getAttribute("quantity"));
						objTallyXmlNode.setAttribute("width", objTally.getAttribute("width"));
						objTallyXmlNode.setAttribute("length", objTally.getAttribute("length"));
					}
				}
				
				iCount ++;
			}
		}
	}
	
	if (iCount == 0)
	{
		alert(lang("No items were added to the basket"));
		return "";
	}
	
	return objXmlRequestDom.xml;
}

function _addMultipleToBasket(bAll, strEmptyBasket, strAddQuantity)
{
	var objForm, strBasketXml;
	var objAjax;

	objForm = document.getElementById("basket");
	
	strBasketXml = getSelectedItems(bAll);

	if (strBasketXml == "")
	{
		endLoading();
		return;
	}
	
	objAjax = new CAjax();
	objAjax.create();
	
	if (objAjax.open("ajax/ajax_basket.php?mode=UPDATE&empty=" + strEmptyBasket + "&addQuantity=" + strAddQuantity, false))
	{
		objAjax.send(strBasketXml);
		
		_refreshContent("products.php", lang("Products"));
		viewBasket();
	}
	else
	{
		alert(lang("There has been a problem, please contact an administrator"));
	}
	
	endLoading();
}