var active_tab = 0;
var promo_code;
var upgrade_cost = 0;
var products_cost = 0;
var active_upg = 0;
var from_ver = 0;
var products;
var ams_0_in_cart = 0;
var ams_1_in_cart = 0;
var ams_2_in_cart = 0;
var ams_0_in_cart_amount = 0;
var ams_1_in_cart_amount = 0;
var ams_2_in_cart_amount = 0;
var prod_0_in_cart_amount = 0;
var prod_1_in_cart_amount = 0;
var prod_2_in_cart_amount = 0;
var active_upgrade_menu = '&nbsp;&nbsp;<A href="javascript:" style="text-decoration: none;" onclick="fnHideUpgradePage();"><span id="buy_new_link" style="color: #952300">BUY NEW</span>&nbsp;</A>&nbsp;|&nbsp;&nbsp;<A href="javascript:" style="text-decoration: none;" onclick="fnShowUpgradePage();"><span id="upgrade_link" style="">BUY UPGRADE</span>&nbsp;</A>';
var inactive_upgrade_menu = '&nbsp;&nbsp;<span id="buy_new_link" style="color: #952300; font-weight: bold;">BUY NEW</span>&nbsp;&nbsp;|&nbsp;&nbsp;<span id="upgrade_link" style=" font-weight: bold; color: #CBCCCE">BUY UPGRADE</span>&nbsp;';

var months = new Array('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec');

function OpenWindow(pagename){
    var l = (screen.availWidth - 1024) / 2;
    var t = (screen.availHeight - 768) / 2;
    var NewWindow = window.open("/apps/preview.php?page=" + pagename, "addon_window", "WIDTH=1024 HEIGHT=768 TOP=" + t + " LEFT=" + l + " RESIZABLE SCROLLBARS DEPENDENT");
    NewWindow.focus();
}

