<?

/*
 * This file is part of the 'Science Fair In A Box' project
 * SFIAB Website: http://www.sfiab.ca
 *
 * Copyright (C) 2006 Sci-Tech Ontario Inc <info@scitechontario.org>
 * Copyright (C) 2006 James Grant <james@lightbox.org>
 *
 * 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.
 *
 * 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; see the file COPYING.  If not, write to
 * the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 * Boston, MA 02111-1307, USA.
 */
?>
<?
require ('../common.inc.php');
require_once ('../user.inc.php');
user_auth_required('committee', 'config');
send_header('Language Packs',
	array('Committee Main' => 'committee_main.php',
		'SFIAB Configuration' => 'config/index.php'),
	'language_pack_installer');

echo i18n("Checking for language packs will access a remote server, if you wish to continue click the 'Check for available language packs' link below");
echo '<br />';
echo '<br />';
echo '<a href="languagepacks.php?action=check">' . i18n('Check for available language packs') . '</a><br />';

function loadLanguagePacks()
{
	$ret = array();
	// // FIXME Replace!
	// if($packs=file("http://www.sfiab.ca/languages/langpacklist.txt"))
	if (false) {
		$num = count($packs);
		// format of each line is:
		// lang:filename:lastupdate
		if (count($packs)) {
			foreach ($packs AS $p) {
				list($langpack, $filename, $lastupdate) = explode("\t", trim($p));
				$ret[$langpack] = array('lang' => $langpack, 'filename' => $filename, 'lastupdate' => $lastupdate);
			}
		}
	} else {
		echo error(i18n('There was an error connecting to the language pack server'));
	}
	return $ret;
}

if (get_value_from_array($_GET, 'action') == 'check') {
	$packs = loadLanguagePacks();

	$num = count($packs);
	echo '<hr />';
	echo i18n('Found %1 available language pack(s)', array($num));
	// format of each line is:
	// lang:filename:lastupdate
	if (count($packs)) {
		echo '<table class="summarytable">';
		echo '<tr>';
		echo '<th>' . i18n('Language') . '</th>';
		echo '<th>' . i18n('Filename') . '</th>';
		echo '<th>' . i18n('Last Update') . '</th>';
		echo '<th>' . i18n('Install') . '</th>';
		echo '</tr>';
		foreach ($packs AS $p) {
			echo "<tr><td align=\"center\">{$p['lang']}</td><td>{$p['filename']}</td><td>{$p['lastupdate']}</td>";
			echo '<td align="center">';
			echo "<a href=\"languagepacks.php?action=install&install={$p['lang']}\">" . i18n('Install') . '</a>';
			echo '</td>';
			echo '</tr>';
		}
		echo '</table>';
	}
}

if (get_value_from_array($_GET, 'action') == 'install' && get_value_from_array($_GET, 'install')) {
	$packs = loadLanguagePacks();
	$loaded = 0;
	if ($packs[$_GET['install']]) {
		$lines = file("http://www.sfiab.ca/languages/{$packs[$_GET['install']]['filename']}");
		$totallines = count($lines);
		$numtranslations = round($totallines / 2);
		echo i18n('There are %1 translations in this language pack... processing...', array($numtranslations));
		if (count($lines)) {
			foreach ($lines AS $line) {
				$line = trim($line);

				if (substr($line, 0, 6) == 'UPDATE' || substr($line, 0, 6) == 'INSERT') {
					$stmt = $pdo->prepare($line);
					$stmt->execute();
					$a = $pdo->rowwCount();
					$loaded += $a;
				} else
					echo notice('Ignoring invalid language pack line: %1', array($l));
			}
			if ($loaded == 0)
				echo notice(i18n('You already have all of the translations in this language pack'));
			else
				echo happy(i18n('Successfully loaded %1 new translations', array($loaded)));
		} else {
			echo error(i18n('Error downloading language pack'));
		}
	} else {
		echo error(i18n('Invalid language pack to install'));
	}
}

send_footer();
?>