SAP.common.defineNS("SAP.CR.Viewer", { /** * Loads viewer with name[viewerName] placed in container[divID] * * @param containerID * [String], id of element that will hold the viewer * @param viewerName * [String], name of viewer * @param initCB[function(instance)] * a function that initializes the viewer instance * @param failCB[function(instance,error)], * a function that gets executed when something fails */ create : function(viewerName, containerID, initCB, failCB) { var failCBWrapper = function(instance, error) { try { if (failCB) failCB(instance, error); else throw error; } catch (err) { throw err; } }; // validate the viewer name, must begin with a letter and may be followed by any number of letters or digits if (!viewerName.match (/^[0-9a-zA-Z]+$/) || !viewerName.charAt(0).match (/^[a-zA-Z]+$/)) { failCBWrapper (null, SAP.CR.Viewer.Exceptions.ViewerInitException.create(L_bobj_crv_API_ViewerInitFailed, L_bobj_crv_API_InvalidViewerName.replace("{0}", viewerName))); } var instance = new SAP.CR.Viewer.Instance(viewerName, containerID); SAP.common.instances[viewerName] = instance; try { if (initCB) initCB(instance) } catch (err) { failCBWrapper(instance, SAP.CR.Viewer.Exceptions.ViewerInitException.create(L_bobj_crv_API_ViewerInitFailed, err)); } var ViewerLoadException = SAP.CR.Viewer.Exceptions.ViewerLoadException; var loadInstance = function(instance) { var args = { 'ServletTask' : 'CreateViewer', 'pendingEvents' : MochiKit.Base.serializeJSON(instance.getPendingEvents()), 'viewerName' : instance.getName(), 'containerID' : instance.getContainerID(), 'servletUri' : SAP.common.getServletUri(), 'resourcePrefix' : SAP.common.resourceUri, 'productLocale' : SAP.common.productLocale }; function onSucess(data, textStatus, XMLHttpRequest) { var html = bobj.html.extractScripts(data); var scripts = html.scripts; for ( var iScripts = 0, scriptsLen = scripts.length; iScripts < scriptsLen; ++iScripts) { var script = scripts[iScripts]; if (!script) continue; if (script.text) { var text = script.text.replace("", ""); // IE cannot evaluate script with