function switch_tab(tab_idx){
    active_tab = tab_idx;
    fnHideUpgradePage();
    if (bLoginCustomer) {
        if (tab_idx == 0) {
            document.getElementById('tab_4_0').className = 'active_tab_img';
            document.getElementById('tab_4_0').style.backgroundImage = "url(/images/tabs/3_clear_tabs/tab_1_1.gif)";
            document.getElementById('SD_tab_text').className = 'active_tab_text';
            
            document.getElementById('tab_ClearSQL').className = 'inactive_tab_img';
            document.getElementById('tab_ClearSQL').style.backgroundImage = "url(/images/tabs/3_clear_tabs/tab_1_2.gif)";
            document.getElementById('CS_tab_text').className = 'inactive_tab_text';
            
            document.getElementById('tab_ClearDB').className = 'inactive_tab_img';
            document.getElementById('tab_ClearDB').style.backgroundImage = "url(/images/tabs/3_clear_tabs/tab_1_3_large.gif)";
            document.getElementById('DB_tab_text').className = 'inactive_tab_text';
            document.getElementById('LayerClearSQL').style.display = 'none';
//            document.getElementById('LayerClearSQL_2').style.display = 'none';
            document.getElementById('LayerClearSQL_3').style.display = 'none';
            document.getElementById('LayerCommon').style.display = '';
            document.getElementById('LayerSD').style.display = '';
//            document.getElementById('LayerSD_2').style.display = '';
            document.getElementById('LayerSD_3').style.display = '';
            document.getElementById('LayerClearDB').style.display = 'none';
//            document.getElementById('LayerClearDB_2').style.display = 'none';
            document.getElementById('LayerClearDB_3').style.display = 'none';
            document.getElementById('subscribe_prod_name').innerHTML = 'I want to receive future information on upgrades, updates and bug fixes for <span class="logo_SQL">SQL</span><span class="logo_Detective">Detective</span> or its kits. ';
            active_tab = 0;
            if (iPrevSDLic > 0) {
                document.getElementById('upgrade_menu').innerHTML = active_upgrade_menu;
                fnShowUpgradePage();
            }
            else {
                document.getElementById('upgrade_menu').innerHTML = inactive_upgrade_menu;
            }
        }
        if (tab_idx == 1) {
            document.getElementById('tab_4_0').className = 'inactive_tab_img';
            document.getElementById('tab_4_0').style.backgroundImage = "url(/images/tabs/3_clear_tabs/tab_2_1.gif)";
            document.getElementById('SD_tab_text').className = 'inactive_tab_text';
            
            document.getElementById('tab_ClearSQL').className = 'active_tab_img';
            document.getElementById('tab_ClearSQL').style.backgroundImage = "url(/images/tabs/3_clear_tabs/tab_2_2.gif)";
            document.getElementById('CS_tab_text').className = 'active_tab_text';
            
            document.getElementById('tab_ClearDB').className = 'inactive_tab_img';
            document.getElementById('tab_ClearDB').style.backgroundImage = "url(/images/tabs/3_clear_tabs/tab_2_3_large.gif)";
            document.getElementById('DB_tab_text').className = 'inactive_tab_text';
            document.getElementById('LayerSD').style.display = 'none';
//            document.getElementById('LayerSD_2').style.display = 'none';
            document.getElementById('LayerSD_3').style.display = 'none';
            document.getElementById('LayerCommon').style.display = '';
            document.getElementById('LayerClearSQL').style.display = '';
//            document.getElementById('LayerClearSQL_2').style.display = '';
            document.getElementById('LayerClearSQL_3').style.display = '';
            document.getElementById('LayerClearDB').style.display = 'none';
//            document.getElementById('LayerClearDB_2').style.display = 'none';
            document.getElementById('LayerClearDB_3').style.display = 'none';
            document.getElementById('subscribe_prod_name').innerHTML = 'I want to receive future information on upgrades, updates and bug fixes for <span class="logo_Detective">Clear</span><span class="logo_SQL">SQL</span>. ';
            active_tab = 1;
            if (iPrevCSLic > 0) {
                document.getElementById('upgrade_menu').innerHTML = active_upgrade_menu;
                fnShowUpgradePage();
            }
            else {
                document.getElementById('upgrade_menu').innerHTML = inactive_upgrade_menu;
            }
        }
        if (tab_idx == 2) {
            document.getElementById('tab_4_0').className = 'inactive_tab_img';
            document.getElementById('tab_4_0').style.backgroundImage = "url(/images/tabs/3_clear_tabs/tab_3_1.gif)";
            document.getElementById('SD_tab_text').className = 'inactive_tab_text';
            
            document.getElementById('tab_ClearSQL').className = 'inactive_tab_img';
            document.getElementById('tab_ClearSQL').style.backgroundImage = "url(/images/tabs/3_clear_tabs/tab_3_2.gif)";
            document.getElementById('CS_tab_text').className = 'inactive_tab_text';
            
            document.getElementById('tab_ClearDB').className = 'active_tab_img';
            document.getElementById('tab_ClearDB').style.backgroundImage = "url(/images/tabs/3_clear_tabs/tab_3_3_large.gif)";
            document.getElementById('DB_tab_text').className = 'active_tab_text';
            document.getElementById('LayerSD').style.display = 'none';
//            document.getElementById('LayerSD_2').style.display = 'none';
            document.getElementById('LayerSD_3').style.display = 'none';
            document.getElementById('LayerCommon').style.display = '';
            document.getElementById('LayerClearSQL').style.display = 'none';
//            document.getElementById('LayerClearSQL_2').style.display = 'none';
            document.getElementById('LayerClearSQL_3').style.display = 'none';
            document.getElementById('LayerClearDB').style.display = '';
//            document.getElementById('LayerClearDB_2').style.display = '';
            document.getElementById('LayerClearDB_3').style.display = '';
            document.getElementById('subscribe_prod_name').innerHTML = 'I want to receive future information on upgrades, updates and bug fixes for <span class="logo_Detective">Clear</span><span class="logo_SQL">DB Documenter</span>. ';
            active_tab = 2;
            if (iPrevCDBLic > 0) {
                document.getElementById('upgrade_menu').innerHTML = active_upgrade_menu;
                fnShowUpgradePage();
            }
            else {
                document.getElementById('upgrade_menu').innerHTML = inactive_upgrade_menu;
            }
        }
    }
    else {
        document.getElementById('upgrade_menu').innerHTML = inactive_upgrade_menu;
        document.getElementById('upgrade_menu').style.display = 'none';
        //        document.getElementById('upgrade_menu_filler').style.display = 'none';
        if (tab_idx == 0) {
            document.getElementById('tab_4_0').className = 'active_tab_img';
            document.getElementById('tab_4_0').style.backgroundImage = "url(/images/tabs/3_clear_tabs/tab_1_1.gif)";
            document.getElementById('SD_tab_text').className = 'active_tab_text';
            
            document.getElementById('tab_ClearSQL').className = 'inactive_tab_img';
            document.getElementById('tab_ClearSQL').style.backgroundImage = "url(/images/tabs/3_clear_tabs/tab_1_2.gif)";
            document.getElementById('CS_tab_text').className = 'inactive_tab_text';
            
            document.getElementById('tab_ClearDB').className = 'inactive_tab_img';
            document.getElementById('tab_ClearDB').style.backgroundImage = "url(/images/tabs/3_clear_tabs/tab_1_3_large.gif)";
            document.getElementById('DB_tab_text').className = 'inactive_tab_text';
            
            document.getElementById('LayerClearSQL').style.display = 'none';
//            document.getElementById('LayerClearSQL_2').style.display = 'none';
            document.getElementById('LayerClearSQL_3').style.display = 'none';
            
            document.getElementById('LayerClearDB').style.display = 'none';
//            document.getElementById('LayerClearDB_2').style.display = 'none';
            document.getElementById('LayerClearDB_3').style.display = 'none';
            
            document.getElementById('LayerSD').style.display = '';
//            document.getElementById('LayerSD_2').style.display = '';
            document.getElementById('LayerSD_3').style.display = '';
            document.getElementById('subscribe_prod_name').innerHTML = 'I want to receive future information on upgrades, updates and bug fixes for <span class="logo_SQL">SQL</span><span class="logo_Detective">Detective</span> or its kits. ';
            active_tab = 0;
        }
        if (tab_idx == 1) {
            document.getElementById('tab_4_0').className = 'inactive_tab_img';
            document.getElementById('tab_4_0').style.backgroundImage = "url(/images/tabs/3_clear_tabs/tab_2_1.gif)";
            document.getElementById('SD_tab_text').className = 'inactive_tab_text';
            
            document.getElementById('tab_ClearSQL').className = 'active_tab_img';
            document.getElementById('tab_ClearSQL').style.backgroundImage = "url(/images/tabs/3_clear_tabs/tab_2_2.gif)";
            document.getElementById('CS_tab_text').className = 'active_tab_text';
            
            document.getElementById('tab_ClearDB').className = 'inactive_tab_img';
            document.getElementById('tab_ClearDB').style.backgroundImage = "url(/images/tabs/3_clear_tabs/tab_2_3_large.gif)";
            document.getElementById('DB_tab_text').className = 'inactive_tab_text';
            
            document.getElementById('LayerSD').style.display = 'none';
//            document.getElementById('LayerSD_2').style.display = 'none';
            document.getElementById('LayerSD_3').style.display = 'none';
            
            document.getElementById('LayerClearSQL').style.display = '';
//            document.getElementById('LayerClearSQL_2').style.display = '';
            document.getElementById('LayerClearSQL_3').style.display = '';
            
            document.getElementById('LayerClearDB').style.display = 'none';
//            document.getElementById('LayerClearDB_2').style.display = 'none';
            document.getElementById('LayerClearDB_3').style.display = 'none';
            
            document.getElementById('subscribe_prod_name').innerHTML = 'I want to receive future information on upgrades, updates and bug fixes for <span class="logo_Detective">Clear</span><span class="logo_SQL">SQL</span>. ';
            active_tab = 1;
        }
        if (tab_idx == 2) {
            document.getElementById('tab_4_0').className = 'inactive_tab_img';
            document.getElementById('tab_4_0').style.backgroundImage = "url(/images/tabs/3_clear_tabs/tab_3_1.gif)";
            document.getElementById('SD_tab_text').className = 'inactive_tab_text';
            
            document.getElementById('tab_ClearSQL').className = 'inactive_tab_img';
            document.getElementById('tab_ClearSQL').style.backgroundImage = "url(/images/tabs/3_clear_tabs/tab_3_2.gif)";
            document.getElementById('CS_tab_text').className = 'inactive_tab_text';
            
            document.getElementById('tab_ClearDB').className = 'active_tab_img';
            document.getElementById('tab_ClearDB').style.backgroundImage = "url(/images/tabs/3_clear_tabs/tab_3_3_large.gif)";
            document.getElementById('DB_tab_text').className = 'active_tab_text';
            
            document.getElementById('LayerSD').style.display = 'none';
//            document.getElementById('LayerSD_2').style.display = 'none';
            document.getElementById('LayerSD_3').style.display = 'none';
            
            document.getElementById('LayerClearSQL').style.display = 'none';
//            document.getElementById('LayerClearSQL_2').style.display = 'none';
            document.getElementById('LayerClearSQL_3').style.display = 'none';
            
            document.getElementById('LayerClearDB').style.display = '';
//            document.getElementById('LayerClearDB_2').style.display = '';
            document.getElementById('LayerClearDB_3').style.display = '';
            
            document.getElementById('subscribe_prod_name').innerHTML = 'I want to receive future information on upgrades, updates and bug fixes for <span class="logo_Detective">Clear</span><span class="logo_SQL">DB Documenter</span>. ';
            active_tab = 2;
        }
    }
    document.getElementById('active_tab').value = active_tab;
    product_onchange();
}

