/******************************************************************************
 **  Script File:  psAjax.js
 **  Purpose: Ajax functionality for a new product support page; Spring, 2008
 **   Author: Robert W. Murray    [robert.murray@gateway.com]
 ******************************************************************************/

// Variables set for the currently displayed product
var Company = 'Gateway';
var Category = '';
var Subcat = '';
var Model = '';
var resp = null;
var dbURL = 'http://'+top.location.host+'/support/drivers/dbAjax.html';

//////////////////////////////////////////////////////////////////////
//  Product Support page database request function
//
//  Level 1:  Get category list  (not used yet)
//  Level 2:  Get subcategory list from category
//  Level 3:  Get model list from subcategory list
//  Level 4:  Get driver data for model specified
//
function dbGetSubcat ()
{
    $("#model").innerHTML = '';
    $("div#dropImage").css('display:none');
    // $("#modelname").css('display:none');
    if ($("#supportDetail"))
        { $("#supportDetail").css('display:none'); }

    var c = document.getElementById("cat").value;
    $.ajax({
        url: dbURL,
        type: 'POST',
        data: "cat="+c,
        dataType: 'html',
        timeout: 5000,
        error: function() { alert('Error loading '+dbURL+' document'); },
        success: function(response) {
            var l = response.length - 2;
            var response = response.substr(0,l);
            if (response) {
                var select = document.getElementById("subcat");
                clearSubcat(select);
                var arr = response.split(',');
                for (var i=0; i < arr.length; i++) {
                    var opt = document.createElement('option');
                    opt.setAttribute('value',arr[i]);
                    opt.appendChild(document.createTextNode(arr[i]));
                    select.appendChild(opt);
                }
            }
        }
    });

}

function clearSubcat (s)
{
    if (!s) { s = document.getElementById("subcat"); }
    s.options.length=0;    // Nuke all previous elements
    var opt = document.createElement('option');     // Create Series/empty option
    opt.setAttribute('value','');
    opt.appendChild(document.createTextNode('Serie'));
    s.appendChild(opt);
    clearModel();
}

//////////////////////////////////////////////////////////////////////
//  Event handler when Series/Subcategory is clicked.   
//  Fetch a list of models based on the category and subcategory.
//
function dbGetModel ()
{
    $("div#dropImage").css('display:none');
    // $("#modelname").css('display:none');

    var c = document.getElementById("cat").value;
    var s = document.getElementById("subcat").value;
    $.ajax({
        url: dbURL,
        type: 'POST',
        data: 'cat='+c + '&subcat='+s,
        dataType: 'html',
        timeout: 5000,
        error: function() { alert('Error loading '+dbURL+' document'); },
        success: function(response) {
            var l = response.length - 2;
            var response = response.substr(0,l);
            if (response) {
                var select = document.getElementById("model");
                clearModel(select);
                var arr = response.split(',');
                for (var i=0; i < arr.length; i++) {
                    var opt = document.createElement('option');
                    opt.setAttribute('value',arr[i]);
                    opt.appendChild(document.createTextNode(arr[i]));
                    select.appendChild(opt);
                }
            }
        }
    });
}

function clearModel (s)
{
    if (!s) { s = document.getElementById("model"); }
    s.options.length=0;
    var opt = document.createElement('option');     // Create Model/empty option
    opt.setAttribute('value','');
    opt.appendChild(document.createTextNode('Modelo'));
    s.appendChild(opt);
    clearImage();
}

//////////////////////////////////////////////////////////////////////
//  Event handler when the Model is clicked.   Returns a delimited
//  list of data associated with the product selected.
//
function dbGetModelData ()
{
    var c = document.getElementById("cat").value;
    var s = document.getElementById("subcat").value;
    var m = document.getElementById("model").value;
    $.ajax({
        url: dbURL,
        type: 'POST',
        data: 'cat='+c + '&subcat='+s + '&model='+m,
        dataType: 'html',
        timeout: 10000,
        error: function() { alert('Error loading '+dbURL+' document'); },
        success: function(response) {
            var l = response.length - 2;
            var response = response.substr(0,l);
            if (response) {
                //$("#supportDetail").css('display:none');

                var arr = new Array();
                arr = response.split('|');
                Model = arr[0];
                Company = arr[1];
                Category = arr[2];
                Subcat = arr[3];
                var arr_image = arr[4];

                dbGetDriverData();
                //dbGetGuideData();     No user guides at this time
                dbGetSpecData();

                document.getElementById("supportDetail").style.display = 'block';
                setTab(1);

                // Update text link 
                // var sellink = $("#modelname");
                // sellink.innerHTML = Company+' '+Model+' '+Category;

                // Setup image display
                if (arr_image)
                    { document.getElementById("imagename").src = arr_image; }
                //$("div#dropImage").css('display:block');
            }
        }
    });
}

