HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
File: D:/HostingSpaces/SBogers10/verrassendveel.komma.pro/wwwroot/admin/php/media.php
<?php

/* 
	media.php 

	Mike Ontwerpt 2012
	www.mikeontwerpt.nl
	
*/


//initialize Media Library
function initMedia(){

	//set folderstring
	if(!isset($_SESSION['folder-string'])) $_SESSION['folder-string'] = 'root';
	if(isset($_GET['sub'])){
		if(substr($_GET['sub'],0,4) == 'root') $_SESSION['folder-string'] = $_GET['sub'];
	}
	else{
		 $_SESSION['folder-string'] = 'root';	
	}
	
	/* D I S P A T C H E R */
	
	$output = '';
	if(isset($_POST['back'])){
		$output .= showDashboard();
	}
	else if(isset($_POST['sbm-add-folder'])){
		//VALIDATE ADD FOLDER	
		$output .= validateAddFolder();
	}
	else if(isset($_POST['sbm-rename-folder'])){
		//VALIDATE RENAME FOLDER	
		$output .= validateRenameFolder();
	}
	else if(isset($_POST['sbm-rename-file'])){
		//VALIDATE RENAME FILE	
		$output .= validateRenameFile();
	}
	else if(isset($_POST['sbm-add-media'])){
		//VALIDATE ADD MEDIA
		$output .= dispatchAddMedia();	
	}
	else if(isset($_POST['sbm-delete-selected'])){
		$output .= deleteSelected();	
	}
	else if(isset($_POST['show-delete-selected'])){
		$output .= showFormDeleteSelected();
	}
	else if(isset($_POST['move-selected'])){
		$output .= moveSelected();	
	}
	else if(isset($_POST['sbm-crop-files'])){
		$output .= submitCropMedia();
	}
	else if(isset($_POST['cancel-crop'])){
		$output .= submitCancelCrop();
	}
	
	else if(isset($_GET['sub'])){
		$subpage = $_GET['sub'];
		switch($subpage){
			case 'add-folder':
			$output .= showFormAddFolder();
			break;
			case 'add-media':
			$output .= showFormAddMedia();
			break;	
			case 'rename':
			$output .= showFormRenameFolder();
			break;	
			case 'rename-file':
			$output .= showFormRenameFile();
			break;	
			case 'crop-media':
			$output .= showCropMedia();
			break;
			default:
			$output .= showDashboard();
		}
	}
	else{
		//show home / dashboard
		$output .= showDashboard();
	}
	return $output;
}

function showDashboard(){
		
	/* access the global sql object */
	global $mysqli;	
	
	/* language */
	$siteLabels = getLanguage();

	$output = '';
	/* title */
	$output .= '<h1>'.$siteLabels['medialib-title'].'</h1>';
	
	/* folder structure - where am i */
	$output .= showFolderStructure();
	
	
	//start with form for checkboxes
	$output .= '<form action="" name="chkForm"  method="post">';
	
	/* buttons */
	$output .= '<div class="submenu">';
			//buttons
			$output .= '<a href="./media/add-media/"><span class="btn176 btn176a">'.$siteLabels['medialib-addmedia'].'</span></a>';
			$output .= '<a href="./media/add-folder/"><span class="btn176 btn176a">'.$siteLabels['medialib-addfolder'].'</span></a>';
			$output .= '<input type="submit" name="show-delete-selected" value="'.$siteLabels['medialib-deleteselected'].'" class="btn176 btn176b"/>';
			
			
			##################### move ############################
			$currentString = $_SESSION['folder-string'];
			
			$query = 'SELECT DISTINCT f.id, f.title, f.folderstring
						FROM media_folders AS f, content_status AS s
						WHERE f.id = s.itemId
						AND s.linkname = "media_folders"
						AND s.active = "1"
						AND f.folderstring LIKE "'.$currentString.'%"
						AND f.folderstring != "'.$currentString.'"
						ORDER BY f.title';  			
			if(!$result = $mysqli->query($query)){
				//handle errors
				$errors[] = $siteLabels['fm-somethingwentwrong'];
				displayErrors($errors);
			}
			else{
				//display folders
				$i = 0;
				$moveArr = array();
				while($record = $result->fetch_assoc()){
					$folderId = $record['id'];
					$title = fromDatabase($record['title']);
					$folderstring = $record['folderstring'];
					
					$temp = explode('_',$_SESSION['folder-string']);
					$currentLevel = count($temp); //level where we are 
					$temp2 = explode('_',$folderstring);
					$thisLevel = count($temp2); // level of folder			
					if($thisLevel == ($currentLevel+1)){
						$moveArr[$i]['val'] = $folderstring; 
						$moveArr[$i]['label'] = $title;
						$i++;
					
					}
				}
				
				$temp = explode('_',$_SESSION['folder-string']);
				$currentLevel = count($temp); //level where we are 
				$up = '';
				foreach($temp as $key => $value){
					if($key != (count($temp)-1)){
						$up .= $value.'_';
					}					
				}
				$up = substr($up,0,-1);
			}
			
			
			$output .= '<div class="move-column">';
				$output .= '<select name="move-to">';
					$output .= '<option value="no-move">Move to selected folder</value>';
					if($currentLevel != 1) $output .= '<option value="'.$up.'">..up one folder..</value>';
					foreach($moveArr as $key => $value){
						$output .= '<option value="'.$value['val'].'" ';
						$output .= '>'.$value['label'].'</option>';
					}
				$output .= '</select>';
			$output .= '</div>';
		
		$output .= '<input type="submit" name="move-selected" value="move" class="btn176 btn176b"/>';
		#######################################################
			
	$output .= '</div>';
	
	/* content */
	$output .= '<input type="checkbox" name="checkCtrl" value="checkAll" onClick="check_all(this);" /><em>'.$siteLabels['form-checkall'].'</em><br /><br />';
	
	#1 DISPLAY FOLDERS
	
	//always show one row
	$output .= '<div class="medialib-thumb-row">';
	
	$currentString = $_SESSION['folder-string'];
	$query = 'SELECT DISTINCT f.id, f.title, f.folderstring
			FROM media_folders AS f, content_status AS s
			WHERE f.id = s.itemId
			AND s.linkname = "media_folders"
			AND s.active = "1"
			AND f.folderstring LIKE "'.$currentString.'%"
			AND f.folderstring != "'.$currentString.'"
			ORDER BY f.title';  			
	if(!$result = $mysqli->query($query)){
		//handle errors
		$errors[] = $siteLabels['fm-somethingwentwrong'];
		displayErrors($errors);
	}
	else{
		//display folders
		$colcount = 0;
		while($record = $result->fetch_assoc()){
			$folderId = $record['id'];
			$title = fromDatabase($record['title']);
			$folderstring = $record['folderstring'];
			
			//only display when we are on the right level
			$temp = explode('_',$_SESSION['folder-string']);
			$currentLevel = count($temp); //level where we are 
			$temp2 = explode('_',$folderstring);
			$thisLevel = count($temp2); // level of folder			
			if($thisLevel == ($currentLevel+1)){
				//display
				$output .= '<div class="medialib-thumb-holder">';
					$output .= '<a href="./media/'.$folderstring.'/">';
						$output .= '<span class="medialib-thumb-folder"></span>';
						$output .= '<span class="medialib-thumb-title">';	
							$output .= $title;
						$output .= '</span>';
					$output .= '</a>';	
					$output .= '<div class="medialib-thumb-actions">';
						$output .= '<input type="checkbox" name="option[]" id="option" value="folder-'.$folderId.'" />&nbsp;';
						$output .= '<a href="./media/rename/'.$folderId.'/">rename</a>';
					$output .= '</div>';
				$output .= '</div>';
				
				$colcount++;
				if($colcount == 10){
					$output .= '</div>';
					$output .= '<div class="medialib-thumb-row">';
					$colcount = 0;
				}
			}
		}		
	}
	
	#2 DISPLAY FILES
	$query = 'SELECT DISTINCT f.id, f.type, f.title, f.cp_thumb, f.filename_hover
			FROM media_files AS f, content_status AS s
			WHERE f.id = s.itemId
			AND s.linkname = "media_files"
			AND s.active = "1"
			AND f.folderstring = "'.$currentString.'"
			ORDER BY f.title';
	if(!$result = $mysqli->query($query)){
		//handle errors
		$errors[] = $siteLabels['fm-somethingwentwrong'];
		displayErrors($errors);
	}
	else{
		while($record = $result->fetch_assoc()){
			$fileId = $record['id'];
			$type = $record['type'];
			$title = fromDatabase($record['title']);
			$thumb = '../images/uploads/thumb/'.$record['cp_thumb'];
			if(!empty($record['filename_hover'])) $filename_hover = '../images/uploads/'.$record['filename_hover'];
			
			//display files
			$output .= '<div class="medialib-thumb-holder"';
			if($type == 1 && !empty($filename_hover)) $output .= ' onmouseover="cp_mediahoverover(\'hoverimage'.$fileId.'\');" onmouseout="cp_mediahoverout(\'hoverimage'.$fileId.'\');"';
			$output .= '>';
					if($type == 2) $output .= '<span class="medialib-thumb-vimeo">';
					if($type == 3) $output .= '<span class="medialib-thumb-youtube">';
					if($type == 1) $output .= '<span class="medialib-thumb-image">';
					if($type == 4) $output .= '<span class="medialib-thumb-docs">';
					if($type == 1) $output .= '<img src="'.$thumb.'" alt="'.$title.'" />';
					if(!empty($filename_hover)) $output .= '<img src="'.$filename_hover.'" alt="'.$title.'" width="88" id="hoverimage'.$fileId.'" class="cp_hoverimage"/>';
					$output .= '</span>';
					$output .= '<span class="medialib-thumb-title">';	
						$output .= $title;
					$output .= '</span>';
				$output .= '<div class="medialib-thumb-actions">';
						$output .= '<input type="checkbox" name="option[]" id="option" value="file-'.$fileId.'" />&nbsp;';
					$output .= '<a href="./media/rename-file/'.$fileId.'/">rename</a>';
				$output .= '</div>';
			$output .= '</div>';
			
			$colcount++;
			if($colcount == 10){
				$output .= '<div class="clear"></div>';
				$output .= '</div>';
				$output .= '<div class="medialib-thumb-row">';
				$colcount = 0;
			}
		}
	}
	
	$output .= '<div class="clear"></div>';
	$output .= '</div>';
	//end first row
	
	//end form for checkboxes
	$output .= '</form>';
	
	return $output;
}

