Horizontal XML Menu - vary item width help

Howdy everybody.

I was workin away on this file and wanted to display the main menu items horizontally using the XML menu. I got it to work but wanted to take it a step further and display the main menu items according to a variable width based on the character length from the xml file. I managed to get an idea (I think) of how this might be done but I think i need a little help finishing it up. Here is the AS for the menu:
[AS]
// generates a list of menu items (effectively one menu)
// given the inputted parameters. This makes the main menu
// as well as any of the submenus
GenerateMenu = function(container, name, x, y, depth, node_xml) {
// variable declarations

var curr_node;
var curr_item;
var curr_menu = container.createEmptyMovieClip(name, depth);
// for all items or XML nodes (items and menus)
// within this node_xml passed for this menu
for (var i=0; i<node_xml.childNodes.length; i++) {
// movieclip for each menu item
curr_item = curr_menu.attachMovie(“menuitem”,“item”+i+"_mc", i);

if (name == “mainmenu_mc”) {
//curr_item.name._width = i+(curr_item.name.text.length+50);
curr_item._x = x + i*(curr_item._width+1);
curr_item._y = y;
} else {
curr_item._x = x;

}
curr_item.trackAsMenu = true;

// item properties assigned from XML
curr_node = node_xml.childNodes*;
curr_item.action = curr_node.attributes.action;
curr_item.variables = curr_node.attributes.variables;
curr_item.name.text = curr_node.attributes.name;

// item submenu behavior for rollover event
if (node_xml.childNodes*.nodeName == “menu”){
// open a submenu
curr_item.node_xml = curr_node;
curr_item.onRollOver = curr_item.onDragOver = function(){
var x = this._x ;
var y = this._y + this._height+2;
GenerateMenu(curr_menu, “submenu_mc”, x, y, 1110, this.node_xml);

};
}else{ // nodeName == “item”
//curr_item.arrow._visible = false;
// close existing submenu
curr_item.onRollOver = curr_item.onDragOver = function(){
curr_menu.submenu_mc.removeMovieClip();

};
}

curr_item.onRollOut = curr_item.onDragOut = function(){

};

// any item, menu opening or not can have actions
curr_item.onRelease = function(){
Actionsthis.action;

CloseSubmenus();

};
} // end for loop
};
// create the main menu, this will be constantly visible
CreateMainMenu = function(x, y, depth, menu_xml){
// generate a menu list
GenerateMenu(this, “mainmenu_mc”, x, y, depth, menu_xml.firstChild);

// close only submenus if visible durring a mouseup
// this main menu (mainmenu_mc) will remain
mainmenu_mc.onMouseUp = function(){
if (mainmenu_mc.submenu_mc && !mainmenu_mc.hitTest(_root._xmouse, _root._ymouse, true)){
CloseSubmenus();
}
};
};

// closes all submenus by removing the submenu_mc
// in the main menu (if it exists)
CloseSubmenus = function(){
mainmenu_mc.submenu_mc.removeMovieClip();
};
// This actions object handles methods for actions
// defined by the XML called when a menu item is pressed
Actions = Object();
Actions.loadExternal = function(externalswf){
container.loadMovie(externalswf);
};
Actions.gotoURL = function(urlVar){
getURL(urlVar, “_blank”);
};
Actions.message = function(msg){
message_txt.text = msg;
};
Actions.newMenu = function(menuxml){
menu_xml.load(menuxml);

};
// load XML, when done, run CreateMainMenu to interpret it
menu_xml = new XML();
menu_xml.ignoreWhite = true;
menu_xml.onLoad = function(ok){
// create main menu after successful loading of XML
if (ok){
CreateMainMenu(88, 353, 0, this);
unloadMovie(“container”);
}else{
message_txt.text = “error: XML not successfully loaded”;
}
};
// load first XML menu
menu_xml.load(“menu1.xml”);
[/AS]

The notable part here maybe this commented piece which is my “idea” as to how to get this to work (see commented line)
[AS]
if (name == “mainmenu_mc”) {
//curr_item.name._width = i+(curr_item.name.text.length+50);
curr_item._x = x + i*(curr_item._width+1);
curr_item._y = y;
} else {
curr_item._x = x;

}
[/AS]

If anyone needs anymore explanation as to what I am trying to achieve just let me know.

Thanks for taking up this challenge.