<?php
$map 		= 'fotoalbum';
$afbeeldingen	= array();

$hoogte_klein 	= 112;
$breedte_klein 	= 150;

$hoogte_groot 	= 400;
$breedte_groot 	= 700;

$perpagina	= 12;

if(isset($_GET['album']) && !empty($_GET['album']))
{
    $tmp = explode('/',$_GET['album']);
    
    if($tmp[0] == $map)
    {
	$map = str_replace(array('.', '\\', ':'), '', $_GET['album']);
    }    
}

if(isset($_GET['paginanr']) && !empty($_GET['paginanr']) && ctype_digit($_GET['paginanr']))
{
    $paginanr = $_GET['paginanr'];
}else{
    $paginanr = 1;
}

if(isset($_GET['afbeelding']) && !empty($_GET['afbeelding']))
{
    $afbeelding = $_GET['afbeelding'];
}else{
    $afbeelding = NULL;
}

function thumbnail($afbeelding, $type)
{
    
    $map 		= $afbeelding['dirname'];
    $bestandsnaam 	= $afbeelding['basename'];
    
    list($type, $hoogte, $breedte) = $type;
    list($breedte_origineel, $hoogte_origineel, $extensie) = getimagesize($map.'/'.$bestandsnaam);
    
    if(!is_dir($map.'/thumbs/'))
    {
	mkdir($map.'/thumbs/', 0777);
	chmod($map.'/thumbs/', 0777);
    }
    
    if (($breedte_origineel < $hoogte_origineel) && ($breedte > $hoogte))
    {
	$breedte = ($hoogte / $hoogte_origineel) * $breedte_origineel;
    }else{
	$hoogte = ($breedte / $breedte_origineel) * $hoogte_origineel;
    }

    $afbeelding = imagecreatetruecolor($breedte, $hoogte);

    switch($extensie) 
    {
	case 1:
	    //gif
	    $afbeelding_origineel = imagecreatefromgif($map.'/'.$bestandsnaam);
	    imagecopyresampled($afbeelding, $afbeelding_origineel, 0, 0, 0, 0, $breedte, $hoogte, $breedte_origineel, $hoogte_origineel);
	    imagegif($afbeelding, $map.'/thumbs/'.$type.'_'.$bestandsnaam);
	break;
	case 2:
	    //jpg
	    $afbeelding_origineel = imagecreatefromjpeg($map.'/'.$bestandsnaam);
	    imagecopyresampled($afbeelding, $afbeelding_origineel, 0, 0, 0, 0, $breedte, $hoogte, $breedte_origineel, $hoogte_origineel);
	    imagejpeg($afbeelding, $map.'/thumbs/'.$type.'_'.$bestandsnaam, 80);
	break;
	case 3:
	    //png
	    $afbeelding_origineel = imagecreatefrompng($map.'/'.$bestandsnaam);
	    
	    $background = imagecolorallocate($afbeelding, 0, 0, 0);
	    imagecolortransparent($afbeelding, $background); // make the new temp image all transparent
	    imagealphablending($afbeelding, false); // turn off the alpha blending to keep the alpha channel
	    imagesavealpha($afbeelding, true);
	    imagecopyresampled($afbeelding, $afbeelding_origineel, 0, 0, 0, 0, $breedte, $hoogte, $breedte_origineel, $hoogte_origineel);
	    imagepng($afbeelding, $map.'/thumbs/'.$type.'_'.$bestandsnaam);
	break;
    }
    
    chmod($map.'/thumbs/'.$type.'_'.$bestandsnaam, 0777);
    return TRUE;
}

$tmp = NULL;
foreach(explode('/',$map) as $tmp2)
{    
    echo '>> <a href="?pagina=fotoalbum&amp;album='.$tmp.$tmp2.'">'.ucfirst($tmp2).'</a> ';
    $tmp = $tmp.$tmp2.'/';
}

echo '<br><br>'.PHP_EOL;

if(!$bestanden = glob($map.'/*.*'))
{
    $bestanden = array();
}

foreach($bestanden as $bestand)
{
    $gegevens 	= getimagesize($bestand);
    $extensie 	= $gegevens['mime'];

    if($extensie == 'image/jpeg' || $extensie == 'image/gif' || $extensie == 'image/png')
    {
	$afbeeldingen[] = $bestand;
    }	
}

$aantalfotos = count($afbeeldingen);