function showFolderStructure(){
	/* access the global sql object */
	global $mysqli;	
	
	$output = '';
	/* folder structure - where am i */
	$output .= '<div id="folder-structure-holder">';
	
	#1 always start with media
		$output .= '<a href="./media/root/">';
		if($_SESSION['folder-string'] == 'root'){
			//if isset sub media is not active	
			$output .= '<span class="small-active-folder"></span>';
		}
		else{
			//if !isset sub media is active	
			$output .= '<span class="small-folder"></span>';
		}
		$output .= 'media';
		$output .= '</a>';
		
	#2 get the rest 
	//explode string
	$folders = explode('_',$_SESSION['folder-string']);
	$foldersUrl = explode('_',$_SESSION['folder-string']);
	//folders[0] == root
	if(count($folders) > 1){
		foreach($folders as $key => $linkname){
			//get title of each folder
			$query = 'SELECT title
					FROM media_folders
					WHERE folderstring LIKE "%'.$linkname.'" LIMIT 1';  			
			if(!$result = $mysqli->query($query)){
				//handle errors
				$errors[] = $siteLabels['fm-somethingwentwrong'];
				displayErrors($errors);
			}
			else{
				//get info
				$record = $result->fetch_assoc();
				$title = fromDatabase($record['title']);
				
				//display folders
				if($key != 0){ //0 = 'root'
					//folder
					$output .= ' &rsaquo; ';
					//for loop for the link
					$output .= '<a href="./media/';
						$url = 'root_';
						for($i=1;$i<=$key;$i++){	
							$url .= $folders[$i].'_';
						}
						//substract last _
						$url = substr($url,0,(strlen($url)-1));
						$output .= $url.'/';
					$output .= '">';
					//folder
					$key == (count($folders)-1) ? $output .= '<span class="small-active-folder"></span>' : $output .= '<span class="small-folder"></span>';
					$output .= $title;	
					$output .= '</a>';
				}			
			}			
		}			
	}
	
	$output .= '</div>';	
	return $output;
}


/* A D D   F O L D E R  */

function showFormAddFolder(){
	/* language */
	$siteLabels = getLanguage();

	$output = '';
	/* title */
	$output .= '<h1>'.$siteLabels['medialib-title'].' &rsaquo; '.$siteLabels['medialib-formaddfolder-h1'].'</h1>';
	
	/* folder structure - where am i */
	$output .= showFolderStructure();
	
	/*form */
	$output .= '<form action="" method="post">';
	$output .= '<div class="single-column">';
		
		//folder title
		$output .= $siteLabels['medialib-formaddfolder-title'].' *<br />';
		$output .= '<input type="text" name="folder-title" value="" class="txt" />';
		
		$output .= '<input type="submit" name="sbm-add-folder" value="'.$siteLabels['medialib-formaddfolder-sbmbtn'].'" class="btn176 proceed"/>';
		$output .= '<input type="submit" name="back" value="'.$siteLabels['form-cancel'].'" class="btn176"/>';
		
		//info
		$output .= '<table>';
			$output .= '<tr>';
				//required
				$output .= '<td class="short">*</td><td class="long"><em>'.$siteLabels['form-required'].'</em></td>';
			$output .= '</tr>';
		$output .= '<table>';
		$output .= '</div>';
	$output .= '</form>';
	
	return $output;
}

function validateAddFolder(){
	//access the global sql object
	global $mysqli;		
	/* language */
	$siteLabels = getLanguage();
	
	/* ******************* */
	/* validate add folder */
		#1 get input
		#2 empty input ?
		#3 create folder string
		#4 folder string unique?
		#5 add to database
		#6 return to dashboard
	/* ******************* */
	
	#1 get input
	$title = $_POST['folder-title'];
	
	#2 empty input ?
	if(empty($title)){
		//feedback fill in required fields	
		$errors[] = $siteLabels['fm-emptyonefield'];
	}
	
	#3 create folder string
	$linkname = linkname($title);	
	$currentString = $_SESSION['folder-string'];
	$newString = $currentString.'_'.$linkname;
	
	#4 folder string unqique?
	$query = 'SELECT folderstring FROM media_folders WHERE folderstring = "'.$newString.'" LIMIT 1';
	if($result = $mysqli->query($query)){
		//feedback  folder string exists
		if($result->num_rows > 0){
			$errors[] = $siteLabels['fm-folderstringexists'];
		}
	}
	else{
		$errors[] = $siteLabels['fm-somethingwentwrong'];
	}
	
	// VALID ?
	if(isset($errors)){
		displayErrors($errors);
		return showFormAddFolder();
	}
	else{
		#5 add to database
		$dbTitle = inDatabase($title);
		$query = 'INSERT INTO media_folders ( title, folderstring, timest) VALUES("'.$dbTitle.'","'.$newString.'",'.time().')';
		if($result = $mysqli->query($query)){
			#6 add status
			$insertId = $mysqli->insert_id;
			$query = 'INSERT INTO content_status ( linkname, itemId, active, timest) VALUES("media_folders","'.$insertId.'","1",'.time().')';
			if($result = $mysqli->query($query)){
				#7 return to dashboard
				//succes msg
				$_SESSION['feed-msg'] = '<span class="fm-suc"><span class="fm-suc-v">&radic;</span>'.$siteLabels['fm-addfoldersucces'].'</span>';
				return showDashboard();
			}
			else{
				$errors[] = $siteLabels['fm-somethingwentwrong'];
				displayErrors($errors);
				return showFormAddFolder();
			}
		}
		else{
			$errors[] = $siteLabels['fm-somethingwentwrong'];
			displayErrors($errors);
			return showFormAddFolder();
		}
	}
}


