<?php
	/*******************************************************
		* Only these origins will be allowed to upload images *
	******************************************************/
	//  $accepted_origins = array("http://demo.gswebsite.ru");
	
	/*********************************************
		* Change this line to set the upload folder *
	*********************************************/
	if (!empty($_GET['CPAT'])) $updir=$_GET['CPAT'] ; else $updir='';
	$imageFolder = rtrim("../../sg_cm/upload/".$updir,'/');
	if(!is_dir($imageFolder) ) 
			{$cdir=getcwd(); 
			chdir('../../');
			mkdir("sg_cm/upload/".$updir,0700,true);
			chdir($cdir);}
	$imageFolder .='/';

	reset ($_FILES);
	$temp = current($_FILES);
	if (is_uploaded_file($temp['tmp_name'])){
		if (isset($_SERVER['HTTP_ORIGIN']) && isset($accepted_origins) ) {
			// same-origin requests won't set an origin. If the origin is set, it must be valid.
			if (in_array($_SERVER['HTTP_ORIGIN'], $accepted_origins)) {
				header('Access-Control-Allow-Origin: ' . $_SERVER['HTTP_ORIGIN']);
				} else {
				header("HTTP/1.0 403 Origin Denied");
				return;
			}
		}
		
		/*
			If your script needs to receive cookies, set images_upload_credentials : true in
			the configuration and enable the following two headers.
		*/
		// header('Access-Control-Allow-Credentials: true');
		// header('P3P: CP="There is no P3P policy."');
		
		// Sanitize input
		if (preg_match("/([^\w\s\d\-_~,;:\[\]\(\).])|([\.]{2,})/", $temp['name'])) {
			header("HTTP/1.0 500 Invalid file name.");
			return;
		}
		
		// Verify extension
		if (!in_array(strtolower(pathinfo($temp['name'], PATHINFO_EXTENSION)), array("gif", "jpg", "png"))) {
			header("HTTP/1.0 500 Invalid extension.");
			return;
		}
		
		// Accept upload if there was no origin, or if it is an accepted origin
		$temp_name = pathinfo($temp['name'], PATHINFO_BASENAME);
		if ( strpos($temp_name, 'img_tools_')!==false) 
		{ 
			$prefx_arr = explode('_', $temp_name);
			$temp_name = substr($temp_name, 14);
			$prefx_num = $prefx_arr[2]+1;
			if ($prefx_num>999) { // при достижении счетчика сохраненных этапов редактирования фото произойдет сброс счетчика на 0 и очитска (удаление) всех файлов с именами вида img_tools_xxx_name.jpg
				$prefx_num = 0;
				$count_max = 999;
				$count_undo = 0;
			}
			else{
				$count_max = $prefx_num;
				$count_undo = 2; // сколько сохранять предыдущих этапов редактирования фото
			}
			for ($x=0; $x<($count_max-$count_undo); $x++){  
				@unlink($imageFolder . 'img_tools_' . sprintf("%03d", $x) . '_'. $temp_name);
			}	
			
			$prefx_num = sprintf("%03d", $prefx_num);	
			$prefx='img_tools_' . $prefx_num . '_';
			
			
		} else  $prefx = 'img_tools_000_';
		
		$filetowrite = $imageFolder . $prefx . $temp_name ; 
		move_uploaded_file($temp['tmp_name'], $filetowrite); // отредактированная картинка сохрагится как img_tools_xxx_name.jpg
		
		// Respond to the successful upload with JSON.
		// Use a location key to specify the path to the saved image resource.
		// { location : '/your/uploaded/image/file'}
		echo json_encode(array('location' => $filetowrite));
		} else {
		// Notify editor that the upload failed
		header("HTTP/1.0 500 Server Error");
	}
?>
