Menu scrolling

Hi,

I have difficulty in understanding the following codes. Can anyone out there explain what the code is doing.

// FIX original Button:
butn:text = /:Menu0;
while (Number(n)<Number((/:tmi2)-1)) {
n = Number(n)+1;
dup = “butn” add n;
duplicateMovieClip(“butn”, dup, n);
setProperty(dup, _x, Number(getProperty(dup, _x))+Number(n
getProperty(dup, _width)));
setProperty(dup add “/b”, _x, getProperty (dup add “/b”, _x) + (1));
set(dup add “:n”, n);
// assign button name from variables
if (Number(n)<Number(…:tmi)) {
set(dup add “:text”, eval("/:Menu" add n));
} else {
set(dup add “:text”, eval("/:Menu" add (n-/:tmi)));
}
}

// -------------------------------------------
// MAKE THE DRAG WORK
// -------------------------------------------
drag = “/dragControl”;
/:w = getProperty("/nav", _width);
/:xPos = getProperty(drag, _x);
/:yPos = getProperty(drag, _y);
// next 2 lines center the menu drag to the screen
/:yPos = /:yPos-200;
/:xPos = /:xPos-350;
// SET DRAG SPEED (inverse)
speed = 45;
setProperty("/nav", _x, getProperty("/nav", _x)-(/:xPos/speed));
if (Number(getProperty("/nav", _x))<Number(-(/:w/2))) {
setProperty("/nav", _x, 0.01);
} else if (Number(getProperty("/nav", _x))>0) {
setProperty("/nav", _x, -/:w/2);
}

// Old Fashioned Bubble Sort
c = /:ti;
while (Number©>1) {
c = c-1;
d = 0;
while (Number(d)<Number©) {
d = Number(d)+1;
e = Number(d)+1;
if (eval("/:Item" add d) gt eval("/:Item" add e)) {
temp = eval("/:Item" add d);
set("/:Item" add d, eval("/:Item" add e));
set("/:Item" add e, eval(temp));
f = 0;
while (Number(f)<Number(/:ti)) {
f = Number(f)+1;
trace(“Item” add f add “=” add eval("/:Item" add f));
}
}
}
}
attached is the fla file.

Thanks,

Meng