<?php
require ("lib/genopar.lib.php");
require ("lib/config.php");

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

verGetPost(array("mtg", "processa", "contig", "tipoArq"));

$genopar= new Genopar(__FILE__);

if (!$mtg){
	$mtgs = obtemMtgs($genopar);

	$genopar->abrePagina("Atualizar Montagem");
	$genopar->abreForm();
	echo "<TABLE CELLSPACING=5 CELLPADDING=5 BORDER=1 RULES=ROWS FRAME=BOX>";
	echo "<TR>";
	echo "<TD>";
	echo "Montagem: ";
	echo "</TD>";
	echo "<TD>";
	$genopar->select("mtg", $mtgs, "","", TRUE);
	echo "</TD>";
	echo "</TR>";
	echo "<TD align=center colspan=2>";
	$genopar->submit();
	echo "</TD>";
	echo "</TABLE>";
	$genopar->fechaForm();

	$genopar->fechaPagina();

}

$genopar->abrePagina("Atualizar Montagem <i>$mtg</i>");

if($processa == 'Deletar'){
	$ctgFastaDir = "Fasta/$mtg/Contigs";
	$orfFastaDir = "Fasta/$mtg/ORFs";
	$blastDir = "BlastReports/$mtg";

	$rmCtgFiles = "rm -f $ctgFastaDir/{n,p}/Contig".$contig.".fas";
	system($rmCtgFiles);

	$q = "SELECT id FROM orf WHERE idMontagem='$mtg' AND contigId=$contig";

	$genopar->abreBanco();

	$genopar->queryBanco($q);

	$orfs = array();

	while ($lin = $genopar->getArray()){
		array_push($orfs, $lin['id']);

		$rmOrfFiles = "rm -f $orfFastaDir/{n,p}/ORF".$lin['id'].".fas";
		$rmBlastFile = "rm -f $blastDir/ORF".$lin['id'].".blast";

		system($rmOrfFiles);
		system($rmBlastFile);
	}

	$orfTables = array(
			"anotacao",
			"blastp_nr",
			"orf",
			"rbs",
			"startCodons"
	);

	foreach ($orfs as $orf){
		foreach($orfTables as $table){
			switch ($table){
				case 'blastp_nr':
					$idAttrib = "orfId"; break;
				case 'startCodons':
					$idAttrib = "idOrf"; break;
				default:
					$idAttrib = "id";
			}
			$q = "DELETE FROM $table WHERE idMontagem='$mtg' AND $idAttrib=$orf";
			$genopar->queryBanco($q);
		}
	}

	$q = "DELETE FROM tRNA WHERE idMontagem='$mtg' AND contigId=$contig";
	$genopar->queryBanco($q);

	$q = "DELETE FROM contig WHERE idMontagem='$mtg' AND id=$contig";
	$genopar->queryBanco($q);
		
	$genopar->fechaBanco();

	echo "<H2>O contig <i>$contig</i> foi completamente removido.</H2>";
}

echo "
<SCRIPT LANGUAGE=\"JavaScript\">

function confirmaRemocao() {

if (confirm('Deseja deletar TODAS as informações sobre o contig ' + main_form.contig.value + '?'))
	return true;
return false;

}

</SCRIPT>
";

$genopar->abreBanco();

$n= $genopar->queryBanco("SELECT id as contig, tam FROM contig WHERE idMontagem='$mtg'");

$contig_lab= array();
while ($lin= $genopar->getArray()){
	array_push($contig_lab, $lin['contig']);
	$contigs[$lin['contig']]=$lin['tam'];
}

$genopar->abreForm("return confirmaRemocao(this);");
$genopar->input("mtg", "hidden", $mtg);

echo "
<TABLE CELLSPACING=5 CELLPADDING=5 BORDER=1 RULES=ROWS FRAME=BOX>
	<TR>
		<TD align='right'>Contig:</TD>
		<TD><SELECT NAME='contig'>\n";

		foreach ($contigs as $contig_num => $sizeCtg){
			if ($contig == $contig_num) $size = $sizeCtg;
				echo '<OPTION'.(($contig == $contig_num) ? ' SELECTED ' : ' ')."VALUE='$contig_num'>".$contig_num.'</option>'."\n";
		}
echo "
		</TD>
		<TD></TD>
		<TD>";
		$genopar->submit("Deletar", "processa");
echo "
		</TD>
	</TR>
</TABLE>
";

echo "<BR>";

echo "<TABLE CELLSPACING=5 CELLPADDING=5 BORDER=1 RULES=ROWS FRAME=BOX>";
echo "<TR>";
echo "<TD>";
$genopar->input("tipoArq", "radio", "fasta", "checked");
echo " Arquivo Montagem (Fasta): ";
echo "</TD>";
echo "<TD>";
$genopar->input("fastaFile", "file");
echo "</TD>";
echo "</TR>";
echo "<TR>";
echo "<TD>";
$genopar->input("tipoArq", "radio", "gbZip");
echo " Arquivos Anotação (GenBank): ";
echo "</TD>";
echo "<TD>";
$genopar->input("gbZipFile", "file");
echo "</TD>";
echo "</TR>";
echo "<TD align=center colspan=2>";
$genopar->submit("Enviar", "processa");
echo "</TD>";
echo "</TABLE>";

$genopar->fechaForm();

$genopar->fechaPagina();


########################
########################

function obtemMtgs($genopar){
	$mtgs = array();

	$genopar->abreBanco();

	$q = "SELECT DISTINCT idMontagem FROM contig";
	$n = $genopar->queryBanco($q);
	if($n > 0)
		while($res = $genopar->getArray()){
			array_push($mtgs, $res['idMontagem']);
		}
	$genopar->fechaBanco();

	return $mtgs;
}

?>
