<?php

class Rtn_JS_HeadClasses {

	public static function get($moduleName, $controllerName) {

		$candidates = [ ];

		$workSpace = static::_getWorkspace($controllerName);

		$methodName = 'get' . $workSpace . 'JSPath';

		// applicationClass
		$candidates[] = [
			'dir' => Core_Module_Module::getInstance()->$methodName() . 'HeadClasses/',
			'file' => 'applicationClass.js'
		];

		// enabled modules Classes
		foreach( Eppe_Module_ModuleAbstract::getEnabledModulesInstances() as $enabledModuleInstance ) {
			$candidates[] = [
				'dir' => $enabledModuleInstance->$methodName() . 'HeadClasses/' . $enabledModuleInstance->name,
				'file' => 'ModuleClass.js'
			];
		}

		// klasa aktualnego kontrolera JS
		$candidates[] = [
			'dir' => Core_Module_Module::getModuleInstance($moduleName)->$methodName() . 'HeadClasses/',
			'file' => $controllerName . 'ControllerClass.js'
		];

		$toLoad = [ ];
		foreach( $candidates as $c ) {
			$foundIn = Rtn_Finder_Public_File::find($c['dir'], $c['file']);
			if( $foundIn ) {
				$toLoad[] = $foundIn . $c['file'];
			}
		}

		return $toLoad;
	}

	protected static function _getWorkspace($controllerName) {
		if( strpos($controllerName, 'admin') === 0 ) {
			$workSpace = 'admin';
		}
		else {
			$workSpace = 'front';
		}

		return ucfirst($workSpace);
	}

}
