var areaSelect = null;
var buildingSelect = null;
var countrySelect = null;
var systemSelect = null;

var ajax_link = null;
var language = null;
var sysfolder = null;
var loadingImage = null;
var options = null;
var tempOptions = null;

Event.observe(window, 'load', function() {
  updateList(1, 1);
});

function init(link, lang) {
    ajax_link = link;
    language = lang;
    updateList('1', '1');
}

function setSysfolder(value) {
    sysfolder = value;
}

function setLoadingImage (image) {
    loadingImage = '<div class="loading">' + image + '</div>';
}

function updateSelectFields() {
    
    // options[0] will probably be bullshit
    $('area').update(options[1]);
    $('building').update(options[2]);
    $('country').update(options[3]);
    $('system').update(options[4]);
}

function updateList(page, initial) {
    
    if (initial == 1) {
        new Ajax.Updater ('references_list_container', ajax_link+'&call=updatelist&L='+language, {
	        parameters: {
	            'area': '0',
	            'building': '0',
	            'country': '0',
	            'system': '0',
	            'language': language,
	            'page': '1',
	            'sysfolder': sysfolder
	        },
	        method: 'get'
	    });
    } else {
        
        // set the loading image
        $('references_list_container').update(loadingImage);
    
        new Ajax.Updater ('references_list_container', ajax_link+'&call=updatelist&L='+language, {
	        parameters: {
	            'area': ($('area').value),
	            'building': ($('building').value),
	            'country': ($('country').value),
	            'system': ($('system').value),
	            'language': language,
	            'page': page,
	            'sysfolder': sysfolder
	        },
	        method: 'get'
        });
    }
}

function updateImage(direction, refid) {
    
    // build the request
    new Ajax.Request( ajax_link+'&call=updateimage', {
        parameters: {
            'direction': direction,
            'current': $('image').readAttribute('title'),
            'reference': refid
        },
        method: 'get',
        onSuccess: function(transport) {
            tempOptions = transport.responseText.split("###");
            // update the div with the new image tag
            $('references_detail_images_image').update(tempOptions[1]);
        }
    });
}

function updateFilter() {
    // set the loading image
    $('references_list_container').update(loadingImage);
            
    // build the request
    new Ajax.Request( ajax_link+'&call=filter&L='+language, {
        parameters: {
            'area': ($('area').value),
            'building': ($('building').value),
            'country': ($('country').value),
            'system': ($('system').value),
            'language': language,
            'sysfolder': sysfolder
        },
        method: 'get',
        onSuccess: function(transport) {
            areaSelect = $('area');
            buildingSelect = $('building');
            countrySelect = $('country');
            systemSelect = $('system');
            options = transport.responseText.split("###");
            
            // update the select boxes
            updateSelectFields();
            
            // update the list
            updateList('1', '0');
        }
    });
}