function newImage(imageInfo, fieldName){
    var n = DIV({'class': 'photoAlbumEntry'},
        SPAN({'class':'photoAlbumEntryWrapper'},
            IMG({'src':imageInfo.thumb,'align':'center'},null)),
        SPAN({'class':'photoAlbumEntryTitle'}, imageInfo.title)
    );
    n.onclick = function(){
        selectImage(imageInfo.id, fieldName);
    };
    return n;
}

function searchForImages(fieldName, url, category){
    var query = queryString(['category'], [category]);
    var d = loadJSONDoc(url+'/jsonGetImages?'+query);
    var gotMetadata = function (meta) {
        var images = new Array();
        for(i=0; i<meta.images.length; i++){
            images[i] = newImage(meta.images[i], fieldName);
        }        
        replaceChildNodes(fieldName+'_images', images);
    };

    var metadataFetchFailed = function (err) {
      alert("The images could not be fetched :-(");
    };
    d.addCallbacks(gotMetadata, metadataFetchFailed);
}

function selectImage(imageId, fieldName){
    var textField = getElement(fieldName+'_at_field');
    textField.value = imageId;
    hideElement(fieldName+'_browser');
}


function getValueFromSelect(fieldId){
    var field =  getElement(fieldId);
    return field.options[field.selectedIndex].value;
}

function abr_categoryMenuChanged(fieldName, url){
    var category = getValueFromSelect(fieldName+'_category');
    searchForImages(fieldName, url, category);
}

