﻿function parseXML20()
{
    try //Internet Explorer
    {
        xmlDoc=new ActiveXObject("Microsoft.XMLDOM")
    }
    catch(e)
    {
        try //Firefox, Mozilla, Opera, etc.
        {
            xmlDoc=document.implementation.createDocument("","",null);
        }
        catch(e)
        {
            alert(e.message);
            return;
        }
    }
    xmlDoc.async=false;
    xmlDoc.load("includes/roofing.xml");
            
    var companies = xmlDoc.getElementsByTagName("Company");
    var laborRate = xmlDoc.getElementsByTagName("LaborRate");
    var roofSize = xmlDoc.getElementsByTagName("RoofSize");

    document.getElementById("SqFeetRollFelt15").value = companies[1].getElementsByTagName("SquareFeetPerRoll")[0].childNodes[0].nodeValue;
    document.getElementById("SqFeetRollTitanium25").value = companies[0].getElementsByTagName("SquareFeetPerRoll")[0].childNodes[0].nodeValue;
    document.getElementById("CoverageFelt15").value = companies[1].getElementsByTagName("RollCoverage")[0].childNodes[0].nodeValue;
    document.getElementById("CoverageTitanium25").value = companies[0].getElementsByTagName("RollCoverage")[0].childNodes[0].nodeValue;
    document.getElementById("InstallationFelt15").value = companies[1].getElementsByTagName("Installation")[0].childNodes[0].nodeValue;
    document.getElementById("InstallationTitanium25").value = companies[0].getElementsByTagName("Installation")[0].childNodes[0].nodeValue;
    
    if(document.getElementById("CostPerRollTitanium25").value == "" || document.getElementById("CostPerRollTitanium25").value == null)
    {
        document.getElementById("CostPerRollTitanium25").value = companies[0].getElementsByTagName("CostPerRoll")[0].childNodes[0].nodeValue;
    }
    if(document.getElementById("CostPerRollFelt15").value == "")
    {
        document.getElementById("CostPerRollFelt15").value = companies[1].getElementsByTagName("CostPerRoll")[0].childNodes[0].nodeValue;
    }
    if(document.getElementById("LaborRate20").value == "")
    {
        document.getElementById("LaborRate20").value = laborRate[0].childNodes[0].nodeValue;
    }
    if(document.getElementById("SizeOfRoof20").value == "")
    {
        document.getElementById("SizeOfRoof20").value = roofSize[0].childNodes[0].nodeValue;
    }
}

function parseXML30()
{
    try //Internet Explorer
    {
        xmlDoc=new ActiveXObject("Microsoft.XMLDOM")
    }
    catch(e)
    {
        try //Firefox, Mozilla, Opera, etc.
        {
            xmlDoc=document.implementation.createDocument("","",null);
        }
        catch(e)
        {
            alert(e.message);
            return;
        }
    }
    xmlDoc.async=false;
    xmlDoc.load("includes/roofing.xml");
            
    var companies = xmlDoc.getElementsByTagName("Company");
    var laborRate = xmlDoc.getElementsByTagName("LaborRate");
    var roofSize = xmlDoc.getElementsByTagName("RoofSize");
    
    document.getElementById("SqFeetRollFelt30").value = companies[3].getElementsByTagName("SquareFeetPerRoll")[0].childNodes[0].nodeValue;
    document.getElementById("SqFeetRollTitanium30").value = companies[2].getElementsByTagName("SquareFeetPerRoll")[0].childNodes[0].nodeValue;
    document.getElementById("CoverageFelt30").value = companies[3].getElementsByTagName("RollCoverage")[0].childNodes[0].nodeValue;
    document.getElementById("CoverageTitanium30").value = companies[2].getElementsByTagName("RollCoverage")[0].childNodes[0].nodeValue;
    document.getElementById("InstallationFelt30").value = companies[3].getElementsByTagName("Installation")[0].childNodes[0].nodeValue;
    document.getElementById("InstallationTitanium30").value = companies[2].getElementsByTagName("Installation")[0].childNodes[0].nodeValue;
        
    if(document.getElementById("CostPerRollTitanium30").value == "")
    {
        document.getElementById("CostPerRollTitanium30").value = companies[2].getElementsByTagName("CostPerRoll")[0].childNodes[0].nodeValue;
    }
    if(document.getElementById("CostPerRollFelt30").value == "")
    {
        document.getElementById("CostPerRollFelt30").value = companies[3].getElementsByTagName("CostPerRoll")[0].childNodes[0].nodeValue;
    }
    if(document.getElementById("LaborRate30").value == "")
    {
        document.getElementById("LaborRate30").value = laborRate[0].childNodes[0].nodeValue;
    }
    if(document.getElementById("SizeOfRoof30").value == "")
    {
        document.getElementById("SizeOfRoof30").value = roofSize[0].childNodes[0].nodeValue;
    }
}


