﻿//Start:functions for TaxPricingInformation controls

function LoadQuickBooks(info) {
    var txtInfo = document.getElementById(info);
    if (txtInfo != null) {
        var data = eval('(' + txtInfo.value + ')');
    }
    var software = document.getElementById('lstSoftware');
    software.options.length = 0;
    var varLength = data.Variant.length;
    for (var i = 0; i < varLength; i++) {
        var quickBooksVersion = data.Variant[i].QuickBooksVersion;
        if (optionValueIndexOf(software.options, quickBooksVersion) == -1) {

            software.options[software.options.length] = new Option(quickBooksVersion, quickBooksVersion);
        }
    }    
}

function ShowPayroll(info) {

    var txtInfo = document.getElementById(info);
    if (txtInfo != null) {
        var data = eval('(' + txtInfo.value + ')');
    }


    var software = document.getElementById('lstSoftware');
    var selSoftware = software.options[software.selectedIndex].text;
    var payroll = document.getElementById('lstPayroll');
    payroll.options.length = 0;
    var varLength = data.Variant.length;
    for (var i = 0; i < varLength; i++) {
        var quickBooksVersion = data.Variant[i].QuickBooksVersion;
        var payrollVersion = data.Variant[i].PayrollVersion;

        if (quickBooksVersion == selSoftware) {
            if (optionValueIndexOf(payroll.options, payrollVersion) == -1) {

                payroll.options[payroll.options.length] = new Option(payrollVersion, payrollVersion);
            }
        }
    }
    if(software.value.indexOf("QuickBooks 2008") > -1)
    {
        if (payroll.options.length > 1) 
        {
            payroll.options[1].selected = true;
        }
    }
    
    var reqCityTax = document.getElementById('reqCityTax');
    if(payroll.value.indexOf("Online Payroll") > -1)
    {           
        reqCityTax.style.display = 'none';
    }
}

function ShowStates(info) {
    var txtInfo = document.getElementById(info);
    if (txtInfo != null) {
        var data = eval('(' + txtInfo.value + ')');
    }    
    
    var software = document.getElementById('lstSoftware');
    var softwareValue = software.options[software.selectedIndex].value;
    softwareValue = softwareValue.toLowerCase(); 
    
    var state = document.getElementById('lstState');
    
    state.options.length = 0;
    var stateLength = data.StateTax.length;

    //check for the software version
    if(softwareValue == "not applicable")
    {    
        state.options[state.options.length] = new Option("Select State", "false_6_6");
    }
    else if(softwareValue == "quickbooks 2008 & higher")
    {
        state.options[state.options.length] = new Option("Select State", "false_8_8");        
    }
    else if(softwareValue == "quickbooks online")
    {
        state.options[state.options.length] = new Option("Select State", "false_6_6");        
    }
    else
    {
        state.options[state.options.length] = new Option("Select State", "false_8_8");
    }
    
    for (var i = 0; i < stateLength; i++) 
    {
        var stateCode = data.StateTax[i].StateCode;

        var partsFileCityIncomeTax_W2_Yes = data.StateTax[i].PartsFileCityIncomeTax_W2_Yes;
        var partsFileCityIncomeTax_W2_No = data.StateTax[i].PartsFileCityIncomeTax_W2_No;

        var ask_w2_question_yn = data.StateTax[i].Ask_w2_question_yn;

        state.options[state.options.length] = new Option(stateCode, ask_w2_question_yn + "_" + partsFileCityIncomeTax_W2_Yes + "_" + partsFileCityIncomeTax_W2_No);
        //} 
    }    
}

