MAX_ROLLS = 50;
MAX_STATES_IN_IMAGE= 4;
NONE = "";
var vRollsCount = 0;
var aRolls = new Array( MAX_ROLLS );
ROLLID = 0;
ROLLSERIE = 1;
ROLLLAYER = 2;
ROLLOFFSET = 3;
var vSeriesCount = 0;
var aSeries = new Array( MAX_ROLLS );
LOCKSERIE = 0;
LOCKIMG = 1;
LOCKSTATE = 2;

function ro_Change( bImgId, vMode)
{
var i, j;
for (i=0; i<vRollsCount; i++)
if (aRolls[i][ROLLID] == bImgId)
{
j = 0; while (aSeries[j][LOCKSERIE] != aRolls[i][ROLLSERIE]) j++;
if (bImgId == aSeries[j][LOCKIMG]) return;
if (aRolls[i][ROLLLAYER] != "" && document.layers)
oSource = eval('document.layers[aRolls[i][ROLLLAYER]].document.images[bImgId]');
else
oSource = eval('document.images[bImgId]');
oSource.src = aRolls[i][vMode+ROLLOFFSET].src;
return;
}
ro_Load( bImgId, MAX_STATES_IN_IMAGE, NONE, NONE );
document.images[bImgId].src = aRolls[vRollsCount-1][vMode+ROLLOFFSET].src;
}

function ro_Load( bImgId, vNbState, bRollSerie, bLayerName )
{
ro_LoadDifferentName( bImgId, bImgId, vNbState, bRollSerie, bLayerName );
}

function ro_LoadDifferentName( bImgId, bImgFileName, vNbState, bRollSerie, bLayerName )
{
var i;
var bFound = false;
if (bRollSerie == "") bRollSerie = 'DEFAULT';

for (i = 0; i < vSeriesCount; i++)
if (aSeries[i][LOCKSERIE] == bRollSerie) { bFound = true; break; }
if (!bFound)
{
aSeries[i] = new Array(3);
aSeries[i][LOCKSERIE] = bRollSerie;
aSeries[i][LOCKIMG] = NONE;
aSeries[i][LOCKSTATE] = -1;
vSeriesCount++;
}
if (bLayerName != "" && document.layers)
oSource = eval( 'document.layers[bLayerName].document.images[bImgId]' );
else
oSource = eval( 'document.images[bImgId]' );
aRolls[vRollsCount] = new Array(vNbState-1 + ROLLOFFSET);
aRolls[vRollsCount][ROLLID] = bImgId;
aRolls[vRollsCount][ROLLSERIE] = bRollSerie;
aRolls[vRollsCount][ROLLLAYER] = bLayerName;

for (i = 0; i < vNbState; i++)
{
aRolls[vRollsCount][i+ROLLOFFSET] = new Image;
aRolls[vRollsCount][i+ROLLOFFSET].src =
oSource.src.substring( 0, oSource.src.lastIndexOf("/") )
+ "/" + bImgFileName + "_" + i + ".gif";
}
if (++vRollsCount >= MAX_ROLLS) alert( "OverFlow! Augmenter MAX_ROLLS" );
}
