function AccordianMenuManager(span) {
  var mySelf = this

  // Superclass Constructor
  top.glbDict.makeWidgetManager(this,span)
  
  mySelf.applyResize = function() {
    mySelf.cntDiv.style.width = mySelf.posDiv.style.width
    mySelf.cntDiv.style.height = mySelf.posDiv.style.height
    var cname = '.accmenu_' + mySelf.getID()
    var w = mySelf.posDiv.style.width
    var h = mySelf.posDiv.style.height
    jQuery(cname).css({ 'width' : w })
    var xname = '.accmenu_' + mySelf.getID() + ' div.silverheader'
    var tot = 0
    jQuery(xname).each( 
    		function(i) {
    			tot += parseInt( $(this).get(0).offsetHeight )
    		}
    )
    /* Manual fudge to get bottom alignment on IE & firefox */
    var fudge = 10
    if (document.all && !window.opera) {
    	fudge = 0
    }
    
    var xname = '.accmenu_' + mySelf.getID() + ' div.submenu'
    jQuery(xname).css({'height':(parseInt(h)-tot-fudge)+'px'})
  }

  mySelf.initialize = function() {
	mySelf.posDiv = mySelf.span.getElementsByTagName('div')[0]
    mySelf.cntDiv = mySelf.span.ownerDocument.getElementById('cntDiv_' + mySelf.getID())
    // Retrieve the initial data from the server side
    var menudata = decodeURIComponent( top.glbDict.uwWidgetFactory.getInitDataForWidget( mySelf.getID() )['menudata'] )
    top.glbDict.innerHTML(mySelf.cntDiv,menudata)
    mySelf.accinit()
	
  }
  
  mySelf.postMenuEvent = function(id) {
    top.glbDict.queueServerEvent(mySelf.span,'header_click', false , id )
  }
  mySelf.postMenuContentEvent = function(id,content) {
    top.glbDict.queueServerEvent(mySelf.span,'content_click', false , [id,content] )
  }
  
  mySelf.replaceContents = function(stuff) {
    top.glbDict.innerHTML(mySelf.cntDiv,decodeURIComponent(stuff))
    mySelf.accinit()
    mySelf.applyResize()
  }
  
  mySelf.accinit = function() {
    ddaccordion.init({
        headerclass: "silverheader", //Shared CSS class name of headers group
        contentclass: "submenu", //Shared CSS class name of contents group
        revealtype: "mouseover", //Reveal content when user clicks or onmouseover the header? Valid value: "click" or "mouseover
        mouseoverdelay: 200, //if revealtype="mouseover", set delay in milliseconds before header expands onMouseover
        collapseprev: true, //Collapse previous content (so only one open at any time)? true/false
        defaultexpanded: [0], //index of content(s) open by default [index1, index2, etc] [] denotes no content
        onemustopen: true, //Specify whether at least one header should be open always (so never all headers closed)
        animatedefault: false, //Should contents open by default be animated into view?
        persiststate: true, //persist state of opened contents within browser session?
        toggleclass: ["", "selected"], //Two CSS classes to be applied to the header when it's collapsed and expanded, respectively ["class1", "class2"]
        togglehtml: ["", "", ""], //Additional HTML added to the header when it's collapsed and expanded, respectively  ["position", "html1", "html2"] (see docs)
        animatespeed: "fast", //speed of animation: integer in milliseconds (ie: 200), or keywords "fast", "normal", or "slow"
        oninit:function(headers, expandedindices){ //custom code to run when headers have initalized
            //do nothing
        },
        onopenclose:function(header, index, state, isuseractivated){ //custom code to run whenever a header is opened or closed
            //do nothing
        }
    })
  }

  mySelf.initialize()

  return mySelf
}

top.glbDict.uwWidgetFactory.registerWidgetClass('AccordianMenu',AccordianMenuManager)