function PayrollSoftwareChange() {
    var lstSoftware = document.getElementById('lstSoftware');
    var lstPayroll = document.getElementById('lstPayroll');
    var wizProto = document.getElementById("wizProto");
    //stateWiz
    var stateWiz = document.getElementById("stateWiz");      
    var helpParts = document.getElementById("helpForParts");       
    
    var additionalFormsMsg = document.getElementById('additionalFormsMsg');        
    var quantityTip = document.getElementById("quantityTip");
    
    quantityTip.style.display ='block';  
    additionalFormsMsg.style.display = 'none';
    
    if ((lstSoftware.value.indexOf("QuickBook") > -1) && (lstPayroll.value.indexOf("Assisted Payroll") > -1)) 
    {
        wizProto.style.display = 'none';
    }
    else 
    {
        wizProto.style.display = 'block';
    }            
    
    if(lstPayroll.value.indexOf("Online Payroll") > -1)
    {
        helpParts.style.display = 'none';        
    }
    else
    {
        helpParts.style.display = 'block';        
    }
    
    var additionalFormsMsg = document.getElementById("additionalFormsMsg");
    if(lstSoftware.value.indexOf("QuickBooks 2008") > -1)
    {
        additionalFormsMsg.style.display = 'none';                 
    } 
}

function ShowQuantity(info) {
    var txtInfo = document.getElementById(info);
    if (txtInfo != null) {
        var data = eval('(' + txtInfo.value + ')');
    }
    var varLength = data.Variant.length;
    var lstSoftware = document.getElementById('lstSoftware');
    var lstPayroll = document.getElementById('lstPayroll');
    var lstState = document.getElementById('lstState');
    var lstQuantity = document.getElementById('lstQuantity');
    var stateWiz = document.getElementById("stateWiz");
    var wizProto = document.getElementById("wizProto");
    var part = lstState.value.split("_");
    var actualPart;
    var softwareValue;
    
    if (wizProto.style.display == 'block') {
        if (part[0] == 'true') {
            if (document.getElementById("rdReqCityTax_No").checked) {
                actualPart = document.getElementById("rdReqCityTax_No").value;
            }
            else if (document.getElementById("rdReqCityTax_Yes").checked) {
                actualPart = document.getElementById("rdReqCityTax_Yes").value;
            }
            else {
                actualPart = document.getElementById("rdReqCityTax_DK").value;
            }
        }
        else {
            actualPart = part[2];
        }
    }
    else 
    {
        softwareValue = lstSoftware.options[lstSoftware.selectedIndex].value;
        softwareValue = softwareValue.toLowerCase();
        //check for the software version
        if(softwareValue == "not applicable")
        {    
            actualPart = 6;
        }
        else if(softwareValue == "quickbooks 2008 & higher")
        {
            actualPart = 8;
        }
        else if(softwareValue == "quickbooks online")
        {
            actualPart = 6;
        }
        else
        {
            actualPart = 8;
        }
    }
    
    if(lstPayroll.value.indexOf("Online Payroll") > -1)
    {
        actualPart = 6;
    }
    
    actualPart = actualPart + "-part";
    var listPrice;
    lstQuantity.options.length = 0;

    for (var i = 0; i < varLength; i++) {

        var quickBooksVersion = data.Variant[i].QuickBooksVersion;
        var payrollVersion = data.Variant[i].PayrollVersion;
        var part = data.Variant[i].Part.toUpperCase();
        var qty = data.Variant[i].Quantity;
        var sku = data.Variant[i].Sku;
        if ((quickBooksVersion == lstSoftware.value) && (payrollVersion == lstPayroll.value) && (actualPart.toUpperCase() == part)) {

            listPrice = data.Variant[i].ListPrice;
            qty = qty + " - " + listPrice;
            lstQuantity.options[lstQuantity.options.length] = new Option(qty, sku);
        }
    }
    }    
    
    //this function is for loading defaults for software, payroll, state & quantity 
    function LoadDefaults()
    {        
        var software = document.getElementById('lstSoftware');
        var payroll = document.getElementById('lstPayroll');
        var state = document.getElementById('lstState');
        var quantity = document.getElementById('lstQuantity');
        
        if (software.options.length > 1)
        {
            software.options[1].selected = true;             
        }
        
        if (payroll.options.length > 1) 
        {
            payroll.options[1].selected = true;
        }
        
        if(state.options.length > 1) {
            state.options[0].selected = true;   
        }
        
        if (quantity.options.length > 0) {
            quantity.options[0].selected = true;
        }    
                    
        //default payroll to assisted for track 9793
        changeDefaultPayrollByTrack("9793", "Assisted Payroll");   
        
        //default software version to "QuickBooks Online" for the track 9833
        changeDefaultSoftwareByTrack("9833", "QuickBooks Online");
        
        //default software version to "Not Applicable" for the track 9031
        changeDefaultSoftwareByTrack("9831", "Not Applicable");
    }
    
    //this function sets the payroll options for a given track
    function changeDefaultPayrollByTrack(track, payrollOption)
    {        
        var url = document.URL;
        var payroll = document.getElementById('lstPayroll');
        var strSearch = "track=" + track;
        var index = -1;
        
        //get the index for the payrollOptions
        for(var i=0; i<payroll.options.length; i++)
        {
            if (payroll.options[i].value.toLowerCase() == payrollOption.toLowerCase())   
            {
                index = i;
                break;
            }
        } 
        
        if (url && index != -1)
        {        
            url = url.toLowerCase();
            if(url.indexOf(strSearch) != -1)
            {
                payroll.options[index].selected = true;
            } 
        }    
    }
    
    //this function sets the QuickBooks version options for a given track
    function changeDefaultSoftwareByTrack(track, softwareOption)
    {
        var url = document.URL;
        var software = document.getElementById('lstSoftware');
        var strSearch = "track=" + track;
        var index = -1;
        
        //get the index for the softwareOptions
        for(var i=0; i<software.options.length; i++)
        {
            if (software.options[i].value.toLowerCase() == softwareOption.toLowerCase())   
            {
                index = i;
                break;
            }
        } 
        
        if (url && index != -1)
        {        
            url = url.toLowerCase();
            if(url.indexOf(strSearch) != -1)
            {
                software.options[index].selected = true;
            } 
        }    
    }

    function W21099KitStateChange(pfid) {

        var state = document.getElementById('lstState');
        var stateValue = state.options[state.selectedIndex].value;
        var stateValueArray = stateValue.split("_");
        var reqCityTax = document.getElementById("reqCityTax");
        if (stateValueArray[0] == "true") {
            reqCityTax.style.display = 'block';
            document.getElementById("rdReqCityTax_No").checked = true;
            document.getElementById("rdReqCityTax_No").value = stateValueArray[2];
            document.getElementById("rdReqCityTax_Yes").value = stateValueArray[1];
            document.getElementById("rdReqCityTax_DK").value = stateValueArray[1];
            var txtPfId = document.getElementById(pfid);
            if (txtPfId != null) {
                var pfIdVal = txtPfId.value;
            }
            var theTarget = document.getElementById('reqCityTaxMsg');
            switch (pfIdVal) {
                case "TAX-02":
                    var selState = state.options[state.selectedIndex].innerHTML;
                    if ((selState == "HI") || (selState == "MN") || (selState == "MO") || (selState == "IN")) {

                        theTarget.innerHTML = '&nbsp;&nbsp;Was Federal tax withheld on 1099?';
                    }
                    else {
                        theTarget.innerHTML = '&nbsp;&nbsp;Was State tax withheld on 1099?';
                    }
                    break;
            }
        }
        else {
            document.getElementById("rdReqCityTax_No").checked = true;
            document.getElementById("rdReqCityTax_Yes").checked = false;
            document.getElementById("rdReqCityTax_DK").checked = false;
            reqCityTax.style.display = 'none';
        } 
    }

    function StateChange(pfid) {
        var state = document.getElementById('lstState');
        var payroll = document.getElementById('lstPayroll');
        var stateValue = state.options[state.selectedIndex].value;
        var stateValueArray = stateValue.split("_");
        var reqCityTax = document.getElementById("reqCityTax");
        var additionalFormsMsg = document.getElementById('additionalFormsMsg');
        var payrollVal = payroll.value.toLowerCase();
        var quantityTip = document.getElementById("quantityTip");
        
        if (stateValueArray[0] == "true") 
        {            
            if(payrollVal.indexOf("online payroll") > -1)
            { 
                reqCityTax.style.display = 'none';                                
                additionalFormsMsg.style.display = 'none';                
                quantityTip.style.display = 'block'
            }
            else
            {            
                reqCityTax.style.display = 'block';
                additionalFormsMsg.style.display = 'none';                                
                quantityTip.style.display = 'block'
            }                                    
             
            document.getElementById("rdReqCityTax_No").checked = true;
            document.getElementById("rdReqCityTax_No").value = stateValueArray[2];
            document.getElementById("rdReqCityTax_Yes").value = stateValueArray[1];
            document.getElementById("rdReqCityTax_DK").value = stateValueArray[1];
            var txtPfId = document.getElementById(pfid);
            if (txtPfId != null) {
                var pfIdVal = txtPfId.value;
            }
            var theTarget = document.getElementById('reqCityTaxMsg');
            switch (pfIdVal)
            {
                case "TAX-02":
                    var selState = state.options[state.selectedIndex].innerHTML;
                    if ((selState == "HI") || (selState == "MN") || (selState == "MO") || (selState == "IN")) {

                        theTarget.innerHTML = '&nbsp;&nbsp;Was Federal tax withheld on 1099?';
                    }
                    else {
                        theTarget.innerHTML = '&nbsp;&nbsp;Was State tax withheld on 1099?';
                    }
                    break;
            }
        }
        else 
        {
            document.getElementById("rdReqCityTax_No").checked = true;
            document.getElementById("rdReqCityTax_Yes").checked = false;
            document.getElementById("rdReqCityTax_DK").checked = false;
            
            reqCityTax.style.display = 'none';
            additionalFormsMsg.style.display = 'none';
            quantityTip.style.display ='block';
        }                
    }

    function SkuChange(info) {    
        var txtInfo = document.getElementById(info);
        if (txtInfo != null) {
            var data = eval('(' + txtInfo.value + ')');
        }
        var lstQty = document.getElementById('lstQuantity');
        var selSku = lstQty.options[lstQty.selectedIndex].value;
        
        var varLength = data.Variant.length;        
        for (var i = 0; i < varLength; i++) {
            if (selSku == data.Variant[i].Sku) 
            {
                jQuery('body').trigger('changeImage', [data.Variant[i].SmallImageUrl, data.Variant[i].SmallImageWidth, data.Variant[i].SmallImageHeight, data.Variant[i].SmallImageAlternateText, data.Variant[i].LargeImageUrl]);
                break;                
            }

        }
    }


