



var formHasBeenSubmitted = false;
var defaultPleaseWaitButtonImage = '/partners/images/brands/goldkey/buttons/button_please_wait.gif';
preloadImage(defaultPleaseWaitButtonImage);
var defaultPleaseWaitButtonText = 'Please Wait...';

// array containing all the form's input buttons (only set if onlyOneSubmit is called)
var inputElements = new Array();
// array containing the form's submit elements' original values (same length as inputElements - non-submit elements' values will be null)
var originalSubmitElementValues = new Array();

function preloadImage(url) {
    var preload = new Image();
    preload.src = url;
}

function disableSubmitElement(inputElement, index) {
    if (inputElement.type == 'image') {
        originalSubmitElementValues[index] = inputElement.src;
        inputElement.src = defaultPleaseWaitButtonImage;
        inputElement.disabled = true;
    } else if (inputElement.type == 'submit') {
        originalSubmitElementValues[index] = inputElement.value;
        inputElement.value = defaultPleaseWaitButtonText;
        inputElement.disabled = true;
    } else {
        // put in a null so that the array length will match inputElements
        originalSubmitElementValues[index] = null;
    }
}

function restoreSubmitElement(inputElement, index) {
    if (inputElement.type == 'image') {
        inputElement.src = originalSubmitElementValues[index];
        inputElement.disabled = false;
    } else if (inputElement.type == 'submit') {
        inputElement.value = originalSubmitElementValues[index];
        inputElement.disabled = false;
    }
}

function restoreSubmitElements() {
    for (var i = 0; i < inputElements.length; i++) {
        var inputElement = inputElements[i];
        if (inputElement != null) restoreSubmitElement(inputElement, i);
    }
}

function onlyOneSubmit(form) {
    // if there's a target, the form submission is opening in a new window
    // allow it to submit and don't disable the buttons
    if (form.target) return true;

    // form has already been submitted - don't submit it again
    if (formHasBeenSubmitted) return false;

    formHasBeenSubmitted = true;

    inputElements = form.getElementsByTagName('input');

    for (var i = 0; i < inputElements.length; i++) {
        var inputElement = inputElements[i];
        disableSubmitElement(inputElement, i);
    }

    window.onunload = restoreSubmitElements;

    return true;
}

