<?PHP
/*
 * DIREITOS AUTORAIS RESERVADOS (C) 2007 UFRJ
 * 
 * ESTE PROGRAMA É SOFTWARE LIVRE; VOCÊ PODE REDISTRIBUÍ-LO E/OU MODIFICÁ-LO SOB OS
 * TERMOS DA LICENÇA PÚBLICA GERAL GNU CONFORME PUBLICADA PELA FREE SOFTWARE FOUNDATION;
 * TANTO A VERSÃO 2 DA LICENÇA, COMO (A SEU CRITÉRIO) QUALQUER VERSÃO POSTERIOR.

 * ESTE PROGRAMA É DISTRIBUÍDO NA EXPECTATIVA DE QUE SEJA ÚTIL, PORÉM, SEM NENHUMA GARANTIA;
 * NEM MESMO A GARANTIA IMPLÍCITA DE COMERCIABILIDADE OU ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA.
 * CONSULTE A LICENÇA PÚBLICA GERAL DO GNU PARA MAIS DETALHES.
 * 
 * VOCÊ DEVE TER RECEBIDO UMA CÓPIA DA LICENÇA PÚBLICA GERAL DO GNU JUNTO COM ESTE PROGRAMA; 
 * SE NÃO, ACESSE <<HTTP://WWW.GNU.ORG/LICENSES/LICENSES.PT-BR.HTML>>
 */

<?

function trim_string_columns($rec)
{
	$tab = $rec->getTable();
	foreach($tab->getColumns() as $name => $def)
	{
		if($def['type'] == 'string' && !empty($rec[$name]))
			$rec[$name] = trim($rec[$name]);
	}
}

function normaliza($nomeArg) {
    
    $string = $nomeArg;
    $a = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûýýþÿŔŕ';
    $b = 'aaaaaaaceeeeiiiidnoooooouuuuybsaaaaaaaceeeeiiiidnoooooouuuyybyRr';
    $string = utf8_decode($string);    

	// Múltiplos espaços no meio do nome viram um espaço só
	$string = ereg_replace('[[:space:]]+',' ', $string);

    $string = strtr($string, utf8_decode($a), $b);
    $string = strtoupper($string);
    $string = utf8_encode($string);
    
    return $string;
}

function input_date($date)/*{{{*/
{
	if(trim($date) == '')
		return '';

	list($dia,$mes,$ano) = sscanf($date,'%2d/%2d/%4d');
	if(!$dia || !$mes || !$ano)
		throw new Exception("Data em um formato inválido");
	$date = mktime(0,0,0,$mes, $dia, $ano);
	if($date === false)
		throw new Exception("Data inválida");

	return strftime("%Y-%m-%d", $date);
}/*}}}*/
function output_date($date)/*{{{*/
{
	if(!trim($date))
		return '';

	list($ano,$mes,$dia) = sscanf($date,'%4d-%2d-%2d');

	if(!$dia || !$mes || !$ano)
		throw new Exception("Data em um formato inválido");

	$date = mktime(0,0,0,$mes, $dia, $ano);
	if($date === false)
		throw new Exception("Data inválida");

	return strftime("%d/%m/%Y", $date);
}/*}}}*/

function output_timestamp($date)/*{{{*/
{
	if(!$date)
		return '';

	list($ano,$mes,$dia,$hora,$min,$seg) = sscanf($date,'%4d-%2d-%2d %2d:%2d:%2d');

	if(!$dia || !$mes || !$ano)
		throw new Exception("Data em um formato inválido");

	if(!$hora)
		$hora = 0;
	if(!$min)
		$min = 0;
	if(!$seg)
		$seg = 0;

	$date = mktime($hora,$min,$seg,$mes, $dia, $ano);
	if($date === false)
		throw new Exception("Data inválida");

	return strftime("%d/%m/%Y %H:%M:%S", $date);
}/*}}}*/

/*
$fd = fopen('sus.txt','r');

$validos = 0;
$invalidos = 0;
while($codigo = fgets($fd))
{
	$codigo = trim($codigo);
	if(!$codigo)
		continue;

	if(sus_valido($codigo))
		++$validos;
	else
	{
		echo "Inválido: $codigo\n";
		++$invalidos;
	}
}

echo "Válidos: $validos\nInválidos: $invalidos\n";
 */
