﻿// Global variables
var objLicense =
{
    contacts: [
        { "amount": "01 - 500", "price": "$10 month", "total": 10, "setup": 0 },
        { "amount": "501 - 2,500", "price": "$30 month", "total": 30, "setup": 0 },
        { "amount": "2,501 - 5,000", "price": "$50 month", "total": 50, "setup": 0 },
        { "amount": "5,001 - 10,000", "price": "$75 month", "total": 75, "setup": 0 },
        { "amount": "10,001 - 25,000", "price": "$150 month", "total": 150, "setup": 0 },
        { "amount": "25,001 - 50,000", "price": "$250 month", "total": 250, "setup": 0 },
        { "amount": "50,001 - 100,000", "price": "$400 month", "total": 400, "setup": 0 },
        { "amount": "100,001 - 250,000", "price": "$750 month", "total": 750, "setup": 0 },
        { "amount": "250,001+", "price": "Call For Quote", "total": 0, "setup": 0 }
    ],
    modules: [
        { "name": "Dedicated IP Address", "description": "Protect your email reputation by sending email from your own IP.", "price": "$99 Setup", "total": 0, "setup": 99 },
        { "name": "Archive Management", "description": "Convert your newsletters into alternate formats and place them into different locations automatically when sending.", "price": "$50 Month + Setup TBD", "total": 50, "setup": 0 },
        { "name": "ShopSite Customer Management Module", "description": "Advanced targeted email marketing for ShopSite store owners.", "price": "FREE", "total": 0, "setup": 0 },
        { "name": "Fax Management", "description": "Send your newsletters to email inboxes and fax machines.", "price": "$50 Month + Per Fax Fee", "total": 50, "setup": 50 },
        { "name": "Magento Customer Management Module", "description": "Advanced targeted email marketing for Magento store owners.", "price": "FREE", "total": 0, "setup": 0 },
        { "name": "osCommerce Customer Management Module", "description": "Advanced targeted email marketing for osCommerce store owners.", "price": "FREE", "total": 0, "setup": 0 }
   ]
};
var objLicenseSelected = null;
var objDivContacts = null;
var objDivPrice = null;
var objDivModules = null;
var objDivTotal = null;
var objDivPartner = null;

// Navigates to screen #2
function goNext()
{
    serializeObjLicenseSelected();
    document.location.href = "email-marketing-sign-up.aspx?objLicenseSerialized=" + escape(objLicenseSerialized);
}

// Restarts custom configurator
function goPrevious()
{
    document.location.href = "email-marketing-build-price.aspx";
}

// Serialize custom license
function serializeObjLicenseSelected()
{
    objLicenseSerialized = '{ ';
    objLicenseSerialized += '"setupDiscy" : ' + objLicenseSelected.setupDiscy + ', "moduleDiscy" : ' + objLicenseSelected.moduleDiscy;   
    objLicenseSerialized += ', contacts : {"amount" : "' + objLicenseSelected.contacts.amount + '", "price" : "' + objLicenseSelected.contacts.price + '", "total" : ' + objLicenseSelected.contacts.total + ', "setup" : ' + objLicenseSelected.contacts.setup + '}';
    objLicenseSerialized += ', modules : [ ';
    separator = "";
    for (i=0; i < objLicenseSelected.modules.length; i++)
    {
       // Do not add comma after last array item
       if (i > 0)
       {
            separator = ",";
       }
       objLicenseSerialized += separator + ' {"name" : "' + objLicenseSelected.modules[i].name+ '", "price" : "' + objLicenseSelected.modules[i].price+ '", "total" : ' + objLicenseSelected.modules[i].total+ ', "setup" : ' + objLicenseSelected.modules[i].setup + '}';
   }
   objLicenseSerialized += ' ]';
   objLicenseSerialized += ' }';
}

