<!DOCTYPE html>
<%@ 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.utilities.CheckNull" %>
<%@ page import="com.csc.library.utilities.*" %>
<%@ 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.session.*" %>
<%@ page import="com.csc.library.download.FileDownloadUtils2" %>
<%@ include file="../CHECKPROFILE.jsp" %>
<jsp:useBean id="uploadbean" class="com.csc.library.upload.CscFileUpload" scope="request" />
<%
		CheckNull chkNull = new CheckNull();
		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");
		

		//out.println("fieldreturn " + fieldreturn);
		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 +"/";
				}
				request.setAttribute("path",uploadpath);
				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());
					e.printStackTrace();
			}
			
		}
		
		//UProfile uprofile = (UProfile)request.getSession().getAttribute("userprofile");
		String lang= "tha";
		if( uprofile!= null && uprofile.get("lang")!=null ) {
			lang = uprofile.get("lang");
		}
%>
<html ng-app="myHR">
	<head>
		<title>Employee View</title>
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
		<meta http-equiv="PRAGMA" content="NO-CACHE">
		<link rel="stylesheet" href="<%=request.getContextPath()%>/CSS/font-awesome.css">
		<link rel="stylesheet" type="text/css" href="../CSS/Bootstrap/css/bootstrap.css" />
		<link rel="stylesheet" type="text/css" href="../CSS/EMPVIEW_LAYOUT.min.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" src="../JS/SCREEN.js"></script>
		<script type="text/javascript" src="../JS/EMPVIEW_FUNC.js"></script>
		<script type="text/javascript" src="../JS/HOTKEY.js"></script>
		<script type='text/javascript' src='/hr/dwr/interface/SearchDWR.js'></script>
		<script type='text/javascript' src='/hr/dwr/util.js'></script>
		<script type='text/javascript' src='/hr/dwr/interface/Createemployeelist_dwr.js'></script>
		<script type='text/javascript' src='/hr/dwr/interface/Createshiftlist_dwr.js'></script>
		<script type="text/javascript" src="../JS/angular-1.3.15/angular.js"></script>
		<script type="text/javascript" src="../JS/ANGULAR/SCREEN_ANGULAR.js"></script>
		
		<style type="text/css">
			.displayVisible{
				display: inline;
			}
			.displayInvisible{
				display: none;
			}
			.table a {
				color: #fff;
				text-decoration: none;
			}
		</style>
		
		<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(){
				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];
				//	alert(fieldreturn + " >> "+__uploadreturn.value);
					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();
				}
			}

			function CreateEmpList(path,filename,emp_boss){
						//DWREngine.beginBatch();
						//alert(path+" " +filename + " " + emp_boss);
						Createshiftlist_dwr.createlistAdminV2(path,filename,emp_boss,isApproved); 
						//Createshiftlist_dwr.createlistNoCondition(path,filename,isApproved); 
						
						//DWREngine.endBatch({ async:false });
						//window.close();
			}

					var isApproved = function(data){
						/*	if(data == "ImportUnsuccess"){
								alert(data);
								data = "";
							}else if(data == "Can't Change"){
								alert(data);
								data = "";
							}else{
								alert("อิมพอร์ตข้อมูลเรียบร้อย");
							}	*/

							if(data.length==13){
								alert("อิมพอร์ตข้อมูลเรียบร้อย");
							}else{
								alert(data);
								data = "";
							}
							var filename = document.cscform.__filename.value;
							var subfolder = document.cscform.__subfolder.value;
							var pathname = subfolder+"/"+filename;
							window.opener.document.cscform.__wf__pathname.value = pathname;
							window.opener.document.cscform.__wf__filename.value = filename;
							window.opener.document.cscform.__wf__group_name.value = data;
							window.opener.document.cscform.__uploadFile.value = "true";
							window.opener.initiframe('Y');
							if(document.cscform.__del.value != ""){
								var oldfilenme = document.getElementById("__oldfilename").value;
								var uploadfield = document.getElementById("__uploadfield").value;
								//alert(uploadfield+":"+subfolder+":"+oldfilenme);
								Createshiftlist_dwr.removeList(document.cscform.__del.value,uploadfield,subfolder,oldfilenme);
							}
					}; 

			/*
			// used input image and set on form submit = startProgress;
			function processUpload(){
				with(document.cscform) {
					submit();
					startProgress();
				}
			}
			*/
		
			function addFileInput(parentObjID) {
				var parentObj = $(parentObjID);
				uploadLastFileIndex++;
				var newFileIndex = uploadLastFileIndex;
				var newFileInputID = 'filediv' + newFileIndex;
				var newFileInput = document.createElement('div');
				newFileInput.setAttribute("id", newFileInputID);
				
				newFileInput.innerHTML = "<div class=\"row\"><div class=\"form-group\"><div class=\"col-md-4 col-sm-4 col-xs-4\"></div><div class=\"col-md-4 col-sm-4 col-xs-4\"><label class=\"control-label\"><input type=\"file\" id=\"file" + newFileIndex + "\" name=\"file" + newFileIndex + "\"  class=\"fileUploadBox\" onChange=\"chkFileUpload(event, this);\" onKeyup=\"chkFileUpload(event, this);\"  /></label></div><div class=\"col-md-2 col-sm-2 col-xs-2\"><a href=\"javascript:;\" onClick=\"removeFileInput(" + newFileInputID + ");\"><i class="+"\"fa fa-trash\""+"></i></a>&nbsp; &nbsp; <a href=\"javascript:;\" onClick=\"clearFileInput('file" + newFileIndex + "');\"><i class="+"\"fa fa-eraser\""+"></i></a></div>";
				parentObj.appendChild(newFileInput);
			}

			function setVisible(obj, visible){
				console.log(obj.className);
				obj.className=visible?"displayVisible":"displayInvisible"
			}
		</script>
	<body>
		<div class="bg-com"></div>	
		<div class="container csc-content">
			<div class="csc-block">
				<div class="form-horizontal">
					<div class="col-md-12 col-sm-12 col-xs-12">
						<% 
							if (request.getAttribute("cancel") != null) { 
						%>
							<div class="row">
								<div class="form-group">
									<div class="center">
										<h3 class="csc-block-head">
											<script type="text/javascript">document.write( messages[lang]["upload-cancel-title"] );</script>
										</h3>
									</div>
								</div>
							</div>
							<div class="row">
								<div class="form-group">
									<p><script type="text/javascript">document.write( messages[lang]["upload-cancel-message"] );</script></p>
								</div>
							</div>
							
							<div class="row">
								<div class="form-group">
									<div class="center">
										<a href="javascript:reloadPage();"  class="btn btn-primary" swlang code='SW012216'>Retry</a> 
										<a href="javascript:closePage();" class="btn btn-primary" swlang code='SW012104'>Close</a> 
									</div>
								</div>
							</div>
						<% 
							} else if (request.getAttribute("error") != null) {
						%>
							<div class="row">
								<div class="form-group">
									<div class="center">
										<h3 class="csc-block-head">
											<script type="text/javascript">document.write( messages[lang]["upload-error-title"] );</script>
										</h3>
									</div>
								</div>
							</div>
							
							<div class="row">
								<div class="form-group">
									<div class="center">
										<span class="control-label">
											<script type="text/javascript">document.write( messages[lang]["upload-error-sub"] );</script>
										</span>
									</div>
								</div>
							</div>

							<div class="row">
								<div class="form-group">
									<div class="col-md-1 col-sm-1 col-xs-1">
									</div>
									<div class="col-md-10 col-sm-10 col-xs-10">
										<p class="control-label"><%=request.getAttribute("error")%></p>
									</div>
								</div>
							</div>


							<div class="row">
								<div class="form-group">
									<div class="center">
										<a href="javascript:reloadPage();"  class="btn btn-primary" swlang code='SW012216'>Retry</a>
										<a href="javascript:closePage();" class="btn btn-primary" swlang code='SW012104'>Close</a>
									</div>
								</div>
							</div>
						<% 
							} else if (request.getAttribute("success") != null) {
						%>
							<form name="cscform" id="cscform" method="post" action="?<%=request.getQueryString()%>">
								<input type="hidden" name="__fieldreturn" value="<%=fieldreturn %>" />

							<div class="row">
								<div class="form-group">
									<div class="center">
										<h3 class="csc-block-head">
											<script type="text/javascript">document.write( messages[lang]["upload-success-title"] );</script>
										</h3>
									</div>
								</div>
							</div>

							<div class="row">
								<div class="form-group">
									<div class="center">
										<span class="control-label">
											<script type="text/javascript">document.write( messages[lang]["upload-success-sub"] );</script>
										</span>
									</div>
								</div>
							</div>
						<%
							List history = uploadbean.getHistory();
							StringBuffer uploadReturn = new StringBuffer();
							FileDownloadUtils2 utils = null;
							System.out.println(history.size());
								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);
									}

									request.setAttribute("filename",up.getFilename());
						%>
									<div class="row">
										<div class="form-group">
											<div class="col-md-1 col-sm-1 col-xs-1">
											</div>
											<div class="col-md-10 col-sm-10 col-xs-10">
												<a href="<%=utils.getDownloadUrl()%>"><%=up.getOrgFilename()%></a>&nbsp;[<%=FileUtils.byteCountToDisplaySize(up.getFilesize())%>]
											</div>
										</div>
									</div>
						<%
								}else {
									for( int i=0; i<history.size(); i++) {
										UploadParameters up = (UploadParameters)history.get(i);
										uploadReturn.append(up.getFilename()).append(",");
										utils = new FileDownloadUtils2(uploadfield, up.getFilename());
										
										if( subfolder != null && !("").equals(subfolder) ) {
											utils.setSubfolder(subfolder);
										}
										request.setAttribute("filename",up.getFilename());
						%>
										<div class="row">
											<div class="form-group">
												<div class="col-md-1 col-sm-1 col-xs-1">
												</div>
												<div class="col-md-10 col-sm-10 col-xs-10">
													<a href="<%=utils.getDownloadUrl()%>"><%=up.getOrgFilename()%></a>&nbsp;[<%=FileUtils.byteCountToDisplaySize(up.getFilesize())%>]
												</div>
											</div>
										</div>
										
						<%
									}
								}
						%>
								<input type="hidden" id="__uploadreturn" name="__uploadreturn" value="<%=uploadReturn.toString() %>" />
								<input type="hidden" id="__del" name="__del" value="<%=chkNull.chkNullString(request.getParameter("__del"),"")%>" />
								<input type="hidden" id="__subfolder" name="__subfolder" value="<%=chkNull.chkNullString(request.getParameter("subfolder"),"")%>" />
								<input type="hidden" id="__pathname" name="__pathname" value="<%=request.getAttribute("path")%>" />
								<input type="hidden" id="__filename" name="__filename" value="<%=request.getAttribute("filename")%>" />
								<input type="hidden" id="__oldfilename" name="__oldfilename" value="<%=chkNull.chkNullString(request.getParameter("oldfilename"),"")%>" />
								<input type="hidden" id="__uploadfield" name="__uploadfield" value="<%=chkNull.chkNullString(request.getParameter("uploadfield"),"")%>" />
								<input type="hidden" id="__emp_boss" name="__emp_boss" value="<%=chkNull.chkNullString(request.getParameter("emp_boss"),"0")%>" />
								<script type="text/javascript">CreateEmpList('<%=request.getAttribute("path")%>','<%=request.getAttribute("filename")%>','<%=chkNull.chkNullString(request.getParameter("emp_boss"),"")%>');</script>

								<div class="row">
									<div class="form-group">
										<div class="center">
											<a class="btn btn-primary" href="javascript:closePage();" swlang code='SW012104'>Close</a>
										</div>
									</div>
								</div>
							</form>
						<% 
							} else {
								 FileUploadUtils.removeUploadInfo(request);
						%>
							<form name="cscform" id="cscform" enctype="multipart/form-data" method="post" action="?<%=request.getQueryString()%>"  onsubmit="return startProgress();" >
								<input type="hidden" name="__blacklistenabled" value="<%=blacklistenabled %>" />
								<input type="hidden" name="__filter" value="<%=filter %>" />
								<input type="hidden" name="__fieldreturn" value="<%=fieldreturn %>" />
								<script type="text/javascript">initialFileFilter();</script>

								<div class="row">
									<div class="form-group">
										<div class="center">
											<h3 class="csc-block-head">
												<script type="text/javascript">document.write( messages[lang]["upload-page-title"] );</script>
											</h3>
										</div>
									</div>
								</div>

								<div class="row">
									<div class="form-group">
										<div class="center">
											<h4 class="csc-block-head">
												<script type="text/javascript">document.write( messages[lang]["upload-title"] );</script>
											</h4>
										</div>
									</div>
								</div>

								<div class="row">
									<div class="form-group">
										<div class="center">
											<span class="control-label">
												<script type="text/javascript">document.write( messages[lang]["upload-message"] );</script>
											</span>
										</div>
									</div>
								</div>
						<div id="preUpload" class="displayVisible">
						<% 
							if( fileCount == 0 ) { 
						%>	
							<div id="fileUploads">
								<div class="row">
									<div class="form-group">
										<div class="col-md-4 col-sm-4 col-xs-4">
										</div>
										<div class="col-md-5 col-sm-5 col-xs-5">
											<div id="filediv1">
												<label class="control-label"><input type="file" id="file1" name="file1" size="50" class="fileUploadBox" onchange="chkFileUpload(event, this);" onkeyup="chkFileUpload(event, this);"  /></label>
											</div>
										</div>
									</div>
								</div>
						<%	
							} else {
								for(int index=1; index<= fileCount; index++) {
						%>
							
								<div class="row">
									<div class="form-group">
										<div class="col-md-4 col-sm-4 col-xs-4">
										</div>
										<div class="col-md-5 col-sm-5 col-xs-5">
											<div id="filediv<%=index %>" align="center">
												<input type="file" id="file<%=index %>" name="file<%=index %>" size="50" class="fileUploadBox" onchange="chkFileUpload(event, this);" onkeyup="chkFileUpload(event, this);" />
											</div>
										</div>
									</div>
								</div>

								 <div class="row">
									<div class="form-group">
										<div class="col-md-1 col-sm-1 col-xs-1">
											<a href="javascript:;" onclick="clearFileInput('file<%=index %>');"><i class="fa fa-eraser"></i></a>
										</div>
										<div class="col-md-5 col-sm-5 col-xs-5">
											<div id="filediv<%=index %>" align="center">
												<a href="javascript:;" onclick="clearFileInput('file<%=index %>');"><i class="fa fa-trash"></i></a>
											</div>
										</div>
									</div>
								</div> 

						<%
								}
							}
						%> 
							</div>
						<% 
							if( fileCount == 0 ) { 
						%>
							<center><a  href="javascript:addFileInput('fileUploads');"><i class="fa fa-plus"></i></a></center>
						<%	} %>
								<div class="center">
									<div class="control label">
										<% if(fileSizeMax>0) {%><script  type="text/javascript">document.write( messages[lang]["upload-max-size"] );</script>:&nbsp;<span><%=FileUtils.byteCountToDisplaySize(fileSizeMax)%> <%}%></span>
									</div>
								</div>
								<div class="center">
									<div class="control label">
										<script type="text/javascript">document.write( messages[lang]["extensions<% if(blacklistenabled){%>-not<%}%>-allow"] );</script>:&nbsp;<span><%=filter%></span>
									</div>
								</div>
						</div>
						<div id="duringUpload" class="displayVisible">
							<div class="uploadContent">
								<div id="progressBar">
									<div class="center" id="progressBarText"><span class="control label">Upload in progress: 0% </span></div>
										<div id="progressBarBox">
											<div id="progressBarBoxContent" style="width:1px;"></div>
										</div>
										<div class="center" id="progressStatusText"><span class="control label">Status : Upload start</span></div>
									</div>
							</div><!-- uploadContent -->
						</div>
						<div id="postUpload" class="displayVisible">
							<div class="row">
								<div class="form-group">
									<div class="col-md-3 col-sm-3 col-xs-3">
									</div>
									<div class="col-md-5 col-sm-5 col-xs-5">
										<p class="control label"><script type="text/javascript">document.write( messages[lang]["upload-cancel-message"] );</script></p>
									</div>
								</div>
							</div>
						</div>

							<script type="text/javascript">setVisible($("duringUpload"), false);</script>
							<script type="text/javascript">setVisible($("postUpload"), false);</script>
							
							
							<div class="center">
								<button name="btnUpload" type="image" id="btnUpload" value="upload" class="btn btn-primary"  border="0" swlang code='SW012170'>Upload</button>&nbsp;&nbsp;
								<a class="btn btn-primary" href="javascript:cancelUpload();" swlang code='SW012132'>Cancel</a>
							</div>
							
						</form>
						<%
							}
						%>

					</div>
				</div><!-- end csc-block-->
			</div><!-- end form-horizontal -->
		</div><!-- end container-->
	</body>
</html>