protected function tagScript()
	{
		// Initialize string
		$html = '';

		// Initialize string for .js path
		$path = '';

		// Get .js path if defined in config file
		if ($this->getConfig('assets.paths.js'))
		{
			$path = $this->getConfig('assets.paths.js') . '/';
		}

		foreach ($this->scripts as $file => $options)
		{
			// Initialize starting string for conditional comments
			$start_cond = '';
			// Initialize ending string for conditional comments
			$end_cond = '';
			// Initialize string for load attribute
			$load = '';

			// Check in config file if stylesheet is an external resource
			$cdn = $this->getConfig('assets.cdn.'.$file);

			// Initialize string for file's url
			$src = '';

			// No conditional comment
			if (is_string($options) && ($options == 'defer' || $options == 'async'))
			{
				$load = ' ' . $options;
			}

			// Conditional comments are defined
			elseif(is_array($options))
			{
				// Check if value for conditional comments is not empty
				if (array_key_exists(1, $options) && $options[1])
				{
					// Set starting string for conditional comments
					$start_cond = '<!--[if '.$options[1].']>';
					// Set ending string for conditional comments
					$end_cond = '<![endif]-->';
				}

				// Check if load attribute is defined and is valid
				if (array_key_exists(0, $options) && ($options[0] == 'defer' || $options[0] == 'async'))
				{
					$load = ' ' . $options[0];
				}
			}

			// Script is an external resource
			if ($cdn)
			{
				// Get file's url
				$src = $cdn;
			}

			// Script is a local resource + check if file exists
			elseif(File::exists(public_path($path.$file.'.js')))
			{
				$src = asset($path.$file.'.js');
			}

			// Check if url is not empty
			if ($src)
			{
				// Return tag for each registered script
				$html .= $start_cond.'<script src="'.$src.'"'.$load.'></script>'.$end_cond . "\n\t";
			}
		}

		// Return complete string
		return $html;
	}