<?php
//include_once ("db/dbImagem.class.php");
include_once ("base/elemento.class.php");
include_once ("base/categoria.class.php");
include_once ("base/lista.class.php");

class admin extends elemento{
	
	var $idCat=1;
	
	function user() {
       

    }

    function enviarMail($nome, $mail, $login, $password) {
		$quebra="\r\n";
		$subject="Carteira - Actualizar dados de utilizador";
		$from="From: registo@carteira.pt";
		$texto="Caro(a) $nome $quebra";
		$texto.="O seu registo no site SITE encontra-se activo $quebra";
		$texto.="O seu login é: $login $quebra";
		$texto.="A sua password é: $password $quebra";
		$texto.="Por favor complete os seus dados pessoais fazendo login em: $quebra";
		$texto.="http://www.carteira.pt $quebra";
	
		mail($mail, $subject, $texto, $from);

	return 0;
	}
    
    function isLogin($login){
    	if (empty($login)){novo(0); exit;}
		$db= new dbElemento;
		
		//$sql = "select login from users where login='$login'";
		//$result =  mysql_query( $sql, $dblink );
		//$rows = mysql_num_rows($result);
		
		if ($db->getLinhaCampo($this->tipo,"login", $login )) return true;
		return false;
	}
	
	function gerarPassword($word) {
		srand((double)microtime()*1000000); 
		$temppass = md5($word . rand(0,9999999)); 
		$mypassword=substr($temppass, 1, 8);
		return $mypassword; 
	}
	
	function testaPasswordNova(){
		$password1=$this->req['password1'];	
		$password2=$this->req['password2'];	
	
		if (empty($password1) && empty($password2)){
			print "Aviso :Campos password vazios1 .<br> " .
					"Vai ser gerada uma password que depois tem de ser mudada.<br><br>";
			$password1=$this->gerarPassword($this->req['login']);
			$password2=$password1;
		}else {
			if ($password1!=$password2){
				print "Aviso :Campos password diferentes .<br> " .
					"A password nao sera mudada.<br><br>";
				return false;
			}
		}
		//$this->enviarMail($this->req['nome'], $this->req['email'], $this->req['login'], $password1);
		return md5($password1);	
	}
    function testaPasswordEdit($id){
    	global $db;
    	$password1=$this->req['password1'];	
		$password2=$this->req['password2'];	
    
    	if (empty($password1) && empty($password2)){
			print "Aviso :Campos password vazios .<br> " .
					"A password nao sera mudada.<br><br>";
			
			$linha = $db->getLinha($this->tipo, $id);			
			return $linha['password'];
		}
		else if ($password1!=$password2){
			print "Aviso :Campos password diferentes .<br> " .
					"A password nao sera mudada.<br><br>";
			return false;
		}
			
		//$this->enviar_mail($nome, $email, $login, $password1);
		return md5($password1);
		
    }
    
   	
	function guardarNovo(){
		$this->req['idCat']=$this->idCat;
		if ($this->isLogin($this->req['login'])) exit;
		if (!($this->req['password']=$this->testaPasswordNova())) exit;
		parent::guardarNovo();
	}
	
	function guardarEdit($id){
		$this->req['idCat']=$this->idCat;
//		$val=$this->req['password']=$this->testaPasswordEdit();
//		if ($val == false) exit;
//		if ($val != true) $this->req['password']=$val;
		if (!($this->req['password']=$this->testaPasswordEdit($id))) exit;
		parent::guardarEdit($id);
	}
	
	
	function editar($id="") {
        
        $db= new dbElemento;

        $linha = @$db->getLinha($this->tipo, $id);
		$f= new form($id, $linha , $this->req);
		$f->toolbars();
		$f->titulo("Utilizadores / ",1);
		$f->campoTexto("Login","login" );
		/*if ($id) {
			$f->mudaPassword($id);
		} else {*/
		$f->campoPassword("Password","password1" );
		$f->campoPassword("Confirme Password","password2" );
		//}
		$f->campoValor("idCat",1 );
		$f->campoValor("admin",1 );
		$f->campoTexto("Nome","nome" );
		$f->campoTexto("Email","email" );
		$f->campoTexto("Telefone","telefone" );
		$f->campoTexto("Fax","fax" );
		//$f->campoSimNao("Admin", "admin", 0);
		//$f->campoSimNao("Activo", "activo", 0);
		if ($id) {
		$f->label("","Para mudar a password insira os dois campos. Caso não queira mudar deixe em branco.<br>");
		}
		$f->mostra();
    }

	function listar() {
        $campos=array("Nº"=>"id","login"=>"login","Nome"=>"nome");
        
        $db= new dbElemento;
        
        $dados=$db->getLista($this->tipo, $this->idCat, $campos , "login", $this->req['ordem'] ,$this->req['offset'], $this->req['limit'], $this->req['procurar'], $this->req['filtro'] );
        $this->req['total']=$db->getTotal($this->tipo, $this->idCat , $this->req['procurar'], $this->req['filtro']);
        
        //print_rr($dados);
                
        $f= new lista($campos, $dados, $this->req);
		$f->toolbars();
		//$f->cabeca();
		$f->titulo("Utilizadores / ");
		$f->cabecaSimples();
        //$f->filtros();
        $f->tabela(false, true);
		$f->mostra();
    }


}
?>
