Added: 
chemistry/parts/trunk/sharepoint-projects/CMIS.Sharepoint2010.SiteAssets/CMIS.Sharepoint2010.SiteAssets/SiteAssets/browser/browser.css
URL: 
http://svn.apache.org/viewvc/chemistry/parts/trunk/sharepoint-projects/CMIS.Sharepoint2010.SiteAssets/CMIS.Sharepoint2010.SiteAssets/SiteAssets/browser/browser.css?rev=1642272&view=auto
==============================================================================
--- 
chemistry/parts/trunk/sharepoint-projects/CMIS.Sharepoint2010.SiteAssets/CMIS.Sharepoint2010.SiteAssets/SiteAssets/browser/browser.css
 (added)
+++ 
chemistry/parts/trunk/sharepoint-projects/CMIS.Sharepoint2010.SiteAssets/CMIS.Sharepoint2010.SiteAssets/SiteAssets/browser/browser.css
 Fri Nov 28 08:44:28 2014
@@ -0,0 +1,152 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+.cmisbrowser {
+       position: relative;
+       font-size: 13px;
+}
+
+.cmisbrowser ul,.cmisbrowser ol {
+       list-style-type: none;
+       list-style-position: inside;
+       padding-left: 20px;
+}
+
+.cmisbrowser li.static>.menu-item {
+       display: block;
+       padding: 2px 0;
+}
+
+.cmisbrowser .menu-item {
+       color: #666666;
+       text-decoration: none;
+}
+
+.cmisbrowser .folderName .label {
+       line-height: 20px;
+       display: inline;
+}
+
+.cmisbrowser .menu-item.selected .folderName .label {
+       color: rgb(221, 75, 57);
+}
+
+.cmisbrowser .actions {
+       float: right;
+       margin-right: 5px;
+       display: table;
+}
+
+.cmisbrowser .icons {
+       float: left;
+       display: table;
+}
+
+.cmisbrowser .icon {
+       background-position: 2px;
+       height: 20px;
+       width: 20px;
+       display: table-cell;
+}
+
+.cmisbrowser .icon-open {
+       padding-right: 5px;
+       width: 13px;
+}
+
+.cmisbrowser .icon-open.closed {
+       background:
+               
url(data:image/png;base64,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)
+               no-repeat;
+       background-position: 0 3px;
+}
+
+.cmisbrowser .icon-open.opened {
+       background:
+               
url(data:image/png;base64,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)
+               no-repeat;
+       background-position: 0 3px;
+}
+
+.cmisbrowser .icon-delete {
+       background:
+               
url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaeTAAAA80lEQVQ4jbXSQUrDYBAF4E/xAiqCqBcSBZeiXkEXXQgKbUEQ3Ok53NZdj1BBwW1PIIhSrBspiZsJjiGxuPDBgz9v5r1/Mgn/gBX0McJzcIQelueZd/CKsoUv2G4z72H2i7niDLt18xom0VBg2GAcRq3EG1ZzwEVqvAutm7RuaIOk9XPAQyoUOAn9DOdxPk4TlLjPAe8NI+cbeg31CSzWl5Gw1HKusJAfnlpuPw0KLfc85oCrVBiE1klaJ7S8xMscsIEP39/51s+FFaFV/8kU6/V3OqqZ2ljgoGEn4DBN0sQp9tvMFbZwgzE+g2NcY3Oe+c/4Ahp7duByKVzVAAAAAElFTkSuQmCC)
+               no-repeat;
+}
+
+.cmisbrowser .icon-add {
+       background:
+               
url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaeTAAAAyElEQVQ4jbXTwUqCQRQF4E9x0SoU0X2071UEQYSewda5qpbt7UV8iDY+g7RvVaZSK3UzQ5ef335/pAOHuXPmngMz3OEf0McjFnhPXOABvSrzLTbYH+Ea42PmEXZ/mDN3GBbNPaxKmp8Si/oHutBMAXe4rLpfQBuTGDCoYc4YQCttrsLBNNSvaf0O2nNar2NAIzR0Qn1RomU0YsAbblJ9H5p+SrSMJb9vMC9pqMI8BszwVcP8iZeieNYgZZw1yhnxM20TT/5MtXEA6JlHnYj7OLoAAAAASUVORK5CYII=)
+               no-repeat;
+       display: none;
+}
+
+.cmisbrowser .icon-edit {
+       background:
+               
url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaeTAAAAsElEQVQ4jdXSMWrCQRDF4Q8RwZsoIgQUSZNKbbyQV0gZj2HlRWwsUiRNGg2ENNHOai1ciPrfzZpG8MHC7vzmvZliuTeN8IFhCr4iJM5z5E94ibV1KiCgmZk8wR4rzDDOBaT0iF3kW/QzfcmAQTQFfOMhZ04F9PAT659ox/r0moBOnBiwQauwaQXM4/sL3cKmSbDEwu/a/w74S2d9tQvYKJgrvH5yf3f8LCW9XdFzQx0AXpUtzwRG26MAAAAASUVORK5CYII=)
+               no-repeat;
+}
+
+#cmisbrowser-templates {
+       display: none;
+}
+
+.cmisbrowser input:focus {
+       border: 1px solid black;
+}
+
+.cmisbrowser #overlay {
+       position: absolute;
+       left: 0;
+       right: 0;
+       top: 0;
+       bottom: 0;
+       background-color: #FFFFFF;
+       -moz-opacity: .80;
+       filter: alpha(opacity = 80);
+       opacity: .80;
+       z-index: 10000000;
+       display: none;
+}
+
+.cmisbrowser .errors {
+       padding: 5px;
+}
+
+.cmisbrowser .errors .error {
+       background: 
url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaeTAAAA80lEQVQ4jbXSQUrDYBAF4E/xAiqCqBcSBZeiXkEXXQgKbUEQ3Ok53NZdj1BBwW1PIIhSrBspiZsJjiGxuPDBgz9v5r1/Mgn/gBX0McJzcIQelueZd/CKsoUv2G4z72H2i7niDLt18xom0VBg2GAcRq3EG1ZzwEVqvAutm7RuaIOk9XPAQyoUOAn9DOdxPk4TlLjPAe8NI+cbeg31CSzWl5Gw1HKusJAfnlpuPw0KLfc85oCrVBiE1klaJ7S8xMscsIEP39/51s+FFaFV/8kU6/V3OqqZ2ljgoGEn4DBN0sQp9tvMFbZwgzE+g2NcY3Oe+c/4Ahp7duByKVzVAAAAAElFTkSuQmCC)
 no-repeat
+               rgb(254, 215, 214);
+       background-position: 5px 5px;
+       border: 1px solid rgb(222, 143, 142);
+       border-radius: 10px;
+       padding: 10px 30px 10px;
+}
+
+.cmisbrowser .button {
+       border: 1px solid #CCC;
+       padding: 10px 25px 10px 25px;
+       color: #333;
+       border-radius: 4px;
+       text-align: center;
+}
+
+.cmisbrowser .button:hover {
+       color: #333;
+       background-color: #EBEBEB;
+       border-color: #ADADAD;
+}
\ No newline at end of file

Propchange: 
chemistry/parts/trunk/sharepoint-projects/CMIS.Sharepoint2010.SiteAssets/CMIS.Sharepoint2010.SiteAssets/SiteAssets/browser/browser.css
------------------------------------------------------------------------------
    svn:eol-style = native

Added: 
chemistry/parts/trunk/sharepoint-projects/CMIS.Sharepoint2010.SiteAssets/CMIS.Sharepoint2010.SiteAssets/SiteAssets/browser/browser.js
URL: 
http://svn.apache.org/viewvc/chemistry/parts/trunk/sharepoint-projects/CMIS.Sharepoint2010.SiteAssets/CMIS.Sharepoint2010.SiteAssets/SiteAssets/browser/browser.js?rev=1642272&view=auto
==============================================================================
--- 
chemistry/parts/trunk/sharepoint-projects/CMIS.Sharepoint2010.SiteAssets/CMIS.Sharepoint2010.SiteAssets/SiteAssets/browser/browser.js
 (added)
