<!--
//Copyright © 2002 - 2010 PracticeWEB Ltd
//-----------------------------------------------------------------------------------------------------------------
// Gross Profit Margin Calculator
//-----------------------------------------------------------------------------------------------------------------


function v_number(number){
var digits="0123456789.£";
if (number=="£") {return false;}
if (number.length==0) {return false;}
for (var i=0;i<number.length;i++){if (digits.indexOf(number.substring(i,i+1))==-1 && number.substring(i,i+1)!="."){return false;}}
if (number<0) {return false;}
return true;
}

function formatCurrency(number){

var decimalPos;
var leftPart = number.toString();
var orgLeftPart = "";
var digitCount = 0;
var digitChar = "";
var decimalPart = "";

decimalPos = leftPart.indexOf(".");
if (decimalPos!==-1) {
decimalPart = leftPart.substring(decimalPos);
leftPart = leftPart.substring(0,decimalPos);
}

decimalPart = decimalPart.substring(0,3);

orgLeftPart = leftPart;
leftPart="";
for (var x=orgLeftPart.length-1;x!=-1;x--) {

digitCount = digitCount + 1;
digitChar = orgLeftPart.substring(x,x+1);
if (digitCount==3) {
digitCount=0;
digitChar = "," + digitChar;
}
leftPart = digitChar + leftPart;

}
if (leftPart.substring(0,1)==",") {leftPart=leftPart.substring(1);}

return("£" + leftPart + decimalPart);

}

function formatNumber(number){

var decimalPos;
var leftPart = number.toString();
var orgLeftPart = "";
var digitCount = 0;
var digitChar = "";
var decimalPart = "";

decimalPos = leftPart.indexOf(".");
decimalPart = leftPart.substring(decimalPos);
leftPart = leftPart.substring(0,decimalPos);

decimalPart = decimalPart.substring(0,3);

orgLeftPart = leftPart;
leftPart="";
for (var x=orgLeftPart.length-1;x!=-1;x--) {

digitCount = digitCount + 1;
digitChar = orgLeftPart.substring(x,x+1);
if (digitCount==3) {
digitCount=0;
digitChar = "," + digitChar;
}
leftPart = digitChar + leftPart;

}
if (leftPart.substring(0,1)==",") {leftPart=leftPart.substring(1);}

return(leftPart + decimalPart);

}

// ***************************************

function calculateGrossProfitCostSales() {

var frm=document.forms.frmGrossProfitCostSalesCalc;
var intW=frm.strInputW.value // Gross Profit Margin
var intX=frm.strInputX.value // Sales

var errorMessage="";
if (!v_number(intW)) {errorMessage+="Gross Profit Margin,\n";}
if (!v_number(intX)) {errorMessage+="Sales,\n";}
if (errorMessage.length!=0) {alert("The following entries are incorrect:\n\n"+errorMessage+"\nPlease correct these entries and\ntry again.");return false;}	

var intY=0; // Result - Cost of Sales
var intZ=0; // Result - Gross Profit

intZ = (intW * (intX / 100));
intY = (intX - intZ);

frm.strResultY.value=formatCurrency(intY);
frm.strResultZ.value=formatCurrency(intZ);

return false;
}

function calculateGrossProfitMargin() {

var frm=document.forms.frmGrossProfitMarginCalc;
var intK=frm.strInputK.value // Sales
var intL=frm.strInputL.value // Cost of sales

var errorMessage="";
if (!v_number(intK)) {errorMessage+="Sales,\n";}
if (!v_number(intL)) {errorMessage+="Cost of Sales,\n";}
if (errorMessage.length!=0) {alert("The following entries are incorrect:\n\n"+errorMessage+"\nPlease correct these entries and\ntry again.");return false;}	

var intM=0; // Result - Gross Profit
var intN=0; // Result - Gross Profit Margin

intM = (intK - intL);
intN = ((intM / intK) * 100);

frm.strResultM.value=formatCurrency(intM);
frm.strResultN.value=formatNumber(intN);

return false;
}


-->