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/products.php
<?php

	
/* 
	products.php 

	Mike Ontwerpt 2012
	www.mikeontwerpt.nl
	
*/

function initProducts(){
	
	$output = '';
	if(isset($_POST['back'])){
		if(isset($_POST['location'])){
			$location = $_POST['location'];
			header('location: '.$location);
		}
		else{
			$output .= showDashboard();
		}
	}
	else if(isset($_POST['sbm-add-product'])){
		$output .= validateAddEditProduct('add');
	}
	else if(isset($_POST['sbm-edit-product'])){
		$output .= validateAddEditProduct('edit');
	}
	else if(isset($_POST['askMoveToTrash'])){
		$output .= askMoveToTrash();
	}
	else if(isset($_POST['moveToTrash'])){
		$output .= moveToTrash();
	}
	else if(isset($_POST['update-modified'])){
		$output .= updateModified();	
	}
	else if(isset($_POST['do_submit'])){
		if(isset($_POST['sort_what']) && $_POST['sort_what'] == 'instances'){
			$output .= sbmChangeInstanceOrder();	
		}
		else{
			$output .= sbmChangeOrder();	
		}
	}
	else if(isset($_GET['sub'])){
		$subpage = $_GET['sub'];
		switch($subpage){
			case 'add-product':
			$output .= showFormAddEditProduct('add');
			break;
			case 'edit-product':
			$output .= showFormAddEditProduct('edit');
			break;
			case 'manage-categories':
			case 'delete-category':
			$output .= manageCategories();
			break;
			case 'order-products':
			$output .= showChangeOrder();
			break;
			case 'change-instance-order':
			$output .= showChangeInstanceOrder();
			break;
			case 'extraleuk':
				updateExtraleuk();
			break;
			case 'updatePublished':
				updatePublished();
			break;
			case 'updateNew':
				updateNew();
			break;
			default:
			$output .= showDashboard();
		}
	}
	else{
		$output .= showDashboard();
	}
	
	return $output;
}

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

	if(isset($_SESSION['addedit-product'])) unset($_SESSION['addedit-product']);

	$output = '';
	/* title */
	$output .= '<h1>'.$siteLabels['products-title'].'</h1>';
	
	//start with form for checkboxes
	$output .= '<form action="" name="chkForm" method="post">';
		
		/* buttons */
		$output .= '<div class="submenu">';
				//buttons
				$output .= '<a href="./products/add-product/"><span class="btn176 btn176a proceed">'.$siteLabels['products-addproduct'].'</span></a>';
				$output .= '<a href="./products/order-products/"><span class="btn176 btn176a">'.$siteLabels['products-orderproducts'].'</span></a>';
				$output .= '<a href="./products/manage-categories/"><span class="btn176 btn176a">'.$siteLabels['products-managecategories'].'</span></a>';

				$output .= '<input type="submit" name="askMoveToTrash" value="'.$siteLabels['products-removeproducts'].'" class="btn176 btn176b"/>';

		$output .= '</div>';
		
		/* content */
				
		/* top row */
		$output .= '<div class="itemlist-row itemlist-heading">';
			$output .= '<div class="itemlist-single-column">&nbsp;</div>';
			$output .= '<div class="itemlist-double-column"><input type="checkbox" name="checkCtrl" value="checkAll" onClick="check_all(this);" class="itemlist-cbox">title</div>';
			$output .= '<div class="itemlist-single-column">brand</div>';
			$output .= '<div class="itemlist-single-column">pictures</div>';
			$output .= '<div class="itemlist-single-column">price</div>';
			$output .= '<div class="itemlist-single-column">discount</div>';
			$output .= '<div class="itemlist-single-column status-column">likes</div>';
			$output .= '<div class="itemlist-single-column">status</div>';
			$output .= '<div class="itemlist-single-column itemlist-edit">edit</div>';
		$output .= '</div>';	
		
		/* get info */
		$query = 'SELECT p.id, p.catId, p.titleNL, p.isNew, p.published, p.extraleuk, p.price, p.brandId
				  FROM product_products as p, content_status as s
				  WHERE s.active = 1
				  AND s.itemId = p.id
				  AND s.linkname = "product_products"
				  ORDER BY p.productOrder DESC';
		if($result = $mysqli->query($query)){
			
			
			while($record = $result->fetch_assoc()){
				//create productid
				$id = $record['id'];
				$catId = $record['catId'];
				$brandId = $record['brandId'];
				$extraleuk = $record['extraleuk'];
				//categories
				if($brandresult = $mysqli->query('SELECT title, brandCode FROM merken WHERE id = '.$brandId.' LIMIT 1')){
					$brandrecord = $brandresult->fetch_assoc();
					if($brandresult->num_rows == 0){
						$brandCode = 'XX';
						$brand = '-';
					}
					else
					{
						$brandCode = fromDatabase($brandrecord['brandCode']);
						$brand = fromDatabase($brandrecord['title']);
					}
				}
				
				$productId = '#'.$brandCode.$id;
				
				//title
				$titleNL = fromDatabase($record['titleNL']);
				
				//categories
				if($catresult = $mysqli->query('SELECT category FROM product_categories WHERE id = '.$catId.' LIMIT 1')){
					$catrecord = $catresult->fetch_assoc();
					if($catresult->num_rows == 0){
						$category = 'uncategorized';
					}
					else
					{
						$category = fromDatabase($catrecord['category']);
					}
				}
				else{
					$category = '<span class="warning">uncategorized</span>';
				}
				
				
				//price
				$price = $record['price'];
				$temp = explode('.',$price);
				isset($temp[1]) ? $displayCents = str_pad($temp[1], 2, STR_PAD_LEFT) :  $displayCents = '00';
				$displayPrice = '€ '.$temp[0].','.$displayCents;
				
				//new and published
				$new = $record['isNew'];
				$published = $record['published'];
				$new == 1 ? $updateNew = 0 : $updateNew = 1;  
				$published == 1 ? $updatePublished = 0 : $updatePublished = 1;  
				
				//numarticles
				if($instanceResult = $mysqli->query( 'SELECT id FROM product_instances WHERE productId = '.$id)){
					$numInstances = $instanceResult->num_rows;
				}
				else{
					$numInstances = '<span class="itemlist-warning">0</span>';
				}
								
				//loves / modified
				$loveResult = $mysqli->query('SELECT id FROM popular_likes WHERE productId = '.$id);
				$numLoves = $loveResult->num_rows;	
				
				$modifiedResult = $mysqli->query('SELECT modified FROM popular_modified WHERE productId = '.$id.' LIMIT 1');
				$modifiedRecord = $modifiedResult->fetch_assoc();
				$modified = $modifiedRecord['modified'];
				if($modifiedResult->num_rows == 0 || $modified == 0 || empty($modified)){
					$displaymodified = '+0';
				}
				else if($modified > 0){
					$displaymodified = '+'.$modified;
				}
				else if($modified < 0){
					$displaymodified = '-'.$modified;
				}
								
				$output .= '<div class="itemlist-row">';
					/* product id */
					$output .= '<div class="itemlist-single-column">';
						$output .= '<span class="itemlist-btn" id="itemlist-btn-photo"></span>';
					$output .= '</div>';
					/* title */
					$output .= '<div class="itemlist-double-column">
									<input type="checkbox" name="option[]" id="option" value="'.$id.'" class="itemlist-cbox"/>
									'.$titleNL.'
								</div>';
					/* brand */
					$output .= '<div class="itemlist-single-column">'.$brand.'</div>';
					/* num instances */
					$output .= '<div class="itemlist-single-column">'.$numInstances.'</div>';
					/* price*/
					if($price == 0) $displayPrice = '<span class="itemlist-warning">'.$displayPrice.'</span>';
					$output .= '<div class="itemlist-single-column">'.$displayPrice.'</div>';
					/* discount */
					$output .= '<div class="itemlist-single-column">';
						
						$discount[$id] = checkProductDiscount($id);						
						if($discount[$id]) $output .= ' (-'.$discount[$id].'%)';
					
					$output .= '</div>';
					/* empty */
					$output .= '<div class="itemlist-single-column status-column">'.$numLoves.' / '.$displaymodified.'</div>';
					/* status */
					$output .= '<div class="itemlist-single-column">';
						/* UPDATE NEW WITH JAVASCRIPT */
						$output .= '<a href="./products/updateNew/'.$id.'"><span class="itemlist-btn';
							if($new == 1) $output .= ' active';
						//$output .='" id="itemlist-btn-new" onClick="getPage(\'jsbox\',\'js_updateproducts\',\'action=updateNew&id='.$id.'&val='.$updateNew.'\'); window.location.reload();"></span>';
						$output .='" id="itemlist-btn-new"></span></a>';
					
						/* UPDATE PUBLISHED WITH JAVASCRIPT */
						$output .= '<a href="./products/updatePublished/'.$id.'"><span class="itemlist-btn';
							if($published == 1) $output .= ' active';
						//$output .= '" id="itemlist-btn-publish" onClick="getPage(\'jsbox\',\'js_updateproducts\',\'action=updatePublish&id='.$id.'&val='.$updatePublished.'\'); window.location.reload();"></span>';
						$output .= '" id="itemlist-btn-publish"></span></a>';
					
						//EXTRA LEUK
						$output .= '<a href="./products/extraleuk/'.$id.'"><span class="itemlist-btn';
							if($extraleuk == 1) $output .= ' active';
						$output .= '" id="itemlist-btn-extraleuk"></span></a>';
					
					$output .= '</div>';
					/* edit */
					$output .= '<div class="itemlist-single-column itemlist-edit">';
						$output .= '<span class="itemlist-btn" id="itemlist-btn-discount"></span>';
						$output .= '<span class="itemlist-btn" id="itemlist-btn-popular" onclick="togglePop(\''.$id.'\');"></span>';
						$output .= '<a href="./products/change-instance-order/'.$id.'/" class="itemlist-btn" id="itemlist-btn-order"></a>';
						$output .= '<a href="./products/edit-product/'.$id.'/" class="itemlist-btn" id="itemlist-btn-edit"></a>';
					$output .= '</div>';
					$output .= '<div class="clear"></div>';	
				$output .= '</div>';
				
				
				
				//////////// edit populoar \\\\\\\\\\\\\
				$output .= '<div class="itemlist-edit-popular-row" id="poprow'.$id.'">';
					$output .= '<div class="itemlist-edit-popular-holder">';
						//form
						/*$output .= '<form action="" name="update-modified-'.$id.'" method="post">';
							$output .= '<table class="edit-popular">';
								$output .= '<tr>';
									//title
									$output .= '<td><h2>Popularity</h2></td>';
									$output .= '<td>Likes: '.$numLoves.'<br />Manipulatie: '.$displaymodified.'</td>';
								$output .= '</tr>';
								$output .= '<tr>';
									$output .= '<td>Wijzig manipulatie<br /><input type="text" name="modified" value="" class="txt" /></td>';
									$output .= '<td>&nbsp;<br /><input type="submit" name="update-modified" value="update" class="btn176 proceed" /></td>';
								$output .= '</tr>';
							$output .= '</table>';
							$output .= '<input type="hidden" name="productId" value="'.$id.'" />';
 						$output .= '</form>';*/
					$output .= '</div>';
					$output .= '<div class="clear"></div>';
				$output .= '</div>';
			}
		}
		
	$output .= '</form>';
	
	
	return $output; 
}


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

	//set up session
	if(!isset($_SESSION['addedit-product'])){
		$_SESSION['addedit-product']['title-nl'] = '';
		$_SESSION['addedit-product']['title-en'] = '';
		$_SESSION['addedit-product']['description-nl'] = '';
		$_SESSION['addedit-product']['description-en'] = '';
		$_SESSION['addedit-product']['specs-nl'] = '';
		$_SESSION['addedit-product']['specs-en'] = '';
		$_SESSION['addedit-product']['price'] = '';
		$_SESSION['addedit-product']['category'] = '';
		$_SESSION['addedit-product']['brand'] = '';
		$_SESSION['addedit-product']['tags'] = array();
		$_SESSION['addedit-product']['shortcodes'] = array();
		$_SESSION['addedit-product']['stockcodes'] = array();
	}
	
	/* if edit, fill session with current values */
	if($method == 'edit'){
		$editId = $_GET['sub2'];
		//input fields
		$query = 'SELECT titleNL, titleEN, descriptionNL, descriptionEN, specsNL, specsEN, price, catId, brandId
				  FROM product_products
				  WHERE id = "'.$editId.'" LIMIT 1';
		if($result = $mysqli->query($query)){
			$record = $result->fetch_assoc();
			//fill input fields
			$_SESSION['addedit-product']['title-nl'] = $record['titleNL'];
			$_SESSION['addedit-product']['title-en'] = $record['titleEN'];
			$_SESSION['addedit-product']['description-nl'] = $record['descriptionNL'];
			$_SESSION['addedit-product']['description-en'] = $record['descriptionEN'];
			$_SESSION['addedit-product']['specs-nl'] =  $record['specsNL'];
			$_SESSION['addedit-product']['specs-en'] = $record['specsEN'];
			$_SESSION['addedit-product']['price'] =  $record['price'];
			$_SESSION['addedit-product']['category'] = $record['catId'];
			$_SESSION['addedit-product']['brand'] = $record['brandId'];
		}
		//fill shortcodes
		$shortcodeQuery = 'SELECT DISTINCT m.id AS mediaId, i.instanceOrder, i.color, i.shortcode, i.stockCode
				  FROM product_instances AS i, media_files AS m
				  WHERE m.shortcode = i.shortcode
				  AND i.productId = "'.$editId.'"
				  ORDER BY i.instanceOrder DESC';
		if($shortcodeResult = $mysqli->query($shortcodeQuery)){
			while($shortcodeRecord = $shortcodeResult->fetch_assoc()){
				$mediaId = $shortcodeRecord['mediaId'];
				$_SESSION['addedit-product']['shortcodes'][$mediaId] = $shortcodeRecord['shortcode'];
				$_SESSION['addedit-product']['color'][$mediaId] = $shortcodeRecord['color'];
				$_SESSION['addedit-product']['stockcodes'][$mediaId] = $shortcodeRecord['stockCode']; 			
			}
		}
		//fill tags
		if($searchtagResult = $mysqli->query('SELECT id, searchtag FROM product_searchtags WHERE productId = "'.$editId.'" ORDER BY timest DESC')){
			while($searchtagRecord = $searchtagResult->fetch_assoc()){
				$searchtagId = $searchtagRecord['id'];
				$searchtag = $searchtagRecord['searchtag'];
				$_SESSION['addedit-product']['tags'][$searchtagId] = $searchtag;
			}
			
		}		
	}
	/////// end fill session with values //////
	
	$output = '';
	/* title */
	$output .= '<h1>'.$siteLabels['products-title'].' &rsaquo; ';
	if($method == 'add') $output .= $siteLabels['products-addproduct'].'</h1>';
	if($method == 'edit') $output .= $siteLabels['products-editproduct'].'</h1>';
	
	/**** S T A R T   F O R M   ****/
	$output .= '<form action="" method="post">';
		//left top column
		$output .= '<h2>'.$siteLabels['products-formaddproduct-information'].'</h2>';
		
		$output .= '<div class="single-column addproduct-lefttop">';	
