code: function getReportHtml(oData) {
  		return getResources().then(function () {
  			var styles = [],
  				scripts = [],
  				html = '',
  				i,
  				template = {},
  				reportContext = {};
  
  			for (i = 0; i < arguments.length; i++) {
  				switch (arguments[i].type) {
  					case 'template': html = arguments[i].content; break;
  					case 'css': styles.push(arguments[i].content); break;
  					case 'js': scripts.push(arguments[i].content); break;
  				}
  			}
  
  			template = Handlebars.compile(html);
  
  			reportContext = {
  				technicalInfo: oData.technical,
  				issues: oData.issues,
  				appInfo: oData.application,
  				rules: oData.rules,
  				rulePreset: oData.rulePreset,
  				metadata: {
  					title: oData.name + ' Analysis Results',
  					title_TechnicalInfo: 'Technical Information',
  					title_Issues: 'Issues',
  					title_AppInfo: 'Application Information',
  					title_SelectedRules: 'Available and (<span class="checked"></span>) Selected Rules',
  					timestamp: new Date(),
  					scope: oData.scope,
  					analysisDuration: oData.analysisDuration,
  					analysisDurationTitle: oData.analysisDurationTitle,
  					styles: styles,
  					scripts: scripts
  				}
  			};
  
  			return template(reportContext);
  		});
  	}
docs: Public functions 
  Creates an html string containing the whole report.
  @param {Object} oData - the data required to create a report
  @returns {String}