// End:functions for TaxPaperEnvKitPricingInformation control(Laser W-2 Blank Perforated Paper and Envelope Kit)


//Start:functions for TaxKitPricingInformation control(W-2 Kits and 1099 Kit)
function LoadPrinter(info) {
    var txtInfo = document.getElementById(info);
    if (txtInfo != null) {
        var data = eval('(' + txtInfo.value + ')');
    }
    var printer = document.getElementById('lstPrinter');
    printer.options.length = 0;
    var varLength = data.Variant.length;
    for (var i = 0; i < varLength; i++) {
        var printerType = data.Variant[i].PrinterType;
        if (optionValueIndexOf(printer.options, printerType) == -1) {

            printer.options[printer.options.length] = new Option(printerType, printerType);
        }
    }
    printer.options[0].selected = true;
}


function ShowW21099KitQuantity(info) {
    var txtInfo = document.getElementById(info);
    if (txtInfo != null) {
        var data = eval('(' + txtInfo.value + ')');
    }
    var txtInfo = document.getElementById(txtInfo);

    var varLength = data.Variant.length;
    var lstPrinter = document.getElementById('lstPrinter');
    var lstState = document.getElementById('lstState');
    var lstQuantity = document.getElementById('lstQuantity');
    var part = lstState.value.split("_");
    var actualPart;
    if (part[0] == 'true') {
        if (document.getElementById("rdReqCityTax_No").checked) {
            actualPart = document.getElementById("rdReqCityTax_No").value;
        }
        else if (document.getElementById("rdReqCityTax_Yes").checked) {
            actualPart = document.getElementById("rdReqCityTax_Yes").value;
        }
        else {
            actualPart = document.getElementById("rdReqCityTax_DK").value;
        }
    }
    else {
        actualPart = part[2];
    }
    actualPart = actualPart + "-Part";
    var listPrice;
    lstQuantity.options.length = 0;
    for (var i = 0; i < varLength; i++) {
        var printerType = data.Variant[i].PrinterType;

        var part = data.Variant[i].Part.toUpperCase();
        var qty = data.Variant[i].Quantity;
        var sku = data.Variant[i].Sku;
        if ((printerType == lstPrinter.value) && (actualPart.toUpperCase() == part)) {

            listPrice = data.Variant[i].ListPrice;
            qty = qty + " - " + listPrice;
            lstQuantity.options[lstQuantity.options.length] = new Option(qty, sku);
        }
    }

    if (lstQuantity.options.length > 0) {
        lstQuantity.options[1].selected = true;
    }
}