/* title (NL)*/
			$output .= $siteLabels['products-formaddproduct-title-nl'].' *<br />';
			$output .= '<input type="text" name="product-title-nl" value="'.$_SESSION['addedit-product']['title-nl'].'" class="txt" />';
			
/* category */
			$output .= $siteLabels['products-formaddproduct-category'].' *<br />';
			$output .= '<select name="product-category">';
				$output .= '<option value="0">uncategorized</option>';
				/* display categories */
				$query = 'SELECT id,category
							FROM product_categories
							ORDER BY category';
				if(!$result = $mysqli->query($query)){
					//handle errors
					$errors[] = $siteLabels['fm-somethingwentwrong'];
					displayErrors($errors);
				}
				else{
					//display output
						while($record = $result->fetch_assoc()){
							$catId = $record['id'];
							$category = $record['category'];
							$output .= '<option value="'.$catId.'"';
							if($catId == $_SESSION['addedit-product']['category']) $output .= ' selected';
							$output .= '>'.$category.'</option>';
						}	
				}
			$output .= '</select>';
		$output .= '</div>';
		$output .= '<div class="single-column addproduct-lefttop">';	
/* title (EN)*/
			$output .= $siteLabels['products-formaddproduct-title-en'].' *<br />';
			$output .= '<input type="text" name="product-title-en" value="'.$_SESSION['addedit-product']['title-en'].'" class="txt" />';
			