function parseXMLforEdit()
        {
            try //Internet Explorer
            {
                xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
            }
            catch(e)
            {
                try //Firefox, Mozilla, Opera, etc.
                {
                    xmlDoc=document.implementation.createDocument("","",null);
                }
                catch(e)
                {
                    alert(e.message);
                    return;
                }
            }
            xmlDoc.async=false;
            xmlDoc.load("includes/roofing.xml");
            
            var companies = xmlDoc.getElementsByTagName("Company");
            
            document.getElementById("txtSqFeetRollFelt15").value = companies[1].getElementsByTagName("SquareFeetPerRoll")[0].childNodes[0].nodeValue;
            document.getElementById("txtSqFeetRollTitanium25").value = companies[0].getElementsByTagName("SquareFeetPerRoll")[0].childNodes[0].nodeValue;
            document.getElementById("txtCoverageFelt15").value = companies[1].getElementsByTagName("RollCoverage")[0].childNodes[0].nodeValue;
            document.getElementById("txtCoverageTitanium25").value = companies[0].getElementsByTagName("RollCoverage")[0].childNodes[0].nodeValue;
            document.getElementById("txtInstallationFelt15").value = companies[1].getElementsByTagName("Installation")[0].childNodes[0].nodeValue;
            document.getElementById("txtInstallationTitanium25").value = companies[0].getElementsByTagName("Installation")[0].childNodes[0].nodeValue;
            document.getElementById("txtCostPerRollFelt15").value = companies[1].getElementsByTagName("CostPerRoll")[0].childNodes[0].nodeValue;
            document.getElementById("txtCostPerRollTitanium25").value = companies[0].getElementsByTagName("CostPerRoll")[0].childNodes[0].nodeValue;

            
            document.getElementById("txtSqFeetRollFelt30").value = companies[3].getElementsByTagName("SquareFeetPerRoll")[0].childNodes[0].nodeValue;
            document.getElementById("txtSqFeetRollTitanium30").value = companies[2].getElementsByTagName("SquareFeetPerRoll")[0].childNodes[0].nodeValue;
            document.getElementById("txtCoverageFelt30").value = companies[3].getElementsByTagName("RollCoverage")[0].childNodes[0].nodeValue;
            document.getElementById("txtCoverageTitanium30").value = companies[2].getElementsByTagName("RollCoverage")[0].childNodes[0].nodeValue;
            document.getElementById("txtInstallationFelt30").value = companies[3].getElementsByTagName("Installation")[0].childNodes[0].nodeValue;
            document.getElementById("txtInstallationTitanium30").value = companies[2].getElementsByTagName("Installation")[0].childNodes[0].nodeValue;
            document.getElementById("txtCostPerRollFelt30").value = companies[3].getElementsByTagName("CostPerRoll")[0].childNodes[0].nodeValue;
            document.getElementById("txtCostPerRollTitanium30").value = companies[2].getElementsByTagName("CostPerRoll")[0].childNodes[0].nodeValue;

            
            var laborRate = xmlDoc.getElementsByTagName("LaborRate");
            var roofSize = xmlDoc.getElementsByTagName("RoofSize");
           
            document.getElementById("txtLaborRate").value = laborRate[0].childNodes[0].nodeValue;
            document.getElementById("txtRoofSize").value = roofSize[0].childNodes[0].nodeValue;

}