/* R E N A M E   F O L D E R  */

function showFormRenameFolder(){
	//access the global sql object
	global $mysqli;	
	
	/* language */
	$siteLabels = getLanguage();
	
	$output = '';
	/* title */
	$output .= '<h1>'.$siteLabels['medialib-title'].' &rsaquo; '.$siteLabels['medialib-formrenamefolder-h1'].'</h1>';
	
	/* folder structure - where am i */
	$output .= showFolderStructure();
	
	//GET INFO
	$folderId = $_GET['sub2'];
	$query = 'SELECT title
					FROM media_folders
					WHERE id = '.$folderId.' LIMIT 1';  			
	if(!$result = $mysqli->query($query)){
		//handle errors
		$errors[] = $siteLabels['fm-somethingwentwrong'];
		displayErrors($errors);
	}
	else{
		$record = $result->fetch_assoc();
		$currentTitle = $record['title'];
		
		/*form */
		$output .= '<form action="" method="post">';
		$output .= '<div class="single-column">';
			
			//folder title
			$output .= $siteLabels['medialib-formaddfolder-title'].' *<br />';
			$output .= '<input type="text" name="folder-title" value="'.$currentTitle.'" class="txt" />';
			
			$output .= '<input type="hidden" name="old-title" value="'.$currentTitle.'" />';
			$output .= '<input type="hidden" name="folder-id" value="'.$folderId.'" />';
			$output .= '<input type="submit" name="sbm-rename-folder" value="'.$siteLabels['medialib-formrenamefolder-sbmbtn'].'" class="btn176 proceed"/>';
			$output .= '<input type="submit" name="back" value="'.$siteLabels['form-cancel'].'" class="btn176"/>';
			
			//info
			$output .= '<table>';
				$output .= '<tr>';
					//required
					$output .= '<td class="short">*</td><td class="long"><em>'.$siteLabels['form-required'].'</em></td>';
				$output .= '</tr>';
			$output .= '<table>';
			$output .= '</div>';
		$output .= '</form>';
		
		return $output;
	
	}
}


function validateRenameFolder(){
	//access the global sql object
	global $mysqli;		
	/* language */
	$siteLabels = getLanguage();
	/* ******************* */
	/* validate rename folder */
		#1 get input
		#2 empty input ?
		
		#3 create folder string
		#4 folder string unique?
		
		#5 update database
			// - title
			// - folderstrings
			// - folderstrings media
		#6 return to dashboard
	/* ******************* */	
	
	#1 get input
	$title = $_POST['folder-title'];
	$oldTitle = $_POST['old-title'];
	$folderId = $_POST['folder-id'];
	
	#2 empty input ?
	if(empty($title)){
		//feedback fill in required fields	
		$errors[] = $siteLabels['fm-emptyonefield'];
	}
	
	#3 create folder string
	$linkname = linkname($title);	
	$currentString = $_SESSION['folder-string'];
	$newString = $currentString.'_'.$linkname;
	
	#4 folder string unqique?
	$query = 'SELECT folderstring FROM media_folders WHERE folderstring = "'.$newString.'" AND ID != '.$folderId.' LIMIT 1';
	if($result = $mysqli->query($query)){
		//feedback  folder string exists
		if($result->num_rows > 0){
			$errors[] = $siteLabels['fm-folderstringexists'];
		}
	}
	else{
		$errors[] = $siteLabels['fm-somethingwentwrong'];
	}
	
	// VALID ?
	if(isset($errors)){
		displayErrors($errors);
		return showFormRenameFolder();
	}
	else{
		#GET STRINGS TO UPDATE
		$oldLinkname = linkname($oldTitle);
		$searchStr = $currentString.'_'.$oldLinkname;
		$query = 'SELECT id, folderstring FROM media_folders WHERE folderstring LIKE "'.$searchStr.'%"';
		if($result = $mysqli->query($query)){
			
			#PREPARE QUERIES WITH MYSQLi	( FOLDER TABLE )		
			while($record = $result->fetch_assoc()){
				$thisId = $record['id'];
				$thisString = $record['folderstring'];
				//update strings
				$replacedString = str_replace($searchStr,$newString,$thisString);
				//DEFINE Queries
				$updateQueries[] = 'UPDATE media_folders SET folderstring = "'.$replacedString.'" WHERE id="'.$thisId.'" LIMIT 1';
			}
			
			#PREPARE QUERIES WITH MYSQLi	( FILES TABLE )			
			$query = 'SELECT id, folderstring FROM media_files WHERE folderstring LIKE "'.$searchStr.'%"';
			if($result = $mysqli->query($query)){
				while($record = $result->fetch_assoc()){
					$thisId = $record['id'];
					$thisString = $record['folderstring'];
					//update strings
					$replacedString = str_replace($searchStr,$newString,$thisString);
					//DEFINE Queries
					$updateQueries[] = 'UPDATE media_files SET folderstring = "'.$replacedString.'" WHERE id="'.$thisId.'" LIMIT 1';
				}
			}
			
			
			#UPDATE TITLE
			$dbTitle = inDatabase($title);
			$updateQueries[] = 'UPDATE media_folders SET title = "'.$dbTitle.'" WHERE id="'.$folderId.'" LIMIT 1';
			
			// Set autocommit to FALSE
			$mysqli->autocommit(FALSE);
			
			foreach($updateQueries as $updatequery)
			{
				if(!$mysqli->query($updatequery))
				{
					$errors[] = $siteLabels['fm-somethingwentwrong'];
				}
			}
			
			// ROLLBACK of COMMIT
			if(isset($errors))
			{
				$mysqli->rollback();
				displayErrors($errors);
				return showFormRenameFolder();
			}
			else
			{
				$mysqli->commit();
				return showDashboard();
			}
		}		
		else{
			$errors[] = $siteLabels['fm-somethingwentwrong'];
			displayErrors($errors);
			return showFormRenameFolder();
		}
	}
}

/* R E N A M E   F I L E  */

function showFormRenameFile(){
	//access the global sql object
	global $mysqli;	
	/* language */
	$siteLabels = getLanguage();
	
	$output = '';
	/* title */
	$output .= '<h1>'.$siteLabels['medialib-title'].' &rsaquo; '.$siteLabels['medialib-formrenamefile-h1'].'</h1>';
	
	/* folder structure - where am i */
	$output .= showFolderStructure();
	
	//GET INFO
	$fileId = $_GET['sub2'];
	$query = 'SELECT title
					FROM media_files
					WHERE id = '.$fileId.' LIMIT 1';  			
	if(!$result = $mysqli->query($query)){
		//handle errors
		$errors[] = $siteLabels['fm-somethingwentwrong'];
		displayErrors($errors);
	}
	else{
		$record = $result->fetch_assoc();
		$currentTitle = $record['title'];
		
		/*form */
		$output .= '<form action="" method="post">';
		$output .= '<div class="single-column">';
			
			//folder title
			$output .= $siteLabels['form-title'].' *<br />';
			$output .= '<input type="text" name="file-title" value="'.$currentTitle.'" class="txt" />';
			
			$output .= '<input type="hidden" name="old-title" value="'.$currentTitle.'" />';
			$output .= '<input type="hidden" name="file-id" value="'.$fileId.'" />';
			$output .= '<input type="submit" name="sbm-rename-file" value="'.$siteLabels['medialib-formrenamefile-sbmbtn'].'" class="btn176 proceed"/>';
			$output .= '<input type="submit" name="back" value="'.$siteLabels['form-cancel'].'" class="btn176"/>';
			
			//info
			$output .= '<table>';
				$output .= '<tr>';
					//required
					$output .= '<td class="short">*</td><td class="long"><em>'.$siteLabels['form-required'].'</em></td>';
				$output .= '</tr>';
			$output .= '<table>';
			$output .= '</div>';
		$output .= '</form>';
		
		return $output;
	
	}
}

