/*function onbeforeunload()
{
	return("Due to the nature of the application, refreshing content and\nusing browser history to navigate the website is not possible and will produce undesirable behaviour.");
}*/
function launchApplication()
{
	var objButton;
	
	objButton = document.getElementById("CloseButton");
	objButton.disabled = false;
	
	window.open("main.php", "Web", "width=1024,height=700,toolbar=no,location=no,menubar=no,scrollbars=yes,resizable=yes,status=yes");
}

function setFocus(strId)
{
	setTimeout("_setFocus('" + strId + "')", 10);
}

function _setFocus(strId)
{
	var objItem;
	
	objItem = document.getElementById(strId);
	objItem.focus();
}

function logout()
{
	if (confirm(lang("Are you sure you want to log out?")))
	{
		window.location="logout.php";
	}
}

function startLoading()
{
	var objDiv = document.getElementById("loading");
	objDiv.style.visibility = "visible";
	document.body.style.cursor = "wait";
}

function endLoading()
{
	var objDiv = document.getElementById("loading");
	objDiv.style.visibility = "hidden";
	document.body.style.cursor = "auto";
}

function toggleSideMenu()
{
	var objSideMenu, objSideMenuBack, objSideMenuMinimiser, objMainContent, objPageTitle;
	
	objSideMenu = document.getElementById("sideMenu");
	objSideMenuBack = document.getElementById("sideMenuBack");
	objSideMenuMinimiser = document.getElementById("sideMenuMinimiser");
	objMainContent = document.getElementById("rightContent");
	objPageTitle = document.getElementById("pageTitleHolder");
	
	if (objSideMenu.getAttribute("isHidden") != "true")
	{
		
		objSideMenu.className = "sideMenuHidden";
		objSideMenuBack.className = "sideMenuBackHidden";
		objSideMenuMinimiser.className = "sideMenuMinimiserMinimised";
		objMainContent.className = "mainContent";
		objPageTitle.className = "systemName";
		
		objSideMenu.setAttribute("isHidden", "true");
	}
	else
	{
		objSideMenu.className = "sideMenu";
		objSideMenuBack.className = "sideMenuBack";
		objSideMenuMinimiser.className = "sideMenuMinimiser";
		objMainContent.className = "mainContentMenu";
		objPageTitle.className = "systemNameMenu";
		
		objSideMenu.setAttribute("isHidden", "false");
	}
}

function validateForm(objForm)
{
	var objElements, bComplete;
	
	bComplete = true;
	
	if(document.layers)
	{
		objElements = objForm.all;
	}
	else if(document.all)
	{
		objElements = objForm.all;
	}
	else
	{
		objElements = objForm.getElementsByTagName("*");
	}
	
	
	for (var i=0; i < objElements.length;i++)
	{
		if (objElements[i].getAttribute("required") == "true")
		{
			if (objElements[i].value.length <= 0)
			{
				objElements[i].style.backgroundColor = "#7BA2E7";
				bComplete = false;
			}
			else
			{
				objElements[i].style.backgroundColor = "#FFFFFF";
			}
		}
	}
	
	if (!bComplete)
	{
		alert(lang("Please complete the required fields"));
	}
	
	return bComplete;
}

function getHeight() 
{
	var inHeight = 0;
	
	if( typeof( window.innerWidth ) == 'number' ) 
	{
			//Non-IE
			inHeight = window.innerHeight;
	} 
	else 
	{
		if( document.documentElement &&
			(document.documentElement.clientHeight ) ) 
		{
			//IE 6+ in 'standards compliant mode'
			inHeight = document.documentElement.clientHeight;
		} 
		else 
		{
			if( document.body && ( document.body.clientHeight ) ) 
			{
				//IE 4 compatible
				inHeight = document.body.clientHeight;
			}
		}
	}
	
	return inHeight;
}


function findLeft(obj)
{
	var iLeft = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			iLeft += obj.offsetLeft;
			obj = obj.offsetParent;
		}
	}
	else if (obj.x)
	{
		iLeft += obj.x;
	}
	
	return iLeft;
}


function findTop(obj)
{
	var iTop = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			iTop += obj.offsetTop;
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)
	{
		iTop += obj.y;
	}
	
	return iTop;
}


function findBottom(obj)
{
	var iBottom = 0;

	if (obj.offsetHeight)
	{
		iBottom = obj.offsetHeight;
		
		while (obj.offsetParent)
		{
			iBottom += obj.offsetTop;
			obj = obj.offsetParent;
		}
		
		
	}
	else if (obj.y)
	{
		iBottom += obj.y;
	}
	
	return iBottom;
}