/* price */
			$output .= $siteLabels['products-formaddproduct-price'].' *<br />';
			$output .= '<input type="text" name="product-price" value="'.$_SESSION['addedit-product']['price'].'" class="txt" />';
		$output .= '</div>';
		$output .= '<div class="single-column addproduct-lefttop">';	
/* brand */
			$output .= $siteLabels['products-formaddproduct-brand'].' *<br />';
			$output .= '<select name="product-brand">';
				/* display brands */
				$query = 'SELECT id,title
							FROM merken
							ORDER BY title';
				if(!$result = $mysqli->query($query)){
					//handle errors
					$errors[] = $siteLabels['fm-somethingwentwrong'];
					displayErrors($errors);
				}
				else{
					//display output
						while($record = $result->fetch_assoc()){
							$brandId = $record['id'];
							$brand = $record['title'];
							$output .= '<option value="'.$brandId.'"';
							if($brandId == $_SESSION['addedit-product']['brand']) $output .= ' selected';
							$output .= '>'.$brand.'</option>';
						}	
				}
			$output .= '</select>';
		$output .= '</div>';
		$output .= '<div class="clear"></div>';
		
		//description middle top column
		$output .= '<div class="double-column">';
	
/* Product description (NL) */
			$output .= $siteLabels['products-formaddproduct-description-nl'].' *<br />';
			$output .= '<textarea id="product-description-nl" name="product-description-nl" class="tinymce">'.$_SESSION['addedit-product']['description-nl'].'</textarea>';
/* Product specifications (NL) */	
			$output .= $siteLabels['products-formaddproduct-specs-nl'].' *<br />';
			$output .= '<textarea id="product-specs-nl" name="product-specs-nl" class="tinymce">'.$_SESSION['addedit-product']['specs-nl'].'</textarea>';		
			
		$output .= '</div>';
			//specs right top column
		$output .= '<div class="double-column">';
		
/* Product description (EN) */
			$output .= $siteLabels['products-formaddproduct-description-en'].' *<br />';
			$output .= '<textarea id="product-description-en" name="product-description-en" class="tinymce">'.$_SESSION['addedit-product']['description-en'].'</textarea>';
/* Product specifications (EN) */	
			$output .= $siteLabels['products-formaddproduct-specs-en'].' *<br />';
			$output .= '<textarea id="product-specs-en" name="product-specs-en" class="tinymce">'.$_SESSION['addedit-product']['specs-en'].'</textarea>';		
		
		$output .= '</div>';
		$output .= '<div class="clear"></div>';
		
/* search tags */		
		$output .= 'Searchtags (comma-seperated) <br />';
		$output .= '<input type="text" name="search-tags" value="" class="tagstxt" />';
		
		$output .= '<div class="triple-column" id="search-tags-holder">';
			foreach($_SESSION['addedit-product']['tags'] as $key => $value){
				$output .= '<span class="tagBox"><span class="tagBox-delete" onClick="getPage(\'search-tags-holder\',\'js_updateTagsSession\',\'action=remove&sessionname=addedit-product&key='.$key.'\');">&times;</span>'.$value.'</span>';
			}	
		$output .= '</div>';
		$output .= '<div class="clear"></div>';
		//horizantal rule
		$output .= '<hr />';
		$output .= '<div class="double-column">';
			$output .= '<h2>'.$siteLabels['products-formaddproduct-images'].'</h2>';
/* Library help */
		//	$output .= '<span class="media-help">Find your image in the media library. Click on an image to insert it in a field. The code that appears stands for the image.</span>';
/* image */
			$output .= '<div class="double-column" id="form-images-holder">';			
				//javascript call goes here
			$output .= '</div>';
			$output .= '<script type="text/javascript">getPage("form-images-holder","js_media","action=showSessionImages&update=0&sessionname=addedit-product");</script>';
			
			//clear float
			$output .= '<div class="clear"></div>';	
		$output .= '</div>';
		$output .= '<div class="triple-column">';