function MM_swapImage(){ //v3.0
    var i, j = 0, x, a = MM_swapImage.arguments;
    document.MM_sr = new Array;
    for (i = 0; i < (a.length - 2); i += 3) 
        if ((x = MM_findObj(a[i])) != null) {
            document.MM_sr[j++] = x;
            if (!x.oSrc) 
                x.oSrc = x.src;
            x.src = a[i + 2];
        }
}

function MM_findObj(n, d){ //v4.01
    var p, i, x;
    if (!d) 
        d = document;
    if ((p = n.indexOf("?")) > 0 && parent.frames.length) {
        d = parent.frames[n.substring(p + 1)].document;
        n = n.substring(0, p);
    }
    if (!(x = d[n]) && d.all) 
        x = d.all[n];
    for (i = 0; !x && i < d.forms.length; i++) 
        x = d.forms[i][n];
    for (i = 0; !x && d.layers && i < d.layers.length; i++) 
        x = MM_findObj(n, d.layers[i].document);
    if (!x && d.getElementById) 
        x = d.getElementById(n);
    return x;
}

function product_onchange(){
    var product_0_qty = document.getElementById('product_0_qty');
    var product_1_qty = document.getElementById('product_1_qty');
    var product_2_qty = document.getElementById('product_2_qty');
    var product_qty = 0;
    if (active_tab == 0) {
        product_qty = product_0_qty;
    }
    else if (active_tab == 1) {
        product_qty = product_1_qty;
    }
    else if (active_tab == 2) {
        product_qty = product_2_qty;
    }

    if (parseInt(product_qty.value) == -1) {
        self.location.href = "/page/contact_us";
        return;
    }
    var frmBuyAddon = document.forms['frmBuyAddon'];
    for (i = 0; i < frmBuyAddon.elements.length; i++) {
        if (frmBuyAddon.elements[i].id.substr(0, 8) == 'kit_qty_') {
            if (parseInt(frmBuyAddon.elements[i].value) > parseInt(product_qty.value)) {
                frmBuyAddon.elements[i].value = product_qty.value;
            }
        }
    }
    if (!bRegCustomer) {
        if (product_qty.value <= 0) {
            document.getElementById('submit_btn').disabled = true;
        }
        else {
            document.getElementById('submit_btn').disabled = false;
        }
    }
    else {
        check_buttons();
    }
    if (active_tab == 2){
        xajax_check_needed_instances(product_qty.value);
        xajax_fillOptionCombo('32769-1008', active_tab, product_qty.value);
    } else {
        calc_subtotal();
    }
}

function kit_onchange(obj){
    if (products){
        var variations = [1, 2, 3, 5, 8, 10];
        var cbxProduct = 0;
        var product_qty = 0;
        var kits;
        if (active_tab == 0) {
            cbxProduct = document.getElementById('product_0_qty');
            product_qty = (products.sd == undefined?0:products.sd);
            kits = [
            parseInt(document.getElementById('kit_qty_8').value) + products.dvl,
            parseInt(document.getElementById('kit_qty_9').value) + products.dba,
            parseInt(document.getElementById('kit_qty_10').value) + products.csa
            ];
        }
        else if (active_tab == 1) {
            cbxProduct = document.getElementById('product_1_qty');
            product_qty = (products.cs == undefined?0:products.cs);
            kits = [
            parseInt(document.getElementById('kit_qty_15').value) + (products.clk1 == undefined?0:products.clk1)
            ];
        }
        else if (active_tab == 2) {
            cbxProduct = document.getElementById('product_2_qty');
            product_qty = (products.cdb == undefined?0:products.cdb);
            kits = [
            parseInt(document.getElementById('kit_qty_14').value) + (products.cdk == undefined?0:products.cdk),
            parseInt(document.getElementById('kit_qty_16').value) + (products.clk2 == undefined?0:products.clk2)
            ];
        }
        
        var selectedProductQTY = parseInt(cbxProduct.value);
        
        var maxQTY = max(kits);
        if ( product_qty < maxQTY && (product_qty + selectedProductQTY) < maxQTY ) {
            for (var i=0; i <= variations.length-1; i++){
                if ( variations[i] >= (maxQTY - product_qty) ){
                    cbxProduct.value = variations[i];
                    break;
                }
            }
        }
    }
    calc_subtotal();
}

