• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt/router/APP-IPK/AiCloud-ipk/opt/etc/aicloud_UI/css/
1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2<html xmlns="http://www.w3.org/1999/xhtml">
3<head>
4<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
5<meta http-equiv="X-UA-Compatible" content="IE=edge">
6<link href="/smb/css/ui-progress-bar.css" media="screen" rel="stylesheet" type="text/css" />
7<title></title>
8<style>
9html{
10margin:0 0;
11padding:0px;
12}
13body{
14display: block;
15padding:0px;
16margin:0px;
17overflow:hidden;
18}
19#uploadRegion {
20-moz-border-radius: 5px;
21-webkit-border-radius: 5px;
22border-radius: 5px;
23padding: 0px;
24text-align: center;
25font: 20pt bold;
26font-family:"Segoe UI";
27color: #ffffff;
28left:0px;
29top:0px;
30width:100%;
31height:350px;
32background:#009A95;
33}
34#uploadOption{
35background-color:#f1f1ef;
36border: #676965;
37border-style:solid;
38border-width:1px;
39height:auto;
40width:100%;
41text-align: left;
42}
43#inputnameRegion{
44border: 2px #BBB;
45width:100%;
46height:100%;
47background:#d8eaf6;
48}
49#upload_file_list{
50display: inline;
51font: 12pt bold;
52font-family:"Segoe UI";
53text-align: left;
54}
55.upload-dropzone-parent {
56height: 100%;
57width: 100%;
58position: relative;
59border-spacing: 20px;
60}
61.drag-drop-supported .upload-dropzone-cell {
62border: #DDD 4px dashed;
63border-radius: 2px;
64}
65.upload-dropzone-cell {
66width: 100%;
67text-align: center;
68position: relative;
69}
70.upload-dropzone {
71width: 100%;
72text-align: center;
73position: relative;
74}
75.upload-drop-here {
76font-weight: bold;
77font-size: 15px;
78color: #fff;
79padding: 0 10px;
80display: none;
81}
82.chrome-require {
83font-weight: bold;
84font-size: 20px;
85padding:10px;
86}
87.chrome-require a{
88color: #FDC049;
89text-decoration: none;
90}
91.chrome-require a:hover{
92color: #FDC049;
93text-decoration: underline;
94}
95.upload-drop-alt {
96display: none;
97padding: 15px 0 5px;
98font-weight: bold;
99font-size: 15px;
100color: #fff;
101}
102.upload-select-here, .upload-select-directorys-here{
103font-weight: bold;
104font-size: 15px;
105color: #fff;
106padding: 0 10px;
107}
108
109#nav {
110width: 100%;
111height: 100%;
112line-height: 2em;
113border: 1px solid #ccc;
114padding: 0;
115margin: 0;
116overflow: scroll;
117overflow-x: hidden;
118}
119li {
120border-top: 1px solid #ccc;
121}
122ul ul {
123text-indent: 1em;
124}
125ul ul ul {
126text-indent: 2em;
127}
128.ml-btn-1 {
129display: inline-block;
130text-decoration: none;
131font-family: "Segoe UI", Helvetica, Arial, sans-serif;
132font-size: 13px;
133font-weight: bold;
134line-height: 240%;
135color:#666;
136text-align: center;
137text-shadow: 0px 1px 0px rgba(255, 255, 255, 0.5);
138background-color: #FBFBFB;
139background-image: -moz-linear-gradient(53% 100% 90deg,#EBEBEB 0%,#FEFEFE 100%);
140background-image: -webkit-gradient(linear,53% 100%,53% 3%,color-stop(0, #EBEBEB),color-stop(1, #FEFEFE));
141background-image: -webkit-linear-gradient(90deg,#EBEBEB 0%,#FEFEFE 100%);
142background-image: -o-linear-gradient(90deg,#EBEBEB 0%,#FEFEFE 100%);
143background-image: -ms-linear-gradient(90deg,#EBEBEB 0%,#FEFEFE 100%);
144background-image: linear-gradient(90deg,#EBEBEB 0%,#FEFEFE 100%);
145/*width: 120px;
146height: 30px;*/
147border-color: #B4B4B4;
148border-width: 1px;
149-moz-border-radius: 3px;
150-webkit-border-radius: 3px;
151border-radius: 3px;
152border-style: solid;
153-moz-box-shadow: 0px 0px 0px 3px rgba(0,0,0,0.05) ,inset 0px 1px 0px rgba(255,255,255,0.5);
154-webkit-box-shadow: 0px 0px 0px 3px 
155rgba(0, 0, 0, 0.05) ,inset 0px 1px 0px 
156rgba(255, 255, 255, 0.5);
157box-shadow: 0px 0px 0px 3px 
158rgba(0, 0, 0, 0.05) ,inset 0px 1px 0px 
159rgba(255, 255, 255, 0.5);
160-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#fffefefe,endColorstr=#ffebebeb,GradientType=0) progid:DXImageTransform.Microsoft.Glow(Color=#ff000000,Strength=3)";
161filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#fffefefe,endColorstr=#ffebebeb,GradientType=0) progid:DXImageTransform.Microsoft.Glow(Color=#ff000000,Strength=3);
162}
163
164input[type="file"] {
165border: 1px solid #EEE;
166border-radius: 10px;
167padding: 8px;
168font-weight: bold;
169font-size: 15px;
170color: #fff;
171}
172
173div#divApplet{
174width:100px;
175height:40px;
176}
177</style>
178</head>
179<script type="text/javascript" src="/smb/js/tools.js"></script>
180<script type="text/javascript" src="/smb/js/davclient_tools.js"></script>
181<script type="text/javascript">
182	
183var m = new lang();
184var g_storage = new myStorage();
185	
186function getUrlVars(){
187	var vars = [], hash;
188  var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
189  for(var i = 0; i < hashes.length; i++){
190  	hash = hashes[i].split('=');
191    vars.push(hash[0]);
192    vars[hash[0]] = hash[1];
193  }
194  return vars;
195}
196
197function adjustLayout(){	
198	//alert($("table#main_table").height());
199	var h = parent.getFileViewHeight();
200	$("#main_table").css("height", h);
201	$("#uploadRegion").css("height", h-120);
202}
203
204var this_upload_files = new Array();
205
206$("document").ready(function() {
207	
208	var this_upload_index = 0;
209	var this_upload_count = 0;
210	var this_upload_total = 0;
211	//var this_upload_files = new Array();
212	var this_selected_files = new Array();
213	var this_url = getUrlVars()["u"];
214	
215	//- show upload option, 0: show all, 1: show upload file, 2:show upload folder
216	var this_upload_option = getUrlVars()["d"];
217	
218	var g_support_html5 = 0;
219	
220	var loc_lan = String(window.navigator.userLanguage || window.navigator.language).toLowerCase();		
221	var lan = ( g_storage.get('lan') == undefined ) ? loc_lan : g_storage.get('lan');
222	m.setLanguage(lan);
223	
224	$('.upload-drop-alt').text(m.getString('hint_selfile2'));
225	$('.upload-select-here').text(m.getString('hint_selfile3'));
226	
227	if(this_upload_option==0){
228		$('.select-files').show();
229		$('.select-directorys').show();
230	}
231	else if(this_upload_option==1){
232		$('.select-files').show();
233		$('.select-directorys').hide();
234	}
235	else if(this_upload_option==2){
236		$('.select-files').hide();
237		$('.select-directorys').show();
238	}
239	else{
240		$('.select-files').hide();
241		$('.select-directorys').hide();
242	}
243	/*
244	$('.chrome-require').hide();
245	else{
246		$('.select-directorys').hide();
247		$('.chrome-require').show();
248		$('.upload-drop-here').text(m.getString('hint_selfile1'));
249		$('.upload-support-directorys').text(m.getString('hint_selfile6'));
250	}
251	*/
252	
253	$('.upload-drop-here').text(m.getString('hint_selfile1'));
254	$('.upload-support-directorys').text(m.getString('hint_selfile6'));
255		
256	$('#upload').text(m.getString('btn_upload'));
257	$('#cancel').text(m.getString('btn_cancel'));
258   
259  adjustLayout();
260  //////////////////////////////////////////////////////////////
261     
262	// Check for the various File API support.
263	if (window.File && window.FileReader && window.FileList && window.Blob) {
264	  // Great success! All the File APIs are supported.
265	  g_support_html5 = 1;
266	} else {
267		g_support_html5 = 0;
268	}
269	
270	var webdav_client = new davlib.DavClient();
271	webdav_client.initialize();
272	
273	if(g_support_html5==1){
274  	// Setup the dnd listeners.
275  	var dropZone = document.getElementById('uploadRegion');
276  	dropZone.addEventListener('dragover', handleDragOver, false);
277  	dropZone.addEventListener('drop', handleFileSelect, false);
278  	
279  	$(".upload-drop-here").css("display", "block");
280  	$(".upload-drop-alt").css("display", "block");
281  }
282	
283	if(document.getElementById('files'))
284		document.getElementById('files').addEventListener('change', handleFileSelect, false);
285	
286	if(document.getElementById('directorys'))
287		document.getElementById('directorys').addEventListener('change', handleFileSelect, false);
288	
289	function webdav_put_callbackfunction(error, content){
290		
291		if(error){
292			if(error==200||error==201||error==204 ) {
293				if(this_upload_files[this_upload_index].status=="done"){
294					//alert("file transferred done....call this upload files splice");
295					this_upload_files.splice(this_upload_index,1);
296					f_offset =0;
297					this_file_loaded_size =0;
298					//this_upload_count++;
299			  }else{
300					//alert("In Progress");
301			  }
302			}/*
303			else if(error==427){
304				//- If target folder is not exist!
305				
306				var path = this_upload_files[this_upload_index].thepath;
307				var openurl = addPathSlash(g_storage.get('openurl'));
308				var this_url = openurl + myencodeURI(path);
309				alert(this_url);
310				webdav_client.MKCOL(this_url, function(error){
311					this_upload_files[this_upload_index].status = "Init";
312					uploadFile();
313				});	
314				
315				return;				
316			}*/
317			else if(error==0){
318				this_upload_files[this_upload_index].status = "UploadFail";
319			}
320			else{
321				this_upload_files[this_upload_index].status = "UploadFail";
322				alert(m.getString(error));
323			}
324		}
325		else if(content){
326			alert('content: ' + content);
327		}
328		
329		outputUploadResult();
330
331		//this_upload_count++;
332		if( uploadFile() == 0 ){	
333			showUploadProgress(m.getString('msg_upload_complete'), 100);				
334			//g_storage.set('stopLogoutTimer', "0");
335			//g_storage.set('isOnUploadFile', "0");
336			stop_upload();
337			parent.closeUploadPanel(1);
338		}
339	}
340	var this_file_loaded_size = 0;
341	function webdav_put_progress_callbackfunction(evt){
342		if(evt.lengthComputable) 
343		{ 
344			//this_file_loaded_size = this_file_loaded_size+evt.loaded;
345			var f = this_upload_files[this_upload_index];
346			//if(this_file_loaded_size/f.thefile.size ==1 )   this_upload_count++;
347			//alert(" this upload count= "+ this_upload_count);	
348			var isSegment=0;
349			if(evt.loaded>0 && (evt.loaded/evt.total==1)) {
350				//alert("evt.loaded == evt.total ="+evt.loaded);
351			  isSegment =1;
352			}
353			if(isSegment==1) {
354				this_file_loaded_size = this_file_loaded_size+evt.loaded;
355				//alert("segment =1 , loadded size ="+ this_file_loaded_size);
356			}
357			var part1 = 100*(this_upload_count/this_upload_total);
358			var part2 = (this_file_loaded_size/f.thefile.size)*(100/this_upload_total);
359			//var percentComplete = 100*( this_upload_count/this_upload_total) + 
360			//                      (evt.loaded/evt.total)*(100/this_upload_total);
361			var percentComplete = part1+part2;								  
362			//	alert("evt.total = "+ evt.total+ " , filesize = "+f.thefile.size + ", evt.loaded = "+ evt.loaded +", upload_index = "+ this_upload_index+", this uploadsize = "+this_file_loaded_size);		
363			//	alert("part1 = "+part1+", part2 = "+ part2 );		
364			showUploadProgress(m.getString('msg_upload1') + f.thefile.name + m.getString('msg_upload2') + " " + percentComplete.toFixed(2) + " %", percentComplete);
365			if(this_file_loaded_size/f.thefile.size ==1 ){
366				//alert("this file loaded size == f.thefile size == "+ this_file_loaded_size);
367				this_upload_count++;
368			}
369		}
370	}
371
372	function webdav_put_progress_callbackfunction_2(evt){
373		if(evt.lengthComputable) 
374		{ 
375			var percentComplete = 100*(this_upload_count/this_upload_total) + 
376			                      (evt.loaded/evt.total)*(100/this_upload_total);
377		
378			var f = this_upload_files[this_upload_index];
379				
380			showUploadProgress(m.getString('msg_upload1') + f.thefile.name + m.getString('msg_upload2') + " " + percentComplete.toFixed(2) + " %", percentComplete);
381		}
382	}
383	
384	function readBlob(pfile, opt_startByte, opt_stopByte) {		
385    var start = opt_startByte;
386    var stop = opt_stopByte;
387		
388    var reader = new FileReader();
389		var bSliceAsBinary = 0;
390		
391    // If we use onloadend, we need to check the readyState.
392    reader.onloadend = function(evt) {
393      if (evt.target.readyState == FileReader.DONE) { // DONE == 2      	
394      	var tURL = this_url + pfile.name;
395      	webdav_client.PUT(tURL, evt.target.result, bSliceAsBinary, 
396      		webdav_put_callbackfunction, webdav_put_progress_callbackfunction );
397      }
398    };
399
400		if (pfile.webkitSlice) {
401	    var blob = pfile.webkitSlice(start, stop + 1);
402			reader.readAsArrayBuffer(blob);
403	    bSliceAsBinary = 1;
404		} 
405		else if (pfile.mozSlice) {      
406	    var blob = pfile.mozSlice(start, stop + 1);
407	    reader.readAsBinaryString(blob);
408	    bSliceAsBinary = 0;
409	  }
410  }
411	/*
412	function requiredFeaturesSupported() {
413 		return ( BlobBuilderSupported() && msSaveOrOpenBlobSupported() );
414  }
415  
416  function BlobBuilderSupported() {
417  	if (window.BlobBuilder) {
418    	// No change needed - the W3C standard API will be used by default.
419    } 
420    else if (window.MSBlobBuilder) {
421      window.BlobBuilder = window.MSBlobBuilder;
422    }
423    else if (window.WebKitBlobBuilder) {
424      window.BlobBuilder = window.WebKitBlobBuilder;
425    }
426    else if (window.MozBlobBuilder) {
427      window.BlobBuilder = window.MozBlobBuilder;
428    }   
429    else {
430      document.getElementById('bodyElement').innerHTML = "<h1>The BlobBuilder API is not supported - try upgrading your browser to the latest version.</h1>";
431      return false;
432    } // if-else
433      
434    return true;
435  } // BlobBuilderSupported
436    
437  function msSaveOrOpenBlobSupported() {
438    if (!window.navigator.msSaveOrOpenBlob) {
439       document.getElementById('bodyElement').innerHTML = "<h1>The msSaveOrOpenBlob API is not supported - try upgrading your version of IE to the latest version.</h1>";            
440      return false;
441    }
442      
443  	return true;
444  } // msSaveOrOpenBlobSupported
445  */   
446 	function PutToWeb(path, pfile, opt_startByte, opt_stopByte, filesize) {		
447		var start = opt_startByte;
448		var stop = opt_stopByte;
449		
450		var reader = new FileReader();
451		var bSliceAsBinary = 0;
452		
453		// If we use onloadend, we need to check the readyState.
454		reader.onloadend = function(evt) {			
455			if (evt.target.readyState == FileReader.DONE) { // DONE == 2      	
456				var tURL = this_url + path + pfile.name;
457				webdav_client.PUT(tURL, evt.target.result, bSliceAsBinary, start, stop, filesize, "T",
458					  webdav_put_callbackfunction, webdav_put_progress_callbackfunction  );
459			}
460		};
461		
462		if (pfile.webkitSlice) {
463			var blob = pfile.webkitSlice(start, stop + 1);
464			reader.readAsArrayBuffer(blob);
465			bSliceAsBinary = 1;
466		} 
467		else if (pfile.mozSlice) {      
468			var blob = pfile.mozSlice(start, stop + 1);
469			reader.readAsBinaryString(blob);
470			bSliceAsBinary = 0;
471		}
472		else {
473			/*
474			if (requiredFeaturesSupported()) {				
475				var builderObject = new BlobBuilder(); // Create a blob builder object so that we can append content to it.
476      	
477	      //builderObject.append("I scream, you scream, we all scream for ice scream."); // Append some content to the builder object.
478	      //window.navigator.msSaveBlob(builderObject.getBlob(), 'msSaveBlob_testFile.txt'); // Move the builder object content to a blob and save it to a file - buildObject is now devoid of any content.
479	      //alert('File saved using msSaveBlob() - note the single "Save" button below.');
480	      
481	      var fileData = pfile.slice(start, stop + 1);
482	      builderObject.append(fileData);
483        var blob = builderObject.getBlob();
484        
485        // Move the builder object content to a blob and save it to a file - buildObject is now devoid of any content.
486        //window.navigator.msSaveBlob(blob, 'msSaveBlob_testFile.jpg');
487        
488        reader.readAsArrayBuffer(blob);
489				bSliceAsBinary = 1;
490			}
491			*/
492			
493			var blob = pfile.slice(start, stop + 1);
494			reader.readAsArrayBuffer(blob);
495			bSliceAsBinary = 1;
496			
497    }
498	}
499	
500 	var f_offset  =0;
501	//var segment_size = 5*1024*1024;
502	var segment_size = 50*1024;
503	var loop_cnt =0;
504	function send_segment_data(f, filesize){
505		var start = f_offset;
506		var stop = start+ segment_size-1;
507		if(stop>= filesize){
508			stop = filesize - 1;
509			f.status ="done";
510		}
511		f_offset = stop+1;
512		
513		PutToWeb(f.thepath, f.thefile, start, stop, filesize);
514	}
515	
516	var current_file_size;	
517	function uploadFile(){	
518		for (var i = 0, f; f = this_upload_files[i]; i++) {			
519			loop_cnt =  Math.ceil(f.thefile.size/segment_size);
520			current_file_size = f.thefile.size;
521			if(f.status=="Init" || f.status=="Upload"){
522				this_upload_index = i;
523				f.status = "Upload";				
524				send_segment_data(f, f.thefile.size);
525				return 1;
526			}
527		}
528		return 0;
529	}
530	
531	document.querySelector('.readBytesButtons').addEventListener('click', function(evt) {  
532		
533  	if (evt.target.tagName.toLowerCase() == 'button') {
534    	 
535      if (!this_upload_files.length) {
536	      alert(m.getString('warn_selfile'));
537	      return;
538	    }
539			
540			//$('button#upload').attr("disabled", "disabled");			
541			$('button#upload').hide();
542			
543			this_upload_total = this_upload_files.length;
544			f_offset =0;
545			
546			g_storage.set('isOnUploadFile', "1");
547			g_storage.set('stopLogoutTimer', "1");
548			uploadFile();			
549    }
550  }, false);
551  	
552	function outputUploadResult(){
553		// files is a FileList of File objects. List some properties.
554    var output = [];
555    
556    for (var i = 0, f; f = this_upload_files[i]; i++) {
557    	/*
558    	output.push('<li><strong>', f.thefile.name, '</strong> (', f.thefile.type || 'n/a', ') - ',
559                  f.thefile.size, m.getString('upload_item'), m.getString(f.status), '</li>');*/
560                  
561      if(g_storage.get('isOnUploadFile')==1)
562      	output.push('<li><strong>', f.thepath + f.thefile.name, '</strong> ', ' - ',
563                  f.thefile.size, m.getString('upload_item'), ' [ ', m.getString(f.status), ' ] ', '</li>');
564      else
565     		output.push('<li id="', i, '"><strong>', f.thepath + f.thefile.name, '</strong> ', ' - ',
566                  f.thefile.size, m.getString('upload_item'), ' [ ', m.getString(f.status), ' ] ', '<button id="delete_item" item="', i, '">X</button></li>');
567    }
568    
569    document.getElementById('upload_file_list').innerHTML = '<ul id="nav">' + output.join('') + '</ul>'; 
570    
571    $("button#delete_item").click(function(){
572    	var del_item_id = $(this).attr("item");
573    	this_upload_files.splice(del_item_id, 1);    	
574    	outputUploadResult();
575    });   
576	}
577	
578	function showUploadProgress(status, progress_percent){
579		
580		var img = $('#div_upload');
581		img.css("display", "block");
582		
583		if(progress_percent<=0)
584			$('.ui-label').css("display", "none");
585		else{
586			var progressBar = $("#progress_bar");
587		  $(".ui-progress", progressBar).css("width", progress_percent.toFixed(2) + "%");	    
588		  $('.ui-label').css("display", "block");
589		  $('.ui-label .value').text(status);
590		}
591	}
592	
593	function traverseFileTree(item, path) {
594  	path = path || "";
595  	if (item.isFile) {
596    	// Get file
597    	item.file(function(file) {
598      	console.log("File:", path + file.name);
599      	
600      	var oObject = new Object();
601				oObject.status = "Init";
602				oObject.thepath = path;
603				oObject.thefile = file;
604				this_upload_files.push(oObject);
605				
606				outputUploadResult();
607    	});
608  	} 
609  	else if (item.isDirectory) {
610    	// Get folder contents
611    	var dirReader = item.createReader();
612    	dirReader.readEntries(function(entries) {
613      	for (var i=0; i<entries.length; i++) {
614        	traverseFileTree(entries[i], path + item.name + "/");
615      	}
616    	});
617  	}
618	}
619
620  function handleFileSelect(evt) { 
621  	var sel_files; 
622  	
623  	if(evt.type=='drop'){
624    	evt.stopPropagation();
625    	evt.preventDefault();
626    	
627    	//- test
628    	if(evt.dataTransfer.items!=undefined){
629    		
630    		var items = evt.dataTransfer.items;
631    		
632    		if(items.length>0)
633    			$("#upload-container").css("display", "none");
634    		
635			  for (var i=0; i<items.length; i++) {
636			    // webkitGetAsEntry is where the magic happens
637			    var item = items[i].webkitGetAsEntry();
638			    if (item) {
639			      traverseFileTree(item);
640			    }
641			  }
642			  
643			  return;
644			}
645			else
646				sel_files = evt.dataTransfer.files; // FileList object.
647		}
648		else{			
649			sel_files = evt.target.files;
650		}
651		
652		for (var i = 0, s; s = sel_files[i]; i++) {
653			if(s.name=="."||s.name=="..")
654				continue;
655			
656			var path = "";
657			if(s.webkitRelativePath){
658				path = String(s.webkitRelativePath).replace(s.name,"");
659			}
660			
661			var oObject = new Object();
662			oObject.status = "Init";
663			oObject.thepath = path;			
664			oObject.thefile = s;
665			this_upload_files.push(oObject);
666		}
667		
668		$("#upload-container").css("display", "none");		
669    outputUploadResult();
670  }
671
672  function handleDragOver(evt) {
673  	evt.stopPropagation();
674    evt.preventDefault();
675  }
676  
677  $('button#cancel').click(function(){
678  	if(parent.confirmCancelUploadFile()==0)
679			return;
680			
681		parent.closeUploadPanel();
682  });
683  
684  $(window).resize(adjustLayout);
685  	
686});
687
688function get_user_agent(){
689   return navigator.userAgent;
690}
691  	
692function get_server_url(){
693	var openurl = window.location.protocol + "//" + window.location.host + addPathSlash(g_storage.get('openurl'));
694	return openurl;
695}
696
697function stop_upload(){
698	console.log("stop_upload");
699	if( this_upload_files && this_upload_files.length > 0 )
700		this_upload_files.splice(0,this_upload_files.length);
701		
702	g_storage.set('stopLogoutTimer', "0");
703	g_storage.set('isOnUploadFile', "0");
704}
705</script>
706
707<body>
708	
709<table id="main_table" width="100%" height="auto" border="0" align="center" cellpadding="0" cellspacing="0">
710	<tr>
711  	<td>
712    <div id='uploadRegion' style='height:auto'>	
713    	<table id="upload-container" cellpadding="0" cellspacing="0" class="upload-dropzone-parent drag-drop-supported">
714    		<tbody>
715    			<tr>
716    				<td class="upload-dropzone-cell">
717    					<table id="drop-zone-label" cellpadding="0" cellspacing="0" class="upload-dropzone">
718    						<tbody>
719    							<tr>
720    								<td>
721    									<div class="upload-drop-here">������������������������</div>
722    									<div class="upload-drop-alt">���������������������...</div>
723    									<div id="select-files-parent-label" class='select-files'>
724    										<span class="upload-select-here">������������������������</span>
725    										<input type='file' id='files' multiple/>
726    									</div>
727    									<div id="select-directorys-parent-label" class='select-directorys'>
728    										<span class="upload-select-directorys-here">���������������������������</span>
729    										<input type='file' id='directorys' webkitdirectory="" directory=""/>
730    									</div>
731    								</td>
732    							</tr>
733    							<!--
734    							<tr>
735    								<td>
736    									<div id="chrome-require-label" class="chrome-require">
737    										<a href="https://www.google.com/chrome" target="_blank"><span class="upload-support-directorys"></span></a>
738    									</div>
739    								</td>
740    							</tr>
741    							-->
742    						</tbody>
743    					</table>
744    				</td>
745    			</tr>	
746    		</tbody>
747    	</table>
748    	<output id='upload_file_list'></output>    	
749		</div>
750    </td>    
751  </tr>
752  <tr style='height:25px'>
753  	<td>
754  		<div id='div_upload' style='display:none;width:100%;'>   	
755    		<div class="ui-progress-bar ui-container" id="progress_bar">
756        	<div class="ui-progress" style="width: 0%;">          	
757          </div>
758          <span class="ui-label" style="display:none;">
759            <b class="value">7%</b>
760          </span>
761        </div>
762    	</div>
763  	</td>
764  </tr>
765  <!--<tr style='height:10px'></tr>-->
766  <tr>
767  	<td>
768  	<div class="table_block_footer" style="text-align:right">
769  		<button id="upload" class='ml-btn-1 readBytesButtons'>Upload</button>
770      <button id="cancel" class="ml-btn-1 btnStyle">Close</button> 
771    </div>
772    </td>
773  </tr>
774</table>	
775</body>
776</html>
777