<?php

require('../lib/genopar.lib.php');
require('../lib/config.php');

if(!doAuth(LVLANT)) {
	$genopar->fechaPagina(); exit;
}

verGetPost(array('action'));

$genopar = new Genopar(__FILE__);

$genopar->abrePagina("Tabela de EC Numbbers");

if ($genopar->UserAuth_level <= LVLADM){
	echo "<a href='?action=atualizar'>Atualizar Informações</a>";
	if ($action == 'atualizar'){
		$localFile = getECtable($genopar);
		$ECnumbers = parse($genopar,$localFile);
		update($genopar, $ECnumbers);
	
		echo "<p>Informações Atualizadas</p>";
	}
}

$genopar->abreBanco();

$q = "SELECT * FROM ECnumbers";

$genopar->queryBanco($q);

echo "<TABLE cellpadding=5 border=1 rules=all>\n";

while ($lin = $genopar->getArray()){
	echo "<TR>";
	echo "<TD>";
	echo $lin['numero'];
	echo "</TD>";

	echo "<TD>";
	echo $lin['enzima'];
	echo "</TD>";
	echo "</TR>";
}

echo "<TABLE>\n";

$genopar->fechaBanco();

$genopar->fechaPagina();

function getECtable($genopar){
	$server = "ftp.expasy.org";
	$serverFile = "databases/enzyme/enzyme.dat";
	$localFile = $genopar->dir_padrao."/tmp/ECtable";
	$USER = "anonymous";
	$PASS = "nada@lugar.algum";

	$con = ftp_connect($server) or $genopar->error("server error.");
	ftp_login($con, $USER, $PASS);

	ftp_get($con, $localFile, $serverFile, FTP_BINARY) or $genopar->error("Impossible to download the file.");

	ftp_close($con);

	return $localFile;
}

function parse($genopar, $table){
	$ECnumbers = array();
	$lines = file($table);
	foreach ($lines as $line_num => $line) {
		if (preg_match("/^ID/", $line)){
    			preg_match("/^ID\s+(.*)/",$line,$EC);
    			$EC = $EC[1];
		}elseif(preg_match("/^DE/", $line)){
			preg_match("/^DE\s+(.*)$/",$line,$enz);
			$ECnumbers[$EC] = $enz[1];
		}
	}
	return $ECnumbers;
}

function update($genopar, $ECnumbers){
	$genopar->abreBanco();

	$q = "DROP TABLE ECnumbers";
	$genopar->queryBanco($q);

	$q = "	CREATE TABLE  `ECnumbers` (
		`numero` varchar(15) default NULL,
		`enzima` text
		) ENGINE=MyISAM DEFAULT CHARSET=latin1";
	$genopar->queryBanco($q);

	foreach ($ECnumbers as $EC => $enz){
		$Enz = addslashes($enz);
		$q = "INSERT into `ECnumbers` VALUES ('$EC', '$Enz')";
		$genopar->queryBanco($q);
	}

	$genopar->fechaBanco();

}

