<?php
include_once ("include/images/images.class.php");
include_once ("include/files/files.class.php");

class images_mod{

	var $req, $img;
	
	function images_mod($req){
		$this->req = $req;
	}	
	
	function trataimagem_escolhe ($campo, $path=""){
		//print "trataimagem $campo old ".$this->req[$campo .'_old']."<br>";
		$db= new dbElemento;
		$user=$db->getLinha("user", $_SESSION['authdata']['id']);
		$use_rep=$user['repositorio'];

		if ($use_rep){	
			$myimagem = $this->trataimagem($campo, $path);
		} else {
			$myimagem= $this->trataimagem_upload($campo, $path);
		}

		return $myimagem;
	}
	
    function trataimagem ($campo, $path=""){
    	if($this->req[$campo]){
			$imagem=$this->req[$campo];
			
			$old_file="../". $imagem;
			$dest_file=$path . "/" . basename($imagem);
			if (!is_dir($path)) mkdir($path, 777);
			//if (!is_dir($path. "thumb/"))	mkdir($path . "thumb/", 777);
			
			$this->img= new image;
			$myimagem=$this->img->thumbnail2($old_file, $dest_file, $this->req[$campo . '_lar'], $this->req[$campo .'_alt']);
			//$img->thumbnail2($myimagem, $path ."thumb/" . basename($myimagem), 100, 100);   // estava a 77

			$this->trataCopiasImagensMod($myimagem, $path); //NOVO
			
			$prepath="../";
			if (strstr($myimagem,$prepath)) {$myimagem=substr($myimagem,strlen($prepath));}
			
			$this->req[$campo]=$myimagem;
		} else {
			$this->req[$campo]=$this->req[$campo .'_old'];
			if($this->req[$campo . '_apagar'])$this->req[$campo]="";
		} 	
		return $this->req[$campo];
    }
	
	
	function trataimagem_upload($campo, $path="../netimages/image/"){
		//print "trataimagem $campo old ".$this->req[$campo .'_old']."<br>";
		
		//print_rr($_FILES);
	
    	if (is_array($_FILES[$campo])){
			if ($_FILES[$campo]['error'] == UPLOAD_ERR_OK) {

				$old_file = $_FILES[$campo]["tmp_name"];
				$dest_name=$path . $_FILES[$campo]["name"];				
				if (!is_dir($path)) mkdir($path, 777);
				//if (!is_dir($path. "thumb/"))	mkdir($path . "thumb/", 777);
				
				
				//print $old_file .".". $dest_name;

				$this->img= new image;
				$myimagem=$this->img->thumbnail2($old_file, $dest_name , $this->req[$campo . '_lar'], $this->req[$campo .'_alt']); 
				//$img->thumbnail2($myimagem, $path ."thumb/" . basename($myimagem), 100, 100);   // estava a 77
				
				$this->trataCopiasImagensMod($myimagem, $path);  //NOVO
				
				
				$prepath="../";
				if (strstr($myimagem,$prepath)) {$myimagem=substr($myimagem,strlen($prepath));}

				return $myimagem;
            } else {
				$myimagem=$this->req[$campo .'_old'];
				//if($this->req[$campo . '_apagar'])$this->req[$campo]="";
				//print $myimagem;
				if ($this->req[$campo .'_apagar']) $myimagem="";
				return $myimagem;
				
			}
		}
		return false;
    }
	
	
   //// ficheiros //////////////////////////////////////////////////////////////////////////////////////////7
   	function tratafile_escolhe ($campo, $path=""){
		//print "tratafile $campo old ".$this->req[$campo .'_old']."<br>";
		$db= new dbElemento;
		$user=$db->getLinha("user", $_SESSION['authdata']['id']);
		$use_rep=$user['repositorio'];

		if ($use_rep){	
			$myfile = $this->tratafile($campo, $path);
		} else {
			$myfile= $this->tratafile_upload($campo, $path);
		}

		return $myfile;
	}
   
   
   function tratafile ($campo){
    	if(!$this->req[$campo]){
			$this->req[$campo]=$this->req[$campo .'_old'];
			if($this->req[$campo . '_apagar'])$this->req[$campo]="";
		} 	
		return $this->req[$campo];
    }
	
	
	//TODO
	function tratafile_upload ($campo){
	
		//print "trataimagem $campo old ".$this->req[$campo .'_old']."<br>";
    	
		if (is_array($_FILES[$campo])){
			if ($_FILES[$campo]['error'] == UPLOAD_ERR_OK) {
				
				$tmp_name = $_FILES[$campo]["tmp_name"];
                $name = remove_acentos_espacos($_FILES[$campo]["name"]);
                //$tipo = $_FILES[$campo]["type"];
                //$ext= substr($_FILES[$campo]["name"],-3);

				$db= new dbElemento;
				$path="../netimages/file/";

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

				$img= new file;
                $myfile=$img->save_file($tmp_name, "" , $path , $name);
                if ($myfile == "") return false;
								
				$prepath="../";
				if (strstr($myfile,$prepath)) {$myfile=substr($myfile,strlen($prepath));}
				return $myfile;
            } else {
				$myfile=$this->req[$campo .'_old'];
				if($this->req[$campo . '_apagar'])$myfile="";
				return $myfile;
			}
		}
		return false;
    }
    
	//////////////////////////////////////////////////////////////////////////////// private functions
    function trataCopiasImagensMod($imagem_original, $path=""){
    	global $tamanhos_copias_imgs;

    	$path = rtrim($path, '/');
		$prepath="../netimages/";
		if (strstr($path,$prepath)) {$mod=substr($path,strlen($prepath));}
		
    	$maxTamanhos = sizeof($tamanhos_copias_imgs[$mod]);

    	if($maxTamanhos){		
			$newbasename = basename($imagem_original);
			for($i=0;$i<$maxTamanhos;$i++){
				$newpath = $path.$i;
				$newimg = $newpath . "/".$newbasename;
				if (!is_dir($newpath)) mkdir($newpath, 777);
				$this->img->thumbnail2($imagem_original, $newimg, $tamanhos_copias_imgs[$mod][$i][0], $tamanhos_copias_imgs[$mod][$i][1]);

			}
    	}
    }
	
	function trataCopiasImagens($path, $img, $myimagem, $dest_file){
    	global $tamanhos_copias_imgs;
    	
    	$modcbarra = strrchr($path, '/');
    	$mod = substr($modcbarra, 1, strlen($modcbarra));
    	
    	if($tamanhos_copias_imgs[$mod]){
    		$maxTamanhos = sizeof($tamanhos_copias_imgs[$mod]);
			$newbasename = basename($myimagem);
			for($i=0;$i<$maxTamanhos;$i++){
				$newpath = $path . $i;
				$newimg = $newpath. "/" .$newbasename;
				if (!is_dir($newpath)) mkdir($newpath, 777);
				$img->thumbnail2($dest_file, $newimg, $tamanhos_copias_imgs[$mod][$i][0], $tamanhos_copias_imgs[$mod][$i][1]);

			}
    	}
    }
}
?>