use php's is_callable() and call_user_func()

using php's is_callable() and call_user_func() for listeners would support the existing callback methods in addition to array('class_name','static_function_name')
Return path of source file
removed "else"
Merge branch '2.x' of git://github.com/Studio-42/elFinder into 2.x
Opening directory-hang (session_start hang bug) - After failed ajax call attempt

This seems to solve the issue where if elFinder had a failed ajax call to
for example connector.php and crashes, that it does not hang on the
Opening Directory progress bar.

Actually the session_start hangs and you need to delete your cookie php session id
to get it to work again, where this will make it work correctly it seems
after some testing
now haning on session_start seems fixed. Dont keep the session open the whole time only when needed
and have tried very hard to break it, but it keeps alive and dont
hang anymore.

believe this was the last change needed.
Fixed typo for archive extract
Added extract/archive feature for FTP connector (Windows)

- temp needs access from IUSR, 7z files in sysWOW64, 7z -x
- Added extract of .rar files
- changed 7z compression to uncompressed -mx0 (cause of performance)
- unicode paths to archive
- Archivesize limit hardcoded to 50MB
- create new folder return
- spaces, special chars and unique names
German Language fixed
Better example for use of FTP Driver

Should work with just correct user and pass here.
Better example for use of FTP Driver
Added caching on _checkArchivers to improve performance
Update elFinder.class.php

fixed: 
try to delete a file if deleting files are not allowed, get the following message:
Fatal error: Undefined class constant 'ERROR_ACCESS_DENIED' in **\php\elFinderVolumeDriver.class.php on line 1748

additional changes in elFinderVolumeDriver.class.php
Update elFinderVolumeDriver.class.php

fixed:
If try to delete files there was no message when deleting is not allowed...
Update elfinder.es.js
Disable specified Shortcuts

changed Clientoption type "allowShortcuts" from boolean to array and
defined all shortcuts.
Fixed ClientOption dragUploadAllow
fix (#597) ClientOption `dragUploadAllow`

like nao-pon suggested
updated the Jakefile.js jake build script and environment to support modern uglify-js (the API of that one has been changed; see also https://github.com/mishoo/UglifyJS2#the-simple-way and http://stackoverflow.com/questions/13919782/uglify-js-api-throws-typeerror-when-executing-example-from-github ); also make sure the ./build/ directory exists already from the very beginning: no surprises. Added package.json for `npm install` so you can load uglify-js and csso locally as they should.
update the package.json file: now points at the appropriate places.