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

class imagem extends elemento{
	
	
	function imagem() {  }
    
    function trataFicheiro($c){
    	if (is_array($_FILES[$c])){
			if ($_FILES[$c]['error'] == UPLOAD_ERR_OK) {

				$tmp_name = $_FILES[$c]["tmp_name"];
                $name = remove_acentos_espacos($_FILES[$c]["name"]);
									
				$db= new dbElemento;
				$temp=$db->getLinha("imagemCategoria", $this->req['idCat']);

				//$path="../netimages/image/" . $temp['categoria'] ."/";
				$path="../netimages/image/";

				if (!is_dir($path)) mkdir ($path, 757);

				$img= new image;
                $myimagem=$img->save_image($tmp_name, "" , $path , $name);
             	//echo $myimagem;
                if ($myimagem == "") return false;
                
				$prepath="../";
				if (strstr($myimagem,$prepath)) {$myimagem=substr($myimagem,strlen($prepath));}
				$this->req['imagemcortar']=$myimagem;
				return basename($myimagem);
            }
		}
		return false;
    }
	
    function guardar_crop($id){
    	print $this->req['imagemcrop'];
    	print $this->req['imagem'];
    	print $this->req['thumb'];
    	if (is_file($this->req['imagemcrop'])){
    		copy($this->req['imagemcrop'], $this->req['imagem']);
    		unlink ($this->req['imagemcrop']);
    	}
    	
    	if (is_file($this->req['thumb']))unlink ($this->req['thumb']);
    	
		$this->editar($id);
    }
    
	function guardarNovo(){
//		$imagem=$this->trataFicheiro("imagem");
//		if ($imagem){
//			$this->req['imagem']=$imagem;
		$id_novo = parent::guardarNovo();
//		} else //print "Tipo de Imagem não suportada";
//			set_msg("Tipo de Imagem não suportada.");
		return $id_novo;
	}
	
	function guardarEdit($id){
		//$imagem=$this->trataFicheiro("imagem");
		//if ($imagem){		
		//	$this->req['imagem'] = $imagem ? $imagem : $this->req['imagem_old'];
		$id_novo = parent::guardarEdit($id);
		//} else set_msg("Tipo de Imagem não suportada.");
		return $id_novo;
	}
	
	
	function guardar($id=""){
		$imagem = $this->trataFicheiro("imagem");
		$this->req['imagem'] = $imagem ? $imagem : $this->req['imagem_old'];
		if ($this->req['imagem']){		
			$novo_id = parent::guardar($id);
		} else{
			set_msg("Tipo de Imagem não suportada.");
			$this->editar($id);
		}
		return $novo_id;
	}
	
	/*function cortar($imagem){
		$_REQUEST["imageName"]=$imagem;
		include "include/ImageEditor/index.php" ;
	}*/
	
	function apagar($id=""){
		$d= new dbElemento;

		$temp=$d->getLinha("imagemCategoria", $this->req['idCat']);
		//$path="../netimages/image/" . $temp['categoria'] ."/";
		$path="../netimages/image/";
			
		if (($id>0)){
			$temp=$d->getLinha("imagem", $id);
			$file=$temp['imagem'];
			@unlink ($path . $file);
			@unlink ($path ."thumb/". $file);
        	$d->setDelete($this->tipo, $id);
		} else if (is_array($this->req['linhasMarcadas'])){
			foreach ($this->req['linhasMarcadas'] as $lid){
				$temp=$d->getLinha("imagem", $lid);
				$file=$temp['imagem'];
				unlink ($path . $file);
				unlink ($path ."thumb/". $file);
				$d->setDelete($this->tipo, $lid);
			}
		}
		
		?><script>parent.nav.document.location.reload()</script><?
		
        $this->listar();
	}
	
