Problem with parentClip(created with a loop) on nested clip

I everyone.
i want to duplicate a menu with it’s sub menu, everything is ok BUT… when i clic on subMenu item i want to trac teh parent menu but it always give the las t parent instance created …if someone knows the issue and may explain me it would be very helpfull. Here’s my code, you just need to have a mc in your library with menuItem link as actionScript; it should also contain a dynamic textField named menuLabel.

var floor:Number=0;
var xThemesGeneraux:Number=0;
var xSousThemes:Number=0;
var menuItem;
var menuPiste;
const ITEM_HEIGHT:Number=80;
var menuGeneralArray= new Array();

function init():void {
    for (var countPiste= 1; countPiste<=3; countPiste++) {
        menuPiste=new Sprite();
        menuPiste.name=countPiste;
        menuPiste.y = (floor + ITEM_HEIGHT*(countPiste));
        addChild(menuPiste);
        trace("nom des pistes ="+menuPiste.name);
        createMenus();
    }
}
function createMenus():void {
    xThemesGeneraux=0;
    for (var i:int = 0; i < 5; i++) {
        menuItem = new MenuItem();
        menuItem.menuLabel.text="Menu"+i;
        menuItem.mouseChildren=false;
        menuItem.buttonMode=true;
        menuItem.name=i.toString();
        menuItem.x= (xThemesGeneraux*80);
        //menuItem.y=YMenuPos*10;
        menuItem.addEventListener(MouseEvent.CLICK, createSubMenu);
        xThemesGeneraux++;
        menuGeneralArray.push(menuItem.name);
        menuPiste.addChild(menuItem);
    }
}
function createSubMenu(e:Event):void {

    var target:Sprite=e.target as Sprite;
    trace("menuGeneralArray ="+menuGeneralArray[Number(Sprite(target).name)]);
    trace("clip parent ="+Sprite(target.parent).name);
    xSousThemes=0;
    var nbRandom =Math.round(Math.random()*10)+1;
    for (var i:int = 0; i < nbRandom; i++) {
        menuItem = new MenuItem();
        menuItem.menuLabel.text="sousMenu"+i;
        menuItem.mouseChildren=false;
        menuItem.buttonMode=true;
        menuItem.name=i.toString();
        menuItem.x= (xSousThemes*80);
        menuItem.y=Sprite(target.parent).y-220;
        menuItem.addEventListener(MouseEvent.CLICK, clickSerie);
        xSousThemes++;
        menuPiste.addChild(menuItem);
        //trace("subclip parent ="+Sprite(menuItem.parent).name);
    }
}
function clickSerie(e:Event):void {
    trace("bt"+e.target.name);
    var mTarget=Number(e.target.name);
    trace("MC :"+(mTarget));
    var targetSubClip:Sprite=e.target as Sprite;
    trace("clip parent ="+Sprite(targetSubClip.parent).name);
    //var currentName:String=e.currentTarget.parent.name;
    //trace(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> currentName ="+currentName);
    //for (var i=0; i<menuGeneralArray.numChildren-1; i++) {
    //var mc:Sprite=Sprite(menuGeneralArray.getChildAt(i));
    //trace("+++++++++mc ="+mc);
    ////mc.doStuff(); 
    //}
    //for (var i=0; i<targetSubClip.parent.numChildren-1; i++) {
//        var mc:Sprite=menuPiste.getChildAt(i);
//        //mc.doStuff();
//        trace("+++++++++mc ="+mc);
//    }
var thisParent:Sprite = Sprite(e.target.parent);
trace(">>>>>>>>>>>>>> thisParent ="+thisParent.name)

}
init();