






function ResourceManager() {

    var resourceManager = this;

    this.preloadedImages = new Array;


    window.preloadImage = ResourceManager_PreloadImage;
    window.getImage     = ResourceManager_GetImage;
    window.getImageSrc  = ResourceManager_GetImageSrc;
    window.swapImageSrc = ResourceManager_SwapImageSrc;


    return this;
}




function ResourceManager_PreloadImage(url, width, height) {
    if (!window.resourceManager.preloadedImages) window.resourceManager.preloadedImages = new Array;
//    if (typeof(writeDebug) == 'function') writeDebug('ResourceManager_PreloadImage(): checking for preloaded '+url);
    if (!window.resourceManager.preloadedImages[url]) {
//        if (typeof(writeDebug) == 'function') { writeDebug('ResourceManager_PreloadImage(): preloading '+url+', w: '+width+', h: '+height); }
        var image = new Image(width, height);
        image.src = url;
        window.resourceManager.preloadedImages[url] = image;
    }// else if (typeof(writeDebug) == 'function') writeDebug('ResourceManager_PreloadImage(): image already preloaded: '+url);
    return window.resourceManager.preloadedImages[url];
}

function ResourceManager_GetImage(url, width, height) {
    return window.preloadImage(url, width, height);
}

function ResourceManager_GetImageSrc(url) {
    return window.getImage(url).src;
}

function ResourceManager_SwapImageSrc(imgElem, url) {
    if (imgElem && imgElem.nodeType == 'IMG') {
        imgElem.oldSrc = imgElem.src;
        imgElem.src    = window.getImageSrc(url);
    }
}




window.resourceManager = new ResourceManager();