<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<%@ page contentType="text/html; charset=UTF-8" language="java" %>
<%@ page import="java.util.*" %>
<%@ page import="java.io.*" %>
<%@ page import="org.apache.commons.io.*" %>
<%@ page import="com.csc.library.utilities.UProfile" %>
<%@ page import="com.csc.library.fileutils.*" %>
<%@ page import="com.csc.library.upload.*" %>
<%@ page import="com.csc.library.upload.utils.*" %>
<%@ page import="com.csc.library.upload.UploadConfig" %>
<%@ page import="com.csc.library.session.InitialEnvironment" %>
<%@ page import="com.csc.library.download.FileDownloadUtils2" %>
<jsp:useBean id="uploadbean" class="com.csc.library.upload.CscFileUpload" scope="request" />
<%
		int fileCount = 1, uploadLastFileIndex = 1;
		long fileSizeMax= -1L; 
		boolean blacklistenabled = false, error = false;
		String root = "", folder= "", filter = "";
		String uploadfield = request.getParameter("uploadfield");
		String fieldreturn = request.getParameter("fieldreturn");
		String subfolder = request.getParameter("subfolder");
		String fn_num=request.getParameter("CKEditorFuncNum");
		UploadConfig uconfig = null;
		try {
			uconfig = new UploadConfig();
			uconfig.setUploadField( uploadfield );

			filter=uconfig.getFilter();
			blacklistenabled =  uconfig.isBlacklistenabled();
			fileSizeMax = uconfig.getFileSizeMax();
			fileCount = uconfig.getFileCount();
			
			if(fileCount>1) {
				uploadLastFileIndex = fileCount;
			}
			
		} catch (Exception e) {
			error = true;
			request.setAttribute("error", e.getMessage() );
		}

		if(CscFileUpload.isMultipartFormData( request ) ) {
			 try {
	 			System.out.println("Start uploading...");
				uploadbean.setProgressListener(new FileUploadProgressListener(request, 30) );
				uploadbean.setFileSizeMax(fileSizeMax);
				uploadbean.process( request );
				Map files = uploadbean.getFiles();

				String uploadpath;
				root = uconfig.getRoot();
				folder = uconfig.getFolder();

				InitialEnvironment env = new InitialEnvironment("GLOBAL");
				uploadpath = env.getValue( root +"-dir"  );
				
				if( folder != null && !("").equals(folder) ) {
					uploadpath = uploadpath +folder +"/";
				}
				if( subfolder != null && !("").equals(subfolder) ) {
					uploadpath = uploadpath +subfolder +"/";
				}
				uploadbean.setUploadDirectory( uploadpath );
				uploadbean.setFileFilter( filter );
				uploadbean.setBlacklistEnabled( blacklistenabled );
				
				FileRenamePolicy fileRename = (FileRenamePolicy)uconfig.getFileRenamePolicy();
				if(fileRename == null ) {
					fileRename = new TimeStampFileRename();
				}
				uploadbean.setFileRenamePolicy( fileRename );

				System.out.println("Process file upload");
				if(FileUploadUtils.getUploadInfo(request).isCancel()) {
					request.setAttribute("cancel", "Upload cancel.");
					System.out.println("jsp-Cancel");
				} else if( files != null && files.size()>0 ) {
					uploadbean.save();
					request.setAttribute("success", "The file was uploaded successfully!");
					System.out.println("jsp-success");
				} else if(!error) {
					 request.setAttribute("error", "No file upload" );
					 System.out.println("jsp-error : No file upload:" +files.size());
				}
			
			} catch(Exception e) {
				 	request.setAttribute("error", e.getMessage());
				 	System.out.println("jsp-error :" +e.getMessage());
			}
			
		}
		
		UProfile uprofile = (UProfile)request.getSession().getAttribute("userprofile");
		String lang= "tha";
		if( uprofile!= null && uprofile.get("lang")!=null ) {
			lang = uprofile.get("lang");
		}
%>
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="PRAGMA" content="NO-CACHE">
<link rel="stylesheet" type="text/css" href="CSS/TISCO.css" />
<link rel="stylesheet" type="text/css" href="CSS/UPLOAD_UI.css" />
<script type="text/javascript" src="<%=request.getContextPath() %>/dwr/interface/UploadMonitor.js"></script>
<script type="text/javascript" src="<%=request.getContextPath() %>/dwr/engine.js"></script>
<script type="text/javascript" src="JS/JavaUtils.js"></script>
<script type="text/javascript" src="JS/FilenameUtils.js"></script>
<script type="text/javascript" src="JS/UPLOAD2.js"></script>
<script type="text/javascript">

var fileFilter, restrict;
var lang = "<%=lang%>";
var uploadLastFileIndex = <%=uploadLastFileIndex %>;

function activeButton(obj, active){
}
function cancelUpload(){
	activeButton($("cancelButton"), false);
	if(submitted) {
		if(uploadCanCancel()) {
			cancelProgress();
		}
	}else {
		closePage();
	} 
}

function closePage() {
	window.close();
}

function reloadPage() {
	window.location.replace( window.location.href );
}

function uploadReturn(fn_num,fileurl){
	/*with(document.cscform) {
		var cmd = window.opener.document.getElementsByName("__cmd")[0];
		var cmdchild = window.opener.document.getElementsByName("__cmdchild")[0];
		
		var fieldreturn = window.opener.document.getElementsByName(__fieldreturn.value)[0];
		if(fieldreturn != null && typeof(fieldreturn) !="undefined" ) {
			fieldreturn.value = __uploadreturn.value;
		}
		cmd.value = 'refresh';
		if(cmdchild != null && typeof(cmdchild) !="undefined" ) {
			cmdchild.value = 'upload';
		}
		window.opener.document.cscform.submit();
	}*/
	/*alert(fn_num);
	alert(fileurl);*/
	window.parent.CKEDITOR.tools.callFunction(fn_num,fileurl,"");
}

/*
// used input image and set on form submit = startProgress;
function processUpload(){
	with(document.cscform) {
		submit();
		startProgress();
	}
}
*/
</script>
<style type="text/css">
#mainMasterTable { background: #efefef; }
#preUpload { /*padding-left: 30px;*/ }
.subText2 { color: #000000; }
.input-image { height: 23px; min-width: 73px; border: 0px solid none; }
</style>
</head>
<body>
	<%
		if (request.getAttribute("success")!=null){

			List history = uploadbean.getHistory();
			StringBuffer uploadReturn = new StringBuffer();
			FileDownloadUtils2 utils = null;

			if( history.size()==1) {

				UploadParameters up = (UploadParameters)history.get(0);
				uploadReturn.append(up.getFilename());
				utils = new FileDownloadUtils2(uploadfield, up.getFilename());

				if (subfolder != null && !("").equals(subfolder)){
					utils.setSubfolder(subfolder);
				

				}

				out.println(utils.getDownloadUrl());
				//out.println("<script type='text/javascript'>uploadReturn("+fn_num+","+utils.getDownloadUrl()+")</script>");
				%>
				<script type='text/javascript'>uploadReturn("<%=fn_num%>","<%=utils.getDownloadUrl()%>")</script>
	<%		}
		
		}
	%>

</body>
</html>