﻿/****** REGION: Constants ******/
var xmlDataDocIndMyLife = "";
/****** END REGION: Constants ******/

function loadMyLife()
{
    loadXmlDataDoc();
}
function loadXmlDataDoc()
{
    feed_id = 0;
    feed_total = 0;
    feed_file = individualFlightXML;
    
    if (window.ActiveXObject) { // branch for IE/Windows ActiveX version
        xmlDataDocIndMyLife = new ActiveXObject("Microsoft.XMLDOM");
        xmlDataDocIndMyLife.async = "true";
        xmlDataDocIndMyLife.onreadystatechange = verifyXmlDataLoaded;
        xmlDataDocIndMyLife.load(individualMyLifeXML);
    } else if (window.XMLHttpRequest) {
        xmlDataDocIndMyLife = new XMLHttpRequest();
        xmlDataDocIndMyLife.onreadystatechange = verifyXmlDataLoaded;
        xmlDataDocIndMyLife.open("GET", individualMyLifeXML, true);
        xmlDataDocIndMyLife.send(null);
    }
    return true;
}
function verifyXmlDataLoaded()
{
    if (xmlDataDocIndMyLife.readyState == 4)
    {
        loadOpt2Driving();
        loadOpt2PublicTrans();
    };
}

/****** REGION: Option 1 methods ******/
function calculateOption1()
{
    var txtOpt1Age = document.getElementById('txtOpt1Age');
    var ddlOpt1TnptHhld = document.getElementById('ddlOpt1TnptHhld');
    
    var result = txtOpt1Age.value * ddlOpt1TnptHhld.value;
        
        // convert from kilo's to tonnes
        result = result / 1000;
    
    // round to two decimal places
    var roundedResult = Math.round(result*100)/100;
    // show the cost of this offset
    var roundedCost = (Math.round((roundedResult * costPerTonne)*100)/100).toFixed(2);
    document.getElementById('ctl00_cphPrimary_hfOpt1Result').value = roundedResult;
    
    if(document.all)
    {
        document.getElementById('divOpt1Result').innerHTML = roundedResult.toString();
        document.getElementById('divOpt1Cost').innerText = roundedCost;
    }
    else
    {
        document.getElementById('divOpt1Result').textContent = roundedResult.toString();
        document.getElementById('divOpt1Cost').textContent = roundedCost;
    }
    
    
}
/****** END REGION: Option 1 methods ******/