function validateRenameFile(){
	//access the global sql object
	global $mysqli;		
	/* language */
	$siteLabels = getLanguage();
	
	#1 get input
	$title = $_POST['file-title'];
	$oldTitle = $_POST['old-title'];
	$fileId = $_POST['file-id'];
	
	#2 empty input ?
	if(empty($title)){
		//feedback fill in required fields	
		$errors[] = $siteLabels['fm-emptyonefield'];
	}
	
	if(isset($errors)){
		displayErrors($errors);
		return showFormRenameFolder();
	}
	else{
		#UPDATE TITLE
		$dbTitle = inDatabase($title);
		$query = 'UPDATE media_files SET title = "'.$dbTitle.'" WHERE id="'.$fileId.'" LIMIT 1';
		if(!$result = $mysqli->query($query)){
			//handle errors
			$errors[] = $siteLabels['fm-somethingwentwrong'];
			displayErrors($errors);
		}
		else{
			$_SESSION['feed-msg'] = '<span class="fm-suc"><span class="fm-suc-v">&radic;</span>'.$siteLabels['fm-succesrenamedfile'].'</span>';
			return showDashboard();
		}
	}
}

/* A D D   M E D I A  */

function showFormAddMedia(){
	/* language */
	$siteLabels = getLanguage();
	$output = '';
	/* title */
	$output .= '<h1>'.$siteLabels['medialib-title'].' &rsaquo; '.$siteLabels['medialib-formaddmedia-h1'].'</h1>';
	/* folder structure - where am i */
	$output .= showFolderStructure();
	/*form */
	$output .= '<form action="" method="post" enctype="multipart/form-data">';
	
	$output .= '<div class="single-column">';
		$output .= '<h2>Media type</h2>';
		/*
			select media type:
			Use Javascript to change the form layout
		*/
		$output .= '<div class="single-column-row">';	
			$output .= $siteLabels['medialib-selecttype-title'].' *<br />';
		$output .= '</div>';
		$currentType = 1;
		if(isset($_SESSION['media-data']['type'])) $currentType = $_SESSION['media-data']['type'];
		
		$output .= '<select name="media-type" onChange="changeAddMediaForm(this.options[selectedIndex].value);">';
			//image
			$output .= '<option value="1" ';
				if($currentType == 1){ $output .= 'selected'; }
			$output .= '>'.$siteLabels['medialib-mediatype-image'].' (auto crop&resize)</option>';
			$output .= '<option value="5" ';
				if($currentType == 5){ $output .= 'selected'; }
			$output .= '>'.$siteLabels['medialib-mediatype-image'].' (manual crop)</option>';
			//vimeo
			$output .= '<option value="2" ';
				if($currentType == 2){ $output .= 'selected'; }
			$output .= '>'.$siteLabels['medialib-mediatype-vimeo'].'</option>';
			
			//youtube
			$output .= '<option value="3" ';
				if($currentType == 3){ $output .= 'selected'; }
			$output .= '>'.$siteLabels['medialib-mediatype-youtube'].'</option>';
			//docs
			$output .= '<option value="4" ';
				if($currentType == 4){ $output .= 'selected'; }
			$output .= '>Documents</option>';
		$output .= '</select>';
	
	$output .= '</div>';
	$output .= '<div class="quadruple-column">';
	
		/* all media-forms are loaded in addmedia-form-loader */
		/**** START FORM LOADER ****/	
		$output .= '<div id="addmedia-form-loader">';		
			
			$output .= '<script type="text/javascript">changeAddMediaForm("'.$currentType.'");</script>';
			
		$output .= '</div>';
		/**** END FORM LOADER ****/	
		$output .= '<div class="double-column-row">';	
			$output .= '<input type="submit" name="sbm-add-media" value="'.$siteLabels['medialib-formaddmedia-sbmbtn'].'" class="btn176 proceed" onclick="showLoading();" />';
			$output .= '<input type="submit" name="back" value="'.$siteLabels['form-cancel'].'" class="btn176"/>';
		$output .= '</div>';
		$output .= '<div class="clear"></div>';
		//info
		$output .= '<table>';
			$output .= '<tr>';
				//required
				$output .= '<td class="short">*</td><td class="long"><em>'.$siteLabels['form-required'].'</em></td>';
			$output .= '</tr>';
		$output .= '<table>';
		
		$output .= '</div>';
		$output .= '<div class="clear">';
	$output .= '</form>';
	
	return $output;
}

/* V A L I D A T E   M E D I A  */


function dispatchAddMedia(){
	
	/* ******************* */
	
	/* dispatch add media */
		#1 get type
		#2 switch type
	
	/* ******************* */	
	
	#1 get type
	$type = $_SESSION['media-data']['type'] = $_POST['media-type'];
	
	#2 switch type
	switch($type){
		case 1 : 	
			return validateImages();
		break;
		case 2 : 	
		case 3 : 	
			return validateVideos();
		break;
		case 4 : 	
			return validateDocs();
		break;
		case 5 : 	
			return validateCropMedia();
		break;
	}
}
		