function findRight(obj)
{
	var iRight = 0;
	if (obj.offsetParent)
	{
		iRight = obj.offsetWidth;
		
		while (obj.offsetParent)
		{
			iRight += obj.offsetLeft;
			obj = obj.offsetParent;
		}
	}
	else if (obj.x)
	{
		iRight += obj.x;
	}
	
	return iRight;
}

function accountDetail_showDetail(strShowAccount)
{
	document.body.style.cursor = "wait";
	hideMenus();
	startLoading();
	
	setTimeout("_accountDetail_showDetail('" + strShowAccount + "')", 1);
}

function _accountDetail_showDetail(strShowAccount)
{
	_refreshContent('accountDetail.php','Account');
	
	if (strShowAccount == "true")
	{
		objTab.addTab("tab_accountDetail", lang("Account Detail"), true, true);
		objTab.addTab("tab_accountStatus", lang("Account Status"), true, true);
		objTab.showTab("tab_accountDetail");
	}
}

function addLoginTab()
{
	objTab.addTab("tab_login", lang("Login"), true, true);
	setTimeout("_addLoginTab()", 1);
}

function _addLoginTab()
{
	var objUser;
	
	objUser = document.getElementById("userid");
	objUser.focus();
}

function createUser()
{
	var objAjax, objDiv;
	
	objTab.addTab("tab_createUser", lang("Create User"), true);
	objTab.showTab("tab_createUser");
	
	objDiv = document.getElementById("tab_createUser");
	objAjax = new CAjax();
	objAjax.create();

	if (objAjax.open("ajax/ajax_xsl.php?xsl=ajax/ajax_createUser", true))
	{
		objDiv.innerHTML = objAjax.getResponse();
	}
}

function saveUser()
{
	startLoading();
	
	setTimeout("_saveUser()", 1);
}

function _saveUser()
{
	var objForm;
	var strName, strLine1, strLine2, strLine3, strLine4, strPostCode, strNotes, strPassword, strPhone, strFax, strEmail, strPassword;
	
	objForm = document.getElementById("userForm");
	
	if (!validateForm(objForm))
	{
		return false;
	}

	strName = document.getElementById("user_name").value;
	strLine1 = document.getElementById("user_address1").value;
	strLine2 = document.getElementById("user_address2").value;
	strLine3 = document.getElementById("user_address3").value;
	strLine4 = document.getElementById("user_address4").value;
	strPostCode = document.getElementById("user_postcode").value;
	strNotes = document.getElementById("user_notes").value;
	strPhone = document.getElementById("user_phone").value;
	strFax = document.getElementById("user_fax").value;
	strEmail = document.getElementById("user_email").value;
	strPassword = document.getElementById("user_password").value;
	
	
	objXmlRequestDom = xml_createXmlDom();
	objXmlRequestDom.loadXML("<kmsg></kmsg>");
	objKmsgNode = objXmlRequestDom.selectSingleNode("kmsg");
	
	xml_createNode(objKmsgNode, "name", strName);
	xml_createNode(objKmsgNode, "line", strLine1);
	xml_createNode(objKmsgNode, "line", strLine2);
	xml_createNode(objKmsgNode, "line", strLine3);
	xml_createNode(objKmsgNode, "line", strLine4);
	xml_createNode(objKmsgNode, "postcode", strPostCode);
	xml_createNode(objKmsgNode, "notes", strNotes);
	xml_createNode(objKmsgNode, "phone", strPhone);
	xml_createNode(objKmsgNode, "fax", strFax);
	xml_createNode(objKmsgNode, "email", strEmail);
	xml_createNode(objKmsgNode, "password", strPassword);
	
	objDiv = document.getElementById("saveUserResponse");
	objAjax = new CAjax();
	objAjax.create();

	if (objAjax.open("ajax/ajax_saveUser.php", false))
	{
		objAjax.send(objXmlRequestDom.xml);
		objDiv.innerHTML = objAjax.getResponse();
		
		arrCreated = document.getElementsByTagName("user-created");
		
		if (arrCreated.length > 0)
		{
			objInput = document.getElementById("createUserButton");
			objInput.disabled = true;
		}
	}
	
	endLoading();
}

function refreshContent(strPageName, strPageTitle)
{
	document.body.style.cursor = "wait";
	hideMenus();
	
	startLoading();
	setTimeout("_refreshContent('" + strPageName + "','" + strPageTitle + "')", 10);
}

function _refreshContent(strPageName, strPageTitle)
{
	var objAjax, objMainContent, objPageTitle;
	var strTempTitle = strPageTitle;
	
	objAjax = new CAjax();
	objAjax.create();

	if (objAjax.open(strPageName, true))
	{
		objMainContent = document.getElementById("mainContent");
		objMainContent.innerHTML = objAjax.getResponse();
	}
	
	objPageTitle = document.getElementById("pageTitle");
	
	if (objPageTitle)
	{
		objPageTitle.innerHTML = strTempTitle;
		document.body.style.cursor = "default";
	}
	
	resizeMenu();
	
	endLoading();
}

