


var ajax_Hotlaps = new function ()
{
    this.ready_sim = false;
    this.ready_mod = false;
    this.ready_car = false;
    this.ready_track = false;
    this.ready_layout = false;
    this.ready_len = false;
    this.counter = 0;

    this.Init = function (sim, mod, car, track, layout, len)
    {


        ajax_Hotlaps_RefillSimCombo(sim);
        ajax_Hotlaps_RefillModCombo(sim, mod);
        ajax_Hotlaps_RefillCarsCombo(mod, car);
        ajax_Hotlaps_RefillTrackCombo(sim, mod, car, track);
        ajax_Hotlaps_RefillTrackLayoutCombo(track, layout);
        ajax_Hotlaps_RefillTrackLenCombo(sim, track, layout, len);

        if ($.query.get('IDssSim')!='') this.LoopedCheck();
    }


    this.IsReady = function()
    {
        return (this.ready_sim && this.ready_mod && this.ready_car && this.ready_track && this.ready_layout && this.ready_len);
    }

    this.LoopedCheck = function()
    {

        if (this.IsReady())
        {
            ajax_Hotlaps_Results();
            return;
        }

        $('#hotlaps_results').html = this.counter++;
        t=setTimeout("ajax_Hotlaps.LoopedCheck()",1000);
    }




    this.BlockUI = function(mode)
    {
        if (mode)
        {
            $('#hotlaps').block({
                        message: '<div style="font-size:10px;vertical-align:bottom;display:block">Processing <img src="ajax_data/loadinfo.gif"></div>',
                        centerY: 0,
                        centerX: 0,
                        css: {
                                top: '',
                                left: '',
                                right: '10px',
                                bottom: '10px',
                                border: 'none',
                                textAlign: 'right',
                                color: '#000000',
                                backgroundColor: 'transparent',
                                cursor: 'wait'
                            },
                         // styles for the overlay
                        overlayCSS:  {
                                backgroundColor: '#EEEEEE',
                                opacity: .6
                                     }
                    });
        }
        else if (this.IsReady()) $('#hotlaps').unblock();
    }






//   if (sim>0)
//   {
//        $(document).ajaxStop(function()
//        {
//            ajax_Hotlaps_Results();
//        })
//   }
  //all requests finished!, do something with all your new fancy data


//    ajax_Hotlaps_RefillSimCombo(sim);
//    ajax_Hotlaps_RefillModCombo(sim, mod);
//    ajax_Hotlaps_RefillCarsCombo(mod, car);
//    ajax_Hotlaps_RefillTrackCombo(sim, mod, car, track);
//    ajax_Hotlaps_RefillTrackLayoutCombo(track, layout);
//    ajax_Hotlaps_RefillTrackLenCombo(sim, track, layout, len);
//ajax_Hotlaps_Results();

}


function ajax_Hotlaps_RefillSimCombo(id)
{
    id = typeof(id) != 'undefined' ? id : 0;

    var url="ajax_data/ajax_get_ss_sim.php";
    url=url+"?chid="+Math.random();

    ajax_Hotlaps.BlockUI(true);

    $.get
    (url, function(xmlDoc)
          {
            try
            {
                var state = xmlDoc.getElementsByTagName("status")[0].getAttribute("state");
                var message = getValueFromNode(xmlDoc, "status");

                if (state != 'ok') throw new Error(message);

                var srcArray = new Array();
                var nodes = xmlDoc.getElementsByTagName("Sim");

                for (i=0; i<nodes.length; i++)
                {
                    srcArray[i] = Array(0, nodes[i].getAttribute("IDssSim"),  nodes[i].childNodes[0].nodeValue /* , imported? */);
                }

                FillCombo('cb_Sim', srcArray, 0, id, '', '');

            }
            catch (e)
            {
                if (e.message!='ok') alert('Error:\n' + e.message);
            }
            finally
            {
                ajax_Hotlaps.ready_sim = true;
                ajax_Hotlaps.BlockUI(false);
                return false;
            }
        }
    );
}










function ajax_Hotlaps_RefillModCombo(idsim, id)
{
    idsim = typeof(idsim) != 'undefined' ? idsim : 0;
    if (idsim==0) idsim = $('#cb_Sim').val();
    if (idsim==0)
    {
        ajax_Hotlaps.ready_mod = true;
        return;
    }
    
    id = typeof(id) != 'undefined' ? id : 0;
    
    
    var url="ajax_data/ajax_get_ss_mod.php";
    url=url+"?IDssSim="+idsim;
    url=url+"&chid="+Math.random();

    ajax_Hotlaps.BlockUI(true);

    $.get
    (url, function(xmlDoc)
          {
            try
            {
                var state = xmlDoc.getElementsByTagName("status")[0].getAttribute("state");
                var message = getValueFromNode(xmlDoc, "status");

                if (state != 'ok') throw new Error(message);

                var srcArray = new Array();
                var nodes = xmlDoc.getElementsByTagName("Mod");

                for (i=0; i<nodes.length; i++)
                {
                    srcArray[i] = Array(0, nodes[i].getAttribute("IDssMod"),  nodes[i].childNodes[0].nodeValue /* , imported? */);
                }

                FillCombo('cb_Mod', srcArray, 0, id, '', '');

            }
            catch (e)
            {
                if (e.message!='ok') alert('Error:\n' + e.message);
            }
            finally
            {
                ajax_Hotlaps.ready_mod = true;
                ajax_Hotlaps.BlockUI(false);
                return false;
            }
        }
    );
}