/* media lib */
			$output .= '<h2>Media library</h2>';
			$output .= '<div class="triple-column" id="lib-holder">';
				//javascript call goes here
			$output .= '</div>';
			$output .= '<script type="text/javascript">getPage("lib-holder","js_media","sessionname=addedit-product");</script>';
		$output .= '</div>';
		$output .= '<div class="clear"></div>';
		$output .= '<hr />';
		$output .= '<div class="double-column">';
			
			if($method == 'add')  $output .= '<input type="submit" name="sbm-add-product" value="'.$siteLabels['products-addproduct'].'" class="btn176 proceed"/>';
			if($method == 'edit') $output .= '<input type="hidden" name="editId" value="'.$editId.'"/>';
			if($method == 'edit') $output .= '<input type="submit" name="sbm-edit-product" value="'.$siteLabels['products-editproduct'].'" class="btn176 proceed"/>';
			
			if($method == 'add') $output .= '<input type="hidden" name="location" value="../"/>';
			if($method == 'edit') $output .= '<input type="hidden" name="location" value="../../"/>';
			$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 .= '</form>';
	
	return $output;
}

function validateAddEditProduct($method){	
	/* prevend double products with reloading page (session has just been deleted)*/
	if(isset($_SESSION['addedit-product']['title-nl'])){
		/* access the global sql object */
		global $mysqli;	
		/* language */
		$siteLabels = getLanguage();
		/* ******************* */
		/* validate add product */
			#1 get input
			#2 empty input ?
			#3 update session tags ?
			#4 return to dashboard
		/* ******************* */
		#1 get input & add to session
		$titleNL = $_SESSION['addedit-product']['title-nl'] = $_POST['product-title-nl'];
		$titleEN = $_SESSION['addedit-product']['title-en'] = $_POST['product-title-en'];
		$descriptionNL = $_SESSION['addedit-product']['description-nl'] = $_POST['product-description-nl'];
		$descriptionEN = $_SESSION['addedit-product']['description-en'] = $_POST['product-description-en'];
		$specsNL = $_SESSION['addedit-product']['specs-nl'] = $_POST['product-specs-nl'];
		$specsEN = $_SESSION['addedit-product']['specs-en'] = $_POST['product-specs-en'];
		$price = $_SESSION['addedit-product']['price'] = $_POST['product-price'];
		$category = $_SESSION['addedit-product']['category'] = $_POST['product-category'];
		$brandId = $_SESSION['addedit-product']['brand'] = $_POST['product-brand'];

		#2 empty input ?
		if(empty($titleNL) || empty($titleEN) || empty($descriptionNL) || empty($descriptionEN) || empty($specsNL) || empty($specsEN) || empty($price)){
			//feedback fill in required fields	
			$errors[] = $siteLabels['fm-emptyrequiredfields'];
		}	
		#3 update session tags ?
		$tagsInput = $_POST['search-tags'];
		if(!empty($tagsInput)){
			$arr = explode(',',$tagsInput);	
			foreach($arr as $key => $value){
				if(!empty($value) && !existInArray($value,$_SESSION['addedit-product']['tags'])){
					$_SESSION['addedit-product']['tags'][] = $value;
				}
			}
		}
		#4 valid price ?
		$forbidden = array('!','@','#','$','%','^','&','*','(',')','-','+','=','_','{','}','[',']',':',';','"','\'','<','>','?','/');
		foreach($forbidden as $i => $val){
			$price=str_replace($val,'',$price);   //replaces "," with "."
		}
		if(!empty($price)){
			$price=str_replace(',','.',$price);   //replaces "," with "."
			$price=str_replace('€','',$price);   //replaces "," with "."
			$price = trim($price);
			$price = $_SESSION['addedit-product']['price'] = number_format($price, 2, '.', '');
			$pricecheckpattern	= "#^[0-9]{1,3}\.[0-9]{2}$#";
			if (preg_match($pricecheckpattern,$price)==0){
				$errors[] = 'err: '.$price;
			}
		}
		// VALID ?
		if(isset($errors)){
			displayErrors($errors);
			return showFormAddEditProduct($method);
		}
		else{
			//prepare for database
			$dbTitleNL = inDatabase($titleNL);
			$dbTitleEN = inDatabase($titleEN);
			$dbDescriptionNL = inDatabase($descriptionNL);
			$dbDescriptionEN = inDatabase($descriptionEN);
			$dbSpecsNL = inDatabase($specsNL);
			$dbSpecsEN = inDatabase($specsEN);
			
			/* MANAGE DATABASE "ADD" */
			
			if($method == 'add'){
				#1 check for Product Order
				$productOrder = 1;
				$orderQuery = 'SELECT productOrder FROM product_products ORDER BY productOrder DESC LIMIT 1';
				if($orderResult = $mysqli->query($orderQuery)){
					if($orderResult->num_rows > 0){
						$orderRecord = $orderResult->fetch_assoc();
						$latestOrder = $orderRecord['productOrder'];
						$productOrder = $latestOrder+1;	
					}
				}
				#2 product query
				$query = 'INSERT INTO product_products(titleNL, titleEN, descriptionNL, descriptionEN, specsNL, specsEN, price, catId, brandId, productOrder, timest)
						  VALUES("'.$dbTitleNL.'","'.$dbTitleEN.'","'.$dbDescriptionNL.'","'.$dbDescriptionEN.'","'.$dbSpecsNL.'","'.$dbSpecsEN.'",'.$price.','.$category.','.$brandId.','.$productOrder.','.time().')';
				if(!$result = $mysqli->query($query)){
					//handle errors
					$errors[] = $siteLabels['fm-somethingwentwrong'].$mysqli->error;
					displayErrors($errors);
					return showFormAddEditProduct($method);
				}
				else{
					//get product Id 
					$productId = $mysqli->insert_id;
					
					//product succesfully added so add a status
					$mysqli->query('INSERT INTO content_status ( linkname, itemId, active, timest) VALUES("product_products","'.$productId.'","1",'.time().')');
					
					/*
						now we have to create a product for the instances
						Productcode = "BRANDCODE(2)" + "BRANDCODE(3)" + "PRODUCTID(3)" + "ID(3)" 
						
					*/
					
					//get brandCode
					$brandCode = 'XX';
					if($brandResult = $mysqli->query('SELECT brandCode FROM merken WHERE id = '.$brandId.' LIMIT 1')){
						$brandRecord = $brandResult->fetch_assoc();
						$brandCode = substr($brandRecord['brandCode'],0,2);
					}
					
					$catCode = str_pad($category, 3, '0', STR_PAD_LEFT);
					$productCode = str_pad($productId, 3, '0', STR_PAD_LEFT);
					
					$instance_prefix = $brandCode.$catCode.$productCode;
				
					$newInstanceId = 1;
					
					#4 check if there are already instances of this product && if so, get latest
					/*$existsQuery = 'SELECT id FROM product_instances WHERE id LIKE "'.$instance_prefix.'%" ORDER BY id DESC LIMIT 1';
					if(!$existsResult = $mysqli->query($existsQuery)){
						//handle errors
						$errors[] = $siteLabels['fm-somethingwentwrong'].$mysqli->error;
						displayErrors($errors);
						return showFormAddEditProduct($method);
					}
					else{
						if($existsResult->num_rows > 0){
							$existsRecord = $existsResult->fetch_assoc();
							$latestId = $existsRecord['id'];
							$newInstanceId = $latestId+1;	
						}*/
						
						#5 check for instanceOrder
						$instanceOrder = 1;
						/*$orderQuery = 'SELECT instanceOrder FROM product_instances WHERE productId = "'.$productId.'" ORDER BY instanceOrder DESC LIMIT 1';
						if(!$orderResult = $mysqli->query($orderQuery)){
							//handle errors
						}
						else{
							if($orderResult->num_rows > 0){
								$orderRecord = $orderResult->fetch_assoc();
								$latestOrder = $orderRecord['instanceOrder'];
								$instanceOrder = $latestOrder+1;	
							}
						}*/
						
						$addInstanceId = str_pad($newInstanceId, 3, '0', STR_PAD_LEFT);
						$instanceCode  = $instance_prefix.$addInstanceId;
						/* Prepare Queries */
						
						#5 instances queries
						if(isset($_SESSION['addedit-product']['shortcodes'])){
							foreach($_SESSION['addedit-product']['shortcodes'] as $i => $shortcode){
								/* generate id */
								$color = $_SESSION['addedit-product']['color'][$i];
								$stockcode = $_SESSION['addedit-product']['stockcodes'][$i];

								$queries[] = 'INSERT INTO product_instances(instanceCode, stockCode, productId, shortcode, color, instanceOrder)
											  VALUES("'.$instanceCode.'","'.$stockcode.'",'.$productId.',"'.$shortcode.'","'.$color.'",'.$instanceOrder.')';
								$newInstanceId++;
								$addInstanceId = str_pad($newInstanceId, 3, '0', STR_PAD_LEFT);
								$instanceCode  = $instance_prefix.$addInstanceId;
								
								$instanceOrder++;
							}
						}
						#3 add search tags
						if(isset($_SESSION['addedit-product']['tags'])){
							// for every tag in session
							$addedTag = array();
							foreach($_SESSION['addedit-product']['tags'] as $i => $tag){
								//else insert in db
								if(!existInArray($tag, $addedTag)){
									$queries[] = 'INSERT INTO product_searchtags(productId, searchtag, timest)
											  VALUES('.$productId.',"'.$tag.'",'.time().')';
									$addedTag[$i] = $tag;
								}
							}
						}
						
						// Set autocommit to FALSE
						$mysqli->autocommit(FALSE);
						
						foreach($queries as $query)
						{
							if(!$mysqli->query($query))
							{
								$errors[] = $siteLabels['fm-somethingwentwrong'].$mysqli->error;
							}
						}
						// ROLLBACK of COMMIT
						if(isset($errors))
						{
							$mysqli->rollback();
							displayErrors($errors);
							return showDashboard();
							//header('location: ../');
						}
						else
						{
							$mysqli->commit();
							//unset product session
							unset($_SESSION['addedit-product']);
							//display feedback
							$_SESSION['feed-msg'] = '<span class="fm-suc"><span class="fm-suc-v">&radic;</span>jeej</span>';
							//return showDashboard();
							header('location: ../');
						}
					//}
				}
			}

			/* MANAGE DATABASE "EDIT" */

			if($method == 'edit'){
				
				$editId = $_POST['editId'];
				if(!empty($editId)){
					#1 Update Products table
					$query = 'UPDATE product_products SET titleNL="'.$dbTitleNL.'", titleEN="'.$dbTitleEN.'", descriptionNL="'.$dbDescriptionNL.'", 
								descriptionEN="'.$dbDescriptionEN.'", specsNL="'.$dbSpecsNL.'", specsEN="'.$dbSpecsEN.'", price="'.$price.'", catId="'.$category.'", brandId="'.$brandId.'"
							  WHERE id = "'.$editId.'" LIMIT 1';
					if(!$result = $mysqli->query($query)){
						//handle errors
						$errors[] = $siteLabels['fm-somethingwentwrong'].$mysqli->error;
						displayErrors($errors);
						return showFormAddEditProduct($method);
					}
					else{
						#2 Update Instances
						// delete all instances
						// add new ones
						// if some query goes wrong -> rollback();
						
						// delete all instances
						$queries[] = 'DELETE FROM product_instances WHERE productId = "'.$editId.'"';
						
						$productId = $editId;
						
						$brandCode = 'XX';
						if($brandResult = $mysqli->query('SELECT brandCode FROM merken WHERE id = '.$brandId.' LIMIT 1')){
							$brandRecord = $brandResult->fetch_assoc();
							$brandCode = substr($brandRecord['brandCode'],0,2);
						}
						
						$catCode = str_pad($category, 3, '0', STR_PAD_LEFT);
						$productCode = str_pad($productId, 3, '0', STR_PAD_LEFT);
						$instance_prefix = $brandCode.$catCode.$productCode;
				
						$newInstanceId = 1;
						$addInstanceId = str_pad($newInstanceId, 3, '0', STR_PAD_LEFT);
						$instanceCode  = $instance_prefix.$addInstanceId;
						
						$instanceOrder = 1;						
						
						// add new ones
						if(isset($_SESSION['addedit-product']['shortcodes'])){
							foreach($_SESSION['addedit-product']['shortcodes'] as $i => $shortcode){
								/* generate id */
								$color = $_SESSION['addedit-product']['color'][$i];
								$stockcode = $_SESSION['addedit-product']['stockcodes'][$i];

								$queries[] = 'INSERT INTO product_instances(instanceCode, stockCode, productId, shortcode, color, instanceOrder)
											  VALUES("'.$instanceCode.'","'.$stockcode.'",'.$productId.',"'.$shortcode.'","'.$color.'",'.$instanceOrder.')';
								$newInstanceId++;
								$addInstanceId = str_pad($newInstanceId, 3, '0', STR_PAD_LEFT);
								$instanceCode  = $instance_prefix.$addInstanceId;
								
								$instanceOrder++;
							}
						}
						else{
							$errors[] = $siteLabels['fm-somethingwentwrong'];
						}
						
						#3 Update tags
						// delete all searchtags
						// add new ones
						// if some query goes wrong -> rollback();
						
						$queries[] = 'DELETE FROM product_searchtags WHERE productId = "'.$productId.'"';
						
						if(isset($_SESSION['addedit-product']['tags'])){
							// for every tag in session
							$addedTag = array();
							foreach($_SESSION['addedit-product']['tags'] as $i => $tag){
								//else insert in db
								if(!existInArray($tag, $addedTag)){
									$queries[] = 'INSERT INTO product_searchtags(productId, searchtag, timest)
											  VALUES('.$productId.',"'.$tag.'",'.time().')';
									$addedTag[$i] = $tag;
								}
							}
						}
						
						// Set autocommit to FALSE
						$mysqli->autocommit(FALSE);
						//check for commit or rollback
						foreach($queries as $query)
						{
							if(!$mysqli->query($query))
							{
								$errors[] = $siteLabels['fm-somethingwentwrong'].$mysqli->error;
							}
						}
						// ROLLBACK of COMMIT
						if(isset($errors))
						{
							$mysqli->rollback();
							displayErrors($errors);
							//return showDashboard();
							header('location: ../../');
						}
						else
						{
							//update instances
							$mysqli->commit();
							//unset product session
							unset($_SESSION['addedit-product']);
							//display feedback
							$_SESSION['feed-msg'] = '<span class="fm-suc"><span class="fm-suc-v">&radic;</span>jeej</span>';
							//return showDashboard();
							header('location: ../../');
						}
						
						#3 Update Tags
						
												
					}
				}
				else{
					//handle error empty editId
					$errors[] = $siteLabels['fm-somethingwentwrong'];
					displayErrors($errors);
					return showDashboard();
				}
				
			}			
		}
	}
}
/** Manage categories **/
	