if(isset($afbeelding))
{
    foreach($afbeeldingen as $id => $naam)
    {
	if(basename($naam) == $afbeelding)
	{
	    $fotonr = $id;
	}
    }
    
    if(isset($fotonr))
    {
	$afbeelding = pathinfo($afbeeldingen[$fotonr]);
	
	if($fotonr > 0)
	{
	    $vorige_afbeelding 	= pathinfo($afbeeldingen[$fotonr-1]);
	    
	    echo '<a href="?pagina=fotoalbum&amp;album='.$map.'&amp;afbeelding='.$vorige_afbeelding['basename'].'" title="Ga naar foto '.$vorige_afbeelding['basename'].'">&lt;&lt; Vorige</a>';
	}else{
	    echo '&lt;&lt; Vorige';
	}
    
	echo '&nbsp;&nbsp;&nbsp; Foto '.($fotonr +1).' van '.$aantalfotos.' &nbsp;&nbsp;&nbsp;';
	
	if($fotonr < $aantalfotos -1)
	{
	    $volgende_afbeelding = pathinfo($afbeeldingen[$fotonr+1]);
	    
	    echo '<a href="?pagina=fotoalbum&amp;album='.$map.'&amp;afbeelding='.$volgende_afbeelding['basename'].'" title="Ga naar foto '.$volgende_afbeelding['basename'].'">Volgende &gt;&gt;</a><br>';
	}else{
	    echo 'Volgende &gt;&gt;<br>'.PHP_EOL;
	}
	
	if(!file_exists($afbeelding['dirname'].'/thumbs/groot_'.$afbeelding['basename']))
	{
	    if(thumbnail($afbeelding, array('groot', $hoogte_groot, $breedte_groot)))
	    {
		echo '<a href="'.$afbeelding['dirname'].'/'.$afbeelding['basename'].'" target="_BLANK"><img src="'.$afbeelding['dirname'].'/thumbs/groot_'.$afbeelding['basename'].'" title="'.$afbeelding['basename'].'" alt="'.$afbeelding['basename'].'" class="thumbs"></a>'.PHP_EOL;
	    }
	}else{
	    echo '<a href="'.$afbeelding['dirname'].'/'.$afbeelding['basename'].'" target="_BLANK"><img src="'.$afbeelding['dirname'].'/thumbs/groot_'.$afbeelding['basename'].'" title="'.$afbeelding['basename'].'" alt="'.$afbeelding['basename'].'" class="thumbs"></a>'.PHP_EOL;
	}
    }else{
	echo '<p>Sorry, deze foto bestaat niet!</p>';
    }
}else{
    
    if(!$mappen = glob($map.'/*', GLOB_ONLYDIR))
    {
	$mappen = array();
    }
    
    foreach($mappen as $album)
    {
	if(basename($album) != 'thumbs')
	{
	    echo '<a href="?pagina=fotoalbum&album='.$album.'">'.ucfirst(basename($album)).'</a><br>'.PHP_EOL;
	}
    }

    if($aantalfotos > $perpagina)
    {
	if ($paginanr > 1)
	{
	    echo '<a href="?pagina=fotoalbum&amp;album='.$map.'&amp;paginanr='.($paginanr - 1).'" title="Ga naar pagina '.($paginanr - 1).'">&lt;&lt; Vorige</a>';
	}else{
	    echo '&lt;&lt; Vorige';
	}
    
	echo '&nbsp;&nbsp;&nbsp; Pagina '.$paginanr.' van '.ceil($aantalfotos/$perpagina).' &nbsp;&nbsp;&nbsp;';
	
	if ($paginanr < ceil(($aantalfotos)/$perpagina))
	{
	    echo '<a href="?pagina=fotoalbum&amp;album='.$map.'&amp;paginanr='.($paginanr + 1).'" title="Ga naar pagina '.($paginanr + 1).'">Volgende &gt;&gt;</a><br>';
	}else{
	    echo 'Volgende &gt;&gt;<br>'.PHP_EOL;
	}
    }
    
    for($fotonr = (($paginanr -1) * $perpagina); $fotonr <= ((($paginanr -1) * $perpagina) + ($perpagina - 1)) && $fotonr < count($bestanden); $fotonr += 1)
    {
	$afbeelding = pathinfo($afbeeldingen[$fotonr]);
	
	if(!file_exists($afbeelding['dirname'].'/thumbs/klein_'.$afbeelding['basename']))
	{
	    if(thumbnail($afbeelding, array('klein', $hoogte_klein, $breedte_klein)))
	    {
		echo '<a href="?pagina=fotoalbum&amp;album='.$map.'&amp;afbeelding='.$afbeelding['basename'].'"><img src="'.$afbeelding['dirname'].'/thumbs/klein_'.$afbeelding['basename'].'" title="'.$afbeelding['basename'].'" alt="'.$afbeelding['basename'].'" class="thumbs"></a>'.PHP_EOL;
	    }
	}else{
	    echo '<a href="?pagina=fotoalbum&amp;album='.$map.'&amp;afbeelding='.$afbeelding['basename'].'"><img src="'.$afbeelding['dirname'].'/thumbs/klein_'.$afbeelding['basename'].'" title="'.$afbeelding['basename'].'" alt="'.$afbeelding['basename'].'" class="thumbs"></a>'.PHP_EOL;
	}
    }
}
?>