function validateImages(){	
	//access the global sql object
	global $mysqli;		
	/* language */
	$siteLabels = getLanguage();
	
	$succesCount = 0;
	$failCount = 0;
	$fileFails = 0;
	
	foreach ($_FILES['images']['name'] as $key => $value) {
		#if both empty -> do nothing	
		$title = $_POST['titles'][$key];
		$fails[$key] = 0;
		if(!empty($value) || !empty($title)){
			
		#image-1 empty value?	
			if(empty($value) || empty($title)){
				$errors[] = str_replace('[file]',$value,$siteLabels['fm-medialib-empty']);
				$fails[$key]++;
			}
			
		#image-2 file-size ok?
			$file_size = $_FILES['images']['size'][$key];
			$limit_size = 10000000;
			//when the file isn't to big
			if($file_size > $limit_size){	
				$displaysize = '10mb';
				$err = str_replace('[file]',$value,$siteLabels['fm-medialib-toobig']);
				$err = str_replace('[maxfilesize]',$displaysize,$err);
				$errors[] = $err;
				$fails[$key]++;
			}
			
		#image-3 extention ok?
			$fileExtArr = explode('.', $value); 
			//the last part of this array is the extention
			$fileExt = strtolower($fileExtArr[count($fileExtArr) - 1]);
			if($fileExt != 'jpg' && $fileExt != 'png' && $fileExt != 'gif' && $fileExt != 'jpeg'){
				$errors[] = str_replace('[file]',$value,$siteLabels['fm-medialib-extention']);
				$fails[$key]++;
			}
				
		#image-4 VALID? -> create shortcode / name / path / images 
			if(isset($errors))
			{
				//FAIL!
			}
			else
			{
				//valid!
		
				# valid 1 -> Create shortcode				
				$shortCode = $key.time();
				
				# valid 2 -> Create file name with client name init (for SEO)
				$query = 'SELECT name FROM shop_config LIMIT 1';
				if($result = $mysqli->query($query)){
					$record = $result->fetch_assoc();
					$shopName = $record['name'];
				}
				else{ $shopName = ''; }
				
				$shopName = linkname($shopName);
				$linkname = linkname($title);									
				$fileName = $shopName.'_'.$linkname.'_'.$shortCode.'.'.$fileExt;
				$fileThumbName = $shopName.'_'.$linkname.'_'.$shortCode.'_thumb.'.$fileExt;
				$fileHoverName = '';
				$fileHoverName2 = '';
				
				# valid 3 -> Create path
				$dirpath = '../images/uploads/';
				$thumbdirpath = '../images/uploads/thumb/';
				if(!file_exists($dirpath)){ mkdir($dirpath, 0777);}
				if(!file_exists($thumbdirpath)){ mkdir($thumbdirpath, 0777);}
				$path = $dirpath.$fileName;
				$thumbpath = $thumbdirpath.$fileThumbName;
				
				# valid 4 -> need crop ?
				$croptype = $_POST['croptype'.$key];
				switch($croptype){
					case 'product' :
						//need extra filename
						$fileName2 = $shopName.'_'.$linkname.'2_'.$shortCode.'.'.$fileExt;
						if(!createImage($_FILES['images']['tmp_name'][$key], $dirpath.$fileName, '800', '800')){ $errors[] = str_replace('[file]',$value.' (file1)',$siteLabels['fm-medialib-fileuploaderr']); }
						if(!createImage($_FILES['images']['tmp_name'][$key], $dirpath.$fileName2, '312', '312')){ $errors[] = str_replace('[file]',$value.' (file2)',$siteLabels['fm-medialib-fileuploaderr']); }
						
						if(!empty($_FILES['hoverimages']['name'][$key])){
							$fileHoverName = $shopName.'_'.$linkname.'_'.$shortCode.'_hover.'.$fileExt;
							$fileHoverName2 = $shopName.'_'.$linkname.'_'.$shortCode.'_fullhover.'.$fileExt;
							
							if(!createImage($_FILES['hoverimages']['tmp_name'][$key], $dirpath.$fileHoverName, '312', '312')){ $errors[] = str_replace('[file]',$value.' (file2)',$siteLabels['fm-medialib-fileuploaderr']); }
							if(!createImage($_FILES['hoverimages']['tmp_name'][$key], $dirpath.$fileHoverName2, '1000', '1000')){ $errors[] = str_replace('[file]',$value.' (file2)',$siteLabels['fm-medialib-fileuploaderr']); }
						}				
					break;
					case 'blog' :
						//need extra filename
						$fileName2 = $shopName.'_'.$linkname.'2_'.$shortCode.'.'.$fileExt;
						if(!createImage($_FILES['images']['tmp_name'][$key], $dirpath.$fileName, '1000', '800')){ $errors[] = str_replace('[file]',$value.' (file1)',$siteLabels['fm-medialib-fileuploaderr']); }
						if(!createImage($_FILES['images']['tmp_name'][$key], $dirpath.$fileName2, '496', '')){ $errors[] =  str_replace('[file]',$value.' (file2)',$siteLabels['fm-medialib-fileuploaderr']);  }
					break;
					case 'thumbnail' :
						//main file is grayscale image
						//second file (hover) is colour image
						$fileHoverName = $shopName.'_'.$linkname.'_hover_'.$shortCode.'.'.$fileExt;
						if(!createGrayImage($_FILES['images']['tmp_name'][$key], $dirpath.$fileName, '352', '192')){ $errors[] = str_replace('[file]',$value.' (file1)',$siteLabels['fm-medialib-fileuploaderr']); }
						if(!createImage($_FILES['images']['tmp_name'][$key], $dirpath.$fileHoverName, '352', '192')){ $errors[] =  str_replace('[file]',$value.' (file2)',$siteLabels['fm-medialib-fileuploaderr']);  }
					break;
					default:
						$fileName2 = $shopName.'_'.$linkname.'2_'.$shortCode.'.'.$fileExt;
						if(!createImage($_FILES['images']['tmp_name'][$key], $dirpath.$fileName, '', '')){ $errors[] = str_replace('[file]',$value.' (file1)',$siteLabels['fm-medialib-fileuploaderr']); }
						if(!createImage($_FILES['images']['tmp_name'][$key], $dirpath.$fileName2, '', '')){ $errors[] = str_replace('[file]',$value.' (file2)',$siteLabels['fm-medialib-fileuploaderr']); }
				}
				
				/* LANGSTRAAT EXENTIE IF THUMBNAIL -> GRAYSCALE THUMB */
				if($croptype == 'thumbnail'){
					if(!createGrayImage($_FILES['images']['tmp_name'][$key], $thumbpath, '88', '88')){ $errors[] =  str_replace('[file]',$value.' (thumb)',$siteLabels['fm-medialib-fileuploaderr']); }
				}
				else{
					//create thumb for control panel
					if(!createImage($_FILES['images']['tmp_name'][$key], $thumbpath, '88', '88')){ $errors[] =  str_replace('[file]',$value.' (thumb)',$siteLabels['fm-medialib-fileuploaderr']); }
				}
				//did something go wrong while file uploading
				if(isset($errors))
				{
					//FAIL!!
					$fails[$key]++;
				}
				else
				{
					#WRITE INTO DATABASE		
					//if!isset extra filenames create variables
					if(!isset($fileName2)) $fileName2 = NULL;
					if(!isset($fileName3)) $fileName3 = NULL;
					
					$dbTitle = inDatabase($title);
					$folderstring = $_SESSION['folder-string'];
					
					$insertquery = 'INSERT INTO media_files( type, title, shortcode, folderstring, path, cp_thumb, filename_medium, filename_small, filename_hover, filename_fullhover, timest)
								VALUES("1","'.$dbTitle.'", "'.$shortCode.'","'.$folderstring.'","'.$fileName.'", "'.$fileThumbName.'","'.$fileName2.'","'.$fileName3.'","'.$fileHoverName.'","'.$fileHoverName2.'",'.time().')';					
					
					if(!$insertresult = $mysqli->query($insertquery)){
						$errors[] = 'something went wrong'.$mysqli->error; 
						//FAIL!!
						$fails[$key]++;
					}
					else{
						#add status
						$insertId = $mysqli->insert_id;
						$query = 'INSERT INTO content_status ( linkname, itemId, active, timest) VALUES("media_files","'.$insertId.'","1",'.time().')';
						if($result = $mysqli->query($query)){
							$succesCount++;
						}
					}
				}		
			}
			
			$failCount += $fails[$key];
			if($failCount > 0) $fileFails++;
		} // end if both empty
	}//end for each
	
	//FEEDBACK TO THE USER:
	if($succesCount > 0){
		$_SESSION['feed-msg'] = '<span class="fm-suc"><span class="fm-suc-v">&radic;</span>'.$succesCount.' files uploaded succesfully!</span>';
	}
	if($failCount > 0){
		$fmmsg = '<span class="fm-err fm-global">';
			$fmmsg .= '<span class="fm-err-x">&times;</span>Sorry, '.$fileFails.' file(s) were/was not uploaded, '.$failCount.' error(s) occured..';	
			$fmmsg .= '<ul class="error-list">';
			foreach($errors as $key => $msg){
				$fmmsg .= '<li>'.$msg.'</li>';
			}
			$fmmsg .= '</ul>';
		$fmmsg .= '</span>';
		if($succesCount > 0){
			$_SESSION['feed-msg'] .= $fmmsg;	
		}
		else{
			$_SESSION['feed-msg'] = $fmmsg;	
		}
	}
	
	return showDashboard();
}

