/*
 * fCMS Content Management System  - (http://www.fidion.de)
 * fidion GmbH, Würzburg
 */

/**
 * Ajax Funktionalität der Sporttabellensuche 
 *
 * @author Andreas Schwinger <schwinger@fidion.de>
 */

(function () {

function sporttab_update_vereine() {

    $('sp_ajaxloader_verein').show();
    var ortsteil = $F('sporttabellensuche_dossiers');

    var param = { 
        search_ortsteil:  ortsteil,
        search_mode:      'vereine'
    }


    new Ajax.Request('/_fWS/json/sporttabellen/1/getSearchBox',
    {
        parameters: param,
        onSuccess: updateReturn_vereine
    });


}


function sporttab_update_sportarten() {

    $('sp_ajaxloader_sportart').show();

    var verein = $F('sporttabellensuche_vereine');

    var param = {
        search_verein: verein,
        search_mode: 'sportarten'
    }

    new Ajax.Request('/_fWS/json/sporttabellen/1/getSearchBox',
    {
        parameters: param,
        onSuccess: updateReturn_sportarten
    });


}



function sporttab_update_saisons() {

    $('sp_ajaxloader_saison').show();

    var verein = $F('sporttabellensuche_vereine');
    var sportart = $F('sporttabellensuche_sportart');

    var param = {
        search_verein: verein,
        search_sportart: sportart,
        search_mode: 'saisons'
    }

    new Ajax.Request('/_fWS/json/sporttabellen/1/getSearchBox',
    {
        parameters: param,
        onSuccess: updateReturn_saisons
    });


}



function sporttab_update_ligen() {

    $('sp_ajaxloader_liga').show();

    var verein = $F('sporttabellensuche_vereine');
    var sportart = $F('sporttabellensuche_sportart');
    var saison = $F('sporttabellensuche_saison');


    var param = {
        search_verein: verein,
        search_sportart: sportart,
        search_saison: saison,
        search_mode: 'ligen'
    }

    new Ajax.Request('/_fWS/json/sporttabellen/1/getSearchBox',
    {
        parameters: param,
        onSuccess: updateReturn_ligen
    });


}







//-------------------------------- returner
function updateReturn_vereine(xhr, json) {

    $('sporttabellensuche_vereine').innerHTML = '';
    var i = 0;
    xhr.responseJSON.data.each(function (c) {
        i++;
        var node = Builder.node(c.type, c.attribs, c.content);
        $('sporttabellensuche_vereine').appendChild(node);

        //selected hinzufügen
        if (c.attribs.selected === 'selected') {
                selected = $('sporttabellensuche_vereine').lastChild;
        }

    });
    if (selected) {
        selected.selected = true;
    }

}

function updateReturn_sportarten(xhr, json) {

    if ($('sporttabellensuche_vereine').value == '') {
        //wenn verein und sportart gewählt wurde und dann verein wieder gelöscht
        //wird
       
        $('sporttabellensuche_liga').innerHTML = '';
         $('sporttabellensuche_saison').innerHTML = '';

       $('sporttabellensuche_sportart').innerHTML = '';
        var node1 = Builder.node('option', { value: '' }, '-- bitte erst Verein wählen --');
        var node2 = Builder.node('option', { value: '' }, '-- bitte erst Verein wählen --');
        var node3 = Builder.node('option', { value: '' }, '-- bitte erst Verein wählen --');

        $('sporttabellensuche_saison').appendChild(node1);
        $('sporttabellensuche_liga').appendChild(node2);
        $('sporttabellensuche_sportart').appendChild(node3);
        $('sp_ajaxloader_sportart').hide();



    } else {

        $('sporttabellensuche_sportart').innerHTML = '';
        xhr.responseJSON.data.each(function (c) {
                var node = Builder.node(c.type, c.attribs, c.content);
                $('sporttabellensuche_sportart').appendChild(node);

                //selected hinzufügen
                if (c.attribs.selected === 'selected') {
                selected = $('sporttabellensuche_sportart').lastChild;
                }

                });
        if (selected) {
            selected.selected = true;
        }

        $('sporttabellensuche_saison').innerHTML = '';
        $('sporttabellensuche_liga').innerHTML = '';

        var node1 = Builder.node('option', { value: '' }, '-- bitte erst Sportart wählen --');
        var node2 = Builder.node('option', { value: '' }, '-- bitte erst Sportart wählen --');

        $('sporttabellensuche_saison').appendChild(node1);
        $('sporttabellensuche_liga').appendChild(node2);

        $('sp_ajaxloader_sportart').hide();
    }
}




function updateReturn_saisons(xhr, json) {


    if ($('sporttabellensuche_sportart').value == '') {
        //wenn verein und sportart gewählt wurde und dann verein wieder gelöscht
        //wird
        $('sporttabellensuche_saison').innerHTML = '';
         $('sporttabellensuche_liga').innerHTML = '';

        var node1 = Builder.node('option', { value: '' }, '-- bitte erst Sportart wählen --');
        var node2 = Builder.node('option', { value: '' }, '-- bitte erst Sportart wählen --');

        $('sporttabellensuche_saison').appendChild(node1);
        $('sporttabellensuche_liga').appendChild(node2);
        $('sp_ajaxloader_saison').hide();



    } else {

        $('sporttabellensuche_saison').innerHTML = '';

        xhr.responseJSON.data.each(function (c) {
                var node = Builder.node(c.type, c.attribs, c.content);
                $('sporttabellensuche_saison').appendChild(node);

                //selected hinzufügen
                if (c.attribs.selected === 'selected') {
                selected = $('sporttabellensuche_saison').lastChild;
                }

                });
        if (selected) {
            selected.selected = true;
        }

        $('sporttabellensuche_liga').innerHTML = '';

        var node1 = Builder.node('option', { value: '' }, '-- bitte wählen --');

        $('sporttabellensuche_liga').appendChild(node1);


        $('sp_ajaxloader_saison').hide(); 
        sporttab_update_ligen();
    }
}


function updateReturn_ligen(xhr, json) {
    var selected;

    $('sporttabellensuche_liga').innerHTML = '';

    xhr.responseJSON.data.each(function (c) {
        var node = Builder.node(c.type, c.attribs, c.content);
        $('sporttabellensuche_liga').appendChild(node);

        //selected hinzufügen
        if (c.attribs.selected === 'selected') {
            selected = $('sporttabellensuche_liga').lastChild;
        }

    });
    if (selected) {
        selected.selected = true;
    }
    $('sp_ajaxloader_liga').hide();

}



Event.observe(window,'load',function() {
        //  Event.observe($('sporttabellensuche_gemeinde'),'change',sporttab_update_vereine);
        if ($('sporttabellensuche_dossiers')) {
            Event.observe($('sporttabellensuche_dossiers'),'change',sporttab_update_vereine);
        }
        Event.observe($('sporttabellensuche_vereine'),'change',sporttab_update_sportarten);
        Event.observe($('sporttabellensuche_sportart'),'change',sporttab_update_saisons);
        Event.observe($('sporttabellensuche_saison'),'change',sporttab_update_ligen);
    });

})();

