 var nsObj = dojo.ns.get(ns); if(!nsObj){  dojo.ns.register(ns, ns + '.widget'); nsObj = dojo.ns.get(ns); } 
 impl = findImplementation(lowerCaseWidgetName, nsObj.module); if(impl){return(imps[lowerCaseWidgetName] = impl)}; 
  this.getImplementationName = function(widgetName, ns){    /*     * Locate an implementation (constructor) for 'widgetName' in namespace 'ns'     * widgetNames are case INSENSITIVE     *     * 1. Return value from implementation cache, if available, for quick turnaround.     * 2. Locate a namespace registration for 'ns'     * 3. If no namespace found, register the conventional one (ns.widget)     * 4. Allow the namespace resolver (if any) to load a module for this widget.     * 5. Permute the widget name and capable rendering prefixes to locate, cache, and return     *    an appropriate widget implementation.     * 6. If no implementation is found, attempt to load the namespace manifest,     *    and then look again for an implementation to cache and return.     * 7. Use the deprecated widgetPackages registration system to attempt to locate the widget     * 8. Fail     */    var lowerCaseWidgetName = widgetName.toLowerCase();    // default to dojo namespace    ns=ns||"dojo";    // use cache if available    var imps = knownWidgetImplementations[ns] || (knownWidgetImplementations[ns]={});    //if(!knownWidgetImplementations[ns]){knownWidgetImplementations[ns]={};}    var impl = imps[lowerCaseWidgetName];    if(impl){      return impl;    }    // (one time) store a list of the render prefixes we are capable of rendering    if(!renderPrefixCache.length){      buildPrefixCache();    }    // lookup namespace    var nsObj = dojo.ns.get(ns);    if(!nsObj){      // default to <ns>.widget by convention      dojo.ns.register(ns, ns + '.widget');      nsObj = dojo.ns.get(ns);    }    // allow the namespace to resolve the widget module    if(nsObj){nsObj.resolve(widgetName);}    // locate a widget implementation in the registered module for our current rendering environment    impl = findImplementation(lowerCaseWidgetName, nsObj.module);    if(impl){return(imps[lowerCaseWidgetName] = impl)};    // try to load a manifest to resolve this implemenation    nsObj = dojo.ns.require(ns);    if((nsObj)&&(nsObj.resolver)){      nsObj.resolve(widgetName);      impl = findImplementation(lowerCaseWidgetName, nsObj.module);      if(impl){return(imps[lowerCaseWidgetName] = impl)};    }    // this is an error condition under new rules    dojo.deprecated('dojo.widget.Manager.getImplementationName',      'Could not locate widget implementation for "' + widgetName + '" in "' + nsObj.module + '" registered to namespace "' + nsObj.name + '". '      + "Developers must specify correct namespaces for all non-Dojo widgets", "0.5");    // backward compat: if the user has not specified any namespace and their widget is not in dojo.widget.*    // search registered widget packages [sic]    // note: registerWidgetPackage itself is now deprecated    for(var i=0; i<widgetPackages.length; i++){      impl = findImplementation(lowerCaseWidgetName, widgetPackages[i]);      if(impl){return(imps[lowerCaseWidgetName] = impl)};    }    throw new Error('Could not locate widget implementation for "' + widgetName + '" in "' + nsObj.module + '" registered to namespace "' + nsObj.name + '"');  }
6315	/local1/tlutelli/issta_data/temp/all_js/javascript/2007_temp/2007/6315/65ae7e8768a77997b7894e274bc242069a1cb027/struts_dojo.js.uncompressed.js/clean/src/main/resources/org/apache/struts2/static/dojo/struts_dojo.js.uncompressed.js