function Calculation20()
{

    parseXML20();
    
    var roofSize = document.getElementById("SizeOfRoof20").value;
    var CoverageFelt15 = document.getElementById("CoverageFelt15").value;
    var CoverageTitanium25 = document.getElementById("CoverageTitanium25").value;
    
    document.getElementById("NumberOfRollsFelt15").value = (roofSize/CoverageFelt15).toFixed(2);
    document.getElementById("NumberOfRollsTitanium25").value = (roofSize/CoverageTitanium25).toFixed(2);
    
    var InstallationTimeFelt15 = document.getElementById("InstallationFelt15").value;
    var InstallationTimeTitanium25 = document.getElementById("InstallationTitanium25").value;
    
    document.getElementById("InstallationTimeFelt15").value = (roofSize/InstallationTimeFelt15).toFixed(2);
    document.getElementById("InstallationTimeTitanium25").value = (roofSize/InstallationTimeTitanium25).toFixed(2);
    
    var numOfRolls30 = document.getElementById("NumberOfRollsFelt15").value;
    var numOfRollsTitanium = document.getElementById("NumberOfRollsTitanium25").value;
    var CostPerRollFelt15 = document.getElementById("CostPerRollFelt15").value;
    var CostPerRollTitanium25 = document.getElementById("CostPerRollTitanium25").value;
    
    var LaborRate20 = document.getElementById("LaborRate20").value;
    
    var InstallationTimeFelt15 = document.getElementById("InstallationTimeFelt15").value
    var InstallationTimeTitanium25 = document.getElementById("InstallationTimeTitanium25").value
    
    document.getElementById("MaterialCostFelt15").value = (numOfRolls30*CostPerRollFelt15).toFixed(2);
    document.getElementById("MaterialCostTitanium25").value = (numOfRollsTitanium*CostPerRollTitanium25).toFixed(2);
    
    document.getElementById("LaborCostFelt15").value = (InstallationTimeFelt15*LaborRate20).toFixed(2);
    document.getElementById("LaborCostTitanium25").value = (InstallationTimeTitanium25*LaborRate20).toFixed(2);
    
    document.getElementById("TotalInstallFelt15").value =(InstallationTimeFelt15*LaborRate20+(numOfRolls30*CostPerRollFelt15)).toFixed(2);
    document.getElementById("TotalInstallTitanium25").value = (InstallationTimeTitanium25*LaborRate20+(numOfRollsTitanium*CostPerRollTitanium25)).toFixed(2);
    document.getElementById("CostAdvantage25").value = ((InstallationTimeFelt15*LaborRate20+(numOfRolls30*CostPerRollFelt15)) - (InstallationTimeTitanium25*LaborRate20+(numOfRollsTitanium*CostPerRollTitanium25))).toFixed(2);
    document.getElementById("Premium25").value = (((InstallationTimeFelt15*LaborRate20+(numOfRolls30*CostPerRollFelt15)) - (InstallationTimeTitanium25*LaborRate20+(numOfRollsTitanium*CostPerRollTitanium25)))/(InstallationTimeTitanium25*LaborRate20+(numOfRollsTitanium*CostPerRollTitanium25))*100).toFixed(2)+" %";
}