function manageCategories(){
	/* access the global sql object */
	global $mysqli;	
	/* language */
	$siteLabels = getLanguage();

	//if delete category
	if($_GET['sub'] == 'delete-category'){
		//	get id
		$id = $_GET['sub2'];
		//delete from DB
		$queries[] = 'UPDATE product_products SET catId = 0 WHERE catId = '.$id.' LIMIT 1';
		$queries[] = 'DELETE FROM product_categories WHERE id = '.$id.' LIMIT 1';
		// Set autocommit to FALSE
		$mysqli->autocommit(FALSE);
		foreach($queries as $query)
		{
			if(!$mysqli->query($query))
			{
				$errors[] = $siteLabels['fm-somethingwentwrong'].$mysqli->error;
			}
		}
		// ROLLBACK of COMMIT
		if(isset($errors))
		{
			$mysqli->rollback();
			displayErrors($errors);
		}
		else
		{
			$mysqli->commit();
		}
		//header
		header('location: ../../manage-categories/');
	}

	$output = '';
	
	/* title */
	$output .= '<h1>'.$siteLabels['products-title'].' &rsaquo; '.$siteLabels['products-managecategories'].'</h1>';

	if(isset($_POST['sbm-add-categorie'])){
		
		$category = $_POST['new-category'];
		if(!empty($category)){
			//add category to database
			$query = 'INSERT INTO product_categories(category,timest)VALUES("'.$category.'",'.time().')';
			if(!$result = $mysqli->query($query)){
				//handle errors
				$errors[] = $siteLabels['fm-somethingwentwrong'];
				displayErrors($errors);
			}  
		}
		else{
			$errors[] = $siteLabels['fm-emptyonefields'];
			displayErrors($errors);
		}
	}
	
	/* form */
	$output .= '<form action="" method="post">';
		$output .= '<div class="single-column">';
			$output .= 'Add categorie';
			$output .= '<input type="text" name="new-category" value="" class="txt" />';
			$output .= '<input type="submit" name="sbm-add-categorie" value="'.$siteLabels['products-addcategory'].'" class="btn176 proceed"/>';
			
			$output .= '<input type="hidden" name="location" value="../"/>';
			$output .= '<input type="submit" name="back" value="'.$siteLabels['form-back'].'" class="btn176"/>';
		$output .= '</div>';
	$output .= '</form>';
	
	$output .= '<div class="clear"></div>';
	$output .= '<br /><br />';
	
	/* display categories */
	$query = 'SELECT id,category,timest
				FROM product_categories
				ORDER BY category';
	if(!$result = $mysqli->query($query)){
		//handle errors
		$errors[] = $siteLabels['fm-somethingwentwrong'];
		displayErrors($errors);
	}
	else{
		//display output
		$output .= '<div class="double-column">';
			while($record = $result->fetch_assoc()){
				$catId = $record['id'];
				$category = $record['category'];
				$output .= '<span class="catBox"><a href="./products/delete-category/'.$catId.'/"><span class="tagBox-delete">&times;</span></a>'.$category.'</span>';
			}	
		$output .= '</div>';
	}
	$output .= '<div class="clear"></div>';
	$output .= '<br /><br />';
	$output .= '<hr/>';
	
	return $output;	
}

