/**
 * @defgroup js_controllers_tab_workflow
 */
/**
 * @file js/controllers/tab/workflow/WorkflowTabHandler.js
 *
 * Copyright (c) 2014-2021 Simon Fraser University
 * Copyright (c) 2000-2021 John Willinsky
 * Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
 *
 * @class WorkflowTabHandler
 * @ingroup js_controllers_tab_workflow
 *
 * @brief A subclass of TabHandler for handling requests to load stages
 * of the workflow.
 */
(function($) {

	/** @type {Object} */
	$.pkp.controllers.tab =
			$.pkp.controllers.tab || {};


	/** @type {Object} */
	$.pkp.controllers.tab.workflow =
			$.pkp.controllers.tab.workflow || {};



	/**
	 * @constructor
	 *
	 * @extends $.pkp.controllers.TabHandler
	 *
	 * @param {jQueryObject} $tabs A wrapped HTML element that
	 *  represents the tabbed interface.
	 * @param {Object} options Handler options.
	 */
	$.pkp.controllers.tab.workflow.WorkflowTabHandler =
			function($tabs, options) {

		var pageUrl, stage, pattern, i, tabAnchors, matches;
		this.parent($tabs, options);

		pageUrl = document.location.toString();
		matches = pageUrl.match('workflow/([^/]+)/');
		if (matches) {
			stage = matches[1];
			tabAnchors = $tabs.find('li a');
			for (i = 0; i < tabAnchors.length; i++) {
				pattern = new RegExp(stage);
				if (tabAnchors[i].getAttribute('class').match(pattern)) {
					options.selected = i;
				}
			}
		}
	};
	$.pkp.classes.Helper.inherits(
			$.pkp.controllers.tab.workflow.WorkflowTabHandler,
			$.pkp.controllers.TabHandler);

}(jQuery));
