<?php
	/**
	 * ajax save name
	 * @author Logan Cai (cailongqun [at] yahoo [dot] com [dot] cn)
	 * @link www.phpletter.com
	 * @since 22/May/2007
	 *
	 */
	require_once(dirname(__FILE__) . DIRECTORY_SEPARATOR . "inc" . DIRECTORY_SEPARATOR . "config.php");
	$error = '';
	$fileInfo = array();
	if(CONFIG_SYS_VIEW_ONLY || !CONFIG_OPTIONS_RENAME)
	{
		$error = SYS_DISABLED;
	}
	elseif(empty($_POST['name']))
	{
		$error = ERR_RENAME_EMPTY;
	}elseif(!preg_match("/^[a-zA-Z0-9 _\-.]+$/", $_POST['name']))
	{
		$error = ERR_RENAME_FORMAT;
	}elseif(empty($_POST['original_path']) || !file_exists($_POST['original_path']))
	{
		$error = ERR_RENAME_FILE_NOT_EXISTS;
	}elseif(substr(slashToBackslash(removeTrailingSlash($_POST['original_path'])), strrpos(slashToBackslash(removeTrailingSlash($_POST['original_path'])), "/") + 1) == $_POST['name'])
	{
		$error = ERR_NO_CHANGES_MADE;
	}elseif(file_exists(addTrailingSlash(getParentPath($_POST['original_path'])) . $_POST['name']))
	{
		$error = ERR_RENAME_EXISTS;
	}elseif(is_file($_POST['original_path']) && !isValidExt($_POST['name'], explode(",", CONFIG_UPLOAD_VALID_EXTS), explode(",", CONFIG_UPLOAD_INVALID_EXTS)))
	{
		$error = ERR_RENAME_FILE_TYPE_NOT_PERMITED;
	}elseif(!rename(removeTrailingSlash($_POST['original_path']), addTrailingSlash(getParentPath($_POST['original_path'])) . $_POST['name']))
	{
		$error = ERR_RENAME_FAILED;
	}else 
	{
		//update record of session if image exists in session for cut or copy
		include_once(CLASS_SESSION_ACTION);
		$sessionAction = new SessionAction();		
		$selectedDocuments = $sessionAction->get();
		if(removeTrailingSlash($sessionAction->getFolder()) == getParentPath($_POST['original_path']) && sizeof($selectedDocuments))
		{
			if(($key = array_search(basename($_POST['original_path']), $selectedDocuments)) !== false)
			{
				$selectedDocuments[$key] = $_POST['name'];
				$sessionAction->set($selectedDocuments);
				
			}
			
		}elseif(removeTrailingSlash($sessionAction->getFolder()) == removeTrailingSlash($_POST['original_path']))
		{
			$sessionAction->setFolder($_POST['original_path']);
		}	
		$path = addTrailingSlash(getParentPath($_POST['original_path'])) . $_POST['name'];
		if(is_file($path))
		{
			include_once(CLASS_FILE);
			$file = new file($path);
			$fileInfo = $file->getFileInfo();
			$fileInfo['mtime'] = date(DATE_TIME_FORMAT,$fileInfo['mtime']);
		}else
		{
			include_once(CLASS_MANAGER);
			$manager = new manager($path, false);
			$fileInfo = $manager->getFolderInfo();
			$fileInfo['mtime'] = date(DATE_TIME_FORMAT,$fileInfo['mtime']);
		}
	}
	
	echo "{";
	echo "error:'" . $error . "' ";
	foreach ($fileInfo as $k=>$v)
	{
		echo "," . $k . ":'" . $v . "' ";
	}
	echo "}";
	
	
?>