	function editar($id="") {
		//print_r($this->req);
        
        $db= new dbElemento;
        $dados=$db->getListaCategorias("imagemCategoria", "*");
		foreach ($dados as $l) $dadosSel[$l['id']]=$l['categoria'];

        $linha = @$db->getLinha($this->tipo, $id);
        //print_r($linha);
		$idCat=$linha['idCat']?$linha['idCat']:$this->idCat;
		$this->req['idCat']=$idCat;
		$this->idCat=$idCat;
		
		$f= new form($id, $linha , $this->req);
		$f->toolbars("Guardar", 0, $this->popup);
		$f->titulo("Imagens / ",1);
		
		if(!$id) $required = "required"; else $required ="";
		$f->campoImagem("Imagem", "imagem", 800, 600,"", $required);
		/*if ($id) {?>
			<p><label for="ratio">Relação do crop:</label><input type="radio" name="ratio" value="4:3"/>4:3
			<input type="radio" name="ratio" value="1:1"/>1:1
			<input type="radio" name="ratio" value=""/>Qualquer</p><?
			$f->campoBotao2("Crop", "crop");
		}*/
		$f->campoSeleccao("Categoria", "idCat", $dadosSel, $idCat, "required");
		$f->campoTexto("Título","titulo" );
		$f->campoAreaTexto("Palavras","palavras" );
		
		?><input type="hidden" name="x1" value="" id="x1" />
		<input type="hidden" name="y1" value="" id="y1" />
		<input type="hidden" name="x2" value="" id="x2" />
		<input type="hidden" name="y2" value="" id="y2" />
		<input type="hidden" name="w" value="" id="w" />
		<input type="hidden" name="h" value="" id="h" /><?
				
		$f->mostra();

		?><script type="text/javascript">
		var rel='4:3';
		$("input[@name='ratio']").change( function() { rel=$(this).val();  optimgAreaSelect(); } );

		$(window).load(function () { optimgAreaSelect() }); 
		
		function optimgAreaSelect(){
				$('img#imagem').imgAreaSelect({ 
				selectionColor: 'blue' , aspectRatio: rel, onSelectChange: preview
				//selectionColor: 'blue' , onSelectChange: preview
			}); 
		}
		
		function preview(img, selection) { 
					$('#x1').val(selection.x1);
					$('#y1').val(selection.y1);
					$('#x2').val(selection.x2);
					$('#y2').val(selection.y2);
					$('#w').val(selection.width);
					$('#h').val(selection.height);
		} 
		
		$(document).ready(function () { 
			$('#crop').click(function() {
				var x1 = $('#x1').val();
				var y1 = $('#y1').val();
				var x2 = $('#x2').val();
				var y2 = $('#y2').val();
				var w = $('#w').val();
				var h = $('#h').val();
				if(x1=="" || y1=="" || x2=="" || y2=="" || w=="" || h==""){
					alert("Deve fazer uma selecao");
					return false;
				}else{
					return true;
				}
			});
		}); 
		
		</script><?
		
    }

    function crop($id){

		$x1 = $_POST["x1"];
		$y1 = $_POST["y1"];
		$x2 = $_POST["x2"];
		$y2 = $_POST["y2"]; 
		$w = $_POST["w"];
		$h = $_POST["h"];


		$meio="image";
		$db= new dbElemento;
		$temp=$db->getLinha("imagemCategoria", $this->req['idCat']);
		$path="../netimages/". $meio. "/" . $temp['categoria'] ."/";
		
		$thumb=   $path. "thumb/" . $this->req['imagem_old'] ;
		$imagem= $path . $this->req['imagem_old'];
		$imagemcrop= "../netimages/temp/" . $this->req['imagem_old'];
		
		$img= new image;
        $myimagem=$img->crop($imagem, $imagemcrop,$w,$h,$x1,$y1);

        $f= new form($id, $linha , $this->req);
		$f->toolbars("Guardar_crop");
		$f->titulo("Imagens / ",1);
		$f->label("Preview", "Deseja fazer estas alteracoes?");
		?><img src="<?=$imagemcrop ?>" /><?
		
		$f->campoValor("thumb", $thumb );
		$f->campoValor("imagemcrop", $imagemcrop );
		$f->campoValor("imagem", $imagem);
		$f->campoValor("id", $id );
		
		$f->mostra("guardar_crop");     	
    	
    }
    
    
    
	function listar() {
        $campos=array("Nº"=>"id","Imagem"=>"imagem","Titulo"=>"titulo","Palavras"=>"palavras", "IdCat"=>"idCat");
        
        $db= new dbElemento;
        
		//print$this->idCat;
		
        $dados=$db->getLista($this->tipo, $this->idCat, $campos , "imagem", $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 listaiw($campos, $dados, $this->req);
		$f->toolbars();
		//$f->cabeca();
		$f->titulo("Imagens / ");
		//////$f->cabecaSimples();
        //$f->filtros();
        $f->tabela(false, false);
		$f->mostra();
    }


}
?>