function resizeBody()
{
	resizeMenu();
	resizeProductList();
	resizeProductDetail();
	resizeOrderList();
	resizeInvoiceList();
}

function resizeOrderList()
{
	_resizeDiv("orderList", "orderListButtonBar");
}

function resizeInvoiceList()
{
	_resizeDiv("invoiceList", "invoiceButtonBar");
}

function resizeMenu()
{
	var objMenu, nHeight, objMenuBar, objMenuMinimiser;
	
	objMenu = document.getElementById("sideMenu");
	
	if (objMenu)
	{
		objMenuBar = document.getElementById("menuBar");
		objMenuMinimiser = document.getElementById("sideMenuMinimiser");
		objMenuMinimiser.style.top = findBottom(objMenuBar);
		
		nHeight =  getHeight() - findBottom(objMenuBar);
		
		if (nHeight > 0)
		{
			objMenuMinimiser.style.height = getHeight() - findBottom(objMenuBar);
		}
	}
}

function lang(strString)
{
	var strTempString = strString; 
	var strName = strString;

	if (strName.length > 0) 
	{ 
		if (arrLang[strName])
		{
			strTempString = arrLang[strName];
		}
	}
	
	return strTempString;	
}


function uncheck(objCheckBox)
{
	objCheckBox.checked = objCheckBox.checked ? false : true;
}

function mouseOverRow(strName)
{
	var arrCells = document.getElementsByTagName("td");
	
	for (var i = 0; i < arrCells.length; i++)
	{
		if (arrCells[i].getAttribute("name") == strName)
		{
			arrCells[i].className = "over_on";
		}
	}
}

function mouseOutRow(strName)
{
	var arrCells = document.getElementsByTagName("td");
	
	for (var i = 0; i < arrCells.length; i++)
	{
		if (arrCells[i].getAttribute("name") == strName)
		{
			arrCells[i].className = "over";
		}
	}
}

function showDebug()
{
	window.open("showDebug.php", "debugWindow", "width=800,height=600,status=yes,toolbar=no,location=no,menubar=no,resizable=yes,scrollbars=yes");
}

function setCheckbox(objCheckSpan, strInputId)
{
	var objItem = document.getElementById(strInputId);
	var objCheckSpanImg = document.getElementById("img_" + strInputId);

	if (objCheckSpan.getAttribute("checked") == "true")
	{
		objCheckSpan.setAttribute("checked", "false");
		objCheckSpanImg.src = "images/checkbox_off.png";
	}
	else
	{
		objCheckSpan.setAttribute("checked", "true");
		objCheckSpanImg.src = "images/checkbox.png";
	}
	
	objItem.value = objCheckSpan.getAttribute("checked");
}

function setPlus(objPlus)
{
	var objPlusImg = document.getElementById("img" + objPlus.id);

	if (objPlus.getAttribute("plus") == "on")
	{
		objPlus.setAttribute("plus", "off");
		objPlusImg.src = "images/minus.png";
	}
	else
	{
		objPlus.setAttribute("plus", "on");
		objPlusImg.src = "images/plus.png";
	}
}

function isExpanded(objPlus)
{
	if (objPlus.getAttribute("plus") == "on")
	{
		return false;
	}
	else
	{
		return true;
	}
}

function retrievePassword()
{
	var objAjax, objUser, objDiv, strUser;
	
	objUser = document.getElementById("userid");
	strUser = objUser.getAttribute("value");
	
	if (strUser == "")
	{
		alert(lang("Please enter your User ID before continuing"));
		return false;
	}
	
	objAjax = new CAjax();
	objAjax.create();

	if (objAjax.open("ajax/ajax_retrievePassword.php?user=" + strUser, true))
	{
		objDiv = document.getElementById("passwordRetrieval");
		objDiv.innerHTML = objAjax.getResponse();
	}
	else
	{
		alert(lang("There has been a problem, please contact an administrator"));
	}
	
}

function validateRoundingQuantity(objItem, nRoundingFactor)
{
	var nQuantity = parseInt(objItem.value);
	
	if (nRoundingFactor > 0 && nQuantity > 0 && nQuantity % nRoundingFactor != 0)
	{
		nNewQuantity = nQuantity + nRoundingFactor - nQuantity % nRoundingFactor;
		
		if (confirm(lang("The recommended quantity for this product is") + " " + nNewQuantity + ".\n" + lang("Use this quantity?")))
		{
			objItem.value = nNewQuantity;
		}
	}
}