function calc_subtotal(){
    var frmBuyAddon = document.forms['frmBuyAddon'];
    var oMaintenance = document.getElementById('maintenance');
    var oMaintenance_1 = document.getElementById('maintenance_1');
    var oMaintenance_2 = document.getElementById('maintenance_2');
    var oInstances_2 = document.getElementById('opt_qty_32769-1008');
    var sdKits = {
        kit_qty_8: 1, 
        kit_qty_9: 1, 
        kit_qty_10: 1
    };
    var csKits = {
        kit_qty_15: 1
    };
    var cdbKits = {
        kit_qty_14: 1, 
        kit_qty_16: 1
    };
    var cdbOptions = {
        1008: 1
    };
    var iSubTotal = 0;
    for (i = 0; i < frmBuyAddon.elements.length; i++) {
        if ((frmBuyAddon.elements[i].id in sdKits || frmBuyAddon.elements[i].id == 'product_0_qty' || (active_upg && frmBuyAddon.elements[i].id.substr(0, 8) == 'upg_kit_' )) && active_tab == 0) {
            iSubTotal += parseInt(frmBuyAddon.elements[i].options[frmBuyAddon.elements[i].selectedIndex].id);
        }
        else 
        if ( (frmBuyAddon.elements[i].id == 'product_1_qty' || frmBuyAddon.elements[i].id in csKits ) && active_tab == 1) { // CS
            iSubTotal += parseInt(frmBuyAddon.elements[i].options[frmBuyAddon.elements[i].selectedIndex].id);
        }
        else
        if ( (frmBuyAddon.elements[i].id == 'product_2_qty' || frmBuyAddon.elements[i].id in cdbKits || frmBuyAddon.elements[i].id.substr(frmBuyAddon.elements[i].id.length -4, 4) in cdbOptions ) && active_tab == 2) { // CDB
            iSubTotal += parseInt(frmBuyAddon.elements[i].options[frmBuyAddon.elements[i].selectedIndex].id);
        }
    }
    var i;
    if (document.getElementById('product_0_qty').value == 0 && ((!bRegCustomer && prod_0_in_cart_amount <= 0) || (bRegCustomer && iSD_Lic <= 0 && active_tab == 0 && prod_0_in_cart_amount <= 0))) {
        oMaintenance.disabled = true;
        oMaintenance.selectedIndex = 0;
        for (i in sdKits){
            document.getElementById(i).disabled = true;
        }
    }
    else {
        oMaintenance.disabled = false;
        for (i in sdKits){
            document.getElementById(i).disabled = false;
        }
    }
    if (document.getElementById('product_1_qty').value == 0 && ((!bRegCustomer && prod_1_in_cart_amount <= 0) || (bRegCustomer && iCS_Lic <= 0 && active_tab == 1 && prod_1_in_cart_amount <= 0))) {
        oMaintenance_1.disabled = true;
        oMaintenance_1.selectedIndex = 0;
        for (i in csKits){
            document.getElementById(i).disabled = true;
        }
    }
    else {
        oMaintenance_1.disabled = false;
        for (i in csKits){
            document.getElementById(i).disabled = false;
        }
    }
    if (document.getElementById('product_2_qty').value == 0 && ((!bRegCustomer && prod_2_in_cart_amount <= 0) || (bRegCustomer && iCDB_Lic <= 0 && active_tab == 2 && prod_2_in_cart_amount <= 0))) {
        oMaintenance_2.disabled = true;
        oMaintenance_2.selectedIndex = 0;
        oInstances_2.disabled = true;
        oInstances_2.selectedIndex = 0;
        for (i in cdbKits){
            document.getElementById(i).disabled = true;
        }
    }
    else {
        oMaintenance_2.disabled = false;
        oInstances_2.disabled = false;
        for (i in cdbKits){
            document.getElementById(i).disabled = false;
        }
    }
    setMaintenanceList(iSubTotal);
}

