<?php

require_once('includes/allspells.php');

$smarty->config_load($conf_file, 'spells');

global $DB;
global $AoWoWconf;
global $spell_cols;

@list($s1, $s2, $s3) = explode('.', $podrazdel);

$cache_str = (empty($s1)?'x':intval($s1)).'_'.(empty($s2)?'x':intval($s2)).'_'.(empty($s3)?'x':intval($s3));

if(!$spells = load_cache(15, $cache_str))
{
	unset($spells);

	$spells = array();
	if($s1 == 7)
	{
		$title = $smarty->get_config_vars('Class_spells');
		// Классовые
		$rows = $DB->select('
				SELECT ?#, s.`spellID`, sk.skillID
				FROM ?_spell s, ?_skill_line_ability sla, ?_spellicons i, ?_skill sk
				WHERE
					s.spellID = sla.spellID
					AND s.levelspell >= 1
					AND i.id=s.spellicon
					{AND sla.classmask = ?d}
					{AND sla.skillID=?d}
					AND sla.skillID=sk.skillID
				ORDER BY s.levelspell
				{LIMIT ?d}
			',
			$spell_cols[2],
			(isset($s2))? pow(2, ($s2-1)): DBSIMPLE_SKIP,
			(isset($s3))? $s3: DBSIMPLE_SKIP,
			($AoWoWconf['limit']!=0)? $AoWoWconf['limit']: DBSIMPLE_SKIP
		);
	}
	elseif($s1 > 0)
	{
		switch($s1)
		{
			case 6:
				$title = $smarty->get_config_vars('Оружейные навыки');
				break;
			case 8:
				$title = $smarty->get_config_vars('Специализации брони');
				break;
			case 10:
				$title = $smarty->get_config_vars('Языки');
				break;
			case 9:
				$title = $smarty->get_config_vars('Вспомогательные профессии');
				break;
			case 11:
				$title = $smarty->get_config_vars('Профессии');
				break;
			default:
				$title = '???';
				break;
		}
		$spells['sort'] = "'skill', 'name'";
		// Профессии & other
		$rows = $DB->select('
			SELECT
				?#, `s`.`spellID`,
				sla.skillID, sla.min_value, sla.max_value
			FROM ?_spell s, ?_skill_line_ability sla, ?_spellicons i, ?_skill sk
			WHERE
				s.spellID = sla.spellID
				AND i.id=s.spellicon
				{AND sk.categoryID=?d}
				{AND sla.skillID=?d}
				AND sla.skillID=sk.skillID
			{LIMIT ?d}
		',
		$spell_cols[2],
		$s1,
		(isset($s2))? $s2: DBSIMPLE_SKIP,
		($AoWoWconf['limit']!=0)? $AoWoWconf['limit']: DBSIMPLE_SKIP
		);
	}
	elseif($s1 == -3)
	{
		$title = $smarty->get_config_vars('Pet_spells');
		// Петы
		$spells['sort'] = "'name'";
		if (!isset($s2))
			$pets = array(270, 653, 210, 211, 213, 209, 214, 212, 763, 215, 654, 764, 655, 217, 767, 236, 768, 203, 218, 251, 766, 656, 208, 761, 189, 188, 205, 204);
		$rows = $DB->select('
				SELECT
					?#, `s`.`spellID`, sk.skillID
				FROM ?_spell s, ?_skill_line_ability sla, ?_spellicons i, ?_skill sk
				WHERE
					s.spellID = sla.spellID
					AND s.levelspell > 0
					AND i.id=s.spellicon
					{AND sla.skillID=?d}
					{AND sla.skillID IN (?a)}
					AND sla.skillID=sk.skillID
				{LIMIT ?d}
			',
			$spell_cols[2],
			(isset($s2))? $s2: DBSIMPLE_SKIP,
			(isset($pets))? $pets: DBSIMPLE_SKIP,
			($AoWoWconf['limit']!=0)? $AoWoWconf['limit']: DBSIMPLE_SKIP
		);
	}
	elseif($s1 == -4)
	{
		$title = $smarty->get_config_vars('Racial_spells');
		$spells['sort'] = "'name'";
		// Racial Traits
		$rows = $DB->select('
			SELECT
				?#, `s`.`spellID`
			FROM ?_spell s, ?_spellicons i
			WHERE
				s.spellID IN (SELECT spellID FROM ?_skill_line_ability WHERE racemask>0)
				AND i.id=s.spellicon
			{LIMIT ?d}
			',
			$spell_cols[2],
			($AoWoWconf['limit']!=0)? $AoWoWconf['limit']: DBSIMPLE_SKIP
		);
	}
	elseif ($s1==-2) {
		// Talents
		// todo
	}
	else
	{
		$spells['sort'] = "'name'";
		// просто спеллы
		$rows = $DB->select('
			SELECT
				?#, `s`.`spellID`
			FROM ?_spell s, ?_spellicons i
			WHERE
				i.id=s.spellicon
			{LIMIT ?d}
		',
		$spell_cols[2],
		($AoWoWconf['limit']!=0)? $AoWoWconf['limit']: DBSIMPLE_SKIP
		);
	}

	foreach($rows as $i => $row)
		$spells['data'][] = spellinfo2($row);

	save_cache(15, $cache_str, $spells);
}
global $page;
$page = array(
	'Mapper' => false,
	'Book' => false,
	'Title' => ($title?$title.' - ':'').$smarty->get_config_vars('Spells'),
	'tab' => 0,
	'type' => 6,
	'typeid' => 0,
	'path' => "[0, 1, ".intval($s1).", ".intval($s2).", ".intval($s3)."]",
	'sort' => isset($spells['sort'])?$spells['sort']:"'level','name'"
);
$smarty->assign('page', $page);

// Статистика выполнения mysql запросов
$smarty->assign('mysql', $DB->getStatistics());
// Если хоть одна информация о вещи найдена - передаём массив с информацией о вещях шаблонизатору
if (isset($allitems))
	$smarty->assign('allitems',$allitems);
if (count($allspells)>=0)
	$smarty->assign('allspells',$allspells);
if (count($spells)>=0)
	$smarty->assign('spells',$spells['data']);
// Загружаем страницу
$smarty->display('spells.tpl');

?>
