﻿/*  
  Functions that handles the calculator of the residential's savings page
  
  Author : Guillaume Bonnet
  Copyright : Blueface Ltd  
*/

function getCost()
{
    var minutes = document.getElementById("minutes").value;
    var destination = document.getElementById("dstselect").value;
    var provider = document.getElementById("providerselect").value;

    // Hide all error messages
    document.getElementById("errorMinutes").style.display = 'none';
    document.getElementById("errorProvider").style.display = 'none';
    document.getElementById("errorDestination").style.display = 'none';
    document.getElementById("error").style.display = 'none';
    document.getElementById("results").style.display = 'none';
    
    // Check minutes
    if(minutes != '')
    {
        if (isNaN(minutes)==false)
        {
            minutes = parseInt(minutes);
            if (minutes <= 0) {
                document.getElementById("errorMinutes").style.display = 'block';
                minutes = 'error';
            }
        }
        else
        {
            document.getElementById("errorMinutes").style.display = 'block';
            minutes = 'error';
        }
    }
    else
    {
        document.getElementById("errorMinutes").style.display = 'block';
        minutes = 'error';
    }

    // Check Destination
    if (destination == '' || destination == 'none') {
        document.getElementById("errorDestination").style.display = 'block';
        destination = 'error';
    }
    
    // Check provider
    if (provider == '' || provider == 'none') {
        document.getElementById("errorProvider").style.display = 'block';
        provider = 'error';
    }

    if (minutes != 'error' && destination != 'error' && provider != 'error') {

        var providerRate = 0;
        var bluefaceRate = 0;

        // Ireland Local
        if (destination == 'IrelandLocal') {
            
            bluefaceRate = 1.7;
            
            switch (provider) {
                case "Eircom":
                    providerRate = 5.19;
                    break;
                case "BT":
                    providerRate = 3.81;
                    break;
                case "NTL":
                    providerRate = 3.81;
                    break;
                case "Perlico":
                    providerRate = 3.96;
                    break;
                case "Skype":
                    providerRate = 2;
                    break;
                case "Imagine":
                    providerRate = 4.4;
                    break;
            }
        }

        // Ireland National
        if (destination == 'IrelandNational') {

            bluefaceRate = 1.7;

            switch (provider) {
                case "Eircom":
                    providerRate = 8.6;
                    break;
                case "BT":
                    providerRate = 3.81;
                    break;
                case "NTL":
                    providerRate = 3.81;
                    break;
                case "Perlico":
                    providerRate = 3.96;
                    break;
                case "Skype":
                    providerRate = 2;
                    break;
                case "Imagine":
                    providerRate = 6.5;
                    break;
            }
        }

        // O2
        if (destination == 'O2') {

            bluefaceRate = 18;

            switch (provider) {
                case "Eircom":
                    providerRate = 21.07;
                    break;
                case "BT":
                    providerRate = 21.09;
                    break;
                case "NTL":
                    providerRate = 23.09;
                    break;
                case "Perlico":
                    providerRate = 20;
                    break;
                case "Skype":
                    providerRate = 18.4;
                    break;
                case "Imagine":
                    providerRate = 20;
                    break;
            }
        }

        // Vodafone
        if (destination == 'Vodafone') {

            bluefaceRate = 18;

            switch (provider) {
                case "Eircom":
                    providerRate = 21.09;
                    break;
                case "BT":
                    providerRate = 21.09;
                    break;
                case "NTL":
                    providerRate = 23.09;
                    break;
                case "Perlico":
                    providerRate = 20;
                    break;
                case "Skype":
                    providerRate = 18.4;
                    break;
                case "Imagine":
                    providerRate = 20;
                    break;
            }
        }

        // UK
        if (destination == 'UK') {

            bluefaceRate = 1.6;

            switch (provider) {
                case "Eircom":
                    providerRate = 15.42;
                    break;
                case "BT":
                    providerRate = 8.03;
                    break;
                case "NTL":
                    providerRate = 10.04;
                    break;
                case "Perlico":
                    providerRate = 9.03;
                    break;
                case "Skype":
                    providerRate = 2;
                    break;
                case "Imagine":
                    providerRate = 8;
                    break;
            }
        }

        // USA
        if (destination == 'USA') {

            bluefaceRate = 1.4;

            switch (provider) {
                case "Eircom":
                    providerRate = 19.12;
                    break;
                case "BT":
                    providerRate = 8.03;
                    break;
                case "NTL":
                    providerRate = 12.05;
                    break;
                case "Perlico":
                    providerRate = 9.48;
                    break;
                case "Skype":
                    providerRate = 2;
                    break;
                case "Imagine":
                    providerRate = 6;
                    break;
            }
        }

        // Australia
        if (destination == 'Australia') {

            bluefaceRate = 1.7;

            switch (provider) {
                case "Eircom":
                    providerRate = 86.12;
                    break;
                case "BT":
                    providerRate = 55.22;
                    break;
                case "NTL":
                    providerRate = 65.27;
                    break;
                case "Perlico":
                    providerRate = 13.5;
                    break;
                case "Skype":
                    providerRate = 2;
                    break;
                case "Imagine":
                    providerRate = 30;
                    break;
            }
        }

        if (bluefaceRate != 0 && providerRate != 0) {
            var bluefaceCostOfCall = bluefaceRate * minutes / 100;
            var providerCostOfCall = providerRate * minutes / 100;
            var savings = providerCostOfCall - bluefaceCostOfCall;
            var savingsPercentage = 100 - ((100 * bluefaceRate) / providerRate);

            document.getElementById("results").style.display = 'block';
            document.getElementById("displayprovider").innerHTML = provider;
            document.getElementById("displayprovider2").innerHTML = provider;
            document.getElementById("displayproviderrates").innerHTML = providerRate;
            document.getElementById("displaybluefacerates").innerHTML = bluefaceRate;
            document.getElementById("displaysavingpercentage").innerHTML = savingsPercentage.toFixed(2);
            document.getElementById("displaybluefacecost").innerHTML = bluefaceCostOfCall.toFixed(2);
            document.getElementById("displaybprovidercost").innerHTML = providerCostOfCall.toFixed(2);
            document.getElementById("displayminutes").innerHTML = minutes;
            document.getElementById("displaysavings").innerHTML = savings.toFixed(2);
        }
        else {
            document.getElementById("error").style.display = 'block';
        }
    }   
}
