var whitelistCache = new Object();

function changeSelection(selectSource, selectToLimit, id){
    if(!id) {
        $('#'+selectToLimit+' > *:gt(0)')
            .removeAttr('title')
            .css('color', '#000');
        return;
    }
    if(!whitelistCache[selectSource+id]){
        $.getJSON('json/reisefinder.php?'+selectSource+'='+id,
            function(data){
                whitelistCache[selectSource+id] = data;
                toggleOptions(selectToLimit, whitelistCache[selectSource+id]);
            }
        );
    }else{
        toggleOptions(selectToLimit, whitelistCache[selectSource+id]);
    }

}
function toggleOptions(id, whitelist){
    $('#'+id+' > *:gt(0)')
        .attr('title', 'Keine Reisen zur Auswahl')
        .css('color', '#999');
    $.each(whitelist, function(i,item){
        $('#'+id+' > [value='+item+']')
            .removeAttr('title')
            .css('color', '#000');
    });
}

function initReisefinder(){
    $('#klid').change(function(){
        changeSelection('klid', 'hkat', $("#klid option:selected").attr('value'));
    });
    $('#hkat').change(function(){
        changeSelection('hkat', 'klid', $("#hkat option:selected").attr('value'));
    });
    $('#kontinent').change(function(){
        changeSelection('klid', 'hkat', $("#klid option:selected").attr('value'));
        changeSelection('hkat', 'klid', $("#hkat option:selected").attr('value'));
    }).change();
}


$(document).ready(function() {
    initReisefinder();
});
