<?
include_once ("db/dbElemento.class.php");
include_once ("base/form.class.php");
include_once ("base/lista.class.php");
include_once ("include/utils.inc.php");

include ("config/config.inc.php");

class elemento 
{
    var $req;
	var $tipo;
	var $idCat;
	
    function elemento(){   }
    
    function tira_dois_pontos($texto){
    	$find=array('src="../netimages', 'href="../netimages');
    	$replace=array('src="netimages', 'href="netimages');
    	return str_replace($find, $replace, $texto);
    }

	function guardar_sair($id=0){
		$this->guardar($id);
	}
	
	function guardar($id=0){
		$this->req['texto']=$this->tira_dois_pontos($this->req['texto']);
		
		//if ($this->tipo=="categoria")
			if ($this->req['pedido']=='ajax')
				foreach($this->req as $chave => $valor){
					//print $chave . " " . mb_detect_encoding($valor) . "<br>";
					if (mb_detect_encoding($valor. 'a' , 'UTF-8, ISO-8859-1')=='UTF-8')
						$this->req[$chave]=utf8_decode($valor);
				}
				
		if ($id){
			if($this->req['estado'] >= 0 && $this->req['versoes'] > 0)
				$this->guardarEdit_versoes($id);
			else
				$this->guardarEdit($id);
		}
		else $id=$this->guardarNovo();

		if (strpos($this->tipo,"ategoria")){		
			?><script>$("#nav").load("nav.php");</script><?
        }
		
        if($this->req['nav']){
        	?><script> $("#main").load("main.php?tipo=<?=$this->req['tipo1'] ?>&idCat=<?=$id ?>");</script><?

        } else if($this->req['cmdp']=='preview') {
        	set_msg("O registo foi guardado para ver o preview ( $id )");
			?>
	    	<script type="text/javascript">
	    		window.open('<?= $this->req['linkPreview']."?id=$id"?>');
	    	</script>
	    	<?
			$this->editar($id);
		} else {
        	set_msg("O registo foi guardado.");
			//print $this->req['cmd'];
			//print $this->tipo;
        	if ( $this->tipo=="destaque" || $this->req['cmd']=="Guardar_Sair")
        		$this->listar();
        	else
				$this->editar($id);
			
			//$this->listar();
		}
		
		return $id;
	}	

	function guardarNovo(){
        $d= new dbElemento;
        $id=$d->setInsert($this->tipo, $this->idCat, $this->req);
		return $id;
    }	
	
	function guardarEdit($id){
        $d= new dbElemento;
        $d->setUpdate($this->tipo, $this->idCat, $this->req , $id);
		return $id;
	}
	
	function guardarEdit_versoes($id){
		$d= new dbElemento;
		$linha = $d->getLinha($this->tipo, $id);
	
		$estado = $this->req['estado'];
		$estado_old = $linha['estado'];
		$idAntigo = $linha['idAntigo'];

		if(($estado_old == 1 && $estado == 0)){
			$this->req['id'] ="";
			$this->req['idAntigo'] = $id;
			$d->setInsert($this->tipo, $this->idCat, $this->req);
		}
		else if($estado_old == 0 && $estado == 1){
			$this->guardarEdit($id);
			$tipo = $this->tipo;
			$sql = "update $tipo set estado = 3 where id = $idAntigo";
			mysql_query($sql);
		}else if($estado_old == 1 && $_SESSION['authdata']['super'] != 1){
			$this->req['id'] ="";
			$this->req['idAntigo'] = $id;
			$this->req['estado'] = 0;
			$d->setInsert($this->tipo, $this->idCat, $this->req);
		}
		else {
			$this->guardarEdit($id);	
		}	
	}
	
	
	function apagar($id=""){
		$d= new dbElemento;
		$linhasMarcadas = $this->req['linhasMarcadas'];
		if (($id>0)){
			//echo "id > 0";
        	$d->setDelete($this->tipo, $id);
		} else if (is_array($linhasMarcadas)){
			foreach ($linhasMarcadas as $lid){
				$d->setDelete($this->tipo, $lid);
			}
		}
		
		if (strpos($this->tipo,"ategoria")){		
		?><script>	$("#nav").load("nav.php");	</script><?
        }
		
/*		?><!-- <script>parent.nav.document.location.reload()</script>  --><?*/
		set_msg("Registo apagado com sucesso.");
        $this->listar();
	}
	
