<?php
class images_mod{

	var $req;
	
	function images_mod($req){
		$this->req = $req;
	}	
	
	function trataimagem_escolhe ($campo, $path){
		$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);
			
			$img= new image;
			$myimagem=$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->trataCopiasImagens($path, $img, $myimagem, $old_file); //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/"){
    	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);

				$img= new image;
				$myimagem=$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->trataCopiasImagens($path, $img, $myimagem, $old_file); //NOVO
				
				$prepath="../";
				if (strstr($myimagem,$prepath)) {$myimagem=substr($myimagem,strlen($prepath));}

				return $myimagem;
            }
		}
		return false;
    }
	
	
   //// ficheiros 
   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){
    	if(!$this->req[$campo]){
			$this->req[$campo]=$this->req[$campo .'_old'];
			if($this->req[$campo . '_apagar'])$this->req[$campo]="";
		} 	
		return $this->req[$campo];
    }
    
	//////////////////////////////////////////////////////////////////////////////// private functions
    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]);
			}
    	}
    }
}
?>