+++ 
chemistry/parts/trunk/sharepoint-projects/CMIS.Sharepoint2010.SiteAssets/CMIS.Sharepoint2010.SiteAssets/SiteAssets/browser/browser.js
 Fri Nov 28 08:44:28 2014
@@ -0,0 +1,771 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with this
+ * work for additional information regarding copyright ownership. The ASF
+ * licenses this file to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations 
under
+ * the License.
+ * 
+ * Browser UI component based on the CMIS 1.1 JS Connector
+ * 
+ * Developer(s): - Ben Chevallereau ([email protected] /
+ * [email protected])
+ * 
+ * Version: 1.1 (05-09-2014)
+ * 
+ * This JS library can be used to any CMIS 1.1 compliant repository.
+ */
+
+;
+(function($, window, document, undefined) {
+
+       // Plugin name
+       var pluginName = 'cmisbrowser';
+
+       // Default options
+       var defaults = {
+               cmis : {
+                       // Server URL
+                       serverUrl : null,
+                       // Server username
+                       username : null,
+                       // Server password
+                       password : null,
+                       // Session: can be provided or created by this library 
(Optional)
+                       session : null,
+                       // Object ID of the root folder (Optional)
+                       initObjectId : null,
+                       // Path of the root folder (Optional)
+                       initPath : null
+               },
+               // Don't display by default systemfolder and forum (Optional)
+               exludingFilter : [ "F:cm:systemfolder", "F:fm:forum" ],
+               // Expand the root node during the first loading (Optional)
+               openRootNode : true,
+               // Use messages for the communication between UI components 
(Optional)
+               useMessages : false
+       };
+
+       // Pluging constructor
+       function Browser(element, options) {
+               this.element = element;
+
+               this.options = $.extend({}, defaults, options);
+
+               this._defaults = defaults;
+               this._name = pluginName;
+
+               this.init();
+       }
+
+       /**
+        * Initialisation method.
+        */
+       Browser.prototype.init = function() {
+               var browser = this;
+
+               // Register the UI component
+               browser._register();
+
+               // Check if templates have been loaded or not
+               var body = $(this.element).closest("body");
+               if (body.find(".cmisBrowserTemplates").length == 0)
+                       $(body).append("<div 
class='cmisBrowserTemplates'></div)");
+               var path = "";
+
+               // Search the script tag related to this library
+               $("script").each(function() {
+                       var src = $(this).attr("src");
+                       if (src) {
+                               var fileName = src.slice(src.lastIndexOf("/") + 
1);
+                               if (fileName.lastIndexOf("?") != -1)
+                                       fileName = fileName.slice(0, 
fileName.lastIndexOf("?"));
+                               if (fileName === "browser.js")
+                                       path = src.substring(0, 
src.lastIndexOf("/"));
+                       }
+               });
+
+               // Load dinamycally the file templates.html
+               body.find(".cmisBrowserTemplates").load(path + 
"/template.html", null, function complete(responseText, textStatus, jqXHR) {
+                       // Load the main component
+                       
$(browser.element).html($(".cmisBrowserTemplates").find("#cmis-browser-template").html());
+
+                       // Attach action on the load check out docs
+                       
$(browser.element).find(".getCheckedOutDocs").click(function() {
+                               // Send a broadcasting message
+                               
browser._broadcastMessage("cmis-getCheckedOutDocs", "");
+                       });
+
+                       if (browser.options.cmis.username == null || 
browser.options.cmis.username.length == 0 || browser.options.cmis.password == 
null || browser.options.cmis.password.length == 0) {
+                               // Display the login message
+                               $(browser.element).find(".login").fadeIn();
+                       } else {
+                               // Display the browser
+                               $(browser.element).find(".browser").fadeIn();
+                               // Load the UI component
+                               browser._load();
+                       }
+               });
+
+       };
+
+       /**
+        * Register the UI component to allow communication between components.
+        */
+       Browser.prototype._register = function() {
+               var browser = this;
+
+               // By default, events are registered in jQuery
+               var container = $;
+
+               // If the component is stored in an Iframe
+               if (top != self) {
+                       // Create the container object that will be local to 
this component
+                       container = new Object();
+                       // Identify that we'll use messages to communicate
+                       browser.useMessages = true;
+
+                       // Define the listener used for messages
+                       function listener(event) {
+                               console.log("Received event: " + event.data);
+                               // Get event information
+                               var eventData = JSON.parse(event.data);
+                               if (browser.register.cmis.components)
+                                       // For each component
+                                       
$(browser.register.cmis.components).each(function() {
+                                               // If this component has a 
subscribe eveny
+                                               if 
(this.subscribe[eventData.name])
+                                                       // Call the function 
related to this event
+                                                       
this.subscribe[eventData.name](eventData.params[0])
+                                       });
+                       }
+
+                       // Register listener to be able to receive messages
+                       if (window.addEventListener) {
+                               addEventListener("message", listener, false)
+                       } else {
+                               attachEvent("onmessage", listener)
+                       }
+               }
+
+               // Initialize the component
+               if (container.cmis == null)
+                       container.cmis = new Object();
+
+               if (container.cmis.components == null)
+                       container.cmis.components = new Array();
+
+               // Declare this component
+               container.cmis.components.push({
+                       type : 'browser',
+                       // This component will trigger 4 kind of events
+                       events : [ 'cmis-clickFolder', 'cmis-createFolder', 
'cmis-deleteFolder', 'cmis-getCheckedOutDocs' ],
+                       subscribe : {
+                               // The browser component will listen if the 
user is logging in
+                               // and out
+                               "cmis-login" : function(credentials) {
+
+                                       // If credentials is an object, it's a 
token
+                                       try {
+                                               var token;
+                                               if (typeof credentials === 
"object")
+                                                       token = credentials;
+                                               else
+                                                       token = 
JSON.parse(credentials);
+                                               browser.options.cmis.token = 
token;
+                                       } catch (e) {
+                                               // So if it's not an object, 
it's username:password
+                                               browser.options.cmis.username = 
credentials.split(":")[0];
+                                               browser.options.cmis.password = 
credentials.split(":")[1];
+                                       }
+
+                                       // Load the browser
+                                       
$(browser.element).find(".login").fadeOut(400, function() {
+                                               // Display the browser
+                                               
$(browser.element).find(".browser").fadeIn();
+                                               // Load the UI component
+                                               browser._load();
+                                       });
+                               },
+                               // The browser component will receive only 
events when a node
+                               // has been deleted
+                               "cmis-deleteChildren" : function(folderId) {
+                                       // Refresh the folder
+                                       var folderItem = $("div.menu-item[id='" 
+ folderId + "']");
+                                       browser._openFolder(folderItem, false);
+                               },
+                               "cmis-logout" : function() {
+                                       // Reset all authentication parameters
+                                       browser.options.cmis.session = null;
+                                       browser.options.cmis.token = null;
+                                       browser.options.cmis.username = null;
+                                       browser.options.cmis.password = null;
+
+                                       // Clean the browser element
+                                       
$(browser.element).find("ul.root").empty();
+
+                                       // Hide the browser
+                                       
$(browser.element).find(".browser").fadeOut();
+                               }
+                       }
+               });
+
+               // Store the container
+               browser.register = container;
+       };
+
+       /**
+        * Load the browser tree
+        */
+       Browser.prototype._load = function() {
+               var browser = this;
+
+               // If the component is not correctly configured
+               if (null === this.options.cmis.serverUrl || (null == 
this.options.cmis.username && null == this.options.cmis.password && null == 
this.options.cmis.token)) {
+                       browser._addError("Please configure the browser before 
to initialize it.");
+               } else {
+                       // Test if the session already exists
+                       if (null == browser.options.cmis.session) {
+                               // Initialize the session
+                               var session = 
cmis.createSession(browser.options.cmis.serverUrl);
+
+                               // If we use username password
+                               if (browser.options.cmis.username && 
browser.options.cmis.password)
+                                       
session.setCredentials(browser.options.cmis.username, 
browser.options.cmis.password);
+                               else
+                                       
session.setToken(browser.options.cmis.token);
+
+                               session.loadRepositories({
+                                       request : {
+                                               success : function(data) {
+                                                       // Save the current 
session
+                                                       
browser.options.cmis.session = session;
+                                                       // Display root folder
+                                                       
browser._displayRootFolder();
+                                               },
+                                               error : function(jqXHR, 
textStatus, errorThrown) {
+                                                       // Display an error
+                                                       var msg = "Error during 
the connexion: ";
+                                                       if (null === textStatus)
+                                                               msg += 
textStatus;
+                                                       browser._addError(msg);
+                                               }
+                                       }
+                               });
+                       } else
+                               // If the session already exists
+                               this._displayRootFolder();
+               }
+       };
+
+       /**
+        * Display the root folder
+        */
+       Browser.prototype._displayRootFolder = function() {
+               var session = this.options.cmis.session;
+               var browser = this;
+
+               // If the initial path is configured
+               if (null != this.options.cmis.initPath) {
+
+                       // Get the object corresponding to this path
+                       session.getObjectByPath(this.options.cmis.initPath, {
+                               includeAllowableActions : true,
+                               request : {
+                                       success : function(data) {
+                                               // Append the root node
+                                               browser._appendItem(null, data);
+                                               // If we have to expand the 
root node
+                                               if 
(browser.options.openRootNode)
+                                                       // Click on the root 
node
+                                                       
$(browser.element).find("div[id='" + data.properties['cmis:objectId'].value + 
"'] div.icon.icon-open").click();
+                                       },
+                                       error : function(jqXHR, textStatus, 
errorThrown) {
+                                               // Display an error message
+                                               browser._addError("Can't get 
the object " + rootFolderId + " in the repository.");
+                                       }
+                               }
+                       });
+
+               } else {
+                       // Define the root folder id as root of the repository
+                       var rootFolderId = 
session.defaultRepository.rootFolderId;
+
+                       // If the initial object ID has been specified
+                       if (null != this.options.cmis.initObjectId)
+                               rootFolderId = this.options.cmis.initObjectId;
+
+                       // Get the object corresponding to this ID
+                       session.getObject(rootFolderId, 'latest', {
+                               includeAllowableActions : true,
+                               request : {
+                                       success : function(data) {
+                                               // Append the root node
+                                               browser._appendItem(null, data);
+                                               // If we have to expand the 
root node
+                                               if 
(browser.options.openRootNode)
+                                                       // Click on the root 
node
+                                                       
$(browser.element).find("div[id='" + data.properties['cmis:objectId'].value + 
"'] div.icon.icon-open").click();
+                                       },
+                                       error : function(jqXHR, textStatus, 
errorThrown) {
+                                               // Display an error message
+                                               browser._addError("Can't get 
the object " + rootFolderId + " in the repository.");
+                                       }
+                               }
+                       });
+               }
+       };
+
+       /**
+        * Append item to an existing item in the browser component
+        * 
+        * @ulElem: reference to the UL tag corresponding to the parent node
+        * @data: JSON Object retrieved from CMIS
+        */
+       Browser.prototype._appendItem = function(ulElem, data) {
+               var browser = this;
+               var parentItem;
+
+               // If the UL element has not been defined
+               if (ulElem == null)
+                       // We search the root UL tag
+                       parentItem = $(this.element).find("ul");
+               else
+                       parentItem = ulElem;
+
+               // Check the type
+               if 
(this.options.exludingFilter.indexOf(data.properties["cmis:objectTypeId"].value)
 == -1) {
+                       // Get the template related to a new item
+                       var browserItemTemplate = 
$("#cmis-browser-item-template");
+                       var newItem = browserItemTemplate.html();
+
+                       // Replace properties
+                       $(Object.keys(data.properties)).each(function(index, 
argName) {
+                               var regexp = new RegExp('\\$\\{' + argName + 
'\\}', 'g');
+                               newItem = newItem.replace(regexp, 
data.properties[argName].value);
+                       });
+
+                       // Replace allowable actions
+                       
$(Object.keys(data.allowableActions)).each(function(index, argName) {
+                               newItem = newItem.replace('${' + argName + '}', 
data.allowableActions[argName]);
+                       });
+
+                       newItem = $(newItem);
+
+                       // Hide useless icon
+                       newItem.find(".icon[enabled='false']").hide();
+
+                       // Attach actions
+                       newItem.find(".icon-open, 
.label").click(function(event, index) {
+                               browser._onClickFolder(this);
+                       });
+                       
newItem.find(".icon-delete[enabled='true']").click(function(event, index) {
+                               browser._onClickDeleteFolder(this);
+                       });
+                       
newItem.find(".icon-edit[enabled='true']").click(function(event, index) {
+                               browser._onClickEditFolder(this);
+                       });
+                       
newItem.find(".icon-add[enabled='true']").click(function(event, index) {
+                               browser._onClickAddFolder(this);
+                       });
+
+                       // Append the new item
+                       $(parentItem).append(newItem);
+               }
+       };
+
+       /**
+        * Click action handler
+        * 
+        * @elem: HTML element clicked
+        */
+       Browser.prototype._onClickFolder = function(elem) {
+               // Get the fodler item
+               var folderItem = $(elem).closest(".menu-item");
+               // Get the open icon
+               var icon = $(folderItem).find(".icon-open");
+               // If the folder is opened
+               if ($(icon).hasClass("opened") && 
$(folderItem).hasClass("selected"))
+                       this._closeFolder(folderItem[0]);
+               else
+                       this._openFolder(folderItem[0], true);
+       };
+
+       /**
+        * Open a folder
+        * 
+        * @folderItem: LI tag corresponding to a folder item
+        * @propagate: If equals to true, a message will be sent to other 
components
+        */
+       Browser.prototype._openFolder = function(folderItem, propagate) {
+               var session = this.options.cmis.session;
+               var browser = this;
+
+               $(this.element).find("#overlay").fadeIn(400, function() {
+
+                       // Get the folder id
+                       var objectId = $(folderItem).attr("id");
+                       // Get the list
+                       var list = $(folderItem).closest("li").find("ul");
+
+                       
$(browser.element).find(".menu-item").removeClass("selected");
+                       $(folderItem).addClass("selected");
+                       $(folderItem).find(".icon-open").addClass("opened");
+
+                       // If we have to propagate the event
+                       if (propagate)
+                               // Send a broadcasting message
+                               browser._broadcastMessage("cmis-clickFolder", 
objectId);
+
+                       // Search all folder contained in this folder
+                       session.query('select * from cmis:folder where 
IN_FOLDER(\'' + objectId + '\') order by cmis:name', false, {
+                               includeAllowableActions : true,
+                               request : {
+                                       success : function(data) {
+                                               // Empty the list of child 
folder
+                                               $(list).empty();
+                                               // Add all sub folders
+                                               
$(data.results).each(function(index) {
+                                                       
browser._appendItem(list, this);
+                                               });
+                                               // Allow to add new sub-folder
+                                               
$(folderItem).find(".icon-add[enabled='true']").show();
+                                               
$(browser.element).find("#overlay").fadeOut();
+                                       },
+                                       error : function(jqXHR, textStatus, 
errorThrown) {
+                                               // Display an error
+                                               browser._addError("Can't get 
the children from the object " + objectId + " in the repository.");
+                                               
$(browser.element).find("#overlay").fadeOut();
+                                       }
+                               }
+                       });
+               });
+       };
+
+       /**
+        * Close a folder
+        * 
+        * @folderItem: LI tag corresponding to a folder item
+        */
+       Browser.prototype._closeFolder = function(folderItem) {
+               var browser = this;
+               $(browser.element).find("#overlay").fadeIn(400, function() {
+                       // Get the list
+                       var list = $(folderItem).closest("li").find("ul");
+                       // Empty the list of children
+                       list.empty();
+
+                       $(folderItem).find(".icon-open").addClass("closed");
+                       $(folderItem).find(".icon-open").removeClass("opened");
+                       $(folderItem).find(".icon-add[enabled='true']").hide();
+
+                       $(browser.element).find("#overlay").fadeOut();
+               });
+       };
+
+       /**
+        * Delete action handler
+        * 
+        * @elem: HTML element clicked
+        */
+       Browser.prototype._onClickDeleteFolder = function(icon) {
+               var item = $(icon).closest(".menu-item");
+               var list = $(item).closest("li");
+               var session = this.options.cmis.session;
+               var browser = this;
+
+               $(browser.element).find("#overlay").fadeIn(400, function() {
+                       // Delete the object
+                       session.deleteTree($(item).prop('id'), true, 
'deletesinglefiled', true, {
+                               request : {
+                                       complete : function(e, textStatus, 
errorThrown) {
+                                               if (e.status == 200) {
+                                                       if (null != 
e.responseJSON) {
+
+                                                               // Display an 
error
+                                                               var ids = "";
+                                                               
$(e.responseJSON.ids).each(function() {
+                                                                       if 
(ids.length > 0)
+                                                                               
ids += "; ";
+                                                                       ids += 
this;
+                                                               });
+
+                                                               
browser._addError("Can't delete these object(s): " + ids + ".");
+                                                               
$(browser.element).find("#overlay").fadeOut();
+                                                       } else {
+
+                                                               var objectId = 
$(list).closest(".cmisbrowser").find("div.menu-item.selected").attr("id");
+                                                               // Send a 
broadcasting message
+                                                               
browser._broadcastMessage("cmis-deleteFolder", objectId);
+
+                                                               
$(list).remove();
+                                                               
$(browser.element).find("#overlay").fadeOut();
+                                                       }
+                                               } else {
+                                                       // Display an error
+                                                       
browser._addError("Can't delete the object " + folderItem.id + ".");
+                                                       
$(browser.element).find("#overlay").fadeOut();
+                                               }
+                                       }
+                               }
+                       });
+               });
+       };
+
+       /**
+        * Edit action handler
+        * 
+        * @elem: HTML element clicked
+        */
+       Browser.prototype._onClickEditFolder = function(icon) {
+               var item = $(icon).closest(".menu-item");
+               var name = $(item).find(".editText");
+               // Enable the edit input field
+               this._editFolderName(name[0]);
+       },
+
+       /**
+        * Create the input text for renaming
+        * 
+        * @actual: HTML tag to transform to editable input
+        */
+       Browser.prototype._editFolderName = function(actual) {
+               var browser = this;
+               var width = $(actual).width() + 20;
+               var height = $(actual).height() + 2;
+
+               // Create the input text field
+               if (width < 100)
+                       width = 150;
+               actual.innerHTML = "<input id=\"" + actual.id + "_field\" 
style=\"width: " + width + "px; height: " + height + "px;\" maxlength=\"254\" 
type=\"text\" value=\"" + actual.innerHTML + "\"/>";
+
+               // Attach the focus handler
+               $(actual).find("input").focus(function() {
+                       $(this).select();
+               });
+
+               // Attach the keypress handler
+               $(actual).find("input").keypress(function(event) {
+                       var objectId = $(actual).attr("id");
+                       browser._onFolderKeyPress(event, this, objectId);
+               });
+
+               // Attach the blur handler
+               $(actual).find("input").blur(function(event) {
+                       var objectId = $(actual).attr("id");
+                       browser._onFolderBlur(event, this, objectId);
+               });
+
+               // Focus and select the text
+               actual.firstChild.focus(function() {
+                       browser._onFolderKeyPress(this);
+                       $(this).select();
+               });
+       };
+
+       /**
+        * Key press event handler
+        * 
+        * @event: Event
+        * @field: Input text
+        * @objectId: Folder ID
+        */
+       Browser.prototype._onFolderKeyPress = function(event, field, objectId) {
+               var evt = (event) ? event : window.event;
+               // If the user pressed enter
+               if (evt.keyCode == 13 && field.value != "") {
+                       event.preventDefault();
+                       // We save the folder name
+                       this._onFolderUpdate(field, objectId);
+                       return false;
+               } else {
+                       return true;
+               }
+       };
+
+       /**
+        * Blur event handler
+        * 
+        * @event: Event
+        * @field: Input text
+        * @objectId: Folder ID
+        */
+       Browser.prototype._onFolderBlur = function(event, field, objectId) {
+               var elem = document.getElementById(objectId);
+               // We replace the input field by the old name
+               var oldName = field.attributes['value'].value;
+               $(elem).html(oldName);
+       };
+
+       /**
+        * Update the folder's name in the repository
+        * 
+        * @field: Input text
+        * @objectId: Folder ID
+        */
+       Browser.prototype._onFolderUpdate = function(field, objectId) {
+               var session = this.options.cmis.session;
+               var browser = this;
+               var elem = document.getElementById(objectId);
+               var objectId = elem.id.replace("/name", "");
+               var newName = field.value;
+               var oldName = field.attributes['value'].value;
+
+               // Send a request to the repository
+               session.updateProperties(objectId, {
+                       'cmis:name' : newName
+               }, {
+                       request : {
+                               success : function(data) {
+                                       // Replace the input field by the new 
name
+                                       $(elem).html(newName);
+                                       // Re-order sub-folders because of the 
renaming
+                                       var parentId = 
$(elem).closest("ul").closest("li").find("div.menu-item.selected").attr("id");
+                                       
browser._reorderFolders($(elem).closest("ul"));
+                                       // Send a broadcasting message
+                                       
browser._broadcastMessage("cmis-editFolder", parentId);
+                               },
+                               error : function(e) {
+                                       // Display an error message
+                                       browser._addError("Error during the 
update: " + e.responseJSON.message);
+                                       $(elem).html(oldName);
+                                       
browser._reorderFolders($(elem).closest("ul"));
+                               }
+                       }
+               });
+
+               return false;
+       };
+
+       /**
+        * Reorder a list of child-folders
+        * 
+        * @ulElement: UL element of the parent item
+        */
+       Browser.prototype._reorderFolders = function(ulElement) {
+               var items = $(ulElement).find("li");
+               items = items.sort(function(a, b) {
+                       var nameA = $(a).find(".label").html().toLowerCase();
+                       var nameB = $(b).find(".label").html().toLowerCase();
+                       if (nameA < nameB)
+                               return -1;
+                       else if (nameA > nameB)
+                               return 1;
+                       else
+                               return 0;
+               });
+               $(ulElement).append(items);
+       }
+
+       /**
+        * Add folder event handler
+        * 
+        * @icon: icon clicked
+        */
+       Browser.prototype._onClickAddFolder = function(icon) {
+               var item = $(icon).closest(".menu-item");
+               var list = $(item).closest("li");
+               // Get the parent ID
+               var objectId = $(item).prop('id');
+               var session = this.options.cmis.session;
+               var browser = this;
+
+               // Define the name of the new folder
+               var folderName = "New Folder";
+               var i = 1;
+               while ($(list).find("div.label:contains('" + folderName + 
"')").length > 0) {
+                       folderName = "New Folder (" + i + ")";
+                       i++;
+               }
+
+               $(browser.element).find("#overlay").fadeIn(400, function() {
+                       // Create the folder with the default name
+                       session.createFolder($(item).prop('id'), folderName, 
null, null, null, {
+                               request : {
+                                       success : function(data) {
+
+                                               // Get the new folder Id
+                                               var newFolderId = 
data.properties["cmis:objectId"].value;
+                                               session.getObject(newFolderId, 
'latest', {
+                                                       includeAllowableActions 
: true,
+                                                       request : {
+                                                               success : 
function(data) {
+                                                                       
$(browser.element).find("#overlay").fadeOut(400, function() {
+                                                                               
// Append the new item
+                                                                               
browser._appendItem($(list).find("ul:first"), data);
+                                                                               
// Edit the newly created folder
+                                                                               
$(browser.element).find(".menu-item[id='" + newFolderId + 
"']").find(".icon-edit[enabled='true']").click();
+                                                                               
// Send a broadcasting message
+                                                                               
browser._broadcastMessage("cmis-createFolder", objectId);
+                                                                       });
+                                                               },
+                                                               error : 
function(e) {
+                                                                       // 
Display error
+                                                                       
browser._addError("Can't get properties of " + newFolderId + ".");
+                                                                       
$(browser.element).find("#overlay").fadeOut();
+                                                               }
+                                                       }
+                                               });
+                                       },
+                                       error : function(e) {
+                                               // Display error
+                                               browser._addError("Can't create 
new folder " + folderName + ".");
+                                               
$(browser.element).find("#overlay").fadeOut();
+                                       }
+
+                               }
+                       });
+               });
+       };
+
+       /**
+        * Displays an error message
+        * 
+        * @msg: Error message
+        */
+       Browser.prototype._addError = function(msg) {
+               var browser = this;
+               // Add a new DIV element containing the error message
+               var newElem = $(browser.element).find(".errors").append("<div 
class='error'>" + msg + "</div>");
+               $(newElem).find(".error").click(function() {
+                       $(this).fadeOut(500, function() {
+                               $(this).remove();
+                       });
+               });
+       };
+
+       /**
+        * Publish messages
+        */
+       Browser.prototype._broadcastMessage = function(fn, data) {
+               var browser = this;
+
+               // Check if a component is registered
+               if (!browser.useMessages)
+                       $(browser.register.cmis.components).each(function() {
+                               if (this.subscribe && this.subscribe[fn])
+                                       this.subscribe[fn](data);
+                       });
+               else
+                       // Send a broadcasting message
+                       parent.postMessage('{"name":"' + fn + '", "params":["' 
+ data + '"]}', "*");
+       }
+
+       // Define the plugin
+       $.fn[pluginName] = function(options) {
+               return this.each(function() {
+                       if (!$.data(this, 'plugin_' + pluginName)) {
+                               $.data(this, 'plugin_' + pluginName, new 
Browser(this, options));
+                       }
+               });
+       }
+
+})(jQuery, window, document);

Propchange: 
chemistry/parts/trunk/sharepoint-projects/CMIS.Sharepoint2010.SiteAssets/CMIS.Sharepoint2010.SiteAssets/SiteAssets/browser/browser.js
------------------------------------------------------------------------------
    svn:eol-style = native

Added: 
chemistry/parts/trunk/sharepoint-projects/CMIS.Sharepoint2010.SiteAssets/CMIS.Sharepoint2010.SiteAssets/SiteAssets/browser/reset.css
URL: 
http://svn.apache.org/viewvc/chemistry/parts/trunk/sharepoint-projects/CMIS.Sharepoint2010.SiteAssets/CMIS.Sharepoint2010.SiteAssets/SiteAssets/browser/reset.css?rev=1642272&view=auto
==============================================================================
--- 
chemistry/parts/trunk/sharepoint-projects/CMIS.Sharepoint2010.SiteAssets/CMIS.Sharepoint2010.SiteAssets/SiteAssets/browser/reset.css
 (added)
+++ 
chemistry/parts/trunk/sharepoint-projects/CMIS.Sharepoint2010.SiteAssets/CMIS.Sharepoint2010.SiteAssets/SiteAssets/browser/reset.css
 Fri Nov 28 08:44:28 2014
@@ -0,0 +1,28 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+ html,body,table,caption,tbody,tfoot,thead,tr,th,td
+       {
+       margin: 0;
+       padding: 0;
+       border: 0;
+       outline: 0;
+       font-size: 100%;
+       vertical-align: baseline;
+       background: transparent;
+}

Propchange: 
chemistry/parts/trunk/sharepoint-projects/CMIS.Sharepoint2010.SiteAssets/CMIS.Sharepoint2010.SiteAssets/SiteAssets/browser/reset.css
------------------------------------------------------------------------------
    svn:eol-style = native

Added: 
chemistry/parts/trunk/sharepoint-projects/CMIS.Sharepoint2010.SiteAssets/CMIS.Sharepoint2010.SiteAssets/SiteAssets/browser/template.html
URL: 
http://svn.apache.org/viewvc/chemistry/parts/trunk/sharepoint-projects/CMIS.Sharepoint2010.SiteAssets/CMIS.Sharepoint2010.SiteAssets/SiteAssets/browser/template.html?rev=1642272&view=auto
==============================================================================
--- 
chemistry/parts/trunk/sharepoint-projects/CMIS.Sharepoint2010.SiteAssets/CMIS.Sharepoint2010.SiteAssets/SiteAssets/browser/template.html
 (added)
+++ 
chemistry/parts/trunk/sharepoint-projects/CMIS.Sharepoint2010.SiteAssets/CMIS.Sharepoint2010.SiteAssets/SiteAssets/browser/template.html
 Fri Nov 28 08:44:28 2014
@@ -0,0 +1,53 @@
+<!-- 
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+ -->
+ 
+ <div id="cmisbrowser-templates">
+
+       <script id="cmis-browser-template" type="text/template">
+               <div class="errors"></div>
+               <div style="display: none;" class="login">
+               </div>
+               <div style="display: none;" class="browser">
+                       <div class="button getCheckedOutDocs">Show my 
checked-out documents</div>
+                       <ul class="root static">
+                       </ul>
+               </div>
+               <div id="overlay"></div>
+       </script>
+
+       <script id="cmis-browser-item-template" type="text/template">
+                       <li class="static"><div class="static menu-item"
+                                       id="${cmis:objectId}">
+                                       <div class="folderName">
+                                               <div class="icons">
+                                                       <div class="icon 
icon-open closed" enabled="${canGetChildren}"></div>
+                                               </div>
+                                               <div class="editText label" 
id="${cmis:objectId}/name">${cmis:name}</div>
+                                               <div class="actions">
+                                                       <div class="icon 
icon-add" enabled="${canCreateFolder}"></div>
+                                                       <div class="icon 
icon-edit" enabled="${canUpdateProperties}"></div>
+                                                       <div class="icon 
icon-delete" enabled="${canDeleteObject}"></div>
+                                               </div>
+                                       </div>
+                               </div>
+                               <ul class="static">
+                               </ul></li>
+               </script>
+
+</div>
\ No newline at end of file

Propchange: 
chemistry/parts/trunk/sharepoint-projects/CMIS.Sharepoint2010.SiteAssets/CMIS.Sharepoint2010.SiteAssets/SiteAssets/browser/template.html
------------------------------------------------------------------------------
    svn:eol-style = native

Added: 
chemistry/parts/trunk/sharepoint-projects/CMIS.Sharepoint2010.SiteAssets/CMIS.Sharepoint2010.SiteAssets/SiteAssets/credentials/MicrosoftAjax.js
URL: 
http://svn.apache.org/viewvc/chemistry/parts/trunk/sharepoint-projects/CMIS.Sharepoint2010.SiteAssets/CMIS.Sharepoint2010.SiteAssets/SiteAssets/credentials/MicrosoftAjax.js?rev=1642272&view=auto
==============================================================================
--- 
chemistry/parts/trunk/sharepoint-projects/CMIS.Sharepoint2010.SiteAssets/CMIS.Sharepoint2010.SiteAssets/SiteAssets/credentials/MicrosoftAjax.js
 (added)
+++ 
chemistry/parts/trunk/sharepoint-projects/CMIS.Sharepoint2010.SiteAssets/CMIS.Sharepoint2010.SiteAssets/SiteAssets/credentials/MicrosoftAjax.js
 Fri Nov 28 08:44:28 2014
@@ -0,0 +1,6 @@
+//----------------------------------------------------------
+// Copyright (C) Microsoft Corporation. All rights reserved.
+//----------------------------------------------------------
+// MicrosoftAjax.js

[... 3 lines stripped ...]
Propchange: 
chemistry/parts/trunk/sharepoint-projects/CMIS.Sharepoint2010.SiteAssets/CMIS.Sharepoint2010.SiteAssets/SiteAssets/credentials/MicrosoftAjax.js
------------------------------------------------------------------------------
    svn:eol-style = native

Added: 
chemistry/parts/trunk/sharepoint-projects/CMIS.Sharepoint2010.SiteAssets/CMIS.Sharepoint2010.SiteAssets/SiteAssets/credentials/aes.js
URL: 
http://svn.apache.org/viewvc/chemistry/parts/trunk/sharepoint-projects/CMIS.Sharepoint2010.SiteAssets/CMIS.Sharepoint2010.SiteAssets/SiteAssets/credentials/aes.js?rev=1642272&view=auto
==============================================================================
--- 
chemistry/parts/trunk/sharepoint-projects/CMIS.Sharepoint2010.SiteAssets/CMIS.Sharepoint2010.SiteAssets/SiteAssets/credentials/aes.js
 (added)
+++ 
chemistry/parts/trunk/sharepoint-projects/CMIS.Sharepoint2010.SiteAssets/CMIS.Sharepoint2010.SiteAssets/SiteAssets/credentials/aes.js
 Fri Nov 28 08:44:28 2014
@@ -0,0 +1,35 @@
+/*
+CryptoJS v3.1.2
+code.google.com/p/crypto-js
+(c) 2009-2013 by Jeff Mott. All rights reserved.
+code.google.com/p/crypto-js/wiki/License
+*/
+var CryptoJS=CryptoJS||function(u,p){var 
d={},l=d.lib={},s=function(){},t=l.Base={extend:function(a){s.prototype=this;var
 c=new 
s;a&&c.mixIn(a);c.hasOwnProperty("init")||(c.init=function(){c.$super.init.apply(this,arguments)});c.init.prototype=c;c.$super=this;return
 c},create:function(){var a=this.extend();a.init.apply(a,arguments);return 
a},init:function(){},mixIn:function(a){for(var c in 
a)a.hasOwnProperty(c)&&(this[c]=a[c]);a.hasOwnProperty("toString")&&(this.toString=a.toString)},clone:function(){return
 this.init.prototype.extend(this)}},
+r=l.WordArray=t.extend({init:function(a,c){a=this.words=a||[];this.sigBytes=c!=p?c:4*a.length},toString:function(a){return(a||v).stringify(this)},concat:function(a){var
 
c=this.words,e=a.words,j=this.sigBytes;a=a.sigBytes;this.clamp();if(j%4)for(var 
k=0;k<a;k++)c[j+k>>>2]|=(e[k>>>2]>>>24-8*(k%4)&255)<<24-8*((j+k)%4);else 
if(65535<e.length)for(k=0;k<a;k+=4)c[j+k>>>2]=e[k>>>2];else 
c.push.apply(c,e);this.sigBytes+=a;return this},clamp:function(){var 
a=this.words,c=this.sigBytes;a[c>>>2]&=4294967295<<
+32-8*(c%4);a.length=u.ceil(c/4)},clone:function(){var 
a=t.clone.call(this);a.words=this.words.slice(0);return 
a},random:function(a){for(var 
c=[],e=0;e<a;e+=4)c.push(4294967296*u.random()|0);return new 
r.init(c,a)}}),w=d.enc={},v=w.Hex={stringify:function(a){var 
c=a.words;a=a.sigBytes;for(var e=[],j=0;j<a;j++){var 
k=c[j>>>2]>>>24-8*(j%4)&255;e.push((k>>>4).toString(16));e.push((k&15).toString(16))}return
 e.join("")},parse:function(a){for(var 
c=a.length,e=[],j=0;j<c;j+=2)e[j>>>3]|=parseInt(a.substr(j,
+2),16)<<24-4*(j%8);return new 
r.init(e,c/2)}},b=w.Latin1={stringify:function(a){var 
c=a.words;a=a.sigBytes;for(var 
e=[],j=0;j<a;j++)e.push(String.fromCharCode(c[j>>>2]>>>24-8*(j%4)&255));return 
e.join("")},parse:function(a){for(var 
c=a.length,e=[],j=0;j<c;j++)e[j>>>2]|=(a.charCodeAt(j)&255)<<24-8*(j%4);return 
new r.init(e,c)}},x=w.Utf8={stringify:function(a){try{return 
decodeURIComponent(escape(b.stringify(a)))}catch(c){throw Error("Malformed 
UTF-8 data");}},parse:function(a){return 
b.parse(unescape(encodeURIComponent(a)))}},
+q=l.BufferedBlockAlgorithm=t.extend({reset:function(){this._data=new 
r.init;this._nDataBytes=0},_append:function(a){"string"==typeof 
a&&(a=x.parse(a));this._data.concat(a);this._nDataBytes+=a.sigBytes},_process:function(a){var
 
c=this._data,e=c.words,j=c.sigBytes,k=this.blockSize,b=j/(4*k),b=a?u.ceil(b):u.max((b|0)-this._minBufferSize,0);a=b*k;j=u.min(4*a,j);if(a){for(var
 q=0;q<a;q+=k)this._doProcessBlock(e,q);q=e.splice(0,a);c.sigBytes-=j}return 
new r.init(q,j)},clone:function(){var a=t.clone.call(this);
+a._data=this._data.clone();return 
a},_minBufferSize:0});l.Hasher=q.extend({cfg:t.extend(),init:function(a){this.cfg=this.cfg.extend(a);this.reset()},reset:function(){q.reset.call(this);this._doReset()},update:function(a){this._append(a);this._process();return
 this},finalize:function(a){a&&this._append(a);return 
this._doFinalize()},blockSize:16,_createHelper:function(a){return 
function(b,e){return(new 
a.init(e)).finalize(b)}},_createHmacHelper:function(a){return 
function(b,e){return(new n.HMAC.init(a,
+e)).finalize(b)}}});var n=d.algo={};return d}(Math);
+(function(){var 
u=CryptoJS,p=u.lib.WordArray;u.enc.Base64={stringify:function(d){var 
l=d.words,p=d.sigBytes,t=this._map;d.clamp();d=[];for(var r=0;r<p;r+=3)for(var 
w=(l[r>>>2]>>>24-8*(r%4)&255)<<16|(l[r+1>>>2]>>>24-8*((r+1)%4)&255)<<8|l[r+2>>>2]>>>24-8*((r+2)%4)&255,v=0;4>v&&r+0.75*v<p;v++)d.push(t.charAt(w>>>6*(3-v)&63));if(l=t.charAt(64))for(;d.length%4;)d.push(l);return
 d.join("")},parse:function(d){var 
l=d.length,s=this._map,t=s.charAt(64);t&&(t=d.indexOf(t),-1!=t&&(l=t));for(var 
t=[],r=0,w=0;w<
+l;w++)if(w%4){var 
v=s.indexOf(d.charAt(w-1))<<2*(w%4),b=s.indexOf(d.charAt(w))>>>6-2*(w%4);t[r>>>2]|=(v|b)<<24-8*(r%4);r++}return
 
p.create(t,r)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="}})();
+(function(u){function 
p(b,n,a,c,e,j,k){b=b+(n&a|~n&c)+e+k;return(b<<j|b>>>32-j)+n}function 
d(b,n,a,c,e,j,k){b=b+(n&c|a&~c)+e+k;return(b<<j|b>>>32-j)+n}function 
l(b,n,a,c,e,j,k){b=b+(n^a^c)+e+k;return(b<<j|b>>>32-j)+n}function 
s(b,n,a,c,e,j,k){b=b+(a^(n|~c))+e+k;return(b<<j|b>>>32-j)+n}for(var 
t=CryptoJS,r=t.lib,w=r.WordArray,v=r.Hasher,r=t.algo,b=[],x=0;64>x;x++)b[x]=4294967296*u.abs(u.sin(x+1))|0;r=r.MD5=v.extend({_doReset:function(){this._hash=new
 w.init([1732584193,4023233417,2562383102,271733878])},
+_doProcessBlock:function(q,n){for(var a=0;16>a;a++){var 
c=n+a,e=q[c];q[c]=(e<<8|e>>>24)&16711935|(e<<24|e>>>8)&4278255360}var 
a=this._hash.words,c=q[n+0],e=q[n+1],j=q[n+2],k=q[n+3],z=q[n+4],r=q[n+5],t=q[n+6],w=q[n+7],v=q[n+8],A=q[n+9],B=q[n+10],C=q[n+11],u=q[n+12],D=q[n+13],E=q[n+14],x=q[n+15],f=a[0],m=a[1],g=a[2],h=a[3],f=p(f,m,g,h,c,7,b[0]),h=p(h,f,m,g,e,12,b[1]),g=p(g,h,f,m,j,17,b[2]),m=p(m,g,h,f,k,22,b[3]),f=p(f,m,g,h,z,7,b[4]),h=p(h,f,m,g,r,12,b[5]),g=p(g,h,f,m,t,17,b[6]),m=p(m,g,h,f,w,22,b[7]),
+f=p(f,m,g,h,v,7,b[8]),h=p(h,f,m,g,A,12,b[9]),g=p(g,h,f,m,B,17,b[10]),m=p(m,g,h,f,C,22,b[11]),f=p(f,m,g,h,u,7,b[12]),h=p(h,f,m,g,D,12,b[13]),g=p(g,h,f,m,E,17,b[14]),m=p(m,g,h,f,x,22,b[15]),f=d(f,m,g,h,e,5,b[16]),h=d(h,f,m,g,t,9,b[17]),g=d(g,h,f,m,C,14,b[18]),m=d(m,g,h,f,c,20,b[19]),f=d(f,m,g,h,r,5,b[20]),h=d(h,f,m,g,B,9,b[21]),g=d(g,h,f,m,x,14,b[22]),m=d(m,g,h,f,z,20,b[23]),f=d(f,m,g,h,A,5,b[24]),h=d(h,f,m,g,E,9,b[25]),g=d(g,h,f,m,k,14,b[26]),m=d(m,g,h,f,v,20,b[27]),f=d(f,m,g,h,D,5,b[28]),h=d(h,f,
+m,g,j,9,b[29]),g=d(g,h,f,m,w,14,b[30]),m=d(m,g,h,f,u,20,b[31]),f=l(f,m,g,h,r,4,b[32]),h=l(h,f,m,g,v,11,b[33]),g=l(g,h,f,m,C,16,b[34]),m=l(m,g,h,f,E,23,b[35]),f=l(f,m,g,h,e,4,b[36]),h=l(h,f,m,g,z,11,b[37]),g=l(g,h,f,m,w,16,b[38]),m=l(m,g,h,f,B,23,b[39]),f=l(f,m,g,h,D,4,b[40]),h=l(h,f,m,g,c,11,b[41]),g=l(g,h,f,m,k,16,b[42]),m=l(m,g,h,f,t,23,b[43]),f=l(f,m,g,h,A,4,b[44]),h=l(h,f,m,g,u,11,b[45]),g=l(g,h,f,m,x,16,b[46]),m=l(m,g,h,f,j,23,b[47]),f=s(f,m,g,h,c,6,b[48]),h=s(h,f,m,g,w,10,b[49]),g=s(g,h,f,m,
+E,15,b[50]),m=s(m,g,h,f,r,21,b[51]),f=s(f,m,g,h,u,6,b[52]),h=s(h,f,m,g,k,10,b[53]),g=s(g,h,f,m,B,15,b[54]),m=s(m,g,h,f,e,21,b[55]),f=s(f,m,g,h,v,6,b[56]),h=s(h,f,m,g,x,10,b[57]),g=s(g,h,f,m,t,15,b[58]),m=s(m,g,h,f,D,21,b[59]),f=s(f,m,g,h,z,6,b[60]),h=s(h,f,m,g,C,10,b[61]),g=s(g,h,f,m,j,15,b[62]),m=s(m,g,h,f,A,21,b[63]);a[0]=a[0]+f|0;a[1]=a[1]+m|0;a[2]=a[2]+g|0;a[3]=a[3]+h|0},_doFinalize:function(){var
 
b=this._data,n=b.words,a=8*this._nDataBytes,c=8*b.sigBytes;n[c>>>5]|=128<<24-c%32;var
 e=u.floor(a/
+4294967296);n[(c+64>>>9<<4)+15]=(e<<8|e>>>24)&16711935|(e<<24|e>>>8)&4278255360;n[(c+64>>>9<<4)+14]=(a<<8|a>>>24)&16711935|(a<<24|a>>>8)&4278255360;b.sigBytes=4*(n.length+1);this._process();b=this._hash;n=b.words;for(a=0;4>a;a++)c=n[a],n[a]=(c<<8|c>>>24)&16711935|(c<<24|c>>>8)&4278255360;return
 b},clone:function(){var b=v.clone.call(this);b._hash=this._hash.clone();return 
b}});t.MD5=v._createHelper(r);t.HmacMD5=v._createHmacHelper(r)})(Math);
+(function(){var 
u=CryptoJS,p=u.lib,d=p.Base,l=p.WordArray,p=u.algo,s=p.EvpKDF=d.extend({cfg:d.extend({keySize:4,hasher:p.MD5,iterations:1}),init:function(d){this.cfg=this.cfg.extend(d)},compute:function(d,r){for(var
 
p=this.cfg,s=p.hasher.create(),b=l.create(),u=b.words,q=p.keySize,p=p.iterations;u.length<q;){n&&s.update(n);var
 n=s.update(d).finalize(r);s.reset();for(var 
a=1;a<p;a++)n=s.finalize(n),s.reset();b.concat(n)}b.sigBytes=4*q;return 
b}});u.EvpKDF=function(d,l,p){return s.create(p).compute(d,
+l)}})();
+CryptoJS.lib.Cipher||function(u){var 
p=CryptoJS,d=p.lib,l=d.Base,s=d.WordArray,t=d.BufferedBlockAlgorithm,r=p.enc.Base64,w=p.algo.EvpKDF,v=d.Cipher=t.extend({cfg:l.extend(),createEncryptor:function(e,a){return
 this.create(this._ENC_XFORM_MODE,e,a)},createDecryptor:function(e,a){return 
this.create(this._DEC_XFORM_MODE,e,a)},init:function(e,a,b){this.cfg=this.cfg.extend(b);this._xformMode=e;this._key=a;this.reset()},reset:function(){t.reset.call(this);this._doReset()},process:function(e){this._append(e);return
 this._process()},
+finalize:function(e){e&&this._append(e);return 
this._doFinalize()},keySize:4,ivSize:4,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(e){return{encrypt:function(b,k,d){return("string"==typeof
 k?c:a).encrypt(e,b,k,d)},decrypt:function(b,k,d){return("string"==typeof 
k?c:a).decrypt(e,b,k,d)}}}});d.StreamCipher=v.extend({_doFinalize:function(){return
 this._process(!0)},blockSize:1});var b=p.mode={},x=function(e,a,b){var 
c=this._iv;c?this._iv=u:c=this._prevBlock;for(var d=0;d<b;d++)e[a+d]^=
+c[d]},q=(d.BlockCipherMode=l.extend({createEncryptor:function(e,a){return 
this.Encryptor.create(e,a)},createDecryptor:function(e,a){return 
this.Decryptor.create(e,a)},init:function(e,a){this._cipher=e;this._iv=a}})).extend();q.Encryptor=q.extend({processBlock:function(e,a){var
 
b=this._cipher,c=b.blockSize;x.call(this,e,a,c);b.encryptBlock(e,a);this._prevBlock=e.slice(a,a+c)}});q.Decryptor=q.extend({processBlock:function(e,a){var
 b=this._cipher,c=b.blockSize,d=e.slice(a,a+c);b.decryptBlock(e,a);x.call(this,
+e,a,c);this._prevBlock=d}});b=b.CBC=q;q=(p.pad={}).Pkcs7={pad:function(a,b){for(var
 
c=4*b,c=c-a.sigBytes%c,d=c<<24|c<<16|c<<8|c,l=[],n=0;n<c;n+=4)l.push(d);c=s.create(l,c);a.concat(c)},unpad:function(a){a.sigBytes-=a.words[a.sigBytes-1>>>2]&255}};d.BlockCipher=v.extend({cfg:v.cfg.extend({mode:b,padding:q}),reset:function(){v.reset.call(this);var
 a=this.cfg,b=a.iv,a=a.mode;if(this._xformMode==this._ENC_XFORM_MODE)var 
c=a.createEncryptor;else 
c=a.createDecryptor,this._minBufferSize=1;this._mode=c.call(a,
+this,b&&b.words)},_doProcessBlock:function(a,b){this._mode.processBlock(a,b)},_doFinalize:function(){var
 
a=this.cfg.padding;if(this._xformMode==this._ENC_XFORM_MODE){a.pad(this._data,this.blockSize);var
 b=this._process(!0)}else b=this._process(!0),a.unpad(b);return 
b},blockSize:4});var 
n=d.CipherParams=l.extend({init:function(a){this.mixIn(a)},toString:function(a){return(a||this.formatter).stringify(this)}}),b=(p.format={}).OpenSSL={stringify:function(a){var
 b=a.ciphertext;a=a.salt;return(a?s.create([1398893684,
+1701076831]).concat(a).concat(b):b).toString(r)},parse:function(a){a=r.parse(a);var
 b=a.words;if(1398893684==b[0]&&1701076831==b[1]){var 
c=s.create(b.slice(2,4));b.splice(0,4);a.sigBytes-=16}return 
n.create({ciphertext:a,salt:c})}},a=d.SerializableCipher=l.extend({cfg:l.extend({format:b}),encrypt:function(a,b,c,d){d=this.cfg.extend(d);var
 l=a.createEncryptor(c,d);b=l.finalize(b);l=l.cfg;return 
n.create({ciphertext:b,key:c,iv:l.iv,algorithm:a,mode:l.mode,padding:l.padding,blockSize:a.blockSize,formatter:d.format})},
+decrypt:function(a,b,c,d){d=this.cfg.extend(d);b=this._parse(b,d.format);return
 
a.createDecryptor(c,d).finalize(b.ciphertext)},_parse:function(a,b){return"string"==typeof
 
a?b.parse(a,this):a}}),p=(p.kdf={}).OpenSSL={execute:function(a,b,c,d){d||(d=s.random(8));a=w.create({keySize:b+c}).compute(a,d);c=s.create(a.words.slice(b),4*c);a.sigBytes=4*b;return
 
n.create({key:a,iv:c,salt:d})}},c=d.PasswordBasedCipher=a.extend({cfg:a.cfg.extend({kdf:p}),encrypt:function(b,c,d,l){l=this.cfg.extend(l);d=l.kdf.execute(d,
+b.keySize,b.ivSize);l.iv=d.iv;b=a.encrypt.call(this,b,c,d.key,l);b.mixIn(d);return
 
b},decrypt:function(b,c,d,l){l=this.cfg.extend(l);c=this._parse(c,l.format);d=l.kdf.execute(d,b.keySize,b.ivSize,c.salt);l.iv=d.iv;return
 a.decrypt.call(this,b,c,d.key,l)}})}();
+(function(){for(var 
u=CryptoJS,p=u.lib.BlockCipher,d=u.algo,l=[],s=[],t=[],r=[],w=[],v=[],b=[],x=[],q=[],n=[],a=[],c=0;256>c;c++)a[c]=128>c?c<<1:c<<1^283;for(var
 e=0,j=0,c=0;256>c;c++){var 
k=j^j<<1^j<<2^j<<3^j<<4,k=k>>>8^k&255^99;l[e]=k;s[k]=e;var 
z=a[e],F=a[z],G=a[F],y=257*a[k]^16843008*k;t[e]=y<<24|y>>>8;r[e]=y<<16|y>>>16;w[e]=y<<8|y>>>24;v[e]=y;y=16843009*G^65537*F^257*z^16843008*e;b[k]=y<<24|y>>>8;x[k]=y<<16|y>>>16;q[k]=y<<8|y>>>24;n[k]=y;e?(e=z^a[a[a[G^z]]],j^=a[a[j]]):e=j=1}var
 H=[0,1,2,4,8,
+16,32,64,128,27,54],d=d.AES=p.extend({_doReset:function(){for(var 
a=this._key,c=a.words,d=a.sigBytes/4,a=4*((this._nRounds=d+6)+1),e=this._keySchedule=[],j=0;j<a;j++)if(j<d)e[j]=c[j];else{var
 
k=e[j-1];j%d?6<d&&4==j%d&&(k=l[k>>>24]<<24|l[k>>>16&255]<<16|l[k>>>8&255]<<8|l[k&255]):(k=k<<8|k>>>24,k=l[k>>>24]<<24|l[k>>>16&255]<<16|l[k>>>8&255]<<8|l[k&255],k^=H[j/d|0]<<24);e[j]=e[j-d]^k}c=this._invKeySchedule=[];for(d=0;d<a;d++)j=a-d,k=d%4?e[j]:e[j-4],c[d]=4>d||4>=j?k:b[l[k>>>24]]^x[l[k>>>16&255]]^q[l[k>>>
+8&255]]^n[l[k&255]]},encryptBlock:function(a,b){this._doCryptBlock(a,b,this._keySchedule,t,r,w,v,l)},decryptBlock:function(a,c){var
 
d=a[c+1];a[c+1]=a[c+3];a[c+3]=d;this._doCryptBlock(a,c,this._invKeySchedule,b,x,q,n,s);d=a[c+1];a[c+1]=a[c+3];a[c+3]=d},_doCryptBlock:function(a,b,c,d,e,j,l,f){for(var
 
m=this._nRounds,g=a[b]^c[0],h=a[b+1]^c[1],k=a[b+2]^c[2],n=a[b+3]^c[3],p=4,r=1;r<m;r++)var
 
q=d[g>>>24]^e[h>>>16&255]^j[k>>>8&255]^l[n&255]^c[p++],s=d[h>>>24]^e[k>>>16&255]^j[n>>>8&255]^l[g&255]^c[p++],t=
+d[k>>>24]^e[n>>>16&255]^j[g>>>8&255]^l[h&255]^c[p++],n=d[n>>>24]^e[g>>>16&255]^j[h>>>8&255]^l[k&255]^c[p++],g=q,h=s,k=t;q=(f[g>>>24]<<24|f[h>>>16&255]<<16|f[k>>>8&255]<<8|f[n&255])^c[p++];s=(f[h>>>24]<<24|f[k>>>16&255]<<16|f[n>>>8&255]<<8|f[g&255])^c[p++];t=(f[k>>>24]<<24|f[n>>>16&255]<<16|f[g>>>8&255]<<8|f[h&255])^c[p++];n=(f[n>>>24]<<24|f[g>>>16&255]<<16|f[h>>>8&255]<<8|f[k&255])^c[p++];a[b]=q;a[b+1]=s;a[b+2]=t;a[b+3]=n},keySize:8});u.AES=p._createHelper(d)})();
\ No newline at end of file

Propchange: 
chemistry/parts/trunk/sharepoint-projects/CMIS.Sharepoint2010.SiteAssets/CMIS.Sharepoint2010.SiteAssets/SiteAssets/credentials/aes.js
------------------------------------------------------------------------------
    svn:eol-style = native


Reply via email to