<?php
/**
 * Tab navigation
 *
 * @uses string $vars['type'] horizontal || vertical - Defaults to horizontal
 * @uses string $vars['class'] Additional class to add to ul
 * @uses array $vars['tabs'] A multi-dimensional array of tab entries in the format array(
 * 	'text' => string, // The string between the <a></a> tags
 * 	'href' => string, // URL for the link
 * 	'class' => string  // Class of the li element
 * 	'id' => string, // ID of the li element
 * 	'selected' => bool // if this tab is currently selected (applied to li element)
 * 	'link_class' => string, // Class to pass to the link
 * 	'link_id' => string, // ID to pass to the link
 * )
 */
$options = elgg_clean_vars($vars);

$type = elgg_extract('type', $vars, 'horizontal');

if ($type == 'horizontal') {
	$options['class'] = "elgg-tabs elgg-htabs";
} else {
	$options['class'] = "elgg-tabs elgg-vtabs";
}
if (isset($vars['class'])) {
	$options['class'] = "{$options['class']} {$vars['class']}";
}

unset($options['tabs']);
unset($options['type']);

$attributes = elgg_format_attributes($options);

if (isset($vars['tabs']) && is_array($vars['tabs']) && !empty($vars['tabs'])) {
	?>
	<ul <?php echo $attributes; ?>>
		<?php
		foreach ($vars['tabs'] as $info) {
			$class = elgg_extract('class', $info, '');
			$id = elgg_extract('id', $info, '');

			$selected = elgg_extract('selected', $info, FALSE);
			if ($selected) {
				$class .= ' elgg-state-selected';
			}

			$class_str = ($class) ? "class=\"$class\"" : '';
			$id_str = ($id) ? "id=\"$id\"" : '';

			$options = $info;
			unset($options['class']);
			unset($options['id']);
			unset($options['selected']);

			if (!isset($info['href']) && isset($info['url'])) {
				$options['href'] = $info['url'];
				unset($options['url']);
			}
			if (!isset($info['text']) && isset($info['title'])) {
				$options['text'] = $options['title'];
				unset($options['title']);
			}
			if (isset($info['link_class'])) {
				$options['class'] = $options['link_class'];
				unset($options['link_class']);
			}

			if (isset($info['link_id'])) {
				$options['id'] = $options['link_id'];
				unset($options['link_id']);
			}

			$link = elgg_view('output/url', $options);

			echo "<li $id_str $class_str>$link</li>";
		}
		?>
	</ul>
	<?php
}