// Assign globals after page load
function configGlobals()
{
    objLicenseSelected = {contacts : {"amount" : "", "price" : "", "total" : 0}, modules : [], total : 0, setupDiscy : 0, moduleDiscy : 0}
    objDivContacts = document.getElementById('divContacts');
    objDivPrice = document.getElementById('divPrice');
    objDivModules = document.getElementById('divModules');
    objDivTotal = document.getElementById('divTotal');
    //objDivPartner = document.getElementById('divPartner');
    drawContacts();
    drawModules();
    drawTotal();
}
// Display the various contact options available
function drawContacts()
{
    objDivContacts.innerHTML = "";
    objDivPrice.innerHTML = "";
    if (objLicenseSelected.contacts.total != 0 && objLicenseSelected.contacts.amount != "")
    {
        objDivContacts.innerHTML = "<br />&nbsp;&nbsp;&nbsp;&nbsp;" + objLicenseSelected.contacts.amount;
        objDivPrice.innerHTML = "<br />&nbsp;&nbsp;&nbsp;&nbsp;" + objLicenseSelected.contacts.price + " + $" + objLicenseSelected.contacts.setup + " Setup";
    }
    if (objLicenseSelected.contacts.total == 0 && objLicenseSelected.contacts.amount != "")
    {
        objDivContacts.innerHTML = "<br />&nbsp;&nbsp;&nbsp;&nbsp;" + objLicenseSelected.contacts.amount;
        objDivPrice.innerHTML = "<br />&nbsp;&nbsp;&nbsp;&nbsp;Call For Quote";
    }  
}
// Display the custom account modules selected
function drawModules()
{
    document.getElementById('divModules').innerHTML = "";
    for (i=0; i < objLicenseSelected.modules.length; i++)
    {
        objDivModules.innerHTML += "<br />&nbsp;&nbsp;&nbsp;&nbsp;" + objLicenseSelected.modules[i].name + "<br />&nbsp;&nbsp;&nbsp;&nbsp;" + objLicenseSelected.modules[i].price;
    }
}
// Display the custom account total
function drawTotal()
{
    objLicenseSelected.total = 0;
    objLicenseSelected.setup = 0;
    
    // tally contacts monthly total
    if (objLicenseSelected.contacts.total != null)
    {
        objLicenseSelected.total += objLicenseSelected.contacts.total;
    }
    
    // tally setup total
    if (objLicenseSelected.contacts.setup != null)
    {
        objLicenseSelected.setup += objLicenseSelected.contacts.setup;
    }

    // apply any setup discounts
    objLicenseSelected.setup = objLicenseSelected.setup - objLicenseSelected.setupDiscy;
    
    boolFaxSelected = false;
    
    // Tally modules total and check if Fax Management was selected
    for (i=0; i < objLicenseSelected.modules.length; i++)
    {
        // customer management does a percent not a total *** ONLY WORKS FOR CUSTMAN MOD NOW BUT COULD EASILY WORK FOR ALL MODULES
        if (objLicenseSelected.modules[i].name == "ShopSite Customer Management Module" || objLicenseSelected.modules[i].name == "Magento Customer Management Module" || objLicenseSelected.modules[i].name == "osCommerce Customer Management Module")
        {
            // check for partner host discy
            if (objLicenseSelected.moduleDiscy == 0)
            {
                objLicenseSelected.total += objLicenseSelected.total * objLicenseSelected.modules[i].total;
            }
            else
            {
                // apply custman module discy
                objLicenseSelected.total += (objLicenseSelected.total * objLicenseSelected.modules[i].total) - (objLicenseSelected.total * objLicenseSelected.moduleDiscy);
            }
        }
        else
        {
            objLicenseSelected.total += objLicenseSelected.modules[i].total;
        }      
        objLicenseSelected.setup += objLicenseSelected.modules[i].setup;        
        if (objLicenseSelected.modules[i].name == "Fax Management")
        {
            boolFaxSelected = true;
        }
    }
    
    // Display the total
    objDivTotal.innerHTML = "30 days free then ";    
    objDivTotal.innerHTML += "$" + objLicenseSelected.total + "/mo.<br/>";
    objDivTotal.innerHTML += "One time setup fee $" + objLicenseSelected.setup + ".";
    
    // Notify the customer that Fax Management includes per fax fees
    if (boolFaxSelected)
    {
        objDivTotal.innerHTML += " + Per Fax Fees";
    }
    // Notify the customer that 250,001+ contacts requires quote
    if (objLicenseSelected.contacts.total == 0 && objLicenseSelected.modules.length == 0 && objLicenseSelected.contacts.amount != "")
    {
        objDivTotal.innerHTML = "Call For Quote";
    }
    if (objLicenseSelected.contacts.total == 0 && objLicenseSelected.modules.length > 0 && objLicenseSelected.contacts.amount != "")
    {
        objDivTotal.innerHTML += " + Quote";
    }

    // display the partner host discount
    if (objLicenseSelected.setupDiscy > 0)
    {
        //objDivPartner.innerHTML = "Yes";
    }
    else
    {
        //objDivPartner.innerHTML = "No";
    }    
}
// Configure the contact selection
function addSelectedContacts(objContact)
{
    objLicenseSelected.contacts = objContact;
    drawContacts();
    drawTotal();
}
// Configure the module selections
function addSelectedModule(objModule)
{
    boolAddModule = true;
    
    // Check if module is already added      
    for (i=0; i < objLicenseSelected.modules.length; i++)
    {
        if (objLicenseSelected.modules[i].name == objModule.name)
        {
            boolAddModule = false;
        }
    }
    
    // Add module
    if (boolAddModule)
    {    
        if (objLicenseSelected.modules.length == 0)
        {
            objLicenseSelected.modules[0] = objModule;   
        }
        else
        {
            objLicenseSelected.modules[objLicenseSelected.modules.length] = objModule;
        }    
    }
    // Remove module
    else
    {
        objTempLicense = {modules : []};
        j = 0;
        for (i=0; i < objLicenseSelected.modules.length; i++)
        {
            if (objLicenseSelected.modules[i].name != objModule.name)
            {
                objTempLicense.modules[j++] = objLicenseSelected.modules[i];
            }
        } 
        objLicenseSelected.modules = objTempLicense.modules;   
    }
    drawModules();
    drawTotal();
}

// sets the preferred host discounts
function addPreferredDiscy()
{
    objLicenseSelected.setupDiscy = 50;
    objLicenseSelected.moduleDiscy = .2;
    drawModules();
    drawTotal();    
}
function delPreferredDiscy()
{
    objLicenseSelected.setupDiscy = 0;
    objLicenseSelected.moduleDiscy = 0;
    drawModules();
    drawTotal();    
}

