function CalculateCustomDuty(tbBasicDuty, tbAddlDuty, tbCIF_Value, tbBasicDutyPref, tbSplAddlDuty, tbCentralExciseEducationCessDuty, tbEducationCessDuty, btnId)
{
    var btn = document.getElementById(btnId);

    var objBasicDuty = document.getElementById(tbBasicDuty);
    var objAddlDuty = document.getElementById(tbAddlDuty);
    var objCIF_Value = document.getElementById(tbCIF_Value);
    var objBasicDutyPref = document.getElementById(tbBasicDutyPref);
    var objSplAddlDuty = document.getElementById(tbSplAddlDuty);
    var objCentralExciseEducationCessDuty = document.getElementById(tbCentralExciseEducationCessDuty)
    var objEducationCessDuty = document.getElementById(tbEducationCessDuty);
    var decimals = 8;
    
    objBasicDuty.value = trimAll(objBasicDuty.value);
    objAddlDuty.value = trimAll(objAddlDuty.value);
    objCIF_Value.value = trimAll(objCIF_Value.value);
    objBasicDutyPref.value = trimAll(objBasicDutyPref.value);
    objSplAddlDuty.value = trimAll(objSplAddlDuty.value);
    objCentralExciseEducationCessDuty.value = trimAll(objCentralExciseEducationCessDuty.value);
    objEducationCessDuty.value = trimAll(objEducationCessDuty.value);

    var BasicDuty = ReturnFloat(objBasicDuty);
    var AddlDuty = ReturnFloat(objAddlDuty);
    var CIF_Value = ReturnFloat(objCIF_Value);
    var BasicDutyPref = ReturnFloat(objBasicDutyPref);
    var SplAddlDuty = ReturnFloat(objSplAddlDuty);
    var objCentralExciseEducationCessDuty = ReturnFloat(objCentralExciseEducationCessDuty)
    var objEducationCessDuty = ReturnFloat(objEducationCessDuty);

    if(CIF_Value == 0)
    {
        alert('Please enter CIF Value');
        objCIF_Value.focus();
    }

    if(BasicDutyPref > 0 && BasicDuty > 0)
    {
        alert('Basic Duty has been ignored, because Basic Duty Preferred exists');
        objBasicDuty.value = 0;
        BasicDuty = 0;
    }
    
    var AssessableValue = 0;
    var BasicDutyCalculated = 0;
    var BasicDutyPrefCalculated = 0;
    var AddlDutyCalculated = 0;
    var SplAddlDutyCalculated = 0;
    var TotalDutyCalculated = 0;
    var EducationCessCalculated = 0;
    var CentralExciseEducationCessCalculated = 0;

    AssessableValue = Round(CIF_Value + (CIF_Value * 1 / 100), decimals);
    BasicDutyCalculated = Round((AssessableValue * BasicDuty) / 100, decimals);
    BasicDutyPrefCalculated = Round(((AssessableValue + BasicDutyCalculated) * BasicDutyPref) / 100, decimals);
    AddlDutyCalculated = Round((AssessableValue + BasicDutyCalculated + BasicDutyPrefCalculated) * AddlDuty / 100, decimals);
    //AddlDutyCalculated = Round((AssessableValue + BasicDutyCalculated) * objAddlDuty / 100, decimals);
    CentralExciseEducationCessCalculated = Round((AddlDutyCalculated) * objCentralExciseEducationCessDuty / 100, decimals);
    //EducationCessCalculated = Round((BasicDutyCalculated + BasicDutyPrefCalculated + AddlDutyCalculated) * objEducationCessDuty / 100, decimals);
    EducationCessCalculated = Round((BasicDutyCalculated + BasicDutyPrefCalculated + AddlDutyCalculated + CentralExciseEducationCessCalculated) * objEducationCessDuty / 100, decimals);
    SplAddlDutyCalculated = Round((AssessableValue + BasicDutyCalculated + BasicDutyPrefCalculated + AddlDutyCalculated + CentralExciseEducationCessCalculated + EducationCessCalculated) * SplAddlDuty / 100, decimals);


    //TotalDutyCalculated = Round(BasicDutyCalculated + BasicDutyPrefCalculated + AddlDutyCalculated + SplAddlDutyCalculated + EducationCessCalculated, decimals);
    TotalDutyCalculated = Round(BasicDutyCalculated + BasicDutyPrefCalculated + AddlDutyCalculated + EducationCessCalculated + CentralExciseEducationCessCalculated + SplAddlDutyCalculated, decimals);

    //Showing the Datas
    //var objCIF_Value = document.getElementById('CIF_Value');
    //objCIF_Value.innerHTML = CIF_Value;

    var objAssesableValue = document.getElementById('AssesableValue');
    objAssesableValue.innerHTML = AssessableValue;

    var objBasicDuty = document.getElementById('BasicDuty');
    objBasicDuty.innerHTML = BasicDutyCalculated;

    var objBasicDutyPref = document.getElementById('BasicDutyPref');
    objBasicDutyPref.innerHTML = BasicDutyPrefCalculated;

    var objAddlDuty = document.getElementById('AddlDuty');
    objAddlDuty.innerHTML = AddlDutyCalculated;

    var objSplAddlDuty = document.getElementById('SplAddlDuty');
    objSplAddlDuty.innerHTML = SplAddlDutyCalculated;

    var objCentralExciseEducationCessDuty = document.getElementById('CentralExciseEducationCess');
    objCentralExciseEducationCessDuty.innerHTML = CentralExciseEducationCessCalculated;

    var objEducationCess = document.getElementById('EducationCess');
    objEducationCess.innerHTML = EducationCessCalculated;

    var objTotalDutyPayable = document.getElementById('TotalDutyPayable');
    objTotalDutyPayable.innerHTML = TotalDutyCalculated;
    
    btn.value = 'Re-Calculate Custom Duty';
}

function trimAll(sString) 
{
    while (sString.substring(0,1) == ' ')
    {
    sString = sString.substring(1, sString.length);
    }

    while (sString.substring(sString.length-1, sString.length) == ' ')
    {
    sString = sString.substring(0,sString.length-1);
    }
    return sString;
}

