fmsystem-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Fmsystem-commits] [15364]


From: nelson . guerra
Subject: [Fmsystem-commits] [15364]
Date: Sat, 2 Jul 2016 00:59:48 +0000 (UTC)

Revision: 15364
          http://svn.sv.gnu.org/viewvc/?view=rev&root=fmsystem&revision=15364
Author:   nelson224
Date:     2016-07-02 00:59:48 +0000 (Sat, 02 Jul 2016)
Log Message:
-----------


Added Paths:
-----------
    branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/
    branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/.gitignore
    branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/CONTRIBUTING.md
    branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/Gruntfile.js
    branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/README.md
    branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/angularjs.html
    branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/basic-plus.html
    branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/basic.html
    branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/bower.json
    branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/cors/
    
branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/cors/postmessage.html
    branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/cors/result.html
    branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/css/
    branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/css/demo-ie8.css
    branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/css/demo.css
    
branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/css/jquery.fileupload-noscript.css
    
branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/css/jquery.fileupload-ui-noscript.css
    
branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/css/jquery.fileupload-ui.css
    
branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/css/jquery.fileupload.css
    branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/css/style.css
    branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/img/
    branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/img/loading.gif
    branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/img/progressbar.gif
    branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/index.html
    branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/jquery-ui.html
    branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/js/
    branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/js/app.js
    branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/js/cors/
    
branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/js/cors/jquery.postmessage-transport.js
    
branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/js/cors/jquery.xdr-transport.js
    branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/js/jquery-ui.min.js
    
branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/js/jquery.blueimp-gallery.min.js
    
branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/js/jquery.fileupload-angular.js
    
branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/js/jquery.fileupload-audio.js
    
branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/js/jquery.fileupload-image.js
    
branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/js/jquery.fileupload-jquery-ui.js
    
branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/js/jquery.fileupload-process.js
    
branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/js/jquery.fileupload-ui.js
    
branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/js/jquery.fileupload-validate.js
    
branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/js/jquery.fileupload-video.js
    
branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/js/jquery.fileupload.js
    
branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/js/jquery.iframe-transport.js
    branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/js/jquery.min.js
    
branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/js/load-image.all.min.js
    branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/js/main.js
    branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/js/tmpl.min.js
    branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/js/vendor/
    
branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/js/vendor/jquery.ui.widget.js
    branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/package.json
    branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/server/
    branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/server/gae-go/
    branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/server/gae-go/app/
    
branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/server/gae-go/app/main.go
    
branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/server/gae-go/app.yaml
    
branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/server/gae-go/static/
    
branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/server/gae-go/static/favicon.ico
    
branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/server/gae-go/static/robots.txt
    branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/server/gae-python/
    
branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/server/gae-python/app.yaml
    
branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/server/gae-python/main.py
    
branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/server/gae-python/static/
    
branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/server/gae-python/static/favicon.ico
    
branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/server/gae-python/static/robots.txt
    branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/server/php/
    
branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/server/php/Dockerfile
    
branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/server/php/UploadHandler.php
    
branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/server/php/docker-compose.yml
    branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/server/php/files/
    
branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/server/php/files/.gitignore
    
branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/server/php/files/.htaccess
    
branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/server/php/files/737-Utend?\195?\131?\194?\184rs
 forsyningsanlegg for termisk energi.png
    
branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/server/php/files/thumbnail/
    
branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/server/php/files/thumbnail/737-Utend?\195?\131?\194?\184rs
 forsyningsanlegg for termisk energi.png
    
branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/server/php/index.php
    branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/test/
    branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/test/index.html
    branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/test/test.js


Property changes on: branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload
___________________________________________________________________
Added: svn:ignore
   + .jshintrc


Added: branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/.gitignore
===================================================================
--- branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/.gitignore         
                (rev 0)
+++ branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/.gitignore 
2016-07-02 00:59:48 UTC (rev 15364)
@@ -0,0 +1,3 @@
+.DS_Store
+*.pyc
+node_modules

Added: branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/CONTRIBUTING.md
===================================================================
--- branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/CONTRIBUTING.md    
                        (rev 0)
+++ branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/CONTRIBUTING.md    
2016-07-02 00:59:48 UTC (rev 15364)
@@ -0,0 +1,15 @@
+Please follow these pull request guidelines:
+
+1. Update your fork to the latest upstream version.
+
+2. Follow the coding conventions of the original source files (indentation, 
spaces, brackets layout).
+
+3. Code changes must pass JSHint validation with the `.jshintrc` settings of 
this project.
+
+4. Code changes must pass the QUnit tests defined in the `test` folder.
+
+5. New features should be covered by accompanying QUnit tests.
+
+6. Keep your commits as atomic as possible, i.e. create a new commit for every 
single bug fix or feature added.
+
+7. Always add meaningful commit messages.

Added: branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/Gruntfile.js
===================================================================
--- branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/Gruntfile.js       
                        (rev 0)
+++ branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/Gruntfile.js       
2016-07-02 00:59:48 UTC (rev 15364)
@@ -0,0 +1,42 @@
+/*
+ * jQuery File Upload Gruntfile
+ * https://github.com/blueimp/jQuery-File-Upload
+ *
+ * Copyright 2013, Sebastian Tschan
+ * https://blueimp.net
+ *
+ * Licensed under the MIT license:
+ * http://www.opensource.org/licenses/MIT
+ */
+
+/*global module, require */
+
+module.exports = function (grunt) {
+    'use strict';
+
+    function bowerJson() {
+        require('bower-json').validate(require('./bower.json'));
+    }
+
+    grunt.initConfig({
+        jshint: {
+            options: {
+                jshintrc: '.jshintrc'
+            },
+            all: [
+                'Gruntfile.js',
+                'js/cors/*.js',
+                'js/*.js',
+                'server/node/server.js',
+                'test/test.js'
+            ]
+        }
+    });
+
+    grunt.loadNpmTasks('grunt-contrib-jshint');
+    grunt.loadNpmTasks('grunt-bump-build-git');
+    grunt.registerTask('bower-json', bowerJson);
+    grunt.registerTask('test', ['jshint', 'bower-json']);
+    grunt.registerTask('default', ['test']);
+
+};

Added: branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/README.md
===================================================================
--- branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/README.md          
                (rev 0)