/****** REGION: Option 2 methods ******/
function loadOpt2Driving()
{
    var selectID = 'ddlOpt2Drive';
    if (document.getElementById(selectID))
    {
        // clear previous values out first.
        RemoveListOptions(selectID);
        
        // iterate through the xml document getting the data
        if (xmlDataDocIndMyLife.responseXML) 
        {
            xmlDataDocIndMyLife = xmlDataDocIndMyLife.responseXML;
        }
        if (xmlDataDocIndMyLife.getElementsByTagName('Option').length > 0) {
            // add a default "Select" option
            AddListOption(selectID, 'Select...', '');
            
            var options = xmlDataDocIndMyLife.getElementsByTagName('Option');
            for (var i = 0; i < options.length; i++)
            {
                // check the "Name" attribute of the data item
                var optionName = options.item(i).getAttribute('Name');
                if (optionName == 'Bespoke')
                { // this is the data item we want
                    var listItems = options.item(i).getElementsByTagName('DrivingFactor');
                    // add the data items to the list
                    for (var iLi = 0; iLi < listItems.length; iLi++)
                    {
                        AddListOption(selectID, listItems.item(iLi).firstChild.nodeValue, 
                            listItems.item(iLi).getAttribute('EmissionFactor'));
                    }
                }
            };
        }
        else {
            AddListOption(selectID, 'Error loading data', '');
        };
    };
}
function loadOpt2PublicTrans()
{
    var selectID = 'ddlOpt2PubTrans';
    if (document.getElementById(selectID))
    {
        // clear previous values out first.
        RemoveListOptions(selectID);
        
        // iterate through the xml document getting the data
        if (xmlDataDocIndMyLife.responseXML) 
        {
            xmlDataDocIndMyLife = xmlDataDocIndMyLife.responseXML;
        }
        if (xmlDataDocIndMyLife.getElementsByTagName('Option').length > 0) {
            // add a default "Select" option
            AddListOption(selectID, 'Select...', '');
            
            var options = xmlDataDocIndMyLife.getElementsByTagName('Option');
            for (var i = 0; i < options.length; i++)
            {
                // check the "Name" attribute of the data item
                var optionName = options.item(i).getAttribute('Name');
                if (optionName == 'Bespoke')
                { // this is the data item we want
                    var listItems = options.item(i).getElementsByTagName('PublicTransportFactor');
                    // add the data items to the list
                    for (var iLi = 0; iLi < listItems.length; iLi++)
                    {
                        AddListOption(selectID, listItems.item(iLi).firstChild.nodeValue, 
                            listItems.item(iLi).getAttribute('EmissionFactor'));
                    }
                }
            };
        }
        else {
            AddListOption(selectID, 'Error loading data', '');
        };
    };
}
function calculateOption2() {
    var txtOpt2Age = document.getElementById('txtOpt2Age');
    var txtOpt2Food = document.getElementById('txtOpt2Food');
    var txtOpt2EatingOut = document.getElementById('txtOpt2EatingOut');
    var txtOpt2Entertainment = document.getElementById('txtOpt2Entertainment');
    var txtOpt2Clothing = document.getElementById('txtOpt2Clothing');
    var txtOpt2MagsNews = document.getElementById('txtOpt2MagsNews');
    var txtOpt2Gym = document.getElementById('txtOpt2Gym');
    var txtOpt2FurnApp = document.getElementById('txtOpt2FurnApp');
    var txtOpt2OthGdSvc = document.getElementById('txtOpt2OthGdSvc');
    var ddlOpt2Drive = document.getElementById('ddlOpt2Drive');
    var ddlOpt2PubTrans = document.getElementById('ddlOpt2PubTrans');
    	        
    
    // add the food & entertainment expenses together and calculate emissions for the year (IN TONNES)
    var part1 = parseFloat(txtOpt2Food.value) + parseFloat(txtOpt2EatingOut.value) +
        parseFloat(txtOpt2Entertainment.value);
    part1 = (part1 * 12) / mylifeFoodEntertainmentEmissionModifier;
    
    
    // add goods and services expenses together and calculate emissions for the year (IN TONNES)
    var part2 = parseFloat(txtOpt2Clothing.value) + parseFloat(txtOpt2MagsNews.value) + 
        parseFloat(txtOpt2Gym.value) + parseFloat(txtOpt2FurnApp.value) + 
        parseFloat(txtOpt2OthGdSvc.value);
    part2 = (part2 * 12) / mylifGoodServicesEmissionModifier;
    
    // calulate the transport emissions (IN TONNES)
    var part3 = (parseFloat(ddlOpt2Drive.value) + parseFloat(ddlOpt2PubTrans.value)) / 1000;
    
    // add all parts together & multiply by age and age modifier
    var result = mylifeBestpokeAgeModifier * txtOpt2Age.value * (parseFloat(part1) + 
        parseFloat(part2) + parseFloat(part3));

    // Is already in tonnes
    
    // round to two decimal places
    var roundedResult = Math.round(result*100)/100;
    // show the cost of this offset
    var roundedCost = (Math.round((roundedResult * costPerTonne)*100)/100).toFixed(2);
    document.getElementById('ctl00_cphPrimary_hfOpt2Result').value = roundedResult;
    
    if(document.all)
    {
        document.getElementById('divOpt2Result').innerHTML = roundedResult.toString();
        document.getElementById('divOpt2Cost').innerText = roundedCost;
    }
    else
    {
        document.getElementById('divOpt2Result').textContent = roundedResult.toString();
        document.getElementById('divOpt2Cost').textContent = roundedCost;    
    }   
}
/****** END REGION: Option 2 methods ******/
