// State vars (INTERNAL USE ONLY)
var cashflash_callback_function = null;
var cashflash_callback_data = null;
var cashflash_isloaded = false;

/////////////////////////////////////////////////////////////////
// EXT. INTERFACE FUNCTION
// This is the only function you should ever have to call
/////////////////////////////////////////////////////////////////

function DoCashFlash(flash_base_url, div_name, base_value, increment_by) {
    if (cashflash_isloaded) {
        cashflash_do(base_value, increment_by);
    }
    else {
        cashflash_init(flash_base_url, div_name,
            function(data) {
                cashflash_do(data.base_value, data.increment_by);
            }, {'base_value': base_value, 'increment_by': increment_by});
    }
}

/////////////////////////////////////////////////////////////////
// INTERNAL USE ONLY
/////////////////////////////////////////////////////////////////

function cashflash_init(flash_base_url, div_name, callback_function, callback_data) {
    var flashvars = {};
    var params = {
        allowScriptAccess: 'always',
        allowFullScreen: 'false',
        wmode: 'transparent'     
    };
    var attributes = {
        id: "CashDisplay"
    };
    if (typeof(callback_function) === 'function')
        cashflash_callback_function = callback_function;    // CashDisplay.swf calls flashLoaded(), which in turn calls this user-provided fn
    if (typeof(callback_data) !== 'undefined')
        cashflash_callback_data = callback_data;
    if (swfobject.hasFlashPlayerVersion("9.0.115")) {
        swfobject.embedSWF(flash_base_url + "cashflash/CashDisplay.swf", div_name, "260", "58", "9.0.115", "expressInstall.swf", flashvars, params, attributes);
    }
}

// CashDisplay.swf calls this function when it's finished loading.
function flashLoaded() {
    cashflash_isloaded = true;
    if (typeof(cashflash_callback_function) === 'function')
        cashflash_callback_function(cashflash_callback_data);
}

// This should ONLY be called once the flash component is loaded.
function cashflash_do(base_value, increment_by) {
    if (! cashflash_isloaded)
        throw new Error("CashDisplay.swf is not yet loaded; can't call cashflash_do()");
    swfobject.getObjectById('CashDisplay').showCash(base_value, increment_by);
}