function validateDocs(){
	//access the global sql object
	global $mysqli;		
	/* language */
	$siteLabels = getLanguage();
	
	$succesCount = 0;
	$failCount = 0;
	$fileFails = 0;
	
	foreach ($_FILES['docs']['name'] as $key => $value) {
		#if both empty -> do nothing	
		$title = $_POST['titles'][$key];
		$fails[$key] = 0;
		if(!empty($value) || !empty($title)){
			
		#image-1 empty value?	
			if(empty($value) || empty($title)){
				$errors[] = str_replace('[file]',$value,$siteLabels['fm-medialib-empty']);
				$fails[$key]++;
			}
			
		#image-2 file-size ok?
			$file_size = $_FILES['docs']['size'][$key];
			$limit_size = 10000000;
			//when the file isn't to big
			if($file_size > $limit_size){	
				$displaysize = '10mb';
				$err = str_replace('[file]',$value,$siteLabels['fm-medialib-toobig']);
				$err = str_replace('[maxfilesize]',$displaysize,$err);
				$errors[] = $err;
				$fails[$key]++;
			}
			
		#image-3 extention ok?
			$fileExtArr = explode('.', $value); 
			//the last part of this array is the extention
			$fileExt = strtolower($fileExtArr[count($fileExtArr) - 1]);
			if($fileExt != 'pdf'){
				$errors[] = str_replace('[file]',$value,$siteLabels['fm-medialib-pdfextention']);
				$fails[$key]++;
			}
				
		#image-4 VALID? -> create shortcode / name / path / images 
			if(isset($errors))
			{
				//FAIL!
			}
			
			else{
				#Update database
				# valid 1 -> Create shortcode				
				$shortCode = $key.time();
				
				# valid 2 -> Create file name with client name init (for SEO)
				$query = 'SELECT name FROM shop_config LIMIT 1';
				if($result = $mysqli->query($query)){
					$record = $result->fetch_assoc();
					$shopName = $record['name'];
				}
				else{ $shopName = ''; }
				
				$shopName = linkname($shopName);
				$linkname = linkname($title);									
				$fileName = $shopName.'_'.$linkname.'_'.$shortCode.'.'.$fileExt;
				
				# valid 3 -> Create path
				$dirpath = '../images/uploads/';
				if(!file_exists($dirpath)){ mkdir($dirpath, 0777);}
				$path = $dirpath.$fileName;
				
				copy($_FILES['docs']['tmp_name'][$key], $path);
				
				$dbTitle = inDatabase($title);
				$folderstring = $_SESSION['folder-string'];
				$type = $_POST['media-type'];
				
				$insertquery = 'INSERT INTO media_files( type, title, shortcode, folderstring, path, timest)
							VALUES("'.$type.'","'.$dbTitle.'", "'.$shortCode.'","'.$folderstring.'","'.$fileName.'",'.time().')';					
				
				if(!$insertresult = $mysqli->query($insertquery)){
					$errors[] = 'something went wrong'; 
					displayErrors($errors);
					return showFormAddMedia();
				}
				else{
					#add status
					$insertId = $mysqli->insert_id;
					$query = 'INSERT INTO content_status ( linkname, itemId, active, timest) VALUES("media_files","'.$insertId.'","1",'.time().')';
					if($result = $mysqli->query($query)){
						unset($_SESSION['media-data']);
						return showDashboard();
					}
				}
			}
		}
	}
}


function validateVideos(){
	//access the global sql object
	global $mysqli;		
	/* language */
	$siteLabels = getLanguage();
	
	if($_POST['media-type'] == 2) $link = $_SESSION['media-data']['link'] = $_POST['vimeoLink'];
	if($_POST['media-type'] == 3) $link = $_SESSION['media-data']['link'] = $_POST['youtubeLink'];
	$title = $_SESSION['media-data']['title'] = $_POST['title'];
	
	#1 Empty files ?
	if(empty($title) || empty($link)){
		//error
		$errors[] = $siteLabels['fm-emptyrequiredfields'];
	}
	if(isset($errors))
	{
		displayErrors($errors);
		return showFormAddMedia();
		
	}
	else{
		#Update database
		# valid 1 -> Create shortcode				
		$shortCode = '0'.time();
		$dbTitle = inDatabase($title);
		$folderstring = $_SESSION['folder-string'];
		$type = $_POST['media-type'];
		
		$insertquery = 'INSERT INTO media_files( type, title, shortcode, folderstring, timest, path)
					VALUES("'.$type.'","'.$dbTitle.'", "'.$shortCode.'","'.$folderstring.'","'.$link.'",'.time().')';					
		
		if(!$insertresult = $mysqli->query($insertquery)){
			$errors[] = 'something went wrong'; 
			displayErrors($errors);
			return showFormAddMedia();
		}
		else{
			#add status
			$insertId = $mysqli->insert_id;
			$query = 'INSERT INTO content_status ( linkname, itemId, active, timest) VALUES("media_files","'.$insertId.'","1",'.time().')';
			if($result = $mysqli->query($query)){
				unset($_SESSION['media-data']);
				return showDashboard();
			}
		}
	}
}

/* C R O P   M E D I A */

function validateCropMedia(){
	foreach ($_FILES['images']['name'] as $key => $value) {
	#if both empty -> do nothing	
		$title = $_POST['titles'][$key];
		$fails[$key] = 0;
		if(!empty($value) || !empty($title)){
		
		#image-1 empty value?	
			if(empty($value) || empty($title)){
				$errors[] = str_replace('[file]',$value,$siteLabels['fm-medialib-empty']);
				$fails[$key]++;
			}
			
		#image-2 file-size ok?
			$file_size = $_FILES['images']['size'][$key];
			$limit_size = 1500000;
			//when the file isn't to big
			if($file_size > $limit_size){	
				$displaysize = '1.5mb';
				$err = str_replace('[file]',$value,$siteLabels['fm-medialib-toobig']);
				$err = str_replace('[maxfilesize]',$displaysize,$err);
				$errors[] = $err;
				$fails[$key]++;
			}
			
		#image-3 extention ok?
			$fileExtArr = explode('.', $value); 
			//the last part of this array is the extention
			$fileExt = strtolower($fileExtArr[count($fileExtArr) - 1]);
			if($fileExt != 'jpg' && $fileExt != 'png' && $fileExt != 'gif' && $fileExt != 'jpeg'){
				$errors[] = str_replace('[file]',$value,$siteLabels['fm-medialib-extention']);
				$fails[$key]++;
			}
				
		#image-4 VALID? -> create shortcode / name / path / images 
			if(isset($errors))
			{
				//FAIL!
			}
			else
			{	
				//valid!
					
				# need crop ?
				$croptype = $_SESSION['cropimages'][$key]['croptype'] = $_POST['croptype'.$key];
				switch($croptype){
					case 'banner' :
						$_SESSION['cropimages'][$key]['minW'] = $_SESSION['cropimages'][$key]['targetW'] = 976; // min size
						$_SESSION['cropimages'][$key]['minH'] = $_SESSION['cropimages'][$key]['targetH'] = 304; // min size
						$_SESSION['cropimages'][$key]['maxW'] = 0; // max size
						$_SESSION['cropimages'][$key]['maxH'] = 0; // max size
					break;
					case 'thumbnail' :
						$_SESSION['cropimages'][$key]['minW'] = $_SESSION['cropimages'][$key]['targetW'] = 352; // min size
						$_SESSION['cropimages'][$key]['minH'] = $_SESSION['cropimages'][$key]['targetH'] = 192; // min size
						$_SESSION['cropimages'][$key]['maxW'] = 0; // max size
						$_SESSION['cropimages'][$key]['maxH'] = 0; // max size
					break;
				}
				//temp file
				
				$_SESSION['cropimages'][$key]['tmp_name'] = $_FILES['images']['tmp_name'][$key];
				$_SESSION['cropimages'][$key]['name'] = $value;
				$_SESSION['cropimages'][$key]['title'] = $title;
				$path = $_SESSION['cropimages'][$key]['path'] = '../images/uploads/'.$value;
				if(copy($_FILES['images']['tmp_name'][$key], $path)){
					//header to crop page
					header('location: ../crop-media/');
				}
			}
		}	
	}
}

function showCropMedia(){
	
	/* access the global sql object */
	global $mysqli;	
	
	/* language */
	$siteLabels = getLanguage();
	$output = '';
	/* title */
	$output .= '<h1>'.$siteLabels['medialib-title'].'</h1>';
	
	$output .= '<form action="" method="post" class="cropform">';
	
	$_SESSION['cropvalues'] = array();
	
	if(isset($_SESSION['cropimages'])){
		
		$output .= '<h2>'.count($_SESSION['cropimages']).' image';
		
		$output .= ' to crop</h2>';
		
		foreach($_SESSION['cropimages'] as $key => $value){
			$output .= '<em>'.$value['title'].':</em><br />';
			$output .= '<img src="'.$value['path'].'" alt="to crop image" class="imageToCrop" id="imageToCrop'.$key.'" /><br /><br />';
			
			$output .= '<script type="text/javascript"> initJCrop("imageToCrop'.$key.'",'.$value['minW'].','.$value['minH'].','.$value['maxW'].','.$value['maxH'].'); </script>';
		}
	}
	
	
	$output .= '<input type="submit" name="sbm-crop-files" value="Crop media" class="btn176 proceed"/>';
	$output .= '<input type="submit" name="cancel-crop" value="Cancel" class="btn176"/>';
	
	$output .= '</form>';
	
	return $output;
}