function setMaintenanceList(iSubTotal){
    var oMaintenance, oAddMaint;
    if (active_tab == 0) {
        oMaintenance = document.getElementById('maintenance');
        oAddMaint = document.getElementById('addMaint_0');
        if ((!bRegCustomer) || (bRegCustomer && iSD_Lic <= 0)) {
            if (active_upg){
                fill_MaintenanceList(oMaintenance, oAddMaint, iSubTotal, iSD_cost, false, true);
            } else {
                fill_MaintenanceList(oMaintenance, oAddMaint, iSubTotal, iSD_cost);
            }
        }
        if (bRegCustomer && iSD_Lic > 0) {
            if (!bSD_Maint) {
                fill_MaintenanceList(oMaintenance, oAddMaint, iSubTotal, iSD_cost);
            }
            else {
                if (iSubTotal == 0) {
                    fill_MaintenanceList(oMaintenance, oAddMaint, 0, iSD_cost);
                }
                else {
                    fill_MaintenanceList(oMaintenance, oAddMaint, iSubTotal, iSD_cost, true);
                }
            }
        }
    }
    else 
    if (active_tab == 1) {
        oMaintenance = document.getElementById('maintenance_1');
        oAddMaint = document.getElementById('addMaint_1');
        if ((!bRegCustomer) || (bRegCustomer && iCS_Lic <= 0)) {
            fill_MaintenanceList(oMaintenance, oAddMaint, iSubTotal, iCS_cost);
        }
        if (bRegCustomer && iCS_Lic > 0) {
            if (!bCS_Maint) {
                fill_MaintenanceList(oMaintenance, oAddMaint, iSubTotal, iCS_cost);
            }
            else {
                if (iSubTotal == 0) {
                    fill_MaintenanceList(oMaintenance, oAddMaint, 0, iCS_cost);
                }
                else {
                    fill_MaintenanceList(oMaintenance, oAddMaint, iSubTotal, iCS_cost, true);
                }
            }
        }
    }
    else
    if (active_tab == 2) {
        oMaintenance = document.getElementById('maintenance_2');
        oAddMaint = document.getElementById('addMaint_2');
        if ((!bRegCustomer) || (bRegCustomer && iCDB_Lic <= 0)) {
            fill_MaintenanceList(oMaintenance, oAddMaint, iSubTotal, iCDB_cost);
        }
        if (bRegCustomer && iCDB_Lic > 0) {
            if (!bCDB_Maint) {
                fill_MaintenanceList(oMaintenance, oAddMaint, iSubTotal, iCDB_cost);
            }
            else {
                if (iSubTotal == 0) {
                    fill_MaintenanceList(oMaintenance, oAddMaint, 0, iCDB_cost);
                }
                else {
                    fill_MaintenanceList(oMaintenance, oAddMaint, iSubTotal, iCDB_cost, true);
                }
            }
        }
    }
}