function ShowW21099KitStates(info, pfId) {

    var txtInfo = document.getElementById(info);
    if (txtInfo != null) {
        var data = eval('(' + txtInfo.value + ')');
    }
    var txtPfId = document.getElementById(pfId);
    if (txtPfId != null) {
        var PfId = txtPfId.value;
    }
    var state = document.getElementById('lstState');

    state.options.length = 0;
    var stateLength = data.StateTax.length;
    if (PfId.toUpperCase() == "TAX-01") {
        state.options[state.options.length] = new Option("Select State", "false_8_8");
        for (var i = 0; i < stateLength; i++) {
            var stateCode = data.StateTax[i].StateCode;

            var partsFileCityIncomeTax_W2_Yes = data.StateTax[i].PartsFileCityIncomeTax_W2_Yes;
            var partsFileCityIncomeTax_W2_No = data.StateTax[i].PartsFileCityIncomeTax_W2_No;

            var ask_w2_question_yn = data.StateTax[i].Ask_w2_question_yn;

            state.options[state.options.length] = new Option(stateCode, ask_w2_question_yn + "_" + partsFileCityIncomeTax_W2_Yes + "_" + partsFileCityIncomeTax_W2_No);
            //} 
        }
    }
    else {
        state.options[state.options.length] = new Option("Select State", "false_5_5");
        for (var i = 0; i < stateLength; i++) {
            var stateCode = data.StateTax[i].StateCode;
            var partsFileCityIncomeTax_1099_Yes = data.StateTax[i].PartsFileFedCityIncomeTax_1099_Yes;
            var partsFileCityIncomeTax_1099_No = data.StateTax[i].PartsFileFedCityIncomeTax_1099_No;

            var ask_1099_question_yn = data.StateTax[i].Ask_1099_question_yn;

            state.options[state.options.length] = new Option(stateCode, ask_1099_question_yn + "_" + partsFileCityIncomeTax_1099_Yes + "_" + partsFileCityIncomeTax_1099_No);
            //} 
        }
    }


    state.options[0].selected = true;
}

