// buttons.jsp

var BASE = 0;
var OVER = 1;
var DOWN = 2;
var UP   = 3;
var OUT  = 4;

var buttonImageType = ".gif";

function setButtonState(state, button) {
    if (isButtonDisabled(button)) {
        return;
    }

    var buttonDirectory = getButtonDirectory(button);

    switch (state) {
        case BASE: // base image
            button.src = 
                buttonDirectory + button.name + "_base" + buttonImageType;
            break;
        case OVER: // mouse over
            button.src = 
                buttonDirectory + button.name + "_over" + buttonImageType;
            break;
        case DOWN: // mouse down
            button.src = 
                buttonDirectory + button.name + "_down" + buttonImageType;
            break;
        case UP: // mouse up
            button.src = 
                buttonDirectory + button.name + "_over" + buttonImageType;
            break;
        case OUT: // mouse out
            button.src = 
                buttonDirectory + button.name + "_base" + buttonImageType;
        break;
    }
};

function buttonOver(button) {
    setButtonState(OVER, button);
};

function buttonDown(button) {
    setButtonState(DOWN, button);
};

function buttonUp(button) {
    setButtonState(UP, button);
};

function buttonOut(button) {
    setButtonState(OUT, button);
};

function disableButton(button) {
    button.src = getButtonDirectory(button) + button.name + "_disabled" + buttonImageType;
};

function enableButton(button) {
    button.src = getButtonDirectory(button) + button.name + "_base" + buttonImageType;
};

function isButtonDisabled(button) {
    return button.src.substring(button.src.lastIndexOf('/') + 1) 
        == button.name + "_disabled" + buttonImageType; 
};

function setButtonImageType(imageType) {
    buttonImageType = "." + imageType;
};

function cacheButtons() {
    var img = new Image();
    var buttonName;
    var buttonDirectory;
    
    for (i = 0; i < document.images.length; i++) {
        if (document.images[i].className == "smart_button") {
            buttonName = document.images[i].name;
            buttonDirectory = getButtonDirectory(document.images[i]);
            img.src = buttonDirectory + buttonName + "_base" + buttonImageType;
            img.src = buttonDirectory + buttonName + "_over" + buttonImageType;
            img.src = buttonDirectory + buttonName + "_down" + buttonImageType;
/*
            Turning off loading of disabled button to save bandwidth, current
            applications don't use it.
            img.src = 
                buttonDirectory + buttonName + "_disabled" + buttonImageType;
*/
        }
    }
};

function getButtonDirectory(button) {
    var lastIndex = button.src.lastIndexOf("/");
    return button.src.substring(0, button.src.lastIndexOf("/") + 1);
};

function stopDoubleClick(button) {
    if ((button.clicked != null) && button.clicked) {
        return false;
    } else {
        button.clicked = true;
        return true;
    }
};