function fill_MaintenanceList(oMaintenance, oAddMaint, iSubTotal, iProdCost, bAddMaint, bUpgrade){
    var price, 
    amsHintText,
    endDate,
    startDate,
    amsHintSpanId,
    total,
    new_AMS_cost;
    var i = 0;
    var AMSPricePercent = new Array(0, 20, 18, 17);
    iSubTotal = Number(iSubTotal) + eval('prod_' + active_tab + '_in_cart_amount');
    iProdCost = Number(iProdCost);
    for (i = 0; i < oMaintenance.length; i++) {
        if (i == 0) {
            oMaintenance.options[i].text = 'Select...';
            oMaintenance.options[i].value = 0;
        }
        else {
            oMaintenance.options[i].text = i + " Year(s) - $ " + outputMoney(Math.round((iSubTotal + iProdCost) / 100 * AMSPricePercent[i] * i), ' ');
            oMaintenance.options[i].value = i;
        }
        price = oMaintenance.value ? Math.round(((iSubTotal + iProdCost) / 100 * AMSPricePercent[oMaintenance.value]) * oMaintenance.value) : 0;
        if (oMaintenance.value) {
            new_AMS_cost = price;
        }
    }
    if ( new_AMS_cost == 0 ){
        new_AMS_cost = eval('ams_' + active_tab + '_in_cart_amount')? eval('ams_' + active_tab + '_in_cart_amount') : 0;
        price = eval('ams_' + active_tab + '_in_cart_amount') ? eval('ams_' + active_tab + '_in_cart_amount') : 0;
    }
    if (active_tab == 0) {
        iMaintStart = iSD_Maint_start;
        iMaintEnd = iSD_Maint_end;
        iMaintYears = iSD_Maint_years;
        strMaint_expired = strSD_Maint_expired;
    } else if (active_tab == 1) {
        iMaintStart = iCS_Maint_start;
        iMaintEnd = iCS_Maint_end;
        iMaintYears = iCS_Maint_years;
        strMaint_expired = strCS_Maint_expired;
    } else if (active_tab == 2) {
        iMaintStart = iCDB_Maint_start;
        iMaintEnd = iCDB_Maint_end;
        iMaintYears = iCDB_Maint_years;
        strMaint_expired = strCDB_Maint_expired;
    } else {
        iMaintStart = -1;
        iMaintEnd = -1;
        iMaintYears = 0;
        strMaint_expired = '';
    }
    
    startDate = new Date(iMaintStart * 1000);
    endDate = new Date(iMaintEnd * 1000);
    var strStartAMS, strEndAMS;
    if (bAddMaint == true && iSubTotal) {
        d = new Date();
        var iMaintRemaind = (iMaintEnd - d.getTime() / 1000) / (iMaintEnd - iMaintStart);
        var remainedYears = Math.ceil((iMaintEnd - d.getTime() / 1000) / (60 * 60 * 24) / 365);
        if (remainedYears > 3) {
            remainedYears = 3;
        }
        else 
        if (remainedYears < 1) {
            remainedYears = 1;
        }
        strStartAMS = months[startDate.getMonth()] + " " + startDate.getDate() + ", " + startDate.getFullYear();
        strEndAMS = months[endDate.getMonth()] + " " + endDate.getDate() + ", " + endDate.getFullYear();
        var iCurOptCost = parseInt(document.getElementById('options_subtotal_cost2').value);
        iCurMainPrice = ( (iSubTotal+ iCurOptCost) * AMSPricePercent[remainedYears] / 100) * iMaintYears * iMaintRemaind;
        document.getElementById("new_products_subtotal").style.display = '';
        document.getElementById("new_products_subtotal_cost").innerHTML = Math.round(iSubTotal) + ".00";
        document.getElementById("remain_AMS_subtotal").style.display = '';
        document.getElementById("remain_AMS_subtotal_cost").innerHTML = Math.round(iCurMainPrice) + ".00";
        document.getElementById("remain_AMS_subtotal_date").innerHTML = "Start: " + strStartAMS + " -- End: " + strEndAMS;
        price += Math.round(iCurMainPrice);
        amsHintText = "**) Annual Maintenance Support (AMS) price includes new licenses that you have selected for purchase.";
    } else {
        document.getElementById("new_products_subtotal").style.display = 'none';
        document.getElementById("remain_AMS_subtotal").style.display = 'none';
        
        oAddMaint.style.display = 'none';
        oMaintenance.style.display = '';
        if (iProdCost) {
            amsHintText = "**) Annual Maintenance Support (AMS) price includes all licenses you currently have.";
        }
        else {
            amsHintText = "**) Annual Maintenance Support (AMS) price includes all licenses you currently have and any new licenses that you have selected for purchase. ";
        }
    }
    if (new_AMS_cost > 0 && (iProdCost || iSubTotal)) {
        var d = new Date();
        var iMaintPastYears = Math.floor((d.getTime() / 1000 - iMaintEnd) / (60 * 60 * 24) / 365);
        if (iMaintPastYears >= 1) {
            startDate = new Date();
            endDate = new Date();
        }
        else {
            startDate = new Date(iMaintEnd * 1000);
            endDate = new Date(iMaintEnd * 1000);
        }
        if (parseInt(oMaintenance.value) > 0){
            endDate.setFullYear(startDate.getFullYear() + parseInt(oMaintenance.value));
        } else {
            endDate.setFullYear(startDate.getFullYear() + parseInt(eval('ams_' + active_tab + '_in_cart')));
        }
        strStartAMS = months[startDate.getMonth()] + " " + (startDate.getDate()<10?"0":"") + startDate.getDate() + ", " + startDate.getFullYear();
        strEndAMS = months[endDate.getMonth()] + " " + (endDate.getDate()<10?"0":"") + endDate.getDate() + ", " + endDate.getFullYear();
        if (document.getElementById('maintenance').value > 0 || document.getElementById('maintenance_1').value > 0 || document.getElementById('maintenance_2').value > 0){
            //document.getElementById("new_AMS_subtotal").style.display = '';
            //document.getElementById("new_AMS_subtotal_cost").innerHTML = Math.round(new_AMS_cost) + ".00";
            //document.getElementById("new_AMS_subtotal_date").innerHTML = "Start: " + strStartAMS + " -- End: " + strEndAMS;
            document.getElementById("new_ams_header_" + active_tab).style.display = "";
            document.getElementById("new_ams_date_" + active_tab).style.display = "";
            document.getElementById("new_ams_date_" + active_tab).innerHTML = strStartAMS + "<br />" + strEndAMS;
        }
        if (strMaint_expired != '') {
            var status_message = 'AMS status:  expired on ' + strMaint_expired + '. Start of new AMS period is\n' + strStartAMS + ' and it will expire on ' + strEndAMS + '.';
        //alert(status_message);
        }
    } else {
        document.getElementById("new_AMS_subtotal").style.display = 'none';
        document.getElementById("new_ams_header_" + active_tab).style.display = 'none';
        document.getElementById("new_ams_date_" + active_tab).style.display = "none";
    }
    if (active_tab == 0) {
        amsHintSpanId = 'sd_ams_hint';
    }
    else 
    if (active_tab == 1) {
        amsHintSpanId = 'cs_ams_hint';
    }
    else
    if (active_tab == 2) {
        amsHintSpanId = 'cdb_ams_hint';
    }
    var amsHintSpan = document.getElementById(amsHintSpanId);
    if (amsHintSpan) {
        amsHintSpan.innerHTML = amsHintText;
    }
    price += parseInt(document.getElementById('options_subtotal_cost2').value);
    if (!bUpgrade) {
        total = document.getElementById('total');
        total.innerHTML = '<span class="pkg_style" style="padding-top: 0px; font-size: 15px;">' + outputMoney(Math.round(iSubTotal + price), '&nbsp;') + '<span>.00</span></span>';
    }
    else {
        total = document.getElementById('upd_add_purch');
        total.innerHTML = '<span style="padding-top: 0px; font-size: 13px;">' + outputMoney(Math.round(iSubTotal + price), '&nbsp;') + '<span>.00</span></span>';
        total = document.getElementById('upd_total');
        total.innerHTML = '<span class="pkg_style" style="padding-top: 0px; font-size: 15px;">' + outputMoney(Math.round(iSubTotal + price + upgrade_cost), '&nbsp;') + '<span>.00</span></span>';
    }
    check_buttons();
}

function check_buttons(){
    var frmBuyAddon = document.forms['frmBuyAddon'];
    var bHasProduct = false;
    for (i = 0; i < frmBuyAddon.elements.length; i++) {
        if ((frmBuyAddon.elements[i].value > 0) && (frmBuyAddon.elements[i].tagName == 'SELECT') && (frmBuyAddon.elements[i].id != 'addMaint_2') && (frmBuyAddon.elements[i].id != 'addMaint_1')) {
            //            if (active_tab == 1) {
            //                if (frmBuyAddon.elements[i].id == "product_1_qty" || frmBuyAddon.elements[i].id == 'maintenance_1') {
            //                    bHasProduct = true;
            //                }
            //            }
            //            else
            //            if (active_tab == 2) {
            //                if (frmBuyAddon.elements[i].id == "product_2_qty" || frmBuyAddon.elements[i].id == 'maintenance_2') {
            //                    bHasProduct = true;
            //                }
            //            }
            //            else
            //            if (active_tab == 0) {
            //                if (frmBuyAddon.elements[i].id == "product_0_qty" || frmBuyAddon.elements[i].id == 'maintenance') {
            //                    bHasProduct = true;
            //                }
            //            }
            bHasProduct = true;
        //            alert(frmBuyAddon.elements[i].value);
        }
    }
    if (bHasProduct) {
        document.getElementById('submit_btn').disabled = false;
    }
    else {
        document.getElementById('submit_btn').disabled = true;
    }
}

