Try this one:
http://abeautifulsite.net/blog/2008/09/jquery-context-menu-plugin/
It's easy to implement and to maintain.
EDIT:
You can access your menu dynamically by giving the UL an ID:
<ul id="contextmenuid">
/*Empty menu to be created dynamically*/
</ul>
and then using javascript you can access this UL and create/modify the needed LI:
var contextMenu = document.getElementById(contextmenuid);
//This part would be dynamic loop to add menu items
var contextMenuItem = document.createElement('li');
var contextMenuItemLink = document.createElement('a');
contextMenuItem.setAttribute('class', 'imageclass'); //imageclass will be used to show the menu item image
contextMenuItemLink.setAttribute('href', '#doaction'); //#doaction is the item ID, it would be number
contextMenuItemLink.setAttribute('title', 'Tooltip Info'); //Tooltip
contextMenuItemLink.innerHTML = 'Dynamic Item, click me...';//Menu item text
contextMenuItem.appendChild(contextMenuItemLink);
//Add the new menu item to the context menu
contextMenu.appendChild(contextMenuItem);
the same would be used to the submenus:
<ul id="contextmenuid">
<li><a href="http://msn.com">MSN</a>
<ul id="contextsubmenuid">
/*to be created dynamically*/
</ul>
</li>
</ul>
Regarding the style I guess that you can play with the CSS to have what you need.
Hope this would help.