

reportingService.controller.viewManagers.errorViewManager = new reportingService.controller.AbstractReportViewManager();
reportingService.controller.reportingManager.setViewManagerToReportRegistry(reportingService.controller.viewManagers.errorViewManager);

Object.extend(
	reportingService.controller.viewManagers.errorViewManager, {
		reportName:reportingService.constants.viewTypes.ERROR_VIEW,
        isWaitReport:true,
		isWaitComplete:false,
        model: Object.extend(gidLib.clone(reportingService.controller.viewManagers.commonViewManager.model), {
            pageName: ''
        }),
        controller:{
            isStatic: false,
            staticErrorType: {404:'Error 404/Page Not Found', 500:'Error 500/Invalid Path', systemError: 'System Error/Oh No!'},
            getErrorType: function(controller) {
                var pathname = (document.title.match(/\d+/i)||
                                    document.location.pathname.match(/systemError|GeneralNoResults|InvalidIdNoResults|OutOfStockNoResults/i)||[])[0];
                return controller.isStatic ? controller.staticErrorType[pathname] : pathname;
            },
            setReportModel:function() {
                var errorViewManager = reportingService.controller.viewManagers.errorViewManager;
                var errorModel = errorViewManager.model;
                var errorViewController = errorViewManager.controller;
                var errorType = errorViewController.getErrorType(errorViewController);

                errorModel.origPageName = errorModel.commonCurrentPageName;
                errorModel.pageType = 'errorPage';
                errorModel.requestedUrl = errorModel.requestedUrl || gidLib.getQuerystringParam('requestedurl') || document.location.href;
                errorModel.errorType = errorType;
            },
			setReportTransmissionVars:function() {
                var errorModel = reportingService.controller.viewManagers.errorViewManager.model;
                s.prop28 = errorModel.requestedUrl;
                s.prop33 = errorModel.errorType;
                s.pageType = errorModel.pageType;
            },
            getReportRequest:function(isStatic) {
				var reportingManager = reportingService.controller.reportingManager;
				var errorViewManager = reportingService.controller.viewManagers.errorViewManager;
                errorViewManager.isWaitComplete = true;
                errorViewManager.controller.isStatic = isStatic;
                reportingManager.getReportingRequest(errorViewManager);

            },
            setCleanUp:function() {
            }
        }
	}
);