<!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/Createshiftlist_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){
			//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();
	}
}
*/
</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());
                    
                    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="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>
                 <%
                    } 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="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 class="message"><script type="text/javascript">//document.write( messages[lang]["upload-message"] );</script></div>
                    <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>
                    <% if( fileCount == 0 ) { %>
                    <a href="javascript:;" onclick="addFileInput('fileUploads')"><img src="IMAGES/UPLOAD/ICON/ICON-ADD.png" alt="Add" width="16" height="16" border="0" align="absmiddle" /></a>
                    <%}%>
                    <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>