//End:functions for TaxKitPricingInformation control(W-2 Kits and 1099 Kit)


//Start:functions for TaxFormPricingInformation control(W-3 Forms and 1096 Forms)
function ShowTaxFormQuantity(info) {
    var txtInfo = document.getElementById(info);
    if (txtInfo != null) {
        var data = eval('(' + txtInfo.value + ')');
    }


    var varLength = data.Variant.length;
    var lstPrinter = document.getElementById('lstPrinter');
    
    var lstQuantity = document.getElementById('lstQuantity');

    var listPrice;
    lstQuantity.options.length = 0;
    for (var i = 0; i < varLength; i++) {

        var printerType = data.Variant[i].PrinterType;

        var part = data.Variant[i].Part.toUpperCase();
        var qty = data.Variant[i].Quantity;
        var sku = data.Variant[i].Sku;
        if (printerType == lstPrinter.value) {

            
            listPrice = data.Variant[i].ListPrice ;
            qty = qty + " - " + listPrice;
            lstQuantity.options[lstQuantity.options.length] = new Option(qty, sku);
        }
    }
}


//End:functions for TaxFormPricingInformation control(W-3 Forms and 1096 Forms)


//Common Function to check whether an option is not already existing
function optionValueIndexOf(options, value) {
    for (var i = 0; i < options.length; i++) {
        if (options[i].value == value) {
            return i;
        }
    }
    return -1;
}


