// JavaScript Document
function FormatCMNumber(number) {
	return Math.round((number)*10)/10;
}

function CalculateSale () {
	//Declare some variables
	var SpotPC, LIFFEPC, LIFFEOptPC, PCTotal, WheatTonnes, SpotPrice, LIFFEPrice, OptDeduct;
	SpotPC = parseInt(document.frmTable.txtSpotPC.value);
	LIFFEPC = parseInt(document.frmTable.txtLIFFEPC.value);
	LIFFEOptPC = parseInt(document.frmTable.txtLIFFEOptPC.value);
	WheatTonnes = parseInt(document.frmTable.wheattonnes.value);
	PCTotal = eval(SpotPC + LIFFEPC + LIFFEOptPC);
	SpotPrice = parseFloat(document.frmTable.txtSpotPrice.value);
	LIFFEPrice = parseFloat(document.frmTable.txtLIFFEPrice.value);
	IncPrice = parseFloat(document.frmTable.txtIncPrice.value);
	DecPrice = parseFloat(document.frmTable.txtDecPrice.value)
	OptDeduct = parseFloat(document.frmTable.calloption.value);
	Adjustment = parseFloat(document.frmTable.adjustment.value);
	Budget = parseFloat(document.frmTable.budget.value);
	//Need to check for numeric values in percent columns, and that they add up to 100%
	if (PCTotal != 100) {
		alert ('Please make sure your percentage sales equals 100%');
	} else {
		//Start Filling in the labels in the table
		//Tonnage amounts
		var SpotTonnes, LIFFETonnes, LIFFEOptTonnes, LIFFEDeduct
		SpotTonnes = SpotPC*WheatTonnes/100;
		LIFFETonnes = LIFFEPC*WheatTonnes/100;
		LIFFEOptTonnes = LIFFEOptPC*WheatTonnes/100;
		LIFFEDeduct = LIFFEOptTonnes * OptDeduct;
		
		lblSpotTonneSell.innerText = SpotTonnes;
		lblLIFFETonneSell.innerText = LIFFETonnes;
		lblLIFFEOptTonneSell.innerText = LIFFEOptTonnes;
		
		//£/T
		lblSpotPrice.innerText = SpotPrice;
		lblLIFFEPrice.innerText = LIFFEPrice;
		lblLIFFEOptPrice.innerText = LIFFEPrice;
		lblOptDeduct.innerText = OptDeduct;
		
		var SpotTotal,SpotTotalPlus,SpotTotalMinus, LIFFETotal,LIFFETotalPlus,LIFFETotalMinus, LIFFEOptTotal, LIFFEOptTotalPlus, LIFFEOptTotalMinus;
		SpotTotal = SpotPrice * SpotTonnes;
		SpotTotalPlus = (SpotPrice + IncPrice) * SpotTonnes;
		SpotTotalMinus = (SpotPrice - DecPrice) * SpotTonnes;
		
		LIFFETotal = (LIFFEPrice - Adjustment) * LIFFETonnes;
		LIFFETotalPlus = (LIFFEPrice - Adjustment + IncPrice) * LIFFETonnes;
		LIFFETotalMinus = (LIFFEPrice - Adjustment - DecPrice) * LIFFETonnes;		
		
		LIFFEOptTotal = (LIFFEPrice - Adjustment) * LIFFEOptTonnes;
		LIFFEOptTotalPlus = (LIFFEPrice - Adjustment + IncPrice) * LIFFEOptTonnes;
		LIFFEOptTotalMinus = (LIFFEPrice - Adjustment - DecPrice) * LIFFEOptTonnes;		
		
		lblSpotTotal.innerText = FormatCMNumber(SpotTotal);
		lblSpotTotalInc.innerText = FormatCMNumber(SpotTotalPlus);
		lblSpotTotalDec.innerText = FormatCMNumber(SpotTotalMinus);
		
		lblLIFFETotal.innerText = FormatCMNumber(LIFFETotal);
		lblLIFFETotalInc.innerText = FormatCMNumber(LIFFETotalPlus);
		lblLIFFETotalDec.innerText = FormatCMNumber(LIFFETotalMinus);		
		
		lblLIFFEOptTotal.innerText = FormatCMNumber(LIFFEOptTotal);
		lblLIFFEOptTotalInc.innerText = FormatCMNumber(LIFFEOptTotalPlus);
		lblLIFFEOptTotalDec.innerText = FormatCMNumber(LIFFEOptTotalMinus);
		
		lblOptDeductTotal.innerText = FormatCMNumber(LIFFEDeduct);
		lblOptDeductTotalInc.innerText = FormatCMNumber(LIFFEDeduct);
		lblOptDeductTotalDec.innerText = FormatCMNumber(LIFFEDeduct);
		
		var GrandTotal, GrandTotalPlus, GrandTotalMinus;
		GrandTotal = SpotTotal + LIFFETotal + LIFFEOptTotal - LIFFEDeduct;
		GrandTotalPlus = SpotTotalPlus + LIFFETotalPlus + LIFFEOptTotalPlus - LIFFEDeduct;
		GrandTotalMinus = SpotTotalMinus + LIFFETotalMinus + LIFFEOptTotalMinus - LIFFEDeduct;
		lblGrandTotal.innerText = FormatCMNumber(GrandTotal);
		lblGrandTotalInc.innerText = FormatCMNumber(GrandTotalPlus);
		lblGrandTotalDec.innerText = FormatCMNumber(GrandTotalMinus);
		lblTotalPPT.innerText = FormatCMNumber(GrandTotal / WheatTonnes);
		lblTotalPPTInc.innerText = FormatCMNumber(GrandTotalPlus / WheatTonnes);
		lblTotalPPTDec.innerText =  FormatCMNumber(GrandTotalMinus / WheatTonnes);
		
		var BudgetTotal;
		BudgetTotal = Budget * WheatTonnes;
		lblBudgetTotal.innerText = FormatCMNumber(BudgetTotal);
		lblBudgetTotalInc.innerText = FormatCMNumber(BudgetTotal);
		lblBudgetTotalDec.innerText = FormatCMNumber(BudgetTotal);
		
		lblBudgetTotalDifValue.innerText = FormatCMNumber(GrandTotal - BudgetTotal);
		lblBudgetTotalDifValueInc.innerText = FormatCMNumber(GrandTotalPlus - BudgetTotal);
		lblBudgetTotalDifValueDec.innerText = FormatCMNumber(GrandTotalMinus - BudgetTotal);
		
		lblBudgetTotalDifPT.innerText = FormatCMNumber((GrandTotal/WheatTonnes) - Budget);
		lblBudgetTotalDifPTInc.innerText =  FormatCMNumber((GrandTotalPlus/WheatTonnes) - Budget);
		lblBudgetTotalDifPTDec.innerText = FormatCMNumber((GrandTotalMinus/WheatTonnes) - Budget);
		
	}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && document.getElementById) x=document.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function confirmSubmit() {
	var agree=confirm("By registering you are confirming that you have read and agree to be bound by the terms and conditions of this site");
    if (agree)
	return true ;
    else
	return false ;
}
   