	function novo(){
        $this->editar();
    }

	function editar($id=""){		
        $db= new dbElemento;
		$linha=@$db->getLinha($this->tipo, $id);
		$f= new form($id, $linha , $this->req);
		$f->toolbars();
		$f->titulo("",1);
		$f->campoTexto("Título","titulo" );
		$f->campoAreaTexto("Texto peq. lista","lead" );
		$f->campoData("Data", "data");
		$f->campoImagem2("Imagem", "imagem", 70, 70);
		$f->campoHTML("Texto", "texto");
		$f->campoValor("ordem", $linha["ordem"]);
		//$f->campoData("Data Início", "dataInicio");
		//$f->campoData("Data Fim", "dataFim");
		//$f->campoSimNao("Acesso Público", "publico", 0);
		//$f->campoSimNao("Activo", "activo", 0);
		$f->mostra();
	}

	function acima($id=""){
        $db= new dbElemento;
		$db->setAcima($this->tipo, $this->idCat, $id);
		set_msg("Registo movido para cima.");
		$this->listar();
	}
	
	function abaixo($id=""){
        $db= new dbElemento;
		$db->setAbaixo($this->tipo, $this->idCat, $id);
		set_msg("Registo movido para baixo.");
		$this->listar();
	}
	
    function procurar(){
      $this->listar();
    }
    
	function cancelar(){
		$this->listar();
	}
	
	function fechar(){
		$this->listar();
	}
	
	function ok(){
      $this->listar();
    }
	
	function listar(){

        $campos=array("Nr"=>"id","Titulo"=>"titulo", "Data"=>"data", "Ordem"=>"ordem");
        $db= new dbElemento;
        $dados=$db->getLista($this->tipo, $this->idCat, $campos , "ordem", 2 ,$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']);
        $f= new lista($campos, $dados, $this->req);
		$f->toolbars();
		$f->titulo();
		//$f->cabeca();
		$f->cabecaSimples();
        //$f->filtros();
        $f->tabela(true, true, true, 2);
		$f->mostra();
	}
	
	function copiar(){
		$linhas=($_REQUEST['linhasMarcadas']);
		$newIdCat=$_REQUEST['newIdCat'];
		$tam=sizeof($linhas);
		$db= new dbElemento;
		if ($tam)
		foreach ($linhas as $l){
			$db->setCopiar($this->tipo, $l,$this->idCat, $newIdCat);
			$this->set_perma($this->tipo, $l);	
		}
		set_msg("Registo copiado com sucesso.");
		$this->listar();
	}

	function mover(){
		$linhas=($_REQUEST['linhasMarcadas']);
		$newIdCat=$_REQUEST['newIdCat'];
		$tam=sizeof($linhas);
		$db= new dbElemento;
		if ($tam)
		foreach ($linhas as $l){
			$db->setMover($this->tipo, $l,$this->idCat, $newIdCat);
			$this->set_perma($this->tipo, $l);		
		}
		set_msg("Registo movido com sucesso.");
		$this->listar();
	}
	
	
	function set_perma($tipo, $id){
			$db= new dbElemento;			
			$linha=$db->getlinha($tipo, $id);
			
			$permatitulo=generate_seo_titulo($linha['titulo']);
			$permalink=generate_seo_link_cat("categoria", $permatitulo, $linha['idCat']);
			$db->setLinhaCampo($tipo, $id, 'permatitulo', $permatitulo);
			$db->setLinhaCampo($tipo, $id, 'permalink', $permalink);
	}
}
?>