function sc_nextLink(lnkname, pf_id) {
    var pid = pf_id;
    var file = getFilename();
    var trackVars = "prop9,eVar9,prop10,eVar10";
    var trackEvents = "None";
    var trackVarsValue = "prop9=" + file + ",";
    trackVarsValue += "eVar9=" + file + ",";
    trackVarsValue += "prop10=" + lnkname + ":" + file + ":" + pid + ",";
    trackVarsValue += "eVar10=" + lnkname + ":" + file + ":" + pid;
    sendLinkToSC(trackVars, trackVarsValue, trackEvents, lnkname);
}

function loadDataTaxPaperEnv() {
    LoadQuickBooks(getInfoFldId());
    LoadDefaults();
    ShowPayroll(getInfoFldId());
    LoadDefaults();
    ShowStates(getInfoFldId());
    PayrollSoftwareChange();
    ShowQuantity(getInfoFldId());
    SkuChange(getInfoFldId());
}

function validateAndSubmitTaxPaperEnv() {
    var sku = document.getElementById('lstQuantity').value;
    var newURL = '/customization/CC_AddToCart.aspx';
    newURL = newURL + '?sku=' + sku + '&ImprintID=0&productid=' + document.getElementById(getPfIdFldId()).value;
    window.location.href = newURL;
}

function loadDataTaxForm() {
    LoadPrinter(getInfoFldId());
    ShowTaxFormQuantity(getInfoFldId());
}

function validateAndSubmitTaxForm() {
    var sku = document.getElementById('lstQuantity').value;
    var newURL = '/customization/CC_AddToCart.aspx';
    newURL = newURL + '?sku=' + sku + '&ImprintID=0&productid=' + document.getElementById(getPfIdFldId()).value;
    window.location.href = newURL;
}

function loadDataTaxKit() {
    LoadPrinter(getInfoFldId());
    ShowW21099KitStates(getInfoFldId(), getPfIdFldId());
    ShowW21099KitQuantity(getInfoFldId());
}

function validateAndSubmitTaxKit() {
    var sku = document.getElementById('lstQuantity').value;

    var newURL = '/customization/CC_AddToCart.aspx';
    newURL = newURL + '?sku=' + sku + '&ImprintID=0&productid=' + document.getElementById(getPfIdFldId()).value;
    window.location.href = newURL;
}

function ReorderAlert() {
    if (document.getElementById(getProductTxtId()) != null) {
        var product = document.getElementById(getProductTxtId()).value;
        if (product == "TAX-02") {
            if (document.getElementById(getReorderTxtId()) != null) {
                if (document.getElementById(getReorderTxtId()).value == "1") {
                    var dt = new Date();
                    alert("Order the 1099 form on the next page for tax year " + dt.getFullYear() + ".");
                }
            }
        }
    }
}
