/* -------------------------------- ** FUNCTION: ** fnScrambleList ** DESCRIPTION: ** This function takes a string list and scrambles ** the order of the elements, leaving the elements ** otherwise unchanged. ** DEPENDENCIES: ** fnRandomInteger ** fnLeftShiftArray ** DATE: ** SEE ALSO: ** fnScrambleArray ** -------------------------------- */ function fnScrambleList(sList, sDivisor) { if (sDivisor == null) { sDivisor = "\n"; } var sReturn = new String(""); var aaReturn = new Array(); var aaMap = new Array(); var aaArray = sList.split(sDivisor); var iRandom = 0; for (var ii = 0; ii < aaArray.length; ii++) { aaMap[ii] = ii; } for (var ii = 0; ii < aaArray.length; ii++) { iRandom = fnRandomInteger(aaArray.length - ii - 1, 0); aaReturn[aaMap[iRandom]] = aaArray[ii]; aaMap = fnLeftShiftArray(aaMap, iRandom); } //-- for for (var ii = 0; ii < aaReturn.length; ii++) { sReturn += aaReturn[ii] + sDivisor; } //-- for return sReturn; } //-- fnScrambleList