function submitCropMedia(){
	global $mysqli;
	
	foreach($_SESSION['cropimages'] as $key => $value){
		
		
		//write to database
		# valid 1 -> Create shortcode				
		$shortCode = $key.time();
		
		# valid 2 -> Create file name with client name init (for SEO)
		$query = 'SELECT name FROM shop_config LIMIT 1';
		if($result = $mysqli->query($query)){
			$record = $result->fetch_assoc();
			$siteName = $record['name'];
		}
		else{ $siteName = ''; }
		
		$fileExtArr = explode('.', $value['path']); 
		//the last part of this array is the extention
		$fileExt = strtolower($fileExtArr[count($fileExtArr) - 1]);
		
		$siteName = linkname($siteName);
		$linkname = linkname($value['title']);									
		$fileName = $siteName.'_'.$linkname.'_'.$shortCode.'.'.$fileExt;
		$fileThumbName = $siteName.'_'.$linkname.'_'.$shortCode.'_thumb.'.$fileExt;
		$fileHoverName = '';
		$fileHoverName2 = '';
		
		# valid 3 -> Create path
		$dirpath = '../images/uploads/';
		$thumbdirpath = '../images/uploads/thumb/';
		if(!file_exists($dirpath)){ mkdir($dirpath, 0777);}
		if(!file_exists($thumbdirpath)){ mkdir($thumbdirpath, 0777);}
		$path = $dirpath.$fileName;
		$thumbpath = $thumbdirpath.$fileThumbName;
		
		if($_SESSION['cropimages'][$key]['croptype'] == 'thumbnail'){
			$fileHoverName = $siteName.'_'.$linkname.'_'.$shortCode.'_hover.'.$fileExt;
			$hoverpath = $dirpath.$fileHoverName;
		}
		
		////// CREATE IMAGE \\\\\\\\
		
		$quality = 90;
		
		# get src size
		list($oldWidth, $oldHeight) = getimagesize($value['path']);
		
		#1get crop plane data
		$x = $_SESSION['cropvalues'][$key]['x'];
		$y = $_SESSION['cropvalues'][$key]['y'];
		$x2 = $_SESSION['cropvalues'][$key]['x2'];
		$y2 = $_SESSION['cropvalues'][$key]['y2'];
		$w = $_SESSION['cropvalues'][$key]['w'];
		$h = $_SESSION['cropvalues'][$key]['h'];

		#2 get file extention
		$arr = explode('.', $value['path']);
		$fileExt = strtolower($arr[(count($arr) - 1)]);
		
		#3 create raw image
		switch($fileExt){
			case 'jpg':	
			case 'jpeg':	
				$img_raw = imagecreatefromjpeg($value['path']); 
			break;
			case 'png':	
				$img_raw = imagecreatefrompng($value['path']); 
			break;
			case 'gif':	
				$img_raw = imagecreatefromgif($value['path']); 
			break;
		}		
		
		
		if($_SESSION['cropimages'][$key]['croptype'] == 'thumbnail'){
			$hoverdst_r = imagecreatetruecolor($value['targetW'], $value['targetH']);
			imagealphablending($hoverdst_r, false);
			imagesavealpha($hoverdst_r, true);		
			
			imagecopyresampled($hoverdst_r, $img_raw, 0, 0, $x, $y, $value['targetW'], $value['targetH'], $w, $h ); 
		}
		
		
		// imagecreatetruecolor() returns an image identifier representing a black image of the specified size. 
		$dst_r = imagecreatetruecolor($value['targetW'], $value['targetH']);
		imagealphablending($dst_r, false);
		imagesavealpha($dst_r, true);		
	
		if($_SESSION['cropimages'][$key]['croptype'] == 'thumbnail') imagefilter($img_raw, IMG_FILTER_GRAYSCALE);

		//bool imagecopyresampled(resource $dst_image, resource $src_image, int $dst_x, int $dst_y, int $src_x, int $src_y, int $dst_w, int $dst_h, int $src_w, int $src_h  )
		imagecopyresampled($dst_r, $img_raw, 0, 0, $x, $y, $value['targetW'], $value['targetH'], $w, $h ); 
		
	
		
		//create the new image		
		if($fileExt == 'png' || $fileExt == 'gif'){
			imagepng($dst_r, $path, 8);
			if($_SESSION['cropimages'][$key]['croptype'] == 'thumbnail') imagepng($hoverdst_r, $hoverpath, 8);;
		}
		else{
			imagejpeg($dst_r, $path, $quality);
			if($_SESSION['cropimages'][$key]['croptype'] == 'thumbnail') imagejpeg($hoverdst_r, $hoverpath, $quality);
		}
		
		////// CREATE THUMBNAIL \\\\\\
		$targetW = $targetH = 88;
		if(($oldWidth / $oldHeight) > ($targetW / $targetH)){
			//is the target bigger then original ? do not scale up!
			if($targetH <= $oldHeight){ 
				$newHeight = $targetH; 
				$newWidth = ceil(($newHeight*$oldWidth)/$oldHeight);
			}
			else{ 
				//adjust targetH
				$newHeight = $targetH = $oldHeight; 
				if($targetW > $oldWidth){
					//adjust targetW
					$newWidth = $targetW = $oldWidth;
				}
				else{ 
					//don't adjust targetW
					$newWidth = ceil(($newHeight*$oldWidth)/$oldHeight);
				}
			}
			//get position X
			$temp = $newWidth - $targetW; 
			if($temp != 0){ $posX = ceil(($newWidth - $targetW) / 2); }
			else{ $posX = 0; }
			//position Y = 0
			$posY = 0;
		}
		else{
			// the other way arround
			if($targetW <= $oldWidth){ 
				$newWidth = $targetW; 
				$newHeight = ceil(($newWidth*$oldHeight)/$oldWidth);
			}
			else{ 
				//adjust targetW
				$newWidth = $targetW = $oldWidth; 
				if($targetH > $oldHeight){
					//adjust targetH
					$newHeight = $targetH = $oldHeight;
				}
				else{
					//don't adjust targetH
					$newHeight = ceil(($newWidth*$oldHeight)/$oldWidth);
				}
			}
			$posX = 0;
			$temp = $newHeight - $targetH; 
			if($temp != 0){ $posY = ceil(($newHeight - $targetH) / 2); }
			else{ $posY = 0; }
		}
		
		switch($fileExt){
			case 'jpg':	
			case 'jpeg':	
				$thumbimg_raw = imagecreatefromjpeg($value['path']); 
			break;
			case 'png':	
				$thumbimg_raw = imagecreatefrompng($value['path']); 
			break;
			case 'gif':	
				$thumbimg_raw = imagecreatefromgif($value['path']); 
			break;
		}		
		
		//Langstrat extentie
		if($value['croptype'] == 'thumbnail'){
			imagefilter($thumbimg_raw, IMG_FILTER_GRAYSCALE);
		}
		// imagecreatetruecolor() returns an image identifier representing a black image of the specified size. 
		$thumbdst_r = imagecreatetruecolor(88, 88);
		imagealphablending($thumbdst_r, false);
		imagesavealpha($thumbdst_r, true);		
		
		//bool imagecopyresampled(resource $dst_image, resource $src_image, int $dst_x, int $dst_y, int $src_x, int $src_y, int $dst_w, int $dst_h, int $src_w, int $src_h  )
		imagecopyresampled($thumbdst_r, $thumbimg_raw, 0, 0, $posX, $posY, $newWidth, $newHeight, $oldWidth, $oldHeight ); 
		
		//create the new image		
		if($fileExt == 'png' || $fileExt == 'gif'){
			imagepng($thumbdst_r, $thumbpath, 8);
		}
		else{
			imagejpeg($thumbdst_r, $thumbpath, $quality);
		}
		
		//get rid of the original image
		if(!empty($value['path'])) unlink($value['path']);
		
		////// WRITE INTO DATABASE \\\\\\\\
		
		//if!isset extra filenames create variables
		if(!isset($fileName2)) $fileName2 = NULL;
		if(!isset($fileName3)) $fileName3 = NULL;
		
		$dbTitle = inDatabase($value['title']);
		$folderstring = $_SESSION['folder-string'];
		
		$insertquery = 'INSERT INTO media_files( type, title, shortcode, folderstring, path, cp_thumb, filename_medium, filename_small, filename_hover, filename_fullhover, timest)
					VALUES("1","'.$dbTitle.'", "'.$shortCode.'","'.$folderstring.'","'.$fileName.'", "'.$fileThumbName.'","'.$fileName2.'","'.$fileName3.'","'.$fileHoverName.'","'.$fileHoverName2.'",'.time().')';					
		
		if(!$insertresult = $mysqli->query($insertquery)){
			$errors[] = 'something went wrong'.$mysqli->error; 
			//FAIL!!
			$fails[$key]++;
		}
		else{
			#add status
			$insertId = $mysqli->insert_id;
			$query = 'INSERT INTO content_status ( linkname, itemId, active, timest) VALUES("media_files","'.$insertId.'","1",'.time().')';
			if($result = $mysqli->query($query)){
				$succesCount++;
			}
		}
	}	
	

	
	//unset sessions
	
	unset($_SESSION['cropimages']);
	unset($_SESSION['cropvalues']);
		
	//header to library
	header('location: ../'.$_SESSION['folder-string'].'/');
}

