<?php
//=================================================================
// KOOBI R7 - CMS - PORTALSOFTWARE(c) DREAM4(r) 
// HTTP://WWW.DREAM4.DE
//=================================================================
// ACHTUNG!
// DIESER PROGRAMMCODE IST URHERRECHTLICH GESCHUETZT
// DIE URHEBERRECHTE LIEGEN BEI DEN JEWEILIGEN AUTOREN.
// AENDERUNGEN IN DIESER DATEI ERFOLGEN AUF EIGENE GEFAHR!
// ES IST NICHT GESTATTET, DEN COPYRIGHTHINWEIS ZU AENDERN ODER ZU
// ENTFERNEN. NUR WENN SIE EINE COPYRIGHTHINWEIS-ENTFERNUNG BESTELLT
// HABEN, DUERFEN SIE DIESEN ENTFERNEN.
//================================================================
// BEI FRAGEN WENDEN SIE SICH BITTE AN: KONTAKT@DREAM4.DE
//=================================================================
define("THUMB", 1);
$inc = substr(dirname(__FILE__), 0, -6) . "";
$dir = getcwd();

if(defined('BASE_DIR')) exit;
define("BASE_DIR", $inc);

include_once("$inc/config/db.config.php");
include_once("$inc/class/Database.Class.php");
include_once(BASE_DIR . '/functions/Func.Session.php');
session_start();
session_name('SID');
include_once("$inc/functions/Func.Globals.php");
define("PREFIX", $config['dbprefix']);

$GLOBALS['db'] = new DB($config['dbhost'], $config['dbuser'], $config['dbpass'], $config['dbname']);

//=================================================================
// Generell Einstellungen in Array legen
//=================================================================
$sql_globals = $GLOBALS['db']->Query("SELECT * FROM " . PREFIX . "_galerie_einstellungen LIMIT 1" );
$row_globals = $sql_globals->fetcharray();
$GLOBALS['gal_settings'] = $row_globals;


define("THUMB", 1);
$_REQUEST['img_id'] = (isset($_REQUEST['img_id']) && !empty($_REQUEST['img_id']) && is_numeric($_REQUEST['img_id'])) ? eregi_replace('[^0-9]', '', $_REQUEST['img_id']) : '';
$_REQUEST['smode']  = (isset($_REQUEST['smode']) && is_numeric($_REQUEST['smode'])) ? $_REQUEST['smode'] : 'def';


if($_REQUEST['img_id']=='' && !@isset($_REQUEST['noimage'])) exit;

switch($_REQUEST['smode'])
{
	case 1 : 
		if(!permission('gallery')) exit;
		$thumb_w    = $GLOBALS['gal_settings']['Bilder_Klein']; 
		$thumb_pre = 'small_';
		$do_watermark = 0;
	break;
	
	case 2 : 
		if(!permission('gallery')) exit;
		$thumb_w   = $GLOBALS['gal_settings']['Bilder_Mittel']; 
		$thumb_pre = 'medium_';
		$do_watermark = 0;
	break;
	
	case 3 : 
		if(!permission('gallery')) exit;
		$thumb_w   = $GLOBALS['gal_settings']['Bilder_Gross']; 
		$thumb_pre = 'normal_';
		$do_watermark = 1;
	break;
	
	case 'def': 
	default: 
		if(!permission('gallery')) exit;
		$thumb_w = $GLOBALS['gal_settings']['Bilder_Mittel']; 
		$thumb_pre = 'medium_';
		$do_watermark = 0;
	break;
}

$w = $thumb_w;
	
