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/deensekroon.komma-mediadesign.nl/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(defined('URL_SUB')){
		if(substr(URL_SUB,0,4) == 'root') $_SESSION['folder-string'] = URL_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(defined('URL_SUB')){
		$subpage = URL_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;	
			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="/admin/media/add-media/" class="btn184 proceed">'.$siteLabels['medialib-addmedia'].'</a>';
			$output .= '<a href="/admin/media/add-folder/" class="btn184">'.$siteLabels['medialib-addfolder'].'</a>';
			$output .= '<input type="submit" name="show-delete-selected" value="'.$siteLabels['medialib-deleteselected'].'" class="btn184"/>';
			
			$currentString = $_SESSION['folder-string'];
			
			##################### move ############################
			$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">'.$siteLabels['medialib-move-to-folder'].'</value>';
					if($currentLevel != 1) $output .= '<option value="'.$up.'">..'.$siteLabels['medialib-move-up']	.'..</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="btn184"/>';
		$output .= '<div class="clear"></div>';
	$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">';
	
	$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="/admin/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="/admin/media/rename/'.$folderId.'/">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;
				}
			}
		}		
	}
	
	#2 DISPLAY FILES
	$query = 'SELECT DISTINCT f.id, f.type, f.title, f.cp_thumb
			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'];

			//display files
			$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 class="medialib-thumb-actions">';
						$output .= '<input type="checkbox" name="option[]" id="option" value="file-'.$fileId.'" />&nbsp;';
					$output .= '<a href="/admin/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="/admin/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="/admin/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 = URL_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 = URL_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">';
		/*
			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'].'</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>';
		$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;
	}
}
		

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 = 1000000;
			//when the file isn't to big
			if($file_size > $limit_size){	
				$displaysize = '1mb';
				$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;
				
				# valid 3 -> Create path
				$dirpath = '/images/uploads/';
				$thumbdirpath = '/images/uploads/thumb/';
				//if(!file_exists($_SERVER['DOCUMENT_ROOT'] . $dirpath)){ mkdir($_SERVER['DOCUMENT_ROOT'] . $dirpath, 0777);}
				//if(!file_exists($_SERVER['DOCUMENT_ROOT'] . $thumbdirpath)){ mkdir($_SERVER['DOCUMENT_ROOT'] . $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;
						$fileName3 = $shopName.'_'.$linkname.'_small_'.$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(!createImage($_FILES['images']['tmp_name'][$key], $dirpath.$fileName3, '240', '268')){ $errors[] = str_replace('[file]',$value.' (file3)',$siteLabels['fm-medialib-fileuploaderr']); }
						/*
						if(!empty($_FILES['hoverimages']['name'][$key])){
							//$fileHoverName = $shopName.'_'.$linkname.'_'.$shortCode.'_hover.'.$fileExt;
							$fileHoverName2 = $shopName.'_'.$linkname.'_'.$shortCode.'_fullhover.'.$fileExt;
							$fileHoverName3 = $shopName.'_'.$linkname.'_'.$shortCode.'_smallhover.'.$fileExt;

							//if(!createImage($_FILES['hoverimages']['tmp_name'][$key], $dirpath.$fileHoverName, '312', '312')){ $errors[] = str_replace('[file]',$value.' (hoverfile)',$siteLabels['fm-medialib-fileuploaderr']); }
							if(!createImage($_FILES['hoverimages']['tmp_name'][$key], $dirpath.$fileHoverName2, '800', '800')){ $errors[] = str_replace('[file]',$value.' (hoverfile2)',$siteLabels['fm-medialib-fileuploaderr']); }
							if(!createImage($_FILES['hoverimages']['tmp_name'][$key], $dirpath.$fileHoverName3, '144', '160')){ $errors[] = str_replace('[file]',$value.' (hoverfile3)',$siteLabels['fm-medialib-fileuploaderr']); }
						}*/
					break;
                    case 'sfeer' :
                        //need extra filename
                        $fileName2 = $shopName.'_'.$linkname.'2_'.$shortCode.'.'.$fileExt;
                        $fileName3 = $shopName.'_'.$linkname.'_small_'.$shortCode.'.'.$fileExt;

                        if(!createImage($_FILES['images']['tmp_name'][$key], $dirpath.$fileName, '700', '1000')){ $errors[] = str_replace('[file]',$value.' (file1)',$siteLabels['fm-medialib-fileuploaderr']); }
                        if(!createImage($_FILES['images']['tmp_name'][$key], $dirpath.$fileName2, '350', '500')){ $errors[] = str_replace('[file]',$value.' (file2)',$siteLabels['fm-medialib-fileuploaderr']); }
                        if(!createImage($_FILES['images']['tmp_name'][$key], $dirpath.$fileName3, '240', '268')){ $errors[] = str_replace('[file]',$value.' (file3)',$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, '622', '')){ $errors[] =  str_replace('[file]',$value.' (file2)',$siteLabels['fm-medialib-fileuploaderr']);  }
					break;
					default:
						$fileName2 = $shopName.'_'.$linkname.'2_'.$shortCode.'.'.$fileExt;
						$fileName3 = $shopName.'_'.$linkname.'_small_'.$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']); }
						if(!createImage($_FILES['images']['tmp_name'][$key], $dirpath.$fileName3, '240', '268')){ $errors[] = str_replace('[file]',$value.' (file3)',$siteLabels['fm-medialib-fileuploaderr']); }
				}
				//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, timest)
								VALUES("1","'.$dbTitle.'", "'.$shortCode.'","'.$folderstring.'","'.$fileName.'", "'.$fileThumbName.'","'.$fileName2.'","'.$fileName3.'",'.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 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();
			}
		}
	}
}

/* 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');
			}
		}
	}
	
	header('location: ./');
}

?>