function submitCancelCrop(){
	//get rid of the original image
	foreach($_SESSION['cropimages'] as $key => $value){
		if(!empty($value['path'])) unlink($value['path']);
	}
	unset($_SESSION['cropimages']);
	unset($_SESSION['cropvalues']);
		
	//header to library
	header('location: ../'.$_SESSION['folder-string'].'/');	
	
}

/* D E L E T E   S E L E C T E D */

function showFormDeleteSelected(){
	
	//if any box is checked
	if(isset($_POST['option'])){
		//access the global sql object
		global $mysqli;		
		/* language */
		$siteLabels = getLanguage();
		
		$output = '';
		/* title */
		$output .= '<h1>'.$siteLabels['medialib-title'].' &rsaquo; '.$siteLabels['medialib-deleteselected'].'</h1>';
	
		/* get checkd */
		foreach($_POST['option'] as $key => $itemId){
			if(isset($itemId)){
				$temp = explode('-',$itemId);
				$temp[0] == 'folder' ? $folders[] = $temp[1] :$files[] = $temp[1] ;			
			}
		}
	
		/* display question */
		$output .= $siteLabels['areyousure-deleteselected'];
		$output .= '<br /><br />';
		$output .= '<div class="medialib-thumb-row">';
		
			$colcount = 0;
			/* display folders */
			if(isset($folders)){
				foreach($folders as $key => $folderId){
					//get info
					$query = 'SELECT DISTINCT id, title
					FROM media_folders
					WHERE id = '.$folderId.'
					ORDER BY title';  
					if(!$result = $mysqli->query($query)){
						$errors[] = 'something went wrong'; 
					}
					else{
						$record = $result->fetch_assoc();
						$title = fromDatabase($record['title']);
						//display folders
						$output .= '<div class="medialib-thumb-holder">';
							$output .= '<span class="medialib-thumb-folder"></span>';
							$output .= '<span class="medialib-thumb-title">';	
								$output .= $title;
							$output .= '</span>';
						$output .= '</div>';
						
						$colcount++;
						if($colcount == 10){
							$output .= '</div>';
							$output .= '<div class="medialib-thumb-row">';
							$colcount = 0;
						}
					}
				}
			}
			
			/* display files */
			if(isset($files)){
				foreach($files as $key => $fileId){
					//get info
					$query = 'SELECT DISTINCT id, type, title, cp_thumb
					FROM media_files
					WHERE id = '.$fileId.'
					ORDER BY title';  
					if(!$result = $mysqli->query($query)){
						$errors[] = 'something went wrong'; 
					}
					else{
						$record = $result->fetch_assoc();
						$title = fromDatabase($record['title']);
						$type = $record['type'];
						$thumb = '../images/uploads/thumb/'.$record['cp_thumb'];
						//display folders
						$output .= '<div class="medialib-thumb-holder">';
							if($type == 2) $output .= '<span class="medialib-thumb-vimeo">';
							if($type == 3) $output .= '<span class="medialib-thumb-youtube">';
							if($type == 1) $output .= '<span class="medialib-thumb-image">';
								if($type == 1) $output .= '<img src="'.$thumb.'" alt="'.$title.'" />';
									
							$output .= '</span>';
							$output .= '<span class="medialib-thumb-title">';	
								$output .= $title;
							$output .= '</span>';
						$output .= '</div>';
						
						$colcount++;
						if($colcount == 10){
							$output .= '</div>';
							$output .= '<div class="medialib-thumb-row">';
							$colcount = 0;
						}
					}
				}
			}
		$output .= '</div>';
		$output .= '<div class="clear"></div>';
		$output .= '<br /><br />';
		$output .= '<div class="submenu">';
			$output .= '<form action="" name="deleteselected" method="post" enctype="multipart/form-data">';
				//store ud's
				if(isset($files)) {
					foreach($files as $key => $fileId){
						$output .= '<input type="hidden" name="files[]" value="'.$fileId.'" />';
					}
				}
				if(isset($folders)) {
					foreach($folders as $key => $folderId){
						$output .= '<input type="hidden" name="folders[]" value="'.$folderId.'" />';
					}
				}
				$output .= '<input type="submit" name="sbm-delete-selected" value="'.$siteLabels['form-yes'].'" class="btn176"/>';
				$output .= '<input type="submit" name="back" value="'.$siteLabels['form-no'].'" class="btn176 proceed"/>';
			$output .- '</form>';
		$output .= '</div>';
		return $output;
	}
	else{
		echo 'nothing happened';
		//do nothing	
	}
}

function deleteSelected(){
	//access the global sql object
	global $mysqli;		
	/* language */
	$siteLabels = getLanguage();
	
	#BUILD QUERIES
	if(isset($_POST['folders'])) $folders = $_POST['folders'];
	if(isset($_POST['files'])) $files = $_POST['files'];
	
	if(isset($folders)){
		foreach($folders as $key => $folderId){
			$updateQueries[] = 'UPDATE content_status SET active = "0" WHERE linkname = "media_folders" AND itemId="'.$folderId.'" LIMIT 1';
		}
	}
	if(isset($files)){
		foreach($files as $key => $fileId){
			$updateQueries[] = 'UPDATE content_status SET active = "0" WHERE linkname = "media_files" AND itemId="'.$fileId.'" LIMIT 1';
		}
	}
	// Set autocommit to FALSE
	$mysqli->autocommit(FALSE);
	
	foreach($updateQueries as $updatequery)
	{
		if(!$mysqli->query($updatequery))
		{
			$errors[] = $siteLabels['fm-somethingwentwrong'];
		}
	}
	// ROLLBACK of COMMIT
	if(isset($errors))
	{
		$mysqli->rollback();
		displayErrors($errors);
		return showDashboard();
	}
	else
	{
		$mysqli->commit();
		$_SESSION['feed-msg'] = '<span class="fm-suc"><span class="fm-suc-v">&radic;</span>'.$siteLabels['fm-succesmovedtotrash'].'</span>';
		return showDashboard();
	}
	
}

function moveSelected(){
	global $mysqli;		

	if(isset($_POST['option'])){
		$moveto = $_POST['move-to'];
		if($moveto != 'no-move'){
			foreach($_POST['option'] as $key => $itemId){
				$temp = explode('-',$itemId);
				$itemId = $temp[1];
				$mysqli->query('UPDATE media_files SET folderstring = "'.$moveto.'" WHERE id = '.$itemId.' LIMIT 1');
			}
		}
	}
		return showDashboard();
}

?>