<?php
/*=====================================================================*\
|| ###################################################################
|| # Bugdar
|| # Copyright ©2002-2007 Blue Static
|| #
|| # This program is free software; you can redistribute it and/or modify
|| # it under the terms of the GNU General Public License as published by
|| # the Free Software Foundation; version 2 of the License.
|| #
|| # This program is distributed in the hope that it will be useful, but
|| # WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|| # or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|| # more details.
|| #
|| # You should have received a copy of the GNU General Public License along
|| # with this program; if not, write to the Free Software Foundation, Inc.,
|| # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|| ###################################################################
\*=====================================================================*/

require_once('./global.php');
require_once('./includes/api_language.php');

require_once('./includes/class_api_error.php');
APIError(array(new API_Error_Handler($admin), 'admin_error'));

NavLinks::optionsPages();
$navigator->set_focus('tab', 'options', null);

if (!can_perform('canadmintools'))
{
	admin_login();
}

// ###################################################################

if (empty($_REQUEST['do']))
{
	$_REQUEST['do'] = 'modify';
}

// ###################################################################

if ($_REQUEST['do'] == 'kill')
{
	$language = new LanguageAPI($bugsys);
	$language->set('languageid',	$bugsys->in['languageid']);
	$language->set_condition();
	$language->delete();

	$admin->redirect('language.php?do=modify');
}

// ###################################################################

if ($_REQUEST['do'] == 'delete')
{
	$admin->page_confirm(T('Are you sure you want to delete this language?'), 'language.php', 'kill', array('languageid' => $bugsys->input_clean('languageid', TYPE_UINT)));
}

// ###################################################################

if ($_POST['do'] == 'insert')
{
	$language = new LanguageAPI($bugsys);
	$language->set('title',			$bugsys->in['title']);
	$language->set('charset',		$bugsys->in['charset']);
	$language->set('direction',		$bugsys->in['direction']);
	$language->set('userselect',	$bugsys->in['userselect']);
	$language->set('langcode',		$bugsys->in['langcode']);
	$language->insert();

	$admin->redirect('language.php?do=modify');
}

// ###################################################################

if ($_REQUEST['do'] == 'add')
{
	NavLinks::languagesAdd();
	$navigator->set_focus('link', 'options-languages-add', 'options-languages');

	$admin->page_start(T('New Language'));

	$admin->form_start('language.php', 'insert');
	$admin->table_start();
	$admin->table_head(T('New Language'));

	$admin->row_input(T('Title'), 'title');
	$admin->row_input(T('Gettext Language Code (<em><a href="http://www.gnu.org/software/gettext/manual/html_chapter/gettext_15.html">language</a></em>_<em><a href="http://www.gnu.org/software/gettext/manual/html_chapter/gettext_16.html">COUNTRY</a></em>)'), 'langcode');
	$admin->row_input(T('Character Set'), 'charset', 'utf-8');
	$admin->list_item(T('Left-to-Right'), 'ltr', true);
	$admin->list_item(T('Right-to-Left'), 'rtl');
	$admin->row_list(T('Direction'), 'direction');
	$admin->row_yesno(T('User Selectable'), 'userselect', true);

	$admin->row_submit();
	$admin->table_end();
	$admin->form_end();

	$admin->page_end();
}

// ###################################################################

if ($_POST['do'] == 'update')
{
	$language = new LanguageAPI($bugsys);
	$language->set('languageid',	$bugsys->in['languageid']);
	$language->set_condition();
	$language->set('title',			$bugsys->in['title']);
	$language->set('charset',		$bugsys->in['charset']);
	$language->set('direction',		$bugsys->in['direction']);
	$language->set('userselect',	$bugsys->in['userselect']);
	$language->set('langcode',		$bugsys->in['langcode']);
	$language->update();

	$admin->redirect('language.php?do=modify');
}

// ###################################################################

if ($_REQUEST['do'] == 'edit')
{
	NavLinks::languagesEdit($bugsys->in['languageid']);
	$navigator->set_focus('link', 'options-languages-edit', 'options-languages');

	$languageapi = new LanguageAPI($bugsys);
	$languageapi->set('languageid', $bugsys->in['languageid']);
	$languageapi->set_condition();
	$languageapi->fetch();

	$language =& $languageapi->objdata;

	$admin->page_start(T('Edit Language'));

	$admin->form_start('language.php', 'update');
	$admin->table_start();
	$admin->table_head(sprintf(T('Edit Language - %1$s'), $language['title']));

	$admin->form_hidden_field('languageid', $language['languageid']);

	$admin->row_input(T('Title'), 'title', $language['title']);
	$admin->row_input(T('Gettext Language Code (<em><a href="http://www.gnu.org/software/gettext/manual/html_chapter/gettext_15.html">language</a></em>_<em><a href="http://www.gnu.org/software/gettext/manual/html_chapter/gettext_16.html">COUNTRY</a></em>)'), 'langcode', $language['langcode']);
	$admin->row_input(T('Character Set'), 'charset', $language['charset']);
	$admin->list_item(T('Left-to-Right'), 'ltr', (($language['direction'] == 'ltr') ? true : false));
	$admin->list_item(T('Right-to-Left'), 'rtl', (($language['direction'] == 'rtl') ? true : false));
	$admin->row_list(T('Direction'), 'direction');
	$admin->row_yesno(T('User Selectable'), 'userselect', $language['userselect']);

	$admin->row_submit();
	$admin->table_end();
	$admin->form_end();

	$admin->page_end();
}

// ###################################################################

if ($_REQUEST['do'] == 'modify')
{
	NavLinks::languagesAdd();
	$navigator->set_focus('link', 'options-pages-languages', 'options-pages');

	$admin->page_start(T('Manage Languages'));

	$admin->table_start();
	$admin->table_head(T('Manage Languages'), 3, 'language_manage');

	$admin->table_column_head(array(T('Title'), T('Language Code / Charset'), T('Options')));

	$languages = $db->query("SELECT * FROM " . TABLE_PREFIX . "language ORDER BY languageid ASC");
	while ($language = $db->fetch_array($languages))
	{
		$admin->row_multi_item(array(
			"<a href=\"language.php?do=edit&amp;languageid=$language[languageid]\">$language[title]</a>" => 'l',
			$language['langcode'] . ' / ' . $language['charset'] => 'c',
			(($bugsys->options['defaultlanguage'] == $language['languageid']) ? '<strong>' . T('DEFAULT LANGUAGE') . '</strong> / ' : '') . ($language['userselect'] ? T('User Selectable') : T('Private')) => 'c'
		));
	}

	$admin->table_end();

	$admin->page_end();
}

/*=====================================================================*\
|| ###################################################################
|| # $HeadURL$
|| # $Id$
|| ###################################################################
\*=====================================================================*/
?>