if (isset($_REQUEST['type']) && $_REQUEST['type'] == "inline")
{
	
	$uid = $_REQUEST['img_id'].'.jpg';
	
	if(file_exists(BASE_DIR . '/cache/'.$uid))
	{
		readfile(BASE_DIR . '/cache/'.$uid);
		exit;
	}
	
    header ("Content-type: image/jpeg");
	$end = ".jpg";
	$q = BASE_DIR . "/uploads/inlineshots/" . $_REQUEST['img_id']. "";
    
	$quelle = imagecreatefromjpeg(BASE_DIR . "/uploads/inlineshots/" . $_REQUEST['img_id'] . '.jpg');
	header ("Content-type: image/jpeg");
		
	// Erzeugung der Bild - Id
	// Existiert das Bild im Cache, wird es einfach ausgelesen
	

} else {
	
	$sql = $GLOBALS['db']->Query("SELECT Bildname FROM " . PREFIX . "_galerie_bilder WHERE Id='" . @$_REQUEST['img_id'] . "'");
	$row = $sql->fetchrow();
	if (!is_object($row)) exit;
	$end = substr($row->Bildname, -4);
	$q = BASE_DIR . "/uploads/galerie/" . $row->Bildname . "";
	
	
	
	
	// Erzeugung der Bild - Id
	// Existiert das Bild im Cache, wird es einfach ausgelesen
	$uid = md5($thumb_pre . $row->Bildname);
	
	
	switch($end)
	{
		case '.jpg':
		$q = BASE_DIR . "/uploads/galerie/" . $row->Bildname . "";
		$quelle = imagecreatefromjpeg($q);
		header ("Content-type: image/jpeg");
		break;
		
		case '.png':
		$q = BASE_DIR . "/uploads/galerie/" . $row->Bildname . "";
		$quelle = @imagecreatefrompng($q);
		header ("Content-type: image/png");
		break;
	
		case '.gif':
		$q = BASE_DIR . "/uploads/galerie/" . $row->Bildname . "";
		$quelle = @imagecreatefromgif($q);
		header ("Content-type: image/gif");
		break;
		
		default:
		$quelle = $q;
		header ("Content-type: image/gif");
		break;
	}
	
	if(file_exists(BASE_DIR . '/cache/'.$uid) && (!@isset($_REQUEST['time'])))
	{
		readfile(BASE_DIR . '/cache/'.$uid);
		exit;
	}
} 

$sz        = $thumb_w;
$im_width  = imageSX($quelle);
$im_height = imageSY($quelle);
$factor    = $sz / $im_width;
$w         = $sz;
$h         = $im_height * $factor;

if (function_exists('imagecreatetruecolor'))
{
    $ziel = imagecreatetruecolor($w, $h);
	if($end=='.png' && function_exists('imagesavealpha'))
	{
		imagealphablending($ziel, false);
        $colorTransparent = imagecolorallocatealpha($ziel, 0, 0, 0, 127);
        imagefill($ziel, 0, 0, $colorTransparent);
        imagesavealpha($ziel, true);
	} elseif($end=='.gif') {
		$trnprt_indx = imagecolortransparent($quelle);
		if ($trnprt_indx >= 0)
		{
			$trnprt_color = imagecolorsforindex($quelle, $trnprt_indx);
			$trnprt_indx = imagecolorallocate($ziel, $trnprt_color['red'], $trnprt_color['green'], $trnprt_color['blue']);
			imagefill($ziel, 0, 0, $trnprt_indx);
			imagecolortransparent($ziel, $trnprt_indx);
		}
	} else {
		$ziel_bg = imagecolorallocate($ziel,255,255,255);
		imagefill($ziel , 0, 0, $ziel_bg);
	}
} else {
    $ziel = imagecreate($w, $h);
} 

if(function_exists('imagecopyresampled'))
{
	@imagecopyresampled($ziel, $quelle, 0, 0, 0, 0, $w, $h, imagesx($quelle), imagesy($quelle));
} else {
	@imagecopyresized($ziel, $quelle, 0, 0, 0, 0, $w, $h, imagesx($quelle), imagesy($quelle));
}

$wm = (file_exists(BASE_DIR . '/uploads/watermark.png') && function_exists('imagecolortransparent') && function_exists('imagecreatefrompng')) ? 1 : 0;
if ($wm==1 && $row_globals['Wasserzeichen_Vorschau']==1 && $do_watermark==1) 
{
	$insert = imagecreatefrompng(BASE_DIR . '/uploads/watermark.png');
	imagecolortransparent($insert, imagecolorexact($insert, 255, 0, 255));

	$insert_x = imagesx($insert);
	$insert_y = imagesy($insert);

	$dest_x = imagesx($ziel) - $insert_x - 0;
	$dest_y = imagesy($ziel) - $insert_y - 0;

	imagecopymerge($ziel, $insert, $dest_x, $dest_y, 0, 0, $insert_x, $insert_y, $row_globals['Transparenz']);
} 

ob_start();
switch($end)
{
	case '.jpg':
	$bild = @imagejpeg($ziel,'',99);
	break;

	case '.png':
	$bild = @imagepng($ziel);
	break;
	
	case '.gif':
	$bild = @imagegif($ziel);
	break;
	
	default:
	$bild = $quelle;
	break;
}

$a = ob_get_contents();
ob_end_clean();
if(!@isset($_REQUEST['time']))
{
	$fp = fopen(BASE_DIR . "/cache/".$uid, "wb+");
	@chmod(BASE_DIR . "/cache/".$uid,0777);
	fwrite($fp, $a);
	fclose($fp);
}
if(@isset($_REQUEST['time'])) ob_end_flush();
echo $a;
exit();
?>