/** Manage move to trash **/

function askMoveToTrash(){
	/* access the global sql object */
	global $mysqli;	
	/* language */
	$siteLabels = getLanguage();
	
	if(isset($_POST['option'])){
		$output = '';
		//ask the question
		$output .= $siteLabels['products-movetotrash-areyousure'].'<br /><br />';
		foreach($_POST['option'] as $productId){
			//get info
			/* get info */
			$query = 'SELECT p.id, p.catId, p.titleNL, p.price
					  FROM product_products as p
					  WHERE p.id = '.$productId.'
					  LIMIT 1';
			if($result = $mysqli->query($query)){
				$record = $result->fetch_assoc();
				//create productid
				$id = $record['id'];
				$catId = $record['catId'];
				$productId = '#'.$catId.$id;
				
				//title and category 
				$titleNL = fromDatabase($record['titleNL']);
				
				//price
				$price = $record['price'];
				$temp = explode('.',$price);
				isset($temp[1]) ? $displayCents = str_pad($temp[1], 2, STR_PAD_LEFT) :  $displayCents = '00';
				$displayPrice = '€ '.$temp[0].','.$displayCents;
				
				//category
				if($catresult = $mysqli->query('SELECT category FROM product_categories WHERE id = '.$catId.' LIMIT 1')){
					$catrecord = $catresult->fetch_assoc();
					if($catresult->num_rows == 0){
						$category = 'uncategorized';
					}
					else
					{
						$category = fromDatabase($catrecord['category']);
					}
				}
				else{
					$category = '<span class="warning">uncategorized</span>';
				}
				
				//numarticles
				if($instanceResult = $mysqli->query( 'SELECT id FROM product_instances WHERE productId = '.$id)){
					$numInstances = $instanceResult->num_rows;
				}
				else{
					$numInstances = '<span class="itemlist-warning">0</span>';
				}

				//show the articles
				$output .= '<div class="itemlist-row">';
					/* product id */
					$output .= '<div class="itemlist-single-column">';
						$output .= '<span class="itemlist-btn" id="itemlist-btn-photo"></span> '.$productId;
					$output .= '</div>';
					/* title */
					$output .= '<div class="itemlist-double-column">'.$titleNL.'</div>';
					/* num instances */
					$output .= '<div class="itemlist-single-column">'.$numInstances.'</div>';
					/* price*/
					if($price == 0) $displayPrice = '<span class="itemlist-warning">'.$displayPrice.'</span>';
					$output .= '<div class="itemlist-single-column">'.$displayPrice.'</div>';
					/* discount */
					$output .= '<div class="itemlist-single-column">actie 5</div>';
					/* empty */
					$output .= '<div class="itemlist-single-column">'.$category.'</div>';
					/* status */
					$output .= '<div class="itemlist-single-column">';
					$output .= '</div>';
					/* edit */
					$output .= '<div class="itemlist-single-column itemlist-edit">';
					$output .= '</div>';
					$output .= '<div class="clear"></div>';	
				$output .= '</div>';
			}
			
		}
		$output .= '<div class="clear"></div>';	
		$output .= '<br /><br />';
		$output .= '<form action="" name="moveToTrash" method="post" enctype="multipart/form-data">';
		foreach($_POST['option'] as $productId){
			$output .= '<input type="hidden" name="products[]" value="'.$productId.'" />';
		}
		$output .= '<input type="submit" name="moveToTrash" value="'.$siteLabels['form-yes'].'" class="btn176"/>';
	
		$output .= '<input type="hidden" name="location" value="../"/>';
		$output .= '<input type="submit" name="back" value="'.$siteLabels['form-no'].'" class="btn176 proceed"/>';
		$output .= '</form>';
		
		return $output;			
	}
	else{
		$errors[] = $siteLabels['fm-nothingselected'];
		displayErrors($errors);
		//return showDashboard();
		header('location: ./');
	}
}