function Calculation30()
{

    parseXML30();
    
    roofSize = document.getElementById("SizeOfRoof30").value;
    var CoverageFelt30 = document.getElementById("CoverageFelt30").value;
    var CoverageTitanium30 = document.getElementById("CoverageTitanium30").value;
    
    document.getElementById("NumberOfRollsFelt30").value = (roofSize/CoverageFelt30).toFixed(2);
    document.getElementById("NumberOfRollsTitanium30").value = (roofSize/CoverageTitanium30).toFixed(2);
    
    var InstallationTimeFelt30 = document.getElementById("InstallationFelt30").value;
    var InstallationTimeTitanium30 = document.getElementById("InstallationTitanium30").value;
    
    document.getElementById("InstallationTimeFelt30").value = (roofSize/InstallationTimeFelt30).toFixed(2);
    document.getElementById("InstallationTimeTitanium30").value = (roofSize/InstallationTimeTitanium30).toFixed(2);
    
    numOfRolls30 = document.getElementById("NumberOfRollsFelt30").value;
    numOfRollsTitanium = document.getElementById("NumberOfRollsTitanium30").value;
    var CostPerRollFelt30 = document.getElementById("CostPerRollFelt30").value;
    var CostPerRollTitanium30 = document.getElementById("CostPerRollTitanium30").value;
    
    var LaborRate30 = document.getElementById("LaborRate30").value;
    
    var InstallationTimeFelt30 = document.getElementById("InstallationTimeFelt30").value
    var InstallationTimeTitanium30 = document.getElementById("InstallationTimeTitanium30").value
    
    document.getElementById("MaterialCostFelt30").value = (numOfRolls30*CostPerRollFelt30).toFixed(2);
    document.getElementById("MaterialCostTitanium30").value = (numOfRollsTitanium*CostPerRollTitanium30).toFixed(2);
    
    document.getElementById("LaborCostFelt30").value = (InstallationTimeFelt30*LaborRate30).toFixed(2);
    document.getElementById("LaborCostTitanium30").value = (InstallationTimeTitanium30*LaborRate30).toFixed(2);
    
    document.getElementById("TotalInstallFelt30").value =(InstallationTimeFelt30*LaborRate30+(numOfRolls30*CostPerRollFelt30)).toFixed(2);
    document.getElementById("TotalInstallTitanium30").value = (InstallationTimeTitanium30*LaborRate30+(numOfRollsTitanium*CostPerRollTitanium30)).toFixed(2);
    document.getElementById("CostAdvantage30").value = ((InstallationTimeFelt30*LaborRate30+(numOfRolls30*CostPerRollFelt30)) - (InstallationTimeTitanium30*LaborRate30+(numOfRollsTitanium*CostPerRollTitanium30))).toFixed(2);
    document.getElementById("Premium30").value = (((InstallationTimeFelt30*LaborRate30+(numOfRolls30*CostPerRollFelt30)) - (InstallationTimeTitanium30*LaborRate30+(numOfRollsTitanium*CostPerRollTitanium30)))/(InstallationTimeTitanium30*LaborRate30+(numOfRollsTitanium*CostPerRollTitanium30))*100).toFixed(2)+" %";

}

function isNumeric(strValue)
{
    if(strValue == ""){return true;}
    var regExp = /^(\d*)(\.?)(\d+)$/;
    var result = strValue.match(regExp);
    if(result == null)
    { return false;}
     else {return true;};
}

function isPositive(strValue)
{
    if(strValue > 0 || strValue == "")   { return true;} else {return false;};
}

function validateInput20()
{
    if(!isNumeric(document.getElementById("CostPerRollTitanium25").value) || !isPositive(document.getElementById("CostPerRollTitanium25").value))
    {
        alert("Must be a positive number");
        document.getElementById("CostPerRollTitanium25").focus();
        return false;
    }
    
    if(!isNumeric(document.getElementById("CostPerRollFelt15").value) || !isPositive(document.getElementById("CostPerRollFelt15").value))
    {
        alert("Must be a positive number");
        document.getElementById("CostPerRollFelt15").focus();
        return false;
    }
    
    if(!isNumeric(document.getElementById("LaborRate20").value) || !isPositive(document.getElementById("LaborRate20").value))
    {
        alert("Must be a positive number");
        document.getElementById("LaborRate20").focus();
        return false;
    }
    
    if(!isNumeric(document.getElementById("SizeOfRoof20").value) || !isPositive(document.getElementById("SizeOfRoof20").value))
    {
        alert("Must be a positive number");
        document.getElementById("SizeOfRoof20").focus();
        return false;
    }
    return true;
}