function ajax_Hotlaps_RefillCarsCombo(idmod, id)
{
    idmod = typeof(idmod) != 'undefined' ? idmod : 0;
    if (idmod==0) idmod = $('#cb_Mod').val();
    if (idmod==0)
    {
        ajax_Hotlaps.ready_car = true;
        return;
    }
    
    id = typeof(id) != 'undefined' ? id : 0;
    

    var url="ajax_data/ajax_get_ss_car_in_mod.php";
    url=url+"?IDssMod="+ idmod;
    url=url+"&chid="+Math.random();

    ajax_Hotlaps.BlockUI(true);

    $.get
    (url, function(xmlDoc)
          {
            try
            {
                var state = xmlDoc.getElementsByTagName("status")[0].getAttribute("state");
                var message = getValueFromNode(xmlDoc, "status");

                if (state != 'ok') throw new Error("Data error:\n" + message);

                var srcArray = new Array();
                var nodes = xmlDoc.getElementsByTagName("Car");

                for (i=0; i<nodes.length; i++)
                {
                    srcArray[i] = Array(0, nodes[i].getAttribute("IDssCarInMod"),  nodes[i].childNodes[0].nodeValue /* , imported? */);
                }

                FillCombo('cb_Car', srcArray, 0, id, '', '');


            }
            catch (e)
            {
                if (e.message!='ok') alert('Error:\n' + e.message);
            }
            finally
            {
                ajax_Hotlaps.ready_car = true;
                ajax_Hotlaps.BlockUI(false);
                return false;
            }
        }
    );


}














function ajax_Hotlaps_RefillTrackCombo(idsim, idmod, idcar, id)
{
    idsim = typeof(idsim) != 'undefined' ? idsim : 0;
    if (idsim==0) idsim = $('#cb_Sim').val();

    idmod = typeof(idmod) != 'undefined' ? idmod : 0;
    if (idmod==0) idmod = $('#cb_Mod').val();
    
    idcar = typeof(idcar) != 'undefined' ? idcar : 0;
    if (idcar==0) idcar = $('#cb_Car').val();

    id = typeof(id) != 'undefined' ? id : 0;

    if (idsim==0 || idsim==null)
    {
        ajax_Hotlaps.ready_track = true;
        return;
    }

    var url="ajax_data/ajax_get_ss_track.php";
    url=url+"?IDssSim="+ idsim;
    url=url+"&IDssMod="+ idmod;
    url=url+"&IDssCar="+ idcar;
    url=url+"&chid="+Math.random();

    ajax_Hotlaps.BlockUI(true);

    $.get
    (url, function(xmlDoc)
          {
            try
            {
                var state = xmlDoc.getElementsByTagName("status")[0].getAttribute("state");
                var message = getValueFromNode(xmlDoc, "status");

                if (state != 'ok') throw new Error("Data error:\n" + message);

                var srcArray = new Array();
                var nodes = xmlDoc.getElementsByTagName("Track");

                for (i=0; i<nodes.length; i++)
                {
                    srcArray[i] = Array(0, nodes[i].getAttribute("IDssTrack"),  nodes[i].childNodes[0].nodeValue /* , imported? */);
                }

                FillCombo('cb_track', srcArray, 0, id, '', '');
            }
            catch (e)
            {
                if (e.message!='ok') alert('Error:\n' + e.message);
            }
            finally
            {
                ajax_Hotlaps.ready_track = true;
                ajax_Hotlaps.BlockUI(false);
                return false;
            }
        }
    );

}



















function ajax_Hotlaps_RefillTrackLayoutCombo(idtrack, id)
{
    idtrack = typeof(idtrack) != 'undefined' ? idtrack : 0;
    id = typeof(id) != 'undefined' ? id : 0;

    if (idtrack==0)
    {
        idtrack = $('#cb_track').val();
    }
    
    if (idtrack==0 || idtrack==null)
    {
        ajax_Hotlaps.ready_layout = true;
        return;
    }

    var url="ajax_data/ajax_get_ss_track_version.php";
    url=url+"?IDssTrack="+ idtrack;
    url=url+"&chid="+Math.random();

    ajax_Hotlaps.BlockUI(true);

    $.get
    (url, function(xmlDoc)
          {
            try
            {
                var state = xmlDoc.getElementsByTagName("status")[0].getAttribute("state");
                var message = getValueFromNode(xmlDoc, "status");

                if (state != 'ok') throw new Error("Data error:\n" + message);

                var srcArray = new Array();
                var nodes = xmlDoc.getElementsByTagName("TrackVersion");

                for (i=0; i<nodes.length; i++)
                {
                    srcArray[i] = Array(0, nodes[i].getAttribute("IDssTrackVersion"),  nodes[i].childNodes[0].nodeValue /* , imported? */);
                }

                FillCombo('cb_track_version', srcArray, 0, id , '', '');
                ajax_Hotlaps_RefillTrackLenCombo();
            }
            catch (e)
            {
                if (e.message!='ok') alert('Error:\n' + e.message);
            }
            finally
            {
                ajax_Hotlaps.ready_layout = true;
                ajax_Hotlaps.BlockUI(false);
                return false;
            }
        }
    );
}