function clearImage ()
{
    document.getElementById("imagename").src = '/shared/img/clear.gif';
    document.getElementById("supportDetail").style.display = 'none';
}


//////////////////////////////////////////////////////////////////////
//  Driver tab request functions
//
function setTab (t)
{
    for(i=1; i<3; i++) {
        if (i==t) {
            document.getElementById("tab"+i).className = "hereNav";
            document.getElementById("tab"+i+"Area").style.display = 'block';
        } else {
            document.getElementById("tab"+i).className = "";
            document.getElementById("tab"+i+"Area").style.display = 'none';
        }
    }
}

function dbGetDriverData ()
{
    var qs = makeQuery(0) + '&req=D';
    $.ajax({
        url: dbURL,
        type: 'POST',
        data: qs,
        dataType: 'html',
        timeout: 5000,
        error: function() { alert('Error loading '+dbURL+' document'); },
        success: function(response) {
            if (response)
                { document.getElementById("psDrivers").innerHTML = response; }
        }
    });
}
function dbGetDriverData_OS ()
{
    var os = document.getElementById("selOS").value;
    var qs = makeQuery(0) + '&req=D,os='+os;
    $.ajax({
        url: dbURL,
        type: 'POST',
        data: qs,
        dataType: 'html',
        timeout: 5000,
        error: function() { alert('Error loading '+dbURL+' document'); },
        success: function(response) {
            if (response)
                { document.getElementById("psDrivers").innerHTML = response; }
        }
    });
}

function dbGetGuideData ()
{
    var qs = makeQuery(0) + '&req=G';
    $.ajax({
        url: dbURL,
        type: 'POST',
        data: qs,
        dataType: 'html',
        timeout: 5000,
        error: function() { alert('Error loading '+dbURL+' document'); },
        success: function(response) {
            if (response)
                { document.getElementById("psGuides").innerHTML = response; }
        }
    });
}

function dbGetSpecData ()
{
    var qs = makeQuery(0) + '&req=S';
    $.ajax({
        url: dbURL,
        type: 'POST',
        data: qs,
        dataType: 'html',
        timeout: 5000,
        error: function() { alert('Error loading '+dbURL+' document'); },
        success: function(response) {
            if (response)
                { document.getElementById("psSpecs").innerHTML = response; }
        }
    });
}


function dbShowProduct () { if ($("#cat").value) dbGetSubcat(); }


//////////////////////////////////////////////////////////////////////
//  Create the query string for a product support page
//
function makeQuery (fetch)
{
    var q;
    if (fetch) {
        q = 'cat='     + docment.getElementById("cat").value      +
            '&subcat=' + docment.getElementById("subcat").value   +
            '&model='  + docment.getElementById("model").value;
        }
    else {
        q = 'cat='+Category + '&subcat='+Subcat + '&model='+Model;
    }
    return q;
}


//////////////////////////////////////////////////////////////////////
//  Product Support Tab selction
//
function SelectTab (selected_tab)
{
    var tabname = (selected_tab.search("sub") !== -1)? "subtab" : "tab";
    var i=1, tab=document.getElementById(tabname + "1"), area=document.getElementById(tabname + "1Area");
    var sel=document.getElementById(selected_tab), obj=document.getElementById(selected_tab + "Area");
    if (tab) {
        while (tab && typeof(tab) == "object") {
            if (sel && tab.id != sel.id) { tab.className = ""; }
            tab = document.getElementById(tabname + i);
            if (area && obj && area.id != obj.id) { area.style.display='none'; }
            area = document.getElementById(tabname + (i++) + "Area");
        }
    }
    if (sel) {
        sel.className = "selected";
        sel.blur();
        obj.style.display = 'block';
    }
    return false;
}

