<!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.utilities.CheckNull" %>
<%@ 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" />
<%
		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>
<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' 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/Createleavelist_dwr.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(){
	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){

		Createleavelist_dwr.createlist(path,filename,emp_boss,isApproved);
			
}

		var isApproved = function(data){
				if(data == "ImportUnsuccess"){
                    let msg = lang==='tha'?"ไม่สามารถนำเข้าได้":data;
					alert(data);
					data = "";
                }
                
				var filename = document.cscform.__filename.value;
				var pathname = document.cscform.__pathname.value;
				window.opener.document.cscform.__wf__pathname.value = pathname;
				window.opener.document.cscform.__wf__filename.value = filename;
				window.opener.document.cscform.__wf__group_name.value = filename;
				window.opener.document.cscform.__empListid.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);
					Createleavelist_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();
	}
}
*/
</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>
<div id="wrapper">
    <table align="center" cellpadding="0" cellspacing="0" id="mainMasterTable">
        <tr>
            <td class="header">UPLOADFILE,&nbsp;<script type="text/javascript">document.write( messages[lang]["upload-page-title"] );</script>&nbsp;</td>
        </tr>
        <tr>
            <td valign="top">
    <% if (request.getAttribute("cancel") != null) { %>
            <div class="globalContentSpacing">    
                <table border="0" cellpadding="0" cellspacing="0" class="maxsize">
                    <tr>
                        <td width="48" height="48" rowspan="2">
                            <span id="titleIcon"><img src="IMAGES/UPLOAD/ICON/ICON-WARNING.gif" width="48" height="48" align="absmiddle" /></span>
                        </td>
                        <td>
                            <h1 class="pageTitle"><span id="titleText"><script type="text/javascript">document.write( messages[lang]["upload-cancel-title"] );</script></span></h1>
                        </td>
                    </tr>
                <tr>
                        <td><div class="subText" id="pageSubText"></div></td>
                </tr>
                </table>

                <div id="postUpload" class="displayVisible">  

                    <div class="pageTitlePadding"></div>
                
                    <div class="uploadContent">         
                        <div class="message">
                            <p><script type="text/javascript">document.write( messages[lang]["upload-cancel-message"] );</script></p>
                        </div>
                    </div>

                    <div class="pageTitlePadding"></div>

                </div>
            </div>
            
            <div id="buttonBarRow">
                <div id="buttonCancel" class="buttonline" align="center">
                    <a href="javascript:;" onclick="reloadPage();"><img src="IMAGES/BUTTON/RETRY.gif" width="73" height="23" border="0"></a>
                    <a href="javascript:;" onclick="closePage();"><img src="IMAGES/BUTTON/CLOSE.gif" width="73" height="23" border="0"></a>
                </div>
            </div>          

    <% } else if (request.getAttribute("error") != null) { %>
            <div class="globalContentSpacing">
            
                <table border="0" cellpadding="0" cellspacing="0" class="maxsize">
                    <tr>
                        <td width="48" height="48" rowspan="2">
                            <span id="titleIcon"><img src="IMAGES/UPLOAD/ICON/ICON-ERROR.gif" width="48" height="48" align="absmiddle" /></span>
                        </td>
                        <td>
                            <h1 class="pageTitle"><span id="titleText"><script type="text/javascript">document.write( messages[lang]["upload-error-title"] );</script></span></h1>
                        </td>
                    </tr>
                    <tr>
                        <td>
                            <div class="subText" id="pageSubText">
                                <script type="text/javascript">document.write( messages[lang]["upload-error-sub"] );</script>
                            </div>
                        </td>
                    </tr>
                </table>
                
                <div id="postUpload" class="displayVisible">
                
                    <div class="pageTitlePadding"></div>

                    <div class="uploadContent">
                        <div class="message">
                            <p><%=request.getAttribute("error")%></p>
                        </div>
                    </div>

                    <div class="pageTitlePadding"></div>

                </div>

            </div>
            
            <div id="buttoBarRow">
                <div id="buttonError" class="buttonline" align="center">
                    <a href="javascript:;" onclick="reloadPage();"><img src="IMAGES/BUTTON/RETRY.gif" width="73" height="23" border="0"></a>
                    <a href="javascript:;" onclick="closePage();"><img src="IMAGES/BUTTON/CLOSE.gif" width="73" height="23" border="0"></a>
                </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="globalContentSpacing">
        
                    <table border="0" cellpadding="0" cellspacing="0" class="maxsize">
                    <tr>
                        <td width="48" height="48" rowspan="2">
                            <span id="titleIcon"><img src="IMAGES/UPLOAD/ICON/ICON-TIPS.gif" width="48" height="48" align="absmiddle" /></span>
                        </td>
                        <td>
                            <h1 class="pageTitle">
                                <span id="titleText">
                                    <script type="text/javascript">document.write( messages[lang]["upload-success-title"] );</script>
                                </span>
                            </h1>
                        </td>
                    </tr>
                    <tr>
                        <td>
                            <div class="subText" id="pageSubText">
                                <script type="text/javascript">document.write( messages[lang]["upload-success-sub"] );</script>
                            </div>
                        </td>
                    </tr>
                    </table>
                
                    <div id="postUpload" class="displayVisible">
                        
                    <div class="pageTitlePadding"></div>
                
                    <div class="uploadContent">
                    
                        <div id="fileUploads">
                        <% 
                            List history = uploadbean.getHistory();
                            StringBuffer uploadReturn = new StringBuffer();
                            FileDownloadUtils2 utils = null;
                            System.out.println(history.size());
                            
                                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="listFiles">
                                <span class="attachIcon"><img src="IMAGES/UPLOAD/ICON/ICON-ATTACH.gif" /></span>
                                <a href="<%=utils.getDownloadUrl()%>"><%=up.getOrgFilename()%></a>&nbsp;[<%=FileUtils.byteCountToDisplaySize(up.getFilesize())%>]
                            </div>
                            
                        <input type="hidden" id="__uploadreturn" name="__uploadreturn" value="<%=uploadReturn.toString()%>" />

                        </div>
                    
                    </div>
                    
                    <div class="pageTitlePadding"></div>
                    </div>
                </div>

                <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>
                <script type="text/javascript">//uploadReturn();</script>
                
                <div id="buttonBarRow">
                    <div id="buttonSuccess" class="buttonline" align="center">
                        <a href="javascript:;" onclick="closePage();"><img src="IMAGES/BUTTON/CLOSE.gif" width="73" height="23" border="0"></a>
                    </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="globalContentSpacing">
            
                    <table border="0" cellpadding="0" cellspacing="0" class="maxsize">
                        <tr>
                            <td width="48" height="48" rowspan="2">
                                <span id="titleIcon">
                                    <img src="IMAGES/UPLOAD/ICON/ICON-UPLOAD.gif" width="48" height="48" align="absmiddle" />
                                </span>
                            </td>
                            <td>
                                <h1 class="pageTitle">
                                    <span id="titleText">
                                        <script type="text/javascript">document.write( messages[lang]["upload-title"] );</script>
                                    </span>
                                </h1>
                            </td>
                        </tr>
                        <tr>
                            <td>
                                <div class="subText" id="pageSubText">
                                    <script type="text/javascript">document.write( messages[lang]["upload-message"] );</script>
                                </div>
                            </td>
                        </tr>
                    </table>
                    
                    <div id="preUpload" class="displayVisible">
                    
                        <div class="pageTitlePadding"></div>
                
                        <div class="uploadContent">
                            <div id="fileUploads">
                                <% if( fileCount == 0 ) { %>
                                    <div id="filediv1">
                                        <input type="file" id="file1" name="file1" size="50" class="fileUploadBox" onchange="chkFileUpload(event, this);" onkeyup="chkFileUpload(event, this);"  />
                                    </div>
                                <% } else {
                                    for(int index=1; index<= fileCount; index++) {
                                %>
                                    <div id="filediv<%=index %>">
                                        <input type="file" id="file<%=index %>" name="file<%=index %>" size="50" class="fileUploadBox" onchange="chkFileUpload(event, this);" onkeyup="chkFileUpload(event, this);"  />
                                    </div>
                                <%
                                        }
                                    }
                                %>
                            </div>
                            
                            <div class="pageTitlePadding"></div>
                            
                            <div class="subText2">
                                <% if(fileSizeMax>0) {%>
                                    <script type="text/javascript">document.write( messages[lang]["upload-max-size"] );</script>:&nbsp;
                                    <span><%=FileUtils.byteCountToDisplaySize(fileSizeMax)%></span>
                                <% } %>
                            </div>
                            <div class="subText2">
                                <script type="text/javascript">document.write( messages[lang]["extensions<% if(blacklistenabled){%>-not<%}%>-allow"] );</script>:&nbsp;
                                <span><%=filter%></span>
                            </div>
                        </div>
                    
                        <div class="pageTitlePadding"></div>

                    </div>

                    <div id="duringUpload" class="displayVisible">    
                        <div class="pageTitlePadding"></div>
                        <div class="uploadContent">
                            <div id="progressBar">
                                <div id="progressBarText">Upload in progress: 0% </div>
                                <div id="progressBarBox">
                                    <div id="progressBarBoxContent" style="width:1px;"></div>
                                </div>
                                <div id="progressStatusText">Status : Upload start</div>
                            </div>
                        </div>
                        <div class="pageTitlePadding"></div>    
                    </div>

                    <div id="postUpload" class="displayVisible">
                        <div class="pageTitlePadding"></div>
                        <div class="uploadContent">
                            <div class="message">
                                <p><script type="text/javascript">document.write( messages[lang]["upload-cancel-message"] );</script></p>
                            </div>
                        </div>
                        <div class="pageTitlePadding"></div>
                    </div>
                    
                    <script type="text/javascript">setVisible($("duringUpload"), false);</script>
                    <script type="text/javascript">setVisible($("postUpload"), false);</script>
            
                </div>
                
                <div id="buttonBarRow">
                    <div id="buttonUpload" class="buttonline" align="center">
                        <input name="btnUpload" type="image" class="input-image" id="btnUpload" value="upload" src="IMAGES/BUTTON/UPLOAD.gif"  border="0" />
                        <a href="javascript:;" onclick="cancelUpload();"><img src="IMAGES/BUTTON/CANCEL.gif" width="73" height="23" border="0"></a>
                    </div>
                    <div id="buttonCancel" class="buttonline" align="center">
                        <a href="javascript:;" onclick="reloadPage();"><img src="IMAGES/BUTTON/RETRY.gif" width="73" height="23" border="0"></a>
                        <a href="javascript:;" onclick="closePage();"><img src="IMAGES/BUTTON/CLOSE.gif" width="73" height="23" border="0"></a>
                    </div>

                    <script type="text/javascript">setVisible($("buttonCancel"), false);</script>

                </div>      
            </form> 
            
    <% } %> 

            </td>
        </tr>
        <tr>
            <td class="blankspace"></td>
        </tr>
        <tr>
            <td class="bottom"></td>
        </tr>
    </table>
</div>

</body>
</html>