function moveToTrash(){
	/* access the global sql object */
	global $mysqli;	
	/* language */
	$siteLabels = getLanguage();
	
	if(isset($_POST['products'])){
		$output = '';
		foreach($_POST['products'] as $productId){
			/* For each product; change content status to 0 */
			$queries[] = 'UPDATE content_status SET active = 0 WHERE itemId ='.$productId.' AND	linkname = "product_products"';
		}
		
		// Set autocommit to FALSE
		$mysqli->autocommit(FALSE);
		foreach($queries as $query)
		{
			if(!$mysqli->query($query))
			{
				$errors[] = $siteLabels['fm-somethingwentwrong'];
			}
		}
		// ROLLBACK of COMMIT
		if(isset($errors))
		{
			$mysqli->rollback();
			displayErrors($errors);
		}
		else
		{
			$mysqli->commit();
			$msg = str_replace('[numitems]', count($_POST['products']), $siteLabels['fm-itemsmovedtotrash']);
			$_SESSION['feed-msg'] = '<span class="fm-suc"><span class="fm-suc-v">&radic;</span>'.$msg.'</span>';
			//return showDashboard();
			header('location: ./');
		}
	}		
}

/* CHANGE ORDER */
function showChangeOrder(){
	/* access the global sql object */
	global $mysqli;	
	/* language */
	$siteLabels = getLanguage();
	
	$output = '';
	
	/* title */
	$output .= '<h1>'.$siteLabels['products-title'].' &rsaquo; '.$siteLabels['products-changeorder'].'</h1>';
	
	$output .= '<div class="double-column">';	

		//$output .= $siteLabels['changeOrderHelp'];

		if(!isset($message)) $message = '';
		//$output .= '<div id="message-box">'.$message.' Waiting for sortation submission...</div>';
			
		$output .= '<form action="'.$_SERVER['REQUEST_URI'].'" id="dd-form" name="dd-form" method="post">';
	/*	$output .= '<p><input type="checkbox" value="1" name="auto_submit" id="auto_submit"'; 
			if(isset($_POST['auto_submit'])) { 
				if($_POST['auto_submit']) { $output .= 'checked="checked"'; } 
			}
		$output .= '/> <label for="auto_submit">Automatically submit on drop event</label></p>';*/
		
		$output .= '<ul id="sortable-list">';
			$order = array();
			$count = 1;
			//Get Info for the list
			$query = 'SELECT p.id, p.catId, p.titleNL, p.isNew, p.published, p.price, p.productOrder
					  FROM product_products as p, content_status as s
					  WHERE s.active = 1
					  AND s.itemId = p.id
					  AND s.linkname = "product_products"
					  ORDER BY p.productOrder DESC';		
			$result = $mysqli->query($query);
			while($item = $result->fetch_assoc())
			{
				//create productid
				$id = $item['id'];
				$catId = $item['catId'];
				$productId = '#'.$catId.$id;
			  	$output .= '<li title="'.$item['id'].'">'.$productId.' '.$item['titleNL'].'</li>';
			  	$order[] = $item['productOrder'];
			}
		$output .= '</ul>';
		$output .= '<br />';
		$output .= '<input type="hidden" name="sort_order" id="sort_order" value="'.implode(',',$order).'" />';
		$output .= '<input type="hidden" name="sort_what" value="products" />';
		$output .= '<input type="submit" name="do_submit" value="'.$siteLabels['form-save'].'" class="btn176 proceed" />';
		
		$output .= '<input type="hidden" name="location" value="../"/>';
		$output .= '<input type="submit" name="back" value="'.$siteLabels['form-back'].'" class="btn176" />';
		$output .= '</form>';
	$output .= '</div>';
	$output .= '<script type="text/javascript"> initSortableList(); </script>';
	return $output;
}

function sbmChangeOrder(){
	/* access the global sql object */
	global $mysqli;	
	/* language */
	$siteLabels = getLanguage();
	
	/* split the value of the sortation */
	$ids = explode(',',$_POST['sort_order']);
	/* run the update query for each id */
	foreach($ids as $index=>$id) {
		$id = (int) $id;
		if($id != '') {
			$queries[] = 'UPDATE product_products SET productOrder = '.($index + 1).' WHERE id = '.$id.' LIMIT 1';
		}
	}
	  
	// Set autocommit to FALSE
	$mysqli->autocommit(FALSE);
	foreach($queries as $query)
	{
		if(!$mysqli->query($query))
		{
			$errors[] = $siteLabels['fm-somethingwentwrong'];
		}
	}
	// ROLLBACK of COMMIT
	if(isset($errors))
	{
		$mysqli->rollback();
		displayErrors($errors);
		//return showDashboard();
		header('location: ../');
	}
	else
	{
		$mysqli->commit();
		$_SESSION['feed-msg'] = '<span class="fm-suc"><span class="fm-suc-v">&radic;</span>'.$siteLabels['fm-changeordersucces'].'</span>';
	//	return showDashboard();
		header('location: ../');
	}
}


/////////////////////////// ORDER INSTANCES \\\\\\\\\\\\\\\\\\\\\\\\\

