PageSourceSearch

https://www.riogrande.gob.ar/wp-content/plugins/file-away/lib/js/management.js?ver=3.9.9.0.1

js riogrande.gob.ar collected 2026-09-24 09:00:39 UTC 86,189 bytes, 2,377 lines download raw bytes

1(function(jQuery)
2{
3	jQuery.fn.hasAttr = function(name)
4	{
5		for(var i = 0, l = this.length; i < l; i++)
6		{
7			if(!!(this.attr(name) !== undefined)) return true;
8		}
9		return false;
10	};
11})(jQuery);
12jQuery(document).ready(function($)
13{
14	// FLASH BODY WIDTH FOR WEB FONTS
15    setTimeout(function(){
16        $('body').width($('body').width()+1).width('auto');
17    }, 250);
18	// OPEN RSS LINKS
19	$('span.ssfa-rssmini').on('click', function()
20	{
21		window.open($(this).data('href'));
22	});	
23});
24FlightBoxes = [];
25jQuery(document).ready(function($)
26{
27	flightbox = function(url, uid, theme, icons, nolinks)
28	{
29		var in_iframe = (window.location != window.parent.location) ? 'iframe ' : '';
30		if(typeof(url) === 'undefined') url = false;
31		if(!url) return false;
32		var id = uid.split("-");
33		var flightbox_nonce = $('div.flightbox-parent[data-uid="'+id[0]+'"]').data('fbn');
34		if(!$('#ssfa-flightbox-shadow').length)
35		{
36			var FlightBox = $('<div id="ssfa-flightbox" />');
37			var FlightBoxCont = $('<div class="ssfa-flightbox-controls" />');
38			var theShadow = $('<div id="ssfa-flightbox-shadow" class="'+theme+'" />');
39			$('body', window.top.document).append(theShadow);
40			$('body', window.top.document).append(FlightBox);
41			theShadow.hide();
42			FlightBox.hide();
43		}
44		else
45		{
46			var FlightBox = $('div#ssfa-flightbox', window.top.document);
47			var FlightBoxCont = $('div.ssfa-flightbox-controls', window.top.document);
48			var theShadow = $('div#ssfa-flightbox-shadow', window.top.document);	
49		}
50		theShadow.on('click', function(e)
51		{
52			Xflightbox();
53		});
54		$('body').on("contextmenu", 'div#ssfa-flightbox-shadow, div#ssfa-flightbox', function()
55		{
56			return false;
57    	});
58		if(!$('div.flightbox-spinner').length)
59		{
60			var loading = $(
61				'<div class="flightbox-spinner">'+
62					'<div class="fb-rect1"></div>'+
63					'<div class="fb-rect2"></div>'+
64					'<div class="fb-rect3"></div>'+
65					'<div class="fb-rect4"></div>'+
66					'<div class="fb-rect5"></div>'+
67				'</div>'
68			);
69		} 
70		else var loading = $('div.flightbox-spinner');
71		FlightBoxCont.prepend(loading);
72		var total = FlightBoxes[id[0]];
73		var next = id[1] >= total ? 1 : (+id[1]+1);
74		var prev = id[1] == 1 ? total : (+id[1]-1);
75		$next = $('div.ssfa-meta-container[data-uid="'+id[0]+'"] a[data-flightbox="'+(next)+'"]');
76		$next = $next.length 
77			? $next.get(0).attributes.onclick.value 
78			: $('iframe').contents().find('div.ssfa-meta-container[data-uid="'+id[0]+'"] a[data-flightbox="'+(next)+'"]').get(0).attributes.onclick.value;
79		$prev = $('div.ssfa-meta-container[data-uid="'+id[0]+'"] a[data-flightbox="'+(prev)+'"]');
80		$prev = $prev.length
81			? $prev.get(0).attributes.onclick.value 
82			: $('iframe').contents().find('div.ssfa-meta-container[data-uid="'+id[0]+'"] a[data-flightbox="'+(prev)+'"]').get(0).attributes.onclick.value;
83		$current = $('div.ssfa-meta-container[data-uid="'+id[0]+'"] a[data-flightbox="'+(id[1])+'"]');
84		$current = $current.length  
85			? $current.get(0).attributes.onclick.value 
86			: $('iframe').contents().find('div.ssfa-meta-container[data-uid="'+id[0]+'"] a[data-flightbox="'+(id[1])+'"]').get(0).attributes.onclick.value;
87		$nexturl = $('div.ssfa-meta-container[data-uid="'+id[0]+'"] a[data-flightbox="'+(next)+'"]');
88		$nexturl = $nexturl.length
89			? $nexturl.attr('href')
90			: $('iframe').contents().find('div.ssfa-meta-container[data-uid="'+id[0]+'"] a[data-flightbox="'+(next)+'"]').attr('href');
91		$prevurl = $('div.ssfa-meta-container[data-uid="'+id[0]+'"] a[data-flightbox="'+(prev)+'"]');
92		$prevurl = $prevurl.length
93			? $prevurl.attr('href')
94			: $('iframe').contents().find('div.ssfa-meta-container[data-uid="'+id[0]+'"] a[data-flightbox="'+(prev)+'"]').attr('href');
95		$url = $('div.ssfa-meta-container[data-uid="'+id[0]+'"] a[data-flightbox="'+(id[1])+'"]');
96		$url = $url.length
97			? $url.attr('href')
98			: $('iframe').contents().find('div.ssfa-meta-container[data-uid="'+id[0]+'"] a[data-flightbox="'+(id[1])+'"]').attr('href');
99		var wh = $(window.top).height();
100		var ww = $(window.top).width();		
101		theShadow.fadeIn(250);
102		$.post
103		(
104			fileaway_mgmt.ajaxurl,
105			{
106				action : 'fileaway-manager',
107				act : 'flightbox',
108				url : url,
109				uid : String(uid),
110				theme : theme,
111				icons : icons,
112				wh	: wh,
113				ww	: ww,
114				next : $next,
115				prev : $prev,
116				nexturl : $nexturl,
117				prevurl : $prevurl,
118				currenturl : $url,
119				current : $current,
120				nolinks : nolinks,
121				nonce : fileaway_mgmt.nonce,
122				flightbox_nonce : flightbox_nonce						
123			},
124			function(response)
125			{
126				filertify.set({labels:{ok : fileaway_mgmt.ok_label }}); 
127				if('status' in response)
128				{
129					if(response.status == 'error') 
130					{
131						filertify.set({labels:{ok : fileaway_mgmt.ok_label }}); 
132						filertify.alert(response.message); 
133						return false;
134					}
135					else
136					{
137						$('div#ssfa-flightbox-inner', window.top.document).animate({opacity:'0'}, 250);
138						$('div.ssfa-flightbox-controls a', window.top.document).animate({opacity:'0'}, 0);
139						loading.remove();
140						setTimeout(function()
141						{
142							FlightBox.animate
143							({
144								left: response.offset,
145								height: response.height, 
146								width: response.width, 
147								top: response.top
148							}, 250, 
149							function()
150							{
151								$(this).replaceWith(response.html);
152								$('div#ssfa-flightbox-inner', window.top.document).animate({opacity:'1'}, 250);
153								$('div.ssfa-flightbox-controls span', window.top.document).css({opacity:'0.8'});
154								if(response.iframe == 'true', window.top.document)
155								{
156									$('div#ssfa-flightbox-inner iframe', window.top.document).width(response.iwidth);
157									$('div#ssfa-flightbox-inner iframe', window.top.document).height(response.iheight);	
158								}
159							});
160						},250);
161					}
162				}
163				else
164				{
165					filertify.set({labels:{ok : fileaway_mgmt.ok_label }}); 
166					filertify.alert('An unknown error occurred: no status returned'); 
167					return false;					
168				}
169			}
170		)
171		return false;
172	}
173	// close the flightbox
174	Xflightbox = function()
175	{
176		$('div#ssfa-flightbox', window.parent.document).fadeOut(250, function(){$(this).remove();});
177		$('div#ssfa-flightbox-shadow', window.parent.document).fadeOut(250, function(){$(this).remove();});
178	}
179});
180jQuery(document).ready(function($)
181{
182	// Bulk Download Check
183	if($('span[id^=ssfa-bulk-download-engage]').length)
184	{
185		// Cache the Data on DOM Ready
186		$('table.bd-table tr[id^=ssfa-file-]').each(function()
187		{
188			$sfx = this.id;
189			$type = $('td#filetype-'+$sfx).data('ext');
190			$path = $('td#filename-'+$sfx).data('path');
191			$name = $('td#filename-'+$sfx).data('name');
192		});
193		// Bulk Download Select All Function
194		$checkall = $('input[id^="ssfa-bulk-download-select-all-"]');
195		$checkall.on('change', function()
196		{
197			$uid = this.id;
198			$uid = $uid.replace('ssfa-bulk-download-select-all-', '');
199			$selectalltext = $(this).data('selectall');
200			$clearalltext = $(this).data('clearall');
201			$selectall = $('label#ssfa-bulkdownload-select-all-'+$uid);
202			if(this.checked)
203			{
204				$selectall.text($clearalltext);
205				$('table.bd-table tr[id^=ssfa-file-'+$uid+']').addClass('ssfabd-selected');
206				$('table.bd-table tr[id^=ssfa-file-'+$uid+'].fileaway-dynamic').removeClass('ssfabd-selected');
207			}
208			else
209			{
210				$selectall.text($selectalltext);
211				$('table.bd-table tr[id^=ssfa-file-'+$uid+']').removeClass('ssfabd-selected');							
212			}
213		});
214		// Bulk Download Toggle Selected Files
215		$('table.bd-table tr[id^=ssfa-file-]').each(function()
216		{
217			$(this).on('click', function(e)
218			{
219				var target = $(e.target);
220				if(!target.is('a', this) 
221				&& !target.is('span', this) 
222				&& !target.is('div.ssfa-audio-download', this) 
223				&& !target.is('div.ssfa-player', this) 
224				&& !target.is('div.ssfa-player-extended', this))
225				{
226					if($(this).hasClass('ssfabd-selected')) $(this).removeClass('ssfabd-selected');	
227					else if(!$(this).hasClass('fileaway-dynamic')) $(this).addClass('ssfabd-selected');						
228				}
229			}); 
230		}); 	
231		// Bulk Download Engage Function
232		$('span[id^="ssfa-bulk-download-engage-"]').on('click', function()
233		{
234			$uid = this.id;
235			$uid = $uid.replace('ssfa-bulk-download-engage-', '');
236			$loading = $('img#ssfa-engage-ajax-loading-'+$uid);
237			var stats = $('table#ssfa-table-'+$uid).data('stats') ? 'true' : 'false';
238			var bulkdownload_nonce = $('table#ssfa-table-'+$uid).data('bd');
239			var selectedFilesFrom = {};
240			var selectedCount = 0;
241			var messages = '';
242			var jackoff = false;
243			$('table.bd-table tr[id^=ssfa-file-'+$uid+']').each(function(index)
244			{
245				if($(this).hasClass('ssfabd-selected'))
246				{
247					var sfx = this.id;
248					var filepath = String($('td#filename-'+sfx).data('path'));
249					var oldname = String($('td#filename-'+sfx).data('name'));
250					var	ext = String($('td#filetype-'+sfx).data('ext'));
251					if(oldname.indexOf('..') >= 0 || filepath.indexOf('..') >= 0 || filepath === '/') jackoff = true;
252					else
253					{
254						selectedFilesFrom[index] = filepath+'/'+oldname+'.'+ext;
255						selectedCount++;
256					}
257				}
258			});
259			if(jackoff)
260			{
261				filertify.set({labels:{ok : fileaway_mgmt.ok_label}});
262				filertify.alert(fileaway_mgmt.tamper1);
263			} 
264			else 
265			{			
266				if(selectedCount == 0) 
267					messages += fileaway_mgmt.no_files_selected+'<br>';
268				if(messages !== '')
269				{ 
270					filertify.set({labels:{ok : fileaway_mgmt.ok_label }}); 
271					filertify.alert(messages) 
272				}
273				else 
274				{
275					// Ajax Bulk Action Download Function
276					$loading.show();
277					$.post
278					(
279						fileaway_mgmt.ajaxurl,
280						{
281							action : 'fileaway-manager',
282							act : 'bulkdownload',
283							files : selectedFilesFrom,
284							stats : stats,
285							nonce : fileaway_mgmt.nonce,
286							bulkdownload_nonce : bulkdownload_nonce						
287						},
288						function(response)
289						{
290							$loading.hide();		
291							if('status' in response)
292							{
293								if(response.status == 'error')
294								{ 
295									filertify.set({labels:{ok : fileaway_mgmt.ok_label }}); 
296									filertify.alert(response.message); 
297								}
298								else 
299								{
300									$('<iframe src="'+response+'" id="fa-bulkdownload" style="visibility:hidden;" name="fa-bulkdownload">').appendTo('body');	
301								}
302							}
303							else
304							{
305								filertify.set({labels:{ok : fileaway_mgmt.ok_label }}); 
306								filertify.alert('An unknown error occurred'); 
307							}
308						}
309					) // End Ajax Bulk Action Download Function
310				}
311			}
312		}); // End Bulk Download Engage Function
313	} // End Bulk Download Check
314}); 
315jQuery(document).ready(function($)
316{
317	if($('table.dirtree-table').length)
318	{
319		// Multi-Manager Check
320		$i = 0;
321		$('table.dirtree-table').each(function()
322		{
323			if($(this).data('drawer') == 'drawer') $i++;
324		});
325		if($i > 1)
326		{ 
327			filertify.set({labels:{ok : fileaway_mgmt.ok_label }});
328			filertify.alert('Notice: You have multiple Directory Tree or Manager Mode tables on the same page with no drawer id number specified. Please add <code>drawerid="1"</code>, <code>drawerid="2"</code>, etc., to each Directory Tree or Manager table shortcode, assigning them each a unique id number.');
329		}
330	}
331	// Manager Check
332	if($('th.ssfa-manager').length)
333	{
334		// Cache the Data on DOM Ready
335		$('table.mngr-table').each(function()
336		{
337			$uid = $(this).data('uid');
338			$page = $(this).data('pg');
339			$drawer = $(this).data('drw');
340			$class = $(this).data('cls');
341			$basename = $(this).data('basename');
342			$start = $(this).data('start');
343			$dir = $(this).data('dir');
344			$base = $(this).data('base');
345			$basedir = $(this).data('basedir');
346			$fafl = $(this).data('fafl');
347			$faui = $(this).data('faui');
348			$faun = $(this).data('faun');
349			$faur = $(this).data('faur');
350			$faum = $(this).data('faum');
351		});
352		$('table.mngr-table tr[id^=ssfa-dir-]').each(function()
353		{
354			$sfx = this.id;
355			$path = $('td#folder-'+$sfx+' a').data('path');
356			$name = $('td#folder-'+$sfx+' a').data('name');			
357		});
358		$('table.mngr-table tr[id^=ssfa-file-]').each(function()
359		{
360			$sfx = this.id;
361			$type = $('td#filetype-'+$sfx).data('ext');
362			$path = $('td#filename-'+$sfx).data('path');
363			$name = $('td#filename-'+$sfx).data('name');
364		});
365		// Allowed Characters Settings
366		$('table[id^="ssfa-table-"] tbody tr[id^="ssfa-file-"] td[id^="filename-"] input').alphanum({allow : "~!@#$^&()_+`-={}[]',"});
367		$('table[id^="ssfa-table-"] tbody tr[id^="ssfa-file-"] input.fileaway-customdata').alphanum({allow : "~!@#$^&()_+`-={}[]',"});
368		$('table[id^="ssfa-table-"] tbody tr[id^="ssfa-file-"] input.fileaway-metadata').alphanum({allow : "|/~!@#$^&()_+`-={}[]',."});
369		$('table[id^="ssfa-table-"] tbody tr[id^="row-ssfa-create-dir-"] input').alphanum({allow : "~!@#$/^&()_+`-={}[]',"});
370		$('table[id^="ssfa-table-"] tbody tr[id^="ssfa-dir-"] input').alphanum({allow : "~!@#$^&()_+`-={}[]',"});
371		// Initialize Chosen Select
372		$('select.ssfa-directories-select, select.ssfa-bulk-action-select').chozed({
373			allow_single_deselect:true, 
374			width: '150px', 
375			inherit_select_classes:true,
376			no_results_text: fileaway_mgmt.no_results,
377			search_contains: true 
378		});
379		// Create Dir
380		$('body').on('click', 'a[id^="ssfa-create-dir-"]', function(ev)
381		{
382			ev.preventDefault();
383			var sfx = this.id,
384				createinput = $('input#input-'+sfx),
385				manager = $('td#manager-'+sfx);
386			if($(createinput).is(':visible')){}
387			else
388			{
389				createinput.fadeIn(250).focus();
390				manager.html("<a href='javascript:' id='save-"+sfx+"' style='display:none;'>"+fileaway_mgmt.save_link+"</a><br>"+
391					"<a href='javascript:' id='cancel-"+sfx+"' style='display:none;'>"+fileaway_mgmt.cancel_link+"</a>")
392				var save = $('a#save-'+sfx),
393					cancel = $('a#cancel-'+sfx);
394				setTimeout(function()
395				{
396					save.fadeIn(250);
397					cancel.fadeIn(250);
398				},250);
399					
400			}
401		});
402		$('body').on('click', 'a[id^="cancel-ssfa-create-dir-"]', function(ev)
403		{	
404			ev.preventDefault();
405			var sfx = this.id.replace('cancel-',''),
406				save = $('a#save-'+sfx),
407				createinput = $('input#input-'+sfx);
408			save.fadeOut(250);
409			$(this).fadeOut(250);
410			createinput.fadeOut(250).val('');
411		});
412		$('body').on('click', 'a[id^="save-ssfa-create-dir"]', function(ev)
413		{
414			ev.preventDefault();
415			var sfx = this.id.replace('save-',''),
416				cancel = $('a#cancel-'+sfx),
417				createinput = $('input#input-'+sfx),
418				prettify = $('a#'+sfx).data('prettify');
419			$newsub = createinput.val();
420			if($newsub === '')
421			{
422				filertify.set({labels:{ok : fileaway_mgmt.ok_label}});
423				filertify.alert(fileaway_mgmt.no_subdir_name);
424			}
425			else
426			{
427				$(this).fadeOut(250);
428				cancel.fadeOut(250);
429				createinput.fadeOut(250).val('');					
430				var uid = sfx.replace('ssfa-create-dir-','');
431				var manager_nonce = $(this).parents('table').eq(0).data('mn');
432				var meta = $(this).parents('.ssfa-meta-container').eq(0).data('uid');
433				var loc_nonce = $('input#location_nonce_'+meta).val();				
434				var count = $('table.mngr-table tr[id^=ssfa-dir-]').length;
435				var cells = $(this).parents('tr').children('td').length;
436				var cls = $(this).parents('table').eq(0).data('cls');
437				var page = $(this).parents('table').eq(0).data('pg');
438				var drawer = $(this).parents('table').eq(0).data('drw');
439				var drawerid = $(this).parents('table').eq(0).data('drawer');
440				var dir = String($(this).parents('table').eq(0).data('dir'));
441				var base = String($(this).parents('table').eq(0).data('base'));
442				var args = 
443				{
444					action : 'fileaway-manager',
445					act : 'createdir',
446					newsub : $newsub,
447					parents : dir,
448					base : base,
449					uid : uid,
450					count : (+count+1),
451					cells : (+cells-2),
452					cls : cls,
453					pg : page,
454					drawer : drawer,
455					drawerid : drawerid,
456					querystring : location.search,
457					prettify : prettify,
458					nonce : fileaway_mgmt.nonce,
459					manager_nonce : manager_nonce,
460					loc_nonce : loc_nonce,				
461				}
462				$.post
463				(
464					fileaway_mgmt.ajaxurl,
465					args,
466					function(response)
467					{
468						if(response.status === 'error')
469						{
470							filertify.set({labels:{ok : fileaway_mgmt.ok_label}});
471							filertify.alert(response.message);	
472						}
473						else if(response.status === 'success')
474						{
475							filertify.set({labels:{ok : fileaway_mgmt.ok_label}});
476							filertify.alert(response.message);	
477						}
478						else if(response.status === 'insert')
479						{
480							$newrow = response.message;
481							$row = $('tr#row-'+sfx);	
482							$row.after($newrow).hide().fadeIn(250);
483						}
484					}
485				);
486				return false;
487			}
488		}); 
489		// Delete Directory Function
490		$('body').on('click', 'a[id^="delete-ssfa-dir-"]', function(ev)
491		{
492			ev.preventDefault();
493			var sfx = this.id.replace('delete-',''),
494				rename = $('a#rename-'+sfx),
495				del = $('a#delete-'+sfx),
496				manager = $('td#manager-'+sfx);
497			del.fadeOut(250);
498			rename.fadeOut(250);				
499			var uid = sfx.replace('ssfa-dir-','');			
500			if(! $('a#canceldel-'+sfx).length) manager.prepend("<a href='javascript:' id='canceldel-"+sfx+"' style='display:none;'>"+fileaway_mgmt.cancel_link+"</a>")
501			if(! $('a#proceed-'+sfx).length) manager.prepend("<a href='javascript:' id='proceed-"+sfx+"' style='display:none;'>"+fileaway_mgmt.proceed_link+"<br></a>")
502			if(! $('span#confirm-'+sfx).length) manager.prepend("<span id='confirm-"+sfx+"' style='display:none;'>"+fileaway_mgmt.delete_check+"<br></span>")				
503			var proceed = $('a#proceed-'+sfx),
504				canceldel = $('a#canceldel-'+sfx),
505				confirms = $('span#confirm-'+sfx);
506			setTimeout(function()
507			{
508				proceed.fadeIn(250);
509				canceldel.fadeIn(250);						
510				confirms.fadeIn(250);
511			},250);
512			$subdir = $('td#folder-'+sfx+' a').data('name');
513			var dir = String($(this).parents('table').eq(0).data('dir'));
514			var base = String($(this).parents('table').eq(0).data('base'));
515			var manager_nonce = $(this).parents('table').eq(0).data('mn');
516			var meta = $(this).parents('.ssfa-meta-container').eq(0).data('uid');
517			var loc_nonce = $('input#location_nonce_'+meta).val();			
518			$path1 = dir;
519			$path2 = String($subdir);
520			$(canceldel).on('click', function(ev)
521			{
522				ev.preventDefault();
523				proceed.fadeOut(250);
524				canceldel.fadeOut(250);
525				confirms.fadeOut(250);					
526				setTimeout(function()
527				{
528					rename.fadeIn(250);
529					del.fadeIn(250);					
530				},250);
531			});
532			$(proceed).on('click', function(ev)
533			{
534				ev.preventDefault();
535				proceed.fadeOut(250);
536				canceldel.fadeOut(250);
537				confirms.fadeOut(250);					
538				setTimeout(function()
539				{
540					rename.fadeIn(250);
541					del.fadeIn(250);		
542				},250);
543				if($path1.indexOf('..') >= 0 || $path1 === '/' || $path1 === '' || !$path1 || $path1 === 'undefined' || $path1 === undefined)
544				{
545					filertify.set({labels:{ok : fileaway_mgmt.ok_label }}); 
546					filertify.alert(fileaway_mgmt.tamper2);
547				}
548				else if($path2.indexOf('..') >= 0 || $path2 === '/' || $path2 === '' || !$path2 || $path2 === 'undefined' || $path2 === undefined)
549				{
550					filertify.set({labels:{ok : fileaway_mgmt.ok_label }}); 
551					filertify.alert(fileaway_mgmt.tamper2);
552				}
553				else
554				{
555					$.post
556					(
557						fileaway_mgmt.ajaxurl,
558						{
559							action : 'fileaway-manager',
560							act : 'deletedir',
561							status : 'life',
562							path1 : $path1,
563							path2 : $path2,
564							nonce : fileaway_mgmt.nonce,
565							manager_nonce : manager_nonce,
566							loc_nonce : loc_nonce,
567						},
568						function(response)
569						{			
570							if(response.status === 'error' || response.status === 'partial')
571							{
572								filertify.set({labels:{ok : fileaway_mgmt.ok_label }});
573								filertify.alert(response.message);	
574							}
575							else if(response.status === 'success')
576							{
577								filertify.set({labels:{ok : fileaway_mgmt.ok_label }});
578								filertify.alert(response.message);	
579								$(del).parents('tr').fadeOut(250,function(){ $(this).remove(); });
580							}
581							else if(response.status === 'success-single')
582							{
583								$(del).parents('tr').fadeOut(250,function(){ $(this).remove(); });
584							}
585							else if(response.status === 'confirm')
586							{
587								filertify.set({labels:{ok : fileaway_mgmt.confirm_label, cancel : fileaway_mgmt.cancel_label }});
588								filertify.confirm(response.message, function(e)
589								{
590									if(e)
591									{
592										$.post
593										(
594											fileaway_mgmt.ajaxurl,
595											{
596												action : 'fileaway-manager',
597												act : 'deletedir',
598												status : 'death',
599												path1 : $path1,
600												path2 : $path2,
601												nonce : fileaway_mgmt.nonce,
602												loc_nonce : loc_nonce,
603												manager_nonce : manager_nonce
604											},
605											function(response)
606											{
607												if(response.status === 'error' || response.status === 'partial')
608												{
609													filertify.set({labels:{ok : fileaway_mgmt.ok_label }});
610													filertify.alert(response.message);	
611												}
612												else if(response.status === 'success')
613												{
614													filertify.set({labels:{ok : fileaway_mgmt.ok_label }});
615													filertify.alert(response.message);	
616													$(del).parents('tr').fadeOut(250,function(){ $(this).remove(); });
617												}
618											}
619										);
620										return false;
621									}										
622								});
623							}
624						}
625					);
626					return false;
627				}
628			}); 
629		}); // End Delete Function (Directory Single) 
630		// Directory Rename Function
631		$('body').on('click', 'a[id^="rename-ssfa-dir-"]', function(ev)
632		{
633			ev.preventDefault();
634			var sfx = this.id.replace('rename-', ''),
635				del = $('a#delete-'+sfx),
636				manager = $('td#manager-'+sfx),
637				dirname = $('td#name-'+sfx+' a'),
638				dirinput = $('input#rename-'+sfx),
639			$subdir = $('td#folder-'+sfx+' a').data('path');
640			$(this).fadeOut(250);
641			del.fadeOut(250);
642			if(!$('a#cancel-'+sfx).length) manager.prepend("<a href='' id='cancel-"+sfx+"' style='display:none;'>"+fileaway_mgmt.cancel_link+"</a>");
643			if(!$('a#save-'+sfx).length) manager.prepend("<a href='' id='save-"+sfx+"' style='display:none;'>"+fileaway_mgmt.save_link+"<br></a>");
644			var save = $('a#save-'+sfx),
645				cancel = $('a#cancel-'+sfx);
646			dirname.fadeOut(250);
647			setTimeout(function()
648			{
649				save.fadeIn(250);
650				cancel.fadeIn(250);			
651				dirinput.fadeIn(250);
652			},250);
653		});
654		$('body').on('click', 'a[id^="cancel-ssfa-dir-"]', function(ev)
655		{
656			ev.preventDefault();
657			var sfx = this.id.replace('cancel-', '');
658			$('a#save-'+sfx).fadeOut(250);
659			$(this).fadeOut(250);
660			$('input#rename-'+sfx).fadeOut(250);
661			setTimeout(function()
662			{
663				$('a#rename-'+sfx).fadeIn(250);
664				$('a#delete-'+sfx).fadeIn(250);
665				$('td#name-'+sfx+' a').fadeIn(250);
666			},250);
667		});
668		$('body').on('click', 'a[id^="save-ssfa-dir-"]', function(ev)
669		{
670			ev.preventDefault();				
671			var sfx = this.id.replace('save-', '');
672			$dir = String($(this).parents('table').eq(0).data('dir'));
673			$base = String($(this).parents('table').eq(0).data('base'));
674			$url = $('td#folder-'+sfx+' a');
675			$url2 = $('td#name-'+sfx+' a');
676			$subdir = $('td#folder-'+sfx+' a').data('path');
677			$oldpath = $base+'/'+$subdir;
678			$newname = String($('input#rename-'+sfx).val());
679			$page = $(this).parents('table').eq(0).data('pg');
680			$drawerid = $(this).parents('table').eq(0).data('drawer');
681			metadata = $(this).parents('table').eq(0).data('metadata');
682			var meta = $(this).parents('.ssfa-meta-container').eq(0);
683			var uid = $(meta).data('uid');
684			var manager_nonce = $(this).parents('table').eq(0).data('mn');
685			var loc_nonce = $('input#location_nonce_'+uid).val();			
686			$('a#save-'+sfx).fadeOut(250);
687			$('a#cancel-'+sfx).fadeOut(250);
688			$('input#rename-'+sfx).fadeOut(250);
689			if($oldpath.indexOf('..') >= 0 || $oldpath === '/' || $newname.indexOf('..') >= 0 || $newname.indexOf('/') >= 0)
690			{
691				filertify.set({labels:{ok : fileaway_mgmt.ok_label }});
692				filertify.alert(fileaway_mgmt.tamper3);
693			}
694			else if($newname === '' || $newname === 'undefined' || $newname === undefined)
695			{
696				filertify.set({labels:{ok : fileaway_mgmt.ok_label }});
697				filertify.alert(fileaway_mgmt.no_subdir_name);
698			}
699			else
700			{
701				$.post
702				(
703					fileaway_mgmt.ajaxurl,
704					{
705						action : 'fileaway-manager',
706						act : 'renamedir',
707						datapath : $subdir,
708						oldpath : $oldpath,
709						metadata : metadata,
710						newname : $newname,
711						parents : $dir,
712						pg : $page,
713						drawerid : $drawerid,
714						querystring : location.search,
715						nonce : fileaway_mgmt.nonce,
716						manager_nonce : manager_nonce,
717						loc_nonce : loc_nonce,
718					},
719					function(response)
720					{ 
721						if(response.status === 'error')
722						{ 
723							filertify.set({labels:{ok : fileaway_mgmt.ok_label }}); 
724							filertify.alert(response.message); 
725						}
726						else
727						{
728							$newnamerow = $('td#name-'+sfx+' input').val(response.newname).attr('value', response.newname);
729							$('tr#'+sfx+' td').each(function()
730							{
731								$(this).data('value', "# # # # # "+response.newname).attr('data-value', "# # # # # "+response.newname);
732							});
733							$('td#folder-'+sfx+' a').attr('href', response.url);
734							$('td#folder-'+sfx+' a').data('path', response.newdata).attr('data-path', response.newdata);
735							$('td#name-'+sfx+' a').attr('href', response.url);
736							$('td#folder-'+sfx+' a').data('name', response.newname).attr('data-name', response.newname);
737							$('td#name-'+sfx+' a span').text(response.newname);
738						}
739						$('a#rename-'+sfx).fadeIn(250);
740						$('a#delete-'+sfx).fadeIn(250);
741						$('td#name-'+sfx+' a').fadeIn(250);
742					}
743				);					
744				return false;
745			}
746		});	
747		// End Directory Rename Function		
748		// File Rename Function
749		$('body').on('click', 'a[id^="rename-ssfa-file-"]', function(ev)
750		{
751			ev.preventDefault();
752			$id = this.id;
753			var sfx = $id.replace('rename-', ''),
754				uid = $(this).parents('table').eq(0).data('uid'),
755				rename = $(this),
756				del = $('a#delete-'+sfx),
757				filename = $('td#filename-'+sfx+' a'),
758				rawname = $('input#rawname-'+sfx),
759				manager = $('td#manager-'+sfx);
760			if(!$('a#cancel-'+sfx).length) manager.prepend("<a href='' id='cancel-"+sfx+"' style='display:none;'>"+fileaway_mgmt.cancel_link+"</a>")
761			if(!$('a#save-'+sfx).length) manager.prepend("<a href='' id='save-"+sfx+"' style='display:none;'>"+fileaway_mgmt.save_link+"<br></a>")
762			var save = $('a#save-'+sfx);
763			var cancel = $('a#cancel-'+sfx);
764			rename.fadeOut(250);
765			filename.fadeOut(250);
766			del.fadeOut(250);				
767			setTimeout(function()
768			{
769				save.fadeIn(250);
770				cancel.fadeIn(250);			
771				rawname.fadeIn(250);	
772			},250);
773			var customs = $('input[id^="customdata-"][id$="'+sfx+'"]').length;
774			customs = customs - 1;
775			for(var i=0; i <= customs; i++)
776			{
777				var cdata = $('input[id^="customdata-'+i+'-'+sfx+'"]');
778				cdata.siblings('span').fadeOut('fast');
779				cdata.fadeIn(250);
780			}
781		}); 
782		$('body').on('click', 'a[id^="cancel-ssfa-file-"]', function(ev)
783		{
784			ev.preventDefault();
785			$id = this.id;
786				sfx = $id.replace('cancel-', ''),
787				uid = $(this).parents('table').eq(0).data('uid'),
788				rename = $('a#rename-'+sfx),
789				del = $('a#delete-'+sfx),
790				save = $('a#save-'+sfx),
791				cancel = $(this),
792				filename = $('td#filename-'+sfx+' a'),
793				rawname = $('input#rawname-'+sfx),
794				manager = $('td#manager-'+sfx);
795			save.fadeOut(250);
796			cancel.fadeOut(250);
797			rawname.fadeOut(250);
798			setTimeout(function()
799			{
800				rename.fadeIn(250);
801				del.fadeIn(250);
802				filename.fadeIn(250);
803			},250);
804			var customs = $('input[id^="customdata-"][id$="'+sfx+'"]').length;
805			customs = customs - 1;
806			for(var i=0; i <= customs; i++)
807			{
808				var cdata = $('input[id^="customdata-'+i+'-'+sfx+'"]');
809				$(cdata).fadeOut(250);
810				setTimeout(function(){$(cdata).siblings('span').fadeIn(250);},250);
811			}
812		});
813		$('body').on('click', 'a[id^="save-ssfa-file-"]', function(ev)
814		{
815			ev.preventDefault();				
816			$id = this.id;
817			var sfx = $id.replace('save-', '');
818				uid = $(this).parents('table').eq(0).data('uid'),
819				manager_nonce = $(this).parents('table').eq(0).data('mn'),
820				loc_nonce = $('input#location_nonce_'+uid).val(),						
821				rename = $('a#rename-'+sfx),
822				del = $('a#delete-'+sfx),
823				save = $(this),
824				cancel = $('a#cancel-'+sfx),
825				filename = $('td#filename-'+sfx+' a'),
826				manager = $('td#manager-'+sfx),
827				metadata = $(this).parents('table').eq(0).data('metadata'),
828				ext = $('td#filetype-'+sfx).data('ext'),
829				url = $('td#filename-'+sfx+' a'),
830				url2 = $('td#filetype-'+sfx+' a'),					
831				rawname = $('input#rawname-'+sfx),
832				oldname = String($('td#filename-'+sfx).data('name')),
833				filepath = String($('td#filename-'+sfx).data('path')),
834				dir = String($('table#ssfa-table-'+$uid).data('dir'));
835			var customs = $('input[id^="customdata-"][id$="'+sfx+'"]').length;
836			customs = customs - 1;
837			var customdata = [];
838			if(customs >= 0)
839			{
840				for(var i=0; i <= customs; i++)
841				{
842					var cdata = $('input[id^="customdata-'+i+'-'+sfx+'"]');
843					customdata[i] = cdata.val();
844					cdata.fadeOut(250);
845				}
846			}
847			rawname.fadeOut(250);
848			save.fadeOut(250);
849			cancel.fadeOut(250);
850			$.post
851			(
852				fileaway_mgmt.ajaxurl,
853				{
854					action : 'fileaway-manager',
855					act : 'rename',
856					customdata : customdata,
857					metadata : metadata,
858					ext : ext,
859					url : url.attr('href'),
860					rawname : rawname.val(),
861					oldname : oldname,								
862					pp : dir,
863					nonce : fileaway_mgmt.nonce,
864					manager_nonce : manager_nonce,
865					loc_nonce : loc_nonce,
866				},
867				function(response)
868				{			
869					if('status' in response)
870					{
871						if(response.status == 'error')
872						{
873							filertify.set({labels:{ok : fileaway_mgmt.ok_label }}); 
874							filertify.alert(response.message); 
875							return false;
876						}
877						url.attr("href", response.newurl);
878						url.attr("download", response.download);
879						url2.attr("href", response.newurl);
880						url2.attr("download", response.download);									
881						rawname.val(response.rawname);
882						$('td#filename-'+sfx).data('name', response.newoldname)
883						$('td#filename-'+sfx).attr('data-name', response.newoldname)
884						rename.fadeIn(250);
885						del.fadeIn(250);									
886						$('input#rawname-'+sfx).val(response.rawname);
887						filename.text(response.rawname);
888						filename.fadeIn(250);
889						var newcustomdata = response.customdata;
890						if(customs >= 0)
891						{
892							for(var i=0; i <= customs; i++)
893							{
894								var cinput = $('input[id^="customdata-'+i+'-'+sfx+'"]');
895								if(newcustomdata[i] != undefined) cinput.siblings('span').text(newcustomdata[i]).fadeIn(250);
896								else cinput.siblings('span').text('').fadeIn(250);
897							}
898						}
899					}
900					else
901					{
902						filertify.set({labels:{ok : fileaway_mgmt.ok_label }}); 
903						filertify.alert('An unknown error occurred'); 						
904					}
905				}
906			);
907		});	// End Rename Function
908		// Delete Function (Single)
909		$('body').on('click', 'a[id^="delete-ssfa-file-"]', function(ev)
910		{
911			ev.preventDefault();				
912			$id = this.id;
913			var sfx = $id.replace('delete-', ''),
914				rename = $('a#rename-'+sfx),
915				del = $(this),
916				manager = $('td#manager-'+sfx);			
917			del.fadeOut(250);
918			rename.fadeOut(250);				
919			if(!$('a#canceldel-'+sfx).length) manager.prepend("<a href='' id='canceldel-"+sfx+"' style='display:none;'>"+fileaway_mgmt.cancel_link+"</a>")
920			if(!$('a#proceed-'+sfx).length) manager.prepend("<a href='' id='proceed-"+sfx+"' style='display:none;'>"+fileaway_mgmt.proceed_link+"<br></a>")
921			if(!$('span#confirm-'+sfx).length) manager.prepend("<span id='confirm-"+sfx+"' style='display:none;'>"+fileaway_mgmt.delete_check+"<br></span>")				
922			var proceed = $('a#proceed-'+sfx),
923				canceldel = $('a#canceldel-'+sfx),
924				confirms = $('span#confirm-'+sfx);
925			setTimeout(function()
926			{
927				proceed.fadeIn(250);
928				canceldel.fadeIn(250);
929				confirms.fadeIn(250);
930			},250);
931		}); 
932		$('body').on('click', 'a[id^="canceldel-ssfa-file-"]', function(ev)
933		{
934			ev.preventDefault();
935			$id = this.id;
936			var sfx = $id.replace('canceldel-', ''),
937				rename = $('a#rename-'+sfx),
938				del = $('a#delete-'+sfx),
939				canceldel = $(this),
940				proceed = $('a#proceed-'+sfx),
941				confirms = $('span#confirm-'+sfx);
942			proceed.fadeOut(250);
943			canceldel.fadeOut(250);
944			confirms.fadeOut(250);					
945			setTimeout(function()
946			{
947				rename.fadeIn(250);
948				del.fadeIn(250);					
949			},250);
950		});
951		$('body').on('click', 'a[id^="proceed-ssfa-file-"]', function(ev)
952		{
953			ev.preventDefault();
954			$id = this.id;
955			var sfx = $id.replace('proceed-', ''),
956				uid = $(this).parents('table').eq(0).data('uid'),
957				manager_nonce = $(this).parents('table').eq(0).data('mn'),
958				loc_nonce = $('input#location_nonce_'+uid).val(),				
959				rename = $('a#rename-'+sfx),
960				del = $('a#delete-'+sfx),
961				proceed = $(this),
962				canceldel = $('a#canceldel-'+sfx),
963				confirms = $('span#confirm-'+sfx),
964				ext = $('td#filetype-'+sfx).data('ext'),
965				oldname = String($("td#filename-"+sfx).data("name")),
966				filepath = String($("td#filename-"+sfx).data("path")),
967				dir = String($("table#ssfa-table-"+uid).data("dir"));
968			proceed.fadeOut(250);
969			canceldel.fadeOut(250);
970			confirms.fadeOut(250);					
971			$.post
972			(
973				fileaway_mgmt.ajaxurl,
974				{
975					action : 'fileaway-manager',
976					act : 'delete',
977					ext : ext,
978					oldname : oldname,								
979					pp : dir,
980					nonce : fileaway_mgmt.nonce,
981					manager_nonce : manager_nonce,
982					loc_nonce: loc_nonce,
983				},
984				function(response)
985				{			
986					if(response.status == 'success') 
987					{	
988						del.parents('tr').eq(0).fadeOut(250, function(){ $(this).remove(); });
989					}
990					else 
991					{ 
992						filertify.set({labels:{ok : fileaway_mgmt.ok_label }}); 
993						filertify.alert(response.message);
994					}
995				}
996			);
997		}); // End Delete Function (Single)
998		// Bulk Action Toggle Selected Files
999		$('table.mngr-table tr[id^=ssfa-file-]').on('click', function(e)
1000		{
1001			var target = $(e.target);
1002			if(!target.is('td[id^=filetype-ssfa-] a') 
1003			&& !target.is('td[id^=filetype-ssfa-] span') 
1004			&& !target.is('td[id^=filename-ssfa-] a') 
1005			&& !target.is('td[id^=filename-ssfa-] span')
1006			&& !target.is('td[id^=manager-ssfa-] a'))
1007			{
1008				$uid = $(this).parents('table').eq(0).data('uid');
1009				$enabled = $('a#ssfa-bulk-action-toggle-'+$uid).data('enabled');
1010				if($('a#ssfa-bulk-action-toggle-'+$uid).text() == $enabled && !$(this).hasClass('fileaway-dynamic'))
1011				{
1012					if($(this).hasClass('ssfa-selected')) $(this).removeClass('ssfa-selected');	
1013					else $(this).addClass('ssfa-selected');						
1014				}
1015			}
1016		}); // End Bulk Action Toggle Selected Files		
1017		// Bulk Action Toggle Function
1018		$('a[id^="ssfa-bulk-action-toggle-"]').on('click', function(ev)
1019		{
1020			ev.preventDefault();
1021			$id = this.id;
1022			$uid = $id.replace('ssfa-bulk-action-toggle-', '');
1023			$enabled = $(this).data('enabled');
1024			$disabled = $(this).data('disabled');
1025			$actionarea = $('div#ssfa-bulk-action-select-area-'+$uid);
1026			$actionselect = $('select#ssfa-bulk-action-select-'+$uid);
1027			$checkall = $('input#ssfa-bulk-action-select-all-'+$uid);
1028			$selectalltext = $checkall.data('selectall');
1029			$selectall = $('label#ssfa-bulkaction-select-all-'+$uid+' span');
1030			if($(this).text() == $disabled)
1031			{
1032				$(this).text($enabled);
1033				$actionarea.fadeIn(250);	
1034			}
1035			else if($(this).text() == $enabled)
1036			{ 
1037				$(this).text($disabled);
1038				$actionarea.fadeOut(250);	
1039				$checkall.attr('checked', false).trigger('change');
1040				$selectall.text($selectalltext);
1041				$actionselect.find('option:first').attr('selected','selected').trigger('chozed:updated').trigger('change');
1042			}
1043		}); // End Bulk Action Toggle Function
1044		// Bulk Action Select All Function
1045		$('input[id^="ssfa-bulk-action-select-all-"]').on('change', function()
1046		{
1047			$id = this.id;
1048			$uid = $id.replace('ssfa-bulk-action-select-all-', '');
1049			$selectalltext = $(this).data('selectall');
1050			$clearalltext = $(this).data('clearall');
1051			$selectall = $('label#ssfa-bulkaction-select-all-'+$uid+' span');
1052			if(this.checked)
1053			{
1054				$selectall.text($clearalltext);
1055				$('table.mngr-table tr[id^=ssfa-file-'+$uid+']:visible').addClass('ssfa-selected');
1056				$('table.mngr-table tr[id^=ssfa-file-'+$uid+'].fileaway-dynamic').removeClass('ssfa-selected');
1057			}
1058			else
1059			{
1060				$selectall.text($selectalltext);
1061				$('table.mngr-table tr[id^=ssfa-file-'+$uid+']').removeClass('ssfa-selected');							
1062			}
1063		}); // End Bulk Action Select All Function
1064		// Bulk Action Select Function
1065		$('select[id^="ssfa-bulk-action-select-"]').on('change', function()
1066		{
1067			$id = this.id;
1068			$uid = $id.replace('ssfa-bulk-action-select-', '');
1069			$actionselected = this.value;
1070			$pathcontainer = $('div#ssfa-path-container-'+$uid);
1071			if($actionselected == '' || $actionselected == 'delete' || $actionselected == 'download') $pathcontainer.fadeOut(250);
1072			else $pathcontainer.fadeIn(250);
1073		}); // End Bulk Action Select Function
1074		// Bulk Action Path Generator Function
1075		$('select[id^="ssfa-directories-select-"]').on('change', function()
1076		{
1077			$id = this.id;
1078			$uid = $id.replace('ssfa-directories-select-', '');
1079			$loading = $('img#ssfa-path-ajax-loading-'+$uid);
1080			if($(this).val() !== '')
1081			{
1082				$basename = $('table#ssfa-table-'+$uid).data('basename');
1083				$start = $('table#ssfa-table-'+$uid).data('start');		
1084				$send = bulkactionpath(this.value, $basename, $start, $loading, $uid);
1085			}
1086		});				
1087		$('body').on('click', 'a[id^=ssfa-action-pathpart-]', function(ev)
1088		{
1089			ev.preventDefault();
1090			$id = $(this).parents('div').eq(0).attr('id');
1091			$uid = $id.replace('ssfa-action-path-', '');
1092			$pathparts = $(this).attr('data-target');
1093			$basename = $('table#ssfa-table-'+$uid).data('basename');
1094			$start = $('table#ssfa-table-'+$uid).data('start');		
1095			$loading = $('img#ssfa-path-ajax-loading-'+$uid);
1096			$send = bulkactionpath($pathparts, $basename, $start, $loading, $uid);	
1097		});
1098		function bulkactionpath($pathparts, $basename, $start, $loading, $uid)
1099		{
1100			var manager_nonce = $('table[data-uid="'+$uid+'"]').data('mn');
1101			var loc_nonce = $('input#location_nonce_'+$uid).val();					
1102			$loading.show();
1103			$.post
1104			(
1105				fileaway_mgmt.ajaxurl,
1106				{
1107					action : 'fileaway-manager',
1108					act : 'actionpath',
1109					uploadaction : 'false',
1110					pathparts : $pathparts,
1111					basename : $basename,
1112					start : $start,
1113					nonce : fileaway_mgmt.nonce,
1114					manager_nonce : manager_nonce,
1115					loc_nonce : loc_nonce,
1116				},
1117				function(response)
1118				{
1119					if(response.status == 'success')
1120					{
1121						$container = $('div#ssfa-path-container-'+$uid);
1122						$actionpath = $('input#ssfa-actionpath-'+$uid);
1123						$putpath = $('div#ssfa-action-path-'+$uid);
1124						$dropdown = $('select#ssfa-directories-select-'+$uid);
1125						$dropdown.empty().append(response.ops).trigger('chozed:updated');
1126						$actionpath.val(response.pathparts);
1127						$putpath.html(response.crumbs).append($loading);
1128						$loading.hide();
1129					}
1130					else if(response.status == 'error')
1131					{
1132						filertify.set({labels:{ok : fileaway_mgmt.ok_label }}); 
1133						filertify.alert(response.message); 
1134					}
1135				}
1136			);
1137		} // End Bulk Action Path Generator Function
1138		// Bulk Action Engage Function
1139		$('span[id^="ssfa-bulk-action-engage-"]').on('click', function()
1140		{
1141			$id = this.id;
1142			$uid = $id.replace('ssfa-bulk-action-engage-', '');
1143			$loading = $('img#ssfa-engage-ajax-loading-'+$uid);
1144			var bulkdownload_nonce = $('table#ssfa-table-'+$uid).data('bd');
1145			var manager_nonce = $('table#ssfa-table-'+$uid).data('mn');
1146			var loc_nonce = $('input#location_nonce_'+$uid).val();					
1147			var stats = $('table#ssfa-table-'+$uid).data('stats') ? 'true' : 'false';
1148			var selectedAction = $('select#ssfa-bulk-action-select-'+$uid).val();
1149			var selectedPath = String($('input#ssfa-actionpath-'+$uid).val());
1150			var dir = String($('table#ssfa-table-'+$uid).data('dir'));
1151			var selectedRows = {};
1152			var selectedFilesFrom = {};
1153			var selectedFilesTo = {};
1154			var selectedExts = {};
1155			var selectedCount = 0;
1156			var messages = '';
1157			var metadata = $('table#ssfa-table-'+$uid).data('metadata');
1158			var jackoff = selectedAction == 'delete' || selectedAction == 'download' ? false : fileasec(selectedPath, $uid);
1159			$('table#ssfa-table-'+$uid+'.mngr-table tr.ssfa-selected').each(function(index)
1160			{
1161				var sfx = this.id;
1162				var filepath = String($("td#filename-"+sfx).data("path"));
1163				var oldname = String($("td#filename-"+sfx).data("name"));
1164				var	ext = String($("td#filetype-"+sfx).data("ext"));
1165				selectedRows[index] = sfx;
1166				selectedFilesFrom[index] = dir+'/'+oldname+'.'+ext;
1167				selectedFilesTo[index] = selectedPath+'/'+oldname+'.'+ext;
1168				selectedExts[index] = ext;
1169				selectedCount++;
1170			});
1171			if(selectedAction == '') messages += fileaway_mgmt.no_action+'<br>';
1172			if(selectedCount == 0) messages += fileaway_mgmt.no_files_selected+'<br>';
1173			if((selectedAction == 'move' || selectedAction == 'copy') && selectedPath == '') messages += fileaway_mgmt.no_destination+'<br>';
1174			if(messages !== '')
1175			{ 
1176				filertify.set({labels:{ok : fileaway_mgmt.ok_label }}); 
1177				filertify.alert(messages); 
1178			} 
1179			else 
1180			{
1181				if(jackoff)
1182				{	
1183					filertify.set({labels:{ok : fileaway_mgmt.ok_label }});
1184					filertify.alert(fileaway_mgmt.tamper1);
1185				} 
1186				else 
1187				{			
1188					// Bulk Action Download Function
1189					if(selectedAction == 'download')
1190					{
1191						$loading.show();
1192						$.post
1193						(
1194							fileaway_mgmt.ajaxurl,
1195							{
1196								action : 'fileaway-manager',
1197								act : 'bulkdownload',
1198								files : selectedFilesFrom,
1199								exts : selectedExts,
1200								stats : stats,
1201								nonce : fileaway_mgmt.nonce,
1202								bulkdownload_nonce : bulkdownload_nonce,
1203								loc_nonce : loc_nonce,			
1204							},
1205							function(response)
1206							{
1207								$loading.hide();								
1208								if(response.status == 'error')
1209								{ 
1210									filertify.set({labels:{ok : fileaway_mgmt.ok_label }});
1211									filertify.alert(response.message);
1212								}
1213								else
1214								{
1215									$('<iframe src="'+response.url+'" id="fa-bulkdownload" style="visibility:hidden;" name="fa-bulkdownload">').appendTo('body');	
1216								}
1217							}
1218						);
1219					} // End Bulk Action Download Function
1220					// Bulk Action Copy Function
1221					else if(selectedAction == 'copy')
1222					{
1223						$loading.show();
1224						$.post
1225						(
1226							fileaway_mgmt.ajaxurl,
1227							{
1228								action : 'fileaway-manager',
1229								act : 'bulkcopy',
1230								metadata : metadata,
1231								from : selectedFilesFrom,
1232								to : selectedFilesTo,
1233								exts : selectedExts,
1234								destination : selectedPath,
1235								nonce : fileaway_mgmt.nonce,
1236								manager_nonce : manager_nonce,
1237								loc_nonce : loc_nonce,					
1238							},
1239							function(response)
1240							{
1241								$loading.hide();								
1242								filertify.set({labels:{ok : fileaway_mgmt.ok_label }});
1243								filertify.alert(response.message);
1244							}
1245						);
1246					} // End Bulk Action Copy Function
1247					// Bulk Action Move Function
1248					else if(selectedAction == 'move')
1249					{
1250						$loading.show();
1251						$.post
1252						(
1253							fileaway_mgmt.ajaxurl,
1254							{
1255								action : 'fileaway-manager',
1256								act : 'bulkmove',
1257								metadata : metadata,
1258								from : selectedFilesFrom,
1259								to : selectedFilesTo,
1260								exts : selectedExts,
1261								destination : selectedPath,
1262								nonce : fileaway_mgmt.nonce,
1263								manager_nonce : manager_nonce,
1264								loc_nonce : loc_nonce,						
1265							},
1266							function(response)
1267							{
1268								$loading.hide();								
1269								filertify.set({labels:{ok : fileaway_mgmt.ok_label }});
1270								filertify.alert(response.message);
1271								if(response.status == 'success')
1272								{
1273									$.each(selectedRows, function(i, val)
1274									{
1275										$('tr#'+val).fadeOut(250,function(){$(this).remove();});
1276									});
1277								}
1278							}
1279						);
1280					} // End Bulk Action Move Function
1281					// Bulk Action Delete Function
1282					else if(selectedAction == 'delete')
1283					{
1284						var numfiles = selectedCount > 1 ? fileaway_mgmt.file_plural : fileaway_mgmt.file_singular; 
1285						var confirmmessage = fileaway_mgmt.delete_confirm.replace('numfiles', +selectedCount+" "+numfiles);
1286						filertify.set({labels:{ok : fileaway_mgmt.confirm_label, cancel : fileaway_mgmt.cancel_label }});
1287						filertify.confirm(confirmmessage, function(e)
1288						{
1289							if(e)
1290							{
1291								$loading.show();
1292								$.post
1293								(
1294									fileaway_mgmt.ajaxurl,
1295									{
1296										action : 'fileaway-manager',
1297										act : 'bulkdelete',
1298										files : selectedFilesFrom,
1299										nonce : fileaway_mgmt.nonce,
1300										manager_nonce : manager_nonce,
1301										loc_nonce : loc_nonce,						
1302									},
1303									function(response)
1304									{
1305										$loading.hide();								
1306										filertify.set({labels:{ok : fileaway_mgmt.ok_label }});
1307										filertify.alert(response.message);
1308										if(response.status == 'success')
1309										{
1310											$.each(selectedRows, function(i, val)
1311											{
1312												$('tr#'+val).fadeOut(250,function(){$(this).remove();});
1313											});
1314										}
1315									}
1316								);
1317							}
1318						});
1319					} // End Bulk Action Delete Function
1320				}
1321			}
1322		}); // End Bulk Action Engage Function
1323		function fileasec($path, $uid)
1324		{
1325			var jackoff = 0;
1326			$fafl = String($('table#ssfa-table-'+$uid).data('fafl'));
1327			$faui = String($('table#ssfa-table-'+$uid).data('faui'));
1328			$faun = String($('table#ssfa-table-'+$uid).data('faun'));
1329			$faur = String($('table#ssfa-table-'+$uid).data('faur'));
1330			$faum = String($('table#ssfa-table-'+$uid).data('faum'));
1331			$fafl = $fafl == '0' ? false : $fafl;
1332			$faui = $faui == '0' ? false : $faui;
1333			$faun = $faun == '0' ? false : $faun;
1334			$faur = $faur == '0' ? false : $faur;
1335			$faum = $faum == '0' ? false : $faum;
1336			var faflcheck = false;
1337			var fauicheck = false;
1338			var fauncheck = false;
1339			var faurcheck = false;
1340			var faumcheck = false;
1341			if($fafl) faflcheck = $path.indexOf($fafl) >= 0 ? false : true;
1342			if($faui) fauicheck = $path.indexOf($faui) >= 0 ? false : true;
1343			if($faun) fauncheck = $path.indexOf($faun) >= 0 ? false : true;
1344			if($faur) faurcheck = $path.indexOf($faur) >= 0 ? false : true;
1345			if($faum)
1346			{
1347				faurcheck = false;
1348				$faum_arr = $faum.split(',');
1349				for(var i = 0; i < $faum_arr.length; i++)
1350				{
1351					if($path.indexOf($faum_arr[i]) < 0) $faumcheck = true;
1352				}
1353			}
1354			if($path.indexOf('..') >= 0 || $path === '/' || faflcheck || fauicheck || fauncheck || faurcheck || faumcheck) jackoff = 1;
1355			return jackoff ? true : false;
1356		}
1357	} // End Manager Check
1358}); 
1359FileUpConfig = [];
1360// File Up
1361jQuery(document).ready(function($)
1362{
1363	if($('div.ssfa_fileup_container').length)
1364	{
1365		if(window.File && window.FileReader && window.FileList && window.Blob) 
1366		{ 
1367			/* Safari for Windows Does Not Support FileReader API and cannot read file sizes */ 
1368		} 
1369		else 
1370		{ 
1371			filertify.set({labels:{ok : fileaway_mgmt.ok_label }}); 
1372			filertify.alert(fileaway_mgmt.no_upload_support); 
1373			$('div[class^="ssfa_fileup_container"]').remove(); 
1374		}
1375		var TheFiles = [];
1376		var aFile = [];
1377		$('input[id^="ssfa_fileup_files_"]').on('change', function(){
1378			var uid = $(this).data('uid');
1379			var files = document.getElementById(this.id).files;
1380			if(files) 
1381			{
1382				TheFiles[uid] = files;
1383				fileupDisplay(files, uid);
1384			} 
1385			else 
1386			{
1387				TheFiles[uid] = [];
1388				aFile[uid] = [];
1389				filertify.set({labels:{ok : fileaway_mgmt.ok_label }});
1390				filertify.alert(fileaway_mgmt.unreadable_file);
1391			}
1392		});
1393		fileid = function(name, uid)
1394		{
1395			return uid+'_'+name.replace(/[^a-z0-9\s]/gi, '_').replace(/[_\s]/g, '_').replace("'", '');
1396		}	
1397		ext = function(file, lowercase)
1398		{
1399			return (/[.]/.exec(file)) ? (lowercase ? /[^.]+$/.exec(file.toLowerCase()) : /[^.]+$/.exec(file)) : '';
1400		}
1401		randcolor = function()
1402		{
1403			array = ["red","green","blue","brown","black","orange","silver","purple","pink"];
1404			return array[Math.floor(Math.random() * array.length)];
1405		}
1406		nicesize = function(fileSize)
1407		{
1408			if(fileSize / 1024 > 1)
1409			{
1410				if(((fileSize / 1024) / 1024) > 1)
1411				{
1412					fileSize = (Math.round(((fileSize / 1024) / 1024) * 100) / 100);
1413					var niceSize = fileSize + " GB";
1414				}
1415				else
1416				{
1417					fileSize = (Math.round((fileSize / 1024) * 100) / 100)
1418					var niceSize = fileSize + " MB";
1419				}
1420			 }
1421			 else
1422			 {
1423				fileSize = (Math.round(fileSize * 100) / 100)
1424				var niceSize = fileSize  + " KB";
1425			}
1426			return niceSize;
1427		}
1428		icon = function(icon_ext, color)
1429		{
1430			if($.inArray(icon_ext, fileaway_filetype_groups.image) != -1) file_icon = ssfa_filetype_icons.image; 
1431			else if($.inArray(icon_ext, fileaway_filetype_groups.adobe) != -1) file_icon = ssfa_filetype_icons.adobe; 
1432			else if($.inArray(icon_ext, fileaway_filetype_groups.audio) != -1) file_icon = ssfa_filetype_icons.audio;
1433			else if($.inArray(icon_ext, fileaway_filetype_groups.video) != -1) file_icon = ssfa_filetype_icons.video;
1434			else if($.inArray(icon_ext, fileaway_filetype_groups.msdoc) != -1) file_icon = ssfa_filetype_icons.msdoc;
1435			else if($.inArray(icon_ext, fileaway_filetype_groups.msexcel) != -1) file_icon = ssfa_filetype_icons.msexcel;
1436			else if($.inArray(icon_ext, fileaway_filetype_groups.powerpoint) != -1) file_icon = ssfa_filetype_icons.powerpoint;
1437			else if($.inArray(icon_ext, fileaway_filetype_groups.openoffice) != -1) file_icon = ssfa_filetype_icons.openoffice;
1438			else if($.inArray(icon_ext, fileaway_filetype_groups.text) != -1) file_icon = ssfa_filetype_icons.text;
1439			else if($.inArray(icon_ext, fileaway_filetype_groups.compression) != -1) file_icon = ssfa_filetype_icons.compression;
1440			else if($.inArray(icon_ext, fileaway_filetype_groups.application) != -1) file_icon = ssfa_filetype_icons.application;
1441			else if($.inArray(icon_ext, fileaway_filetype_groups.script) != -1) file_icon = ssfa_filetype_icons.script;
1442			else if($.inArray(icon_ext, fileaway_filetype_groups.css) != -1) file_icon = ssfa_filetype_icons.css;
1443			else if(icon_ext === 'denied') file_icon = '<span class="ssfa-faminicon ssfa-red ssfa-icon-denied"></span>';
1444			else file_icon = ssfa_filetype_icons.unknown; 
1445			file_icon = icon_ext === 'denied' 
1446				? file_icon 
1447				: '<span data-ssfa-icon="'+file_icon+'" class="ssfa-faminicon ssfa-'+color+'" aria-hidden="true"></span>';
1448			return file_icon;
1449		}		
1450		fileupDisplay = function(files, uid)
1451		{
1452			var settings = FileUpConfig[uid];
1453			aFile[uid] = files;
1454			if(aFile[uid].length > 0)
1455			{
1456				$("div#ssfa_fileup_files_container_"+uid).html(''); 
1457				$("span#ssfa_rf_"+uid).html(''); 
1458				FileUpConfig[uid].removed = [];
1459				var selectedDisplayed = file_id = '<div id="'+settings.container+'" class="ssfa-meta-container">'+
1460					'<div id="ssfa-table-wrap-'+uid+'" style="margin: 10px 0 0;">'
1461						+'<table id="ssfa-table-'+uid+'" class="footable ssfa-sortable ssfa-'+settings.table+' ssfa-center"><tbody>';
1462 				var path = settings.fixed ? settings.fixed : String($('input#ssfa-upload-actionpath-'+uid+'').val());
1463				var jackoff = path.indexOf('..') >= 0 || path === '/' ? true : false;
1464				var allowedchars = settings.fixed ? "~!@#$%^&()_+`-={}[]'," : "~!@#$%^&()_+`-={}[]',/";
1465				for(var i = 0; i<aFile[uid].length; i++)
1466				{
1467					var thefilename = aFile[uid][i].name.replace("'", "’");
1468					file_id = fileid(aFile[uid][i].name, uid);
1469					var rawname = aFile[uid][i].name.substr(0, aFile[uid][i].name.lastIndexOf('.')) || aFile[uid][i].name,
1470						icon_ext = ext(aFile[uid][i].name, true),
1471						extension = ext(aFile[uid][i].name, false),
1472						color = settings.iconcolor === 'random' ? self.randcolor() : settings.iconcolor,
1473						permitted = settings.permitted ? ($.inArray(icon_ext.toString(), settings.permitted) != -1 ? false : true) : false,
1474						prohibited = settings.prohibited ? ($.inArray(icon_ext.toString(), settings.prohibited) != -1 ? true : false) : false,
1475						fileSize = (aFile[uid][i].size / 1024),
1476						tooBig = aFile[uid][i].size > settings.maxsize ? true : false,
1477						warningclass = tooBig || permitted || prohibited ? ' ssfa-fileup-warning' : '',
1478						pretty_max = nicesize(settings.maxsize  / 1024),
1479						sizemsg = fileaway_mgmt.exceeds_size.replace('prettymax', pretty_max);
1480						sizenotice = tooBig ? '<br><span class="'+warningclass+'">'+sizemsg+'</span>' : '',
1481						pernotice = permitted ? '<br><span class="'+warningclass+'">'+fileaway_mgmt.type_not_permitted+' '+
1482							'<a href="javascript:" onclick="filertify.alert(\''+settings.permitted.join(', ')+'\');">'+fileaway_mgmt.view_all_permitted+'</a></span>' : '',
1483						pronotice = prohibited ? '<br><span class="'+warningclass+'">'+fileaway_mgmt.type_not_permitted+' '+
1484							'<a href="javascript:" onclick="filertify.alert(\''+settings.prohibited.join(', ')+'\');">'+fileaway_mgmt.view_all_prohibited+'</a></span>' : '',
1485						readonly = tooBig || permitted || prohibited || jackoff ? ' readonly=readonly' : '',
1486						file_icon = tooBig || permitted || prohibited || jackoff ? icon('denied') : icon(icon_ext.toString(), color),
1487						cancel_color = tooBig || permitted || prohibited ? 'red' : 'silver',
1488						not_defined = false;
1489					if(tooBig || permitted || prohibited || not_defined || jackoff)
1490					{
1491						$("span#ssfa_rf_"+uid).append("<input type=\"hidden\" id=\""+file_id+"\" value=\""+file_id+"\">");
1492						FileUpConfig[uid].removed[i] = file_id;
1493					}
1494					if(typeof aFile[uid][i] !== undefined && aFile[uid][i].name !== '')
1495					{
1496						selectedDisplayed += 
1497							'<tr id="ssfa_upfile_id_'+file_id+'" style="display: table-row;">'+
1498								'<td id="ssfa-upfile_type" class="ssfa-sorttype ssfa-'+settings.table+'-first-column">'+
1499									file_icon+'<br>'+extension+
1500								'</td>'+
1501								'<td id="ssfa-upfile_name" class="ssfa-sortname">'+
1502									'<div class="ssfa-upload-input-container">'+
1503										'<div class="ssfa-upload-progress ssfa-up-progress-'+color+'" id="ssfa_upload_progress_id_'+file_id+'"></div>'+	
1504										"<input type=\"text\" class=\"rename_ssfa_upfile\" id=\"rename_ssfa_upfile_id_"+file_id+"\" value=\""+rawname+"\""+readonly+">"+
1505									'</div>'+
1506									sizenotice+pernotice+pronotice+
1507								'</td>'+
1508								'<td id="ssfa-upfile_size" class="ssfa-sortsize">'+
1509									'<span class="ssfa-filesize'+warningclass+'">'+nicesize(fileSize)+'</span>'+
1510								'</td>'+
1511								'<td id="ssfa_upfile_status_'+file_id+'" class="ssfa-sortstatus">'+
1512									'<a id="ssfa_remove_id_'+file_id+'" href="javascript:" '+
1513										'onclick="fileupRemove(\''+file_id+'\',\''+thefilename+'\',\''+uid+'\',\''+i+'\');">
1513'+
1514										'<span class="ssfa-faminicon ssfa-'+cancel_color+' ssfa-icon-console-2"></span>'+
1515									'</a>'+
1516								'</td>'+
1517							'</tr>';							
1518					}
1519					else not_defined = true; 
1520				}
1521				selectedDisplayed += "</tbody></table></div></div>";
1522				$("div#ssfa_fileup_files_container_"+uid).append(selectedDisplayed);
1523				$('input[id^="rename_ssfa_upfile_id_"]').alphanum({allow : allowedchars});
1524				if(jackoff)
1525				{ 
1526					filertify.set({labels:{ok : fileaway_mgmt.ok_label}}); 
1527					filertify.alert(fileaway_mgmt.tamper4); 
1528					$("div#ssfa_fileup_files_container_"+uid).html(''); 
1529				}
1530			}
1531		}
1532		fileupRemove = function(id, filename, uid, i)
1533		{
1534			if($("span#ssfa_rf_"+uid+" input#"+id).length){}
1535			else $("span#ssfa_rf_"+uid).append("<input type=\"hidden\" id=\""+id+"\" value=\""+id+"\">");
1536			FileUpConfig[uid].removed[i] = id;
1537			$("tr#ssfa_upfile_id_"+id).fadeOut(250,function()
1538			{
1539				$(this).remove();
1540				$("div#ssfa_fileup_files_container_"+uid+" table#ssfa-table-"+uid+" tbody").change();
1541				if($("div#ssfa_fileup_files_container_"+uid+" table#ssfa-table-"+uid+" tbody").children('tr').length){} 
1542				else $("div#ssfa_fileup_files_container_"+uid+" table#ssfa-table-"+uid+"").remove();
1543			});
1544		}		
1545		// Upload Files
1546		$('span[id^="ssfa_submit_upload_"]').on('click', function(){
1547			var uid = $(this).data('uid');
1548			var settings = FileUpConfig[uid];
1549			if(!settings.fixed && $('input#ssfa-upload-actionpath-'+uid).val() === '')
1550			{
1551				filertify.set({labels:{ok : fileaway_mgmt.ok_label }});
1552				filertify.alert(fileaway_mgmt.build_path);	
1553			}
1554			else
1555			{
1556				fileupSubmit(uid, 0);
1557				if(TheFiles[uid] !== undefined && TheFiles[uid].length > 0)
1558				{
1559					$(this).parents('span.ssfa_fileup_wrapper').eq(0).fadeTo(250, 0,function(){$(this).css({'visibility':'hidden'});});
1560				}
1561			}
1562		});
1563		// Initialize Uploads
1564		fileupSubmit = function(uid, k)
1565		{
1566			if(TheFiles[uid] !== undefined && TheFiles[uid].length > 0)
1567			{
1568				if(k < TheFiles[uid].length)
1569				{ 
1570					fileupAjax(TheFiles[uid][k], k, uid);
1571				}
1572				else 
1573				{
1574					$('span#ssfa_submit_upload_'+uid).parents('span.ssfa_fileup_wrapper').eq(0)
1575						.css({'visibility':'visible','opacity':'1'});
1576					TheFiles[uid] = [];
1577				}
1578			}
1579			else
1580			{
1581				filertify.set({labels:{ok : fileaway_mgmt.ok_label }});
1582				filertify.alert(fileaway_mgmt.no_files_chosen);
1583			}
1584		}
1585		// Ajax Upload
1586		fileupAjax = function(file, i, uid)
1587		{
1588			var initSettings = FileUpConfig[uid];
1589			if(file !== undefined && file !== '' && file !== "undefined")
1590			{
1591				var id = file_id = fileid(file.name, uid),
1592					rawname = file.name.substr(0, file.name.lastIndexOf('.')) || file.name,
1593					extension = ext(file.name, false),
1594					path = initSettings.fixed ? initSettings.fixed : String($('input#ssfa-upload-actionpath-'+uid).val()),
1595					loc_nonce = $('input#location_nonce_'+uid).val(),
1596					pathcheck = String(initSettings.pathcheck),
1597					removed_file = $("#"+id).val(),
1598					newname = String($("input#rename_ssfa_upfile_id_"+id).val()),
1599					new_name = newname === '' || newname === 'undefined' || newname === undefined ? file.name : newname+'.'+extension,
1600					removed = initSettings.removed,
1601					loading = initSettings.loading,
1602					fixedchars = initSettings.fixed;
1603				if(newname === '' || newname === 'undefined' || newname === undefined) $("input#rename_ssfa_upfile_id_"+id).val(rawname)
1604				if(removed_file !== '' && removed_file !== undefined && removed_file == id) fileupSubmit(uid, i+1); 
1605				else
1606				{
1607					var fileupData = new FormData();
1608					fileupData.append('upload_nonce',initSettings.nonce);
1609					fileupData.append('loc_nonce',loc_nonce);
1610					fileupData.append('upload_file',file);
1611					fileupData.append('upload_file_id',id);
1612					fileupData.append('max_file_size',initSettings.maxsize);
1613					fileupData.append('upload_path',path);	
1614					fileupData.append('new_name',new_name);
1615					fileupData.append('extension',extension);
1616					fileupData.append('uploader',initSettings.uploader);
1617					fileupData.append('identby',initSettings.identby);
1618					fileupData.append('overwrite',initSettings.overwrite);
1619					fileupData.append('act','upload');
1620					fileupData.append('nonce',fileaway_mgmt.nonce);				
1621					$.ajax(
1622					{
1623						type		: 'POST',
1624						url			: fileaway_mgmt.ajaxurl+'?action=fileaway-manager',
1625						data		: fileupData,
1626						id			: id,
1627						uid			: uid,
1628						new_name	: new_name,
1629						rawname		: rawname,
1630						extension	: extension,
1631						path		: path,
1632						pathcheck	: pathcheck,
1633						removed		: removed,
1634						loading		: loading,
1635						fixedchars	: fixedchars,
1636						cache		: false,
1637						contentType	: false,
1638						processData	: false,
1639						beforeSend	: function(xhr, settings)
1640						{
1641							$("#ssfa_upfile_status_"+settings.id)
1642								.html('<span class="ssfa-faminicon ssfa-silver ssfa-icon-denied"></span>');
1643							var newpath = settings.new_name.substring(0, settings.new_name.lastIndexOf("/") + 1),
1644								jackoff = false,
1645								message = '';
1646							if(''+newpath.indexOf('..') >= 0 || settings.path.indexOf('..') >= 0 || settings.path === '/')
1647							{ 
1648								jackoff = true; 
1649								message = '<br>'+fileaway_mgmt.double_dots_override;
1650							}
1651							if(!jackoff && $.inArray(settings.id, settings.removed) != -1) jackoff = true; 
1652							if(!jackoff && settings.fixedchars && settings.new_name.indexOf('/') >= 0)
1653							{ 
1654								jackoff = true; 
1655								message = '<br>'+fileaway_mgmt.creation_disabled;
1656							}
1657							if(!jackoff && settings.path.indexOf(settings.pathcheck) < 0)
1658							{
1659								jackoff = true; 
1660								message = '<br>'+fileaway_mgmt.no_override;
1661							}
1662							if(!jackoff && settings.new_name.indexOf('..') >= 0)
1663							{ 
1664								jackoff = true;
1665								message = '<br>'+fileaway_mgmt.double_dots;
1666							}
1667							if(!jackoff)
1668							{
1669								var pop = settings.rawname.substring(settings.rawname.lastIndexOf(".") + 1, settings.rawname.length);	
1670								if($.inArray(pop, fileaway_filetype_groups.script) != -1)
1671								{ 
1672									if($.inArray(settings.extension.toString(), fileaway_filetype_groups.script) == -1 
1673									&& $.inArray(settings.extension.toString(), fileaway_filetype_groups.css) == -1) 
1674									{
1675										jackoff = true; 
1676										message = '<br>'+fileaway_mgmt.multi_type;
1677									}
1678								}
1679							}
1680							if(jackoff)
1681							{
1682								var upload_failure = fileaway_mgmt.upload_failure.replace('filename', settings.rawname+'.'+settings.extension);
1683								$('tr#ssfa_upfile_id_'+settings.id+' td#ssfa-upfile_type')
1684									.html('<span class="ssfa-faminicon ssfa-red ssfa-icon-denied"></span><br>'+settings.extension);
1685								$('td#ssfa_upfile_status_'+settings.id)
1686									.html('<a id="ssfa_remove_id_'+settings.id+'" href="javascript:" onclick="fileupRemove(\''
1687									+settings.id+'\',\''+settings.rawname+'.'+settings.extension
1688									+'\',\''+settings.uid+'\');"><span class="ssfa-faminicon ssfa-red ssfa-icon-console-2"></span></a>');
1689								$('tr#ssfa_upfile_id_'+settings.id+' td#ssfa-upfile_name')
1690									.append('<br><span class="ssfa-fileup-warning">'+upload_failure+message+'</span>');
1691								fileupSubmit(settings.uid, i+1); 
1692								xhr.abort();
1693							}
1694						},
1695						xhr: function()
1696						{
1697							var xhr = new window.XMLHttpRequest();
1698							xhr.upload.addEventListener("progress", function(evt)
1699							{
1700								if(evt.lengthComputable)
1701								{
1702									var percentComplete = evt.loaded / evt.total;
1703									$('div#ssfa_upload_progress_id_'+id).width((percentComplete * 100) + '%');
1704								}
1705							}, false);
1706							return xhr;
1707						},
1708						success:function(response)
1709						{
1710							setTimeout(function()
1711							{
1712								if(response.status == 'success' && response.file_id == id)
1713								{
1714									$("#ssfa_upfile_status_"+id).html('<span class="ssfa-faminicon ssfa-green ssfa-icon-inbox"></span>');
1715									setTimeout(function()
1716									{
1717										$("#ssfa_upfile_id_"+id).fadeOut(250,function()
1718										{
1719											$(this).remove(); 
1720											$("div#ssfa_fileup_files_container_"+uid+" table#ssfa-table-"+uid+" tbody").change();
1721											if($("div#ssfa_fileup_files_container_"+uid+" table#ssfa-table-"+uid+" tbody").children('tr').length){} 
1722											else $("div#ssfa_fileup_files_container_"+uid+" table#ssfa-table-"+uid).remove();
1723										});
1724									},750);
1725								}
1726								else
1727								{
1728									var upload_failure = fileaway_mgmt.upload_failure.replace('filename', rawname+'.'+extension);
1729									if(response.status == 'error') upload_failure += '<br>'+response.message;
1730									$('tr#ssfa_upfile_id_'+id+' td#ssfa-upfile_type').html('<span class="ssfa-faminicon ssfa-red ssfa-icon-denied"></span><br>'+extension);
1731									$('td#ssfa_upfile_status_'+id).html('<a id="ssfa_remove_id_'+file_id+'" href="javascript:" onclick="fileupRemove(\''+id+'\',\''+rawname+'.'+extension+'\',\''+uid+'\');"><span class="ssfa-faminicon ssfa-red ssfa-icon-console-2"></span></a>');
1732									$('tr#ssfa_upfile_id_'+id+' td#ssfa-upfile_name').append('<br><span class="ssfa-fileup-warning">'+upload_failure+'</span>');
1733								}
1734								fileupSubmit(uid, i+1); 
1735							},500);
1736						}
1737					});
1738				 }				 
1739			}
1740		}	
1741		// Upload Path Generator Function
1742		$('select[id^="ssfa-fileup-directories-select-"]').chozed({
1743			allow_single_deselect:false, 
1744			width: '200px', 
1745			inherit_select_classes:true,
1746			no_results_text: fileaway_mgmt.no_results,
1747			search_contains: true 
1748		});
1749		$('select[id^="ssfa-fileup-directories-select-"]').on('change', function()
1750		{
1751			$uid = this.id.replace('ssfa-fileup-directories-select-', '');
1752			$loading = $('img#ssfa-fileup-action-ajax-loading-'+$uid);
1753			if($(this).val() !== '')
1754			{
1755				$basename = $('input#ssfa-upload-actionpath-'+$uid).data('basename');
1756				$start = $('input#ssfa-upload-actionpath-'+$uid).data('start');		
1757				$send = upactionpath(this.value, $basename, $start, $loading, $uid);
1758			}
1759		});				
1760		$('body').on('click', 'a[id^=ssfa-fileup-action-pathpart-]', function(ev)
1761		{
1762			ev.preventDefault();
1763			$parent = $(this).parents('div').eq(0).attr('id');
1764			$uid = $parent.replace('ssfa-fileup-action-path-', '');
1765			$basename = $('input#ssfa-upload-actionpath-'+$uid).data('basename');
1766			$start = $('input#ssfa-upload-actionpath-'+$uid).data('start');		
1767			$loading = $('img#ssfa-fileup-action-ajax-loading-'+$uid);
1768			$pathparts = $(this).attr('data-target');
1769			$send = upactionpath($pathparts, $basename, $start, $loading, $uid);	
1770		});
1771		function upactionpath($pathparts, $basename, $start, $loading, $uid)
1772		{
1773			var manager_nonce = $('div.ssfa_fileup_container[data-uid="'+$uid+'"]').data('mn');
1774			var loc_nonce = $('input#location_nonce_'+$uid).val();					
1775			$loading.show();
1776			$.post(
1777				fileaway_mgmt.ajaxurl,
1778				{
1779					action : 'fileaway-manager',
1780					act : 'actionpath',
1781					uploadaction : 'true', 
1782					pathparts : $pathparts,
1783					basename : $basename,					
1784					start : $start,							
1785					nonce : fileaway_mgmt.nonce,
1786					manager_nonce : manager_nonce,
1787					loc_nonce : loc_nonce,					
1788				},
1789				function(response)
1790				{
1791					$loading.hide();
1792					if(response.status == 'error')
1793					{
1794						filertify.set({labels:{ok : fileaway_mgmt.ok_label }}); 
1795						filertify.alert(response.message); 						
1796					}
1797					else if(response.status != 'success')
1798					{
1799						filertify.set({labels:{ok : fileaway_mgmt.ok_label }}); 
1800						filertify.alert('An unknown error occurred'); 
1801					}
1802					else
1803					{
1804						$container = $('div#ssfa-fileup-path-container-'+$uid);
1805						$actionpath = $('input#ssfa-upload-actionpath-'+$uid);
1806						$putpath = $('div#ssfa-fileup-action-path-'+$uid);
1807						$dropdown = $('select#ssfa-fileup-directories-select-'+$uid);
1808						$dropdown.empty().append(response.ops).trigger('chozed:updated').trigger('liszt:updated');
1809						$actionpath.val(response.pathparts);
1810						$putpath.html(response.crumbs).append($loading);
1811					}
1812				}
1813			);
1814			return false;  
1815		} // End Upload Path Generator Function			
1816	}
1817});
1818jQuery(document).ready(function($)
1819{
1820	// CSV EDITOR FUNCTIONS
1821	if($('div.ssfa-fileaway-values[data-editor="true"]').length)
1822	{
1823		$('table.ssfa-values-table > thead > tr > th').contextMenu('ssfa-values-rename-column-context', { 
1824			'Rename Column' : { 
1825				click: function(element) { fa_values_renamecol(element.attr('id')); }, 
1826				link: '<a href="#"><span class="ssfa-icon-quill"></span> '+fileaway_mgmt.rename_column+'</a>', 
1827				klass: "menu-item-rename-col-1"
1828			},
1829			'Insert New Column Before' : { 
1830				click: function(element) { fa_values_newcol(element.attr('id'), 'before'); }, 
1831				link: '<a href="#"><span class="ssfa-icon-chart-alt"></span> '+fileaway_mgmt.insert_col_before+'</a>', 
1832				klass: "menu-item-2"
1833			},
1834			'Insert New Column After' : { 
1835				click: function(element) { fa_values_newcol(element.attr('id'), 'after'); }, 
1836				link: '<a href="#"><span class="ssfa-icon-chart-alt"></span> '+fileaway_mgmt.insert_col_after+'</a>', 
1837				klass: "menu-item-3"
1838			},
1839			'Delete Column' : { 
1840				click: function(element) { fa_values_deletecol(element.attr('id')); }, 
1841				link: '<a href="#"><span class="ssfa-icon-remove"></span> '+fileaway_mgmt.delete_column+'</a>', 
1842				klass: "menu-item-4"
1843			},				
1844			'Save Backup' : { 
1845				click: function(element) { fa_values_backup(element.attr('id')); }, 
1846				link: '<a href="#"><span class="ssfa-icon-disk"></span> '+fileaway_mgmt.save_backup+'</a>', 
1847				klass: "menu-item-5"
1848			},						
1849		});
1850		fa_values_renamecol = function(id, postype)
1851		{
1852			filertify.set({labels:{ok : fileaway_mgmt.ok_label, cancel : fileaway_mgmt.cancel_label }});
1853			filertify.prompt(fileaway_mgmt.new_column_name, function(e, str) 
1854			{	
1855				if(e)
1856				{
1857					var shadow = $('<div id="ssfa-values-shadow" style="display:none;" />');		
1858					$('body').append(shadow);
1859					shadow.fadeIn(250);
1860					$("body").css("cursor", "progress");
1861					$new = str;
1862					var values_nonce = $('th#'+id).parents('div.ssfa-fileaway-values').eq(0).data('fvn');
1863					$old = $('th#'+id).data('col');
1864					if($new == $old)
1865					{
1866						$("body").css("cursor", "auto");
1867						shadow.fadeOut(250,function(){$(this).remove();});
1868						return false;
1869					}
1870					$colnum = $('th#'+id).data('colnum');
1871					$src = $('th#'+id).parents('table').eq(0).data('src');
1872					$read = $('th#'+id).parents('table').eq(0).data('read');
1873					$write = $('th#'+id).parents('table').eq(0).data('write');
1874					$.post
1875					(
1876						fileaway_mgmt.ajaxurl,
1877						{
1878							action : 'fileaway-manager',
1879							act : 'colrename',
1880							src : $src,
1881							oldname : $old,
1882							newname : $new,
1883							colnum : $colnum,
1884							read : $read,
1885							writ : $write,
1886							nonce : fileaway_mgmt.nonce,	
1887							values_nonce : values_nonce			
1888						},
1889						function(response)
1890						{
1891							if(response.status == 'success')
1892							{
1893								location.reload(true);
1894							}
1895							else
1896							{
1897								$("body").css("cursor", "auto");
1898								shadow.fadeOut(250,function(){$(this).remove();});
1899								filertify.set({labels:{ok : fileaway_mgmt.ok_label}});
1900								filertify.alert(response.message);	
1901							}
1902						}
1903					)
1904					return false;
1905				}
1906			});			
1907		}
1908		fa_values_newcol = function(id, postype)
1909		{
1910			filertify.set({labels:{ok : fileaway_mgmt.ok_label, cancel : fileaway_mgmt.cancel_label }});
1911			filertify.prompt(fileaway_mgmt.new_column_name, function(e, str) 
1912			{	
1913				if(e)
1914				{
1915					var shadow = $('<div id="ssfa-values-shadow" style="display:none;" />');		
1916					$('body').append(shadow);
1917					shadow.fadeIn(250);
1918					$("body").css("cursor", "progress");
1919					var values_nonce = $('th#'+id).parents('div.ssfa-fileaway-values').eq(0).data('fvn');
1920					$col = str;
1921					$colnum = $('th#'+id).data('colnum');
1922					$colnum = postype == 'after' ? $colnum+1 : $colnum;
1923					$src = $('th#'+id).parents('table').eq(0).data('src');
1924					$read = $('th#'+id).parents('table').eq(0).data('read');
1925					$write = $('th#'+id).parents('table').eq(0).data('write');
1926					$.post
1927					(
1928						fileaway_mgmt.ajaxurl,
1929						{
1930							action : 'fileaway-manager',
1931							act : 'createcol',
1932							src : $src,
1933							col : $col,
1934							colnum : $colnum,
1935							read : $read,
1936							writ: $write,
1937							nonce : fileaway_mgmt.nonce,
1938							values_nonce : values_nonce					
1939						},
1940						function(response)
1941						{
1942							if(response.status == 'success')
1943							{
1944								location.reload(true);
1945							}
1946							else
1947							{
1948								$("body").css("cursor", "auto");
1949								shadow.fadeOut(250,function(){$(this).remove();});
1950								filertify.set({labels:{ok : fileaway_mgmt.ok_label}});
1951								filertify.alert(response.message);	
1952							}
1953						}
1954					)
1955					return false;
1956				}
1957			});			
1958		}
1959		fa_values_deletecol = function(id)
1960		{
1961			$uid = $('th#'+id).parents('table').eq(0).data('uid');
1962			$numcols = $('table#ssfa-table-'+$uid+' thead tr th').length;
1963			if($numcols < 2)
1964			{
1965				filertify.set({labels:{ok : fileaway_mgmt.ok_label}});
1966				filertify.alert(fileaway_mgmt.atleast_one_column)
1967			}
1968			else
1969			{
1970				$col = $('th#'+id).data('col');
1971				var confirmmessage = fileaway_mgmt.delete_confirm.replace('numfiles', $col);
1972				filertify.set({labels:{ok : fileaway_mgmt.confirm_label, cancel : fileaway_mgmt.cancel_label }});
1973				filertify.confirm(confirmmessage, function(e, str) 
1974				{	
1975					if(e)
1976					{
1977						var shadow = $('<div id="ssfa-values-shadow" style="display:none;" />');		
1978						$('body').append(shadow);
1979						shadow.fadeIn(250);
1980						$("body").css("cursor", "progress");
1981						var values_nonce = $('th#'+id).parents('div.ssfa-fileaway-values').eq(0).data('fvn');
1982						$colnum = $('th#'+id).data('colnum');
1983						$src = $('th#'+id).parents('table').eq(0).data('src');
1984						$read = $('th#'+id).parents('table').eq(0).data('read');
1985						$write = $('th#'+id).parents('table').eq(0).data('write');
1986						$.post
1987						(
1988							fileaway_mgmt.ajaxurl,
1989							{
1990								action : 'fileaway-manager',
1991								act : 'coldelete',
1992								src : $src,
1993								col : $col,
1994								colnum : $colnum,
1995								read : $read,
1996								writ : $write,
1997								nonce : fileaway_mgmt.nonce,
1998								values_nonce: values_nonce					
1999							},
2000							function(response)
2001							{
2002								if(response.status == 'success')
2003								{
2004									location.reload(true);
2005								}
2006								else
2007								{
2008									$("body").css("cursor", "auto");
2009									shadow.fadeOut(250,function(){$(this).remove();});
2010									filertify.set({labels:{ok : fileaway_mgmt.ok_label }});
2011									filertify.alert(response.message);
2012								}
2013							}
2014						)
2015						return false;
2016					}
2017				});	
2018			}
2019		}				
2020		fa_row_context_menu_init = function()
2021		{
2022			$('tr.ssfa-values-context td').contextMenu('ssfa-values-context', { 
2023				'Insert New Row' : {
2024					click: function(element) { fa_values_insert_row(element.attr('id')); }, 
2025					link: '<a href="#"><span class="ssfa-icon-chart-alt"></span> '+fileaway_mgmt.insert_row+'</a>', 
2026					klass: "menu-item-1"
2027				},
2028				'Delete Row' : { 
2029					click: function(element) { fa_values_delete(element.attr('id')); }, 
2030					link: '<a href="#"><span class="ssfa-icon-remove"></span> '+fileaway_mgmt.delete_row+'</a>', 
2031					klass: "menu-item-2"
2032				},
2033				'Save Backup' : { 
2034					click: function(element) { fa_values_backup(element.attr('id')); }, 
2035					link: '<a href="#"><span class="ssfa-icon-disk"></span> '+fileaway_mgmt.save_backup+'</a>', 
2036					klass: "menu-item-3"
2037				},						
2038			});	
2039		}
2040		fa_row_context_menu_init();
2041		fa_values_insert_row = function(id)
2042		{
2043			$uid = $('td#'+id).parents('table').eq(0).data('uid');
2044			var shadow = $('<div id="ssfa-values-shadow" style="display:none;" />');
2045			$('body').append(shadow);
2046			shadow.fadeIn(250);
2047			$("body").css("cursor", "progress");
2048			var values_nonce = $('td#'+id).parents('div.ssfa-fileaway-values').eq(0).data('fvn');
2049			$numrows = $('table#ssfa-table-'+$uid+' tbody tr').length;
2050			$numcols = $('table#ssfa-table-'+$uid+' tbody tr:first-child td').length;
2051			$src = $('table#ssfa-table-'+$uid).data('src');
2052			$theme = $('table#ssfa-table-'+$uid).data('theme');
2053			$read = $('table#ssfa-table-'+$uid).data('read');
2054			$write = $('table#ssfa-table-'+$uid).data('write');
2055			$.post
2056			(
2057				fileaway_mgmt.ajaxurl,
2058				{
2059					action : 'fileaway-manager',
2060					act : 'newrow',
2061					src : $src,
2062					numrows : $numrows,
2063					numcols : $numcols,
2064					theme : $theme,
2065					uid : $uid,
2066					read : $read,
2067					writ : $write,
2068					nonce : fileaway_mgmt.nonce,	
2069					values_nonce : values_nonce					
2070				},
2071				function(response)
2072				{
2073					$("body").css("cursor", "auto");
2074					shadow.fadeOut(250,function(){$(this).remove();});
2075					if(response.status == 'success')
2076					{
2077						$('td#'+id).parents('tr').eq(0).after(response.html).hide().fadeIn(250);
2078						fa_row_context_menu_init();
2079					}
2080					else
2081					{
2082						filertify.set({labels:{ok : fileaway_mgmt.ok_label }});
2083						filertify.alert(response.message);	
2084					}
2085				}
2086			)
2087			return false;
2088		}
2089		fa_values_delete = function(id)
2090		{
2091			$uid = $('td#'+id).parents('table').eq(0).data('uid');
2092			$numrows = $('table#ssfa-table-'+$uid+' tbody tr').length;
2093			var values_nonce = $('td#'+id).parents('div.ssfa-fileaway-values').eq(0).data('fvn');
2094			if($numrows < 2)
2095			{
2096				filertify.set({labels:{ok : fileaway_mgmt.ok_label }});
2097				filertify.alert(fileaway_mgmt.atleast_one_row)
2098			}
2099			else
2100			{
2101				$values = [];
2102				id = $('td#'+id).parents('tr').eq(0).attr('id');
2103				$('tr#'+id+' td span').each(function(i){
2104					$values[i] = $(this).data('col')+': '+$(this).text();
2105				});
2106				$allvalues = ':<br><br>
2106'+$values.join('<br>')+'<br><br>';
2107				var confirmmessage = fileaway_mgmt.delete_confirm.replace('numfiles.', $allvalues);
2108				filertify.set({labels:{ok : fileaway_mgmt.confirm_label, cancel : fileaway_mgmt.cancel_label }});
2109				filertify.confirm(confirmmessage, function(e)
2110				{
2111					if(e)
2112					{
2113						var shadow = $('<div id="ssfa-values-shadow" style="display:none;" />');
2114						$('body').append(shadow);
2115						shadow.fadeIn(250);
2116						$("body").css("cursor", "progress");
2117						$row = $('tr#'+id).data('row');
2118						$src = $('tr#'+id).parents('table').eq(0).data('src');
2119						$read = $('tr#'+id).parents('table').eq(0).data('read');
2120						$write = $('tr#'+id).parents('table').eq(0).data('write');
2121						$.post
2122						(
2123							fileaway_mgmt.ajaxurl,
2124							{
2125								action : 'fileaway-manager',
2126								act : 'deleterow',
2127								src : $src,
2128								row : $row,
2129								read : $read,
2130								writ : $write,
2131								nonce : fileaway_mgmt.nonce,
2132								values_nonce : values_nonce						
2133							},
2134							function(response)
2135							{
2136								if(response.status == 'success')
2137								{
2138									location.reload(true);
2139								}
2140								else
2141								{
2142									$("body").css("cursor", "auto");
2143									shadow.fadeOut(250,function(){$(this).remove();});
2144									filertify.set({labels:{ok : fileaway_mgmt.ok_label }});
2145									filertify.alert(response.message);	
2146								}
2147							}
2148						)
2149						return false;		
2150					}
2151				});
2152			}
2153		}	
2154		fa_values_backup = function(id)
2155		{
2156			var shadow = $('<div id="ssfa-values-shadow" style="display:none;" />');
2157			$src = $('#'+id).parents('table').eq(0).data('src');
2158			$read = $('#'+id).parents('table').eq(0).data('read');
2159			$write = $('#'+id).parents('table').eq(0).data('write');
2160			var values_nonce = $('#'+id).parents('div.ssfa-fileaway-values').eq(0).data('fvn');
2161			$('body').append(shadow);
2162			shadow.fadeIn(250);
2163			$("body").css("cursor", "progress");
2164			$.post
2165			(
2166				fileaway_mgmt.ajaxurl,
2167				{
2168					action : 'fileaway-manager',
2169					act : 'backupcsv',
2170					src : $src,
2171					read : $read,
2172					writ : $write,
2173					nonce : fileaway_mgmt.nonce,
2174					values_nonce : values_nonce					
2175				},
2176				function(response)
2177				{
2178					$("body").css("cursor", "auto");
2179					shadow.fadeOut(250,function(){$(this).remove();});
2180					if(response.status !== 'success')
2181					{
2182						filertify.set({labels:{ok : fileaway_mgmt.ok_label }});
2183						filertify.alert(response.message);	
2184					}
2185				}
2186			)
2187			return false;
2188		}		
2189		$('body').on('click', 'span[id^="ssfa-delete-csv-"]', function()
2190		{
2191			$uid = $(this).data('uid');
2192			var values_nonce = $(this).parents('div.ssfa-fileaway-values').eq(0).data('fvn');
2193			$src = $('table#ssfa-table-'+$uid).data('src');	
2194			$filename = $('table#ssfa-table-'+$uid).data('filename');	
2195			var confirmmessage = fileaway_mgmt.delete_confirm.replace('numfiles.', '<strong><code>'+$filename+'</code></strong>');
2196			filertify.set({labels:{ok : fileaway_mgmt.confirm_label, cancel : fileaway_mgmt.cancel_label }});
2197			filertify.confirm(confirmmessage, function(e)
2198			{
2199				if(e)
2200				{
2201					var shadow = $('<div id="ssfa-values-shadow" style="display:none;" />');
2202					$('body').append(shadow);
2203					shadow.fadeIn(250);
2204					$("body").css("cursor", "progress");
2205					$.post
2206					(
2207						fileaway_mgmt.ajaxurl,
2208						{
2209							action : 'fileaway-manager',
2210							act : 'deletecsv',
2211							src : $src,
2212							nonce : fileaway_mgmt.nonce,
2213							values_nonce : values_nonce					
2214						},
2215						function(response)
2216						{
2217							$("body").css("cursor", "auto");
2218							shadow.fadeOut(250,function(){$(this).remove();});
2219							if(response.status == 'success')
2220							{
2221								$('table#ssfa-table-'+$uid).fadeOut(250);
2222								$('select#ssfa-fileaway-values-select-'+$uid).find('option:first').attr('selected','selected').trigger('chozed:updated').trigger('change');
2223							}
2224							else
2225							{
2226								filertify.alert(response.message);	
2227							}
2228						}
2229					)
2230					return false;					
2231				}
2232			});
2233		});
2234		$('body').on('click', 'span[id^="ssfa-new-csv-"]', function()
2235		{
2236			$uid = $(this).data('uid');
2237			var values_nonce = $(this).parents('div.ssfa-fileaway-values').eq(0).data('fvn');
2238			$path = $(this).data('path');
2239			$pg = $(this).data('pg');
2240			$read = $(this).data('read');
2241			$write = $(this).data('write');
2242			$recursive = $(this).data('recurse');
2243			filertify.set({labels:{ok : fileaway_mgmt.next_label, cancel : fileaway_mgmt.cancel_label }});
2244			filertify.prompt(fileaway_mgmt.new_file_name, function(e, name) 
2245			{	
2246				if(e)
2247				{
2248					if(name == '')
2249					{
2250						filertify.set({labels:{ok : 'OK'}});
2251						filertify.alert(fileaway_mgmt.specify_file_name);
2252					}
2253					else
2254					{
2255						filertify.set({labels:{ok : fileaway_mgmt.create_label, cancel : fileaway_mgmt.cancel_label }});
2256						filertify.prompt(fileaway_mgmt.column_names, function(ev, cols) 
2257						{	
2258							if(ev)
2259							{
2260								if(cols == '')
2261								{
2262									filertify.set({labels:{ok : fileaway_mgmt.ok_label }});
2263									filertify.alert(fileaway_mgmt.specify_column_name);
2264								}
2265								else
2266								{
2267									var shadow = $('<div id="ssfa-values-shadow" style="display:none;" />');
2268									$('body').append(shadow);
2269									shadow.fadeIn(250);
2270									$("body").css("cursor", "progress");
2271									$.post
2272									(
2273										fileaway_mgmt.ajaxurl,
2274										{
2275											action : 'fileaway-manager',
2276											act : 'makecsv',
2277											path : $path,
2278											pg : $pg,
2279											querystring : location.search,
2280											name : name,
2281											cols : cols,
2282											recursive : $recursive,
2283											read : $read,
2284											writ : $write,
2285											nonce : fileaway_mgmt.nonce,
2286											values_nonce : values_nonce				
2287										},
2288										function(response)
2289										{
2290											$("body").css("cursor", "auto");
2291											shadow.fadeOut(250,function(){$(this).remove();});
2292											if(response.status == 'success')
2293											{
2294												window.location.href = response.redirect;
2295											}
2296											else
2297											{
2298												filertify.alert(response.message);	
2299											}
2300										}
2301									)
2302									return false;
2303								}
2304							}
2305						});			
2306					}
2307				}
2308			});			
2309		});
2310		$('body').on('dblclick', 'td[id^="cell-ssfa-values-"]', function()
2311		{
2312			$sfx = this.id.replace('cell-', '');
2313			$span = $('span#value-'+$sfx);
2314			$input = $('input#input-'+$sfx);
2315			$span.fadeOut(250);
2316			setTimeout(function(){$input.fadeIn(250).focus();}, 250);
2317		});
2318		$('body').on('blur', 'input[id^="input-ssfa-values-"]', function()
2319		{
2320			$sfx = this.id.replace('input-', '');
2321			var values_nonce = $(this).parents('div.ssfa-fileaway-values').eq(0).data('fvn');
2322			$input = $(this);
2323			$span = $('span#value-'+$sfx);
2324			$oldvalue = $span.text();
2325			$input.fadeOut(250);
2326			$value = $(this).val();
2327			if($value === $oldvalue) setTimeout(function(){$span.fadeIn(250);}, 250);
2328			else
2329			{
2330				var shadow = $('<div id="ssfa-values-shadow" style="display:none;" />');
2331				$('body').append(shadow);
2332				shadow.fadeIn(250);
2333				$("body").css("cursor", "progress");				
2334				$row = $(this).data('row');
2335				$col = $(this).data('col');
2336				$colnum = $(this).data('colnum');
2337				$src = $(this).parents('table').eq(0).data('src');
2338				$read = $(this).parents('table').eq(0).data('read');
2339				$write = $(this).parents('table').eq(0).data('write');
2340				$.post
2341				(
2342					fileaway_mgmt.ajaxurl,
2343					{
2344						action : 'fileaway-manager',
2345						act : 'values',
2346						src : $src,
2347						row : $row,
2348						col : $col,
2349						colnum : $colnum,
2350						oldvalue : $oldvalue,
2351						newvalue : $value,
2352						read : $read,
2353						writ : $write,
2354						nonce : fileaway_mgmt.nonce,
2355						values_nonce : values_nonce					
2356					},
2357					function(response)
2358					{
2359						$("body").css("cursor", "auto");
2360						shadow.fadeOut(250,function(){$(this).remove();});
2361						if(response.status == 'success')
2362						{
2363							$span.text($value);
2364							$span.fadeIn(250);
2365						}
2366						else
2367						{
2368							$span.fadeIn(250);
2369							filertify.alert(response.message);	
2370						}
2371					}
2372				)
2373				return false;
2374			}
2375		});		
2376	}
2377});

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.