function ajax_Hotlaps_RefillTrackLenCombo(idsim, idtrack, idlayout, id)
{
    idsim = typeof(idsim) != 'undefined' ? idsim : 0;
    idtrack = typeof(idtrack) != 'undefined' ? idtrack : 0;
    idlayout = typeof(idlayout) != 'undefined' ? idlayout : 0;
    id = typeof(id) != 'undefined' ? id : 0;


    if (idsim==0)
    {
        idsim = $('#cb_Sim').val();
    }

    if (idtrack==0)
    {
        idtrack = $('#cb_track').val();
    }

    if (idlayout==0)
    {
        idlayout = $('#cb_track_version').val();
    }


    if (idlayout==0 || idlayout==null)
    {
        ajax_Hotlaps.ready_len = true;
        return;
    }

    var url="ajax_data/ajax_get_ss_track_version_lenght.php";
    url=url+"?IDssSim="+idsim;
    url=url+"&IDssTrack="+ idtrack;
    url=url+"&IDssTrackVersion="+idlayout;
    url=url+"&chid="+Math.random();

    ajax_Hotlaps.BlockUI(true);

    $.get
    (url, function(xmlDoc)
          {
            try
            {
                var state = xmlDoc.getElementsByTagName("status")[0].getAttribute("state");
                var message = getValueFromNode(xmlDoc, "status");

                if (state != 'ok') throw new Error("Data error:\n" + message);

                var srcArray = new Array();
                var nodes = xmlDoc.getElementsByTagName("Lenght");

                for (i=0; i<nodes.length; i++)
                {
                    srcArray[i] = Array(0, nodes[i].getAttribute("TrackLenght"),  nodes[i].childNodes[0].nodeValue /* , imported? */);
                }

                FillCombo('cb_track_len', srcArray, 0, id , '', '');


            }
            catch (e)
            {
                if (e.message!='ok') alert('Error:\n' + e.message);
            }
            finally
            {
                ajax_Hotlaps.ready_len = true;
                ajax_Hotlaps.BlockUI(false);
                return false;
            }
        }
    );
}











function ajax_Hotlaps_Results()
{
    if (!ajax_Hotlaps_CheckAndSubmit()) return;

    var cbDateStartY = document.getElementById('fDateStartY');
    var cbDateStartM = document.getElementById('fDateStartM');
    var cbDateStartD = document.getElementById('fDateStartD');
    var cbDateEndY = document.getElementById('fDateEndY');
    var cbDateEndM = document.getElementById('fDateEndM');
    var cbDateEndD = document.getElementById('fDateEndD');


    var url="ajax_data/ajax_get_table_TrackHotlap.php";
    url=url+"?rok_od="+ cbDateStartY.value;
    url=url+"&miesiac_od="+ cbDateStartM.value;
    url=url+"&dzien_od="+ cbDateStartD.value;
    url=url+"&rok_do="+ cbDateEndY.value;
    url=url+"&miesiac_do="+ cbDateEndM.value;
    url=url+"&dzien_do="+ cbDateEndD.value;

    url=url+"&IDssSim="+ $('#cb_Sim').val();
    url=url+"&IDssMod="+ $('#cb_Mod').val();
    url=url+"&IDssCarInMod="+ $('#cb_Car').val();
    url=url+"&IDssTrack="+ $('#cb_track').val();
    url=url+"&IDssTrackVersion="+ $('#cb_track_version').val();
    url=url+"&userid="+ $('#cb_user').val();
    
    url=url+"&Sectors=" + getSelectedRadio(null, 'Sectors');
    url=url+"&TrackLenght=" + $('#cb_track_len').val();

    url=url+"&chid="+Math.random();


    ajax_Hotlaps.BlockUI(true);

    $.get
    (url, function(xmlDoc)
          {
            try
            {
                $('#hotlaps_results').html(xmlDoc);
            }
            catch (e)
            {
                if (e.message!='ok') alert('Error:\n' + e.message);
            }
            finally
            {
                ajax_Hotlaps.BlockUI(false);
            }
        }
    );
}












function ajax_Hotlaps_CheckAndSubmit()
{
    if ($('#cb_track').val()==0)
    {
        alert('Nie wybrano toru');
        return false;
    }

    if ($('#cb_track_version').val()==0)
    {
        alert('Nie wybrano wersji toru');
        return false;
    }

    return true;

}