function validateInput30()
{
    if(!isNumeric(document.getElementById("CostPerRollTitanium30").value) || !isPositive(document.getElementById("CostPerRollTitanium30").value))
    {
        alert("Must be a positive number");
        document.getElementById("CostPerRollTitanium30").focus();
        return false;
    }
    
    if(!isNumeric(document.getElementById("CostPerRollFelt30").value) || !isPositive(document.getElementById("CostPerRollFelt30").value))
    {
        alert("Must be a positive number");
        document.getElementById("CostPerRollFelt30").focus();
        return false;
    }
    
    if(!isNumeric(document.getElementById("LaborRate30").value) || !isPositive(document.getElementById("LaborRate30").value))
    {
        alert("Must be a positive number");
        document.getElementById("LaborRate30").focus();
        return false;
    }
    
    if(!isNumeric(document.getElementById("SizeOfRoof30").value) || !isPositive(document.getElementById("SizeOfRoof30").value))
    {
        alert("Must be a positive number");
        document.getElementById("SizeOfRoof30").focus();
        return false;
    }
    
    return true;
}

function validateInputEdit()
{
    if(!isNumeric(document.getElementById("txtLaborRate").value) || !isPositive(document.getElementById("txtLaborRate").value) || document.getElementById("txtLaborRate").value=="")
    {
        alert("Must be a positive number");
        document.getElementById("txtLaborRate").focus();
        return false;
    }
    
   
    if(!isNumeric(document.getElementById("txtRoofSize").value) || !isPositive(document.getElementById("txtRoofSize").value) || document.getElementById("txtRoofSize").value=="")
    {
        alert("Must be a positive number");
        document.getElementById("txtRoofSize").focus();
        return false;
    }
 
    if(!isNumeric(document.getElementById("txtCostPerRollFelt15").value) || !isPositive(document.getElementById("txtCostPerRollFelt15").value) || document.getElementById("txtCostPerRollFelt15").value=="")
    {
        alert("Must be a positive number");
        document.getElementById("txtCostPerRollFelt15").focus();
        return false;
    }
    
    if(!isNumeric(document.getElementById("txtCostPerRollTitanium25").value) || !isPositive(document.getElementById("txtCostPerRollTitanium25").value) || document.getElementById("txtCostPerRollTitanium25").value=="")
    {
        alert("Must be a positive number");
        document.getElementById("txtCostPerRollTitanium25").focus();
        return false;
    }
    
    if(!isNumeric(document.getElementById("txtSqFeetRollFelt15").value) || !isPositive(document.getElementById("txtSqFeetRollFelt15").value) || document.getElementById("txtSqFeetRollFelt15").value=="")
    {
        alert("Must be a positive number");
        document.getElementById("txtSqFeetRollFelt15").focus();
        return false;
    }
    
    if(!isNumeric(document.getElementById("txtSqFeetRollTitanium25").value) || !isPositive(document.getElementById("txtSqFeetRollTitanium25").value) || document.getElementById("txtSqFeetRollTitanium25").value=="")
    {
        alert("Must be a positive number");
        document.getElementById("txtSqFeetRollTitanium25").focus();
        return false;
    }
    
    if(!isNumeric(document.getElementById("txtCoverageFelt15").value) || !isPositive(document.getElementById("txtCoverageFelt15").value) || document.getElementById("txtCoverageFelt15").value=="")
    {
        alert("Must be a positive number");
        document.getElementById("txtCoverageFelt15").focus();
        return false;
    }
    
    if(!isNumeric(document.getElementById("txtCoverageTitanium25").value) || !isPositive(document.getElementById("txtCoverageTitanium25").value) || document.getElementById("txtCoverageTitanium25").value=="")
    {
        alert("Must be a positive number");
        document.getElementById("txtCoverageTitanium25").focus();
        return false;
    }    
    
    
    if(!isNumeric(document.getElementById("txtInstallationFelt15").value) || !isPositive(document.getElementById("txtInstallationFelt15").value) || document.getElementById("txtInstallationFelt15").value=="")
    {
        alert("Must be a positive number");
        document.getElementById("txtInstallationFelt15").focus();
        return false;
    }
    
    if(!isNumeric(document.getElementById("txtInstallationTitanium25").value) || !isPositive(document.getElementById("txtInstallationTitanium25").value) || document.getElementById("txtInstallationTitanium25").value=="")
    {
        alert("Must be a positive number");
        document.getElementById("txtInstallationTitanium25").focus();
        return false;
    }   
    
    
    
        if(!isNumeric(document.getElementById("txtCostPerRollFelt30").value) || !isPositive(document.getElementById("txtCostPerRollFelt30").value) || document.getElementById("txtCostPerRollFelt30").value=="")
    {
        alert("Must be a positive number");
        document.getElementById("txtCostPerRollFelt30").focus();
        return false;
    }
    
    if(!isNumeric(document.getElementById("txtCostPerRollTitanium30").value) || !isPositive(document.getElementById("txtCostPerRollTitanium30").value) || document.getElementById("txtCostPerRollTitanium30").value=="")
    {
        alert("Must be a positive number");
        document.getElementById("txtCostPerRollTitanium30").focus();
        return false;
    }
    
    if(!isNumeric(document.getElementById("txtSqFeetRollFelt30").value) || !isPositive(document.getElementById("txtSqFeetRollFelt30").value) || document.getElementById("txtSqFeetRollFelt30").value=="")
    {
        alert("Must be a positive number");
        document.getElementById("txtSqFeetRollFelt30").focus();
        return false;
    }
    
    if(!isNumeric(document.getElementById("txtSqFeetRollTitanium30").value) || !isPositive(document.getElementById("txtSqFeetRollTitanium30").value) || document.getElementById("txtSqFeetRollTitanium30").value=="")
    {
        alert("Must be a positive number");
        document.getElementById("txtSqFeetRollTitanium30").focus();
        return false;
    }
    
    if(!isNumeric(document.getElementById("txtCoverageFelt30").value) || !isPositive(document.getElementById("txtCoverageFelt30").value) || document.getElementById("txtCoverageFelt30").value=="")
    {
        alert("Must be a positive number");
        document.getElementById("txtCoverageFelt30").focus();
        return false;
    }
    
    if(!isNumeric(document.getElementById("txtCoverageTitanium30").value) || !isPositive(document.getElementById("txtCoverageTitanium30").value) || document.getElementById("txtCoverageTitanium30").value=="")
    {
        alert("Must be a positive number");
        document.getElementById("txtCoverageTitanium30").focus();
        return false;
    }    
    
    
    if(!isNumeric(document.getElementById("txtInstallationFelt30").value) || !isPositive(document.getElementById("txtInstallationFelt30").value) || document.getElementById("txtInstallationFelt30").value=="")
    {
        alert("Must be a positive number");
        document.getElementById("txtInstallationFelt30").focus();
        return false;
    }
    
    if(!isNumeric(document.getElementById("txtInstallationTitanium30").value) || !isPositive(document.getElementById("txtInstallationTitanium30").value) || document.getElementById("txtInstallationTitanium30").value=="")
    {
        alert("Must be a positive number");
        document.getElementById("txtInstallationTitanium30").focus();
        return false;
    } 
    return true;
}




