// $Header: http://77.68.60.202/repos/tags/B3_XDEV1/sites/b3accounts/js/scripts.js 10027 2011-12-07 10:39:18Z lance $

// TO SHOW SCROLL BAR ALWAYS (TO AVOID AVOID SCREEN JUMPING WHEN EXPANDED TO SCROLL TO BOTTOM)
document.documentElement.style.overflow = "scroll";


/******************* MULTI CURRENCY FUNCTIONS *******************/

function getExchangeRate()
{
   var iFromCurrencyRef = document.getElementById('fromCurrency').value; 
   
   var iToCurrencyRef = 46;
   
   var dAmount = "";
   
   // MAKE AJAX CALL
		
	var oAjax = new AjaxWrapper;
	
	var sUrl = "/selectHandler.php?selectHandler=getExchangeRate";
	
	sUrl = sUrl + "&fromCurrency=" + iFromCurrencyRef;
	
	sUrl = sUrl + "&toCurrency=" + iToCurrencyRef;
	
	sUrl = sUrl + "&amount=" + dAmount;
	
	sUrl = sUrl + "&sid=" + Date() + Math.random();
	
	oAjax.url = sUrl;
	
	oAjax.onSuccess = function() {
		
		var sResponse = this.responseText;
		
		var aResponse = sResponse.split("{}");
		
		if(aResponse[0] == 1)
		{
			document.getElementById("exchangeRate").value = aResponse[1];
		}
		
	};
	
	oAjax.get();
}


/******************* CHEQUE FUNCTIONS *******************/

function loadForm_reAutheticateUserToCancelCheque(iChequeRef, iStatus)
{
	clearInnerHtml(document.getElementById("reAutheticateUser"));
	
	// MAKE AJAX CALL
	
	var oAjax = new AjaxWrapper;
	
	var sUrl = "/selectHandler.php?selectHandler=loadForm_reAutheticateUserToCancelCheque";
	
	sUrl = sUrl + "&iChequeRef=" + iChequeRef;
	
	sUrl = sUrl + "&iStatus=" + iStatus;
	
	sUrl = sUrl + "&sid=" + Date() + Math.random();
	
	oAjax.url = sUrl;
	
	oAjax.onSuccess = function() {
		
		var sResponseText = this.responseText;
		
		var aResponse = sResponseText.split("{}");
		
		var sHtml = aResponse[1];
		
		loadInnerHtml(document.getElementById("reAutheticateUser"), sHtml);
	};
	
	oAjax.get();

	showLoading("reAutheticateUser");
}


function reAutheticateUserToCancelCheque(iChequeRef, iStatus)
{
	var sPassword = document.getElementById("password").value;
	
	if(sPassword == "")
	{
		fnAlert("Please enter your password !", document.getElementById("password"));
		
		return false;
	}
	
	// MAKE AJAX CALL
	
	var oAjax = new AjaxWrapper;
	
	var sUrl = "/selectHandler.php?selectHandler=reAutheticateUser";
	
	sUrl = sUrl + "&sPassword=" + sPassword;
	
	sUrl = sUrl + "&sid=" + Date() + Math.random();
	
	oAjax.url = sUrl;
	
	oAjax.onSuccess = function() {
	
		var sResponse = this.responseText;
		
		var aResponse = sResponse.split("{}");
		
		if(aResponse[0] == 1)
		{
			clearInnerHtml(document.getElementById("reAutheticateUser"));
			
			cancelCheque(iChequeRef, iStatus);
		}
		
		else
		{
			loadInnerHtml(document.getElementById("authenticationError"), "Authetication Failed ! Please try again !!");
		}
		
	};
	
	oAjax.get();
}

function cancelCheque(iChequeRef, iStatus)
{
  var sStatus = (iStatus == 4) ? "cancel" : "void" ;
  
  if(confirm("Are you sure you want to " + sStatus + " this cheque ?"))
  {
    var sReason;
		
		do
		{
			sReason = prompt("Please Enter the Reason !!");
		} while(sReason == "");
		
		if(sReason == null) return false;
    
    // MAKE AJAX CALL
  		
  	var oAjax = new AjaxWrapper;
  	
  	var sUrl = "/updateHandler.php?updateHandler=cancelCheque";
  	
  	sUrl = sUrl + "&iChequeRef=" + iChequeRef;
  	
  	sUrl = sUrl + "&iStatus=" + iStatus;
  	
  	sUrl = sUrl + "&sReason=" + sReason;
  	
  	sUrl = sUrl + "&sid=" + Date() + Math.random();
  	
  	oAjax.url = sUrl;
  	
  	oAjax.onSuccess = function() {
  		
  		var sResponse = this.responseText;
  		
  		if(sResponse)
  		{
  			fnDoNav("/chequeBooks/writeCheque&iChequeRef=" + iChequeRef);
  		}
  		
  	};
  	
  	oAjax.get();
  }
}

/******************* INVOICE PAYMENTS FUNCTIONS *******************/

function displayChequeNumbers(iRowNumber, iShowAllButCleared)
{
	iRowNumber = (iRowNumber) ? iRowNumber : "" ;
	
	var paymentMethod = document.getElementById("paymentMethod" + iRowNumber).value;
	
	if(paymentMethod == "Cheque")
	{
		var aElements = getElementsByClass("chequeNumberDetails"+iRowNumber);
				
		for(var k = 0; k < aElements.length; k++) {
			aElements[k].style.display = "";
		}
	}
	
	else
	{
		var aElements = getElementsByClass("chequeNumberDetails"+iRowNumber);
		
		for(var k = 0; k < aElements.length; k++) {
			aElements[k].style.display = "none";
		}
	}
}

function displayChequeNumbers_OLD(iRowNumber, iShowAllButCleared)
{
	iRowNumber = (iRowNumber) ? iRowNumber : "" ;
	
	var paymentMethod = document.getElementById("paymentMethod" + iRowNumber).value;
	
	if(paymentMethod == "Cheque")
	{
		var iFundAccountId = (document.getElementById("bankAccount")) ? document.getElementById("bankAccount").value : "" ;
		
		var iBankAccountId = (document.getElementById("bankAccountId")) ? document.getElementById("bankAccountId").value : "" ;
		
		// MAKE AJAX CALL
		
		var oAjax = new AjaxWrapper;
		
		var sUrl = "/selectHandler.php?selectHandler=getChequesByBankAccountId";
		
		if(iFundAccountId != "") sUrl = sUrl + "&iFundAccountId=" + iFundAccountId;
		
		if(iBankAccountId != "") sUrl = sUrl + "&iBankAccountId=" + iBankAccountId;
		
		if(iShowAllButCleared != "") sUrl = sUrl + "&iShowAllButCleared=" + iShowAllButCleared;
		
		sUrl = sUrl + "&sid=" + Date() + Math.random();
		
		oAjax.url = sUrl;
		
		oAjax.onSuccess = function() {
			
			var sResponse = this.responseText;
			
			var aResponse = sResponse.split("{}");
			
			if(aResponse[0] == 1)
			{
				var sHtml = "<option value=''>--Select--</option>";
				
				if(aResponse[1])
				{
					var aCheques = eval(aResponse[1]);
					
					for(var i = 0; i < aCheques.length; i++)
					{
						sHtml = sHtml + "<option value='"+aCheques[i]["chequeRef"]+"'>"+aCheques[i]["chequeNumber"]+"</option>";
					}
				}
				
				var aElements = getElementsByClass("chequeNumberDetails"+iRowNumber);
				
				for(var k = 0; k < aElements.length; k++) {
					aElements[k].style.display = "";
				}
				
				loadInnerHtml(document.getElementById("chequeNumber"+iRowNumber), sHtml);
			}
			
		};
		
		oAjax.get();
	}
	
	else
	{
		var aElements = getElementsByClass("chequeNumberDetails"+iRowNumber);
		
		for(var k = 0; k < aElements.length; k++) {
			aElements[k].style.display = "none";
		}
	}
}

function fnCheckAllPayment(bIsPartial)
{
	var oFullCredit = document.paymentsForm["fullPayment[]"];
	var oPartialCredit = document.paymentsForm["partialPayment[]"];
	var paymentCount = document.getElementById("paymentCount").value;
	var oHiddenItemAmount = document.paymentsForm["hiddenPaymentAmount[]"];
	var iListLength = oFullCredit.length;
	
	if(bIsPartial)
	{
		if(document.getElementById("partialPaymentAll").checked)
		{
			document.getElementById("fullPaymentAll").checked = false;
			document.getElementById("partialPaymentAll").checked = true;
			for(var i=0;i<iListLength;i++)
			{
				oFullCredit[i].checked = false;
				oPartialCredit[i].checked = true;
				oItemAmount = document.paymentsForm["paymentItemAmount["+i + "][itemamount]"];
				oItemAmount.readOnly = false;
			}
		}
		else
		{
			for(var i=0;i<iListLength;i++)
			{
				oPartialCredit[i].checked = false;
				oItemAmount = document.paymentsForm["paymentItemAmount["+i + "][itemamount]"];
				oItemAmount.readOnly = true;
				oItemAmount.value = parseFloat(0).toFixed(2);
			}
		}
	}
	
	else
	{
		if(document.getElementById("fullPaymentAll").checked)
		{
			document.getElementById("fullPaymentAll").checked = true;
			document.getElementById("partialPaymentAll").checked = false;
			for(var i=0;i<iListLength;i++)
			{
				oFullCredit[i].checked = true;
				oPartialCredit[i].checked = false;
				oItemAmount = document.paymentsForm["paymentItemAmount["+i + "][itemamount]"];
				oItemAmount.readOnly = true;
				var dItemValue = oHiddenItemAmount[i].value;
				oItemAmount.value = parseFloat(dItemValue).toFixed(2);
			}
		}
		else
		{
			for(var i=0;i<iListLength;i++)
			{
				oFullCredit[i].checked = false;
				oItemAmount = document.paymentsForm["paymentItemAmount["+i + "][itemamount]"];
				oItemAmount.readOnly = true;
				oItemAmount.value = parseFloat(0).toFixed(2);
			}
		}
	}
	fnPaymentTotal();
}

function fnShowHidePaymentAmount(oElementObj, bIsPartial)
{
	var oFullCredit = document.paymentsForm["fullPayment[]"];
	var oPartialCredit = document.paymentsForm["partialPayment[]"];
	var bTempFull;
	var bTempPartial;
	
	if(bIsPartial)
	{
		var iItemid = oElementObj.id.replace("partialPayment","");
	
		if(oElementObj.checked)
		{
			document.getElementById("payment"+iItemid).readOnly = false;
			document.getElementById("partialPayment"+iItemid).checked = true;
			document.getElementById("fullPayment"+iItemid).checked = false;
		}
		else
		{
			document.getElementById("payment"+iItemid).readOnly = true;
			document.getElementById("payment"+iItemid).value = parseFloat(0).toFixed(2);
			document.getElementById("partialPayment"+iItemid).checked = false;
			document.getElementById("fullPayment"+iItemid).checked = false;
		}
	}
	else
	{
		var iItemid = oElementObj.id.replace("fullPayment","");
	
		if(oElementObj.checked)
		{
			document.getElementById("payment"+iItemid).readOnly = true;
			var dItemValue = document.getElementById("hiddenPayment"+iItemid).value;
			document.getElementById("payment"+iItemid).value = parseFloat(dItemValue).toFixed(2);
			document.getElementById("partialPayment"+iItemid).checked = false;
			document.getElementById("fullPayment"+iItemid).checked = true;
		}
		else
		{
			document.getElementById("payment"+iItemid).readOnly = true;
			document.getElementById("payment"+iItemid).value = parseFloat(0).toFixed(2);
			document.getElementById("partialPayment"+iItemid).checked = false;
			document.getElementById("fullPayment"+iItemid).checked = false;
		}
	}
		
	for (var i = 0; i < oPartialCredit.length; i++)
	{
		if(!oPartialCredit[i].checked)
		{
			bTempPartial = false;
			break;
		}
		else
		{
			bTempPartial = true;
		}
	}
	if(!bTempPartial)
	{
		document.getElementById("partialPaymentAll").checked = false;
	}
	else
	{
		document.getElementById("partialPaymentAll").checked = true;
		document.getElementById("fullPaymentAll").checked = false;
	}
		
	for (var i = 0; i < oFullCredit.length; i++)
	{
		if(!oFullCredit[i].checked)
		{
			bTempFull = false;
			break;
		}
		else
		{
			bTempFull = true;
		}
	}
	
	if(!bTempFull)
	{
		document.getElementById("fullPaymentAll").checked = false;
	}
	else
	{
		document.getElementById("fullPaymentAll").checked = true;
		document.getElementById("partialPaymentAll").checked = false;
	}
	
	fnPaymentTotal();
}

function fnPaymentTotal()
{
	var dTotal = 0;
	var paymentCount = document.getElementById("paymentCount").value;

	for (i = 0; i < paymentCount; i++)
	{
		var iItemAmount = document.paymentsForm["paymentItemAmount["+i + "][itemamount]"].value;
		dTotal = parseFloat(dTotal) + parseFloat(iItemAmount);
	}
	document.getElementById("paymentTotal").innerHTML = parseFloat(dTotal).toFixed(2);
	document.getElementById("paymentAmount").value = parseFloat(dTotal).toFixed(2);
}


function fnCreateInvoicePayment(iInvoiceId, iType)
{
	if(document.getElementById("bankAccount").value == "")
	{
		fnAlert("Please select Fund Account !", document.getElementById("bankAccount"));
		return false;
	}
	
	if(document.getElementById("paymentMethod").value == "")
	{
		fnAlert("Please enter Payment Method !", document.getElementById("paymentMethod"));
		return false;
	}
	
	if(document.getElementById("paymentDate").value == "")
	{
		fnAlert("Please enter Date !", document.getElementById("paymentDate"));
		return false;
	}
	
	if(document.getElementById("paymentAmount").value == "")
	{
		fnAlert("Please enter Amount !", document.getElementById("paymentAmount"));
		return false;
	}
	
	if(document.getElementById("paymentInfo").value == "")
	{
		fnAlert("Please enter Info !", document.getElementById("paymentInfo"));
		return false;
	}
	
  if(document.getElementById("paymentMethod") == "CHQ" || document.getElementById("paymentMethod") == "Cheque")
  {
  	if(document.getElementById("chequeNumber") && document.getElementById("chequeNumber").value == "")
  	{
  		fnAlert("Please select Cheque Number !", document.getElementById("chequeNumber"));
  		return false;
  	}
  }
	
	document.paymentsForm.action = "/saveHandler.php";
	document.paymentsForm.saveHandler.value = "saveInvoicePayment";
	document.paymentsForm.iType.value = iType;
	document.paymentsForm.method = "POST";
	document.paymentsForm.submit();
	
}



/******************* CREDITNOTE FUNCTIONS *******************/

function fnApproveCreditNote(oElementObj, iInvoiceId)
{
	if(oElementObj.checked)
	{
		// MAKE AJAX CALL
		
		var oAjax = new AjaxWrapper;
		
		var sUrl = "/updateHandler.php?updateHandler=approveCreditNote";
		
		sUrl = sUrl + "&iInvoiceId=" + iInvoiceId;
		
		sUrl = sUrl + "&sid=" + Date() + Math.random();
		
		oAjax.url = sUrl;
		
		oAjax.onSuccess = function() {
		
			loadInnerHtml(document.getElementById("creditNoteApproval"+iInvoiceId), "Approved");

		};
		
		oAjax.get();
		
		showLoading("creditNoteApproval"+iInvoiceId);
	}
}

function fnCheckAllCreditNote(bIsPartial)
{
	var oFullCredit = document.creditNoteForm["fullCredit[]"];
	var oPartialCredit = document.creditNoteForm["partialCredit[]"];
	var creditNoteCount = document.getElementById("creditNoteCount").value;
	var oHiddenItemAmount = document.creditNoteForm["hiddenItemAmount[]"];
	var iListLength = oFullCredit.length;
	
	if(bIsPartial)
	{
		if(document.getElementById("partialCreditAll").checked)
		{
			document.getElementById("fullCreditAll").checked = false;
			document.getElementById("partialCreditAll").checked = true;
			for(var i=0;i<iListLength;i++)
			{
				oFullCredit[i].checked = false;
				oPartialCredit[i].checked = true;
				oItemAmount = document.creditNoteForm["creditNoteItemAmount["+i + "][itemamount]"];
				oItemAmount.readOnly = false;
			}
		}
		else
		{
			for(var i=0;i<iListLength;i++)
			{
				oPartialCredit[i].checked = false;
				oItemAmount = document.creditNoteForm["creditNoteItemAmount["+i + "][itemamount]"];
				oItemAmount.readOnly = true;
				oItemAmount.value = parseFloat(0).toFixed(2);
			}
		}
	}
	
	else
	{
		if(document.getElementById("fullCreditAll").checked)
		{
			document.getElementById("fullCreditAll").checked = true;
			document.getElementById("partialCreditAll").checked = false;
			for(var i=0;i<iListLength;i++)
			{
				oFullCredit[i].checked = true;
				oPartialCredit[i].checked = false;
				oItemAmount = document.creditNoteForm["creditNoteItemAmount["+i + "][itemamount]"];
				oItemAmount.readOnly = true;
				var dItemValue = oHiddenItemAmount[i].value;
				oItemAmount.value = parseFloat(dItemValue).toFixed(2);
			}
		}
		else
		{
			for(var i=0;i<iListLength;i++)
			{
				oFullCredit[i].checked = false;
				oItemAmount = document.creditNoteForm["creditNoteItemAmount["+i + "][itemamount]"];
				oItemAmount.readOnly = true;
				oItemAmount.value = parseFloat(0).toFixed(2);
			}
		}
	}
	fnCreditNoteTotal();
}

function fnShowHideItemAmount(oElementObj, bIsPartial)
{
	var oFullCredit = document.creditNoteForm["fullCredit[]"];
	var oPartialCredit = document.creditNoteForm["partialCredit[]"];
	var bTempFull;
	var bTempPartial;
	
	if(bIsPartial)
	{
		var iItemid = oElementObj.id.replace("partial","");
	
		if(oElementObj.checked)
		{
			document.getElementById("input"+iItemid).readOnly = false;
			document.getElementById("partial"+iItemid).checked = true;
			document.getElementById("full"+iItemid).checked = false;
		}
		else
		{
			document.getElementById("input"+iItemid).readOnly = true;
			document.getElementById("input"+iItemid).value = parseFloat(0).toFixed(2);
			document.getElementById("partial"+iItemid).checked = false;
			document.getElementById("full"+iItemid).checked = false;
		}
	}
	else
	{
		var iItemid = oElementObj.id.replace("full","");
		
		if(oElementObj.checked)
		{
			document.getElementById("input"+iItemid).readOnly = true;
			var dItemValue = document.getElementById("hiddeninput"+iItemid).value;
			document.getElementById("input"+iItemid).value = parseFloat(dItemValue).toFixed(2);
			document.getElementById("partial"+iItemid).checked = false;
			document.getElementById("full"+iItemid).checked = true;
		}
		else
		{
			document.getElementById("input"+iItemid).readOnly = true;
			document.getElementById("input"+iItemid).value = parseFloat(0).toFixed(2);
			document.getElementById("partial"+iItemid).checked = false;
			document.getElementById("full"+iItemid).checked = false;
		}
	}
		
	for (var i = 0; i < oPartialCredit.length; i++)
	{
		if(!oPartialCredit[i].checked)
		{
			bTempPartial = false;
			break;
		}
		else
		{
			bTempPartial = true;
		}
	}
	if(!bTempPartial)
	{
		document.getElementById("partialCreditAll").checked = false;
	}
	else
	{
		document.getElementById("partialCreditAll").checked = true;
		document.getElementById("fullCreditAll").checked = false;
	}
		
	for (var i = 0; i < oFullCredit.length; i++)
	{
		if(!oFullCredit[i].checked)
		{
			bTempFull = false;
			break;
		}
		else
		{
			bTempFull = true;
		}
	}
	
	if(!bTempFull)
	{
		document.getElementById("fullCreditAll").checked = false;
	}
	else
	{
		document.getElementById("fullCreditAll").checked = true;
		document.getElementById("partialCreditAll").checked = false;
	}
	
	fnCreditNoteTotal();
}

function fnCreditNoteTotal()
{
	var dTotal = 0;
	var creditNoteCount = document.getElementById("creditNoteCount").value;

	for (i = 0; i < creditNoteCount; i++)
	{
		var iItemAmount = document.creditNoteForm["creditNoteItemAmount["+i + "][itemamount]"].value;
		dTotal = parseFloat(dTotal) + parseFloat(iItemAmount);
	}
	document.getElementById("creditNoteTotal").innerHTML = parseFloat(dTotal).toFixed(2);
	document.getElementById("creditNoteAmount").value = parseFloat(dTotal).toFixed(2);
}


function fnCreateCreditNote(iInvoiceId)
{
	if(document.getElementById("creditNoteAmount").value == "")
	{
		fnAlert("Please enter Amount !", document.getElementById("creditNoteAmount"));
		return false;
	}
	if(document.getElementById("creditNoteReason").value == "")
	{
		fnAlert("Please enter Reason !", document.getElementById("creditNoteReason"));
		return false;
	}
	if(confirm("Apply Credit Note For this Invoice ?"))
	{
		document.creditNoteForm.action = "/saveHandler.php";
		document.creditNoteForm.saveHandler.value = "saveCreditNote";
		document.creditNoteForm.method = "POST";
		document.creditNoteForm.submit();
	}
	else
	{
		return false;
	}
}

function fnCancelCreditNote()
{
	document.getElementById("creditNoteDetails").style.display = "none";
}

function fnShowCreditNoteForm()
{
	document.getElementById("creditNoteDetails").style.display = "";
}

function fnCreditNoteItemCheck()
{
	var sFullObj = document.getElementById("fullCreditNote");
	var sPartialObj = document.getElementById("partialCreditNote");
	//var sItemsObj = document.creditNoteForm.creditNoteItem;
	var sItemsObj = document.creditNoteForm["creditNoteItem[]"];
	var bTemp;
	for (i = 0; i < sItemsObj.length; i++)
	{
		if(!sItemsObj[i].checked)
		{
			bTemp = false;
			break;
		}
		else
		{
			bTemp = true;
		}
	}
	if(bTemp)
	{
		document.getElementById("fullCreditNote").checked = true;
		document.getElementById("partialCreditNote").checked = false;
	}
	else
	{
		document.getElementById("fullCreditNote").checked = false;
		document.getElementById("partialCreditNote").checked = true;
	}
}

function fnCreditNoteCheck(sObj)
{
	var sFullObj = document.getElementById("fullCreditNote");
	var sPartialObj = document.getElementById("partialCreditNote");
	//var sItemsObj = document.creditNoteForm.creditNoteItem;
	var sItemsObj = document.creditNoteForm["creditNoteItem[]"];
	if(sObj)
	{
		if(sObj.checked)
		{
			document.getElementById("fullCreditNote").checked = false;
			document.getElementById("partialCreditNote").checked = false;
			sObj.checked = true;
		}
		else
		{
			document.getElementById("fullCreditNote").checked = false;
			document.getElementById("partialCreditNote").checked = false;
			sObj.checked = true;
		}
	}
	if(sFullObj.checked)
	{
		for (i = 0; i < sItemsObj.length; i++)
			sItemsObj[i].checked = true ;
	}
	else
	{
		for (i = 0; i < sItemsObj.length; i++)
			sItemsObj[i].checked = false ;
	}
}


/******************* EMPLOYEE FUNCTIONS *******************/

function importEmployeesList()
{
	if(document.getElementById("importEmployeesList").style.display != "none")
	{
		var filepath = document.listemployees.filepath.value;
		
		if(filepath == "")
		{
			fnAlert("Please Select a CSV File to Import!", document.listemployees.filepath);
			return false;
		}
		
		else
		{
			var filenameLength = filepath.length;
			var uploadfileExt = filepath.substring(filenameLength-4);
			uploadfileExt = uploadfileExt.toLowerCase();
			if(uploadfileExt != ".csv")
			{
				fnAlert("Please Select a CSV File to Import!", document.listemployees.filepath);
				return false;
			}
		}
		
		document.listemployees.action = "/saveHandler.php";
		document.listemployees.saveHandler.value = "importEmployeesList";
		document.listemployees.method = "POST";
		document.listemployees.submit();
	}
	
	else
	{
		document.getElementById("importEmployeesList").style.display = "";
		document.getElementById("importButton").style.display = "none";
		document.listemployees.filepath.focus();
	}
}

function fnCheckEmployeeIdAvailability()
{
	var employeenumber = document.addemployee.employeenumber.value;
	
	// MAKE AJAX CALL
	
	var oAjax = new AjaxWrapper;
	
	var sUrl = "/selectHandler.php?selectHandler=checkEmployeeIdAvailability";
	
	sUrl = sUrl + "&employeenumber=" + employeenumber;
	
	sUrl = sUrl + "&sid=" + Date() + Math.random();
	
	oAjax.url = sUrl;
	
	oAjax.onSuccess = function() {
	
		var sResponse = this.responseText;
		
		var aResponse = sResponse.split("{}");
		
		loadInnerHtml(document.getElementById("employeeavailability"), aResponse[0]);

	};
	
	oAjax.get();
}


function fnDeleteEmployee(employeeId)
{
	if (confirm("Delete Employee Record ?"))
	{
		document.editemployee.action = "/deleteHandler.php";
		document.editemployee.editemployee.value = employeeId;
		document.editemployee.deleteHandler.value = "deleteEmployee";
		document.editemployee.method = "POST";
		document.editemployee.submit();
	}
}

function fnUpdateEmployee(employeeId)
{
	var email = document.editemployee.email.value;
	var phonenumber = document.editemployee.phonenumber.value;
	if(document.editemployee.employeenumber.value == "")
	{
		alert("Please enter Employee Number !");
		document.editemployee.employeenumber.focus();
		return false;
	}
	if(document.editemployee.employeename.value == "")
	{
		alert("Please enter Employee Name !");
		document.editemployee.employeename.focus();
		return false;
	}
	if(email !=null && email != "")
	{
		if(fnecheck(email)==false)
		{
			document.editemployee.email.focus();
			return false;
		}
	}
	if(phonenumber !=null && phonenumber != "")
	{
		if(checkInternationalPhone(phonenumber)==false)
		{
			alert("Invalid Phone Number !");
			document.editemployee.phonenumber.focus();
			return false;
		}
	}
	if(document.editemployee.startdate.value == "")
	{
		alert("Please enter Joining Date !");
		document.editemployee.startdate.focus();
		return false;
	}
	if(document.editemployee.salary.value == "")
	{
		alert("Please enter Annual Salary !");
		document.editemployee.salary.focus();
		return false;
	}
	document.editemployee.action = "/updateHandler.php";
	document.editemployee.editemployee.value = employeeId;
	document.editemployee.updateHandler.value = "updateEmployee";
	document.editemployee.method = "POST";
	document.editemployee.submit();
}

function fnEditEmployee(employeeId)
{
	document.listemployees.action = "/employees/edit";
	document.listemployees.editemployee.value = employeeId;
	document.listemployees.method = "POST";
	document.listemployees.submit();
}


function fnAddEmployee(temphandler, sFromHandler)
{
	var employeenumber = document.addemployee.employeenumber.value;
	var employeename = document.addemployee.employeename.value;
	var employeetype = document.addemployee.employeetype.value;
	var address1 = document.addemployee.address1.value;
	var address2 = document.addemployee.address2.value;
	var address3 = document.addemployee.address3.value;
	var country = document.addemployee.country.value;
	var email = document.addemployee.email.value;
	var phonenumber = document.addemployee.phonenumber.value;
	var startdate = document.addemployee.startdate.value;
	var enddate = document.addemployee.enddate.value;
	var active = document.addemployee.active.value;
	var isSalesPerson = document.addemployee.isSalesPerson;
	var time_managed = document.addemployee.time_managed;
	var salary = document.addemployee.salary.value;
	var sVal = document.addemployee.sVal.value;
	
	if(document.addemployee.employeenumber.value == "")
	{
		alert("Please enter Employee Number !");
		document.addemployee.employeenumber.focus();
		return false;
	}
	
	if(document.addemployee.employeename.value == "")
	{
		alert("Please enter Employee Name !");
		document.addemployee.employeename.focus();
		return false;
	}
	
	if(email !=null && email != "")
	{
		if(fnecheck(email)==false)
		{
			document.addemployee.email.focus();
			return false;
		}
	}
	
	if(phonenumber !=null && phonenumber != "")
	{
		if(checkInternationalPhone(phonenumber)==false)
		{
			alert("Invalid Phone Number !");
			document.addemployee.phonenumber.focus();
			return false;
		}
	}
	
	if(document.addemployee.startdate.value == "")
	{
		alert("Please enter Joining Date !");
		document.addemployee.startdate.focus();
		return false;
	}
	
	if(document.addemployee.salary.value == "")
	{
		alert("Please enter Annual Salary !");
		document.addemployee.salary.focus();
		return false;
	}       
	// MAKE AJAX CALL
	
	var oAjax = new AjaxWrapper;
		
	var sUrl = "/saveHandler.php?saveHandler=saveNewEmployee";
	
	sUrl = sUrl + "&active=" + active;
	
	sUrl = (isSalesPerson) ? sUrl + "&isSalesPerson=" + isSalesPerson.value : sUrl;
	
	sUrl = (time_managed) ? sUrl + "&time_managed=" + time_managed.value : sUrl;
	
	sUrl = sUrl + "&employeename=" + employeename;
	
	sUrl = sUrl + "&employeenumber=" + employeenumber;
	
	sUrl = sUrl + "&employeetype=" + employeetype;
	
	sUrl = sUrl + "&address1=" + address1;
	
	sUrl = sUrl + "&address2=" + address2;
	
	sUrl = sUrl + "&address3=" + address3;
	
	sUrl = sUrl + "&country=" + country;
	
	sUrl = sUrl + "&email=" + email;
	
	sUrl = sUrl + "&phonenumber=" + phonenumber;
	
	sUrl = sUrl + "&startdate=" + startdate;
	
	sUrl = sUrl + "&enddate=" + enddate;
	
	sUrl = sUrl + "&salary=" + salary;
	
	sUrl = sUrl + "&sVal=" + sVal;
	
	sUrl = sUrl + "&sid=" + Date() + Math.random();
	
	if(temphandler == "PopUp")
	{
	   if(sFromHandler) sUrl = sUrl + "&sFromHandler=" + sFromHandler;
	}
	
	else
	{
		sUrl = sUrl + "&sFromHandler=employeesList";
	}
	
	oAjax.url = sUrl;
	
	oAjax.onSuccess = function() {
	
  	if(temphandler == "PopUp")
  	{
  	   var sResponse = this.responseText;
  		
  		if(window.opener.document.getElementById("driverdata"+sVal))
  		{
  			window.opener.document.getElementById("driverdata"+sVal).innerHTML = sResponse;
  		}
  		
  		else
  		{
  			window.opener.document.getElementById("employeedata"+sVal).innerHTML = sResponse;
  		}
  		
  		closePopup();
  	}
  	
  	else
  	{
  		fnDoNav("/employees");
  	}

	};
	
	oAjax.get();
  
  if(document.getElementById("submitButton"))
  {
    document.getElementById("submitButton").value = "Please Wait...";
    
    document.getElementById("submitButton").disabled = "disabled";
  }
}


/******************* DRIVER FUNCTIONS *******************/

function fnDeleteDriver(drivername)
{
	if (confirm("Delete Driver Record ?"))
	{
		document.editdriver.action = "/deleteHandler.php";
		document.editdriver.deletedriver.value = drivername;
		document.editdriver.deleteHandler.value = "deleteDriver";
		document.editdriver.method = "POST";
		document.editdriver.submit();
	}
}

function fnUpdateDriver(editdriver)
{
	if(document.editdriver.drivername.value == "")
	{
		alert("Please enter Driver Name !");
		document.editdriver.drivername.focus();
		return false;
	}
	var email = document.editdriver.email.value;
	if(email !=null && email != "")
	{
		if(fnecheck(email)==false)
		{
			document.editdriver.email.focus();
			return false;
		}
	}
	var phonenumber = document.editdriver.phonenumber.value;
	if(phonenumber !=null && phonenumber != "")
	{
		if(checkInternationalPhone(phonenumber)==false)
		{
			alert("Invalid Phone Number !");
			document.editdriver.phonenumber.focus();
			return false;
		}
	}
	document.editdriver.action = "/updateHandler.php";
	document.editdriver.editdriver.value = editdriver;
	document.editdriver.updateHandler.value = "updateDriver";
	document.editdriver.method = "POST";
	document.editdriver.submit();
}

function fnEditDriver(drivername)
{
	document.listdrivers.action = "editDriver.php";
	document.listdrivers.editdriver.value = drivername;
	document.listdrivers.method = "POST";
	document.listdrivers.submit();
}



/******************* ITEM TYPES FUNCTIONS *******************/

function toggleGroupItem(oCheckBox)
{
	if(oCheckBox.checked)
	{
		var aItemElements = getElementsByClass('singleItem');
		
		var aGroupElements = getElementsByClass('groupItem');
		
		for(var i = 0; i < aItemElements.length; i++) {
			aItemElements[i].style.display = "none";
		}
		
		for(var i = 0; i < aGroupElements.length; i++) {
			aGroupElements[i].style.display = "";
		}
		
		document.getElementById('groupName').value = "GRP_";
	}
	
	else
	{
		var aItemElements = getElementsByClass('singleItem');
		
		var aGroupElements = getElementsByClass('groupItem');
		
		for(var i = 0; i < aItemElements.length; i++) {
			aItemElements[i].style.display = "";
		}
		
		for(var i = 0; i < aGroupElements.length; i++) {
			aGroupElements[i].style.display = "none";
		}
		
		document.getElementById('groupName').value = "";
	}
}

function setStartValue(oElement, sStartValue)
{
	if(document.getElementById('createGroup').checked)
	{
		var sValue = oElement.value;
		
		var sStartValue = sValue.substring(0,4);
		
		if(sStartValue == "GRP_")
		{
			return;
		}
		else
		{
			oElement.value = "GRP_" + sValue;
		}
	}
}

function fnAddItemType(whichType)
{
	
	if(whichType == "Sales")
	{
		var createGroup = document.additemtype.createGroup;
		var active = document.additemtype.active;
		var salestype = document.additemtype.salestype;
		var salesdesc = document.additemtype.salesdesc;
		var category = document.additemtype.category;
		var unit = document.additemtype.unit;
		var unit_type = document.additemtype.unit_type;
		var time_managed = document.additemtype.time_managed;
		var is_stock_item = document.additemtype.is_stock_item;
		var salesrate = document.additemtype.salesrate;
		var flat_rate = document.additemtype.flat_rate;
		var quantity_start = document.additemtype.quantity_start;
		var salesvatrate = document.additemtype.salesvatrate;
		var sVal = document.additemtype.sVal;
		var groupItems = document.getElementById('groupItems');
		
		var selectedCount = 0;
		
		for (var i = 0; i < groupItems.length; i++)
		{
			if (groupItems.options[i].selected)
			{
				selectedCount++;
			}
    }
		
		if(salestype  && salestype.parentNode.style.display == "" && salestype.value == "")
		{
			fnAlert("Please enter Sales Type Name !", salestype);
			return false;
		}
		if(category  && category.parentNode.style.display == "" && category.value == "")
		{
			fnAlert("Please select Category !", category);
			return false;
		}
		if(groupItems  && groupItems.parentNode.style.display == "" && selectedCount < 1)
		{
			fnAlert("Please select Group Items !", groupItems);
			return false;
		}
		
		document.additemtype.action = "/saveHandler.php";
		document.additemtype.saveHandler.value = "saveSalesType";
		document.additemtype.method = "POST";
		document.additemtype.submit();
	}
	else if(whichType == "Purchase")
	{
		var createGroup = document.additemtype.createGroup;
		var active = document.additemtype.active;
		var outgoingtype = document.additemtype.outgoingtype;
		var outgoingdesc = document.additemtype.outgoingdesc;
		var category = document.additemtype.category;
		var unit = document.additemtype.unit;
		var unit_type = document.additemtype.unit_type;
		var time_managed = document.additemtype.time_managed; 
		var is_stock_item = document.additemtype.is_stock_item;
		var outgoingrate = document.additemtype.outgoingrate;
		var flat_rate = document.additemtype.flat_rate;
		var quantity_start = document.additemtype.quantity_start;
		var outgoingvatrate = document.additemtype.outgoingvatrate;
		var groupItems = document.getElementById('groupItems');
		
		var selectedCount = 0;
		
		for (var i = 0; i < groupItems.length; i++)
		{
			if (groupItems.options[i].selected)
			{
				selectedCount++;
			}
    }
		
		if(outgoingtype  && outgoingtype.parentNode.style.display == "" && outgoingtype.value == "")
		{
			fnAlert("Please enter Outgoing Type Name !", outgoingtype);
			return false;
		}
		if(category  && category.parentNode.style.display == "" && category.value == "")
		{
			fnAlert("Please select Category !", category);
			return false;
		}
		if(groupItems  && groupItems.parentNode.style.display == "" && selectedCount < 1)
		{
			fnAlert("Please select Group Items !", groupItems);
			return false;
		}
		
		document.additemtype.action = "/saveHandler.php";
		document.additemtype.saveHandler.value = "saveOutgoingType";
		document.additemtype.method = "POST";
		document.additemtype.submit();
	}
}

function fnAddNewItemType(whichType,isFromQuote,bPopup,isFromTimeManagement,bOtherTypes)
{
	if(whichType == "Sales")
	{
		var createGroup = document.additemtype.createGroup;
		var active = document.additemtype.active;
		var salestype = document.additemtype.salestype;
		var salesdesc = document.additemtype.salesdesc;
		var category = document.additemtype.category;
		var unit = document.additemtype.unit;
		var unit_type = document.additemtype.unit_type;
		var time_managed = document.additemtype.time_managed;
		var is_stock_item = document.additemtype.is_stock_item;
		var mileage_rate = document.additemtype.mileage_rate;
		var salesrate = document.additemtype.salesrate;
		var flat_rate = document.additemtype.flat_rate;
		var quantity_start = document.additemtype.quantity_start;
		var salesvatrate = document.additemtype.salesvatrate;
		var sVal = document.additemtype.sVal;
		var otherTypes = document.additemtype.otherTypes;
		var groupItems = document.getElementById('groupItems');
		
		var selectedCount = 0;
		var aGroupItems = new Array();
		var createGroupValue = (createGroup.checked) ? "on" : "" ;
		var activeValue = (active.checked) ? "on" : "" ;
		
		for (var i = 0; i < groupItems.length; i++)
		{
			if (groupItems.options[i].selected)
			{
				selectedCount++;
				aGroupItems[aGroupItems.length] = groupItems.options[i].value;
			}
                }
		
		if(salestype  && salestype.parentNode.style.display == "" && salestype.value == "")
		{
			fnAlert("Please enter Sales Type Name !", salestype);
			return false;
		}
		if(category  && category.parentNode.style.display == "" && category.value == "")
		{
			fnAlert("Please select Category !", category);
			return false;
		}
		if(groupItems  && groupItems.parentNode.style.display == "" && selectedCount < 1)
		{
			fnAlert("Please select Group Items !", groupItems);
			return false;
		}
		
		
		
		// MAKE AJAX CALL
		
		var oAjax = new AjaxWrapper;
		
		var saveHandler = "saveNewSalesType";
		
		if(window.opener.document.getElementById("purposedata"+sVal))
		{
			saveHandler = "saveNewTransportPurpose";
		}
		
		var sUrl = "/saveHandler.php?saveHandler=" + saveHandler;
		
		sUrl = sUrl + "&isFromQuote=" + isFromQuote;
		
		if(isFromTimeManagement) sUrl = sUrl + "&isFromTimeManagement=" + isFromTimeManagement;
		
		sUrl = sUrl + "&salestype=" + salestype.value;
		
		sUrl = sUrl + "&active=" + activeValue;
		
		sUrl = sUrl + "&salesdesc=" + salesdesc.value;

		sUrl = sUrl + "&bOtherTypes=" + bOtherTypes;
		
		sUrl = (category) ? sUrl + "&category=" + category.value : sUrl;
		
		sUrl = (unit) ? sUrl + "&unit=" + unit.value : sUrl;
		
		sUrl = (unit_type) ? sUrl + "&unit_type=" + unit_type.value : sUrl;
		
		sUrl = (time_managed) ? sUrl + "&time_managed=" + time_managed.value : sUrl;
		
		sUrl = (is_stock_item) ? sUrl + "&is_stock_item=" + is_stock_item.value : sUrl;
		
		sUrl = (salesrate) ? sUrl + "&salesrate=" + salesrate.value : sUrl;
		
		sUrl = (flat_rate) ? sUrl + "&flat_rate=" + flat_rate.value : sUrl;
		
		sUrl = (quantity_start) ? sUrl + "&quantity_start=" + quantity_start.value : sUrl;
		sUrl = (mileage_rate) ? sUrl + "&mileage_rate=" + mileage_rate.value : sUrl;
		
		sUrl = (salesvatrate) ? sUrl + "&salesvatrate=" + salesvatrate.value : sUrl;
		
		sUrl = (createGroup) ? sUrl + "&createGroup=" + createGroupValue : sUrl;
		
		sUrl = (groupItems) ? sUrl + "&groupItems=" + aGroupItems.join(",") : sUrl;
		
		sUrl = (sVal) ? sUrl + "&sVal=" + sVal.value : sUrl;
		
		sUrl = (otherTypes) ? sUrl + "&otherTypes=" + otherTypes.value : sUrl;
		
		sUrl = sUrl + "&sid=" + Date() + Math.random();
		
		oAjax.url = sUrl;
		
		oAjax.onSuccess = function() {
			
			var sResponse = this.responseText;
			
			if(window.opener.document.getElementById("purposedata"+sVal.value))
			{
				window.opener.document.getElementById("purposedata"+sVal.value).innerHTML = sResponse;

				closePopup();
			}
			
			else if(isFromTimeManagement)
			{
				window.opener.document.getElementById("salestypedata"+sVal.value).innerHTML = sResponse;
				closePopup();
			}
			
			else
			{
				window.opener.document.getElementById("salesitemdata").innerHTML = sResponse;
                                window.opener.fnItemChange();
				closePopup();
			}
		};
		
		oAjax.get();
		
	}
	
	else if(whichType == "Purchase")
	{
		var createGroup = document.additemtype.createGroup;
		var active = document.additemtype.active;
		var outgoingtype = document.additemtype.outgoingtype;
		var outgoingdesc = document.additemtype.outgoingdesc;
		var category = document.additemtype.category;
		var unit = document.additemtype.unit;
		var unit_type = document.additemtype.unit_type;
		var time_managed = document.additemtype.time_managed; 
		var is_stock_item = document.additemtype.is_stock_item;
		var outgoingrate = document.additemtype.outgoingrate;
		var flat_rate = document.additemtype.flat_rate;
		var quantity_start = document.additemtype.quantity_start;
		var outgoingvatrate = document.additemtype.outgoingvatrate;
		var otherTypes = document.additemtype.otherTypes;
		var groupItems = document.getElementById('groupItems');
		
		var selectedCount = 0;
		var aGroupItems = new Array();
		var createGroupValue = (createGroup.checked) ? "on" : "" ;
		var activeValue = (active.checked) ? "on" : "" ;
		
		for (var i = 0; i < groupItems.length; i++)
		{
			if (groupItems.options[i].selected)
			{
				selectedCount++;
				aGroupItems[aGroupItems.length] = groupItems.options[i].value;
			}
    	}
		
		if(outgoingtype  && outgoingtype.parentNode.style.display == "" && outgoingtype.value == "")
		{
			fnAlert("Please enter Outgoing Type Name !", outgoingtype);
			return false;
		}
		if(category  && category.parentNode.style.display == "" && category.value == "")
		{
			fnAlert("Please select Category !", category);
			return false;
		}
		if(groupItems  && groupItems.parentNode.style.display == "" && selectedCount < 1)
		{
			fnAlert("Please select Group Items !", groupItems);
			return false;
		}
		

		// MAKE AJAX CALL
		
		var oAjax = new AjaxWrapper;
		
		var sUrl="/saveHandler.php?saveHandler=saveNewOutgoingType";
		
		sUrl = sUrl + "&outgoingtype=" + outgoingtype.value;
		
		sUrl = sUrl + "&active=" + activeValue;
		
		sUrl = sUrl + "&outgoingdesc=" + outgoingdesc.value;
		
		sUrl = (category) ? sUrl + "&category=" + category.value : sUrl;
		
		sUrl = (unit) ? sUrl + "&unit=" + unit.value : sUrl;
		
		sUrl = (unit_type) ? sUrl + "&unit_type=" + unit_type.value : sUrl;
		
		sUrl = (time_managed) ? sUrl + "&time_managed=" + time_managed.value : sUrl;
		
		sUrl = (is_stock_item) ? sUrl + "&is_stock_item=" + is_stock_item.value : sUrl;
		
		sUrl = (outgoingrate) ? sUrl + "&outgoingrate=" + outgoingrate.value : sUrl;
		
		sUrl = (flat_rate) ? sUrl + "&flat_rate=" + flat_rate.value : sUrl;
		
		sUrl = (quantity_start) ? sUrl + "&quantity_start=" + quantity_start.value : sUrl;
		
		sUrl = (outgoingvatrate) ? sUrl + "&outgoingvatrate=" + outgoingvatrate.value : sUrl;
		
		sUrl = (createGroup) ? sUrl + "&createGroup=" + createGroupValue : sUrl;
		
		sUrl = (otherTypes) ? sUrl + "&otherTypes=" + otherTypes.value : sUrl;
		
		sUrl = (groupItems) ? sUrl + "&groupItems=" + aGroupItems.join(",") : sUrl;
		
		sUrl = sUrl + "&sid=" + Date() + Math.random();
		
		oAjax.url = sUrl;
		
		oAjax.onSuccess = function() {
			
			var sResponseText = this.responseText;
			
			window.opener.document.getElementById("purchaseitemdata").innerHTML = sResponseText;
                        window.opener.fnPurchaseItemChange();
			closePopup();
			
		};
		
		oAjax.get();
	}
}


function fnEditSalesType(itemcode)
{
	document.itemtypes.action = "/items";
	document.itemtypes.itemType.value = "Sales";
	document.itemtypes.otherTypes.value = document.itemtypes.otherTypes.value;
	document.itemtypes.edititemtype.value = itemcode;
	document.itemtypes.method = "POST";
	document.itemtypes.submit();
}

function fnEditOutgoingType(itemcode)
{
	document.itemtypes.action = "/items";
	document.itemtypes.itemType.value = "Purchase";
	document.itemtypes.otherTypes.value = document.itemtypes.otherTypes.value;
	document.itemtypes.edititemtype.value = itemcode;
	document.itemtypes.method = "POST";
	document.itemtypes.submit();
}

function fnUpdateSalesType(itemcode)
{
	var groupItems = document.getElementById('groupItems');
	var salestype = document.edititemtype.salestype;
	var category = document.edititemtype.category;
	
	var selectedCount = 0;
	var aGroupItems = new Array();
	
	if(groupItems)
	{
		for (var i = 0; i < groupItems.length; i++)
		{
			if (groupItems.options[i].selected)
			{
				selectedCount++;
				aGroupItems[aGroupItems.length] = groupItems.options[i].value;
			}
		}
	}
	
    
	if(salestype  && salestype.parentNode.style.display == "" && salestype.value == "")
	{
		fnAlert("Please enter Sales Type Name !", salestype);
		return false;
	}
	if(category  && category.parentNode.style.display == "" && category.value == "")
	{
		fnAlert("Please select Category !", category);
		return false;
	}
	if(groupItems  && groupItems.parentNode.style.display == "" && selectedCount < 1)
	{
		fnAlert("Please select Group Items !", groupItems);
		return false;
	}
	
	document.edititemtype.action = "/updateHandler.php";
	document.edititemtype.updateHandler.value = "updateSalesType";
	document.edititemtype.edititemtype.value = itemcode;
	document.edititemtype.groupItemsValue.value = aGroupItems.join(",");
	document.edititemtype.method = "POST";
	document.edititemtype.submit();
}

function fnUpdateOutgoingType(itemcode)
{
	var groupItems = document.getElementById('groupItems');
	var outgoingtype = document.edititemtype.outgoingtype;
	var category = document.edititemtype.category;

	var selectedCount = 0;
	var aGroupItems = new Array();
	              
	
	if(groupItems)
	{
  	for (var i = 0; i < groupItems.length; i++)
  	{
  		if (groupItems.options[i].selected)
  		{
  			selectedCount++;
  			aGroupItems[aGroupItems.length] = groupItems.options[i].value;
  		}
  	}  
	}
	
	if(outgoingtype  && outgoingtype.parentNode.style.display == "" && outgoingtype.value == "")
	{
		fnAlert("Please enter Outgoing Type Name !", outgoingtype);
		return false;
	}
	if(category  && category.parentNode.style.display == "" && category.value == "")
	{
		fnAlert("Please select Category !", category);
		return false;
	}
	if(groupItems  && groupItems.parentNode.style.display == "" && selectedCount < 1)
	{
		fnAlert("Please select Group Items !", groupItems);
		return false;
	}
	
	document.edititemtype.action = "/updateHandler.php";
	document.edititemtype.updateHandler.value = "updateOutgoingType";
	document.edititemtype.groupItemsValue.value = aGroupItems.join(",");
	document.edititemtype.edititemtype.value = itemcode;
	document.edititemtype.method = "POST";
	document.edititemtype.submit();
}

function fnDeleteSalesType(itemcode)
{
  if(confirm("Delete Sales Type ?"))
	{
    document.edititemtype.action = "/deleteHandler.php";
    document.edititemtype.deleteHandler.value = "deleteSalesType";
    document.edititemtype.edititemtype.value = itemcode;
  	document.edititemtype.method = "POST";
  	document.edititemtype.submit();
  }
}

function fnDeleteOutgoingType(itemcode)
{
	if(confirm("Delete Outgoing Type ?"))
	{
		document.edititemtype.action = "/deleteHandler.php";
		document.edititemtype.deleteHandler.value = "deleteOutgoingType";
		document.edititemtype.edititemtype.value = itemcode;
		document.edititemtype.method = "POST";
		document.edititemtype.submit();
	}
}



/******************* AUDIT TRAIL FUNCTIONS *******************/

function importBankTransactions()
{
	var filepath = document.auditTrail.filepath.value;
	if(filepath == "")
	{
		document.getElementById("importerrormessage").innerHTML = "Please Select a CSV File to Import!";
		return false;
	}
	else
	{
		var filenameLength = filepath.length;
		var uploadfileExt = filepath.substring(filenameLength-4);
		uploadfileExt = uploadfileExt.toLowerCase();
		if(uploadfileExt != ".csv")
		{
			document.getElementById("importerrormessage").innerHTML = "Please Select a CSV File to Import!";
			return false;
		}
	}
	document.auditTrail.action = "/saveHandler.php";
	document.auditTrail.saveHandler.value = "importBankTransactions";
	document.auditTrail.method = "POST";
	document.auditTrail.submit();
}

function importAuditTrailTransactions()
{
	var filepath = document.auditTrail.filepath.value;
	if(filepath == "")
	{
		document.getElementById("importerrormessage").innerHTML = "Please Select a CSV File to Import!";
		return false;
	}
	else
	{
		var filenameLength = filepath.length;
		var uploadfileExt = filepath.substring(filenameLength-4);
		uploadfileExt = uploadfileExt.toLowerCase();
		if(uploadfileExt != ".csv")
		{
			document.getElementById("importerrormessage").innerHTML = "Please Select a CSV File to Import!";
			return false;
		}
	}
	document.auditTrail.action = "/saveHandler.php";
	document.auditTrail.saveHandler.value = "importAuditTrailTransactions";
	document.auditTrail.method = "POST";
	document.auditTrail.submit();
}


/******************* TRANSPORT SHEET FUNCTIONS *******************/

function fnImportTransportSheetData()
{
	if(document.getElementById("importTransportSheetData").style.display != "none")
	{
		var filepath = document.daybook.filepath.value;
		
		if(filepath == "")
		{
			fnAlert("Please Select a CSV File to Import!", document.daybook.filepath);
			return false;
		}
		else
		{
			var filenameLength = filepath.length;
			
			var uploadfileExt = filepath.substring(filenameLength-4);
			
			uploadfileExt = uploadfileExt.toLowerCase();
			
			if(uploadfileExt != ".csv")
			{
				fnAlert("Please Select a CSV File to Import!", document.daybook.filepath);
				return false;
			}
		}
		document.daybook.action = "/saveHandler.php";
		document.daybook.saveHandler.value = "importTransportSheetData";
		document.daybook.method = "POST";
		document.daybook.submit();
	}
	
	else
	{
		document.getElementById("importTransportSheetData").style.display = "";
		document.getElementById("importButton").style.display = "none";
		document.daybook.filepath.focus();
	}
}

function fnGetCustomerList(sObj,sWhich)
{
	var sVal = sObj.name.slice(-4);
	
	sVal = (fnIsNumeric(sVal))?sVal:sObj.name.slice(-3);
	
	sVal = (fnIsNumeric(sVal))?sVal:sObj.name.slice(-2);
	
	sVal = (fnIsNumeric(sVal))?sVal:sObj.name.slice(-1);
	
	var sText = sObj.value;
	
	// MAKE AJAX CALL
	
	var oAjax = new AjaxWrapper;
	
	var sUrl = "/saveHandler.php?saveHandler=GetAllList";
	
	sUrl = sUrl + "&sText=" + sText;
	
	sUrl = sUrl + "&sWhich=" + sWhich;
	
	sUrl = sUrl + "&sid=" + Date() + Math.random();
	
	oAjax.url = sUrl;
	
	oAjax.onSuccess = function() {
		
		document.getElementById(sWhich + "list"+sVal).innerHTML = this.responseText;
		
		document.getElementById(sWhich + "list"+sVal).style.display = "";
	};
	
	oAjax.get();
}

function fnHideSuggestions(sObj,sWhich)
{
	var sVal = sObj.name.slice(-4);
	sVal = (fnIsNumeric(sVal))?sVal:sObj.name.slice(-3);
	sVal = (fnIsNumeric(sVal))?sVal:sObj.name.slice(-2);
	sVal = (fnIsNumeric(sVal))?sVal:sObj.name.slice(-1);
	document.getElementById(sWhich + "list"+sVal).style.display = "none";
}

function fnRemoveExampleText(sObj)
{
	if(sObj.value == "dd-mm-yyyy")
	{
		sObj.value = "";
		sObj.style.color = "#000000";
	}
}

function fnAddExampleText(sObj)
{
	if(sObj.value == "" || sObj.value == "dd-mm-yyyy")
	{
		sObj.value = "dd-mm-yyyy";
		sObj.style.color = "#AAAAAA";
	}
	else
	{
		sObj.style.color = "#000000";
	}
}

function fnFilterTransportSheet()
{
	var sExclude = document.daybook.invoiced.checked;
	document.daybook.action = "editDaySheet.php";
	document.daybook.fromdate.value = document.daybook.fromdate.value;
	document.daybook.todate.value = document.daybook.todate.value;
	document.daybook.monthid.value = document.daybook.monthid.value;
	document.daybook.customer.value = document.daybook.customer.value;
	if(sExclude)
	{
		document.daybook.sInvoiced.value = "exclude";
	}
	document.daybook.method = "POST";
	document.daybook.submit();
}

function fnGetTransportSheetCSV()
{
	document.daybook.action = "/exportHandler.php";
	document.daybook.exportHandler.value = "GetTransportSheetCSV";
	document.daybook.method = "POST";
	document.daybook.submit();
}

function generateTransportCustomerStatement(sCustomer, iIsOnlyUninvoiced)
{
	document.daybook.action = "/exportHandler.php";
	document.daybook.exportHandler.value = "generateTransportCustomerStatement";
	document.daybook.customer.value = sCustomer;
	document.daybook.only_uninvoiced.value = (iIsOnlyUninvoiced) ? iIsOnlyUninvoiced : "";
	document.daybook.method = "POST";
	document.daybook.submit();
}

function fnGenerateMonthInvoice(oElement)
{
	oElement.value = "Processing...Please wait";
	oElement.disabled = "disabled";
	document.daybook.action = "/saveHandler.php";
	document.daybook.saveHandler.value = "generateTransportMonthInvoice";
	document.daybook.method = "POST";
	document.daybook.submit();
}

function fnGenerateInvoice(sCustomer)
{
	document.daybook.action = "/saveHandler.php";
	document.daybook.saveHandler.value = "generateTransportInvoice";
	document.daybook.customer.value = sCustomer;
	document.daybook.method = "POST";
	document.daybook.submit();
}

/* FUNCTION fnCustomerInvoiceAllVehicles IS NOT BEING USED NOW */
function fnGetDayBookInfo()
{
	document.daybook.action = "/dayBook";
	document.daybook.method = "POST";
	document.daybook.submit();
}

function fnGetDayBookReceipt()
{
	document.daybook.action = "/exportHandler.php";
	document.daybook.exportHandler.value = "generateDayBookReceipt";
	document.daybook.method = "POST";
	document.daybook.submit();
}

function fnGetInvoices(sFromDate,sToDate,sCustomer)
{
	document.daybook.action = "/salesInvoices";
	document.daybook.fromdate.value = sFromDate;
	document.daybook.todate.value = sToDate;
	document.daybook.customer.value = sCustomer;
	document.daybook.method = "POST";
	document.daybook.submit();
}

function fnPaidInvoiceCheck(sObj)
{
	var sVal = sObj.name.slice(-4);
	sVal = (fnIsNumeric(sVal))?sVal:sObj.name.slice(-3);
	sVal = (fnIsNumeric(sVal))?sVal:sObj.name.slice(-2);
	sVal = (fnIsNumeric(sVal))?sVal:sObj.name.slice(-1);
	var sPaid = document.getElementById("amount"+sVal).checked;

	if(!fnValidateDaySheet(sObj)) return false;
	else if(!fnConfirmGenerate()) return false;
	else if(!fnPromptHoppaAmount(sVal)) return false;
	else fnEntryInvoice(sObj);
}

function fnGenerateInvoiceCheck(sObj)
{
	var sVal = sObj.name.slice(-4);
	sVal = (fnIsNumeric(sVal))?sVal:sObj.name.slice(-3);
	sVal = (fnIsNumeric(sVal))?sVal:sObj.name.slice(-2);
	sVal = (fnIsNumeric(sVal))?sVal:sObj.name.slice(-1);
	if(!fnValidateDaySheet(sObj)) return false;
	else if(!fnConfirmGenerate()) return false;
	else if(!fnPromptHoppaAmount(sVal)) return false;
	else fnEntryInvoice(sObj);
}

function fnValidateDaySheet(sObj)
{
	var sVal = sObj.name.slice(-4);
	sVal = (fnIsNumeric(sVal))?sVal:sObj.name.slice(-3);
	sVal = (fnIsNumeric(sVal))?sVal:sObj.name.slice(-2);
	sVal = (fnIsNumeric(sVal))?sVal:sObj.name.slice(-1);
	var customer = document.getElementById("customername"+sVal).value;
	var purpose = document.getElementById("item"+sVal).value;
	var sheetdate = document.getElementById("sheetdate"+sVal).value;
	var criteria = document.getElementById("criteria"+sVal).value;
	var destination = document.getElementById("destination"+sVal).value;
	var driver = document.getElementById("driver"+sVal).value;
	var passengers = document.getElementById("passengers"+sVal).value;
	var mileagestart = document.getElementById("mileagestart"+sVal).value;
	var mileagefinish = document.getElementById("mileagefinish"+sVal).value;
	var paid = (document.getElementById("amount"+sVal).checked)?"on":"";
	var miles = document.getElementById("miles"+sVal).value;

	if(customer == "")
	{
		alert("Please Select a Customer !");
		document.getElementById("customername"+sVal).focus();
		return false;
	}
	else if(purpose == "")
	{
		alert("Please Select a Purpose !");
		document.getElementById("item"+sVal).focus();
		return false;
	}
	else if(sheetdate == "" || sheetdate == "dd-mm-yyyy")
	{
		alert("Please Select a Date !");
		document.getElementById("sheetdate"+sVal).focus();
		return false;
	}
	else if(criteria == "")
	{
		alert("Please Select a Criteria !");
		document.getElementById("criteria"+sVal).focus();
		return false;
	}
	else if(destination == "")
	{
		alert("Please Enter Destination !");
		document.getElementById("destination"+sVal).focus();
		return false;
	}
	else if(driver == "")
	{
		alert("Please Select a Driver !");
		document.getElementById("driver"+sVal).focus();
		return false;
	}
	else if(passengers == "")
	{
		alert("Please Enter No. of Passengers !");
		document.getElementById("passengers"+sVal).focus();
		return false;
	}
	else if(mileagestart == "")
	{
		alert("Please Enter Mileagestart !");
		document.getElementById("mileagestart"+sVal).focus();
		return false;
	}
	else if(mileagefinish == "")
	{
		alert("Please Enter Mileagefinish !");
		document.getElementById("mileagefinish"+sVal).focus();
		return false;
	}
	/*else if(miles == "")
	{
		alert("Please Enter Miles !");
		document.getElementById("miles"+sVal).focus();
		return false;
	}*/
	else return true;
}

function fnEntryInvoice(sObj)
{
	var sVal = sObj.name.slice(-4);
	sVal = (fnIsNumeric(sVal))?sVal:sObj.name.slice(-3);
	sVal = (fnIsNumeric(sVal))?sVal:sObj.name.slice(-2);
	sVal = (fnIsNumeric(sVal))?sVal:sObj.name.slice(-1);
	var customer = document.getElementById("customername"+sVal).value;
	var purpose = document.getElementById("item"+sVal).value;
	var sheetdate = document.getElementById("sheetdate"+sVal).value;
	var criteria = document.getElementById("criteria"+sVal).value;
	var destination = document.getElementById("destination"+sVal).value;
	var driver = document.getElementById("driver"+sVal).value;
	var passengers = document.getElementById("passengers"+sVal).value;
	var mileagestart = document.getElementById("mileagestart"+sVal).value;
	var mileagefinish = document.getElementById("mileagefinish"+sVal).value;
	var paid = (document.getElementById("amount"+sVal).checked)?"on":"";
	var miles = document.getElementById("miles"+sVal).value;
	var hoppaAmount = document.getElementById("hoppaAmount").value;

	xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null)
	{
		alert ("Browser does not support HTTP Request");
		return;
	}
	var url="/saveHandler.php?saveHandler=";
	url = url + "&sid="+Date()+Math.random();
	xmlHttp.onreadystatechange= function(){fnEntryInvoiceSuccess(sVal);};
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
	
	// MAKE AJAX CALL
	
	var oAjax = new AjaxWrapper;
	
	var sUrl = "/saveHandler.php?saveHandler=GetEntryInvoice";
	
	sUrl = sUrl + "&sText=" + sText;
	
	url = url + "&customer=" + customer;
	
	url = url + "&purpose=" + purpose;
	
	url = url + "&sheetdate=" + sheetdate;
	
	url = url + "&criteria=" + criteria;
	
	url = url + "&destination=" + destination;
	
	url = url + "&driver=" + driver;
	
	url = url + "&passengers=" + passengers;
	
	url = url + "&mileagestart=" + mileagestart;
	
	url = url + "&mileagefinish=" + mileagefinish;
	
	url = url + "&miles=" + miles;
	
	url = url + "&paid=" + paid;
	
	url = url + "&hoppaAmount=" + hoppaAmount;
	
	sUrl = sUrl + "&sid=" + Date() + Math.random();
	
	oAjax.url = sUrl;
	
	oAjax.onSuccess = function() {
		
		document.getElementById(sWhich + "list"+sVal).innerHTML = this.responseText;
		
		document.getElementById(sWhich + "list"+sVal).style.display = "";
	};
	
	oAjax.get();
}

function fnEntryInvoiceSuccess(sVal)
{
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
	 {
		document.getElementById("invoice"+sVal).innerHTML = xmlHttp.responseText;
		document.getElementById("hiddenRow"+sVal).value = "done";
		document.getElementById("customername"+sVal).disabled = "disabled";
		document.getElementById("item"+sVal).disabled = "disabled";
		document.getElementById("sheetdate"+sVal).disabled = "disabled";
		document.getElementById("criteria"+sVal).disabled = "disabled";
		document.getElementById("destination"+sVal).readOnly = true;
		document.getElementById("driver"+sVal).disabled = "disabled";
		document.getElementById("passengers"+sVal).readOnly = true;
		document.getElementById("mileagestart"+sVal).readOnly = true;
		document.getElementById("mileagefinish"+sVal).readOnly = true;
		//document.getElementById("miles"+sVal).readOnly = true;
		document.getElementById("amount"+sVal).disabled = "disabled";
	 }
}

function fnDeleteMarkedSheetRow(sObj)
{
	var sVal = sObj.id.slice(-2);
	sVal = (fnIsNumeric(sVal))?sVal:sObj.id.slice(-1);
	if(confirm("Are you sure you want to delete this entry?"))
	{
		document.daybook.action = "/updateHandler.php";
		document.daybook.updateHandler.value = "deleteMarkedSheetRow";
		document.daybook.sNumOfVal.value = sVal;
		document.daybook.method = "POST";
		document.daybook.submit();
	}
	else
	{
		return false;
	}
}

function fnMarkDeleteSheetRow(sObj)
{
	var sVal = sObj.id.slice(-2);
	sVal = (fnIsNumeric(sVal))?sVal:sObj.id.slice(-1);
	sAlert = (sObj.checked)?"mark":"unmark";
	if(confirm("Are you sure you want to " + sAlert + " this entry for deletion?"))
	{
		document.daybook.action = "/updateHandler.php";
		document.daybook.updateHandler.value = "markDeleteMileageSheetRow";
		document.daybook.sNumOfVal.value = sVal;
		document.daybook.method = "POST";
		document.daybook.submit();
	}
	else
	{
		if(sObj.checked)
		{
			sObj.checked = false;
		}
		else
		{
			sObj.checked = true;
		}
	}
}

function fnDeleteSheetRow(sObj)
{
	var sVal = sObj.id.slice(-2);
	sVal = (fnIsNumeric(sVal))?sVal:sObj.id.slice(-1);
	if(confirm("Are you sure you want to delete this entry?"))
	{
		document.daybook.action = "/updateHandler.php";
		document.daybook.updateHandler.value = "deleteMileageSheetRow";
		document.daybook.sNumOfVal.value = sVal;
		document.daybook.method = "POST";
		document.daybook.submit();
	}
	else
	{
		return false;
	}
}

function fnEditRow(sObj)
{
	var sVal = sObj.id.slice(-2);
	sVal = (fnIsNumeric(sVal))?sVal:sObj.id.slice(-1);
	var imgsrc = document.getElementById("editrow"+sVal).src;
	if(imgsrc.indexOf("edit.png") != -1)
	{
		var sClassName = document.getElementById("customername"+sVal).className;
		sClassName = sClassName.replace("disabled"," ");
		document.getElementById("customername"+sVal).className = sClassName;
		document.getElementById("customername"+sVal).disabled = "";
		document.getElementById("purpose"+sVal).disabled = "";
		document.getElementById("sheetdate"+sVal).readOnly = false;
		document.getElementById("criteria"+sVal).disabled = "";
		document.getElementById("destination"+sVal).readOnly = false;
		document.getElementById("driver"+sVal).disabled = "";
		document.getElementById("passengers"+sVal).readOnly = false;
		document.getElementById("mileagestart"+sVal).readOnly = false;
		document.getElementById("mileagefinish"+sVal).readOnly = false;
		//document.getElementById("miles"+sVal).readOnly = false;
		//document.getElementById("editrow"+sVal).value = "Save";
		document.getElementById("editrow"+sVal).title = "Save";
		document.getElementById("editrow"+sVal).alt = "Save";
		document.getElementById("editrow"+sVal).src = "../images/save.png";
	}
	else if(imgsrc.indexOf("save.png") != -1)
	{
		document.daybook.action = "/updateHandler.php";
		document.daybook.updateHandler.value = "updateMileageSheetRow";
		document.daybook.sNumOfVal.value = sVal;
		document.daybook.method = "POST";
		document.daybook.submit();
	}
}

function fnCalcMiles(sObj)
{
	var sVal = sObj.name.slice(-4);
	sVal = (fnIsNumeric(sVal))?sVal:sObj.name.slice(-3);
	sVal = (fnIsNumeric(sVal))?sVal:sObj.name.slice(-2);
	sVal = (fnIsNumeric(sVal))?sVal:sObj.name.slice(-1);
	var mileagestart;
	var mileagefinish;
	var miles;
	if(document.getElementById("mileagestart"+sVal) )
	{
		mileagestart = document.getElementById("mileagestart"+sVal).value;
	}
	if(document.getElementById("mileagefinish"+sVal) )
	{
		mileagefinish = document.getElementById("mileagefinish"+sVal).value;
	}
	if( document.getElementById("miles"+sVal) )
	{
		miles = mileagefinish - mileagestart;
		if(miles >= 0)
		{
			document.getElementById("miles"+sVal).value = parseFloat(miles).toFixed(2);
			document.getElementById("milesSpan"+sVal).innerHTML = parseFloat(miles).toFixed(2);
		}
		else
		{
			document.getElementById("miles"+sVal).value = parseFloat(0).toFixed(2);
			document.getElementById("milesSpan"+sVal).innerHTML = parseFloat(0).toFixed(2);
		}
	}
}

function fnTransportPopUp(popupname,sWidth,sHeight,sFilename,sObj)
{
	var sVal = sObj.name.slice(-4);
	sVal = (fnIsNumeric(sVal))?sVal:sObj.name.slice(-3);
	sVal = (fnIsNumeric(sVal))?sVal:sObj.name.slice(-2);
	sVal = (fnIsNumeric(sVal))?sVal:sObj.name.slice(-1);
	var selectedvalue = document.getElementById(popupname).options[document.getElementById(popupname).selectedIndex].value;
	if(sFilename == "customers/add&mid=1" && (selectedvalue != "[Add New]" && selectedvalue != "--Select--"))
	{
		fnChangeCriteria(sVal);
	}
	if(selectedvalue == "[Add New]")
	{
		var popUpWindow = window.open('/'+
      sFilename + "&bPopup=true&sVal="+sVal,"_blank","width="+sWidth + ", height="+sHeight + ", toolbar=yes, location=yes, menubar=yes, scrollbars=yes, resizable=yes, copyhistory=yes");
	}
}

function fnChangeCriteria(sVal)
{
	xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null)
	{
		alert ("Browser does not support HTTP Request");
		return;
	}
	var sCustomer = document.getElementById("customername"+sVal).value;
	var url="/updateHandler.php?sCustomer=" + sCustomer;
	url = url + "&updateHandler=changeCriteria";
	url = url + "&sVal=" + sVal;
	url = url + "&sid="+Date()+Math.random();
	xmlHttp.onreadystatechange=function(){changeCriteriaSuccess(sVal);};
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function changeCriteriaSuccess(sVal)
{
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
	{
		document.getElementById("criteriadata"+sVal).innerHTML = xmlHttp.responseText;
	}
}


function fnAddTransportRow(sCriteria,sDates)
{
	var sNum = (document.getElementById("sValue").value-1)+2;
	document.getElementById("sValue").value = sNum;
	var sPrev = sNum-1;
	var sPrevMilesEnd = document.getElementById("mileagefinish"+sPrev).value;

	sPurpose = document.getElementById("purposevalues"+sPrev).value;
	aPurposes = sPurpose.split("{}");
	aPurposes.pop();
	sPurposeId = document.getElementById("purposeids"+sPrev).value;
	aPurposeIds = sPurposeId.split("{}");
	aPurposeIds.pop();
	sCustomer = document.getElementById("customervalues"+sPrev).value;
	aCustomers = sCustomer.split("{}");
	aCustomers.pop();
	sCustomerId = document.getElementById("customerids"+sPrev).value;
	aCustomerIds = sCustomerId.split("{}");
	aCustomerIds.pop();
	aCriteria = sCriteria.split("{}");
	aCriteria.pop();
	aDates = sDates.split("{}");
	aDates.pop();
	sDriver = document.getElementById("drivervalues"+sPrev).value;
	aDrivers = sDriver.split("{}");
	aDrivers.pop();

	var tbody = document.getElementById("transport").getElementsByTagName("TBODY")[0];

	var row1 = document.createElement("TR");

	var td11 = document.createElement("TD");
	var div11 = document.createElement("div");
	div11.id = "customerdata" + sNum;
	var sel11 = document.createElement("select");
	sel11.name = "customername" + sNum;
	sel11.id = "customername" + sNum;
	sel11.style.width = "100px";
	sel11.options[sel11.options.length] = new Option("--Select--", "");
	for(sTemp in aCustomers)
	{
		sel11.options[sel11.options.length] = new Option(aCustomers[sTemp], aCustomerIds[sTemp]);
	}
	sel11.onchange = function(){fnTransportPopUp(sel11.id,"820","595","customers/add&mid=1",sel11);};
	var txt22 = document.createElement("input");
	txt22.type = "hidden";
	txt22.name = "hiddenRow" + sNum;
	txt22.id = "hiddenRow" + sNum;
	div11.appendChild(sel11);
	var txt33 = document.createElement("input");
	txt33.type = "hidden";
	txt33.name = "customervalues" + sNum;
	txt33.id = "customervalues" + sNum;
	txt33.value = sCustomer;
	var txt66 = document.createElement("input");
	txt66.type = "hidden";
	txt66.name = "customerids" + sNum;
	txt66.id = "customerids" + sNum;
	txt66.value = sCustomerId;
	div11.appendChild(sel11);
	div11.appendChild(txt33);
	div11.appendChild(txt66);
	td11.appendChild(div11);
	td11.appendChild(txt22);
	for(sTemp=0;sTemp<sel11.options.length;sTemp++)
	{
		if(sel11.options[sTemp].value == document.getElementById("ibo_companyname").value)
		{
			sel11.options[sTemp].selected = true;
		}
	}

	var td1 = document.createElement("TD");
	var div44 = document.createElement("div");
	div44.id = "purposedata" + sNum;
	var sel1 = document.createElement("select");
	sel1.name = "item" + sNum;
	sel1.id = "item" + sNum;
	sel1.style.width = "100px";
	sel1.options[sel1.options.length] = new Option("--Select--", "");
	for(sTemp in aPurposes)
	{
		sel1.options[sel1.options.length] = new Option(aPurposes[sTemp], aPurposeIds[sTemp]);
	}
	sel1.onchange = function(){fnTransportPopUp(sel1.id,"820","595","/items/add&itemType=Sales",sel1);};
	var txt44 = document.createElement("input");
	txt44.type = "hidden";
	txt44.name = "purposevalues" + sNum;
	txt44.id = "purposevalues" + sNum;
	txt44.value = sPurpose;
	var txtPurposeId = document.createElement("input");
	txtPurposeId.type = "hidden";
	txtPurposeId.name = "purposeids" + sNum;
	txtPurposeId.id = "purposeids" + sNum;
	txtPurposeId.value = sPurposeId;
	div44.appendChild(sel1);
	div44.appendChild(txt44);
	div44.appendChild(txtPurposeId);
	td1.appendChild(div44);
	for(sTemp=0;sTemp<sel1.options.length;sTemp++)
	{
		if(sel1.options[sTemp].value == "Dead Miles")
		{
			sel1.options[sTemp].selected = true;
		}
	}

	var td10 = document.createElement("TD");
	var txt12 = document.createElement("input");
	txt12.type = "text";
	txt12.size = "8";
	txt12.name = "sheetdate" + sNum;
	txt12.id = "sheetdate" + sNum;
	txt12.value = "dd-mm-yyyy";
	txt12.style.color = "#AAAAAA";
	txt12.onclick = function(){fnRemoveExampleText(txt12);};
	txt12.onblur = function(){fnAddExampleText(txt12);};
	td10.appendChild(txt12);
	var img1 = new Image();
	img1.src = "../images/cal.gif";
	img1.onclick = function(){showCalendar("sheetdate" + sNum, "%d-%m-%Y");};
	td10.appendChild(img1);

	var td2 = document.createElement("TD");
	var txt2 = document.createElement("input");
	txt2.type = "text";
	txt2.size = "5";
	txt2.name = "mileagestart" + sNum;
	txt2.id = "mileagestart" + sNum;
	txt2.onkeyup = function(){fnCalcMiles(txt2);};
	txt2.onchange = function(){fnCalcMiles(txt2);};
	td2.appendChild(txt2);

	var td3 = document.createElement("TD");
	var div99 = document.createElement("div");
	div99.id = "criteriadata" + sNum;
	var sel2 = document.createElement("select");
	sel2.name = "criteria" + sNum;
	sel2.id = "criteria" + sNum;
	sel2.style.width = "100px";
	sel2.options[sel2.options.length] = new Option("--Select--", "");
	for(sTemp in aCriteria)
	{
		sel2.options[sel2.options.length] = new Option(aCriteria[sTemp], aCriteria[sTemp]);
	}
	div99.appendChild(sel2);
	td3.appendChild(div99);

	var td4 = document.createElement("TD");
	var txt4 = document.createElement("input");
	txt4.type = "text";
	txt4.size = "5";
	txt4.name = "mileagefinish" + sNum;
	txt4.id = "mileagefinish" + sNum;
	txt4.onkeyup = function(){fnCalcMiles(txt2);};
	txt4.onchange = function(){fnCalcMiles(txt2);};
	td4.appendChild(txt4);

	var td5 = document.createElement("TD");
	var txt5 = document.createElement("input");
	txt5.type = "text";
	txt5.size = "8";
	txt5.name = "destination" + sNum;
	txt5.id = "destination" + sNum;
	td5.appendChild(txt5);

	var td6 = document.createElement("TD");
	var div6 = document.createElement("div");
	div6.id = "driverdata" + sNum;
	var sel13 = document.createElement("select");
	sel13.name = "driver" + sNum;
	sel13.id = "driver" + sNum;
	sel13.style.width = "100px";
	sel13.options[sel13.options.length] = new Option("--Select--", "");
	for(sTemp in aDrivers)
	{
		sel13.options[sel13.options.length] = new Option(aDrivers[sTemp], aDrivers[sTemp]);
	}
	sel13.onchange = function(){fnTransportPopUp(sel13.id,"820","595","/employees/add&mid=1&fromHandler=transport",sel13);};
	var txt55 = document.createElement("input");
	txt55.type = "hidden";
	txt55.name = "drivervalues" + sNum;
	txt55.id = "drivervalues" + sNum;
	txt55.value = sDriver;
	div6.appendChild(sel13);
	div6.appendChild(txt55);
	td6.appendChild(div6);

	var td7 = document.createElement("TD");
	var txt7 = document.createElement("input");
	txt7.type = "text";
	txt7.size = "5";
	txt7.name = "passengers" + sNum;
	txt7.id = "passengers" + sNum;
	td7.appendChild(txt7);

	var td8 = document.createElement("TD");
	var spanMiles = document.createElement("span");
	spanMiles.id = "milesSpan" + sNum;
	spanMiles.name = "milesSpan" + sNum;
	var txt8 = document.createElement("input");
	txt8.type = "hidden";
	txt8.size = "5";
	txt8.name = "miles" + sNum;
	txt8.id = "miles" + sNum;
	td8.appendChild(spanMiles);
	td8.appendChild(txt8);

	var td9 = document.createElement("TD");
	var txt9 = document.createElement("input");
	txt9.type = "checkbox";
	txt9.size = "5";
	txt9.name = "amount" + sNum;
	txt9.id = "amount" + sNum;
	txt9.onclick = function(){fnPaidInvoiceCheck(txt9);};
	td9.appendChild(txt9);

	var td19 = document.createElement("TD");
	var span19 = document.createElement("span");
	span19.id = "invoice" + sNum;
	var txt19 = document.createElement("input");
	txt19.type = "checkbox";
	txt19.size = "5";
	txt19.name = "generateinvoice" + sNum;
	txt19.id = "generateinvoice" + sNum;
	txt19.onclick = function(){fnEntryInvoice(txt19);};
	span19.appendChild(txt19);
	td19.appendChild(span19);

	row1.appendChild(td11);
	row1.appendChild(td1);
	row1.appendChild(td10);
	row1.appendChild(td3);
	row1.appendChild(td5);
	row1.appendChild(td6);
	row1.appendChild(td7);
	row1.appendChild(td2);
	row1.appendChild(td4);
	row1.appendChild(td8);
	row1.appendChild(td9);
	row1.appendChild(td19);
	tbody.appendChild(row1);

	document.getElementById("mileagestart"+sNum).value = sPrevMilesEnd;
	document.getElementById("customername"+sNum).focus();
}

function addNewOtherPayments()
{
	var sProjectDisplay = document.getElementById('sProjectDisplay').value;
	
	var sNum = (document.getElementById("sOtherValue").value - 1) + 2;
	
	document.getElementById("sOtherValue").value = sNum;
	
	var sPrev = sNum - 1;

	var sProjects = document.getElementById("values_other_project"+sPrev).value;
	var aProjects = sProjects.split("{}");
	aProjects.pop();
	
	var sProjectIds = document.getElementById("ids_other_project"+sPrev).value;
	var aProjectIds = sProjectIds.split("{}");
	aProjectIds.pop();

	var sPaymentMethods = document.getElementById("values_payment_method"+sPrev).value;
	var aPaymentMethods = sPaymentMethods.split("{}");
	aPaymentMethods.pop();
	
	var sPaymentMethodIds = document.getElementById("ids_payment_method"+sPrev).value;
	var aPaymentMethodIds = sPaymentMethodIds.split("{}");
	aPaymentMethodIds.pop();
	
	var tbody = document.getElementById("other").getElementsByTagName("TBODY")[0];
	var row1 = document.createElement("TR");
	
	var td1 = document.createElement("TD");
	td1.appendChild(document.createTextNode("Amount"));

	var td2 = document.createElement("TD");
	td2.appendChild (document.createTextNode("Payment Method"));

	var td3 = document.createElement("TD");
	td3.appendChild (document.createTextNode(sProjectDisplay));

	var row2 = document.createElement("TR");
	var td4 = document.createElement("TD");
	var txtOtherAmount = document.createElement("input");
	txtOtherAmount.type = "text";
	txtOtherAmount.name = "other_amount" + sNum;
	txtOtherAmount.id = "other_amount" + sNum;
	txtOtherAmount.onkeyup = fnCalOtherPaymentsTotal;
	txtOtherAmount.onchange = fnCalOtherPaymentsTotal;
	td4.appendChild(txtOtherAmount);

	var tdPaymentMethods = document.createElement("TD");
	var selPM = document.createElement("select");
	selPM.name = "payment_method" + sNum;
	selPM.id = "payment_method" + sNum;
	selPM.className = "selectBox";
	selPM.options[selPM.options.length] = new Option("--Select--", "");
	for(sTemp in aPaymentMethods)
	{
		selPM.options[selPM.options.length] = new Option(aPaymentMethods[sTemp], aPaymentMethodIds[sTemp]);
	}
	
	var txtMethodValues = document.createElement("input");
	txtMethodValues.type = "hidden";
	txtMethodValues.name = "values_payment_method" + sNum;
	txtMethodValues.id = "values_payment_method" + sNum;
	txtMethodValues.value = sPaymentMethods;
	
	var txtMethodIds = document.createElement("input");
	txtMethodIds.type = "hidden";
	txtMethodIds.name = "ids_payment_method" + sNum;
	txtMethodIds.id = "ids_payment_method" + sNum;
	txtMethodIds.value = sPaymentMethodIds;
	
	tdPaymentMethods.appendChild(selPM);
	tdPaymentMethods.appendChild(txtMethodValues);
	tdPaymentMethods.appendChild(txtMethodIds);

	var td6 = document.createElement("TD");
	var sel = document.createElement("select");
	sel.name = "other_project" + sNum;
	sel.id = "other_project" + sNum;
	sel.className = "selectBox";
	sel.options[sel.options.length] = new Option("--Select--", "");
	for(sTemp in aProjects)
	{
		sel.options[sel.options.length] = new Option(aProjects[sTemp], aProjectIds[sTemp]);
	}
	
	var txtProjectValues = document.createElement("input");
	txtProjectValues.type = "hidden";
	txtProjectValues.name = "values_other_project" + sNum;
	txtProjectValues.id = "values_other_project" + sNum;
	txtProjectValues.value = sProjects;
	
	var txtProjectIds = document.createElement("input");
	txtProjectIds.type = "hidden";
	txtProjectIds.name = "ids_other_project" + sNum;
	txtProjectIds.id = "ids_other_project" + sNum;
	txtProjectIds.value = sProjectIds;
	
	td6.appendChild(sel);
	td6.appendChild(txtProjectValues);
	td6.appendChild(txtProjectIds);

	var trInvalidOtherAmt = document.createElement("TR");
	var tdInvalidOtherAmt = document.createElement("TD");
	var spanInvalidOtherAmt = document.createElement("span");
	spanInvalidOtherAmt.className = "note";
	spanInvalidOtherAmt.id = "invalidOtherAmt" + sNum;
	tdInvalidOtherAmt.appendChild(spanInvalidOtherAmt);

	row1.appendChild(td1);
	row1.appendChild(td2);
	row1.appendChild(td3);
	row2.appendChild(td4);
	row2.appendChild(tdPaymentMethods);
	row2.appendChild(td6);
	trInvalidOtherAmt.appendChild(tdInvalidOtherAmt);
	tbody.appendChild(row1);
	tbody.appendChild(row2);
	tbody.appendChild(trInvalidOtherAmt);
	txtOtherAmount.focus();
	
}

function addNewCashOut()
{
	var sProjectDisplay = document.getElementById('sProjectDisplay').value;
	
	var sNum = (document.getElementById("sValue").value - 1) + 2;
	
	document.getElementById("sValue").value = sNum;
	
	var sPrev = sNum - 1;

	var sPaymentMethods = document.getElementById("values_paymentMethod1").value;
	var aPaymentMethods = sPaymentMethods.split("{}");
	aPaymentMethods.pop();
	
	var tbody = document.getElementById("cashout").getElementsByTagName("TBODY")[0];
	var row1 = document.createElement("TR");
	var td1 = document.createElement("TD");
	td1.appendChild(document.createTextNode("Amount"));

	var td2 = document.createElement("TD");
	td2.appendChild (document.createTextNode("Info"));

	var tdPM = document.createElement("TD");
	tdPM.appendChild (document.createTextNode("Payment Method"));

	var tdChequeNumber = document.createElement("TD");
	tdChequeNumber.className = "chequeNumberDetails" + sNum;
	tdChequeNumber.style.display = "none";
	tdChequeNumber.appendChild (document.createTextNode("Cheque Number"));

	var row2 = document.createElement("TR");
	var td4 = document.createElement("TD");
	var txtCashOutAmount = document.createElement("input");
	txtCashOutAmount.type = "text";
	txtCashOutAmount.name = "cashout_amount" + sNum;
	txtCashOutAmount.id = "cashout_amount" + sNum;
	txtCashOutAmount.onkeyup = fnCalCashOutTotal;
	txtCashOutAmount.onchange = fnCalCashOutTotal;
	td4.appendChild(txtCashOutAmount);

	var td5 = document.createElement("TD");
	var txt2 = document.createElement("input");
	txt2.type = "text";
	txt2.name = "cashout_description" + sNum;
	td5.appendChild(txt2);

	var td6 = document.createElement("TD");
	var selPM = document.createElement("select");
	selPM.name = "paymentMethod" + sNum;
	selPM.id = "paymentMethod" + sNum;
	selPM.className = "selectBox";
	selPM.onchange = function(){ displayChequeNumbers(sNum, 1); };
	selPM.options[selPM.options.length] = new Option("--Select--", "");
	for(sTemp in aPaymentMethods)
	{
		selPM.options[selPM.options.length] = new Option(aPaymentMethods[sTemp], aPaymentMethods[sTemp]);
	}
	
	td6.appendChild(selPM);

	var tdChequeNum = document.createElement("TD");
	tdChequeNum.className = "chequeNumberDetails" + sNum;
	tdChequeNum.style.display = "none";
	var selChequeNum = document.createElement("select");
	selChequeNum.name = "chequeNumber" + sNum;
	selChequeNum.id = "chequeNumber" + sNum;
	
	tdChequeNum.appendChild(selChequeNum);

	var row3 = document.createElement("TR");
	var td7 = document.createElement("TD");
	var span3 = document.createElement("span");
	span3.className = "note";
	span3.id = "invalidAmt" + sNum;
	td7.appendChild(span3);

	var td8 = document.createElement("TD");

	var td9 = document.createElement("TD");
	var span4 = document.createElement("span");
	span4.className = "note";
	span4.id = "invalidCat" + sNum;
	td9.appendChild(span4);

	row1.appendChild(td1);
	row1.appendChild(td2);
	row1.appendChild(tdPM);
	row1.appendChild(tdChequeNumber);
	row2.appendChild(td4);
	row2.appendChild(td5);
	row2.appendChild(td6);
	row2.appendChild(tdChequeNum);
	row3.appendChild(td7);
	row3.appendChild(td8);
	row3.appendChild(td9);
	tbody.appendChild(row1);
	tbody.appendChild(row2);
	tbody.appendChild(row3);
	txtCashOutAmount.focus();
}

function fnCategoryChange()
{
	var sNum = document.getElementById("sValue").value;
	for(var temp=1;temp<=sNum;temp++)
	{
		if(document.getElementById("category"+temp))
		 {
			sLineCategory = document.getElementById("category"+temp).value;
			(sLineCategory == "")?document.getElementById("invalidCat"+temp).innerHTML = "&nbsp;<img src='../images/invalid.png'>Please select Category":document.getElementById("invalidCat"+temp).innerHTML = "";
		 }
	}
	document.getElementById("cashOutTotal").innerHTML = "&pound;" + parseFloat(sCashOutTot).toFixed(2);
}

function fnAddDayBookInfo()
{
	var cashtotal = document.daybook.cashtotal.value;
	var debitcardtotal = document.daybook.debitcardtotal.value;
	var streamlinetotal = document.daybook.streamlinetotal.value;
	//var amextotal = document.daybook.amextotal.value;
	var vouchertotal = document.daybook.vouchertotal.value;
	//var cashin_project = document.daybook.cashin_project.value;
	var chequetotal = document.daybook.chequetotal.value;
	var sNum = document.getElementById("sValue").value;

	var sOtherNum = document.getElementById("sOtherValue").value;

	var sProjectDisplay = document.getElementById('sProjectDisplay').value;
	
	document.getElementById("eSubmitButton").value = "Please Wait...";
	document.daybook.action = "/saveHandler.php";
	document.daybook.saveHandler.value = "saveCashBookInfo";
	document.daybook.sNumOfVal.value = sNum;
	document.daybook.sNumOfOtherVal.value = sOtherNum;
	document.daybook.method = "POST";
	document.daybook.submit();

	// VALIDATION SCRIPT - CASH IN
	/*if(cashtotal != "" || debitcardtotal != "" || streamlinetotal != "" || amextotal != "" || vouchertotal != "" || chequetotal != "")
	{
		(cashtotal == "")?document.getElementById("cashtotal").innerHTML = "&nbsp;<img src='../images/invalid.png'>Please enter a valid number":"";
		(debitcardtotal == "")?document.getElementById("debitcardtotal").innerHTML ="&nbsp;<img src='../images/invalid.png'>Please enter a valid number":"";
		(streamlinetotal == "")?document.getElementById("streamlinetotal").innerHTML = "&nbsp;<img src='../images/invalid.png'>Please enter a valid number":"";
		(amextotal == "")?document.getElementById("amextotal").innerHTML = "&nbsp;<img src='../images/invalid.png'>Please enter a valid number":"";
		(vouchertotal == "")?document.getElementById("vouchertotal").innerHTML = "&nbsp;<img src='../images/invalid.png'>Please enter a valid number":"";
		(chequetotal == "")?document.getElementById("chequetotal").innerHTML = "&nbsp;<img src='../images/invalid.png'>Please enter a valid number":"";
		return false;
	}*/

	// VALIDATION SCRIPT - CASH OUT
	/*for(var sTemp=1;sTemp<=sNum;sTemp++)
	{
		if(document.getElementById("amount"+sTemp))
		 {
			sLineTot = document.getElementById("amount"+sTemp).value;
			sLineCategory = document.getElementById("category"+sTemp).value;
			if(sLineTot == "")
			{
			  document.getElementById("invalidAmt"+sTemp).innerHTML = "&nbsp;<img src='../images/invalid.png'>Please enter a valid number";
			  return false;
			}
			if(sLineCategory == "")
			{
			  document.getElementById("invalidCat"+sTemp).innerHTML = "&nbsp;<img src='../images/invalid.png'>Please select Category";
			  return false;
			}
		 }
	}*/
}

function fnCalOtherPaymentsTotal()
{
	var sNum = document.getElementById("sOtherValue").value;
	
	var sPaymentsTotal = 0;
	
	for(var temp=1;temp<=sNum;temp++)
	{
		if(document.getElementById("other_amount"+temp))
		 {
			sLineTot = document.getElementById("other_amount"+temp).value;
			
			(sLineTot == "")?"":document.getElementById("invalidOtherAmt"+temp).innerHTML = fnIsNumeric(sLineTot)?"":"&nbsp;<img src='../images/invalid.png'>Invalid Number";
			
			sLineTot = (sLineTot=="")?0:sLineTot;
			
			sPaymentsTotal = parseFloat(sPaymentsTotal) + parseFloat(sLineTot);
		 }
	}
	
	document.getElementById("otherInTotal").innerHTML = parseFloat(sPaymentsTotal).toFixed(2);
	
	var dFloatAmount = parseFloat(document.getElementById("sFloatAmount").value);
	
	var dTotalIn = parseFloat(document.getElementById("cashInTotal").innerHTML);
	
	var dOtherTotalIn = parseFloat(document.getElementById("otherInTotal").innerHTML);
	
	var dTotalOut = parseFloat(document.getElementById("cashOutTotal").innerHTML);
	
	document.getElementById("sFullDayTotal").innerHTML = parseFloat(dFloatAmount + dTotalIn + dOtherTotalIn - dTotalOut).toFixed(2);
}

function fnCalCashOutTotal()
{
	var sNum = document.getElementById("sValue").value;
	var sCashOutTot = 0;
	for(var temp=1;temp<=sNum;temp++)
	{
		if(document.getElementById("cashout_amount"+temp))
		 {
			sLineTot = document.getElementById("cashout_amount"+temp).value;
			
			(sLineTot == "")?"":document.getElementById("invalidAmt"+temp).innerHTML = fnIsNumeric(sLineTot)?"":"&nbsp;<img src='../images/invalid.png'>Invalid Number";
			
			sLineTot = (sLineTot=="")?0:sLineTot;
			
			sCashOutTot = parseFloat(sCashOutTot) + parseFloat(sLineTot);
		 }
	}
	
	document.getElementById("cashOutTotal").innerHTML = parseFloat(sCashOutTot).toFixed(2);
	
	var dFloatAmount = parseFloat(document.getElementById("sFloatAmount").value);
	
	var dTotalIn = parseFloat(document.getElementById("cashInTotal").innerHTML);
	
	var dOtherTotalIn = parseFloat(document.getElementById("otherInTotal").innerHTML);
	
	var dTotalOut = parseFloat(document.getElementById("cashOutTotal").innerHTML);
	
	document.getElementById("sFullDayTotal").innerHTML = parseFloat(dFloatAmount + dTotalIn + dOtherTotalIn - dTotalOut).toFixed(2);
}

function fnCalCashInTotal()
{
	var cashtotal = document.daybook.cashtotal.value;
	var debitcardtotal = document.daybook.debitcardtotal.value;
	var creditcardtotal = document.daybook.creditcardtotal.value;
	var streamlinetotal = document.daybook.streamlinetotal.value;
	var vouchertotal = document.daybook.vouchertotal.value;
	var chequetotal = document.daybook.chequetotal.value;
	
	(cashtotal == "")?"":document.getElementById("cashtotal").innerHTML = fnIsNumeric(cashtotal)?"":"&nbsp;<img src='../images/invalid.png'>Invalid Number";
	
	(debitcardtotal == "")?"":document.getElementById("debitcardtotal").innerHTML = fnIsNumeric(debitcardtotal)?"":"&nbsp;<img src='../images/invalid.png'>Invalid Number";
	
	(streamlinetotal == "")?"":document.getElementById("streamlinetotal").innerHTML = fnIsNumeric(streamlinetotal)?"":"&nbsp;<img src='../images/invalid.png'>Invalid Number";
	
	(creditcardtotal == "")?"":document.getElementById("creditcardtotal").innerHTML = fnIsNumeric(creditcardtotal)?"":"&nbsp;<img src='../images/invalid.png'>Invalid Number";
	
	(vouchertotal == "")?"":document.getElementById("vouchertotal").innerHTML = fnIsNumeric(vouchertotal)?"":"&nbsp;<img src='../images/invalid.png'>Invalid Number";
	
	(chequetotal == "")?"":document.getElementById("chequetotal").innerHTML = fnIsNumeric(chequetotal)?"":"&nbsp;<img src='../images/invalid.png'>Invalid Number";
	
	cashtotal = (cashtotal == "")?"0":cashtotal;
	debitcardtotal = (debitcardtotal == "")?"0":debitcardtotal;
	streamlinetotal = (streamlinetotal == "")?"0":streamlinetotal;
	creditcardtotal = (creditcardtotal == "")?"0":creditcardtotal;
	vouchertotal = (vouchertotal == "")?"0":vouchertotal;
	chequetotal = (chequetotal == "")?"0":chequetotal;
	
	var daytotal = parseFloat(cashtotal) + parseFloat(debitcardtotal) + parseFloat(streamlinetotal) + parseFloat(creditcardtotal) + parseFloat(vouchertotal) + parseFloat(chequetotal);
	
	document.getElementById("cashInTotal").innerHTML = parseFloat(daytotal).toFixed(2);
	
	var dFloatAmount = parseFloat(document.getElementById("sFloatAmount").value);
	
	var dTotalIn = parseFloat(document.getElementById("cashInTotal").innerHTML);
	
	var dOtherTotalIn = parseFloat(document.getElementById("otherInTotal").innerHTML);
	
	var dTotalOut = parseFloat(document.getElementById("cashOutTotal").innerHTML);
	
	document.getElementById("sFullDayTotal").innerHTML = parseFloat(dFloatAmount + dTotalIn + dOtherTotalIn - dTotalOut).toFixed(2);
}


/******************* CHEQUE BOOK FUNCTIONS *******************/



function updateChequeDetails()
{               
	var iBankAccountId = document.getElementById("bankAccountId").value;
	
	var iChequeRef = document.getElementById("chequeNumber").value;
	
	var iPayee = document.getElementById("supplier").value;
	
	var iInvoiceId = document.getElementById("invoiceid").value;
	
	var sPaymentDate = document.getElementById("paymentDate").value;
	
	var dPaymentAmount = document.getElementById("paymentAmount").value;
	
	//var sInfo = document.getElementById("info").value;
	
	if(iBankAccountId == "")
	{
		fnAlert("Please select Bank Account", document.getElementById("bankAccountId"));
		return false;
	}
	
	if(iChequeRef == "")
	{
		fnAlert("Please select cheque number", document.getElementById("chequeNumber"));
		return false;
	}
	
	if(iPayee == "")
	{
		fnAlert("Please select payee", document.getElementById("supplier"));
		return false;
	}
	
	if(iInvoiceId == "")
	{
		fnAlert("Please select invoice", document.getElementById("invoiceid"));
		return false;
	}
	
	if(sPaymentDate == "")
	{
		fnAlert("Please enter payment date", document.getElementById("paymentDate"));
		return false;
	}
	
	if(dPaymentAmount == "")
	{
		fnAlert("Please enter payment amount", document.getElementById("paymentAmount"));
		return false;
	}
	
	// MAKE AJAX CALL
	
	var oAjax = new AjaxWrapper;
	
	var sUrl = "/updateHandler.php?updateHandler=updateCheque";
	
	sUrl = sUrl + "&bankAccountId=" + iBankAccountId;
	
	sUrl = sUrl + "&chequeNumber=" + iChequeRef;
	
	sUrl = sUrl + "&supplier=" + iPayee;
	
	sUrl = sUrl + "&invoiceid=" + iInvoiceId;
	
	sUrl = sUrl + "&paymentDate=" + sPaymentDate;
	
	sUrl = sUrl + "&paymentAmount=" + dPaymentAmount;
	
	//sUrl = sUrl + "&info=" + sInfo;
	
	sUrl = sUrl + "&sid=" + Date() + Math.random();
	
	oAjax.url = sUrl;
	
	oAjax.onSuccess = function() {
		
		var sResponseText = this.responseText;
		
		var aResponse = sResponseText.split("{}");
		
		if(aResponse[0] == 1) fnDoNav("/chequeBooks");
	};
	
	oAjax.get();
}


function showCheques(iChequeBookRef)
{
	
	var imgsrc = document.getElementById("img"+iChequeBookRef).src;
	
	imgsrc = imgsrc.toLowerCase();
	
	if(imgsrc.indexOf("plus.gif") != -1)
	{
		document.getElementById("img"+iChequeBookRef).src = "../images/minus.gif";
		
		document.getElementById("row"+iChequeBookRef).className = "sHovered";
		
		document.getElementById("chequesRow"+iChequeBookRef).style.display = "";
		
		// MAKE AJAX CALL
		
		var oAjax = new AjaxWrapper;
		
		var sUrl = "/selectHandler.php?selectHandler=showCheques";
		
		sUrl = sUrl + "&iChequeBookRef=" + iChequeBookRef;
		
		sUrl = sUrl + "&sid=" + Date() + Math.random();
		
		oAjax.url = sUrl;
		
		oAjax.onSuccess = function() {
			
			var sResponseText = this.responseText;
			
			document.getElementById("cheques"+iChequeBookRef).innerHTML = sResponseText;
		};
		
		oAjax.get();
		
		showLoading("cheques"+iChequeBookRef);
	}
	
	else
	{
		document.getElementById("img"+iChequeBookRef).src = "../images/plus.gif";
		
		document.getElementById("row"+iChequeBookRef).className = "sHover";
		
		document.getElementById("chequesRow"+iChequeBookRef).style.display = "none";
	}
}


function addChequeBook()
{
	var iBankAccountId = document.getElementById("bankAccountId").value;
	
	var sChequeBookName = document.getElementById("chequeBookName").value;
	
	var iChequeNumberStart = document.getElementById("chequeNumberStart").value;
	
	var iChequeNumberEnd = document.getElementById("chequeNumberEnd").value;
	
	if(iBankAccountId == "")
	{
		fnAlert("Please select Bank Account", document.getElementById("bankAccountId"));
		return false;
	}
	
	if(sChequeBookName == "")
	{
		fnAlert("Please enter Cheque Book Name", document.getElementById("chequeBookName"));
		return false;
	}
	
	if(iChequeNumberStart == "")
	{
		fnAlert("Please enter Cheque Number Start", document.getElementById("chequeNumberStart"));
		return false;
	}
	
	if(iChequeNumberEnd == "")
	{
		fnAlert("Please enter Cheque Number End", document.getElementById("chequeNumberEnd"));
		return false;
	}
	
	// MAKE AJAX CALL
	
	var oAjax = new AjaxWrapper;
	
	var sUrl = "/saveHandler.php?saveHandler=saveChequeBook";
	
	sUrl = sUrl + "&iBankAccountId=" + iBankAccountId;
	
	sUrl = sUrl + "&sChequeBookName=" + sChequeBookName;
	
	sUrl = sUrl + "&iChequeNumberStart=" + iChequeNumberStart;
	
	sUrl = sUrl + "&iChequeNumberEnd=" + iChequeNumberEnd;
	
	sUrl = sUrl + "&sid=" + Date() + Math.random();
	
	oAjax.url = sUrl;
	
	oAjax.onSuccess = function() {
		
		var sResponseText = this.responseText;
		
		var aResponse = sResponseText.split("{}");
		
		if(aResponse[0] == 1) fnDoNav("/chequeBooks");
	};
	
	oAjax.get();
}


/******************* BANK ACCOUNTS FUNCTIONS *******************/

function loadForm_AddBankTransaction(iBankAccountId)
{
	if(document.getElementById("sheetRef").value=="" || document.getElementById("sheetRef").value=="[Add New]")
	{
		fnAlert("Please select a Sheet/Stmt !", document.getElementById("sheetRef"));
		return false;
	}
	
	clearInnerHtml(document.getElementById("addTransaction"));
	
	clearInnerHtml(document.getElementById("importTransactions"));
	
	clearInnerHtml(document.getElementById("addSheetDetails"));
	
	// MAKE AJAX CALL
	
	var oAjax = new AjaxWrapper;
	
	var sUrl = "/selectHandler.php?selectHandler=loadForm_AddBankTransaction";
	
	sUrl = sUrl + "&iBankAccountId=" + iBankAccountId;
	
	sUrl = sUrl + "&sid=" + Date() + Math.random();
	
	oAjax.url = sUrl;
	
	oAjax.onSuccess = function() {
		
		var sResponseText = this.responseText;
		
		var aResponse = sResponseText.split("{}");
		
		var sHtml = aResponse[1];
		
		loadInnerHtml(document.getElementById("addTransaction"), sHtml);
	};
	
	oAjax.get();

	showLoading("addTransaction");
}



function loadForm_AddStatementSheet(iBankAccountId)
{
	clearInnerHtml(document.getElementById("addTransaction"));
	
	clearInnerHtml(document.getElementById("importTransactions"));
	
	clearInnerHtml(document.getElementById("addSheetDetails"));
	
	// MAKE AJAX CALL
	
	var oAjax = new AjaxWrapper;
	
	var sUrl = "/selectHandler.php?selectHandler=loadForm_AddStatementSheet";
	
	sUrl = sUrl + "&iBankAccountId=" + iBankAccountId;
	
	sUrl = sUrl + "&sid=" + Date() + Math.random();
	
	oAjax.url = sUrl;
	
	oAjax.onSuccess = function() {
		
		var sResponseText = this.responseText;
		
		var aResponse = sResponseText.split("{}");
		
		var sHtml = aResponse[1];
		
		loadInnerHtml(document.getElementById("addSheetDetails"), sHtml);
	};
	
	oAjax.get();

	showLoading("addSheetDetails");
}


function loadForm_ImportStatement(iBankAccountId)
{
	clearInnerHtml(document.getElementById("addTransaction"));
	
	clearInnerHtml(document.getElementById("addSheetDetails"));
	
	clearInnerHtml(document.getElementById("importTransactions"));
	
	// MAKE AJAX CALL
	
	var oAjax = new AjaxWrapper;
	
	var sUrl = "/selectHandler.php?selectHandler=loadForm_ImportStatement";
	
	sUrl = sUrl + "&iBankAccountId=" + iBankAccountId;
	
	sUrl = sUrl + "&sid=" + Date() + Math.random();
	
	oAjax.url = sUrl;
	
	oAjax.onSuccess = function() {
		
		var sResponseText = this.responseText;
		
		var aResponse = sResponseText.split("{}");
		
		var sHtml = aResponse[1];
		
		loadInnerHtml(document.getElementById("importTransactions"), sHtml);
	};
	
	oAjax.get();

	showLoading("importTransactions");
}



function getSheetOpeningClosingBalances()
{
	var oAfterBefore = document.getElementById("iAfterBefore");
	
	var oAfterBeforeSheetRef = document.getElementById("iAfterBeforeSheet");
	
	if(oAfterBefore) var iAfterBefore = document.getElementById("iAfterBefore").value;
	
	if(oAfterBeforeSheetRef) var iAfterBeforeSheetRef = document.getElementById("iAfterBeforeSheet").value;
	
	// MAKE AJAX CALL
	
	var oAjax = new AjaxWrapper;
	
	var sUrl = "/selectHandler.php?selectHandler=selectStatementSheetDetails";
	
	sUrl = sUrl + "&iSheetRef=" + iAfterBeforeSheetRef;
	
	sUrl = sUrl + "&sid=" + Date() + Math.random();
	
	oAjax.url = sUrl;
	
	oAjax.onSuccess = function() {
		
		var sResponseText = this.responseText;
		
		var aResponse = eval(sResponseText);
		
		if(iAfterBefore == 1)
		{
			document.getElementById("opening_balance").value = aResponse[0]["closingBalance"];
			document.getElementById("opening_balance").readOnly = true;
			
			document.getElementById("closing_balance").readOnly = false;
			document.getElementById("closing_balance").value = "";
		}
		
		else if(iAfterBefore == -1)
		{
			document.getElementById("closing_balance").value = aResponse[0]["openingBalance"];
			document.getElementById("closing_balance").readOnly = true;
			
			document.getElementById("opening_balance").readOnly = false;
			document.getElementById("opening_balance").value = "";
		}
	};
	
	oAjax.get();
}



function viewStatementSheet(oSelect)
{
	var iSheetRef = oSelect.value;
	
	var iBankAccountId = document.forms["banktransaction"].editbankaccountid.value;
	
	var iExcludeReconciled = (document.getElementById("excludeReconciled").checked) ? 1 : 0;
	
	if(iSheetRef == "")
	{
		fnAlert("Please select a Sheet/Stmt !", oSelect);
		return false;
	}
	
	else if(iSheetRef == "[Add New]")
	{
		loadForm_AddStatementSheet(iBankAccountId);
	}
	
	else
	{
		// MAKE AJAX CALL
		
		var oAjax = new AjaxWrapper;
		
		var sUrl = "/selectHandler.php?selectHandler=getStatementSheet";
		
		sUrl = sUrl + "&iSheetRef=" + iSheetRef;
		
		sUrl = sUrl + "&iBankAccountId=" + iBankAccountId;
		
		sUrl = sUrl + "&iExcludeReconciled=" + iExcludeReconciled;
		
		sUrl = sUrl + "&sid=" + Date() + Math.random();
		
		oAjax.url = sUrl;
		
		oAjax.onSuccess = function() {
			
			var sResponseText = this.responseText;
			
			var aResponse = sResponseText.split("{}");
			
			document.getElementById("displaySheetDetails").innerHTML = aResponse[0];
			
			document.getElementById("displayTransactions").innerHTML = aResponse[1];
      
      sorttable.makeSortable(document.getElementById("transactionsTable"));
		};
		
		oAjax.get();
	
		showLoading("displayTransactions");
	}
}


function addStatementSheet(iBankAccountId)
{
	var sSheetNumber = document.getElementById('sheet_number').value;
	
	var dOpeningBalance = document.getElementById('opening_balance').value;
	
	var dClosingBalance = document.getElementById('closing_balance').value;
	
	var oAfterBefore = document.getElementById("iAfterBefore");
	
	var oAfterBeforeSheetRef = document.getElementById("iAfterBeforeSheet");
	
	var iAfterBefore = 0; var iAfterBeforeSheetRef = 0;
	
	if(oAfterBefore) iAfterBefore = document.getElementById("iAfterBefore").value;
	
	if(oAfterBeforeSheetRef) iAfterBeforeSheetRef = document.getElementById("iAfterBeforeSheet").value;
	
	var iExcludeReconciled = (document.getElementById("excludeReconciled").checked) ? 1 : 0;
	
	if(sSheetNumber == "")
	{
		fnAlert("Please Enter Sheet/ Stmt Number !", document.getElementById('sheet_number'));
		return false;
	}
	
	if(dOpeningBalance == "")
	{
		fnAlert("Please Enter Opening Balance !", document.getElementById('opening_balance'));
		return false;
	}
	
	if(dClosingBalance == "")
	{
		fnAlert("Please Enter Closing Balance !", document.getElementById('closing_balance'));
		return false;
	}
	
	if(oAfterBefore && iAfterBefore == "")
	{
		fnAlert("Please select After / Before !", oAfterBefore);
		return false;
	}
	
	if(oAfterBeforeSheetRef && iAfterBeforeSheetRef == "")
	{
		fnAlert("Please select Stmt / Sheet !", oAfterBeforeSheetRef);
		return false;
	}
	
	clearInputErrorHighlights();
	
	// MAKE AJAX CALL
	
	var oAjax = new AjaxWrapper;
	
	var sUrl = "/saveHandler.php?saveHandler=saveStatementSheet";
	
	sUrl = sUrl + "&iBankAccountId=" + iBankAccountId;
	
	if(oAfterBefore) sUrl = sUrl + "&iAfterBefore=" + iAfterBefore;
	
	if(oAfterBeforeSheetRef) sUrl = sUrl + "&iAfterBeforeSheet=" + iAfterBeforeSheetRef;
	
	sUrl = sUrl + "&sSheetNumber=" + sSheetNumber;
	
	sUrl = sUrl + "&dOpeningBalance=" + dOpeningBalance;
	
	sUrl = sUrl + "&dClosingBalance=" + dClosingBalance;
	
	sUrl = sUrl + "&iExcludeReconciled=" + iExcludeReconciled;
	
	sUrl = sUrl + "&sid=" + Date() + Math.random();
	
	oAjax.url = sUrl;
	
	oAjax.onSuccess = function() {
		
		var sResponseText = this.responseText;
		
		var aResponse = sResponseText.split("{}");
		
		document.getElementById("displaySheetDetails").innerHTML = aResponse[1];
		
		document.getElementById("displayTransactions").innerHTML = aResponse[2];

	};
	
	oAjax.get();
		
	clearInnerHtml(document.getElementById("addSheetDetails"));
	
	showLoading("displayTransactions");
	
	
}


function changeReconcileRecordType(oElement, iValue)
{
	var iElementValue = (iValue == 1 || iValue == 2) ? iValue : oElement.value ;
	
	if(iElementValue == "")
	{
		document.getElementById('spanToClient').style.display = "";
		document.getElementById('spanToInvoice').style.display = "";
		document.getElementById('spanToTransaction').style.display = "";
		document.getElementById('toClient').checked = false;
		document.getElementById('toInvoice').checked = false;
		document.getElementById('toTransaction').checked = false;
		document.getElementById('selectClient').style.display = "none";
		document.getElementById('selectInvoice').style.display = "none";
		document.getElementById('selectTransaction').style.display = "none";
	}
	
	else if(iElementValue == 1)
	{
		document.getElementById('spanToClient').style.display = "";
		document.getElementById('spanToInvoice').style.display = "";
		document.getElementById('spanToTransaction').style.display = "none";
		document.getElementById('selectTransaction').style.display = "none";
	}
	
	else if(iElementValue == 2)
	{
		document.getElementById('spanToClient').style.display = "none";
		document.getElementById('spanToInvoice').style.display = "none";
		document.getElementById('selectClient').style.display = "none";
		document.getElementById('selectInvoice').style.display = "none";
		document.getElementById('spanToTransaction').style.display = "";
		document.getElementById('toTransaction').checked = true;
		showHideElementByCheckBoxId(document.getElementById('toTransaction'), 'selectTransaction');
	}
	
	if(iValue == 1 || iValue == 2)
	{
		for(var i=0;i<oElement.options.length;i++)
		{
			if(oElement.options[i].value == iValue) oElement.options[i].selected = true;
		}
	}
}

function addClientToReconcile(iInvoiceType, oElement)
{
	if(iInvoiceType == 1)
	{
		var oCustomers = document.getElementById("customersList");
		
		var oSelectedCustomers = document.getElementById("selectedCustomersList");
		
		if(oCustomers.options.length)
		{
			appendOptionLast(oSelectedCustomers, oCustomers.options[oCustomers.selectedIndex].text, oCustomers.value);
			
			removeSelectedOption(oCustomers);
		}
	}
	
	else if(iInvoiceType == 2)
	{
		var oSuppliers = document.getElementById("suppliersList");
		
		var oSelectedSuppliers = document.getElementById("selectedSuppliersList");
		
		if(oSuppliers.options.length)
		{
			appendOptionLast(oSelectedSuppliers, oSuppliers.options[oSuppliers.selectedIndex].text, oSuppliers.value);
			
			removeSelectedOption(oSuppliers);
		}
	}
	
}

function removeClientToReconcile(iInvoiceType, oElement)
{
	if(iInvoiceType == 1)
	{
		var oCustomers = document.getElementById("customersList");
		
		var oSelectedCustomers = document.getElementById("selectedCustomersList");
		
		if(oSelectedCustomers.options.length)
		{
			appendOptionLast(oCustomers, oSelectedCustomers.options[oSelectedCustomers.selectedIndex].text, oSelectedCustomers.value);
			
			removeSelectedOption(oSelectedCustomers);
		}
	}
	
	else if(iInvoiceType == 2)
	{
		var oSuppliers = document.getElementById("suppliersList");
		
		var oSelectedSuppliers = document.getElementById("selectedSuppliersList");
		
		if(oSelectedSuppliers.options.length)
		{
			appendOptionLast(oSuppliers, oSelectedSuppliers.options[oSelectedSuppliers.selectedIndex].text, oSelectedSuppliers.value);
			
			removeSelectedOption(oSelectedSuppliers);
		}
	}
}

function showHideRecTransactions(iBankLedgerRef, oImage)
{
	var sTargetDivId =  "transactionsWrapper_" + iBankLedgerRef;
  
  var sTargetTr = "transactionsRow_" + iBankLedgerRef;
	
	if(isClassOfElement(document.getElementById(sTargetTr), "gGeneralHidden"))
	{
    oImage.src = "../images/minus.gif";
    
		// MAKE AJAX CALL
		
		var oAjax = new AjaxWrapper;
		
		var sUrl = "/selectHandler.php?selectHandler=showRecTransactions";
		
		sUrl = sUrl + "&iBankLedgerRef=" + iBankLedgerRef;
		
		sUrl = sUrl + "&sid=" + Date() + Math.random();
		
		oAjax.url = sUrl;
		
		oAjax.onSuccess = function() {
			
			var sResponse = this.responseText;
			
			var aResponse = new Array();
			
			aResponse = sResponse.split("{}");
			
			loadInnerHtml(document.getElementById(sTargetDivId), aResponse[1]);
		};
		
		oAjax.get();
    
    stripClass(document.getElementById(sTargetTr), "gGeneralHidden");
		
		showLoading(sTargetDivId);
	}
	
	else
	{
    oImage.src = "../images/plus.gif";
    
		clearInnerHtml(document.getElementById(sTargetDivId));
    
    addClass(document.getElementById(sTargetTr), "gGeneralHidden");
	}
}


function unreconcileTransaction(iBankLedgerRef)
{
  if(confirm("Are you sure you want to unreconcile this transaction ?"))
  {
  	var sUrl = "/updateHandler.php?updateHandler=unreconcileTransaction";
  	
  	sUrl = sUrl + "&iBankLedgerRef=" + iBankLedgerRef;
  	
  	sUrl = sUrl + "&sid=" + Date() + Math.random();
  	
  	
  	// MAKE AJAX CALL
  	
  	var oAjax = new AjaxWrapper;
  	
  	oAjax.url = sUrl;
  	
  	oAjax.onSuccess = function() {
  		
  		var sResponseText = this.responseText;
  		
  		var aResponse = sResponseText.split("{}");
      
  		document.getElementById(aResponse[0]).innerHTML = aResponse[1];
  		
  		stripClass(document.getElementById("ledgerRow_" + aResponse[0]), "isHidden");
  		
  		document.getElementById("unrecAmount_" + aResponse[0]).innerHTML = "";
      
      document.getElementById("doUnrec_" + aResponse[0]).innerHTML = "";
      
      document.getElementById("recTransactions_" + aResponse[0]).innerHTML = "";
  		
  		addClass(document.getElementById("transactionsRow_" + aResponse[0]), "gGeneralHidden");
  
  	};
  	
  	oAjax.get();
  }
  
} // END OF unreconcileTransaction


function reconcileTransaction(iInvoiceType, iBankLedgerRef, iBankAccountId)
{
	var sUrl = "/updateHandler.php?updateHandler=reconcileTransaction";
	
	sUrl = sUrl + "&iInvoiceType=" + iInvoiceType;
	
	sUrl = sUrl + "&iBankLedgerRef=" + iBankLedgerRef;
	
	sUrl = sUrl + "&iBankAccountId=" + iBankAccountId;
	
	sUrl = sUrl + "&iRecordType=1";
	
	sUrl = sUrl + "&sid=" + Date() + Math.random();
	
	//
	
	var iChequeRef = (document.getElementById("chequeNumber")) ? document.getElementById("chequeNumber").value : 0;
	
	var aSelectedTransactions = new Array;
	
	var aSelectedInvoices = new Array;
	
	if(iInvoiceType == 1)
	{
		if(document.getElementById("searchsales").innerHTML.trim() == "")
		{
			fnAlert("Please Search invoices below and select the invoices !", 0);
			return false;
		}
		
		var oInvoices = document.listinvoices["aSelectInvoice[]"];
		
		var oTransactions = document.listinvoices["aSelectTransaction[]"];
	}
	
	else if(iInvoiceType == 2)
	{
		if(document.getElementById("searchpurchases").innerHTML.trim() == "")
		{
			fnAlert("Please Search invoices below and select the invoices !", 0);
			return false;
		}
		
		var oInvoices = document.listpurchaseinvoices["aSelectInvoice[]"];
		
		var oTransactions = document.listpurchaseinvoices["aSelectTransaction[]"];
	}
	
	if(iChequeRef)
	{
		sUrl = sUrl + "&iChequeRef=" + iChequeRef;
		
		sUrl = sUrl + "&paymentDate=" + document.writeCheque.paymentDate.value;
  }
	
	
	if(oInvoices)
	{
		if(oInvoices.length) // MULTIPLE INVOICES
		{
			var iListLength = oInvoices.length;
			
			for(var i=0;i<iListLength;i++)
			{
				if(oInvoices[i].checked)
				{
					aSelectedInvoices[aSelectedInvoices.length] = oInvoices[i].id;
				}
			}
		}
		
		else // IF THERE'S ONLY ONE INVOICE
		{
			if(oInvoices.checked)
			{
				aSelectedInvoices[0] = oInvoices.id;
			}
		}
	}
	
	//
	
	if(oTransactions)
	{
		if(oTransactions.length) // MULTIPLE TRANSACTIONS
		{
			var iListLength = oTransactions.length;
			
			for(var i=0;i<iListLength;i++)
			{
				if(oTransactions[i].checked)
				{
					aSelectedTransactions[aSelectedTransactions.length] = oTransactions[i].id;
				}
			}
		}
		
		else // IF THERE'S ONLY ONE TRANSACTION
		{
			if(oTransactions.checked)
			{
				aSelectedTransactions[0] = oTransactions.id;
			}
		}
	}
	
	if(aSelectedInvoices.length == 0 && aSelectedTransactions.length == 0 && iChequeRef == 0)
	{
		fnAlert("Please Select atleast one invoice / transaction / cheque !", 0);
		return false;
	}
	
	sUrl = sUrl + "&aSelectedInvoices=" + aSelectedInvoices;
	
	sUrl = sUrl + "&aSelectedTransactions=" + aSelectedTransactions;
	
	
	// MAKE AJAX CALL
	
	var oAjax = new AjaxWrapper;
	
	oAjax.url = sUrl;
	
	oAjax.onSuccess = function() {
		
		var sResponseText = this.responseText;
		
		var aResponse = sResponseText.split("{}");
		
		if(aResponse[1] == 1)
		{       /*
			window.opener.document.getElementById(aResponse[0]).innerHTML = "<img class='reconciledIcon' src='/images/valid.png' />";
			
			window.opener.document.getElementById("unrecAmount_" + aResponse[0]).innerHTML = "";
			
			addClass(window.opener.document.getElementById("ledgerRow_" + aResponse[0]), "isHidden");
                        */
                        window.location.href = '/bankLedger/bankStatement&editbankaccountid='+iBankAccountId+'&sStatusMessage=Transaction sucessfully reconciled.';
		}
		
		if(aResponse[2])
		{
			//window.opener.document.getElementById("unrecAmount_" + aResponse[0]).innerHTML = aResponse[2];
                        window.location.href = '/bankLedger/bankStatement&editbankaccountid='+iBankAccountId+'&sStatusMessage=Transaction sucessfully unreconciled.';
		}
    /*
    window.opener.document.getElementById("doUnrec_" + aResponse[0]).innerHTML = "<img onclick='unreconcileTransaction("+aResponse[0]+");' class='reconciledIcon pointercursor' src='../images/stop-sign.png' />";
		
		var dPreviousUnRecAmount = 
		window.opener.document.getElementById("view_unreconciled_amount").value;
		
		var unReconciledAmount = parseFloat(dPreviousUnRecAmount) - parseFloat(aResponse[3]);
		
		window.opener.document.getElementById("view_unreconciled_amount").value = parseFloat(unReconciledAmount).toFixed(2);
    
    window.opener.document.getElementById("recTransactions_" + aResponse[0]).innerHTML = aResponse[4];
    
    addClass(window.opener.document.getElementById("recTransactions_" + aResponse[0]), "pointercursor");
		
		closePopup();*/

	};
	
	oAjax.get();
	
} // END OF reconcileTransaction



function reconcileTransaction_OLD(iInvoiceType, iBankLedgerRef, iBankAccountId)
{
	var oRecordType = document.getElementById("recordType");
	
	if(oRecordType.value == "")
	{
		fnAlert("Please Select if Payment is Already Recorded !", oRecordType);
		return false;
	}
		
	var sUrl = "/updateHandler.php?updateHandler=reconcileTransaction";
	
	sUrl = sUrl + "&iInvoiceType=" + iInvoiceType;
	
	sUrl = sUrl + "&iBankLedgerRef=" + iBankLedgerRef;
	
	sUrl = sUrl + "&iBankAccountId=" + iBankAccountId;
	
	sUrl = sUrl + "&iRecordType=" + oRecordType.value;
	
	sUrl = sUrl + "&sid=" + Date() + Math.random();
	
	if(oRecordType.value == 1)
	{
	
		if(!document.getElementById("toClient").checked && !document.getElementById("toInvoice").checked)
		{
			fnAlert("Please Select Invoice / Client !", 0);
			return false;
		}
		
		
		if(document.getElementById("toClient").checked)
		{
			var aSelectedClients = new Array;
			
			if(iInvoiceType == 1)
			{
				var oClients = document.getElementById("selectedCustomersList");
				
				if(oClients.options.length == 0)
				{
					fnAlert("Please Select atleast one Customer !", 0);
					return false;
				}
			}
			
			else if(iInvoiceType == 2)
			{
				var oClients = document.getElementById("selectedSuppliersList");
				
				if(oClients.options.length == 0)
				{
					fnAlert("Please Select atleast one Supplier !", 0);
					return false;
				}
			}
			
			for(var i=0;i<oClients.options.length;i++)
			{
				aSelectedClients[aSelectedClients.length] = oClients.options[i].value;
			}
			
			sUrl = sUrl + "&aSelectedClients=" + aSelectedClients;
		}
		
		else if(document.getElementById("toInvoice").checked)
		{
			var aSelectedInvoices = new Array;
			
			if(iInvoiceType == 1)
			{
				if(document.getElementById("searchsales").innerHTML.trim() == "")
				{
					fnAlert("Please Search invoices below and select the invoices !", 0);
					return false;
				}
				
				var oInvoices = document.listinvoices["aSelectInvoice[]"];
			}
			
			else if(iInvoiceType == 2)
			{
				if(document.getElementById("searchpurchases").innerHTML.trim() == "")
				{
					fnAlert("Please Search invoices below and select the invoices !", 0);
					return false;
				}
				
				var oInvoices = document.listpurchaseinvoices["aSelectInvoice[]"];
			}
			
			if(oInvoices.length)
			{
				var iListLength = oInvoices.length;
				
				for(var i=0;i<iListLength;i++)
				{
					if(oInvoices[i].checked)
					{
						aSelectedInvoices[aSelectedInvoices.length] = oInvoices[i].id;
					}
				}
			}
			
			else
			{
				if(oInvoices.checked)
				{
					aSelectedInvoices[0] = oInvoices.id;
				}
			}
			
			
			if(aSelectedInvoices.length == 0)
			{
				fnAlert("Please Select atleast one invoice !", 0);
				return false;
			}
			
			sUrl = sUrl + "&aSelectedInvoices=" + aSelectedInvoices;
		}
	}
	
	else if(oRecordType.value == 2)
	{
		if(document.getElementById("toTransaction").checked)
		{
			var aSelectedTransactions = new Array;
				
			var oTransactions = document.listTransactions["aSelectTransaction[]"];
			
			if(oTransactions.length)
			{
				var iListLength = oTransactions.length;
				
				for(var i=0;i<iListLength;i++)
				{
					if(oTransactions[i].checked)
					{
						aSelectedTransactions[aSelectedTransactions.length] = oTransactions[i].id;
					}
				}
			}
			
			else
			{
				if(oTransactions.checked)
				{
					aSelectedTransactions[0] = oTransactions.id;
				}
			}
			
			
			if(aSelectedTransactions.length == 0)
			{
				fnAlert("Please Select atleast one transaction !", 0);
				return false;
			}
			
			sUrl = sUrl + "&aSelectedTransactions=" + aSelectedTransactions;
		}
	}
	
	
	// MAKE AJAX CALL
	
	var oAjax = new AjaxWrapper;
	
	oAjax.url = sUrl;
	
	oAjax.onSuccess = function() {
		
		var sResponseText = this.responseText;
		
		var aResponse = sResponseText.split("{}");
		
		if(aResponse[0] == 1)
		{
			window.opener.document.getElementById(aResponse[1]).innerHTML = "<img class='reconciledIcon' src='/images/valid.png' />";
		}
		
		if(aResponse[2])
		{
			window.opener.document.getElementById("unrecAmount_" + aResponse[1]).innerHTML = aResponse[2];
		}
		
		closePopup();

	};
	
	oAjax.get();
} // END OF reconcileTransaction


function showHideReconcileDetails(iShow)
{
	if(iShow)
	{
		// GREY OUT THE SCREEN
		
		grayOut(true);
		
		// SHOW SEARCH FORM
		
		fnShowHideByElementId('reconcileTransaction', 1);
	}
	
	else
	{
		// SHOW THE SCREEN
		
		grayOut(false);
		
		// HIDE SEARCH FORM
		
		fnShowHideByElementId('reconcileTransaction', 0);
	}
}



function fnTransferFunds()
{
	var accountbalance = document.bankaccounts.accountbalance.value;
	
	if(document.getElementById("bankaccountid1")) var frombankaccount = document.getElementById("bankaccountid1").value;
	
	var fromfundaccount = document.getElementById("fundaccount1").value;
	
	var tofundaccount = document.getElementById("fundaccount2").value;
	
	if(accountbalance == "")
	{
		alert("Please enter Amount !");
		document.bankaccounts.accountbalance.focus();
		return false;
	}
	
	if(frombankaccount && frombankaccount == "")
	{
		alert("Please select From Account !");
		document.bankaccounts.frombankaccount.focus();
		return false;
	}
	
	if(fromfundaccount == "")
	{
		alert("Please select From Account !");
		document.bankaccounts.fromfundaccount.focus();
		return false;
	}
	
	if(tofundaccount == "")
	{
		alert("Please select To Account !");
		document.bankaccounts.tofundaccount.focus();
		return false;
	}
	
	if(fromfundaccount == tofundaccount)
	{
		document.getElementById("errormessage").innerHTML = "Transfering Amount From and To same Account !!!";
		return false;
	}
	
	document.bankaccounts.action = "/updateHandler.php";
	document.bankaccounts.updateHandler.value = "transferFunds";
	document.bankaccounts.method = "POST";
	document.bankaccounts.submit();
}


function fnLoadOtherFundAccounts(sVal)
{
	sVal = (sVal) ? sVal : "" ;
	
	if(document.getElementById("bankaccountid1")) var bankaccountid = document.getElementById("bankaccountid1").value;
	
	var sSelectedFund = document.getElementById("fundaccount1").value;
	
	var accountbalance = document.getElementById("accountbalance").value;

	if(bankaccountid != "")
	{
		// MAKE AJAX CALL
		
		var oAjax = new AjaxWrapper;
		
		var sUrl = "/selectHandler.php?selectHandler=loadOtherFundAccounts";
		
		if(bankaccountid) sUrl = sUrl + "&bankaccountid=" + bankaccountid;
		
		sUrl = sUrl + "&accountbalance=" + accountbalance;
		
		sUrl = sUrl + "&selectedfund=" + sSelectedFund;
		
		sUrl = sUrl + "&sid=" + Date() + Math.random();
		
		oAjax.url = sUrl;
		
		oAjax.onSuccess = function() {
			
			var sResponseText = this.responseText;
			
			document.getElementById("fundaccount"+sVal).innerHTML = sResponseText;
			
			if(sVal == 1)
			{
				document.getElementById("fundaccount2").innerHTML = "<option value=''>--Select--</option>";
			}

		};
		
		oAjax.get();
		
		document.getElementById("fundaccount"+sVal).innerHTML = "<option value=''>Loading..</option>";
		
		if(sVal == 1)
		{
			document.getElementById("fundaccount2").innerHTML = "<option value=''>--Select--</option>";
		}
	}
}

function fnLoadFundAccounts(sVal)
{
	sVal = (sVal)?sVal:"";
	var bankaccountid = document.getElementById("bankaccountid"+sVal).value;
	var accountbalance = document.getElementById("accountbalance").value;

	if(bankaccountid != "")
	{
		// MAKE AJAX CALL
		
		var oAjax = new AjaxWrapper;
		
		var sUrl = "/selectHandler.php?selectHandler=loadFundAccounts";
		
		if(bankaccountid) sUrl = sUrl + "&bankaccountid=" + bankaccountid;
		
		sUrl = sUrl + "&accountbalance=" + accountbalance;
		
		sUrl = sUrl + "&sid=" + Date() + Math.random();
		
		oAjax.url = sUrl;
		
		oAjax.onSuccess = function() {
			
			var sResponseText = this.responseText;
			
			document.getElementById("fundaccount"+sVal).innerHTML = sResponseText;
			
			if(sVal == 1)
			{
				document.getElementById("fundaccount2").innerHTML = "<option value=''>--Select--</option>";
			}

		};
		
		oAjax.get();
		
		document.getElementById("fundaccount"+sVal).innerHTML = "<option value=''>Loading..</option>";
		
		if(sVal == 1)
		{
			document.getElementById("fundaccount2").innerHTML = "<option value=''>--Select--</option>";
		}
	}
}


function fnShowFundAccounts(bankaccountid,sWhat)
{
	var imgsrc = document.getElementById("img"+bankaccountid).src;
	
	imgsrc = imgsrc.toLowerCase();
	
	if(imgsrc.indexOf("plus.gif") != -1)
	{
		document.getElementById("img"+bankaccountid).src = "../images/minus.gif";
		
		document.getElementById("row"+bankaccountid).className = "sHovered";
		
		document.getElementById(bankaccountid).style.display = "";
		
	
		// MAKE AJAX CALL
		
		var oAjax = new AjaxWrapper;
		
		var sUrl = "/selectHandler.php?selectHandler=getFundAccounts";
		
		sUrl = sUrl + "&bankaccountid=" + bankaccountid;
		
		sUrl = sUrl + "&sWhat=" + sWhat;
		
		sUrl = sUrl + "&sid=" + Date() + Math.random();
		
		oAjax.url = sUrl;
		
		oAjax.onSuccess = function() {
			
			var sResponseText = this.responseText;
			
			document.getElementById(bankaccountid).innerHTML = sResponseText;

		};
		
		oAjax.get();
		
		showLoading(bankaccountid);
	}
	else
	{
		document.getElementById("img"+bankaccountid).src = "../images/plus.gif";
		
		document.getElementById("row"+bankaccountid).className = "sHover";
		
		document.getElementById(bankaccountid).style.display = "none";
	}
}


function fnDeleteFundAccount(fundaccountid)
{
	if(confirm("Delete Fund Account ?"))
	{
		document.bankaccounts.action = "/deleteHandler.php";
		document.bankaccounts.deleteHandler.value = "deleteFundAccount";
		document.bankaccounts.editfundaccountid.value = fundaccountid;
		document.bankaccounts.method = "POST";
		document.bankaccounts.submit();
	}
}

function fnUpdateFundAccount()
{
	if(document.editbankaccount.fundname.value == "")
	{
		alert("Please enter Fund Account Name !");
		document.editbankaccount.fundname.focus();
		return false;
	}
	else if(document.editbankaccount.bankaccountid && document.editbankaccount.bankaccountid.value == "")
	{
		alert("Please select Associated Bank Account !");
		document.editbankaccount.bankaccountid.focus();
		return false;
	}
	document.editbankaccount.action = "/updateHandler.php";
	document.editbankaccount.updateHandler.value = "updateFundAccount";
	document.editbankaccount.method = "POST";
	document.editbankaccount.submit();
}

function fnAddFundAccount()
{
	if(document.addbankaccount.fundname.value == "")
	{
		alert("Please enter Fund Account Name !");
		document.addbankaccount.fundname.focus();
		return false;
	}
	else if(document.addbankaccount.accountbalance.value == "")
	{
		alert("Please enter Account Balance !");
		document.addbankaccount.accountbalance.focus();
		return false;
	}
	else if(document.addbankaccount.bankaccountid.value == "")
	{
		alert("Please select Associated Bank Account !");
		document.addbankaccount.bankaccountid.focus();
		return false;
	}
	else if(document.addbankaccount.fundaccount.value == "")
	{
		alert("Please select Load Balance From !");
		document.addbankaccount.fundaccount.focus();
		return false;
	}
	document.addbankaccount.action = "/saveHandler.php";
	document.addbankaccount.saveHandler.value = "saveFundAccount";
	document.addbankaccount.method = "POST";
	document.addbankaccount.submit();
}

function fnEditFundAccount(fundaccountid)
{
	document.bankaccounts.action = "/bankAccounts/editFundAccount";
	document.bankaccounts.editfundaccountid.value = fundaccountid;
	document.bankaccounts.method = "POST";
	document.bankaccounts.submit();
}

function fnAddBankAccount()
{
	if(document.addbankaccount.accountname.value == "")
	{
		fnAlert("Please enter Account Name !", document.addbankaccount.accountname);
		return false;
	}
	
	else if(document.addbankaccount.accounttype.value == "")
	{
		fnAlert("Please select Account Type !", document.addbankaccount.accounttype);
		return false;
	}
	
	else if(document.addbankaccount.accountnumber.value == "")
	{
		fnAlert("Please enter Account Number !", document.addbankaccount.accountnumber);
		return false;
	}
	
	else if(document.addbankaccount.sortcode.value == "")
	{
		fnAlert("Please enter Sort Code !", document.addbankaccount.sortcode);
		return false;
	}
	
	else if(document.addbankaccount.accountbalance.value == "")
	{
		fnAlert("Please enter Starting Balance !", document.addbankaccount.accountbalance);
		return false;
	}
	
	else if(document.addbankaccount.reconciledate.value == "")
	{
		fnAlert("Please enter Reconcile Date !", document.addbankaccount.reconciledate);
		return false;
	}
	
	document.addbankaccount.action = "/saveHandler.php";
	document.addbankaccount.saveHandler.value = "saveBankAccount";
	document.addbankaccount.method = "POST";
	document.addbankaccount.submit();
}

function fnEditBankAccount(bankaccountid)
{
	document.bankaccounts.action = "/bankAccounts/editBankAccount";
	document.bankaccounts.editbankaccountid.value = bankaccountid;
	document.bankaccounts.method = "POST";
	document.bankaccounts.submit();
}

function fnAccountTransactions(iBankAccountId, iIsBankLedger)
{
        var thisPage = '';
        if (!iIsBankLedger) thisPage = 'bankAccounts';
        else thisPage = 'bankLedger';
	var sLink = thisPage+"/bankStatement&editbankaccountid=" + iBankAccountId;
	
	fnDoNav(sLink);
}

function showBankStatement(iBankAccountId, iFundAccountId, iPage, iGetDatesFromForm, iIsBankLedger, isFromReconReport)
{
	if(iGetDatesFromForm)
	{
		sStartDate = document.getElementById("fromdate").value;
		
		sEndDate = document.getElementById("todate").value;
	}
	
	var sStartDate = (sStartDate) ? sStartDate : "";
	
	var sEndDate = (sEndDate) ? sEndDate : "";
	
	iPage = (iPage <= 0) ? iPage : 1;
	
	// MAKE AJAX CALL
	
	var oAjax = new AjaxWrapper;
	
	var sUrl = "/selectHandler.php?selectHandler=getBankStatement";
	
	sUrl = sUrl + "&sStartDate=" + sStartDate;
	
	sUrl = sUrl + "&sEndDate=" + sEndDate;
	
	sUrl = sUrl + "&iBankAccountId=" + iBankAccountId;
	
	sUrl = sUrl + "&iFundAccountId=" + iFundAccountId;
	
	sUrl = sUrl + "&iPage=" + iPage;
	
	sUrl = sUrl + "&iIsBankLedger=" + iIsBankLedger;
	
	if(isFromReconReport) sUrl = sUrl + "&isFromReconReport=" + isFromReconReport;
	
	sUrl = sUrl + "&sid=" + Date() + Math.random();
	
	oAjax.url = sUrl;
	
	oAjax.onSuccess = function() {
		
		var sResponseText = this.responseText;
		
		var aResponseText = sResponseText.split("{}");

		document.getElementById("displayTransactions").innerHTML = aResponseText[0];

		document.getElementById("displayMonth").innerHTML = aResponseText[1];

		document.getElementById("fromdate").value = aResponseText[2];

		document.getElementById("todate").value = aResponseText[3];
		
		sorttable.makeSortable(document.getElementById("transactionsTable"));

	};
	
	oAjax.get();
	
	showLoading("displayTransactions");
}

function fnShowHideAllocation(sValue,sId)
{
	document.getElementById("allocationYes"+sId).style.display="none";
	document.getElementById("allocationNo"+sId).style.display="none";
	document.getElementById("allocation"+sValue+sId).style.display="";
}

function fnShowHideCategoryAlloc(sValue,sId)
{
	document.getElementById("categoryAlloc"+sId).style.display=(sValue == "Yes")?"block":"none";
}

function importBankTransactions()
{
	var filepath = document.importCSV.filepath.value;
	
	var oAfterBefore = document.getElementById("iAfterBefore");
	
	var oAfterBeforeSheetRef = document.getElementById("iAfterBeforeSheet");
	
	var iAfterBefore = 0; var iAfterBeforeSheetRef = 0;
	
	if(oAfterBefore) iAfterBefore = document.getElementById("iAfterBefore").value;
	
	if(oAfterBeforeSheetRef) iAfterBeforeSheetRef = document.getElementById("iAfterBeforeSheet").value;
	
	if(oAfterBefore && iAfterBefore == "")
	{
		fnAlert("Please select After / Before !", oAfterBefore);
		return false;
	}
	
	if(oAfterBeforeSheetRef && iAfterBeforeSheetRef == "")
	{
		fnAlert("Please select Stmt / Sheet !", oAfterBeforeSheetRef);
		return false;
	}
	
	if(filepath == "")
	{
		alert("Please Select a CSV or QIF File to Import!");
		return false;
	}
	
	else if(filepath != "")
	{
		var filenameLength = filepath.length;
		
		var uploadfileExt = filepath.substring(filenameLength-4);
		
		uploadfileExt = uploadfileExt.toLowerCase();
		
		if(uploadfileExt != ".csv"  && uploadfileExt != ".qif")
		{
			alert("Please Select a CSV or QIF File to Import!");
			return false;
		}
		
		document.importCSV.action = "/saveHandler.php";
		
		document.importCSV.saveHandler.value = (uploadfileExt==".csv" || uploadfileExt==".CSV")?"importBankTransactionsFromCSV":"importBankTransactionsFromQIF";
		
		document.importCSV.method = "POST";
		
		document.importCSV.submit();
	}
}

function fnChangeCategoryList(oElement)
{
	if(oElement.value == "PaidIn")
	{
		document.getElementById("categoryIn").style.display = "";
		document.getElementById("categoryOut").style.display = "none";
	}
	else
	{
		document.getElementById("categoryIn").style.display = "none";
		document.getElementById("categoryOut").style.display = "";
	}
}

function changeTransactionPayerPayeeList(oElement)
{
	if(oElement.value == "PaidIn")
	{
		document.getElementById("salesTransactions").style.display = "";
		document.getElementById("purchaseTransactions").style.display = "none";
	}
	else if(oElement.value == "PaidOut")
	{
		document.getElementById("salesTransactions").style.display = "none";
		document.getElementById("purchaseTransactions").style.display = "";
	}
}

function fnAddTransaction()
{
	var iBankAccountId = document.bankstatement.bankaccount.value;
	
	var sPaymentDate = document.bankstatement.paymentdate.value;
	
	var sPaymentMethod = document.bankstatement.paymentmethod.value;
	
	var iPaidType = document.bankstatement.paidtype.value;
	
	var dAmountPayed = document.bankstatement.amountpayed.value;
	
	var sPaymentReference = document.bankstatement.paymentReference.value;
	
	var sPaymentDetails = document.bankstatement.paymentDetails.value;
	
	var iExcludeReconciled = (document.getElementById("excludeReconciled").checked) ? 1 : 0;
	
	// VALIDATION
	
	if(sPaymentDate == "")
	{
		fnAlert("Please enter Date !", document.bankstatement.paymentdate);
		return false;
	}
	
	if(dAmountPayed == "")
	{
		fnAlert("Please enter Amount !", document.bankstatement.amountpayed);
		return false;
	}
	
	if(sPaymentDetails == "")
	{
		fnAlert("Please enter Payment Details !", document.bankstatement.paymentDetails);
		return false;
	}

	// MAKE AJAX CALL
	
	var oAjax = new AjaxWrapper;
	
	var sUrl = "/saveHandler.php?saveHandler=addTransaction";
	
	sUrl = sUrl + "&iBankAccountId=" + iBankAccountId;
	
	sUrl = sUrl + "&iSheetRef=" + document.getElementById('sheetRef').value;
	
	sUrl = sUrl + "&sPaymentDate=" + sPaymentDate;
	
	sUrl = sUrl + "&sPaymentMethod=" + sPaymentMethod;
	
	sUrl = sUrl + "&iPaidType=" + iPaidType;
	
	sUrl = sUrl + "&dAmountPayed=" + dAmountPayed;
	
	sUrl = sUrl + "&sPaymentReference=" + sPaymentReference;
	
	sUrl = sUrl + "&sPaymentDetails=" + sPaymentDetails;
	
	sUrl = sUrl + "&iExcludeReconciled=" + iExcludeReconciled;
	
	sUrl = sUrl + "&sid=" + Date() + Math.random();
	
	oAjax.url = sUrl;
	
	oAjax.onSuccess = function() {
		
		var sResponseText = this.responseText;
		
		var aResponse = sResponseText.split("{}");
		
		document.getElementById("displaySheetDetails").innerHTML = aResponse[0];
		
		document.getElementById("displayTransactions").innerHTML = aResponse[1];

	};
	
	oAjax.get();
	
	// RESET FORM ELEMENTS
	
	document.forms["bankstatement"].reset();
	
	// CLEAR CSS ERROR HIGHTLGHTS
	
	clearInputErrorHighlights();
	
	// HIDE FORM
	
	clearInnerHtml(document.getElementById("addTransaction"));
	
	showLoading("displayTransactions");
}

function fnAllocateTransaction(sSelect,sChange)
{
	var sSelectIndex = sSelect.selectedIndex;
	
	if(sSelectIndex != 0)
	{
		var sLabel = sSelect.options[sSelectIndex].parentNode.label;
		document.banktransaction.action = "/saveHandler.php";
		document.banktransaction.saveHandler.value = "allocateTransaction";
		document.banktransaction.invoiceNumber.value = sSelect.options[sSelectIndex].value;
		document.banktransaction.invoiceNumberType.value = sLabel;
		document.banktransaction.transactionId.value = sSelect.id;
		document.banktransaction.amountValue.value = sSelect.name;
		document.banktransaction.sAllocChange.value = sChange;
		document.banktransaction.method = "POST";
		document.banktransaction.submit();
	}
}

function fnAllocateCategory(sSelect)
{
	var sSelectIndex = sSelect.selectedIndex;
	if(sSelectIndex != 0)
	{
		//var sLabel = sSelect.options[sSelectIndex].parentNode.label;
		document.banktransaction.action = "/saveHandler.php";
		document.banktransaction.sCategoryAlloc.value = sSelect.options[sSelectIndex].value;
		//document.banktransaction.invoiceNumberType.value = sLabel;
		document.banktransaction.transactionId.value = sSelect.id;
		//document.banktransaction.amountValue.value = sSelect.name;
		document.banktransaction.saveHandler.value = "allocateCategory";
		document.banktransaction.method = "POST";
		document.banktransaction.submit();
	}
}

function fnGetAccountTransactions(bankaccountid,sType)
{
	var fromdate = document.banktransaction.fromdate.value;
	var todate = document.banktransaction.todate.value;
	if (fromdate == "")
	{
		alert("Please enter From Date !");
		document.banktransaction.fromdate.focus();
		return false;
	}
	else if (todate == "")
	{
		alert("Please enter To Date !");
		document.banktransaction.todate.focus();
		return false;
	}
	document.banktransaction.action = "/bankStatement";
	document.banktransaction.sType.value = sType;
	document.banktransaction.editbankaccountid.value = bankaccountid;
	document.banktransaction.method = "POST";
	document.banktransaction.submit();
}

function fnDeleteBankAccount(bankaccountid)
{
	if(confirm("Delete Bank Account ? \n This will also delete all the fund accounts for this bank account"))
	{
		document.editbankaccount.action = "/deleteHandler.php";
		document.editbankaccount.deleteHandler.value = "deleteBankAccount";
		document.editbankaccount.deletebankaccountid.value = bankaccountid;
		document.editbankaccount.method = "POST";
		document.editbankaccount.submit();
	}
}

function fnUpdateBankAccount(bankaccountid)
{
	if(document.editbankaccount.accountname.value == "")
	{
		fnAlert("Please enter Account Name !", document.editbankaccount.accountname);
		return false;
	}
	
	else if(document.editbankaccount.accountnumber.value == "")
	{
		fnAlert("Please enter Account Number !", document.editbankaccount.accountnumber);
		return false;
	}
	
	else if(document.editbankaccount.sortcode.value == "")
	{
		fnAlert("Please enter Sort Code !", document.editbankaccount.sortcode);
		return false;
	}
	
	else if(document.editbankaccount.accountbalance.value == "")
	{
		fnAlert("Please enter Starting Balance !", document.editbankaccount.accountbalance);
		return false;
	}
	
	else if(document.editbankaccount.reconciledate.value == "")
	{
		fnAlert("Please enter Reconcile Date !", document.editbankaccount.reconciledate);
		return false;
	}
	
	document.editbankaccount.action = "/updateHandler.php";
	document.editbankaccount.updateHandler.value = "updateBankAccount";
	document.editbankaccount.editbankaccountid.value = bankaccountid;
	document.editbankaccount.method = "POST";
	document.editbankaccount.submit();
}

/******************* BUSINESS DETAILS FUNCTIONS *******************/

function createDemoCompanyWithDemoData(iDataSet)
{
	if(confirm("You will have a demo company created with demo data to try out b3Accounts !"))
	{
		// MAKE AJAX CALL
		
		var oAjax = new AjaxWrapper;
		
		var sUrl = "/saveHandler.php?saveHandler=createDemoCompanyWithDemoData";
		
		if(iDataSet) sUrl = sUrl + "&iDataSet=" + iDataSet;
		
		sUrl = sUrl + "&sid=" + Date() + Math.random();
		
		oAjax.url = sUrl;
		
		oAjax.onSuccess = function() {
	
			var sResponse = this.responseText;
			
			var aResponse = sResponse.split("{}");
			
			var iCompanyNumber = aResponse[1];
			
			if(iCompanyNumber > 0)
			{
				fnDoNav("/sessionHandler.php?sessionHandler=openBusiness&companynumber=" + iCompanyNumber);
			}
			
			else
			{
				loadInnerHtml(document.getElementById("demoDataLink"), "Sorry ! There was an error<br />while loading the data!<br />This page will now reload !!");
				
				 setTimeout("fnDoNav('/businessSelect')", 5000);
			}

		};
		
		oAjax.get();
		
		showLoading("loadingDemoData");
		
		loadInnerHtml(document.getElementById("demoDataLink"), "Loading....Please wait!<br />This may take few minutes!");
	}
}

function fnChangeInvoiceTemplate(oElement)
{
	// MAKE AJAX CALL
	
	var oAjax = new AjaxWrapper;
	
	var sUrl = "/updateHandler.php?updateHandler=changeInvoiceTemplate";
	
	sUrl = sUrl + "&sSelVal=" + oElement.value;
	
	sUrl = sUrl + "&sid=" + Date() + Math.random();
	
	oAjax.url = sUrl;
	
	oAjax.onSuccess = function() {
	
		//

	};
	
	oAjax.get();
}


function fnDeleteBusinessData(companynumber,companygroupid)
{
  if(confirm("Are you sure you want to delete data for this business?\nThis will delete:\n'ALL' Sales and Purchase Invoices,\n'ALL' Accounts Transactions,\n'ALL' DayBook Information"))
	{
		document.userinterface.action = "/deleteHandler.php";
		document.userinterface.deleteHandler.value = "deleteBusinessData";
		document.userinterface.companynumber.value = companynumber;
		document.userinterface.companygroupid.value = companygroupid;
		document.userinterface.method = "POST";
		document.userinterface.submit();
	}
	else
	{
		return false;
	}
}

function fnDeleteBusiness(companynumber,companygroupid)
{
  if(confirm("Are you sure you want to delete this business?\nThis will delete the business and 'ALL' the data corresponding to it"))
	{
		document.userinterface.action = "/deleteHandler.php";
		document.userinterface.deleteHandler.value = "deleteBusiness";
		document.userinterface.companynumber.value = companynumber;
		document.userinterface.companygroupid.value = companygroupid;
		document.userinterface.method = "POST";
		document.userinterface.submit();
	}
	else
	{
		return false;
	}
}

function fnEditBusinessSettings(companynumber)
{
	document.userinterface.action = "businessSettings.php";
	document.userinterface.method = "POST";
	document.userinterface.companynumber.value = companynumber;
	document.userinterface.submit();
}

function fnUpdateBusinessSettings(companynumber)
{
	
	var floatamount = document.businesssettings.floatamount;
	var debitcarddelay = document.businesssettings.debitcarddelay.value;
	var streamlinedelay = document.businesssettings.streamlinedelay.value;
	var amexdelay = document.businesssettings.amexdelay.value;
	var chequedelay = document.businesssettings.chequedelay.value;
	var usequote = (document.businesssettings.usequote.checked) ? "on" : "" ;
	var usepurchaseorder = (document.businesssettings.usepurchaseorder.checked) ? "on" : "" ;
	var time_managed = (document.businesssettings.time_managed.checked) ? "on" : "" ;
	var payroll = (document.businesssettings.payroll.checked) ? "on" : "" ;
	var stock_control = (document.businesssettings.stock_control.checked) ? "on" : "" ;
	var useSplashPages = (document.businesssettings.useSplashPages.checked) ? 1 : 0 ;
	var includeInvoiceRef = (document.businesssettings.includeInvoiceRef.checked) ? 1 : 0 ;
	var includeVatNum = (document.businesssettings.includeVatNum.checked) ? 1 : 0 ;
	var includeCompanyNum = (document.businesssettings.includeCompanyNum.checked) ? 1 : 0 ;
	var includeBankDetails = (document.businesssettings.includeBankDetails.checked) ? 1 : 0 ;
	
	// MAKE AJAX CALL
	
	var oAjax = new AjaxWrapper;
	
	var sUrl = "/updateHandler.php?updateHandler=updateBusinessSettings";
	
	sUrl = sUrl + "&companynumber=" + companynumber;
	
	if(floatamount) sUrl = sUrl + "&floatamount=" + floatamount.value;
	
	sUrl = sUrl + "&debitcarddelay=" + debitcarddelay;
	
	sUrl = sUrl + "&streamlinedelay=" + streamlinedelay;
	
	sUrl = sUrl + "&amexdelay=" + amexdelay;
	
	sUrl = sUrl + "&chequedelay=" + chequedelay;
	
	sUrl = sUrl + "&usequote=" + usequote;
	
	sUrl = sUrl + "&usepurchaseorder=" + usepurchaseorder;
	
	sUrl = sUrl + "&time_managed=" + time_managed;
	
	sUrl = sUrl + "&payroll=" + payroll;
	
	sUrl = sUrl + "&stock_control=" + stock_control;
	
	sUrl = sUrl + "&useSplashPages=" + useSplashPages;
	
	sUrl = sUrl + "&includeInvoiceRef=" + includeInvoiceRef;
	
	sUrl = sUrl + "&includeVatNum=" + includeVatNum;
	
	sUrl = sUrl + "&includeCompanyNum=" + includeCompanyNum;
	
	sUrl = sUrl + "&includeBankDetails=" + includeBankDetails;
	
	sUrl = sUrl + "&sid=" + Date() + Math.random();
	
	oAjax.url = sUrl;
	
	oAjax.onSuccess = function() {
	
		var sResponse = this.responseText;
		
		var aResponse = sResponse.split("{}");
    
    document.getElementById("button_settings").value = "SAVE CHANGES";
		
		loadInnerHtml(document.getElementById("settingsChangesNotification"), "Changes saved successfully !");
		
		fnTimedLayer("settingsChangesNotification");
		
		window.opener.location.href = window.opener.location.href;

	};
	
	oAjax.get();
  
  document.getElementById("button_settings").value = "PLEASE WAIT...";
}


function fnShowHideCSSDropDown(oLink, sMenu, sHides) {
	// USED TO SHOW / HIDE A CUSTOM CSS DROP DOWN MENU
	
	var oMenu = document.getElementById(sMenu);
	
	oMenu.style.display = (oMenu.style.display == "none") ? "block" : "none";
	
	if(sHides) {
		var aHides = sHides.split(",");
		
		for(var i=0; i<aHides.length; i++) {
			if(document.getElementById(aHides[i])) {
				document.getElementById(aHides[i]).style.display = "none";
			}
		}
	}
	
	oLink.blur();
}

function dropDownPageSelecta(oSelect, bPopUp, bSamePageAdd)
{
	// WILL OPEN A PAGE FROM A SELECT MENU
	
	var sHref = oSelect.options[oSelect.selectedIndex].value;
	var sHrefText = oSelect.options[oSelect.selectedIndex].text;
	var sUrl = window.location.href;
	
	if(sHref)
	{
		if(bPopUp)
		{
			popup(sHref);
		}
		else
		{
			if(sHrefText == "[Add New]" && bSamePageAdd == true) window.location.href = sHref;
			else if(sHrefText == "[Add New]") popup(sHref);
			else window.location.href = sHref + "&redirectPage=" + sUrl;
		}
	}
}

function fnOpenBusiness(companynumber)
{
    document.userinterface.action = "/sessionHandler.php";
    document.userinterface.sessionHandler.value = "openBusiness";
    document.userinterface.method = "POST";
    document.userinterface.companynumber.value = companynumber;
    document.userinterface.submit();
}

function fnEditBusiness(companynumber)
{
	document.userinterface.action = "editbusinessdetails.php";
	document.userinterface.method = "POST";
	document.userinterface.companynumber.value = companynumber;
	document.userinterface.submit();
}

function fnUploadLogo(companynumber)
{
    document.userinterface.action = "uploadLogo.php";
	document.userinterface.method = "POST";
	document.userinterface.companynumber.value = companynumber;
	document.userinterface.submit();
}


function showHideVatElements(oElement)
{
	showHideElementByCheckBoxId(oElement, 'vatSchemeRow');
	
	showHideElementByCheckBoxId(oElement, 'vatnumberRow');
	
	showHideElementByCheckBoxId(oElement, 'vatReturnDateRow');
	
	showHideElementByCheckBoxId(oElement, 'submitVatOnline');
}


function fnAddBusiness()
{
	if(document.addbusiness.businesstype.value == "")
	{
		fnAlert("Please select Business Type !", document.addbusiness.businesstype);
		return false;
	}
	else if(document.addbusiness.legalname.value == "")
	{
		fnAlert("Please enter Legal Name !", document.addbusiness.legalname);
		return false;
	}
	else if(document.addbusiness.businesstemplate.value == "")
	{
		fnAlert("Please select Business Template !", document.addbusiness.businesstemplate);
		return false;
	}
	else if(document.addbusiness.address1.value == "")
	{
		fnAlert("Please enter Address !", document.addbusiness.address1);
		return false;
	}
	else if(document.addbusiness.town_city.value == "")
	{
		fnAlert("Please enter Town/City !", document.addbusiness.town_city);
		return false;
	}
	else if (document.addbusiness.country.value == "")
	{
		fnAlert("Please enter Country !", document.addbusiness.country);
		return false;
	}
	else if(document.addbusiness.email.value == "")
	{
		fnAlert("Please enter Email !", document.addbusiness.email);
		return false;
	}
	else if(document.addbusiness.phonenumber.value == "")
	{
		fnAlert("Please enter Phone Number !", document.addbusiness.phonenumber);
		return false;
	}
	
	else if(document.addbusiness.vat_registered.checked)
	{
		if(document.addbusiness.vat_scheme.value == "")
		{
			fnAlert("Please select VAT NumberScheme !", document.addbusiness.vat_scheme);
			return false;
		}
    
		if(document.addbusiness.vatnumber.value == "")
		{
			fnAlert("Please enter VAT Number !", document.addbusiness.vatnumber);
			return false;
		}
		
		else if(document.addbusiness.vatReturnDate.value == "")
		{
			fnAlert("Please enter VAT Return Date !", document.addbusiness.vatReturnDate);
			return false;
		}
		
		else if(document.addbusiness.vat_online.checked )
		{
			if(document.addbusiness.vendorId.value == "")
			{
				fnAlert("Please enter vendor ID !", document.addbusiness.vendorId);
				return false;
			}
			
			else if(document.addbusiness.senderId.value == "")
			{
				fnAlert("Please enter sender ID !", document.addbusiness.senderId);
				return false;
			}
			
			else if(document.addbusiness.senderPassword.value == "")
			{
				fnAlert("Please enter sender password !", document.addbusiness.senderPassword);
				return false;
			}
		}
	}
	
	document.addbusiness.action = "/saveHandler.php";
	document.addbusiness.saveHandler.value = "saveBusiness";
	document.addbusiness.method = "POST";
	document.addbusiness.submit();
}

function fnUpdateBusinessDetails(companynumber)
{
	var businesstype = document.editbusinessdetails.businesstype.value;
	var legalname = document.editbusinessdetails.legalname.value;
	var businessnumber = document.editbusinessdetails.businessnumber.value;
	//var btInput = document.getElementById('businesstemplate');
	//var businesstemplate = btInput.options[btInput.selectedIndex].value;
	var businesstemplate = document.editbusinessdetails.businesstemplate.value;
	var address1 = document.editbusinessdetails.address1.value;
	var address2 = document.editbusinessdetails.address2.value;
	var address3 = document.editbusinessdetails.address3.value;
	var town_city = document.editbusinessdetails.town_city.value;
	var county = document.editbusinessdetails.county.value;
	var postcode = document.editbusinessdetails.postcode.value;
	var country = document.editbusinessdetails.country.value;
	var email = document.editbusinessdetails.email.value;
	var phonenumber = document.editbusinessdetails.phonenumber.value;
	var mobilenumber = document.editbusinessdetails.mobilenumber.value;
	var fax = document.editbusinessdetails.fax.value;
	var accountnumber = document.editbusinessdetails.accountnumber.value;
	var sortcode = document.editbusinessdetails.sortcode.value;
	var financialyearstart = document.editbusinessdetails.financialyearstart.value;
	var financialyearend = document.editbusinessdetails.financialyearend.value;
	var isCharity = (document.editbusinessdetails.is_charity.checked) ? "on" : "" ;
	var membershipBased = (document.editbusinessdetails.membershipBased.checked) ? "on" : "" ;
	var vat_registered = (document.editbusinessdetails.vat_registered.checked) ? "on" : "" ;
	var vat_scheme = document.editbusinessdetails.vat_scheme.value;
	var vatnumber = document.editbusinessdetails.vatnumber.value;
	var vatReturnDate = document.editbusinessdetails.vatReturnDate.value;
	
	if(businesstype == "")
	{
		fnAlert("Please select Business Type !", document.editbusinessdetails.businesstype);
		return false;
	}
	else if(legalname == "")
	{
		fnAlert("Please enter Legal Name !", document.editbusinessdetails.legalname);
		return false;
	}
	else if(businesstemplate == "")
	{
		fnAlert("Please select Business Template !", document.editbusinessdetails.businesstemplate);
		return false;
	}
	else if(address1 == "")
	{
		fnAlert("Please enter Address !", document.editbusinessdetails.address1);
		return false;
	}
	else if(town_city == "")
	{
		fnAlert("Please enter Town/City !", document.editbusinessdetails.town_city);
		return false;
	}
	else if(country == "")
	{
		fnAlert("Please select Country !", document.editbusinessdetails.country);
		return false;
	}
	else if(email == "")
	{
		fnAlert("Please enter Email !", document.editbusinessdetails.email);
		return false;
	}
	else if(phonenumber == "")
	{
		fnAlert("Please enter Phone Number !", document.editbusinessdetails.phonenumber);
		return false;
	}

	// MAKE AJAX CALL
	
	var oAjax = new AjaxWrapper;
	
	var sUrl = "/updateHandler.php?updateHandler=updateBusiness";
	
	sUrl = sUrl + "&editbusinessdetails=" + companynumber;
	
	sUrl = sUrl + "&legalname=" + legalname;
	
	sUrl = sUrl + "&businessnumber=" + businessnumber;
	
	sUrl = sUrl + "&businesstype=" + businesstype;
	
	sUrl = sUrl + "&businesstemplate=" + businesstemplate;
	
	sUrl = sUrl + "&address1=" + address1;
	
	sUrl = sUrl + "&address2=" + address2;
	
	sUrl = sUrl + "&address3=" + address3;
	
	sUrl = sUrl + "&town_city=" + town_city;
	
	sUrl = sUrl + "&county=" + county;
	
	sUrl = sUrl + "&postcode=" + postcode;
	
	sUrl = sUrl + "&country=" + country;
	
	sUrl = sUrl + "&email=" + email;
	
	sUrl = sUrl + "&phonenumber=" + phonenumber;
	
	sUrl = sUrl + "&mobilenumber=" + mobilenumber;
	
	sUrl = sUrl + "&fax=" + fax;
	
	sUrl = sUrl + "&accountnumber=" + accountnumber;
	
	sUrl = sUrl + "&sortcode=" + sortcode;
	
	sUrl = sUrl + "&financialyearstart=" + financialyearstart;
	
	sUrl = sUrl + "&financialyearend=" + financialyearend;
	
	sUrl = sUrl + "&is_charity=" + isCharity;
	
	sUrl = sUrl + "&membershipBased=" + membershipBased;
	
	sUrl = sUrl + "&vat_registered=" + vat_registered;
	
	if(vat_registered) sUrl = sUrl + "&vat_scheme=" + vat_scheme;
	
	if(vat_registered) sUrl = sUrl + "&vatnumber=" + vatnumber;
	
	if(vat_registered) sUrl = sUrl + "&vatReturnDate=" + vatReturnDate;
	
	sUrl = sUrl + "&sid=" + Date() + Math.random();
	 
	oAjax.url = sUrl;
	
	oAjax.onSuccess = function() {
	
		var sResponse = this.responseText;
		
		var aResponse = sResponse.split("{}");
    
    document.getElementById("button_details").value = "SAVE CHANGES";
		
		loadInnerHtml(document.getElementById("detailsChangesNotification"), "Changes saved successfully !");
		
		fnTimedLayer("detailsChangesNotification");
		
		 window.opener.location.href = window.opener.location.href;

	};
	
	oAjax.get();
  
  document.getElementById("button_details").value = "PLEASE WAIT...";
}


function fnEditBusinessDetails()
{
	document.editbusinessdetails.legalname.readOnly=false;
	document.editbusinessdetails.businessnumber.readOnly=false;
	document.editbusinessdetails.address1.readOnly=false;
	document.editbusinessdetails.address2.readOnly=false;
	document.editbusinessdetails.address3.readOnly=false;
	document.editbusinessdetails.town_city.readOnly=false;
	document.editbusinessdetails.county.readOnly=false;
	document.editbusinessdetails.postcode.readOnly=false;
	document.editbusinessdetails.country.disabled=false;
	document.editbusinessdetails.email.readOnly=false;
	document.editbusinessdetails.phonenumber.readOnly=false;
	document.editbusinessdetails.fax.readOnly=false;
	document.editbusinessdetails.vatnumber.readOnly=false;
	document.getElementById("Editbutton").style.display="none";
	document.getElementById("Submitbutton").style.display="";
}

/******************* USER DETAILS FUNCTIONS *******************/

function fnCheckUserAvailability()
{
	var username = document.adduser.username.value;
	
	// MAKE AJAX CALL
	
	var oAjax = new AjaxWrapper;
	
	var sUrl = "/selectHandler.php?selectHandler=checkUserAvailability";
	
	sUrl = sUrl + "&username=" + username;
	
	sUrl = sUrl + "&sid=" + Date() + Math.random();
	
	oAjax.url = sUrl;
	
	oAjax.onSuccess = function() {
	
		var sResponse = this.responseText;
		
		var aResponse = sResponse.split("{}");
		
		loadInnerHtml(document.getElementById("useravailability"), aResponse[0]);

	};
	
	oAjax.get();
}


function fnAddUser(iIsAdmin)
{
	if(document.adduser.username.value == "")
	{
		fnAlert("Please enter Username !", document.adduser.username);
		
		return false;
	}
	
	else if(document.adduser.password.value == "")
	{
		fnAlert("Please enter Password !", document.adduser.password);
		
		return false;
	}
	
	else if(document.adduser.confirmpassword.value == "")
	{
		fnAlert("Please enter Confirm Password !", document.adduser.confirmpassword);
		
		return false;
	}
	
	else if(document.adduser.password.value != document.adduser.confirmpassword.value)
	{
		fnAlert("Password and Confirm Password does not match!", document.adduser.confirmpassword);
		
		return false;
	}
	
	var oLoginType = document.getElementById("logintype");
	
	var selectedCount = 0;
	
	var aLoginTypes = new Array();
	
	for (var i = 0; i < oLoginType.length; i++)
	{
		if (oLoginType.options[i].selected)
		{
			selectedCount++;
			aLoginTypes[aLoginTypes.length] = oLoginType.options[i].value;
		}
	}
	
	if(selectedCount == 0)
	{
		fnAlert("Please Select User Privilege !", document.getElementById("logintype"));
		
		return false;
	}
	
	// CAPTURE THE VARIABLES
	
	var oForm = document.adduser;
	
	if(iIsAdmin) var iCompanyGroupId = oForm.iCompanyGroupId.value;
	
	var sFullName = oForm.fullname.value;
	
	var sUserName = oForm.username.value;
	
	var sPassword = oForm.password.value;
	
	var sEmail = oForm.email.value;
	
	var sPhoneNumber = oForm.phonenumber.value;
	
	var sMobileNumber = oForm.mobilenumber.value;
	
	var sSaveHandler = "saveNewUser";
	
	// MAKE AJAX CALL
	
	var oAjax = new AjaxWrapper;

	var sUrl = "/saveHandler.php?saveHandler=" + sSaveHandler;

	if(iCompanyGroupId) sUrl = sUrl + "&iCompanyGroupId=" + iCompanyGroupId;

	sUrl = sUrl + "&sFullName=" + sFullName;

	sUrl = sUrl + "&sUserName=" + sUserName;

	sUrl = sUrl + "&sPassword=" + sPassword;

	sUrl = sUrl + "&sEmail=" + sEmail;

	sUrl = sUrl + "&sPhoneNumber=" + sPhoneNumber;

	sUrl = sUrl + "&sMobileNumber=" + sMobileNumber;
	
	sUrl = (oLoginType) ? sUrl + "&sLoginType=" + aLoginTypes.join(",") : sUrl;
	
	/*var sUrl = "registeruser?username=" + sUserName;

	sUrl = sUrl + "&password=" + sPassword;

	sUrl = sUrl + "&fullname=" + sFullName;

	sUrl = sUrl + "&email=" + sEmail;*/

	sUrl = sUrl + "&sid=" + Date() + Math.random();

	oAjax.url = sUrl;

	oAjax.onSuccess = function() {

		var sResponseText = this.responseText;

		var aResponse = sResponseText.split("{}");

		/*if(sResponseText == -1) // ERROR
		{
			loadInnerHtml(document.getElementById("sError"), "Failed to create user !!");
		}

		if(sResponseText == 0) // SUCCESS
		{
			fnDoNav("userinterface_settings.php");
		}*/

		if(aResponse[0] == 1)
		{
			fnDoNav("/manageUsers.php");
		}

		if(aResponse[0] == 2)
		{
			fnDoNav("/userinterface_settings.php");
		}
	};

	oAjax.get();
}

function fnEditUserProfile()
{
	/*document.userprofile.fullname.className="colortext";
	document.userprofile.password.className="colortext";
	document.userprofile.confirmpassword.className="colortext";
	document.userprofile.email.className="colortext";
	document.userprofile.phonenumber.className="colortext";
	document.userprofile.mobilenumber.className="colortext";*/

	document.userprofile.fullname.readOnly=false;
	document.userprofile.password.readOnly=false;
	document.userprofile.confirmpassword.readOnly=false;
	document.userprofile.email.readOnly=false;
	document.userprofile.phonenumber.readOnly=false;
	document.userprofile.mobilenumber.readOnly=false;
	document.getElementById("Editbutton").style.display="none";
	document.getElementById("Cancelbutton").style.display="";
	document.getElementById("Submitbutton").style.display="";
}


function fnEditUser(oElement)
{
	var iLoginId = oElement.name;
	
	fnDoNav("/userProfile.php&editUserByAdmin=" + iLoginId)
}


function fnUpdateUser(iLoginId, iIsAdminEdit)
{
	// CAPTURE THE VARIABLES
	
	var oForm = document.userprofile;
	
	var sFullName = oForm.fullname.value;
	
	//var sUserName = oForm.username.value;
	
	var sPassword = oForm.password.value;
	
	var sEmail = oForm.email.value;
	
	var sPhoneNumber = oForm.phonenumber.value;
	
	var sMobileNumber = oForm.mobilenumber.value;
	
	if(sPassword == "")
	{
		fnAlert("Please enter Password !", document.userprofile.password);
		
		return false;
	}
	
	else if(document.userprofile.confirmpassword.value == "")
	{
		fnAlert("Please enter Confirm Password !", document.userprofile.confirmpassword);
		
		return false;
	}
	
	else if(document.userprofile.password.value != document.userprofile.confirmpassword.value)
	{
		fnAlert("Password and Confirm Password does not match!", document.userprofile.confirmpassword);
		
		return false;
	}
	
	var oLoginType = document.getElementById("logintype");
	
	var selectedCount = 0;

        /*
	var aLoginTypes = new Array();
	
	for (var i = 0; i < oLoginType.length; i++)
	{
		if (oLoginType.options[i].selected)
		{
			selectedCount++;
			aLoginTypes[aLoginTypes.length] = oLoginType.options[i].value;
		}
	}
    */
	
	if(selectedCount == 0)
	{
		//fnAlert("Please Select User Privilege !", document.getElementById("logintype"));
		
		//return false;
	}
	
	
	// MAKE AJAX CALL
	
	var oAjax = new AjaxWrapper;
	
	var sUrl = "/updateHandler.php?updateHandler=updateUser";
	
	sUrl = sUrl + "&editusername=" + iLoginId;

	sUrl = sUrl + "&sFullName=" + sFullName;

	sUrl = sUrl + "&sPassword=" + sPassword;

	sUrl = sUrl + "&sEmail=" + sEmail;

	sUrl = sUrl + "&sPhoneNumber=" + sPhoneNumber;

	sUrl = sUrl + "&sMobileNumber=" + sMobileNumber;
	
	//sUrl = (oLoginType) ? sUrl + "&sLoginType=" + aLoginTypes.join(",") : sUrl;

	sUrl = sUrl + "&sid=" + Date() + Math.random();
		
	oAjax.url = sUrl;
	
	oAjax.onSuccess = function() {
		
		var sResponseText = this.responseText;
		
		var aResponse = sResponseText.split("{}");
		
		if(iIsAdminEdit) {
			fnDoNav("/userinterface_settings.php");
		}
		
		else {
         document.getElementById("button_user").value = "SAVE CHANGES";
         if(aResponse[0] != 0)
         {
            loadInnerHtml(document.getElementById("profileChangesNotification"), "Changes saved successfully !");
         }
         else
         {
            loadInnerHtml(document.getElementById("profileChangesNotification"), "No changes were made !");
         }
			
			fnTimedLayer("profileChangesNotification");
		}
	
	};
	
	oAjax.get();
  
  document.getElementById("button_user").value = "PLEASE WAIT...";
}


function fnManageUsers(sObj)
{
	var iLoginId = sObj.name;
	
	var iCompanyNumber = sObj.id;
	
	var iGrantRemove = (sObj.checked) ? 1 : 0;
	
	// MAKE AJAX CALL
	
	var oAjax = new AjaxWrapper;
	
	var sUrl = "/updateHandler.php?updateHandler=grantRemoveAccessToCompany";
	
	sUrl = sUrl + "&iLoginId=" + iLoginId;
	
	sUrl = sUrl + "&iCompanyNumber=" + iCompanyNumber;
	
	sUrl = sUrl + "&iGrantRemove=" + iGrantRemove;
	
	sUrl = sUrl + "&sid=" + Date() + Math.random();
	
	oAjax.url = sUrl;
	
	oAjax.onSuccess = function() {
	
		//
	};
	
	oAjax.get();
}



function fnDeleteUser(oElement)
{
	var iLoginId = oElement.name;
	
	if (confirm("Delete User Record ?"))
	{
		// MAKE AJAX CALL
		
		var oAjax = new AjaxWrapper;
		
		var sUrl = "/deleteHandler.php?deleteHandler=deleteUser";
		
		sUrl = sUrl + "&deleteuser=" + iLoginId;
		
		sUrl = sUrl + "&sid=" + Date() + Math.random();
		
		oAjax.url = sUrl;
		
		oAjax.onSuccess = function() {
			
			var sResponseText = this.responseText;
			
			var aResponse = sResponseText.split("{}");
			
			if(aResponse[0] == 1)
			{
				fnDoNav("/manageUsers.php");
			}
			
			if(aResponse[0] == 2)
			{
				fnDoNav("/userinterface_settings.php");
			}
			
		};
		
		oAjax.get();
  	}
}

/******************* PROCESS DOCS FUNCTIONS *******************/

function fnPopulateContent(contentid)
{
	if (contentid == "Sales")
	{
		var sSelectHandler = "getProcessSalesCreation";
		
		var sTargetElement = "processSales";
		
		/*document.getElementById("processSales").style.display = "";
		
		document.getElementById("processPurchases").style.display = "none";*/
	}
	else if (contentid == "Purchase")
	{
		var sSelectHandler = "getProcessPurchaseCreation";
		
		var sTargetElement = "processPurchases";
		
		/*document.getElementById("processSales").style.display = "none";
		
		document.getElementById("processPurchases").style.display = "";*/
	}
	
	// MAKE AJAX CALL
	
	var oAjax = new AjaxWrapper;
	
	var sUrl = "/selectHandler.php?selectHandler=" + sSelectHandler;
	
	sUrl = sUrl + "&sid=" + Date() + Math.random();
	
	oAjax.url = sUrl;
	
	oAjax.onSuccess = function() {
		
		var sResponse = this.responseText;
		
		clearInnerHtml(document.getElementById("processSales"));
		
		clearInnerHtml(document.getElementById("processPurchases"));
	
		loadInnerHtml(document.getElementById(sTargetElement), sResponse);
	
	};
	
	oAjax.get();
	
	stripClass(document.getElementById("Sales"), "hover");
	
	stripClass(document.getElementById("Purchase"), "hover");
	
	addClass(document.getElementById(contentid), "hover");
	
	document.getElementById(contentid).blur();
	
	//showLoading(sTargetElement);
	
}


function fnGetProcessContent(contentof)
{
	xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null)
	 {
	 alert ("Browser does not support HTTP Request");
	 return;
	 }
	var url="/getProcessDetails.php&contentof=" + contentof;
	url = url + "&sid="+Date()+Math.random();
	xmlHttp.onreadystatechange=stateChangedProcessContent;
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function stateChangedProcessContent()
{
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
	 { 
		document.getElementById("processDetails").innerHTML = xmlHttp.responseText;
	 } 
}

/******************* LABLE FUNCTIONS  *******************/

function fnCallPrint()
{
var prtContent = "<html><head><link rel='stylesheet' type='text/css' href='../css/styles.css' /></head>";
prtContent = prtContent + document.getElementById("areaToPrint").innerHTML;
prtContent = prtContent + "</html>";
var WinPrint = window.open("","","letf=0,top=0,width=510,height=220,toolbar=0,scrollbars=0,status=0");
WinPrint.document.write(prtContent);
WinPrint.document.close();
WinPrint.focus();
WinPrint.print();
WinPrint.close();
}

function fnGetLabel()
{
	var docsNum = prompt("Please enter the number of documents...","");
	if(docsNum != null && docsNum != "")
	{
		location.href = "label&docsNum="+docsNum;
	}
}

/******************* SEARCH FUNCTIONS *******************/

function searchPurchaseInvoices(bBankReconciliation, iTransactionId)
{
	var oForm = document.forms["searchInvoicesForm"];
	
	var referencenumber = oForm.referencenumber.value;
	var suppliername = oForm.suppliername.value;
	var invoicedate = oForm.invoicedate.value;
	if(oForm.processdate) var processdate = oForm.processdate.value;
	if(oForm.invoiceamount) var invoiceamount = oForm.invoiceamount.value;
	var invoicereference = document.getElementById("invoicereference").value;
	var memo = document.getElementById("memo").value;
	var paymentInfo = document.getElementById("paymentInfo").value;
	
	if (referencenumber == "" && suppliername == "" && invoicedate == "" && processdate == "" && invoicereference == "" && memo == "" && paymentInfo == "")
	{
		fnAlert("Please Choose atleast one Search Criteria !", oForm.referencenumber);
		return false;
	}
	
	// MAKE AJAX CALL

	var oAjax = new AjaxWrapper;
	
	var sUrl = "/selectHandler.php?selectHandler=getSearchPurchases";
	
	sUrl = sUrl + "&referencenumber=" + referencenumber;
	
	sUrl = sUrl + "&invoicedate=" + invoicedate;
	
	sUrl = sUrl + "&suppliername=" + suppliername;
	
	if(oForm.processdate) sUrl = sUrl + "&processdate=" + processdate;
	
	if(oForm.invoiceamount) sUrl = sUrl + "&invoiceamount=" + invoiceamount;
	
	sUrl = sUrl + "&invoicereference=" + invoicereference;
	
	sUrl = sUrl + "&memo=" + memo;
	
	sUrl = sUrl + "&paymentInfo=" + paymentInfo;
	
	sUrl = (bBankReconciliation) ? sUrl + "&bBankReconciliation=" + bBankReconciliation : sUrl;
	
	sUrl = (iTransactionId) ? sUrl + "&iTransactionId=" + iTransactionId : sUrl;
	
	
	sUrl = sUrl + "&sid=" + Date() + Math.random();
	
	oAjax.url = sUrl;
	
	oAjax.onSuccess = function() {

		document.getElementById("searchpurchases").innerHTML = this.responseText;
		
		sorttable.makeSortable(document.getElementById("purchaseInvoices"));

	};
	
	oAjax.get();
		
	showLoading("searchpurchases");
}

function searchSalesInvoices(bBankReconciliation, iTransactionId)
{
	var oForm = document.forms["searchInvoicesForm"];
	
	var invoicenumber = oForm.invoicenumber.value;
	var customername = oForm.customername.value;
	var invoicedate = oForm.invoicedate.value;
	if(oForm.processdate) var processdate = oForm.processdate.value;
	if(oForm.invoiceamount) var invoiceamount = oForm.invoiceamount.value;
	var invoicereference = document.getElementById("invoicereference").value;
	var message = document.getElementById("message").value;
	var paymentInfo = document.getElementById("paymentInfo").value;
	
	if (invoicenumber == "" && customername == "" && invoicedate == "" && processdate == "" && invoicereference == "" && message == "" && paymentInfo == "")
	{
		fnAlert("Please Choose atleast one Search Criteria !", oForm.invoicenumber);
		return false;
	}
	
	// MAKE AJAX CALL

	var oAjax = new AjaxWrapper;
	
	var sUrl = "/selectHandler.php?selectHandler=getSearchSales";
	
	sUrl = sUrl + "&invoicenumber=" + invoicenumber;
	
	sUrl = sUrl + "&invoicedate=" + invoicedate;
	
	sUrl = sUrl + "&customername=" + customername;
	
	if(oForm.processdate) sUrl = sUrl + "&processdate=" + processdate;
	
	if(oForm.invoiceamount) sUrl = sUrl + "&invoiceamount=" + invoiceamount;
	
	sUrl = sUrl + "&invoicereference=" + invoicereference;
	
	sUrl = sUrl + "&message=" + message;
	
	sUrl = sUrl + "&paymentInfo=" + paymentInfo;
	
	sUrl = (bBankReconciliation) ? sUrl + "&bBankReconciliation=" + bBankReconciliation : sUrl;
	
	sUrl = (iTransactionId) ? sUrl + "&iTransactionId=" + iTransactionId : sUrl;
	
	sUrl = sUrl + "&sid=" + Date() + Math.random();
	
	oAjax.url = sUrl;
	
	oAjax.onSuccess = function() {

		document.getElementById("searchsales").innerHTML = this.responseText;
		
		sorttable.makeSortable(document.getElementById("salesInvoices"));

	};
	
	oAjax.get();
		
	showLoading("searchsales");
	
	
}

/******************* VAT REPORT FUNCTIONS  *******************/


function postVatOnlineDisabled()
{
	var oPostButton = document.getElementById("postVatOnline");
	
	if(confirm("You've not provided your online Vat Authentications details!\nWould you like provide them now."))
	{
		loadForm_OnlineVatAuthenticationDetails();
	}
}


function loadForm_OnlineVatAuthenticationDetails()
{
	// MAKE AJAX CALL
	
	var oAjax = new AjaxWrapper;
	
	var sUrl = "/selectHandler.php?selectHandler=loadForm_OnlineVatAuthenticationDetails";
	
	sUrl = sUrl + "&sid=" + Date() + Math.random();
	
	oAjax.url = sUrl;
	
	oAjax.onSuccess = function() {
		
		var sResponseText = this.responseText;
		
		var aResponse = sResponseText.split("{}");
		
		var sHtml = aResponse[1];
		
		loadInnerHtml(document.getElementById("onlineVatDetailsForm"), sHtml);
	};
	
	oAjax.get();

	showLoading("onlineVatDetailsForm");
}


function saveVatAuthenticationDetails()
{
	var vatNumber = document.getElementById("vatNumber").value;
	
	var vendorId = document.getElementById("vendorId").value;
	
	var senderId = document.getElementById("senderId").value;
	
	var senderPassword = document.getElementById("senderPassword").value;
	
	if(vatNumber == "")
	{
		fnAlert("Please enter Vat Number", document.getElementById("vatNumber"));
		return false;
	}
	
	else if(vendorId == "")
	{
		fnAlert("Please enter Vendor ID", document.getElementById("vendorId"));
		return false;
	}
	
	else if(senderId == "")
	{
		fnAlert("Please enter Sender ID", document.getElementById("senderId"));
		return false;
	}
	
	else if(senderPassword == "")
	{
		fnAlert("Please enter Sender Password", document.getElementById("senderPassword"));
		return false;
	}
	
	// MAKE AJAX CALL

	var oAjax = new AjaxWrapper;
	
	var sUrl = "/saveHandler.php?saveHandler=saveVatAuthenticationDetails";
	
	sUrl = sUrl + "&vatNumber=" + vatNumber;
	
	sUrl = sUrl + "&vendorId=" + vendorId;
	
	sUrl = sUrl + "&senderId=" + senderId;
	
	sUrl = sUrl + "&senderPassword=" + senderPassword;
	
	sUrl = sUrl + "&sid=" + Date() + Math.random();
	
	oAjax.url = sUrl;
	
	oAjax.onSuccess = function() {
		
		var sResponseText = this.responseText;
		
		var aResponse = sResponseText.split("{}");
		
		var iResult = aResponse[0];
		
		if(iResult == 1)
		{
			stripClass(document.getElementById("postVatOnline"), "disabled");
			
			clearInnerHtml(document.getElementById("onlineVatDetailsForm"));
			
			document.getElementById("postVatOnline").onclick = function(){getVatReportDataToPostOnline();};
		}

	};
	
	oAjax.get();
	
	showLoading("onlineVatDetailsForm");
	
}



function markAsVatPosted()
{
	var sFromDate = document.getElementById("fromdate").value;
	
	var sToDate = document.getElementById("todate").value;
	
	// MAKE AJAX CALL

	var oAjax = new AjaxWrapper;
	
	var sUrl = "/saveHandler.php?saveHandler=markAsVatPosted";
	
	sUrl = sUrl + "&sFromDate=" + sFromDate;
	
	sUrl = sUrl + "&sToDate=" + sToDate;
	
	sUrl = sUrl + "&sid=" + Date() + Math.random();
	
	oAjax.url = sUrl;
	
	oAjax.onSuccess = function() {
		
		var sResponseText = this.responseText;
		
		var aResponse = sResponseText.split("{}");
		
		var iResult = aResponse[0];
		
		var sErrorString = " " + aResponse[1];
		
		loadInnerHtml(document.getElementById("markAsPostedResponse"), sErrorString);
		
		clearInnerHtml(document.getElementById("showLoading_markAsPosted"));

	};
	
	oAjax.get();
	
	showLoading("showLoading_markAsPosted");
	
	loadInnerHtml(document.getElementById("markAsPostedResponse"), "Marking invoices as Vat Claimed");
}



function postVatReportToHmrc(iCompanyNumber, sVatReturnString, sFromDate, sToDate)
{
	if(sVatReturnString && sVatReturnString != "")
	{
		// MAKE AJAX CALL

		var oAjax = new AjaxWrapper;
		
		//var sUrl = "submitVatReturn.php&vat=" + sVatReturnString;
		
		var sUrl = "../apivatsubdeccomp?companyno=" + iCompanyNumber;
		
		sUrl = sUrl + "&vat=" + sVatReturnString;
		
		sUrl = sUrl + "&sid=" + Date() + Math.random();
		
		oAjax.url = sUrl;
		
		oAjax.onSuccess = function() {
			
			var sResponseText = this.responseText;
			
			var aResponse = sResponseText.split("|");
			
			var iResult = aResponse[0];
			
			var sResponseString = aResponse[1];
			
			var sErrorString = aResponse[2];
			
			if(iResult < 0)
			{
				addClass(document.getElementById("onlineSubmissionResponse"), "red");
				
				loadInnerHtml(document.getElementById("onlineSubmissionResponse"), sErrorString);
			}
			
			else
			{
				addClass(document.getElementById("onlineSubmissionResponse"), "blue");
				
				loadInnerHtml(document.getElementById("onlineSubmissionResponse"), sResponseString);
				
				markAsVatPosted(sFromDate, sToDate);
			}

		};
		
		oAjax.get();
		
		showLoading("onlineSubmissionResponse");
	}
}



function getVatReportDataToPostOnline()
{
	if(confirm("Are you sure you want to post this data to HMRC ?"))
	{
		var sFromDate = document.getElementById("fromdate").value;
		
		var sToDate = document.getElementById("todate").value;
		
		// MAKE AJAX CALL
		
		var oAjax = new AjaxWrapper;
		
		var sUrl = "/selectHandler.php?selectHandler=getVatReportDataToPostOnline";
		
		sUrl = sUrl + "&sFromDate=" + sFromDate;
		
		sUrl = sUrl + "&sToDate=" + sToDate;
		
		sUrl = sUrl + "&sid=" + Date() + Math.random();
		
		oAjax.url = sUrl;
		
		oAjax.onSuccess = function() {
			
			var sResponseText = this.responseText;
			
			var aResponse = sResponseText.split("{}");
			
			var iResult = aResponse[0];
			
			var iCompanyNumber = aResponse[1];
			
			var sVatReturnString = aResponse[2];
			
			if(iResult == 1)
			{
				postVatReportToHmrc(iCompanyNumber, sVatReturnString, sFromDate, sToDate);
			}

		};
		
		oAjax.get();
		
		showLoading("onlineSubmissionResponse");
	}
}



/******************* REPORTS FUNCTIONS  *******************/



function showHidePLChartByLevel(oElement, iLevel)
{
	if(iLevel)
	{
		var sImageSource = oElement.src;
		
		sImageSource = sImageSource.toLowerCase();
		
		if(sImageSource.indexOf("minus.gif") == -1)
		{
			document.getElementById("Chart_Level1").style.display = "none";
			document.getElementById("Chart_Level2").style.display = "none";
			document.getElementById("Chart_Level3").style.display = "none";
			document.getElementById("Chart_Level4").style.display = "none";
			
			var iLevelUp = parseInt(iLevel) - 1;
			
			document.getElementById("Chart_Level" + iLevel).style.display = "none";
			
			document.getElementById("Chart_Level" + iLevelUp).style.display = "block";
		}
		
		else
		{
			document.getElementById("Chart_Level1").style.display = "none";
			document.getElementById("Chart_Level2").style.display = "none";
			document.getElementById("Chart_Level3").style.display = "none";
			document.getElementById("Chart_Level4").style.display = "none";
		
			document.getElementById("Chart_Level" + iLevel).style.display = "block";
		}
	}
}


function getInvoices(iType, sFromDate, sToDate, iClient, sTargetElement)
{
	// MAKE AJAX CALL

	var oAjax = new AjaxWrapper;

	var sUrl = "/selectHandler.php?selectHandler=getInvoices";

	sUrl = (iType) ? sUrl + "&iType=" + iType : sUrl;


	sUrl = (sFromDate) ? sUrl + "&sFromDate=" + sFromDate : sUrl;


	sUrl = (sToDate) ? sUrl + "&sToDate=" + sToDate : sUrl;


	sUrl = (iClient) ? sUrl + "&iClient=" + iClient : sUrl;

	sUrl = sUrl + "&sid=" + Date() + Math.random();

	oAjax.url = sUrl;

	oAjax.onSuccess = function() {

		var sResponseText = this.responseText;

		var aResponse = sResponseText.split("{}");

		document.getElementById(sTargetElement).innerHTML = aResponse[0];
	};

	oAjax.get();

}


function fnShowExpenses()
{
	if(document.getElementById("imgexpenses"))
	{
		var imgsrc = document.getElementById("imgexpenses").src;
		imgsrc = imgsrc.toLowerCase();
		if(imgsrc.indexOf("plus.gif") != -1)
		{
			document.getElementById("imgexpenses").src = "../images/minus.gif";
			document.getElementById("expenseCategories").style.display = "";
			document.getElementById("Sales_Other").style.display = "";
			document.getElementById("Sales_Other_Depth").style.display = "none";
			document.getElementById("Income_Expense").style.display = "none";
		}
		else
		{
			document.getElementById("imgexpenses").src = "../images/plus.gif";
			document.getElementById("expenseCategories").style.display = "none";
			document.getElementById("Sales_Other").style.display = "none";
			document.getElementById("Sales_Other_Depth").style.display = "none";
			document.getElementById("Income_Expense").style.display = "";
		}
	}
}

function fnShowSalesExpenses()
{
	if(document.getElementById("imgsalesexpenses"))
	{
		var imgsrc = document.getElementById("imgsalesexpenses").src;
		imgsrc = imgsrc.toLowerCase();
		if(imgsrc.indexOf("plus.gif") != -1)
		{
			document.getElementById("imgsalesexpenses").src = "../images/minus.gif";
			document.getElementById("SalesExpenseCategories").style.display = "";
			document.getElementById("Sales_Other_Depth").style.display = "";
			document.getElementById("Sales_Other").style.display = "none";
			document.getElementById("Income_Expense").style.display = "none";
		}
		else
		{
			document.getElementById("imgsalesexpenses").src = "../images/plus.gif";
			document.getElementById("SalesExpenseCategories").style.display = "none";
			document.getElementById("Sales_Other").style.display = "";
			document.getElementById("Sales_Other_Depth").style.display = "none";
			document.getElementById("Income_Expense").style.display = "none";
		}
	}
}

function fnShowOperatingExpenses()
{
	if(document.getElementById("imgoperatingexpenses"))
	{
		var imgsrc = document.getElementById("imgoperatingexpenses").src;
		imgsrc = imgsrc.toLowerCase();
		if(imgsrc.indexOf("plus.gif") != -1)
		{
			document.getElementById("imgoperatingexpenses").src = "../images/minus.gif";
			document.getElementById("OperatingExpenseCategories").style.display = "";
			document.getElementById("Sales_Other_Depth").style.display = "";
			document.getElementById("Sales_Other").style.display = "none";
			document.getElementById("Income_Expense").style.display = "none";
		}
		else
		{
			document.getElementById("imgoperatingexpenses").src = "../images/plus.gif";
			document.getElementById("OperatingExpenseCategories").style.display = "none";
			document.getElementById("Sales_Other").style.display = "";
			document.getElementById("Sales_Other_Depth").style.display = "none";
			document.getElementById("Income_Expense").style.display = "none";
		}
	}
}

function fnShowIncome()
{
	if(document.getElementById("imgincome"))
	{
		var imgsrc = document.getElementById("imgincome").src;
		imgsrc = imgsrc.toLowerCase();
		if(imgsrc.indexOf("plus.gif") != -1)
		{
			document.getElementById("imgincome").src = "../images/minus.gif";
			document.getElementById("incomeCategories").style.display = "";
			document.getElementById("Sales_Other").style.display = "";
			document.getElementById("Sales_Other_Depth").style.display = "none";
			document.getElementById("Income_Expense").style.display = "none";
		}
		else
		{
			document.getElementById("imgincome").src = "../images/plus.gif";
			document.getElementById("incomeCategories").style.display = "none";
			document.getElementById("Sales_Other").style.display = "none";
			document.getElementById("Sales_Other_Depth").style.display = "none";
			document.getElementById("Income_Expense").style.display = "";
		}
	}
}

function fnShowSalesIncome()
{
	if(document.getElementById("imgsalesincome"))
	{
		var imgsrc = document.getElementById("imgsalesincome").src;
		imgsrc = imgsrc.toLowerCase();
		if(imgsrc.indexOf("plus.gif") != -1)
		{
			document.getElementById("imgsalesincome").src = "../images/minus.gif";
			document.getElementById("SalesIncomeCategories").style.display = "";
			document.getElementById("Sales_Other_Depth").style.display = "";
			document.getElementById("Sales_Other").style.display = "none";
			document.getElementById("Income_Expense").style.display = "none";
		}
		else
		{
			document.getElementById("imgsalesincome").src = "../images/plus.gif";
			document.getElementById("SalesIncomeCategories").style.display = "none";
			document.getElementById("Sales_Other").style.display = "";
			document.getElementById("Sales_Other_Depth").style.display = "none";
			document.getElementById("Income_Expense").style.display = "none";
		}
	}
}

function fnShowOtherIncome()
{
	if(document.getElementById("imgotherincome"))
	{
		var imgsrc = document.getElementById("imgotherincome").src;
		imgsrc = imgsrc.toLowerCase();
		if(imgsrc.indexOf("plus.gif") != -1)
		{
			document.getElementById("imgotherincome").src = "../images/minus.gif";
			document.getElementById("OtherIncomeCategories").style.display = "";
			document.getElementById("Sales_Other_Depth").style.display = "";
			document.getElementById("Sales_Other").style.display = "none";
			document.getElementById("Income_Expense").style.display = "none";
		}
		else
		{
			document.getElementById("imgotherincome").src = "../images/plus.gif";
			document.getElementById("OtherIncomeCategories").style.display = "none";
			document.getElementById("Sales_Other").style.display = "none";
			document.getElementById("Sales_Other_Depth").style.display = "none";
			document.getElementById("Income_Expense").style.display = "";
		}
	}
}

function fnExpandAll_PL()
{
	if(document.getElementById("imgincome"))
	{
		document.getElementById("imgincome").src = "../images/minus.gif";
		document.getElementById("incomeCategories").style.display = "";
	}
	if(document.getElementById("imgsalesincome"))
	{
		document.getElementById("imgsalesincome").src = "../images/minus.gif";
		document.getElementById("SalesIncomeCategories").style.display = "";
	}
	if(document.getElementById("imgotherincome"))
	{
		document.getElementById("imgotherincome").src = "../images/minus.gif";
		document.getElementById("OtherIncomeCategories").style.display = "";
	}
	if(document.getElementById("imgexpenses"))
	{
		document.getElementById("imgexpenses").src = "../images/minus.gif";
		document.getElementById("expenseCategories").style.display = "";
	}
	if(document.getElementById("imgsalesexpenses"))
	{
		document.getElementById("imgsalesexpenses").src = "../images/minus.gif";
		document.getElementById("SalesExpenseCategories").style.display = "";
	}
	if(document.getElementById("imgoperatingexpenses"))
	{
		document.getElementById("imgoperatingexpenses").src = "../images/minus.gif";
		document.getElementById("OperatingExpenseCategories").style.display = "";
	}
	document.getElementById("Income_Expense").style.display = "none";
	document.getElementById("Sales_Other").style.display = "none";
	document.getElementById("Sales_Other_Depth").style.display = "";
}

function fnCollapseAll_PL()
{
	if(document.getElementById("imgincome"))
	{
	document.getElementById("imgincome").src = "../images/plus.gif";
	document.getElementById("incomeCategories").style.display = "none";
	}
	if(document.getElementById("imgsalesincome"))
	{
	document.getElementById("imgsalesincome").src = "../images/plus.gif";
	document.getElementById("SalesIncomeCategories").style.display = "none";
	}
	if(document.getElementById("imgotherincome"))
	{
	document.getElementById("imgotherincome").src = "../images/plus.gif";
	document.getElementById("OtherIncomeCategories").style.display = "none";
	}
	if(document.getElementById("imgexpenses"))
	{
	document.getElementById("imgexpenses").src = "../images/plus.gif";
	document.getElementById("expenseCategories").style.display = "none";
	}
	if(document.getElementById("imgsalesexpenses"))
	{
	document.getElementById("imgsalesexpenses").src = "../images/plus.gif";
	document.getElementById("SalesExpenseCategories").style.display = "none";
	}
	if(document.getElementById("imgoperatingexpenses"))
	{
	document.getElementById("imgoperatingexpenses").src = "../images/plus.gif";
	document.getElementById("OperatingExpenseCategories").style.display = "none";
	}
	document.getElementById("Income_Expense").style.display = "";
	document.getElementById("Sales_Other").style.display = "none";
	document.getElementById("Sales_Other_Depth").style.display = "none";
}

function fnDisplayResponse(sElementId)
{
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
	{
		document.getElementById(sElementId).innerHTML = xmlHttp.responseText;
	}
}

function fnDisplaySplit2Response(sElementId1,sElementId2,sSeparator)
{
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
	{
		var sResult = xmlHttp.responseText;
		var aResultArray = new Array();
		aResultArray = sResult.split(sSeparator);
		document.getElementById(sElementId1).innerHTML = aResultArray[0];
		document.getElementById(sElementId2).innerHTML = aResultArray[1];
	}
}

function fnGetExport(sFormName,sHandler,sFormat)
{
	var sUrl = "/exportHandler.php?exportHandler=" + sHandler;
	
	sUrl = sUrl + "&format=" + sFormat + "&name=" + sFormName;
	
	fnDoNav(sUrl);
}

function fnGetReportCSV(sHandler)
{
	fnDoNav("/exportHandler.php?exportHandler=" + sHandler);
}

function fnGetReport(sFilename)
{
	/*var fromdate = document.forms[0].fromdate.value;
	var todate = document.forms[0].todate.value;
	if (fromdate == "")
	{
		alert("Please enter From Date !");
		document.forms[0].fromdate.focus();
		return false;
	}
	else if (todate == "")
	{
		alert("Please enter To Date !");
		document.forms[0].todate.focus();
		return false;
	}
	document.forms[0].action = sFilename;
	document.forms[0].method = "POST";
	document.forms[0].submit();*/
	
	var fromdate = document.getElementById("fromdate").value;
	
	var todate = document.getElementById("todate").value;
	
	if (fromdate == "")
	{
		fnAlert("Please enter From Date !", document.getElementById("fromdate"));
		return false;
	}
	
	else if (todate == "")
	{
		alert("Please enter To Date !", document.getElementById("todate"));
		return false;
	}
	
	var sUrl = sFilename;
	
	sUrl = sUrl + "&fromdate=" + fromdate;
	
	sUrl = sUrl + "&todate=" + todate;
	
	fnDoNav(sUrl);
}

function fnGetSummaryReport()
{
	var fromdate = document.summaryreport.fromdate.value;
	var todate = document.summaryreport.todate.value;
	if (fromdate == "")
	{
		alert("Please enter From Date !");
		document.summaryreport.fromdate.focus();
		return false;
	}
	else if (todate == "")
	{
		alert("Please enter To Date !");
		document.summaryreport.todate.focus();
		return false;
	}
	document.summaryreport.action = "/exportHandler.php";
	document.summaryreport.exportHandler.value = "sGetSummaryReport";
	document.summaryreport.method = "POST";
	document.summaryreport.submit();
}

function fnShowHideReports(sContentId,sImageId)
{
	if(document.getElementById(sContentId).style.display == "none")
	{
		
		if(document.getElementById("statuatoryid"))
		{
			document.getElementById("statuatoryid").innerHTML = "<img src='../images/plus.gif'>";
			document.getElementById("statuatoryreports").style.display = "none";
		}
		
		if(document.getElementById("accountancyid"))
		{
			document.getElementById("accountancyid").innerHTML = "<img src='../images/plus.gif'>";
			document.getElementById("accountancyreports").style.display = "none";
		}
		
		if(document.getElementById("generalid"))
		{
			document.getElementById("generalid").innerHTML = "<img src='../images/plus.gif'>";
			document.getElementById("generalreports").style.display = "none";
		}
		
		if(document.getElementById("incomeid"))
		{
			document.getElementById("incomeid").innerHTML = "<img src='../images/plus.gif'>";
			document.getElementById("incomereports").style.display = "none";
		}
		
		if(document.getElementById("expenditureid"))
		{
			document.getElementById("expenditureid").innerHTML ="<img src='../images/plus.gif'>";
			document.getElementById("expenditurereports").style.display = "none";
		}
		
		if(document.getElementById("bankingid"))
		{
			document.getElementById("bankingid").innerHTML ="<img src='../images/plus.gif'>";
			document.getElementById("bankingreports").style.display = "none";
		}
		
		if(document.getElementById("timemanagement"))
		{
			document.getElementById("timemanagementid").innerHTML ="<img src='../images/plus.gif'>";
			document.getElementById("timemanagement").style.display = "none";
		}
		
		document.getElementById(sContentId).style.display = "";
		document.getElementById(sImageId).innerHTML ="<img src='../images/minus.gif'>";
	}
  
	else
	{
		document.getElementById(sContentId).style.display = "none";
		document.getElementById(sImageId).innerHTML = "<img src='../images/plus.gif'>";
	}
  
}

function fnGetUnpaidReport(sHandler)
{
	document.forms[0].action = "unPaidInvoicesReport.php";
	document.forms[0].sHandler.value = sHandler;
	document.forms[0].method = "POST";
	document.forms[0].submit();
}

function fnReportDataDisplay(radioValue)
{
    document.getElementById("piechart").style.display = "none";
    document.getElementById("barchart").style.display = "none";
    document.getElementById(radioValue).style.display = "";
}

/******************* CANCEL / RECREATE FUNCTIONS *******************/

function loadForm_reAutheticateUserToCancelInvoice(iInvoiceId, iCancelRecreate, iInvoiceType)
{
	clearInnerHtml(document.getElementById("reAutheticateUser"));
	
	// MAKE AJAX CALL
	
	var oAjax = new AjaxWrapper;
	
	var sUrl = "/selectHandler.php?selectHandler=loadForm_reAutheticateUserToCancelInvoice";
	
	sUrl = sUrl + "&iInvoiceId=" + iInvoiceId;
	
	sUrl = sUrl + "&iCancelRecreate=" + iCancelRecreate;
	
	sUrl = sUrl + "&iInvoiceType=" + iInvoiceType;
	
	sUrl = sUrl + "&sid=" + Date() + Math.random();
	
	oAjax.url = sUrl;
	
	oAjax.onSuccess = function() {
		
		var sResponseText = this.responseText;
		
		var aResponse = sResponseText.split("{}");
		
		var sHtml = aResponse[1];
		
		loadInnerHtml(document.getElementById("reAutheticateUser"), sHtml);
	};
	
	oAjax.get();

	showLoading("reAutheticateUser");
}


function reAutheticateUserToCancelInvoice(iInvoiceId, iCancelRecreate, iInvoiceType)
{
	var sPassword = document.getElementById("password").value;
	
	if(sPassword == "")
	{
		fnAlert("Please enter your password !", document.getElementById("password"));
		
		return false;
	}
	
	// MAKE AJAX CALL
	
	var oAjax = new AjaxWrapper;
	
	var sUrl = "/selectHandler.php?selectHandler=reAutheticateUser";
	
	sUrl = sUrl + "&sPassword=" + sPassword;
	
	sUrl = sUrl + "&sid=" + Date() + Math.random();
	
	oAjax.url = sUrl;
	
	oAjax.onSuccess = function() {
	
		var sResponse = this.responseText;
		
		var aResponse = sResponse.split("{}");
		
		if(aResponse[0] == 1)
		{
			clearInnerHtml(document.getElementById("reAutheticateUser"));
			
			cancelRecreateInvoice(iInvoiceId, iCancelRecreate, iInvoiceType);
		}
		
		else
		{
			loadInnerHtml(document.getElementById("authenticationError"), "Authetication Failed ! Please try again !!");
		}
		
	};
	
	oAjax.get();
}


function cancelRecreateInvoice(iInvoiceId, iCancelRecreate, iInvoiceType)
{
	if(confirm("Are you sure you want to cancel this invoice?"))
	{
		var sReason;
		
		do
		{
			sReason = prompt("Please Enter the Reason !!");
		} while(sReason == "");
		
		if(sReason == null) return false;
		
		if(iCancelRecreate == 1)
		{
			// CANCEL INVOICE
			
			var sUpdateHandler = (iInvoiceType == 1) ? "cancelSalesInvoice" : "cancelPurchaseInvoice" ;
			
			var oAjax = new AjaxWrapper;
			
			var sUrl1 = "/updateHandler.php?updateHandler=" + sUpdateHandler;
			
			sUrl1 = sUrl1 + "&iInvoiceId=" + iInvoiceId;
			
			sUrl1 = sUrl1 + "&sReason=" + sReason;
			
			oAjax.url = sUrl1;
			
			oAjax.onSuccess = function() {
				
				if(iInvoiceType == 1)
					fnDoNav("/salesInvoices");
				
				else if(iInvoiceType == 2)
					fnDoNav("/purchaseInvoices");
			};
			
			oAjax.get();
		}
		
		if(iCancelRecreate == 2)
		{
			// RECREATE INVOICE
			
			var sUpdateHandler = (iInvoiceType == 1) ? "recreateSalesInvoice" : "recreatePurchaseInvoice" ;
			
			var oAjax = new AjaxWrapper;
			
			var sUrl2 = "/updateHandler.php?updateHandler=" + sUpdateHandler;
			
			sUrl2 = sUrl2 + "&iInvoiceId=" + iInvoiceId;
			
			sUrl2 = sUrl2 + "&sReason=" + sReason;
			
			oAjax.url = sUrl2;
			
			oAjax.onSuccess = function() {
				
				if(iInvoiceType == 1)
					fnDoNav("/salesInvoices/add&iIsFromRecreation=1");
				
				else if(iInvoiceType == 2)
					fnDoNav("/purchaseInvoices/add&iIsFromRecreation=1");
			};
			
			oAjax.get();
		}
	}
}

/******************* PAYMENTS FUNCTIONS *******************/

function fnMakePayment()
{
	var selectedoption = document.billpayscreen.payby.options[document.billpayscreen.payby.selectedIndex].text;
	var paymentdate = document.billpayscreen.paymentdate.value;
	var amount = document.billpayscreen.amount.value;
	if (paymentdate == "")
	{
		alert("Please enter Payment Date !");
		document.billpayscreen.paymentdate.focus();
		return false;
	}
	else if (amount == "")
	{
		alert("Please enter Amount !");
		document.billpayscreen.amount.focus();
		return false;
	}
	if (selectedoption == "Cheque")
	{
		var chequenumber = document.billpayscreen.chequenumber.value;
		var paytoname = document.billpayscreen.paytoname.value;
		if (chequenumber == "")
		{
			alert("Please enter Cheque Number !");
			document.billpayscreen.chequenumber.focus();
			return false;
		}
		if (paytoname == "")
		{
			alert("Please enter Pay To Name !");
			document.billpayscreen.paytoname.focus();
			return false;
		}
	}
	if (selectedoption == "Debit/Credit Card")
	{
		var nameoncard = document.billpayscreen.nameoncard.value;
		var cardnumber = document.billpayscreen.cardnumber.value;
		var verifynumber = document.billpayscreen.verifynumber.value;
		var cardexpiry = document.billpayscreen.cardexpiry.value;
		if (nameoncard == "")
		{
			alert("Please enter Name on Card !");
			document.billpayscreen.nameoncard.focus();
			return false;
		}
		else if (cardnumber == "")
		{
			alert("Please enter 16-digit Card Number !");
			document.billpayscreen.cardnumber.focus();
			return false;
		}
		else if (verifynumber == "")
		{
			alert("Please enter Verification Number !");
			document.billpayscreen.verifynumber.focus();
			return false;
		}
		else if (cardexpiry == "")
		{
			alert("Please enter Card Expiry Date !");
			document.billpayscreen.cardexpiry.focus();
			return false;
		}
	}
}

function fnPayByChange()
{
	selectedoption = document.billpayscreen.payby.options[document.billpayscreen.payby.selectedIndex].text;
	if(selectedoption == "Cheque")
	{
		document.getElementById("cheque").style.display = "";
		document.getElementById("payto").style.display = "";
		document.getElementById("chequenumber").style.display = "";
		document.getElementById("paytoname").style.display = "";
		document.getElementById("cardname").style.display = "none";
		document.getElementById("D_Ccard").style.display = "none";
		document.getElementById("verifydigit").style.display = "none";
		document.getElementById("expiry").style.display = "none";
		document.getElementById("nameoncard").style.display = "none";
		document.getElementById("cardnumber").style.display = "none";
		document.getElementById("verifynumber").style.display = "none";
		document.getElementById("cardexpiry").style.display = "none";
	}
	if (selectedoption == "Debit/Credit Card")
	{
		document.getElementById("cheque").style.display = "none";
		document.getElementById("payto").style.display = "none";
		document.getElementById("chequenumber").style.display = "none";
		document.getElementById("paytoname").style.display = "none";
		document.getElementById("cardname").style.display = "";
		document.getElementById("D_Ccard").style.display = "";
		document.getElementById("verifydigit").style.display = "";
		document.getElementById("expiry").style.display = "";
		document.getElementById("nameoncard").style.display = "";
		document.getElementById("cardnumber").style.display = "";
		document.getElementById("verifynumber").style.display = "";
		document.getElementById("cardexpiry").style.display = "";
	}
}

function fnShowPayments(suppliername)
{
	document.paybills.action = "billpayscreen.php";
	document.paybills.paybill.value = suppliername;
	document.paybills.method = "POST";
	document.paybills.submit();
}


function fnAddPayment(invoicenumber,sWhat)
{
	if(sWhat == "Sales")
	{
		var oForm = (document.editinvoice) ? document.editinvoice : document.listinvoices;
		oForm.action = "addPayment.php";
		oForm.invoicenumber.value = invoicenumber;
		oForm.sWhat.value = sWhat;
		oForm.method = "POST";
		oForm.submit();
	}

	if(sWhat == "Purchase")
	{
		var oForm = (document.editinvoice) ? document.editinvoice : document.listpurchaseinvoices;
		oForm.action = "addPayment.php";
		oForm.referencenumber.value = invoicenumber;
		oForm.sWhat.value = sWhat;
		oForm.method = "POST";
		oForm.submit();
	}
}

function fnSubmitAddPayment(invoicenumber,amountpayedearlier,sType)
{
	var paymentdate = document.addpayment.paymentdate.value;
	var amount = document.addpayment.amountpayednow.value;

	if (paymentdate == "")
	{
		alert("Please enter Payment Date !");
		document.addpayment.paymentdate.focus();
		return false;
	}
	else if (amount == "")
	{
		alert("Please enter Amount !");
		document.addpayment.amountpayednow.focus();
		return false;
	}
	if(sType == "Sales")
	{
		document.addpayment.action = "/updateHandler.php";
		document.addpayment.updateHandler.value = "updatePaymentDetailsSales";
		document.addpayment.invoicenumber.value = invoicenumber;
		document.addpayment.invoiceid.value = document.getElementById("invoiceid").value;
		document.addpayment.amountpayedearlier.value = amountpayedearlier;
		document.addpayment.method = "POST";
		document.addpayment.submit();
	}

	if(sType == "Purchase")
	{
		document.addpayment.action = "/updateHandler.php";
		document.addpayment.updateHandler.value = "updatePaymentDetailsPurchase";
		document.addpayment.invoicenumber.value = invoicenumber;
		document.addpayment.invoiceid.value = document.getElementById("invoiceid").value;
		document.addpayment.amountpayedearlier.value = amountpayedearlier;
		document.addpayment.method = "POST";
		document.addpayment.submit();
	}
}

/******************* QUOTE FUNCTIONS *******************/

function fnGetQuotePDF(iInvoiceNumber)
{
	document.listquotes.action = "/exportHandler.php";
	document.listquotes.exportHandler.value = "getQuotePDF";
	document.listquotes.quotenumber.value = iInvoiceNumber;
	document.listquotes.method = "POST";
	document.listquotes.submit();
}

function fnSaveQuoteItem(oForm)
{
	if(oForm.item.value == "" || oForm.item.value == "[Add New]")
	{
		alert("Please Select Sales Item !");
		oForm.item.focus();
		return false;
	}
	else if (oForm.quantity.value == "")
	{
		alert("Please enter Quantity !");
		oForm.quantity.focus();
		return false;
	}
	else if (oForm.rate.value == "")
	{
		alert("Please enter Rate !");
		oForm.rate.focus();
		return false;
	}
	if(oForm.project.value == "")
	{
		alert("Please Select Project !");
		oForm.project.focus();
		return false;
	}

	var quotenumber = oForm.quotenumber.value;
	var invoiceid = oForm.invoiceid.value;
	var invoicedate = oForm.quotedate.value;
	var itemdate = oForm.itemdate.value;
	var customer = oForm.customername.value;
	var item = oForm.item.value;
	var itemtext = oForm.itemtext.value;
	var category = document.getElementById("itemCategory").value;
	var itemcode = document.getElementById("itemcode").value;
	var project = oForm.project.value;
	var quantity = oForm.quantity.value;
	var rate = oForm.rate.value;
	var iExchangeRateId = oForm.fromCurrency.value;
	var dExchangeRate = oForm.exchangeRate.value;
	
	// MAKE AJAX CALL

	var oAjax = new AjaxWrapper;
	
	var sUrl = "/saveHandler.php?saveHandler=saveQuoteItem";
	
	sUrl = sUrl + "&invoiceid=" + invoiceid;
	
	sUrl = sUrl + "&quotenumber=" + quotenumber;
	
	sUrl = sUrl + "&invoicedate=" + invoicedate;
	
	sUrl = sUrl + "&itemdate=" + itemdate;
	
	sUrl = sUrl + "&customer=" + customer;
	
	sUrl = sUrl + "&item=" + item;
	
	sUrl = sUrl + "&itemtext=" + itemtext;
	
	sUrl = sUrl + "&project=" + project;
	
	sUrl = sUrl + "&quantity=" + quantity;
	
	sUrl = sUrl + "&rate=" + rate;           
	
	sUrl = sUrl + "&exchangeRateId=" + iExchangeRateId;
	
	sUrl = sUrl + "&exchangeRate=" + dExchangeRate;
	
	sUrl = sUrl + "&sid=" + Date() + Math.random();
	
	oAjax.url = sUrl;
	
	oAjax.onSuccess = function() {

		document.getElementById("quoteitemdetails").innerHTML = this.responseText;
		
		fnGetQuoteCalc(quotenumber);

	};
	
	oAjax.get();
		
	showLoading("quoteitemdetails");
	
	document.getElementById("quoteitemadd").style.display="none";
	document.getElementById("quoteadditem").style.display="";
	document.getElementById("quotesaveitem").style.display="none";
	document.getElementById("quoteundoitem").style.display="none";
	oForm.item.selectedIndex = 0;
	oForm.itemtext.value = "";
	oForm.quantity.value = "";
	oForm.rate.value = "";
}


function fnGetQuoteCalc(quotenumber)
{
	// MAKE AJAX CALL
	
	var oAjax = new AjaxWrapper;
	
	var sUrl = "/Calculations.php&quotenumber=" + quotenumber;
	
	sUrl = sUrl + "&calcHandler=QuoteCalc";
	
	sUrl = sUrl + "&sid=" + Date() + Math.random();
	
	oAjax.url = sUrl;
	
	oAjax.onSuccess = function() {
	
		var totals = this.responseText;
		
		var totalsArray = new Array();
		
		totalsArray = totals.split("{}");
		
		document.getElementById("quotesubtotal").innerHTML=parseFloat(totalsArray[0]).toFixed(2);
		
		document.getElementById("quotevattotal").innerHTML=parseFloat(totalsArray[1]).toFixed(2);
		
		//document.getElementById("quotediscounttotal").innerHTML=parseFloat(totalsArray[2]).toFixed(2);
		
		document.getElementById("quotetotal").innerHTML=parseFloat(totalsArray[3]).toFixed(2);

	};
	
	oAjax.get();
}

function fnQuoteItemChange()
{
	var item = document.createquote.item.value;
	
	if(item == "")
	{
		document.createquote.itemtext.value = "";
		document.createquote.quantity.value = "";
		document.createquote.rate.value = "";
  	}
	
	else if(item == "[Add New]")
	{
		fnPopUpWindow("/addItemType.php&bPopup=true&itemType=Sales&isFromQuote=createQuote");
	}
	
	else
	{
		// MAKE AJAX CALL
		
		var oAjax = new AjaxWrapper;
		
		var sUrl = "/Calculations.php&salestype=" + item;
		
		sUrl = sUrl + "&calcHandler=getSalesType";
		
		sUrl = sUrl + "&sid=" + Date() + Math.random();
		
		oAjax.url = sUrl;
		
		oAjax.onSuccess = function() {
		
			var salesDetails = this.responseText;
			
			var salesDetailsArr = new Array();
			
			salesDetailsArr = salesDetails.split("{}");
			
			document.createquote.itemtext.value = salesDetailsArr[0];
			
			document.createquote.quantity.value = salesDetailsArr[1];
			
			document.createquote.rate.value = salesDetailsArr[2];
			
			fnCalculationsSales("createquote");

		};
		
		oAjax.get();
	}
}

function fnEditQuoteItemChange()
{
	var item = document.editquote.item.value;
	
	if(item == "")
	{
		document.editquote.itemtext.value = "";
		document.editquote.quantity.value = "";
		document.editquote.rate.value = "";
  	}
	
	else if(item == "[Add New]")
	{
		fnPopUpWindow("/addItemType.php&bPopup=true&itemType=Sales&isFromQuote=editQuote");
	}
	
	else
	{
		// MAKE AJAX CALL
		
		var oAjax = new AjaxWrapper;
		
		var sUrl = "/Calculations.php&salestype=" + item;
		
		sUrl = sUrl + "&calcHandler=getSalesType";
		
		sUrl = sUrl + "&sid=" + Date() + Math.random();
		
		oAjax.url = sUrl;
		
		oAjax.onSuccess = function() {
		
			var salesDetails = this.responseText;
			
			var salesDetailsArr = new Array();
			
			salesDetailsArr = salesDetails.split("{}");
			
			document.editquote.itemtext.value = salesDetailsArr[0];
			
			document.editquote.quantity.value = salesDetailsArr[1];
			
			document.editquote.rate.value = salesDetailsArr[2];
			
			fnCalculationsSales("editquote");

		};
		
		oAjax.get();
	}
}



function fnCalcQuoteVatAmount(whichform)
{
	if (whichform == "createquote")
	{
		var item = document.createquote.item.options[document.createquote.item.selectedIndex].text;
		vatamount = "";
		vatrate = document.createquote.vatrate.options[document.createquote.vatrate.selectedIndex].text;
	}
	else if (whichform == "editquote")
	{
		var item = document.editquote.item.options[document.editquote.item.selectedIndex].text;
		vatamount = "";
		vatrate = document.editquote.vatrate.options[document.editquote.vatrate.selectedIndex].text;
	}
	if(vatrate == "Average" || vatrate == "Zero Rated" || vatrate == "Exempt" || vatrate == "Out of Scope" || vatrate == "--Select--")
	{
		vatamount =0.00;
		vatamount = parseFloat(vatamount).toFixed(2);
	}
	else
	{
		if (whichform == "createquote")
		{
			netamount =document.createquote.netamount.value;
		}
		else if (whichform == "editquote")
		{
			netamount =document.editquote.netamount.value;
		}
		vatrate = vatrate.replace("%","");
		vatrate = parseFloat(vatrate);
		vatamount =  (parseFloat(netamount) * vatrate / 100).toFixed(2);
	}
	if(whichform == "createquote")
	{
		document.createquote.vatamount.value = vatamount;
	}
	else if(whichform == "editquote")
	{
		document.editquote.vatamount.value = vatamount;
	}
	
}

function fnCalcQuoteNetAmount(whichform)
{
	if (whichform == "createquote")
	{
		quantity = document.createquote.quantity.value;
		rate = document.createquote.rate.value;
	}
	else if (whichform == "editquote")
	{
		quantity = document.editquote.quantity.value;
		rate = document.editquote.rate.value;
	}
	netamount = parseFloat(quantity)*parseFloat(rate);
	netamount = parseFloat(netamount).toFixed(2);
	
	if(whichform == "createquote")
	{
		document.createquote.netamount.value = netamount;
		fnCalcQuoteVatAmount("createquote");
	}
	else if(whichform == "editquote")
	{
		document.editquote.netamount.value = netamount;
		fnCalcQuoteVatAmount("editquote");
	}
}

function fnUpdateQuote()
{
	if(document.getElementById("quoteundoitem").style.display == "")
	{
		alert("Please Save or Undo the Item !");
		return false;
	}
	else if(document.editquote.customername.value == "")
	{
		alert("Please Select Customer !");
		document.editquote.customername.focus();
		return false;
	}
	else if (document.editquote.terms.value == "")
	{
		alert("Please Select Terms !");
		document.editquote.terms.focus();
		return false;
	}
	else if (document.editquote.quotestyle.value == "")
	{
		alert("Please Select Quote Style !");
		document.editquote.quotestyle.focus();
		return false;
	}
	else if (document.editquote.quotedate.value == "")
	{
		alert("Please Enter Quote Date !");
		document.editquote.quotedate.focus();
		return false;
	}
	document.editquote.action = "/updateHandler.php";
	document.editquote.updateHandler.value = "updateQuote";
	document.editquote.method = "POST";
	document.editquote.submit();
}


function confirmExit()
{
	if (needToConfirm)
	document.listquotes.action = "deleteQuoteTempItems.php"; 
	return "Any Items created will be lost";
}


function fnDeleteQuote(quotenumber)
{
	if (confirm("Delete Quote Record ?"))
	{
		document.listquotes.action = "/deleteHandler.php";
		document.listquotes.deletequote.value = quotenumber;
		document.listquotes.deleteHandler.value = "deletequote";
		document.listquotes.method = "POST";
		document.listquotes.submit();
	}
}


function fnEditQuote(quotenumber)
{
	document.listquotes.action = "/quotes/edit";
	document.listquotes.editquote.value = quotenumber;
	document.listquotes.method = "POST";
	document.listquotes.submit();
}

function fnCreateQuote(dowhat)
{
	if(document.getElementById("quoteundoitem").style.display == "")
	{
		alert("Please Save or Undo the Item !");
		return false;
	}
	else if(document.createquote.customername.value == "")
	{
		alert("Please Select Customer !");
		document.createquote.customername.focus();
		return false;
	}
	else if (document.createquote.terms.value == "")
	{
		alert("Please Select Terms !");
		document.createquote.terms.focus();
		return false;
	}
	else if (document.createquote.quotestyle.value == "")
	{
		alert("Please Select quote Style !");
		document.createquote.quotestyle.focus();
		return false;
	}
	else if (document.createquote.quotedate.value == "")
	{
		alert("Please Enter quote Date !");
		document.createquote.quotedate.focus();
		return false;
	}
	
	needToConfirm = false;
	document.createquote.action = "/saveHandler.php";
	document.createquote.saveHandler.value = "saveQuote";
	document.createquote.dowhatQuote.value = dowhat;
	document.createquote.method = "POST";
	document.createquote.submit();
}

function fnDeleteQuoteItem(deletelinkid)
{
	var quotenumber = document.getElementById("quotenumber").value;

	// MAKE AJAX CALL
	
	var oAjax = new AjaxWrapper;
	
	var sUrl = "/deleteHandler.php?quotenumber=" + quotenumber;
	
	sUrl = sUrl + "&deleteHandler=deleteQuoteItem";
	
	sUrl = sUrl + "&deletelinkid=" + deletelinkid;
	
	sUrl = sUrl + "&sid=" + Date() + Math.random();
	
	oAjax.url = sUrl;
	
	oAjax.onSuccess = function() {

		document.getElementById("quoteitemdetails").innerHTML = this.responseText;
		
		fnGetQuoteCalc(quotenumber);

	};
	
	oAjax.get();
		
	showLoading("quoteitemdetails");
}


function fnConvertQuote(quotenumber)
{
  document.editquote.action = "/updateHandler.php";
  document.editquote.updateHandler.value = "updateQuote";
  document.editquote.convertQuote.value = "convertNow";
  document.editquote.method = "POST";
  document.editquote.submit();
}



/**************************************************************/

function showInvoiceItems(oImage, iInvoiceId, iType)
{
	var sImageSrc = oImage.src;
	
	sImageSrc = sImageSrc.toLowerCase();
	
	if(sImageSrc.indexOf("plus.gif") != -1)
	{
		oImage.src = "../images/minus.gif";
		
		// MAKE AJAX CALL
		
		var oAjax = new AjaxWrapper;
		
		var sUrl = "/selectHandler.php?selectHandler=showInvoiceItemsByInvoiceId";
		
		sUrl = sUrl + "&iInvoiceId=" + iInvoiceId;
		
		sUrl = sUrl + "&iType=" + iType;
		
		sUrl = sUrl + "&sid=" + Date() + Math.random();
			
		if(iType == 1)
		{
			var sTargetDivId =  "salesItemsWrapper";
		}
		
		else if(iType == 2)
		{
			var sTargetDivId =  "purchaseItemsWrapper";
		}
		
		
		
		oAjax.url = sUrl;
		
		oAjax.onSuccess = function() {
			
			var sResponse = this.responseText;
			
			var aResponse = new Array();
			
			aResponse = sResponse.split("{}");
			
			loadInnerHtml(document.getElementById(sTargetDivId), aResponse[1]);
		};
		
		oAjax.get();
		
		showLoading(sTargetDivId);
	}
	
	else
	{
		oImage.src = "../images/plus.gif";
		
		clearInnerHtml(document.getElementById(sTargetDivId));
	}
}

function showInvoicePayments(oImage, iInvoiceId, iType)
{
	var sImageSrc = oImage.src;
	
	sImageSrc = sImageSrc.toLowerCase();
	
	if(iType == 1)
	{
		var sTargetDivId =  "salesPaymentsWrapper_" + iInvoiceId;
    var sTargetTr = "salesInvoicePayments_" + iInvoiceId;
	}

	else if(iType == 2)
	{
		var sTargetDivId =  "purchasePaymentsWrapper_" + iInvoiceId;
    var sTargetTr = "purchaseInvoicePayments_" + iInvoiceId;
	}
	
	if(sImageSrc.indexOf("plus.gif") != -1)
	{
		oImage.src = "../images/minus.gif";
		
		// MAKE AJAX CALL
		
		var oAjax = new AjaxWrapper;
		
		var sUrl = "/selectHandler.php?selectHandler=showInvoicePaymentsByInvoiceId";
		
		sUrl = sUrl + "&iInvoiceId=" + iInvoiceId;
		
		sUrl = sUrl + "&iType=" + iType;
		
		sUrl = sUrl + "&sid=" + Date() + Math.random();
		
		oAjax.url = sUrl;
		
		oAjax.onSuccess = function() {
			
			var sResponse = this.responseText;
			
			var aResponse = new Array();
			
			aResponse = sResponse.split("{}");
			
			loadInnerHtml(document.getElementById(sTargetDivId), aResponse[1]);
		};
		
		oAjax.get();
    
    stripClass(document.getElementById(sTargetTr), "gGeneralHidden");
		
		showLoading(sTargetDivId);
	}
	
	else
	{
		oImage.src = "../images/plus.gif";
		
		clearInnerHtml(document.getElementById(sTargetDivId));
    
    addClass(document.getElementById(sTargetTr), "gGeneralHidden");
	}
}


/**************************************************************/



/******************* SALES INVOICE FUNCTIONS *******************/

function fnApplyInvoiceCreditNote(iInvoiceId)
{
	var sUrl = "/salesInvoices/edit&invoiceid=" + iInvoiceId;
	
	sUrl = sUrl + "&exportHandler=showCreditNote";
	
	fnDoNav(sUrl);
}

function fnApplyInvoicePayment(iInvoiceId, iType)
{
	if(iType == 1)
	{
		var sUrl = "/salesInvoices/edit&invoiceid=" + iInvoiceId;
	}
	
	if(iType == 2)
	{
		var sUrl = "/purchaseInvoices/edit&invoiceid=" + iInvoiceId;
	}
	
	sUrl = sUrl + "&exportHandler=showPayment";
	
	fnDoNav(sUrl);
}

function fnCancelCreateInvoice(sCancelWhat, sFormObj)
{
	var deleteHandler;
	var invoicenumber;
	
	if(sCancelWhat == "Sales")
	{
		deleteHandler = "deleteTempSalesItems";
		invoicenumber = document.createinvoice.invoicenumber.value;
	}
	else if(sCancelWhat == "Quote")
	{
		deleteHandler = "deleteTempQuoteItems";
		invoicenumber = document.createquote.quotenumber.value;
	}
	else if(sCancelWhat == "Purchase")
	{
		deleteHandler = "deleteTempPurchaseItems";
		invoicenumber = document.createpurchaseinvoice.referencenumber.value;
	}
	else if(sCancelWhat == "PO")
	{
		deleteHandler = "deleteTempPOItems";
		invoicenumber = document.createpurchaseinvoice.referencenumber.value;
	}

	sFormObj.action = "/deleteHandler.php";
	sFormObj.elements.deleteHandler.value = deleteHandler;
	sFormObj.elements.tempInvoicenumber.value = invoicenumber;
	sFormObj.method = "POST";
	sFormObj.submit();
}


function fnChangeTerms(oElement,sWhat)
{
	var sHandler = (sWhat == "Sales")?"changeSalesTerms":"changePurchaseTerms";
	
	var sMemberId = oElement.value;
	
	// MAKE AJAX CALL
	
	var oAjax = new AjaxWrapper;
	
	var sUrl = "/updateHandler.php?updateHandler=" + sHandler;
	
	sUrl = sUrl + "&sMemberId=" + sMemberId;
	
	sUrl = sUrl + "&sid=" + Date() + Math.random();
	
	oAjax.url = sUrl;
	
	oAjax.onSuccess = function() {
		
		var sResponse = this.responseText;
		
		document.getElementById("termsdata").innerHTML = sResponse;
		
		if(sWhat == "Purchase")
		{
			fnGetDueDate("createpurchaseinvoice");
		}
		
	};
	
	oAjax.get();
}


function fnEditInvoiceReference(oElement)
{
	oElement.style.background = "#FFFFFF";
	oElement.readOnly = false;
}


function fnUpdateInvoiceReference(oElement,sWhat)
{
	oElement.readOnly = true;
	
	var invoicereference = document.getElementById("invoicereference").value;
	
	var invoiceid = document.getElementById("invoiceid").value;
	
	// MAKE AJAX CALL
	
	var oAjax = new AjaxWrapper;
	
	var sUrl = "/updateHandler.php?updateHandler=updateInvoiceReference";
	
	sUrl = sUrl + "&invoicereference=" + invoicereference;
	
	sUrl = sUrl + "&invoiceid=" + invoiceid;
	
	sUrl = sUrl + "&sWhat=" + sWhat;
	
	sUrl = sUrl + "&sid=" + Date() + Math.random();
	
	oAjax.url = sUrl;
	
	oAjax.onSuccess = function() {
		
		var sResponse = this.responseText;
		
		document.getElementById("invoicereference").value = sResponse;
		document.getElementById("invoicereference").style.background = "#191B1C";
		document.getElementById("invoicereference").readOnly = true;
		
	};
	
	oAjax.get();
}

function fnEmailInvoice(invoiceid)
{
	// MAKE AJAX CALL
	
	var oAjax = new AjaxWrapper;
	
	var sUrl = "/updateHandler.php?updateHandler=emailSalesInvoice";
	
	sUrl = sUrl + "&invoiceid=" + invoiceid;
	
	sUrl = sUrl + "&sid=" + Date() + Math.random();
	
	oAjax.url = sUrl;
	
	oAjax.onSuccess = function() {
		
		var sResponse = this.responseText;
		
		var aResponse = sResponse.split("{}");
		
		loadInnerHtml(document.getElementById("emailOutput"), aResponse[1]);
		
		fnTimedLayer("emailOutput");
		
	};
	
	oAjax.get();
	
	showLoading("emailOutput");
}


function markInvoiceAsSent(iInvoiceId, iInvoiceType, iMarkedFromList)
{
   var sMark = (iInvoiceType == 1) ? "sent" : "processed";
   
		// MAKE AJAX CALL
		
		var oAjax = new AjaxWrapper;
		
		var sUrl = "/updateHandler.php?updateHandler=markInvoiceAsSent";
		
		sUrl = sUrl + "&iInvoiceId=" + iInvoiceId;
		
		sUrl = sUrl + "&iInvoiceType=" + iInvoiceType;
		
		sUrl = sUrl + "&sid=" + Date() + Math.random();
		
		oAjax.url = sUrl;
		
		oAjax.onSuccess = function() {
			
			var sResponse = this.responseText;
			
			var aResponse = sResponse.split("{}");
			
			if(iMarkedFromList)
			{
				loadInnerHtml(document.getElementById("markAsSentSpan_"+iInvoiceId), '<img src="../images/valid.png">');
			}
			
			else
			{
				loadInnerHtml(document.getElementById("emailOutput"), aResponse[1]);
				
				fnTimedLayer("emailOutput");
				
				window.location.href = window.location.href;
			}
			
		};
		
		oAjax.get();
		
		showLoading("emailOutput");
	
}


function fnShowRepeatData(sObj)
{
	if(sObj.checked)
	{
		document.getElementById("repeatdata").style.display = "";
	}
	else
	{
		document.getElementById("repeatdata").style.display = "none";
	}
}


function fnInvoiceDetails(sInvoiceNumber,sLinkPage,sArchived)
{
	var sUrl = "/salesInvoices/edit&invoiceid=" + sInvoiceNumber;
	
	sUrl = sUrl + "&sLinkPage=" + sLinkPage;
	
	if(sArchived)
	{
		sUrl = sUrl + "&sArchived=" + sArchived;
	}
	
	if(document.getElementById("page"))
	{
		sUrl = sUrl + "&page=" + document.getElementById("page").value;
	}
	
	fnDoNav(sUrl);
}

function fnCheckInvoiceAvailability(iIsForInvoiceNumber)
{
	var invoicenumber = document.createinvoice.invoicenumber.value;
	
	var invoicereference = document.createinvoice.invoicereference.value;
	
	var customername = document.createinvoice.customername.value;

	// MAKE AJAX CALL
	
	var oAjax = new AjaxWrapper;
	
	var sUrl = "/selectHandler.php?selectHandler=checkInvoiceAvailability";
	
	sUrl = sUrl + "&iIsForInvoiceNumber=" + iIsForInvoiceNumber;
	
	sUrl = sUrl + "&customername=" + customername;
	
	if(iIsForInvoiceNumber == 1)
	{
		sUrl = sUrl + "&invoicenumber=" + invoicenumber;
	}
	
	if(iIsForInvoiceNumber == 2)
	{
		sUrl = sUrl + "&invoicereference=" + invoicereference;
	}
	
	sUrl = sUrl + "&sid=" + Date() + Math.random();
	
	oAjax.url = sUrl;
	
	oAjax.onSuccess = function() {
		
		var sResult = this.responseText;
		
		var aResultArray = new Array();
		
		aResultArray = sResult.split("{}");
	
		if(iIsForInvoiceNumber == 1)
		{
			if(aResultArray[0] == "") clearInnerHtml(document.getElementById("invoiceavailability"));
			
			else loadInnerHtml(document.getElementById("invoiceavailability"), aResultArray[0]);
		}
		
		if(iIsForInvoiceNumber == 2)
		{
			if(aResultArray[0] == "") clearInnerHtml(document.getElementById("invoiceReferenceAvailability"));
			
			else loadInnerHtml(document.getElementById("invoiceReferenceAvailability"), aResultArray[0]);
		}
		
		
	};
	
	oAjax.get();
}


function fnArchiveSales(checkboxname,iInvoiceId,sIsButton,sCheckValue)
{
	var checkedvalue = document.getElementById(checkboxname).value;
	if(checkedvalue || sIsButton)
	{

                var oAjax = new AjaxWrapper;

		var url="/updateHandler.php";
		url = url + "?updateHandler=archiveSales";
		url = url + "&archive=" + iInvoiceId;
		url = url + "&checkedvalue=" + checkedvalue;
		url = url + "&sid="+Date()+Math.random();

                oAjax.url = url;
                oAjax.onSuccess = function() {
                    fnArchiveSuccess(iInvoiceId);
                };

                oAjax.get();
		
	}
}

function fnArchiveSuccess(iInvoiceId) {
        var iRow = document.getElementById("invoiceRow" + iInvoiceId);
        iRow.parentNode.removeChild(iRow);
}

function fnUnMarkDeleteSales(checkboxname,invoicenumber)
{
	var checkedvalue = document.getElementById(checkboxname).value;
	document.deletemarked.action = "/updateHandler.php";
	document.deletemarked.updateHandler.value = "unMarkDeleteSales";
	document.deletemarked.markdelete.value = invoicenumber;
	document.deletemarked.checkedvalue.value = checkedvalue;
	document.deletemarked.method = "POST";
	document.deletemarked.submit();
}

function fnSaveItem()
{
	if(document.createinvoice.item.value == "" ||document.createinvoice.item.value == "[Add New]")
	{
		alert("Please Select Sales Item !");
		document.createinvoice.item.focus();
		return false;
	}
	if (document.createinvoice.quantity.value == "")
	{
		alert("Please enter Quantity !");
		document.createinvoice.quantity.focus();
		return false;
	}
	if(document.createinvoice.project.value == "")
	{
		alert("Please Select Project !");
		document.createinvoice.project.focus();
		return false;
	}
	if(document.createinvoice.itemdate.value == "")
	{
		alert("Please Select Tax Point !");
		document.createinvoice.itemdate.focus();
		return false;
	}

	var invoicenumber = document.createinvoice.invoicenumber.value;
	var invoiceid = document.createinvoice.invoiceid.value;
	var invoicedate = document.createinvoice.invoicedate.value;
	var itemdate = document.createinvoice.itemdate.value;
	var customer = document.createinvoice.customername.value;
	var item = document.createinvoice.item.value;
	var itemtext = document.createinvoice.itemtext.value;
	var category = document.getElementById("itemCategory").value;
	var itemcode = document.getElementById("itemcode").value;
	var project = document.createinvoice.project.value;
	var quantity = document.createinvoice.quantity.value;
	var rate = document.createinvoice.rate.value;              
	var iExchangeRateId = document.createinvoice.fromCurrency.value;
	var dExchangeRate = document.createinvoice.exchangeRate.value;
	
	// MAKE AJAX CALL
	
	var oAjax = new AjaxWrapper;
	
	var sUrl = "/saveHandler.php?saveHandler=saveSalesItem";
	
	sUrl = sUrl + "&calcHandler=getSalesType";
	
	sUrl = sUrl + "&invoiceid=" + invoiceid;
	
	sUrl = sUrl + "&invoicenumber=" + invoicenumber;
	
	sUrl = sUrl + "&invoicedate=" + invoicedate;
	
	sUrl = sUrl + "&itemdate=" + itemdate;
	
	sUrl = sUrl + "&customer=" + customer;
	
	sUrl = sUrl + "&item=" + item;
	
	sUrl = sUrl + "&itemtext=" + itemtext;
	
	sUrl = sUrl + "&project=" + project;
	
	sUrl = sUrl + "&quantity=" + quantity;
	
	sUrl = sUrl + "&rate=" + rate;                   
	
	sUrl = sUrl + "&exchangeRateId=" + iExchangeRateId;
	
	sUrl = sUrl + "&exchangeRate=" + dExchangeRate;
	
	sUrl = sUrl + "&sid=" + Date() + Math.random();
	
	oAjax.url = sUrl;
	
	oAjax.onSuccess = function() {

		document.getElementById("salesitemdetails").innerHTML = this.responseText;
		
		fnGetCalc(invoicenumber);

	};
	
	oAjax.get();
	
	document.getElementById("salesitemadd").style.display="none";
	document.getElementById("salesadditem").style.display="";
	document.getElementById("salessaveitem").style.display="none";
	document.getElementById("salesundoitem").style.display="none";
	document.createinvoice.item.selectedIndex = 0;
	document.createinvoice.itemtext.value = "";
	document.createinvoice.quantity.value = "";
	document.createinvoice.rate.value = "";
	fnGetCalc(invoicenumber);
	
	showLoading("salesitemdetails");
}

function fnGetCalc(invoicenumber)
{
	// MAKE AJAX CALL
	
	var oAjax = new AjaxWrapper;
	
	var sUrl = "/Calculations.php&invoicenumber=" + invoicenumber;
	
	sUrl = sUrl + "&calcHandler=SalesCalc";
	
	sUrl = sUrl + "&sid=" + Date() + Math.random();
	
	oAjax.url = sUrl;
	
	oAjax.onSuccess = function() {
	
		var totals = this.responseText;
		
		var totalsArray = new Array();
		
		totalsArray = totals.split("{}");
		
		document.getElementById("salessubtotal").innerHTML = parseFloat(totalsArray[0]).toFixed(2);
		
		document.getElementById("salesvattotal").innerHTML = parseFloat(totalsArray[1]).toFixed(2);
		
		document.getElementById("salesdiscounttotal").innerHTML = parseFloat(totalsArray[2]).toFixed(2);
		
		document.getElementById("salestotal").innerHTML = parseFloat(totalsArray[3]).toFixed(2);
		
		updateRepeatAmountOfInvoices(1);

	};
	
	oAjax.get();
}


function fnItemChange(bOtherTypes)
{
	var item = document.createinvoice.item.value;
	
	if(item == "")
	{
		document.createinvoice.itemtext.value = "";
		document.createinvoice.quantity.value = "";
		document.createinvoice.rate.value = "";
	}

	if(item == "[Add New]")
	{
		fnPopUpWindow('/salesItems/add&bPopup=1&bOtherTypes='+bOtherTypes);
                //fnPopUpWindow('/addItemType.php&bPopup=true&itemType=Sales&bOtherTypes='+bOtherTypes);
	}
	
	if(item != "[Add New]" && item != "")
	{
		// MAKE AJAX CALL
		
		var oAjax = new AjaxWrapper;
		
		var sUrl = "/Calculations.php&salestype=" + item;
		
		sUrl = sUrl + "&calcHandler=getSalesType";
		
		sUrl = sUrl + "&sid=" + Date() + Math.random();
		
		oAjax.url = sUrl;
		
		oAjax.onSuccess = function() {

		stateChangedSalesType(this.responseText);

		};
		
		oAjax.get();
		
	}
	
}

function stateChangedSalesType(sResponseText)
{
	var salesDetails = sResponseText;
	
	var salesDetailsArr = new Array();
	
	salesDetailsArr = salesDetails.split("{}");
	
	document.createinvoice.itemtext.value = salesDetailsArr[0];
	
	document.createinvoice.quantity.value = salesDetailsArr[1];
	
	document.createinvoice.rate.value = salesDetailsArr[2];
	
	fnCalculationsSales("createinvoice");
}

function fnCalcVatAmount(whichform)
{
	/*if (whichform == "createinvoice")
	{
		var item = document.createinvoice.item.options[document.createinvoice.item.selectedIndex].text;
		vatamount = "";
		vatrate = document.createinvoice.vatrate.options[document.createinvoice.vatrate.selectedIndex].text;
	}
	if(vatrate == "Average" || vatrate == "Zero Rated" || vatrate == "Exempt" || vatrate == "Out of Scope" || vatrate == "--Select--")
	{
		vatamount =0.00;
		vatamount = parseFloat(vatamount).toFixed(2);
	}
	else
	{
		if (whichform == "createinvoice")
		{
			netamount =document.createinvoice.netamount.value;
		}
		vatrate = vatrate.replace("%","");
		vatrate = parseFloat(vatrate);
		vatamount =  (parseFloat(netamount) * vatrate / 100).toFixed(2);
	}
	if(whichform == "createinvoice")
	{
		document.createinvoice.vatamount.value = vatamount;
	}*/
}

function fnCalcVatAmountSales(whichform)
{
	/*if (whichform == "createinvoice")
	{
		var item = document.createinvoice.item.options[document.createinvoice.item.selectedIndex].text;
		vatamount = "";
		vatrate = document.createinvoice.vatrate.options[document.createinvoice.vatrate.selectedIndex].text;
	}
	if(vatrate == "Average" || vatrate == "Zero Rated" || vatrate == "Exempt" || vatrate == "Out of Scope" || vatrate == "--Select--")
	{
		vatamount =0.00;
		vatamount = parseFloat(vatamount).toFixed(2);
	}
	else
	{
		if (whichform == "createinvoice")
		{
			netamount =document.createinvoice.netamount.value;
		}
		vatrate = vatrate.replace("%","");
		vatrate = parseFloat(vatrate);
		vatamount =  (parseFloat(netamount) * vatrate / 100).toFixed(2);
	}
	if(whichform == "createinvoice")
	{
		document.createinvoice.quantity.value = "1";
		document.createinvoice.rate.value = netamount;
    document.createinvoice.vatamount.value = vatamount;
	}*/
}


function fnCalculationsSales(whichform)
{
	if (whichform == "createinvoice")
	{
		/*var item = document.createinvoice.item.options[document.createinvoice.item.selectedIndex].text;
		var quantity = document.createinvoice.quantity.value;
		var rate = document.createinvoice.rate.value;
		var netamount = document.createinvoice.netamount.value;
		var vatamount = document.createinvoice.vatamount.value;
		var vatrate = document.createinvoice.vatrate.options[document.createinvoice.vatrate.selectedIndex].text;
		
		if(quantity == "")
		{
			quantity = "1";
		}
		
		if(rate == "")
		{
			rate = "0.00";
		}
		
		if(netamount == "")
		{
			netamount = "0.00";
		}
		
		if(vatrate == "" || vatrate == "Average" || vatrate == "Zero Rated" || vatrate == "Exempt" || vatrate == "Out of Scope" || vatrate == "--Select--")
		{
			vatrate = "0.00";
		}
		
		if(vatamount == "")
		{
			vatamount = "0.00";
		}
		
		netamount = (parseFloat(quantity) * parseFloat(rate)).toFixed(2);
		vatrate = vatrate.replace("%","");
		vatamount =  (parseFloat(netamount) * parseFloat(vatrate) / 100).toFixed(2);
		document.createinvoice.netamount.value = netamount;
		document.createinvoice.vatamount.value = vatamount;*/
	}
	
	
	else if (whichform == "createquote")
	{
		/*var item = document.createquote.item.options[document.createquote.item.selectedIndex].text;
		var quantity = document.createquote.quantity.value;
		var rate = document.createquote.rate.value;
		var netamount = document.createquote.netamount.value;
		var vatamount = document.createquote.vatamount.value;
		var vatrate = document.createquote.vatrate.options[document.createquote.vatrate.selectedIndex].text;
		
		if(quantity == "")
		{
			quantity = "1";
		}
		
		if(rate == "")
		{
		  rate = "0.00";
		}
		
		if(netamount == "")
		{
			netamount = "0.00";
		}
		
		if(vatrate == "" || vatrate == "Average" || vatrate == "Zero Rated" || vatrate == "Exempt" || vatrate == "Out of Scope" || vatrate == "--Select--")
		{
			vatrate = "0";
		}
		
		if(vatamount == "")
		{
			vatamount = "0.00";
		}
		
		netamount = (parseFloat(quantity) * parseFloat(rate)).toFixed(2);
		vatrate = vatrate.replace("%","");
		vatamount =  (parseFloat(netamount) * parseFloat(vatrate) / 100).toFixed(2);
		document.createquote.netamount.value = netamount;
		document.createquote.vatamount.value = vatamount;*/
	}
	
	
	else if (whichform == "editquote")
	{
		/*var item = document.editquote.item.options[document.editquote.item.selectedIndex].text;
		var quantity = document.editquote.quantity.value;
		var rate = document.editquote.rate.value;
		var netamount = document.editquote.netamount.value;
		var vatamount = document.editquote.vatamount.value;
		var vatrate = document.editquote.vatrate.options[document.editquote.vatrate.selectedIndex].text;
		if(quantity == "")
		{
			quantity = "1";
		}
    
		
		if(rate == "")
		{
		  rate = "0.00";
		}
		
		if(netamount == "")
		{
			netamount = "0.00";
		}
		
		if(vatrate == "" || vatrate == "Average" || vatrate == "Zero Rated" || vatrate == "Exempt" || vatrate == "Out of Scope" || vatrate == "--Select--")
		{
			vatrate = "0";
		}
		
		if(vatamount == "")
		{
			vatamount = "0.00";
		}
		
		netamount = (parseFloat(quantity) * parseFloat(rate)).toFixed(2);
		vatrate = vatrate.replace("%","");
		vatamount =  (parseFloat(netamount) * parseFloat(vatrate) / 100).toFixed(2);
		document.editquote.netamount.value = netamount;
		document.editquote.vatamount.value = vatamount;*/
	}
}

function fnDeleteAllInvoice(what)
{
	if (confirm("Delete All Invoices ?"))
	{
		document.deletemarked.action = "/deleteHandler.php";
		if(what == "Sales")
		{
		  document.deletemarked.deleteHandler.value = "deleteAllSalesInvoice";
		}
		if(what == "Purchase")
		{
		  document.deletemarked.deleteHandler.value = "deleteAllPurchaseInvoice";
		}
		document.deletemarked.method = "POST";
		document.deletemarked.submit();
	}
}

function deleteSalesInvoice(iInvoiceId, sWhat)
{
	if (confirm("Are you sure you want to delete this invoice ?"))
	{
      // MAKE AJAX CALL
    		
    	var oAjax = new AjaxWrapper;
    	
    	var sUrl = "/deleteHandler.php?deleteHandler=deleteSalesInvoice";
    	
    	sUrl = sUrl + "&iInvoiceId=" + iInvoiceId;
    	
    	sUrl = sUrl + "&sid=" + Date() + Math.random();
    	
    	oAjax.url = sUrl;
    	
    	oAjax.onSuccess = function() {
    		
    		var sResponse = this.responseText;
    		
    		var aResponse = sResponse.split("{}");
    		
    		if(aResponse[0] == 1)
    		{
    			fnDoNav("/salesInvoices");
    		}
    		
    	};
    	
    	oAjax.get();
	}
}

function fnDeleteBatchSales(invoiceid,sWhat,iHasScannedDoc)
{
	if (confirm("Delete Invoice Record ?"))
	{
		if(iHasScannedDoc)
		{
			alert("This entry seems to have a scanned document attached to it !\nThis document will now be moved to unprocessed documents.");
		}
		
		// MAKE AJAX CALL
		
		var oAjax = new AjaxWrapper;
		
		var sUrl = "/deleteHandler.php?deleteHandler=deleteBatchSales";
		
		sUrl = sUrl + "&invoiceid=" + invoiceid;
		
		sUrl = sUrl + "&sWhat=Sales";
		
		sUrl = sUrl + "&sid=" + Date() + Math.random();
		
		oAjax.url = sUrl;
		
		oAjax.onSuccess = function() {

			loadInnerHtml(document.getElementById("batchsales"), this.responseText);

		};
		
		oAjax.get();
			
		showLoading("batchsales");
	}
}


function fnEditInvoice(invoicenumber)
{
	document.listinvoices.action = "/salesInvoices/edit";
	document.listinvoices.editinvoice.value = invoicenumber;
	document.listinvoices.method = "POST";
	document.listinvoices.submit();
}

function fnBatchProcessSales()
{
	document.batchinvoices.action = "/saveHandler.php";
	document.batchinvoices.saveHandler.value = "batchProcessSales";
	document.batchinvoices.method = "POST";
	document.batchinvoices.submit();
}

function fnCheckSalesInvoice(dowhatSales,sBatchProcess)
{
	if(document.getElementById("salesundoitem").style.display == "")
	{
		fnAlert("Please Save or Undo the Item !");
		
		return false;
	}
	
	else if(document.createinvoice.customername.value == "" || document.createinvoice.customername.value == "[Add New]")
	{
		fnAlert("Please Select Customer !", document.createinvoice.customername);
		
		return false;
	}
	
	else if (document.createinvoice.invoicenumber.value == "")
	{
		fnAlert("Please Enter Invoice Number !", document.createinvoice.invoicenumber);
		
		return false;
	}
	
	var invoicenumber = document.createinvoice.invoicenumber.value;
	
	var invoicereference = document.createinvoice.invoicereference.value;
	
	var customername = document.createinvoice.customername.value;

	// MAKE AJAX CALL
	
	var oAjax = new AjaxWrapper;
	
	var sUrl = "/selectHandler.php?selectHandler=getSalesInvoiceDetails";
	
	sUrl = sUrl + "&invoicenumber=" + invoicenumber;
	
	sUrl = sUrl + "&invoicereference=" + invoicereference;
	
	sUrl = sUrl + "&customername=" + customername;
	
	sUrl = sUrl + "&sid=" + Date() + Math.random();
	
	oAjax.url = sUrl;
	
	oAjax.onSuccess = function() {
		
		var sResult = this.responseText;
		
		var aResultArray = new Array();
		
		aResultArray = sResult.split("{}");
		
		if(aResultArray[0] == 1)
		{
			fnAlert("Sales Invoice with the same invoice number already exists\nInvoice#:"+invoicenumber, document.createinvoice.invoicenumber);
			
			return false;
			
		}
		
		else if(aResultArray[0] == 2)
		{
			fnAlert("Sales Invoice from this Customer with the same invoice reference already exists\nReference#:"+invoicereference, document.createinvoice.invoicereference);
			
			return false;
		}
		
		else
		{
			fnCreateInvoice(dowhatSales,sBatchProcess);
		}

	};
	
	oAjax.get();
}

function fnCreateInvoice(dowhat,sBatchProcess)
{
	if(document.getElementById("salesundoitem").style.display == "")
	{
		alert("Please Save or Undo the Item !");
		return false;
	}
	if(document.createinvoice.customername.value == "" || document.createinvoice.customername.value == "[Add New]")
	{
		alert("Please Select Customer !");
		document.createinvoice.customername.focus();
		return false;
	}
	if(document.createinvoice.invoicenumber.value == "")
	{
		alert("Please Enter Invoice Number !");
		document.createinvoice.invoicenumber.focus();
		return false;
	}
	if(document.createinvoice.terms.value == "")
	{
		alert("Please Select Terms !");
		document.createinvoice.terms.focus();
		return false;
	}
	if(document.createinvoice.invoicestyle.value == "")
	{
		alert("Please Select Invoice Style !");
		document.createinvoice.invoicestyle.focus();
		return false;
	}
	if(document.createinvoice.invoicedate.value == "")
	{
		alert("Please Enter Invoice Date !");
		document.createinvoice.invoicedate.focus();
		return false;
	}

	var repeatperiod;
	var repeatstartdate;
	var repeatenddate;
	if(document.getElementById("repeatcheck"))
	{
		if(document.getElementById("repeatcheck").checked)
		{
			if(document.getElementById("repeatperiod").value == "")
			{
				alert("Please Select Repeat Period !");
				document.getElementById("repeatperiod").focus();
				return false;
			}
			else if(document.getElementById("repeatstartdate").value == "")
			{
				alert("Please Select Repeat Start Date !");
				document.getElementById("repeatstartdate").focus();
				return false;
			}
			else if(document.getElementById("repeatenddate").value == "")
			{
				alert("Please Select Repeat End Date !");
				document.getElementById("repeatenddate").focus();
				return false;
			}
		}
	
		if(document.getElementById("repeatcheck").checked)
		{
			repeatperiod = document.getElementById("repeatperiod").value;
			repeatstartdate = document.getElementById("repeatstartdate").value;
			repeatenddate = document.getElementById("repeatenddate").value;
			if(!confirm("This Invoice will be repeated every " + repeatperiod))
			{
				return false;
			}
		}
	}
	var saveHandler = (sBatchProcess == "batchprocess" )?"saveBatchSales":"saveSalesInvoice";
	
	document.createinvoice.action = "/saveHandler.php&t=salesInvoices";
	document.createinvoice.saveHandler.value = saveHandler;
	document.createinvoice.dowhatSales.value = dowhat;
	document.createinvoice.method = "POST";
	document.createinvoice.submit();
}

function updateSalesInvoice()
{
	document.createinvoice.action = "/updateHandler.php";
	document.createinvoice.updateHandler.value = "updateSalesInvoice";
	document.createinvoice.method = "POST";
	document.createinvoice.submit();
}


function fnShowInvoiceItems(invoiceid,sWhat)
{
	var imgsrc = document.getElementById("img"+invoiceid).src;
	imgsrc = imgsrc.toLowerCase();
	if(imgsrc.indexOf("plus.gif") != -1)
	{
		document.getElementById("img"+invoiceid).src = "../images/minus.gif";
		document.getElementById("row"+invoiceid).className = "sHovered";
		document.getElementById(invoiceid).style.display = "";
		xmlHttp=GetXmlHttpObject();
		if (xmlHttp==null)
		{
			alert ("Browser does not support HTTP Request");
			return;
		}
		var sHandler = (sWhat == "Sales")?"getSalesItems":"getPurchaseItems";
		var url="/updateHandler.php?invoiceid=" + invoiceid;
		url = url + "&updateHandler=" + sHandler;
		url= url + "&sWhat=" + sWhat;
		url = url + "&sid="+Date()+Math.random();
		xmlHttp.onreadystatechange=function(){fnShowItemsSuccess(invoiceid);};
		xmlHttp.open("GET",url,true);
		xmlHttp.send(null);
	}
	else
	{
		document.getElementById("img"+invoiceid).src = "../images/plus.gif";
		document.getElementById("row"+invoiceid).className = "sHover";
		document.getElementById(invoiceid).style.display = "none";
	}
}

function fnShowItemsSuccess(invoiceid)
{
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
	 {
		document.getElementById(invoiceid).innerHTML = xmlHttp.responseText;
	 }
}

function fnDeleteItem(deletelinkid)
{
	var invoicenumber = document.createinvoice.invoicenumber.value;

	// MAKE AJAX CALL
	
	var oAjax = new AjaxWrapper;
	
	var sUrl = "/deleteHandler.php?invoicenumber=" + invoicenumber;
	
	sUrl = sUrl + "&deleteHandler=deleteSalesInvoiceItem";
	
	sUrl = sUrl + "&deletelinkid=" + deletelinkid;
	
	sUrl = sUrl + "&sid=" + Date() + Math.random();
	
	oAjax.url = sUrl;
	
	oAjax.onSuccess = function() {

		document.getElementById("salesitemdetails").innerHTML = this.responseText;
		
		fnGetCalc(invoicenumber);

	};
	
	oAjax.get();
		
	showLoading("salesitemdetails");
}

/******************* REPEAT INVOICE FUNCTIONS ******************/

function fnChangeRepeatInvoice(sWhat)
{
	//  SALES
	if(sWhat == "Sales")
	{
		var sForm = document.createinvoice;
		var sVal = "undoRepeatInvoiceSales";
	}
	
	// PURCHASE
	else if(sWhat == "Purchase")
	{
		var sForm = document.createpurchaseinvoice;
		var sVal = "undoRepeatInvoicePurchase";
	}
	
	var repeatcheck = document.getElementById("repeatcheck").value;
	var repeatperiod;
	var repeatstartdate;
	var repeatenddate;
	
	if(document.getElementById("repeatcheck").checked)
	{
		document.getElementById("repeatdata").style.display = "";
	}
	
	else
	{
		if(!confirm("Unchecking this will not repeat this invoice any more"))
		{
			return false;
		}
		else
		{
			sForm.action = "/updateHandler.php";
			sForm.updateHandler.value = sVal;
			sForm.method = "POST";
			sForm.submit();
		}
	}
}

function fnSaveRepeatInvoice(sObj,sWhat)
{
	//  SALES
	if(sWhat == "Sales")
	{
		var sForm = document.createinvoice;
		var sVal = "saveRepeatInvoiceSales";
	}
	
	// PURCHASE
	else if(sWhat == "Purchase")
	{
		var sForm = document.createpurchaseinvoice;
		var sVal = "saveRepeatInvoicePurchase";
	}
	
	// EDIT
	if(sObj.value == "Edit")
	{
		document.getElementById("repeatperiod").disabled = false;
		document.getElementById("repeatstartdate").readOnly = false;
		document.getElementById("repeatenddate").readOnly = false;
		sObj.value="Save";
	}
	
	// SAVE
	else if(sObj.value == "Save")
	{
		var repeatcheck = document.getElementById("repeatcheck").value;
		var repeatperiod;
		var repeatstartdate;
		var repeatenddate;
		
		if(document.getElementById("repeatcheck").checked)
		{
			document.getElementById("repeatdata").style.display = "";
			repeatperiod = document.getElementById("repeatperiod").value;
			repeatstartdate = document.getElementById("repeatstartdate").value;
			repeatenddate = document.getElementById("repeatenddate").value;
			if(repeatperiod == "")
			{
				alert("Please Select Repeat Period !");
				document.getElementById("repeatperiod").focus();
				return false;
			}
			else if(repeatstartdate == "")
			{
				alert("Please Select Repeat Start Date !");
				document.getElementById("repeatstartdate").focus();
				return false;
			}
			else if(repeatenddate == "")
			{
				alert("Please Select Repeat End Date !");
				document.getElementById("repeatenddate").focus();
				return false;
			}
			else if(!confirm("This Invoice will be repeated every " + repeatperiod + " until " + repeatenddate ))
			{
				return false;
			}
			sForm.action = "/updateHandler.php";
			sForm.updateHandler.value = sVal;
			sForm.method = "POST";
			sForm.submit();
		}
	}
}

function updateRepeatAmountOfInvoices(iType)
{
	if(document.getElementById("repeatcheck") && document.getElementById("repeatcheck").checked)
	{
		if(iType == 1)
		{
			var dInvoiceTotal = document.getElementById("salestotal").innerHTML;
		}
		
		else if(iType == 2)
		{
			var dInvoiceTotal = document.getElementById("purchasetotal").innerHTML;
		}
		
		var iNumberOfInvoices = document.getElementById("totalNumberOfInvoices").value;
		
		iNumberOfInvoices = parseInt(iNumberOfInvoices);
		
		var dAmountOfInvoices = (parseFloat(dInvoiceTotal) * parseInt(iNumberOfInvoices)).toFixed(2);
		
		document.getElementById("totalAmountOfInvoices").value = dAmountOfInvoices;
	}
}


function getRepeatDatesByNumberOfInvoices(iType)
{
	var iNumberOfInvoices = document.getElementById("totalNumberOfInvoices").value;
	
	var sRepeatPeriod = document.getElementById("repeatperiod").value;
	
	var sRepeatStartDate = document.getElementById("repeatstartdate").value;
	
	var aSplitStartDate = sRepeatStartDate.split("-");
	
	var sRepeatEndDate = new Date(aSplitStartDate[2], aSplitStartDate[1]-1, aSplitStartDate[0]);
	
	if(sRepeatPeriod == "")
	{
		fnAlert("Please select Repeat Period", document.getElementById("repeatperiod"));
		return false;
	}
	// SUBTRACT 1 FOR THE ORIGINAL INVOICE
	
	iNumberOfInvoices = iNumberOfInvoices - 2;
	
	if(sRepeatPeriod == "Day")
	{
		sRepeatEndDate.addDays(iNumberOfInvoices);
	}
	
	else if(sRepeatPeriod == "Week")
	{
		sRepeatEndDate.addDays(iNumberOfInvoices * 7);
	}
	
	else if(sRepeatPeriod == "Month")
	{
		sRepeatEndDate.addMonths(iNumberOfInvoices);
	}
	
	else if(sRepeatPeriod == "3 Months")
	{
		sRepeatEndDate.addMonths(iNumberOfInvoices * 3);
	}
	
	else if(sRepeatPeriod == "6 Months")
	{
		sRepeatEndDate.addMonths(iNumberOfInvoices * 6);
	}
	
	else if(sRepeatPeriod == "12 Months")
	{
		sRepeatEndDate.addMonths(iNumberOfInvoices * 12);
	}
	
	document.getElementById("repeatenddate").value = dateFormat(sRepeatEndDate, "dd-mm-yyyy");
	
	updateRepeatAmountOfInvoices(iType);
}


function getRepeatInvoicesNumberTotals(iType)
{
	var sRepeatPeriod = document.getElementById("repeatperiod").value;
	
	var sRepeatStartDate = document.getElementById("repeatstartdate").value;
	
	var sRepeatEndDate = document.getElementById("repeatenddate").value;
		
	var aSplitStartDate = sRepeatStartDate.split("-");
		
	var aSplitEndDate = sRepeatEndDate.split("-");
	
	if(iType == 1)
	{
		var dInvoiceTotal = document.getElementById("salestotal").innerHTML;
	}
	
	else if(iType == 2)
	{
		var dInvoiceTotal = document.getElementById("purchasetotal").innerHTML;
	}
		
	var iDays = 0;var iRepeatDays = 0;
		
	if(sRepeatPeriod != "" && sRepeatStartDate != "" && sRepeatEndDate != "")
	{
		sRepeatStartDate = new Date(aSplitStartDate[2], aSplitStartDate[1]-1, aSplitStartDate[0]);
		
		sRepeatEndDate = new Date(aSplitEndDate[2], aSplitEndDate[1]-1, aSplitEndDate[0]);
	
		if(sRepeatPeriod == "Day")
		{
			iNumberOfInvoices = sRepeatStartDate.getDaysBetween(sRepeatEndDate);
		}
		
		else if(sRepeatPeriod == "Week")
		{
			iNumberOfInvoices = sRepeatStartDate.getDaysBetween(sRepeatEndDate);
			
			iNumberOfInvoices = iNumberOfInvoices / 7;
		}
		
		else if(sRepeatPeriod == "Month")
		{
			iNumberOfInvoices = sRepeatStartDate.getMonthsBetween(sRepeatEndDate);
		}
		
		else if(sRepeatPeriod == "3 Months")
		{
			iNumberOfInvoices = sRepeatStartDate.getMonthsBetween(sRepeatEndDate);
			
			iNumberOfInvoices = iNumberOfInvoices / 3;
		}
		
		else if(sRepeatPeriod == "6 Months")
		{
			iNumberOfInvoices = sRepeatStartDate.getMonthsBetween(sRepeatEndDate);
			
			iNumberOfInvoices = iNumberOfInvoices / 6;
		}
		
		else if(sRepeatPeriod == "12 Months")
		{
			iNumberOfInvoices = sRepeatStartDate.getYearsBetween(sRepeatEndDate);
		}
		
		iNumberOfInvoices = parseInt(iNumberOfInvoices + 2);
		
		var dAmountOfInvoices = (dInvoiceTotal * iNumberOfInvoices).toFixed(2);
		
		document.getElementById("totalNumberOfInvoices").value = iNumberOfInvoices;
		
		updateRepeatAmountOfInvoices(iType);
	}
}


function getRepeatInvoiceStartDate(sElementId)
{
	var sInvoiceDate = document.getElementById(sElementId).value;
	
	var repeatperiod = document.getElementById("repeatperiod").value;
	
	var aSplitInvoiceDate = sInvoiceDate.split("-");
	
	var invoiceStartDate = new Date(aSplitInvoiceDate[2], aSplitInvoiceDate[1]-1, aSplitInvoiceDate[0]);
	
	var iDays = 0;
	
	if(repeatperiod == "Day")
	{
		invoiceStartDate.addDays(1);
	}
	
	else if(repeatperiod == "Week")
	{
		invoiceStartDate.addDays(7);
	}
	
	else if(repeatperiod == "Month")
	{
		invoiceStartDate.addMonths(1);
	}
	
	else if(repeatperiod == "3 Months")
	{
		invoiceStartDate.addMonths(3);
	}
	
	else if(repeatperiod == "6 Months")
	{
		invoiceStartDate.addMonths(6);
	}
	
	else if(repeatperiod == "12 Months")
	{
		invoiceStartDate.addMonths(12);
	}
	
	else
	{
		//
	}
	
	var displayInvoiceStartDate = dateFormat(invoiceStartDate, "dd-mm-yyyy");
	
	if(document.getElementById("repeatstartdate")) document.getElementById("repeatstartdate").value = displayInvoiceStartDate;
}

function getSalesInvoicePDF(iInvoiceNumber)
{
	var sUrl = "/exportHandler.php?exportHandler=getSalesInvoicePDF";
	
	sUrl = sUrl + "&invoicenumber=" + iInvoiceNumber;
	
	fnDoNav(sUrl);
}

/******************* PURCHASE INVOICE FUNCTIONS *******************/

function getPurchaseInvoicePDF(iReferenceNumber)
{
	var sUrl = "/exportHandler.php?exportHandler=getPurchaseInvoicePDF";
	
	sUrl = sUrl + "&invoicenumber=" + iReferenceNumber;
	
	fnDoNav(sUrl);
}

function fnGetPurchaseOrderPDF(iReferenceNumber)
{
	var sUrl = "/exportHandler.php?exportHandler=getPurchaseOrderPDF";
	
	sUrl = sUrl + "&invoicenumber=" + iReferenceNumber;
	
	fnDoNav(sUrl);
}

function fnApprovePO(invoicenumber)
{
	document.listpurchaseinvoices.action = "/updateHandler.php";
	document.listpurchaseinvoices.updateHandler.value = "approvePO";
	document.listpurchaseinvoices.invoicenumber.value = invoicenumber;
	document.listpurchaseinvoices.method = "POST";
	document.listpurchaseinvoices.submit();
}

function fnDeletePurOrder(invoiceid)
{
	if (confirm("Delete Purchase Order ?"))
	{
		document.listpurchaseinvoices.action = "/deleteHandler.php";
		document.listpurchaseinvoices.deletePurchaseOrder.value = invoiceid;
		document.listpurchaseinvoices.deleteHandler.value = "deletePurchaseOrder";
		document.listpurchaseinvoices.method = "POST";
		document.listpurchaseinvoices.submit();
	}
}

function fnPurchaseInvoiceDetails(sInvoiceNumber,sLinkPage,sArchived)
{
	
	var sUrl = "/purchaseInvoices/edit&invoiceid=" + sInvoiceNumber;
	
	sUrl = sUrl + "&sLinkPage=" + sLinkPage;
	
	if(sArchived)
	{
		sUrl = sUrl + "&sArchived=" + sArchived;
	}
	
	if(document.getElementById("page"))
	{
		sUrl = sUrl + "&page=" + document.getElementById("page").value;
	}
	
	fnDoNav(sUrl);
}

function fnCheckPInvoiceAvailability(iIsForInvoiceNumber, sWhat)
{
	var sDetailsLink = (sWhat == "purchaseOrder")?"checkOrderAvailability":"checkPurchaseInvoiceAvailability";
	
	var invoicenumber = document.createpurchaseinvoice.referencenumber.value;
	
	var invoicereference = document.createpurchaseinvoice.invoicereference.value;
	
	var suppliername = document.createpurchaseinvoice.suppliername.value;

	// MAKE AJAX CALL
	
	var oAjax = new AjaxWrapper;
	
	var sUrl = "/selectHandler.php?selectHandler=" + sDetailsLink;
	
	sUrl = sUrl + "&iIsForInvoiceNumber=" + iIsForInvoiceNumber;
	
	sUrl = sUrl + "&suppliername=" + suppliername;
	
	if(iIsForInvoiceNumber == 1)
	{
		sUrl = sUrl + "&invoicenumber=" + invoicenumber;
	}
	
	if(iIsForInvoiceNumber == 2)
	{
		sUrl = sUrl + "&invoicereference=" + invoicereference;
	}
	
	sUrl = sUrl + "&sid=" + Date() + Math.random();
	
	oAjax.url = sUrl;
	
	oAjax.onSuccess = function() {
		
		var sResult = this.responseText;
		
		var aResultArray = new Array();
		
		aResultArray = sResult.split("{}");
	
		if(iIsForInvoiceNumber == 1)
		{
			if(aResultArray[0] == "") clearInnerHtml(document.getElementById("pinvoiceavailability"));
			
			else loadInnerHtml(document.getElementById("pinvoiceavailability"), aResultArray[0]);
		}
		
		if(iIsForInvoiceNumber == 2)
		{
			if(aResultArray[0] == "") clearInnerHtml(document.getElementById("invoiceReferenceAvailability"));
			
			else loadInnerHtml(document.getElementById("invoiceReferenceAvailability"), aResultArray[0]);
		}
	};
	
	oAjax.get();
}

function fnArchivePurchase(checkboxname,iInvoiceId,sIsButton,sCheckValue)
{
	var checkedvalue = document.getElementById(checkboxname).value;
	if(checkedvalue || sIsButton)
	{

                var oAjax = new AjaxWrapper;

		var url="/updateHandler.php";
		url = url + "?updateHandler=archivePurchase";
		url = url + "&archive=" + iInvoiceId;
		url = url + "&checkedvalue=" + checkedvalue;
		url = url + "&sid="+Date()+Math.random();

                oAjax.url = url;
                oAjax.onSuccess = function() {
                    fnArchiveSuccess(iInvoiceId);
                };

                oAjax.get();

	}
}


function fnUnMarkDeletePurchase(checkboxname,referencenumber)
{
	var checkedvalue = document.getElementById(checkboxname).value;
	document.deletemarked.action = "/updateHandler.php";
	document.deletemarked.updateHandler.value = "unMarkDeletePurchase";
	document.deletemarked.markdelete.value = referencenumber;
	document.deletemarked.checkedvalue.value = checkedvalue;
	document.deletemarked.method = "POST";
	document.deletemarked.submit();
}

function fnCalcPurVatAmount(whichform)
{
	/*if (whichform == "createpurchaseinvoice")
	{
		vatamount = "";
		vatrate = document.createpurchaseinvoice.vatrate.options[document.createpurchaseinvoice.vatrate.selectedIndex].text;
	}
	if(vatrate == "Average" || vatrate == "Zero Rated" || vatrate == "Exempt" || vatrate == "Out of Scope" || vatrate == "--Select--")
	{
		vatamount =0.00;
		vatamount = parseFloat(vatamount).toFixed(2);
	}
	else
	{
		if (whichform == "createpurchaseinvoice")
		{
			netamount =document.createpurchaseinvoice.netamount.value;
		}
		vatrate = vatrate.replace("%","");
		vatrate = parseFloat(vatrate);
		vatamount =  (parseFloat(netamount) * vatrate / 100).toFixed(2);
	}
	if(whichform == "createpurchaseinvoice")
	{
		document.createpurchaseinvoice.vatamount.value = vatamount;
	}*/
	
}

function fnCalcVatAmountPurchase(whichform)
{
	/*if (whichform == "createpurchaseinvoice")
	{
		var item = document.createpurchaseinvoice.item.options[document.createpurchaseinvoice.item.selectedIndex].text;
		var vatamount = "";
		var vatrate = document.createpurchaseinvoice.vatrate.options[document.createpurchaseinvoice.vatrate.selectedIndex].text;
	}
	if(vatrate == "Average" || vatrate == "Zero Rated" || vatrate == "Exempt" || vatrate == "Out of Scope" || vatrate == "--Select--")
	{
		vatamount =0.00;
		vatamount = parseFloat(vatamount).toFixed(2);
	}
	else
	{
		if (whichform == "createpurchaseinvoice")
		{
			var netamount =document.createpurchaseinvoice.netamount.value;
		}
		vatrate = vatrate.replace("%","");
		vatrate = parseFloat(vatrate);
		vatamount =  (parseFloat(netamount) * vatrate / 100).toFixed(2);
	}
	if(whichform == "createpurchaseinvoice")
	{
		document.createpurchaseinvoice.quantity.value = "1";
		document.createpurchaseinvoice.rate.value = netamount;
    document.createpurchaseinvoice.vatamount.value = vatamount;
	}*/
}


function fnCalculationsPurchase(whichform)
{
	if (whichform == "createpurchaseinvoice")
	{
		/*var item = document.createpurchaseinvoice.item.value;
		var quantity = document.createpurchaseinvoice.quantity.value;
		var rate = document.createpurchaseinvoice.rate.value;
		var netamount = document.createpurchaseinvoice.netamount.value;
		var vatamount = document.createpurchaseinvoice.vatamount.value;
		var vatrate = document.createpurchaseinvoice.vatrate.options[document.createpurchaseinvoice.vatrate.selectedIndex].text;
		
		if(quantity == "")
		{
			quantity = "1";
		}
		
		if(rate == "")
		{
			rate = "0.00";
		}
		
		if(netamount == "")
		{
			netamount = "0.00";
		}
		
		if(vatrate == "" || vatrate == "Average" || vatrate == "Zero Rated" || vatrate == "Exempt" || vatrate == "Out of Scope" || vatrate == "--Select--")
		{
			vatrate = "0.00";
		}
		
		if(vatamount == "")
		{
			vatamount = "0.00";
		}
		
		netamount = (parseFloat(quantity) * parseFloat(rate)).toFixed(2);
		vatrate = vatrate.replace("%","");
		vatamount =  (parseFloat(netamount) * parseFloat(vatrate) / 100).toFixed(2);
		document.createpurchaseinvoice.netamount.value = netamount;
		document.createpurchaseinvoice.vatamount.value = vatamount;*/
	}
}


function fnGetDueDate(whichform)
{
	if(whichform == "createpurchaseinvoice")
	{
		var sInvoiceDate = document.createpurchaseinvoice.pinvoicedate.value;
		var iTerms = document.createpurchaseinvoice.terms.options[document.createpurchaseinvoice.terms.selectedIndex].text;
	}
	
	if(iTerms != "--Select--"  && iTerms != "Due on Receipt" && iTerms != "Paid in Full")
	{
		iTerms = iTerms.replace(" Days Net","");
		iTerms = parseInt(iTerms);
	}
	
	else
	{
		iTerms = iTerms.replace(iTerms,0);
		iTerms = parseInt(iTerms);
	}
	
	var aSplitInvoiceDate = sInvoiceDate.split("-");
	
	var sDueDate = new Date(aSplitInvoiceDate[2], aSplitInvoiceDate[1]-1, aSplitInvoiceDate[0]);
	
	sDueDate.addDays(iTerms);
	
	var displayDueDate = dateFormat(sDueDate, "dd-mm-yyyy");
	
	if(whichform == "createpurchaseinvoice")
	{
		document.createpurchaseinvoice.duedate.value = displayDueDate;
	}
}


function fnPurchaseItemChange()
{
	var item = document.createpurchaseinvoice.item.value;
  	
	if(item == "")
	{
		document.createpurchaseinvoice.quantity.value = "1";
		document.createpurchaseinvoice.rate.value = "";
	}
	
	else if(item == "[Add New]")
	{
		//fnPopUpWindow("/purchaseItems/add&bPopup=true&itemType=Purchase");
                fnPopUpWindow("/addItemType.php&bPopup=true&itemType=Purchase");
  	}
	
	else
	{
		// MAKE AJAX CALL
		
		var oAjax = new AjaxWrapper;
		
		var sUrl = "/Calculations.php&outgoingtype=" + item;
		
		sUrl = sUrl + "&calcHandler=getOutgoingType";
		
		sUrl = sUrl + "&sid=" + Date() + Math.random();
		
		oAjax.url = sUrl;
		
		oAjax.onSuccess = function() {

		stateChangedOutgoingType(this.responseText);

		};
		
		oAjax.get();
	}
	
}
function stateChangedOutgoingType(sResponseText)
{
		var salesDetails = sResponseText;
		
		var salesDetailsArr = new Array();
		
		salesDetailsArr = salesDetails.split("{}");
		
		document.createpurchaseinvoice.itemmemo.value = salesDetailsArr[0];
		
		document.createpurchaseinvoice.quantity.value = salesDetailsArr[1];
		
		document.createpurchaseinvoice.rate.value = salesDetailsArr[2];
		
		document.createpurchaseinvoice.category.value = salesDetailsArr[4];
		
		document.createpurchaseinvoice.itemcode.value = salesDetailsArr[5];
		
		fnCalculationsPurchase("createpurchaseinvoice");
}

function fnEditPurchaseOrder(editpurchaseinvoice)
{
	document.listpurchaseinvoices.action = "/purchaseOrders/edit";
	document.listpurchaseinvoices.editpurchaseinvoice.value = editpurchaseinvoice;
	document.listpurchaseinvoices.method = "POST";
	document.listpurchaseinvoices.submit();
}

function fnBatchProcessPurchase()
{
	document.batchinvoices.action = "/saveHandler.php";
	document.batchinvoices.saveHandler.value = "batchProcessPurchase";
	document.batchinvoices.method = "POST";
	document.batchinvoices.submit();
}

function fnCheckPurchaseInvoice(dowhatPurchase,sWhat,sBatchProcess)
{
	if(document.getElementById("purchaseundoitem").style.display == "")
	{
		fnAlert("Please Save or Undo the Item !");
		
		return false;
	}
	
	else if(document.createpurchaseinvoice.suppliername.value == ""|| document.createpurchaseinvoice.suppliername.value == "[Add New]")
	{
		fnAlert("Please Select Supplier !", document.createpurchaseinvoice.suppliername);
		
		return false;
	}
	
	else if (document.createpurchaseinvoice.invoicereference.value == "")
	{
		fnAlert("Please Enter Invoice Number !", document.createpurchaseinvoice.invoicereference);
		
		return false;
	}
	
	else if (document.createpurchaseinvoice.referencenumber.value == "")
	{
		fnAlert("Please Enter Reference Number !", document.createpurchaseinvoice.referencenumber);
		
		return false;
	}
	
	var referencenumber = document.createpurchaseinvoice.referencenumber.value;
	
	var invoicereference = document.createpurchaseinvoice.invoicereference.value;
	
	var suppliername = document.createpurchaseinvoice.suppliername.value;

	var sDetailsLink = (sWhat == "purchaseOrder")?"getPurchaseOrderDetails":"getPurchaseInvoiceDetails";
	
	var sAlertVar = (sWhat == "purchaseOrder")?"Purchase Order":"Purchase Invoice";

	// MAKE AJAX CALL
	
	var oAjax = new AjaxWrapper;
	
	var sUrl = "/selectHandler.php?selectHandler=" + sDetailsLink;
	
	sUrl = sUrl + "&referencenumber=" + referencenumber;
	
	sUrl = sUrl + "&invoicereference=" + invoicereference;
	
	sUrl = sUrl + "&suppliername=" + suppliername;
	
	sUrl = sUrl + "&sid=" + Date() + Math.random();
	
	oAjax.url = sUrl;
	
	oAjax.onSuccess = function() {
		
		var sResult = this.responseText;
		
		var aResultArray = new Array();
		
		aResultArray = sResult.split("{}");
		
		if(aResultArray[0] == 1)
		{
			fnAlert(sAlertVar + " with the same invoice reference already exists\nReference#:"+referencenumber, document.createpurchaseinvoice.referencenumber);
			
			return false;
			
		}
		
		else if(aResultArray[0] == 2)
		{
			fnAlert(sAlertVar + " from this Supplier with the same invoice number already exists\nInvoice#:"+invoicereference, document.createpurchaseinvoice.invoicereference);
			
			return false;
		}
		
		else
		{
			fnCreatePurchaseInvoice(dowhatPurchase,sWhat,sBatchProcess);
		}

	};
	
	oAjax.get();
}

function fnUpdatePurchaseOrder(dowhatPurchase,sWhat)
{
	if(document.getElementById("purchaseundoitem").style.display == "")
	{
		alert("Please Save or Undo the Item !");
		return false;
	}
	else if(document.createpurchaseinvoice.suppliername.value == ""|| document.createpurchaseinvoice.suppliername.value == "[Add New]")
	{
		alert("Please Select Supplier !");
		document.createpurchaseinvoice.suppliername.focus();
		return false;
	}
	else if (document.createpurchaseinvoice.invoicereference.value == "")
	{
		alert("Please Enter Order Number !");
		document.createpurchaseinvoice.invoicereference.focus();
		return false;
	}
	else if (document.createpurchaseinvoice.pinvoicedate.value == "")
	{
		alert("Please Enter Invoice Date !");
		document.createpurchaseinvoice.pinvoicedate.focus();
		return false;
	}
	else if (document.createpurchaseinvoice.duedate.value == "")
	{
		alert("Please Enter Due Date !");
		document.createpurchaseinvoice.duedate.focus();
		return false;
	}

	var sLinkVal = (sWhat == "purchaseOrder")?"updatePurchaseOrder":"";

	document.createpurchaseinvoice.action = "/updateHandler.php";
	document.createpurchaseinvoice.updateHandler.value = sLinkVal;
	document.createpurchaseinvoice.dowhatPurchase.value =  dowhatPurchase;
	document.createpurchaseinvoice.method = "POST";
	document.createpurchaseinvoice.submit();
}

function fnCreatePurchaseInvoice(dowhatPurchase,sWhat,sBatchProcess)
{
	if(document.getElementById("purchaseundoitem").style.display == "")
	{
		alert("Please Save or Undo the Item !");
		return false;
	}
	else if(document.createpurchaseinvoice.suppliername.value == ""|| document.createpurchaseinvoice.suppliername.value == "[Add New]")
	{
		alert("Please Select Supplier !");
		document.createpurchaseinvoice.suppliername.focus();
		return false;
	}
	else if (document.createpurchaseinvoice.invoicereference.value == "")
	{
		alert("Please Enter Invoice Number !");
		document.createpurchaseinvoice.invoicereference.focus();
		return false;
	}
	else if (document.createpurchaseinvoice.referencenumber.value == "")
	{
		alert("Please Enter Reference Number !");
		document.createpurchaseinvoice.referencenumber.focus();
		return false;
	}
	else if (document.createpurchaseinvoice.pinvoicedate.value == "")
	{
		alert("Please Enter Invoice Date !");
		document.createpurchaseinvoice.pinvoicedate.focus();
		return false;
	}
	else if (document.createpurchaseinvoice.duedate.value == "")
	{
		alert("Please Enter Due Date !");
		document.createpurchaseinvoice.duedate.focus();
		return false;
	}
	else if (document.createpurchaseinvoice.terms.value == "")
	{
		alert("Please Select Terms !");
		document.createpurchaseinvoice.terms.focus();
		return false;
	}
	
	var repeatperiod;
	var repeatstartdate;
	var repeatenddate;
	if(document.getElementById("repeatcheck"))
	{
		if(document.getElementById("repeatcheck").checked)
		{
			if(document.getElementById("repeatperiod").value == "")
			{
				alert("Please Select Repeat Period !");
				document.getElementById("repeatperiod").focus();
				return false;
			}
			else if(document.getElementById("repeatstartdate").value == "")
			{
				alert("Please Select Repeat Start Date !");
				document.getElementById("repeatstartdate").focus();
				return false;
			}
			else if(document.getElementById("repeatenddate").value == "")
			{
				alert("Please Select Repeat End Date !");
				document.getElementById("repeatenddate").focus();
				return false;
			}
		}
		
		if(document.getElementById("repeatcheck").checked)
		{
			repeatperiod = document.getElementById("repeatperiod").value;
			repeatstartdate = document.getElementById("repeatstartdate").value;
			repeatenddate = document.getElementById("repeatenddate").value;
			if(!confirm("This Invoice will be repeated every " + repeatperiod))
			{
				return false;
			}
		}
	}

	var sLinkVal = (sWhat == "purchaseOrder")?"savePurchaseOrder":"savePurchaseInvoice";
	var sLinkVal = (sBatchProcess == "batchprocess" )?"saveBatchPurchase":sLinkVal;
	document.createpurchaseinvoice.action = "/saveHandler.php&t=purchaseInvoices";
	document.createpurchaseinvoice.saveHandler.value = sLinkVal;
	document.createpurchaseinvoice.dowhatPurchase.value =  dowhatPurchase;
	document.createpurchaseinvoice.method = "POST";
	document.createpurchaseinvoice.submit();
}


function updatePurchaseInvoice()
{
	document.createpurchaseinvoice.action = "/updateHandler.php";
	document.createpurchaseinvoice.updateHandler.value = "updatePurchaseInvoice";
	document.createpurchaseinvoice.method = "POST";
	document.createpurchaseinvoice.submit();
}


function fnSavePurchaseItem(sWhich)
{
	if(document.createpurchaseinvoice.item.value == "" || document.createpurchaseinvoice.item.value == "[Add New]")
	{
		alert("Please Select Outgoing Type !");
		document.createpurchaseinvoice.item.focus();
		return false;
	}
	if(document.createpurchaseinvoice.quantity.value == 0)
	{
		alert("Please enter Quantity !");
		document.createpurchaseinvoice.quantity.focus();
		return false;
	}
	if(document.createpurchaseinvoice.rate.value == "")
	{
		alert("Please enter Rate !");
		document.createpurchaseinvoice.rate.focus();
		return false;
	}
	if(document.createpurchaseinvoice.project.value == "")
	{
		alert("Please Select Project !");
		document.createpurchaseinvoice.project.focus();
		return false;
	}
	if(document.createpurchaseinvoice.itemdate.value == "")
	{
		alert("Please Select Tax Point !");
		document.createpurchaseinvoice.itemdate.focus();
		return false;
	}
	
	var referencenumber = document.createpurchaseinvoice.referencenumber.value;
	var invoiceid = document.createpurchaseinvoice.invoiceid.value;
	var invoicedate = document.createpurchaseinvoice.pinvoicedate.value;
	var itemdate = document.createpurchaseinvoice.itemdate.value;
	var supplier = document.createpurchaseinvoice.suppliername.value;
	var item = document.createpurchaseinvoice.item.value;
	var memo = document.createpurchaseinvoice.itemmemo.value;
	var project = document.createpurchaseinvoice.project.value;
	var quantity = document.createpurchaseinvoice.quantity.value;
	var rate = document.createpurchaseinvoice.rate.value;
	var iExchangeRateId = document.createpurchaseinvoice.fromCurrency.value;
	var dExchangeRate = document.createpurchaseinvoice.exchangeRate.value;

	var sLinkVal = (sWhich == "purchaseInvoice")?"savePurchaseItem":"savePurchaseOrderItem";
	
	// MAKE AJAX CALL
	
	var oAjax = new AjaxWrapper;
	
	var sUrl = "/saveHandler.php?saveHandler=" + sLinkVal;
	
	sUrl = sUrl + "&invoiceid=" + invoiceid;
	
	sUrl = sUrl + "&referencenumber=" + referencenumber;
	
	sUrl = sUrl + "&invoicedate=" + invoicedate;
	
	sUrl = sUrl + "&itemdate=" + itemdate;
	
	sUrl = sUrl + "&supplier=" + supplier;
	
	sUrl = sUrl + "&item=" + item;
	
	sUrl = sUrl + "&memo=" + memo;
	
	sUrl = sUrl + "&project=" + project;
	
	sUrl = sUrl + "&quantity=" + quantity;
	
	sUrl = sUrl + "&rate=" + rate;               
	
	sUrl = sUrl + "&exchangeRateId=" + iExchangeRateId;
	
	sUrl = sUrl + "&exchangeRate=" + dExchangeRate;
	
	sUrl = sUrl + "&sid=" + Date() + Math.random();
	
	oAjax.url = sUrl;
	
	oAjax.onSuccess = function() {
		
		document.getElementById("purchaseitemdetails").innerHTML = this.responseText;
		
		fnGetCalcPur(referencenumber,sWhich);

	};
	
	oAjax.get();
		
	showLoading("purchaseitemdetails");
	
	document.getElementById("purchaseitemadd").style.display="none";
	document.getElementById("purchaseadditem").style.display="";
	document.getElementById("purchasesaveitem").style.display="none";
	document.getElementById("purchaseundoitem").style.display="none";
	document.createpurchaseinvoice.item.selectedIndex = 0;
	document.createpurchaseinvoice.itemmemo.value = "";
	document.createpurchaseinvoice.quantity.value = "";
	document.createpurchaseinvoice.rate.value = "";
}


function fnGetCalcPur(referencenumber,sWhat)
{
	var sLinkVal = (sWhat == "purchaseOrder")?"PurchaseOrderCalc":"PurchaseCalc";
	
	// MAKE AJAX CALL
	
	var oAjax = new AjaxWrapper;
	
	var sUrl = "/Calculations.php&referencenumber=" + referencenumber;
	
	sUrl = sUrl + "&calcHandler=" + sLinkVal;
	
	sUrl = sUrl + "&sid=" + Date() + Math.random();
	
	oAjax.url = sUrl;
	
	oAjax.onSuccess = function() {
	
		var totals = this.responseText;
		
		var totalsArray = new Array();
		
		totalsArray = totals.split("{}");
		
		document.getElementById("purchasesubtotal").innerHTML = parseFloat(totalsArray[0]).toFixed(2);
		
		document.getElementById("purchasevattotal").innerHTML = parseFloat(totalsArray[1]).toFixed(2);
		
		document.getElementById("purchasediscounttotal").innerHTML = parseFloat(totalsArray[2]).toFixed(2);
		
		document.getElementById("purchasetotal").innerHTML = parseFloat(totalsArray[3]).toFixed(2);
		
		updateRepeatAmountOfInvoices(2);

	};
	
	oAjax.get();
}

function deletePurchaseInvoice(iInvoiceId, sWhat)
{
	if (confirm("Are you sure you want to delete this invoice ?"))
	{
      // MAKE AJAX CALL
    		
    	var oAjax = new AjaxWrapper;
    	
    	var sUrl = "/deleteHandler.php?deleteHandler=deletePurchaseInvoice";
    	
    	sUrl = sUrl + "&iInvoiceId=" + iInvoiceId;
    	
    	sUrl = sUrl + "&sid=" + Date() + Math.random();
    	
    	oAjax.url = sUrl;
    	
    	oAjax.onSuccess = function() {
    		
    		var sResponse = this.responseText;
    		
    		var aResponse = sResponse.split("{}");
    		
    		if(aResponse[0] == 1)
    		{
    			fnDoNav("/purchaseInvoices");
    		}
    		
    	};
    	
    	oAjax.get();
	}
}

function fnDeleteBatchPurchase(invoiceid,sWhat,iHasScannedDoc)
{
	if (confirm("Delete Invoice Record ?"))
	{
		if(iHasScannedDoc)
		{
			alert("This entry seems to have a scanned document attached to it !\nThis document will now be moved to unprocessed documents.");
		}
		
		// MAKE AJAX CALL
		
		var oAjax = new AjaxWrapper;
		
		var sUrl = "/deleteHandler.php?deleteHandler=deleteBatchPurchase";
		
		sUrl = sUrl + "&invoiceid=" + invoiceid;
		
		sUrl = sUrl + "&sWhat=Purchase";
		
		sUrl = sUrl + "&sid=" + Date() + Math.random();
		
		oAjax.url = sUrl;
		
		oAjax.onSuccess = function() {

			loadInnerHtml(document.getElementById("batchpurchase"), this.responseText);

		};
		
		oAjax.get();
			
		showLoading("batchpurchase");
	}
}


function fnBatchSalesItemChange(itemid)
{
  //
}

function fnBatchSalesItemSuccess()
{
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
	 {
		//
	 }
}

function fnEditBatchInvoice(invoiceid,sWhat)
{
  if(document.getElementById("editinvoicelink"+invoiceid).innerHTML == "&nbsp;Edit&nbsp;")
  {
	  document.getElementById("editinvoicelink"+invoiceid).innerHTML = "&nbsp;Save&nbsp;";
	  var aCustomers = document.getElementById("customerlist").value.split("{}");
	  aCustomers.pop();
	  var aCustomerIds = document.getElementById("customeridlist").value.split("{}");
	  aCustomerIds.pop();
	  //var aProjects = document.getElementById("projectlist").value.split("{}");
	  //aProjects.pop();
	  //var aProjectIds = document.getElementById("projectidlist").value.split("{}");
	  //aProjectIds.pop();

	  var sObjCustomer = document.getElementById("customer"+invoiceid);
	  //var sObjProject = document.getElementById("project"+invoiceid);

	  var sCustomer = document.getElementById("customer"+invoiceid).innerHTML;
	  //var sProject = document.getElementById("project"+invoiceid).innerHTML;

	  var sCustomerId = document.getElementById("customerid"+invoiceid).value;
	  //var sProjectId = document.getElementById("projectid"+invoiceid).value;

	  sObjCustomer.innerHTML = "";
	  //sObjProject.innerHTML = "";
	  sObjCustomer.onclick = "";
	  //sObjProject.onclick = "";

	  var selCustomer = document.createElement("select");
	  selCustomer.id = "newCustomer"+invoiceid;
	  selCustomer.calssName = "selectBox";
	  selCustomer.style.width = "150px";
	  selCustomer.options[selCustomer.options.length] = new Option("--Select--", "");
	  for (var i = 0; i < aCustomers.length; i++)
	  {
		selCustomer.options[selCustomer.options.length] = new Option(aCustomers[i], aCustomerIds[i]);
	  }
	  sObjCustomer.appendChild(selCustomer);
	  for(sTemp=0;sTemp<selCustomer.options.length;sTemp++)
	  {
		  if(selCustomer.options[sTemp].value == sCustomerId)
		  {
			  selCustomer.options[sTemp].selected = true;
		  }
	  }
	}
	else
	{
	  fnUpdateBatchInvoice(invoiceid,sWhat);
	}
}

function fnUpdateBatchInvoice(invoiceid,sWhat)
{
	var sCustomer = document.getElementById("newCustomer"+invoiceid).value;
	//var sProject = document.getElementById("newProject"+invoiceid).value;
	xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null)
	{
		alert ("Browser does not support HTTP Request");
		return;
	}
	var sUpdateHandler = (sWhat=="Sales")?"updateBatchSalesInvoice":"updateBatchPurchaseInvoice";
	var url="/updateHandler.php";
	url = url + "?updateHandler=" + sUpdateHandler;
	url = url + "&iInvoiceId=" + invoiceid;
	url = url + "&sCustomer=" + sCustomer;
	//url = url + "&sProject=" + sProject;
	url = url + "&sid="+Date()+Math.random();
	xmlHttp.onreadystatechange=function(){fnBatchInvoiceSuccess(invoiceid);};
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function fnBatchInvoiceSuccess(invoiceid)
{
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
	{
		var sResponse = xmlHttp.responseText;
		var sDetailsArr = new Array();
		sDetailsArr = sResponse.split("{{}}");
		document.getElementById("customer"+invoiceid).innerHTML = sDetailsArr[0];
		//document.getElementById("project"+invoiceid).innerHTML = sDetailsArr[1];
		document.getElementById("editinvoicelink"+invoiceid).innerHTML = "&nbsp;Edit&nbsp;";
	}

}

function fnEditBatchSalesItem(itemid,invoiceid,sWhat)
{
	if(document.getElementById("editlink"+itemid).innerHTML == "&nbsp;Edit&nbsp;")
	{
		document.getElementById("editlink"+itemid).innerHTML = "&nbsp;Save&nbsp;";
		
		var aItemCodes = document.getElementById("itemcodeslist").value.split("{}");
		aItemCodes.pop();
		
		var aItems = document.getElementById("itemslist").value.split("{}");
		aItems.pop();
		
		var aVatRates = document.getElementById("vatrateslist").value.split("{}");
		aVatRates.pop();
		
		var aVatCodes = document.getElementById("vatcodeslist").value.split("{}");
		aVatCodes.pop();
		
		var sObjItemRow = document.getElementById("itemrow"+itemid);
		
		//var sObjRowNum = document.getElementById("rownum"+itemid);
		
		var sObjItem = document.getElementById("item"+itemid);
		
		var sObjDescription = document.getElementById("description"+itemid);
		
		var sObjQuantity = document.getElementById("quantity"+itemid);
		
		var sObjRate = document.getElementById("rate"+itemid);
		
		var sObjNetAmount = document.getElementById("netamount"+itemid);
		
		var sObjVatRate = document.getElementById("vatrate"+itemid);
		
		var sObjVatAmount = document.getElementById("vatamount"+itemid);
		
		var sObjSubTotal = document.getElementById("subtotal"+itemid);

		//var sRowNum = document.getElementById("rownum"+itemid).innerHTML;
		
		var sItem = document.getElementById("item"+itemid).innerHTML;
		
		var sDescription = document.getElementById("description"+itemid).innerHTML;
		
		var sQuantity = document.getElementById("quantity"+itemid).innerHTML;
		
		var sRate = document.getElementById("rate"+itemid).innerHTML;
		
		var sNetAmount = document.getElementById("netamount"+itemid).innerHTML;
		
		var sVatRate = document.getElementById("vatrate"+itemid).innerHTML;
		
		var sVatAmount = document.getElementById("vatamount"+itemid).innerHTML;
		
		var sSubTotal = document.getElementById("subtotal"+itemid).innerHTML;

		sObjItem.innerHTML = ""; 
		
		sObjDescription.innerHTML = "";
		
		sObjQuantity.innerHTML = ""; 
		
		sObjRate.innerHTML = "";
		
		sObjVatRate.innerHTML = "";

		var itemSel = document.createElement("select");
		
		itemSel.id = "newItem"+itemid;
		
		itemSel.calssName = "selectBox";
		
		itemSel.style.width = "100px";
		
		itemSel.options[itemSel.options.length] = new Option("--Select--", "");     
		
		for (var i = 0; i < aItems.length; i++)
		{
			itemSel.options[itemSel.options.length] = new Option(aItems[i], aItemCodes[i]);
		}
		
		//itemSel.onchange = function(){fnBatchSalesItemChange(itemid);};
		
		sObjItem.appendChild(itemSel);
		
		for(sTemp=0;sTemp<itemSel.options.length;sTemp++)
		{
			if(itemSel.options[sTemp].text == sItem)
			{
				itemSel.options[sTemp].selected = true;
			}
		}

		var inputDescription = document.createElement("input");
		inputDescription.type = "text";
		inputDescription.id = "newDescription"+itemid;
		inputDescription.value = sDescription;
		sObjDescription.appendChild(inputDescription);

		var inputQuantity = document.createElement("input");
		inputQuantity.type = "text";
		inputQuantity.id = "newQuantity"+itemid;
		inputQuantity.size = "5";
		inputQuantity.value = sQuantity;
		inputQuantity.onchange = function(){fnCalculationsBatch(itemid);};
		inputQuantity.onkeyup = function(){fnCalculationsBatch(itemid);};
		sObjQuantity.appendChild(inputQuantity);

		var inputRate = document.createElement("input");
		inputRate.type = "text";
		inputRate.id = "newRate"+itemid;
		inputRate.size = "5";
		inputRate.value = sRate;
		inputRate.onchange = function(){fnCalculationsBatch(itemid);};
		inputRate.onkeyup = function(){fnCalculationsBatch(itemid);};
		sObjRate.appendChild(inputRate);

		var vatSel = document.createElement("select");
		vatSel.id = "newVatrate"+itemid;
		vatSel.calssName = "selectBox";
		vatSel.style.width = "100px";
		
		vatSel.options[vatSel.options.length] = new Option("--Select--", "");
		
		for (var i = 0; i < aVatRates.length; i++)
		{
			vatSel.options[vatSel.options.length] = new Option(aVatRates[i], aVatCodes[i]);
		}
		
		vatSel.onchange = function(){fnCalculationsBatch(itemid);};
		
		sObjVatRate.appendChild(vatSel);
		
		for(sTemp=0;sTemp<vatSel.options.length;sTemp++)
		{
			if(vatSel.options[sTemp].value == sVatRate)
			{
				vatSel.options[sTemp].selected = true;
			}
		}
	}
	
	else
	{
		fnUpdateBatchItemSales(itemid,invoiceid,sWhat);
	}
}

function fnUpdateBatchItemSales(itemid,invoiceid,sWhat)
{
	var sItem = document.getElementById("newItem"+itemid).value;
	
	var sDescription = document.getElementById("newDescription"+itemid).value;
	
	var iQuantity = document.getElementById("newQuantity"+itemid).value;
	
	var dRate = document.getElementById("newRate"+itemid).value;
	
	var sVatrate = document.getElementById("newVatrate"+itemid).value;
	
	// MAKE AJAX CALL
	
	var oAjax = new AjaxWrapper;
	
	var sUpdateHandler = (sWhat=="Sales")?"updateBatchSalesItem":"updateBatchPurchaseItem";
	
	var sUrl = "/updateHandler.php?itemid=" + itemid;
	
	sUrl = sUrl + "&updateHandler=" + sUpdateHandler;
	
	sUrl = sUrl + "&iInvoiceId=" + invoiceid;
	
	sUrl = sUrl + "&iItemId=" + itemid;
	
	sUrl = sUrl + "&sItem=" + sItem;
	
	sUrl = sUrl + "&sDescription=" + sDescription;
	
	sUrl = sUrl + "&iQuantity=" + iQuantity;
	
	sUrl = sUrl + "&dRate=" + dRate;
	
	sUrl = sUrl + "&sVatrate=" + sVatrate;
	
	sUrl = sUrl + "&sid="+Date()+Math.random();
	
	oAjax.url = sUrl;
	
	oAjax.onSuccess = function() {
	
		var sResponse = this.responseText;
		
		var sDetailsArr = new Array();
		
		sDetailsArr = sResponse.split("{{}}");
		
		document.getElementById("itemrow"+itemid).innerHTML = sDetailsArr[0];
		
		document.getElementById("invoicetotal"+invoiceid).innerHTML = sDetailsArr[1];
		
	};
	
	oAjax.get();
	
	showLoading("itemrow"+itemid);
}


function fnCalculationsBatch(itemid)
{
	var quantity = document.getElementById("newQuantity"+itemid).value;
	
	var rate =  document.getElementById("newRate"+itemid).value;
	
	var netamount =  document.getElementById("netamount"+itemid).innerHTML;
	
	var vatamount =  document.getElementById("vatamount"+itemid).innerHTML;
	
	var vatrate = document.getElementById("newVatrate"+itemid).options[document.getElementById("newVatrate"+itemid).selectedIndex].text;
	
	if(quantity == "")
	{
		quantity = 1;
	}
	
	if(rate == "")
	{
		rate = 0;
	}
	
	if(netamount == "")
	{
		netamount = 0;
	}
	
	if(vatrate == "" || vatrate == "Average" || vatrate == "Zero Rated" || vatrate == "Exempt" || vatrate == "Out of Scope" || vatrate == "--Select--")
	{
	  vatrate = "0.00";
	}
	
	if(vatamount == "")
	{
	  vatamount = "0.00";
	}
	
	netamount = (parseFloat(quantity) * parseFloat(rate)).toFixed(2);
	
	vatrate = vatrate.replace("%","");
	
	vatamount =  (parseFloat(netamount) * parseFloat(vatrate) / 100).toFixed(2);
	
	document.getElementById("netamount"+itemid).innerHTML = netamount;
	
	document.getElementById("vatamount"+itemid).innerHTML = vatamount;
	
	document.getElementById("subtotal"+itemid).innerHTML = (parseFloat(netamount) + parseFloat(vatamount)) .toFixed(2);
}

function fnDeleteBatchSalesItem(itemid,invoiceid)
{
	if (confirm("Delete Invoice Item ?"))
	{
		// MAKE AJAX CALL
		
		var oAjax = new AjaxWrapper;
		
		var sUrl="/deleteHandler.php?itemid=" + itemid;
		
		sUrl = sUrl + "&deleteHandler=deleteBatchSalesItem";
		
		url = sUrl + "&invoiceid=" + invoiceid;
		
		sUrl = sUrl + "&sid=" + Date() + Math.random();
		
		oAjax.url = sUrl;
		
		oAjax.onSuccess = function() {
		
			var sResponse = this.responseText;
			
			var sDetailsArr = new Array();
			
			sDetailsArr = sResponse.split("{{}}");
			
			document.getElementById("invoicetotal"+invoiceid).innerHTML = sDetailsArr[0];
			
			document.getElementById(invoiceid).innerHTML = sDetailsArr[1];
		
		};
		
		oAjax.get();
		
		showLoading("invoiceid");
	}
}

function fnDeleteBatchPurchaseItem(itemid,invoiceid)
{
	if (confirm("Delete Invoice Item ?"))
	{
		// MAKE AJAX CALL
		
		var oAjax = new AjaxWrapper;
		
		var sUrl="/deleteHandler.php?itemid=" + itemid;
		
		sUrl = sUrl + "&deleteHandler=deleteBatchPurchaseItem";
		
		url = sUrl + "&invoiceid=" + invoiceid;
		
		sUrl = sUrl + "&sid=" + Date() + Math.random();
		
		oAjax.url = sUrl;
		
		oAjax.onSuccess = function() {
		
			var sResponse = this.responseText;
			
			var sDetailsArr = new Array();
			
			sDetailsArr = sResponse.split("{{}}");
			
			document.getElementById("invoicetotal"+invoiceid).innerHTML = sDetailsArr[0];
			
			document.getElementById(invoiceid).innerHTML = sDetailsArr[1];
		
		};
		
		oAjax.get();
		
		showLoading("invoiceid");
	}
}

function fnEditPurchaseInvoice(referencenumber)
{
	document.listpurchaseinvoices.action = "/purchaseInvoices/edit&invoiceid="+referencenumber;
	document.listpurchaseinvoices.editpurchaseinvoice.value = referencenumber;
	document.listpurchaseinvoices.method = "POST";
	document.listpurchaseinvoices.submit();
}

function fnDeletePurchaseItem(deletelinkid,sWhich)
{
	var referencenumber = document.createpurchaseinvoice.referencenumber.value;

	var sLinkVal = (sWhich == "purchaseOrder")?"deletePurchaseOrderItem":"deletePurchaseInvoiceItem";

	// MAKE AJAX CALL
	
	var oAjax = new AjaxWrapper;
	
	var sUrl = "/deleteHandler.php?referencenumber=" + referencenumber;
	
	sUrl = sUrl + "&deleteHandler=" + sLinkVal;
	
	sUrl = sUrl + "&deletelinkid=" + deletelinkid;
	
	sUrl = sUrl + "&sid=" + Date() + Math.random();
	
	oAjax.url = sUrl;
	
	oAjax.onSuccess = function() {

		document.getElementById("purchaseitemdetails").innerHTML = this.responseText;
		
		fnGetCalcPur(referencenumber,sWhich);

	};
	
	oAjax.get();
		
	showLoading("purchaseitemdetails");
	
}


/******************* PROJECT FUNCTIONS *******************/


function fnUpdateVehicle(editprojectid)
{
	var active = (document.editproject.active.checked) ? "on" : "" ;
	var division = document.editproject.division.value;
	var projectname = document.editproject.projectname.value;
	var projectcode = document.editproject.projectcode.value;
	var kilometers = (document.editproject.kilometers.checked) ? "on" : "" ;
	var seats = document.editproject.seats.value;
	var wheelchair = document.editproject.wheelchair.value;
	var sidestep = document.editproject.sidestep.value;
	var safetycheck = document.editproject.safetycheck.value;
	var mot = document.editproject.mot.value;

	if(projectname == "")
	{
		fnAlert("Please enter Vehicle Reg No. !", document.editproject.projectname );
		return false;
	}
	
	var sUpdateHandler = "updateVehicle" ;
	
	var oAjax = new AjaxWrapper;
	
	var sUrl = "/updateHandler.php?updateHandler=" + sUpdateHandler;
	
	sUrl = sUrl + "&editprojectid=" + editprojectid;
	
	sUrl = sUrl + "&active=" + active;
	
	sUrl = sUrl + "&division=" + division;
	
	sUrl = sUrl + "&projectname=" + projectname;
	
	sUrl = sUrl + "&projectcode=" + projectcode;
	
	sUrl = sUrl + "&kilometers=" + kilometers;
	
	sUrl = sUrl + "&seats=" + seats;
	
	sUrl = sUrl + "&wheelchair=" + wheelchair;
	
	sUrl = sUrl + "&sidestep=" + sidestep;
	
	sUrl = sUrl + "&safetycheck=" + safetycheck;
	
	sUrl = sUrl + "&mot=" + mot;
	
	sUrl = sUrl + "&sid=" + Date() + Math.random();
		
	oAjax.url = sUrl;
		
	oAjax.onSuccess = function() {
		
		//
	};
	
	oAjax.get();
}

function fnCreateVehicle(temphandler)
{
	var active = document.createproject.active.value;
	var division = document.createproject.division.value;
	var projectname = document.createproject.projectname.value;
	var projectcode = document.createproject.projectcode.value;
	var kilometers = document.createproject.kilometers.value;
	var seats = document.createproject.seats.value;
	var wheelchair = document.createproject.wheelchair.value;
	var sidestep = document.createproject.sidestep.value;
	var safetycheck = document.createproject.safetycheck.value;
	var mot = document.createproject.mot.value;

	if(projectname == "")
	{
		fnAlert("Please enter Vehicle Reg No. !", document.createproject.projectname);
		return false;
	}
	
	var sSaveHandler = (temphandler == "PopUp") ? "saveNewVehicle" : "saveVehicle" ;
	
	var oAjax = new AjaxWrapper;
	
	var sUrl = "/saveHandler.php?saveHandler=" + sSaveHandler;
	
	sUrl = sUrl + "&active=" + active;
	
	sUrl = sUrl + "&division=" + division;
	
	sUrl = sUrl + "&projectname=" + projectname;
	
	sUrl = sUrl + "&projectcode=" + projectcode;
	
	sUrl = sUrl + "&kilometers=" + kilometers;
	
	sUrl = sUrl + "&seats=" + seats;
	
	sUrl = sUrl + "&wheelchair=" + wheelchair;
	
	sUrl = sUrl + "&sidestep=" + sidestep;
	
	sUrl = sUrl + "&safetycheck=" + safetycheck;
	
	sUrl = sUrl + "&mot=" + mot;
	
	sUrl = sUrl + "&sid=" + Date() + Math.random();
	
	if(temphandler == "PopUp")
	{
		// MAKE AJAX CALL
		
		oAjax.url = sUrl;
		
		oAjax.onSuccess = function() {
			
			var sResponse = this.responseText;
			
			window.opener.document.getElementById("projectsdata").innerHTML = sResponse;

			closePopup();
				
		};
		
		oAjax.get();
	}
	
	else
	{
		fnDoNav(sUrl);
	}
	
}

function fnOpenProject(sProjectId)
{
	document.listprojects.action = "/sessionHandler.php";
	document.listprojects.method = "POST";
	document.listprojects.sessionHandler.value = "openProject";
	document.listprojects.editproject.value = sProjectId;
	document.listprojects.submit();
}

function fnUpdateProject(editprojectid)
{
	var active = (document.editproject.active.checked) ? "on" : "" ;
	var division = document.editproject.division.value;
	var projectname = document.editproject.projectname.value;
	var projectcode = document.editproject.projectcode.value;
	var address1 = document.editproject.address1.value;
	var address2 = document.editproject.address2.value;
	var address3 = document.editproject.address3.value;
	var town_city = document.editproject.town_city.value;
	var county = document.editproject.county.value;
	var postcode = document.editproject.postcode.value;
	var country = document.editproject.country.value;
	var email = document.editproject.email.value;
	var phonenumber = document.editproject.phonenumber.value;
	var fax = document.editproject.fax.value;
	
	if(projectname == "")
	{
		fnAlert("Please enter Project Name !", document.editproject.projectname);
		return false;
	}
	else if(address1 == "")
	{
		fnAlert("Please enter Address !", document.editproject.address1);
		return false;
	}
	else if(town_city == "")
	{
		fnAlert("Please enter Town / City !", document.editproject.town_city);
		return false;
	}
	else if (country == "")
	{
		fnAlert("Please Select Country !", document.editproject.country);
		return false;
	}
	if(email !=null && email != "")
	{
		if(fnecheck(email)==false)
		{
			document.editproject.email.focus();
			return false;
		}
	}
	if(phonenumber !=null && phonenumber != "")
	{
		if(checkInternationalPhone(phonenumber)==false)
		{
			fnAlert("Invalid Phone Number !", document.editproject.phonenumber);
			return false;
		}
	}
	if(fax !=null && fax != "")
	{
		if(checkInternationalPhone(fax)==false)
		{
			fnAlert("Invalid Fax Number !", document.editproject.fax);
			return false;
		}
	}
	
	var sUpdateHandler = "updateProject" ;
	
	var oAjax = new AjaxWrapper;
	
	var sUrl = "/updateHandler.php?updateHandler=" + sUpdateHandler;
	
	sUrl = sUrl + "&editprojectid=" + editprojectid;
	
	sUrl = sUrl + "&active=" + active;
	
	sUrl = sUrl + "&division=" + division;
	
	sUrl = sUrl + "&projectname=" + projectname;
	
	sUrl = sUrl + "&projectcode=" + projectcode;
	
	sUrl = sUrl + "&address1=" + address1;
	
	sUrl = sUrl + "&address2=" + address2;
	
	sUrl = sUrl + "&address3=" + address3;
	
	sUrl = sUrl + "&town_city=" + town_city;
	
	sUrl = sUrl + "&county=" + county;
	
	sUrl = sUrl + "&postcode=" + postcode;
	
	sUrl = sUrl + "&country=" + country;
	
	sUrl = sUrl + "&email=" + email;
	
	sUrl = sUrl + "&phonenumber=" + phonenumber;
	
	sUrl = sUrl + "&fax=" + fax;
	
	sUrl = sUrl + "&sid=" + Date() + Math.random();
	
	// MAKE AJAX CALL
	
	oAjax.url = sUrl;
	
	oAjax.onSuccess = function() {
		
		//
	};
	
	oAjax.get();
}

function fnDeleteProject(projectname)
{
	if (confirm("Delete Project Record ?"))
	{
		document.editproject.action = "/deleteHandler.php";
		document.editproject.deleteproject.value = projectname;
		document.editproject.deleteHandler.value = "deleteproject";
		document.editproject.method = "POST";
		document.editproject.submit();
	}
}

function fnEditProject(projectid)
{
	var sUrl = "/projects/edit";
	
	sUrl = sUrl + "&projectid=" + projectid;
	
	fnDoNav(sUrl);
}

function fnCreateProject(temphandler)
{
	var active = document.createproject.active.value;
	var division = document.createproject.division.value;
	var projectname = document.createproject.projectname.value;
	var projectcode = document.createproject.projectcode.value;
	var address1 = document.createproject.address1.value;
	var address2 = document.createproject.address2.value;
	var address3 = document.createproject.address3.value;
	var town_city = document.createproject.town_city.value;
	var county = document.createproject.county.value;
	var postcode = document.createproject.postcode.value;
	var country = document.createproject.country.value;
	var email = document.createproject.email.value;
	var phonenumber = document.createproject.phonenumber.value;
	var fax = document.createproject.fax.value;
	
	if(projectname == "")
	{
		fnAlert("Please enter Project Name !", document.createproject.projectname);
		return false;
	}
	else if(address1 == "")
	{
		fnAlert("Please enter Address !", document.createproject.address1);
		return false;
	}
	else if(town_city == "")
	{
		fnAlert("Please enter Town / City !", document.createproject.town_city);
		return false;
	}
	else if (country == "")
	{
		fnAlert("Please Select Country !", document.createproject.country);
		return false;
	}
	if(email !=null && email != "")
	{
		if(fnecheck(email)==false)
		{
			document.createproject.email.focus();
			return false;
		}
	}
	if(phonenumber !=null && phonenumber != "")
	{
		if(checkInternationalPhone(phonenumber)==false)
		{
			fnAlert("Invalid Phone Number !", document.createproject.phonenumber);
			return false;
		}
	}
	if(fax !=null && fax != "")
	{
		if(checkInternationalPhone(fax)==false)
		{
			fnAlert("Invalid Fax Number !", document.createproject.fax);
			return false;
		}
	}
	
	var sSaveHandler = (temphandler == "PopUp") ? "saveNewProject" : "saveProject" ;
	
	var oAjax = new AjaxWrapper;
	
	var sUrl = "/saveHandler.php?saveHandler=" + sSaveHandler;
	
	sUrl = sUrl + "&active=" + active;
	
	sUrl = sUrl + "&division=" + division;
	
	sUrl = sUrl + "&projectname=" + projectname;
	
	sUrl = sUrl + "&projectcode=" + projectcode;
	
	sUrl = sUrl + "&address1=" + address1;
	
	sUrl = sUrl + "&address2=" + address2;
	
	sUrl = sUrl + "&address3=" + address3;
	
	sUrl = sUrl + "&town_city=" + town_city;
	
	sUrl = sUrl + "&county=" + county;
	
	sUrl = sUrl + "&postcode=" + postcode;
	
	sUrl = sUrl + "&country=" + country;
	
	sUrl = sUrl + "&email=" + email;
	
	sUrl = sUrl + "&phonenumber=" + phonenumber;
	
	sUrl = sUrl + "&fax=" + fax;
	
	sUrl = sUrl + "&sid=" + Date() + Math.random();
	
	if(temphandler == "PopUp")
	{
		// MAKE AJAX CALL
		
		oAjax.url = sUrl;
		
		oAjax.onSuccess = function() {
			
			window.opener.document.getElementById("projectsdata").innerHTML = this.responseText;
			
			closePopup();
		};
		
		oAjax.get();
	}
	
	else
	{
		fnDoNav(sUrl);
	}
	
}


/******************* AREA FUNCTIONS *******************/

function fnUpdateArea(editareaname)
{
	if(document.editarea.areaname.value == "")
	{
		alert("Please enter Area Name !");
		document.editarea.areaname.focus();
		return false;
	}
	else if(document.editarea.address1.value == "")
	{
		alert("Please enter Address !");
		document.editarea.address1.focus();
		return false;
	}
	else if(document.editarea.town_city.value == "")
	{
		alert("Please enter Town / City !");
		document.editarea.town_city.focus();
		return false;
	}
	else if (document.editarea.country.value == "")
	{
		alert("Please Select Country !");
		document.editarea.country.focus();
		return false;
	}
	var email = document.editarea.email.value;
	if(email !=null && email != "")
	{
		if(fnecheck(email)==false)
		{
			document.editarea.email.focus();
			return false;
		}
	}
	var phonenumber = document.editarea.phonenumber.value;
	if(phonenumber !=null && phonenumber != "")
	{
		if(checkInternationalPhone(phonenumber)==false)
		{
			alert("Invalid Phone Number !");
			document.editarea.phonenumber.focus();
			return false;
		}
	}
	var faxnumber = document.editarea.fax.value;
	if(faxnumber !=null && faxnumber != "")
	{
		if(checkInternationalPhone(faxnumber)==false)
		{
			alert("Invalid Fax Number !");
			document.editarea.fax.focus();
			return false;
		}
	}
	document.editarea.action = "/updateHandler.php";
	document.editarea.editareaname.value = editareaname;
	document.editarea.updateHandler.value = "updateArea";
	document.editarea.method = "POST";
	document.editarea.submit();
}

function fnDeleteArea(areaname)
{
	if (confirm("Delete Area Record ?"))
	{
		document.editarea.action = "/deleteHandler.php";
		document.editarea.deletearea.value = areaname;
		document.editarea.deleteHandler.value = "deletearea";
		document.editarea.method = "POST";
		document.editarea.submit();
	}
}

function fnEditArea(areaname)
{
	document.listareas.action = "editarea.php";
	document.listareas.editarea.value = areaname;
	document.listareas.method = "POST";
	document.listareas.submit();
}

function fnCreateArea()
{
	if(document.createarea.areaname.value == "")
	{
		alert("Please enter Area Name !");
		document.createarea.areaname.focus();
		return false;
	}
	else if(document.createarea.address1.value == "")
	{
		alert("Please enter Address !");
		document.createarea.address1.focus();
		return false;
	}
	else if(document.createarea.town_city.value == "")
	{
		alert("Please enter Town / City !");
		document.createarea.town_city.focus();
		return false;
	}
	else if (document.createarea.country.value == "")
	{
		alert("Please Select Country !");
		document.createarea.country.focus();
		return false;
	}
	var email = document.createarea.email.value;
	if(email !=null && email != "")
	{
		if(fnecheck(email)==false)
		{
			document.createarea.email.focus();
			return false;
		}
	}
	var phonenumber = document.createarea.phonenumber.value;
	if(phonenumber !=null && phonenumber != "")
	{
		if(checkInternationalPhone(phonenumber)==false)
		{
			alert("Invalid Phone Number !");
			document.createarea.phonenumber.focus();
			return false;
		}
	}
	var faxnumber = document.createarea.fax.value;
	if(faxnumber !=null && faxnumber != "")
	{
		if(checkInternationalPhone(faxnumber)==false)
		{
			alert("Invalid Fax Number !");
			document.createarea.fax.focus();
			return false;
		}
	}
	document.createarea.action = "/saveHandler.php";
	document.createarea.saveHandler.value = "saveArea";
	document.createarea.method = "POST";
	document.createarea.submit();
}


/******************* COST CENTRE FUNCTIONS *******************/

function fnUpdateCostCentre(editcostcentrename)
{
	if(document.editcostcentre.costcentrename.value == "")
	{
		alert("Please enter costcentre Name !");
		document.editcostcentre.costcentrename.focus();
		return false;
	}
	if(document.editcostcentre.costcentrecode.value == "")
	{
		alert("Please enter Cost Centre Code !");
		document.editcostcentre.costcentrecode.focus();
		return false;
	}
	if(document.editcostcentre.contactnamecc.value == "")
	{
		alert("Please enter Contact Name !");
		document.editcostcentre.contactnamecc.focus();
		return false;
	}
	document.editcostcentre.action = "/updateHandler.php";
	document.editcostcentre.editcostcentrename.value = editcostcentrename;
	document.editcostcentre.updateHandler.value = "updateCostCentre";
	document.editcostcentre.method = "POST";
	document.editcostcentre.submit();
}

function fnDeleteCostCentre(costcentrename)
{
	if (confirm("Delete Cost Centre Record ?"))
	{
		document.editcostcentre.action = "/deleteHandler.php";
		document.editcostcentre.deletecostcentre.value = costcentrename;
		document.editcostcentre.deleteHandler.value = "deletecostcentre";
		document.editcostcentre.method = "POST";
		document.editcostcentre.submit();
	}
}

function fnEditCostCentre(costcentrename)
{
	document.listcostcentres.action = "editcostcentre.php";
	document.listcostcentres.editcostcentre.value = costcentrename;
	document.listcostcentres.method = "POST";
	document.listcostcentres.submit();
}

function fnCreateCostCentre()
{
	if(document.createcostcentre.costcentrename.value == "")
	{
		alert("Please enter Cost Centre Name !");
		document.createcostcentre.costcentrename.focus();
		return false;
	}
	else if(document.createcostcentre.costcentrecode.value == "")
	{
		alert("Please enter Cost Centre Code !");
		document.createcostcentre.costcentrecode.focus();
		return false;
	}
	else if(document.createcostcentre.contactnamecc.value == "")
	{
		alert("Please enter Contact Name !");
		document.createcostcentre.contactnamecc.focus();
		return false;
	}
	document.createcostcentre.action = "/saveHandler.php";
	document.createcostcentre.saveHandler.value = "saveCostCentre";
	document.createcostcentre.method = "POST";
	document.createcostcentre.submit();
}

/******************* DIVISION FUNCTIONS *******************/

function fnUpdateDivision(editdivisionname)
{
	var active = (document.editdivision.active.checked) ? "on" : "" ;
	var divisionname = document.editdivision.divisionname.value;
	var divisioncode = document.editdivision.divisioncode.value;
	var contactnamediv = document.editdivision.contactnamediv.value;
	
	if(divisionname == "")
	{
		fnAlert("Please enter Division Name !" ,document.editdivision.divisionname);
		return false;
	}
	
	if(divisioncode == "")
	{
		fnAlert("Please enter Division Code !" ,document.editdivision.divisioncode);
		return false;
	}
	
	if(contactnamediv == "")
	{
		fnAlert("Please enter Contact Name !", document.editdivision.contactnamediv);
		return false;
	}
	
	var sUpdateHandler = "updateDivision" ;
	
	var oAjax = new AjaxWrapper;
	
	var sUrl = "/updateHandler.php?updateHandler=" + sUpdateHandler;
	
	sUrl = sUrl + "&editdivisionname=" + editdivisionname;
	
	sUrl = sUrl + "&divisioncode=" + divisioncode;
	
	sUrl = sUrl + "&divisionname=" + divisionname;
	
	sUrl = sUrl + "&contactnamediv=" + contactnamediv;
	
	sUrl = sUrl + "&active=" + active;
	
	sUrl = sUrl + "&sid=" + Date() + Math.random();
		
	oAjax.url = sUrl;
		
	oAjax.onSuccess = function() {
		
		//
	};
	
	oAjax.get();
}

function fnDeleteDivision(divisionname)
{
	if (confirm("Delete Division Record ?"))
	{
		document.editdivision.action = "/deleteHandler.php";
		document.editdivision.deletedivision.value = divisionname;
		document.editdivision.deleteHandler.value = "deletedivision";
		document.editdivision.method = "POST";
		document.editdivision.submit();
	}
}

function fnEditDivision(divisionid)
{
	var sUrl = "/divisions/edit";
	
	sUrl = sUrl + "&divisionid=" + divisionid;
	
	fnDoNav(sUrl);
}

function fnCreateDivision()
{
	if(document.createdivision.divisionname.value == "")
	{
		alert("Please enter Division Name !");
		document.createdivision.divisionname.focus();
		return false;
	}
	else if(document.createdivision.divisioncode.value == "")
	{
		alert("Please enter Division Code !");
		document.createdivision.divisioncode.focus();
		return false;
	}
	else if(document.createdivision.contactnamediv.value == "")
	{
		alert("Please enter Contact Name !");
		document.createdivision.contactnamediv.focus();
		return false;
	}
	document.createdivision.action = "/saveHandler.php";
	document.createdivision.saveHandler.value = "saveDivision";
	document.createdivision.method = "POST";
	document.createdivision.submit();
}

/******************* SUPPLIER FUNCTIONS *******************/

function fnImportSuppliersList()
{
	if(document.getElementById("importSuppliersList").style.display != "none")
	{
		var filepath = document.listsuppliers.filepath.value;
		if(filepath == "")
		{
			fnAlert("Please Select a CSV File to Import!", document.listsuppliers.filepath);
			return false;
		}
		else
		{
			var filenameLength = filepath.length;
			var uploadfileExt = filepath.substring(filenameLength-4);
			uploadfileExt = uploadfileExt.toLowerCase();
			if(uploadfileExt != ".csv")
			{
				fnAlert("Please Select a CSV File to Import!", document.listsuppliers.filepath);
				return false;
			}
		}
		document.listsuppliers.action = "/saveHandler.php";
		document.listsuppliers.saveHandler.value = "importSuppliersList";
		document.listsuppliers.method = "POST";
		document.listsuppliers.submit();
	}
	else
	{
		document.getElementById("importSuppliersList").style.display = "";
		document.getElementById("importButton").style.display = "none";
		document.listsuppliers.filepath.focus();
	}
}

function fnUpdateSupplier(editsuppliername)
{
	var suppliername = document.editsupplier.suppliername.value;
	var suppliercode = document.editsupplier.suppliercode.value;
	var contactname = document.editsupplier.contactname.value;
	var address1 = document.editsupplier.address1.value;
	var address2 = document.editsupplier.address2.value;
	var address3 = document.editsupplier.address3.value;
	var town_city = document.editsupplier.town_city.value;
	var county = document.editsupplier.county.value;
	var postcode = document.editsupplier.postcode.value;
	var country = document.editsupplier.country.value;
	var email = document.editsupplier.email.value;
	var phonenumber = document.editsupplier.phonenumber.value;
	var mobilenumber = document.editsupplier.mobilenumber.value;
	var fax = document.editsupplier.fax.value;
	var vatnumber = document.editsupplier.vatnumber.value;
	var tradingterms = document.editsupplier.tradingterms.value;
	var expected_terms = document.editsupplier.expected_terms.value;
	/*var sortcode = document.editsupplier.sortcode.value;
	var accountnumber = document.editsupplier.accountnumber.value;
	var accountname = document.editsupplier.accountname.value;*/
	var commission = document.editsupplier.commission.value;
	var active = (document.editsupplier.active.checked) ? "on" : "";
	var page = document.editsupplier.page.value;
	
	if(suppliername == "")
	{
		fnAlert("Please enter Customer Name !", document.editsupplier.suppliername);
		return false;
	}
	
	else if(contactname == "")
	{
		fnAlert("Please enter Contact Name !", document.editsupplier.contactname);
		return false;
	}
	
	else if(address1 == "")
	{
		fnAlert("Please enter Address !", document.editsupplier.address1);
		return false;
	}
	
	else if(town_city == "")
	{
		fnAlert("Please enter Town / City !", document.editsupplier.town_city);
		return false;
	}
	
	else if (country == "")
	{
		fnAlert("Please Select Country !", document.editsupplier.country);
		return false;
	}
	
	if(email != null && email != "")
	{
		if(fnecheck(email) == false)
		{
			document.editsupplier.email.focus();
			return false;
		}
	}
	
	if(phonenumber != null && phonenumber != "")
	{
		if(checkInternationalPhone(phonenumber) == false)
		{
			fnAlert("Invalid Phone Number !", document.editsupplier.phonenumber);
			return false;
		}
	}
	
	if(mobilenumber != null && mobilenumber != "")
	{
		if(checkInternationalPhone(mobilenumber) == false)
		{
			fnAlert("Invalid Mobile Number !", document.editsupplier.mobilenumber);
			return false;
		}
	}
	
	if(fax != null && fax != "")
	{
		if(checkInternationalPhone(fax) == false)
		{
			fnAlert("Invalid Fax Number !", document.editsupplier.fax);
			return false;
		}
	}
	
	// MAKE AJAX CALL
	
	var oAjax = new AjaxWrapper;
	
	var sUrl = "/updateHandler.php?updateHandler=updateSupplier";
	sUrl = sUrl + "&editsuppliername=" + editsuppliername;
	sUrl = sUrl + "&suppliercode=" + suppliercode;
	sUrl = sUrl + "&suppliername=" + suppliername;
	sUrl = sUrl + "&contactname=" + contactname;
	sUrl = sUrl + "&address1=" + address1;
	sUrl = sUrl + "&address2=" + address2;
	sUrl = sUrl + "&address3=" + address3;
	sUrl = sUrl + "&town_city=" + town_city;
	sUrl = sUrl + "&county=" + county;
	sUrl = sUrl + "&postcode=" + postcode;
	sUrl = sUrl + "&country=" + country;
	sUrl = sUrl + "&email=" + email;
	sUrl = sUrl + "&phonenumber=" + phonenumber;
	sUrl = sUrl + "&mobilenumber=" + mobilenumber;
	sUrl = sUrl + "&fax=" + fax;
	sUrl = sUrl + "&vatnumber=" + vatnumber;
	sUrl = sUrl + "&tradingterms=" + tradingterms;
	sUrl = sUrl + "&expected_terms=" + expected_terms;
	//sUrl = sUrl + "&sortcode=" + sortcode;
	//sUrl = sUrl + "&accountnumber=" + accountnumber;
	//sUrl = sUrl + "&accountname=" + accountname;
	sUrl = sUrl + "&commission=" + commission;
	sUrl = sUrl + "&active=" + active;
	sUrl = sUrl + "&page=" + page;
	
	sUrl = sUrl + "&sid=" + Date() + Math.random();
	
	oAjax.url = sUrl;
	
	oAjax.onSuccess = function() {
	
		var sResponse = this.responseText;
		
		var aResponse = sResponse.split("{}");
		
		loadInnerHtml(document.getElementById("changesNotification"), "Changes saved successfully !");
		
		fnTimedLayer("changesNotification");
		
	};
	
	oAjax.get();
	
	showLoading("changesNotification");
}


function fnDeleteSupplier(suppliername)
{
	if (confirm("Delete Supplier Record ?"))
	{
		document.editsupplier.action = "/deleteHandler.php";
		document.editsupplier.deletesupplier.value = suppliername;
		document.editsupplier.deleteHandler.value = "deletesupplier";
		document.editsupplier.method = "POST";
		document.editsupplier.submit();
	}
}

function fnEditSupplier(suppliername)
{
	fnDoNav("/suppliers/edit&supplierid="+ suppliername);
}

function fnAddSupplier(temphandler)
{
	if(document.addsupplier.suppliername.value == "")
	{
		alert("Please enter Supplier Name !");
		document.addsupplier.suppliername.focus();
		return false;
	}
	else if(document.addsupplier.address1.value == "")
	{
		alert("Please enter Address !");
		document.addsupplier.address1.focus();
		return false;
	}
	else if(document.addsupplier.town_city.value == "")
	{
		alert("Please enter Town / City !");
		document.addsupplier.town_city.focus();
		return false;
	}
	else if (document.addsupplier.country.value == "")
	{
		alert("Please Select Country !");
		document.addsupplier.country.focus();
		return false;
	}
	var email = document.addsupplier.email.value;
	if(email !=null && email != "")
	{
		if(fnecheck(email)==false)
		{
			document.addsupplier.email.focus();
			return false;
		}
	}
	var phonenumber = document.addsupplier.phonenumber.value;
	if(phonenumber !=null && phonenumber != "")
	{
		if(checkInternationalPhone(phonenumber)==false)
		{
			alert("Invalid Phone Number !");
			document.addsupplier.phonenumber.focus();
			return false;
		}
	}
	var mobilenumber = document.addsupplier.mobilenumber.value;
	if(mobilenumber !=null && mobilenumber != "")
	{
		if(checkInternationalPhone(mobilenumber)==false)
		{
			alert("Invalid Mobile Number !");
			document.addsupplier.mobilenumber.focus();
			return false;
		}
	}
	var faxnumber = document.addsupplier.fax.value;
	if(faxnumber !=null && faxnumber != "")
	{
		if(checkInternationalPhone(faxnumber)==false)
		{
			alert("Invalid Fax Number !");
			document.addsupplier.fax.focus();
			return false;
		}
	}
	document.getElementById('otherTypes').setAttribute('value',otherTypes);
	if(temphandler == "PopUp")
	{
		document.addsupplier.action = "/saveHandler.php";
		document.addsupplier.saveHandler.value = "saveNewSupplier";
		document.addsupplier.method = "POST";
		document.addsupplier.submit();
	}
	else
	{
		document.addsupplier.action = "/saveHandler.php";
		document.addsupplier.saveHandler.value = "saveSupplier";
		document.addsupplier.method = "POST";
		document.addsupplier.submit();
	}
}

/******************* CUSTOMER FUNCTIONS *******************/

function fnImportProjectsList()
{
	if(document.getElementById("importProjectsList").style.display != "none")
	{
		var filepath = document.listprojects.filepath.value;
		if(filepath == "")
		{
			fnAlert("Please Select a CSV File to Import!", document.listprojects.filepath);
			return false;
		}
		else
		{
			var filenameLength = filepath.length;
			var uploadfileExt = filepath.substring(filenameLength-4);
			uploadfileExt = uploadfileExt.toLowerCase();
			if(uploadfileExt != ".csv")
			{
				fnAlert("Please Select a CSV File to Import!", document.listprojects.filepath);
				return false;
			}
		}
		document.listprojects.action = "/saveHandler.php";
		document.listprojects.saveHandler.value = "importProjectsList";
		document.listprojects.method = "POST";
		document.listprojects.submit();
	}
	else
	{
		document.getElementById("importProjectsList").style.display = "";
		document.getElementById("importButton").style.display = "none";
		document.listprojects.filepath.focus();
	}
}

function fnImportCustomersList()
{
	if(document.getElementById("importCustomersList").style.display != "none")
	{
		var filepath = document.listcustomers.filepath.value;
		if(filepath == "")
		{
			fnAlert("Please Select a CSV File to Import!", document.listcustomers.filepath);
			return false;
		}
		else
		{
			var filenameLength = filepath.length;
			var uploadfileExt = filepath.substring(filenameLength-4);
			uploadfileExt = uploadfileExt.toLowerCase();
			if(uploadfileExt != ".csv")
			{
				fnAlert("Please Select a CSV File to Import!", document.listcustomers.filepath);
				return false;
			}
		}
		document.listcustomers.action = "/saveHandler.php";
		document.listcustomers.saveHandler.value = "importCustomersList";
		document.listcustomers.method = "POST";
		document.listcustomers.submit();
	}
	else
	{
		document.getElementById("importCustomersList").style.display = "";
		document.getElementById("importButton").style.display = "none";
		document.listcustomers.filepath.focus();
	}
}

function fnUpdateCustomer(editcustomername)
{
	var customername = document.editcustomer.customername.value;
	var customercode = document.editcustomer.customercode.value;
	var contactname = document.editcustomer.contactname.value;
	var fao = (document.editcustomer.fao.checked) ? "on" : "";
	var address1 = document.editcustomer.address1.value;
	var address2 = document.editcustomer.address2.value;
	var address3 = document.editcustomer.address3.value;
	var town_city = document.editcustomer.town_city.value;
	var county = document.editcustomer.county.value;
	var postcode = document.editcustomer.postcode.value;
	var country = document.editcustomer.country.value;
	var email = document.editcustomer.email.value;
	var phonenumber = document.editcustomer.phonenumber.value;
	var mobilenumber = document.editcustomer.mobilenumber.value;
	var fax = document.editcustomer.fax.value;
	var vatnumber = document.editcustomer.vatnumber.value;
	var tradingterms = document.editcustomer.tradingterms.value;
	var expected_terms = document.editcustomer.expected_terms.value;
	/*var sortcode = document.editcustomer.sortcode.value;
	var accountnumber = document.editcustomer.accountnumber.value;
	var accountname = document.editcustomer.accountname.value;*/
	var discount = document.editcustomer.discount.value;
	if(document.editcustomer.criteria) var criteria = document.editcustomer.criteria.value;
	if(document.editcustomer.customer_invoices) var customer_invoices = document.editcustomer.customer_invoices.value;
	var sendemail = (document.editcustomer.sendemail.checked) ? "on" : "";
	var active = (document.editcustomer.active.checked) ? "on" : "";
	var page = document.editcustomer.page.value;
	
	if(customername == "")
	{
		fnAlert("Please enter Customer Name !", document.editcustomer.customername);
		return false;
	}
	
	else if(contactname == "")
	{
		fnAlert("Please enter Contact Name !", document.editcustomer.contactname);
		return false;
	}
	
	else if(address1 == "")
	{
		fnAlert("Please enter Address !", document.editcustomer.address1);
		return false;
	}
	
	else if(town_city == "")
	{
		fnAlert("Please enter Town / City !", document.editcustomer.town_city);
		return false;
	}
	
	else if (country == "")
	{
		fnAlert("Please Select Country !", document.editcustomer.country);
		return false;
	}
	
	if(email != null && email != "")
	{
		if(fnecheck(email) == false)
		{
			document.editcustomer.email.focus();
			return false;
		}
	}
	
	if(phonenumber != null && phonenumber != "")
	{
		if(checkInternationalPhone(phonenumber) == false)
		{
			fnAlert("Invalid Phone Number !", document.editcustomer.phonenumber);
			return false;
		}
	}
	
	if(mobilenumber != null && mobilenumber != "")
	{
		if(checkInternationalPhone(mobilenumber) == false)
		{
			fnAlert("Invalid Mobile Number !", document.editcustomer.mobilenumber);
			return false;
		}
	}
	
	if(fax != null && fax != "")
	{
		if(checkInternationalPhone(fax) == false)
		{
			fnAlert("Invalid Fax Number !", document.editcustomer.fax);
			return false;
		}
	}
	
	// MAKE AJAX CALL
	
	var oAjax = new AjaxWrapper;
	
	var sUrl = "/updateHandler.php?updateHandler=updateCustomer";
	sUrl = sUrl + "&editcustomername=" + editcustomername;
	sUrl = sUrl + "&customercode=" + customercode;
	sUrl = sUrl + "&customername=" + customername;
	sUrl = sUrl + "&contactname=" + contactname;
	sUrl = sUrl + "&fao=" + fao;
	sUrl = sUrl + "&address1=" + address1;
	sUrl = sUrl + "&address2=" + address2;
	sUrl = sUrl + "&address3=" + address3;
	sUrl = sUrl + "&town_city=" + town_city;
	sUrl = sUrl + "&county=" + county;
	sUrl = sUrl + "&postcode=" + postcode;
	sUrl = sUrl + "&country=" + country;
	sUrl = sUrl + "&email=" + email;
	sUrl = sUrl + "&phonenumber=" + phonenumber;
	sUrl = sUrl + "&mobilenumber=" + mobilenumber;
	sUrl = sUrl + "&fax=" + fax;
	sUrl = sUrl + "&tradingterms=" + tradingterms;
	sUrl = sUrl + "&expected_terms=" + expected_terms;
	sUrl = sUrl + "&vatnumber=" + vatnumber;
	//sUrl = sUrl + "&sortcode=" + sortcode;
	//sUrl = sUrl + "&accountnumber=" + accountnumber;
	//sUrl = sUrl + "&accountname=" + accountname;
	sUrl = sUrl + "&discount=" + discount;
	if(criteria) sUrl = sUrl + "&criteria=" + criteria;
	if(customer_invoices) sUrl = sUrl + "&customer_invoices=" + customer_invoices;
	sUrl = sUrl + "&sendemail=" + sendemail;
	sUrl = sUrl + "&active=" + active;
	sUrl = sUrl + "&page=" + page;
	
	sUrl = sUrl + "&sid=" + Date() + Math.random();
	
	oAjax.url = sUrl;
	
	oAjax.onSuccess = function() {
	
		var sResponse = this.responseText;
		
		var aResponse = sResponse.split("{}");
		
		loadInnerHtml(document.getElementById("changesNotification"), "Changes saved successfully !");
		
		fnTimedLayer("changesNotification");
		
	};
	
	oAjax.get();
	
	showLoading("changesNotification");
}


function fnDeleteCustomer(customername)
{
	if (confirm("Delete Customer Record ?"))
	{
		document.editcustomer.action = "/deleteHandler.php";
		document.editcustomer.deletecustomer.value = customername;
		document.editcustomer.deleteHandler.value = "deletecustomer";
		document.editcustomer.method = "POST";
		document.editcustomer.submit();
	}
}

function fnGenerateCode(sValue,sId)
{
	if (sValue.length >= 4)
	{
		document.getElementById(sId).value = (sValue.substring(0,4)).toUpperCase()  + "00"+ parseFloat(Math.random()).toFixed(1) *10;
	}
}

function fnEditCustomer(customername)
{
	fnDoNav("/customers/edit&customerid="+ customername);
}

function fnAddCustomer(temphandler,sWhich)
{
	var active = document.addcustomer.active.value;
	var customername = document.addcustomer.customername.value;
	var customercode = document.addcustomer.customercode.value;
	var discount = (document.addcustomer.discount)?document.addcustomer.discount.value:"";
	var criteria = (document.addcustomer.criteria)?document.addcustomer.criteria.value:"";
	var customer_invoices = (document.addcustomer.customer_invoices)?document.addcustomer.customer_invoices.value:"";
	var contactname = document.addcustomer.contactname.value;
	var fao = document.addcustomer.fao.value;
	var address1 = document.addcustomer.address1.value;
	var address2 = document.addcustomer.address2.value;
	var address3 = document.addcustomer.address3.value;
	var town_city = document.addcustomer.town_city.value;
	var county = document.addcustomer.county.value;
	var postcode = document.addcustomer.postcode.value;
	var country = document.addcustomer.country.value;
	var email = document.addcustomer.email.value;
	var sendemail = document.addcustomer.sendemail.value;
	var phonenumber = document.addcustomer.phonenumber.value;
	var mobilenumber = document.addcustomer.mobilenumber.value;
        var faxnumber = document.addcustomer.fax.value;
	var fax = document.addcustomer.fax.value;
	var tradingterms = document.addcustomer.tradingterms.value;
	var vatnumber = document.addcustomer.vatnumber.value;
	var sortcode = document.addcustomer.sortcode.value;
	var accountnumber = document.addcustomer.accountnumber.value;
	var accountname = document.addcustomer.accountname.value;
	
	var affiliationfee; var affiliationinvoice;
	
	if(document.addcustomer.affiliationfee)
	{
		affiliationfee = document.addcustomer.affiliationfee.value;
		affiliationinvoice = (document.addcustomer.affiliationinvoice.checked)?"on":"";
	}
	

	var sVal = document.addcustomer.sVal.value;

	if(document.addcustomer.customername.value == "")
	{
		alert("Please enter Customer Name !");
		document.addcustomer.customername.focus();
		return false;
	}
	
	else if(document.addcustomer.affiliationinvoice && document.addcustomer.affiliationinvoice.checked && document.addcustomer.affiliationfee.value == "")
	{
		alert("Please enter Affiliation Fee Amount !");
		document.addcustomer.affiliationfee.focus();
		return false;
	}
	
	else if(document.addcustomer.contactname.value == "")
	{
		alert("Please enter Contact Name !");
		document.addcustomer.contactname.focus();
		return false;
	}
	
	else if(document.addcustomer.address1.value == "")
	{
		alert("Please enter Address !");
		document.addcustomer.address1.focus();
		return false;
	}
	
	else if(document.addcustomer.town_city.value == "")
	{
		alert("Please enter Town / City !");
		document.addcustomer.town_city.focus();
		return false;
	}
	
	else if (document.addcustomer.country.value == "")
	{
		alert("Please Select Country !");
		document.addcustomer.country.focus();
		return false;
	}
	
	else if(document.addcustomer.sendemail.checked)
	{
		if(document.addcustomer.email.value == "")
		{
			alert("Please enter Email Id !");
			document.addcustomer.email.focus();
			return false;
		}
	}
	
	if(email !=null && email != "")
	{
		if(fnecheck(email)==false)
		{
			document.addcustomer.email.focus();
			return false;
		}
	}
	
	if(phonenumber !=null && phonenumber != "")
	{
		if(checkInternationalPhone(phonenumber)==false)
		{
			alert("Invalid Phone Number !");
			document.addcustomer.phonenumber.focus();
			return false;
		}
	}
	
	if(mobilenumber !=null && mobilenumber != "")
	{
		if(checkInternationalPhone(mobilenumber)==false)
		{
			alert("Invalid Mobile Number !");
			document.addcustomer.mobilenumber.focus();
			return false;
		}
	}
	
	if(faxnumber !=null && faxnumber != "")
	{
		if(checkInternationalPhone(faxnumber)==false)
		{
			alert("Invalid Fax Number !");
			document.addcustomer.fax.focus();
			return false;
		}
	}

	document.getElementById('otherTypes').setAttribute('value',otherTypes);

	if(temphandler == "PopUp")
	{
		// MAKE AJAX CALL
		
		var oAjax = new AjaxWrapper;
		
		var sUrl = "/saveHandler.php?saveHandler=saveNewCustomer";
		
		sUrl = sUrl + "&active=" + active;
		
		sUrl = sUrl + "&customername=" + customername;
		
		sUrl = sUrl + "&customercode=" + customercode;
		
		sUrl = sUrl + "&discount=" + discount;
		
		sUrl = sUrl + "&criteria=" + criteria;
		
		sUrl = sUrl + "&customer_invoices=" + customer_invoices;
		
		sUrl = sUrl + "&contactname=" + contactname;
		
		sUrl = sUrl + "&fao=" + fao;
		
		sUrl = sUrl + "&address1=" + address1;
		
		sUrl = sUrl + "&address2=" + address2;
		
		sUrl = sUrl + "&address3=" + address3;
		
		sUrl = sUrl + "&town_city=" + town_city;
		
		sUrl = sUrl + "&county=" + county;
		
		sUrl = sUrl + "&postcode=" + postcode;
		
		sUrl = sUrl + "&country=" + country;
		
		sUrl = sUrl + "&email=" + email;
		
		sUrl = sUrl + "&sendemail=" + sendemail;
		
		sUrl = sUrl + "&phonenumber=" + phonenumber;
		
		sUrl = sUrl + "&mobilenumber=" + mobilenumber;
		
		sUrl = sUrl + "&fax=" + fax;
		
		sUrl = sUrl + "&tradingterms=" + tradingterms;
		
		sUrl = sUrl + "&vatnumber=" + vatnumber;
		
		sUrl = sUrl + "&sortcode=" + sortcode;
		
		sUrl = sUrl + "&accountnumber=" + accountnumber;
		
		sUrl = sUrl + "&accountname=" + accountname;

		sUrl = sUrl + "&otherTypes=" + otherTypes;
		
		if(affiliationfee) sUrl = sUrl + "&affiliationfee=" + affiliationfee;
		
		if(affiliationinvoice) sUrl = sUrl + "&affiliationinvoice=" + affiliationinvoice;
		
		sUrl = sUrl + "&sVal=" + sVal;
		
		sUrl = sUrl + "&sid=" + Date() + Math.random();
		
		oAjax.url = sUrl;
		
		oAjax.onSuccess = function() {
			
			var sResponse = this.responseText;
			if(sVal == "")
			{
				window.opener.document.getElementById("customerdata").innerHTML = sResponse;
				//window.opener.location.reload();
				closePopup();
				
			}
			else
			{
				window.opener.document.getElementById("customerdata"+sVal).innerHTML = sResponse;
				closePopup();
			}

		};
		
		oAjax.get();
	}
	
	else
	{
		document.addcustomer.action = "/saveHandler.php";
		document.addcustomer.saveHandler.value = "saveCustomer";
		document.addcustomer.method = "POST";
		document.addcustomer.submit();
	}
}

/******************* ITEM DISPLAY (SALES AND PURCHASE) FUNCTIONS *******************/

function fnAddItem(whichform)
{
	if (whichform == "createinvoice")
	{
		document.getElementById("salesitemadd").style.display="";
		document.getElementById("salesadditem").style.display="none";
		document.getElementById("salessaveitem").style.display="";
		document.getElementById("salesundoitem").style.display="";
		document.createinvoice.item.focus();
	}
	else if (whichform == "editinvoice")
	{
		document.getElementById("salesitemadd").style.display="";
			document.getElementById("salesadditem").style.display="none";
		document.getElementById("salessaveitem").style.display="";
		document.getElementById("salesundoitem").style.display="";
		document.editinvoice.item.focus();
	}
	else if (whichform == "createquote")
	{
		document.getElementById("quoteitemadd").style.display="";
		document.getElementById("quoteadditem").style.display="none";
		document.getElementById("quotesaveitem").style.display="";
		document.getElementById("quoteundoitem").style.display="";
		document.createquote.item.focus();
	}
	else if (whichform == "editquote")
	{
		document.getElementById("quoteitemadd").style.display="";
		document.getElementById("quoteadditem").style.display="none";
		document.getElementById("quotesaveitem").style.display="";
		document.getElementById("quoteundoitem").style.display="";
		document.editquote.item.focus();
	}
	else if (whichform == "createpurchaseinvoice")
	{
		document.getElementById("purchaseitemadd").style.display="";
		document.getElementById("purchaseadditem").style.display="none";
		document.getElementById("purchasesaveitem").style.display="";
		document.getElementById("purchaseundoitem").style.display="";
		document.createpurchaseinvoice.item.focus();
	}
	else if (whichform == "editpurchaseinvoice")
	{
		document.getElementById("purchaseitemadd").style.display="";
		document.getElementById("purchaseadditem").style.display="none";
		document.getElementById("purchasesaveitem").style.display="";
		document.getElementById("purchaseundoitem").style.display="";
		document.editpurchaseinvoice.item.focus();
	}
}

function fnUndoItem(whichform)
{
	if (whichform == "createinvoice")
	{
		document.getElementById("salesitemadd").style.display="none";
		document.getElementById("salesadditem").style.display="";
		document.getElementById("salessaveitem").style.display="none";
		document.getElementById("salesundoitem").style.display="none";
		document.createinvoice.item.selectedIndex = 0;
		document.createinvoice.itemtext.value = "";
		document.createinvoice.quantity.value = "1";
		document.createinvoice.rate.value = "";
		//document.createinvoice.netamount.value = "";
		//document.createinvoice.vatrate.selectedIndex = 0;
		//document.createinvoice.vatamount.value = "";
	}
	else if (whichform == "editinvoice")
	{
		document.getElementById("salesitemadd").style.display="none";
		document.getElementById("salesadditem").style.display="";
		document.getElementById("salessaveitem").style.display="none";
		document.getElementById("salesundoitem").style.display="none";
		document.editinvoice.item.selectedIndex = 0;
		document.editinvoice.itemtext.value = "";
		document.editinvoice.quantity.value = "1";
		document.editinvoice.rate.value = "";
		//document.editinvoice.netamount.value = "";
		//document.editinvoice.vatrate.selectedIndex = 0;
		//document.editinvoice.vatamount.value = "";
	}
	if (whichform == "createquote")
	{
		document.getElementById("quoteitemadd").style.display="none";
		document.getElementById("quoteadditem").style.display="";
		document.getElementById("quotesaveitem").style.display="none";
		document.getElementById("quoteundoitem").style.display="none";
		document.createquote.item.selectedIndex = 0;
		document.createquote.itemtext.value = "";
		document.createquote.quantity.value = "1";
		document.createquote.rate.value = "";
		//document.createquote.netamount.value = "";
		//document.createquote.vatrate.selectedIndex = 0;
		//document.createquote.vatamount.value = "";
	}
	else if (whichform == "editquote")
	{
		document.getElementById("quoteitemadd").style.display="none";
		document.getElementById("quoteadditem").style.display="";
		document.getElementById("quotesaveitem").style.display="none";
		document.getElementById("quoteundoitem").style.display="none";
		document.editquote.item.selectedIndex = 0;
		document.editquote.itemtext.value = "";
		document.editquote.quantity.value = "1";
		document.editquote.rate.value = "";
		//document.editquote.netamount.value = "";
		//document.editquote.vatrate.selectedIndex = 0;
		//document.editquote.vatamount.value = "";
	}
	else if (whichform == "createpurchaseinvoice")
	{
		document.getElementById("purchaseitemadd").style.display="none";
		document.getElementById("purchaseadditem").style.display="";
		document.getElementById("purchasesaveitem").style.display="none";
		document.getElementById("purchaseundoitem").style.display="none";
		document.createpurchaseinvoice.item.selectedIndex = 0;
		document.createpurchaseinvoice.itemmemo.value = "";
		//document.createpurchaseinvoice.netamount.value = "";
		//document.createpurchaseinvoice.vatrate.selectedIndex = 0;
		//document.createpurchaseinvoice.vatamount.value = "";
	}
	else if (whichform == "editpurchaseinvoice")
	{
		document.getElementById("purchaseitemadd").style.display="none";
		document.getElementById("purchaseadditem").style.display="";
		document.getElementById("purchasesaveitem").style.display="none";
		document.getElementById("purchaseundoitem").style.display="none";
		document.editpurchaseinvoice.item.selectedIndex = 0;
		document.editpurchaseinvoice.itemmemo.value = "";
		//document.editpurchaseinvoice.netamount.value = "";
		//document.editpurchaseinvoice.vatrate.selectedIndex = 0;
		//document.editpurchaseinvoice.vatamount.value = "";
	}
}


/*******************  UPLOAD LOGO VALIDATION SCRIPT  *******************/

function fnCheckUploadFile()
{
	var uploadfile = document.uploadlogo.file.value;
	
	if(uploadfile == "")
	{
		fnAlert("Please Select File to Upload!", document.uploadlogo.file);
		
		return false;
	}
	
	else if(uploadfile != "")
	{
		var filenameLength = uploadfile.length;
		
		var uploadfileExt = uploadfile.substring(filenameLength-4);
		
		var uploadfileExt = uploadfileExt.toLowerCase();
		
		if(uploadfileExt != ".jpg" && uploadfileExt != "jpeg")
		{
			fnAlert("Please select an image in JPG format!");
			
			return false;
		}
	}
	
	document.uploadlogo.action = "/saveHandler.php";
	
	document.uploadlogo.saveHandler.value="uploadLogo";
	
	document.uploadlogo.method = "POST";
	
	document.uploadlogo.submit();
}


/******************* ALLOCATE UNSORTED FILES *******************/
function fnAllocateFiles()
{
	var list = document.unsortedfiles.allocate;
	list = list.length ? list : [list];
	var tobesorted = "";
	var sortedvalue = "";
	var filename = "";
	for(i=0;i<list.length;i++)
	{
		if(list[i].checked)
		{
			filename = list[i].value;
			tobesorted = tobesorted + list[i].value + ",";
			if (!(document.getElementById("purchaseradio"+filename).checked) && !(document.getElementById("salesradio"+filename).checked))
			{
				alert("Please select type for "+filename);
				return false;
			}
			else if (document.getElementById("salesradio"+filename).checked)
			{
				sortedvalue = sortedvalue + document.getElementById("salesradio"+filename).value + ",";
			}
			else if (document.getElementById("purchaseradio"+filename).checked)
			{
				sortedvalue = sortedvalue + document.getElementById("purchaseradio"+filename).value + ",";
			}
		}
	}
document.unsortedfiles.action = "sortfiles.php";
document.unsortedfiles.method = "POST";
document.unsortedfiles.tobesorted.value = tobesorted;
document.unsortedfiles.sortedvalue.value = sortedvalue;
document.unsortedfiles.submit();
}

function fnToggleSelect(filename)
{
	filename = filename.replace("check","")
	var checked = document.getElementById("check"+filename).checked;
	if (checked)
	{
		document.getElementById("salesradio"+filename).disabled = false;
		document.getElementById("purchaseradio"+filename).disabled = false;
	}
	else if (!checked)
	{
		document.getElementById("salesradio"+filename).checked = false;
		document.getElementById("purchaseradio"+filename).checked = false;
		document.getElementById("salesradio"+filename).disabled = "disabled";
		document.getElementById("purchaseradio"+filename).disabled = "disabled";
	}
}


/******************* UNPROCESSED DOCS *******************/

function getPurchaseInvoices()
{
	// MAKE AJAX CALL
	
	var oAjax = new AjaxWrapper;
	
	var sUrl = "/selectHandler.php?selectHandler=getPurchaseInvoices&sid=" + Date() + Math.random();
	
	oAjax.url = sUrl;
	
	oAjax.onSuccess = function() {

		getInvoicesSuccess(this.responseText,"Purchase");

	};
	
	oAjax.get();
	
	showLoading("existingPurchaseInvoiceId");
}

function getSalesInvoices()
{
	// MAKE AJAX CALL
	
	var oAjax = new AjaxWrapper;
	
	var sUrl = "/selectHandler.php?selectHandler=getSalesInvoices&sid=" + Date() + Math.random();
	
	oAjax.url = sUrl;
	
	oAjax.onSuccess = function() {

		getInvoicesSuccess(this.responseText,"Sales");

	};
	
	oAjax.get();
	
	showLoading("existingSalesInvoiceId");
}


function getInvoicesSuccess(oResponseText, sType)
{
	if(sType == "Sales")
	{
		var oSelect = document.getElementById("existingSalesInvoiceId");
		var invoicenumber = "invoicenumber";
		var clientname = "customername";
	}
	
	else
	{
		var oSelect = document.getElementById("existingPurchaseInvoiceId");
		var invoicenumber = "invoicereference";
		var clientname = "suppliername";
	}
	
	var aInvoices = eval(oResponseText);
	
	for(var i=0;i< oSelect.options.length;i++) {
		oSelect.options.remove(i);
	}
	
	oSelect.options[oSelect.options.length] = new Option("--Select--", "");
	
	for(var i=0;i< aInvoices.length;i++)
	{
		oSelect.options[oSelect.options.length] = new Option(aInvoices[i][invoicenumber]+" ("+aInvoices[i][clientname]+")", aInvoices[i]["invoiceid"]);
	}
}




function showHideMarkedDocuments()
{
	var oMarkedRows = getElementsByClass("markedRow");
	
	var oElement = document.getElementById("showHideMarked");
	
	if(oElement.checked)
	{
		if(oMarkedRows.length > 0) {
			for(var i=0; i<oMarkedRows.length; i++) {
				oMarkedRows[i].style.display = "none";
			}
		}
	}
	else
	{
		if(oMarkedRows.length > 0) {
			for(var i=0; i<oMarkedRows.length; i++) {
				oMarkedRows[i].style.display = "";
			}
		}
	}
}



function allocateUnprocessedDoc(sType)
{
	var documentRef = document.getElementById("documentRef").value;
	
	if(sType == "Sales")
	{
		var oExistingInvoiceId = document.getElementById("existingSalesInvoiceId");
	}
	
	else
	{
		var oExistingInvoiceId = document.getElementById("existingPurchaseInvoiceId");
	}
  
  var selectedCount = 0;
  
	var aExistingInvoices = new Array();
		
	for (var i = 1; i < oExistingInvoiceId.length; i++)
	{
		if (oExistingInvoiceId.options[i].selected)
		{
			selectedCount++;
			aExistingInvoices[aExistingInvoices.length] = oExistingInvoiceId.options[i].value;
		}
  }

	if(selectedCount < 1)
	{
		fnAlert("Please select atleast one Invoice !", oExistingInvoiceId);
		return false;
	}
	
	// MAKE AJAX CALL
	
	var oAjax = new AjaxWrapper;
	
	var sUrl = "/saveHandler.php?saveHandler=allocateUnprocessedDoc";
		
	sUrl = (aExistingInvoices) ? sUrl + "&invoiceid=" + aExistingInvoices.join(",") : sUrl;
	
	sUrl = sUrl + "&documentRef=" + documentRef;
	
	sUrl = sUrl + "&sType=" + sType;
	
	sUrl = sUrl + "&sid=" + Date() + Math.random();
	
	oAjax.url = sUrl;
	
	oAjax.onSuccess = function() {
	
		var invoiceid = this.responseText;
		
		if(sType == "Sales")
		{
			document.location.href = "/salesInvoices/edit&invoiceid=" + invoiceid;
		}
		
		else
		{
			document.location.href = "/purchaseInvoices/edit&invoiceid=" + invoiceid;
		}

	};
	
	oAjax.get();
}


function markUnmarkDocForNotification(iDocumentId, bMarkDoc)
{
	iMarkDocValue = (bMarkDoc) ? 1 : 0 ;
	
	// MAKE AJAX CALL
	
	var oAjax = new AjaxWrapper;
	
	var sUrl = "/updateHandler.php?updateHandler=markUnmarkDocForNotification";
	
	sUrl = sUrl + "&iDocumentId=" + iDocumentId;
	
	sUrl = sUrl + "&iMarkDocValue=" + iMarkDocValue;
	
	sUrl = sUrl + "&sid=" + Date() + Math.random();
	
	oAjax.url = sUrl;
	
	oAjax.onSuccess = function() {
		
		if(bMarkDoc)
		{
			document.getElementById("markDoc"+iDocumentId).innerHTML = '<img class="" title="Unmark Document" src="../images/warning.png" onclick="markUnmarkDocForNotification('+iDocumentId+', false);">';
			
			//document.getElementById("markDoc"+iDocumentId).parentNode.name = "markedRow";
			
			stripClass(document.getElementById("documentRow"+iDocumentId), "unmarkedRow");
			
			addClass(document.getElementById("documentRow"+iDocumentId), "markedRow");
			
			showHideMarkedDocuments();
		}
		else
		{
			document.getElementById("markDoc"+iDocumentId).innerHTML = '<input type="checkbox"  onclick="markUnmarkDocForNotification('+iDocumentId+', true);">';
			
			//document.getElementById("markDoc"+iDocumentId).parentNode.name = "unmarkedRow";
			
			stripClass(document.getElementById("documentRow"+iDocumentId), "markedRow");
			
			addClass(document.getElementById("documentRow"+iDocumentId), "unmarkedRow");
			
			showHideMarkedDocuments();
		}

	};
	
	oAjax.get();
}

function deleteUnprocessedDocument(iDocumentId, oElement)
{
	if(confirm("Delete the document ?"))
	{
		var iRow = oElement.parentNode.parentNode.rowIndex;
	
		// MAKE AJAX CALL
		
		var oAjax = new AjaxWrapper;
		
		var sUrl = "/deleteHandler.php?deleteHandler=deleteUnprocessedDoc";
		
		sUrl = sUrl + "&iDocumentId=" + iDocumentId;
		
		sUrl = sUrl + "&sid=" + Date() + Math.random();
		
		oAjax.url = sUrl;
		
		oAjax.onSuccess = function() {
		
			document.getElementById("unprocessedDocsTable").deleteRow(iRow);
		};
		
		oAjax.get();
	}
	
	else
	{
		return false;
	}
}

/******************* UPLOAD UNPROCESSED SCRIPT *******************/

function fnCheckUnprocessedUpload()
{
	var sContent = document.getElementById( "files_list" ).innerHTML;
	
	if(sContent == "")
	{
		alert("Please Select atleast one file to Upload!");
		return false;
	}
	
	document.uploadUnprocessed.action = "/saveHandler.php";
	document.uploadUnprocessed.saveHandler.value = "uploadUnprocessed";
	document.uploadUnprocessed.method = "POST";
	document.uploadUnprocessed.submit();

}


/*******************    *******************/