+++ branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/README.md  
2016-07-02 00:59:48 UTC (rev 15364)
@@ -0,0 +1,107 @@
+# jQuery File Upload Plugin
+
+## Demo
+[Demo File Upload](https://blueimp.github.io/jQuery-File-Upload/)
+
+## Description
+File Upload widget with multiple file selection, drag&drop support, 
progress bars, validation and preview images, audio and video for jQuery.  
+Supports cross-domain, chunked and resumable file uploads and client-side 
image resizing. Works with any server-side platform (PHP, Python, Ruby on 
Rails, Java, Node.js, Go etc.) that supports standard HTML form file uploads.
+
+## Setup
+* [How to setup the plugin on your 
website](https://github.com/blueimp/jQuery-File-Upload/wiki/Setup)
+* [How to use only the basic plugin (minimal setup 
guide).](https://github.com/blueimp/jQuery-File-Upload/wiki/Basic-plugin)
+
+## Features
+* **Multiple file upload:**  
+  Allows to select multiple files at once and upload them simultaneously.
+* **Drag & Drop support:**  
+  Allows to upload files by dragging them from your desktop or filemanager and 
dropping them on your browser window.
+* **Upload progress bar:**  
+  Shows a progress bar indicating the upload progress for individual files and 
for all uploads combined.
+* **Cancelable uploads:**  
+  Individual file uploads can be canceled to stop the upload progress.
+* **Resumable uploads:**  
+  Aborted uploads can be resumed with browsers supporting the Blob API.
+* **Chunked uploads:**  
+  Large files can be uploaded in smaller chunks with browsers supporting the 
Blob API.
+* **Client-side image resizing:**  
+  Images can be automatically resized on client-side with browsers supporting 
the required JS APIs.
+* **Preview images, audio and video:**  
+  A preview of image, audio and video files can be displayed before uploading 
with browsers supporting the required APIs.
+* **No browser plugins (e.g. Adobe Flash) required:**  
+  The implementation is based on open standards like HTML5 and JavaScript and 
requires no additional browser plugins.
+* **Graceful fallback for legacy browsers:**  
+  Uploads files via XMLHttpRequests if supported and uses iframes as fallback 
for legacy browsers.
+* **HTML file upload form fallback:**  
+  Allows progressive enhancement by using a standard HTML file upload form as 
widget element.
+* **Cross-site file uploads:**  
+  Supports uploading files to a different domain with cross-site 
XMLHttpRequests or iframe redirects.
+* **Multiple plugin instances:**  
+  Allows to use multiple plugin instances on the same webpage.
+* **Customizable and extensible:**  
+  Provides an API to set individual options and define callBack methods for 
various upload events.
+* **Multipart and file contents stream uploads:**  
+  Files can be uploaded as standard "multipart/form-data" or file contents 
stream (HTTP PUT file upload).
+* **Compatible with any server-side application platform:**  
+  Works with any server-side platform (PHP, Python, Ruby on Rails, Java, 
Node.js, Go etc.) that supports standard HTML form file uploads.
+
+## Requirements
+
+### Mandatory requirements
+* [jQuery](https://jquery.com/) v. 1.6+
+* [jQuery UI widget factory](https://api.jqueryui.com/jQuery.widget/) v. 1.9+ 
(included): Required for the basic File Upload plugin, but very lightweight 
without any other dependencies from the jQuery UI suite.
+* [jQuery Iframe Transport 
plugin](https://github.com/blueimp/jQuery-File-Upload/blob/master/js/jquery.iframe-transport.js)
 (included): Required for [browsers without XHR file upload 
support](https://github.com/blueimp/jQuery-File-Upload/wiki/Browser-support).
+
+### Optional requirements
+* [JavaScript Templates 
engine](https://github.com/blueimp/JavaScript-Templates) v. 2.5.4+: Used to 
render the selected and uploaded files for the Basic Plus UI and jQuery UI 
versions.
+* [JavaScript Load Image 
library](https://github.com/blueimp/JavaScript-Load-Image) v. 1.13.0+: Required 
for the image previews and resizing functionality.
+* [JavaScript Canvas to Blob 
polyfill](https://github.com/blueimp/JavaScript-Canvas-to-Blob) v. 
2.1.1+:Required for the image previews and resizing functionality.
+* [blueimp Gallery](https://github.com/blueimp/Gallery) v. 2.15.1+: Used to 
display the uploaded images in a lightbox.
+* [Bootstrap](http://getbootstrap.com/) v. 3.2.0+
+* [Glyphicons](http://glyphicons.com/)
+
+The user interface of all versions except the jQuery UI version is built with 
[Bootstrap](http://getbootstrap.com/) and icons from 
[Glyphicons](http://glyphicons.com/).
+
+### Cross-domain requirements
+[Cross-domain File 
Uploads](https://github.com/blueimp/jQuery-File-Upload/wiki/Cross-domain-uploads)
 using the [Iframe Transport 
plugin](https://github.com/blueimp/jQuery-File-Upload/blob/master/js/jquery.iframe-transport.js)
 require a redirect back to the origin server to retrieve the upload results. 
The [example 
implementation](https://github.com/blueimp/jQuery-File-Upload/blob/master/js/main.js)
 makes use of 
[result.html](https://github.com/blueimp/jQuery-File-Upload/blob/master/cors/result.html)
 as a static redirect page for the origin server.
+
+The repository also includes the [jQuery XDomainRequest Transport 
plugin](https://github.com/blueimp/jQuery-File-Upload/blob/master/js/cors/jquery.xdr-transport.js),
 which enables limited cross-domain AJAX requests in Microsoft Internet 
Explorer 8 and 9 (IE 10 supports cross-domain XHR requests).  
+The XDomainRequest object allows GET and POST requests only and doesn't 
support file uploads. It is used on the 
[Demo](https://blueimp.github.io/jQuery-File-Upload/) to delete uploaded files 
from the cross-domain demo file upload service.
+
+### Custom Backends
+
+You can add support for various backends by adhering to the specification 
[outlined 
here](https://github.com/blueimp/jQuery-File-Upload/wiki/JSON-Response).
+
+## Browsers
+
+### Desktop browsers
+The File Upload plugin is regularly tested with the latest browser versions 
and supports the following minimal versions:
+
+* Google Chrome
+* Apple Safari 4.0+
+* Mozilla Firefox 3.0+
+* Opera 11.0+
+* Microsoft Internet Explorer 6.0+
+
+### Mobile browsers
+The File Upload plugin has been tested with and supports the following mobile 
browsers:
+
+* Apple Safari on iOS 6.0+
+* Google Chrome on iOS 6.0+
+* Google Chrome on Android 4.0+
+* Default Browser on Android 2.3+
+* Opera Mobile 12.0+
+
+### Supported features
+For a detailed overview of the features supported by each browser version, 
please have a look at the [Extended browser support 
information](https://github.com/blueimp/jQuery-File-Upload/wiki/Browser-support).
+
+## Contributing
+**Bug fixes** and **new features** can be proposed using [pull 
requests](https://github.com/blueimp/jQuery-File-Upload/pulls).
+Please read the [contribution 
guidelines](https://github.com/blueimp/jQuery-File-Upload/blob/master/CONTRIBUTING.md)
 before submitting a pull request.
+
+## Support
+This project is actively maintained, but there is no official support channel. 
 
+If you have a question that another developer might help you with, please post 
to [Stack 
Overflow](http://stackoverflow.com/questions/tagged/blueimp+jquery+file-upload) 
and tag your question with `blueimp jquery file upload`.
+
+## License
+Released under the [MIT license](http://www.opensource.org/licenses/MIT).

Added: branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/angularjs.html
===================================================================
--- branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/angularjs.html     
                        (rev 0)
+++ branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/angularjs.html     
2016-07-02 00:59:48 UTC (rev 15364)
@@ -0,0 +1,211 @@
+<!DOCTYPE HTML>
+<!--
+/*
+ * jQuery File Upload Plugin AngularJS Demo
+ * https://github.com/blueimp/jQuery-File-Upload
+ *
+ * Copyright 2013, Sebastian Tschan
+ * https://blueimp.net
+ *
+ * Licensed under the MIT license:
+ * http://www.opensource.org/licenses/MIT
+ */
+-->
+<html lang="en">
+<head>
+<!-- Force latest IE rendering engine or ChromeFrame if installed -->
+<!--[if IE]>
+<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+<![endif]-->
+<meta charset="utf-8">
+<title>jQuery File Upload Demo - AngularJS version</title>
+<meta name="description" content="File Upload widget with multiple file 
selection, drag&amp;drop support, progress bars, validation and preview images, 
audio and video for AngularJS. Supports cross-domain, chunked and resumable 
file uploads and client-side image resizing. Works with any server-side 
platform (PHP, Python, Ruby on Rails, Java, Node.js, Go etc.) that supports 
standard HTML form file uploads.">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<!-- Bootstrap styles -->
+<link rel="stylesheet" 
href="//netdna.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
+<!-- Generic page styles -->
+<link rel="stylesheet" href="css/style.css">
+<!-- blueimp Gallery styles -->
+<link rel="stylesheet" 
href="//blueimp.github.io/Gallery/css/blueimp-gallery.min.css">
+<!-- CSS to style the file input field as button and adjust the Bootstrap 
progress bars -->
+<link rel="stylesheet" href="css/jquery.fileupload.css">
+<link rel="stylesheet" href="css/jquery.fileupload-ui.css">
+<!-- CSS adjustments for browsers with JavaScript disabled -->
+<noscript><link rel="stylesheet" 
href="css/jquery.fileupload-noscript.css"></noscript>
+<noscript><link rel="stylesheet" 
href="css/jquery.fileupload-ui-noscript.css"></noscript>
+<style>
+/* Hide Angular JS elements before initializing */
+.ng-cloak {
+    display: none;
+}
+</style>
+</head>
+<body>
+<div class="navbar navbar-default navbar-fixed-top">
+    <div class="container">
+        <div class="navbar-header">
+            <button type="button" class="navbar-toggle" data-toggle="collapse" 
data-target=".navbar-fixed-top .navbar-collapse">
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+            </button>
+            <a class="navbar-brand" 
href="https://github.com/blueimp/jQuery-File-Upload";>jQuery File Upload</a>
+        </div>
+        <div class="navbar-collapse collapse">
+            <ul class="nav navbar-nav">
+                <li><a 
href="https://github.com/blueimp/jQuery-File-Upload/tags";>Download</a></li>
+                <li><a 
href="https://github.com/blueimp/jQuery-File-Upload";>Source Code</a></li>
+                <li><a 
href="https://github.com/blueimp/jQuery-File-Upload/wiki";>Documentation</a></li>
+                <li><a href="https://blueimp.net";>&copy; Sebastian 
Tschan</a></li>
+            </ul>
+        </div>
+    </div>
+</div>
+<div class="container">
+    <h1>jQuery File Upload Demo</h1>
+    <h2 class="lead">AngularJS version</h2>
+    <ul class="nav nav-tabs">
+        <li><a href="basic.html">Basic</a></li>
+        <li><a href="basic-plus.html">Basic Plus</a></li>
+        <li><a href="index.html">Basic Plus UI</a></li>
+        <li class="active"><a href="angularjs.html">AngularJS</a></li>
+        <li><a href="jquery-ui.html">jQuery UI</a></li>
+    </ul>
+    <br>
+    <blockquote>
+        <p>File Upload widget with multiple file selection, drag&amp;drop 
support, progress bars, validation and preview images, audio and video for 
AngularJS.<br>
+        Supports cross-domain, chunked and resumable file uploads and 
client-side image resizing.<br>
+        Works with any server-side platform (PHP, Python, Ruby on Rails, Java, 
Node.js, Go etc.) that supports standard HTML form file uploads.</p>
+    </blockquote>
+    <br>
+    <!-- The file upload form used as target for the file upload widget -->
+    <form id="fileupload" action="//jquery-file-upload.appspot.com/" 
method="POST" enctype="multipart/form-data" data-ng-app="demo" 
data-ng-controller="DemoFileUploadController" data-file-upload="options" 
data-ng-class="{'fileupload-processing': processing() || loadingFiles}">
+        <!-- Redirect browsers with JavaScript disabled to the origin page -->
+        <noscript><input type="hidden" name="redirect" 
value="https://blueimp.github.io/jQuery-File-Upload/";></noscript>
+        <!-- The fileupload-buttonbar contains buttons to add/delete files and 
start/cancel the upload -->
+        <div class="row fileupload-buttonbar">
+            <div class="col-lg-7">
+                <!-- The fileinput-button span is used to style the file input 
field as button -->
+                <span class="btn btn-success fileinput-button" 
ng-class="{disabled: disabled}">
+                    <i class="glyphicon glyphicon-plus"></i>
+                    <span>Add files...</span>
+                    <input type="file" name="files[]" multiple 
ng-disabled="disabled">
+                </span>
+                <button type="button" class="btn btn-primary start" 
data-ng-click="submit()">
+                    <i class="glyphicon glyphicon-upload"></i>
+                    <span>Start upload</span>
+                </button>
+                <button type="button" class="btn btn-warning cancel" 
data-ng-click="cancel()">
+                    <i class="glyphicon glyphicon-ban-circle"></i>
+                    <span>Cancel upload</span>
+                </button>
+                <!-- The global file processing state -->
+                <span class="fileupload-process"></span>
+            </div>
+            <!-- The global progress state -->
+            <div class="col-lg-5 fade" data-ng-class="{in: active()}">
+                <!-- The global progress bar -->
+                <div class="progress progress-striped active" 
data-file-upload-progress="progress()"><div class="progress-bar 
progress-bar-success" data-ng-style="{width: num + '%'}"></div></div>
+                <!-- The extended global progress state -->
+                <div class="progress-extended">&nbsp;</div>
+            </div>
+        </div>
+        <!-- The table listing the files available for upload/download -->
+        <table class="table table-striped files ng-cloak">
+            <tr data-ng-repeat="file in queue" data-ng-class="{'processing': 
file.$processing()}">
+                <td data-ng-switch data-on="!!file.thumbnailUrl">
+                    <div class="preview" data-ng-switch-when="true">
+                        <a data-ng-href="{{file.url}}" title="{{file.name}}" 
download="{{file.name}}" data-gallery><img data-ng-src="{{file.thumbnailUrl}}" 
alt=""></a>
+                    </div>
+                    <div class="preview" data-ng-switch-default 
data-file-upload-preview="file"></div>
+                </td>
+                <td>
+                    <p class="name" data-ng-switch data-on="!!file.url">
+                        <span data-ng-switch-when="true" data-ng-switch 
data-on="!!file.thumbnailUrl">
+                            <a data-ng-switch-when="true" 
data-ng-href="{{file.url}}" title="{{file.name}}" download="{{file.name}}" 
data-gallery>{{file.name}}</a>
+                            <a data-ng-switch-default 
data-ng-href="{{file.url}}" title="{{file.name}}" 
download="{{file.name}}">{{file.name}}</a>
+                        </span>
+                        <span data-ng-switch-default>{{file.name}}</span>
+                    </p>
+                    <strong data-ng-show="file.error" class="error 
text-danger">{{file.error}}</strong>
+                </td>
+                <td>
+                    <p class="size">{{file.size | formatFileSize}}</p>
+                    <div class="progress progress-striped active fade" 
data-ng-class="{pending: 'in'}[file.$state()]" 
data-file-upload-progress="file.$progress()"><div class="progress-bar 
progress-bar-success" data-ng-style="{width: num + '%'}"></div></div>
+                </td>
+                <td>
+                    <button type="button" class="btn btn-primary start" 
data-ng-click="file.$submit()" data-ng-hide="!file.$submit || 
options.autoUpload" data-ng-disabled="file.$state() == 'pending' || 
file.$state() == 'rejected'">
+                        <i class="glyphicon glyphicon-upload"></i>
+                        <span>Start</span>
+                    </button>
+                    <button type="button" class="btn btn-warning cancel" 
data-ng-click="file.$cancel()" data-ng-hide="!file.$cancel">
+                        <i class="glyphicon glyphicon-ban-circle"></i>
+                        <span>Cancel</span>
+                    </button>
+                    <button data-ng-controller="FileDestroyController" 
type="button" class="btn btn-danger destroy" data-ng-click="file.$destroy()" 
data-ng-hide="!file.$destroy">
+                        <i class="glyphicon glyphicon-trash"></i>
+                        <span>Delete</span>
+                    </button>
+                </td>
+            </tr>
+        </table>
+    </form>
+    <br>
+    <div class="panel panel-default">
+        <div class="panel-heading">
+            <h3 class="panel-title">Demo Notes</h3>
+        </div>
+        <div class="panel-body">
+            <ul>
+                <li>The maximum file size for uploads in this demo is 
<strong>999 KB</strong> (default file size is unlimited).</li>
+                <li>Only image files (<strong>JPG, GIF, PNG</strong>) are 
allowed in this demo (by default there is no file type restriction).</li>
+                <li>Uploaded files will be deleted automatically after 
<strong>5 minutes or less</strong> (demo files are stored in memory).</li>
+                <li>You can <strong>drag &amp; drop</strong> files from your 
desktop on this webpage (see <a 
href="https://github.com/blueimp/jQuery-File-Upload/wiki/Browser-support";>Browser
 support</a>).</li>
+                <li>Please refer to the <a 
href="https://github.com/blueimp/jQuery-File-Upload";>project website</a> and <a 
href="https://github.com/blueimp/jQuery-File-Upload/wiki";>documentation</a> for 
more information.</li>
+                <li>Built with the <a 
href="http://getbootstrap.com/";>Bootstrap</a> CSS framework and Icons from <a 
href="http://glyphicons.com/";>Glyphicons</a>.</li>
+            </ul>
+        </div>
+    </div>
+</div>
+<!-- The blueimp Gallery widget -->
+<div id="blueimp-gallery" class="blueimp-gallery blueimp-gallery-controls" 
data-filter=":even">
+    <div class="slides"></div>
+    <h3 class="title"></h3>
+    <a class="prev">‹</a>
+    <a class="next">›</a>
+    <a class="close">×</a>
+    <a class="play-pause"></a>
+    <ol class="indicator"></ol>
+</div>
+<script 
src="//ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
+<script 
src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js"></script>
+<!-- The jQuery UI widget factory, can be omitted if jQuery UI is already 
included -->
+<script src="js/vendor/jquery.ui.widget.js"></script>
+<!-- The Load Image plugin is included for the preview images and image 
resizing functionality -->
+<script 
src="//blueimp.github.io/JavaScript-Load-Image/js/load-image.all.min.js"></script>
+<!-- The Canvas to Blob plugin is included for image resizing functionality -->
+<script 
src="//blueimp.github.io/JavaScript-Canvas-to-Blob/js/canvas-to-blob.min.js"></script>
+<!-- Bootstrap JS is not required, but included for the responsive demo 
navigation -->
+<script 
src="//netdna.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
+<!-- blueimp Gallery script -->
+<script 
src="//blueimp.github.io/Gallery/js/jquery.blueimp-gallery.min.js"></script>
+<!-- The Iframe Transport is required for browsers without support for XHR 
file uploads -->
+<script src="js/jquery.iframe-transport.js"></script>
+<!-- The basic File Upload plugin -->
+<script src="js/jquery.fileupload.js"></script>
+<!-- The File Upload processing plugin -->
+<script src="js/jquery.fileupload-process.js"></script>
+<!-- The File Upload image preview & resize plugin -->
+<script src="js/jquery.fileupload-image.js"></script>
+<!-- The File Upload audio preview plugin -->
+<script src="js/jquery.fileupload-audio.js"></script>
+<!-- The File Upload video preview plugin -->
+<script src="js/jquery.fileupload-video.js"></script>
+<!-- The File Upload validation plugin -->
+<script src="js/jquery.fileupload-validate.js"></script>
+<!-- The File Upload Angular JS module -->
+<script src="js/jquery.fileupload-angular.js"></script>
+<!-- The main application script -->
+<script src="js/app.js"></script>
+</body>
+</html>

Added: branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/basic-plus.html
===================================================================
--- branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/basic-plus.html    
                        (rev 0)
+++ branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/basic-plus.html    
2016-07-02 00:59:48 UTC (rev 15364)
@@ -0,0 +1,226 @@
+<!DOCTYPE HTML>
+<!--
+/*
+ * jQuery File Upload Plugin Basic Plus Demo
+ * https://github.com/blueimp/jQuery-File-Upload
+ *
+ * Copyright 2013, Sebastian Tschan
+ * https://blueimp.net
+ *
+ * Licensed under the MIT license:
+ * http://www.opensource.org/licenses/MIT
+ */
+-->
+<html lang="en">
+<head>
+<!-- Force latest IE rendering engine or ChromeFrame if installed -->
+<!--[if IE]><meta http-equiv="X-UA-Compatible" 
content="IE=edge,chrome=1"><![endif]-->
+<meta charset="utf-8">
+<title>jQuery File Upload Demo - Basic Plus version</title>
+<meta name="description" content="File Upload widget with multiple file 
selection, drag&amp;drop support, progress bar, validation and preview images, 
audio and video for jQuery. Supports cross-domain, chunked and resumable file 
uploads. Works with any server-side platform (Google App Engine, PHP, Python, 
Ruby on Rails, Java, etc.) that supports standard HTML form file uploads.">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<!-- Bootstrap styles -->
+<link rel="stylesheet" 
href="//netdna.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
+<!-- Generic page styles -->
+<link rel="stylesheet" href="css/style.css">
+<!-- CSS to style the file input field as button and adjust the Bootstrap 
progress bars -->
+<link rel="stylesheet" href="css/jquery.fileupload.css">
+</head>
+<body>
+<div class="navbar navbar-default navbar-fixed-top">
+    <div class="container">
+        <div class="navbar-header">
+            <button type="button" class="navbar-toggle" data-toggle="collapse" 
data-target=".navbar-fixed-top .navbar-collapse">
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+            </button>
+            <a class="navbar-brand" 
href="https://github.com/blueimp/jQuery-File-Upload";>jQuery File Upload</a>
+        </div>
+        <div class="navbar-collapse collapse">
+            <ul class="nav navbar-nav">
+                <li><a 
href="https://github.com/blueimp/jQuery-File-Upload/tags";>Download</a></li>
+                <li><a 
href="https://github.com/blueimp/jQuery-File-Upload";>Source Code</a></li>
+                <li><a 
href="https://github.com/blueimp/jQuery-File-Upload/wiki";>Documentation</a></li>
+                <li><a href="https://blueimp.net";>&copy; Sebastian 
Tschan</a></li>
+            </ul>
+        </div>
+    </div>
+</div>
+<div class="container">
+    <h1>jQuery File Upload Demo</h1>
+    <h2 class="lead">Basic Plus version</h2>
+    <ul class="nav nav-tabs">
+        <li><a href="basic.html">Basic</a></li>
+        <li class="active"><a href="basic-plus.html">Basic Plus</a></li>
+        <li><a href="index.html">Basic Plus UI</a></li>
+        <li><a href="angularjs.html">AngularJS</a></li>
+        <li><a href="jquery-ui.html">jQuery UI</a></li>
+    </ul>
+    <br>
+    <blockquote>
+        <p>File Upload widget with multiple file selection, drag&amp;drop 
support, progress bar, validation and preview images, audio and video for 
jQuery.<br>
+        Supports cross-domain, chunked and resumable file uploads and 
client-side image resizing.<br>
+        Works with any server-side platform (PHP, Python, Ruby on Rails, Java, 
Node.js, Go etc.) that supports standard HTML form file uploads.</p>
+    </blockquote>
+    <br>
+    <!-- The fileinput-button span is used to style the file input field as 
button -->
+    <span class="btn btn-success fileinput-button">
+        <i class="glyphicon glyphicon-plus"></i>
+        <span>Add files...</span>
+        <!-- The file input field used as target for the file upload widget -->
+        <input id="fileupload" type="file" name="files[]" multiple>
+    </span>
+    <br>
+    <br>
+    <!-- The global progress bar -->
+    <div id="progress" class="progress">
+        <div class="progress-bar progress-bar-success"></div>
+    </div>
+    <!-- The container for the uploaded files -->
+    <div id="files" class="files"></div>
+    <br>
+    <div class="panel panel-default">
+        <div class="panel-heading">
+            <h3 class="panel-title">Demo Notes</h3>
+        </div>
+        <div class="panel-body">
+            <ul>
+                <li>The maximum file size for uploads in this demo is 
<strong>999 KB</strong> (default file size is unlimited).</li>
+                <li>Only image files (<strong>JPG, GIF, PNG</strong>) are 
allowed in this demo (by default there is no file type restriction).</li>
+                <li>Uploaded files will be deleted automatically after 
<strong>5 minutes or less</strong> (demo files are stored in memory).</li>
+                <li>You can <strong>drag &amp; drop</strong> files from your 
desktop on this webpage (see <a 
href="https://github.com/blueimp/jQuery-File-Upload/wiki/Browser-support";>Browser
 support</a>).</li>
+                <li>Please refer to the <a 
href="https://github.com/blueimp/jQuery-File-Upload";>project website</a> and <a 
href="https://github.com/blueimp/jQuery-File-Upload/wiki";>documentation</a> for 
more information.</li>
+                <li>Built with the <a 
href="http://getbootstrap.com/";>Bootstrap</a> CSS framework and Icons from <a 
href="http://glyphicons.com/";>Glyphicons</a>.</li>
+            </ul>
+        </div>
+    </div>
+</div>
+<script 
src="//ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
+<!-- The jQuery UI widget factory, can be omitted if jQuery UI is already 
included -->
+<script src="js/vendor/jquery.ui.widget.js"></script>
+<!-- The Load Image plugin is included for the preview images and image 
resizing functionality -->
+<script 
src="//blueimp.github.io/JavaScript-Load-Image/js/load-image.all.min.js"></script>
+<!-- The Canvas to Blob plugin is included for image resizing functionality -->
+<script 
src="//blueimp.github.io/JavaScript-Canvas-to-Blob/js/canvas-to-blob.min.js"></script>
+<!-- Bootstrap JS is not required, but included for the responsive demo 
navigation -->
+<script 
src="//netdna.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
+<!-- The Iframe Transport is required for browsers without support for XHR 
file uploads -->
+<script src="js/jquery.iframe-transport.js"></script>
+<!-- The basic File Upload plugin -->
+<script src="js/jquery.fileupload.js"></script>
+<!-- The File Upload processing plugin -->
+<script src="js/jquery.fileupload-process.js"></script>
+<!-- The File Upload image preview & resize plugin -->
+<script src="js/jquery.fileupload-image.js"></script>
+<!-- The File Upload audio preview plugin -->
+<script src="js/jquery.fileupload-audio.js"></script>
+<!-- The File Upload video preview plugin -->
+<script src="js/jquery.fileupload-video.js"></script>
+<!-- The File Upload validation plugin -->
+<script src="js/jquery.fileupload-validate.js"></script>
+<script>
+/*jslint unparam: true, regexp: true */
+/*global window, $ */
+$(function () {
+    'use strict';
+    // Change this to the location of your server-side upload handler:
+    var url = window.location.hostname === 'blueimp.github.io' ?
+                '//jquery-file-upload.appspot.com/' : 'server/php/',
+        uploadButton = $('<button/>')
+            .addClass('btn btn-primary')
+            .prop('disabled', true)
+            .text('Processing...')
+            .on('click', function () {
+                var $this = $(this),
+                    data = $this.data();
+                $this
+                    .off('click')
+                    .text('Abort')
+                    .on('click', function () {
+                        $this.remove();
+                        data.abort();
+                    });
+                data.submit().always(function () {
+                    $this.remove();
+                });
+            });
+    $('#fileupload').fileupload({
+        url: url,
+        dataType: 'json',
+        autoUpload: false,
+        acceptFileTypes: /(\.|\/)(gif|jpe?g|png)$/i,
+        maxFileSize: 999000,
+        // Enable image resizing, except for Android and Opera,
+        // which actually support image resizing, but fail to
+        // send Blob objects via XHR requests:
+        disableImageResize: /Android(?!.*Chrome)|Opera/
+            .test(window.navigator.userAgent),
+        previewMaxWidth: 100,
+        previewMaxHeight: 100,
+        previewCrop: true
+    }).on('fileuploadadd', function (e, data) {
+        data.context = $('<div/>').appendTo('#files');
+        $.each(data.files, function (index, file) {
+            var node = $('<p/>')
+                    .append($('<span/>').text(file.name));
+            if (!index) {
+                node
+                    .append('<br>')
+                    .append(uploadButton.clone(true).data(data));
+            }
+            node.appendTo(data.context);
+        });
+    }).on('fileuploadprocessalways', function (e, data) {
+        var index = data.index,
+            file = data.files[index],
+            node = $(data.context.children()[index]);
+        if (file.preview) {
+            node
+                .prepend('<br>')
+                .prepend(file.preview);
+        }
+        if (file.error) {
+            node
+                .append('<br>')
+                .append($('<span class="text-danger"/>').text(file.error));
+        }
+        if (index + 1 === data.files.length) {
+            data.context.find('button')
+                .text('Upload')
+                .prop('disabled', !!data.files.error);
+        }
+    }).on('fileuploadprogressall', function (e, data) {
+        var progress = parseInt(data.loaded / data.total * 100, 10);
+        $('#progress .progress-bar').css(
+            'width',
+            progress + '%'
+        );
+    }).on('fileuploaddone', function (e, data) {
+        $.each(data.result.files, function (index, file) {
+            if (file.url) {
+                var link = $('<a>')
+                    .attr('target', '_blank')
+                    .prop('href', file.url);
+                $(data.context.children()[index])
+                    .wrap(link);
+            } else if (file.error) {
+                var error = $('<span class="text-danger"/>').text(file.error);
+                $(data.context.children()[index])
+                    .append('<br>')
+                    .append(error);
+            }
+        });
+    }).on('fileuploadfail', function (e, data) {
+        $.each(data.files, function (index) {
+            var error = $('<span class="text-danger"/>').text('File upload 
failed.');
+            $(data.context.children()[index])
+                .append('<br>')
+                .append(error);
+        });
+    }).prop('disabled', !$.support.fileInput)
+        .parent().addClass($.support.fileInput ? undefined : 'disabled');
+});
+</script>
+</body>
+</html>

Added: branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/basic.html
===================================================================
--- branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/basic.html         
                (rev 0)
+++ branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/basic.html 
2016-07-02 00:59:48 UTC (rev 15364)
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML>
+<!--
+/*
+ * jQuery File Upload Plugin Basic Demo
+ * https://github.com/blueimp/jQuery-File-Upload
+ *
+ * Copyright 2013, Sebastian Tschan
+ * https://blueimp.net
+ *
+ * Licensed under the MIT license:
+ * http://www.opensource.org/licenses/MIT
+ */
+-->
+<html lang="en">
+<head>
+<!-- Force latest IE rendering engine or ChromeFrame if installed -->
+<!--[if IE]><meta http-equiv="X-UA-Compatible" 
content="IE=edge,chrome=1"><![endif]-->
+<meta charset="utf-8">
+<title>jQuery File Upload Demo - Basic version</title>
+<meta name="description" content="File Upload widget with multiple file 
selection, drag&amp;drop support and progress bar for jQuery. Supports 
cross-domain, chunked and resumable file uploads. Works with any server-side 
platform (PHP, Python, Ruby on Rails, Java, Node.js, Go etc.) that supports 
standard HTML form file uploads.">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<!-- Bootstrap styles -->
+<link rel="stylesheet" 
href="//netdna.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
+<!-- Generic page styles -->
+<link rel="stylesheet" href="css/style.css">
+<!-- CSS to style the file input field as button and adjust the Bootstrap 
progress bars -->
+<link rel="stylesheet" href="css/jquery.fileupload.css">
+</head>
+<body>
+<div class="navbar navbar-default navbar-fixed-top">
+    <div class="container">
+        <div class="navbar-header">
+            <button type="button" class="navbar-toggle" data-toggle="collapse" 
data-target=".navbar-fixed-top .navbar-collapse">
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+            </button>
+            <a class="navbar-brand" 
href="https://github.com/blueimp/jQuery-File-Upload";>jQuery File Upload</a>
+        </div>
+        <div class="navbar-collapse collapse">
+            <ul class="nav navbar-nav">
+                <li><a 
href="https://github.com/blueimp/jQuery-File-Upload/tags";>Download</a></li>
+                <li><a 
href="https://github.com/blueimp/jQuery-File-Upload";>Source Code</a></li>
+                <li><a 
href="https://github.com/blueimp/jQuery-File-Upload/wiki";>Documentation</a></li>
+                <li><a href="https://blueimp.net";>&copy; Sebastian 
Tschan</a></li>
+            </ul>
+        </div>
+    </div>
+</div>
+<div class="container">
+    <h1>jQuery File Upload Demo</h1>
+    <h2 class="lead">Basic version</h2>
+    <ul class="nav nav-tabs">
+        <li class="active"><a href="basic.html">Basic</a></li>
+        <li><a href="basic-plus.html">Basic Plus</a></li>
+        <li><a href="index.html">Basic Plus UI</a></li>
+        <li><a href="angularjs.html">AngularJS</a></li>
+        <li><a href="jquery-ui.html">jQuery UI</a></li>
+    </ul>
+    <br>
+    <blockquote>
+        <p>File Upload widget with multiple file selection, drag&amp;drop 
support and progress bar for jQuery.<br>
+        Supports cross-domain, chunked and resumable file uploads.<br>
+        Works with any server-side platform (PHP, Python, Ruby on Rails, Java, 
Node.js, Go etc.) that supports standard HTML form file uploads.</p>
+    </blockquote>
+    <br>
+    <!-- The fileinput-button span is used to style the file input field as 
button -->
+    <span class="btn btn-success fileinput-button">
+        <i class="glyphicon glyphicon-plus"></i>
+        <span>Select files...</span>
+        <!-- The file input field used as target for the file upload widget -->
+        <input id="fileupload" type="file" name="files[]" multiple>
+    </span>
+    <br>
+    <br>
+    <!-- The global progress bar -->
+    <div id="progress" class="progress">
+        <div class="progress-bar progress-bar-success"></div>
+    </div>
+    <!-- The container for the uploaded files -->
+    <div id="files" class="files"></div>
+    <br>
+    <div class="panel panel-default">
+        <div class="panel-heading">
+            <h3 class="panel-title">Demo Notes</h3>
+        </div>
+        <div class="panel-body">
+            <ul>
+                <li>The maximum file size for uploads in this demo is 
<strong>999 KB</strong> (default file size is unlimited).</li>
+                <li>Only image files (<strong>JPG, GIF, PNG</strong>) are 
allowed in this demo (by default there is no file type restriction).</li>
+                <li>Uploaded files will be deleted automatically after 
<strong>5 minutes or less</strong> (demo files are stored in memory).</li>
+                <li>You can <strong>drag &amp; drop</strong> files from your 
desktop on this webpage (see <a 
href="https://github.com/blueimp/jQuery-File-Upload/wiki/Browser-support";>Browser
 support</a>).</li>
+                <li>Please refer to the <a 
href="https://github.com/blueimp/jQuery-File-Upload";>project website</a> and <a 
href="https://github.com/blueimp/jQuery-File-Upload/wiki";>documentation</a> for 
more information.</li>
+                <li>Built with the <a 
href="http://getbootstrap.com/";>Bootstrap</a> CSS framework and Icons from <a 
href="http://glyphicons.com/";>Glyphicons</a>.</li>
+            </ul>
+        </div>
+    </div>
+</div>
+<script 
src="//ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
+<!-- The jQuery UI widget factory, can be omitted if jQuery UI is already 
included -->
+<script src="js/vendor/jquery.ui.widget.js"></script>
+<!-- The Iframe Transport is required for browsers without support for XHR 
file uploads -->
+<script src="js/jquery.iframe-transport.js"></script>
+<!-- The basic File Upload plugin -->
+<script src="js/jquery.fileupload.js"></script>
+<!-- Bootstrap JS is not required, but included for the responsive demo 
navigation -->
+<script 
src="//netdna.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
+<script>
+/*jslint unparam: true */
+/*global window, $ */
+$(function () {
+    'use strict';
+    // Change this to the location of your server-side upload handler:
+    var url = window.location.hostname === 'blueimp.github.io' ?
+                '//jquery-file-upload.appspot.com/' : 'server/php/';
+    $('#fileupload').fileupload({
+        url: url,
+        dataType: 'json',
+        done: function (e, data) {
+            $.each(data.result.files, function (index, file) {
+                $('<p/>').text(file.name).appendTo('#files');
+            });
+        },
+        progressall: function (e, data) {
+            var progress = parseInt(data.loaded / data.total * 100, 10);
+            $('#progress .progress-bar').css(
+                'width',
+                progress + '%'
+            );
+        }
+    }).prop('disabled', !$.support.fileInput)
+        .parent().addClass($.support.fileInput ? undefined : 'disabled');
+});
+</script>
+</body>
+</html>

Added: branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/bower.json
===================================================================
--- branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/bower.json         
                (rev 0)
+++ branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/bower.json 
2016-07-02 00:59:48 UTC (rev 15364)
@@ -0,0 +1,64 @@
+{
+  "name": "blueimp-file-upload",
+  "version": "9.12.5",
+  "title": "jQuery File Upload",
+  "description": "File Upload widget with multiple file selection, 
drag&amp;drop support, progress bar, validation and preview images.",
+  "keywords": [
+    "jquery",
+    "file",
+    "upload",
+    "widget",
+    "multiple",
+    "selection",
+    "drag",
+    "drop",
+    "progress",
+    "preview",
+    "cross-domain",
+    "cross-site",
+    "chunk",
+    "resume",
+    "gae",
+    "go",
+    "python",
+    "php",
+    "bootstrap"
+  ],
+  "homepage": "https://github.com/blueimp/jQuery-File-Upload";,
+  "author": {
+    "name": "Sebastian Tschan",
+    "url": "https://blueimp.net";
+  },
+  "maintainers": [
+    {
+      "name": "Sebastian Tschan",
+      "url": "https://blueimp.net";
+    }
+  ],
+  "repository": {
+    "type": "git",
+    "url": "git://github.com/blueimp/jQuery-File-Upload.git"
+  },
+  "bugs": "https://github.com/blueimp/jQuery-File-Upload/issues";,
+  "license": "MIT",
+  "dependencies": {
+    "jquery": ">=1.6",
+    "blueimp-tmpl": ">=2.5.4",
+    "blueimp-load-image": ">=1.13.0",
+    "blueimp-canvas-to-blob": ">=2.1.1"
+  },
+  "main": [
+    "js/jquery.fileupload.js"
+  ],
+  "ignore": [
+    "/*.*",
+    "/cors",
+    "css/demo-ie8.css",
+    "css/demo.css",
+    "css/style.css",
+    "js/app.js",
+    "js/main.js",
+    "server",
+    "test"
+  ]
+}

Added: 
branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/cors/postmessage.html
===================================================================
--- 
branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/cors/postmessage.html  
                            (rev 0)
+++ 
branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/cors/postmessage.html  
    2016-07-02 00:59:48 UTC (rev 15364)
@@ -0,0 +1,75 @@
+<!DOCTYPE HTML>
+<!--
+/*
+ * jQuery File Upload Plugin postMessage API
+ * https://github.com/blueimp/jQuery-File-Upload
+ *
+ * Copyright 2011, Sebastian Tschan
+ * https://blueimp.net
+ *
+ * Licensed under the MIT license:
+ * http://www.opensource.org/licenses/MIT
+ */
+-->
+<html lang="en">
+<head>
+<meta charset="utf-8">
+<title>jQuery File Upload Plugin postMessage API</title>
+<script 
src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
+</head>
+<body>
+<script>
+/*jslint unparam: true, regexp: true */
+/*global $, Blob, FormData, location */
+'use strict';
+var origin = /^http:\/\/example.org/,
+    target = new RegExp('^(http(s)?:)?\\/\\/' + location.host + '\\/');
+$(window).on('message', function (e) {
+    e = e.originalEvent;
+    var s = e.data,
+        xhr = $.ajaxSettings.xhr(),
+        f;
+    if (!origin.test(e.origin)) {
+        throw new Error('Origin "' + e.origin + '" does not match ' + origin);
+    }
+    if (!target.test(e.data.url)) {
+        throw new Error('Target "' + e.data.url + '" does not match ' + 
target);
+    }
+    $(xhr.upload).on('progress', function (ev) {
+        ev = ev.originalEvent;
+        e.source.postMessage({
+            id: s.id,
+            type: ev.type,
+            timeStamp: ev.timeStamp,
+            lengthComputable: ev.lengthComputable,
+            loaded: ev.loaded,
+            total: ev.total
+        }, e.origin);
+    });
+    s.xhr = function () {
+        return xhr;
+    };
+    if (!(s.data instanceof Blob)) {
+        f = new FormData();
+        $.each(s.data, function (i, v) {
+            f.append(v.name, v.value);
+        });
+        s.data = f;
+    }
+    $.ajax(s).always(function (result, statusText, jqXHR) {
+        if (!jqXHR.done) {
+            jqXHR = result;
+            result = null;
+        }
+        e.source.postMessage({
+            id: s.id,
+            status: jqXHR.status,
+            statusText: statusText,
+            result: result,
+            headers: jqXHR.getAllResponseHeaders()
+        }, e.origin);
+    });
+});
+</script>
+</body>
+</html>

Added: branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/cors/result.html
===================================================================
--- branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/cors/result.html   
                        (rev 0)
+++ branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/cors/result.html   
2016-07-02 00:59:48 UTC (rev 15364)
@@ -0,0 +1,24 @@
+<!DOCTYPE HTML>
+<!--
+/*
+ * jQuery Iframe Transport Plugin Redirect Page
+ * https://github.com/blueimp/jQuery-File-Upload
+ *
+ * Copyright 2010, Sebastian Tschan
+ * https://blueimp.net
+ *
+ * Licensed under the MIT license:
+ * http://www.opensource.org/licenses/MIT
+ */
+-->
+<html lang="en">
+<head>
+<meta charset="utf-8">
+<title>jQuery Iframe Transport Plugin Redirect Page</title>
+</head>
+<body>
+<script>
+document.body.innerText=document.body.textContent=decodeURIComponent(window.location.search.slice(1));
+</script>
+</body>
+</html>

Added: branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/css/demo-ie8.css
===================================================================
--- branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/css/demo-ie8.css   
                        (rev 0)
+++ branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/css/demo-ie8.css   
2016-07-02 00:59:48 UTC (rev 15364)
@@ -0,0 +1,21 @@
address@hidden "UTF-8";
+/*
+ * jQuery File Upload Demo CSS Fixes for IE<9
+ * https://github.com/blueimp/jQuery-File-Upload
+ *
+ * Copyright 2013, Sebastian Tschan
+ * https://blueimp.net
+ *
+ * Licensed under the MIT license:
+ * http://www.opensource.org/licenses/MIT
+ */
+
+.navigation {
+  list-style: none;
+  padding: 0;
+  margin: 1em 0;
+}
+.navigation li {
+  display: inline;
+  margin-right: 10px;
+}

Added: branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/css/demo.css
===================================================================
--- branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/css/demo.css       
                        (rev 0)
+++ branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/css/demo.css       
2016-07-02 00:59:48 UTC (rev 15364)
@@ -0,0 +1,67 @@
address@hidden "UTF-8";
+/*
+ * jQuery File Upload Demo CSS
+ * https://github.com/blueimp/jQuery-File-Upload
+ *
+ * Copyright 2013, Sebastian Tschan
+ * https://blueimp.net
+ *
+ * Licensed under the MIT license:
+ * http://www.opensource.org/licenses/MIT
+ */
+
+body {
+  max-width: 750px;
+  margin: 0 auto;
+  padding: 1em;
+  font-family: "Lucida Grande", "Lucida Sans Unicode", Arial, sans-serif;
+  font-size: 1em;
+  line-height: 1.4em;
+  background: #222;
+  color: #fff;
+  -webkit-text-size-adjust: 100%;
+      -ms-text-size-adjust: 100%;
+}
+a {
+  color: orange;
+  text-decoration: none;
+}
+img {
+  border: 0;
+  vertical-align: middle;
+}
+h1 {
+  line-height: 1em;
+}
+blockquote {
+  padding: 0 0 0 15px;
+  margin: 0 0 20px;
+  border-left: 5px solid #eee;
+}
+table {
+  width: 100%;
+  margin: 10px 0;
+}
+
+.fileupload-progress {
+       margin: 10px 0;
+}
+.fileupload-progress .progress-extended {
+       margin-top: 5px;
+}
+.error {
+  color: red;
+}
+
address@hidden (min-width: 481px) {
+  .navigation {
+    list-style: none;
+    padding: 0;
+  }
+  .navigation li {
+    display: inline-block;
+  }
+  .navigation li:not(:first-child):before {
+    content: "| ";
+  }
+}

Added: 
branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/css/jquery.fileupload-noscript.css
===================================================================
--- 
branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/css/jquery.fileupload-noscript.css
                         (rev 0)
+++ 
branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/css/jquery.fileupload-noscript.css
 2016-07-02 00:59:48 UTC (rev 15364)
@@ -0,0 +1,22 @@
address@hidden "UTF-8";
+/*
+ * jQuery File Upload Plugin NoScript CSS
+ * https://github.com/blueimp/jQuery-File-Upload
+ *
+ * Copyright 2013, Sebastian Tschan
+ * https://blueimp.net
+ *
+ * Licensed under the MIT license:
+ * http://www.opensource.org/licenses/MIT
+ */
+
+.fileinput-button input {
+  position: static;
+  opacity: 1;
+  filter: none;
+  font-size: inherit;
+  direction: inherit;
+}
+.fileinput-button span {
+  display: none;
+}

Added: 
branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/css/jquery.fileupload-ui-noscript.css
===================================================================
--- 
branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/css/jquery.fileupload-ui-noscript.css
                              (rev 0)
+++ 
branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/css/jquery.fileupload-ui-noscript.css
      2016-07-02 00:59:48 UTC (rev 15364)
@@ -0,0 +1,17 @@
address@hidden "UTF-8";
+/*
+ * jQuery File Upload UI Plugin NoScript CSS
+ * https://github.com/blueimp/jQuery-File-Upload
+ *
+ * Copyright 2012, Sebastian Tschan
+ * https://blueimp.net
+ *
+ * Licensed under the MIT license:
+ * http://www.opensource.org/licenses/MIT
+ */
+
+.fileinput-button i,
+.fileupload-buttonbar .delete,
+.fileupload-buttonbar .toggle {
+  display: none;
+}

Added: 
branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/css/jquery.fileupload-ui.css
===================================================================
--- 
branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/css/jquery.fileupload-ui.css
                               (rev 0)
+++ 
branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/css/jquery.fileupload-ui.css
       2016-07-02 00:59:48 UTC (rev 15364)
@@ -0,0 +1,57 @@
address@hidden "UTF-8";
+/*
+ * jQuery File Upload UI Plugin CSS
+ * https://github.com/blueimp/jQuery-File-Upload
+ *
+ * Copyright 2010, Sebastian Tschan
+ * https://blueimp.net
+ *
+ * Licensed under the MIT license:
+ * http://www.opensource.org/licenses/MIT
+ */
+
+.fileupload-buttonbar .btn,
+.fileupload-buttonbar .toggle {
+  margin-bottom: 5px;
+}
+.progress-animated .progress-bar,
+.progress-animated .bar {
+  background: url("../img/progressbar.gif") !important;
+  filter: none;
+}
+.fileupload-process {
+  float: right;
+  display: none;
+}
+.fileupload-processing .fileupload-process,
+.files .processing .preview {
+  display: block;
+  width: 32px;
+  height: 32px;
+  background: url("../img/loading.gif") center no-repeat;
+  background-size: contain;
+}
+.files audio,
+.files video {
+  max-width: 300px;
+}
+
address@hidden (max-width: 767px) {
+  .fileupload-buttonbar .toggle,
+  .files .toggle,
+  .files .btn span {
+    display: none;
+  }
+  .files .name {
+    width: 80px;
+    word-wrap: break-word;
+  }
+  .files audio,
+  .files video {
+    max-width: 80px;
+  }
+  .files img,
+  .files canvas {
+    max-width: 100%;
+  }
+}

Added: 
branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/css/jquery.fileupload.css
===================================================================
--- 
branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/css/jquery.fileupload.css
                          (rev 0)
+++ 
branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/css/jquery.fileupload.css
  2016-07-02 00:59:48 UTC (rev 15364)
@@ -0,0 +1,37 @@
address@hidden "UTF-8";
+/*
+ * jQuery File Upload Plugin CSS
+ * https://github.com/blueimp/jQuery-File-Upload
+ *
+ * Copyright 2013, Sebastian Tschan
+ * https://blueimp.net
+ *
+ * Licensed under the MIT license:
+ * http://www.opensource.org/licenses/MIT
+ */
+
+.fileinput-button {
+  position: relative;
+  overflow: hidden;
+  display: inline-block;
+}
+.fileinput-button input {
+  position: absolute;
+  top: 0;
+  right: 0;
+  margin: 0;
+  opacity: 0;
+  -ms-filter: 'alpha(opacity=0)';
+  font-size: 200px !important;
+  direction: ltr;
+  cursor: pointer;
+}
+
+/* Fixes for IE < 8 */
address@hidden screen\9 {
+  .fileinput-button input {
+    filter: alpha(opacity=0);
+    font-size: 100%;
+    height: 100%;
+  }
+}

Added: branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/css/style.css
===================================================================
--- branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/css/style.css      
                        (rev 0)
+++ branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/css/style.css      
2016-07-02 00:59:48 UTC (rev 15364)
@@ -0,0 +1,15 @@
address@hidden "UTF-8";
+/*
+ * jQuery File Upload Plugin CSS Example
+ * https://github.com/blueimp/jQuery-File-Upload
+ *
+ * Copyright 2013, Sebastian Tschan
+ * https://blueimp.net
+ *
+ * Licensed under the MIT license:
+ * http://www.opensource.org/licenses/MIT
+ */
+
+body {
+  padding-top: 60px;
+}

Added: branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/img/loading.gif
===================================================================
(Binary files differ)


Property changes on: 
branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/img/loading.gif
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Added: 
branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/img/progressbar.gif
===================================================================
(Binary files differ)


Property changes on: 
branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/img/progressbar.gif
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Added: branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/index.html
===================================================================
--- branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/index.html         
                (rev 0)
+++ branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/index.html 
2016-07-02 00:59:48 UTC (rev 15364)
@@ -0,0 +1,255 @@
+<!DOCTYPE HTML>
+<!--
+/*
+ * jQuery File Upload Plugin Demo
+ * https://github.com/blueimp/jQuery-File-Upload
+ *
+ * Copyright 2010, Sebastian Tschan
+ * https://blueimp.net
+ *
+ * Licensed under the MIT license:
+ * http://www.opensource.org/licenses/MIT
+ */
+-->
+<html lang="en">
+<head>
+<!-- Force latest IE rendering engine or ChromeFrame if installed -->
+<!--[if IE]>
+<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+<![endif]-->
+<meta charset="utf-8">
+<title>jQuery File Upload Demo</title>
+<meta name="description" content="File Upload widget with multiple file 
selection, drag&amp;drop support, progress bars, validation and preview images, 
audio and video for jQuery. Supports cross-domain, chunked and resumable file 
uploads and client-side image resizing. Works with any server-side platform 
(PHP, Python, Ruby on Rails, Java, Node.js, Go etc.) that supports standard 
HTML form file uploads.">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<!-- Bootstrap styles -->
+<link rel="stylesheet" 
href="//netdna.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
+<!-- Generic page styles -->
+<link rel="stylesheet" href="css/style.css">
+<!-- blueimp Gallery styles -->
+<link rel="stylesheet" 
href="//blueimp.github.io/Gallery/css/blueimp-gallery.min.css">
+<!-- CSS to style the file input field as button and adjust the Bootstrap 
progress bars -->
+<link rel="stylesheet" href="css/jquery.fileupload.css">
+<link rel="stylesheet" href="css/jquery.fileupload-ui.css">
+<!-- CSS adjustments for browsers with JavaScript disabled -->
+<noscript><link rel="stylesheet" 
href="css/jquery.fileupload-noscript.css"></noscript>
+<noscript><link rel="stylesheet" 
href="css/jquery.fileupload-ui-noscript.css"></noscript>
+</head>
+<body>
+<div class="navbar navbar-default navbar-fixed-top">
+    <div class="container">
+        <div class="navbar-header">
+            <button type="button" class="navbar-toggle" data-toggle="collapse" 
data-target=".navbar-fixed-top .navbar-collapse">
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+            </button>
+            <a class="navbar-brand" 
href="https://github.com/blueimp/jQuery-File-Upload";>jQuery File Upload</a>
+        </div>
+        <div class="navbar-collapse collapse">
+            <ul class="nav navbar-nav">
+                <li><a 
href="https://github.com/blueimp/jQuery-File-Upload/tags";>Download</a></li>
+                <li><a 
href="https://github.com/blueimp/jQuery-File-Upload";>Source Code</a></li>
+                <li><a 
href="https://github.com/blueimp/jQuery-File-Upload/wiki";>Documentation</a></li>
+                <li><a href="https://blueimp.net";>&copy; Sebastian 
Tschan</a></li>
+            </ul>
+        </div>
+    </div>
+</div>
+<div class="container">
+    <h1>jQuery File Upload Demo</h1>
+    <h2 class="lead">Basic Plus UI version</h2>
+    <ul class="nav nav-tabs">
+        <li><a href="basic.html">Basic</a></li>
+        <li><a href="basic-plus.html">Basic Plus</a></li>
+        <li class="active"><a href="index.html">Basic Plus UI</a></li>
+        <li><a href="angularjs.html">AngularJS</a></li>
+        <li><a href="jquery-ui.html">jQuery UI</a></li>
+    </ul>
+    <br>
+    <blockquote>
+        <p>File Upload widget with multiple file selection, drag&amp;drop 
support, progress bars, validation and preview images, audio and video for 
jQuery.<br>
+        Supports cross-domain, chunked and resumable file uploads and 
client-side image resizing.<br>
+        Works with any server-side platform (PHP, Python, Ruby on Rails, Java, 
Node.js, Go etc.) that supports standard HTML form file uploads.</p>
+    </blockquote>
+    <br>
+    <!-- The file upload form used as target for the file upload widget -->
+    <form id="fileupload" action="//jquery-file-upload.appspot.com/" 
method="POST" enctype="multipart/form-data">
+        <!-- Redirect browsers with JavaScript disabled to the origin page -->
+        <noscript><input type="hidden" name="redirect" 
value="https://blueimp.github.io/jQuery-File-Upload/";></noscript>
+        <!-- The fileupload-buttonbar contains buttons to add/delete files and 
start/cancel the upload -->
+        <div class="row fileupload-buttonbar">
+            <div class="col-lg-7">
+                <!-- The fileinput-button span is used to style the file input 
field as button -->
+                <span class="btn btn-success fileinput-button">
+                    <i class="glyphicon glyphicon-plus"></i>
+                    <span>Add files...</span>
+                    <input type="file" name="files[]" multiple>
+                </span>
+                <button type="submit" class="btn btn-primary start">
+                    <i class="glyphicon glyphicon-upload"></i>
+                    <span>Start upload</span>
+                </button>
+                <button type="reset" class="btn btn-warning cancel">
+                    <i class="glyphicon glyphicon-ban-circle"></i>
+                    <span>Cancel upload</span>
+                </button>
+                <button type="button" class="btn btn-danger delete">
+                    <i class="glyphicon glyphicon-trash"></i>
+                    <span>Delete</span>
+                </button>
+                <input type="checkbox" class="toggle">
+                <!-- The global file processing state -->
+                <span class="fileupload-process"></span>
+            </div>
+            <!-- The global progress state -->
+            <div class="col-lg-5 fileupload-progress fade">
+                <!-- The global progress bar -->
+                <div class="progress progress-striped active" 
role="progressbar" aria-valuemin="0" aria-valuemax="100">
+                    <div class="progress-bar progress-bar-success" 
style="width:0%;"></div>
+                </div>
+                <!-- The extended global progress state -->
+                <div class="progress-extended">&nbsp;</div>
+            </div>
+        </div>
+        <!-- The table listing the files available for upload/download -->
+        <table role="presentation" class="table table-striped"><tbody 
class="files"></tbody></table>
+    </form>
+    <br>
+    <div class="panel panel-default">
+        <div class="panel-heading">
+            <h3 class="panel-title">Demo Notes</h3>
+        </div>
+        <div class="panel-body">
+            <ul>
+                <li>The maximum file size for uploads in this demo is 
<strong>999 KB</strong> (default file size is unlimited).</li>
+                <li>Only image files (<strong>JPG, GIF, PNG</strong>) are 
allowed in this demo (by default there is no file type restriction).</li>
+                <li>Uploaded files will be deleted automatically after 
<strong>5 minutes or less</strong> (demo files are stored in memory).</li>
+                <li>You can <strong>drag &amp; drop</strong> files from your 
desktop on this webpage (see <a 
href="https://github.com/blueimp/jQuery-File-Upload/wiki/Browser-support";>Browser
 support</a>).</li>
+                <li>Please refer to the <a 
href="https://github.com/blueimp/jQuery-File-Upload";>project website</a> and <a 
href="https://github.com/blueimp/jQuery-File-Upload/wiki";>documentation</a> for 
more information.</li>
+                <li>Built with the <a 
href="http://getbootstrap.com/";>Bootstrap</a> CSS framework and Icons from <a 
href="http://glyphicons.com/";>Glyphicons</a>.</li>
+            </ul>
+        </div>
+    </div>
+</div>
+<!-- The blueimp Gallery widget -->
+<div id="blueimp-gallery" class="blueimp-gallery blueimp-gallery-controls" 
data-filter=":even">
+    <div class="slides"></div>
+    <h3 class="title"></h3>
+    <a class="prev">‹</a>
+    <a class="next">›</a>
+    <a class="close">×</a>
+    <a class="play-pause"></a>
+    <ol class="indicator"></ol>
+</div>
+<!-- The template to display files available for upload -->
+<script id="template-upload" type="text/x-tmpl">
+{% for (var i=0, file; file=o.files[i]; i++) { %}
+    <tr class="template-upload fade">
+        <td>
+            <span class="preview"></span>
+        </td>
+        <td>
+            <p class="name">{%=file.name%}</p>
+            <strong class="error text-danger"></strong>
+        </td>
+        <td>
+            <p class="size">Processing...</p>
+            <div class="progress progress-striped active" role="progressbar" 
aria-valuemin="0" aria-valuemax="100" aria-valuenow="0"><div 
class="progress-bar progress-bar-success" style="width:0%;"></div></div>
+        </td>
+        <td>
+            {% if (!i && !o.options.autoUpload) { %}
+                <button class="btn btn-primary start" disabled>
+                    <i class="glyphicon glyphicon-upload"></i>
+                    <span>Start</span>
+                </button>
+            {% } %}
+            {% if (!i) { %}
+                <button class="btn btn-warning cancel">
+                    <i class="glyphicon glyphicon-ban-circle"></i>
+                    <span>Cancel</span>
+                </button>
+            {% } %}
+        </td>
+    </tr>
+{% } %}
+</script>
+<!-- The template to display files available for download -->
+<script id="template-download" type="text/x-tmpl">
+{% for (var i=0, file; file=o.files[i]; i++) { %}
+    <tr class="template-download fade">
+        <td>
+            <span class="preview">
+                {% if (file.thumbnailUrl) { %}
+                    <a href="{%=file.url%}" title="{%=file.name%}" 
download="{%=file.name%}" data-gallery><img src="{%=file.thumbnailUrl%}"></a>
+                {% } %}
+            </span>
+        </td>
+        <td>
+            <p class="name">
+                {% if (file.url) { %}
+                    <a href="{%=file.url%}" title="{%=file.name%}" 
download="{%=file.name%}" 
{%=file.thumbnailUrl?'data-gallery':''%}>{%=file.name%}</a>
+                {% } else { %}
+                    <span>{%=file.name%}</span>
+                {% } %}
+            </p>
+            {% if (file.error) { %}
+                <div><span class="label label-danger">Error</span> 
{%=file.error%}</div>
+            {% } %}
+        </td>
+        <td>
+            <span class="size">{%=o.formatFileSize(file.size)%}</span>
+        </td>
+        <td>
+            {% if (file.deleteUrl) { %}
+                <button class="btn btn-danger delete" 
data-type="{%=file.deleteType%}" data-url="{%=file.deleteUrl%}"{% if 
(file.deleteWithCredentials) { %} data-xhr-fields='{"withCredentials":true}'{% 
} %}>
+                    <i class="glyphicon glyphicon-trash"></i>
+                    <span>Delete</span>
+                </button>
+                <input type="checkbox" name="delete" value="1" class="toggle">
+            {% } else { %}
+                <button class="btn btn-warning cancel">
+                    <i class="glyphicon glyphicon-ban-circle"></i>
+                    <span>Cancel</span>
+                </button>
+            {% } %}
+        </td>
+    </tr>
+{% } %}
+</script>
+<script 
src="//ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
+<!-- The jQuery UI widget factory, can be omitted if jQuery UI is already 
included -->
+<script src="js/vendor/jquery.ui.widget.js"></script>
+<!-- The Templates plugin is included to render the upload/download listings 
-->
+<script src="//blueimp.github.io/JavaScript-Templates/js/tmpl.min.js"></script>
+<!-- The Load Image plugin is included for the preview images and image 
resizing functionality -->
+<script 
src="//blueimp.github.io/JavaScript-Load-Image/js/load-image.all.min.js"></script>
+<!-- The Canvas to Blob plugin is included for image resizing functionality -->
+<script 
src="//blueimp.github.io/JavaScript-Canvas-to-Blob/js/canvas-to-blob.min.js"></script>
+<!-- Bootstrap JS is not required, but included for the responsive demo 
navigation -->
+<script 
src="//netdna.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
+<!-- blueimp Gallery script -->
+<script 
src="//blueimp.github.io/Gallery/js/jquery.blueimp-gallery.min.js"></script>
+<!-- The Iframe Transport is required for browsers without support for XHR 
file uploads -->
+<script src="js/jquery.iframe-transport.js"></script>
+<!-- The basic File Upload plugin -->
+<script src="js/jquery.fileupload.js"></script>
+<!-- The File Upload processing plugin -->
+<script src="js/jquery.fileupload-process.js"></script>
+<!-- The File Upload image preview & resize plugin -->
+<script src="js/jquery.fileupload-image.js"></script>
+<!-- The File Upload audio preview plugin -->
+<script src="js/jquery.fileupload-audio.js"></script>
+<!-- The File Upload video preview plugin -->
+<script src="js/jquery.fileupload-video.js"></script>
+<!-- The File Upload validation plugin -->
+<script src="js/jquery.fileupload-validate.js"></script>
+<!-- The File Upload user interface plugin -->
+<script src="js/jquery.fileupload-ui.js"></script>
+<!-- The main application script -->
+<script src="js/main.js"></script>
+<!-- The XDomainRequest Transport is included for cross-domain file deletion 
for IE 8 and IE 9 -->
+<!--[if (gte IE 8)&(lt IE 10)]>
+<script src="js/cors/jquery.xdr-transport.js"></script>
+<![endif]-->
+</body>
+</html>

Added: branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/jquery-ui.html
===================================================================
--- branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/jquery-ui.html     
                        (rev 0)
+++ branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/jquery-ui.html     
2016-07-02 00:59:48 UTC (rev 15364)
@@ -0,0 +1,250 @@
+<!DOCTYPE HTML>
+<!--
+/*
+ * jQuery File Upload Plugin jQuery UI Demo
+ * https://github.com/blueimp/jQuery-File-Upload
+ *
+ * Copyright 2013, Sebastian Tschan
+ * https://blueimp.net
+ *
+ * Licensed under the MIT license:
+ * http://www.opensource.org/licenses/MIT
+ */
+-->
+<html lang="en">
+<head>
+<!-- Force latest IE rendering engine or ChromeFrame if installed -->
+<!--[if IE]>
+<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+<![endif]-->
+<meta charset="utf-8">
+<title>jQuery File Upload Demo - jQuery UI version</title>
+<meta name="description" content="File Upload widget with multiple file 
selection, drag&amp;drop support, progress bars, validation and preview images, 
audio and video for jQuery. Supports cross-domain, chunked and resumable file 
uploads and client-side image resizing. Works with any server-side platform 
(PHP, Python, Ruby on Rails, Java, Node.js, Go etc.) that supports standard 
HTML form file uploads.">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<!-- jQuery UI styles -->
+<link rel="stylesheet" 
href="//ajax.googleapis.com/ajax/libs/jqueryui/1.11.1/themes/dark-hive/jquery-ui.css"
 id="theme">
+<!-- Demo styles -->
+<link rel="stylesheet" href="css/demo.css">
+<!--[if lte IE 8]>
+<link rel="stylesheet" href="css/demo-ie8.css">
+<![endif]-->
+<style>
+/* Adjust the jQuery UI widget font-size: */
+.ui-widget {
+    font-size: 0.95em;
+}
+</style>
+<!-- blueimp Gallery styles -->
+<link rel="stylesheet" 
href="//blueimp.github.io/Gallery/css/blueimp-gallery.min.css">
+<!-- CSS to style the file input field as button and adjust the Bootstrap 
progress bars -->
+<link rel="stylesheet" href="css/jquery.fileupload.css">
+<link rel="stylesheet" href="css/jquery.fileupload-ui.css">
+<!-- CSS adjustments for browsers with JavaScript disabled -->
+<noscript><link rel="stylesheet" 
href="css/jquery.fileupload-noscript.css"></noscript>
+<noscript><link rel="stylesheet" 
href="css/jquery.fileupload-ui-noscript.css"></noscript>
+</head>
+<body>
+<ul class="navigation">
+    <li><h3><a href="https://github.com/blueimp/jQuery-File-Upload";>jQuery 
File Upload</a></h3></li>
+    <li><a 
href="https://github.com/blueimp/jQuery-File-Upload/tags";>Download</a></li>
+    <li><a href="https://github.com/blueimp/jQuery-File-Upload";>Source 
Code</a></li>
+    <li><a 
href="https://github.com/blueimp/jQuery-File-Upload/wiki";>Documentation</a></li>
+    <li><a href="https://blueimp.net";>&copy; blueimp.net</a></li>
+</ul>
+<h1>jQuery File Upload Demo</h1>
+<h2>jQuery UI version</h2>
+<form>
+    <label for="theme-switcher">Theme:</label>
+    <select id="theme-switcher" class="pull-right">
+        <option value="black-tie">Black Tie</option>
+        <option value="blitzer">Blitzer</option>
+        <option value="cupertino">Cupertino</option>
+        <option value="dark-hive" selected>Dark Hive</option>
+        <option value="dot-luv">Dot Luv</option>
+        <option value="eggplant">Eggplant</option>
+        <option value="excite-bike">Excite Bike</option>
+        <option value="flick">Flick</option>
+        <option value="hot-sneaks">Hot sneaks</option>
+        <option value="humanity">Humanity</option>
+        <option value="le-frog">Le Frog</option>
+        <option value="mint-choc">Mint Choc</option>
+        <option value="overcast">Overcast</option>
+        <option value="pepper-grinder">Pepper Grinder</option>
+        <option value="redmond">Redmond</option>
+        <option value="smoothness">Smoothness</option>
+        <option value="south-street">South Street</option>
+        <option value="start">Start</option>
+        <option value="sunny">Sunny</option>
+        <option value="swanky-purse">Swanky Purse</option>
+        <option value="trontastic">Trontastic</option>
+        <option value="ui-darkness">UI Darkness</option>
+        <option value="ui-lightness">UI Lightness</option>
+        <option value="vader">Vader</option>
+    </select>
+</form>
+<ul class="navigation">
+    <li><a href="basic.html">Basic</a></li>
+    <li><a href="basic-plus.html">Basic Plus</a></li>
+    <li><a href="index.html">Basic Plus UI</a></li>
+    <li><a href="angularjs.html">AngularJS</a></li>
+    <li class="active"><a href="jquery-ui.html">jQuery UI</a></li>
+</ul>
+<blockquote>
+    <p>File Upload widget with multiple file selection, drag&amp;drop support, 
progress bars, validation and preview images, audio and video for jQuery UI.<br>
+    Supports cross-domain, chunked and resumable file uploads and client-side 
image resizing.<br>
+    Works with any server-side platform (PHP, Python, Ruby on Rails, Java, 
Node.js, Go etc.) that supports standard HTML form file uploads.</p>
+</blockquote>
+<!-- The file upload form used as target for the file upload widget -->
+<form id="fileupload" action="//jquery-file-upload.appspot.com/" method="POST" 
enctype="multipart/form-data">
+    <!-- Redirect browsers with JavaScript disabled to the origin page -->
+    <noscript><input type="hidden" name="redirect" 
value="https://blueimp.github.io/jQuery-File-Upload/";></noscript>
+    <!-- The fileupload-buttonbar contains buttons to add/delete files and 
start/cancel the upload -->
+    <div class="fileupload-buttonbar">
+        <div class="fileupload-buttons">
+            <!-- The fileinput-button span is used to style the file input 
field as button -->
+            <span class="fileinput-button">
+                <span>Add files...</span>
+                <input type="file" name="files[]" multiple>
+            </span>
+            <button type="submit" class="start">Start upload</button>
+            <button type="reset" class="cancel">Cancel upload</button>
+            <button type="button" class="delete">Delete</button>
+            <input type="checkbox" class="toggle">
+            <!-- The global file processing state -->
+            <span class="fileupload-process"></span>
+        </div>
+        <!-- The global progress state -->
+        <div class="fileupload-progress fade" style="display:none">
+            <!-- The global progress bar -->
+            <div class="progress" role="progressbar" aria-valuemin="0" 
aria-valuemax="100"></div>
+            <!-- The extended global progress state -->
+            <div class="progress-extended">&nbsp;</div>
+        </div>
+    </div>
+    <!-- The table listing the files available for upload/download -->
+    <table role="presentation"><tbody class="files"></tbody></table>
+</form>
+<br>
+<h3>Demo Notes</h3>
+<ul>
+    <li>The maximum file size for uploads in this demo is <strong>999 
KB</strong> (default file size is unlimited).</li>
+    <li>Only image files (<strong>JPG, GIF, PNG</strong>) are allowed in this 
demo (by default there is no file type restriction).</li>
+    <li>Uploaded files will be deleted automatically after <strong>5 minutes 
or less</strong> (demo files are stored in memory).</li>
+    <li>You can <strong>drag &amp; drop</strong> files from your desktop on 
this webpage (see <a 
href="https://github.com/blueimp/jQuery-File-Upload/wiki/Browser-support";>Browser
 support</a>).</li>
+    <li>Please refer to the <a 
href="https://github.com/blueimp/jQuery-File-Upload";>project website</a> and <a 
href="https://github.com/blueimp/jQuery-File-Upload/wiki";>documentation</a> for 
more information.</li>
+    <li>Built with <a href="https://jqueryui.com";>jQuery UI</a>.</li>
+</ul>
+<!-- The blueimp Gallery widget -->
+<div id="blueimp-gallery" class="blueimp-gallery blueimp-gallery-controls" 
data-filter=":even">
+    <div class="slides"></div>
+    <h3 class="title"></h3>
+    <a class="prev">‹</a>
+    <a class="next">›</a>
+    <a class="close">×</a>
+    <a class="play-pause"></a>
+    <ol class="indicator"></ol>
+</div>
+<!-- The template to display files available for upload -->
+<script id="template-upload" type="text/x-tmpl">
+{% for (var i=0, file; file=o.files[i]; i++) { %}
+    <tr class="template-upload fade">
+        <td>
+            <span class="preview"></span>
+        </td>
+        <td>
+            <p class="name">{%=file.name%}</p>
+            <strong class="error"></strong>
+        </td>
+        <td>
+            <p class="size">Processing...</p>
+            <div class="progress"></div>
+        </td>
+        <td>
+            {% if (!i && !o.options.autoUpload) { %}
+                <button class="start" disabled>Start</button>
+            {% } %}
+            {% if (!i) { %}
+                <button class="cancel">Cancel</button>
+            {% } %}
+        </td>
+    </tr>
+{% } %}
+</script>
+<!-- The template to display files available for download -->
+<script id="template-download" type="text/x-tmpl">
+{% for (var i=0, file; file=o.files[i]; i++) { %}
+    <tr class="template-download fade">
+        <td>
+            <span class="preview">
+                {% if (file.thumbnailUrl) { %}
+                    <a href="{%=file.url%}" title="{%=file.name%}" 
download="{%=file.name%}" data-gallery><img src="{%=file.thumbnailUrl%}"></a>
+                {% } %}
+            </span>
+        </td>
+        <td>
+            <p class="name">
+                <a href="{%=file.url%}" title="{%=file.name%}" 
download="{%=file.name%}" 
{%=file.thumbnailUrl?'data-gallery':''%}>{%=file.name%}</a>
+            </p>
+            {% if (file.error) { %}
+                <div><span class="error">Error</span> {%=file.error%}</div>
+            {% } %}
+        </td>
+        <td>
+            <span class="size">{%=o.formatFileSize(file.size)%}</span>
+        </td>
+        <td>
+            <button class="delete" data-type="{%=file.deleteType%}" 
data-url="{%=file.deleteUrl%}"{% if (file.deleteWithCredentials) { %} 
data-xhr-fields='{"withCredentials":true}'{% } %}>Delete</button>
+            <input type="checkbox" name="delete" value="1" class="toggle">
+        </td>
+    </tr>
+{% } %}
+</script>
+<script src="js/jquery.min.js"></script>
+<script src="js/jquery-ui.min.js"></script>
+<!-- The Templates plugin is included to render the upload/download listings 
-->
+<script src="js/tmpl.min.js"></script>
+<!-- The Load Image plugin is included for the preview images and image 
resizing functionality -->
+<script src="js/load-image.all.min.js"></script>
+<!-- The Canvas to Blob plugin is included for image resizing functionality -->
+<script src="js/canvas-to-blob.min.js"></script>
+<!-- blueimp Gallery script -->
+<script src="js/jquery.blueimp-gallery.min.js"></script>
+<!-- The Iframe Transport is required for browsers without support for XHR 
file uploads -->
+<script src="js/jquery.iframe-transport.js"></script>
+<!-- The basic File Upload plugin -->
+<script src="js/jquery.fileupload.js"></script>
+<!-- The File Upload processing plugin -->
+<script src="js/jquery.fileupload-process.js"></script>
+<!-- The File Upload image preview & resize plugin -->
+<script src="js/jquery.fileupload-image.js"></script>
+<!-- The File Upload audio preview plugin -->
+<script src="js/jquery.fileupload-audio.js"></script>
+<!-- The File Upload video preview plugin -->
+<script src="js/jquery.fileupload-video.js"></script>
+<!-- The File Upload validation plugin -->
+<script src="js/jquery.fileupload-validate.js"></script>
+<!-- The File Upload user interface plugin -->
+<script src="js/jquery.fileupload-ui.js"></script>
+<!-- The File Upload jQuery UI plugin -->
+<script src="js/jquery.fileupload-jquery-ui.js"></script>
+<!-- The main application script -->
+<script src="js/main.js"></script>
+<script>
+// Initialize the jQuery UI theme switcher:
+$('#theme-switcher').change(function () {
+    var theme = $('#theme');
+    theme.prop(
+        'href',
+        theme.prop('href').replace(
+            /[\w\-]+\/jquery-ui.css/,
+            $(this).val() + '/jquery-ui.css'
+        )
+    );
+});
+</script>
+<!-- The XDomainRequest Transport is included for cross-domain file deletion 
for IE 8 and IE 9 -->
+<!--[if (gte IE 8)&(lt IE 10)]>
+<script src="js/cors/jquery.xdr-transport.js"></script>
+<![endif]-->
+</body>
+</html>

Added: branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/js/app.js
===================================================================
--- branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/js/app.js          
                (rev 0)
+++ branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/js/app.js  
2016-07-02 00:59:48 UTC (rev 15364)
@@ -0,0 +1,101 @@
+/*
+ * jQuery File Upload Plugin Angular JS Example
+ * https://github.com/blueimp/jQuery-File-Upload
+ *
+ * Copyright 2013, Sebastian Tschan
+ * https://blueimp.net
+ *
+ * Licensed under the MIT license:
+ * http://www.opensource.org/licenses/MIT
+ */
+
+/* jshint nomen:false */
+/* global window, angular */
+
+;(function () {
+    'use strict';
+
+    var isOnGitHub = window.location.hostname === 'blueimp.github.io',
+        url = isOnGitHub ? '//jquery-file-upload.appspot.com/' : 'server/php/';
+
+    angular.module('demo', [
+        'blueimp.fileupload'
+    ])
+        .config([
+            '$httpProvider', 'fileUploadProvider',
+            function ($httpProvider, fileUploadProvider) {
+                delete 
$httpProvider.defaults.headers.common['X-Requested-With'];
+                fileUploadProvider.defaults.redirect = 
window.location.href.replace(
+                    /\/[^\/]*$/,
+                    '/cors/result.html?%s'
+                );
+                if (isOnGitHub) {
+                    // Demo settings:
+                    angular.extend(fileUploadProvider.defaults, {
+                        // Enable image resizing, except for Android and Opera,
+                        // which actually support image resizing, but fail to
+                        // send Blob objects via XHR requests:
+                        disableImageResize: /Android(?!.*Chrome)|Opera/
+                            .test(window.navigator.userAgent),
+                        maxFileSize: 999000,
+                        acceptFileTypes: /(\.|\/)(gif|jpe?g|png)$/i
+                    });
+                }
+            }
+        ])
+
+        .controller('DemoFileUploadController', [
+            '$scope', '$http', '$filter', '$window',
+            function ($scope, $http) {
+                $scope.options = {
+                    url: url
+                };
+                if (!isOnGitHub) {
+                    $scope.loadingFiles = true;
+                    $http.get(url)
+                        .then(
+                            function (response) {
+                                $scope.loadingFiles = false;
+                                $scope.queue = response.data.files || [];
+                            },
+                            function () {
+                                $scope.loadingFiles = false;
+                            }
+                        );
+                }
+            }
+        ])
+
+        .controller('FileDestroyController', [
+            '$scope', '$http',
+            function ($scope, $http) {
+                var file = $scope.file,
+                    state;
+                if (file.url) {
+                    file.$state = function () {
+                        return state;
+                    };
+                    file.$destroy = function () {
+                        state = 'pending';
+                        return $http({
+                            url: file.deleteUrl,
+                            method: file.deleteType
+                        }).then(
+                            function () {
+                                state = 'resolved';
+                                $scope.clear(file);
+                            },
+                            function () {
+                                state = 'rejected';
+                            }
+                        );
+                    };
+                } else if (!file.$cancel && !file._index) {
+                    file.$cancel = function () {
+                        $scope.clear(file);
+                    };
+                }
+            }
+        ]);
+
+}());

Added: 
branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/js/cors/jquery.postmessage-transport.js
===================================================================
--- 
branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/js/cors/jquery.postmessage-transport.js
                            (rev 0)
+++ 
branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/js/cors/jquery.postmessage-transport.js
    2016-07-02 00:59:48 UTC (rev 15364)
@@ -0,0 +1,126 @@
+/*
+ * jQuery postMessage Transport Plugin
+ * https://github.com/blueimp/jQuery-File-Upload
+ *
+ * Copyright 2011, Sebastian Tschan
+ * https://blueimp.net
+ *
+ * Licensed under the MIT license:
+ * http://www.opensource.org/licenses/MIT
+ */
+
+/* global define, require, window, document */
+
+;(function (factory) {
+    'use strict';
+    if (typeof define === 'function' && define.amd) {
+        // Register as an anonymous AMD module:
+        define(['jquery'], factory);
+    } else if (typeof exports === 'object') {
+        // Node/CommonJS:
+        factory(require('jquery'));
+    } else {
+        // Browser globals:
+        factory(window.jQuery);
+    }
+}(function ($) {
+    'use strict';
+
+    var counter = 0,
+        names = [
+            'accepts',
+            'cache',
+            'contents',
+            'contentType',
+            'crossDomain',
+            'data',
+            'dataType',
+            'headers',
+            'ifModified',
+            'mimeType',
+            'password',
+            'processData',
+            'timeout',
+            'traditional',
+            'type',
+            'url',
+            'username'
+        ],
+        convert = function (p) {
+            return p;
+        };
+
+    $.ajaxSetup({
+        converters: {
+            'postmessage text': convert,
+            'postmessage json': convert,
+            'postmessage html': convert
+        }
+    });
+
+    $.ajaxTransport('postmessage', function (options) {
+        if (options.postMessage && window.postMessage) {
+            var iframe,
+                loc = $('<a>').prop('href', options.postMessage)[0],
+                target = loc.protocol + '//' + loc.host,
+                xhrUpload = options.xhr().upload;
+            // IE always includes the port for the host property of a link
+            // element, but not in the location.host or origin property for the
+            // default http port 80 and https port 443, so we strip it:
+            if (/^(http:\/\/.+:80)|(https:\/\/.+:443)$/.test(target)) {
+              target = target.replace(/:(80|443)$/, '');
+            }
+            return {
+                send: function (_, completeCallback) {
+                    counter += 1;
+                    var message = {
+                            id: 'postmessage-transport-' + counter
+                        },
+                        eventName = 'message.' + message.id;
+                    iframe = $(
+                        '<iframe style="display:none;" src="' +
+                            options.postMessage + '" name="' +
+                            message.id + '"></iframe>'
+                    ).bind('load', function () {
+                        $.each(names, function (i, name) {
+                            message[name] = options[name];
+                        });
+                        message.dataType = 
message.dataType.replace('postmessage ', '');
+                        $(window).bind(eventName, function (e) {
+                            e = e.originalEvent;
+                            var data = e.data,
+                                ev;
+                            if (e.origin === target && data.id === message.id) 
{
+                                if (data.type === 'progress') {
+                                    ev = document.createEvent('Event');
+                                    ev.initEvent(data.type, false, true);
+                                    $.extend(ev, data);
+                                    xhrUpload.dispatchEvent(ev);
+                                } else {
+                                    completeCallback(
+                                        data.status,
+                                        data.statusText,
+                                        {postmessage: data.result},
+                                        data.headers
+                                    );
+                                    iframe.remove();
+                                    $(window).unbind(eventName);
+                                }
+                            }
+                        });
+                        iframe[0].contentWindow.postMessage(
+                            message,
+                            target
+                        );
+                    }).appendTo(document.body);
+                },
+                abort: function () {
+                    if (iframe) {
+                        iframe.remove();
+                    }
+                }
+            };
+        }
+    });
+
+}));

Added: 
branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/js/cors/jquery.xdr-transport.js
===================================================================
--- 
branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/js/cors/jquery.xdr-transport.js
                            (rev 0)
+++ 
branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/js/cors/jquery.xdr-transport.js
    2016-07-02 00:59:48 UTC (rev 15364)
@@ -0,0 +1,89 @@
+/*
+ * jQuery XDomainRequest Transport Plugin
+ * https://github.com/blueimp/jQuery-File-Upload
+ *
+ * Copyright 2011, Sebastian Tschan
+ * https://blueimp.net
+ *
+ * Licensed under the MIT license:
+ * http://www.opensource.org/licenses/MIT
+ *
+ * Based on Julian Aubourg's ajaxHooks xdr.js:
+ * https://github.com/jaubourg/ajaxHooks/
+ */
+
+/* global define, require, window, XDomainRequest */
+
+;(function (factory) {
+    'use strict';
+    if (typeof define === 'function' && define.amd) {
+        // Register as an anonymous AMD module:
+        define(['jquery'], factory);
+    } else if (typeof exports === 'object') {
+        // Node/CommonJS:
+        factory(require('jquery'));
+    } else {
+        // Browser globals:
+        factory(window.jQuery);
+    }
+}(function ($) {
+    'use strict';
+    if (window.XDomainRequest && !$.support.cors) {
+        $.ajaxTransport(function (s) {
+            if (s.crossDomain && s.async) {
+                if (s.timeout) {
+                    s.xdrTimeout = s.timeout;
+                    delete s.timeout;
+                }
+                var xdr;
+                return {
+                    send: function (headers, completeCallback) {
+                        var addParamChar = /\?/.test(s.url) ? '&' : '?';
+                        function callback(status, statusText, responses, 
responseHeaders) {
+                            xdr.onload = xdr.onerror = xdr.ontimeout = $.noop;
+                            xdr = null;
+                            completeCallback(status, statusText, responses, 
responseHeaders);
+                        }
+                        xdr = new XDomainRequest();
+                        // XDomainRequest only supports GET and POST:
+                        if (s.type === 'DELETE') {
+                            s.url = s.url + addParamChar + '_method=DELETE';
+                            s.type = 'POST';
+                        } else if (s.type === 'PUT') {
+                            s.url = s.url + addParamChar + '_method=PUT';
+                            s.type = 'POST';
+                        } else if (s.type === 'PATCH') {
+                            s.url = s.url + addParamChar + '_method=PATCH';
+                            s.type = 'POST';
+                        }
+                        xdr.open(s.type, s.url);
+                        xdr.onload = function () {
+                            callback(
+                                200,
+                                'OK',
+                                {text: xdr.responseText},
+                                'Content-Type: ' + xdr.contentType
+                            );
+                        };
+                        xdr.onerror = function () {
+                            callback(404, 'Not Found');
+                        };
+                        if (s.xdrTimeout) {
+                            xdr.ontimeout = function () {
+                                callback(0, 'timeout');
+                            };
+                            xdr.timeout = s.xdrTimeout;
+                        }
+                        xdr.send((s.hasContent && s.data) || null);
+                    },
+                    abort: function () {
+                        if (xdr) {
+                            xdr.onerror = $.noop();
+                            xdr.abort();
+                        }
+                    }
+                };
+            }
+        });
+    }
+}));

Added: 
branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/js/jquery-ui.min.js
===================================================================
--- 
branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/js/jquery-ui.min.js    
                            (rev 0)
+++ 
branches/dev-syncromind-2/phpgwapi/js/jquery/file-upload/js/jquery-ui.min.js    
    2016-07-02 00:59:48 UTC (rev 15364)
@@ -0,0 +1,13 @@
+/*! jQuery UI - v1.11.4 - 2015-03-11
+* http://jqueryui.com
+* Includes: core.js, widget.js, mouse.js, position.js, accordion.js, 
autocomplete.js, button.js, datepicker.js, dialog.js, draggable.js, 
droppable.js, effect.js, effect-blind.js, effect-bounce.js, effect-clip.js, 
effect-drop.js, effect-explode.js, effect-fade.js, effect-fold.js, 
effect-highlight.js, effect-puff.js, effect-pulsate.js, effect-scale.js, 
effect-shake.js, effect-size.js, effect-slide.js, effect-transfer.js, menu.js, 
progressbar.js, resizable.js, selectable.js, selectmenu.js, slider.js, 
sortable.js, spinner.js, tabs.js, tooltip.js
+* Copyright 2015 jQuery Foundation and other contributors; Licensed MIT */
+
+(function(e){"function"==typeof 
define&&define.amd?define(["jquery"],e):e(jQuery)})(function(e){function 
t(t,s){var 
n,a,o,r=t.nodeName.toLowerCase();return"area"===r?(n=t.parentNode,a=n.name,t.href&&a&&"map"===n.nodeName.toLowerCase()?(o=e("img[usemap='#"+a+"']")[0],!!o&&i(o)):!1):(/^(input|select|textarea|button|object)$/.test(r)?!t.disabled:"a"===r?t.href||s:s)&&i(t)}function
 i(t){return 
e.expr.filters.visible(t)&&!e(t).parents().addBack().filter(function(){return"hidden"===e.css(this,"visibility")}).length}function
 s(e){for(var 
t,i;e.length&&e[0]!==document;){if(t=e.css("position"),("absolute"===t||"relative"===t||"fixed"===t)&&(i=parseInt(e.css("zIndex"),10),!isNaN(i)&&0!==i))return
 i;e=e.parent()}return 0}function 
n(){this._curInst=null,this._keyEvent=!1,this._disabledInputs=[],this._datepickerShowing=!1,this._inDialog=!1,this._mainDivId="ui-datepicker-div",this._inlineClass="ui-datepicker-inline",this._appendClass="ui-datepicker-append",this._triggerClass="ui-datepicker-trigger",this._dialogClass="ui-datepicker-dialog",this._disableClass="ui-datepicker-disabled",this._unselectableClass="ui-datepicker-unselectable",this._currentClass="ui-datepicker-current-day",this._dayOverClass="ui-datepicker-days-cell-over",this.regional=[],this.regional[""]={closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"mm/dd/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},this._defaults={showOn:"focus",showAnim:"fadeIn",showOptions:{},defaultDate:null,appendText:"",buttonText:"...",buttonImage:"",buttonImageOnly:!1,hideIfNoPrevNext:!1,navigationAsDateFormat:!1,gotoCurrent:!1,changeMonth:!1,changeYear:!1,yearRange:"c-10:c+10",showOtherMonths:!1,selectOtherMonths:!1,showWeek:!1,calculateWeek:this.iso8601Week,shortYearCutoff:"+10",minDate:null,maxDate:null,duration:"fast",beforeShowDay:null,beforeShow:null,onSelect:null,onChangeMonthYear:null,onClose:null,numberOfMonths:1,showCurrentAtPos:0,stepMonths:1,stepBigMonths:12,altField:"",altFormat:"",constrainInput:!0,showButtonPanel:!1,autoSize:!1,disabled:!1},e.extend(this._defaults,this.regional[""]),this.regional.en=e.extend(!0,{},this.regional[""]),this.regional["en-US"]=e.extend(!0,{},this.regional.en),this.dpDiv=a(e("<div
 id='"+this._mainDivId+"' class='ui-datepicker ui-widget ui-widget-content 
ui-helper-clearfix ui-corner-all'></div>"))}function a(t){var i="button, 
.ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a";return 
t.delegate(i,"mouseout",function(){e(this).removeClass("ui-state-hover"),-1!==this.className.indexOf("ui-datepicker-prev")&&e(this).removeClass("ui-datepicker-prev-hover"),-1!==this.className.indexOf("ui-datepicker-next")&&e(this).removeClass("ui-datepicker-next-hover")}).delegate(i,"mouseover",o)}function
 
o(){e.datepicker._isDisabledDatepicker(v.inline?v.dpDiv.parent()[0]:v.input[0])||(e(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover"),e(this).addClass("ui-state-hover"),-1!==this.className.indexOf("ui-datepicker-prev")&&e(this).addClass("ui-datepicker-prev-hover"),-1!==this.className.indexOf("ui-datepicker-next")&&e(this).addClass("ui-datepicker-next-hover"))}function
 r(t,i){e.extend(t,i);for(var s in i)null==i[s]&&(t[s]=i[s]);return t}function 
h(e){return function(){var 
t=this.element.val();e.apply(this,arguments),this._refresh(),t!==this.element.val()&&this._trigger("change")}}e.ui=e.ui||{},e.extend(e.ui,{version:"1.11.4",keyCode:{BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38}}),e.fn.extend({scrollParent:function(t){var
 
i=this.css("position"),s="absolute"===i,n=t?/(auto|scroll|hidden)/:/(auto|scroll)/,a=this.parents().filter(function(){var
 t=e(this);return 
s&&"static"===t.css("position")?!1:n.test(t.css("overflow")+t.css("overflow-y")+t.css("overflow-x"))}).eq(0);return"fixed"!==i&&a.length?a:e(this[0].ownerDocument||document)},uniqueId:function(){var
 e=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ 
++e)})}}(),removeUniqueId:function(){return 
this.each(function(){/^ui-id-\d+$/.test(this.id)&&e(this).removeAttr("id")})}}),e.extend(e.expr[":"],{data:e.expr.createPseudo?e.expr.createPseudo(function(t){return
 
function(i){return!!e.data(i,t)}}):function(t,i,s){return!!e.data(t,s[3])},focusable:function(i){return
 t(i,!isNaN(e.attr(i,"tabindex")))},tabbable:function(i){var 
s=e.attr(i,"tabindex"),n=isNaN(s);return(n||s>=0)&&t(i,!n)}}),e("<a>").outerWidth(1).jquery||e.each(["Width","Height"],function(t,i){function
 s(t,i,s,a){return 
e.each(n,function(){i-=parseFloat(e.css(t,"padding"+this))||0,s&&(i-=parseFloat(e.css(t,"border"+this+"Width"))||0),a&&(i-=parseFloat(e.css(t,"margin"+this))||0)}),i}var
 
n="Width"===i?["Left","Right"]:["Top","Bottom"],a=i.toLowerCase(),o={innerWidth:e.fn.innerWidth,innerHeight:e.fn.innerHeight,outerWidth:e.fn.outerWidth,outerHeight:e.fn.outerHeight};e.fn["inner"+i]=function(t){return
 void 
0===t?o["inner"+i].call(this):this.each(function(){e(this).css(a,s(this,t)+"px")})},e.fn["outer"+i]=function(t,n){return"number"!=typeof
 
t?o["outer"+i].call(this,t):this.each(function(){e(this).css(a,s(this,t,!0,n)+"px")})}}),e.fn.addBack||(e.fn.addBack=function(e){return
 
this.add(null==e?this.prevObject:this.prevObject.filter(e))}),e("<a>").data("a-b","a").removeData("a-b").data("a-b")&&(e.fn.removeData=function(t){return
 function(i){return 
arguments.length?t.call(this,e.camelCase(i)):t.call(this)}}(e.fn.removeData)),e.ui.ie=!!/msie
 
[\w.]+/.exec(navigator.userAgent.toLowerCase()),e.fn.extend({focus:function(t){return
 function(i,s){return"number"==typeof i?this.each(function(){var 
t=this;setTimeout(function(){e(t).focus(),s&&s.call(t)},i)}):t.apply(this,arguments)}}(e.fn.focus),disableSelection:function(){var
 e="onselectstart"in 
document.createElement("div")?"selectstart":"mousedown";return 
function(){return 
this.bind(e+".ui-disableSelection",function(e){e.preventDefault()})}}(),enableSelection:function(){return
 this.unbind(".ui-disableSelection")},zIndex:function(t){if(void 0!==t)return 
this.css("zIndex",t);if(this.length)for(var 
i,s,n=e(this[0]);n.length&&n[0]!==document;){if(i=n.css("position"),("absolute"===i||"relative"===i||"fixed"===i)&&(s=parseInt(n.css("zIndex"),10),!isNaN(s)&&0!==s))return
 s;n=n.parent()}return 0}}),e.ui.plugin={add:function(t,i,s){var 
n,a=e.ui[t].prototype;for(n in 
s)a.plugins[n]=a.plugins[n]||[],a.plugins[n].push([i,s[n]])},call:function(e,t,i,s){var
 
n,a=e.plugins[t];if(a&&(s||e.element[0].parentNode&&11!==e.element[0].parentNode.nodeType))for(n=0;a.length>n;n++)e.options[a[n][0]]&&a[n][1].apply(e.element,i)}};var
 l=0,u=Array.prototype.slice;e.cleanData=function(t){return function(i){var 
s,n,a;for(a=0;null!=(n=i[a]);a++)try{s=e._data(n,"events"),s&&s.remove&&e(n).triggerHandler("remove")}catch(o){}t(i)}}(e.cleanData),e.widget=function(t,i,s){var
 n,a,o,r,h={},l=t.split(".")[0];return 
t=t.split(".")[1],n=l+"-"+t,s||(s=i,i=e.Widget),e.expr[":"][n.toLowerCase()]=function(t){return!!e.data(t,n)},e[l]=e[l]||{},a=e[l][t],o=e[l][t]=function(e,t){return
 this._createWidget?(arguments.length&&this._createWidget(e,t),void 0):new 
o(e,t)},e.extend(o,a,{version:s.version,_proto:e.extend({},s),_childConstructors:[]}),r=new
 i,r.options=e.widget.extend({},r.options),e.each(s,function(t,s){return 
e.isFunction(s)?(h[t]=function(){var e=function(){return 
i.prototype[t].apply(this,arguments)},n=function(e){return 
i.prototype[t].apply(this,e)};return function(){var 
t,i=this._super,a=this._superApply;return 
this._super=e,this._superApply=n,t=s.apply(this,arguments),this._super=i,this._superApply=a,t}}(),void
 0):(h[t]=s,void 
0)}),o.prototype=e.widget.extend(r,{widgetEventPrefix:a?r.widgetEventPrefix||t:t},h,{constructor:o,namespace:l,widgetName:t,widgetFullName:n}),a?(e.each(a._childConstructors,function(t,i){var
 s=i.prototype;e.widget(s.namespace+"."+s.widgetName,o,i._proto)}),delete 
a._childConstructors):i._childConstructors.push(o),e.widget.bridge(t,o),o},e.widget.extend=function(t){for(var
 i,s,n=u.call(arguments,1),a=0,o=n.length;o>a;a++)for(i in 
n[a])s=n[a][i],n[a].hasOwnProperty(i)&&void 
0!==s&&(t[i]=e.isPlainObject(s)?e.isPlainObject(t[i])?e.widget.extend({},t[i],s):e.widget.extend({},s):s);return
 t},e.widget.bridge=function(t,i){var 
s=i.prototype.widgetFullName||t;e.fn[t]=function(n){var a="string"==typeof 
n,o=u.call(arguments,1),r=this;return a?this.each(function(){var 
i,a=e.data(this,s);return"instance"===n?(r=a,!1):a?e.isFunction(a[n])&&"_"!==n.charAt(0)?(i=a[n].apply(a,o),i!==a&&void
 0!==i?(r=i&&i.jquery?r.pushStack(i.get()):i,!1):void 0):e.error("no such 
method '"+n+"' for "+t+" widget instance"):e.error("cannot call methods on 
"+t+" prior to initialization; "+"attempted to call method 
'"+n+"'")}):(o.length&&(n=e.widget.extend.apply(null,[n].concat(o))),this.each(function(){var
 t=e.data(this,s);t?(t.option(n||{}),t._init&&t._init()):e.data(this,s,new 
i(n,this))})),r}},e.Widget=function(){},e.Widget._childConstructors=[],e.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"<div>",options:{disabled:!1,create:null},_createWidget:function(t,i){i=e(i||this.defaultElement||this)[0],this.element=e(i),this.uuid=l++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=e(),this.hoverable=e(),this.focusable=e(),i!==this&&(e.data(i,this.widgetFullName,this),this._on(!0,this.element,{remove:function(e){e.target===i&&this.destroy()}}),this.document=e(i.style?i.ownerDocument:i.document||i),this.window=e(this.document[0].defaultView||this.document[0].parentWindow)),this.options=e.widget.extend({},this.options,this._getCreateOptions(),t),this._create(),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:e.noop,_getCreateEventData:e.noop,_create:e.noop,_init:e.noop,destroy:function(){this._destroy(),this.element.unbind(this.eventNamespace).removeData(this.widgetFullName).removeData(e.camelCase(this.widgetFullName)),this.widget().unbind(this.eventNamespace).removeAttr("aria-disabled").removeClass(this.widgetFullName+"-disabled
 
"+"ui-state-disabled"),this.bindings.unbind(this.eventNamespace),this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus")},_destroy:e.noop,widget:function(){return
 this.element},option:function(t,i){var 
s,n,a,o=t;if(0===arguments.length)return 
e.widget.extend({},this.options);if("string"==typeof 
t)if(o={},s=t.split("."),t=s.shift(),s.length){for(n=o[t]=e.widget.extend({},this.options[t]),a=0;s.length-1>a;a++)n[s[a]]=n[s[a]]||{},n=n[s[a]];if(t=s.pop(),1===arguments.length)return
 void 0===n[t]?null:n[t];n[t]=i}else{if(1===arguments.length)return void 
0===this.options[t]?null:this.options[t];o[t]=i}return 
this._setOptions(o),this},_setOptions:function(e){var t;for(t in 
e)this._setOption(t,e[t]);return this},_setOption:function(e,t){return 
this.options[e]=t,"disabled"===e&&(this.widget().toggleClass(this.widgetFullName+"-disabled",!!t),t&&(this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus"))),this},enable:function(){return
 this._setOptions({disabled:!1})},disable:function(){return 
this._setOptions({disabled:!0})},_on:function(t,i,s){var 
n,a=this;"boolean"!=typeof 
t&&(s=i,i=t,t=!1),s?(i=n=e(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),e.each(s,function(s,o){function
 r(){return 
t||a.options.disabled!==!0&&!e(this).hasClass("ui-state-disabled")?("string"==typeof
 o?a[o]:o).apply(a,arguments):void 0}"string"!=typeof 
o&&(r.guid=o.guid=o.guid||r.guid||e.guid++);var 
h=s.match(/^([\w:-]*)\s*(.*)$/),l=h[1]+a.eventNamespace,u=h[2];u?n.delegate(u,l,r):i.bind(l,r)})},_off:function(t,i){i=(i||"").split("
 ").join(this.eventNamespace+" 
")+this.eventNamespace,t.unbind(i).undelegate(i),this.bindings=e(this.bindings.not(t).get()),this.focusable=e(this.focusable.not(t).get()),this.hoverable=e(this.hoverable.not(t).get())},_delay:function(e,t){function
 i(){return("string"==typeof e?s[e]:e).apply(s,arguments)}var s=this;return 
setTimeout(i,t||0)},_hoverable:function(t){this.hoverable=this.hoverable.add(t),this._on(t,{mouseenter:function(t){e(t.currentTarget).addClass("ui-state-hover")},mouseleave:function(t){e(t.currentTarget).removeClass("ui-state-hover")}})},_focusable:function(t){this.focusable=this.focusable.add(t),this._on(t,{focusin:function(t){e(t.currentTarget).addClass("ui-state-focus")},focusout:function(t){e(t.currentTarget).removeClass("ui-state-focus")}})},_trigger:function(t,i,s){var
 
n,a,o=this.options[t];if(s=s||{},i=e.Event(i),i.type=(t===this.widgetEventPrefix?t:this.widgetEventPrefix+t).toLowerCase(),i.target=this.element[0],a=i.originalEvent)for(n
 in a)n in i||(i[n]=a[n]);return 
this.element.trigger(i,s),!(e.isFunction(o)&&o.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},e.each({show:"fadeIn",hide:"fadeOut"},function(t,i){e.Widget.prototype["_"+t]=function(s,n,a){"string"==typeof
 n&&(n={effect:n});var o,r=n?n===!0||"number"==typeof 
n?i:n.effect||i:t;n=n||{},"number"==typeof 
n&&(n={duration:n}),o=!e.isEmptyObject(n),n.complete=a,n.delay&&s.delay(n.delay),o&&e.effects&&e.effects.effect[r]?s[t](n):r!==t&&s[r]?s[r](n.duration,n.easing,a):s.queue(function(i){e(this)[t](),a&&a.call(s[0]),i()})}}),e.widget;var
 
d=!1;e(document).mouseup(function(){d=!1}),e.widget("ui.mouse",{version:"1.11.4",options:{cancel:"input,textarea,button,select,option",distance:1,delay:0},_mouseInit:function(){var
 t=this;this.element.bind("mousedown."+this.widgetName,function(e){return 
t._mouseDown(e)}).bind("click."+this.widgetName,function(i){return!0===e.data(i.target,t.widgetName+".preventClickEvent")?(e.removeData(i.target,t.widgetName+".preventClickEvent"),i.stopImmediatePropagation(),!1):void
 
0}),this.started=!1},_mouseDestroy:function(){this.element.unbind("."+this.widgetName),this._mouseMoveDelegate&&this.document.unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(t){if(!d){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(t),this._mouseDownEvent=t;var
 i=this,s=1===t.which,n="string"==typeof 
this.options.cancel&&t.target.nodeName?e(t.target).closest(this.options.cancel).length:!1;return
 
s&&!n&&this._mouseCapture(t)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){i.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(t)&&this._mouseDelayMet(t)&&(this._mouseStarted=this._mouseStart(t)!==!1,!this._mouseStarted)?(t.preventDefault(),!0):(!0===e.data(t.target,this.widgetName+".preventClickEvent")&&e.removeData(t.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(e){return
 i._mouseMove(e)},this._mouseUpDelegate=function(e){return 
i._mouseUp(e)},this.document.bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate),t.preventDefault(),d=!0,!0)):!0}},_mouseMove:function(t){if(this._mouseMoved){if(e.ui.ie&&(!document.documentMode||9>document.documentMode)&&!t.button)return
 this._mouseUp(t);if(!t.which)return 
this._mouseUp(t)}return(t.which||t.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(t),t.preventDefault()):(this._mouseDistanceMet(t)&&this._mouseDelayMet(t)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,t)!==!1,this._mouseStarted?this._mouseDrag(t):this._mouseUp(t)),!this._mouseStarted)},_mouseUp:function(t){return
 
this.document.unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,t.target===this._mouseDownEvent.target&&e.data(t.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(t)),d=!1,!1},_mouseDistanceMet:function(e){return
 
Math.max(Math.abs(this._mouseDownEvent.pageX-e.pageX),Math.abs(this._mouseDownEvent.pageY-e.pageY))>=this.options.distance},_mouseDelayMet:function(){return
 
this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),function(){function
 
t(e,t,i){return[parseFloat(e[0])*(p.test(e[0])?t/100:1),parseFloat(e[1])*(p.test(e[1])?i/100:1)]}function
 i(t,i){return parseInt(e.css(t,i),10)||0}function s(t){var i=t[0];return 
9===i.nodeType?{width:t.width(),height:t.height(),offset:{top:0,left:0}}:e.isWindow(i)?{width:t.width(),height:t.height(),offset:{top:t.scrollTop(),left:t.scrollLeft()}}:i.preventDefault?{width:0,height:0,offset:{top:i.pageY,left:i.pageX}}:{width:t.outerWidth(),height:t.outerHeight(),offset:t.offset()}}e.ui=e.ui||{};var
 
n,a,o=Math.max,r=Math.abs,h=Math.round,l=/left|center|right/,u=/top|center|bottom/,d=/[\+\-]\d+(\.[\d]+)?%?/,c=/^\w+/,p=/%$/,f=e.fn.position;e.position={scrollbarWidth:function(){if(void
 0!==n)return n;var t,i,s=e("<div 
style='display:block;position:absolute;width:50px;height:50px;overflow:hidden;'><div
 style='height:100px;width:auto;'></div></div>"),a=s.children()[0];return 
e("body").append(s),t=a.offsetWidth,s.css("overflow","scroll"),i=a.offsetWidth,t===i&&(i=s[0].clientWidth),s.remove(),n=t-i},getScrollInfo:function(t){var
 
i=t.isWindow||t.isDocument?"":t.element.css("overflow-x"),s=t.isWindow||t.isDocument?"":t.element.css("overflow-y"),n="scroll"===i||"auto"===i&&t.width<t.element[0].scrollWidth,a="scroll"===s||"auto"===s&&t.height<t.element[0].scrollHeight;return{width:a?e.position.scrollbarWidth():0,height:n?e.position.scrollbarWidth():0}},getWithinInfo:function(t){var
 
i=e(t||window),s=e.isWindow(i[0]),n=!!i[0]&&9===i[0].nodeType;return{element:i,isWindow:s,isDocument:n,offset:i.offset()||{left:0,top:0},scrollLeft:i.scrollLeft(),scrollTop:i.scrollTop(),width:s||n?i.width():i.outerWidth(),height:s||n?i.height():i.outerHeight()}}},e.fn.position=function(n){if(!n||!n.of)return
 f.apply(this,arguments);n=e.extend({},n);var 
p,m,g,v,y,b,_=e(n.of),x=e.position.getWithinInfo(n.within),w=e.position.getScrollInfo(x),k=(n.collision||"flip").split("
 "),T={};return b=s(_),_[0].preventDefault&&(n.at="left 
top"),m=b.width,g=b.height,v=b.offset,y=e.extend({},v),e.each(["my","at"],function(){var
 e,t,i=(n[this]||"").split(" 
");1===i.length&&(i=l.test(i[0])?i.concat(["center"]):u.test(i[0])?["center"].concat(i):["center","center"]),i[0]=l.test(i[0])?i[0]:"center",i[1]=u.test(i[1])?i[1]:"center",e=d.exec(i[0]),t=d.exec(i[1]),T[this]=[e?e[0]:0,t?t[0]:0],n[this]=[c.exec(i[0])[0],c.exec(i[1])[0]]}),1===k.length&&(k[1]=k[0]),"right"===n.at[0]?y.left+=m:"center"===n.at[0]&&(y.left+=m/2),"bottom"===n.at[1]?y.top+=g:"center"===n.at[1]&&(y.top+=g/2),p=t(T.at,m,g),y.left+=p[0],y.top+=p[1],this.each(function(){var
 
s,l,u=e(this),d=u.outerWidth(),c=u.outerHeight(),f=i(this,"marginLeft"),b=i(this,"marginTop"),D=d+f+i(this,"marginRight")+w.width,S=c+b+i(this,"marginBottom")+w.height,M=e.extend({},y),C=t(T.my,u.outerWidth(),u.outerHeight());"right"===n.my[0]?M.left-=d:"center"===n.my[0]&&(M.left-=d/2),"bottom"===n.my[1]?M.top-=c:"center"===n.my[1]&&(M.top-=c/2),M.left+=C[0],M.top+=C[1],a||(M.left=h(M.left),M.top=h(M.top)),s={marginLeft:f,marginTop:b},e.each(["left","top"],function(t,i){e.ui.position[k[t]]&&e.ui.position[k[t]][i](M,{targetWidth:m,targetHeight:g,elemWidth:d,elemHeight:c,collisionPosition:s,collisionWidth:D,collisionHeight:S,offset:[p[0]+C[0],p[1]+C[1]],my:n.my,at:n.at,within:x,elem:u})}),n.using&&(l=function(e){var
 
t=v.left-M.left,i=t+m-d,s=v.top-M.top,a=s+g-c,h={target:{element:_,left:v.left,top:v.top,width:m,height:g},element:{element:u,left:M.left,top:M.top,width:d,height:c},horizontal:0>i?"left":t>0?"right":"center",vertical:0>a?"top":s>0?"bottom":"middle"};d>m&&m>r(t+i)&&(h.horizontal="center"),c>g&&g>r(s+a)&&(h.vertical="middle"),h.important=o(r(t),r(i))>o(r(s),r(a))?"horizontal":"vertical",n.using.call(this,e,h)}),u.offset(e.extend(M,{using:l}))})},e.ui.position={fit:{left:function(e,t){var
 
i,s=t.within,n=s.isWindow?s.scrollLeft:s.offset.left,a=s.width,r=e.left-t.collisionPosition.marginLeft,h=n-r,l=r+t.collisionWidth-a-n;t.collisionWidth>a?h>0&&0>=l?(i=e.left+h+t.collisionWidth-a-n,e.left+=h-i):e.left=l>0&&0>=h?n:h>l?n+a-t.collisionWidth:n:h>0?e.left+=h:l>0?e.left-=l:e.left=o(e.left-r,e.left)},top:function(e,t){var
 
i,s=t.within,n=s.isWindow?s.scrollTop:s.offset.top,a=t.within.height,r=e.top-t.collisionPosition.marginTop,h=n-r,l=r+t.collisionHeight-a-n;t.collisionHeight>a?h>0&&0>=l?(i=e.top+h+t.collisionHeight-a-n,e.top+=h-i):e.top=l>0&&0>=h?n:h>l?n+a-t.collisionHeight:n:h>0?e.top+=h:l>0?e.top-=l:e.top=o(e.top-r,e.top)}},flip:{left:function(e,t){var
 
i,s,n=t.within,a=n.offset.left+n.scrollLeft,o=n.width,h=n.isWindow?n.scrollLeft:n.offset.left,l=e.left-t.collisionPosition.marginLeft,u=l-h,d=l+t.collisionWidth-o-h,c="left"===t.my[0]?-t.elemWidth:"right"===t.my[0]?t.elemWidth:0,p="left"===t.at[0]?t.targetWidth:"right"===t.at[0]?-t.targetWidth:0,f=-2*t.offset[0];0>u?(i=e.left+c+p+f+t.collisionWidth-o-a,(0>i||r(u)>i)&&(e.left+=c+p+f)):d>0&&(s=e.left-t.collisionPosition.marginLeft+c+p+f-h,(s>0||d>r(s))&&(e.left+=c+p+f))},top:function(e,t){var
 
i,s,n=t.within,a=n.offset.top+n.scrollTop,o=n.height,h=n.isWindow?n.scrollTop:n.offset.top,l=e.top-t.collisionPosition.marginTop,u=l-h,d=l+t.collisionHeight-o-h,c="top"===t.my[1],p=c?-t.elemHeight:"bottom"===t.my[1]?t.elemHeight:0,f="top"===t.at[1]?t.targetHeight:"bottom"===t.at[1]?-t.targetHeight:0,m=-2*t.offset[1];0>u?(s=e.top+p+f+m+t.collisionHeight-o-a,(0>s||r(u)>s)&&(e.top+=p+f+m)):d>0&&(i=e.top-t.collisionPosition.marginTop+p+f+m-h,(i>0||d>r(i))&&(e.top+=p+f+m))}},flipfit:{left:function(){e.ui.position.flip.left.apply(this,arguments),e.ui.position.fit.left.apply(this,arguments)},top:function(){e.ui.position.flip.top.apply(this,arguments),e.ui.position.fit.top.apply(this,arguments)}}},function(){var
 
t,i,s,n,o,r=document.getElementsByTagName("body")[0],h=document.createElement("div");t=document.createElement(r?"div":"body"),s={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"},r&&e.extend(s,{position:"absolute",left:"-1000px",top:"-1000px"});for(o
 in 
s)t.style[o]=s[o];t.appendChild(h),i=r||document.documentElement,i.insertBefore(t,i.firstChild),h.style.cssText="position:
 absolute; left: 
10.7432222px;",n=e(h).offset().left,a=n>10&&11>n,t.innerHTML="",i.removeChild(t)}()}(),e.ui.position,e.widget("ui.accordion",{version:"1.11.4",options:{active:0,animate:{},collapsible:!1,event:"click",header:">
 li > :first-child,> 
:not(li):even",heightStyle:"auto",icons:{activeHeader:"ui-icon-triangle-1-s",header:"ui-icon-triangle-1-e"},activate:null,beforeActivate:null},hideProps:{borderTopWidth:"hide",borderBottomWidth:"hide",paddingTop:"hide",paddingBottom:"hide",height:"hide"},showProps:{borderTopWidth:"show",borderBottomWidth:"show",paddingTop:"show",paddingBottom:"show",height:"show"},_create:function(){var
 
t=this.options;this.prevShow=this.prevHide=e(),this.element.addClass("ui-accordion
 ui-widget 
ui-helper-reset").attr("role","tablist"),t.collapsible||t.active!==!1&&null!=t.active||(t.active=0),this._processPanels(),0>t.active&&(t.active+=this.headers.length),this._refresh()},_getCreateEventData:function(){return{header:this.active,panel:this.active.length?this.active.next():e()}},_createIcons:function(){var
 t=this.options.icons;t&&(e("<span>").addClass("ui-accordion-header-icon 
ui-icon 
"+t.header).prependTo(this.headers),this.active.children(".ui-accordion-header-icon").removeClass(t.header).addClass(t.activeHeader),this.headers.addClass("ui-accordion-icons"))},_destroyIcons:function(){this.headers.removeClass("ui-accordion-icons").children(".ui-accordion-header-icon").remove()},_destroy:function(){var
 e;this.element.removeClass("ui-accordion ui-widget 
ui-helper-reset").removeAttr("role"),this.headers.removeClass("ui-accordion-header
 ui-accordion-header-active ui-state-default ui-corner-all ui-state-active 
ui-state-disabled 
ui-corner-top").removeAttr("role").removeAttr("aria-expanded").removeAttr("aria-selected").removeAttr("aria-controls").removeAttr("tabIndex").removeUniqueId(),this._destroyIcons(),e=this.headers.next().removeClass("ui-helper-reset
 ui-widget-content ui-corner-bottom ui-accordion-content 
ui-accordion-content-active 
ui-state-disabled").css("display","").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeUniqueId(),"content"!==this.options.heightStyle&&e.css("height","")},_setOption:function(e,t){return"active"===e?(this._activate(t),void
 
0):("event"===e&&(this.options.event&&this._off(this.headers,this.options.event),this._setupEvents(t)),this._super(e,t),"collapsible"!==e||t||this.options.active!==!1||this._activate(0),"icons"===e&&(this._destroyIcons(),t&&this._createIcons()),"disabled"===e&&(this.element.toggleClass("ui-state-disabled",!!t).attr("aria-disabled",t),this.headers.add(this.headers.next()).toggleClass("ui-state-disabled",!!t)),void
 0)},_keydown:function(t){if(!t.altKey&&!t.ctrlKey){var 
i=e.ui.keyCode,s=this.headers.length,n=this.headers.index(t.target),a=!1;switch(t.keyCode){case
 i.RIGHT:case i.DOWN:a=this.headers[(n+1)%s];break;case i.LEFT:case 
i.UP:a=this.headers[(n-1+s)%s];break;case i.SPACE:case 
i.ENTER:this._eventHandler(t);break;case i.HOME:a=this.headers[0];break;case 
i.END:a=this.headers[s-1]}a&&(e(t.target).attr("tabIndex",-1),e(a).attr("tabIndex",0),a.focus(),t.preventDefault())}},_panelKeyDown:function(t){t.keyCode===e.ui.keyCode.UP&&t.ctrlKey&&e(t.currentTarget).prev().focus()},refresh:function(){var
 
t=this.options;this._processPanels(),t.active===!1&&t.collapsible===!0||!this.headers.length?(t.active=!1,this.active=e()):t.active===!1?this._activate(0):this.active.length&&!e.contains(this.element[0],this.active[0])?this.headers.length===this.headers.find(".ui-state-disabled").length?(t.active=!1,this.active=e()):this._activate(Math.max(0,t.active-1)):t.active=this.headers.index(this.active),this._destroyIcons(),this._refresh()},_processPanels:function(){var
 
e=this.headers,t=this.panels;this.headers=this.element.find(this.options.header).addClass("ui-accordion-header
 ui-state-default 
ui-corner-all"),this.panels=this.headers.next().addClass("ui-accordion-content 
ui-helper-reset ui-widget-content 
ui-corner-bottom").filter(":not(.ui-accordion-content-active)").hide(),t&&(this._off(e.not(this.headers)),this._off(t.not(this.panels)))},_refresh:function(){var
 
t,i=this.options,s=i.heightStyle,n=this.element.parent();this.active=this._findActive(i.active).addClass("ui-accordion-header-active
 ui-state-active 
ui-corner-top").removeClass("ui-corner-all"),this.active.next().addClass("ui-accordion-content-active").show(),this.headers.attr("role","tab").each(function(){var
 
t=e(this),i=t.uniqueId().attr("id"),s=t.next(),n=s.uniqueId().attr("id");t.attr("aria-controls",n),s.attr("aria-labelledby",i)}).next().attr("role","tabpanel"),this.headers.not(this.active).attr({"aria-selected":"false","aria-expanded":"false",tabIndex:-1}).next().attr({"aria-hidden":"true"}).hide(),this.active.length?this.active.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0}).next().attr({"aria-hidden":"false"}):this.headers.eq(0).attr("tabIndex",0),this._createIcons(),this._setupEvents(i.event),"fill"===s?(t=n.height(),this.element.siblings(":visible").each(function(){var
 
i=e(this),s=i.css("position");"absolute"!==s&&"fixed"!==s&&(t-=i.outerHeight(!0))}),this.headers.each(function(){t-=e(this).outerHeight(!0)}),this.headers.next().each(function(){e(this).height(Math.max(0,t-e(this).innerHeight()+e(this).height()))}).css("overflow","auto")):"auto"===s&&(t=0,this.headers.next().each(function(){t=Math.max(t,e(this).css("height","").height())}).height(t))},_activate:function(t){var
 
i=this._findActive(t)[0];i!==this.active[0]&&(i=i||this.active[0],this._eventHandler({target:i,currentTarget:i,preventDefault:e.noop}))},_findActive:function(t){return"number"==typeof
 t?this.headers.eq(t):e()},_setupEvents:function(t){var 
i={keydown:"_keydown"};t&&e.each(t.split(" 
"),function(e,t){i[t]="_eventHandler"}),this._off(this.headers.add(this.headers.next())),this._on(this.headers,i),this._on(this.headers.next(),{keydown:"_panelKeyDown"}),this._hoverable(this.headers),this._focusable(this.headers)},_eventHandler:function(t){var
 
i=this.options,s=this.active,n=e(t.currentTarget),a=n[0]===s[0],o=a&&i.collapsible,r=o?e():n.next(),h=s.next(),l={oldHeader:s,oldPanel:h,newHeader:o?e():n,newPanel:r};t.preventDefault(),a&&!i.collapsible||this._trigger("beforeActivate",t,l)===!1||(i.active=o?!1:this.headers.index(n),this.active=a?e():n,this._toggle(l),s.removeClass("ui-accordion-header-active
 
ui-state-active"),i.icons&&s.children(".ui-accordion-header-icon").removeClass(i.icons.activeHeader).addClass(i.icons.header),a||(n.removeClass("ui-corner-all").addClass("ui-accordion-header-active
 ui-state-active 
ui-corner-top"),i.icons&&n.children(".ui-accordion-header-icon").removeClass(i.icons.header).addClass(i.icons.activeHeader),n.next().addClass("ui-accordion-content-active")))},_toggle:function(t){var
 
i=t.newPanel,s=this.prevShow.length?this.prevShow:t.oldPanel;this.prevShow.add(this.prevHide).stop(!0,!0),this.prevShow=i,this.prevHide=s,this.options.animate?this._animate(i,s,t):(s.hide(),i.show(),this._toggleComplete(t)),s.attr({"aria-hidden":"true"}),s.prev().attr({"aria-selected":"false","aria-expanded":"false"}),i.length&&s.length?s.prev().attr({tabIndex:-1,"aria-expanded":"false"}):i.length&&this.headers.filter(function(){return
 
0===parseInt(e(this).attr("tabIndex"),10)}).attr("tabIndex",-1),i.attr("aria-hidden","false").prev().attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0})},_animate:function(e,t,i){var
 
s,n,a,o=this,r=0,h=e.css("box-sizing"),l=e.length&&(!t.length||e.index()<t.index()),u=this.options.animate||{},d=l&&u.down||u,c=function(){o._toggleComplete(i)};return"number"==typeof
 d&&(a=d),"string"==typeof 
d&&(n=d),n=n||d.easing||u.easing,a=a||d.duration||u.duration,t.length?e.length?(s=e.show().outerHeight(),t.animate(this.hideProps,{duration:a,easing:n,step:function(e,t){t.now=Math.round(e)}}),e.hide().animate(this.showProps,{duration:a,easing:n,complete:c,step:function(e,i){i.now=Math.round(e),"height"!==i.prop?"content-box"===h&&(r+=i.now):"content"!==o.options.heightStyle&&(i.now=Math.round(s-t.outerHeight()-r),r=0)}}),void
 
0):t.animate(this.hideProps,a,n,c):e.animate(this.showProps,a,n,c)},_toggleComplete:function(e){var
 
t=e.oldPanel;t.removeClass("ui-accordion-content-active").prev().removeClass("ui-corner-top").addClass("ui-corner-all"),t.length&&(t.parent()[0].className=t.parent()[0].className),this._trigger("activate",null,e)}}),e.widget("ui.menu",{version:"1.11.4",defaultElement:"<ul>",delay:300,options:{icons:{submenu:"ui-icon-carat-1-e"},items:">
 *",menus:"ul",position:{my:"left-1 top",at:"right 
top"},role:"menu",blur:null,focus:null,select:null},_create:function(){this.activeMenu=this.element,this.mouseHandled=!1,this.element.uniqueId().addClass("ui-menu
 ui-widget 
ui-widget-content").toggleClass("ui-menu-icons",!!this.element.find(".ui-icon").length).attr({role:this.options.role,tabIndex:0}),this.options.disabled&&this.element.addClass("ui-state-disabled").attr("aria-disabled","true"),this._on({"mousedown
 .ui-menu-item":function(e){e.preventDefault()},"click 
.ui-menu-item":function(t){var 
i=e(t.target);!this.mouseHandled&&i.not(".ui-state-disabled").length&&(this.select(t),t.isPropagationStopped()||(this.mouseHandled=!0),i.has(".ui-menu").length?this.expand(t):!this.element.is(":focus")&&e(this.document[0].activeElement).closest(".ui-menu").length&&(this.element.trigger("focus",[!0]),this.active&&1===this.active.parents(".ui-menu").length&&clearTimeout(this.timer)))},"mouseenter
 .ui-menu-item":function(t){if(!this.previousFilter){var i=e(t.currentTarget);

@@ Diff output truncated at 153600 characters. @@



reply via email to

[Prev in Thread] Current Thread [Next in Thread]