function show_upgrade_page(prod_id){
    document.getElementById('LayerSD_2').style.display = '';
    if (from_ver < 8) {
        alert("IMPORTANT\n\n" +
            "In order to enable OSD to recognize the new version 4.3, you need to update your current SQLDetective version to the latest " +
            "build 3.5.1.40. Otherwise you have to follow the instructions described in 2) below.\n\n\n" +
            "1) USERS WITH SQLDetective 3.4.2 AND HIGHER\n\n" +
            "Use first your OSD to update to 3.5.1 (build 40). After you have purchased the upgrade to 4.3 and you received the new license " +
            "key, " +
            "please copy this key into your SQLDetective program home folder and run again OSD to physically upgrade to 4.3.\n\n\n" +
            "2) USERS WITH SQLDetective 3.4.1 AND LOWER\n\n" +
            "Users who use SQLDetective 3.4.1 and lower, will need to upgrade manually to the latest 3.5.1 (build 40). Logon to your customer account on our website, go to DOWNLOADS --> UPDATES/UPGRADES and " +
            "download the FULL UPGRADE PACK for 3.5.1.40. Install it, re-start SQLDetective and you will find in the main menu bar \"OSD\" as a new item. " +
            "Purchase your upgrade to 4.3, copy the license key into your SQLDetective program home folder and run OSD again. " +
            "OSD is a feature to enable you to quick and easy communicate with our Technical Support and to easy UPGRADE/UPDATE your " +
            "SQLDetective installation.\n");
        
    }
    document.getElementById("LayerUpd").style.display = 'none';
    xajax_show_upgrade_page('LayerSDPrev', prod_id);
}

function reset_form(){
    init_controls();
    drawBasketAmount();
}

function init_controls(){
    xajax_getJSONProducts();
    var frmBuyAddon = document.forms['frmBuyAddon'];
    var iSubTotal = 0;
    for (i = 0; i < frmBuyAddon.elements.length; i++) {
        if (frmBuyAddon.elements[i].tagName == "SELECT") {
            frmBuyAddon.elements[i].selectedIndex = 0;
        }
    }
    var total = document.getElementById('total');
    total.innerHTML = '<span class="pkg_style" style="padding-top: 0px; font-size: 15px;">0.00</span>';
    if ((!bRegCustomer) || (bRegCustomer && ((iSD_Lic <= 0 && active_tab == 0) || (iCS_Lic <= 0 && active_tab == 1) || (iCS_Lic <= 0 && active_tab == 1)))) {
        document.getElementById('maintenance').disabled = true;
        document.getElementById('opt_qty_32769-1008').disabled = true;
    }
    else {
        document.getElementById('maintenance').disabled = false;
        document.getElementById('opt_qty_32769-1008').disabled = false;
    }
    document.getElementById('addMaint_0').style.display = 'none';
    document.getElementById('maintenance').style.display = '';
    document.getElementById("new_products_subtotal").style.display = 'none';
    document.getElementById("remain_AMS_subtotal").style.display = 'none';
    document.getElementById("new_AMS_subtotal").style.display = 'none';
    //setMaintenanceList(iSubTotal);
    document.getElementById('submit_btn').disabled = true;
}

window.onload = function window_onload(){
    document.getElementById('active_tab').value = active_tab;
    if (bTo35 == true || document.getElementById("proposalButton")) {
        switch_tab(0);
        
    }
    var arrURLParams = getURLParams();
//    if (getCookie('from_upg') == 1) {
//        switch_tab(0);
//        fnShowUpgradePage();
//        return;
//    }
    if (arrURLParams['prod_id'] != '' && arrURLParams['prod_id'] != undefined) {
        if (arrURLParams['prod_id'] == 2) {
            switch_tab(2);
        }
        else {
            switch_tab(arrURLParams['prod_id']);
        }
    }
    else {
        switch_tab(active_tab);
    }
    document.getElementById('to_show_1').style.display = '';
    document.getElementById('to_show_2').style.display = '';
    document.getElementById('to_show_3').style.display = '';
    document.getElementById('submit_buttons').style.display = '';
    document.getElementById('to_show_5').style.display = '';
    if (active_tab == 2){
        xajax_fillOptionCombo('32769-1008', active_tab, 0);
    }
    drawBasketAmount();
    init_controls();
    //xajax_get_promo_code();
}

function outputMoney(number, delimiter){
    return outputDollars(Math.floor(number - 0) + '', delimiter);
}

function outputDollars(number, delimiter){
    var i = 0;
    if (number.length <= 3) 
        return (number == '' ? '0' : number);
    else {
        var mod = number.length % 3;
        var output = (mod == 0 ? '' : (number.substring(0, mod)));
        for (i = 0; i < Math.floor(number.length / 3); i++) {
            if ((mod == 0) && (i == 0)) 
                output += number.substring(mod + 3 * i, mod + 3 * i + 3);
            else 
                output += delimiter + number.substring(mod + 3 * i, mod + 3 * i + 3);
        }
        return (output);
    }
}

function outputCents(amount){
    amount = Math.round(((amount) - Math.floor(amount)) * 100);
    return (amount < 10 ? '.0' + amount : '.' + amount);
}

function getURLParams(){
    var tmp = new Array(); // two additional
    var tmp2 = new Array(); // arrays
    var param = new Array();
    
    var get = location.search; // GET query string
    if (get != '') {
        getstr = get.substr(1);
        tmp = getstr.split('&'); // split variables
        get = '';
        param = new Array(0);
        for (var i = 0; i < tmp.length; i++) {
            tmp2 = tmp[i].split('=');
            param[tmp2[0]] = tmp2[1];
        }
    }
    return param;
}

