//

// constants
var lookup_url = 'x-lookup.cgi';

// parameters that the calling page should overwrite
var param_dict_ids = new Array();
var param_dict_links = new Array();
var param_word = '';
var param_navbuttons = '';

// internal variables
var next_i = 0;
var allHidden = true;

function loadMeaningByDictIndex(next_i) {
    var dict_id = param_dict_ids[next_i];
    $.post(lookup_url, "word="+param_word+"&dict_id="+dict_id,
	function(xml) {
	    var div_id = param_div_ids[next_i];
	    $(div_id + ' div.meaning').html(xml);
	    if (! allHidden) showMeaningByDictIndex(next_i);
	    loadNextMeaning(++next_i);
	}
    );
    // meanings[dict_id] = i18n_loaderror;
}

function loadNextMeaning(next_i) {
    if (next_i < param_dict_ids.length) {
	loadMeaningByDictIndex(next_i);
    }
}

function loadAllMeanings() {
    if (param_dict_ids.length > 0) {
	$('#navbuttons').hide();
	$('#navbuttons').html(param_navbuttons);

	for (var i = 0; i < param_dict_ids.length; ++i) {
	    var div_id = param_div_ids[i];
	    $(div_id).hide();
	    $(div_id).html('<table class="hit"><tr><td><div class="link">' + param_dict_links[i] + '</div><div class="meaning">' + i18n_loading + '</div></td></tr></table>');
	}
    }
    loadNextMeaning(0);
}

function showMeaningByDictIndex(i) {
    var div_id = param_div_ids[i];
    $(div_id).slideDown();
}

function showAllMeanings() {
    for (var i = 0; i < param_dict_ids.length; ++i) {
	showMeaningByDictIndex(i);
    }
    allHidden = false;
    if (param_dict_ids.length > 0) $('#navbuttons').fadeIn();
}

function hideAllMeanings() {
    for (var i = 0; i < param_dict_ids.length; ++i) {
	var div_id = param_div_ids[i];
	$(div_id).fadeOut();
    }
    allHidden = true;
    if (param_dict_ids.length > 0) $('#navbuttons').fadeOut();
}

$(document).ready(function() {
    loadAllMeanings();
    $('#word').click(function(e) {
        e.preventDefault();
	allHidden ? showAllMeanings() : hideAllMeanings();
    })
});