function showChangeInstanceOrder(){
	/* access the global sql object */
	global $mysqli;	
	/* language */
	$siteLabels = getLanguage();
	
	$productId = $_GET['sub2'];
	
	$output = '';
	
	/* title */
	$output .= '<h1>'.$siteLabels['products-title'].' &rsaquo; '.$siteLabels['products-changeorder'].'</h1>';
	
	$output .= '<div class="double-column">';	

		//$output .= $siteLabels['changeOrderHelp'];

		if(!isset($message)) $message = '';
		//$output .= '<div id="message-box">'.$message.' Waiting for sortation submission...</div>';
			
		$output .= '<form action="'.$_SERVER['REQUEST_URI'].'" id="dd-form" name="dd-form" method="post">';
	/*	$output .= '<p><input type="checkbox" value="1" name="auto_submit" id="auto_submit"'; 
			if(isset($_POST['auto_submit'])) { 
				if($_POST['auto_submit']) { $output .= 'checked="checked"'; } 
			}
		$output .= '/> <label for="auto_submit">Automatically submit on drop event</label></p>';*/
		
		$output .= '<ul id="sortable-thumb">';
			$order = array();
			$count = 1;
			//Get Info for the list
			//fill shortcodes
			$query = 'SELECT DISTINCT m.id AS mediaId, m.cp_thumb, i.id AS instanceId, i.instanceOrder, i.color, i.shortcode, i.stockCode
					  FROM product_instances AS i, media_files AS m
					  WHERE m.shortcode = i.shortcode
					  AND i.productId = "'.$productId.'"
					  ORDER BY i.instanceOrder DESC';
			if($result = $mysqli->query($query)){
				while($item = $result->fetch_assoc())
				{
					//create productid
					$url = $item['cp_thumb'];
					$shortcode = $item['shortcode'];
					$output .= '<li title="'.$item['instanceId'].'">';
						$output .= '<div class="medialib-thumb-holder">';
							$output .= '<span class="medialib-thumb-image">';
								$output .= '<img src="../images/uploads/thumb/'.$url.'" alt="'.$shortcode.'" />';
							$output .= '</span>';
						$output .= '</div>';
					$output .= '</li>';
					$order[] = $item['instanceOrder'];
				}
				$output .= '</ul>';
				$output .= '<br />';
								
				$output .= '<input type="hidden" name="sort_order" id="sort_order" value="'.implode(',',$order).'" />';
				$output .= '<input type="hidden" name="sort_what" value="instances" />';
				$output .= '<input type="hidden" name="productId" value="'.$productId.'" />';
				$output .= '<input type="submit" name="do_submit" value="'.$siteLabels['form-save'].'" class="btn176 proceed" />';
				
				$output .= '<input type="hidden" name="location" value="../../"/>';
				$output .= '<input type="submit" name="back" value="'.$siteLabels['form-back'].'" class="btn176" />';
			}
			else{
				$output .= $mysqli->error;
			}
		$output .= '</form>';
	$output .= '</div>';
	
	$output .= '<script type="text/javascript"> initSortableList(\'#sortable-thumb\'); </script>';
	return $output;
}

function sbmChangeInstanceOrder(){
	/* access the global sql object */
	global $mysqli;	
	/* language */
	$siteLabels = getLanguage();
	
	/* split the value of the sortation */
	$ids = explode(',',$_POST['sort_order']);
	/* run the update query for each id */
	foreach($ids as $index=>$id) {
		$id = (int) $id;
		if($id != '') {
			$queries[] = 'UPDATE product_instances SET instanceOrder = '.($index + 1).' WHERE id = '.$id.' AND productId="'.$_POST['productId'].'" LIMIT 1';
		}
	}
	  
	// Set autocommit to FALSE
	$mysqli->autocommit(FALSE);
	foreach($queries as $query)
	{
		if(!$mysqli->query($query))
		{
			$errors[] = $siteLabels['fm-somethingwentwrong'];
		}
	}
	// ROLLBACK of COMMIT
	if(isset($errors))
	{
		$mysqli->rollback();
		displayErrors($errors);
		//return showDashboard();
		header('location: ../../');
	}
	else
	{
		$mysqli->commit();
		$_SESSION['feed-msg'] = '<span class="fm-suc"><span class="fm-suc-v">&radic;</span>'.$siteLabels['fm-changeordersucces'].'</span>';
	//	return showDashboard();
		header('location: ../../');
	}
}



function updateModified(){
	global $mysqli;
	//what product id?
	$productId = $_POST['productId'];
	
	$modified = $_POST['modified'];
	if(empty($modified)){
		$errors[] = 'empty value';
	}
	if(!is_numeric($modified)){
		$errors[] = 'not a number';
	}
	
	if(!isset($errors)){
	//valid?
		//update or insert?
		$modifiedResult = $mysqli->query('SELECT modified FROM popular_modified WHERE productId = '.$productId.' LIMIT 1');
		if($modifiedResult->num_rows > 0){
			//update
			$mysqli->query('UPDATE popular_modified SET modified = '.$modified.' WHERE productId = '.$productId.' LIMIT 1');
		}
		else{
			//insert
			$mysqli->query('INSERT INTO popular_modified(productId, modified)VALUES('.$productId.','.$modified.')');
		}
		//update total
			$likesresult = $mysqli->query('SELECT id FROM popular_likes WHERE productId = '.$productId);
			$numlikes = $likesresult->num_rows;
			$modifiedresult = $mysqli->query('SELECT modified FROM popular_modified WHERE productId = '.$productId.' LIMIT 1');
			$modifiedrecord = $modifiedresult->fetch_assoc();
			$modified = $modifiedrecord['modified'];
			$total = $modified+$numlikes;
			$mysqli->query('UPDATE popular_modified SET likes = '.$numlikes.', total = '.$total.' WHERE productId = '.$productId.' LIMIT 1');
	}
	//header back	
	header('location: ./');
}


function updateExtraleuk(){
	global $mysqli;
	if(isset($_GET['sub2'])){
		$location = '../';
		
		$productId = $_GET['sub2'];
		
		if($result = $mysqli->query('SELECT extraleuk FROM product_products WHERE id = '.$productId.' LIMIT 1')){
			$record = $result->fetch_assoc();
			$extraleuk = $record['extraleuk'];
			$extraleuk == 1 ? $newExtraleuk = 0 :  $newExtraleuk = 1; 
			$mysqli->query('UPDATE product_products SET extraleuk = '.$newExtraleuk.' WHERE id = '.$productId.' LIMIT 1');
		}	
	}
	else{
		$location = './';
	}
	
	header('location:'.$location);	
}

function updatePublished(){
	global $mysqli;
	if(isset($_GET['sub2'])){
		$location = '../';
		
		$productId = $_GET['sub2'];
		
		if($result = $mysqli->query('SELECT published FROM product_products WHERE id = '.$productId.' LIMIT 1')){
			$record = $result->fetch_assoc();
			$published = $record['published'];
			$published == 1 ? $newpublished = 0 : $newpublished = 1; 
			$mysqli->query('UPDATE product_products SET published = '.$newpublished.' WHERE id = '.$productId.' LIMIT 1');
		}
		
	}
	else{
		$location = './';
	}
	
	header('location:'.$location);	
}

function updateNew(){
	global $mysqli;
	if(isset($_GET['sub2'])){
		$location = '../';
		$productId = $_GET['sub2'];
		
		if($result = $mysqli->query('SELECT isNew FROM product_products WHERE id = '.$productId.' LIMIT 1')){
			$record = $result->fetch_assoc();
			$new = $record['isNew'];
			$new == 1 ? $newnew = 0 :  $newnew = 1; 
			$mysqli->query('UPDATE product_products SET isNew = '.$newnew.' WHERE id = '.$productId.' LIMIT 1');
		}
		
		
	}
	else{
		$location = './';
	}
	
	header('location:'.$location);	
}
	
?>