function fnShowUpgradePage(){
    if (active_tab == 0) {
        document.getElementById("LayerSD").style.display = 'none';
        document.getElementById("LayerCommon").style.display = "none";
        //document.getElementById("LayerSD_whats_new").style.display = "";
        document.getElementById("LayerSDPrev").style.display = "";
        document.getElementById("upgrade_link").style.color = "#952300";
        document.getElementById("buy_new_link").style.color = "";
        xajax_show_upgrade_page('LayerSDPrev', active_tab);
    }
    else 
    if (active_tab == 1) {
        document.getElementById("LayerClearSQL").style.display = 'none';
        document.getElementById("LayerCommon").style.display = "none";
        document.getElementById("LayerClearSQL_3").style.display = "none";
        //document.getElementById("LayerCS_whats_new").style.display = "";
        document.getElementById("LayerCSPrev").style.display = "";
        document.getElementById("upgrade_link").style.color = "#952300";
        document.getElementById("buy_new_link").style.color = "";
        xajax_show_upgrade_page('LayerCSPrev', active_tab);
    }
    else
    if (active_tab == 2) {
        document.getElementById("LayerClearDB").style.display = 'none';
        document.getElementById("LayerCommon").style.display = "none";
        document.getElementById("LayerClearDB_3").style.display = "none";
        //document.getElementById("LayerCDB_whats_new").style.display = "";
        document.getElementById("LayerCDBPrev").style.display = "";
        document.getElementById("upgrade_link").style.color = "#952300";
        document.getElementById("buy_new_link").style.color = "";
        xajax_show_upgrade_page('LayerCDBPrev', active_tab);
    }
    setCookie('from_upg', 1, 'Thu, 01-Jan-2099 00:00:00 GMT', '/');
    //drawBasketAmount();
}

function fnHideUpgradePage(){
    if (active_tab == 0) {
        if (document.getElementById("LayerSDPrev")) {
            document.getElementById("LayerSD").style.display = '';
            document.getElementById("LayerCommon").style.display = "";
            document.getElementById("LayerSDPrev").style.display = "none";
            document.getElementById("upgrade_link").style.color = "";
            document.getElementById("buy_new_link").style.color = "#952300";
        }
    }
    else 
    if (active_tab == 1) {
        if (document.getElementById("LayerCSPrev")) {
            document.getElementById("LayerClearSQL").style.display = '';
            document.getElementById("LayerCommon").style.display = "";
            document.getElementById("LayerClearSQL_3").style.display = "";
            document.getElementById("LayerCSPrev").style.display = "none";
            document.getElementById("upgrade_link").style.color = "";
            document.getElementById("buy_new_link").style.color = "#952300";
        }
    }
    else
    if (active_tab == 2) {
        if (document.getElementById("LayerCDBPrev")) {
            document.getElementById("LayerClearDB").style.display = '';
            document.getElementById("LayerCommon").style.display = "";
            document.getElementById("LayerClearDB_3").style.display = "";
            document.getElementById("LayerCDBPrev").style.display = "none";
            document.getElementById("upgrade_link").style.color = "";
            document.getElementById("buy_new_link").style.color = "#952300";
        }
    }
    active_upg = 0;
    setCookie('from_upg', 0, 'Thu, 01-Jan-2099 00:00:00 GMT', '/');
    if (document.getElementById("upd")){
        document.getElementById("upd").value = 0;
    }
//    drawBasketAmount();
}

function fnAddToBasket(){
    if (promo_code != ''){
        //        if (confirm('You have entered the promotion code. Do you want to clear it and add your selected items to the shopping cart?')){
        xajax_reset_promo_code();
    //        } else {
    //            return;
    //        }
    }
    xajax_add_to_basket(xajax.getFormValues(document.frmBuyAddon));
}

function drawBasketAmount(){
    xajax_drawBasketAmount();
}
function max (v){
    var m= v[0];
    for (var i=1; i <= v.length-1; i++){
        if (v[i] > m ){
            m= v[i];
        }
    }
    return m
}

function set_promo_code(){
    Ext.Msg.prompt('', 'Enter your promotion code', function(btn, text){
        if (btn == 'ok'){
            promo_code = text;
            xajax_set_promo_code(text);
        }
    });
}

function setCookie(name, value, expires, path, domain, secure){
    document.cookie = name + "=" + escape(value) +
    ((expires) ? "; expires=" + expires : "") +
    ((path) ? "; path=" + path : "") +
    ((domain) ? "; domain=" + domain : "") +
    ((secure) ? "; secure" : "");
}

function getCookie(name){
    var cookie = " " + document.cookie;
    var search = " " + name + "=";
    var setStr = null;
    var offset = 0;
    var end = 0;
    if (cookie.length > 0) {
        offset = cookie.indexOf(search);
        if (offset != -1) {
            offset += search.length;
            end = cookie.indexOf(";", offset)
            if (end == -1) {
                end = cookie.length;
            }
            setStr = unescape(cookie.substring(offset, end));
        }
    }
    return (setStr);
}

function addElement(tgt_select, option_text, option_value, id)	{
    var oOption = document.createElement("option");
    oOption.value = option_value;
    oOption.id = id;
    oOption.appendChild(document.createTextNode(option_text));
    tgt_select.appendChild(oOption);
}

function fillCombo(obj_id, data){
    var obj = document.getElementById(obj_id);
    var selected = obj.value;
    for (var i = 0; i <= obj.length; i++) {
        obj.remove(1);
    }
    for (var key in data) {
        addElement(obj, key + ' Instance(s) - $ ' + data[key], key, data[key]);
    }
    obj.value = selected;
    obj.disabled = false;
}
