{"version":3,"sources":["../../src/js/lib/hbs.js","../../src/js/EAT/utils.js","../../src/js/lib/snap.js","../../src/js/lib/picturefill.js","../../src/js/lib/jquery.history.js","../../src/js/lib/polyfill.object-fit.min.js","../../src/js/lib/media.match.js","../../src/js/lib/enquire.min.js","../../src/js/lib/freewall.js","../../src/js/lib/jstree.js","../../src/js/lib/jstree.configit.js","../../src/js/lib/jquery.matchHeight-min.js","../../src/js/lib/chosen.jquery.js","../../src/js/lib/bootstrap-switch/bootstrap-switch.js","../../src/js/lib/breakpoints.js","../../src/js/lib/jquery.scrollTo.min.js","../../src/js/lib/jquery.fitvids.js","../../src/js/lib/jquery.sticky-kit.min.js","../../src/js/lib/jquery.visualNav.js","../../src/js/lib/headroom.min.js","../../src/js/lib/jQuery.headroom.min.js","../../src/js/lib/jquery.ba-throttle-debounce.min.js","../../src/js/lib/jquery-deparam.min.js","../../src/js/lib/position-calculator.min.js","../../src/js/lib/bootstrap-hover-dropdown.js"],"names":[],"mappings":"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AC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,MAAM,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,KAAK,CAAC,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,MAAM,KAAK,IAAI,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,IA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AG,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,GAAG,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CA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","file":"libs.js","sourcesContent":["/*\r\n Copyright (c) 2013 Hanson Inc.\r\n\r\n Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated\r\n documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the\r\n rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to\r\n permit persons to whom the Software is furnished to do so, subject to the following conditions:\r\n\r\n The above copyright notice and this permission notice shall be included in all copies or substantial portions of\r\n the Software.\r\n\r\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO\r\n THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\r\n TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\r\n/* global browser, require, define, console */\r\n/**\r\n * @class HBS\r\n * @namespace HBS\r\n * @desc HBS (HanBootStrapper) is a page initialization and object creation/utility library.\r\n */\r\n(function () {\r\n\tvar module = {};\r\n\r\n\tmodule.defaults = {\r\n\t\tdebugMode: false,\r\n\t\tautoInit: false\r\n\t};\r\n\r\n\t/**\r\n\t * @method initPage\r\n\t * @memberof HBS\r\n\t * @desc Initializes a page based on two HTML data attributes, data-section and data-page,\r\n\t * located on the body element. data-section defines a Javascript file to be loaded using\r\n\t * require.js notation (dir/subdir/file). This file is expected to act as a \"section controller\"\r\n\t * and to load common scripts and initialize common functionality for a group of related pages.\r\n\t * If the loaded JS file contains an init() function, it will be run automatically.\r\n\t * data-page is optional and defines a second, page-level function to run. If data-location\r\n\t * is \"com/sections/products\", data-action might be \"productDetail\", in which case HanBootStrapper\r\n\t * will look for a productDetail() function in the loaded JS file and run it.\r\n\t * @param {Boolean} [async=false] If true, loads the script associated with data-async-script\r\n\t * @param {Boolean} [afterAsyncLoad=false] If true, suppresses asynchronous loading to prevent an infinite loop.\r\n\t * Passed by autoLoadScript().\r\n\t */\r\n\tmodule.initPage = function (async, afterAsyncLoad) {\r\n\t\tvar body = document.body,\r\n\t\t\tsection = body.getAttribute('data-section'),\r\n\t\t\tpage = body.getAttribute('data-page'),\r\n\t\t\tasyncScript = body.getAttribute('data-async-script'),\r\n\t\t\tautoLoadScript = body.getAttribute('data-autoload') != null || async === true;\r\n\t\tvar loadedSection = module.getNamespacedObject(section);\r\n\r\n\t\tif ( autoLoadScript === true && asyncScript && typeof( loadedSection !== 'function') && afterAsyncLoad !== true) {\r\n\t\t\tmodule.autoLoadScript(asyncScript);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (section && loadedSection != null) {\r\n\t\t\tif (loadedSection.hasOwnProperty('init')) {\r\n\t\t\t\tloadedSection.init();\r\n\t\t\t}\r\n\r\n\t\t\tif (page && typeof(loadedSection[page]) === 'function') {\r\n\t\t\t\tloadedSection[page]();\r\n\t\t\t}\r\n\r\n\t\t} else {\r\n\t\t\t//console.log(\"Unable to load module \" + section);\r\n\t\t}\r\n\t};\r\n\r\n\t/**\r\n\t * Attempts to asynchronously load the section controller script and then re-runs\r\n\t * module.initPage().\r\n\t * @internal\r\n\t * @param {String} script A script file to load\r\n\t */\r\n\tmodule.autoLoadScript = function(script) {\r\n\t\tvar script = module.getScriptPath(script);\r\n\r\n\t\t//console.log(\"Beginning asynchronous load of \" + script);\r\n\t\tvar s = document.createElement(\"script\");\r\n\t\ts.type = \"text/javascript\";\r\n\t\ts.onload = function() { module.initPage(false, true); };\r\n\t\ts.onerror = function() { /*console.log(\"Unable to load \" + script);*/ };\r\n\t\ts.src = script;\r\n\t\tdocument.head.appendChild(s);\r\n\t};\r\n\r\n\t/**\r\n\t * @method namespace\r\n\t * @memberof HBS\r\n\t * @param {string} pkg: A dot-separated package name for your object, e.g. com.myClass.\r\n\t * Any missing objects from the window object to your class will be created.\r\n\t * @param {function|object} func: A function or object to be namespaced.\r\n\t * @desc Namespaces an object by creating or appending it to the chain of objects\r\n\t * located within a certain package.\r\n\t */\r\n\tmodule.namespace = function (pkg, func) {\r\n\t\tvar packageParts = module.getPackageArray(pkg);\r\n\t\tvar target = window;\r\n\t\tvar nextPart;\r\n\r\n\t\tfor (var i = 0, max = packageParts.length; i < max; i++) {\r\n\t\t\tnextPart = packageParts[i];\r\n\t\t\ttarget[nextPart] = target[nextPart] || {};\r\n\t\t\tif (i === max - 1) {\r\n\t\t\t\ttarget[nextPart] = func;\r\n\t\t\t} else {\r\n\t\t\t\ttarget = target[nextPart];\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t/**\r\n\t * @method extend\r\n\t * @memberof HBS\r\n\t * @param {object, function} parent: An object or class to be used as an inheritance\r\n\t * prototype. The child object will be the same type (object or class) as the parent.\r\n\t * @param {function} constructor: An optional function to be the constructor of your\r\n\t * child class. Constructor is ignored if parent is of type {object}.\r\n\t */\r\n\tmodule.extend = function (parent, _constructor) {\r\n\t\tvar child;\r\n\t\tvar tmp;\r\n\r\n\t\tif (typeof(parent) === 'function') {\r\n\t\t\tvar tmp = function () {\r\n\t\t\t};\r\n\t\t\ttmp.prototype = parent.prototype;\r\n\t\t\tchild = _constructor;\r\n\t\t\tif ('create' in Object) {\r\n\t\t\t\tchild.prototype = Object.create(parent.prototype);\r\n\t\t\t} else {\r\n\t\t\t\tchild.prototype = new parent(Array.prototype.slice.call, arguments);\r\n\t\t\t}\r\n\r\n\t\t\tchild.prototype._super = parent.prototype;\r\n\t\t\treturn child;\r\n\t\t}\r\n\r\n\t\telse if (typeof(parent) === 'object') {\r\n\t\t\tchild = {};\r\n\t\t\tchild.prototype = parent;\r\n\t\t\treturn child;\r\n\t\t}\r\n\t};\r\n\r\n\t/**\r\n\t * @memberof HBS\r\n\t * @param {string} pkg An object in dot notation (e.g. mySite.myObject)\r\n\t * @returns {Boolean} Whether or not the current object is defined\r\n\t */\r\n\tmodule.exists = function(pkg) {\r\n\t\treturn module.getNamespacedObject(pkg) !== null;\r\n\t};\r\n\r\n\t/**\r\n\t * @memberof HBS\r\n\t * @param {string} pkg An object in dot notation (e.g. mySite.myObject)\r\n\t * @returns {Boolean} Returns a namespace object if it exists, or null if it doesn't\r\n\t */\r\n\tmodule.getNamespacedObject = function(pkg) {\r\n\t\tvar packageParts = module.getPackageArray(pkg),\r\n\t\t\ttarget = window,\r\n\t\t\tnextPart,\r\n\t\t\tretVal = null;\r\n\r\n\t\tfor (var i = 0, max = packageParts.length; i < max; i++) {\r\n\t\t\tnextPart = packageParts[i];\r\n\t\t\tif (typeof (target[nextPart]) === 'undefined') {\r\n\t\t\t\tretVal = false;\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\tretVal = target = target[nextPart];\r\n\t\t}\r\n\r\n\t\treturn retVal;\r\n\t};\r\n\r\n\t/**\r\n\t * @private\r\n\t * @memberof HBS\r\n\t * @param {Object} pkg: An internal function used to split a string\r\n\t * into an array of objects to be created or traversed.\r\n\t */\r\n\tmodule.getPackageArray = function (pkg) {\r\n\t\treturn (typeof(pkg) !== 'string') ? '' : pkg.split('.');\r\n\t};\r\n\r\n\t/**\r\n\t * Returns the path to a given script\r\n\t * @param {String} scriptName\r\n\t * @returns {String} The path of the script to be loaded\r\n\t */\r\n\tmodule.getScriptPath = function(scriptName) {\r\n\t\tif (/^\\/\\//.test(scriptName)) {\r\n\t\t\tscriptName = document.location.protocol + scriptName;\r\n\t\t}\r\n\t\treturn scriptName;\r\n\t}\r\n\r\n\tif (module.defaults.autoInit) {\r\n\t\t$(document).ready(function() {\r\n\t\t\tmodule.initPage();\r\n\t\t});\r\n\t}\r\n\r\n\tmodule.namespace('HBS', module);\r\n}());\r\n","(function() {\r\n\t/**\r\n\t * @exports EAT.controllers.home\r\n\t * @classdesc An example class.\r\n\t * @requires HBS\r\n\t */\r\n\tvar module = {};\r\n\r\n\t/**\r\n\t * A static function\r\n\t * @static\r\n\t */\r\n\tmodule.isMobile = function() {\r\n\t\tvar retVal = false;\r\n\t\tif ('matchMedia' in window) {\r\n\t\t\tretVal = window.matchMedia('(max-width: 767px)').matches;\r\n\t\t} else {\r\n\t\t\tretVal = $(window).width() < 768\r\n\t\t}\r\n\r\n\t\treturn retVal;\r\n\t};\r\n\r\n\t/**\r\n\t * A static function\r\n\t * @static\r\n\t */\r\n\tmodule.mediaQuery = {\r\n\t\txs: function(){\r\n\t\t\treturn window.matchMedia('(min-width: 0px) and (max-width: 767px)').matches;\r\n\t\t},\r\n\t\tsm: function(){\r\n\t\t\treturn window.matchMedia('(min-width: 768px) and (max-width: 1023px)').matches;\r\n\t\t},\r\n\t\tmd: function(){\r\n\t\t\treturn window.matchMedia('(min-width: 1024px) and (max-width: 1139px)').matches;\r\n\t\t},\r\n\t\tlg: function(){\r\n\t\t\treturn window.matchMedia('(min-width: 1140px)').matches;\r\n\t\t}\r\n\t};\r\n\r\n\r\n\t/* Setup Switches */\r\n\tmodule.setupSwitch = function(){\r\n\t\t$.fn.bootstrapSwitch.defaults.size = 'large';\r\n\t\t$.fn.bootstrapSwitch.defaults.onSwitchChange = function(){\r\n\t\t\t$(this).trigger('change');\r\n\t\t};\r\n\r\n\t\t$('.switch-box').bootstrapSwitch();\r\n\r\n\t\t// Enable clicks on .switch-label\r\n\t\t$('.switch-label').on('click', function(){\r\n\t\t\t$(this).parents('label').trigger('click');\r\n\t\t});\r\n\t};\r\n\r\n\tmodule.isAndroidBrowser = function(){\r\n\t\tvar nua = navigator.userAgent;\r\n\t\tvar isAndroid = (nua.indexOf('Mozilla/5.0') > -1 && nua.indexOf('Android') > -1 && nua.indexOf('AppleWebKit') > -1 && nua.indexOf('Chrome') === -1);\r\n\t\tif (isAndroid) {\r\n\t\t\treturn isAndroid;\r\n\t\t}\r\n\t};\r\n\r\n\tmodule.setSwitches = function () {\r\n\t\t$('.switch-box').each(function () {\r\n\t\t\tif ($(this).is(':checked')) {\r\n\t\t\t\t$(this).bootstrapSwitch('toggleState', true);\r\n\t\t\t}\r\n\t\t});\r\n\t};\r\n\t/* Switch Functions End */\r\n\r\n\t/**\r\n\t * A static function\r\n\t * @static\r\n\t */\r\n\tmodule.isWide = function() {\r\n\t\tvar retVal = false;\r\n\t\tif ('matchMedia' in window) {\r\n\t\t\tretVal = window.matchMedia('(min-width: 992px)').matches;\r\n\t\t} else {\r\n\t\t\tretVal = $(window).width() >= 992\r\n\t\t}\r\n\r\n\t\treturn retVal;\r\n\t};\r\n\r\n\tHBS.namespace('EAT.utils', module);\r\n}());\r\n","/*\r\n * Snap.js\r\n *\r\n * Copyright 2013, Jacob Kelley - http://jakiestfu.com/\r\n * Released under the MIT Licence\r\n * http://opensource.org/licenses/MIT\r\n *\r\n * Github: http://github.com/jakiestfu/Snap.js/\r\n * Version: 1.9.3\r\n */\r\n/*jslint browser: true*/\r\n/*global define, module, ender*/\r\n(function(win, doc) {\r\n 'use strict';\r\n var Snap = Snap || function(userOpts) {\r\n var settings = {\r\n element: null,\r\n dragger: null,\r\n disable: 'none',\r\n addBodyClasses: true,\r\n hyperextensible: true,\r\n resistance: 0.5,\r\n flickThreshold: 50,\r\n transitionSpeed: 0.3,\r\n easing: 'ease',\r\n maxPosition: 266,\r\n minPosition: -266,\r\n tapToClose: true,\r\n touchToDrag: false,\r\n slideIntent: 40, // degrees\r\n minDragDistance: 5\r\n },\r\n cache = {\r\n simpleStates: {\r\n opening: null,\r\n towards: null,\r\n hyperExtending: null,\r\n halfway: null,\r\n flick: null,\r\n translation: {\r\n absolute: 0,\r\n relative: 0,\r\n sinceDirectionChange: 0,\r\n percentage: 0\r\n }\r\n }\r\n },\r\n eventList = {},\r\n utils = {\r\n hasTouch: ('ontouchstart' in doc.documentElement || win.navigator.msPointerEnabled),\r\n eventType: function(action) {\r\n var eventTypes = {\r\n down: (utils.hasTouch ? 'touchstart' : 'mousedown'),\r\n move: (utils.hasTouch ? 'touchmove' : 'mousemove'),\r\n up: (utils.hasTouch ? 'touchend' : 'mouseup'),\r\n out: (utils.hasTouch ? 'touchcancel' : 'mouseout')\r\n };\r\n return eventTypes[action];\r\n },\r\n page: function(t, e){\r\n return (utils.hasTouch && e.touches.length && e.touches[0]) ? e.touches[0]['page'+t] : e['page'+t];\r\n },\r\n klass: {\r\n has: function(el, name){\r\n return (el.className).indexOf(name) !== -1;\r\n },\r\n add: function(el, name){\r\n if(!utils.klass.has(el, name) && settings.addBodyClasses){\r\n el.className += \" \"+name;\r\n }\r\n },\r\n remove: function(el, name){\r\n if(settings.addBodyClasses){\r\n el.className = (el.className).replace(name, \"\").replace(/^\\s+|\\s+$/g, '');\r\n }\r\n }\r\n },\r\n dispatchEvent: function(type) {\r\n if (typeof eventList[type] === 'function') {\r\n return eventList[type].call();\r\n }\r\n },\r\n vendor: function(){\r\n var tmp = doc.createElement(\"div\"),\r\n prefixes = 'webkit Moz O ms'.split(' '),\r\n i;\r\n for (i in prefixes) {\r\n if (typeof tmp.style[prefixes[i] + 'Transition'] !== 'undefined') {\r\n return prefixes[i];\r\n }\r\n }\r\n },\r\n transitionCallback: function(){\r\n return (cache.vendor==='Moz' || cache.vendor==='ms') ? 'transitionend' : cache.vendor+'TransitionEnd';\r\n },\r\n canTransform: function(){\r\n return typeof settings.element.style[cache.vendor+'Transform'] !== 'undefined';\r\n },\r\n deepExtend: function(destination, source) {\r\n var property;\r\n for (property in source) {\r\n if (source[property] && source[property].constructor && source[property].constructor === Object) {\r\n destination[property] = destination[property] || {};\r\n utils.deepExtend(destination[property], source[property]);\r\n } else {\r\n destination[property] = source[property];\r\n }\r\n }\r\n return destination;\r\n },\r\n angleOfDrag: function(x, y) {\r\n var degrees, theta;\r\n // Calc Theta\r\n theta = Math.atan2(-(cache.startDragY - y), (cache.startDragX - x));\r\n if (theta < 0) {\r\n theta += 2 * Math.PI;\r\n }\r\n // Calc Degrees\r\n degrees = Math.floor(theta * (180 / Math.PI) - 180);\r\n if (degrees < 0 && degrees > -180) {\r\n degrees = 360 - Math.abs(degrees);\r\n }\r\n return Math.abs(degrees);\r\n },\r\n events: {\r\n addEvent: function addEvent(element, eventName, func) {\r\n if (element.addEventListener) {\r\n return element.addEventListener(eventName, func, false);\r\n } else if (element.attachEvent) {\r\n return element.attachEvent(\"on\" + eventName, func);\r\n }\r\n },\r\n removeEvent: function addEvent(element, eventName, func) {\r\n if (element.addEventListener) {\r\n return element.removeEventListener(eventName, func, false);\r\n } else if (element.attachEvent) {\r\n return element.detachEvent(\"on\" + eventName, func);\r\n }\r\n },\r\n prevent: function(e) {\r\n if (e.preventDefault) {\r\n e.preventDefault();\r\n } else {\r\n e.returnValue = false;\r\n }\r\n }\r\n },\r\n parentUntil: function(el, attr) {\r\n var isStr = typeof attr === 'string';\r\n while (el.parentNode) {\r\n if (isStr && el.getAttribute && el.getAttribute(attr)){\r\n return el;\r\n } else if(!isStr && el === attr){\r\n return el;\r\n }\r\n el = el.parentNode;\r\n }\r\n return null;\r\n }\r\n },\r\n action = {\r\n translate: {\r\n get: {\r\n matrix: function(index) {\r\n\r\n if( !utils.canTransform() ){\r\n return parseInt(settings.element.style.left, 10);\r\n } else {\r\n var matrix = win.getComputedStyle(settings.element)[cache.vendor+'Transform'].match(/\\((.*)\\)/),\r\n ieOffset = 8;\r\n if (matrix) {\r\n matrix = matrix[1].split(',');\r\n if(matrix.length===16){\r\n index+=ieOffset;\r\n }\r\n return parseInt(matrix[index], 10);\r\n }\r\n return 0;\r\n }\r\n }\r\n },\r\n easeCallback: function(){\r\n settings.element.style[cache.vendor+'Transition'] = '';\r\n cache.translation = action.translate.get.matrix(4);\r\n cache.easing = false;\r\n clearInterval(cache.animatingInterval);\r\n\r\n if(cache.easingTo===0){\r\n utils.klass.remove(doc.body, 'snapjs-right');\r\n utils.klass.remove(doc.body, 'snapjs-left');\r\n }\r\n\r\n utils.dispatchEvent('animated');\r\n utils.events.removeEvent(settings.element, utils.transitionCallback(), action.translate.easeCallback);\r\n },\r\n easeTo: function(n) {\r\n\r\n if( !utils.canTransform() ){\r\n cache.translation = n;\r\n action.translate.x(n);\r\n } else {\r\n cache.easing = true;\r\n cache.easingTo = n;\r\n\r\n settings.element.style[cache.vendor+'Transition'] = 'all ' + settings.transitionSpeed + 's ' + settings.easing;\r\n\r\n cache.animatingInterval = setInterval(function() {\r\n utils.dispatchEvent('animating');\r\n }, 1);\r\n \r\n utils.events.addEvent(settings.element, utils.transitionCallback(), action.translate.easeCallback);\r\n action.translate.x(n);\r\n }\r\n if(n===0){\r\n settings.element.style[cache.vendor+'Transform'] = '';\r\n }\r\n },\r\n x: function(n) {\r\n if( (settings.disable==='left' && n>0) ||\r\n (settings.disable==='right' && n<0)\r\n ){ return; }\r\n \r\n if( !settings.hyperextensible ){\r\n if( n===settings.maxPosition || n>settings.maxPosition ){\r\n n=settings.maxPosition;\r\n } else if( n===settings.minPosition || n 0,\r\n translateTo = whileDragX,\r\n diff;\r\n\r\n // Shown no intent already\r\n if((cache.intentChecked && !cache.hasIntent)){\r\n return;\r\n }\r\n\r\n if(settings.addBodyClasses){\r\n if((absoluteTranslation)>0){\r\n utils.klass.add(doc.body, 'snapjs-left');\r\n utils.klass.remove(doc.body, 'snapjs-right');\r\n } else if((absoluteTranslation)<0){\r\n utils.klass.add(doc.body, 'snapjs-right');\r\n utils.klass.remove(doc.body, 'snapjs-left');\r\n }\r\n }\r\n\r\n if (cache.hasIntent === false || cache.hasIntent === null) {\r\n var deg = utils.angleOfDrag(thePageX, thePageY),\r\n inRightRange = (deg >= 0 && deg <= settings.slideIntent) || (deg <= 360 && deg > (360 - settings.slideIntent)),\r\n inLeftRange = (deg >= 180 && deg <= (180 + settings.slideIntent)) || (deg <= 180 && deg >= (180 - settings.slideIntent));\r\n if (!inLeftRange && !inRightRange) {\r\n cache.hasIntent = false;\r\n } else {\r\n cache.hasIntent = true;\r\n }\r\n cache.intentChecked = true;\r\n }\r\n\r\n if (\r\n (settings.minDragDistance>=Math.abs(thePageX-cache.startDragX)) || // Has user met minimum drag distance?\r\n (cache.hasIntent === false)\r\n ) {\r\n return;\r\n }\r\n\r\n utils.events.prevent(e);\r\n utils.dispatchEvent('drag');\r\n\r\n cache.dragWatchers.current = thePageX;\r\n // Determine which direction we are going\r\n if (cache.dragWatchers.last > thePageX) {\r\n if (cache.dragWatchers.state !== 'left') {\r\n cache.dragWatchers.state = 'left';\r\n cache.dragWatchers.hold = thePageX;\r\n }\r\n cache.dragWatchers.last = thePageX;\r\n } else if (cache.dragWatchers.last < thePageX) {\r\n if (cache.dragWatchers.state !== 'right') {\r\n cache.dragWatchers.state = 'right';\r\n cache.dragWatchers.hold = thePageX;\r\n }\r\n cache.dragWatchers.last = thePageX;\r\n }\r\n if (openingLeft) {\r\n // Pulling too far to the right\r\n if (settings.maxPosition < absoluteTranslation) {\r\n diff = (absoluteTranslation - settings.maxPosition) * settings.resistance;\r\n translateTo = whileDragX - diff;\r\n }\r\n cache.simpleStates = {\r\n opening: 'left',\r\n towards: cache.dragWatchers.state,\r\n hyperExtending: settings.maxPosition < absoluteTranslation,\r\n halfway: absoluteTranslation > (settings.maxPosition / 2),\r\n flick: Math.abs(cache.dragWatchers.current - cache.dragWatchers.hold) > settings.flickThreshold,\r\n translation: {\r\n absolute: absoluteTranslation,\r\n relative: whileDragX,\r\n sinceDirectionChange: (cache.dragWatchers.current - cache.dragWatchers.hold),\r\n percentage: (absoluteTranslation/settings.maxPosition)*100\r\n }\r\n };\r\n } else {\r\n // Pulling too far to the left\r\n if (settings.minPosition > absoluteTranslation) {\r\n diff = (absoluteTranslation - settings.minPosition) * settings.resistance;\r\n translateTo = whileDragX - diff;\r\n }\r\n cache.simpleStates = {\r\n opening: 'right',\r\n towards: cache.dragWatchers.state,\r\n hyperExtending: settings.minPosition > absoluteTranslation,\r\n halfway: absoluteTranslation < (settings.minPosition / 2),\r\n flick: Math.abs(cache.dragWatchers.current - cache.dragWatchers.hold) > settings.flickThreshold,\r\n translation: {\r\n absolute: absoluteTranslation,\r\n relative: whileDragX,\r\n sinceDirectionChange: (cache.dragWatchers.current - cache.dragWatchers.hold),\r\n percentage: (absoluteTranslation/settings.minPosition)*100\r\n }\r\n };\r\n }\r\n action.translate.x(translateTo + translated);\r\n }\r\n },\r\n endDrag: function(e) {\r\n if (cache.isDragging) {\r\n utils.dispatchEvent('end');\r\n var translated = action.translate.get.matrix(4);\r\n\r\n // Tap Close\r\n if (cache.dragWatchers.current === 0 && translated !== 0 && settings.tapToClose) {\r\n utils.dispatchEvent('close');\r\n utils.events.prevent(e);\r\n action.translate.easeTo(0);\r\n cache.isDragging = false;\r\n cache.startDragX = 0;\r\n return;\r\n }\r\n\r\n // Revealing Left\r\n if (cache.simpleStates.opening === 'left') {\r\n // Halfway, Flicking, or Too Far Out\r\n if ((cache.simpleStates.halfway || cache.simpleStates.hyperExtending || cache.simpleStates.flick)) {\r\n if (cache.simpleStates.flick && cache.simpleStates.towards === 'left') { // Flicking Closed\r\n action.translate.easeTo(0);\r\n } else if (\r\n (cache.simpleStates.flick && cache.simpleStates.towards === 'right') || // Flicking Open OR\r\n (cache.simpleStates.halfway || cache.simpleStates.hyperExtending) // At least halfway open OR hyperextending\r\n ) {\r\n action.translate.easeTo(settings.maxPosition); // Open Left\r\n }\r\n } else {\r\n action.translate.easeTo(0); // Close Left\r\n }\r\n // Revealing Right\r\n } else if (cache.simpleStates.opening === 'right') {\r\n // Halfway, Flicking, or Too Far Out\r\n if ((cache.simpleStates.halfway || cache.simpleStates.hyperExtending || cache.simpleStates.flick)) {\r\n if (cache.simpleStates.flick && cache.simpleStates.towards === 'right') { // Flicking Closed\r\n action.translate.easeTo(0);\r\n } else if (\r\n (cache.simpleStates.flick && cache.simpleStates.towards === 'left') || // Flicking Open OR\r\n (cache.simpleStates.halfway || cache.simpleStates.hyperExtending) // At least halfway open OR hyperextending\r\n ) {\r\n action.translate.easeTo(settings.minPosition); // Open Right\r\n }\r\n } else {\r\n action.translate.easeTo(0); // Close Right\r\n }\r\n }\r\n cache.isDragging = false;\r\n cache.startDragX = utils.page('X', e);\r\n }\r\n }\r\n }\r\n },\r\n init = function(opts) {\r\n if (opts.element) {\r\n utils.deepExtend(settings, opts);\r\n cache.vendor = utils.vendor();\r\n action.drag.listen();\r\n }\r\n };\r\n /*\r\n * Public\r\n */\r\n this.open = function(side) {\r\n utils.dispatchEvent('open');\r\n utils.klass.remove(doc.body, 'snapjs-expand-left');\r\n utils.klass.remove(doc.body, 'snapjs-expand-right');\r\n\r\n if (side === 'left') {\r\n cache.simpleStates.opening = 'left';\r\n cache.simpleStates.towards = 'right';\r\n utils.klass.add(doc.body, 'snapjs-left');\r\n utils.klass.remove(doc.body, 'snapjs-right');\r\n action.translate.easeTo(settings.maxPosition);\r\n } else if (side === 'right') {\r\n cache.simpleStates.opening = 'right';\r\n cache.simpleStates.towards = 'left';\r\n utils.klass.remove(doc.body, 'snapjs-left');\r\n utils.klass.add(doc.body, 'snapjs-right');\r\n action.translate.easeTo(settings.minPosition);\r\n }\r\n };\r\n this.close = function() {\r\n utils.dispatchEvent('close');\r\n action.translate.easeTo(0);\r\n };\r\n this.expand = function(side){\r\n var to = win.innerWidth || doc.documentElement.clientWidth;\r\n\r\n if(side==='left'){\r\n utils.dispatchEvent('expandLeft');\r\n utils.klass.add(doc.body, 'snapjs-expand-left');\r\n utils.klass.remove(doc.body, 'snapjs-expand-right');\r\n } else {\r\n utils.dispatchEvent('expandRight');\r\n utils.klass.add(doc.body, 'snapjs-expand-right');\r\n utils.klass.remove(doc.body, 'snapjs-expand-left');\r\n to *= -1;\r\n }\r\n action.translate.easeTo(to);\r\n };\r\n\r\n this.on = function(evt, fn) {\r\n eventList[evt] = fn;\r\n return this;\r\n };\r\n this.off = function(evt) {\r\n if (eventList[evt]) {\r\n eventList[evt] = false;\r\n }\r\n };\r\n\r\n this.enable = function() {\r\n utils.dispatchEvent('enable');\r\n action.drag.listen();\r\n };\r\n this.disable = function() {\r\n utils.dispatchEvent('disable');\r\n action.drag.stopListening();\r\n };\r\n\r\n this.settings = function(opts){\r\n utils.deepExtend(settings, opts);\r\n };\r\n\r\n this.state = function() {\r\n var state,\r\n fromLeft = action.translate.get.matrix(4);\r\n if (fromLeft === settings.maxPosition) {\r\n state = 'left';\r\n } else if (fromLeft === settings.minPosition) {\r\n state = 'right';\r\n } else {\r\n state = 'closed';\r\n }\r\n return {\r\n state: state,\r\n info: cache.simpleStates\r\n };\r\n };\r\n init(userOpts);\r\n };\r\n if ((typeof module !== 'undefined') && module.exports) {\r\n module.exports = Snap;\r\n }\r\n if (typeof ender === 'undefined') {\r\n this.Snap = Snap;\r\n }\r\n if ((typeof define === \"function\") && define.amd) {\r\n define(\"snap\", [], function() {\r\n return Snap;\r\n });\r\n }\r\n}).call(this, window, document);\r\n","/*! Picturefill - v2.3.1 - 2015-04-09\r\n* http://scottjehl.github.io/picturefill\r\n* Copyright (c) 2015 https://github.com/scottjehl/picturefill/blob/master/Authors.txt; Licensed MIT */\r\n/*! matchMedia() polyfill - Test a CSS media type/query in JS. Authors & copyright (c) 2012: Scott Jehl, Paul Irish, Nicholas Zakas, David Knight. Dual MIT/BSD license */\r\n\r\n/*! Picturefill - Responsive Images that work today.\r\n* Author: Scott Jehl, Filament Group, 2012 ( new proposal implemented by Shawn Jansepar )\r\n* License: MIT/GPLv2\r\n* Spec: http://picture.responsiveimages.org/\r\n*/\r\n(function( w, doc, image ) {\r\n\t// Enable strict mode\r\n\t\"use strict\";\r\n\r\n\tfunction expose(picturefill) {\r\n\t\t/* expose picturefill */\r\n\t\tif ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\r\n\t\t\t// CommonJS, just export\r\n\t\t\tmodule.exports = picturefill;\r\n\t\t} else if ( typeof define === \"function\" && define.amd ) {\r\n\t\t\t// AMD support\r\n\t\t\tdefine( \"picturefill\", function() { return picturefill; } );\r\n\t\t}\r\n\t\tif ( typeof w === \"object\" ) {\r\n\t\t\t// If no AMD and we are in the browser, attach to window\r\n\t\t\tw.picturefill = picturefill;\r\n\t\t}\r\n\t}\r\n\r\n\t// If picture is supported, well, that's awesome. Let's get outta here...\r\n\tif ( w.HTMLPictureElement ) {\r\n\t\texpose(function() { });\r\n\t\treturn;\r\n\t}\r\n\r\n\t// HTML shim|v it for old IE (IE9 will still need the HTML video tag workaround)\r\n\tdoc.createElement( \"picture\" );\r\n\r\n\t// local object for method references and testing exposure\r\n\tvar pf = w.picturefill || {};\r\n\r\n\tvar regWDesc = /\\s+\\+?\\d+(e\\d+)?w/;\r\n\r\n\t// namespace\r\n\tpf.ns = \"picturefill\";\r\n\r\n\t// srcset support test\r\n\t(function() {\r\n\t\tpf.srcsetSupported = \"srcset\" in image;\r\n\t\tpf.sizesSupported = \"sizes\" in image;\r\n\t\tpf.curSrcSupported = \"currentSrc\" in image;\r\n\t})();\r\n\r\n\t// just a string trim workaround\r\n\tpf.trim = function( str ) {\r\n\t\treturn str.trim ? str.trim() : str.replace( /^\\s+|\\s+$/g, \"\" );\r\n\t};\r\n\r\n\t/**\r\n\t * Gets a string and returns the absolute URL\r\n\t * @param src\r\n\t * @returns {String} absolute URL\r\n\t */\r\n\tpf.makeUrl = (function() {\r\n\t\tvar anchor = doc.createElement( \"a\" );\r\n\t\treturn function(src) {\r\n\t\t\tanchor.href = src;\r\n\t\t\treturn anchor.href;\r\n\t\t};\r\n\t})();\r\n\r\n\t/**\r\n\t * Shortcut method for https://w3c.github.io/webappsec/specs/mixedcontent/#restricts-mixed-content ( for easy overriding in tests )\r\n\t */\r\n\tpf.restrictsMixedContent = function() {\r\n\t\treturn w.location.protocol === \"https:\";\r\n\t};\r\n\t/**\r\n\t * Shortcut method for matchMedia ( for easy overriding in tests )\r\n\t */\r\n\r\n\tpf.matchesMedia = function( media ) {\r\n\t\treturn w.matchMedia && w.matchMedia( media ).matches;\r\n\t};\r\n\r\n\t// Shortcut method for `devicePixelRatio` ( for easy overriding in tests )\r\n\tpf.getDpr = function() {\r\n\t\treturn ( w.devicePixelRatio || 1 );\r\n\t};\r\n\r\n\t/**\r\n\t * Get width in css pixel value from a \"length\" value\r\n\t * http://dev.w3.org/csswg/css-values-3/#length-value\r\n\t */\r\n\tpf.getWidthFromLength = function( length ) {\r\n\t\tvar cssValue;\r\n\t\t// If a length is specified and doesn’t contain a percentage, and it is greater than 0 or using `calc`, use it. Else, abort.\r\n if ( !(length && length.indexOf( \"%\" ) > -1 === false && ( parseFloat( length ) > 0 || length.indexOf( \"calc(\" ) > -1 )) ) {\r\n return false;\r\n }\r\n\r\n\t\t/**\r\n\t\t * If length is specified in `vw` units, use `%` instead since the div we’re measuring\r\n\t\t * is injected at the top of the document.\r\n\t\t *\r\n\t\t * TODO: maybe we should put this behind a feature test for `vw`? The risk of doing this is possible browser inconsistancies with vw vs %\r\n\t\t */\r\n\t\tlength = length.replace( \"vw\", \"%\" );\r\n\r\n\t\t// Create a cached element for getting length value widths\r\n\t\tif ( !pf.lengthEl ) {\r\n\t\t\tpf.lengthEl = doc.createElement( \"div\" );\r\n\r\n\t\t\t// Positioning styles help prevent padding/margin/width on `html` or `body` from throwing calculations off.\r\n\t\t\tpf.lengthEl.style.cssText = \"border:0;display:block;font-size:1em;left:0;margin:0;padding:0;position:absolute;visibility:hidden\";\r\n\r\n\t\t\t// Add a class, so that everyone knows where this element comes from\r\n\t\t\tpf.lengthEl.className = \"helper-from-picturefill-js\";\r\n\t\t}\r\n\r\n\t\tpf.lengthEl.style.width = \"0px\";\r\n\r\n try {\r\n\t\t pf.lengthEl.style.width = length;\r\n } catch ( e ) {}\r\n\r\n\t\tdoc.body.appendChild(pf.lengthEl);\r\n\r\n\t\tcssValue = pf.lengthEl.offsetWidth;\r\n\r\n\t\tif ( cssValue <= 0 ) {\r\n\t\t\tcssValue = false;\r\n\t\t}\r\n\r\n\t\tdoc.body.removeChild( pf.lengthEl );\r\n\r\n\t\treturn cssValue;\r\n\t};\r\n\r\n pf.detectTypeSupport = function( type, typeUri ) {\r\n // based on Modernizr's lossless img-webp test\r\n // note: asynchronous\r\n var image = new w.Image();\r\n image.onerror = function() {\r\n pf.types[ type ] = false;\r\n picturefill();\r\n };\r\n image.onload = function() {\r\n pf.types[ type ] = image.width === 1;\r\n picturefill();\r\n };\r\n image.src = typeUri;\r\n\r\n return \"pending\";\r\n };\r\n\t// container of supported mime types that one might need to qualify before using\r\n\tpf.types = pf.types || {};\r\n\r\n\tpf.initTypeDetects = function() {\r\n // Add support for standard mime types\r\n pf.types[ \"image/jpeg\" ] = true;\r\n pf.types[ \"image/gif\" ] = true;\r\n pf.types[ \"image/png\" ] = true;\r\n pf.types[ \"image/svg+xml\" ] = doc.implementation.hasFeature(\"http://www.w3.org/TR/SVG11/feature#Image\", \"1.1\");\r\n pf.types[ \"image/webp\" ] = pf.detectTypeSupport(\"image/webp\", \"data:image/webp;base64,UklGRh4AAABXRUJQVlA4TBEAAAAvAAAAAAfQ//73v/+BiOh/AAA=\");\r\n };\r\n\r\n\tpf.verifyTypeSupport = function( source ) {\r\n\t\tvar type = source.getAttribute( \"type\" );\r\n\t\t// if type attribute exists, return test result, otherwise return true\r\n\t\tif ( type === null || type === \"\" ) {\r\n\t\t\treturn true;\r\n\t\t} else {\r\n\t\t\t\tvar pfType = pf.types[ type ];\r\n\t\t\t// if the type test is a function, run it and return \"pending\" status. The function will rerun picturefill on pending elements once finished.\r\n\t\t\tif ( typeof pfType === \"string\" && pfType !== \"pending\") {\r\n\t\t\t\tpf.types[ type ] = pf.detectTypeSupport( type, pfType );\r\n\t\t\t\treturn \"pending\";\r\n\t\t\t} else if ( typeof pfType === \"function\" ) {\r\n\t\t\t\tpfType();\r\n\t\t\t\treturn \"pending\";\r\n\t\t\t} else {\r\n\t\t\t\treturn pfType;\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// Parses an individual `size` and returns the length, and optional media query\r\n\tpf.parseSize = function( sourceSizeStr ) {\r\n\t\tvar match = /(\\([^)]+\\))?\\s*(.+)/g.exec( sourceSizeStr );\r\n\t\treturn {\r\n\t\t\tmedia: match && match[1],\r\n\t\t\tlength: match && match[2]\r\n\t\t};\r\n\t};\r\n\r\n\t// Takes a string of sizes and returns the width in pixels as a number\r\n\tpf.findWidthFromSourceSize = function( sourceSizeListStr ) {\r\n\t\t// Split up source size list, ie ( max-width: 30em ) 100%, ( max-width: 50em ) 50%, 33%\r\n\t\t// or (min-width:30em) calc(30% - 15px)\r\n\t\tvar sourceSizeList = pf.trim( sourceSizeListStr ).split( /\\s*,\\s*/ ),\r\n\t\t\twinningLength;\r\n\r\n\t\tfor ( var i = 0, len = sourceSizeList.length; i < len; i++ ) {\r\n\t\t\t// Match ? length, ie ( min-width: 50em ) 100%\r\n\t\t\tvar sourceSize = sourceSizeList[ i ],\r\n\t\t\t\t// Split \"( min-width: 50em ) 100%\" into separate strings\r\n\t\t\t\tparsedSize = pf.parseSize( sourceSize ),\r\n\t\t\t\tlength = parsedSize.length,\r\n\t\t\t\tmedia = parsedSize.media;\r\n\r\n\t\t\tif ( !length ) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\t\t\t// if there is no media query or it matches, choose this as our winning length\r\n\t\t\tif ( (!media || pf.matchesMedia( media )) &&\r\n\t\t\t\t// pass the length to a method that can properly determine length\r\n\t\t\t\t// in pixels based on these formats: http://dev.w3.org/csswg/css-values-3/#length-value\r\n\t\t\t\t(winningLength = pf.getWidthFromLength( length )) ) {\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t//if we have no winningLength fallback to 100vw\r\n\t\treturn winningLength || Math.max(w.innerWidth || 0, doc.documentElement.clientWidth);\r\n\t};\r\n\r\n\tpf.parseSrcset = function( srcset ) {\r\n\t\t/**\r\n\t\t * A lot of this was pulled from Boris Smus’ parser for the now-defunct WHATWG `srcset`\r\n\t\t * https://github.com/borismus/srcset-polyfill/blob/master/js/srcset-info.js\r\n\t\t *\r\n\t\t * 1. Let input (`srcset`) be the value passed to this algorithm.\r\n\t\t * 2. Let position be a pointer into input, initially pointing at the start of the string.\r\n\t\t * 3. Let raw candidates be an initially empty ordered list of URLs with associated\r\n\t\t * unparsed descriptors. The order of entries in the list is the order in which entries\r\n\t\t * are added to the list.\r\n\t\t */\r\n\t\tvar candidates = [];\r\n\r\n\t\twhile ( srcset !== \"\" ) {\r\n\t\t\tsrcset = srcset.replace( /^\\s+/g, \"\" );\r\n\r\n\t\t\t// 5. Collect a sequence of characters that are not space characters, and let that be url.\r\n\t\t\tvar pos = srcset.search(/\\s/g),\r\n\t\t\t\turl, descriptor = null;\r\n\r\n\t\t\tif ( pos !== -1 ) {\r\n\t\t\t\turl = srcset.slice( 0, pos );\r\n\r\n\t\t\t\tvar last = url.slice(-1);\r\n\r\n\t\t\t\t// 6. If url ends with a U+002C COMMA character (,), remove that character from url\r\n\t\t\t\t// and let descriptors be the empty string. Otherwise, follow these substeps\r\n\t\t\t\t// 6.1. If url is empty, then jump to the step labeled descriptor parser.\r\n\r\n\t\t\t\tif ( last === \",\" || url === \"\" ) {\r\n\t\t\t\t\turl = url.replace( /,+$/, \"\" );\r\n\t\t\t\t\tdescriptor = \"\";\r\n\t\t\t\t}\r\n\t\t\t\tsrcset = srcset.slice( pos + 1 );\r\n\r\n\t\t\t\t// 6.2. Collect a sequence of characters that are not U+002C COMMA characters (,), and\r\n\t\t\t\t// let that be descriptors.\r\n\t\t\t\tif ( descriptor === null ) {\r\n\t\t\t\t\tvar descpos = srcset.indexOf( \",\" );\r\n\t\t\t\t\tif ( descpos !== -1 ) {\r\n\t\t\t\t\t\tdescriptor = srcset.slice( 0, descpos );\r\n\t\t\t\t\t\tsrcset = srcset.slice( descpos + 1 );\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tdescriptor = srcset;\r\n\t\t\t\t\t\tsrcset = \"\";\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\turl = srcset;\r\n\t\t\t\tsrcset = \"\";\r\n\t\t\t}\r\n\r\n\t\t\t// 7. Add url to raw candidates, associated with descriptors.\r\n\t\t\tif ( url || descriptor ) {\r\n\t\t\t\tcandidates.push({\r\n\t\t\t\t\turl: url,\r\n\t\t\t\t\tdescriptor: descriptor\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn candidates;\r\n\t};\r\n\r\n\tpf.parseDescriptor = function( descriptor, sizesattr ) {\r\n\t\t// 11. Descriptor parser: Let candidates be an initially empty source set. The order of entries in the list\r\n\t\t// is the order in which entries are added to the list.\r\n\t\tvar sizes = sizesattr || \"100vw\",\r\n\t\t\tsizeDescriptor = descriptor && descriptor.replace( /(^\\s+|\\s+$)/g, \"\" ),\r\n\t\t\twidthInCssPixels = pf.findWidthFromSourceSize( sizes ),\r\n\t\t\tresCandidate;\r\n\r\n\t\t\tif ( sizeDescriptor ) {\r\n\t\t\t\tvar splitDescriptor = sizeDescriptor.split(\" \");\r\n\r\n\t\t\t\tfor (var i = splitDescriptor.length - 1; i >= 0; i--) {\r\n\t\t\t\t\tvar curr = splitDescriptor[ i ],\r\n\t\t\t\t\t\tlastchar = curr && curr.slice( curr.length - 1 );\r\n\r\n\t\t\t\t\tif ( ( lastchar === \"h\" || lastchar === \"w\" ) && !pf.sizesSupported ) {\r\n\t\t\t\t\t\tresCandidate = parseFloat( ( parseInt( curr, 10 ) / widthInCssPixels ) );\r\n\t\t\t\t\t} else if ( lastchar === \"x\" ) {\r\n\t\t\t\t\t\tvar res = curr && parseFloat( curr, 10 );\r\n\t\t\t\t\t\tresCandidate = res && !isNaN( res ) ? res : 1;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\treturn resCandidate || 1;\r\n\t};\r\n\r\n\t/**\r\n\t * Takes a srcset in the form of url/\r\n\t * ex. \"images/pic-medium.png 1x, images/pic-medium-2x.png 2x\" or\r\n\t * \"images/pic-medium.png 400w, images/pic-medium-2x.png 800w\" or\r\n\t * \"images/pic-small.png\"\r\n\t * Get an array of image candidates in the form of\r\n\t * {url: \"/foo/bar.png\", resolution: 1}\r\n\t * where resolution is http://dev.w3.org/csswg/css-values-3/#resolution-value\r\n\t * If sizes is specified, resolution is calculated\r\n\t */\r\n\tpf.getCandidatesFromSourceSet = function( srcset, sizes ) {\r\n\t\tvar candidates = pf.parseSrcset( srcset ),\r\n\t\t\tformattedCandidates = [];\r\n\r\n\t\tfor ( var i = 0, len = candidates.length; i < len; i++ ) {\r\n\t\t\tvar candidate = candidates[ i ];\r\n\r\n\t\t\tformattedCandidates.push({\r\n\t\t\t\turl: candidate.url,\r\n\t\t\t\tresolution: pf.parseDescriptor( candidate.descriptor, sizes )\r\n\t\t\t});\r\n\t\t}\r\n\t\treturn formattedCandidates;\r\n\t};\r\n\r\n\t/**\r\n\t * if it's an img element and it has a srcset property,\r\n\t * we need to remove the attribute so we can manipulate src\r\n\t * (the property's existence infers native srcset support, and a srcset-supporting browser will prioritize srcset's value over our winning picture candidate)\r\n\t * this moves srcset's value to memory for later use and removes the attr\r\n\t */\r\n\tpf.dodgeSrcset = function( img ) {\r\n\t\tif ( img.srcset ) {\r\n\t\t\timg[ pf.ns ].srcset = img.srcset;\r\n\t\t\timg.srcset = \"\";\r\n\t\t\timg.setAttribute( \"data-pfsrcset\", img[ pf.ns ].srcset );\r\n\t\t}\r\n\t};\r\n\r\n\t// Accept a source or img element and process its srcset and sizes attrs\r\n\tpf.processSourceSet = function( el ) {\r\n\t\tvar srcset = el.getAttribute( \"srcset\" ),\r\n\t\t\tsizes = el.getAttribute( \"sizes\" ),\r\n\t\t\tcandidates = [];\r\n\r\n\t\t// if it's an img element, use the cached srcset property (defined or not)\r\n\t\tif ( el.nodeName.toUpperCase() === \"IMG\" && el[ pf.ns ] && el[ pf.ns ].srcset ) {\r\n\t\t\tsrcset = el[ pf.ns ].srcset;\r\n\t\t}\r\n\r\n\t\tif ( srcset ) {\r\n\t\t\tcandidates = pf.getCandidatesFromSourceSet( srcset, sizes );\r\n\t\t}\r\n\t\treturn candidates;\r\n\t};\r\n\r\n\tpf.backfaceVisibilityFix = function( picImg ) {\r\n\t\t// See: https://github.com/scottjehl/picturefill/issues/332\r\n\t\tvar style = picImg.style || {},\r\n\t\t\tWebkitBackfaceVisibility = \"webkitBackfaceVisibility\" in style,\r\n\t\t\tcurrentZoom = style.zoom;\r\n\r\n\t\tif (WebkitBackfaceVisibility) {\r\n\t\t\tstyle.zoom = \".999\";\r\n\r\n\t\t\tWebkitBackfaceVisibility = picImg.offsetWidth;\r\n\r\n\t\t\tstyle.zoom = currentZoom;\r\n\t\t}\r\n\t};\r\n\r\n\tpf.setIntrinsicSize = (function() {\r\n\t\tvar urlCache = {};\r\n\t\tvar setSize = function( picImg, width, res ) {\r\n if ( width ) {\r\n\t\t\t picImg.setAttribute( \"width\", parseInt(width / res, 10) );\r\n }\r\n\t\t};\r\n\t\treturn function( picImg, bestCandidate ) {\r\n\t\t\tvar img;\r\n\t\t\tif ( !picImg[ pf.ns ] || w.pfStopIntrinsicSize ) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tif ( picImg[ pf.ns ].dims === undefined ) {\r\n\t\t\t\tpicImg[ pf.ns].dims = picImg.getAttribute(\"width\") || picImg.getAttribute(\"height\");\r\n\t\t\t}\r\n\t\t\tif ( picImg[ pf.ns].dims ) { return; }\r\n\r\n\t\t\tif ( bestCandidate.url in urlCache ) {\r\n\t\t\t\tsetSize( picImg, urlCache[bestCandidate.url], bestCandidate.resolution );\r\n\t\t\t} else {\r\n\t\t\t\timg = doc.createElement( \"img\" );\r\n\t\t\t\timg.onload = function() {\r\n\t\t\t\t\turlCache[bestCandidate.url] = img.width;\r\n\r\n //IE 10/11 don't calculate width for svg outside document\r\n if ( !urlCache[bestCandidate.url] ) {\r\n try {\r\n doc.body.appendChild( img );\r\n urlCache[bestCandidate.url] = img.width || img.offsetWidth;\r\n doc.body.removeChild( img );\r\n } catch(e){}\r\n }\r\n\r\n\t\t\t\t\tif ( picImg.src === bestCandidate.url ) {\r\n\t\t\t\t\t\tsetSize( picImg, urlCache[bestCandidate.url], bestCandidate.resolution );\r\n\t\t\t\t\t}\r\n\t\t\t\t\tpicImg = null;\r\n\t\t\t\t\timg.onload = null;\r\n\t\t\t\t\timg = null;\r\n\t\t\t\t};\r\n\t\t\t\timg.src = bestCandidate.url;\r\n\t\t\t}\r\n\t\t};\r\n\t})();\r\n\r\n\tpf.applyBestCandidate = function( candidates, picImg ) {\r\n\t\tvar candidate,\r\n\t\t\tlength,\r\n\t\t\tbestCandidate;\r\n\r\n\t\tcandidates.sort( pf.ascendingSort );\r\n\r\n\t\tlength = candidates.length;\r\n\t\tbestCandidate = candidates[ length - 1 ];\r\n\r\n\t\tfor ( var i = 0; i < length; i++ ) {\r\n\t\t\tcandidate = candidates[ i ];\r\n\t\t\tif ( candidate.resolution >= pf.getDpr() ) {\r\n\t\t\t\tbestCandidate = candidate;\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif ( bestCandidate ) {\r\n\r\n\t\t\tbestCandidate.url = pf.makeUrl( bestCandidate.url );\r\n\r\n\t\t\tif ( picImg.src !== bestCandidate.url ) {\r\n\t\t\t\tif ( pf.restrictsMixedContent() && bestCandidate.url.substr(0, \"http:\".length).toLowerCase() === \"http:\" ) {\r\n\t\t\t\t\tif ( window.console !== undefined ) {\r\n\t\t\t\t\t\tconsole.warn( \"Blocked mixed content image \" + bestCandidate.url );\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tpicImg.src = bestCandidate.url;\r\n\t\t\t\t\t// currentSrc attribute and property to match\r\n\t\t\t\t\t// http://picture.responsiveimages.org/#the-img-element\r\n\t\t\t\t\tif ( !pf.curSrcSupported ) {\r\n\t\t\t\t\t\tpicImg.currentSrc = picImg.src;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tpf.backfaceVisibilityFix( picImg );\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tpf.setIntrinsicSize(picImg, bestCandidate);\r\n\t\t}\r\n\t};\r\n\r\n\tpf.ascendingSort = function( a, b ) {\r\n\t\treturn a.resolution - b.resolution;\r\n\t};\r\n\r\n\t/**\r\n\t * In IE9, elements get removed if they aren't children of\r\n\t * video elements. Thus, we conditionally wrap source elements\r\n\t * using \r\n\t * and must account for that here by moving those source elements\r\n\t * back into the picture element.\r\n\t */\r\n\tpf.removeVideoShim = function( picture ) {\r\n\t\tvar videos = picture.getElementsByTagName( \"video\" );\r\n\t\tif ( videos.length ) {\r\n\t\t\tvar video = videos[ 0 ],\r\n\t\t\t\tvsources = video.getElementsByTagName( \"source\" );\r\n\t\t\twhile ( vsources.length ) {\r\n\t\t\t\tpicture.insertBefore( vsources[ 0 ], video );\r\n\t\t\t}\r\n\t\t\t// Remove the video element once we're finished removing its children\r\n\t\t\tvideo.parentNode.removeChild( video );\r\n\t\t}\r\n\t};\r\n\r\n\t/**\r\n\t * Find all `img` elements, and add them to the candidate list if they have\r\n\t * a `picture` parent, a `sizes` attribute in basic `srcset` supporting browsers,\r\n\t * a `srcset` attribute at all, and they haven’t been evaluated already.\r\n\t */\r\n\tpf.getAllElements = function() {\r\n\t\tvar elems = [],\r\n\t\t\timgs = doc.getElementsByTagName( \"img\" );\r\n\r\n\t\tfor ( var h = 0, len = imgs.length; h < len; h++ ) {\r\n\t\t\tvar currImg = imgs[ h ];\r\n\r\n\t\t\tif ( currImg.parentNode.nodeName.toUpperCase() === \"PICTURE\" ||\r\n\t\t\t( currImg.getAttribute( \"srcset\" ) !== null ) || currImg[ pf.ns ] && currImg[ pf.ns ].srcset !== null ) {\r\n\t\t\t\telems.push( currImg );\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn elems;\r\n\t};\r\n\r\n\tpf.getMatch = function( img, picture ) {\r\n\t\tvar sources = picture.childNodes,\r\n\t\t\tmatch;\r\n\r\n\t\t// Go through each child, and if they have media queries, evaluate them\r\n\t\tfor ( var j = 0, slen = sources.length; j < slen; j++ ) {\r\n\t\t\tvar source = sources[ j ];\r\n\r\n\t\t\t// ignore non-element nodes\r\n\t\t\tif ( source.nodeType !== 1 ) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\r\n\t\t\t// Hitting the `img` element that started everything stops the search for `sources`.\r\n\t\t\t// If no previous `source` matches, the `img` itself is evaluated later.\r\n\t\t\tif ( source === img ) {\r\n\t\t\t\treturn match;\r\n\t\t\t}\r\n\r\n\t\t\t// ignore non-`source` nodes\r\n\t\t\tif ( source.nodeName.toUpperCase() !== \"SOURCE\" ) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\t\t\t// if it's a source element that has the `src` property set, throw a warning in the console\r\n\t\t\tif ( source.getAttribute( \"src\" ) !== null && typeof console !== undefined ) {\r\n\t\t\t\tconsole.warn(\"The `src` attribute is invalid on `picture` `source` element; instead, use `srcset`.\");\r\n\t\t\t}\r\n\r\n\t\t\tvar media = source.getAttribute( \"media\" );\r\n\r\n\t\t\t// if source does not have a srcset attribute, skip\r\n\t\t\tif ( !source.getAttribute( \"srcset\" ) ) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\r\n\t\t\t// if there's no media specified, OR w.matchMedia is supported\r\n\t\t\tif ( ( !media || pf.matchesMedia( media ) ) ) {\r\n\t\t\t\tvar typeSupported = pf.verifyTypeSupport( source );\r\n\r\n\t\t\t\tif ( typeSupported === true ) {\r\n\t\t\t\t\tmatch = source;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t} else if ( typeSupported === \"pending\" ) {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn match;\r\n\t};\r\n\r\n\tfunction picturefill( opt ) {\r\n\t\tvar elements,\r\n\t\t\telement,\r\n\t\t\tparent,\r\n\t\t\tfirstMatch,\r\n\t\t\tcandidates,\r\n\t\t\toptions = opt || {};\r\n\r\n\t\telements = options.elements || pf.getAllElements();\r\n\r\n\t\t// Loop through all elements\r\n\t\tfor ( var i = 0, plen = elements.length; i < plen; i++ ) {\r\n\t\t\telement = elements[ i ];\r\n\t\t\tparent = element.parentNode;\r\n\t\t\tfirstMatch = undefined;\r\n\t\t\tcandidates = undefined;\r\n\r\n\t\t\t// immediately skip non-`img` nodes\r\n\t\t\tif ( element.nodeName.toUpperCase() !== \"IMG\" ) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\r\n\t\t\t// expando for caching data on the img\r\n\t\t\tif ( !element[ pf.ns ] ) {\r\n\t\t\t\telement[ pf.ns ] = {};\r\n\t\t\t}\r\n\r\n\t\t\t// if the element has already been evaluated, skip it unless\r\n\t\t\t// `options.reevaluate` is set to true ( this, for example,\r\n\t\t\t// is set to true when running `picturefill` on `resize` ).\r\n\t\t\tif ( !options.reevaluate && element[ pf.ns ].evaluated ) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\r\n\t\t\t// if `img` is in a `picture` element\r\n\t\t\tif ( parent && parent.nodeName.toUpperCase() === \"PICTURE\" ) {\r\n\r\n\t\t\t\t// IE9 video workaround\r\n\t\t\t\tpf.removeVideoShim( parent );\r\n\r\n\t\t\t\t// return the first match which might undefined\r\n\t\t\t\t// returns false if there is a pending source\r\n\t\t\t\t// TODO the return type here is brutal, cleanup\r\n\t\t\t\tfirstMatch = pf.getMatch( element, parent );\r\n\r\n\t\t\t\t// if any sources are pending in this picture due to async type test(s)\r\n\t\t\t\t// remove the evaluated attr and skip for now ( the pending test will\r\n\t\t\t\t// rerun picturefill on this element when complete)\r\n\t\t\t\tif ( firstMatch === false ) {\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tfirstMatch = undefined;\r\n\t\t\t}\r\n\r\n\t\t\t// Cache and remove `srcset` if present and we’re going to be doing `picture`/`srcset`/`sizes` polyfilling to it.\r\n\t\t\tif ( ( parent && parent.nodeName.toUpperCase() === \"PICTURE\" ) ||\r\n\t\t\t( !pf.sizesSupported && ( element.srcset && regWDesc.test( element.srcset ) ) ) ) {\r\n\t\t\t\tpf.dodgeSrcset( element );\r\n\t\t\t}\r\n\r\n\t\t\tif ( firstMatch ) {\r\n\t\t\t\tcandidates = pf.processSourceSet( firstMatch );\r\n\t\t\t\tpf.applyBestCandidate( candidates, element );\r\n\t\t\t} else {\r\n\t\t\t\t// No sources matched, so we’re down to processing the inner `img` as a source.\r\n\t\t\t\tcandidates = pf.processSourceSet( element );\r\n\r\n\t\t\t\tif ( element.srcset === undefined || element[ pf.ns ].srcset ) {\r\n\t\t\t\t\t// Either `srcset` is completely unsupported, or we need to polyfill `sizes` functionality.\r\n\t\t\t\t\tpf.applyBestCandidate( candidates, element );\r\n\t\t\t\t} // Else, resolution-only `srcset` is supported natively.\r\n\t\t\t}\r\n\r\n\t\t\t// set evaluated to true to avoid unnecessary reparsing\r\n\t\t\telement[ pf.ns ].evaluated = true;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Sets up picture polyfill by polling the document and running\r\n\t * the polyfill every 250ms until the document is ready.\r\n\t * Also attaches picturefill on resize\r\n\t */\r\n\tfunction runPicturefill() {\r\n\t\tpf.initTypeDetects();\r\n\t\tpicturefill();\r\n\t\tvar intervalId = setInterval( function() {\r\n\t\t\t// When the document has finished loading, stop checking for new images\r\n\t\t\t// https://github.com/ded/domready/blob/master/ready.js#L15\r\n\t\t\tpicturefill();\r\n\r\n\t\t\tif ( /^loaded|^i|^c/.test( doc.readyState ) ) {\r\n\t\t\t\tclearInterval( intervalId );\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t}, 250 );\r\n\r\n\t\tvar resizeTimer;\r\n\t\tvar handleResize = function() {\r\n\t picturefill({ reevaluate: true });\r\n\t };\r\n\t\tfunction checkResize() {\r\n\t\t clearTimeout(resizeTimer);\r\n\t\t resizeTimer = setTimeout( handleResize, 60 );\r\n\t\t}\r\n\r\n\t\tif ( w.addEventListener ) {\r\n\t\t\tw.addEventListener( \"resize\", checkResize, false );\r\n\t\t} else if ( w.attachEvent ) {\r\n\t\t\tw.attachEvent( \"onresize\", checkResize );\r\n\t\t}\r\n\t}\r\n\r\n\trunPicturefill();\r\n\r\n\t/* expose methods for testing */\r\n\tpicturefill._ = pf;\r\n\r\n\texpose( picturefill );\r\n\r\n} )( window, window.document, new window.Image() );\r\n","/*\n json2.js\n 2012-10-08\n\n Public Domain.\n\n NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK.\n\n See http://www.JSON.org/js.html\n\n\n This code should be minified before deployment.\n See http://javascript.crockford.com/jsmin.html\n\n USE YOUR OWN COPY. IT IS EXTREMELY UNWISE TO LOAD CODE FROM SERVERS YOU DO\n NOT CONTROL.\n\n\n This file creates a global JSON object containing two methods: stringify\n and parse.\n\n JSON.stringify(value, replacer, space)\n value any JavaScript value, usually an object or array.\n\n replacer an optional parameter that determines how object\n values are stringified for objects. It can be a\n function or an array of strings.\n\n space an optional parameter that specifies the indentation\n of nested structures. If it is omitted, the text will\n be packed without extra whitespace. If it is a number,\n it will specify the number of spaces to indent at each\n level. If it is a string (such as '\\t' or ' '),\n it contains the characters used to indent at each level.\n\n This method produces a JSON text from a JavaScript value.\n\n When an object value is found, if the object contains a toJSON\n method, its toJSON method will be called and the result will be\n stringified. A toJSON method does not serialize: it returns the\n value represented by the name/value pair that should be serialized,\n or undefined if nothing should be serialized. The toJSON method\n will be passed the key associated with the value, and this will be\n bound to the value\n\n For example, this would serialize Dates as ISO strings.\n\n Date.prototype.toJSON = function (key) {\n function f(n) {\n // Format integers to have at least two digits.\n return n < 10 ? '0' + n : n;\n }\n\n return this.getUTCFullYear() + '-' +\n f(this.getUTCMonth() + 1) + '-' +\n f(this.getUTCDate()) + 'T' +\n f(this.getUTCHours()) + ':' +\n f(this.getUTCMinutes()) + ':' +\n f(this.getUTCSeconds()) + 'Z';\n };\n\n You can provide an optional replacer method. It will be passed the\n key and value of each member, with this bound to the containing\n object. The value that is returned from your method will be\n serialized. If your method returns undefined, then the member will\n be excluded from the serialization.\n\n If the replacer parameter is an array of strings, then it will be\n used to select the members to be serialized. It filters the results\n such that only members with keys listed in the replacer array are\n stringified.\n\n Values that do not have JSON representations, such as undefined or\n functions, will not be serialized. Such values in objects will be\n dropped; in arrays they will be replaced with null. You can use\n a replacer function to replace those with JSON values.\n JSON.stringify(undefined) returns undefined.\n\n The optional space parameter produces a stringification of the\n value that is filled with line breaks and indentation to make it\n easier to read.\n\n If the space parameter is a non-empty string, then that string will\n be used for indentation. If the space parameter is a number, then\n the indentation will be that many spaces.\n\n Example:\n\n text = JSON.stringify(['e', {pluribus: 'unum'}]);\n // text is '[\"e\",{\"pluribus\":\"unum\"}]'\n\n\n text = JSON.stringify(['e', {pluribus: 'unum'}], null, '\\t');\n // text is '[\\n\\t\"e\",\\n\\t{\\n\\t\\t\"pluribus\": \"unum\"\\n\\t}\\n]'\n\n text = JSON.stringify([new Date()], function (key, value) {\n return this[key] instanceof Date ?\n 'Date(' + this[key] + ')' : value;\n });\n // text is '[\"Date(---current time---)\"]'\n\n\n JSON.parse(text, reviver)\n This method parses a JSON text to produce an object or array.\n It can throw a SyntaxError exception.\n\n The optional reviver parameter is a function that can filter and\n transform the results. It receives each of the keys and values,\n and its return value is used instead of the original value.\n If it returns what it received, then the structure is not modified.\n If it returns undefined then the member is deleted.\n\n Example:\n\n // Parse the text. Values that look like ISO date strings will\n // be converted to Date objects.\n\n myData = JSON.parse(text, function (key, value) {\n var a;\n if (typeof value === 'string') {\n a =\n/^(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2}(?:\\.\\d*)?)Z$/.exec(value);\n if (a) {\n return new Date(Date.UTC(+a[1], +a[2] - 1, +a[3], +a[4],\n +a[5], +a[6]));\n }\n }\n return value;\n });\n\n myData = JSON.parse('[\"Date(09/09/2001)\"]', function (key, value) {\n var d;\n if (typeof value === 'string' &&\n value.slice(0, 5) === 'Date(' &&\n value.slice(-1) === ')') {\n d = new Date(value.slice(5, -1));\n if (d) {\n return d;\n }\n }\n return value;\n });\n\n\n This is a reference implementation. You are free to copy, modify, or\n redistribute.\n*/\n\n/*jslint evil: true, regexp: true */\n\n/*members \"\", \"\\b\", \"\\t\", \"\\n\", \"\\f\", \"\\r\", \"\\\"\", JSON, \"\\\\\", apply,\n call, charCodeAt, getUTCDate, getUTCFullYear, getUTCHours,\n getUTCMinutes, getUTCMonth, getUTCSeconds, hasOwnProperty, join,\n lastIndex, length, parse, prototype, push, replace, slice, stringify,\n test, toJSON, toString, valueOf\n*/\n\n\n// Create a JSON object only if one does not already exist. We create the\n// methods in a closure to avoid creating global variables.\n\nif (typeof JSON !== 'object') {\n JSON = {};\n}\n\n(function () {\n 'use strict';\n\n function f(n) {\n // Format integers to have at least two digits.\n return n < 10 ? '0' + n : n;\n }\n\n if (typeof Date.prototype.toJSON !== 'function') {\n\n Date.prototype.toJSON = function (key) {\n\n return isFinite(this.valueOf())\n ? this.getUTCFullYear() + '-' +\n f(this.getUTCMonth() + 1) + '-' +\n f(this.getUTCDate()) + 'T' +\n f(this.getUTCHours()) + ':' +\n f(this.getUTCMinutes()) + ':' +\n f(this.getUTCSeconds()) + 'Z'\n : null;\n };\n\n String.prototype.toJSON =\n Number.prototype.toJSON =\n Boolean.prototype.toJSON = function (key) {\n return this.valueOf();\n };\n }\n\n var cx = /[\\u0000\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]/g,\n escapable = /[\\\\\\\"\\x00-\\x1f\\x7f-\\x9f\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]/g,\n gap,\n indent,\n meta = { // table of character substitutions\n '\\b': '\\\\b',\n '\\t': '\\\\t',\n '\\n': '\\\\n',\n '\\f': '\\\\f',\n '\\r': '\\\\r',\n '\"' : '\\\\\"',\n '\\\\': '\\\\\\\\'\n },\n rep;\n\n\n function quote(string) {\n\n// If the string contains no control characters, no quote characters, and no\n// backslash characters, then we can safely slap some quotes around it.\n// Otherwise we must also replace the offending characters with safe escape\n// sequences.\n\n escapable.lastIndex = 0;\n return escapable.test(string) ? '\"' + string.replace(escapable, function (a) {\n var c = meta[a];\n return typeof c === 'string'\n ? c\n : '\\\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4);\n }) + '\"' : '\"' + string + '\"';\n }\n\n\n function str(key, holder) {\n\n// Produce a string from holder[key].\n\n var i, // The loop counter.\n k, // The member key.\n v, // The member value.\n length,\n mind = gap,\n partial,\n value = holder[key];\n\n// If the value has a toJSON method, call it to obtain a replacement value.\n\n if (value && typeof value === 'object' &&\n typeof value.toJSON === 'function') {\n value = value.toJSON(key);\n }\n\n// If we were called with a replacer function, then call the replacer to\n// obtain a replacement value.\n\n if (typeof rep === 'function') {\n value = rep.call(holder, key, value);\n }\n\n// What happens next depends on the value's type.\n\n switch (typeof value) {\n case 'string':\n return quote(value);\n\n case 'number':\n\n// JSON numbers must be finite. Encode non-finite numbers as null.\n\n return isFinite(value) ? String(value) : 'null';\n\n case 'boolean':\n case 'null':\n\n// If the value is a boolean or null, convert it to a string. Note:\n// typeof null does not produce 'null'. The case is included here in\n// the remote chance that this gets fixed someday.\n\n return String(value);\n\n// If the type is 'object', we might be dealing with an object or an array or\n// null.\n\n case 'object':\n\n// Due to a specification blunder in ECMAScript, typeof null is 'object',\n// so watch out for that case.\n\n if (!value) {\n return 'null';\n }\n\n// Make an array to hold the partial results of stringifying this object value.\n\n gap += indent;\n partial = [];\n\n// Is the value an array?\n\n if (Object.prototype.toString.apply(value) === '[object Array]') {\n\n// The value is an array. Stringify every element. Use null as a placeholder\n// for non-JSON values.\n\n length = value.length;\n for (i = 0; i < length; i += 1) {\n partial[i] = str(i, value) || 'null';\n }\n\n// Join all of the elements together, separated with commas, and wrap them in\n// brackets.\n\n v = partial.length === 0\n ? '[]'\n : gap\n ? '[\\n' + gap + partial.join(',\\n' + gap) + '\\n' + mind + ']'\n : '[' + partial.join(',') + ']';\n gap = mind;\n return v;\n }\n\n// If the replacer is an array, use it to select the members to be stringified.\n\n if (rep && typeof rep === 'object') {\n length = rep.length;\n for (i = 0; i < length; i += 1) {\n if (typeof rep[i] === 'string') {\n k = rep[i];\n v = str(k, value);\n if (v) {\n partial.push(quote(k) + (gap ? ': ' : ':') + v);\n }\n }\n }\n } else {\n\n// Otherwise, iterate through all of the keys in the object.\n\n for (k in value) {\n if (Object.prototype.hasOwnProperty.call(value, k)) {\n v = str(k, value);\n if (v) {\n partial.push(quote(k) + (gap ? ': ' : ':') + v);\n }\n }\n }\n }\n\n// Join all of the member texts together, separated with commas,\n// and wrap them in braces.\n\n v = partial.length === 0\n ? '{}'\n : gap\n ? '{\\n' + gap + partial.join(',\\n' + gap) + '\\n' + mind + '}'\n : '{' + partial.join(',') + '}';\n gap = mind;\n return v;\n }\n }\n\n// If the JSON object does not yet have a stringify method, give it one.\n\n if (typeof JSON.stringify !== 'function') {\n JSON.stringify = function (value, replacer, space) {\n\n// The stringify method takes a value and an optional replacer, and an optional\n// space parameter, and returns a JSON text. The replacer can be a function\n// that can replace values, or an array of strings that will select the keys.\n// A default replacer method can be provided. Use of the space parameter can\n// produce text that is more easily readable.\n\n var i;\n gap = '';\n indent = '';\n\n// If the space parameter is a number, make an indent string containing that\n// many spaces.\n\n if (typeof space === 'number') {\n for (i = 0; i < space; i += 1) {\n indent += ' ';\n }\n\n// If the space parameter is a string, it will be used as the indent string.\n\n } else if (typeof space === 'string') {\n indent = space;\n }\n\n// If there is a replacer, it must be a function or an array.\n// Otherwise, throw an error.\n\n rep = replacer;\n if (replacer && typeof replacer !== 'function' &&\n (typeof replacer !== 'object' ||\n typeof replacer.length !== 'number')) {\n throw new Error('JSON.stringify');\n }\n\n// Make a fake root object containing our value under the key of ''.\n// Return the result of stringifying the value.\n\n return str('', {'': value});\n };\n }\n\n\n// If the JSON object does not yet have a parse method, give it one.\n\n if (typeof JSON.parse !== 'function') {\n JSON.parse = function (text, reviver) {\n\n// The parse method takes a text and an optional reviver function, and returns\n// a JavaScript value if the text is a valid JSON text.\n\n var j;\n\n function walk(holder, key) {\n\n// The walk method is used to recursively walk the resulting structure so\n// that modifications can be made.\n\n var k, v, value = holder[key];\n if (value && typeof value === 'object') {\n for (k in value) {\n if (Object.prototype.hasOwnProperty.call(value, k)) {\n v = walk(value, k);\n if (v !== undefined) {\n value[k] = v;\n } else {\n delete value[k];\n }\n }\n }\n }\n return reviver.call(holder, key, value);\n }\n\n\n// Parsing happens in four stages. In the first stage, we replace certain\n// Unicode characters with escape sequences. JavaScript handles many characters\n// incorrectly, either silently deleting them, or treating them as line endings.\n\n text = String(text);\n cx.lastIndex = 0;\n if (cx.test(text)) {\n text = text.replace(cx, function (a) {\n return '\\\\u' +\n ('0000' + a.charCodeAt(0).toString(16)).slice(-4);\n });\n }\n\n// In the second stage, we run the text against regular expressions that look\n// for non-JSON patterns. We are especially concerned with '()' and 'new'\n// because they can cause invocation, and '=' because it can cause mutation.\n// But just to be safe, we want to reject all unexpected forms.\n\n// We split the second stage into 4 regexp operations in order to work around\n// crippling inefficiencies in IE's and Safari's regexp engines. First we\n// replace the JSON backslash pairs with '@' (a non-JSON character). Second, we\n// replace all simple value tokens with ']' characters. Third, we delete all\n// open brackets that follow a colon or comma or that begin the text. Finally,\n// we look to see that the remaining characters are only whitespace or ']' or\n// ',' or ':' or '{' or '}'. If that is so, then the text is safe for eval.\n\n if (/^[\\],:{}\\s]*$/\n .test(text.replace(/\\\\(?:[\"\\\\\\/bfnrt]|u[0-9a-fA-F]{4})/g, '@')\n .replace(/\"[^\"\\\\\\n\\r]*\"|true|false|null|-?\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d+)?/g, ']')\n .replace(/(?:^|:|,)(?:\\s*\\[)+/g, ''))) {\n\n// In the third stage we use the eval function to compile the text into a\n// JavaScript structure. The '{' operator is subject to a syntactic ambiguity\n// in JavaScript: it can begin a block or an object literal. We wrap the text\n// in parens to eliminate the ambiguity.\n\n j = eval('(' + text + ')');\n\n// In the optional fourth stage, we recursively walk the new structure, passing\n// each name/value pair to a reviver function for possible transformation.\n\n return typeof reviver === 'function'\n ? walk({'': j}, '')\n : j;\n }\n\n// If the text is not JSON parseable, then a SyntaxError is thrown.\n\n throw new SyntaxError('JSON.parse');\n };\n }\n}());/**\n * History.js jQuery Adapter\n * @author Benjamin Arthur Lupton \n * @copyright 2010-2011 Benjamin Arthur Lupton \n * @license New BSD License \n */\n\n// Closure\n(function(window,undefined){\n\t\"use strict\";\n\n\t// Localise Globals\n\tvar\n\t\tHistory = window.History = window.History||{},\n\t\tjQuery = window.jQuery;\n\n\t// Check Existence\n\tif ( typeof History.Adapter !== 'undefined' ) {\n\t\tthrow new Error('History.js Adapter has already been loaded...');\n\t}\n\n\t// Add the Adapter\n\tHistory.Adapter = {\n\t\t/**\n\t\t * History.Adapter.bind(el,event,callback)\n\t\t * @param {Element|string} el\n\t\t * @param {string} event - custom and standard events\n\t\t * @param {function} callback\n\t\t * @return {void}\n\t\t */\n\t\tbind: function(el,event,callback){\n\t\t\tjQuery(el).bind(event,callback);\n\t\t},\n\n\t\t/**\n\t\t * History.Adapter.trigger(el,event)\n\t\t * @param {Element|string} el\n\t\t * @param {string} event - custom and standard events\n\t\t * @param {Object=} extra - a object of extra event data (optional)\n\t\t * @return {void}\n\t\t */\n\t\ttrigger: function(el,event,extra){\n\t\t\tjQuery(el).trigger(event,extra);\n\t\t},\n\n\t\t/**\n\t\t * History.Adapter.extractEventData(key,event,extra)\n\t\t * @param {string} key - key for the event data to extract\n\t\t * @param {string} event - custom and standard events\n\t\t * @param {Object=} extra - a object of extra event data (optional)\n\t\t * @return {mixed}\n\t\t */\n\t\textractEventData: function(key,event,extra){\n\t\t\t// jQuery Native then jQuery Custom\n\t\t\tvar result = (event && event.originalEvent && event.originalEvent[key]) || (extra && extra[key]) || undefined;\n\n\t\t\t// Return\n\t\t\treturn result;\n\t\t},\n\n\t\t/**\n\t\t * History.Adapter.onDomLoad(callback)\n\t\t * @param {function} callback\n\t\t * @return {void}\n\t\t */\n\t\tonDomLoad: function(callback) {\n\t\t\tjQuery(callback);\n\t\t}\n\t};\n\n\t// Try and Initialise History\n\tif ( typeof History.init !== 'undefined' ) {\n\t\tHistory.init();\n\t}\n\n})(window);\n\n/**\n * History.js HTML4 Support\n * Depends on the HTML5 Support\n * @author Benjamin Arthur Lupton \n * @copyright 2010-2011 Benjamin Arthur Lupton \n * @license New BSD License \n */\n\n(function(window,undefined){\n\t\"use strict\";\n\n\t// ========================================================================\n\t// Initialise\n\n\t// Localise Globals\n\tvar\n\t\tdocument = window.document, // Make sure we are using the correct document\n\t\tsetTimeout = window.setTimeout||setTimeout,\n\t\tclearTimeout = window.clearTimeout||clearTimeout,\n\t\tsetInterval = window.setInterval||setInterval,\n\t\tHistory = window.History = window.History||{}; // Public History Object\n\n\t// Check Existence\n\tif ( typeof History.initHtml4 !== 'undefined' ) {\n\t\tthrow new Error('History.js HTML4 Support has already been loaded...');\n\t}\n\n\n\t// ========================================================================\n\t// Initialise HTML4 Support\n\n\t// Initialise HTML4 Support\n\tHistory.initHtml4 = function(){\n\t\t// Initialise\n\t\tif ( typeof History.initHtml4.initialized !== 'undefined' ) {\n\t\t\t// Already Loaded\n\t\t\treturn false;\n\t\t}\n\t\telse {\n\t\t\tHistory.initHtml4.initialized = true;\n\t\t}\n\n\n\t\t// ====================================================================\n\t\t// Properties\n\n\t\t/**\n\t\t * History.enabled\n\t\t * Is History enabled?\n\t\t */\n\t\tHistory.enabled = true;\n\n\n\t\t// ====================================================================\n\t\t// Hash Storage\n\n\t\t/**\n\t\t * History.savedHashes\n\t\t * Store the hashes in an array\n\t\t */\n\t\tHistory.savedHashes = [];\n\n\t\t/**\n\t\t * History.isLastHash(newHash)\n\t\t * Checks if the hash is the last hash\n\t\t * @param {string} newHash\n\t\t * @return {boolean} true\n\t\t */\n\t\tHistory.isLastHash = function(newHash){\n\t\t\t// Prepare\n\t\t\tvar oldHash = History.getHashByIndex(),\n\t\t\t\tisLast;\n\n\t\t\t// Check\n\t\t\tisLast = newHash === oldHash;\n\n\t\t\t// Return isLast\n\t\t\treturn isLast;\n\t\t};\n\n\t\t/**\n\t\t * History.isHashEqual(newHash, oldHash)\n\t\t * Checks to see if two hashes are functionally equal\n\t\t * @param {string} newHash\n\t\t * @param {string} oldHash\n\t\t * @return {boolean} true\n\t\t */\n\t\tHistory.isHashEqual = function(newHash, oldHash){\n\t\t\tnewHash = encodeURIComponent(newHash).replace(/%25/g, \"%\");\n\t\t\toldHash = encodeURIComponent(oldHash).replace(/%25/g, \"%\");\n\t\t\treturn newHash === oldHash;\n\t\t};\n\n\t\t/**\n\t\t * History.saveHash(newHash)\n\t\t * Push a Hash\n\t\t * @param {string} newHash\n\t\t * @return {boolean} true\n\t\t */\n\t\tHistory.saveHash = function(newHash){\n\t\t\t// Check Hash\n\t\t\tif ( History.isLastHash(newHash) ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// Push the Hash\n\t\t\tHistory.savedHashes.push(newHash);\n\n\t\t\t// Return true\n\t\t\treturn true;\n\t\t};\n\n\t\t/**\n\t\t * History.getHashByIndex()\n\t\t * Gets a hash by the index\n\t\t * @param {integer} index\n\t\t * @return {string}\n\t\t */\n\t\tHistory.getHashByIndex = function(index){\n\t\t\t// Prepare\n\t\t\tvar hash = null;\n\n\t\t\t// Handle\n\t\t\tif ( typeof index === 'undefined' ) {\n\t\t\t\t// Get the last inserted\n\t\t\t\thash = History.savedHashes[History.savedHashes.length-1];\n\t\t\t}\n\t\t\telse if ( index < 0 ) {\n\t\t\t\t// Get from the end\n\t\t\t\thash = History.savedHashes[History.savedHashes.length+index];\n\t\t\t}\n\t\t\telse {\n\t\t\t\t// Get from the beginning\n\t\t\t\thash = History.savedHashes[index];\n\t\t\t}\n\n\t\t\t// Return hash\n\t\t\treturn hash;\n\t\t};\n\n\n\t\t// ====================================================================\n\t\t// Discarded States\n\n\t\t/**\n\t\t * History.discardedHashes\n\t\t * A hashed array of discarded hashes\n\t\t */\n\t\tHistory.discardedHashes = {};\n\n\t\t/**\n\t\t * History.discardedStates\n\t\t * A hashed array of discarded states\n\t\t */\n\t\tHistory.discardedStates = {};\n\n\t\t/**\n\t\t * History.discardState(State)\n\t\t * Discards the state by ignoring it through History\n\t\t * @param {object} State\n\t\t * @return {true}\n\t\t */\n\t\tHistory.discardState = function(discardedState,forwardState,backState){\n\t\t\t//History.debug('History.discardState', arguments);\n\t\t\t// Prepare\n\t\t\tvar discardedStateHash = History.getHashByState(discardedState),\n\t\t\t\tdiscardObject;\n\n\t\t\t// Create Discard Object\n\t\t\tdiscardObject = {\n\t\t\t\t'discardedState': discardedState,\n\t\t\t\t'backState': backState,\n\t\t\t\t'forwardState': forwardState\n\t\t\t};\n\n\t\t\t// Add to DiscardedStates\n\t\t\tHistory.discardedStates[discardedStateHash] = discardObject;\n\n\t\t\t// Return true\n\t\t\treturn true;\n\t\t};\n\n\t\t/**\n\t\t * History.discardHash(hash)\n\t\t * Discards the hash by ignoring it through History\n\t\t * @param {string} hash\n\t\t * @return {true}\n\t\t */\n\t\tHistory.discardHash = function(discardedHash,forwardState,backState){\n\t\t\t//History.debug('History.discardState', arguments);\n\t\t\t// Create Discard Object\n\t\t\tvar discardObject = {\n\t\t\t\t'discardedHash': discardedHash,\n\t\t\t\t'backState': backState,\n\t\t\t\t'forwardState': forwardState\n\t\t\t};\n\n\t\t\t// Add to discardedHash\n\t\t\tHistory.discardedHashes[discardedHash] = discardObject;\n\n\t\t\t// Return true\n\t\t\treturn true;\n\t\t};\n\n\t\t/**\n\t\t * History.discardedState(State)\n\t\t * Checks to see if the state is discarded\n\t\t * @param {object} State\n\t\t * @return {bool}\n\t\t */\n\t\tHistory.discardedState = function(State){\n\t\t\t// Prepare\n\t\t\tvar StateHash = History.getHashByState(State),\n\t\t\t\tdiscarded;\n\n\t\t\t// Check\n\t\t\tdiscarded = History.discardedStates[StateHash]||false;\n\n\t\t\t// Return true\n\t\t\treturn discarded;\n\t\t};\n\n\t\t/**\n\t\t * History.discardedHash(hash)\n\t\t * Checks to see if the state is discarded\n\t\t * @param {string} State\n\t\t * @return {bool}\n\t\t */\n\t\tHistory.discardedHash = function(hash){\n\t\t\t// Check\n\t\t\tvar discarded = History.discardedHashes[hash]||false;\n\n\t\t\t// Return true\n\t\t\treturn discarded;\n\t\t};\n\n\t\t/**\n\t\t * History.recycleState(State)\n\t\t * Allows a discarded state to be used again\n\t\t * @param {object} data\n\t\t * @param {string} title\n\t\t * @param {string} url\n\t\t * @return {true}\n\t\t */\n\t\tHistory.recycleState = function(State){\n\t\t\t//History.debug('History.recycleState', arguments);\n\t\t\t// Prepare\n\t\t\tvar StateHash = History.getHashByState(State);\n\n\t\t\t// Remove from DiscardedStates\n\t\t\tif ( History.discardedState(State) ) {\n\t\t\t\tdelete History.discardedStates[StateHash];\n\t\t\t}\n\n\t\t\t// Return true\n\t\t\treturn true;\n\t\t};\n\n\n\t\t// ====================================================================\n\t\t// HTML4 HashChange Support\n\n\t\tif ( History.emulated.hashChange ) {\n\t\t\t/*\n\t\t\t * We must emulate the HTML4 HashChange Support by manually checking for hash changes\n\t\t\t */\n\n\t\t\t/**\n\t\t\t * History.hashChangeInit()\n\t\t\t * Init the HashChange Emulation\n\t\t\t */\n\t\t\tHistory.hashChangeInit = function(){\n\t\t\t\t// Define our Checker Function\n\t\t\t\tHistory.checkerFunction = null;\n\n\t\t\t\t// Define some variables that will help in our checker function\n\t\t\t\tvar lastDocumentHash = '',\n\t\t\t\t\tiframeId, iframe,\n\t\t\t\t\tlastIframeHash, checkerRunning,\n\t\t\t\t\tstartedWithHash = Boolean(History.getHash());\n\n\t\t\t\t// Handle depending on the browser\n\t\t\t\tif ( History.isInternetExplorer() ) {\n\t\t\t\t\t// IE6 and IE7\n\t\t\t\t\t// We need to use an iframe to emulate the back and forward buttons\n\n\t\t\t\t\t// Create iFrame\n\t\t\t\t\tiframeId = 'historyjs-iframe';\n\t\t\t\t\tiframe = document.createElement('iframe');\n\n\t\t\t\t\t// Adjust iFarme\n\t\t\t\t\t// IE 6 requires iframe to have a src on HTTPS pages, otherwise it will throw a\n\t\t\t\t\t// \"This page contains both secure and nonsecure items\" warning.\n\t\t\t\t\tiframe.setAttribute('id', iframeId);\n\t\t\t\t\tiframe.setAttribute('src', '#');\n\t\t\t\t\tiframe.style.display = 'none';\n\n\t\t\t\t\t// Append iFrame\n\t\t\t\t\tdocument.body.appendChild(iframe);\n\n\t\t\t\t\t// Create initial history entry\n\t\t\t\t\tiframe.contentWindow.document.open();\n\t\t\t\t\tiframe.contentWindow.document.close();\n\n\t\t\t\t\t// Define some variables that will help in our checker function\n\t\t\t\t\tlastIframeHash = '';\n\t\t\t\t\tcheckerRunning = false;\n\n\t\t\t\t\t// Define the checker function\n\t\t\t\t\tHistory.checkerFunction = function(){\n\t\t\t\t\t\t// Check Running\n\t\t\t\t\t\tif ( checkerRunning ) {\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Update Running\n\t\t\t\t\t\tcheckerRunning = true;\n\n\t\t\t\t\t\t// Fetch\n\t\t\t\t\t\tvar\n\t\t\t\t\t\t\tdocumentHash = History.getHash(),\n\t\t\t\t\t\t\tiframeHash = History.getHash(iframe.contentWindow.document);\n\n\t\t\t\t\t\t// The Document Hash has changed (application caused)\n\t\t\t\t\t\tif ( documentHash !== lastDocumentHash ) {\n\t\t\t\t\t\t\t// Equalise\n\t\t\t\t\t\t\tlastDocumentHash = documentHash;\n\n\t\t\t\t\t\t\t// Create a history entry in the iframe\n\t\t\t\t\t\t\tif ( iframeHash !== documentHash ) {\n\t\t\t\t\t\t\t\t//History.debug('hashchange.checker: iframe hash change', 'documentHash (new):', documentHash, 'iframeHash (old):', iframeHash);\n\n\t\t\t\t\t\t\t\t// Equalise\n\t\t\t\t\t\t\t\tlastIframeHash = iframeHash = documentHash;\n\n\t\t\t\t\t\t\t\t// Create History Entry\n\t\t\t\t\t\t\t\tiframe.contentWindow.document.open();\n\t\t\t\t\t\t\t\tiframe.contentWindow.document.close();\n\n\t\t\t\t\t\t\t\t// Update the iframe's hash\n\t\t\t\t\t\t\t\tiframe.contentWindow.document.location.hash = History.escapeHash(documentHash);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// Trigger Hashchange Event\n\t\t\t\t\t\t\tHistory.Adapter.trigger(window,'hashchange');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// The iFrame Hash has changed (back button caused)\n\t\t\t\t\t\telse if ( iframeHash !== lastIframeHash ) {\n\t\t\t\t\t\t\t//History.debug('hashchange.checker: iframe hash out of sync', 'iframeHash (new):', iframeHash, 'documentHash (old):', documentHash);\n\n\t\t\t\t\t\t\t// Equalise\n\t\t\t\t\t\t\tlastIframeHash = iframeHash;\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t// If there is no iframe hash that means we're at the original\n\t\t\t\t\t\t\t// iframe state.\n\t\t\t\t\t\t\t// And if there was a hash on the original request, the original\n\t\t\t\t\t\t\t// iframe state was replaced instantly, so skip this state and take\n\t\t\t\t\t\t\t// the user back to where they came from.\n\t\t\t\t\t\t\tif (startedWithHash && iframeHash === '') {\n\t\t\t\t\t\t\t\tHistory.back();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t// Update the Hash\n\t\t\t\t\t\t\t\tHistory.setHash(iframeHash,false);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Reset Running\n\t\t\t\t\t\tcheckerRunning = false;\n\n\t\t\t\t\t\t// Return true\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\t// We are not IE\n\t\t\t\t\t// Firefox 1 or 2, Opera\n\n\t\t\t\t\t// Define the checker function\n\t\t\t\t\tHistory.checkerFunction = function(){\n\t\t\t\t\t\t// Prepare\n\t\t\t\t\t\tvar documentHash = History.getHash()||'';\n\n\t\t\t\t\t\t// The Document Hash has changed (application caused)\n\t\t\t\t\t\tif ( documentHash !== lastDocumentHash ) {\n\t\t\t\t\t\t\t// Equalise\n\t\t\t\t\t\t\tlastDocumentHash = documentHash;\n\n\t\t\t\t\t\t\t// Trigger Hashchange Event\n\t\t\t\t\t\t\tHistory.Adapter.trigger(window,'hashchange');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Return true\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\t// Apply the checker function\n\t\t\t\tHistory.intervalList.push(setInterval(History.checkerFunction, History.options.hashChangeInterval));\n\n\t\t\t\t// Done\n\t\t\t\treturn true;\n\t\t\t}; // History.hashChangeInit\n\n\t\t\t// Bind hashChangeInit\n\t\t\tHistory.Adapter.onDomLoad(History.hashChangeInit);\n\n\t\t} // History.emulated.hashChange\n\n\n\t\t// ====================================================================\n\t\t// HTML5 State Support\n\n\t\t// Non-Native pushState Implementation\n\t\tif ( History.emulated.pushState ) {\n\t\t\t/*\n\t\t\t * We must emulate the HTML5 State Management by using HTML4 HashChange\n\t\t\t */\n\n\t\t\t/**\n\t\t\t * History.onHashChange(event)\n\t\t\t * Trigger HTML5's window.onpopstate via HTML4 HashChange Support\n\t\t\t */\n\t\t\tHistory.onHashChange = function(event){\n\t\t\t\t//History.debug('History.onHashChange', arguments);\n\n\t\t\t\t// Prepare\n\t\t\t\tvar currentUrl = ((event && event.newURL) || History.getLocationHref()),\n\t\t\t\t\tcurrentHash = History.getHashByUrl(currentUrl),\n\t\t\t\t\tcurrentState = null,\n\t\t\t\t\tcurrentStateHash = null,\n\t\t\t\t\tcurrentStateHashExits = null,\n\t\t\t\t\tdiscardObject;\n\n\t\t\t\t// Check if we are the same state\n\t\t\t\tif ( History.isLastHash(currentHash) ) {\n\t\t\t\t\t// There has been no change (just the page's hash has finally propagated)\n\t\t\t\t\t//History.debug('History.onHashChange: no change');\n\t\t\t\t\tHistory.busy(false);\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\t// Reset the double check\n\t\t\t\tHistory.doubleCheckComplete();\n\n\t\t\t\t// Store our location for use in detecting back/forward direction\n\t\t\t\tHistory.saveHash(currentHash);\n\n\t\t\t\t// Expand Hash\n\t\t\t\tif ( currentHash && History.isTraditionalAnchor(currentHash) ) {\n\t\t\t\t\t//History.debug('History.onHashChange: traditional anchor', currentHash);\n\t\t\t\t\t// Traditional Anchor Hash\n\t\t\t\t\tHistory.Adapter.trigger(window,'anchorchange');\n\t\t\t\t\tHistory.busy(false);\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\t// Create State\n\t\t\t\tcurrentState = History.extractState(History.getFullUrl(currentHash||History.getLocationHref()),true);\n\n\t\t\t\t// Check if we are the same state\n\t\t\t\tif ( History.isLastSavedState(currentState) ) {\n\t\t\t\t\t//History.debug('History.onHashChange: no change');\n\t\t\t\t\t// There has been no change (just the page's hash has finally propagated)\n\t\t\t\t\tHistory.busy(false);\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\t// Create the state Hash\n\t\t\t\tcurrentStateHash = History.getHashByState(currentState);\n\n\t\t\t\t// Check if we are DiscardedState\n\t\t\t\tdiscardObject = History.discardedState(currentState);\n\t\t\t\tif ( discardObject ) {\n\t\t\t\t\t// Ignore this state as it has been discarded and go back to the state before it\n\t\t\t\t\tif ( History.getHashByIndex(-2) === History.getHashByState(discardObject.forwardState) ) {\n\t\t\t\t\t\t// We are going backwards\n\t\t\t\t\t\t//History.debug('History.onHashChange: go backwards');\n\t\t\t\t\t\tHistory.back(false);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// We are going forwards\n\t\t\t\t\t\t//History.debug('History.onHashChange: go forwards');\n\t\t\t\t\t\tHistory.forward(false);\n\t\t\t\t\t}\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\t// Push the new HTML5 State\n\t\t\t\t//History.debug('History.onHashChange: success hashchange');\n\t\t\t\tHistory.pushState(currentState.data,currentState.title,encodeURI(currentState.url),false);\n\n\t\t\t\t// End onHashChange closure\n\t\t\t\treturn true;\n\t\t\t};\n\t\t\tHistory.Adapter.bind(window,'hashchange',History.onHashChange);\n\n\t\t\t/**\n\t\t\t * History.pushState(data,title,url)\n\t\t\t * Add a new State to the history object, become it, and trigger onpopstate\n\t\t\t * We have to trigger for HTML4 compatibility\n\t\t\t * @param {object} data\n\t\t\t * @param {string} title\n\t\t\t * @param {string} url\n\t\t\t * @return {true}\n\t\t\t */\n\t\t\tHistory.pushState = function(data,title,url,queue){\n\t\t\t\t//History.debug('History.pushState: called', arguments);\n\n\t\t\t\t// We assume that the URL passed in is URI-encoded, but this makes\n\t\t\t\t// sure that it's fully URI encoded; any '%'s that are encoded are\n\t\t\t\t// converted back into '%'s\n\t\t\t\turl = encodeURI(url).replace(/%25/g, \"%\");\n\n\t\t\t\t// Check the State\n\t\t\t\tif ( History.getHashByUrl(url) ) {\n\t\t\t\t\tthrow new Error('History.js does not support states with fragment-identifiers (hashes/anchors).');\n\t\t\t\t}\n\n\t\t\t\t// Handle Queueing\n\t\t\t\tif ( queue !== false && History.busy() ) {\n\t\t\t\t\t// Wait + Push to Queue\n\t\t\t\t\t//History.debug('History.pushState: we must wait', arguments);\n\t\t\t\t\tHistory.pushQueue({\n\t\t\t\t\t\tscope: History,\n\t\t\t\t\t\tcallback: History.pushState,\n\t\t\t\t\t\targs: arguments,\n\t\t\t\t\t\tqueue: queue\n\t\t\t\t\t});\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\t// Make Busy\n\t\t\t\tHistory.busy(true);\n\n\t\t\t\t// Fetch the State Object\n\t\t\t\tvar newState = History.createStateObject(data,title,url),\n\t\t\t\t\tnewStateHash = History.getHashByState(newState),\n\t\t\t\t\toldState = History.getState(false),\n\t\t\t\t\toldStateHash = History.getHashByState(oldState),\n\t\t\t\t\thtml4Hash = History.getHash(),\n\t\t\t\t\twasExpected = History.expectedStateId == newState.id;\n\n\t\t\t\t// Store the newState\n\t\t\t\tHistory.storeState(newState);\n\t\t\t\tHistory.expectedStateId = newState.id;\n\n\t\t\t\t// Recycle the State\n\t\t\t\tHistory.recycleState(newState);\n\n\t\t\t\t// Force update of the title\n\t\t\t\tHistory.setTitle(newState);\n\n\t\t\t\t// Check if we are the same State\n\t\t\t\tif ( newStateHash === oldStateHash ) {\n\t\t\t\t\t//History.debug('History.pushState: no change', newStateHash);\n\t\t\t\t\tHistory.busy(false);\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\t// Update HTML5 State\n\t\t\t\tHistory.saveState(newState);\n\n\t\t\t\t// Fire HTML5 Event\n\t\t\t\tif(!wasExpected)\n\t\t\t\t\tHistory.Adapter.trigger(window,'statechange');\n\n\t\t\t\t// Update HTML4 Hash\n\t\t\t\tif ( !History.isHashEqual(newStateHash, html4Hash) && !History.isHashEqual(newStateHash, History.getShortUrl(History.getLocationHref())) ) {\n\t\t\t\t\tHistory.setHash(newStateHash,false);\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tHistory.busy(false);\n\n\t\t\t\t// End pushState closure\n\t\t\t\treturn true;\n\t\t\t};\n\n\t\t\t/**\n\t\t\t * History.replaceState(data,title,url)\n\t\t\t * Replace the State and trigger onpopstate\n\t\t\t * We have to trigger for HTML4 compatibility\n\t\t\t * @param {object} data\n\t\t\t * @param {string} title\n\t\t\t * @param {string} url\n\t\t\t * @return {true}\n\t\t\t */\n\t\t\tHistory.replaceState = function(data,title,url,queue){\n\t\t\t\t//History.debug('History.replaceState: called', arguments);\n\n\t\t\t\t// We assume that the URL passed in is URI-encoded, but this makes\n\t\t\t\t// sure that it's fully URI encoded; any '%'s that are encoded are\n\t\t\t\t// converted back into '%'s\n\t\t\t\turl = encodeURI(url).replace(/%25/g, \"%\");\n\n\t\t\t\t// Check the State\n\t\t\t\tif ( History.getHashByUrl(url) ) {\n\t\t\t\t\tthrow new Error('History.js does not support states with fragment-identifiers (hashes/anchors).');\n\t\t\t\t}\n\n\t\t\t\t// Handle Queueing\n\t\t\t\tif ( queue !== false && History.busy() ) {\n\t\t\t\t\t// Wait + Push to Queue\n\t\t\t\t\t//History.debug('History.replaceState: we must wait', arguments);\n\t\t\t\t\tHistory.pushQueue({\n\t\t\t\t\t\tscope: History,\n\t\t\t\t\t\tcallback: History.replaceState,\n\t\t\t\t\t\targs: arguments,\n\t\t\t\t\t\tqueue: queue\n\t\t\t\t\t});\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\t// Make Busy\n\t\t\t\tHistory.busy(true);\n\n\t\t\t\t// Fetch the State Objects\n\t\t\t\tvar newState = History.createStateObject(data,title,url),\n\t\t\t\t\tnewStateHash = History.getHashByState(newState),\n\t\t\t\t\toldState = History.getState(false),\n\t\t\t\t\toldStateHash = History.getHashByState(oldState),\n\t\t\t\t\tpreviousState = History.getStateByIndex(-2);\n\n\t\t\t\t// Discard Old State\n\t\t\t\tHistory.discardState(oldState,newState,previousState);\n\n\t\t\t\t// If the url hasn't changed, just store and save the state\n\t\t\t\t// and fire a statechange event to be consistent with the\n\t\t\t\t// html 5 api\n\t\t\t\tif ( newStateHash === oldStateHash ) {\n\t\t\t\t\t// Store the newState\n\t\t\t\t\tHistory.storeState(newState);\n\t\t\t\t\tHistory.expectedStateId = newState.id;\n\t\n\t\t\t\t\t// Recycle the State\n\t\t\t\t\tHistory.recycleState(newState);\n\t\n\t\t\t\t\t// Force update of the title\n\t\t\t\t\tHistory.setTitle(newState);\n\t\t\t\t\t\n\t\t\t\t\t// Update HTML5 State\n\t\t\t\t\tHistory.saveState(newState);\n\n\t\t\t\t\t// Fire HTML5 Event\n\t\t\t\t\t//History.debug('History.pushState: trigger popstate');\n\t\t\t\t\tHistory.Adapter.trigger(window,'statechange');\n\t\t\t\t\tHistory.busy(false);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\t// Alias to PushState\n\t\t\t\t\tHistory.pushState(newState.data,newState.title,newState.url,false);\n\t\t\t\t}\n\n\t\t\t\t// End replaceState closure\n\t\t\t\treturn true;\n\t\t\t};\n\n\t\t} // History.emulated.pushState\n\n\n\n\t\t// ====================================================================\n\t\t// Initialise\n\n\t\t// Non-Native pushState Implementation\n\t\tif ( History.emulated.pushState ) {\n\t\t\t/**\n\t\t\t * Ensure initial state is handled correctly\n\t\t\t */\n\t\t\tif ( History.getHash() && !History.emulated.hashChange ) {\n\t\t\t\tHistory.Adapter.onDomLoad(function(){\n\t\t\t\t\tHistory.Adapter.trigger(window,'hashchange');\n\t\t\t\t});\n\t\t\t}\n\n\t\t} // History.emulated.pushState\n\n\t}; // History.initHtml4\n\n\t// Try to Initialise History\n\tif ( typeof History.init !== 'undefined' ) {\n\t\tHistory.init();\n\t}\n\n})(window);\n/**\n * History.js Core\n * @author Benjamin Arthur Lupton \n * @copyright 2010-2011 Benjamin Arthur Lupton \n * @license New BSD License \n */\n\n(function(window,undefined){\n\t\"use strict\";\n\n\t// ========================================================================\n\t// Initialise\n\n\t// Localise Globals\n\tvar\n\t\tconsole = window.console||undefined, // Prevent a JSLint complain\n\t\tdocument = window.document, // Make sure we are using the correct document\n\t\tnavigator = window.navigator, // Make sure we are using the correct navigator\n\t\tsessionStorage = false, // sessionStorage\n\t\tsetTimeout = window.setTimeout,\n\t\tclearTimeout = window.clearTimeout,\n\t\tsetInterval = window.setInterval,\n\t\tclearInterval = window.clearInterval,\n\t\tJSON = window.JSON,\n\t\talert = window.alert,\n\t\tHistory = window.History = window.History||{}, // Public History Object\n\t\thistory = window.history; // Old History Object\n\n\ttry {\n\t\tsessionStorage = window.sessionStorage; // This will throw an exception in some browsers when cookies/localStorage are explicitly disabled (i.e. Chrome)\n\t\tsessionStorage.setItem('TEST', '1');\n\t\tsessionStorage.removeItem('TEST');\n\t} catch(e) {\n\t\tsessionStorage = false;\n\t}\n\n\t// MooTools Compatibility\n\tJSON.stringify = JSON.stringify||JSON.encode;\n\tJSON.parse = JSON.parse||JSON.decode;\n\n\t// Check Existence\n\tif ( typeof History.init !== 'undefined' ) {\n\t\tthrow new Error('History.js Core has already been loaded...');\n\t}\n\n\t// Initialise History\n\tHistory.init = function(options){\n\t\t// Check Load Status of Adapter\n\t\tif ( typeof History.Adapter === 'undefined' ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Check Load Status of Core\n\t\tif ( typeof History.initCore !== 'undefined' ) {\n\t\t\tHistory.initCore();\n\t\t}\n\n\t\t// Check Load Status of HTML4 Support\n\t\tif ( typeof History.initHtml4 !== 'undefined' ) {\n\t\t\tHistory.initHtml4();\n\t\t}\n\n\t\t// Return true\n\t\treturn true;\n\t};\n\n\n\t// ========================================================================\n\t// Initialise Core\n\n\t// Initialise Core\n\tHistory.initCore = function(options){\n\t\t// Initialise\n\t\tif ( typeof History.initCore.initialized !== 'undefined' ) {\n\t\t\t// Already Loaded\n\t\t\treturn false;\n\t\t}\n\t\telse {\n\t\t\tHistory.initCore.initialized = true;\n\t\t}\n\n\n\t\t// ====================================================================\n\t\t// Options\n\n\t\t/**\n\t\t * History.options\n\t\t * Configurable options\n\t\t */\n\t\tHistory.options = History.options||{};\n\n\t\t/**\n\t\t * History.options.hashChangeInterval\n\t\t * How long should the interval be before hashchange checks\n\t\t */\n\t\tHistory.options.hashChangeInterval = History.options.hashChangeInterval || 100;\n\n\t\t/**\n\t\t * History.options.safariPollInterval\n\t\t * How long should the interval be before safari poll checks\n\t\t */\n\t\tHistory.options.safariPollInterval = History.options.safariPollInterval || 500;\n\n\t\t/**\n\t\t * History.options.doubleCheckInterval\n\t\t * How long should the interval be before we perform a double check\n\t\t */\n\t\tHistory.options.doubleCheckInterval = History.options.doubleCheckInterval || 500;\n\n\t\t/**\n\t\t * History.options.disableSuid\n\t\t * Force History not to append suid\n\t\t */\n\t\tHistory.options.disableSuid = History.options.disableSuid || false;\n\n\t\t/**\n\t\t * History.options.storeInterval\n\t\t * How long should we wait between store calls\n\t\t */\n\t\tHistory.options.storeInterval = History.options.storeInterval || 1000;\n\n\t\t/**\n\t\t * History.options.busyDelay\n\t\t * How long should we wait between busy events\n\t\t */\n\t\tHistory.options.busyDelay = History.options.busyDelay || 250;\n\n\t\t/**\n\t\t * History.options.debug\n\t\t * If true will enable debug messages to be logged\n\t\t */\n\t\tHistory.options.debug = History.options.debug || false;\n\n\t\t/**\n\t\t * History.options.initialTitle\n\t\t * What is the title of the initial state\n\t\t */\n\t\tHistory.options.initialTitle = History.options.initialTitle || document.title;\n\n\t\t/**\n\t\t * History.options.html4Mode\n\t\t * If true, will force HTMl4 mode (hashtags)\n\t\t */\n\t\tHistory.options.html4Mode = History.options.html4Mode || false;\n\n\t\t/**\n\t\t * History.options.delayInit\n\t\t * Want to override default options and call init manually.\n\t\t */\n\t\tHistory.options.delayInit = History.options.delayInit || false;\n\n\n\t\t// ====================================================================\n\t\t// Interval record\n\n\t\t/**\n\t\t * History.intervalList\n\t\t * List of intervals set, to be cleared when document is unloaded.\n\t\t */\n\t\tHistory.intervalList = [];\n\n\t\t/**\n\t\t * History.clearAllIntervals\n\t\t * Clears all setInterval instances.\n\t\t */\n\t\tHistory.clearAllIntervals = function(){\n\t\t\tvar i, il = History.intervalList;\n\t\t\tif (typeof il !== \"undefined\" && il !== null) {\n\t\t\t\tfor (i = 0; i < il.length; i++) {\n\t\t\t\t\tclearInterval(il[i]);\n\t\t\t\t}\n\t\t\t\tHistory.intervalList = null;\n\t\t\t}\n\t\t};\n\n\n\t\t// ====================================================================\n\t\t// Debug\n\n\t\t/**\n\t\t * History.debug(message,...)\n\t\t * Logs the passed arguments if debug enabled\n\t\t */\n\t\tHistory.debug = function(){\n\t\t\tif ( (History.options.debug||false) ) {\n\t\t\t\tHistory.log.apply(History,arguments);\n\t\t\t}\n\t\t};\n\n\t\t/**\n\t\t * History.log(message,...)\n\t\t * Logs the passed arguments\n\t\t */\n\t\tHistory.log = function(){\n\t\t\t// Prepare\n\t\t\tvar\n\t\t\t\tconsoleExists = !(typeof console === 'undefined' || typeof console.log === 'undefined' || typeof console.log.apply === 'undefined'),\n\t\t\t\ttextarea = document.getElementById('log'),\n\t\t\t\tmessage,\n\t\t\t\ti,n,\n\t\t\t\targs,arg\n\t\t\t\t;\n\n\t\t\t// Write to Console\n\t\t\tif ( consoleExists ) {\n\t\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t\t\tmessage = args.shift();\n\t\t\t\tif ( typeof console.debug !== 'undefined' ) {\n\t\t\t\t\tconsole.debug.apply(console,[message,args]);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tconsole.log.apply(console,[message,args]);\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\tmessage = (\"\\n\"+arguments[0]+\"\\n\");\n\t\t\t}\n\n\t\t\t// Write to log\n\t\t\tfor ( i=1,n=arguments.length; i\n\t\t * @author James Padolsey \n\t\t */\n\t\tHistory.getInternetExplorerMajorVersion = function(){\n\t\t\tvar result = History.getInternetExplorerMajorVersion.cached =\n\t\t\t\t\t(typeof History.getInternetExplorerMajorVersion.cached !== 'undefined')\n\t\t\t\t?\tHistory.getInternetExplorerMajorVersion.cached\n\t\t\t\t:\t(function(){\n\t\t\t\t\t\tvar v = 3,\n\t\t\t\t\t\t\t\tdiv = document.createElement('div'),\n\t\t\t\t\t\t\t\tall = div.getElementsByTagName('i');\n\t\t\t\t\t\twhile ( (div.innerHTML = '') && all[0] ) {}\n\t\t\t\t\t\treturn (v > 4) ? v : false;\n\t\t\t\t\t})()\n\t\t\t\t;\n\t\t\treturn result;\n\t\t};\n\n\t\t/**\n\t\t * History.isInternetExplorer()\n\t\t * Are we using Internet Explorer?\n\t\t * @return {boolean}\n\t\t * @license Public Domain\n\t\t * @author Benjamin Arthur Lupton \n\t\t */\n\t\tHistory.isInternetExplorer = function(){\n\t\t\tvar result =\n\t\t\t\tHistory.isInternetExplorer.cached =\n\t\t\t\t(typeof History.isInternetExplorer.cached !== 'undefined')\n\t\t\t\t\t?\tHistory.isInternetExplorer.cached\n\t\t\t\t\t:\tBoolean(History.getInternetExplorerMajorVersion())\n\t\t\t\t;\n\t\t\treturn result;\n\t\t};\n\n\t\t/**\n\t\t * History.emulated\n\t\t * Which features require emulating?\n\t\t */\n\n\t\tif (History.options.html4Mode) {\n\t\t\tHistory.emulated = {\n\t\t\t\tpushState : true,\n\t\t\t\thashChange: true\n\t\t\t};\n\t\t}\n\n\t\telse {\n\n\t\t\tHistory.emulated = {\n\t\t\t\tpushState: !Boolean(\n\t\t\t\t\twindow.history && window.history.pushState && window.history.replaceState\n\t\t\t\t\t&& !(\n\t\t\t\t\t\t(/ Mobile\\/([1-7][a-z]|(8([abcde]|f(1[0-8]))))/i).test(navigator.userAgent) /* disable for versions of iOS before version 4.3 (8F190) */\n\t\t\t\t\t\t|| (/AppleWebKit\\/5([0-2]|3[0-2])/i).test(navigator.userAgent) /* disable for the mercury iOS browser, or at least older versions of the webkit engine */\n\t\t\t\t\t)\n\t\t\t\t),\n\t\t\t\thashChange: Boolean(\n\t\t\t\t\t!(('onhashchange' in window) || ('onhashchange' in document))\n\t\t\t\t\t||\n\t\t\t\t\t(History.isInternetExplorer() && History.getInternetExplorerMajorVersion() < 8)\n\t\t\t\t)\n\t\t\t};\n\t\t}\n\n\t\t/**\n\t\t * History.enabled\n\t\t * Is History enabled?\n\t\t */\n\t\tHistory.enabled = !History.emulated.pushState;\n\n\t\t/**\n\t\t * History.bugs\n\t\t * Which bugs are present\n\t\t */\n\t\tHistory.bugs = {\n\t\t\t/**\n\t\t\t * Safari 5 and Safari iOS 4 fail to return to the correct state once a hash is replaced by a `replaceState` call\n\t\t\t * https://bugs.webkit.org/show_bug.cgi?id=56249\n\t\t\t */\n\t\t\tsetHash: Boolean(!History.emulated.pushState && navigator.vendor === 'Apple Computer, Inc.' && /AppleWebKit\\/5([0-2]|3[0-3])/.test(navigator.userAgent)),\n\n\t\t\t/**\n\t\t\t * Safari 5 and Safari iOS 4 sometimes fail to apply the state change under busy conditions\n\t\t\t * https://bugs.webkit.org/show_bug.cgi?id=42940\n\t\t\t */\n\t\t\tsafariPoll: Boolean(!History.emulated.pushState && navigator.vendor === 'Apple Computer, Inc.' && /AppleWebKit\\/5([0-2]|3[0-3])/.test(navigator.userAgent)),\n\n\t\t\t/**\n\t\t\t * MSIE 6 and 7 sometimes do not apply a hash even it was told to (requiring a second call to the apply function)\n\t\t\t */\n\t\t\tieDoubleCheck: Boolean(History.isInternetExplorer() && History.getInternetExplorerMajorVersion() < 8),\n\n\t\t\t/**\n\t\t\t * MSIE 6 requires the entire hash to be encoded for the hashes to trigger the onHashChange event\n\t\t\t */\n\t\t\thashEscape: Boolean(History.isInternetExplorer() && History.getInternetExplorerMajorVersion() < 7)\n\t\t};\n\n\t\t/**\n\t\t * History.isEmptyObject(obj)\n\t\t * Checks to see if the Object is Empty\n\t\t * @param {Object} obj\n\t\t * @return {boolean}\n\t\t */\n\t\tHistory.isEmptyObject = function(obj) {\n\t\t\tfor ( var name in obj ) {\n\t\t\t\tif ( obj.hasOwnProperty(name) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t};\n\n\t\t/**\n\t\t * History.cloneObject(obj)\n\t\t * Clones a object and eliminate all references to the original contexts\n\t\t * @param {Object} obj\n\t\t * @return {Object}\n\t\t */\n\t\tHistory.cloneObject = function(obj) {\n\t\t\tvar hash,newObj;\n\t\t\tif ( obj ) {\n\t\t\t\thash = JSON.stringify(obj);\n\t\t\t\tnewObj = JSON.parse(hash);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tnewObj = {};\n\t\t\t}\n\t\t\treturn newObj;\n\t\t};\n\n\n\t\t// ====================================================================\n\t\t// URL Helpers\n\n\t\t/**\n\t\t * History.getRootUrl()\n\t\t * Turns \"http://mysite.com/dir/page.html?asd\" into \"http://mysite.com\"\n\t\t * @return {String} rootUrl\n\t\t */\n\t\tHistory.getRootUrl = function(){\n\t\t\t// Create\n\t\t\tvar rootUrl = document.location.protocol+'//'+(document.location.hostname||document.location.host);\n\t\t\tif ( document.location.port||false ) {\n\t\t\t\trootUrl += ':'+document.location.port;\n\t\t\t}\n\t\t\trootUrl += '/';\n\n\t\t\t// Return\n\t\t\treturn rootUrl;\n\t\t};\n\n\t\t/**\n\t\t * History.getBaseHref()\n\t\t * Fetches the `href` attribute of the `` element if it exists\n\t\t * @return {String} baseHref\n\t\t */\n\t\tHistory.getBaseHref = function(){\n\t\t\t// Create\n\t\t\tvar\n\t\t\t\tbaseElements = document.getElementsByTagName('base'),\n\t\t\t\tbaseElement = null,\n\t\t\t\tbaseHref = '';\n\n\t\t\t// Test for Base Element\n\t\t\tif ( baseElements.length === 1 ) {\n\t\t\t\t// Prepare for Base Element\n\t\t\t\tbaseElement = baseElements[0];\n\t\t\t\tbaseHref = baseElement.href.replace(/[^\\/]+$/,'');\n\t\t\t}\n\n\t\t\t// Adjust trailing slash\n\t\t\tbaseHref = baseHref.replace(/\\/+$/,'');\n\t\t\tif ( baseHref ) baseHref += '/';\n\n\t\t\t// Return\n\t\t\treturn baseHref;\n\t\t};\n\n\t\t/**\n\t\t * History.getBaseUrl()\n\t\t * Fetches the baseHref or basePageUrl or rootUrl (whichever one exists first)\n\t\t * @return {String} baseUrl\n\t\t */\n\t\tHistory.getBaseUrl = function(){\n\t\t\t// Create\n\t\t\tvar baseUrl = History.getBaseHref()||History.getBasePageUrl()||History.getRootUrl();\n\n\t\t\t// Return\n\t\t\treturn baseUrl;\n\t\t};\n\n\t\t/**\n\t\t * History.getPageUrl()\n\t\t * Fetches the URL of the current page\n\t\t * @return {String} pageUrl\n\t\t */\n\t\tHistory.getPageUrl = function(){\n\t\t\t// Fetch\n\t\t\tvar\n\t\t\t\tState = History.getState(false,false),\n\t\t\t\tstateUrl = (State||{}).url||History.getLocationHref(),\n\t\t\t\tpageUrl;\n\n\t\t\t// Create\n\t\t\tpageUrl = stateUrl.replace(/\\/+$/,'').replace(/[^\\/]+$/,function(part,index,string){\n\t\t\t\treturn (/\\./).test(part) ? part : part+'/';\n\t\t\t});\n\n\t\t\t// Return\n\t\t\treturn pageUrl;\n\t\t};\n\n\t\t/**\n\t\t * History.getBasePageUrl()\n\t\t * Fetches the Url of the directory of the current page\n\t\t * @return {String} basePageUrl\n\t\t */\n\t\tHistory.getBasePageUrl = function(){\n\t\t\t// Create\n\t\t\tvar basePageUrl = (History.getLocationHref()).replace(/[#\\?].*/,'').replace(/[^\\/]+$/,function(part,index,string){\n\t\t\t\treturn (/[^\\/]$/).test(part) ? '' : part;\n\t\t\t}).replace(/\\/+$/,'')+'/';\n\n\t\t\t// Return\n\t\t\treturn basePageUrl;\n\t\t};\n\n\t\t/**\n\t\t * History.getFullUrl(url)\n\t\t * Ensures that we have an absolute URL and not a relative URL\n\t\t * @param {string} url\n\t\t * @param {Boolean} allowBaseHref\n\t\t * @return {string} fullUrl\n\t\t */\n\t\tHistory.getFullUrl = function(url,allowBaseHref){\n\t\t\t// Prepare\n\t\t\tvar fullUrl = url, firstChar = url.substring(0,1);\n\t\t\tallowBaseHref = (typeof allowBaseHref === 'undefined') ? true : allowBaseHref;\n\n\t\t\t// Check\n\t\t\tif ( /[a-z]+\\:\\/\\//.test(url) ) {\n\t\t\t\t// Full URL\n\t\t\t}\n\t\t\telse if ( firstChar === '/' ) {\n\t\t\t\t// Root URL\n\t\t\t\tfullUrl = History.getRootUrl()+url.replace(/^\\/+/,'');\n\t\t\t}\n\t\t\telse if ( firstChar === '#' ) {\n\t\t\t\t// Anchor URL\n\t\t\t\tfullUrl = History.getPageUrl().replace(/#.*/,'')+url;\n\t\t\t}\n\t\t\telse if ( firstChar === '?' ) {\n\t\t\t\t// Query URL\n\t\t\t\tfullUrl = History.getPageUrl().replace(/[\\?#].*/,'')+url;\n\t\t\t}\n\t\t\telse {\n\t\t\t\t// Relative URL\n\t\t\t\tif ( allowBaseHref ) {\n\t\t\t\t\tfullUrl = History.getBaseUrl()+url.replace(/^(\\.\\/)+/,'');\n\t\t\t\t} else {\n\t\t\t\t\tfullUrl = History.getBasePageUrl()+url.replace(/^(\\.\\/)+/,'');\n\t\t\t\t}\n\t\t\t\t// We have an if condition above as we do not want hashes\n\t\t\t\t// which are relative to the baseHref in our URLs\n\t\t\t\t// as if the baseHref changes, then all our bookmarks\n\t\t\t\t// would now point to different locations\n\t\t\t\t// whereas the basePageUrl will always stay the same\n\t\t\t}\n\n\t\t\t// Return\n\t\t\treturn fullUrl.replace(/\\#$/,'');\n\t\t};\n\n\t\t/**\n\t\t * History.getShortUrl(url)\n\t\t * Ensures that we have a relative URL and not a absolute URL\n\t\t * @param {string} url\n\t\t * @return {string} url\n\t\t */\n\t\tHistory.getShortUrl = function(url){\n\t\t\t// Prepare\n\t\t\tvar shortUrl = url, baseUrl = History.getBaseUrl(), rootUrl = History.getRootUrl();\n\n\t\t\t// Trim baseUrl\n\t\t\tif ( History.emulated.pushState ) {\n\t\t\t\t// We are in a if statement as when pushState is not emulated\n\t\t\t\t// The actual url these short urls are relative to can change\n\t\t\t\t// So within the same session, we the url may end up somewhere different\n\t\t\t\tshortUrl = shortUrl.replace(baseUrl,'');\n\t\t\t}\n\n\t\t\t// Trim rootUrl\n\t\t\tshortUrl = shortUrl.replace(rootUrl,'/');\n\n\t\t\t// Ensure we can still detect it as a state\n\t\t\tif ( History.isTraditionalAnchor(shortUrl) ) {\n\t\t\t\tshortUrl = './'+shortUrl;\n\t\t\t}\n\n\t\t\t// Clean It\n\t\t\tshortUrl = shortUrl.replace(/^(\\.\\/)+/g,'./').replace(/\\#$/,'');\n\n\t\t\t// Return\n\t\t\treturn shortUrl;\n\t\t};\n\n\t\t/**\n\t\t * History.getLocationHref(document)\n\t\t * Returns a normalized version of document.location.href\n\t\t * accounting for browser inconsistencies, etc.\n\t\t *\n\t\t * This URL will be URI-encoded and will include the hash\n\t\t *\n\t\t * @param {object} document\n\t\t * @return {string} url\n\t\t */\n\t\tHistory.getLocationHref = function(doc) {\n\t\t\tdoc = doc || document;\n\n\t\t\t// most of the time, this will be true\n\t\t\tif (doc.URL === doc.location.href)\n\t\t\t\treturn doc.location.href;\n\n\t\t\t// some versions of webkit URI-decode document.location.href\n\t\t\t// but they leave document.URL in an encoded state\n\t\t\tif (doc.location.href === decodeURIComponent(doc.URL))\n\t\t\t\treturn doc.URL;\n\n\t\t\t// FF 3.6 only updates document.URL when a page is reloaded\n\t\t\t// document.location.href is updated correctly\n\t\t\tif (doc.location.hash && decodeURIComponent(doc.location.href.replace(/^[^#]+/, \"\")) === doc.location.hash)\n\t\t\t\treturn doc.location.href;\n\n\t\t\tif (doc.URL.indexOf('#') == -1 && doc.location.href.indexOf('#') != -1)\n\t\t\t\treturn doc.location.href;\n\t\t\t\n\t\t\treturn doc.URL || doc.location.href;\n\t\t};\n\n\n\t\t// ====================================================================\n\t\t// State Storage\n\n\t\t/**\n\t\t * History.store\n\t\t * The store for all session specific data\n\t\t */\n\t\tHistory.store = {};\n\n\t\t/**\n\t\t * History.idToState\n\t\t * 1-1: State ID to State Object\n\t\t */\n\t\tHistory.idToState = History.idToState||{};\n\n\t\t/**\n\t\t * History.stateToId\n\t\t * 1-1: State String to State ID\n\t\t */\n\t\tHistory.stateToId = History.stateToId||{};\n\n\t\t/**\n\t\t * History.urlToId\n\t\t * 1-1: State URL to State ID\n\t\t */\n\t\tHistory.urlToId = History.urlToId||{};\n\n\t\t/**\n\t\t * History.storedStates\n\t\t * Store the states in an array\n\t\t */\n\t\tHistory.storedStates = History.storedStates||[];\n\n\t\t/**\n\t\t * History.savedStates\n\t\t * Saved the states in an array\n\t\t */\n\t\tHistory.savedStates = History.savedStates||[];\n\n\t\t/**\n\t\t * History.noramlizeStore()\n\t\t * Noramlize the store by adding necessary values\n\t\t */\n\t\tHistory.normalizeStore = function(){\n\t\t\tHistory.store.idToState = History.store.idToState||{};\n\t\t\tHistory.store.urlToId = History.store.urlToId||{};\n\t\t\tHistory.store.stateToId = History.store.stateToId||{};\n\t\t};\n\n\t\t/**\n\t\t * History.getState()\n\t\t * Get an object containing the data, title and url of the current state\n\t\t * @param {Boolean} friendly\n\t\t * @param {Boolean} create\n\t\t * @return {Object} State\n\t\t */\n\t\tHistory.getState = function(friendly,create){\n\t\t\t// Prepare\n\t\t\tif ( typeof friendly === 'undefined' ) { friendly = true; }\n\t\t\tif ( typeof create === 'undefined' ) { create = true; }\n\n\t\t\t// Fetch\n\t\t\tvar State = History.getLastSavedState();\n\n\t\t\t// Create\n\t\t\tif ( !State && create ) {\n\t\t\t\tState = History.createStateObject();\n\t\t\t}\n\n\t\t\t// Adjust\n\t\t\tif ( friendly ) {\n\t\t\t\tState = History.cloneObject(State);\n\t\t\t\tState.url = State.cleanUrl||State.url;\n\t\t\t}\n\n\t\t\t// Return\n\t\t\treturn State;\n\t\t};\n\n\t\t/**\n\t\t * History.getIdByState(State)\n\t\t * Gets a ID for a State\n\t\t * @param {State} newState\n\t\t * @return {String} id\n\t\t */\n\t\tHistory.getIdByState = function(newState){\n\n\t\t\t// Fetch ID\n\t\t\tvar id = History.extractId(newState.url),\n\t\t\t\tstr;\n\n\t\t\tif ( !id ) {\n\t\t\t\t// Find ID via State String\n\t\t\t\tstr = History.getStateString(newState);\n\t\t\t\tif ( typeof History.stateToId[str] !== 'undefined' ) {\n\t\t\t\t\tid = History.stateToId[str];\n\t\t\t\t}\n\t\t\t\telse if ( typeof History.store.stateToId[str] !== 'undefined' ) {\n\t\t\t\t\tid = History.store.stateToId[str];\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\t// Generate a new ID\n\t\t\t\t\twhile ( true ) {\n\t\t\t\t\t\tid = (new Date()).getTime() + String(Math.random()).replace(/\\D/g,'');\n\t\t\t\t\t\tif ( typeof History.idToState[id] === 'undefined' && typeof History.store.idToState[id] === 'undefined' ) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Apply the new State to the ID\n\t\t\t\t\tHistory.stateToId[str] = id;\n\t\t\t\t\tHistory.idToState[id] = newState;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Return ID\n\t\t\treturn id;\n\t\t};\n\n\t\t/**\n\t\t * History.normalizeState(State)\n\t\t * Expands a State Object\n\t\t * @param {object} State\n\t\t * @return {object}\n\t\t */\n\t\tHistory.normalizeState = function(oldState){\n\t\t\t// Variables\n\t\t\tvar newState, dataNotEmpty;\n\n\t\t\t// Prepare\n\t\t\tif ( !oldState || (typeof oldState !== 'object') ) {\n\t\t\t\toldState = {};\n\t\t\t}\n\n\t\t\t// Check\n\t\t\tif ( typeof oldState.normalized !== 'undefined' ) {\n\t\t\t\treturn oldState;\n\t\t\t}\n\n\t\t\t// Adjust\n\t\t\tif ( !oldState.data || (typeof oldState.data !== 'object') ) {\n\t\t\t\toldState.data = {};\n\t\t\t}\n\n\t\t\t// ----------------------------------------------------------------\n\n\t\t\t// Create\n\t\t\tnewState = {};\n\t\t\tnewState.normalized = true;\n\t\t\tnewState.title = oldState.title||'';\n\t\t\tnewState.url = History.getFullUrl(oldState.url?oldState.url:(History.getLocationHref()));\n\t\t\tnewState.hash = History.getShortUrl(newState.url);\n\t\t\tnewState.data = History.cloneObject(oldState.data);\n\n\t\t\t// Fetch ID\n\t\t\tnewState.id = History.getIdByState(newState);\n\n\t\t\t// ----------------------------------------------------------------\n\n\t\t\t// Clean the URL\n\t\t\tnewState.cleanUrl = newState.url.replace(/\\??\\&_suid.*/,'');\n\t\t\tnewState.url = newState.cleanUrl;\n\n\t\t\t// Check to see if we have more than just a url\n\t\t\tdataNotEmpty = !History.isEmptyObject(newState.data);\n\n\t\t\t// Apply\n\t\t\tif ( (newState.title || dataNotEmpty) && History.options.disableSuid !== true ) {\n\t\t\t\t// Add ID to Hash\n\t\t\t\tnewState.hash = History.getShortUrl(newState.url).replace(/\\??\\&_suid.*/,'');\n\t\t\t\tif ( !/\\?/.test(newState.hash) ) {\n\t\t\t\t\tnewState.hash += '?';\n\t\t\t\t}\n\t\t\t\tnewState.hash += '&_suid='+newState.id;\n\t\t\t}\n\n\t\t\t// Create the Hashed URL\n\t\t\tnewState.hashedUrl = History.getFullUrl(newState.hash);\n\n\t\t\t// ----------------------------------------------------------------\n\n\t\t\t// Update the URL if we have a duplicate\n\t\t\tif ( (History.emulated.pushState || History.bugs.safariPoll) && History.hasUrlDuplicate(newState) ) {\n\t\t\t\tnewState.url = newState.hashedUrl;\n\t\t\t}\n\n\t\t\t// ----------------------------------------------------------------\n\n\t\t\t// Return\n\t\t\treturn newState;\n\t\t};\n\n\t\t/**\n\t\t * History.createStateObject(data,title,url)\n\t\t * Creates a object based on the data, title and url state params\n\t\t * @param {object} data\n\t\t * @param {string} title\n\t\t * @param {string} url\n\t\t * @return {object}\n\t\t */\n\t\tHistory.createStateObject = function(data,title,url){\n\t\t\t// Hashify\n\t\t\tvar State = {\n\t\t\t\t'data': data,\n\t\t\t\t'title': title,\n\t\t\t\t'url': url\n\t\t\t};\n\n\t\t\t// Expand the State\n\t\t\tState = History.normalizeState(State);\n\n\t\t\t// Return object\n\t\t\treturn State;\n\t\t};\n\n\t\t/**\n\t\t * History.getStateById(id)\n\t\t * Get a state by it's UID\n\t\t * @param {String} id\n\t\t */\n\t\tHistory.getStateById = function(id){\n\t\t\t// Prepare\n\t\t\tid = String(id);\n\n\t\t\t// Retrieve\n\t\t\tvar State = History.idToState[id] || History.store.idToState[id] || undefined;\n\n\t\t\t// Return State\n\t\t\treturn State;\n\t\t};\n\n\t\t/**\n\t\t * Get a State's String\n\t\t * @param {State} passedState\n\t\t */\n\t\tHistory.getStateString = function(passedState){\n\t\t\t// Prepare\n\t\t\tvar State, cleanedState, str;\n\n\t\t\t// Fetch\n\t\t\tState = History.normalizeState(passedState);\n\n\t\t\t// Clean\n\t\t\tcleanedState = {\n\t\t\t\tdata: State.data,\n\t\t\t\ttitle: passedState.title,\n\t\t\t\turl: passedState.url\n\t\t\t};\n\n\t\t\t// Fetch\n\t\t\tstr = JSON.stringify(cleanedState);\n\n\t\t\t// Return\n\t\t\treturn str;\n\t\t};\n\n\t\t/**\n\t\t * Get a State's ID\n\t\t * @param {State} passedState\n\t\t * @return {String} id\n\t\t */\n\t\tHistory.getStateId = function(passedState){\n\t\t\t// Prepare\n\t\t\tvar State, id;\n\n\t\t\t// Fetch\n\t\t\tState = History.normalizeState(passedState);\n\n\t\t\t// Fetch\n\t\t\tid = State.id;\n\n\t\t\t// Return\n\t\t\treturn id;\n\t\t};\n\n\t\t/**\n\t\t * History.getHashByState(State)\n\t\t * Creates a Hash for the State Object\n\t\t * @param {State} passedState\n\t\t * @return {String} hash\n\t\t */\n\t\tHistory.getHashByState = function(passedState){\n\t\t\t// Prepare\n\t\t\tvar State, hash;\n\n\t\t\t// Fetch\n\t\t\tState = History.normalizeState(passedState);\n\n\t\t\t// Hash\n\t\t\thash = State.hash;\n\n\t\t\t// Return\n\t\t\treturn hash;\n\t\t};\n\n\t\t/**\n\t\t * History.extractId(url_or_hash)\n\t\t * Get a State ID by it's URL or Hash\n\t\t * @param {string} url_or_hash\n\t\t * @return {string} id\n\t\t */\n\t\tHistory.extractId = function ( url_or_hash ) {\n\t\t\t// Prepare\n\t\t\tvar id,parts,url, tmp;\n\n\t\t\t// Extract\n\t\t\t\n\t\t\t// If the URL has a #, use the id from before the #\n\t\t\tif (url_or_hash.indexOf('#') != -1)\n\t\t\t{\n\t\t\t\ttmp = url_or_hash.split(\"#\")[0];\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\ttmp = url_or_hash;\n\t\t\t}\n\t\t\t\n\t\t\tparts = /(.*)\\&_suid=([0-9]+)$/.exec(tmp);\n\t\t\turl = parts ? (parts[1]||url_or_hash) : url_or_hash;\n\t\t\tid = parts ? String(parts[2]||'') : '';\n\n\t\t\t// Return\n\t\t\treturn id||false;\n\t\t};\n\n\t\t/**\n\t\t * History.isTraditionalAnchor\n\t\t * Checks to see if the url is a traditional anchor or not\n\t\t * @param {String} url_or_hash\n\t\t * @return {Boolean}\n\t\t */\n\t\tHistory.isTraditionalAnchor = function(url_or_hash){\n\t\t\t// Check\n\t\t\tvar isTraditional = !(/[\\/\\?\\.]/.test(url_or_hash));\n\n\t\t\t// Return\n\t\t\treturn isTraditional;\n\t\t};\n\n\t\t/**\n\t\t * History.extractState\n\t\t * Get a State by it's URL or Hash\n\t\t * @param {String} url_or_hash\n\t\t * @return {State|null}\n\t\t */\n\t\tHistory.extractState = function(url_or_hash,create){\n\t\t\t// Prepare\n\t\t\tvar State = null, id, url;\n\t\t\tcreate = create||false;\n\n\t\t\t// Fetch SUID\n\t\t\tid = History.extractId(url_or_hash);\n\t\t\tif ( id ) {\n\t\t\t\tState = History.getStateById(id);\n\t\t\t}\n\n\t\t\t// Fetch SUID returned no State\n\t\t\tif ( !State ) {\n\t\t\t\t// Fetch URL\n\t\t\t\turl = History.getFullUrl(url_or_hash);\n\n\t\t\t\t// Check URL\n\t\t\t\tid = History.getIdByUrl(url)||false;\n\t\t\t\tif ( id ) {\n\t\t\t\t\tState = History.getStateById(id);\n\t\t\t\t}\n\n\t\t\t\t// Create State\n\t\t\t\tif ( !State && create && !History.isTraditionalAnchor(url_or_hash) ) {\n\t\t\t\t\tState = History.createStateObject(null,null,url);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Return\n\t\t\treturn State;\n\t\t};\n\n\t\t/**\n\t\t * History.getIdByUrl()\n\t\t * Get a State ID by a State URL\n\t\t */\n\t\tHistory.getIdByUrl = function(url){\n\t\t\t// Fetch\n\t\t\tvar id = History.urlToId[url] || History.store.urlToId[url] || undefined;\n\n\t\t\t// Return\n\t\t\treturn id;\n\t\t};\n\n\t\t/**\n\t\t * History.getLastSavedState()\n\t\t * Get an object containing the data, title and url of the current state\n\t\t * @return {Object} State\n\t\t */\n\t\tHistory.getLastSavedState = function(){\n\t\t\treturn History.savedStates[History.savedStates.length-1]||undefined;\n\t\t};\n\n\t\t/**\n\t\t * History.getLastStoredState()\n\t\t * Get an object containing the data, title and url of the current state\n\t\t * @return {Object} State\n\t\t */\n\t\tHistory.getLastStoredState = function(){\n\t\t\treturn History.storedStates[History.storedStates.length-1]||undefined;\n\t\t};\n\n\t\t/**\n\t\t * History.hasUrlDuplicate\n\t\t * Checks if a Url will have a url conflict\n\t\t * @param {Object} newState\n\t\t * @return {Boolean} hasDuplicate\n\t\t */\n\t\tHistory.hasUrlDuplicate = function(newState) {\n\t\t\t// Prepare\n\t\t\tvar hasDuplicate = false,\n\t\t\t\toldState;\n\n\t\t\t// Fetch\n\t\t\toldState = History.extractState(newState.url);\n\n\t\t\t// Check\n\t\t\thasDuplicate = oldState && oldState.id !== newState.id;\n\n\t\t\t// Return\n\t\t\treturn hasDuplicate;\n\t\t};\n\n\t\t/**\n\t\t * History.storeState\n\t\t * Store a State\n\t\t * @param {Object} newState\n\t\t * @return {Object} newState\n\t\t */\n\t\tHistory.storeState = function(newState){\n\t\t\t// Store the State\n\t\t\tHistory.urlToId[newState.url] = newState.id;\n\n\t\t\t// Push the State\n\t\t\tHistory.storedStates.push(History.cloneObject(newState));\n\n\t\t\t// Return newState\n\t\t\treturn newState;\n\t\t};\n\n\t\t/**\n\t\t * History.isLastSavedState(newState)\n\t\t * Tests to see if the state is the last state\n\t\t * @param {Object} newState\n\t\t * @return {boolean} isLast\n\t\t */\n\t\tHistory.isLastSavedState = function(newState){\n\t\t\t// Prepare\n\t\t\tvar isLast = false,\n\t\t\t\tnewId, oldState, oldId;\n\n\t\t\t// Check\n\t\t\tif ( History.savedStates.length ) {\n\t\t\t\tnewId = newState.id;\n\t\t\t\toldState = History.getLastSavedState();\n\t\t\t\toldId = oldState.id;\n\n\t\t\t\t// Check\n\t\t\t\tisLast = (newId === oldId);\n\t\t\t}\n\n\t\t\t// Return\n\t\t\treturn isLast;\n\t\t};\n\n\t\t/**\n\t\t * History.saveState\n\t\t * Push a State\n\t\t * @param {Object} newState\n\t\t * @return {boolean} changed\n\t\t */\n\t\tHistory.saveState = function(newState){\n\t\t\t// Check Hash\n\t\t\tif ( History.isLastSavedState(newState) ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// Push the State\n\t\t\tHistory.savedStates.push(History.cloneObject(newState));\n\n\t\t\t// Return true\n\t\t\treturn true;\n\t\t};\n\n\t\t/**\n\t\t * History.getStateByIndex()\n\t\t * Gets a state by the index\n\t\t * @param {integer} index\n\t\t * @return {Object}\n\t\t */\n\t\tHistory.getStateByIndex = function(index){\n\t\t\t// Prepare\n\t\t\tvar State = null;\n\n\t\t\t// Handle\n\t\t\tif ( typeof index === 'undefined' ) {\n\t\t\t\t// Get the last inserted\n\t\t\t\tState = History.savedStates[History.savedStates.length-1];\n\t\t\t}\n\t\t\telse if ( index < 0 ) {\n\t\t\t\t// Get from the end\n\t\t\t\tState = History.savedStates[History.savedStates.length+index];\n\t\t\t}\n\t\t\telse {\n\t\t\t\t// Get from the beginning\n\t\t\t\tState = History.savedStates[index];\n\t\t\t}\n\n\t\t\t// Return State\n\t\t\treturn State;\n\t\t};\n\t\t\n\t\t/**\n\t\t * History.getCurrentIndex()\n\t\t * Gets the current index\n\t\t * @return (integer)\n\t\t*/\n\t\tHistory.getCurrentIndex = function(){\n\t\t\t// Prepare\n\t\t\tvar index = null;\n\t\t\t\n\t\t\t// No states saved\n\t\t\tif(History.savedStates.length < 1) {\n\t\t\t\tindex = 0;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tindex = History.savedStates.length-1;\n\t\t\t}\n\t\t\treturn index;\n\t\t};\n\n\t\t// ====================================================================\n\t\t// Hash Helpers\n\n\t\t/**\n\t\t * History.getHash()\n\t\t * @param {Location=} location\n\t\t * Gets the current document hash\n\t\t * Note: unlike location.hash, this is guaranteed to return the escaped hash in all browsers\n\t\t * @return {string}\n\t\t */\n\t\tHistory.getHash = function(doc){\n\t\t\tvar url = History.getLocationHref(doc),\n\t\t\t\thash;\n\t\t\thash = History.getHashByUrl(url);\n\t\t\treturn hash;\n\t\t};\n\n\t\t/**\n\t\t * History.unescapeHash()\n\t\t * normalize and Unescape a Hash\n\t\t * @param {String} hash\n\t\t * @return {string}\n\t\t */\n\t\tHistory.unescapeHash = function(hash){\n\t\t\t// Prepare\n\t\t\tvar result = History.normalizeHash(hash);\n\n\t\t\t// Unescape hash\n\t\t\tresult = decodeURIComponent(result);\n\n\t\t\t// Return result\n\t\t\treturn result;\n\t\t};\n\n\t\t/**\n\t\t * History.normalizeHash()\n\t\t * normalize a hash across browsers\n\t\t * @return {string}\n\t\t */\n\t\tHistory.normalizeHash = function(hash){\n\t\t\t// Prepare\n\t\t\tvar result = hash.replace(/[^#]*#/,'').replace(/#.*/, '');\n\n\t\t\t// Return result\n\t\t\treturn result;\n\t\t};\n\n\t\t/**\n\t\t * History.setHash(hash)\n\t\t * Sets the document hash\n\t\t * @param {string} hash\n\t\t * @return {History}\n\t\t */\n\t\tHistory.setHash = function(hash,queue){\n\t\t\t// Prepare\n\t\t\tvar State, pageUrl;\n\n\t\t\t// Handle Queueing\n\t\t\tif ( queue !== false && History.busy() ) {\n\t\t\t\t// Wait + Push to Queue\n\t\t\t\t//History.debug('History.setHash: we must wait', arguments);\n\t\t\t\tHistory.pushQueue({\n\t\t\t\t\tscope: History,\n\t\t\t\t\tcallback: History.setHash,\n\t\t\t\t\targs: arguments,\n\t\t\t\t\tqueue: queue\n\t\t\t\t});\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// Log\n\t\t\t//History.debug('History.setHash: called',hash);\n\n\t\t\t// Make Busy + Continue\n\t\t\tHistory.busy(true);\n\n\t\t\t// Check if hash is a state\n\t\t\tState = History.extractState(hash,true);\n\t\t\tif ( State && !History.emulated.pushState ) {\n\t\t\t\t// Hash is a state so skip the setHash\n\t\t\t\t//History.debug('History.setHash: Hash is a state so skipping the hash set with a direct pushState call',arguments);\n\n\t\t\t\t// PushState\n\t\t\t\tHistory.pushState(State.data,State.title,State.url,false);\n\t\t\t}\n\t\t\telse if ( History.getHash() !== hash ) {\n\t\t\t\t// Hash is a proper hash, so apply it\n\n\t\t\t\t// Handle browser bugs\n\t\t\t\tif ( History.bugs.setHash ) {\n\t\t\t\t\t// Fix Safari Bug https://bugs.webkit.org/show_bug.cgi?id=56249\n\n\t\t\t\t\t// Fetch the base page\n\t\t\t\t\tpageUrl = History.getPageUrl();\n\n\t\t\t\t\t// Safari hash apply\n\t\t\t\t\tHistory.pushState(null,null,pageUrl+'#'+hash,false);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\t// Normal hash apply\n\t\t\t\t\tdocument.location.hash = hash;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Chain\n\t\t\treturn History;\n\t\t};\n\n\t\t/**\n\t\t * History.escape()\n\t\t * normalize and Escape a Hash\n\t\t * @return {string}\n\t\t */\n\t\tHistory.escapeHash = function(hash){\n\t\t\t// Prepare\n\t\t\tvar result = History.normalizeHash(hash);\n\n\t\t\t// Escape hash\n\t\t\tresult = window.encodeURIComponent(result);\n\n\t\t\t// IE6 Escape Bug\n\t\t\tif ( !History.bugs.hashEscape ) {\n\t\t\t\t// Restore common parts\n\t\t\t\tresult = result\n\t\t\t\t\t.replace(/\\%21/g,'!')\n\t\t\t\t\t.replace(/\\%26/g,'&')\n\t\t\t\t\t.replace(/\\%3D/g,'=')\n\t\t\t\t\t.replace(/\\%3F/g,'?');\n\t\t\t}\n\n\t\t\t// Return result\n\t\t\treturn result;\n\t\t};\n\n\t\t/**\n\t\t * History.getHashByUrl(url)\n\t\t * Extracts the Hash from a URL\n\t\t * @param {string} url\n\t\t * @return {string} url\n\t\t */\n\t\tHistory.getHashByUrl = function(url){\n\t\t\t// Extract the hash\n\t\t\tvar hash = String(url)\n\t\t\t\t.replace(/([^#]*)#?([^#]*)#?(.*)/, '$2')\n\t\t\t\t;\n\n\t\t\t// Unescape hash\n\t\t\thash = History.unescapeHash(hash);\n\n\t\t\t// Return hash\n\t\t\treturn hash;\n\t\t};\n\n\t\t/**\n\t\t * History.setTitle(title)\n\t\t * Applies the title to the document\n\t\t * @param {State} newState\n\t\t * @return {Boolean}\n\t\t */\n\t\tHistory.setTitle = function(newState){\n\t\t\t// Prepare\n\t\t\tvar title = newState.title,\n\t\t\t\tfirstState;\n\n\t\t\t// Initial\n\t\t\tif ( !title ) {\n\t\t\t\tfirstState = History.getStateByIndex(0);\n\t\t\t\tif ( firstState && firstState.url === newState.url ) {\n\t\t\t\t\ttitle = firstState.title||History.options.initialTitle;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Apply\n\t\t\ttry {\n\t\t\t\tdocument.getElementsByTagName('title')[0].innerHTML = title.replace('<','<').replace('>','>').replace(' & ',' & ');\n\t\t\t}\n\t\t\tcatch ( Exception ) { }\n\t\t\tdocument.title = title;\n\n\t\t\t// Chain\n\t\t\treturn History;\n\t\t};\n\n\n\t\t// ====================================================================\n\t\t// Queueing\n\n\t\t/**\n\t\t * History.queues\n\t\t * The list of queues to use\n\t\t * First In, First Out\n\t\t */\n\t\tHistory.queues = [];\n\n\t\t/**\n\t\t * History.busy(value)\n\t\t * @param {boolean} value [optional]\n\t\t * @return {boolean} busy\n\t\t */\n\t\tHistory.busy = function(value){\n\t\t\t// Apply\n\t\t\tif ( typeof value !== 'undefined' ) {\n\t\t\t\t//History.debug('History.busy: changing ['+(History.busy.flag||false)+'] to ['+(value||false)+']', History.queues.length);\n\t\t\t\tHistory.busy.flag = value;\n\t\t\t}\n\t\t\t// Default\n\t\t\telse if ( typeof History.busy.flag === 'undefined' ) {\n\t\t\t\tHistory.busy.flag = false;\n\t\t\t}\n\n\t\t\t// Queue\n\t\t\tif ( !History.busy.flag ) {\n\t\t\t\t// Execute the next item in the queue\n\t\t\t\tclearTimeout(History.busy.timeout);\n\t\t\t\tvar fireNext = function(){\n\t\t\t\t\tvar i, queue, item;\n\t\t\t\t\tif ( History.busy.flag ) return;\n\t\t\t\t\tfor ( i=History.queues.length-1; i >= 0; --i ) {\n\t\t\t\t\t\tqueue = History.queues[i];\n\t\t\t\t\t\tif ( queue.length === 0 ) continue;\n\t\t\t\t\t\titem = queue.shift();\n\t\t\t\t\t\tHistory.fireQueueItem(item);\n\t\t\t\t\t\tHistory.busy.timeout = setTimeout(fireNext,History.options.busyDelay);\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\tHistory.busy.timeout = setTimeout(fireNext,History.options.busyDelay);\n\t\t\t}\n\n\t\t\t// Return\n\t\t\treturn History.busy.flag;\n\t\t};\n\n\t\t/**\n\t\t * History.busy.flag\n\t\t */\n\t\tHistory.busy.flag = false;\n\n\t\t/**\n\t\t * History.fireQueueItem(item)\n\t\t * Fire a Queue Item\n\t\t * @param {Object} item\n\t\t * @return {Mixed} result\n\t\t */\n\t\tHistory.fireQueueItem = function(item){\n\t\t\treturn item.callback.apply(item.scope||History,item.args||[]);\n\t\t};\n\n\t\t/**\n\t\t * History.pushQueue(callback,args)\n\t\t * Add an item to the queue\n\t\t * @param {Object} item [scope,callback,args,queue]\n\t\t */\n\t\tHistory.pushQueue = function(item){\n\t\t\t// Prepare the queue\n\t\t\tHistory.queues[item.queue||0] = History.queues[item.queue||0]||[];\n\n\t\t\t// Add to the queue\n\t\t\tHistory.queues[item.queue||0].push(item);\n\n\t\t\t// Chain\n\t\t\treturn History;\n\t\t};\n\n\t\t/**\n\t\t * History.queue (item,queue), (func,queue), (func), (item)\n\t\t * Either firs the item now if not busy, or adds it to the queue\n\t\t */\n\t\tHistory.queue = function(item,queue){\n\t\t\t// Prepare\n\t\t\tif ( typeof item === 'function' ) {\n\t\t\t\titem = {\n\t\t\t\t\tcallback: item\n\t\t\t\t};\n\t\t\t}\n\t\t\tif ( typeof queue !== 'undefined' ) {\n\t\t\t\titem.queue = queue;\n\t\t\t}\n\n\t\t\t// Handle\n\t\t\tif ( History.busy() ) {\n\t\t\t\tHistory.pushQueue(item);\n\t\t\t} else {\n\t\t\t\tHistory.fireQueueItem(item);\n\t\t\t}\n\n\t\t\t// Chain\n\t\t\treturn History;\n\t\t};\n\n\t\t/**\n\t\t * History.clearQueue()\n\t\t * Clears the Queue\n\t\t */\n\t\tHistory.clearQueue = function(){\n\t\t\tHistory.busy.flag = false;\n\t\t\tHistory.queues = [];\n\t\t\treturn History;\n\t\t};\n\n\n\t\t// ====================================================================\n\t\t// IE Bug Fix\n\n\t\t/**\n\t\t * History.stateChanged\n\t\t * States whether or not the state has changed since the last double check was initialised\n\t\t */\n\t\tHistory.stateChanged = false;\n\n\t\t/**\n\t\t * History.doubleChecker\n\t\t * Contains the timeout used for the double checks\n\t\t */\n\t\tHistory.doubleChecker = false;\n\n\t\t/**\n\t\t * History.doubleCheckComplete()\n\t\t * Complete a double check\n\t\t * @return {History}\n\t\t */\n\t\tHistory.doubleCheckComplete = function(){\n\t\t\t// Update\n\t\t\tHistory.stateChanged = true;\n\n\t\t\t// Clear\n\t\t\tHistory.doubleCheckClear();\n\n\t\t\t// Chain\n\t\t\treturn History;\n\t\t};\n\n\t\t/**\n\t\t * History.doubleCheckClear()\n\t\t * Clear a double check\n\t\t * @return {History}\n\t\t */\n\t\tHistory.doubleCheckClear = function(){\n\t\t\t// Clear\n\t\t\tif ( History.doubleChecker ) {\n\t\t\t\tclearTimeout(History.doubleChecker);\n\t\t\t\tHistory.doubleChecker = false;\n\t\t\t}\n\n\t\t\t// Chain\n\t\t\treturn History;\n\t\t};\n\n\t\t/**\n\t\t * History.doubleCheck()\n\t\t * Create a double check\n\t\t * @return {History}\n\t\t */\n\t\tHistory.doubleCheck = function(tryAgain){\n\t\t\t// Reset\n\t\t\tHistory.stateChanged = false;\n\t\t\tHistory.doubleCheckClear();\n\n\t\t\t// Fix IE6,IE7 bug where calling history.back or history.forward does not actually change the hash (whereas doing it manually does)\n\t\t\t// Fix Safari 5 bug where sometimes the state does not change: https://bugs.webkit.org/show_bug.cgi?id=42940\n\t\t\tif ( History.bugs.ieDoubleCheck ) {\n\t\t\t\t// Apply Check\n\t\t\t\tHistory.doubleChecker = setTimeout(\n\t\t\t\t\tfunction(){\n\t\t\t\t\t\tHistory.doubleCheckClear();\n\t\t\t\t\t\tif ( !History.stateChanged ) {\n\t\t\t\t\t\t\t//History.debug('History.doubleCheck: State has not yet changed, trying again', arguments);\n\t\t\t\t\t\t\t// Re-Attempt\n\t\t\t\t\t\t\ttryAgain();\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t},\n\t\t\t\t\tHistory.options.doubleCheckInterval\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Chain\n\t\t\treturn History;\n\t\t};\n\n\n\t\t// ====================================================================\n\t\t// Safari Bug Fix\n\n\t\t/**\n\t\t * History.safariStatePoll()\n\t\t * Poll the current state\n\t\t * @return {History}\n\t\t */\n\t\tHistory.safariStatePoll = function(){\n\t\t\t// Poll the URL\n\n\t\t\t// Get the Last State which has the new URL\n\t\t\tvar\n\t\t\t\turlState = History.extractState(History.getLocationHref()),\n\t\t\t\tnewState;\n\n\t\t\t// Check for a difference\n\t\t\tif ( !History.isLastSavedState(urlState) ) {\n\t\t\t\tnewState = urlState;\n\t\t\t}\n\t\t\telse {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Check if we have a state with that url\n\t\t\t// If not create it\n\t\t\tif ( !newState ) {\n\t\t\t\t//History.debug('History.safariStatePoll: new');\n\t\t\t\tnewState = History.createStateObject();\n\t\t\t}\n\n\t\t\t// Apply the New State\n\t\t\t//History.debug('History.safariStatePoll: trigger');\n\t\t\tHistory.Adapter.trigger(window,'popstate');\n\n\t\t\t// Chain\n\t\t\treturn History;\n\t\t};\n\n\n\t\t// ====================================================================\n\t\t// State Aliases\n\n\t\t/**\n\t\t * History.back(queue)\n\t\t * Send the browser history back one item\n\t\t * @param {Integer} queue [optional]\n\t\t */\n\t\tHistory.back = function(queue){\n\t\t\t//History.debug('History.back: called', arguments);\n\n\t\t\t// Handle Queueing\n\t\t\tif ( queue !== false && History.busy() ) {\n\t\t\t\t// Wait + Push to Queue\n\t\t\t\t//History.debug('History.back: we must wait', arguments);\n\t\t\t\tHistory.pushQueue({\n\t\t\t\t\tscope: History,\n\t\t\t\t\tcallback: History.back,\n\t\t\t\t\targs: arguments,\n\t\t\t\t\tqueue: queue\n\t\t\t\t});\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// Make Busy + Continue\n\t\t\tHistory.busy(true);\n\n\t\t\t// Fix certain browser bugs that prevent the state from changing\n\t\t\tHistory.doubleCheck(function(){\n\t\t\t\tHistory.back(false);\n\t\t\t});\n\n\t\t\t// Go back\n\t\t\thistory.go(-1);\n\n\t\t\t// End back closure\n\t\t\treturn true;\n\t\t};\n\n\t\t/**\n\t\t * History.forward(queue)\n\t\t * Send the browser history forward one item\n\t\t * @param {Integer} queue [optional]\n\t\t */\n\t\tHistory.forward = function(queue){\n\t\t\t//History.debug('History.forward: called', arguments);\n\n\t\t\t// Handle Queueing\n\t\t\tif ( queue !== false && History.busy() ) {\n\t\t\t\t// Wait + Push to Queue\n\t\t\t\t//History.debug('History.forward: we must wait', arguments);\n\t\t\t\tHistory.pushQueue({\n\t\t\t\t\tscope: History,\n\t\t\t\t\tcallback: History.forward,\n\t\t\t\t\targs: arguments,\n\t\t\t\t\tqueue: queue\n\t\t\t\t});\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// Make Busy + Continue\n\t\t\tHistory.busy(true);\n\n\t\t\t// Fix certain browser bugs that prevent the state from changing\n\t\t\tHistory.doubleCheck(function(){\n\t\t\t\tHistory.forward(false);\n\t\t\t});\n\n\t\t\t// Go forward\n\t\t\thistory.go(1);\n\n\t\t\t// End forward closure\n\t\t\treturn true;\n\t\t};\n\n\t\t/**\n\t\t * History.go(index,queue)\n\t\t * Send the browser history back or forward index times\n\t\t * @param {Integer} queue [optional]\n\t\t */\n\t\tHistory.go = function(index,queue){\n\t\t\t//History.debug('History.go: called', arguments);\n\n\t\t\t// Prepare\n\t\t\tvar i;\n\n\t\t\t// Handle\n\t\t\tif ( index > 0 ) {\n\t\t\t\t// Forward\n\t\t\t\tfor ( i=1; i<=index; ++i ) {\n\t\t\t\t\tHistory.forward(queue);\n\t\t\t\t}\n\t\t\t}\n\t\t\telse if ( index < 0 ) {\n\t\t\t\t// Backward\n\t\t\t\tfor ( i=-1; i>=index; --i ) {\n\t\t\t\t\tHistory.back(queue);\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthrow new Error('History.go: History.go requires a positive or negative integer passed.');\n\t\t\t}\n\n\t\t\t// Chain\n\t\t\treturn History;\n\t\t};\n\n\n\t\t// ====================================================================\n\t\t// HTML5 State Support\n\n\t\t// Non-Native pushState Implementation\n\t\tif ( History.emulated.pushState ) {\n\t\t\t/*\n\t\t\t * Provide Skeleton for HTML4 Browsers\n\t\t\t */\n\n\t\t\t// Prepare\n\t\t\tvar emptyFunction = function(){};\n\t\t\tHistory.pushState = History.pushState||emptyFunction;\n\t\t\tHistory.replaceState = History.replaceState||emptyFunction;\n\t\t} // History.emulated.pushState\n\n\t\t// Native pushState Implementation\n\t\telse {\n\t\t\t/*\n\t\t\t * Use native HTML5 History API Implementation\n\t\t\t */\n\n\t\t\t/**\n\t\t\t * History.onPopState(event,extra)\n\t\t\t * Refresh the Current State\n\t\t\t */\n\t\t\tHistory.onPopState = function(event,extra){\n\t\t\t\t// Prepare\n\t\t\t\tvar stateId = false, newState = false, currentHash, currentState;\n\n\t\t\t\t// Reset the double check\n\t\t\t\tHistory.doubleCheckComplete();\n\n\t\t\t\t// Check for a Hash, and handle apporiatly\n\t\t\t\tcurrentHash = History.getHash();\n\t\t\t\tif ( currentHash ) {\n\t\t\t\t\t// Expand Hash\n\t\t\t\t\tcurrentState = History.extractState(currentHash||History.getLocationHref(),true);\n\t\t\t\t\tif ( currentState ) {\n\t\t\t\t\t\t// We were able to parse it, it must be a State!\n\t\t\t\t\t\t// Let's forward to replaceState\n\t\t\t\t\t\t//History.debug('History.onPopState: state anchor', currentHash, currentState);\n\t\t\t\t\t\tHistory.replaceState(currentState.data, currentState.title, currentState.url, false);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\t// Traditional Anchor\n\t\t\t\t\t\t//History.debug('History.onPopState: traditional anchor', currentHash);\n\t\t\t\t\t\tHistory.Adapter.trigger(window,'anchorchange');\n\t\t\t\t\t\tHistory.busy(false);\n\t\t\t\t\t}\n\n\t\t\t\t\t// We don't care for hashes\n\t\t\t\t\tHistory.expectedStateId = false;\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\t// Ensure\n\t\t\t\tstateId = History.Adapter.extractEventData('state',event,extra) || false;\n\n\t\t\t\t// Fetch State\n\t\t\t\tif ( stateId ) {\n\t\t\t\t\t// Vanilla: Back/forward button was used\n\t\t\t\t\tnewState = History.getStateById(stateId);\n\t\t\t\t}\n\t\t\t\telse if ( History.expectedStateId ) {\n\t\t\t\t\t// Vanilla: A new state was pushed, and popstate was called manually\n\t\t\t\t\tnewState = History.getStateById(History.expectedStateId);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\t// Initial State\n\t\t\t\t\tnewState = History.extractState(History.getLocationHref());\n\t\t\t\t}\n\n\t\t\t\t// The State did not exist in our store\n\t\t\t\tif ( !newState ) {\n\t\t\t\t\t// Regenerate the State\n\t\t\t\t\tnewState = History.createStateObject(null,null,History.getLocationHref());\n\t\t\t\t}\n\n\t\t\t\t// Clean\n\t\t\t\tHistory.expectedStateId = false;\n\n\t\t\t\t// Check if we are the same state\n\t\t\t\tif ( History.isLastSavedState(newState) ) {\n\t\t\t\t\t// There has been no change (just the page's hash has finally propagated)\n\t\t\t\t\t//History.debug('History.onPopState: no change', newState, History.savedStates);\n\t\t\t\t\tHistory.busy(false);\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\t// Store the State\n\t\t\t\tHistory.storeState(newState);\n\t\t\t\tHistory.saveState(newState);\n\n\t\t\t\t// Force update of the title\n\t\t\t\tHistory.setTitle(newState);\n\n\t\t\t\t// Fire Our Event\n\t\t\t\tHistory.Adapter.trigger(window,'statechange');\n\t\t\t\tHistory.busy(false);\n\n\t\t\t\t// Return true\n\t\t\t\treturn true;\n\t\t\t};\n\t\t\tHistory.Adapter.bind(window,'popstate',History.onPopState);\n\n\t\t\t/**\n\t\t\t * History.pushState(data,title,url)\n\t\t\t * Add a new State to the history object, become it, and trigger onpopstate\n\t\t\t * We have to trigger for HTML4 compatibility\n\t\t\t * @param {object} data\n\t\t\t * @param {string} title\n\t\t\t * @param {string} url\n\t\t\t * @return {true}\n\t\t\t */\n\t\t\tHistory.pushState = function(data,title,url,queue){\n\t\t\t\t//History.debug('History.pushState: called', arguments);\n\n\t\t\t\t// Check the State\n\t\t\t\tif ( History.getHashByUrl(url) && History.emulated.pushState ) {\n\t\t\t\t\tthrow new Error('History.js does not support states with fragement-identifiers (hashes/anchors).');\n\t\t\t\t}\n\n\t\t\t\t// Handle Queueing\n\t\t\t\tif ( queue !== false && History.busy() ) {\n\t\t\t\t\t// Wait + Push to Queue\n\t\t\t\t\t//History.debug('History.pushState: we must wait', arguments);\n\t\t\t\t\tHistory.pushQueue({\n\t\t\t\t\t\tscope: History,\n\t\t\t\t\t\tcallback: History.pushState,\n\t\t\t\t\t\targs: arguments,\n\t\t\t\t\t\tqueue: queue\n\t\t\t\t\t});\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\t// Make Busy + Continue\n\t\t\t\tHistory.busy(true);\n\n\t\t\t\t// Create the newState\n\t\t\t\tvar newState = History.createStateObject(data,title,url);\n\n\t\t\t\t// Check it\n\t\t\t\tif ( History.isLastSavedState(newState) ) {\n\t\t\t\t\t// Won't be a change\n\t\t\t\t\tHistory.busy(false);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\t// Store the newState\n\t\t\t\t\tHistory.storeState(newState);\n\t\t\t\t\tHistory.expectedStateId = newState.id;\n\n\t\t\t\t\t// Push the newState\n\t\t\t\t\thistory.pushState(newState.id,newState.title,newState.url);\n\n\t\t\t\t\t// Fire HTML5 Event\n\t\t\t\t\tHistory.Adapter.trigger(window,'popstate');\n\t\t\t\t}\n\n\t\t\t\t// End pushState closure\n\t\t\t\treturn true;\n\t\t\t};\n\n\t\t\t/**\n\t\t\t * History.replaceState(data,title,url)\n\t\t\t * Replace the State and trigger onpopstate\n\t\t\t * We have to trigger for HTML4 compatibility\n\t\t\t * @param {object} data\n\t\t\t * @param {string} title\n\t\t\t * @param {string} url\n\t\t\t * @return {true}\n\t\t\t */\n\t\t\tHistory.replaceState = function(data,title,url,queue){\n\t\t\t\t//History.debug('History.replaceState: called', arguments);\n\n\t\t\t\t// Check the State\n\t\t\t\tif ( History.getHashByUrl(url) && History.emulated.pushState ) {\n\t\t\t\t\tthrow new Error('History.js does not support states with fragement-identifiers (hashes/anchors).');\n\t\t\t\t}\n\n\t\t\t\t// Handle Queueing\n\t\t\t\tif ( queue !== false && History.busy() ) {\n\t\t\t\t\t// Wait + Push to Queue\n\t\t\t\t\t//History.debug('History.replaceState: we must wait', arguments);\n\t\t\t\t\tHistory.pushQueue({\n\t\t\t\t\t\tscope: History,\n\t\t\t\t\t\tcallback: History.replaceState,\n\t\t\t\t\t\targs: arguments,\n\t\t\t\t\t\tqueue: queue\n\t\t\t\t\t});\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\t// Make Busy + Continue\n\t\t\t\tHistory.busy(true);\n\n\t\t\t\t// Create the newState\n\t\t\t\tvar newState = History.createStateObject(data,title,url);\n\n\t\t\t\t// Check it\n\t\t\t\tif ( History.isLastSavedState(newState) ) {\n\t\t\t\t\t// Won't be a change\n\t\t\t\t\tHistory.busy(false);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\t// Store the newState\n\t\t\t\t\tHistory.storeState(newState);\n\t\t\t\t\tHistory.expectedStateId = newState.id;\n\n\t\t\t\t\t// Push the newState\n\t\t\t\t\thistory.replaceState(newState.id,newState.title,newState.url);\n\n\t\t\t\t\t// Fire HTML5 Event\n\t\t\t\t\tHistory.Adapter.trigger(window,'popstate');\n\t\t\t\t}\n\n\t\t\t\t// End replaceState closure\n\t\t\t\treturn true;\n\t\t\t};\n\n\t\t} // !History.emulated.pushState\n\n\n\t\t// ====================================================================\n\t\t// Initialise\n\n\t\t/**\n\t\t * Load the Store\n\t\t */\n\t\tif ( sessionStorage ) {\n\t\t\t// Fetch\n\t\t\ttry {\n\t\t\t\tHistory.store = JSON.parse(sessionStorage.getItem('History.store'))||{};\n\t\t\t}\n\t\t\tcatch ( err ) {\n\t\t\t\tHistory.store = {};\n\t\t\t}\n\n\t\t\t// Normalize\n\t\t\tHistory.normalizeStore();\n\t\t}\n\t\telse {\n\t\t\t// Default Load\n\t\t\tHistory.store = {};\n\t\t\tHistory.normalizeStore();\n\t\t}\n\n\t\t/**\n\t\t * Clear Intervals on exit to prevent memory leaks\n\t\t */\n\t\tHistory.Adapter.bind(window,\"unload\",History.clearAllIntervals);\n\n\t\t/**\n\t\t * Create the initial State\n\t\t */\n\t\tHistory.saveState(History.storeState(History.extractState(History.getLocationHref(),true)));\n\n\t\t/**\n\t\t * Bind for Saving Store\n\t\t */\n\t\tif ( sessionStorage ) {\n\t\t\t// When the page is closed\n\t\t\tHistory.onUnload = function(){\n\t\t\t\t// Prepare\n\t\t\t\tvar\tcurrentStore, item, currentStoreString;\n\n\t\t\t\t// Fetch\n\t\t\t\ttry {\n\t\t\t\t\tcurrentStore = JSON.parse(sessionStorage.getItem('History.store'))||{};\n\t\t\t\t}\n\t\t\t\tcatch ( err ) {\n\t\t\t\t\tcurrentStore = {};\n\t\t\t\t}\n\n\t\t\t\t// Ensure\n\t\t\t\tcurrentStore.idToState = currentStore.idToState || {};\n\t\t\t\tcurrentStore.urlToId = currentStore.urlToId || {};\n\t\t\t\tcurrentStore.stateToId = currentStore.stateToId || {};\n\n\t\t\t\t// Sync\n\t\t\t\tfor ( item in History.idToState ) {\n\t\t\t\t\tif ( !History.idToState.hasOwnProperty(item) ) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tcurrentStore.idToState[item] = History.idToState[item];\n\t\t\t\t}\n\t\t\t\tfor ( item in History.urlToId ) {\n\t\t\t\t\tif ( !History.urlToId.hasOwnProperty(item) ) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tcurrentStore.urlToId[item] = History.urlToId[item];\n\t\t\t\t}\n\t\t\t\tfor ( item in History.stateToId ) {\n\t\t\t\t\tif ( !History.stateToId.hasOwnProperty(item) ) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tcurrentStore.stateToId[item] = History.stateToId[item];\n\t\t\t\t}\n\n\t\t\t\t// Update\n\t\t\t\tHistory.store = currentStore;\n\t\t\t\tHistory.normalizeStore();\n\n\t\t\t\t// In Safari, going into Private Browsing mode causes the\n\t\t\t\t// Session Storage object to still exist but if you try and use\n\t\t\t\t// or set any property/function of it it throws the exception\n\t\t\t\t// \"QUOTA_EXCEEDED_ERR: DOM Exception 22: An attempt was made to\n\t\t\t\t// add something to storage that exceeded the quota.\" infinitely\n\t\t\t\t// every second.\n\t\t\t\tcurrentStoreString = JSON.stringify(currentStore);\n\t\t\t\ttry {\n\t\t\t\t\t// Store\n\t\t\t\t\tsessionStorage.setItem('History.store', currentStoreString);\n\t\t\t\t}\n\t\t\t\tcatch (e) {\n\t\t\t\t\tif (e.code === DOMException.QUOTA_EXCEEDED_ERR) {\n\t\t\t\t\t\tif (sessionStorage.length) {\n\t\t\t\t\t\t\t// Workaround for a bug seen on iPads. Sometimes the quota exceeded error comes up and simply\n\t\t\t\t\t\t\t// removing/resetting the storage can work.\n\t\t\t\t\t\t\tsessionStorage.removeItem('History.store');\n\t\t\t\t\t\t\tsessionStorage.setItem('History.store', currentStoreString);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Otherwise, we're probably private browsing in Safari, so we'll ignore the exception.\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthrow e;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\n\t\t\t// For Internet Explorer\n\t\t\tHistory.intervalList.push(setInterval(History.onUnload,History.options.storeInterval));\n\n\t\t\t// For Other Browsers\n\t\t\tHistory.Adapter.bind(window,'beforeunload',History.onUnload);\n\t\t\tHistory.Adapter.bind(window,'unload',History.onUnload);\n\n\t\t\t// Both are enabled for consistency\n\t\t}\n\n\t\t// Non-Native pushState Implementation\n\t\tif ( !History.emulated.pushState ) {\n\t\t\t// Be aware, the following is only for native pushState implementations\n\t\t\t// If you are wanting to include something for all browsers\n\t\t\t// Then include it above this if block\n\n\t\t\t/**\n\t\t\t * Setup Safari Fix\n\t\t\t */\n\t\t\tif ( History.bugs.safariPoll ) {\n\t\t\t\tHistory.intervalList.push(setInterval(History.safariStatePoll, History.options.safariPollInterval));\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * Ensure Cross Browser Compatibility\n\t\t\t */\n\t\t\tif ( navigator.vendor === 'Apple Computer, Inc.' || (navigator.appCodeName||'') === 'Mozilla' ) {\n\t\t\t\t/**\n\t\t\t\t * Fix Safari HashChange Issue\n\t\t\t\t */\n\n\t\t\t\t// Setup Alias\n\t\t\t\tHistory.Adapter.bind(window,'hashchange',function(){\n\t\t\t\t\tHistory.Adapter.trigger(window,'popstate');\n\t\t\t\t});\n\n\t\t\t\t// Initialise Alias\n\t\t\t\tif ( History.getHash() ) {\n\t\t\t\t\tHistory.Adapter.onDomLoad(function(){\n\t\t\t\t\t\tHistory.Adapter.trigger(window,'hashchange');\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t} // !History.emulated.pushState\n\n\n\t}; // History.initCore\n\n\t// Try to Initialise History\n\tif (!History.options || !History.options.delayInit) {\n\t\tHistory.init();\n\t}\n\n})(window);\n","/*! - v - 2015-02-24 */\"use strict\";!function(){if(\"function\"!=typeof window.getMatchedCSSRules){var ELEMENT_RE=/[\\w-]+/g,ID_RE=/#[\\w-]+/g,CLASS_RE=/\\.[\\w-]+/g,ATTR_RE=/\\[[^\\]]+\\]/g,PSEUDO_CLASSES_RE=/\\:(?!not)[\\w-]+(\\(.*\\))?/g,PSEUDO_ELEMENTS_RE=/\\:\\:?(after|before|first-letter|first-line|selection)/g,toArray=function(list){for(var items=[],i=0,listLength=list.length;listLength>i;i++)items.push(list[i]);return items},getCSSHost=function(href){var fakeLinkOfSheet=document.createElement(\"a\");return fakeLinkOfSheet.href=href,fakeLinkOfSheet.host},getSheetRules=function(stylesheet){var sheetHost,sheetMedia=stylesheet.media&&stylesheet.media.mediaText;if(\"true\"==objectFit.disableCrossDomain&&(sheetHost=getCSSHost(stylesheet.href),sheetHost!==window.location.host))return[];if(stylesheet.disabled)return[];if(window.matchMedia){if(sheetMedia&&sheetMedia.length&&!window.matchMedia(sheetMedia).matches)return[]}else if(sheetMedia&&sheetMedia.length)return[];return toArray(stylesheet.cssRules)},_find=function(string,re){string.match(re);return re?re.length:0},calculateScore=function(selector){for(var part,match,score=[0,0,0],parts=selector.split(\" \");part=parts.shift(),\"string\"==typeof part;)match=_find(part,PSEUDO_ELEMENTS_RE),score[2]=match,match&&(part=part.replace(PSEUDO_ELEMENTS_RE,\"\")),match=_find(part,PSEUDO_CLASSES_RE),score[1]=match,match&&(part=part.replace(PSEUDO_CLASSES_RE,\"\")),match=_find(part,ATTR_RE),score[1]+=match,match&&(part=part.replace(ATTR_RE,\"\")),match=_find(part,ID_RE),score[0]=match,match&&(part=part.replace(ID_RE,\"\")),match=_find(part,CLASS_RE),score[1]+=match,match&&(part=part.replace(CLASS_RE,\"\")),score[2]+=_find(part,ELEMENT_RE);return parseInt(score.join(\"\"),10)},getSpecificityScore=function(element,selectorText){for(var selector,score,selectors=selectorText.split(\",\"),result=0;selector=selectors.shift();)_matchesSelector(element,selector)&&(score=calculateScore(selector),result=score>result?score:result);return result},sortBySpecificity=function(element,rules){var compareSpecificity=function(a,b){return getSpecificityScore(element,b.selectorText)-getSpecificityScore(element,a.selectorText)};return rules.sort(compareSpecificity)},customMatchesSelector=function(element,selector){for(var matches=(element.document||element.ownerDocument).querySelectorAll(selector),i=0;matches[i]&&matches[i]!==element;)i++;return matches[i]?!0:!1},_matchesSelector=function(element,selector){var matcher=function(selector){return element.matches?element.matches(selector):element.matchesSelector?element.matchesSelector(selector):element.mozMatchesSelector?element.mozMatchesSelector(selector):element.webkitMatchesSelector?element.webkitMatchesSelector(selector):element.msMatchesSelector?element.msMatchesSelector(selector):customMatchesSelector(element,selector)};return matcher(selector)};window.getMatchedCSSRules=function(element){var styleSheets,sheet,rules,rule,result=[];for(styleSheets=toArray(window.document.styleSheets);sheet=styleSheets.shift();)for(rules=getSheetRules(sheet);rule=rules.shift();)rule.styleSheet?rules=getSheetRules(rule.styleSheet).concat(rules):rule.media?rules=getSheetRules(rule).concat(rules):_matchesSelector(element,rule.selectorText)&&result.push(rule);return sortBySpecificity(element,result)}}}(),function(){var lastTime=0;window.requestAnimationFrame||(window.requestAnimationFrame=window.webkitRequestAnimationFrame,window.cancelAnimationFrame=window.webkitCancelAnimationFrame||window.webkitCancelRequestAnimationFrame,window.requestAnimationFrame=function(callback){var currTime=(new Date).getTime(),timeToCall=Math.max(0,16-(currTime-lastTime)),id=window.setTimeout(function(){callback(currTime+timeToCall)},timeToCall);return lastTime=currTime+timeToCall,id}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(id){clearTimeout(id)})}(),function(global){var objectFit={};objectFit._debug=!1,objectFit.observer=null,objectFit.disableCrossDomain=\"false\",objectFit.getComputedStyle=function(element,context){return context=context||window,context.getComputedStyle?context.getComputedStyle(element,null):element.currentStyle},objectFit.getDefaultComputedStyle=function(element){var newelement=element.cloneNode(!0),styles={},iframe=document.createElement(\"iframe\");document.body.appendChild(iframe),iframe.contentWindow.document.open(),iframe.contentWindow.document.write(\"\"),iframe.contentWindow.document.body.appendChild(newelement),iframe.contentWindow.document.close();var value,property,defaultElement=iframe.contentWindow.document.querySelectorAll(element.nodeName.toLowerCase())[0],defaultComputedStyle=this.getComputedStyle(defaultElement,iframe.contentWindow);for(property in defaultComputedStyle)if(value=defaultComputedStyle.getPropertyValue===!0?defaultComputedStyle.getPropertyValue(property):defaultComputedStyle[property],null!==value)switch(property){default:styles[property]=value;break;case\"width\":case\"height\":case\"minWidth\":case\"minHeight\":case\"maxWidth\":case\"maxHeight\":}return document.body.removeChild(iframe),styles},objectFit.getMatchedStyle=function(element,property){var val=null,inlineval=null;element.style.getPropertyValue?inlineval=element.style.getPropertyValue(property):element.currentStyle&&(inlineval=element.currentStyle[property]);var r,important,rules=window.getMatchedCSSRules(element),i=rules.length;if(i)for(;i-->0&&(r=rules[i],important=r.style.getPropertyPriority(property),null!==val&&!important||(val=r.style.getPropertyValue(property),!important)););return val||null===inlineval||(val=inlineval),val},objectFit.orientation=function(replacedElement){if(replacedElement.parentNode&&\"x-object-fit\"===replacedElement.parentNode.nodeName.toLowerCase()){var width=replacedElement.naturalWidth||replacedElement.clientWidth,height=replacedElement.naturalHeight||replacedElement.clientHeight,parentWidth=replacedElement.parentNode.clientWidth,parentHeight=replacedElement.parentNode.clientHeight;!height||width/height>parentWidth/parentHeight?\"wider\"!==replacedElement.getAttribute(\"data-x-object-relation\")&&(replacedElement.setAttribute(\"data-x-object-relation\",\"wider\"),replacedElement.className=\"x-object-fit-wider\",this._debug&&window.console&&console.log(\"x-object-fit-wider\")):\"taller\"!==replacedElement.getAttribute(\"data-x-object-relation\")&&(replacedElement.setAttribute(\"data-x-object-relation\",\"taller\"),replacedElement.className=\"x-object-fit-taller\",this._debug&&window.console&&console.log(\"x-object-fit-taller\"))}},objectFit.process=function(args){if(args.selector&&args.replacedElements){switch(objectFit.disableCrossDomain=args.disableCrossDomain||\"false\",args.fittype=args.fittype||\"none\",args.fittype){default:return;case\"none\":case\"fill\":case\"contain\":case\"cover\":}var replacedElements=args.replacedElements;if(replacedElements.length)for(var i=0,replacedElementsLength=replacedElements.length;replacedElementsLength>i;i++)this.processElement(replacedElements[i],args)}},objectFit.processElement=function(replacedElement,args){var property,value,replacedElementStyles=objectFit.getComputedStyle(replacedElement),replacedElementDefaultStyles=objectFit.getDefaultComputedStyle(replacedElement),wrapperElement=document.createElement(\"x-object-fit\");objectFit._debug&&window.console&&console.log(\"Applying to WRAPPER-------------------------------------------------------\");for(property in replacedElementStyles)switch(property){default:value=objectFit.getMatchedStyle(replacedElement,property),null!==value&&\"\"!==value&&(objectFit._debug&&window.console&&console.log(property+\": \"+value),wrapperElement.style[property]=value);break;case\"length\":case\"parentRule\":}objectFit._debug&&window.console&&console.log(\"Applying to REPLACED ELEMENT-------------------------------------------------------\");for(property in replacedElementDefaultStyles)switch(property){default:value=replacedElementDefaultStyles[property],objectFit._debug&&window.console&&\"\"!==value&&(console.log(property+\": \"+value),void 0===replacedElement.style[property]&&console.log(\"Indexed style properties (`\"+property+\"`) not supported in: \"+window.navigator.userAgent)),replacedElement.style[property]?replacedElement.style[property]=value:replacedElement.style.property=value;break;case\"length\":case\"parentRule\":}wrapperElement.setAttribute(\"class\",\"x-object-fit-\"+args.fittype),replacedElement.parentNode.insertBefore(wrapperElement,replacedElement),wrapperElement.appendChild(replacedElement),objectFit.orientation(replacedElement);var resizeTimer=null,resizeAction=function(){null!==resizeTimer&&window.cancelAnimationFrame(resizeTimer),resizeTimer=window.requestAnimationFrame(function(){objectFit.orientation(replacedElement)})};switch(args.fittype){default:break;case\"contain\":case\"cover\":window.addEventListener?(replacedElement.addEventListener(\"load\",resizeAction,!1),window.addEventListener(\"resize\",resizeAction,!1),window.addEventListener(\"orientationchange\",resizeAction,!1)):(replacedElement.attachEvent(\"onload\",resizeAction),window.attachEvent(\"onresize\",resizeAction))}},objectFit.listen=function(args){var domInsertedAction=function(element){for(var i=0,argsLength=args.length;argsLength>i;i++)(element.mozMatchesSelector&&element.mozMatchesSelector(args[i].selector)||element.msMatchesSelector&&element.msMatchesSelector(args[i].selector)||element.oMatchesSelector&&element.oMatchesSelector(args[i].selector)||element.webkitMatchesSelector&&element.webkitMatchesSelector(args[i].selector))&&(args[i].replacedElements=[element],objectFit.process(args[i]),objectFit._debug&&window.console&&console.log(\"Matching node inserted: \"+element.nodeName))},domInsertedObserverFunction=function(element){objectFit.observer.disconnect(),domInsertedAction(element),objectFit.observer.observe(document.documentElement,{childList:!0,subtree:!0})},domInsertedEventFunction=function(event){window.removeEventListener(\"DOMNodeInserted\",domInsertedEventFunction,!1),domInsertedAction(event.target),window.addEventListener(\"DOMNodeInserted\",domInsertedEventFunction,!1)},domRemovedAction=function(element){\"x-object-fit\"===element.nodeName.toLowerCase()&&(element.parentNode.removeChild(element),objectFit._debug&&window.console&&console.log(\"Matching node removed: \"+element.nodeName))},domRemovedObserverFunction=function(element){objectFit.observer.disconnect(),domRemovedAction(element),objectFit.observer.observe(document.documentElement,{childList:!0,subtree:!0})},domRemovedEventFunction=function(event){window.removeEventListener(\"DOMNodeRemoved\",domRemovedEventFunction,!1),domRemovedAction(event.target.parentNode),window.addEventListener(\"DOMNodeRemoved\",domRemovedEventFunction,!1)};window.MutationObserver?(objectFit._debug&&window.console&&console.log(\"DOM MutationObserver\"),this.observer=new MutationObserver(function(mutations){mutations.forEach(function(mutation){if(mutation.addedNodes&&mutation.addedNodes.length)for(var nodes=mutation.addedNodes,i=0,nodesLength=nodes.length;nodesLength>i;i++)domInsertedObserverFunction(nodes[i]);mutation.removedNodes&&mutation.removedNodes.length&&domRemovedObserverFunction(mutation.target)})}),this.observer.observe(document.documentElement,{childList:!0,subtree:!0})):window.addEventListener&&(objectFit._debug&&window.console&&console.log(\"DOM Mutation Events\"),window.addEventListener(\"DOMNodeInserted\",domInsertedEventFunction,!1),window.addEventListener(\"DOMNodeRemoved\",domRemovedEventFunction,!1))},objectFit.init=function(args){if(args){args instanceof Array||(args=[args]);for(var i=0,argsLength=args.length;argsLength>i;i++)args[i].replacedElements=document.querySelectorAll(args[i].selector),this.process(args[i]);this.listen(args)}},objectFit.polyfill=function(args){\"objectFit\"in document.documentElement.style==!1?(objectFit._debug&&window.console&&console.log(\"object-fit not natively supported\"),\"complete\"===document.readyState?objectFit.init(args):window.addEventListener?window.addEventListener(\"load\",function(){objectFit.init(args)},!1):window.attachEvent(\"onload\",function(){objectFit.init(args)})):objectFit._debug&&window.console&&console.log(\"object-fit natively supported\")},\"object\"==typeof module&&module&&\"object\"==typeof module.exports?module.exports=objectFit:\"function\"==typeof define&&define.amd?define([],function(){return objectFit}):\"object\"==typeof global&&\"object\"==typeof global.document&&(global.objectFit=objectFit)}(window);","/* MediaMatch v.2.0.2 - Testing css media queries in Javascript. Authors & copyright (c) 2013: WebLinc, David Knight. */\r\n\r\nwindow.matchMedia || (window.matchMedia = function (win) {\r\n\t'use strict';\r\n\r\n\t// Internal globals\r\n\tvar _doc = win.document,\r\n\t_viewport = _doc.documentElement,\r\n\t_queries = [],\r\n\t_queryID = 0,\r\n\t_type = '',\r\n\t_features = {},\r\n\t// only screen\r\n\t// only screen and\r\n\t// not screen\r\n\t// not screen and\r\n\t// screen\r\n\t// screen and\r\n\t_typeExpr = /\\s*(only|not)?\\s*(screen|print|[a-z\\-]+)\\s*(and)?\\s*/i,\r\n// (-vendor-min-width: 300px)\r\n// (min-width: 300px)\r\n// (width: 300px)\r\n// (width)\r\n// (orientation: portrait|landscape)\r\n_mediaExpr = /^\\s*\\(\\s*(-[a-z]+-)?(min-|max-)?([a-z\\-]+)\\s*(:?\\s*([0-9]+(\\.[0-9]+)?|portrait|landscape)(px|em|dppx|dpcm|rem|%|in|cm|mm|ex|pt|pc|\\/([0-9]+(\\.[0-9]+)?))?)?\\s*\\)\\s*$/,\r\n_timer = 0,\r\n\r\n// Helper methods\r\n\r\n/*\r\n _matches\r\n */\r\n_matches = function (media) {\r\n// screen and (min-width: 400px), screen and (max-width: 500px)\r\nvar mql = (media.indexOf(',') !== -1 && media.split(',')) || [media],\r\nmqIndex = mql.length - 1,\r\nmqLength = mqIndex,\r\nmq = null,\r\n\r\n// not screen, screen\r\nnegateType = null,\r\nnegateTypeFound = '',\r\nnegateTypeIndex = 0,\r\nnegate = false,\r\ntype = '',\r\n\r\n// (min-width: 400px), (min-width)\r\nexprListStr = '',\r\nexprList = null,\r\nexprIndex = 0,\r\nexprLength = 0,\r\nexpr = null,\r\n\r\nprefix = '',\r\nlength = '',\r\nunit = '',\r\nvalue = '',\r\nfeature = '',\r\n\r\nmatch = false;\r\n\r\nif (media === '') {\r\n\treturn true;\r\n}\r\n\r\ndo {\r\n\tmq = mql[mqLength - mqIndex];\r\n\tnegate = false;\r\n\tnegateType = mq.match(_typeExpr);\r\n\r\n\tif (negateType) {\r\n\t\tnegateTypeFound = negateType[0];\r\n\t\tnegateTypeIndex = negateType.index;\r\n\t}\r\n\r\n\tif (!negateType || ((mq.substring(0, negateTypeIndex).indexOf('(') === -1) && (negateTypeIndex || (!negateType[3] && negateTypeFound !== negateType.input)))) {\r\n\t\tmatch = false;\r\n\t\tcontinue;\r\n\t}\r\n\r\n\texprListStr = mq;\r\n\r\n\tnegate = negateType[1] === 'not';\r\n\r\n\tif (!negateTypeIndex) {\r\n\t\ttype = negateType[2];\r\n\t\texprListStr = mq.substring(negateTypeFound.length);\r\n\t}\r\n\r\n\t// Test media type\r\n\t// Test type against this device or if 'all' or empty ''\r\n\tmatch = type === _type || type === 'all' || type === '';\r\n\r\n\texprList = (exprListStr.indexOf(' and ') !== -1 && exprListStr.split(' and ')) || [exprListStr];\r\n\texprIndex = exprList.length - 1;\r\n\texprLength = exprIndex;\r\n\r\n\tif (match && exprIndex >= 0 && exprListStr !== '') {\r\n\t\tdo {\r\n\t\t\texpr = exprList[exprIndex].match(_mediaExpr);\r\n\r\n\t\t\tif (!expr || !_features[expr[3]]) {\r\n\t\t\t\tmatch = false;\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\r\n\t\t\tprefix = expr[2];\r\n\t\t\tlength = expr[5];\r\n\t\t\tvalue = length;\r\n\t\t\tunit = expr[7];\r\n\t\t\tfeature = _features[expr[3]];\r\n\r\n\t\t\t// Convert unit types\r\n\t\t\tif (unit) {\r\n\t\t\t\tif (unit === 'px') {\r\n\t\t\t\t\t// If unit is px\r\n\t\t\t\t\tvalue = Number(length);\r\n\t\t\t\t} else if (unit === 'em' || unit === 'rem') {\r\n\t\t\t\t\t// Convert relative length unit to pixels\r\n\t\t\t\t\t// Assumed base font size is 16px\r\n\t\t\t\t\tvalue = 16 * length;\r\n\t\t\t\t} else if (expr[8]) {\r\n\t\t\t\t\t// Convert aspect ratio to decimal\r\n\t\t\t\t\tvalue = (length / expr[8]).toFixed(2);\r\n\t\t\t\t} else if (unit === 'dppx') {\r\n\t\t\t\t\t// Convert resolution dppx unit to pixels\r\n\t\t\t\t\tvalue = length * 96;\r\n\t\t\t\t} else if (unit === 'dpcm') {\r\n\t\t\t\t\t// Convert resolution dpcm unit to pixels\r\n\t\t\t\t\tvalue = length * 0.3937;\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// default\r\n\t\t\t\t\tvalue = Number(length);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// Test for prefix min or max\r\n\t\t\t// Test value against feature\r\n\t\t\tif (prefix === 'min-' && value) {\r\n\t\t\t\tmatch = feature >= value;\r\n\t\t\t} else if (prefix === 'max-' && value) {\r\n\t\t\t\tmatch = feature <= value;\r\n\t\t\t} else if (value) {\r\n\t\t\t\tmatch = feature === value;\r\n\t\t\t} else {\r\n\t\t\t\tmatch = !!feature;\r\n\t\t\t}\r\n\r\n\t\t\t// If 'match' is false, break loop\r\n\t\t\t// Continue main loop through query list\r\n\t\t\tif (!match) {\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t} while (exprIndex--);\r\n\t}\r\n\r\n\t// If match is true, break loop\r\n\t// Once matched, no need to check other queries\r\n\tif (match) {\r\n\t\tbreak;\r\n\t}\r\n} while (mqIndex--);\r\n\r\nreturn negate ? !match : match;\r\n},\r\n\r\n/*\r\n _setFeature\r\n */\r\n_setFeature = function () {\r\n// Sets properties of '_features' that change on resize and/or orientation.\r\nvar w = win.innerWidth || _viewport.clientWidth,\r\nh = win.innerHeight || _viewport.clientHeight,\r\ndw = win.screen.width,\r\ndh = win.screen.height,\r\nc = win.screen.colorDepth,\r\nx = win.devicePixelRatio;\r\n\r\n_features.width = w;\r\n_features.height = h;\r\n_features['aspect-ratio'] = (w / h).toFixed(2);\r\n_features['device-width'] = dw;\r\n_features['device-height'] = dh;\r\n_features['device-aspect-ratio'] = (dw / dh).toFixed(2);\r\n_features.color = c;\r\n_features['color-index'] = Math.pow(2, c);\r\n_features.orientation = (h >= w ? 'portrait' : 'landscape');\r\n_features.resolution = (x && x * 96) || win.screen.deviceXDPI || 96;\r\n_features['device-pixel-ratio'] = x || 1;\r\n},\r\n\r\n/*\r\n _watch\r\n */\r\n_watch = function () {\r\nclearTimeout(_timer);\r\n\r\n_timer = setTimeout(function () {\r\n\t\t\t\t\tvar query = null,\r\n\t\t\t\t\tqIndex = _queryID - 1,\r\n\t\t\t\t\tqLength = qIndex,\r\n\t\t\t\t\tmatch = false;\r\n\r\n\t\t\t\t\tif (qIndex >= 0) {\r\n\t\t\t\t\t_setFeature();\r\n\r\n\t\t\t\t\tdo {\r\n\t\t\t\t\tquery = _queries[qLength - qIndex];\r\n\r\n\t\t\t\t\tif (query) {\r\n\t\t\t\t\tmatch = _matches(query.mql.media);\r\n\r\n\t\t\t\t\tif ((match && !query.mql.matches) || (!match && query.mql.matches)) {\r\n\t\t\t\t\tquery.mql.matches = match;\r\n\r\n\t\t\t\t\tif (query.listeners) {\r\n\t\t\t\t\tfor (var i = 0, il = query.listeners.length; i < il; i++) {\r\n\t\t\t\t\tif (query.listeners[i]) {\r\n\t\t\t\t\tquery.listeners[i].call(win, query.mql);\r\n\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\t} while(qIndex--);\r\n\t\t\t\t\t}\r\n\r\n\r\n\t\t\t}, 10);\r\n\t\t},\r\n\r\n\t\t/*\r\n\t\t _init\r\n\t\t */\r\n\t\t_init = function () {\r\n\t\tvar head = _doc.getElementsByTagName('head')[0],\r\n\t\tstyle = _doc.createElement('style'),\r\n\t\tinfo = null,\r\n\t\ttypeList = ['screen', 'print', 'speech', 'projection', 'handheld', 'tv', 'braille', 'embossed', 'tty'],\r\n\t\ttypeIndex = 0,\r\n\t\ttypeLength = typeList.length,\r\n\t\tcssText = '#mediamatchjs { position: relative; z-index: 0; }',\r\n\t\teventPrefix = '',\r\n\t\taddEvent = win.addEventListener || (eventPrefix = 'on') && win.attachEvent;\r\n\r\n\t\tstyle.type = 'text/css';\r\n\t\tstyle.id = 'mediamatchjs';\r\n\r\n\t\thead.appendChild(style);\r\n\r\n\t\t// Must be placed after style is inserted into the DOM for IE\r\n\t\tinfo = (win.getComputedStyle && win.getComputedStyle(style)) || style.currentStyle;\r\n\r\n\t\t// Create media blocks to test for media type\r\n\t\tfor ( ; typeIndex < typeLength; typeIndex++) {\r\n\t\t\tcssText += '@media ' + typeList[typeIndex] + ' { #mediamatchjs { position: relative; z-index: ' + typeIndex + ' } }';\r\n\t\t}\r\n\r\n\t\t// Add rules to style element\r\n\t\tif (style.styleSheet) {\r\n\t\t\tstyle.styleSheet.cssText = cssText;\r\n\t\t} else {\r\n\t\t\tstyle.textContent = cssText;\r\n\t\t}\r\n\r\n\t\t// Get media type\r\n\t\t_type = typeList[(info.zIndex * 1) || 0];\r\n\r\n\t\thead.removeChild(style);\r\n\r\n\t\t_setFeature();\r\n\r\n\t\t// Set up listeners\r\n\t\taddEvent(eventPrefix + 'resize', _watch);\r\n\t\taddEvent(eventPrefix + 'orientationchange', _watch);\r\n\t\t};\r\n\r\n\t\t_init();\r\n\r\n\t\t/*\r\n\t\t A list of parsed media queries, ex. screen and (max-width: 400px), screen and (max-width: 800px)\r\n\t\t */\r\n\t\treturn function (media) {\r\n\t\t\tvar id = _queryID,\r\n\t\t\tmql = {\r\n\t\t\t\tmatches : false,\r\n\t\t\t\tmedia : media,\r\n\t\t\t\taddListener : function addListener(listener) {\r\n\t\t\t\t\t_queries[id].listeners || (_queries[id].listeners = []);\r\n\t\t\t\t\tlistener && _queries[id].listeners.push(listener);\r\n\t\t\t\t},\r\n\t\t\t\tremoveListener : function removeListener(listener) {\r\n\t\t\t\t\tvar query = _queries[id],\r\n\t\t\t\t\ti = 0,\r\n\t\t\t\t\til = 0;\r\n\r\n\t\t\t\t\tif (!query) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\til = query.listeners.length;\r\n\r\n\t\t\t\t\tfor ( ; i < il; i++) {\r\n\t\t\t\t\t\tif (query.listeners[i] === listener) {\r\n\t\t\t\t\t\t\tquery.listeners.splice(i, 1);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t};\r\n\r\n\t\t\tif (media === '') {\r\n\t\t\t\tmql.matches = true;\r\n\t\t\t\treturn mql;\r\n\t\t\t}\r\n\r\n\t\t\tmql.matches = _matches(media);\r\n\r\n\t\t\t_queryID = _queries.push({\r\n\t\t\t\tmql : mql,\r\n\t\t\t\tlisteners : null\r\n\t\t\t});\r\n\r\n\t\t\treturn mql;\r\n\t\t};\r\n}(window));\r\n","/*!\r\n * enquire.js v2.1.2 - Awesome Media Queries in JavaScript\r\n * Copyright (c) 2014 Nick Williams - http://wicky.nillia.ms/enquire.js\r\n * License: MIT (http://www.opensource.org/licenses/mit-license.php)\r\n */\r\n\r\n!function(a,b,c){var d=window.matchMedia;\"undefined\"!=typeof module&&module.exports?module.exports=c(d):\"function\"==typeof define&&define.amd?define(function(){return b[a]=c(d)}):b[a]=c(d)}(\"enquire\",this,function(a){\"use strict\";function b(a,b){var c,d=0,e=a.length;for(d;e>d&&(c=b(a[d],d),c!==!1);d++);}function c(a){return\"[object Array]\"===Object.prototype.toString.apply(a)}function d(a){return\"function\"==typeof a}function e(a){this.options=a,!a.deferSetup&&this.setup()}function f(b,c){this.query=b,this.isUnconditional=c,this.handlers=[],this.mql=a(b);var d=this;this.listener=function(a){d.mql=a,d.assess()},this.mql.addListener(this.listener)}function g(){if(!a)throw new Error(\"matchMedia not present, legacy browsers require a polyfill\");this.queries={},this.browserIsIncapable=!a(\"only all\").matches}return e.prototype={setup:function(){this.options.setup&&this.options.setup(),this.initialised=!0},on:function(){!this.initialised&&this.setup(),this.options.match&&this.options.match()},off:function(){this.options.unmatch&&this.options.unmatch()},destroy:function(){this.options.destroy?this.options.destroy():this.off()},equals:function(a){return this.options===a||this.options.match===a}},f.prototype={addHandler:function(a){var b=new e(a);this.handlers.push(b),this.matches()&&b.on()},removeHandler:function(a){var c=this.handlers;b(c,function(b,d){return b.equals(a)?(b.destroy(),!c.splice(d,1)):void 0})},matches:function(){return this.mql.matches||this.isUnconditional},clear:function(){b(this.handlers,function(a){a.destroy()}),this.mql.removeListener(this.listener),this.handlers.length=0},assess:function(){var a=this.matches()?\"on\":\"off\";b(this.handlers,function(b){b[a]()})}},g.prototype={register:function(a,e,g){var h=this.queries,i=g&&this.browserIsIncapable;return h[a]||(h[a]=new f(a,i)),d(e)&&(e={match:e}),c(e)||(e=[e]),b(e,function(b){d(b)&&(b={match:b}),h[a].addHandler(b)}),this},unregister:function(a,b){var c=this.queries[a];return c&&(b?c.removeHandler(b):(c.clear(),delete this.queries[a])),this}},new g});","// created by Minh Nguyen;\r\n// version 1.05;\r\n\r\n(function($) {\r\n\r\n\t// for zeptojs;\r\n\t$.isNumeric == null && ($.isNumeric = function(src) {\r\n\t\treturn src != null && src.constructor === Number;\r\n\t});\r\n\r\n\t$.isFunction == null && ($.isFunction = function(src) {\r\n\t\treturn src != null && src instanceof Function;\r\n\t});\r\n\r\n\tvar $W = $(window);\r\n\tvar $D = $(document);\r\n\r\n\tvar layoutManager = {\r\n\t\t// default setting;\r\n\t\tdefaultConfig: {\r\n\t\t\tanimate: false,\r\n\t\t\tcellW: 100, // function(container) {return 100;}\r\n\t\t\tcellH: 100, // function(container) {return 100;}\r\n\t\t\tdelay: 0, // slowdown active block;\r\n\t\t\tengine: 'giot', // 'giot' is a person name;\r\n\t\t\tfixSize: null, // resize + adjust = fill gap;\r\n\t\t\t//fixSize: 0, resize but keep ratio = no fill gap;\r\n\t\t\t//fixSize: 1, no resize + no adjust = no fill gap;\r\n\t\t\tgutterX: 15, // width spacing between blocks;\r\n\t\t\tgutterY: 15, // height spacing between blocks;\r\n\t\t\tkeepOrder: false,\r\n\t\t\tselector: '> div',\r\n\t\t\tdraggable: false,\r\n\t\t\tcacheSize: true, // caches the original size of block;\r\n\t\t\trightToLeft: false,\r\n\t\t\tbottomToTop: false,\r\n\t\t\tonGapFound: function() {},\r\n\t\t\tonComplete: function() {},\r\n\t\t\tonResize: function() {},\r\n\t\t\tonBlockDrag: function() {},\r\n\t\t\tonBlockMove: function() {},\r\n\t\t\tonBlockDrop: function() {},\r\n\t\t\tonBlockReady: function() {},\r\n\t\t\tonBlockFinish: function() {},\r\n\t\t\tonBlockActive: function() {},\r\n\t\t\tonBlockResize: function() {}\r\n\t\t},\r\n\t\tplugin: {},\r\n\t\ttotalGrid: 1,\r\n\t\ttransition: false,\r\n\t\tloadBlock: function(item, setting) {\r\n\t\t\tvar runtime = setting.runtime;\r\n\t\t\tvar gutterX = runtime.gutterX;\r\n\t\t\tvar gutterY = runtime.gutterY;\r\n\t\t\tvar cellH = runtime.cellH;\r\n\t\t\tvar cellW = runtime.cellW;\r\n\t\t\tvar block = null;\r\n\t\t\tvar $item = $(item);\r\n\t\t\tvar active = $item.data(\"active\");\r\n\t\t\tvar fixPos = $item.attr('data-position');\r\n\t\t\tvar fixSize = parseInt($item.attr('data-fixSize'));\r\n\t\t\tvar blockId = runtime.lastId++ + '-' + runtime.totalGrid;\r\n\r\n\t\t\t//ignore dragging block;\r\n\t\t\tif ($item.hasClass('fw-float')) return null;\r\n\t\t\t$item.attr({id: blockId, 'data-delay': item.index});\r\n\r\n\t\t\t//remove animation for speed render;\r\n\t\t\tif (setting.animate && this.transition) {\r\n\t\t\t\tthis.setTransition(item, \"\");\r\n\t\t\t}\r\n\r\n\t\t\tisNaN(fixSize) && (fixSize = null);\r\n\t\t\t(fixSize == null) && (fixSize = setting.fixSize);\r\n\t\t\tvar makeRound = (fixSize >= 1) ? \"ceil\" : \"round\";\r\n\t\t\t// store original size;\r\n\r\n\t\t\t$item.attr('data-height') == null && $item.attr('data-height', $item.height());\r\n\t\t\t$item.attr('data-width') == null && $item.attr('data-width', $item.width());\r\n\t\t\tvar height = 1 * $item.attr('data-height');\r\n\t\t\tvar width = 1 * $item.attr('data-width');\r\n\r\n\t\t\tif (!setting.cacheSize) {\r\n\t\t\t\titem.style.width = \"\";\r\n\t\t\t\twidth = $item.width();\r\n\r\n\t\t\t\titem.style.height = \"\";\r\n\t\t\t\theight = $item.height();\r\n\t\t\t}\r\n\r\n\t\t\tvar col = !width ? 0 : Math[makeRound]((width + gutterX) / cellW);\r\n\t\t\tvar row = !height ? 0 : Math[makeRound]((height + gutterY) / cellH);\r\n\r\n\t\t\t// estimate size;\r\n\t\t\tif (!fixSize && setting.cellH == 'auto') {\r\n\t\t\t\t$item.width(cellW * col - gutterX);\r\n\t\t\t\titem.style.height = \"\";\r\n\t\t\t\theight = $item.height();\r\n\t\t\t\trow = !height ? 0 : Math.round((height + gutterY) / cellH);\r\n\t\t\t}\r\n\r\n\t\t\tif (!fixSize && setting.cellW == 'auto') {\r\n\t\t\t\t$item.height(cellH * row - gutterY);\r\n\t\t\t\titem.style.width = \"\";\r\n\t\t\t\twidth = $item.width();\r\n\t\t\t\tcol = !width ? 0 : Math.round((width + gutterX) / cellW);\r\n\t\t\t}\r\n\r\n\t\t\t// for none resize block;\r\n\t\t\tif ((fixSize != null) && (col > runtime.limitCol || row > runtime.limitRow)) {\r\n\t\t\t\tblock = null;\r\n\t\t\t} else {\r\n\t\t\t\t// get smallest width and smallest height of block;\r\n\t\t\t\t// using for image runtime;\r\n\t\t\t\trow && row < runtime.minHoB && (runtime.minHoB = row);\r\n\t\t\t\tcol && col < runtime.minWoB && (runtime.minWoB = col);\r\n\r\n\t\t\t\t// get biggest width and biggest height of block;\r\n\t\t\t\trow > runtime.maxHoB && (runtime.maxHoB = row);\r\n\t\t\t\tcol > runtime.maxWoB && (runtime.maxWoB = col);\r\n\r\n\t\t\t\twidth == 0 && (col = 0);\r\n\t\t\t\theight == 0 && (row = 0);\r\n\r\n\t\t\t\tblock = {\r\n\t\t\t\t\tresize: false,\r\n\t\t\t\t\tid: blockId,\r\n\t\t\t\t\twidth: col,\r\n\t\t\t\t\theight: row,\r\n\t\t\t\t\tfixSize: fixSize\r\n\t\t\t\t};\r\n\r\n\t\t\t\t// for fix position;\r\n\t\t\t\tif (fixPos) {\r\n\t\t\t\t\tfixPos = fixPos.split(\"-\");\r\n\t\t\t\t\tblock.y = 1 * fixPos[0];\r\n\t\t\t\t\tblock.x = 1 * fixPos[1];\r\n\t\t\t\t\tblock.width = fixSize != null ? col : Math.min(col, runtime.limitCol - block.x);\r\n\t\t\t\t\tblock.height = fixSize != null ? row : Math.min(row, runtime.limitRow - block.y);\r\n\t\t\t\t\tvar holeId = block.y + \"-\" + block.x + \"-\" + block.width + \"-\" + block.height;\r\n\t\t\t\t\tif (active) {\r\n\t\t\t\t\t\truntime.holes[holeId] = {\r\n\t\t\t\t\t\t\tid: block.id,\r\n\t\t\t\t\t\t\ttop: block.y,\r\n\t\t\t\t\t\t\tleft: block.x,\r\n\t\t\t\t\t\t\twidth: block.width,\r\n\t\t\t\t\t\t\theight: block.height\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t\tthis.setBlock(block, setting);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tdelete runtime.holes[holeId];\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// for css animation;\r\n\t\t\tif ($item.attr(\"data-state\") == null) {\r\n\t\t\t\t$item.attr(\"data-state\", \"init\");\r\n\t\t\t} else {\r\n\t\t\t\t$item.attr(\"data-state\", \"move\");\r\n\t\t\t}\r\n\r\n\t\t\tsetting.onBlockReady.call(item, block, setting);\r\n\r\n\t\t\treturn (fixPos && active) ? null : block;\r\n\t\t},\r\n\t\tsetBlock: function(block, setting) {\r\n\t\t\tvar runtime = setting.runtime;\r\n\t\t\tvar gutterX = runtime.gutterX;\r\n\t\t\tvar gutterY = runtime.gutterY;\r\n\t\t\tvar height = block.height;\r\n\t\t\tvar width = block.width;\r\n\t\t\tvar cellH = runtime.cellH;\r\n\t\t\tvar cellW = runtime.cellW;\r\n\t\t\tvar x = block.x;\r\n\t\t\tvar y = block.y;\r\n\r\n\t\t\tif (setting.rightToLeft) {\r\n\t\t\t\tx = runtime.limitCol - x - width;\r\n\t\t\t}\r\n\t\t\tif (setting.bottomToTop) {\r\n\t\t\t\ty = runtime.limitRow - y - height;\r\n\t\t\t}\r\n\r\n\t\t\tvar realBlock = {\r\n\t\t\t\tfixSize: block.fixSize,\r\n\t\t\t\tresize: block.resize,\r\n\t\t\t\ttop: y * cellH,\r\n\t\t\t\tleft: x * cellW,\r\n\t\t\t\twidth: cellW * width - gutterX,\r\n\t\t\t\theight: cellH * height - gutterY\r\n\t\t\t};\r\n\r\n\t\t\trealBlock.top = 1 * realBlock.top.toFixed(2);\r\n\t\t\trealBlock.left = 1 * realBlock.left.toFixed(2);\r\n\t\t\trealBlock.width = 1 * realBlock.width.toFixed(2);\r\n\t\t\trealBlock.height = 1 * realBlock.height.toFixed(2);\r\n\r\n\t\t\t//runtime.length += 1;\r\n\t\t\tblock.id && (runtime.blocks[block.id] = realBlock);\r\n\r\n\t\t\t// for append feature;\r\n\t\t\treturn realBlock;\r\n\t\t},\r\n\t\tshowBlock: function(item, setting) {\r\n\t\t\tvar runtime = setting.runtime;\r\n\t\t\tvar method = setting.animate && !this.transition ? 'animate' : 'css';\r\n\t\t\tvar block = runtime.blocks[item.id];\r\n\t\t\tvar $item = $(item);\r\n\t\t\tvar self = this;\r\n\t\t\tvar start = $item.attr(\"data-state\") != \"move\";\r\n\t\t\tvar trans = start ? \"width 0.5s, height 0.5s\" : \"top 0.5s, left 0.5s, width 0.5s, height 0.5s, opacity 0.5s\";\r\n\r\n\t\t\titem.delay && clearTimeout(item.delay);\r\n\t\t\t//ignore dragging block;\r\n\t\t\tif ($item.hasClass('fw-float')) return;\r\n\r\n\t\t\t// kill the old transition;\r\n\t\t\tself.setTransition(item, \"\");\r\n\t\t\titem.style.position = \"absolute\";\r\n\t\t\tsetting.onBlockActive.call(item, block, setting);\r\n\r\n\t\t\tfunction action() {\r\n\t\t\t\t// start to arrange;\r\n\t\t\t\tstart && $item.attr(\"data-state\", \"start\");\r\n\t\t\t\t// add animation by using css3 transition;\r\n\t\t\t\tif (setting.animate && self.transition) {\r\n\t\t\t\t\tself.setTransition(item, trans);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// for hidden block;\r\n\t\t\t\tif (!block) {\r\n\t\t\t\t\t//var position = $item.position(); <= make speed so slow;\r\n\t\t\t\t\tvar height = parseInt(item.style.height) || 0;\r\n\t\t\t\t\tvar width = parseInt(item.style.width) || 0;\r\n\t\t\t\t\tvar left = parseInt(item.style.left) || 0;\r\n\t\t\t\t\tvar top = parseInt(item.style.top) || 0;\r\n\t\t\t\t\t$item[method]({\r\n\t\t\t\t\t\tleft: left + width / 2,\r\n\t\t\t\t\t\ttop: top + height / 2,\r\n\t\t\t\t\t\twidth: 0,\r\n\t\t\t\t\t\theight: 0,\r\n\t\t\t\t\t\topacity: 0\r\n\t\t\t\t\t});\r\n\t\t\t\t} else {\r\n\t\t\t\t\tif (block.fixSize) {\r\n\t\t\t\t\t\tblock.height = 1 * $item.attr(\"data-height\");\r\n\t\t\t\t\t\tblock.width = 1 * $item.attr(\"data-width\");\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t$item[\"css\"]({\r\n\t\t\t\t\t\topacity: 1,\r\n\t\t\t\t\t\twidth: block.width,\r\n\t\t\t\t\t\theight: block.height\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\t// for animating by javascript;\r\n\t\t\t\t\t$item[method]({\r\n\t\t\t\t\t\ttop: block.top,\r\n\t\t\t\t\t\tleft: block.left\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tif ($item.attr('data-nested') != null) {\r\n\t\t\t\t\t\tself.nestedGrid(item, setting);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\truntime.length -= 1;\r\n\r\n\t\t\t\tsetting.onBlockFinish.call(item, block, setting);\r\n\r\n\t\t\t\truntime.length == 0 && setting.onComplete.call(item, block, setting);\r\n\t\t\t}\r\n\r\n\t\t\tblock && block.resize && setting.onBlockResize.call(item, block, setting);\r\n\r\n\t\t\tsetting.delay > 0 ? (item.delay = setTimeout(action, setting.delay * $item.attr(\"data-delay\"))) : action();\r\n\t\t},\r\n\t\tnestedGrid: function(item, setting) {\r\n\t\t\tvar innerWall, $item = $(item), runtime = setting.runtime;\r\n\t\t\tvar gutterX = $item.attr(\"data-gutterX\") || setting.gutterX;\r\n\t\t\tvar gutterY = $item.attr(\"data-gutterY\") || setting.gutterY;\r\n\t\t\tvar method = $item.attr(\"data-method\") || \"fitZone\";\r\n\t\t\tvar nested = $item.attr('data-nested') || \"> div\";\r\n\t\t\tvar cellH = $item.attr(\"data-cellH\") || setting.cellH;\r\n\t\t\tvar cellW = $item.attr(\"data-cellW\") || setting.cellW;\r\n\t\t\tvar block = runtime.blocks[item.id];\r\n\r\n\t\t\tif (block) {\r\n\t\t\t\tinnerWall = new freewall($item);\r\n\t\t\t\tinnerWall.reset({\r\n\t\t\t\t\tcellH: cellH,\r\n\t\t\t\t\tcellW: cellW,\r\n\t\t\t\t\tgutterX: 1 * gutterX,\r\n\t\t\t\t\tgutterY: 1 * gutterY,\r\n\t\t\t\t\tselector: nested,\r\n\t\t\t\t\tcacheSize: false\r\n\t\t\t\t});\r\n\r\n\t\t\t\tswitch (method) {\r\n\t\t\t\t\tcase \"fitHeight\":\r\n\t\t\t\t\t\tinnerWall[method](block.height);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase \"fitWidth\":\r\n\t\t\t\t\t\tinnerWall[method](block.width);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase \"fitZone\":\r\n\t\t\t\t\t\tinnerWall[method](block.width, block.height);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t\tadjustBlock: function(block, setting) {\r\n\t\t\tvar runtime = setting.runtime;\r\n\t\t\tvar gutterX = runtime.gutterX;\r\n\t\t\tvar gutterY = runtime.gutterY;\r\n\t\t\tvar $item = $(\"#\" + block.id);\r\n\t\t\tvar cellH = runtime.cellH;\r\n\t\t\tvar cellW = runtime.cellW;\r\n\r\n\t\t\tif (setting.cellH == 'auto') {\r\n\t\t\t\t$item.width(block.width * cellW - gutterX);\r\n\t\t\t\t$item[0].style.height = \"\";\r\n\t\t\t\tblock.height = Math.round(($item.height() + gutterY) / cellH);\r\n\t\t\t}\r\n\t\t},\r\n\t\tadjustUnit: function(width, height, setting) {\r\n\t\t\tvar gutterX = setting.gutterX;\r\n\t\t\tvar gutterY = setting.gutterY;\r\n\t\t\tvar runtime = setting.runtime;\r\n\t\t\tvar cellW = setting.cellW;\r\n\t\t\tvar cellH = setting.cellH;\r\n\r\n\t\t\t$.isFunction(cellW) && (cellW = cellW(width));\r\n\t\t\tcellW = 1 * cellW;\r\n\t\t\t!$.isNumeric(cellW) && (cellW = 1);\r\n\r\n\t\t\t$.isFunction(cellH) && (cellH = cellH(height));\r\n\t\t\tcellH = 1 * cellH;\r\n\t\t\t!$.isNumeric(cellH) && (cellH = 1);\r\n\r\n\t\t\tif ($.isNumeric(width)) {\r\n\t\t\t\t// adjust cell width via container;\r\n\t\t\t\tcellW < 1 && (cellW = cellW * width);\r\n\r\n\t\t\t\t// estimate total columns;\r\n\t\t\t\tvar limitCol = Math.max(1, Math.floor(width / cellW));\r\n\r\n\t\t\t\t// adjust unit size for fit width;\r\n\t\t\t\tif (!$.isNumeric(gutterX)) {\r\n\t\t\t\t\tgutterX = (width - limitCol * cellW) / Math.max(1, (limitCol - 1));\r\n\t\t\t\t\tgutterX = Math.max(0, gutterX);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tlimitCol = Math.floor((width + gutterX) / cellW);\r\n\t\t\t\truntime.cellW = (width + gutterX) / Math.max(limitCol, 1);\r\n\t\t\t\truntime.cellS = runtime.cellW / cellW;\r\n\t\t\t\truntime.gutterX = gutterX;\r\n\t\t\t\truntime.limitCol = limitCol;\r\n\t\t\t}\r\n\r\n\t\t\tif ($.isNumeric(height)) {\r\n\t\t\t\t// adjust cell height via container;\r\n\t\t\t\tcellH < 1 && (cellH = cellH * height);\r\n\r\n\t\t\t\t// estimate total rows;\r\n\t\t\t\tvar limitRow = Math.max(1, Math.floor(height / cellH));\r\n\r\n\t\t\t\t// adjust size unit for fit height;\r\n\t\t\t\tif (!$.isNumeric(gutterY)) {\r\n\t\t\t\t\tgutterY = (height - limitRow * cellH) / Math.max(1, (limitRow - 1));\r\n\t\t\t\t\tgutterY = Math.max(0, gutterY);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tlimitRow = Math.floor((height + gutterY) / cellH);\r\n\t\t\t\truntime.cellH = (height + gutterY) / Math.max(limitRow, 1);\r\n\t\t\t\truntime.cellS = runtime.cellH / cellH;\r\n\t\t\t\truntime.gutterY = gutterY;\r\n\t\t\t\truntime.limitRow = limitRow;\r\n\t\t\t}\r\n\r\n\t\t\tif (!$.isNumeric(width)) {\r\n\t\t\t\t// adjust cell width via cell height;\r\n\t\t\t\tcellW < 1 && (cellW = runtime.cellH);\r\n\t\t\t\truntime.cellW = cellW != 1 ? cellW * runtime.cellS : 1;\r\n\t\t\t\truntime.gutterX = gutterX;\r\n\t\t\t\truntime.limitCol = 666666;\r\n\t\t\t}\r\n\r\n\t\t\tif (!$.isNumeric(height)) {\r\n\t\t\t\t// adjust cell height via cell width;\r\n\t\t\t\tcellH < 1 && (cellH = runtime.cellW);\r\n\t\t\t\truntime.cellH = cellH != 1 ? cellH * runtime.cellS : 1;\r\n\t\t\t\truntime.gutterY = gutterY;\r\n\t\t\t\truntime.limitRow = 666666;\r\n\t\t\t}\r\n\r\n\t\t\truntime.keepOrder = setting.keepOrder;\r\n\t\t},\r\n\t\tresetGrid: function(runtime) {\r\n\t\t\truntime.blocks = {};\r\n\t\t\truntime.length = 0;\r\n\t\t\truntime.cellH = 0;\r\n\t\t\truntime.cellW = 0;\r\n\t\t\truntime.lastId = 1;\r\n\t\t\truntime.matrix = {};\r\n\t\t\truntime.totalCol = 0;\r\n\t\t\truntime.totalRow = 0;\r\n\t\t},\r\n\t\tsetDraggable: function(item, option) {\r\n\t\t\tvar isTouch = false;\r\n\t\t\tvar config = {\r\n\t\t\t\tstartX: 0, //start clientX;\r\n\t\t\t\tstartY: 0,\r\n\t\t\t\ttop: 0,\r\n\t\t\t\tleft: 0,\r\n\t\t\t\thandle: null,\r\n\t\t\t\tonDrop: function() {},\r\n\t\t\t\tonDrag: function() {},\r\n\t\t\t\tonStart: function() {}\r\n\t\t\t};\r\n\r\n\t\t\t$(item).each(function() {\r\n\t\t\t\tvar setting = $.extend({}, config, option);\r\n\t\t\t\tvar handle = setting.handle || this;\r\n\t\t\t\tvar ele = this;\r\n\t\t\t\tvar $E = $(ele);\r\n\t\t\t\tvar $H = $(handle);\r\n\r\n\t\t\t\tvar posStyle = $E.css(\"position\");\r\n\t\t\t\tposStyle != \"absolute\" && $E.css(\"position\", \"relative\");\r\n\r\n\r\n\t\t\t\tfunction mouseDown(evt) {\r\n\t\t\t\t\tevt.stopPropagation();\r\n\t\t\t\t\tevt = evt.originalEvent;\r\n\r\n\t\t\t\t\tif (evt.touches) {\r\n\t\t\t\t\t\tisTouch = true;\r\n\t\t\t\t\t\tevt = evt.changedTouches[0];\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (evt.button != 2 && evt.which != 3) {\r\n\t\t\t\t\t\tsetting.onStart.call(ele, evt);\r\n\r\n\t\t\t\t\t\tsetting.startX = evt.clientX;\r\n\t\t\t\t\t\tsetting.startY = evt.clientY;\r\n\t\t\t\t\t\tsetting.top = parseInt($E.css(\"top\")) || 0;\r\n\t\t\t\t\t\tsetting.left = parseInt($E.css(\"left\")) || 0;\r\n\r\n\t\t\t\t\t\t$D.bind(\"mouseup touchend\", mouseUp);\r\n\t\t\t\t\t\t$D.bind(\"mousemove touchmove\", mouseMove);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t};\r\n\r\n\r\n\t\t\t\tfunction mouseMove(evt) {\r\n\t\t\t\t\tevt = evt.originalEvent;\r\n\t\t\t\t\tisTouch && (evt = evt.changedTouches[0]);\r\n\r\n\t\t\t\t\t$E.css({\r\n\t\t\t\t\t\ttop: setting.top - (setting.startY - evt.clientY),\r\n\t\t\t\t\t\tleft: setting.left - (setting.startX - evt.clientX)\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tsetting.onDrag.call(ele, evt);\r\n\t\t\t\t};\r\n\r\n\t\t\t\tfunction mouseUp(evt) {\r\n\t\t\t\t\tevt = evt.originalEvent;\r\n\t\t\t\t\tisTouch && (evt = evt.changedTouches[0]);\r\n\r\n\t\t\t\t\tsetting.onDrop.call(ele, evt);\r\n\r\n\t\t\t\t\t$D.unbind(\"mouseup touchend\", mouseUp);\r\n\t\t\t\t\t$D.unbind(\"mousemove touchmove\", mouseMove);\r\n\t\t\t\t};\r\n\r\n\t\t\t\t// ignore drag drop on text field;\r\n\t\t\t\t$E.find(\"iframe, form, input, textarea, .ignore-drag\")\r\n\t\t\t\t\t.each(function() {\r\n\t\t\t\t\t\t$(this).on(\"touchstart mousedown\", function(evt) {\r\n\t\t\t\t\t\t\tevt.stopPropagation();\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t$D.unbind(\"mouseup touchend\", mouseUp);\r\n\t\t\t\t$D.unbind(\"mousemove touchmove\", mouseMove);\r\n\t\t\t\t$H.unbind(\"mousedown touchstart\").bind(\"mousedown touchstart\", mouseDown);\r\n\r\n\t\t\t});\r\n\t\t},\r\n\t\tsetTransition: function(item, trans) {\r\n\t\t\tvar style = item.style;\r\n\t\t\tvar $item = $(item);\r\n\r\n\t\t\t// remove animation;\r\n\t\t\tif (!this.transition && $item.stop) {\r\n\t\t\t\t$item.stop();\r\n\t\t\t} else if (style.webkitTransition != null) {\r\n\t\t\t\tstyle.webkitTransition = trans;\r\n\t\t\t} else if (style.MozTransition != null) {\r\n\t\t\t\tstyle.MozTransition = trans;\r\n\t\t\t} else if (style.msTransition != null) {\r\n\t\t\t\tstyle.msTransition = trans;\r\n\t\t\t} else if (style.OTransition != null) {\r\n\t\t\t\tstyle.OTransition = trans;\r\n\t\t\t} else {\r\n\t\t\t\tstyle.transition = trans;\r\n\t\t\t}\r\n\t\t},\r\n\t\tgetFreeArea: function(t, l, runtime) {\r\n\t\t\tvar maxY = Math.min(t + runtime.maxHoB, runtime.limitRow);\r\n\t\t\tvar maxX = Math.min(l + runtime.maxWoB, runtime.limitCol);\r\n\t\t\tvar minX = maxX;\r\n\t\t\tvar minY = maxY;\r\n\t\t\tvar matrix = runtime.matrix;\r\n\r\n\t\t\t// find limit zone by horizon;\r\n\t\t\tfor (var y = t; y < minY; ++y) {\r\n\t\t\t\tfor (var x = l; x < maxX; ++x) {\r\n\t\t\t\t\tif (matrix[y + '-' + x]) {\r\n\t\t\t\t\t\t(l < x && x < minX) && (minX = x);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// find limit zone by vertical;\r\n\t\t\tfor (var y = t; y < maxY; ++y) {\r\n\t\t\t\tfor (var x = l; x < minX; ++x) {\r\n\t\t\t\t\tif (matrix[y + '-' + x]) {\r\n\t\t\t\t\t\t(t < y && y < minY) && (minY = y);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn {\r\n\t\t\t\ttop: t,\r\n\t\t\t\tleft: l,\r\n\t\t\t\twidth: minX - l,\r\n\t\t\t\theight: minY - t\r\n\t\t\t};\r\n\r\n\t\t},\r\n\t\tsetWallSize: function(runtime, container) {\r\n\t\t\tvar totalRow = runtime.totalRow;\r\n\t\t\tvar totalCol = runtime.totalCol;\r\n\t\t\tvar gutterY = runtime.gutterY;\r\n\t\t\tvar gutterX = runtime.gutterX;\r\n\t\t\tvar cellH = runtime.cellH;\r\n\t\t\tvar cellW = runtime.cellW;\r\n\t\t\tvar totalWidth = Math.max(0, cellW * totalCol - gutterX);\r\n\t\t\tvar totalHeight = Math.max(0, cellH * totalRow - gutterY);\r\n\r\n\t\t\tcontainer.attr({\r\n\t\t\t\t'data-total-col': totalCol,\r\n\t\t\t\t'data-total-row': totalRow,\r\n\t\t\t\t'data-wall-width': Math.ceil(totalWidth),\r\n\t\t\t\t'data-wall-height': Math.ceil(totalHeight)\r\n\t\t\t});\r\n\r\n\t\t\tif (runtime.limitCol < runtime.limitRow) {\r\n\t\t\t\t// do not set height with nesting grid;\r\n\t\t\t\t!container.attr(\"data-height\") && container.height(Math.ceil(totalHeight));\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\r\n\r\n\tvar engine = {\r\n\t\t// Giot just a person name;\r\n\t\tgiot: function(items, setting) {\r\n\t\t\tvar runtime = setting.runtime,\r\n\t\t\t\trow = runtime.limitRow,\r\n\t\t\t\tcol = runtime.limitCol,\r\n\t\t\t\tx = 0,\r\n\t\t\t\ty = 0,\r\n\t\t\t\tmaxX = runtime.totalCol,\r\n\t\t\t\tmaxY = runtime.totalRow,\r\n\t\t\t\twall = {},\r\n\t\t\t\tholes = runtime.holes,\r\n\t\t\t\tblock = null,\r\n\t\t\t\tmatrix = runtime.matrix,\r\n\t\t\t\tbigLoop = Math.max(col, row),\r\n\t\t\t\tfreeArea = null,\r\n\t\t\t\tmisBlock = null,\r\n\t\t\t\tfitWidth = col < row ? 1 : 0,\r\n\t\t\t\tlastBlock = null,\r\n\t\t\t\tsmallLoop = Math.min(col, row);\r\n\r\n\t\t\t// fill area with top, left, width, height;\r\n\t\t\tfunction fillMatrix(id, t, l, w, h) {\r\n\t\t\t\tfor (var y = t; y < t + h;) {\r\n\t\t\t\t\tfor (var x = l; x < l + w;) {\r\n\t\t\t\t\t\tmatrix[y + '-' + x] = id;\r\n\t\t\t\t\t\t++x > maxX && (maxX = x);\r\n\t\t\t\t\t}\r\n\t\t\t\t\t++y > maxY && (maxY = y);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// set holes on the wall;\r\n\t\t\tfor (var i in holes) {\r\n\t\t\t\tif (holes.hasOwnProperty(i)) {\r\n\t\t\t\t\tfillMatrix(holes[i][\"id\"] || true, holes[i]['top'], holes[i]['left'], holes[i]['width'], holes[i]['height']);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\r\n\t\t\tfor (var b = 0; b < bigLoop; ++b) {\r\n\t\t\t\tif (!items.length) break;\r\n\t\t\t\tfitWidth ? (y = b) : (x = b);\r\n\t\t\t\tlastBlock = null;\r\n\r\n\t\t\t\tfor (var s = 0; s < smallLoop; ++s) {\r\n\t\t\t\t\tif (!items.length) break;\r\n\t\t\t\t\tblock = null;\r\n\t\t\t\t\tfitWidth ? (x = s) : (y = s);\r\n\t\t\t\t\tif (runtime.matrix[y + '-' + x]) continue;\r\n\t\t\t\t\tfreeArea = layoutManager.getFreeArea(y, x, runtime);\r\n\r\n\t\t\t\t\t// trying resize last block to fit free area;\r\n\t\t\t\t\tif (setting.fixSize == null) {\r\n\t\t\t\t\t\t// resize near block to fill gap;\r\n\t\t\t\t\t\tif (lastBlock && !fitWidth && runtime.minHoB > freeArea.height) {\r\n\t\t\t\t\t\t\tlastBlock.height += freeArea.height;\r\n\t\t\t\t\t\t\tlastBlock.resize = true;\r\n\t\t\t\t\t\t\tfillMatrix(lastBlock.id, lastBlock.y, lastBlock.x, lastBlock.width, lastBlock.height);\r\n\t\t\t\t\t\t\tlayoutManager.setBlock(lastBlock, setting);\r\n\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t} else if (lastBlock && fitWidth && runtime.minWoB > freeArea.width) {\r\n\t\t\t\t\t\t\tlastBlock.width += freeArea.width;\r\n\t\t\t\t\t\t\tlastBlock.resize = true;\r\n\t\t\t\t\t\t\tfillMatrix(lastBlock.id, lastBlock.y, lastBlock.x, lastBlock.width, lastBlock.height);\r\n\t\t\t\t\t\t\tlayoutManager.setBlock(lastBlock, setting);\r\n\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// get the next block to keep order;\r\n\t\t\t\t\tif (runtime.keepOrder) {\r\n\t\t\t\t\t\tblock = items.shift();\r\n\t\t\t\t\t\tblock.resize = true;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t// find a suitable block to fit gap;\r\n\t\t\t\t\t\tfor (var i = 0; i < items.length; ++i) {\r\n\t\t\t\t\t\t\tif (items[i].height > freeArea.height) continue;\r\n\t\t\t\t\t\t\tif (items[i].width > freeArea.width) continue;\r\n\t\t\t\t\t\t\tblock = items.splice(i, 1)[0];\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// trying resize the other block to fit gap;\r\n\t\t\t\t\t\tif (block == null && setting.fixSize == null) {\r\n\t\t\t\t\t\t\t// get other block fill to gap;\r\n\t\t\t\t\t\t\tfor (var i = 0; i < items.length; ++i) {\r\n\t\t\t\t\t\t\t\tif (items[i]['fixSize'] != null) continue;\r\n\t\t\t\t\t\t\t\tblock = items.splice(i, 1)[0];\r\n\t\t\t\t\t\t\t\tblock.resize = true;\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\r\n\t\t\t\t\tif (block != null) {\r\n\t\t\t\t\t\t// resize block with free area;\r\n\t\t\t\t\t\tif (block.resize) {\r\n\t\t\t\t\t\t\tif (fitWidth) {\r\n\t\t\t\t\t\t\t\tblock.width = freeArea.width;\r\n\t\t\t\t\t\t\t\tif (setting.cellH == 'auto') {\r\n\t\t\t\t\t\t\t\t\tlayoutManager.adjustBlock(block, setting);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t// for fitZone;\r\n\t\t\t\t\t\t\t\tblock.height = Math.min(block.height, freeArea.height);\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tblock.height = freeArea.height;\r\n\t\t\t\t\t\t\t\t// for fitZone;\r\n\t\t\t\t\t\t\t\tblock.width = Math.min(block.width, freeArea.width);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\twall[block.id] = {\r\n\t\t\t\t\t\t\tid: block.id,\r\n\t\t\t\t\t\t\tx: x,\r\n\t\t\t\t\t\t\ty: y,\r\n\t\t\t\t\t\t\twidth: block.width,\r\n\t\t\t\t\t\t\theight: block.height,\r\n\t\t\t\t\t\t\tresize: block.resize,\r\n\t\t\t\t\t\t\tfixSize: block.fixSize\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t// keep success block for next round;\r\n\t\t\t\t\t\tlastBlock = wall[block.id];\r\n\r\n\t\t\t\t\t\tfillMatrix(lastBlock.id, lastBlock.y, lastBlock.x, lastBlock.width, lastBlock.height);\r\n\t\t\t\t\t\tlayoutManager.setBlock(lastBlock, setting);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t// get expect area;\r\n\t\t\t\t\t\tvar misBlock = {\r\n\t\t\t\t\t\t\tx: x,\r\n\t\t\t\t\t\t\ty: y,\r\n\t\t\t\t\t\t\tfixSize: 0\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t\tif (fitWidth) {\r\n\t\t\t\t\t\t\tmisBlock.width = freeArea.width;\r\n\t\t\t\t\t\t\tmisBlock.height = 0;\r\n\t\t\t\t\t\t\tvar lastX = x - 1;\r\n\t\t\t\t\t\t\tvar lastY = y;\r\n\r\n\t\t\t\t\t\t\twhile (matrix[lastY + '-' + lastX]) {\r\n\t\t\t\t\t\t\t\tmatrix[lastY + '-' + x] = true;\r\n\t\t\t\t\t\t\t\tmisBlock.height += 1;\r\n\t\t\t\t\t\t\t\tlastY += 1;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tmisBlock.height = freeArea.height;\r\n\t\t\t\t\t\t\tmisBlock.width = 0;\r\n\t\t\t\t\t\t\tvar lastY = y - 1;\r\n\t\t\t\t\t\t\tvar lastX = x;\r\n\r\n\t\t\t\t\t\t\twhile (matrix[lastY + '-' + lastX]) {\r\n\t\t\t\t\t\t\t\tmatrix[y + '-' + lastX] = true;\r\n\t\t\t\t\t\t\t\tmisBlock.width += 1;\r\n\t\t\t\t\t\t\t\tlastX += 1;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tsetting.onGapFound(layoutManager.setBlock(misBlock, setting), setting);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\r\n\t\t\truntime.matrix = matrix;\r\n\t\t\truntime.totalRow = maxY;\r\n\t\t\truntime.totalCol = maxX;\r\n\t\t}\r\n\t};\r\n\r\n\r\n\r\n\twindow.freewall = function(selector) {\r\n\r\n\t\tvar container = $(selector);\r\n\t\tif (container.css('position') == 'static') {\r\n\t\t\tcontainer.css('position', 'relative');\r\n\t\t}\r\n\t\tvar MAX = Number.MAX_VALUE;\r\n\t\tvar klass = this;\r\n\t\t// increase the instance index;\r\n\t\tlayoutManager.totalGrid += 1;\r\n\r\n\t\tvar setting = $.extend({}, layoutManager.defaultConfig);\r\n\t\tvar runtime = {\r\n\t\t\targuments: null,\r\n\t\t\tblocks: {}, // store all items;\r\n\t\t\tevents: {}, // store custome events;\r\n\t\t\tmatrix: {},\r\n\t\t\tholes: {}, // forbidden zone;\r\n\r\n\t\t\tcellW: 0,\r\n\t\t\tcellH: 0, // unit adjust;\r\n\t\t\tcellS: 1, // unit scale;\r\n\r\n\t\t\tfilter: '', // filter selector;\r\n\t\t\tlastId: 0,\r\n\t\t\tlength: 0,\r\n\r\n\t\t\tmaxWoB: 0, // max width of block;\r\n\t\t\tmaxHoB: 0,\r\n\t\t\tminWoB: MAX,\r\n\t\t\tminHoB: MAX, // min height of block;\r\n\r\n\t\t\trunning: 0, // flag to check layout arranging;\r\n\r\n\t\t\tgutterX: 15,\r\n\t\t\tgutterY: 15,\r\n\r\n\t\t\ttotalCol: 0,\r\n\t\t\ttotalRow: 0,\r\n\r\n\t\t\tlimitCol: 666666, // maximum column;\r\n\t\t\tlimitRow: 666666,\r\n\r\n\t\t\tsortFunc: null,\r\n\t\t\tkeepOrder: false\r\n\t\t};\r\n\t\tsetting.runtime = runtime;\r\n\t\truntime.totalGrid = layoutManager.totalGrid;\r\n\r\n\t\t// check browser support transition;\r\n\t\tvar bodyStyle = document.body.style;\r\n\t\tif (!layoutManager.transition) {\r\n\t\t\t(bodyStyle.webkitTransition != null ||\r\n\t\t\tbodyStyle.MozTransition != null ||\r\n\t\t\tbodyStyle.msTransition != null ||\r\n\t\t\tbodyStyle.OTransition != null ||\r\n\t\t\tbodyStyle.transition != null) &&\r\n\t\t\t(layoutManager.transition = true);\r\n\t\t}\r\n\r\n\r\n\t\tfunction setDraggable(item) {\r\n\r\n\t\t\tvar gutterX = runtime.gutterX;\r\n\t\t\tvar gutterY = runtime.gutterY;\r\n\t\t\tvar cellH = runtime.cellH;\r\n\t\t\tvar cellW = runtime.cellW;\r\n\t\t\tvar $item = $(item);\r\n\t\t\tvar handle = $item.find($item.attr(\"data-handle\"));\r\n\t\t\tlayoutManager.setDraggable(item, {\r\n\t\t\t\thandle: handle[0],\r\n\t\t\t\tonStart: function(event) {\r\n\t\t\t\t\tif (setting.animate && layoutManager.transition) {\r\n\t\t\t\t\t\tlayoutManager.setTransition(this, \"\");\r\n\t\t\t\t\t}\r\n\t\t\t\t\t$item.css('z-index', 9999).addClass('fw-float');\r\n\r\n\t\t\t\t\tsetting.onBlockDrag.call(item, event);\r\n\t\t\t\t},\r\n\t\t\t\tonDrag: function(event, tracker) {\r\n\t\t\t\t\tvar position = $item.position();\r\n\t\t\t\t\tvar top = Math.round(position.top / cellH);\r\n\t\t\t\t\tvar left = Math.round(position.left / cellW);\r\n\t\t\t\t\tvar width = Math.round($item.width() / cellW);\r\n\t\t\t\t\tvar height = Math.round($item.height() / cellH);\r\n\t\t\t\t\ttop = Math.min(Math.max(0, top), runtime.limitRow - height);\r\n\t\t\t\t\tleft = Math.min(Math.max(0, left), runtime.limitCol - width);\r\n\t\t\t\t\tklass.setHoles({top: top, left: left, width: width, height: height});\r\n\t\t\t\t\tklass.refresh();\r\n\r\n\t\t\t\t\tsetting.onBlockMove.call(item, event);\r\n\t\t\t\t},\r\n\t\t\t\tonDrop: function(event) {\r\n\t\t\t\t\tvar position = $item.position();\r\n\t\t\t\t\tvar top = Math.round(position.top / cellH);\r\n\t\t\t\t\tvar left = Math.round(position.left / cellW);\r\n\t\t\t\t\tvar width = Math.round($item.width() / cellW);\r\n\t\t\t\t\tvar height = Math.round($item.height() / cellH);\r\n\t\t\t\t\ttop = Math.min(Math.max(0, top), runtime.limitRow - height);\r\n\t\t\t\t\tleft = Math.min(Math.max(0, left), runtime.limitCol - width);\r\n\r\n\t\t\t\t\t$item.removeClass('fw-float');\r\n\t\t\t\t\t$item.css({\r\n\t\t\t\t\t\tzIndex: \"auto\",\r\n\t\t\t\t\t\ttop: top * cellH,\r\n\t\t\t\t\t\tleft: left * cellW\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\t//check old drag element;\r\n\t\t\t\t\tvar x, y, key, oldDropId;\r\n\t\t\t\t\tfor (y = 0; y < height; ++y) {\r\n\t\t\t\t\t\tfor (x = 0; x < width; ++x) {\r\n\t\t\t\t\t\t\tkey = (y + top) + \"-\" + (x + left);\r\n\t\t\t\t\t\t\toldDropId = runtime.matrix[key];\r\n\t\t\t\t\t\t\tif (oldDropId && oldDropId != true) {\r\n\t\t\t\t\t\t\t\t$(\"#\" + oldDropId).removeAttr(\"data-position\");\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\truntime.holes = {};\r\n\r\n\t\t\t\t\t$item.attr({\r\n\t\t\t\t\t\t\"data-width\": $item.width(),\r\n\t\t\t\t\t\t\"data-height\": $item.height(),\r\n\t\t\t\t\t\t\"data-position\": top + \"-\" + left\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tklass.refresh();\r\n\r\n\t\t\t\t\tsetting.onBlockDrop.call(item, event);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\r\n\t\t$.extend(klass, {\r\n\r\n\t\t\taddCustomEvent: function(name, func) {\r\n\t\t\t\tvar events = runtime.events;\r\n\t\t\t\tname = name.toLowerCase();\r\n\t\t\t\t!events[name] && (events[name] = []);\r\n\t\t\t\tfunc.eid = events[name].length;\r\n\t\t\t\tevents[name].push(func);\r\n\t\t\t\treturn this;\r\n\t\t\t},\r\n\r\n\t\t\tappendBlock: function(items) {\r\n\t\t\t\tvar allBlock = $(items).appendTo(container);\r\n\t\t\t\tvar block = null;\r\n\t\t\t\tvar activeBlock = [];\r\n\r\n\t\t\t\tif (runtime.arguments) {\r\n\r\n\t\t\t\t\tif ($.isFunction(runtime.sortFunc)) {\r\n\t\t\t\t\t\tallBlock.sort(runtime.sortFunc);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tallBlock.each(function(index, item) {\r\n\t\t\t\t\t\titem.index = ++index;\r\n\t\t\t\t\t\tblock = layoutManager.loadBlock(item, setting);\r\n\t\t\t\t\t\tblock && activeBlock.push(block);\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tengine[setting.engine](activeBlock, setting);\r\n\r\n\t\t\t\t\tlayoutManager.setWallSize(runtime, container);\r\n\r\n\t\t\t\t\truntime.length = allBlock.length;\r\n\r\n\t\t\t\t\tallBlock.each(function(index, item) {\r\n\t\t\t\t\t\tlayoutManager.showBlock(item, setting);\r\n\t\t\t\t\t\tif (setting.draggable || item.getAttribute('data-draggable')) {\r\n\t\t\t\t\t\t\tsetDraggable(item);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t/*\r\n\t\t\t add one or more blank area (hole) on layout;\r\n\t\t\t example:\r\n\r\n\t\t\t wall.appendHoles({\r\n\t\t\t top: 10,\r\n\t\t\t left: 36,\r\n\t\t\t width: 2,\r\n\t\t\t height: 6\r\n\t\t\t });\r\n\r\n\t\t\t wall.appendHoles([\r\n\t\t\t {\r\n\t\t\t top: 16,\r\n\t\t\t left: 16,\r\n\t\t\t width: 8,\r\n\t\t\t height: 2\r\n\t\t\t },\r\n\t\t\t {\r\n\t\t\t top: 10,\r\n\t\t\t left: 36,\r\n\t\t\t width: 2,\r\n\t\t\t height: 6\r\n\t\t\t }\r\n\t\t\t ]);\r\n\r\n\t\t\t */\r\n\t\t\tappendHoles: function(holes) {\r\n\t\t\t\tvar newHoles = [].concat(holes), h = {}, i;\r\n\t\t\t\tfor (i = 0; i < newHoles.length; ++i) {\r\n\t\t\t\t\th = newHoles[i];\r\n\t\t\t\t\truntime.holes[h.top + \"-\" + h.left + \"-\" + h.width + \"-\" + h.height] = h;\r\n\t\t\t\t}\r\n\t\t\t\treturn this;\r\n\t\t\t},\r\n\r\n\t\t\tcontainer: container,\r\n\r\n\t\t\tdestroy: function() {\r\n\t\t\t\tvar allBlock = container.find(setting.selector).removeAttr('id'),\r\n\t\t\t\t\tblock = null,\r\n\t\t\t\t\tactiveBlock = [];\r\n\r\n\t\t\t\tallBlock.each(function(index, item) {\r\n\t\t\t\t\t$item = $(item);\r\n\t\t\t\t\tvar width = 1 * $item.attr('data-width') || \"\";\r\n\t\t\t\t\tvar height = 1 * $item.attr('data-height') || \"\";\r\n\t\t\t\t\t$item.width(width).height(height).css({\r\n\t\t\t\t\t\tposition: 'static'\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t\t\t},\r\n\r\n\t\t\tfillHoles: function(holes) {\r\n\t\t\t\tif (arguments.length == 0) {\r\n\t\t\t\t\truntime.holes = {};\r\n\t\t\t\t} else {\r\n\t\t\t\t\tvar newHoles = [].concat(holes), h = {}, i;\r\n\t\t\t\t\tfor (i = 0; i < newHoles.length; ++i) {\r\n\t\t\t\t\t\th = newHoles[i];\r\n\t\t\t\t\t\tdelete runtime.holes[h.top + \"-\" + h.left + \"-\" + h.width + \"-\" + h.height];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\treturn this;\r\n\t\t\t},\r\n\r\n\t\t\tfilter: function(filter) {\r\n\t\t\t\truntime.filter = filter;\r\n\t\t\t\tif (runtime.arguments) {\r\n\t\t\t\t\tthis.refresh();\r\n\t\t\t\t}\r\n\t\t\t\treturn this;\r\n\t\t\t},\r\n\r\n\t\t\tfireEvent: function(name, object, setting) {\r\n\t\t\t\tvar events = runtime.events;\r\n\t\t\t\tname = name.toLowerCase();\r\n\t\t\t\tif (events[name] && events[name].length) {\r\n\t\t\t\t\tfor (var i = 0; i < events[name].length; ++i) {\r\n\t\t\t\t\t\tevents[name][i].call(this, object, setting);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\treturn this;\r\n\t\t\t},\r\n\r\n\t\t\tfitHeight: function(height) {\r\n\t\t\t\tvar allBlock = container.find(setting.selector).removeAttr('id'),\r\n\t\t\t\t\tblock = null,\r\n\t\t\t\t\tactiveBlock = [];\r\n\r\n\t\t\t\theight = height ? height : container.height() || $W.height();\r\n\r\n\t\t\t\truntime.arguments = arguments;\r\n\r\n\t\t\t\tlayoutManager.resetGrid(runtime);\r\n\t\t\t\tlayoutManager.adjustUnit('auto', height, setting);\r\n\r\n\t\t\t\tif (runtime.filter) {\r\n\t\t\t\t\tallBlock.data('active', 0);\r\n\t\t\t\t\tallBlock.filter(runtime.filter).data('active', 1);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tallBlock.data('active', 1);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif ($.isFunction(runtime.sortFunc)) {\r\n\t\t\t\t\tallBlock.sort(runtime.sortFunc);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tallBlock.each(function(index, item) {\r\n\t\t\t\t\tvar $item = $(item);\r\n\t\t\t\t\titem.index = ++index;\r\n\t\t\t\t\tblock = layoutManager.loadBlock(item, setting);\r\n\t\t\t\t\tblock && $item.data(\"active\") && activeBlock.push(block);\r\n\t\t\t\t});\r\n\r\n\t\t\t\tklass.fireEvent('onGridReady', container, setting);\r\n\r\n\t\t\t\tengine[setting.engine](activeBlock, setting);\r\n\r\n\t\t\t\tlayoutManager.setWallSize(runtime, container);\r\n\r\n\t\t\t\tklass.fireEvent('onGridArrange', container, setting);\r\n\r\n\t\t\t\truntime.length = allBlock.length;\r\n\r\n\t\t\t\tallBlock.each(function(index, item) {\r\n\t\t\t\t\tlayoutManager.showBlock(item, setting);\r\n\t\t\t\t\tif (setting.draggable || item.getAttribute('data-draggable')) {\r\n\t\t\t\t\t\tsetDraggable(item);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t},\r\n\r\n\t\t\tfitWidth: function(width) {\r\n\t\t\t\tvar allBlock = container.find(setting.selector).removeAttr('id'),\r\n\t\t\t\t\tblock = null,\r\n\t\t\t\t\tactiveBlock = [];\r\n\r\n\t\t\t\twidth = width ? width : container.width() || $W.width();\r\n\r\n\t\t\t\truntime.arguments = arguments;\r\n\r\n\t\t\t\tlayoutManager.resetGrid(runtime);\r\n\t\t\t\tlayoutManager.adjustUnit(width, 'auto', setting);\r\n\r\n\t\t\t\tif (runtime.filter) {\r\n\t\t\t\t\tallBlock.data('active', 0);\r\n\t\t\t\t\tallBlock.filter(runtime.filter).data('active', 1);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tallBlock.data('active', 1);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif ($.isFunction(runtime.sortFunc)) {\r\n\t\t\t\t\tallBlock.sort(runtime.sortFunc);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tallBlock.each(function(index, item) {\r\n\t\t\t\t\tvar $item = $(item);\r\n\t\t\t\t\titem.index = ++index;\r\n\t\t\t\t\tblock = layoutManager.loadBlock(item, setting);\r\n\t\t\t\t\tblock && $item.data(\"active\") && activeBlock.push(block);\r\n\t\t\t\t});\r\n\r\n\t\t\t\tklass.fireEvent('onGridReady', container, setting);\r\n\r\n\t\t\t\tengine[setting.engine](activeBlock, setting);\r\n\r\n\t\t\t\tlayoutManager.setWallSize(runtime, container);\r\n\r\n\t\t\t\tklass.fireEvent('onGridArrange', container, setting);\r\n\r\n\t\t\t\truntime.length = allBlock.length;\r\n\r\n\t\t\t\tallBlock.each(function(index, item) {\r\n\t\t\t\t\tlayoutManager.showBlock(item, setting);\r\n\t\t\t\t\tif (setting.draggable || item.getAttribute('data-draggable')) {\r\n\t\t\t\t\t\tsetDraggable(item);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t},\r\n\r\n\t\t\tfitZone: function(width, height) {\r\n\t\t\t\tvar allBlock = container.find(setting.selector).removeAttr('id'),\r\n\t\t\t\t\tblock = null,\r\n\t\t\t\t\tactiveBlock = [];\r\n\r\n\t\t\t\theight = height ? height : container.height() || $W.height();\r\n\t\t\t\twidth = width ? width : container.width() || $W.width();\r\n\r\n\t\t\t\truntime.arguments = arguments;\r\n\r\n\t\t\t\tlayoutManager.resetGrid(runtime);\r\n\t\t\t\tlayoutManager.adjustUnit(width, height, setting);\r\n\r\n\t\t\t\tif (runtime.filter) {\r\n\t\t\t\t\tallBlock.data('active', 0);\r\n\t\t\t\t\tallBlock.filter(runtime.filter).data('active', 1);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tallBlock.data('active', 1);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif ($.isFunction(runtime.sortFunc)) {\r\n\t\t\t\t\tallBlock.sort(runtime.sortFunc);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tallBlock.each(function(index, item) {\r\n\t\t\t\t\tvar $item = $(item);\r\n\t\t\t\t\titem.index = ++index;\r\n\t\t\t\t\tblock = layoutManager.loadBlock(item, setting);\r\n\t\t\t\t\tblock && $item.data(\"active\") && activeBlock.push(block);\r\n\t\t\t\t});\r\n\r\n\t\t\t\tklass.fireEvent('onGridReady', container, setting);\r\n\r\n\t\t\t\tengine[setting.engine](activeBlock, setting);\r\n\r\n\t\t\t\tlayoutManager.setWallSize(runtime, container);\r\n\r\n\t\t\t\tklass.fireEvent('onGridArrange', container, setting);\r\n\r\n\t\t\t\truntime.length = allBlock.length;\r\n\r\n\t\t\t\tallBlock.each(function(index, item) {\r\n\t\t\t\t\tlayoutManager.showBlock(item, setting);\r\n\t\t\t\t\tif (setting.draggable || item.getAttribute('data-draggable')) {\r\n\t\t\t\t\t\tsetDraggable(item);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t},\r\n\r\n\t\t\t/*\r\n\t\t\t set block with special position, the top and left are multiple of unit width/height;\r\n\t\t\t example:\r\n\r\n\t\t\t wall.fixPos({\r\n\t\t\t top: 0,\r\n\t\t\t left: 0,\r\n\t\t\t block: $('.free')\r\n\t\t\t });\r\n\t\t\t */\r\n\t\t\tfixPos: function(option) {\r\n\t\t\t\t$(option.block).attr({'data-position': option.top + \"-\" + option.left});\r\n\t\t\t\treturn this;\r\n\t\t\t},\r\n\r\n\t\t\t/*\r\n\t\t\t set block with special size, the width and height are multiple of unit width/height;\r\n\t\t\t example:\r\n\r\n\t\t\t wall.fixSize({\r\n\t\t\t height: 5,\r\n\t\t\t width: 2,\r\n\t\t\t block: $('.free')\r\n\t\t\t });\r\n\t\t\t */\r\n\t\t\tfixSize: function(option) {\r\n\t\t\t\toption.height != null && $(option.block).attr({'data-height': option.height});\r\n\t\t\t\toption.width != null && $(option.block).attr({'data-width': option.width});\r\n\t\t\t\treturn this;\r\n\t\t\t},\r\n\r\n\t\t\tprepend: function(items) {\r\n\t\t\t\tcontainer.prepend(items);\r\n\t\t\t\tif (runtime.arguments) {\r\n\t\t\t\t\tthis.refresh();\r\n\t\t\t\t}\r\n\t\t\t\treturn this;\r\n\t\t\t},\r\n\r\n\t\t\trefresh: function() {\r\n\t\t\t\tvar params = arguments.length ? arguments : runtime.arguments;\r\n\t\t\t\tvar oldArg = runtime.arguments;\r\n\t\t\t\tvar method = oldArg ? oldArg.callee : this.fitWidth;\r\n\t\t\t\tmethod.apply(this, Array.prototype.slice.call(params, 0));\r\n\t\t\t\treturn this;\r\n\t\t\t},\r\n\r\n\t\t\t/*\r\n\t\t\t custom layout setting;\r\n\t\t\t example:\r\n\r\n\t\t\t wall.reset({\r\n\t\t\t selector: '.brick',\r\n\t\t\t animate: true,\r\n\t\t\t cellW: 160,\r\n\t\t\t cellH: 160,\r\n\t\t\t delay: 50,\r\n\t\t\t onResize: function() {\r\n\t\t\t wall.fitWidth();\r\n\t\t\t }\r\n\t\t\t });\r\n\t\t\t */\r\n\t\t\treset: function(option) {\r\n\t\t\t\t$.extend(setting, option);\r\n\t\t\t\treturn this;\r\n\t\t\t},\r\n\r\n\t\t\t/*\r\n\t\t\t create one or more blank area (hole) on layout;\r\n\t\t\t example:\r\n\r\n\t\t\t wall.setHoles({\r\n\t\t\t top: 2,\r\n\t\t\t left: 2,\r\n\t\t\t width: 2,\r\n\t\t\t height: 2\r\n\t\t\t });\r\n\t\t\t */\r\n\r\n\t\t\tsetHoles: function(holes) {\r\n\t\t\t\tvar newHoles = [].concat(holes), h = {}, i;\r\n\t\t\t\truntime.holes = {};\r\n\t\t\t\tfor (i = 0; i < newHoles.length; ++i) {\r\n\t\t\t\t\th = newHoles[i];\r\n\t\t\t\t\truntime.holes[h.top + \"-\" + h.left + \"-\" + h.width + \"-\" + h.height] = h;\r\n\t\t\t\t}\r\n\t\t\t\treturn this;\r\n\t\t\t},\r\n\t\t\t/*\r\n\t\t\t sort items by using array sort function;\r\n\t\t\t example:\r\n\r\n\t\t\t wall.sortBy(function(itemA, itemB) {\r\n\t\t\t return $(itemA).width() - $(itemB).width();\r\n\t\t\t });\r\n\t\t\t */\r\n\t\t\tsortBy: function(func) {\r\n\t\t\t\truntime.sortFunc = func;\r\n\t\t\t\tif (runtime.arguments) {\r\n\t\t\t\t\tthis.refresh();\r\n\t\t\t\t}\r\n\t\t\t\treturn this;\r\n\t\t\t},\r\n\r\n\t\t\tunFilter: function() {\r\n\t\t\t\tdelete runtime.filter;\r\n\t\t\t\tthis.refresh();\r\n\t\t\t\treturn this;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tcontainer.attr('data-min-width', Math.floor($W.width() / 80) * 80);\r\n\t\t// execute plugins;\r\n\t\tfor (var i in layoutManager.plugin) {\r\n\t\t\tif (layoutManager.plugin.hasOwnProperty(i)) {\r\n\t\t\t\tlayoutManager.plugin[i].call(klass, setting, container);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// setup resize event;\r\n\t\t$W.resize(function() {\r\n\t\t\tif (runtime.running) return;\r\n\t\t\truntime.running = 1;\r\n\t\t\tsetTimeout(function() {\r\n\t\t\t\truntime.running = 0;\r\n\t\t\t\tsetting.onResize.call(klass, container);\r\n\t\t\t}, 122);\r\n\t\t\tcontainer.attr('data-min-width', Math.floor($W.width() / 80) * 80);\r\n\t\t});\r\n\t};\r\n\r\n\t/*\r\n\t add default setting;\r\n\t example:\r\n\r\n\t freewall.addConfig({\r\n\t offsetLeft: 0\r\n\t });\r\n\t */\r\n\tfreewall.addConfig = function(newConfig) {\r\n\t\t// add default setting;\r\n\t\t$.extend(layoutManager.defaultConfig, newConfig);\r\n\t};\r\n\r\n\r\n\t/*\r\n\t support create new arrange algorithm;\r\n\t example:\r\n\r\n\t freewall.createEngine({\r\n\t slice: function(items, setting) {\r\n\t // slice engine;\r\n\t }\r\n\t });\r\n\t */\r\n\tfreewall.createEngine = function(engineData) {\r\n\t\t// create new engine;\r\n\t\t$.extend(engine, engineData);\r\n\t};\r\n\r\n\t/*\r\n\t support create new plugin;\r\n\t example:\r\n\r\n\t freewall.createPlugin({\r\n\t centering: function(setting, container) {\r\n\t console.log(this);\r\n\t console.log(setting);\r\n\t }\r\n\t })l\r\n\t */\r\n\tfreewall.createPlugin = function(pluginData) {\r\n\t\t// register new plugin;\r\n\t\t$.extend(layoutManager.plugin, pluginData);\r\n\t};\r\n\r\n\t/*\r\n\t support access helper function;\r\n\t example:\r\n\r\n\t freewall.getMethod('setBlock')(block, setting);\r\n\t */\r\n\tfreewall.getMethod = function(method) {\r\n\t\t// get helper method;\r\n\t\treturn layoutManager[method];\r\n\t};\r\n\r\n})(window.Zepto || window.jQuery);","/*globals jQuery, define, exports, require, window, document */\r\n(function (factory) {\r\n\t\"use strict\";\r\n\tif (typeof define === 'function' && define.amd) {\r\n\t\tdefine(['jquery'], factory);\r\n\t}\r\n\telse if(typeof exports === 'object') {\r\n\t\tfactory(require('jquery'));\r\n\t}\r\n\telse {\r\n\t\tfactory(jQuery);\r\n\t}\r\n}(function ($, undefined) {\r\n\t\"use strict\";\r\n/*!\r\n * jsTree 3.0.0\r\n * http://jstree.com/\r\n *\r\n * Copyright (c) 2013 Ivan Bozhanov (http://vakata.com)\r\n *\r\n * Licensed same as jquery - under the terms of the MIT License\r\n * http://www.opensource.org/licenses/mit-license.php\r\n */\r\n/*!\r\n * if using jslint please allow for the jQuery global and use following options: \r\n * jslint: browser: true, ass: true, bitwise: true, continue: true, nomen: true, plusplus: true, regexp: true, unparam: true, todo: true, white: true\r\n */\r\n\r\n\t// prevent another load? maybe there is a better way?\r\n\tif($.jstree) {\r\n\t\treturn;\r\n\t}\r\n\r\n\t/**\r\n\t * ### jsTree core functionality\r\n\t */\r\n\r\n\t// internal variables\r\n\tvar instance_counter = 0,\r\n\t\tccp_node = false,\r\n\t\tccp_mode = false,\r\n\t\tccp_inst = false,\r\n\t\tthemes_loaded = [],\r\n\t\tsrc = $('script:last').attr('src'),\r\n\t\t_d = document, _node = _d.createElement('LI'), _temp1, _temp2;\r\n\r\n\t_node.setAttribute('role', 'treeitem');\r\n\t_temp1 = _d.createElement('I');\r\n\t_temp1.className = 'jstree-icon jstree-ocl';\r\n\t_node.appendChild(_temp1);\r\n\t_temp1 = _d.createElement('A');\r\n\t_temp1.className = 'jstree-anchor';\r\n\t_temp1.setAttribute('href','#');\r\n\t_temp2 = _d.createElement('I');\r\n\t_temp2.className = 'jstree-icon jstree-themeicon';\r\n\t_temp1.appendChild(_temp2);\r\n\t_node.appendChild(_temp1);\r\n\t_temp1 = _temp2 = null;\r\n\r\n\r\n\t/**\r\n\t * holds all jstree related functions and variables, including the actual class and methods to create, access and manipulate instances.\r\n\t * @name $.jstree\r\n\t */\r\n\t$.jstree = {\r\n\t\t/** \r\n\t\t * specifies the jstree version in use\r\n\t\t * @name $.jstree.version\r\n\t\t */\r\n\t\tversion : '3.0.1',\r\n\t\t/**\r\n\t\t * holds all the default options used when creating new instances\r\n\t\t * @name $.jstree.defaults\r\n\t\t */\r\n\t\tdefaults : {\r\n\t\t\t/**\r\n\t\t\t * configure which plugins will be active on an instance. Should be an array of strings, where each element is a plugin name. The default is `[]`\r\n\t\t\t * @name $.jstree.defaults.plugins\r\n\t\t\t */\r\n\t\t\tplugins : []\r\n\t\t},\r\n\t\t/**\r\n\t\t * stores all loaded jstree plugins (used internally)\r\n\t\t * @name $.jstree.plugins\r\n\t\t */\r\n\t\tplugins : {},\r\n\t\tpath : src && src.indexOf('/') !== -1 ? src.replace(/\\/[^\\/]+$/,'') : '',\r\n\t\tidregex : /[\\\\:&!^|()\\[\\]<>@*'+~#\";.,=\\- \\/$]/g\r\n\t};\r\n\t/**\r\n\t * creates a jstree instance\r\n\t * @name $.jstree.create(el [, options])\r\n\t * @param {DOMElement|jQuery|String} el the element to create the instance on, can be jQuery extended or a selector\r\n\t * @param {Object} options options for this instance (extends `$.jstree.defaults`)\r\n\t * @return {jsTree} the new instance\r\n\t */\r\n\t$.jstree.create = function (el, options) {\r\n\t\tvar tmp = new $.jstree.core(++instance_counter),\r\n\t\t\topt = options;\r\n\t\toptions = $.extend(true, {}, $.jstree.defaults, options);\r\n\t\tif(opt && opt.plugins) {\r\n\t\t\toptions.plugins = opt.plugins;\r\n\t\t}\r\n\t\t$.each(options.plugins, function (i, k) {\r\n\t\t\tif(i !== 'core') {\r\n\t\t\t\ttmp = tmp.plugin(k, options[k]);\r\n\t\t\t}\r\n\t\t});\r\n\t\ttmp.init(el, options);\r\n\t\treturn tmp;\r\n\t};\r\n\t/**\r\n\t * the jstree class constructor, used only internally\r\n\t * @private\r\n\t * @name $.jstree.core(id)\r\n\t * @param {Number} id this instance's index\r\n\t */\r\n\t$.jstree.core = function (id) {\r\n\t\tthis._id = id;\r\n\t\tthis._cnt = 0;\r\n\t\tthis._wrk = null;\r\n\t\tthis._data = {\r\n\t\t\tcore : {\r\n\t\t\t\tthemes : {\r\n\t\t\t\t\tname : false,\r\n\t\t\t\t\tdots : false,\r\n\t\t\t\t\ticons : false\r\n\t\t\t\t},\r\n\t\t\t\tselected : [],\r\n\t\t\t\tlast_error : {}\r\n\t\t\t}\r\n\t\t};\r\n\t};\r\n\t/**\r\n\t * get a reference to an existing instance\r\n\t *\r\n\t * __Examples__\r\n\t *\r\n\t *\t// provided a container with an ID of \"tree\", and a nested node with an ID of \"branch\"\r\n\t *\t// all of there will return the same instance\r\n\t *\t$.jstree.reference('tree');\r\n\t *\t$.jstree.reference('#tree');\r\n\t *\t$.jstree.reference($('#tree'));\r\n\t *\t$.jstree.reference(document.getElementByID('tree'));\r\n\t *\t$.jstree.reference('branch');\r\n\t *\t$.jstree.reference('#branch');\r\n\t *\t$.jstree.reference($('#branch'));\r\n\t *\t$.jstree.reference(document.getElementByID('branch'));\r\n\t *\r\n\t * @name $.jstree.reference(needle)\r\n\t * @param {DOMElement|jQuery|String} needle\r\n\t * @return {jsTree|null} the instance or `null` if not found\r\n\t */\r\n\t$.jstree.reference = function (needle) {\r\n\t\tvar tmp = null,\r\n\t\t\tobj = null;\r\n\t\tif(needle && needle.id) { needle = needle.id; }\r\n\r\n\t\tif(!obj || !obj.length) {\r\n\t\t\ttry { obj = $(needle); } catch (ignore) { }\r\n\t\t}\r\n\t\tif(!obj || !obj.length) {\r\n\t\t\ttry { obj = $('#' + needle.replace($.jstree.idregex,'\\\\$&')); } catch (ignore) { }\r\n\t\t}\r\n\t\tif(obj && obj.length && (obj = obj.closest('.jstree')).length && (obj = obj.data('jstree'))) {\r\n\t\t\ttmp = obj;\r\n\t\t}\r\n\t\telse {\r\n\t\t\t$('.jstree').each(function () {\r\n\t\t\t\tvar inst = $(this).data('jstree');\r\n\t\t\t\tif(inst && inst._model.data[needle]) {\r\n\t\t\t\t\ttmp = inst;\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t\treturn tmp;\r\n\t};\r\n\t/**\r\n\t * Create an instance, get an instance or invoke a command on a instance. \r\n\t * \r\n\t * If there is no instance associated with the current node a new one is created and `arg` is used to extend `$.jstree.defaults` for this new instance. There would be no return value (chaining is not broken).\r\n\t * \r\n\t * If there is an existing instance and `arg` is a string the command specified by `arg` is executed on the instance, with any additional arguments passed to the function. If the function returns a value it will be returned (chaining could break depending on function).\r\n\t * \r\n\t * If there is an existing instance and `arg` is not a string the instance itself is returned (similar to `$.jstree.reference`).\r\n\t * \r\n\t * In any other case - nothing is returned and chaining is not broken.\r\n\t *\r\n\t * __Examples__\r\n\t *\r\n\t *\t$('#tree1').jstree(); // creates an instance\r\n\t *\t$('#tree2').jstree({ plugins : [] }); // create an instance with some options\r\n\t *\t$('#tree1').jstree('open_node', '#branch_1'); // call a method on an existing instance, passing additional arguments\r\n\t *\t$('#tree2').jstree(); // get an existing instance (or create an instance)\r\n\t *\t$('#tree2').jstree(true); // get an existing instance (will not create new instance)\r\n\t *\t$('#branch_1').jstree().select_node('#branch_1'); // get an instance (using a nested element and call a method)\r\n\t *\r\n\t * @name $().jstree([arg])\r\n\t * @param {String|Object} arg\r\n\t * @return {Mixed}\r\n\t */\r\n\t$.fn.jstree = function (arg) {\r\n\t\t// check for string argument\r\n\t\tvar is_method\t= (typeof arg === 'string'),\r\n\t\t\targs\t\t= Array.prototype.slice.call(arguments, 1),\r\n\t\t\tresult\t\t= null;\r\n\t\tthis.each(function () {\r\n\t\t\t// get the instance (if there is one) and method (if it exists)\r\n\t\t\tvar instance = $.jstree.reference(this),\r\n\t\t\t\tmethod = is_method && instance ? instance[arg] : null;\r\n\t\t\t// if calling a method, and method is available - execute on the instance\r\n\t\t\tresult = is_method && method ?\r\n\t\t\t\tmethod.apply(instance, args) :\r\n\t\t\t\tnull;\r\n\t\t\t// if there is no instance and no method is being called - create one\r\n\t\t\tif(!instance && !is_method && (arg === undefined || $.isPlainObject(arg))) {\r\n\t\t\t\t$(this).data('jstree', new $.jstree.create(this, arg));\r\n\t\t\t}\r\n\t\t\t// if there is an instance and no method is called - return the instance\r\n\t\t\tif( (instance && !is_method) || arg === true ) {\r\n\t\t\t\tresult = instance || false;\r\n\t\t\t}\r\n\t\t\t// if there was a method call which returned a result - break and return the value\r\n\t\t\tif(result !== null && result !== undefined) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t});\r\n\t\t// if there was a method call with a valid return value - return that, otherwise continue the chain\r\n\t\treturn result !== null && result !== undefined ?\r\n\t\t\tresult : this;\r\n\t};\r\n\t/**\r\n\t * used to find elements containing an instance\r\n\t *\r\n\t * __Examples__\r\n\t *\r\n\t *\t$('div:jstree').each(function () {\r\n\t *\t\t$(this).jstree('destroy');\r\n\t *\t});\r\n\t *\r\n\t * @name $(':jstree')\r\n\t * @return {jQuery}\r\n\t */\r\n\t$.expr[':'].jstree = $.expr.createPseudo(function(search) {\r\n\t\treturn function(a) {\r\n\t\t\treturn $(a).hasClass('jstree') &&\r\n\t\t\t\t$(a).data('jstree') !== undefined;\r\n\t\t};\r\n\t});\r\n\r\n\t/**\r\n\t * stores all defaults for the core\r\n\t * @name $.jstree.defaults.core\r\n\t */\r\n\t$.jstree.defaults.core = {\r\n\t\t/**\r\n\t\t * data configuration\r\n\t\t * \r\n\t\t * If left as `false` the HTML inside the jstree container element is used to populate the tree (that should be an unordered list with list items).\r\n\t\t *\r\n\t\t * You can also pass in a HTML string or a JSON array here.\r\n\t\t * \r\n\t\t * It is possible to pass in a standard jQuery-like AJAX config and jstree will automatically determine if the response is JSON or HTML and use that to populate the tree. \r\n\t\t * In addition to the standard jQuery ajax options here you can suppy functions for `data` and `url`, the functions will be run in the current instance's scope and a param will be passed indicating which node is being loaded, the return value of those functions will be used.\r\n\t\t * \r\n\t\t * The last option is to specify a function, that function will receive the node being loaded as argument and a second param which is a function which should be called with the result.\r\n\t\t *\r\n\t\t * __Examples__\r\n\t\t *\r\n\t\t *\t// AJAX\r\n\t\t *\t$('#tree').jstree({\r\n\t\t *\t\t'core' : {\r\n\t\t *\t\t\t'data' : {\r\n\t\t *\t\t\t\t'url' : '/get/children/',\r\n\t\t *\t\t\t\t'data' : function (node) {\r\n\t\t *\t\t\t\t\treturn { 'id' : node.id };\r\n\t\t *\t\t\t\t}\r\n\t\t *\t\t\t}\r\n\t\t *\t\t});\r\n\t\t *\r\n\t\t *\t// direct data\r\n\t\t *\t$('#tree').jstree({\r\n\t\t *\t\t'core' : {\r\n\t\t *\t\t\t'data' : [\r\n\t\t *\t\t\t\t'Simple root node',\r\n\t\t *\t\t\t\t{\r\n\t\t *\t\t\t\t\t'id' : 'node_2',\r\n\t\t *\t\t\t\t\t'text' : 'Root node with options',\r\n\t\t *\t\t\t\t\t'state' : { 'opened' : true, 'selected' : true },\r\n\t\t *\t\t\t\t\t'children' : [ { 'text' : 'Child 1' }, 'Child 2']\r\n\t\t *\t\t\t\t}\r\n\t\t *\t\t\t]\r\n\t\t *\t\t});\r\n\t\t *\t\r\n\t\t *\t// function\r\n\t\t *\t$('#tree').jstree({\r\n\t\t *\t\t'core' : {\r\n\t\t *\t\t\t'data' : function (obj, callback) {\r\n\t\t *\t\t\t\tcallback.call(this, ['Root 1', 'Root 2']);\r\n\t\t *\t\t\t}\r\n\t\t *\t\t});\r\n\t\t * \r\n\t\t * @name $.jstree.defaults.core.data\r\n\t\t */\r\n\t\tdata\t\t\t: false,\r\n\t\t/**\r\n\t\t * configure the various strings used throughout the tree\r\n\t\t *\r\n\t\t * You can use an object where the key is the string you need to replace and the value is your replacement.\r\n\t\t * Another option is to specify a function which will be called with an argument of the needed string and should return the replacement.\r\n\t\t * If left as `false` no replacement is made.\r\n\t\t *\r\n\t\t * __Examples__\r\n\t\t *\r\n\t\t *\t$('#tree').jstree({\r\n\t\t *\t\t'core' : {\r\n\t\t *\t\t\t'strings' : {\r\n\t\t *\t\t\t\t'Loading...' : 'Please wait ...'\r\n\t\t *\t\t\t}\r\n\t\t *\t\t}\r\n\t\t *\t});\r\n\t\t *\r\n\t\t * @name $.jstree.defaults.core.strings\r\n\t\t */\r\n\t\tstrings\t\t\t: false,\r\n\t\t/**\r\n\t\t * determines what happens when a user tries to modify the structure of the tree\r\n\t\t * If left as `false` all operations like create, rename, delete, move or copy are prevented.\r\n\t\t * You can set this to `true` to allow all interactions or use a function to have better control.\r\n\t\t *\r\n\t\t * __Examples__\r\n\t\t *\r\n\t\t *\t$('#tree').jstree({\r\n\t\t *\t\t'core' : {\r\n\t\t *\t\t\t'check_callback' : function (operation, node, node_parent, node_position, more) {\r\n\t\t *\t\t\t\t// operation can be 'create_node', 'rename_node', 'delete_node', 'move_node' or 'copy_node'\r\n\t\t *\t\t\t\t// in case of 'rename_node' node_position is filled with the new node name\r\n\t\t *\t\t\t\treturn operation === 'rename_node' ? true : false;\r\n\t\t *\t\t\t}\r\n\t\t *\t\t}\r\n\t\t *\t});\r\n\t\t * \r\n\t\t * @name $.jstree.defaults.core.check_callback\r\n\t\t */\r\n\t\tcheck_callback\t: false,\r\n\t\t/**\r\n\t\t * a callback called with a single object parameter in the instance's scope when something goes wrong (operation prevented, ajax failed, etc)\r\n\t\t * @name $.jstree.defaults.core.error\r\n\t\t */\r\n\t\terror\t\t\t: $.noop,\r\n\t\t/**\r\n\t\t * the open / close animation duration in milliseconds - set this to `false` to disable the animation (default is `200`)\r\n\t\t * @name $.jstree.defaults.core.animation\r\n\t\t */\r\n\t\tanimation\t\t: 200,\r\n\t\t/**\r\n\t\t * a boolean indicating if multiple nodes can be selected\r\n\t\t * @name $.jstree.defaults.core.multiple\r\n\t\t */\r\n\t\tmultiple\t\t: true,\r\n\t\t/**\r\n\t\t * theme configuration object\r\n\t\t * @name $.jstree.defaults.core.themes\r\n\t\t */\r\n\t\tthemes\t\t\t: {\r\n\t\t\t/**\r\n\t\t\t * the name of the theme to use (if left as `false` the default theme is used)\r\n\t\t\t * @name $.jstree.defaults.core.themes.name\r\n\t\t\t */\r\n\t\t\tname\t\t\t: false,\r\n\t\t\t/**\r\n\t\t\t * the URL of the theme's CSS file, leave this as `false` if you have manually included the theme CSS (recommended). You can set this to `true` too which will try to autoload the theme.\r\n\t\t\t * @name $.jstree.defaults.core.themes.url\r\n\t\t\t */\r\n\t\t\turl\t\t\t\t: false,\r\n\t\t\t/**\r\n\t\t\t * the location of all jstree themes - only used if `url` is set to `true`\r\n\t\t\t * @name $.jstree.defaults.core.themes.dir\r\n\t\t\t */\r\n\t\t\tdir\t\t\t\t: false,\r\n\t\t\t/**\r\n\t\t\t * a boolean indicating if connecting dots are shown\r\n\t\t\t * @name $.jstree.defaults.core.themes.dots\r\n\t\t\t */\r\n\t\t\tdots\t\t\t: true,\r\n\t\t\t/**\r\n\t\t\t * a boolean indicating if node icons are shown\r\n\t\t\t * @name $.jstree.defaults.core.themes.icons\r\n\t\t\t */\r\n\t\t\ticons\t\t\t: true,\r\n\t\t\t/**\r\n\t\t\t * a boolean indicating if the tree background is striped\r\n\t\t\t * @name $.jstree.defaults.core.themes.stripes\r\n\t\t\t */\r\n\t\t\tstripes\t\t\t: false,\r\n\t\t\t/**\r\n\t\t\t * a string (or boolean `false`) specifying the theme variant to use (if the theme supports variants)\r\n\t\t\t * @name $.jstree.defaults.core.themes.variant\r\n\t\t\t */\r\n\t\t\tvariant\t\t\t: false,\r\n\t\t\t/**\r\n\t\t\t * a boolean specifying if a reponsive version of the theme should kick in on smaller screens (if the theme supports it). Defaults to `true`.\r\n\t\t\t * @name $.jstree.defaults.core.themes.responsive\r\n\t\t\t */\r\n\t\t\tresponsive\t\t: true\r\n\t\t},\r\n\t\t/**\r\n\t\t * if left as `true` all parents of all selected nodes will be opened once the tree loads (so that all selected nodes are visible to the user)\r\n\t\t * @name $.jstree.defaults.core.expand_selected_onload\r\n\t\t */\r\n\t\texpand_selected_onload : true,\r\n\t\t/**\r\n\t\t * if left as `true` web workers will be used to parse incoming JSON data where possible, so that the UI will not be blocked by large requests. Workers are however about 30% slower. Defaults to `true`\r\n\t\t * @name $.jstree.defaults.core.worker\r\n\t\t */\r\n\t\tworker : true\r\n\t};\r\n\t$.jstree.core.prototype = {\r\n\t\t/**\r\n\t\t * used to decorate an instance with a plugin. Used internally.\r\n\t\t * @private\r\n\t\t * @name plugin(deco [, opts])\r\n\t\t * @param {String} deco the plugin to decorate with\r\n\t\t * @param {Object} opts options for the plugin\r\n\t\t * @return {jsTree}\r\n\t\t */\r\n\t\tplugin : function (deco, opts) {\r\n\t\t\tvar Child = $.jstree.plugins[deco];\r\n\t\t\tif(Child) {\r\n\t\t\t\tthis._data[deco] = {};\r\n\t\t\t\tChild.prototype = this;\r\n\t\t\t\treturn new Child(opts, this);\r\n\t\t\t}\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\t/**\r\n\t\t * used to decorate an instance with a plugin. Used internally.\r\n\t\t * @private\r\n\t\t * @name init(el, optons)\r\n\t\t * @param {DOMElement|jQuery|String} el the element we are transforming\r\n\t\t * @param {Object} options options for this instance\r\n\t\t * @trigger init.jstree, loading.jstree, loaded.jstree, ready.jstree, changed.jstree\r\n\t\t */\r\n\t\tinit : function (el, options) {\r\n\t\t\tthis._model = {\r\n\t\t\t\tdata : {\r\n\t\t\t\t\t'#' : {\r\n\t\t\t\t\t\tid : '#',\r\n\t\t\t\t\t\tparent : null,\r\n\t\t\t\t\t\tparents : [],\r\n\t\t\t\t\t\tchildren : [],\r\n\t\t\t\t\t\tchildren_d : [],\r\n\t\t\t\t\t\tstate : { loaded : false }\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tchanged : [],\r\n\t\t\t\tforce_full_redraw : false,\r\n\t\t\t\tredraw_timeout : false,\r\n\t\t\t\tdefault_state : {\r\n\t\t\t\t\tloaded : true,\r\n\t\t\t\t\topened : false,\r\n\t\t\t\t\tselected : false,\r\n\t\t\t\t\tdisabled : false\r\n\t\t\t\t}\r\n\t\t\t};\r\n\r\n\t\t\tthis.element = $(el).addClass('jstree jstree-' + this._id);\r\n\t\t\tthis.settings = options;\r\n\t\t\tthis.element.bind(\"destroyed\", $.proxy(this.teardown, this));\r\n\r\n\t\t\tthis._data.core.ready = false;\r\n\t\t\tthis._data.core.loaded = false;\r\n\t\t\tthis._data.core.rtl = (this.element.css(\"direction\") === \"rtl\");\r\n\t\t\tthis.element[this._data.core.rtl ? 'addClass' : 'removeClass'](\"jstree-rtl\");\r\n\t\t\tthis.element.attr('role','tree');\r\n\r\n\t\t\tthis.bind();\r\n\t\t\t/**\r\n\t\t\t * triggered after all events are bound\r\n\t\t\t * @event\r\n\t\t\t * @name init.jstree\r\n\t\t\t */\r\n\t\t\tthis.trigger(\"init\");\r\n\r\n\t\t\tthis._data.core.original_container_html = this.element.find(\" > ul > li\").clone(true);\r\n\t\t\tthis._data.core.original_container_html\r\n\t\t\t\t.find(\"li\").addBack()\r\n\t\t\t\t.contents().filter(function() {\r\n\t\t\t\t\treturn this.nodeType === 3 && (!this.value || /^\\s+$/.test(this.value));\r\n\t\t\t\t})\r\n\t\t\t\t.remove();\r\n\t\t\tthis.element.html(\"<\"+\"ul class='jstree-container-ul jstree-children'><\"+\"li class='jstree-initial-node jstree-loading jstree-leaf jstree-last'><\"+\"a class='jstree-anchor' href='#'>\" + this.get_string(\"Loading ...\") + \"\");\r\n\t\t\tthis._data.core.li_height = this.get_container_ul().children(\"li:eq(0)\").height() || 24;\r\n\t\t\t/**\r\n\t\t\t * triggered after the loading text is shown and before loading starts\r\n\t\t\t * @event\r\n\t\t\t * @name loading.jstree\r\n\t\t\t */\r\n\t\t\tthis.trigger(\"loading\");\r\n\t\t\tthis.load_node('#');\r\n\t\t},\r\n\t\t/**\r\n\t\t * destroy an instance\r\n\t\t * @name destroy()\r\n\t\t * @param {Boolean} keep_html if not set to `true` the container will be emptied, otherwise the current DOM elements will be kept intact\r\n\t\t */\r\n\t\tdestroy : function (keep_html) {\r\n\t\t\tif(!keep_html) { this.element.empty(); }\r\n\t\t\tthis.element.unbind(\"destroyed\", this.teardown);\r\n\t\t\tthis.teardown();\r\n\t\t},\r\n\t\t/**\r\n\t\t * part of the destroying of an instance. Used internally.\r\n\t\t * @private\r\n\t\t * @name teardown()\r\n\t\t */\r\n\t\tteardown : function () {\r\n\t\t\tthis.unbind();\r\n\t\t\tthis.element\r\n\t\t\t\t.removeClass('jstree')\r\n\t\t\t\t.removeData('jstree')\r\n\t\t\t\t.find(\"[class^='jstree']\")\r\n\t\t\t\t\t.addBack()\r\n\t\t\t\t\t.attr(\"class\", function () { return this.className.replace(/jstree[^ ]*|$/ig,''); });\r\n\t\t\tthis.element = null;\r\n\t\t},\r\n\t\t/**\r\n\t\t * bind all events. Used internally.\r\n\t\t * @private\r\n\t\t * @name bind()\r\n\t\t */\r\n\t\tbind : function () {\r\n\t\t\tthis.element\r\n\t\t\t\t.on(\"dblclick.jstree\", function () {\r\n\t\t\t\t\t\tif(document.selection && document.selection.empty) {\r\n\t\t\t\t\t\t\tdocument.selection.empty();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tif(window.getSelection) {\r\n\t\t\t\t\t\t\t\tvar sel = window.getSelection();\r\n\t\t\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\t\t\tsel.removeAllRanges();\r\n\t\t\t\t\t\t\t\t\tsel.collapse();\r\n\t\t\t\t\t\t\t\t} catch (ignore) { }\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t})\r\n\t\t\t\t.on(\"click.jstree\", \".jstree-ocl\", $.proxy(function (e) {\r\n\t\t\t\t\t\tthis.toggle_node(e.target);\r\n\t\t\t\t\t}, this))\r\n\t\t\t\t.on(\"click.jstree\", \".jstree-anchor\", $.proxy(function (e) {\r\n\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t$(e.currentTarget).focus();\r\n\t\t\t\t\t\tthis.activate_node(e.currentTarget, e);\r\n\t\t\t\t\t}, this))\r\n\t\t\t\t.on('keydown.jstree', '.jstree-anchor', $.proxy(function (e) {\r\n\t\t\t\t\t\tif(e.target.tagName === \"INPUT\") { return true; }\r\n\t\t\t\t\t\tvar o = null;\r\n\t\t\t\t\t\tswitch(e.which) {\r\n\t\t\t\t\t\t\tcase 13:\r\n\t\t\t\t\t\t\tcase 32:\r\n\t\t\t\t\t\t\t\te.type = \"click\";\r\n\t\t\t\t\t\t\t\t$(e.currentTarget).trigger(e);\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase 37:\r\n\t\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\t\tif(this.is_open(e.currentTarget)) {\r\n\t\t\t\t\t\t\t\t\tthis.close_node(e.currentTarget);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\to = this.get_prev_dom(e.currentTarget);\r\n\t\t\t\t\t\t\t\t\tif(o && o.length) { o.children('.jstree-anchor').focus(); }\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase 38:\r\n\t\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\t\to = this.get_prev_dom(e.currentTarget);\r\n\t\t\t\t\t\t\t\tif(o && o.length) { o.children('.jstree-anchor').focus(); }\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase 39:\r\n\t\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\t\tif(this.is_closed(e.currentTarget)) {\r\n\t\t\t\t\t\t\t\t\tthis.open_node(e.currentTarget, function (o) { this.get_node(o, true).children('.jstree-anchor').focus(); });\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\to = this.get_next_dom(e.currentTarget);\r\n\t\t\t\t\t\t\t\t\tif(o && o.length) { o.children('.jstree-anchor').focus(); }\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase 40:\r\n\t\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\t\to = this.get_next_dom(e.currentTarget);\r\n\t\t\t\t\t\t\t\tif(o && o.length) { o.children('.jstree-anchor').focus(); }\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t// delete\r\n\t\t\t\t\t\t\tcase 46:\r\n\t\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\t\to = this.get_node(e.currentTarget);\r\n\t\t\t\t\t\t\t\tif(o && o.id && o.id !== '#') {\r\n\t\t\t\t\t\t\t\t\to = this.is_selected(o) ? this.get_selected() : o;\r\n\t\t\t\t\t\t\t\t\t// this.delete_node(o);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t// f2\r\n\t\t\t\t\t\t\tcase 113:\r\n\t\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\t\to = this.get_node(e.currentTarget);\r\n\t\t\t\t\t\t\t\t/*!\r\n\t\t\t\t\t\t\t\tif(o && o.id && o.id !== '#') {\r\n\t\t\t\t\t\t\t\t\t// this.edit(o);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t*/\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tdefault:\r\n\t\t\t\t\t\t\t\t// console.log(e.which);\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}, this))\r\n\t\t\t\t.on(\"load_node.jstree\", $.proxy(function (e, data) {\r\n\t\t\t\t\t\tif(data.status) {\r\n\t\t\t\t\t\t\tif(data.node.id === '#' && !this._data.core.loaded) {\r\n\t\t\t\t\t\t\t\tthis._data.core.loaded = true;\r\n\t\t\t\t\t\t\t\t/**\r\n\t\t\t\t\t\t\t\t * triggered after the root node is loaded for the first time\r\n\t\t\t\t\t\t\t\t * @event\r\n\t\t\t\t\t\t\t\t * @name loaded.jstree\r\n\t\t\t\t\t\t\t\t */\r\n\t\t\t\t\t\t\t\tthis.trigger(\"loaded\");\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif(!this._data.core.ready && !this.get_container_ul().find('.jstree-loading:eq(0)').length) {\r\n\t\t\t\t\t\t\t\tthis._data.core.ready = true;\r\n\t\t\t\t\t\t\t\tif(this._data.core.selected.length) {\r\n\t\t\t\t\t\t\t\t\tif(this.settings.core.expand_selected_onload) {\r\n\t\t\t\t\t\t\t\t\t\tvar tmp = [], i, j;\r\n\t\t\t\t\t\t\t\t\t\tfor(i = 0, j = this._data.core.selected.length; i < j; i++) {\r\n\t\t\t\t\t\t\t\t\t\t\ttmp = tmp.concat(this._model.data[this._data.core.selected[i]].parents);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\ttmp = $.vakata.array_unique(tmp);\r\n\t\t\t\t\t\t\t\t\t\tfor(i = 0, j = tmp.length; i < j; i++) {\r\n\t\t\t\t\t\t\t\t\t\t\tthis.open_node(tmp[i], false, 0);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\tthis.trigger('changed', { 'action' : 'ready', 'selected' : this._data.core.selected });\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t/**\r\n\t\t\t\t\t\t\t\t * triggered after all nodes are finished loading\r\n\t\t\t\t\t\t\t\t * @event\r\n\t\t\t\t\t\t\t\t * @name ready.jstree\r\n\t\t\t\t\t\t\t\t */\r\n\t\t\t\t\t\t\t\tsetTimeout($.proxy(function () { this.trigger(\"ready\"); }, this), 0);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}, this))\r\n\t\t\t\t// THEME RELATED\r\n\t\t\t\t.on(\"init.jstree\", $.proxy(function () {\r\n\t\t\t\t\t\tvar s = this.settings.core.themes;\r\n\t\t\t\t\t\tthis._data.core.themes.dots\t\t\t= s.dots;\r\n\t\t\t\t\t\tthis._data.core.themes.stripes\t\t= s.stripes;\r\n\t\t\t\t\t\tthis._data.core.themes.icons\t\t= s.icons;\r\n\t\t\t\t\t\tthis.set_theme(s.name || \"default\", s.url);\r\n\t\t\t\t\t\tthis.set_theme_variant(s.variant);\r\n\t\t\t\t\t}, this))\r\n\t\t\t\t.on(\"loading.jstree\", $.proxy(function () {\r\n\t\t\t\t\t\tthis[ this._data.core.themes.dots ? \"show_dots\" : \"hide_dots\" ]();\r\n\t\t\t\t\t\tthis[ this._data.core.themes.icons ? \"show_icons\" : \"hide_icons\" ]();\r\n\t\t\t\t\t\tthis[ this._data.core.themes.stripes ? \"show_stripes\" : \"hide_stripes\" ]();\r\n\t\t\t\t\t}, this))\r\n\t\t\t\t.on('focus.jstree', '.jstree-anchor', $.proxy(function (e) {\r\n\t\t\t\t\t\tthis.element.find('.jstree-hovered').not(e.currentTarget).mouseleave();\r\n\t\t\t\t\t\t$(e.currentTarget).mouseenter();\r\n\t\t\t\t\t}, this))\r\n\t\t\t\t.on('mouseenter.jstree', '.jstree-anchor', $.proxy(function (e) {\r\n\t\t\t\t\t\tthis.hover_node(e.currentTarget);\r\n\t\t\t\t\t}, this))\r\n\t\t\t\t.on('mouseleave.jstree', '.jstree-anchor', $.proxy(function (e) {\r\n\t\t\t\t\t\tthis.dehover_node(e.currentTarget);\r\n\t\t\t\t\t}, this));\r\n\t\t},\r\n\t\t/**\r\n\t\t * part of the destroying of an instance. Used internally.\r\n\t\t * @private\r\n\t\t * @name unbind()\r\n\t\t */\r\n\t\tunbind : function () {\r\n\t\t\tthis.element.off('.jstree');\r\n\t\t\t$(document).off('.jstree-' + this._id);\r\n\t\t},\r\n\t\t/**\r\n\t\t * trigger an event. Used internally.\r\n\t\t * @private\r\n\t\t * @name trigger(ev [, data])\r\n\t\t * @param {String} ev the name of the event to trigger\r\n\t\t * @param {Object} data additional data to pass with the event\r\n\t\t */\r\n\t\ttrigger : function (ev, data) {\r\n\t\t\tif(!data) {\r\n\t\t\t\tdata = {};\r\n\t\t\t}\r\n\t\t\tdata.instance = this;\r\n\t\t\tif (this.element != null) {\r\n\t\t\t\tthis.element.triggerHandler(ev.replace('.jstree', '') + '.jstree', data);\r\n\t\t\t}\r\n\t\t},\r\n\t\t/**\r\n\t\t * returns the jQuery extended instance container\r\n\t\t * @name get_container()\r\n\t\t * @return {jQuery}\r\n\t\t */\r\n\t\tget_container : function () {\r\n\t\t\treturn this.element;\r\n\t\t},\r\n\t\t/**\r\n\t\t * returns the jQuery extended main UL node inside the instance container. Used internally.\r\n\t\t * @private\r\n\t\t * @name get_container_ul()\r\n\t\t * @return {jQuery}\r\n\t\t */\r\n\t\tget_container_ul : function () {\r\n\t\t\treturn this.element.children(\".jstree-children:eq(0)\");\r\n\t\t},\r\n\t\t/**\r\n\t\t * gets string replacements (localization). Used internally.\r\n\t\t * @private\r\n\t\t * @name get_string(key)\r\n\t\t * @param {String} key\r\n\t\t * @return {String}\r\n\t\t */\r\n\t\tget_string : function (key) {\r\n\t\t\tvar a = this.settings.core.strings;\r\n\t\t\tif($.isFunction(a)) { return a.call(this, key); }\r\n\t\t\tif(a && a[key]) { return a[key]; }\r\n\t\t\treturn key;\r\n\t\t},\r\n\t\t/**\r\n\t\t * gets the first child of a DOM node. Used internally.\r\n\t\t * @private\r\n\t\t * @name _firstChild(dom)\r\n\t\t * @param {DOMElement} dom\r\n\t\t * @return {DOMElement}\r\n\t\t */\r\n\t\t_firstChild : function (dom) {\r\n\t\t\tdom = dom ? dom.firstChild : null;\r\n\t\t\twhile(dom !== null && dom.nodeType !== 1) {\r\n\t\t\t\tdom = dom.nextSibling;\r\n\t\t\t}\r\n\t\t\treturn dom;\r\n\t\t},\r\n\t\t/**\r\n\t\t * gets the next sibling of a DOM node. Used internally.\r\n\t\t * @private\r\n\t\t * @name _nextSibling(dom)\r\n\t\t * @param {DOMElement} dom\r\n\t\t * @return {DOMElement}\r\n\t\t */\r\n\t\t_nextSibling : function (dom) {\r\n\t\t\tdom = dom ? dom.nextSibling : null;\r\n\t\t\twhile(dom !== null && dom.nodeType !== 1) {\r\n\t\t\t\tdom = dom.nextSibling;\r\n\t\t\t}\r\n\t\t\treturn dom;\r\n\t\t},\r\n\t\t/**\r\n\t\t * gets the previous sibling of a DOM node. Used internally.\r\n\t\t * @private\r\n\t\t * @name _previousSibling(dom)\r\n\t\t * @param {DOMElement} dom\r\n\t\t * @return {DOMElement}\r\n\t\t */\r\n\t\t_previousSibling : function (dom) {\r\n\t\t\tdom = dom ? dom.previousSibling : null;\r\n\t\t\twhile(dom !== null && dom.nodeType !== 1) {\r\n\t\t\t\tdom = dom.previousSibling;\r\n\t\t\t}\r\n\t\t\treturn dom;\r\n\t\t},\r\n\t\t/**\r\n\t\t * get the JSON representation of a node (or the actual jQuery extended DOM node) by using any input (child DOM element, ID string, selector, etc)\r\n\t\t * @name get_node(obj [, as_dom])\r\n\t\t * @param {mixed} obj\r\n\t\t * @param {Boolean} as_dom\r\n\t\t * @return {Object|jQuery}\r\n\t\t */\r\n\t\tget_node : function (obj, as_dom) {\r\n\t\t\tif(obj && obj.id) {\r\n\t\t\t\tobj = obj.id;\r\n\t\t\t}\r\n\t\t\tvar dom;\r\n\t\t\ttry {\r\n\t\t\t\tif(this._model.data[obj]) {\r\n\t\t\t\t\tobj = this._model.data[obj];\r\n\t\t\t\t}\r\n\t\t\t\telse if(((dom = $(obj, this.element)).length || (dom = $('#' + obj.replace($.jstree.idregex,'\\\\$&'), this.element)).length) && this._model.data[dom.closest('.jstree-node').attr('id')]) {\r\n\t\t\t\t\tobj = this._model.data[dom.closest('.jstree-node').attr('id')];\r\n\t\t\t\t}\r\n\t\t\t\telse if((dom = $(obj, this.element)).length && dom.hasClass('jstree')) {\r\n\t\t\t\t\tobj = this._model.data['#'];\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(as_dom) {\r\n\t\t\t\t\tobj = obj.id === '#' ? this.element : $('#' + obj.id.replace($.jstree.idregex,'\\\\$&'), this.element);\r\n\t\t\t\t}\r\n\t\t\t\treturn obj;\r\n\t\t\t} catch (ex) { return false; }\r\n\t\t},\r\n\t\t/**\r\n\t\t * get the path to a node, either consisting of node texts, or of node IDs, optionally glued together (otherwise an array)\r\n\t\t * @name get_path(obj [, glue, ids])\r\n\t\t * @param {mixed} obj the node\r\n\t\t * @param {String} glue if you want the path as a string - pass the glue here (for example '/'), if a falsy value is supplied here, an array is returned\r\n\t\t * @param {Boolean} ids if set to true build the path using ID, otherwise node text is used\r\n\t\t * @return {mixed}\r\n\t\t */\r\n\t\tget_path : function (obj, glue, ids) {\r\n\t\t\tobj = obj.parents ? obj : this.get_node(obj);\r\n\t\t\tif(!obj || obj.id === '#' || !obj.parents) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tvar i, j, p = [];\r\n\t\t\tp.push(ids ? obj.id : obj.text);\r\n\t\t\tfor(i = 0, j = obj.parents.length; i < j; i++) {\r\n\t\t\t\tp.push(ids ? obj.parents[i] : this.get_text(obj.parents[i]));\r\n\t\t\t}\r\n\t\t\tp = p.reverse().slice(1);\r\n\t\t\treturn glue ? p.join(glue) : p;\r\n\t\t},\r\n\t\t/**\r\n\t\t * get the next visible node that is below the `obj` node. If `strict` is set to `true` only sibling nodes are returned.\r\n\t\t * @name get_next_dom(obj [, strict])\r\n\t\t * @param {mixed} obj\r\n\t\t * @param {Boolean} strict\r\n\t\t * @return {jQuery}\r\n\t\t */\r\n\t\tget_next_dom : function (obj, strict) {\r\n\t\t\tvar tmp;\r\n\t\t\tobj = this.get_node(obj, true);\r\n\t\t\tif(obj[0] === this.element[0]) {\r\n\t\t\t\ttmp = this._firstChild(this.get_container_ul()[0]);\r\n\t\t\t\treturn tmp ? $(tmp) : false;\r\n\t\t\t}\r\n\t\t\tif(!obj || !obj.length) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tif(strict) {\r\n\t\t\t\ttmp = this._nextSibling(obj[0]);\r\n\t\t\t\treturn tmp ? $(tmp) : false;\r\n\t\t\t}\r\n\t\t\tif(obj.hasClass(\"jstree-open\")) {\r\n\t\t\t\ttmp = this._firstChild(obj.children('.jstree-children')[0]);\r\n\t\t\t\treturn tmp ? $(tmp) : false;\r\n\t\t\t}\r\n\t\t\tif((tmp = this._nextSibling(obj[0])) !== null) {\r\n\t\t\t\treturn $(tmp);\r\n\t\t\t}\r\n\t\t\treturn obj.parentsUntil(\".jstree\",\".jstree-node\").next(\".jstree-node\").eq(0);\r\n\t\t},\r\n\t\t/**\r\n\t\t * get the previous visible node that is above the `obj` node. If `strict` is set to `true` only sibling nodes are returned.\r\n\t\t * @name get_prev_dom(obj [, strict])\r\n\t\t * @param {mixed} obj\r\n\t\t * @param {Boolean} strict\r\n\t\t * @return {jQuery}\r\n\t\t */\r\n\t\tget_prev_dom : function (obj, strict) {\r\n\t\t\tvar tmp;\r\n\t\t\tobj = this.get_node(obj, true);\r\n\t\t\tif(obj[0] === this.element[0]) {\r\n\t\t\t\ttmp = this.get_container_ul()[0].lastChild;\r\n\t\t\t\treturn tmp ? $(tmp) : false;\r\n\t\t\t}\r\n\t\t\tif(!obj || !obj.length) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tif(strict) {\r\n\t\t\t\ttmp = this._previousSibling(obj[0]);\r\n\t\t\t\treturn tmp ? $(tmp) : false;\r\n\t\t\t}\r\n\t\t\tif((tmp = this._previousSibling(obj[0])) !== null) {\r\n\t\t\t\tobj = $(tmp);\r\n\t\t\t\twhile(obj.hasClass(\"jstree-open\")) {\r\n\t\t\t\t\tobj = obj.children(\".jstree-children:eq(0)\").children(\".jstree-node:last\");\r\n\t\t\t\t}\r\n\t\t\t\treturn obj;\r\n\t\t\t}\r\n\t\t\ttmp = obj[0].parentNode.parentNode;\r\n\t\t\treturn tmp && tmp.className && tmp.className.indexOf('jstree-node') !== -1 ? $(tmp) : false;\r\n\t\t},\r\n\t\t/**\r\n\t\t * get the parent ID of a node\r\n\t\t * @name get_parent(obj)\r\n\t\t * @param {mixed} obj\r\n\t\t * @return {String}\r\n\t\t */\r\n\t\tget_parent : function (obj) {\r\n\t\t\tobj = this.get_node(obj);\r\n\t\t\tif(!obj || obj.id === '#') {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\treturn obj.parent;\r\n\t\t},\r\n\t\t/**\r\n\t\t * get a jQuery collection of all the children of a node (node must be rendered)\r\n\t\t * @name get_children_dom(obj)\r\n\t\t * @param {mixed} obj\r\n\t\t * @return {jQuery}\r\n\t\t */\r\n\t\tget_children_dom : function (obj) {\r\n\t\t\tobj = this.get_node(obj, true);\r\n\t\t\tif(obj[0] === this.element[0]) {\r\n\t\t\t\treturn this.get_container_ul().children(\".jstree-node\");\r\n\t\t\t}\r\n\t\t\tif(!obj || !obj.length) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\treturn obj.children(\".jstree-children\").children(\".jstree-node\");\r\n\t\t},\r\n\t\t/**\r\n\t\t * checks if a node has children\r\n\t\t * @name is_parent(obj)\r\n\t\t * @param {mixed} obj\r\n\t\t * @return {Boolean}\r\n\t\t */\r\n\t\tis_parent : function (obj) {\r\n\t\t\tobj = this.get_node(obj);\r\n\t\t\treturn obj && (obj.state.loaded === false || obj.children.length > 0);\r\n\t\t},\r\n\t\t/**\r\n\t\t * checks if a node is loaded (its children are available)\r\n\t\t * @name is_loaded(obj)\r\n\t\t * @param {mixed} obj\r\n\t\t * @return {Boolean}\r\n\t\t */\r\n\t\tis_loaded : function (obj) {\r\n\t\t\tobj = this.get_node(obj);\r\n\t\t\treturn obj && obj.state.loaded;\r\n\t\t},\r\n\t\t/**\r\n\t\t * check if a node is currently loading (fetching children)\r\n\t\t * @name is_loading(obj)\r\n\t\t * @param {mixed} obj\r\n\t\t * @return {Boolean}\r\n\t\t */\r\n\t\tis_loading : function (obj) {\r\n\t\t\tobj = this.get_node(obj);\r\n\t\t\treturn obj && obj.state && obj.state.loading;\r\n\t\t},\r\n\t\t/**\r\n\t\t * check if a node is opened\r\n\t\t * @name is_open(obj)\r\n\t\t * @param {mixed} obj\r\n\t\t * @return {Boolean}\r\n\t\t */\r\n\t\tis_open : function (obj) {\r\n\t\t\tobj = this.get_node(obj);\r\n\t\t\treturn obj && obj.state.opened;\r\n\t\t},\r\n\t\t/**\r\n\t\t * check if a node is in a closed state\r\n\t\t * @name is_closed(obj)\r\n\t\t * @param {mixed} obj\r\n\t\t * @return {Boolean}\r\n\t\t */\r\n\t\tis_closed : function (obj) {\r\n\t\t\tobj = this.get_node(obj);\r\n\t\t\treturn obj && this.is_parent(obj) && !obj.state.opened;\r\n\t\t},\r\n\t\t/**\r\n\t\t * check if a node has no children\r\n\t\t * @name is_leaf(obj)\r\n\t\t * @param {mixed} obj\r\n\t\t * @return {Boolean}\r\n\t\t */\r\n\t\tis_leaf : function (obj) {\r\n\t\t\treturn !this.is_parent(obj);\r\n\t\t},\r\n\t\t/**\r\n\t\t * loads a node (fetches its children using the `core.data` setting). Multiple nodes can be passed to by using an array.\r\n\t\t * @name load_node(obj [, callback])\r\n\t\t * @param {mixed} obj\r\n\t\t * @param {function} callback a function to be executed once loading is conplete, the function is executed in the instance's scope and receives two arguments - the node and a boolean status\r\n\t\t * @return {Boolean}\r\n\t\t * @trigger load_node.jstree\r\n\t\t */\r\n\t\tload_node : function (obj, callback) {\r\n\t\t\tvar t1, t2, k, l, i, j, c;\r\n\t\t\tif($.isArray(obj)) {\r\n\t\t\t\tobj = obj.slice();\r\n\t\t\t\tfor(t1 = 0, t2 = obj.length; t1 < t2; t1++) {\r\n\t\t\t\t\tthis.load_node(obj[t1], callback);\r\n\t\t\t\t}\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\tobj = this.get_node(obj);\r\n\t\t\tif(!obj) {\r\n\t\t\t\tif(callback) { callback.call(this, obj, false); }\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tif(obj.state.loaded) {\r\n\t\t\t\tobj.state.loaded = false;\r\n\t\t\t\tfor(k = 0, l = obj.children_d.length; k < l; k++) {\r\n\t\t\t\t\tfor(i = 0, j = obj.parents.length; i < j; i++) {\r\n\t\t\t\t\t\tthis._model.data[obj.parents[i]].children_d = $.vakata.array_remove_item(this._model.data[obj.parents[i]].children_d, obj.children_d[k]);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif(this._model.data[obj.children_d[k]].state.selected) {\r\n\t\t\t\t\t\tc = true;\r\n\t\t\t\t\t\tthis._data.core.selected = $.vakata.array_remove_item(this._data.core.selected, obj.children_d[k]);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tdelete this._model.data[obj.children_d[k]];\r\n\t\t\t\t}\r\n\t\t\t\tobj.children = [];\r\n\t\t\t\tobj.children_d = [];\r\n\t\t\t\tif(c) {\r\n\t\t\t\t\tthis.trigger('changed', { 'action' : 'load_node', 'node' : obj, 'selected' : this._data.core.selected });\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tobj.state.loading = true;\r\n\t\t\tthis.get_node(obj, true).addClass(\"jstree-loading\");\r\n\t\t\tthis._load_node(obj, $.proxy(function (status) {\r\n\t\t\t\tobj = this._model.data[obj.id];\r\n\t\t\t\tobj.state.loading = false;\r\n\t\t\t\tobj.state.loaded = status;\r\n\t\t\t\tvar dom = this.get_node(obj, true);\r\n\t\t\t\tif(obj.state.loaded && !obj.children.length && dom && dom.length && !dom.hasClass('jstree-leaf')) {\r\n\t\t\t\t\tdom.removeClass('jstree-closed jstree-open').addClass('jstree-leaf');\r\n\t\t\t\t}\r\n\t\t\t\tdom.removeClass(\"jstree-loading\");\r\n\t\t\t\t/**\r\n\t\t\t\t * triggered after a node is loaded\r\n\t\t\t\t * @event\r\n\t\t\t\t * @name load_node.jstree\r\n\t\t\t\t * @param {Object} node the node that was loading\r\n\t\t\t\t * @param {Boolean} status was the node loaded successfully\r\n\t\t\t\t */\r\n\t\t\t\tthis.trigger('load_node', { \"node\" : obj, \"status\" : status });\r\n\t\t\t\tif(callback) {\r\n\t\t\t\t\tcallback.call(this, obj, status);\r\n\t\t\t\t}\r\n\t\t\t}, this));\r\n\t\t\treturn true;\r\n\t\t},\r\n\t\t/**\r\n\t\t * load an array of nodes (will also load unavailable nodes as soon as the appear in the structure). Used internally.\r\n\t\t * @private\r\n\t\t * @name _load_nodes(nodes [, callback])\r\n\t\t * @param {array} nodes\r\n\t\t * @param {function} callback a function to be executed once loading is complete, the function is executed in the instance's scope and receives one argument - the array passed to _load_nodes\r\n\t\t */\r\n\t\t_load_nodes : function (nodes, callback, is_callback) {\r\n\t\t\tvar r = true,\r\n\t\t\t\tc = function () { this._load_nodes(nodes, callback, true); },\r\n\t\t\t\tm = this._model.data, i, j;\r\n\t\t\tfor(i = 0, j = nodes.length; i < j; i++) {\r\n\t\t\t\tif(m[nodes[i]] && (!m[nodes[i]].state.loaded || !is_callback)) {\r\n\t\t\t\t\tif(!this.is_loading(nodes[i])) {\r\n\t\t\t\t\t\tthis.load_node(nodes[i], c);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tr = false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif(r) {\r\n\t\t\t\tif(!callback.done) {\r\n\t\t\t\t\tcallback.call(this, nodes);\r\n\t\t\t\t\tcallback.done = true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t\t/**\r\n\t\t * handles the actual loading of a node. Used only internally.\r\n\t\t * @private\r\n\t\t * @name _load_node(obj [, callback])\r\n\t\t * @param {mixed} obj\r\n\t\t * @param {function} callback a function to be executed once loading is complete, the function is executed in the instance's scope and receives one argument - a boolean status\r\n\t\t * @return {Boolean}\r\n\t\t */\r\n\t\t_load_node : function (obj, callback) {\r\n\t\t\tvar s = this.settings.core.data, t;\r\n\t\t\t// use original HTML\r\n\t\t\tif(!s) {\r\n\t\t\t\tif(obj.id === '#') {\r\n\t\t\t\t\treturn this._append_html_data(obj, this._data.core.original_container_html.clone(true), function (status) {\r\n\t\t\t\t\t\tcallback.call(this, status);\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\treturn callback.call(this, false);\r\n\t\t\t\t}\r\n\t\t\t\t// return callback.call(this, obj.id === '#' ? this._append_html_data(obj, this._data.core.original_container_html.clone(true)) : false);\r\n\t\t\t}\r\n\t\t\tif($.isFunction(s)) {\r\n\t\t\t\treturn s.call(this, obj, $.proxy(function (d) {\r\n\t\t\t\t\tif(d === false) {\r\n\t\t\t\t\t\tcallback.call(this, false);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tthis[typeof d === 'string' ? '_append_html_data' : '_append_json_data'](obj, typeof d === 'string' ? $(d) : d, function (status) {\r\n\t\t\t\t\t\tcallback.call(this, status);\r\n\t\t\t\t\t});\r\n\t\t\t\t\t// return d === false ? callback.call(this, false) : callback.call(this, this[typeof d === 'string' ? '_append_html_data' : '_append_json_data'](obj, typeof d === 'string' ? $(d) : d));\r\n\t\t\t\t}, this));\r\n\t\t\t}\r\n\t\t\tif(typeof s === 'object') {\r\n\t\t\t\tif(s.url) {\r\n\t\t\t\t\ts = $.extend(true, {}, s);\r\n\t\t\t\t\tif($.isFunction(s.url)) {\r\n\t\t\t\t\t\ts.url = s.url.call(this, obj);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif($.isFunction(s.data)) {\r\n\t\t\t\t\t\ts.data = s.data.call(this, obj);\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn $.ajax(s)\r\n\t\t\t\t\t\t.done($.proxy(function (d,t,x) {\r\n\t\t\t\t\t\t\t\tvar type = x.getResponseHeader('Content-Type');\r\n\t\t\t\t\t\t\t\tif(type.indexOf('json') !== -1 || typeof d === \"object\") {\r\n\t\t\t\t\t\t\t\t\treturn this._append_json_data(obj, d, function (status) { callback.call(this, status); });\r\n\t\t\t\t\t\t\t\t\t//return callback.call(this, this._append_json_data(obj, d));\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tif(type.indexOf('html') !== -1 || typeof d === \"string\") {\r\n\t\t\t\t\t\t\t\t\treturn this._append_html_data(obj, $(d), function (status) { callback.call(this, status); });\r\n\t\t\t\t\t\t\t\t\t// return callback.call(this, this._append_html_data(obj, $(d)));\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tthis._data.core.last_error = { 'error' : 'ajax', 'plugin' : 'core', 'id' : 'core_04', 'reason' : 'Could not load node', 'data' : JSON.stringify({ 'id' : obj.id, 'xhr' : x }) };\r\n\t\t\t\t\t\t\t\tthis.settings.core.error.call(this, this._data.core.last_error);\r\n\t\t\t\t\t\t\t\treturn callback.call(this, false);\r\n\t\t\t\t\t\t\t}, this))\r\n\t\t\t\t\t\t.fail($.proxy(function (f) {\r\n\t\t\t\t\t\t\t\tcallback.call(this, false);\r\n\t\t\t\t\t\t\t\tthis._data.core.last_error = { 'error' : 'ajax', 'plugin' : 'core', 'id' : 'core_04', 'reason' : 'Could not load node', 'data' : JSON.stringify({ 'id' : obj.id, 'xhr' : f }) };\r\n\t\t\t\t\t\t\t\tthis.settings.core.error.call(this, this._data.core.last_error);\r\n\t\t\t\t\t\t\t}, this));\r\n\t\t\t\t}\r\n\t\t\t\tt = ($.isArray(s) || $.isPlainObject(s)) ? JSON.parse(JSON.stringify(s)) : s;\r\n\t\t\t\tif(obj.id === '#') {\r\n\t\t\t\t\treturn this._append_json_data(obj, t, function (status) {\r\n\t\t\t\t\t\tcallback.call(this, status);\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tthis._data.core.last_error = { 'error' : 'nodata', 'plugin' : 'core', 'id' : 'core_05', 'reason' : 'Could not load node', 'data' : JSON.stringify({ 'id' : obj.id }) };\r\n\t\t\t\t\tthis.settings.core.error.call(this, this._data.core.last_error);\r\n\t\t\t\t\treturn callback.call(this, false);\r\n\t\t\t\t}\r\n\t\t\t\t//return callback.call(this, (obj.id === \"#\" ? this._append_json_data(obj, t) : false) );\r\n\t\t\t}\r\n\t\t\tif(typeof s === 'string') {\r\n\t\t\t\tif(obj.id === '#') {\r\n\t\t\t\t\treturn this._append_html_data(obj, $(s), function (status) {\r\n\t\t\t\t\t\tcallback.call(this, status);\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tthis._data.core.last_error = { 'error' : 'nodata', 'plugin' : 'core', 'id' : 'core_06', 'reason' : 'Could not load node', 'data' : JSON.stringify({ 'id' : obj.id }) };\r\n\t\t\t\t\tthis.settings.core.error.call(this, this._data.core.last_error);\r\n\t\t\t\t\treturn callback.call(this, false);\r\n\t\t\t\t}\r\n\t\t\t\t//return callback.call(this, (obj.id === \"#\" ? this._append_html_data(obj, $(s)) : false) );\r\n\t\t\t}\r\n\t\t\treturn callback.call(this, false);\r\n\t\t},\r\n\t\t/**\r\n\t\t * adds a node to the list of nodes to redraw. Used only internally.\r\n\t\t * @private\r\n\t\t * @name _node_changed(obj [, callback])\r\n\t\t * @param {mixed} obj\r\n\t\t */\r\n\t\t_node_changed : function (obj) {\r\n\t\t\tobj = this.get_node(obj);\r\n\t\t\tif(obj) {\r\n\t\t\t\tthis._model.changed.push(obj.id);\r\n\t\t\t}\r\n\t\t},\r\n\t\t/**\r\n\t\t * appends HTML content to the tree. Used internally.\r\n\t\t * @private\r\n\t\t * @name _append_html_data(obj, data)\r\n\t\t * @param {mixed} obj the node to append to\r\n\t\t * @param {String} data the HTML string to parse and append\r\n\t\t * @trigger model.jstree, changed.jstree\r\n\t\t */\r\n\t\t_append_html_data : function (dom, data, cb) {\r\n\t\t\tdom = this.get_node(dom);\r\n\t\t\tdom.children = [];\r\n\t\t\tdom.children_d = [];\r\n\t\t\tvar dat = data.is('ul') ? data.children() : data,\r\n\t\t\t\tpar = dom.id,\r\n\t\t\t\tchd = [],\r\n\t\t\t\tdpc = [],\r\n\t\t\t\tm = this._model.data,\r\n\t\t\t\tp = m[par],\r\n\t\t\t\ts = this._data.core.selected.length,\r\n\t\t\t\ttmp, i, j;\r\n\t\t\tdat.each($.proxy(function (i, v) {\r\n\t\t\t\ttmp = this._parse_model_from_html($(v), par, p.parents.concat());\r\n\t\t\t\tif(tmp) {\r\n\t\t\t\t\tchd.push(tmp);\r\n\t\t\t\t\tdpc.push(tmp);\r\n\t\t\t\t\tif(m[tmp].children_d.length) {\r\n\t\t\t\t\t\tdpc = dpc.concat(m[tmp].children_d);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}, this));\r\n\t\t\tp.children = chd;\r\n\t\t\tp.children_d = dpc;\r\n\t\t\tfor(i = 0, j = p.parents.length; i < j; i++) {\r\n\t\t\t\tm[p.parents[i]].children_d = m[p.parents[i]].children_d.concat(dpc);\r\n\t\t\t}\r\n\t\t\t/**\r\n\t\t\t * triggered when new data is inserted to the tree model\r\n\t\t\t * @event\r\n\t\t\t * @name model.jstree\r\n\t\t\t * @param {Array} nodes an array of node IDs\r\n\t\t\t * @param {String} parent the parent ID of the nodes\r\n\t\t\t */\r\n\t\t\tthis.trigger('model', { \"nodes\" : dpc, 'parent' : par });\r\n\t\t\tif(par !== '#') {\r\n\t\t\t\tthis._node_changed(par);\r\n\t\t\t\tthis.redraw();\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.get_container_ul().children('.jstree-initial-node').remove();\r\n\t\t\t\tthis.redraw(true);\r\n\t\t\t}\r\n\t\t\tif(this._data.core.selected.length !== s) {\r\n\t\t\t\tthis.trigger('changed', { 'action' : 'model', 'selected' : this._data.core.selected });\r\n\t\t\t}\r\n\t\t\tcb.call(this, true);\r\n\t\t},\r\n\t\t/**\r\n\t\t * appends JSON content to the tree. Used internally.\r\n\t\t * @private\r\n\t\t * @name _append_json_data(obj, data)\r\n\t\t * @param {mixed} obj the node to append to\r\n\t\t * @param {String} data the JSON object to parse and append\r\n\t\t * @trigger model.jstree, changed.jstree\r\n\t\t */\r\n\t\t_append_json_data : function (dom, data, cb) {\r\n\t\t\tdom = this.get_node(dom);\r\n\t\t\tdom.children = [];\r\n\t\t\tdom.children_d = [];\r\n\t\t\t// *%$@!!!\r\n\t\t\tif(data.d) {\r\n\t\t\t\tdata = data.d;\r\n\t\t\t\tif(typeof data === \"string\") {\r\n\t\t\t\t\tdata = JSON.parse(data);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif(!$.isArray(data)) { data = [data]; }\r\n\t\t\tvar w = null,\r\n\t\t\t\targs = {\r\n\t\t\t\t\t'df'\t: this._model.default_state,\r\n\t\t\t\t\t'dat'\t: data,\r\n\t\t\t\t\t'par'\t: dom.id,\r\n\t\t\t\t\t'm'\t\t: this._model.data,\r\n\t\t\t\t\t't_id'\t: this._id,\r\n\t\t\t\t\t't_cnt'\t: this._cnt,\r\n\t\t\t\t\t'sel'\t: this._data.core.selected\r\n\t\t\t\t},\r\n\t\t\t\tfunc = function (data, undefined) {\r\n\t\t\t\t\tif(data.data) { data = data.data; }\r\n\t\t\t\t\tvar dat = data.dat,\r\n\t\t\t\t\t\tpar = data.par,\r\n\t\t\t\t\t\tchd = [],\r\n\t\t\t\t\t\tdpc = [],\r\n\t\t\t\t\t\tadd = [],\r\n\t\t\t\t\t\tdf = data.df,\r\n\t\t\t\t\t\tt_id = data.t_id,\r\n\t\t\t\t\t\tt_cnt = data.t_cnt,\r\n\t\t\t\t\t\tm = data.m,\r\n\t\t\t\t\t\tp = m[par],\r\n\t\t\t\t\t\tsel = data.sel,\r\n\t\t\t\t\t\ttmp, i, j, rslt,\r\n\t\t\t\t\t\tparse_flat = function (d, p, ps) {\r\n\t\t\t\t\t\t\tif(!ps) { ps = []; }\r\n\t\t\t\t\t\t\telse { ps = ps.concat(); }\r\n\t\t\t\t\t\t\tif(p) { ps.unshift(p); }\r\n\t\t\t\t\t\t\tvar tid = d.id.toString(),\r\n\t\t\t\t\t\t\t\ti, j, c, e,\r\n\t\t\t\t\t\t\t\ttmp = {\r\n\t\t\t\t\t\t\t\t\tid\t\t\t: tid,\r\n\t\t\t\t\t\t\t\t\ttext\t\t: d.text || '',\r\n\t\t\t\t\t\t\t\t\ticon\t\t: d.icon !== undefined ? d.icon : true,\r\n\t\t\t\t\t\t\t\t\tparent\t\t: p,\r\n\t\t\t\t\t\t\t\t\tparents\t\t: ps,\r\n\t\t\t\t\t\t\t\t\tchildren\t: d.children || [],\r\n\t\t\t\t\t\t\t\t\tchildren_d\t: d.children_d || [],\r\n\t\t\t\t\t\t\t\t\tdata\t\t: d.data,\r\n\t\t\t\t\t\t\t\t\tstate\t\t: { },\r\n\t\t\t\t\t\t\t\t\tli_attr\t\t: { id : false },\r\n\t\t\t\t\t\t\t\t\ta_attr\t\t: { href : '#' },\r\n\t\t\t\t\t\t\t\t\toriginal\t: false\r\n\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\tfor(i in df) {\r\n\t\t\t\t\t\t\t\tif(df.hasOwnProperty(i)) {\r\n\t\t\t\t\t\t\t\t\ttmp.state[i] = df[i];\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif(d && d.data && d.data.jstree && d.data.jstree.icon) {\r\n\t\t\t\t\t\t\t\ttmp.icon = d.data.jstree.icon;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif(d && d.data) {\r\n\t\t\t\t\t\t\t\ttmp.data = d.data;\r\n\t\t\t\t\t\t\t\tif(d.data.jstree) {\r\n\t\t\t\t\t\t\t\t\tfor(i in d.data.jstree) {\r\n\t\t\t\t\t\t\t\t\t\tif(d.data.jstree.hasOwnProperty(i)) {\r\n\t\t\t\t\t\t\t\t\t\t\ttmp.state[i] = d.data.jstree[i];\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif(d && typeof d.state === 'object') {\r\n\t\t\t\t\t\t\t\tfor (i in d.state) {\r\n\t\t\t\t\t\t\t\t\tif(d.state.hasOwnProperty(i)) {\r\n\t\t\t\t\t\t\t\t\t\ttmp.state[i] = d.state[i];\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif(d && typeof d.li_attr === 'object') {\r\n\t\t\t\t\t\t\t\tfor (i in d.li_attr) {\r\n\t\t\t\t\t\t\t\t\tif(d.li_attr.hasOwnProperty(i)) {\r\n\t\t\t\t\t\t\t\t\t\ttmp.li_attr[i] = d.li_attr[i];\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif(!tmp.li_attr.id) {\r\n\t\t\t\t\t\t\t\ttmp.li_attr.id = tid;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif(d && typeof d.a_attr === 'object') {\r\n\t\t\t\t\t\t\t\tfor (i in d.a_attr) {\r\n\t\t\t\t\t\t\t\t\tif(d.a_attr.hasOwnProperty(i)) {\r\n\t\t\t\t\t\t\t\t\t\ttmp.a_attr[i] = d.a_attr[i];\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif(d && d.children && d.children === true) {\r\n\t\t\t\t\t\t\t\ttmp.state.loaded = false;\r\n\t\t\t\t\t\t\t\ttmp.children = [];\r\n\t\t\t\t\t\t\t\ttmp.children_d = [];\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tm[tmp.id] = tmp;\r\n\t\t\t\t\t\t\tfor(i = 0, j = tmp.children.length; i < j; i++) {\r\n\t\t\t\t\t\t\t\tc = parse_flat(m[tmp.children[i]], tmp.id, ps);\r\n\t\t\t\t\t\t\t\te = m[c];\r\n\t\t\t\t\t\t\t\ttmp.children_d.push(c);\r\n\t\t\t\t\t\t\t\tif(e.children_d.length) {\r\n\t\t\t\t\t\t\t\t\ttmp.children_d = tmp.children_d.concat(e.children_d);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tdelete d.data;\r\n\t\t\t\t\t\t\tdelete d.children;\r\n\t\t\t\t\t\t\tm[tmp.id].original = d;\r\n\t\t\t\t\t\t\tif(tmp.state.selected) {\r\n\t\t\t\t\t\t\t\tadd.push(tmp.id);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\treturn tmp.id;\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tparse_nest = function (d, p, ps) {\r\n\t\t\t\t\t\t\tif(!ps) { ps = []; }\r\n\t\t\t\t\t\t\telse { ps = ps.concat(); }\r\n\t\t\t\t\t\t\tif(p) { ps.unshift(p); }\r\n\t\t\t\t\t\t\tvar tid = false, i, j, c, e, tmp;\r\n\t\t\t\t\t\t\tdo {\r\n\t\t\t\t\t\t\t\ttid = 'j' + t_id + '_' + (++t_cnt);\r\n\t\t\t\t\t\t\t} while(m[tid]);\r\n\r\n\t\t\t\t\t\t\ttmp = {\r\n\t\t\t\t\t\t\t\tid\t\t\t: false,\r\n\t\t\t\t\t\t\t\ttext\t\t: typeof d === 'string' ? d : '',\r\n\t\t\t\t\t\t\t\ticon\t\t: typeof d === 'object' && d.icon !== undefined ? d.icon : true,\r\n\t\t\t\t\t\t\t\tparent\t\t: p,\r\n\t\t\t\t\t\t\t\tparents\t\t: ps,\r\n\t\t\t\t\t\t\t\tchildren\t: [],\r\n\t\t\t\t\t\t\t\tchildren_d\t: [],\r\n\t\t\t\t\t\t\t\tdata\t\t: null,\r\n\t\t\t\t\t\t\t\tstate\t\t: { },\r\n\t\t\t\t\t\t\t\tli_attr\t\t: { id : false },\r\n\t\t\t\t\t\t\t\ta_attr\t\t: { href : '#' },\r\n\t\t\t\t\t\t\t\toriginal\t: false\r\n\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\tfor(i in df) {\r\n\t\t\t\t\t\t\t\tif(df.hasOwnProperty(i)) {\r\n\t\t\t\t\t\t\t\t\ttmp.state[i] = df[i];\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif(d && d.id) { tmp.id = d.id.toString(); }\r\n\t\t\t\t\t\t\tif(d && d.text) { tmp.text = d.text; }\r\n\t\t\t\t\t\t\tif(d && d.data && d.data.jstree && d.data.jstree.icon) {\r\n\t\t\t\t\t\t\t\ttmp.icon = d.data.jstree.icon;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif(d && d.data) {\r\n\t\t\t\t\t\t\t\ttmp.data = d.data;\r\n\t\t\t\t\t\t\t\tif(d.data.jstree) {\r\n\t\t\t\t\t\t\t\t\tfor(i in d.data.jstree) {\r\n\t\t\t\t\t\t\t\t\t\tif(d.data.jstree.hasOwnProperty(i)) {\r\n\t\t\t\t\t\t\t\t\t\t\ttmp.state[i] = d.data.jstree[i];\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif(d && typeof d.state === 'object') {\r\n\t\t\t\t\t\t\t\tfor (i in d.state) {\r\n\t\t\t\t\t\t\t\t\tif(d.state.hasOwnProperty(i)) {\r\n\t\t\t\t\t\t\t\t\t\ttmp.state[i] = d.state[i];\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif(d && typeof d.li_attr === 'object') {\r\n\t\t\t\t\t\t\t\tfor (i in d.li_attr) {\r\n\t\t\t\t\t\t\t\t\tif(d.li_attr.hasOwnProperty(i)) {\r\n\t\t\t\t\t\t\t\t\t\ttmp.li_attr[i] = d.li_attr[i];\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif(tmp.li_attr.id && !tmp.id) {\r\n\t\t\t\t\t\t\t\ttmp.id = tmp.li_attr.id.toString();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif(!tmp.id) {\r\n\t\t\t\t\t\t\t\ttmp.id = tid;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif(!tmp.li_attr.id) {\r\n\t\t\t\t\t\t\t\ttmp.li_attr.id = tmp.id;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif(d && typeof d.a_attr === 'object') {\r\n\t\t\t\t\t\t\t\tfor (i in d.a_attr) {\r\n\t\t\t\t\t\t\t\t\tif(d.a_attr.hasOwnProperty(i)) {\r\n\t\t\t\t\t\t\t\t\t\ttmp.a_attr[i] = d.a_attr[i];\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif(d && d.children && d.children.length) {\r\n\t\t\t\t\t\t\t\tfor(i = 0, j = d.children.length; i < j; i++) {\r\n\t\t\t\t\t\t\t\t\tc = parse_nest(d.children[i], tmp.id, ps);\r\n\t\t\t\t\t\t\t\t\te = m[c];\r\n\t\t\t\t\t\t\t\t\ttmp.children.push(c);\r\n\t\t\t\t\t\t\t\t\tif(e.children_d.length) {\r\n\t\t\t\t\t\t\t\t\t\ttmp.children_d = tmp.children_d.concat(e.children_d);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\ttmp.children_d = tmp.children_d.concat(tmp.children);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif(d && d.children && d.children === true) {\r\n\t\t\t\t\t\t\t\ttmp.state.loaded = false;\r\n\t\t\t\t\t\t\t\ttmp.children = [];\r\n\t\t\t\t\t\t\t\ttmp.children_d = [];\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tdelete d.data;\r\n\t\t\t\t\t\t\tdelete d.children;\r\n\t\t\t\t\t\t\ttmp.original = d;\r\n\t\t\t\t\t\t\tm[tmp.id] = tmp;\r\n\t\t\t\t\t\t\tif(tmp.state.selected) {\r\n\t\t\t\t\t\t\t\tadd.push(tmp.id);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\treturn tmp.id;\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\tif(dat.length && dat[0].id !== undefined && dat[0].parent !== undefined) {\r\n\t\t\t\t\t\t// Flat JSON support (for easy import from DB):\r\n\t\t\t\t\t\t// 1) convert to object (foreach)\r\n\t\t\t\t\t\tfor(i = 0, j = dat.length; i < j; i++) {\r\n\t\t\t\t\t\t\tif(!dat[i].children) {\r\n\t\t\t\t\t\t\t\tdat[i].children = [];\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tm[dat[i].id.toString()] = dat[i];\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t// 2) populate children (foreach)\r\n\t\t\t\t\t\tfor(i = 0, j = dat.length; i < j; i++) {\r\n\t\t\t\t\t\t\tm[dat[i].parent.toString()].children.push(dat[i].id.toString());\r\n\t\t\t\t\t\t\t// populate parent.children_d\r\n\t\t\t\t\t\t\tp.children_d.push(dat[i].id.toString());\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t// 3) normalize && populate parents and children_d with recursion\r\n\t\t\t\t\t\tfor(i = 0, j = p.children.length; i < j; i++) {\r\n\t\t\t\t\t\t\ttmp = parse_flat(m[p.children[i]], par, p.parents.concat());\r\n\t\t\t\t\t\t\tdpc.push(tmp);\r\n\t\t\t\t\t\t\tif(m[tmp].children_d.length) {\r\n\t\t\t\t\t\t\t\tdpc = dpc.concat(m[tmp].children_d);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t// ?) three_state selection - p.state.selected && t - (if three_state foreach(dat => ch) -> foreach(parents) if(parent.selected) child.selected = true;\r\n\t\t\t\t\t\trslt = {\r\n\t\t\t\t\t\t\t'cnt' : t_cnt,\r\n\t\t\t\t\t\t\t'mod' : m,\r\n\t\t\t\t\t\t\t'sel' : sel,\r\n\t\t\t\t\t\t\t'par' : par,\r\n\t\t\t\t\t\t\t'dpc' : dpc,\r\n\t\t\t\t\t\t\t'add' : add\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tfor(i = 0, j = dat.length; i < j; i++) {\r\n\t\t\t\t\t\t\ttmp = parse_nest(dat[i], par, p.parents.concat());\r\n\t\t\t\t\t\t\tif(tmp) {\r\n\t\t\t\t\t\t\t\tchd.push(tmp);\r\n\t\t\t\t\t\t\t\tdpc.push(tmp);\r\n\t\t\t\t\t\t\t\tif(m[tmp].children_d.length) {\r\n\t\t\t\t\t\t\t\t\tdpc = dpc.concat(m[tmp].children_d);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tp.children = chd;\r\n\t\t\t\t\t\tp.children_d = dpc;\r\n\t\t\t\t\t\tfor(i = 0, j = p.parents.length; i < j; i++) {\r\n\t\t\t\t\t\t\tm[p.parents[i]].children_d = m[p.parents[i]].children_d.concat(dpc);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\trslt = {\r\n\t\t\t\t\t\t\t'cnt' : t_cnt,\r\n\t\t\t\t\t\t\t'mod' : m,\r\n\t\t\t\t\t\t\t'sel' : sel,\r\n\t\t\t\t\t\t\t'par' : par,\r\n\t\t\t\t\t\t\t'dpc' : dpc,\r\n\t\t\t\t\t\t\t'add' : add\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn rslt;\r\n\t\t\t\t},\r\n\t\t\t\trslt = function (rslt, worker) {\r\n\t\t\t\t\tthis._cnt = rslt.cnt;\r\n\t\t\t\t\tthis._model.data = rslt.mod; // breaks the reference in load_node - careful\r\n\r\n\t\t\t\t\tif(worker) {\r\n\t\t\t\t\t\tvar i, j, a = rslt.add, r = rslt.sel, s = this._data.core.selected.slice(), m = this._model.data;\r\n\t\t\t\t\t\t// if selection was changed while calculating in worker\r\n\t\t\t\t\t\tif(r.length !== s.length || $.vakata.array_unique(r.concat(s)).length !== r.length) {\r\n\t\t\t\t\t\t\t// deselect nodes that are no longer selected\r\n\t\t\t\t\t\t\tfor(i = 0, j = r.length; i < j; i++) {\r\n\t\t\t\t\t\t\t\tif($.inArray(r[i], a) === -1 && $.inArray(r[i], s) === -1) {\r\n\t\t\t\t\t\t\t\t\tm[r[i]].state.selected = false;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t// select nodes that were selected in the mean time\r\n\t\t\t\t\t\t\tfor(i = 0, j = s.length; i < j; i++) {\r\n\t\t\t\t\t\t\t\tif($.inArray(s[i], r) === -1) {\r\n\t\t\t\t\t\t\t\t\tm[s[i]].state.selected = true;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif(rslt.add.length) {\r\n\t\t\t\t\t\tthis._data.core.selected = this._data.core.selected.concat(rslt.add);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tthis.trigger('model', { \"nodes\" : rslt.dpc, 'parent' : rslt.par });\r\n\r\n\t\t\t\t\tif(rslt.par !== '#') {\r\n\t\t\t\t\t\tthis._node_changed(rslt.par);\r\n\t\t\t\t\t\tthis.redraw();\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\t// this.get_container_ul().children('.jstree-initial-node').remove();\r\n\t\t\t\t\t\tthis.redraw(true);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif(rslt.add.length) {\r\n\t\t\t\t\t\tthis.trigger('changed', { 'action' : 'model', 'selected' : this._data.core.selected });\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcb.call(this, true);\r\n\t\t\t\t};\r\n\t\t\tif(this.settings.core.worker && window.Blob && window.URL && window.Worker) {\r\n\t\t\t\ttry {\r\n\t\t\t\t\tif(this._wrk === null) {\r\n\t\t\t\t\t\tthis._wrk = window.URL.createObjectURL(\r\n\t\t\t\t\t\t\tnew window.Blob(\r\n\t\t\t\t\t\t\t\t['self.onmessage = ' + func.toString().replace(/return ([^;}]+)[\\s;}]+$/, 'postMessage($1);}')],\r\n\t\t\t\t\t\t\t\t{type:\"text/javascript\"}\r\n\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tw = new window.Worker(this._wrk);\r\n\t\t\t\t\tw.onmessage = $.proxy(function (e) { rslt.call(this, e.data, true); }, this);\r\n\t\t\t\t\tw.postMessage(args);\r\n\t\t\t\t}\r\n\t\t\t\tcatch(e) {\r\n\t\t\t\t\trslt.call(this, func(args), false);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\trslt.call(this, func(args), false);\r\n\t\t\t}\r\n\t\t},\r\n\t\t/**\r\n\t\t * parses a node from a jQuery object and appends them to the in memory tree model. Used internally.\r\n\t\t * @private\r\n\t\t * @name _parse_model_from_html(d [, p, ps])\r\n\t\t * @param {jQuery} d the jQuery object to parse\r\n\t\t * @param {String} p the parent ID\r\n\t\t * @param {Array} ps list of all parents\r\n\t\t * @return {String} the ID of the object added to the model\r\n\t\t */\r\n\t\t_parse_model_from_html : function (d, p, ps) {\r\n\t\t\tif(!ps) { ps = []; }\r\n\t\t\telse { ps = [].concat(ps); }\r\n\t\t\tif(p) { ps.unshift(p); }\r\n\t\t\tvar c, e, m = this._model.data,\r\n\t\t\t\tdata = {\r\n\t\t\t\t\tid\t\t\t: false,\r\n\t\t\t\t\ttext\t\t: false,\r\n\t\t\t\t\ticon\t\t: true,\r\n\t\t\t\t\tparent\t\t: p,\r\n\t\t\t\t\tparents\t\t: ps,\r\n\t\t\t\t\tchildren\t: [],\r\n\t\t\t\t\tchildren_d\t: [],\r\n\t\t\t\t\tdata\t\t: null,\r\n\t\t\t\t\tstate\t\t: { },\r\n\t\t\t\t\tli_attr\t\t: { id : false },\r\n\t\t\t\t\ta_attr\t\t: { href : '#' },\r\n\t\t\t\t\toriginal\t: false\r\n\t\t\t\t}, i, tmp, tid;\r\n\t\t\tfor(i in this._model.default_state) {\r\n\t\t\t\tif(this._model.default_state.hasOwnProperty(i)) {\r\n\t\t\t\t\tdata.state[i] = this._model.default_state[i];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\ttmp = $.vakata.attributes(d, true);\r\n\t\t\t$.each(tmp, function (i, v) {\r\n\t\t\t\tv = $.trim(v);\r\n\t\t\t\tif(!v.length) { return true; }\r\n\t\t\t\tdata.li_attr[i] = v;\r\n\t\t\t\tif(i === 'id') {\r\n\t\t\t\t\tdata.id = v.toString();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\ttmp = d.children('a').eq(0);\r\n\t\t\tif(tmp.length) {\r\n\t\t\t\ttmp = $.vakata.attributes(tmp, true);\r\n\t\t\t\t$.each(tmp, function (i, v) {\r\n\t\t\t\t\tv = $.trim(v);\r\n\t\t\t\t\tif(v.length) {\r\n\t\t\t\t\t\tdata.a_attr[i] = v;\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\ttmp = d.children(\"a:eq(0)\").length ? d.children(\"a:eq(0)\").clone() : d.clone();\r\n\t\t\ttmp.children(\"ins, i, ul\").remove();\r\n\t\t\ttmp = tmp.html();\r\n\t\t\ttmp = $('
').html(tmp);\r\n\t\t\tdata.text = tmp.html();\r\n\t\t\ttmp = d.data();\r\n\t\t\tdata.data = tmp ? $.extend(true, {}, tmp) : null;\r\n\t\t\tdata.state.opened = d.hasClass('jstree-open');\r\n\t\t\tdata.state.selected = d.children('a').hasClass('jstree-clicked');\r\n\t\t\tdata.state.disabled = d.children('a').hasClass('jstree-disabled');\r\n\t\t\tif(data.data && data.data.jstree) {\r\n\t\t\t\tfor(i in data.data.jstree) {\r\n\t\t\t\t\tif(data.data.jstree.hasOwnProperty(i)) {\r\n\t\t\t\t\t\tdata.state[i] = data.data.jstree[i];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\ttmp = d.children(\"a\").children(\".jstree-themeicon\");\r\n\t\t\tif(tmp.length) {\r\n\t\t\t\tdata.icon = tmp.hasClass('jstree-themeicon-hidden') ? false : tmp.attr('rel');\r\n\t\t\t}\r\n\t\t\tif(data.state.icon) {\r\n\t\t\t\tdata.icon = data.state.icon;\r\n\t\t\t}\r\n\t\t\ttmp = d.children(\"ul\").children(\"li\");\r\n\t\t\tdo {\r\n\t\t\t\ttid = 'j' + this._id + '_' + (++this._cnt);\r\n\t\t\t} while(m[tid]);\r\n\t\t\tdata.id = data.li_attr.id ? data.li_attr.id.toString() : tid;\r\n\t\t\tif(tmp.length) {\r\n\t\t\t\ttmp.each($.proxy(function (i, v) {\r\n\t\t\t\t\tc = this._parse_model_from_html($(v), data.id, ps);\r\n\t\t\t\t\te = this._model.data[c];\r\n\t\t\t\t\tdata.children.push(c);\r\n\t\t\t\t\tif(e.children_d.length) {\r\n\t\t\t\t\t\tdata.children_d = data.children_d.concat(e.children_d);\r\n\t\t\t\t\t}\r\n\t\t\t\t}, this));\r\n\t\t\t\tdata.children_d = data.children_d.concat(data.children);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tif(d.hasClass('jstree-closed')) {\r\n\t\t\t\t\tdata.state.loaded = false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif(data.li_attr['class']) {\r\n\t\t\t\tdata.li_attr['class'] = data.li_attr['class'].replace('jstree-closed','').replace('jstree-open','');\r\n\t\t\t}\r\n\t\t\tif(data.a_attr['class']) {\r\n\t\t\t\tdata.a_attr['class'] = data.a_attr['class'].replace('jstree-clicked','').replace('jstree-disabled','');\r\n\t\t\t}\r\n\t\t\tm[data.id] = data;\r\n\t\t\tif(data.state.selected) {\r\n\t\t\t\tthis._data.core.selected.push(data.id);\r\n\t\t\t}\r\n\t\t\treturn data.id;\r\n\t\t},\r\n\t\t/**\r\n\t\t * parses a node from a JSON object (used when dealing with flat data, which has no nesting of children, but has id and parent properties) and appends it to the in memory tree model. Used internally.\r\n\t\t * @private\r\n\t\t * @name _parse_model_from_flat_json(d [, p, ps])\r\n\t\t * @param {Object} d the JSON object to parse\r\n\t\t * @param {String} p the parent ID\r\n\t\t * @param {Array} ps list of all parents\r\n\t\t * @return {String} the ID of the object added to the model\r\n\t\t */\r\n\t\t_parse_model_from_flat_json : function (d, p, ps) {\r\n\t\t\tif(!ps) { ps = []; }\r\n\t\t\telse { ps = ps.concat(); }\r\n\t\t\tif(p) { ps.unshift(p); }\r\n\t\t\tvar tid = d.id.toString(),\r\n\t\t\t\tm = this._model.data,\r\n\t\t\t\tdf = this._model.default_state,\r\n\t\t\t\ti, j, c, e,\r\n\t\t\t\ttmp = {\r\n\t\t\t\t\tid\t\t\t: tid,\r\n\t\t\t\t\ttext\t\t: d.text || '',\r\n\t\t\t\t\ticon\t\t: d.icon !== undefined ? d.icon : true,\r\n\t\t\t\t\tparent\t\t: p,\r\n\t\t\t\t\tparents\t\t: ps,\r\n\t\t\t\t\tchildren\t: d.children || [],\r\n\t\t\t\t\tchildren_d\t: d.children_d || [],\r\n\t\t\t\t\tdata\t\t: d.data,\r\n\t\t\t\t\tstate\t\t: { },\r\n\t\t\t\t\tli_attr\t\t: { id : false },\r\n\t\t\t\t\ta_attr\t\t: { href : '#' },\r\n\t\t\t\t\toriginal\t: false\r\n\t\t\t\t};\r\n\t\t\tfor(i in df) {\r\n\t\t\t\tif(df.hasOwnProperty(i)) {\r\n\t\t\t\t\ttmp.state[i] = df[i];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif(d && d.data && d.data.jstree && d.data.jstree.icon) {\r\n\t\t\t\ttmp.icon = d.data.jstree.icon;\r\n\t\t\t}\r\n\t\t\tif(d && d.data) {\r\n\t\t\t\ttmp.data = d.data;\r\n\t\t\t\tif(d.data.jstree) {\r\n\t\t\t\t\tfor(i in d.data.jstree) {\r\n\t\t\t\t\t\tif(d.data.jstree.hasOwnProperty(i)) {\r\n\t\t\t\t\t\t\ttmp.state[i] = d.data.jstree[i];\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif(d && typeof d.state === 'object') {\r\n\t\t\t\tfor (i in d.state) {\r\n\t\t\t\t\tif(d.state.hasOwnProperty(i)) {\r\n\t\t\t\t\t\ttmp.state[i] = d.state[i];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif(d && typeof d.li_attr === 'object') {\r\n\t\t\t\tfor (i in d.li_attr) {\r\n\t\t\t\t\tif(d.li_attr.hasOwnProperty(i)) {\r\n\t\t\t\t\t\ttmp.li_attr[i] = d.li_attr[i];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif(!tmp.li_attr.id) {\r\n\t\t\t\ttmp.li_attr.id = tid;\r\n\t\t\t}\r\n\t\t\tif(d && typeof d.a_attr === 'object') {\r\n\t\t\t\tfor (i in d.a_attr) {\r\n\t\t\t\t\tif(d.a_attr.hasOwnProperty(i)) {\r\n\t\t\t\t\t\ttmp.a_attr[i] = d.a_attr[i];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif(d && d.children && d.children === true) {\r\n\t\t\t\ttmp.state.loaded = false;\r\n\t\t\t\ttmp.children = [];\r\n\t\t\t\ttmp.children_d = [];\r\n\t\t\t}\r\n\t\t\tm[tmp.id] = tmp;\r\n\t\t\tfor(i = 0, j = tmp.children.length; i < j; i++) {\r\n\t\t\t\tc = this._parse_model_from_flat_json(m[tmp.children[i]], tmp.id, ps);\r\n\t\t\t\te = m[c];\r\n\t\t\t\ttmp.children_d.push(c);\r\n\t\t\t\tif(e.children_d.length) {\r\n\t\t\t\t\ttmp.children_d = tmp.children_d.concat(e.children_d);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tdelete d.data;\r\n\t\t\tdelete d.children;\r\n\t\t\tm[tmp.id].original = d;\r\n\t\t\tif(tmp.state.selected) {\r\n\t\t\t\tthis._data.core.selected.push(tmp.id);\r\n\t\t\t}\r\n\t\t\treturn tmp.id;\r\n\t\t},\r\n\t\t/**\r\n\t\t * parses a node from a JSON object and appends it to the in memory tree model. Used internally.\r\n\t\t * @private\r\n\t\t * @name _parse_model_from_json(d [, p, ps])\r\n\t\t * @param {Object} d the JSON object to parse\r\n\t\t * @param {String} p the parent ID\r\n\t\t * @param {Array} ps list of all parents\r\n\t\t * @return {String} the ID of the object added to the model\r\n\t\t */\r\n\t\t_parse_model_from_json : function (d, p, ps) {\r\n\t\t\tif(!ps) { ps = []; }\r\n\t\t\telse { ps = ps.concat(); }\r\n\t\t\tif(p) { ps.unshift(p); }\r\n\t\t\tvar tid = false, i, j, c, e, m = this._model.data, df = this._model.default_state, tmp;\r\n\t\t\tdo {\r\n\t\t\t\ttid = 'j' + this._id + '_' + (++this._cnt);\r\n\t\t\t} while(m[tid]);\r\n\r\n\t\t\ttmp = {\r\n\t\t\t\tid\t\t\t: false,\r\n\t\t\t\ttext\t\t: typeof d === 'string' ? d : '',\r\n\t\t\t\ticon\t\t: typeof d === 'object' && d.icon !== undefined ? d.icon : true,\r\n\t\t\t\tparent\t\t: p,\r\n\t\t\t\tparents\t\t: ps,\r\n\t\t\t\tchildren\t: [],\r\n\t\t\t\tchildren_d\t: [],\r\n\t\t\t\tdata\t\t: null,\r\n\t\t\t\tstate\t\t: { },\r\n\t\t\t\tli_attr\t\t: { id : false },\r\n\t\t\t\ta_attr\t\t: { href : '#' },\r\n\t\t\t\toriginal\t: false\r\n\t\t\t};\r\n\t\t\tfor(i in df) {\r\n\t\t\t\tif(df.hasOwnProperty(i)) {\r\n\t\t\t\t\ttmp.state[i] = df[i];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif(d && d.id) { tmp.id = d.id.toString(); }\r\n\t\t\tif(d && d.text) { tmp.text = d.text; }\r\n\t\t\tif(d && d.data && d.data.jstree && d.data.jstree.icon) {\r\n\t\t\t\ttmp.icon = d.data.jstree.icon;\r\n\t\t\t}\r\n\t\t\tif(d && d.data) {\r\n\t\t\t\ttmp.data = d.data;\r\n\t\t\t\tif(d.data.jstree) {\r\n\t\t\t\t\tfor(i in d.data.jstree) {\r\n\t\t\t\t\t\tif(d.data.jstree.hasOwnProperty(i)) {\r\n\t\t\t\t\t\t\ttmp.state[i] = d.data.jstree[i];\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif(d && typeof d.state === 'object') {\r\n\t\t\t\tfor (i in d.state) {\r\n\t\t\t\t\tif(d.state.hasOwnProperty(i)) {\r\n\t\t\t\t\t\ttmp.state[i] = d.state[i];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif(d && typeof d.li_attr === 'object') {\r\n\t\t\t\tfor (i in d.li_attr) {\r\n\t\t\t\t\tif(d.li_attr.hasOwnProperty(i)) {\r\n\t\t\t\t\t\ttmp.li_attr[i] = d.li_attr[i];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif(tmp.li_attr.id && !tmp.id) {\r\n\t\t\t\ttmp.id = tmp.li_attr.id.toString();\r\n\t\t\t}\r\n\t\t\tif(!tmp.id) {\r\n\t\t\t\ttmp.id = tid;\r\n\t\t\t}\r\n\t\t\tif(!tmp.li_attr.id) {\r\n\t\t\t\ttmp.li_attr.id = tmp.id;\r\n\t\t\t}\r\n\t\t\tif(d && typeof d.a_attr === 'object') {\r\n\t\t\t\tfor (i in d.a_attr) {\r\n\t\t\t\t\tif(d.a_attr.hasOwnProperty(i)) {\r\n\t\t\t\t\t\ttmp.a_attr[i] = d.a_attr[i];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif(d && d.children && d.children.length) {\r\n\t\t\t\tfor(i = 0, j = d.children.length; i < j; i++) {\r\n\t\t\t\t\tc = this._parse_model_from_json(d.children[i], tmp.id, ps);\r\n\t\t\t\t\te = m[c];\r\n\t\t\t\t\ttmp.children.push(c);\r\n\t\t\t\t\tif(e.children_d.length) {\r\n\t\t\t\t\t\ttmp.children_d = tmp.children_d.concat(e.children_d);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\ttmp.children_d = tmp.children_d.concat(tmp.children);\r\n\t\t\t}\r\n\t\t\tif(d && d.children && d.children === true) {\r\n\t\t\t\ttmp.state.loaded = false;\r\n\t\t\t\ttmp.children = [];\r\n\t\t\t\ttmp.children_d = [];\r\n\t\t\t}\r\n\t\t\tdelete d.data;\r\n\t\t\tdelete d.children;\r\n\t\t\ttmp.original = d;\r\n\t\t\tm[tmp.id] = tmp;\r\n\t\t\tif(tmp.state.selected) {\r\n\t\t\t\tthis._data.core.selected.push(tmp.id);\r\n\t\t\t}\r\n\t\t\treturn tmp.id;\r\n\t\t},\r\n\t\t/**\r\n\t\t * redraws all nodes that need to be redrawn. Used internally.\r\n\t\t * @private\r\n\t\t * @name _redraw()\r\n\t\t * @trigger redraw.jstree\r\n\t\t */\r\n\t\t_redraw : function () {\r\n\t\t\tvar nodes = this._model.force_full_redraw ? this._model.data['#'].children.concat([]) : this._model.changed.concat([]),\r\n\t\t\t\tf = document.createElement('UL'), tmp, i, j;\r\n\t\t\tfor(i = 0, j = nodes.length; i < j; i++) {\r\n\t\t\t\ttmp = this.redraw_node(nodes[i], true, this._model.force_full_redraw);\r\n\t\t\t\tif(tmp && this._model.force_full_redraw) {\r\n\t\t\t\t\tf.appendChild(tmp);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif(this._model.force_full_redraw) {\r\n\t\t\t\tf.className = this.get_container_ul()[0].className;\r\n\t\t\t\tthis.element.empty().append(f);\r\n\t\t\t\t//this.get_container_ul()[0].appendChild(f);\r\n\t\t\t}\r\n\t\t\tthis._model.force_full_redraw = false;\r\n\t\t\tthis._model.changed = [];\r\n\t\t\t/**\r\n\t\t\t * triggered after nodes are redrawn\r\n\t\t\t * @event\r\n\t\t\t * @name redraw.jstree\r\n\t\t\t * @param {array} nodes the redrawn nodes\r\n\t\t\t */\r\n\t\t\tthis.trigger('redraw', { \"nodes\" : nodes });\r\n\t\t},\r\n\t\t/**\r\n\t\t * redraws all nodes that need to be redrawn or optionally - the whole tree\r\n\t\t * @name redraw([full])\r\n\t\t * @param {Boolean} full if set to `true` all nodes are redrawn.\r\n\t\t */\r\n\t\tredraw : function (full) {\r\n\t\t\tif(full) {\r\n\t\t\t\tthis._model.force_full_redraw = true;\r\n\t\t\t}\r\n\t\t\t//if(this._model.redraw_timeout) {\r\n\t\t\t//\tclearTimeout(this._model.redraw_timeout);\r\n\t\t\t//}\r\n\t\t\t//this._model.redraw_timeout = setTimeout($.proxy(this._redraw, this),0);\r\n\t\t\tthis._redraw();\r\n\t\t},\r\n\t\t/**\r\n\t\t * redraws a single node. Used internally.\r\n\t\t * @private\r\n\t\t * @name redraw_node(node, deep, is_callback)\r\n\t\t * @param {mixed} node the node to redraw\r\n\t\t * @param {Boolean} deep should child nodes be redrawn too\r\n\t\t * @param {Boolean} is_callback is this a recursion call\r\n\t\t */\r\n\t\tredraw_node : function (node, deep, is_callback) {\r\n\t\t\tvar obj = this.get_node(node),\r\n\t\t\t\tpar = false,\r\n\t\t\t\tind = false,\r\n\t\t\t\told = false,\r\n\t\t\t\ti = false,\r\n\t\t\t\tj = false,\r\n\t\t\t\tk = false,\r\n\t\t\t\tc = '',\r\n\t\t\t\td = document,\r\n\t\t\t\tm = this._model.data,\r\n\t\t\t\tf = false,\r\n\t\t\t\ts = false,\r\n\t\t\t\ttmp = null;\r\n\t\t\tif(!obj) { return false; }\r\n\t\t\tif(obj.id === '#') { return this.redraw(true); }\r\n\t\t\tdeep = deep || obj.children.length === 0;\r\n\t\t\tnode = !document.querySelector ? document.getElementById(obj.id) : this.element[0].querySelector('#' + (\"0123456789\".indexOf(obj.id[0]) !== -1 ? '\\\\3' + obj.id[0] + ' ' + obj.id.substr(1).replace($.jstree.idregex,'\\\\$&') : obj.id.replace($.jstree.idregex,'\\\\$&')) ); //, this.element);\r\n\t\t\tif(!node) {\r\n\t\t\t\tdeep = true;\r\n\t\t\t\t//node = d.createElement('LI');\r\n\t\t\t\tif(!is_callback) {\r\n\t\t\t\t\tpar = obj.parent !== '#' ? $('#' + obj.parent.replace($.jstree.idregex,'\\\\$&'), this.element)[0] : null;\r\n\t\t\t\t\tif(par !== null && (!par || !m[obj.parent].state.opened)) {\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tind = $.inArray(obj.id, par === null ? m['#'].children : m[obj.parent].children);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tnode = $(node);\r\n\t\t\t\tif(!is_callback) {\r\n\t\t\t\t\tpar = node.parent().parent()[0];\r\n\t\t\t\t\tif(par === this.element[0]) {\r\n\t\t\t\t\t\tpar = null;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tind = node.index();\r\n\t\t\t\t}\r\n\t\t\t\t// m[obj.id].data = node.data(); // use only node's data, no need to touch jquery storage\r\n\t\t\t\tif(!deep && obj.children.length && !node.children('.jstree-children').length) {\r\n\t\t\t\t\tdeep = true;\r\n\t\t\t\t}\r\n\t\t\t\tif(!deep) {\r\n\t\t\t\t\told = node.children('.jstree-children')[0];\r\n\t\t\t\t}\r\n\t\t\t\ts = node.attr('aria-selected');\r\n\t\t\t\tf = node.children('.jstree-anchor')[0] === document.activeElement;\r\n\t\t\t\tnode.remove();\r\n\t\t\t\t//node = d.createElement('LI');\r\n\t\t\t\t//node = node[0];\r\n\t\t\t}\r\n\t\t\tnode = _node.cloneNode(true);\r\n\t\t\t// node is DOM, deep is boolean\r\n\r\n\t\t\tc = 'jstree-node ';\r\n\t\t\tfor(i in obj.li_attr) {\r\n\t\t\t\tif(obj.li_attr.hasOwnProperty(i)) {\r\n\t\t\t\t\tif(i === 'id') { continue; }\r\n\t\t\t\t\tif(i !== 'class') {\r\n\t\t\t\t\t\tnode.setAttribute(i, obj.li_attr[i]);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tc += obj.li_attr[i];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif(s && s !== \"false\") {\r\n\t\t\t\tnode.setAttribute('aria-selected', true);\r\n\t\t\t}\r\n\t\t\tif(obj.state.loaded && !obj.children.length) {\r\n\t\t\t\tc += ' jstree-leaf';\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tc += obj.state.opened && obj.state.loaded ? ' jstree-open' : ' jstree-closed';\r\n\t\t\t\tnode.setAttribute('aria-expanded', (obj.state.opened && obj.state.loaded) );\r\n\t\t\t}\r\n\t\t\tif(obj.parent !== null && m[obj.parent].children[m[obj.parent].children.length - 1] === obj.id) {\r\n\t\t\t\tc += ' jstree-last';\r\n\t\t\t}\r\n\t\t\tnode.id = obj.id;\r\n\t\t\tnode.className = c;\r\n\t\t\tc = ( obj.state.selected ? ' jstree-clicked' : '') + ( obj.state.disabled ? ' jstree-disabled' : '');\r\n\t\t\tfor(j in obj.a_attr) {\r\n\t\t\t\tif(obj.a_attr.hasOwnProperty(j)) {\r\n\t\t\t\t\tif(j === 'href' && obj.a_attr[j] === '#') { continue; }\r\n\t\t\t\t\tif(j !== 'class') {\r\n\t\t\t\t\t\tnode.childNodes[1].setAttribute(j, obj.a_attr[j]);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tc += ' ' + obj.a_attr[j];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif(c.length) {\r\n\t\t\t\tnode.childNodes[1].className = 'jstree-anchor ' + c;\r\n\t\t\t}\r\n\t\t\tif((obj.icon && obj.icon !== true) || obj.icon === false) {\r\n\t\t\t\tif(obj.icon === false) {\r\n\t\t\t\t\tnode.childNodes[1].childNodes[0].className += ' jstree-themeicon-hidden';\r\n\t\t\t\t}\r\n\t\t\t\telse if(obj.icon.indexOf('/') === -1 && obj.icon.indexOf('.') === -1) {\r\n\t\t\t\t\tnode.childNodes[1].childNodes[0].className += ' ' + obj.icon + ' jstree-themeicon-custom';\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tnode.childNodes[1].childNodes[0].style.backgroundImage = 'url('+obj.icon+')';\r\n\t\t\t\t\tnode.childNodes[1].childNodes[0].style.backgroundPosition = 'center center';\r\n\t\t\t\t\tnode.childNodes[1].childNodes[0].style.backgroundSize = 'auto';\r\n\t\t\t\t\tnode.childNodes[1].childNodes[0].className += ' jstree-themeicon-custom';\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t//node.childNodes[1].appendChild(d.createTextNode(obj.text));\r\n\t\t\tnode.childNodes[1].innerHTML += obj.text;\r\n\t\t\t// if(obj.data) { $.data(node, obj.data); } // always work with node's data, no need to touch jquery store\r\n\r\n\t\t\tif(deep && obj.children.length && obj.state.opened && obj.state.loaded) {\r\n\t\t\t\tk = d.createElement('UL');\r\n\t\t\t\tk.setAttribute('role', 'group');\r\n\t\t\t\tk.className = 'jstree-children';\r\n\t\t\t\tfor(i = 0, j = obj.children.length; i < j; i++) {\r\n\t\t\t\t\tk.appendChild(this.redraw_node(obj.children[i], deep, true));\r\n\t\t\t\t}\r\n\t\t\t\tnode.appendChild(k);\r\n\t\t\t}\r\n\t\t\tif(old) {\r\n\t\t\t\tnode.appendChild(old);\r\n\t\t\t}\r\n\t\t\tif(!is_callback) {\r\n\t\t\t\t// append back using par / ind\r\n\t\t\t\tif(!par) {\r\n\t\t\t\t\tpar = this.element[0];\r\n\t\t\t\t}\r\n\t\t\t\tfor(i = 0, j = par.childNodes.length; i < j; i++) {\r\n\t\t\t\t\tif(par.childNodes[i] && par.childNodes[i].className && par.childNodes[i].className.indexOf('jstree-children') !== -1) {\r\n\t\t\t\t\t\ttmp = par.childNodes[i];\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif(!tmp) {\r\n\t\t\t\t\ttmp = d.createElement('UL');\r\n\t\t\t\t\ttmp.setAttribute('role', 'group');\r\n\t\t\t\t\ttmp.className = 'jstree-children';\r\n\t\t\t\t\tpar.appendChild(tmp);\r\n\t\t\t\t}\r\n\t\t\t\tpar = tmp;\r\n\r\n\t\t\t\tif(ind < par.childNodes.length) {\r\n\t\t\t\t\tpar.insertBefore(node, par.childNodes[ind]);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tpar.appendChild(node);\r\n\t\t\t\t}\r\n\t\t\t\tif(f) {\r\n\t\t\t\t\tnode.childNodes[1].focus();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif(obj.state.opened && !obj.state.loaded) {\r\n\t\t\t\tobj.state.opened = false;\r\n\t\t\t\tsetTimeout($.proxy(function () {\r\n\t\t\t\t\tthis.open_node(obj.id, false, 0);\r\n\t\t\t\t}, this), 0);\r\n\t\t\t}\r\n\t\t\treturn node;\r\n\t\t},\r\n\t\t/**\r\n\t\t * opens a node, revaling its children. If the node is not loaded it will be loaded and opened once ready.\r\n\t\t * @name open_node(obj [, callback, animation])\r\n\t\t * @param {mixed} obj the node to open\r\n\t\t * @param {Function} callback a function to execute once the node is opened\r\n\t\t * @param {Number} animation the animation duration in milliseconds when opening the node (overrides the `core.animation` setting). Use `false` for no animation.\r\n\t\t * @trigger open_node.jstree, after_open.jstree, before_open.jstree\r\n\t\t */\r\n\t\topen_node : function (obj, callback, animation) {\r\n\t\t\tvar t1, t2, d, t;\r\n\t\t\tif($.isArray(obj)) {\r\n\t\t\t\tobj = obj.slice();\r\n\t\t\t\tfor(t1 = 0, t2 = obj.length; t1 < t2; t1++) {\r\n\t\t\t\t\tthis.open_node(obj[t1], callback, animation);\r\n\t\t\t\t}\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\tobj = this.get_node(obj);\r\n\t\t\tif(!obj || obj.id === '#') {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tanimation = animation === undefined ? this.settings.core.animation : animation;\r\n\t\t\tif(!this.is_closed(obj)) {\r\n\t\t\t\tif(callback) {\r\n\t\t\t\t\tcallback.call(this, obj, false);\r\n\t\t\t\t}\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tif(!this.is_loaded(obj)) {\r\n\t\t\t\tif(this.is_loading(obj)) {\r\n\t\t\t\t\treturn setTimeout($.proxy(function () {\r\n\t\t\t\t\t\tthis.open_node(obj, callback, animation);\r\n\t\t\t\t\t}, this), 500);\r\n\t\t\t\t}\r\n\t\t\t\tthis.load_node(obj, function (o, ok) {\r\n\t\t\t\t\treturn ok ? this.open_node(o, callback, animation) : (callback ? callback.call(this, o, false) : false);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\td = this.get_node(obj, true);\r\n\t\t\t\tt = this;\r\n\t\t\t\tif(d.length) {\r\n\t\t\t\t\tif(obj.children.length && !this._firstChild(d.children('.jstree-children')[0])) {\r\n\t\t\t\t\t\tobj.state.opened = true;\r\n\t\t\t\t\t\tthis.redraw_node(obj, true);\r\n\t\t\t\t\t\td = this.get_node(obj, true);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif(!animation) {\r\n\t\t\t\t\t\tthis.trigger('before_open', { \"node\" : obj });\r\n\t\t\t\t\t\td[0].className = d[0].className.replace('jstree-closed', 'jstree-open');\r\n\t\t\t\t\t\td[0].setAttribute(\"aria-expanded\", true);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tthis.trigger('before_open', { \"node\" : obj });\r\n\t\t\t\t\t\td\r\n\t\t\t\t\t\t\t.children(\".jstree-children\").css(\"display\",\"none\").end()\r\n\t\t\t\t\t\t\t.removeClass(\"jstree-closed\").addClass(\"jstree-open\").attr(\"aria-expanded\", true)\r\n\t\t\t\t\t\t\t.children(\".jstree-children\").stop(true, true)\r\n\t\t\t\t\t\t\t\t.slideDown(animation, function () {\r\n\t\t\t\t\t\t\t\t\tthis.style.display = \"\";\r\n\t\t\t\t\t\t\t\t\tt.trigger(\"after_open\", { \"node\" : obj });\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tobj.state.opened = true;\r\n\t\t\t\tif(callback) {\r\n\t\t\t\t\tcallback.call(this, obj, true);\r\n\t\t\t\t}\r\n\t\t\t\tif(!d.length) {\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * triggered when a node is about to be opened (if the node is supposed to be in the DOM, it will be, but it won't be visible yet)\r\n\t\t\t\t\t * @event\r\n\t\t\t\t\t * @name before_open.jstree\r\n\t\t\t\t\t * @param {Object} node the opened node\r\n\t\t\t\t\t */\r\n\t\t\t\t\tthis.trigger('before_open', { \"node\" : obj });\r\n\t\t\t\t}\r\n\t\t\t\t/**\r\n\t\t\t\t * triggered when a node is opened (if there is an animation it will not be completed yet)\r\n\t\t\t\t * @event\r\n\t\t\t\t * @name open_node.jstree\r\n\t\t\t\t * @param {Object} node the opened node\r\n\t\t\t\t */\r\n\t\t\t\tthis.trigger('open_node', { \"node\" : obj });\r\n\t\t\t\tif(!animation || !d.length) {\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * triggered when a node is opened and the animation is complete\r\n\t\t\t\t\t * @event\r\n\t\t\t\t\t * @name after_open.jstree\r\n\t\t\t\t\t * @param {Object} node the opened node\r\n\t\t\t\t\t */\r\n\t\t\t\t\tthis.trigger(\"after_open\", { \"node\" : obj });\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t\t/**\r\n\t\t * opens every parent of a node (node should be loaded)\r\n\t\t * @name _open_to(obj)\r\n\t\t * @param {mixed} obj the node to reveal\r\n\t\t * @private\r\n\t\t */\r\n\t\t_open_to : function (obj) {\r\n\t\t\tobj = this.get_node(obj);\r\n\t\t\tif(!obj || obj.id === '#') {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tvar i, j, p = obj.parents;\r\n\t\t\tfor(i = 0, j = p.length; i < j; i+=1) {\r\n\t\t\t\tif(i !== '#') {\r\n\t\t\t\t\tthis.open_node(p[i], false, 0);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn $('#' + obj.id.replace($.jstree.idregex,'\\\\$&'), this.element);\r\n\t\t},\r\n\t\t/**\r\n\t\t * closes a node, hiding its children\r\n\t\t * @name close_node(obj [, animation])\r\n\t\t * @param {mixed} obj the node to close\r\n\t\t * @param {Number} animation the animation duration in milliseconds when closing the node (overrides the `core.animation` setting). Use `false` for no animation.\r\n\t\t * @trigger close_node.jstree, after_close.jstree\r\n\t\t */\r\n\t\tclose_node : function (obj, animation) {\r\n\t\t\tvar t1, t2, t, d;\r\n\t\t\tif($.isArray(obj)) {\r\n\t\t\t\tobj = obj.slice();\r\n\t\t\t\tfor(t1 = 0, t2 = obj.length; t1 < t2; t1++) {\r\n\t\t\t\t\tthis.close_node(obj[t1], animation);\r\n\t\t\t\t}\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\tobj = this.get_node(obj);\r\n\t\t\tif(!obj || obj.id === '#') {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tif(this.is_closed(obj)) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tanimation = animation === undefined ? this.settings.core.animation : animation;\r\n\t\t\tt = this;\r\n\t\t\td = this.get_node(obj, true);\r\n\t\t\tif(d.length) {\r\n\t\t\t\tif(!animation) {\r\n\t\t\t\t\td[0].className = d[0].className.replace('jstree-open', 'jstree-closed');\r\n\t\t\t\t\td.attr(\"aria-expanded\", false).children('.jstree-children').remove();\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\td\r\n\t\t\t\t\t\t.children(\".jstree-children\").attr(\"style\",\"display:block !important\").end()\r\n\t\t\t\t\t\t.removeClass(\"jstree-open\").addClass(\"jstree-closed\").attr(\"aria-expanded\", false)\r\n\t\t\t\t\t\t.children(\".jstree-children\").stop(true, true).slideUp(animation, function () {\r\n\t\t\t\t\t\t\tthis.style.display = \"\";\r\n\t\t\t\t\t\t\td.children('.jstree-children').remove();\r\n\t\t\t\t\t\t\tt.trigger(\"after_close\", { \"node\" : obj });\r\n\t\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tobj.state.opened = false;\r\n\t\t\t/**\r\n\t\t\t * triggered when a node is closed (if there is an animation it will not be complete yet)\r\n\t\t\t * @event\r\n\t\t\t * @name close_node.jstree\r\n\t\t\t * @param {Object} node the closed node\r\n\t\t\t */\r\n\t\t\tthis.trigger('close_node',{ \"node\" : obj });\r\n\t\t\tif(!animation || !d.length) {\r\n\t\t\t\t/**\r\n\t\t\t\t * triggered when a node is closed and the animation is complete\r\n\t\t\t\t * @event\r\n\t\t\t\t * @name after_close.jstree\r\n\t\t\t\t * @param {Object} node the closed node\r\n\t\t\t\t */\r\n\t\t\t\tthis.trigger(\"after_close\", { \"node\" : obj });\r\n\t\t\t}\r\n\t\t},\r\n\t\t/**\r\n\t\t * toggles a node - closing it if it is open, opening it if it is closed\r\n\t\t * @name toggle_node(obj)\r\n\t\t * @param {mixed} obj the node to toggle\r\n\t\t */\r\n\t\ttoggle_node : function (obj) {\r\n\t\t\tvar t1, t2;\r\n\t\t\tif($.isArray(obj)) {\r\n\t\t\t\tobj = obj.slice();\r\n\t\t\t\tfor(t1 = 0, t2 = obj.length; t1 < t2; t1++) {\r\n\t\t\t\t\tthis.toggle_node(obj[t1]);\r\n\t\t\t\t}\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\tif(this.is_closed(obj)) {\r\n\t\t\t\treturn this.open_node(obj);\r\n\t\t\t}\r\n\t\t\tif(this.is_open(obj)) {\r\n\t\t\t\treturn this.close_node(obj);\r\n\t\t\t}\r\n\t\t},\r\n\t\t/**\r\n\t\t * opens all nodes within a node (or the tree), revaling their children. If the node is not loaded it will be loaded and opened once ready.\r\n\t\t * @name open_all([obj, animation, original_obj])\r\n\t\t * @param {mixed} obj the node to open recursively, omit to open all nodes in the tree\r\n\t\t * @param {Number} animation the animation duration in milliseconds when opening the nodes, the default is no animation\r\n\t\t * @param {jQuery} reference to the node that started the process (internal use)\r\n\t\t * @trigger open_all.jstree\r\n\t\t */\r\n\t\topen_all : function (obj, animation, original_obj) {\r\n\t\t\tif(!obj) { obj = '#'; }\r\n\t\t\tobj = this.get_node(obj);\r\n\t\t\tif(!obj) { return false; }\r\n\t\t\tvar dom = obj.id === '#' ? this.get_container_ul() : this.get_node(obj, true), i, j, _this;\r\n\t\t\tif(!dom.length) {\r\n\t\t\t\tfor(i = 0, j = obj.children_d.length; i < j; i++) {\r\n\t\t\t\t\tif(this.is_closed(this._model.data[obj.children_d[i]])) {\r\n\t\t\t\t\t\tthis._model.data[obj.children_d[i]].state.opened = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\treturn this.trigger('open_all', { \"node\" : obj });\r\n\t\t\t}\r\n\t\t\toriginal_obj = original_obj || dom;\r\n\t\t\t_this = this;\r\n\t\t\tdom = this.is_closed(obj) ? dom.find('.jstree-closed').addBack() : dom.find('.jstree-closed');\r\n\t\t\tdom.each(function () {\r\n\t\t\t\t_this.open_node(\r\n\t\t\t\t\tthis,\r\n\t\t\t\t\tfunction(node, status) { if(status && this.is_parent(node)) { this.open_all(node, animation, original_obj); } },\r\n\t\t\t\t\tanimation || 0\r\n\t\t\t\t);\r\n\t\t\t});\r\n\t\t\tif(original_obj.find('.jstree-closed').length === 0) {\r\n\t\t\t\t/**\r\n\t\t\t\t * triggered when an `open_all` call completes\r\n\t\t\t\t * @event\r\n\t\t\t\t * @name open_all.jstree\r\n\t\t\t\t * @param {Object} node the opened node\r\n\t\t\t\t */\r\n\t\t\t\tthis.trigger('open_all', { \"node\" : this.get_node(original_obj) });\r\n\t\t\t}\r\n\t\t},\r\n\t\t/**\r\n\t\t * closes all nodes within a node (or the tree), revaling their children\r\n\t\t * @name close_all([obj, animation])\r\n\t\t * @param {mixed} obj the node to close recursively, omit to close all nodes in the tree\r\n\t\t * @param {Number} animation the animation duration in milliseconds when closing the nodes, the default is no animation\r\n\t\t * @trigger close_all.jstree\r\n\t\t */\r\n\t\tclose_all : function (obj, animation) {\r\n\t\t\tif(!obj) { obj = '#'; }\r\n\t\t\tobj = this.get_node(obj);\r\n\t\t\tif(!obj) { return false; }\r\n\t\t\tvar dom = obj.id === '#' ? this.get_container_ul() : this.get_node(obj, true),\r\n\t\t\t\t_this = this, i, j;\r\n\t\t\tif(!dom.length) {\r\n\t\t\t\tfor(i = 0, j = obj.children_d.length; i < j; i++) {\r\n\t\t\t\t\tthis._model.data[obj.children_d[i]].state.opened = false;\r\n\t\t\t\t}\r\n\t\t\t\treturn this.trigger('close_all', { \"node\" : obj });\r\n\t\t\t}\r\n\t\t\tdom = this.is_open(obj) ? dom.find('.jstree-open').addBack() : dom.find('.jstree-open');\r\n\t\t\t$(dom.get().reverse()).each(function () { _this.close_node(this, animation || 0); });\r\n\t\t\t/**\r\n\t\t\t * triggered when an `close_all` call completes\r\n\t\t\t * @event\r\n\t\t\t * @name close_all.jstree\r\n\t\t\t * @param {Object} node the closed node\r\n\t\t\t */\r\n\t\t\tthis.trigger('close_all', { \"node\" : obj });\r\n\t\t},\r\n\t\t/**\r\n\t\t * checks if a node is disabled (not selectable)\r\n\t\t * @name is_disabled(obj)\r\n\t\t * @param {mixed} obj\r\n\t\t * @return {Boolean}\r\n\t\t */\r\n\t\tis_disabled : function (obj) {\r\n\t\t\tobj = this.get_node(obj);\r\n\t\t\treturn obj && obj.state && obj.state.disabled;\r\n\t\t},\r\n\t\t/**\r\n\t\t * enables a node - so that it can be selected\r\n\t\t * @name enable_node(obj)\r\n\t\t * @param {mixed} obj the node to enable\r\n\t\t * @trigger enable_node.jstree\r\n\t\t */\r\n\t\tenable_node : function (obj) {\r\n\t\t\tvar t1, t2;\r\n\t\t\tif($.isArray(obj)) {\r\n\t\t\t\tobj = obj.slice();\r\n\t\t\t\tfor(t1 = 0, t2 = obj.length; t1 < t2; t1++) {\r\n\t\t\t\t\tthis.enable_node(obj[t1]);\r\n\t\t\t\t}\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\tobj = this.get_node(obj);\r\n\t\t\tif(!obj || obj.id === '#') {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tobj.state.disabled = false;\r\n\t\t\tthis.get_node(obj,true).children('.jstree-anchor').removeClass('jstree-disabled');\r\n\t\t\t/**\r\n\t\t\t * triggered when an node is enabled\r\n\t\t\t * @event\r\n\t\t\t * @name enable_node.jstree\r\n\t\t\t * @param {Object} node the enabled node\r\n\t\t\t */\r\n\t\t\tthis.trigger('enable_node', { 'node' : obj });\r\n\t\t},\r\n\t\t/**\r\n\t\t * disables a node - so that it can not be selected\r\n\t\t * @name disable_node(obj)\r\n\t\t * @param {mixed} obj the node to disable\r\n\t\t * @trigger disable_node.jstree\r\n\t\t */\r\n\t\tdisable_node : function (obj) {\r\n\t\t\tvar t1, t2;\r\n\t\t\tif($.isArray(obj)) {\r\n\t\t\t\tobj = obj.slice();\r\n\t\t\t\tfor(t1 = 0, t2 = obj.length; t1 < t2; t1++) {\r\n\t\t\t\t\tthis.disable_node(obj[t1]);\r\n\t\t\t\t}\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\tobj = this.get_node(obj);\r\n\t\t\tif(!obj || obj.id === '#') {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tobj.state.disabled = true;\r\n\t\t\tthis.get_node(obj,true).children('.jstree-anchor').addClass('jstree-disabled');\r\n\t\t\t/**\r\n\t\t\t * triggered when an node is disabled\r\n\t\t\t * @event\r\n\t\t\t * @name disable_node.jstree\r\n\t\t\t * @param {Object} node the disabled node\r\n\t\t\t */\r\n\t\t\tthis.trigger('disable_node', { 'node' : obj });\r\n\t\t},\r\n\t\t/**\r\n\t\t * called when a node is selected by the user. Used internally.\r\n\t\t * @private\r\n\t\t * @name activate_node(obj, e)\r\n\t\t * @param {mixed} obj the node\r\n\t\t * @param {Object} e the related event\r\n\t\t * @trigger activate_node.jstree\r\n\t\t */\r\n\t\tactivate_node : function (obj, e) {\r\n\t\t\tif(this.is_disabled(obj)) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\r\n\t\t\t// ensure last_clicked is still in the DOM, make it fresh (maybe it was moved?) and make sure it is still selected, if not - make last_clicked the last selected node\r\n\t\t\tthis._data.core.last_clicked = this._data.core.last_clicked && this._data.core.last_clicked.id !== undefined ? this.get_node(this._data.core.last_clicked.id) : null;\r\n\t\t\tif(this._data.core.last_clicked && !this._data.core.last_clicked.state.selected) { this._data.core.last_clicked = null; }\r\n\t\t\tif(!this._data.core.last_clicked && this._data.core.selected.length) { this._data.core.last_clicked = this.get_node(this._data.core.selected[this._data.core.selected.length - 1]); }\r\n\r\n\t\t\tif(!this.settings.core.multiple || (!e.metaKey && !e.ctrlKey && !e.shiftKey) || (e.shiftKey && (!this._data.core.last_clicked || !this.get_parent(obj) || this.get_parent(obj) !== this._data.core.last_clicked.parent ) )) {\r\n\t\t\t\tif(!this.settings.core.multiple && (e.metaKey || e.ctrlKey || e.shiftKey) && this.is_selected(obj)) {\r\n\t\t\t\t\tthis.deselect_node(obj, false, false, e);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tthis.deselect_all(true);\r\n\t\t\t\t\tthis.select_node(obj, false, false, e);\r\n\t\t\t\t\tthis._data.core.last_clicked = this.get_node(obj);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tif(e.shiftKey) {\r\n\t\t\t\t\tvar o = this.get_node(obj).id,\r\n\t\t\t\t\t\tl = this._data.core.last_clicked.id,\r\n\t\t\t\t\t\tp = this.get_node(this._data.core.last_clicked.parent).children,\r\n\t\t\t\t\t\tc = false,\r\n\t\t\t\t\t\ti, j;\r\n\t\t\t\t\tfor(i = 0, j = p.length; i < j; i += 1) {\r\n\t\t\t\t\t\t// separate IFs work whem o and l are the same\r\n\t\t\t\t\t\tif(p[i] === o) {\r\n\t\t\t\t\t\t\tc = !c;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif(p[i] === l) {\r\n\t\t\t\t\t\t\tc = !c;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif(c || p[i] === o || p[i] === l) {\r\n\t\t\t\t\t\t\tthis.select_node(p[i], false, false, e);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tthis.deselect_node(p[i], false, false, e);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tif(!this.is_selected(obj)) {\r\n\t\t\t\t\t\tthis.select_node(obj, false, false, e);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tthis.deselect_node(obj, false, false, e);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t/**\r\n\t\t\t * triggered when an node is clicked or intercated with by the user\r\n\t\t\t * @event\r\n\t\t\t * @name activate_node.jstree\r\n\t\t\t * @param {Object} node\r\n\t\t\t */\r\n\t\t\tthis.trigger('activate_node', { 'node' : this.get_node(obj) });\r\n\t\t},\r\n\t\t/**\r\n\t\t * applies the hover state on a node, called when a node is hovered by the user. Used internally.\r\n\t\t * @private\r\n\t\t * @name hover_node(obj)\r\n\t\t * @param {mixed} obj\r\n\t\t * @trigger hover_node.jstree\r\n\t\t */\r\n\t\thover_node : function (obj) {\r\n\t\t\tobj = this.get_node(obj, true);\r\n\t\t\tif(!obj || !obj.length || obj.children('.jstree-hovered').length) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tvar o = this.element.find('.jstree-hovered'), t = this.element;\r\n\t\t\tif(o && o.length) { this.dehover_node(o); }\r\n\r\n\t\t\tobj.children('.jstree-anchor').addClass('jstree-hovered');\r\n\t\t\t/**\r\n\t\t\t * triggered when an node is hovered\r\n\t\t\t * @event\r\n\t\t\t * @name hover_node.jstree\r\n\t\t\t * @param {Object} node\r\n\t\t\t */\r\n\t\t\tthis.trigger('hover_node', { 'node' : this.get_node(obj) });\r\n\t\t\tsetTimeout(function () { t.attr('aria-activedescendant', obj[0].id); obj.attr('aria-selected', true); }, 0);\r\n\t\t},\r\n\t\t/**\r\n\t\t * removes the hover state from a nodecalled when a node is no longer hovered by the user. Used internally.\r\n\t\t * @private\r\n\t\t * @name dehover_node(obj)\r\n\t\t * @param {mixed} obj\r\n\t\t * @trigger dehover_node.jstree\r\n\t\t */\r\n\t\tdehover_node : function (obj) {\r\n\t\t\tobj = this.get_node(obj, true);\r\n\t\t\tif(!obj || !obj.length || !obj.children('.jstree-hovered').length) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tobj.attr('aria-selected', false).children('.jstree-anchor').removeClass('jstree-hovered');\r\n\t\t\t/**\r\n\t\t\t * triggered when an node is no longer hovered\r\n\t\t\t * @event\r\n\t\t\t * @name dehover_node.jstree\r\n\t\t\t * @param {Object} node\r\n\t\t\t */\r\n\t\t\tthis.trigger('dehover_node', { 'node' : this.get_node(obj) });\r\n\t\t},\r\n\t\t/**\r\n\t\t * select a node\r\n\t\t * @name select_node(obj [, supress_event, prevent_open])\r\n\t\t * @param {mixed} obj an array can be used to select multiple nodes\r\n\t\t * @param {Boolean} supress_event if set to `true` the `changed.jstree` event won't be triggered\r\n\t\t * @param {Boolean} prevent_open if set to `true` parents of the selected node won't be opened\r\n\t\t * @trigger select_node.jstree, changed.jstree\r\n\t\t */\r\n\t\tselect_node : function (obj, supress_event, prevent_open, e) {\r\n\t\t\tvar dom, t1, t2, th;\r\n\t\t\tif($.isArray(obj)) {\r\n\t\t\t\tobj = obj.slice();\r\n\t\t\t\tfor(t1 = 0, t2 = obj.length; t1 < t2; t1++) {\r\n\t\t\t\t\tthis.select_node(obj[t1], supress_event, prevent_open, e);\r\n\t\t\t\t}\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\tobj = this.get_node(obj);\r\n\t\t\tif(!obj || obj.id === '#') {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tdom = this.get_node(obj, true);\r\n\t\t\tif(!obj.state.selected) {\r\n\t\t\t\tobj.state.selected = true;\r\n\t\t\t\tthis._data.core.selected.push(obj.id);\r\n\t\t\t\tif(!prevent_open) {\r\n\t\t\t\t\tdom = this._open_to(obj);\r\n\t\t\t\t}\r\n\t\t\t\tif(dom && dom.length) {\r\n\t\t\t\t\tdom.children('.jstree-anchor').addClass('jstree-clicked');\r\n\t\t\t\t}\r\n\t\t\t\t/**\r\n\t\t\t\t * triggered when an node is selected\r\n\t\t\t\t * @event\r\n\t\t\t\t * @name select_node.jstree\r\n\t\t\t\t * @param {Object} node\r\n\t\t\t\t * @param {Array} selected the current selection\r\n\t\t\t\t * @param {Object} event the event (if any) that triggered this select_node\r\n\t\t\t\t */\r\n\t\t\t\tthis.trigger('select_node', { 'node' : obj, 'selected' : this._data.core.selected, 'event' : e });\r\n\t\t\t\tif(!supress_event) {\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * triggered when selection changes\r\n\t\t\t\t\t * @event\r\n\t\t\t\t\t * @name changed.jstree\r\n\t\t\t\t\t * @param {Object} node\r\n\t\t\t\t\t * @param {Object} action the action that caused the selection to change\r\n\t\t\t\t\t * @param {Array} selected the current selection\r\n\t\t\t\t\t * @param {Object} event the event (if any) that triggered this changed event\r\n\t\t\t\t\t */\r\n\t\t\t\t\tthis.trigger('changed', { 'action' : 'select_node', 'node' : obj, 'selected' : this._data.core.selected, 'event' : e });\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t\t/**\r\n\t\t * deselect a node\r\n\t\t * @name deselect_node(obj [, supress_event])\r\n\t\t * @param {mixed} obj an array can be used to deselect multiple nodes\r\n\t\t * @param {Boolean} supress_event if set to `true` the `changed.jstree` event won't be triggered\r\n\t\t * @trigger deselect_node.jstree, changed.jstree\r\n\t\t */\r\n\t\tdeselect_node : function (obj, supress_event, e) {\r\n\t\t\tvar t1, t2, dom;\r\n\t\t\tif($.isArray(obj)) {\r\n\t\t\t\tobj = obj.slice();\r\n\t\t\t\tfor(t1 = 0, t2 = obj.length; t1 < t2; t1++) {\r\n\t\t\t\t\tthis.deselect_node(obj[t1], supress_event, e);\r\n\t\t\t\t}\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\tobj = this.get_node(obj);\r\n\t\t\tif(!obj || obj.id === '#') {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tdom = this.get_node(obj, true);\r\n\t\t\tif(obj.state.selected) {\r\n\t\t\t\tobj.state.selected = false;\r\n\t\t\t\tthis._data.core.selected = $.vakata.array_remove_item(this._data.core.selected, obj.id);\r\n\t\t\t\tif(dom.length) {\r\n\t\t\t\t\tdom.children('.jstree-anchor').removeClass('jstree-clicked');\r\n\t\t\t\t}\r\n\t\t\t\t/**\r\n\t\t\t\t * triggered when an node is deselected\r\n\t\t\t\t * @event\r\n\t\t\t\t * @name deselect_node.jstree\r\n\t\t\t\t * @param {Object} node\r\n\t\t\t\t * @param {Array} selected the current selection\r\n\t\t\t\t * @param {Object} event the event (if any) that triggered this deselect_node\r\n\t\t\t\t */\r\n\t\t\t\tthis.trigger('deselect_node', { 'node' : obj, 'selected' : this._data.core.selected, 'event' : e });\r\n\t\t\t\tif(!supress_event) {\r\n\t\t\t\t\tthis.trigger('changed', { 'action' : 'deselect_node', 'node' : obj, 'selected' : this._data.core.selected, 'event' : e });\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t\t/**\r\n\t\t * select all nodes in the tree\r\n\t\t * @name select_all([supress_event])\r\n\t\t * @param {Boolean} supress_event if set to `true` the `changed.jstree` event won't be triggered\r\n\t\t * @trigger select_all.jstree, changed.jstree\r\n\t\t */\r\n\t\tselect_all : function (supress_event) {\r\n\t\t\tvar tmp = this._data.core.selected.concat([]), i, j;\r\n\t\t\tthis._data.core.selected = this._model.data['#'].children_d.concat();\r\n\t\t\tfor(i = 0, j = this._data.core.selected.length; i < j; i++) {\r\n\t\t\t\tif(this._model.data[this._data.core.selected[i]]) {\r\n\t\t\t\t\tthis._model.data[this._data.core.selected[i]].state.selected = true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tthis.redraw(true);\r\n\t\t\t/**\r\n\t\t\t * triggered when all nodes are selected\r\n\t\t\t * @event\r\n\t\t\t * @name select_all.jstree\r\n\t\t\t * @param {Array} selected the current selection\r\n\t\t\t */\r\n\t\t\tthis.trigger('select_all', { 'selected' : this._data.core.selected });\r\n\t\t\tif(!supress_event) {\r\n\t\t\t\tthis.trigger('changed', { 'action' : 'select_all', 'selected' : this._data.core.selected, 'old_selection' : tmp });\r\n\t\t\t}\r\n\t\t},\r\n\t\t/**\r\n\t\t * deselect all selected nodes\r\n\t\t * @name deselect_all([supress_event])\r\n\t\t * @param {Boolean} supress_event if set to `true` the `changed.jstree` event won't be triggered\r\n\t\t * @trigger deselect_all.jstree, changed.jstree\r\n\t\t */\r\n\t\tdeselect_all : function (supress_event) {\r\n\t\t\tvar tmp = this._data.core.selected.concat([]), i, j;\r\n\t\t\tfor(i = 0, j = this._data.core.selected.length; i < j; i++) {\r\n\t\t\t\tif(this._model.data[this._data.core.selected[i]]) {\r\n\t\t\t\t\tthis._model.data[this._data.core.selected[i]].state.selected = false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tthis._data.core.selected = [];\r\n\t\t\tthis.element.find('.jstree-clicked').removeClass('jstree-clicked');\r\n\t\t\t/**\r\n\t\t\t * triggered when all nodes are deselected\r\n\t\t\t * @event\r\n\t\t\t * @name deselect_all.jstree\r\n\t\t\t * @param {Object} node the previous selection\r\n\t\t\t * @param {Array} selected the current selection\r\n\t\t\t */\r\n\t\t\tthis.trigger('deselect_all', { 'selected' : this._data.core.selected, 'node' : tmp });\r\n\t\t\tif(!supress_event) {\r\n\t\t\t\tthis.trigger('changed', { 'action' : 'deselect_all', 'selected' : this._data.core.selected, 'old_selection' : tmp });\r\n\t\t\t}\r\n\t\t},\r\n\t\t/**\r\n\t\t * checks if a node is selected\r\n\t\t * @name is_selected(obj)\r\n\t\t * @param {mixed} obj\r\n\t\t * @return {Boolean}\r\n\t\t */\r\n\t\tis_selected : function (obj) {\r\n\t\t\tobj = this.get_node(obj);\r\n\t\t\tif(!obj || obj.id === '#') {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\treturn obj.state.selected;\r\n\t\t},\r\n\t\t/**\r\n\t\t * get an array of all selected nodes\r\n\t\t * @name get_selected([full])\r\n\t\t * @param {mixed} full if set to `true` the returned array will consist of the full node objects, otherwise - only IDs will be returned\r\n\t\t * @return {Array}\r\n\t\t */\r\n\t\tget_selected : function (full) {\r\n\t\t\treturn full ? $.map(this._data.core.selected, $.proxy(function (i) { return this.get_node(i); }, this)) : this._data.core.selected;\r\n\t\t},\r\n\t\t/**\r\n\t\t * get an array of all top level selected nodes (ignoring children of selected nodes)\r\n\t\t * @name get_top_selected([full])\r\n\t\t * @param {mixed} full if set to `true` the returned array will consist of the full node objects, otherwise - only IDs will be returned\r\n\t\t * @return {Array}\r\n\t\t */\r\n\t\tget_top_selected : function (full) {\r\n\t\t\tvar tmp = this.get_selected(true),\r\n\t\t\t\tobj = {}, i, j, k, l;\r\n\t\t\tfor(i = 0, j = tmp.length; i < j; i++) {\r\n\t\t\t\tobj[tmp[i].id] = tmp[i];\r\n\t\t\t}\r\n\t\t\tfor(i = 0, j = tmp.length; i < j; i++) {\r\n\t\t\t\tfor(k = 0, l = tmp[i].children_d.length; k < l; k++) {\r\n\t\t\t\t\tif(obj[tmp[i].children_d[k]]) {\r\n\t\t\t\t\t\tdelete obj[tmp[i].children_d[k]];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\ttmp = [];\r\n\t\t\tfor(i in obj) {\r\n\t\t\t\tif(obj.hasOwnProperty(i)) {\r\n\t\t\t\t\ttmp.push(i);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn full ? $.map(tmp, $.proxy(function (i) { return this.get_node(i); }, this)) : tmp;\r\n\t\t},\r\n\t\t/**\r\n\t\t * get an array of all bottom level selected nodes (ignoring selected parents)\r\n\t\t * @name get_bottom_selected([full])\r\n\t\t * @param {mixed} full if set to `true` the returned array will consist of the full node objects, otherwise - only IDs will be returned\r\n\t\t * @return {Array}\r\n\t\t */\r\n\t\tget_bottom_selected : function (full) {\r\n\t\t\tvar tmp = this.get_selected(true),\r\n\t\t\t\tobj = [], i, j;\r\n\t\t\tfor(i = 0, j = tmp.length; i < j; i++) {\r\n\t\t\t\tif(!tmp[i].children.length) {\r\n\t\t\t\t\tobj.push(tmp[i].id);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn full ? $.map(obj, $.proxy(function (i) { return this.get_node(i); }, this)) : obj;\r\n\t\t},\r\n\t\t/**\r\n\t\t * gets the current state of the tree so that it can be restored later with `set_state(state)`. Used internally.\r\n\t\t * @name get_state()\r\n\t\t * @private\r\n\t\t * @return {Object}\r\n\t\t */\r\n\t\tget_state : function () {\r\n\t\t\tvar state\t= {\r\n\t\t\t\t'core' : {\r\n\t\t\t\t\t'open' : [],\r\n\t\t\t\t\t'scroll' : {\r\n\t\t\t\t\t\t'left' : this.element.scrollLeft(),\r\n\t\t\t\t\t\t'top' : this.element.scrollTop()\r\n\t\t\t\t\t},\r\n\t\t\t\t\t/*!\r\n\t\t\t\t\t'themes' : {\r\n\t\t\t\t\t\t'name' : this.get_theme(),\r\n\t\t\t\t\t\t'icons' : this._data.core.themes.icons,\r\n\t\t\t\t\t\t'dots' : this._data.core.themes.dots\r\n\t\t\t\t\t},\r\n\t\t\t\t\t*/\r\n\t\t\t\t\t'selected' : []\r\n\t\t\t\t}\r\n\t\t\t}, i;\r\n\t\t\tfor(i in this._model.data) {\r\n\t\t\t\tif(this._model.data.hasOwnProperty(i)) {\r\n\t\t\t\t\tif(i !== '#') {\r\n\t\t\t\t\t\tif(this._model.data[i].state.opened) {\r\n\t\t\t\t\t\t\tstate.core.open.push(i);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif(this._model.data[i].state.selected) {\r\n\t\t\t\t\t\t\tstate.core.selected.push(i);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn state;\r\n\t\t},\r\n\t\t/**\r\n\t\t * sets the state of the tree. Used internally.\r\n\t\t * @name set_state(state [, callback])\r\n\t\t * @private\r\n\t\t * @param {Object} state the state to restore\r\n\t\t * @param {Function} callback an optional function to execute once the state is restored.\r\n\t\t * @trigger set_state.jstree\r\n\t\t */\r\n\t\tset_state : function (state, callback) {\r\n\t\t\tif(state) {\r\n\t\t\t\tif(state.core) {\r\n\t\t\t\t\tvar res, n, t, _this;\r\n\t\t\t\t\tif(state.core.open) {\r\n\t\t\t\t\t\tif(!$.isArray(state.core.open)) {\r\n\t\t\t\t\t\t\tdelete state.core.open;\r\n\t\t\t\t\t\t\tthis.set_state(state, callback);\r\n\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tres = true;\r\n\t\t\t\t\t\tn = false;\r\n\t\t\t\t\t\tt = this;\r\n\t\t\t\t\t\t$.each(state.core.open.concat([]), function (i, v) {\r\n\t\t\t\t\t\t\tn = t.get_node(v);\r\n\t\t\t\t\t\t\tif(n) {\r\n\t\t\t\t\t\t\t\tif(t.is_loaded(v)) {\r\n\t\t\t\t\t\t\t\t\tif(t.is_closed(v)) {\r\n\t\t\t\t\t\t\t\t\t\tt.open_node(v, false, 0);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\tif(state && state.core && state.core.open) {\r\n\t\t\t\t\t\t\t\t\t\t$.vakata.array_remove_item(state.core.open, v);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\tif(!t.is_loading(v)) {\r\n\t\t\t\t\t\t\t\t\t\tt.open_node(v, $.proxy(function (o, s) {\r\n\t\t\t\t\t\t\t\t\t\t\tif(!s && state && state.core && state.core.open) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t$.vakata.array_remove_item(state.core.open, o.id);\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\tthis.set_state(state, callback);\r\n\t\t\t\t\t\t\t\t\t\t}, t), 0);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t// there will be some async activity - so wait for it\r\n\t\t\t\t\t\t\t\t\tres = false;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\tif(res) {\r\n\t\t\t\t\t\t\tdelete state.core.open;\r\n\t\t\t\t\t\t\tthis.set_state(state, callback);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif(state.core.scroll) {\r\n\t\t\t\t\t\tif(state.core.scroll && state.core.scroll.left !== undefined) {\r\n\t\t\t\t\t\t\tthis.element.scrollLeft(state.core.scroll.left);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif(state.core.scroll && state.core.scroll.top !== undefined) {\r\n\t\t\t\t\t\t\tthis.element.scrollTop(state.core.scroll.top);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tdelete state.core.scroll;\r\n\t\t\t\t\t\tthis.set_state(state, callback);\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t/*!\r\n\t\t\t\t\tif(state.core.themes) {\r\n\t\t\t\t\t\tif(state.core.themes.name) {\r\n\t\t\t\t\t\t\tthis.set_theme(state.core.themes.name);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif(typeof state.core.themes.dots !== 'undefined') {\r\n\t\t\t\t\t\t\tthis[ state.core.themes.dots ? \"show_dots\" : \"hide_dots\" ]();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif(typeof state.core.themes.icons !== 'undefined') {\r\n\t\t\t\t\t\t\tthis[ state.core.themes.icons ? \"show_icons\" : \"hide_icons\" ]();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tdelete state.core.themes;\r\n\t\t\t\t\t\tdelete state.core.open;\r\n\t\t\t\t\t\tthis.set_state(state, callback);\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t*/\r\n\t\t\t\t\tif(state.core.selected) {\r\n\t\t\t\t\t\t_this = this;\r\n\t\t\t\t\t\tthis.deselect_all();\r\n\t\t\t\t\t\t$.each(state.core.selected, function (i, v) {\r\n\t\t\t\t\t\t\t_this.select_node(v);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\tdelete state.core.selected;\r\n\t\t\t\t\t\tthis.set_state(state, callback);\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif($.isEmptyObject(state.core)) {\r\n\t\t\t\t\t\tdelete state.core;\r\n\t\t\t\t\t\tthis.set_state(state, callback);\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif($.isEmptyObject(state)) {\r\n\t\t\t\t\tstate = null;\r\n\t\t\t\t\tif(callback) { callback.call(this); }\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * triggered when a `set_state` call completes\r\n\t\t\t\t\t * @event\r\n\t\t\t\t\t * @name set_state.jstree\r\n\t\t\t\t\t */\r\n\t\t\t\t\tthis.trigger('set_state');\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\treturn false;\r\n\t\t},\r\n\t\t/**\r\n\t\t * refreshes the tree - all nodes are reloaded with calls to `load_node`.\r\n\t\t * @name refresh()\r\n\t\t * @param {Boolean} skip_loading an option to skip showing the loading indicator\r\n\t\t * @trigger refresh.jstree\r\n\t\t */\r\n\t\trefresh : function (skip_loading) {\r\n\t\t\tthis._data.core.state = this.get_state();\r\n\t\t\tthis._cnt = 0;\r\n\t\t\tthis._model.data = {\r\n\t\t\t\t'#' : {\r\n\t\t\t\t\tid : '#',\r\n\t\t\t\t\tparent : null,\r\n\t\t\t\t\tparents : [],\r\n\t\t\t\t\tchildren : [],\r\n\t\t\t\t\tchildren_d : [],\r\n\t\t\t\t\tstate : { loaded : false }\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t\tvar c = this.get_container_ul()[0].className;\r\n\t\t\tif(!skip_loading) {\r\n\t\t\t\tthis.element.html(\"<\"+\"ul class='\"+c+\"'><\"+\"li class='jstree-initial-node jstree-loading jstree-leaf jstree-last'><\"+\"a class='jstree-anchor' href='#'>\" + this.get_string(\"Loading ...\") + \"\");\r\n\t\t\t}\r\n\t\t\tthis.load_node('#', function (o, s) {\r\n\t\t\t\tif(s) {\r\n\t\t\t\t\tthis.get_container_ul()[0].className = c;\r\n\t\t\t\t\tthis.set_state($.extend(true, {}, this._data.core.state), function () {\r\n\t\t\t\t\t\t/**\r\n\t\t\t\t\t\t * triggered when a `refresh` call completes\r\n\t\t\t\t\t\t * @event\r\n\t\t\t\t\t\t * @name refresh.jstree\r\n\t\t\t\t\t\t */\r\n\t\t\t\t\t\tthis.trigger('refresh');\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\tthis._data.core.state = null;\r\n\t\t\t});\r\n\t\t},\r\n\t\t/**\r\n\t\t * refreshes a node in the tree (reload its children) all opened nodes inside that node are reloaded with calls to `load_node`.\r\n\t\t * @name refresh_node(obj)\r\n\t\t * @param {Boolean} skip_loading an option to skip showing the loading indicator\r\n\t\t * @trigger refresh.jstree\r\n\t\t */\r\n\t\trefresh_node : function (obj) {\r\n\t\t\tobj = this.get_node(obj);\r\n\t\t\tif(!obj || obj.id === '#') { return false; }\r\n\t\t\tvar opened = [], s = this._data.core.selected.concat([]);\r\n\t\t\tif(obj.state.opened === true) { opened.push(obj.id); }\r\n\t\t\tthis.get_node(obj, true).find('.jstree-open').each(function() { opened.push(this.id); });\r\n\t\t\tthis._load_nodes(opened, $.proxy(function (nodes) {\r\n\t\t\t\tthis.open_node(nodes, false, 0);\r\n\t\t\t\tthis.select_node(this._data.core.selected);\r\n\t\t\t\t/**\r\n\t\t\t\t * triggered when a node is refreshed\r\n\t\t\t\t * @event\r\n\t\t\t\t * @name move_node.jstree\r\n\t\t\t\t * @param {Object} node - the refreshed node\r\n\t\t\t\t * @param {Array} nodes - an array of the IDs of the nodes that were reloaded\r\n\t\t\t\t */\r\n\t\t\t\tthis.trigger('refresh_node', { 'node' : obj, 'nodes' : nodes });\r\n\t\t\t}, this));\r\n\t\t},\r\n\t\t/**\r\n\t\t * set (change) the ID of a node\r\n\t\t * @name set_id(obj, id)\r\n\t\t * @param {mixed} obj the node\r\n\t\t * @param {String} id the new ID\r\n\t\t * @return {Boolean}\r\n\t\t */\r\n\t\tset_id : function (obj, id) {\r\n\t\t\tobj = this.get_node(obj);\r\n\t\t\tif(!obj || obj.id === '#') { return false; }\r\n\t\t\tvar i, j, m = this._model.data;\r\n\t\t\tid = id.toString();\r\n\t\t\t// update parents (replace current ID with new one in children and children_d)\r\n\t\t\tm[obj.parent].children[$.inArray(obj.id, m[obj.parent].children)] = id;\r\n\t\t\tfor(i = 0, j = obj.parents.length; i < j; i++) {\r\n\t\t\t\tm[obj.parents[i]].children_d[$.inArray(obj.id, m[obj.parents[i]].children_d)] = id;\r\n\t\t\t}\r\n\t\t\t// update children (replace current ID with new one in parent and parents)\r\n\t\t\tfor(i = 0, j = obj.children.length; i < j; i++) {\r\n\t\t\t\tm[obj.children[i]].parent = id;\r\n\t\t\t}\r\n\t\t\tfor(i = 0, j = obj.children_d.length; i < j; i++) {\r\n\t\t\t\tm[obj.children_d[i]].parents[$.inArray(obj.id, m[obj.children_d[i]].parents)] = id;\r\n\t\t\t}\r\n\t\t\ti = $.inArray(obj.id, this._data.core.selected);\r\n\t\t\tif(i !== -1) { this._data.core.selected[i] = id; }\r\n\t\t\t// update model and obj itself (obj.id, this._model.data[KEY])\r\n\t\t\ti = this.get_node(obj.id, true);\r\n\t\t\tif(i) {\r\n\t\t\t\ti.attr('id', id);\r\n\t\t\t}\r\n\t\t\tdelete m[obj.id];\r\n\t\t\tobj.id = id;\r\n\t\t\tm[id] = obj;\r\n\t\t\treturn true;\r\n\t\t},\r\n\t\t/**\r\n\t\t * get the text value of a node\r\n\t\t * @name get_text(obj)\r\n\t\t * @param {mixed} obj the node\r\n\t\t * @return {String}\r\n\t\t */\r\n\t\tget_text : function (obj) {\r\n\t\t\tobj = this.get_node(obj);\r\n\t\t\treturn (!obj || obj.id === '#') ? false : obj.text;\r\n\t\t},\r\n\t\t/**\r\n\t\t * set the text value of a node. Used internally, please use `rename_node(obj, val)`.\r\n\t\t * @private\r\n\t\t * @name set_text(obj, val)\r\n\t\t * @param {mixed} obj the node, you can pass an array to set the text on multiple nodes\r\n\t\t * @param {String} val the new text value\r\n\t\t * @return {Boolean}\r\n\t\t * @trigger set_text.jstree\r\n\t\t */\r\n\t\tset_text : function (obj, val) {\r\n\t\t\tvar t1, t2, dom, tmp;\r\n\t\t\tif($.isArray(obj)) {\r\n\t\t\t\tobj = obj.slice();\r\n\t\t\t\tfor(t1 = 0, t2 = obj.length; t1 < t2; t1++) {\r\n\t\t\t\t\tthis.set_text(obj[t1], val);\r\n\t\t\t\t}\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\tobj = this.get_node(obj);\r\n\t\t\tif(!obj || obj.id === '#') { return false; }\r\n\t\t\tobj.text = val;\r\n\t\t\tdom = this.get_node(obj, true);\r\n\t\t\tif(dom.length) {\r\n\t\t\t\tdom = dom.children(\".jstree-anchor:eq(0)\");\r\n\t\t\t\ttmp = dom.children(\"I\").clone();\r\n\t\t\t\tdom.html(val).prepend(tmp);\r\n\t\t\t\t/**\r\n\t\t\t\t * triggered when a node text value is changed\r\n\t\t\t\t * @event\r\n\t\t\t\t * @name set_text.jstree\r\n\t\t\t\t * @param {Object} obj\r\n\t\t\t\t * @param {String} text the new value\r\n\t\t\t\t */\r\n\t\t\t\tthis.trigger('set_text',{ \"obj\" : obj, \"text\" : val });\r\n\t\t\t}\r\n\t\t\treturn true;\r\n\t\t},\r\n\t\t/**\r\n\t\t * gets a JSON representation of a node (or the whole tree)\r\n\t\t * @name get_json([obj, options])\r\n\t\t * @param {mixed} obj\r\n\t\t * @param {Object} options\r\n\t\t * @param {Boolean} options.no_state do not return state information\r\n\t\t * @param {Boolean} options.no_id do not return ID\r\n\t\t * @param {Boolean} options.no_children do not include children\r\n\t\t * @param {Boolean} options.no_data do not include node data\r\n\t\t * @param {Boolean} options.flat return flat JSON instead of nested\r\n\t\t * @return {Object}\r\n\t\t */\r\n\t\tget_json : function (obj, options, flat) {\r\n\t\t\tobj = this.get_node(obj || '#');\r\n\t\t\tif(!obj) { return false; }\r\n\t\t\tif(options && options.flat && !flat) { flat = []; }\r\n\t\t\tvar tmp = {\r\n\t\t\t\t'id' : obj.id,\r\n\t\t\t\t'text' : obj.text,\r\n\t\t\t\t'icon' : this.get_icon(obj),\r\n\t\t\t\t'li_attr' : obj.li_attr,\r\n\t\t\t\t'a_attr' : obj.a_attr,\r\n\t\t\t\t'state' : {},\r\n\t\t\t\t'data' : options && options.no_data ? false : obj.data\r\n\t\t\t\t//( this.get_node(obj, true).length ? this.get_node(obj, true).data() : obj.data ),\r\n\t\t\t}, i, j;\r\n\t\t\tif(options && options.flat) {\r\n\t\t\t\ttmp.parent = obj.parent;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\ttmp.children = [];\r\n\t\t\t}\r\n\t\t\tif(!options || !options.no_state) {\r\n\t\t\t\tfor(i in obj.state) {\r\n\t\t\t\t\tif(obj.state.hasOwnProperty(i)) {\r\n\t\t\t\t\t\ttmp.state[i] = obj.state[i];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif(options && options.no_id) {\r\n\t\t\t\tdelete tmp.id;\r\n\t\t\t\tif(tmp.li_attr && tmp.li_attr.id) {\r\n\t\t\t\t\tdelete tmp.li_attr.id;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif(options && options.flat && obj.id !== '#') {\r\n\t\t\t\tflat.push(tmp);\r\n\t\t\t}\r\n\t\t\tif(!options || !options.no_children) {\r\n\t\t\t\tfor(i = 0, j = obj.children.length; i < j; i++) {\r\n\t\t\t\t\tif(options && options.flat) {\r\n\t\t\t\t\t\tthis.get_json(obj.children[i], options, flat);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\ttmp.children.push(this.get_json(obj.children[i], options));\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn options && options.flat ? flat : (obj.id === '#' ? tmp.children : tmp);\r\n\t\t},\r\n\t\t/**\r\n\t\t * create a new node (do not confuse with load_node)\r\n\t\t * @name create_node([obj, node, pos, callback, is_loaded])\r\n\t\t * @param {mixed} par the parent node (to create a root node use either \"#\" (string) or `null`)\r\n\t\t * @param {mixed} node the data for the new node (a valid JSON object, or a simple string with the name)\r\n\t\t * @param {mixed} pos the index at which to insert the node, \"first\" and \"last\" are also supported, default is \"last\"\r\n\t\t * @param {Function} callback a function to be called once the node is created\r\n\t\t * @param {Boolean} is_loaded internal argument indicating if the parent node was succesfully loaded\r\n\t\t * @return {String} the ID of the newly create node\r\n\t\t * @trigger model.jstree, create_node.jstree\r\n\t\t */\r\n\t\tcreate_node : function (par, node, pos, callback, is_loaded) {\r\n\t\t\tif(par === null) { par = \"#\"; }\r\n\t\t\tpar = this.get_node(par);\r\n\t\t\tif(!par) { return false; }\r\n\t\t\tpos = pos === undefined ? \"last\" : pos;\r\n\t\t\tif(!pos.toString().match(/^(before|after)$/) && !is_loaded && !this.is_loaded(par)) {\r\n\t\t\t\treturn this.load_node(par, function () { this.create_node(par, node, pos, callback, true); });\r\n\t\t\t}\r\n\t\t\tif(!node) { node = { \"text\" : this.get_string('New node') }; }\r\n\t\t\tif(node.text === undefined) { node.text = this.get_string('New node'); }\r\n\t\t\tvar tmp, dpc, i, j;\r\n\r\n\t\t\tif(par.id === '#') {\r\n\t\t\t\tif(pos === \"before\") { pos = \"first\"; }\r\n\t\t\t\tif(pos === \"after\") { pos = \"last\"; }\r\n\t\t\t}\r\n\t\t\tswitch(pos) {\r\n\t\t\t\tcase \"before\":\r\n\t\t\t\t\ttmp = this.get_node(par.parent);\r\n\t\t\t\t\tpos = $.inArray(par.id, tmp.children);\r\n\t\t\t\t\tpar = tmp;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \"after\" :\r\n\t\t\t\t\ttmp = this.get_node(par.parent);\r\n\t\t\t\t\tpos = $.inArray(par.id, tmp.children) + 1;\r\n\t\t\t\t\tpar = tmp;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \"inside\":\r\n\t\t\t\tcase \"first\":\r\n\t\t\t\t\tpos = 0;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \"last\":\r\n\t\t\t\t\tpos = par.children.length;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tdefault:\r\n\t\t\t\t\tif(!pos) { pos = 0; }\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\tif(pos > par.children.length) { pos = par.children.length; }\r\n\t\t\tif(!node.id) { node.id = true; }\r\n\t\t\tif(!this.check(\"create_node\", node, par, pos)) {\r\n\t\t\t\tthis.settings.core.error.call(this, this._data.core.last_error);\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tif(node.id === true) { delete node.id; }\r\n\t\t\tnode = this._parse_model_from_json(node, par.id, par.parents.concat());\r\n\t\t\tif(!node) { return false; }\r\n\t\t\ttmp = this.get_node(node);\r\n\t\t\tdpc = [];\r\n\t\t\tdpc.push(node);\r\n\t\t\tdpc = dpc.concat(tmp.children_d);\r\n\t\t\tthis.trigger('model', { \"nodes\" : dpc, \"parent\" : par.id });\r\n\r\n\t\t\tpar.children_d = par.children_d.concat(dpc);\r\n\t\t\tfor(i = 0, j = par.parents.length; i < j; i++) {\r\n\t\t\t\tthis._model.data[par.parents[i]].children_d = this._model.data[par.parents[i]].children_d.concat(dpc);\r\n\t\t\t}\r\n\t\t\tnode = tmp;\r\n\t\t\ttmp = [];\r\n\t\t\tfor(i = 0, j = par.children.length; i < j; i++) {\r\n\t\t\t\ttmp[i >= pos ? i+1 : i] = par.children[i];\r\n\t\t\t}\r\n\t\t\ttmp[pos] = node.id;\r\n\t\t\tpar.children = tmp;\r\n\r\n\t\t\tthis.redraw_node(par, true);\r\n\t\t\tif(callback) { callback.call(this, this.get_node(node)); }\r\n\t\t\t/**\r\n\t\t\t * triggered when a node is created\r\n\t\t\t * @event\r\n\t\t\t * @name create_node.jstree\r\n\t\t\t * @param {Object} node\r\n\t\t\t * @param {String} parent the parent's ID\r\n\t\t\t * @param {Number} position the position of the new node among the parent's children\r\n\t\t\t */\r\n\t\t\tthis.trigger('create_node', { \"node\" : this.get_node(node), \"parent\" : par.id, \"position\" : pos });\r\n\t\t\treturn node.id;\r\n\t\t},\r\n\t\t/**\r\n\t\t * set the text value of a node\r\n\t\t * @name rename_node(obj, val)\r\n\t\t * @param {mixed} obj the node, you can pass an array to rename multiple nodes to the same name\r\n\t\t * @param {String} val the new text value\r\n\t\t * @return {Boolean}\r\n\t\t * @trigger rename_node.jstree\r\n\t\t */\r\n\t\trename_node : function (obj, val) {\r\n\t\t\tvar t1, t2, old;\r\n\t\t\tif($.isArray(obj)) {\r\n\t\t\t\tobj = obj.slice();\r\n\t\t\t\tfor(t1 = 0, t2 = obj.length; t1 < t2; t1++) {\r\n\t\t\t\t\tthis.rename_node(obj[t1], val);\r\n\t\t\t\t}\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\tobj = this.get_node(obj);\r\n\t\t\tif(!obj || obj.id === '#') { return false; }\r\n\t\t\told = obj.text;\r\n\t\t\tif(!this.check(\"rename_node\", obj, this.get_parent(obj), val)) {\r\n\t\t\t\tthis.settings.core.error.call(this, this._data.core.last_error);\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tthis.set_text(obj, val); // .apply(this, Array.prototype.slice.call(arguments))\r\n\t\t\t/**\r\n\t\t\t * triggered when a node is renamed\r\n\t\t\t * @event\r\n\t\t\t * @name rename_node.jstree\r\n\t\t\t * @param {Object} node\r\n\t\t\t * @param {String} text the new value\r\n\t\t\t * @param {String} old the old value\r\n\t\t\t */\r\n\t\t\tthis.trigger('rename_node', { \"node\" : obj, \"text\" : val, \"old\" : old });\r\n\t\t\treturn true;\r\n\t\t},\r\n\t\t/**\r\n\t\t * remove a node\r\n\t\t * @name delete_node(obj)\r\n\t\t * @param {mixed} obj the node, you can pass an array to delete multiple nodes\r\n\t\t * @return {Boolean}\r\n\t\t * @trigger delete_node.jstree, changed.jstree\r\n\t\t */\r\n\t\tdelete_node : function (obj) {\r\n\t\t\tvar t1, t2, par, pos, tmp, i, j, k, l, c;\r\n\t\t\tif($.isArray(obj)) {\r\n\t\t\t\tobj = obj.slice();\r\n\t\t\t\tfor(t1 = 0, t2 = obj.length; t1 < t2; t1++) {\r\n\t\t\t\t\tthis.delete_node(obj[t1]);\r\n\t\t\t\t}\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\tobj = this.get_node(obj);\r\n\t\t\tif(!obj || obj.id === '#') { return false; }\r\n\t\t\tpar = this.get_node(obj.parent);\r\n\t\t\tpos = $.inArray(obj.id, par.children);\r\n\t\t\tc = false;\r\n\t\t\tif(!this.check(\"delete_node\", obj, par, pos)) {\r\n\t\t\t\tthis.settings.core.error.call(this, this._data.core.last_error);\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tif(pos !== -1) {\r\n\t\t\t\tpar.children = $.vakata.array_remove(par.children, pos);\r\n\t\t\t}\r\n\t\t\ttmp = obj.children_d.concat([]);\r\n\t\t\ttmp.push(obj.id);\r\n\t\t\tfor(k = 0, l = tmp.length; k < l; k++) {\r\n\t\t\t\tfor(i = 0, j = obj.parents.length; i < j; i++) {\r\n\t\t\t\t\tpos = $.inArray(tmp[k], this._model.data[obj.parents[i]].children_d);\r\n\t\t\t\t\tif(pos !== -1) {\r\n\t\t\t\t\t\tthis._model.data[obj.parents[i]].children_d = $.vakata.array_remove(this._model.data[obj.parents[i]].children_d, pos);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif(this._model.data[tmp[k]].state.selected) {\r\n\t\t\t\t\tc = true;\r\n\t\t\t\t\tpos = $.inArray(tmp[k], this._data.core.selected);\r\n\t\t\t\t\tif(pos !== -1) {\r\n\t\t\t\t\t\tthis._data.core.selected = $.vakata.array_remove(this._data.core.selected, pos);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t/**\r\n\t\t\t * triggered when a node is deleted\r\n\t\t\t * @event\r\n\t\t\t * @name delete_node.jstree\r\n\t\t\t * @param {Object} node\r\n\t\t\t * @param {String} parent the parent's ID\r\n\t\t\t */\r\n\t\t\tthis.trigger('delete_node', { \"node\" : obj, \"parent\" : par.id });\r\n\t\t\tif(c) {\r\n\t\t\t\tthis.trigger('changed', { 'action' : 'delete_node', 'node' : obj, 'selected' : this._data.core.selected, 'parent' : par.id });\r\n\t\t\t}\r\n\t\t\tfor(k = 0, l = tmp.length; k < l; k++) {\r\n\t\t\t\tdelete this._model.data[tmp[k]];\r\n\t\t\t}\r\n\t\t\tthis.redraw_node(par, true);\r\n\t\t\treturn true;\r\n\t\t},\r\n\t\t/**\r\n\t\t * check if an operation is premitted on the tree. Used internally.\r\n\t\t * @private\r\n\t\t * @name check(chk, obj, par, pos)\r\n\t\t * @param {String} chk the operation to check, can be \"create_node\", \"rename_node\", \"delete_node\", \"copy_node\" or \"move_node\"\r\n\t\t * @param {mixed} obj the node\r\n\t\t * @param {mixed} par the parent\r\n\t\t * @param {mixed} pos the position to insert at, or if \"rename_node\" - the new name\r\n\t\t * @param {mixed} more some various additional information, for example if a \"move_node\" operations is triggered by DND this will be the hovered node\r\n\t\t * @return {Boolean}\r\n\t\t */\r\n\t\tcheck : function (chk, obj, par, pos, more) {\r\n\t\t\tobj = obj && obj.id ? obj : this.get_node(obj);\r\n\t\t\tpar = par && par.id ? par : this.get_node(par);\r\n\t\t\tvar tmp = chk.match(/^move_node|copy_node|create_node$/i) ? par : obj,\r\n\t\t\t\tchc = this.settings.core.check_callback;\r\n\t\t\tif(chk === \"move_node\" || chk === \"copy_node\") {\r\n\t\t\t\tif((!more || !more.is_multi) && (obj.id === par.id || $.inArray(obj.id, par.children) === pos || $.inArray(par.id, obj.children_d) !== -1)) {\r\n\t\t\t\t\tthis._data.core.last_error = { 'error' : 'check', 'plugin' : 'core', 'id' : 'core_01', 'reason' : 'Moving parent inside child', 'data' : JSON.stringify({ 'chk' : chk, 'pos' : pos, 'obj' : obj && obj.id ? obj.id : false, 'par' : par && par.id ? par.id : false }) };\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif(tmp && tmp.data) { tmp = tmp.data; }\r\n\t\t\tif(tmp && tmp.functions && (tmp.functions[chk] === false || tmp.functions[chk] === true)) {\r\n\t\t\t\tif(tmp.functions[chk] === false) {\r\n\t\t\t\t\tthis._data.core.last_error = { 'error' : 'check', 'plugin' : 'core', 'id' : 'core_02', 'reason' : 'Node data prevents function: ' + chk, 'data' : JSON.stringify({ 'chk' : chk, 'pos' : pos, 'obj' : obj && obj.id ? obj.id : false, 'par' : par && par.id ? par.id : false }) };\r\n\t\t\t\t}\r\n\t\t\t\treturn tmp.functions[chk];\r\n\t\t\t}\r\n\t\t\tif(chc === false || ($.isFunction(chc) && chc.call(this, chk, obj, par, pos, more) === false) || (chc && chc[chk] === false)) {\r\n\t\t\t\tthis._data.core.last_error = { 'error' : 'check', 'plugin' : 'core', 'id' : 'core_03', 'reason' : 'User config for core.check_callback prevents function: ' + chk, 'data' : JSON.stringify({ 'chk' : chk, 'pos' : pos, 'obj' : obj && obj.id ? obj.id : false, 'par' : par && par.id ? par.id : false }) };\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\treturn true;\r\n\t\t},\r\n\t\t/**\r\n\t\t * get the last error\r\n\t\t * @name last_error()\r\n\t\t * @return {Object}\r\n\t\t */\r\n\t\tlast_error : function () {\r\n\t\t\treturn this._data.core.last_error;\r\n\t\t},\r\n\t\t/**\r\n\t\t * move a node to a new parent\r\n\t\t * @name move_node(obj, par [, pos, callback, is_loaded])\r\n\t\t * @param {mixed} obj the node to move, pass an array to move multiple nodes\r\n\t\t * @param {mixed} par the new parent\r\n\t\t * @param {mixed} pos the position to insert at (besides integer values, \"first\" and \"last\" are supported, as well as \"before\" and \"after\"), defaults to integer `0`\r\n\t\t * @param {function} callback a function to call once the move is completed, receives 3 arguments - the node, the new parent and the position\r\n\t\t * @param {Boolean} internal parameter indicating if the parent node has been loaded\r\n\t\t * @trigger move_node.jstree\r\n\t\t */\r\n\t\tmove_node : function (obj, par, pos, callback, is_loaded) {\r\n\t\t\tvar t1, t2, old_par, old_pos, new_par, old_ins, is_multi, dpc, tmp, i, j, k, l, p;\r\n\t\t\tif($.isArray(obj)) {\r\n\t\t\t\tobj = obj.reverse().slice();\r\n\t\t\t\tfor(t1 = 0, t2 = obj.length; t1 < t2; t1++) {\r\n\t\t\t\t\tthis.move_node(obj[t1], par, pos, callback, is_loaded);\r\n\t\t\t\t}\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\tobj = obj && obj.id ? obj : this.get_node(obj);\r\n\t\t\tpar = this.get_node(par);\r\n\t\t\tpos = pos === undefined ? 0 : pos;\r\n\r\n\t\t\tif(!par || !obj || obj.id === '#') { return false; }\r\n\t\t\tif(!pos.toString().match(/^(before|after)$/) && !is_loaded && !this.is_loaded(par)) {\r\n\t\t\t\treturn this.load_node(par, function () { this.move_node(obj, par, pos, callback, true); });\r\n\t\t\t}\r\n\r\n\t\t\told_par = (obj.parent || '#').toString();\r\n\t\t\tnew_par = (!pos.toString().match(/^(before|after)$/) || par.id === '#') ? par : this.get_node(par.parent);\r\n\t\t\told_ins = obj.instance ? obj.instance : (this._model.data[obj.id] ? this : $.jstree.reference(obj.id));\r\n\t\t\tis_multi = !old_ins || !old_ins._id || (this._id !== old_ins._id);\r\n\t\t\told_pos = old_ins && old_ins._id && old_par && old_ins._model.data[old_par] && old_ins._model.data[old_par].children ? $.inArray(obj.id, old_ins._model.data[old_par].children) : -1;\r\n\t\t\tif(is_multi) {\r\n\t\t\t\tif(this.copy_node(obj, par, pos, callback, is_loaded)) {\r\n\t\t\t\t\tif(old_ins) { old_ins.delete_node(obj); }\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\t//var m = this._model.data;\r\n\t\t\tif(new_par.id === '#') {\r\n\t\t\t\tif(pos === \"before\") { pos = \"first\"; }\r\n\t\t\t\tif(pos === \"after\") { pos = \"last\"; }\r\n\t\t\t}\r\n\t\t\tswitch(pos) {\r\n\t\t\t\tcase \"before\":\r\n\t\t\t\t\tpos = $.inArray(par.id, new_par.children);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \"after\" :\r\n\t\t\t\t\tpos = $.inArray(par.id, new_par.children) + 1;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \"inside\":\r\n\t\t\t\tcase \"first\":\r\n\t\t\t\t\tpos = 0;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \"last\":\r\n\t\t\t\t\tpos = new_par.children.length;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tdefault:\r\n\t\t\t\t\tif(!pos) { pos = 0; }\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\tif(pos > new_par.children.length) { pos = new_par.children.length; }\r\n\t\t\tif(!this.check(\"move_node\", obj, new_par, pos, { 'core' : true, 'is_multi' : (old_ins && old_ins._id && old_ins._id !== this._id), 'is_foreign' : (!old_ins || !old_ins._id) })) {\r\n\t\t\t\tthis.settings.core.error.call(this, this._data.core.last_error);\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tif(obj.parent === new_par.id) {\r\n\t\t\t\tdpc = new_par.children.concat();\r\n\t\t\t\ttmp = $.inArray(obj.id, dpc);\r\n\t\t\t\tif(tmp !== -1) {\r\n\t\t\t\t\tdpc = $.vakata.array_remove(dpc, tmp);\r\n\t\t\t\t\tif(pos > tmp) { pos--; }\r\n\t\t\t\t}\r\n\t\t\t\ttmp = [];\r\n\t\t\t\tfor(i = 0, j = dpc.length; i < j; i++) {\r\n\t\t\t\t\ttmp[i >= pos ? i+1 : i] = dpc[i];\r\n\t\t\t\t}\r\n\t\t\t\ttmp[pos] = obj.id;\r\n\t\t\t\tnew_par.children = tmp;\r\n\t\t\t\tthis._node_changed(new_par.id);\r\n\t\t\t\tthis.redraw(new_par.id === '#');\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t// clean old parent and up\r\n\t\t\t\ttmp = obj.children_d.concat();\r\n\t\t\t\ttmp.push(obj.id);\r\n\t\t\t\tfor(i = 0, j = obj.parents.length; i < j; i++) {\r\n\t\t\t\t\tdpc = [];\r\n\t\t\t\t\tp = old_ins._model.data[obj.parents[i]].children_d;\r\n\t\t\t\t\tfor(k = 0, l = p.length; k < l; k++) {\r\n\t\t\t\t\t\tif($.inArray(p[k], tmp) === -1) {\r\n\t\t\t\t\t\t\tdpc.push(p[k]);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\told_ins._model.data[obj.parents[i]].children_d = dpc;\r\n\t\t\t\t}\r\n\t\t\t\told_ins._model.data[old_par].children = $.vakata.array_remove_item(old_ins._model.data[old_par].children, obj.id);\r\n\r\n\t\t\t\t// insert into new parent and up\r\n\t\t\t\tfor(i = 0, j = new_par.parents.length; i < j; i++) {\r\n\t\t\t\t\tthis._model.data[new_par.parents[i]].children_d = this._model.data[new_par.parents[i]].children_d.concat(tmp);\r\n\t\t\t\t}\r\n\t\t\t\tdpc = [];\r\n\t\t\t\tfor(i = 0, j = new_par.children.length; i < j; i++) {\r\n\t\t\t\t\tdpc[i >= pos ? i+1 : i] = new_par.children[i];\r\n\t\t\t\t}\r\n\t\t\t\tdpc[pos] = obj.id;\r\n\t\t\t\tnew_par.children = dpc;\r\n\t\t\t\tnew_par.children_d.push(obj.id);\r\n\t\t\t\tnew_par.children_d = new_par.children_d.concat(obj.children_d);\r\n\r\n\t\t\t\t// update object\r\n\t\t\t\tobj.parent = new_par.id;\r\n\t\t\t\ttmp = new_par.parents.concat();\r\n\t\t\t\ttmp.unshift(new_par.id);\r\n\t\t\t\tp = obj.parents.length;\r\n\t\t\t\tobj.parents = tmp;\r\n\r\n\t\t\t\t// update object children\r\n\t\t\t\ttmp = tmp.concat();\r\n\t\t\t\tfor(i = 0, j = obj.children_d.length; i < j; i++) {\r\n\t\t\t\t\tthis._model.data[obj.children_d[i]].parents = this._model.data[obj.children_d[i]].parents.slice(0,p*-1);\r\n\t\t\t\t\tArray.prototype.push.apply(this._model.data[obj.children_d[i]].parents, tmp);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis._node_changed(old_par);\r\n\t\t\t\tthis._node_changed(new_par.id);\r\n\t\t\t\tthis.redraw(old_par === '#' || new_par.id === '#');\r\n\t\t\t}\r\n\t\t\tif(callback) { callback.call(this, obj, new_par, pos); }\r\n\t\t\t/**\r\n\t\t\t * triggered when a node is moved\r\n\t\t\t * @event\r\n\t\t\t * @name move_node.jstree\r\n\t\t\t * @param {Object} node\r\n\t\t\t * @param {String} parent the parent's ID\r\n\t\t\t * @param {Number} position the position of the node among the parent's children\r\n\t\t\t * @param {String} old_parent the old parent of the node\r\n\t\t\t * @param {Number} old_position the old position of the node\r\n\t\t\t * @param {Boolean} is_multi do the node and new parent belong to different instances\r\n\t\t\t * @param {jsTree} old_instance the instance the node came from\r\n\t\t\t * @param {jsTree} new_instance the instance of the new parent\r\n\t\t\t */\r\n\t\t\tthis.trigger('move_node', { \"node\" : obj, \"parent\" : new_par.id, \"position\" : pos, \"old_parent\" : old_par, \"old_position\" : old_pos, 'is_multi' : (old_ins && old_ins._id && old_ins._id !== this._id), 'is_foreign' : (!old_ins || !old_ins._id), 'old_instance' : old_ins, 'new_instance' : this });\r\n\t\t\treturn true;\r\n\t\t},\r\n\t\t/**\r\n\t\t * copy a node to a new parent\r\n\t\t * @name copy_node(obj, par [, pos, callback, is_loaded])\r\n\t\t * @param {mixed} obj the node to copy, pass an array to copy multiple nodes\r\n\t\t * @param {mixed} par the new parent\r\n\t\t * @param {mixed} pos the position to insert at (besides integer values, \"first\" and \"last\" are supported, as well as \"before\" and \"after\"), defaults to integer `0`\r\n\t\t * @param {function} callback a function to call once the move is completed, receives 3 arguments - the node, the new parent and the position\r\n\t\t * @param {Boolean} internal parameter indicating if the parent node has been loaded\r\n\t\t * @trigger model.jstree copy_node.jstree\r\n\t\t */\r\n\t\tcopy_node : function (obj, par, pos, callback, is_loaded) {\r\n\t\t\tvar t1, t2, dpc, tmp, i, j, node, old_par, new_par, old_ins, is_multi;\r\n\t\t\tif($.isArray(obj)) {\r\n\t\t\t\tobj = obj.reverse().slice();\r\n\t\t\t\tfor(t1 = 0, t2 = obj.length; t1 < t2; t1++) {\r\n\t\t\t\t\tthis.copy_node(obj[t1], par, pos, callback, is_loaded);\r\n\t\t\t\t}\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\tobj = obj && obj.id ? obj : this.get_node(obj);\r\n\t\t\tpar = this.get_node(par);\r\n\t\t\tpos = pos === undefined ? 0 : pos;\r\n\r\n\t\t\tif(!par || !obj || obj.id === '#') { return false; }\r\n\t\t\tif(!pos.toString().match(/^(before|after)$/) && !is_loaded && !this.is_loaded(par)) {\r\n\t\t\t\treturn this.load_node(par, function () { this.copy_node(obj, par, pos, callback, true); });\r\n\t\t\t}\r\n\r\n\t\t\told_par = (obj.parent || '#').toString();\r\n\t\t\tnew_par = (!pos.toString().match(/^(before|after)$/) || par.id === '#') ? par : this.get_node(par.parent);\r\n\t\t\told_ins = obj.instance ? obj.instance : (this._model.data[obj.id] ? this : $.jstree.reference(obj.id));\r\n\t\t\tis_multi = !old_ins || !old_ins._id || (this._id !== old_ins._id);\r\n\t\t\tif(new_par.id === '#') {\r\n\t\t\t\tif(pos === \"before\") { pos = \"first\"; }\r\n\t\t\t\tif(pos === \"after\") { pos = \"last\"; }\r\n\t\t\t}\r\n\t\t\tswitch(pos) {\r\n\t\t\t\tcase \"before\":\r\n\t\t\t\t\tpos = $.inArray(par.id, new_par.children);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \"after\" :\r\n\t\t\t\t\tpos = $.inArray(par.id, new_par.children) + 1;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \"inside\":\r\n\t\t\t\tcase \"first\":\r\n\t\t\t\t\tpos = 0;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \"last\":\r\n\t\t\t\t\tpos = new_par.children.length;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tdefault:\r\n\t\t\t\t\tif(!pos) { pos = 0; }\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\tif(pos > new_par.children.length) { pos = new_par.children.length; }\r\n\t\t\tif(!this.check(\"copy_node\", obj, new_par, pos, { 'core' : true, 'is_multi' : (old_ins && old_ins._id && old_ins._id !== this._id), 'is_foreign' : (!old_ins || !old_ins._id) })) {\r\n\t\t\t\tthis.settings.core.error.call(this, this._data.core.last_error);\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tnode = old_ins ? old_ins.get_json(obj, { no_id : true, no_data : true, no_state : true }) : obj;\r\n\t\t\tif(!node) { return false; }\r\n\t\t\tif(node.id === true) { delete node.id; }\r\n\t\t\tnode = this._parse_model_from_json(node, new_par.id, new_par.parents.concat());\r\n\t\t\tif(!node) { return false; }\r\n\t\t\ttmp = this.get_node(node);\r\n\t\t\tif(obj && obj.state && obj.state.loaded === false) { tmp.state.loaded = false; }\r\n\t\t\tdpc = [];\r\n\t\t\tdpc.push(node);\r\n\t\t\tdpc = dpc.concat(tmp.children_d);\r\n\t\t\tthis.trigger('model', { \"nodes\" : dpc, \"parent\" : new_par.id });\r\n\r\n\t\t\t// insert into new parent and up\r\n\t\t\tfor(i = 0, j = new_par.parents.length; i < j; i++) {\r\n\t\t\t\tthis._model.data[new_par.parents[i]].children_d = this._model.data[new_par.parents[i]].children_d.concat(dpc);\r\n\t\t\t}\r\n\t\t\tdpc = [];\r\n\t\t\tfor(i = 0, j = new_par.children.length; i < j; i++) {\r\n\t\t\t\tdpc[i >= pos ? i+1 : i] = new_par.children[i];\r\n\t\t\t}\r\n\t\t\tdpc[pos] = tmp.id;\r\n\t\t\tnew_par.children = dpc;\r\n\t\t\tnew_par.children_d.push(tmp.id);\r\n\t\t\tnew_par.children_d = new_par.children_d.concat(tmp.children_d);\r\n\r\n\t\t\tthis._node_changed(new_par.id);\r\n\t\t\tthis.redraw(new_par.id === '#');\r\n\t\t\tif(callback) { callback.call(this, tmp, new_par, pos); }\r\n\t\t\t/**\r\n\t\t\t * triggered when a node is copied\r\n\t\t\t * @event\r\n\t\t\t * @name copy_node.jstree\r\n\t\t\t * @param {Object} node the copied node\r\n\t\t\t * @param {Object} original the original node\r\n\t\t\t * @param {String} parent the parent's ID\r\n\t\t\t * @param {Number} position the position of the node among the parent's children\r\n\t\t\t * @param {String} old_parent the old parent of the node\r\n\t\t\t * @param {Number} old_position the position of the original node\r\n\t\t\t * @param {Boolean} is_multi do the node and new parent belong to different instances\r\n\t\t\t * @param {jsTree} old_instance the instance the node came from\r\n\t\t\t * @param {jsTree} new_instance the instance of the new parent\r\n\t\t\t */\r\n\t\t\tthis.trigger('copy_node', { \"node\" : tmp, \"original\" : obj, \"parent\" : new_par.id, \"position\" : pos, \"old_parent\" : old_par, \"old_position\" : old_ins && old_ins._id && old_par && old_ins._model.data[old_par] && old_ins._model.data[old_par].children ? $.inArray(obj.id, old_ins._model.data[old_par].children) : -1,'is_multi' : (old_ins && old_ins._id && old_ins._id !== this._id), 'is_foreign' : (!old_ins || !old_ins._id), 'old_instance' : old_ins, 'new_instance' : this });\r\n\t\t\treturn tmp.id;\r\n\t\t},\r\n\t\t/**\r\n\t\t * cut a node (a later call to `paste(obj)` would move the node)\r\n\t\t * @name cut(obj)\r\n\t\t * @param {mixed} obj multiple objects can be passed using an array\r\n\t\t * @trigger cut.jstree\r\n\t\t */\r\n\t\tcut : function (obj) {\r\n\t\t\tif(!obj) { obj = this._data.core.selected.concat(); }\r\n\t\t\tif(!$.isArray(obj)) { obj = [obj]; }\r\n\t\t\tif(!obj.length) { return false; }\r\n\t\t\tvar tmp = [], o, t1, t2;\r\n\t\t\tfor(t1 = 0, t2 = obj.length; t1 < t2; t1++) {\r\n\t\t\t\to = this.get_node(obj[t1]);\r\n\t\t\t\tif(o && o.id && o.id !== '#') { tmp.push(o); }\r\n\t\t\t}\r\n\t\t\tif(!tmp.length) { return false; }\r\n\t\t\tccp_node = tmp;\r\n\t\t\tccp_inst = this;\r\n\t\t\tccp_mode = 'move_node';\r\n\t\t\t/**\r\n\t\t\t * triggered when nodes are added to the buffer for moving\r\n\t\t\t * @event\r\n\t\t\t * @name cut.jstree\r\n\t\t\t * @param {Array} node\r\n\t\t\t */\r\n\t\t\tthis.trigger('cut', { \"node\" : obj });\r\n\t\t},\r\n\t\t/**\r\n\t\t * copy a node (a later call to `paste(obj)` would copy the node)\r\n\t\t * @name copy(obj)\r\n\t\t * @param {mixed} obj multiple objects can be passed using an array\r\n\t\t * @trigger copy.jstre\r\n\t\t */\r\n\t\tcopy : function (obj) {\r\n\t\t\tif(!obj) { obj = this._data.core.selected.concat(); }\r\n\t\t\tif(!$.isArray(obj)) { obj = [obj]; }\r\n\t\t\tif(!obj.length) { return false; }\r\n\t\t\tvar tmp = [], o, t1, t2;\r\n\t\t\tfor(t1 = 0, t2 = obj.length; t1 < t2; t1++) {\r\n\t\t\t\to = this.get_node(obj[t1]);\r\n\t\t\t\tif(o && o.id && o.id !== '#') { tmp.push(o); }\r\n\t\t\t}\r\n\t\t\tif(!tmp.length) { return false; }\r\n\t\t\tccp_node = tmp;\r\n\t\t\tccp_inst = this;\r\n\t\t\tccp_mode = 'copy_node';\r\n\t\t\t/**\r\n\t\t\t * triggered when nodes are added to the buffer for copying\r\n\t\t\t * @event\r\n\t\t\t * @name copy.jstree\r\n\t\t\t * @param {Array} node\r\n\t\t\t */\r\n\t\t\tthis.trigger('copy', { \"node\" : obj });\r\n\t\t},\r\n\t\t/**\r\n\t\t * get the current buffer (any nodes that are waiting for a paste operation)\r\n\t\t * @name get_buffer()\r\n\t\t * @return {Object} an object consisting of `mode` (\"copy_node\" or \"move_node\"), `node` (an array of objects) and `inst` (the instance)\r\n\t\t */\r\n\t\tget_buffer : function () {\r\n\t\t\treturn { 'mode' : ccp_mode, 'node' : ccp_node, 'inst' : ccp_inst };\r\n\t\t},\r\n\t\t/**\r\n\t\t * check if there is something in the buffer to paste\r\n\t\t * @name can_paste()\r\n\t\t * @return {Boolean}\r\n\t\t */\r\n\t\tcan_paste : function () {\r\n\t\t\treturn ccp_mode !== false && ccp_node !== false; // && ccp_inst._model.data[ccp_node];\r\n\t\t},\r\n\t\t/**\r\n\t\t * copy or move the previously cut or copied nodes to a new parent\r\n\t\t * @name paste(obj [, pos])\r\n\t\t * @param {mixed} obj the new parent\r\n\t\t * @param {mixed} pos the position to insert at (besides integer, \"first\" and \"last\" are supported), defaults to integer `0`\r\n\t\t * @trigger paste.jstree\r\n\t\t */\r\n\t\tpaste : function (obj, pos) {\r\n\t\t\tobj = this.get_node(obj);\r\n\t\t\tif(!obj || !ccp_mode || !ccp_mode.match(/^(copy_node|move_node)$/) || !ccp_node) { return false; }\r\n\t\t\tif(this[ccp_mode](ccp_node, obj, pos)) {\r\n\t\t\t\t/**\r\n\t\t\t\t * triggered when paste is invoked\r\n\t\t\t\t * @event\r\n\t\t\t\t * @name paste.jstree\r\n\t\t\t\t * @param {String} parent the ID of the receiving node\r\n\t\t\t\t * @param {Array} node the nodes in the buffer\r\n\t\t\t\t * @param {String} mode the performed operation - \"copy_node\" or \"move_node\"\r\n\t\t\t\t */\r\n\t\t\t\tthis.trigger('paste', { \"parent\" : obj.id, \"node\" : ccp_node, \"mode\" : ccp_mode });\r\n\t\t\t}\r\n\t\t\tccp_node = false;\r\n\t\t\tccp_mode = false;\r\n\t\t\tccp_inst = false;\r\n\t\t},\r\n\t\t/**\r\n\t\t * put a node in edit mode (input field to rename the node)\r\n\t\t * @name edit(obj [, default_text])\r\n\t\t * @param {mixed} obj\r\n\t\t * @param {String} default_text the text to populate the input with (if omitted the node text value is used)\r\n\t\t */\r\n\t\tedit : function (obj, default_text) {\r\n\t\t\tobj = this._open_to(obj);\r\n\t\t\tif(!obj || !obj.length) { return false; }\r\n\t\t\tif(this.settings.core.check_callback === false) {\r\n\t\t\t\tthis._data.core.last_error = { 'error' : 'check', 'plugin' : 'core', 'id' : 'core_07', 'reason' : 'Could not edit node because of check_callback' };\r\n\t\t\t\tthis.settings.core.error.call(this, this._data.core.last_error);\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\r\n\t\t\tvar rtl = this._data.core.rtl,\r\n\t\t\t\tw = this.element.width(),\r\n\t\t\t\ta = obj.children('.jstree-anchor'),\r\n\t\t\t\ts = $(''),\r\n\t\t\t\t/*!\r\n\t\t\t\toi = obj.children(\"i:visible\"),\r\n\t\t\t\tai = a.children(\"i:visible\"),\r\n\t\t\t\tw1 = oi.width() * oi.length,\r\n\t\t\t\tw2 = ai.width() * ai.length,\r\n\t\t\t\t*/\r\n\t\t\t\tt = typeof default_text === 'string' ? default_text : this.get_text(obj),\r\n\t\t\t\th1 = $(\"<\"+\"div />\", { css : { \"position\" : \"absolute\", \"top\" : \"-200px\", \"left\" : (rtl ? \"0px\" : \"-1000px\"), \"visibility\" : \"hidden\" } }).appendTo(\"body\"),\r\n\t\t\t\th2 = $(\"<\"+\"input />\", {\r\n\t\t\t\t\t\t\"value\" : t,\r\n\t\t\t\t\t\t\"class\" : \"jstree-rename-input\",\r\n\t\t\t\t\t\t// \"size\" : t.length,\r\n\t\t\t\t\t\t\"css\" : {\r\n\t\t\t\t\t\t\t\"padding\" : \"0\",\r\n\t\t\t\t\t\t\t\"border\" : \"1px solid silver\",\r\n\t\t\t\t\t\t\t\"box-sizing\" : \"border-box\",\r\n\t\t\t\t\t\t\t\"display\" : \"inline-block\",\r\n\t\t\t\t\t\t\t\"height\" : (this._data.core.li_height) + \"px\",\r\n\t\t\t\t\t\t\t\"lineHeight\" : (this._data.core.li_height) + \"px\",\r\n\t\t\t\t\t\t\t\"width\" : \"150px\" // will be set a bit further down\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\"blur\" : $.proxy(function () {\r\n\t\t\t\t\t\t\tvar i = s.children(\".jstree-rename-input\"),\r\n\t\t\t\t\t\t\t\tv = i.val();\r\n\t\t\t\t\t\t\tif(v === \"\") { v = t; }\r\n\t\t\t\t\t\t\th1.remove();\r\n\t\t\t\t\t\t\ts.replaceWith(a);\r\n\t\t\t\t\t\t\ts.remove();\r\n\t\t\t\t\t\t\tthis.set_text(obj, t);\r\n\t\t\t\t\t\t\tif(this.rename_node(obj, v) === false) {\r\n\t\t\t\t\t\t\t\tthis.set_text(obj, t); // move this up? and fix #483\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}, this),\r\n\t\t\t\t\t\t\"keydown\" : function (event) {\r\n\t\t\t\t\t\t\tvar key = event.which;\r\n\t\t\t\t\t\t\tif(key === 27) {\r\n\t\t\t\t\t\t\t\tthis.value = t;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif(key === 27 || key === 13 || key === 37 || key === 38 || key === 39 || key === 40 || key === 32) {\r\n\t\t\t\t\t\t\t\tevent.stopImmediatePropagation();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif(key === 27 || key === 13) {\r\n\t\t\t\t\t\t\t\tevent.preventDefault();\r\n\t\t\t\t\t\t\t\tthis.blur();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\"click\" : function (e) { e.stopImmediatePropagation(); },\r\n\t\t\t\t\t\t\"mousedown\" : function (e) { e.stopImmediatePropagation(); },\r\n\t\t\t\t\t\t\"keyup\" : function (event) {\r\n\t\t\t\t\t\t\th2.width(Math.min(h1.text(\"pW\" + this.value).width(),w));\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\"keypress\" : function(event) {\r\n\t\t\t\t\t\t\tif(event.which === 13) { return false; }\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}),\r\n\t\t\t\tfn = {\r\n\t\t\t\t\t\tfontFamily\t\t: a.css('fontFamily')\t\t|| '',\r\n\t\t\t\t\t\tfontSize\t\t: a.css('fontSize')\t\t\t|| '',\r\n\t\t\t\t\t\tfontWeight\t\t: a.css('fontWeight')\t\t|| '',\r\n\t\t\t\t\t\tfontStyle\t\t: a.css('fontStyle')\t\t|| '',\r\n\t\t\t\t\t\tfontStretch\t\t: a.css('fontStretch')\t\t|| '',\r\n\t\t\t\t\t\tfontVariant\t\t: a.css('fontVariant')\t\t|| '',\r\n\t\t\t\t\t\tletterSpacing\t: a.css('letterSpacing')\t|| '',\r\n\t\t\t\t\t\twordSpacing\t\t: a.css('wordSpacing')\t\t|| ''\r\n\t\t\t\t};\r\n\t\t\tthis.set_text(obj, \"\");\r\n\t\t\ts.attr('class', a.attr('class')).append(a.contents().clone()).append(h2);\r\n\t\t\ta.replaceWith(s);\r\n\t\t\th1.css(fn);\r\n\t\t\th2.css(fn).width(Math.min(h1.text(\"pW\" + h2[0].value).width(),w))[0].select();\r\n\t\t},\r\n\r\n\r\n\t\t/**\r\n\t\t * changes the theme\r\n\t\t * @name set_theme(theme_name [, theme_url])\r\n\t\t * @param {String} theme_name the name of the new theme to apply\r\n\t\t * @param {mixed} theme_url the location of the CSS file for this theme. Omit or set to `false` if you manually included the file. Set to `true` to autoload from the `core.themes.dir` directory.\r\n\t\t * @trigger set_theme.jstree\r\n\t\t */\r\n\t\tset_theme : function (theme_name, theme_url) {\r\n\t\t\tif(!theme_name) { return false; }\r\n\t\t\tif(theme_url === true) {\r\n\t\t\t\tvar dir = this.settings.core.themes.dir;\r\n\t\t\t\tif(!dir) { dir = $.jstree.path + '/themes'; }\r\n\t\t\t\ttheme_url = dir + '/' + theme_name + '/style.css';\r\n\t\t\t}\r\n\t\t\tif(theme_url && $.inArray(theme_url, themes_loaded) === -1) {\r\n\t\t\t\t$('head').append('<'+'link rel=\"stylesheet\" href=\"' + theme_url + '\" type=\"text/css\" />');\r\n\t\t\t\tthemes_loaded.push(theme_url);\r\n\t\t\t}\r\n\t\t\tif(this._data.core.themes.name) {\r\n\t\t\t\tthis.element.removeClass('jstree-' + this._data.core.themes.name);\r\n\t\t\t}\r\n\t\t\tthis._data.core.themes.name = theme_name;\r\n\t\t\tthis.element.addClass('jstree-' + theme_name);\r\n\t\t\tthis.element[this.settings.core.themes.responsive ? 'addClass' : 'removeClass' ]('jstree-' + theme_name + '-responsive');\r\n\t\t\t/**\r\n\t\t\t * triggered when a theme is set\r\n\t\t\t * @event\r\n\t\t\t * @name set_theme.jstree\r\n\t\t\t * @param {String} theme the new theme\r\n\t\t\t */\r\n\t\t\tthis.trigger('set_theme', { 'theme' : theme_name });\r\n\t\t},\r\n\t\t/**\r\n\t\t * gets the name of the currently applied theme name\r\n\t\t * @name get_theme()\r\n\t\t * @return {String}\r\n\t\t */\r\n\t\tget_theme : function () { return this._data.core.themes.name; },\r\n\t\t/**\r\n\t\t * changes the theme variant (if the theme has variants)\r\n\t\t * @name set_theme_variant(variant_name)\r\n\t\t * @param {String|Boolean} variant_name the variant to apply (if `false` is used the current variant is removed)\r\n\t\t */\r\n\t\tset_theme_variant : function (variant_name) {\r\n\t\t\tif(this._data.core.themes.variant) {\r\n\t\t\t\tthis.element.removeClass('jstree-' + this._data.core.themes.name + '-' + this._data.core.themes.variant);\r\n\t\t\t}\r\n\t\t\tthis._data.core.themes.variant = variant_name;\r\n\t\t\tif(variant_name) {\r\n\t\t\t\tthis.element.addClass('jstree-' + this._data.core.themes.name + '-' + this._data.core.themes.variant);\r\n\t\t\t}\r\n\t\t},\r\n\t\t/**\r\n\t\t * gets the name of the currently applied theme variant\r\n\t\t * @name get_theme()\r\n\t\t * @return {String}\r\n\t\t */\r\n\t\tget_theme_variant : function () { return this._data.core.themes.variant; },\r\n\t\t/**\r\n\t\t * shows a striped background on the container (if the theme supports it)\r\n\t\t * @name show_stripes()\r\n\t\t */\r\n\t\tshow_stripes : function () { this._data.core.themes.stripes = true; this.get_container_ul().addClass(\"jstree-striped\"); },\r\n\t\t/**\r\n\t\t * hides the striped background on the container\r\n\t\t * @name hide_stripes()\r\n\t\t */\r\n\t\thide_stripes : function () { this._data.core.themes.stripes = false; this.get_container_ul().removeClass(\"jstree-striped\"); },\r\n\t\t/**\r\n\t\t * toggles the striped background on the container\r\n\t\t * @name toggle_stripes()\r\n\t\t */\r\n\t\ttoggle_stripes : function () { if(this._data.core.themes.stripes) { this.hide_stripes(); } else { this.show_stripes(); } },\r\n\t\t/**\r\n\t\t * shows the connecting dots (if the theme supports it)\r\n\t\t * @name show_dots()\r\n\t\t */\r\n\t\tshow_dots : function () { this._data.core.themes.dots = true; this.get_container_ul().removeClass(\"jstree-no-dots\"); },\r\n\t\t/**\r\n\t\t * hides the connecting dots\r\n\t\t * @name hide_dots()\r\n\t\t */\r\n\t\thide_dots : function () { this._data.core.themes.dots = false; this.get_container_ul().addClass(\"jstree-no-dots\"); },\r\n\t\t/**\r\n\t\t * toggles the connecting dots\r\n\t\t * @name toggle_dots()\r\n\t\t */\r\n\t\ttoggle_dots : function () { if(this._data.core.themes.dots) { this.hide_dots(); } else { this.show_dots(); } },\r\n\t\t/**\r\n\t\t * show the node icons\r\n\t\t * @name show_icons()\r\n\t\t */\r\n\t\tshow_icons : function () { this._data.core.themes.icons = true; this.get_container_ul().removeClass(\"jstree-no-icons\"); },\r\n\t\t/**\r\n\t\t * hide the node icons\r\n\t\t * @name hide_icons()\r\n\t\t */\r\n\t\thide_icons : function () { this._data.core.themes.icons = false; this.get_container_ul().addClass(\"jstree-no-icons\"); },\r\n\t\t/**\r\n\t\t * toggle the node icons\r\n\t\t * @name toggle_icons()\r\n\t\t */\r\n\t\ttoggle_icons : function () { if(this._data.core.themes.icons) { this.hide_icons(); } else { this.show_icons(); } },\r\n\t\t/**\r\n\t\t * set the node icon for a node\r\n\t\t * @name set_icon(obj, icon)\r\n\t\t * @param {mixed} obj\r\n\t\t * @param {String} icon the new icon - can be a path to an icon or a className, if using an image that is in the current directory use a `./` prefix, otherwise it will be detected as a class\r\n\t\t */\r\n\t\tset_icon : function (obj, icon) {\r\n\t\t\tvar t1, t2, dom, old;\r\n\t\t\tif($.isArray(obj)) {\r\n\t\t\t\tobj = obj.slice();\r\n\t\t\t\tfor(t1 = 0, t2 = obj.length; t1 < t2; t1++) {\r\n\t\t\t\t\tthis.set_icon(obj[t1], icon);\r\n\t\t\t\t}\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\tobj = this.get_node(obj);\r\n\t\t\tif(!obj || obj.id === '#') { return false; }\r\n\t\t\told = obj.icon;\r\n\t\t\tobj.icon = icon;\r\n\t\t\tdom = this.get_node(obj, true).children(\".jstree-anchor\").children(\".jstree-themeicon\");\r\n\t\t\tif(icon === false) {\r\n\t\t\t\tthis.hide_icon(obj);\r\n\t\t\t}\r\n\t\t\telse if(icon === true) {\r\n\t\t\t\tdom.removeClass('jstree-themeicon-custom ' + old).css(\"background\",\"\").removeAttr(\"rel\");\r\n\t\t\t}\r\n\t\t\telse if(icon.indexOf(\"/\") === -1 && icon.indexOf(\".\") === -1) {\r\n\t\t\t\tdom.removeClass(old).css(\"background\",\"\");\r\n\t\t\t\tdom.addClass(icon + ' jstree-themeicon-custom').attr(\"rel\",icon);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tdom.removeClass(old).css(\"background\",\"\");\r\n\t\t\t\tdom.addClass('jstree-themeicon-custom').css(\"background\", \"url('\" + icon + \"') center center no-repeat\").attr(\"rel\",icon);\r\n\t\t\t}\r\n\t\t\treturn true;\r\n\t\t},\r\n\t\t/**\r\n\t\t * get the node icon for a node\r\n\t\t * @name get_icon(obj)\r\n\t\t * @param {mixed} obj\r\n\t\t * @return {String}\r\n\t\t */\r\n\t\tget_icon : function (obj) {\r\n\t\t\tobj = this.get_node(obj);\r\n\t\t\treturn (!obj || obj.id === '#') ? false : obj.icon;\r\n\t\t},\r\n\t\t/**\r\n\t\t * hide the icon on an individual node\r\n\t\t * @name hide_icon(obj)\r\n\t\t * @param {mixed} obj\r\n\t\t */\r\n\t\thide_icon : function (obj) {\r\n\t\t\tvar t1, t2;\r\n\t\t\tif($.isArray(obj)) {\r\n\t\t\t\tobj = obj.slice();\r\n\t\t\t\tfor(t1 = 0, t2 = obj.length; t1 < t2; t1++) {\r\n\t\t\t\t\tthis.hide_icon(obj[t1]);\r\n\t\t\t\t}\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\tobj = this.get_node(obj);\r\n\t\t\tif(!obj || obj === '#') { return false; }\r\n\t\t\tobj.icon = false;\r\n\t\t\tthis.get_node(obj, true).children(\".jstree-anchor\").children(\".jstree-themeicon\").addClass('jstree-themeicon-hidden');\r\n\t\t\treturn true;\r\n\t\t},\r\n\t\t/**\r\n\t\t * show the icon on an individual node\r\n\t\t * @name show_icon(obj)\r\n\t\t * @param {mixed} obj\r\n\t\t */\r\n\t\tshow_icon : function (obj) {\r\n\t\t\tvar t1, t2, dom;\r\n\t\t\tif($.isArray(obj)) {\r\n\t\t\t\tobj = obj.slice();\r\n\t\t\t\tfor(t1 = 0, t2 = obj.length; t1 < t2; t1++) {\r\n\t\t\t\t\tthis.show_icon(obj[t1]);\r\n\t\t\t\t}\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\tobj = this.get_node(obj);\r\n\t\t\tif(!obj || obj === '#') { return false; }\r\n\t\t\tdom = this.get_node(obj, true);\r\n\t\t\tobj.icon = dom.length ? dom.children(\".jstree-anchor\").children(\".jstree-themeicon\").attr('rel') : true;\r\n\t\t\tif(!obj.icon) { obj.icon = true; }\r\n\t\t\tdom.children(\".jstree-anchor\").children(\".jstree-themeicon\").removeClass('jstree-themeicon-hidden');\r\n\t\t\treturn true;\r\n\t\t}\r\n\t};\r\n\r\n\t// helpers\r\n\t$.vakata = {};\r\n\t// collect attributes\r\n\t$.vakata.attributes = function(node, with_values) {\r\n\t\tnode = $(node)[0];\r\n\t\tvar attr = with_values ? {} : [];\r\n\t\tif(node && node.attributes) {\r\n\t\t\t$.each(node.attributes, function (i, v) {\r\n\t\t\t\tif($.inArray(v.nodeName.toLowerCase(),['style','contenteditable','hasfocus','tabindex']) !== -1) { return; }\r\n\t\t\t\tif(v.value !== null && $.trim(v.value) !== '') {\r\n\t\t\t\t\tif(with_values) { attr[v.nodeName] = v.value; }\r\n\t\t\t\t\telse { attr.push(v.nodeName); }\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t\treturn attr;\r\n\t};\r\n\t$.vakata.array_unique = function(array) {\r\n\t\tvar a = [], i, j, l;\r\n\t\tfor(i = 0, l = array.length; i < l; i++) {\r\n\t\t\tfor(j = 0; j <= i; j++) {\r\n\t\t\t\tif(array[i] === array[j]) {\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif(j === i) { a.push(array[i]); }\r\n\t\t}\r\n\t\treturn a;\r\n\t};\r\n\t// remove item from array\r\n\t$.vakata.array_remove = function(array, from, to) {\r\n\t\tvar rest = array.slice((to || from) + 1 || array.length);\r\n\t\tarray.length = from < 0 ? array.length + from : from;\r\n\t\tarray.push.apply(array, rest);\r\n\t\treturn array;\r\n\t};\r\n\t// remove item from array\r\n\t$.vakata.array_remove_item = function(array, item) {\r\n\t\tvar tmp = $.inArray(item, array);\r\n\t\treturn tmp !== -1 ? $.vakata.array_remove(array, tmp) : array;\r\n\t};\r\n\r\n/**\r\n * ### Checkbox plugin\r\n *\r\n * This plugin renders checkbox icons in front of each node, making multiple selection much easier. \r\n * It also supports tri-state behavior, meaning that if a node has a few of its children checked it will be rendered as undetermined, and state will be propagated up.\r\n */\r\n\r\n\tvar _i = document.createElement('I');\r\n\t_i.className = 'jstree-icon jstree-checkbox';\r\n\t/**\r\n\t * stores all defaults for the checkbox plugin\r\n\t * @name $.jstree.defaults.checkbox\r\n\t * @plugin checkbox\r\n\t */\r\n\t$.jstree.defaults.checkbox = {\r\n\t\t/**\r\n\t\t * a boolean indicating if checkboxes should be visible (can be changed at a later time using `show_checkboxes()` and `hide_checkboxes`). Defaults to `true`.\r\n\t\t * @name $.jstree.defaults.checkbox.visible\r\n\t\t * @plugin checkbox\r\n\t\t */\r\n\t\tvisible\t\t\t\t: true,\r\n\t\t/**\r\n\t\t * a boolean indicating if checkboxes should cascade down and have an undetermined state. Defaults to `true`.\r\n\t\t * @name $.jstree.defaults.checkbox.three_state\r\n\t\t * @plugin checkbox\r\n\t\t */\r\n\t\tthree_state\t\t\t: true,\r\n\t\t/**\r\n\t\t * a boolean indicating if clicking anywhere on the node should act as clicking on the checkbox. Defaults to `true`.\r\n\t\t * @name $.jstree.defaults.checkbox.whole_node\r\n\t\t * @plugin checkbox\r\n\t\t */\r\n\t\twhole_node\t\t\t: true,\r\n\t\t/**\r\n\t\t * a boolean indicating if the selected style of a node should be kept, or removed. Defaults to `true`.\r\n\t\t * @name $.jstree.defaults.checkbox.keep_selected_style\r\n\t\t * @plugin checkbox\r\n\t\t */\r\n\t\tkeep_selected_style\t: true\r\n\t};\r\n\t$.jstree.plugins.checkbox = function (options, parent) {\r\n\t\tthis.bind = function () {\r\n\t\t\tparent.bind.call(this);\r\n\t\t\tthis._data.checkbox.uto = false;\r\n\t\t\tthis.element\r\n\t\t\t\t.on(\"init.jstree\", $.proxy(function () {\r\n\t\t\t\t\t\tthis._data.checkbox.visible = this.settings.checkbox.visible;\r\n\t\t\t\t\t\tif(!this.settings.checkbox.keep_selected_style) {\r\n\t\t\t\t\t\t\tthis.element.addClass('jstree-checkbox-no-clicked');\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}, this))\r\n\t\t\t\t.on(\"loading.jstree\", $.proxy(function () {\r\n\t\t\t\t\t\tthis[ this._data.checkbox.visible ? 'show_checkboxes' : 'hide_checkboxes' ]();\r\n\t\t\t\t\t}, this));\r\n\t\t\tif(this.settings.checkbox.three_state) {\r\n\t\t\t\tthis.element\r\n\t\t\t\t\t.on('changed.jstree move_node.jstree copy_node.jstree redraw.jstree open_node.jstree', $.proxy(function () {\r\n\t\t\t\t\t\t\tif(this._data.checkbox.uto) { clearTimeout(this._data.checkbox.uto); }\r\n\t\t\t\t\t\t\tthis._data.checkbox.uto = setTimeout($.proxy(this._undetermined, this), 50);\r\n\t\t\t\t\t\t}, this))\r\n\t\t\t\t\t.on('model.jstree', $.proxy(function (e, data) {\r\n\t\t\t\t\t\t\tvar m = this._model.data,\r\n\t\t\t\t\t\t\t\tp = m[data.parent],\r\n\t\t\t\t\t\t\t\tdpc = data.nodes,\r\n\t\t\t\t\t\t\t\tchd = [],\r\n\t\t\t\t\t\t\t\tc, i, j, k, l, tmp;\r\n\r\n\t\t\t\t\t\t\t// apply down\r\n\t\t\t\t\t\t\tif(p.state.selected) {\r\n\t\t\t\t\t\t\t\tfor(i = 0, j = dpc.length; i < j; i++) {\r\n\t\t\t\t\t\t\t\t\tm[dpc[i]].state.selected = true;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tthis._data.core.selected = this._data.core.selected.concat(dpc);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\tfor(i = 0, j = dpc.length; i < j; i++) {\r\n\t\t\t\t\t\t\t\t\tif(m[dpc[i]].state.selected) {\r\n\t\t\t\t\t\t\t\t\t\tfor(k = 0, l = m[dpc[i]].children_d.length; k < l; k++) {\r\n\t\t\t\t\t\t\t\t\t\t\tm[m[dpc[i]].children_d[k]].state.selected = true;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\tthis._data.core.selected = this._data.core.selected.concat(m[dpc[i]].children_d);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// apply up\r\n\t\t\t\t\t\t\tfor(i = 0, j = p.children_d.length; i < j; i++) {\r\n\t\t\t\t\t\t\t\tif(!m[p.children_d[i]].children.length) {\r\n\t\t\t\t\t\t\t\t\tchd.push(m[p.children_d[i]].parent);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tchd = $.vakata.array_unique(chd);\r\n\t\t\t\t\t\t\tfor(k = 0, l = chd.length; k < l; k++) {\r\n\t\t\t\t\t\t\t\tp = m[chd[k]];\r\n\t\t\t\t\t\t\t\twhile(p && p.id !== '#') {\r\n\t\t\t\t\t\t\t\t\tc = 0;\r\n\t\t\t\t\t\t\t\t\tfor(i = 0, j = p.children.length; i < j; i++) {\r\n\t\t\t\t\t\t\t\t\t\tc += m[p.children[i]].state.selected;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\tif(c === j) {\r\n\t\t\t\t\t\t\t\t\t\tp.state.selected = true;\r\n\t\t\t\t\t\t\t\t\t\tthis._data.core.selected.push(p.id);\r\n\t\t\t\t\t\t\t\t\t\ttmp = this.get_node(p, true);\r\n\t\t\t\t\t\t\t\t\t\tif(tmp && tmp.length) {\r\n\t\t\t\t\t\t\t\t\t\t\ttmp.children('.jstree-anchor').addClass('jstree-clicked');\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\tp = this.get_node(p.parent);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tthis._data.core.selected = $.vakata.array_unique(this._data.core.selected);\r\n\t\t\t\t\t\t}, this))\r\n\t\t\t\t\t.on('select_node.jstree', $.proxy(function (e, data) {\r\n\t\t\t\t\t\t\tvar obj = data.node,\r\n\t\t\t\t\t\t\t\tm = this._model.data,\r\n\t\t\t\t\t\t\t\tpar = this.get_node(obj.parent),\r\n\t\t\t\t\t\t\t\tdom = this.get_node(obj, true),\r\n\t\t\t\t\t\t\t\ti, j, c, tmp;\r\n\t\t\t\t\t\t\tthis._data.core.selected = $.vakata.array_unique(this._data.core.selected.concat(obj.children_d));\r\n\r\n\t\t\t\t\t\t\tfor(i = 0, j = obj.children_d.length; i < j; i++) {\r\n\t\t\t\t\t\t\t\ttmp = m[obj.children_d[i]];\r\n\t\t\t\t\t\t\t\ttmp.state.selected = true;\r\n\t\t\t\t\t\t\t\tif(tmp && tmp.original && tmp.original.state && tmp.original.state.undetermined) {\r\n\t\t\t\t\t\t\t\t\ttmp.original.state.undetermined = false;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\twhile(par && par.id !== '#') {\r\n\t\t\t\t\t\t\t\tc = 0;\r\n\t\t\t\t\t\t\t\tfor(i = 0, j = par.children.length; i < j; i++) {\r\n\t\t\t\t\t\t\t\t\tc += m[par.children[i]].state.selected;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tif(c === j) {\r\n\t\t\t\t\t\t\t\t\tpar.state.selected = true;\r\n\t\t\t\t\t\t\t\t\tthis._data.core.selected.push(par.id);\r\n\t\t\t\t\t\t\t\t\ttmp = this.get_node(par, true);\r\n\t\t\t\t\t\t\t\t\tif(tmp && tmp.length) {\r\n\t\t\t\t\t\t\t\t\t\ttmp.children('.jstree-anchor').addClass('jstree-clicked');\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tpar = this.get_node(par.parent);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif(dom.length) {\r\n\t\t\t\t\t\t\t\tdom.find('.jstree-anchor').addClass('jstree-clicked');\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}, this))\r\n\t\t\t\t\t.on('deselect_all.jstree', $.proxy(function (e, data) {\r\n\t\t\t\t\t\t\tvar obj = this.get_node('#'),\r\n\t\t\t\t\t\t\t\tm = this._model.data,\r\n\t\t\t\t\t\t\t\ti, j, tmp;\r\n\t\t\t\t\t\t\tfor(i = 0, j = obj.children_d.length; i < j; i++) {\r\n\t\t\t\t\t\t\t\ttmp = m[obj.children_d[i]];\r\n\t\t\t\t\t\t\t\tif(tmp && tmp.original && tmp.original.state && tmp.original.state.undetermined) {\r\n\t\t\t\t\t\t\t\t\ttmp.original.state.undetermined = false;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}, this))\r\n\t\t\t\t\t.on('deselect_node.jstree', $.proxy(function (e, data) {\r\n\t\t\t\t\t\t\tvar obj = data.node,\r\n\t\t\t\t\t\t\t\tdom = this.get_node(obj, true),\r\n\t\t\t\t\t\t\t\ti, j, tmp;\r\n\t\t\t\t\t\t\tif(obj && obj.original && obj.original.state && obj.original.state.undetermined) {\r\n\t\t\t\t\t\t\t\tobj.original.state.undetermined = false;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tfor(i = 0, j = obj.children_d.length; i < j; i++) {\r\n\t\t\t\t\t\t\t\ttmp = this._model.data[obj.children_d[i]];\r\n\t\t\t\t\t\t\t\ttmp.state.selected = false;\r\n\t\t\t\t\t\t\t\tif(tmp && tmp.original && tmp.original.state && tmp.original.state.undetermined) {\r\n\t\t\t\t\t\t\t\t\ttmp.original.state.undetermined = false;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tfor(i = 0, j = obj.parents.length; i < j; i++) {\r\n\t\t\t\t\t\t\t\ttmp = this._model.data[obj.parents[i]];\r\n\t\t\t\t\t\t\t\ttmp.state.selected = false;\r\n\t\t\t\t\t\t\t\tif(tmp && tmp.original && tmp.original.state && tmp.original.state.undetermined) {\r\n\t\t\t\t\t\t\t\t\ttmp.original.state.undetermined = false;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\ttmp = this.get_node(obj.parents[i], true);\r\n\t\t\t\t\t\t\t\tif(tmp && tmp.length) {\r\n\t\t\t\t\t\t\t\t\ttmp.children('.jstree-anchor').removeClass('jstree-clicked');\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\ttmp = [];\r\n\t\t\t\t\t\t\tfor(i = 0, j = this._data.core.selected.length; i < j; i++) {\r\n\t\t\t\t\t\t\t\tif($.inArray(this._data.core.selected[i], obj.children_d) === -1 && $.inArray(this._data.core.selected[i], obj.parents) === -1) {\r\n\t\t\t\t\t\t\t\t\ttmp.push(this._data.core.selected[i]);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tthis._data.core.selected = $.vakata.array_unique(tmp);\r\n\t\t\t\t\t\t\tif(dom.length) {\r\n\t\t\t\t\t\t\t\tdom.find('.jstree-anchor').removeClass('jstree-clicked');\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}, this))\r\n\t\t\t\t\t.on('delete_node.jstree', $.proxy(function (e, data) {\r\n\t\t\t\t\t\t\tvar p = this.get_node(data.parent),\r\n\t\t\t\t\t\t\t\tm = this._model.data,\r\n\t\t\t\t\t\t\t\ti, j, c, tmp;\r\n\t\t\t\t\t\t\twhile(p && p.id !== '#') {\r\n\t\t\t\t\t\t\t\tc = 0;\r\n\t\t\t\t\t\t\t\tfor(i = 0, j = p.children.length; i < j; i++) {\r\n\t\t\t\t\t\t\t\t\tc += m[p.children[i]].state.selected;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tif(c === j) {\r\n\t\t\t\t\t\t\t\t\tp.state.selected = true;\r\n\t\t\t\t\t\t\t\t\tthis._data.core.selected.push(p.id);\r\n\t\t\t\t\t\t\t\t\ttmp = this.get_node(p, true);\r\n\t\t\t\t\t\t\t\t\tif(tmp && tmp.length) {\r\n\t\t\t\t\t\t\t\t\t\ttmp.children('.jstree-anchor').addClass('jstree-clicked');\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tp = this.get_node(p.parent);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}, this))\r\n\t\t\t\t\t.on('move_node.jstree', $.proxy(function (e, data) {\r\n\t\t\t\t\t\t\tvar is_multi = data.is_multi,\r\n\t\t\t\t\t\t\t\told_par = data.old_parent,\r\n\t\t\t\t\t\t\t\tnew_par = this.get_node(data.parent),\r\n\t\t\t\t\t\t\t\tm = this._model.data,\r\n\t\t\t\t\t\t\t\tp, c, i, j, tmp;\r\n\t\t\t\t\t\t\tif(!is_multi) {\r\n\t\t\t\t\t\t\t\tp = this.get_node(old_par);\r\n\t\t\t\t\t\t\t\twhile(p && p.id !== '#') {\r\n\t\t\t\t\t\t\t\t\tc = 0;\r\n\t\t\t\t\t\t\t\t\tfor(i = 0, j = p.children.length; i < j; i++) {\r\n\t\t\t\t\t\t\t\t\t\tc += m[p.children[i]].state.selected;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\tif(c === j) {\r\n\t\t\t\t\t\t\t\t\t\tp.state.selected = true;\r\n\t\t\t\t\t\t\t\t\t\tthis._data.core.selected.push(p.id);\r\n\t\t\t\t\t\t\t\t\t\ttmp = this.get_node(p, true);\r\n\t\t\t\t\t\t\t\t\t\tif(tmp && tmp.length) {\r\n\t\t\t\t\t\t\t\t\t\t\ttmp.children('.jstree-anchor').addClass('jstree-clicked');\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\tp = this.get_node(p.parent);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tp = new_par;\r\n\t\t\t\t\t\t\twhile(p && p.id !== '#') {\r\n\t\t\t\t\t\t\t\tc = 0;\r\n\t\t\t\t\t\t\t\tfor(i = 0, j = p.children.length; i < j; i++) {\r\n\t\t\t\t\t\t\t\t\tc += m[p.children[i]].state.selected;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tif(c === j) {\r\n\t\t\t\t\t\t\t\t\tif(!p.state.selected) {\r\n\t\t\t\t\t\t\t\t\t\tp.state.selected = true;\r\n\t\t\t\t\t\t\t\t\t\tthis._data.core.selected.push(p.id);\r\n\t\t\t\t\t\t\t\t\t\ttmp = this.get_node(p, true);\r\n\t\t\t\t\t\t\t\t\t\tif(tmp && tmp.length) {\r\n\t\t\t\t\t\t\t\t\t\t\ttmp.children('.jstree-anchor').addClass('jstree-clicked');\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\tif(p.state.selected) {\r\n\t\t\t\t\t\t\t\t\t\tp.state.selected = false;\r\n\t\t\t\t\t\t\t\t\t\tthis._data.core.selected = $.vakata.array_remove_item(this._data.core.selected, p.id);\r\n\t\t\t\t\t\t\t\t\t\ttmp = this.get_node(p, true);\r\n\t\t\t\t\t\t\t\t\t\tif(tmp && tmp.length) {\r\n\t\t\t\t\t\t\t\t\t\t\ttmp.children('.jstree-anchor').removeClass('jstree-clicked');\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tp = this.get_node(p.parent);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}, this));\r\n\t\t\t}\r\n\t\t};\r\n\t\t/**\r\n\t\t * set the undetermined state where and if necessary. Used internally.\r\n\t\t * @private\r\n\t\t * @name _undetermined()\r\n\t\t * @plugin checkbox\r\n\t\t */\r\n\t\tthis._undetermined = function () {\r\n\t\t\tvar i, j, m = this._model.data, s = this._data.core.selected, p = [], t = this;\r\n\t\t\tfor(i = 0, j = s.length; i < j; i++) {\r\n\t\t\t\tif(m[s[i]] && m[s[i]].parents) {\r\n\t\t\t\t\tp = p.concat(m[s[i]].parents);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// attempt for server side undetermined state\r\n\t\t\tthis.element.find('.jstree-closed').not(':has(.jstree-children)')\r\n\t\t\t\t.each(function () {\r\n\t\t\t\t\tvar tmp = t.get_node(this), tmp2;\r\n\t\t\t\t\tif(!tmp.state.loaded) {\r\n\t\t\t\t\t\tif(tmp.original && tmp.original.state && tmp.original.state.undetermined && tmp.original.state.undetermined === true) {\r\n\t\t\t\t\t\t\tp.push(tmp.id);\r\n\t\t\t\t\t\t\tp = p.concat(tmp.parents);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tfor(i = 0, j = tmp.children_d.length; i < j; i++) {\r\n\t\t\t\t\t\t\ttmp2 = m[tmp.children_d[i]];\r\n\t\t\t\t\t\t\tif(!tmp2.state.loaded && tmp2.original && tmp2.original.state && tmp2.original.state.undetermined && tmp2.original.state.undetermined === true) {\r\n\t\t\t\t\t\t\t\tp.push(tmp2.id);\r\n\t\t\t\t\t\t\t\tp = p.concat(tmp2.parents);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\tp = $.vakata.array_unique(p);\r\n\t\t\tp = $.vakata.array_remove_item(p,'#');\r\n\r\n\t\t\tthis.element.find('.jstree-undetermined').removeClass('jstree-undetermined');\r\n\t\t\tfor(i = 0, j = p.length; i < j; i++) {\r\n\t\t\t\tif(!m[p[i]].state.selected) {\r\n\t\t\t\t\ts = this.get_node(p[i], true);\r\n\t\t\t\t\tif(s && s.length) {\r\n\t\t\t\t\t\ts.children('.jstree-anchor').children('.jstree-checkbox').addClass('jstree-undetermined');\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\t\tthis.redraw_node = function(obj, deep, is_callback) {\r\n\t\t\tobj = parent.redraw_node.call(this, obj, deep, is_callback);\r\n\t\t\tif(obj) {\r\n\t\t\t\tvar i, j, tmp = null;\r\n\t\t\t\tfor(i = 0, j = obj.childNodes.length; i < j; i++) {\r\n\t\t\t\t\tif(obj.childNodes[i] && obj.childNodes[i].className && obj.childNodes[i].className.indexOf(\"jstree-anchor\") !== -1) {\r\n\t\t\t\t\t\ttmp = obj.childNodes[i];\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif(tmp) {\r\n\t\t\t\t\ttmp.insertBefore(_i.cloneNode(false), tmp.childNodes[0]);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif(!is_callback && this.settings.checkbox.three_state) {\r\n\t\t\t\tif(this._data.checkbox.uto) { clearTimeout(this._data.checkbox.uto); }\r\n\t\t\t\tthis._data.checkbox.uto = setTimeout($.proxy(this._undetermined, this), 50);\r\n\t\t\t}\r\n\t\t\treturn obj;\r\n\t\t};\r\n\t\tthis.activate_node = function (obj, e) {\r\n\t\t\tif(this.settings.checkbox.whole_node || $(e.target).hasClass('jstree-checkbox')) {\r\n\t\t\t\te.ctrlKey = true;\r\n\t\t\t}\r\n\t\t\treturn parent.activate_node.call(this, obj, e);\r\n\t\t};\r\n\t\t/**\r\n\t\t * show the node checkbox icons\r\n\t\t * @name show_checkboxes()\r\n\t\t * @plugin checkbox\r\n\t\t */\r\n\t\tthis.show_checkboxes = function () { this._data.core.themes.checkboxes = true; this.get_container_ul().removeClass(\"jstree-no-checkboxes\"); };\r\n\t\t/**\r\n\t\t * hide the node checkbox icons\r\n\t\t * @name hide_checkboxes()\r\n\t\t * @plugin checkbox\r\n\t\t */\r\n\t\tthis.hide_checkboxes = function () { this._data.core.themes.checkboxes = false; this.get_container_ul().addClass(\"jstree-no-checkboxes\"); };\r\n\t\t/**\r\n\t\t * toggle the node icons\r\n\t\t * @name toggle_checkboxes()\r\n\t\t * @plugin checkbox\r\n\t\t */\r\n\t\tthis.toggle_checkboxes = function () { if(this._data.core.themes.checkboxes) { this.hide_checkboxes(); } else { this.show_checkboxes(); } };\r\n\t};\r\n\r\n\t// include the checkbox plugin by default\r\n\t// $.jstree.defaults.plugins.push(\"checkbox\");\r\n\r\n/**\r\n * ### Contextmenu plugin\r\n *\r\n * Shows a context menu when a node is right-clicked.\r\n */\r\n// TODO: move logic outside of function + check multiple move\r\n\r\n\t/**\r\n\t * stores all defaults for the contextmenu plugin\r\n\t * @name $.jstree.defaults.contextmenu\r\n\t * @plugin contextmenu\r\n\t */\r\n\t$.jstree.defaults.contextmenu = {\r\n\t\t/**\r\n\t\t * a boolean indicating if the node should be selected when the context menu is invoked on it. Defaults to `true`.\r\n\t\t * @name $.jstree.defaults.contextmenu.select_node\r\n\t\t * @plugin contextmenu\r\n\t\t */\r\n\t\tselect_node : true,\r\n\t\t/**\r\n\t\t * a boolean indicating if the menu should be shown aligned with the node. Defaults to `true`, otherwise the mouse coordinates are used.\r\n\t\t * @name $.jstree.defaults.contextmenu.show_at_node\r\n\t\t * @plugin contextmenu\r\n\t\t */\r\n\t\tshow_at_node : true,\r\n\t\t/**\r\n\t\t * an object of actions, or a function that accepts a node and a callback function and calls the callback function with an object of actions available for that node (you can also return the items too).\r\n\t\t * \r\n\t\t * Each action consists of a key (a unique name) and a value which is an object with the following properties (only label and action are required):\r\n\t\t * \r\n\t\t * * `separator_before` - a boolean indicating if there should be a separator before this item\r\n\t\t * * `separator_after` - a boolean indicating if there should be a separator after this item\r\n\t\t * * `_disabled` - a boolean indicating if this action should be disabled\r\n\t\t * * `label` - a string - the name of the action (could be a function returning a string)\r\n\t\t * * `action` - a function to be executed if this item is chosen\r\n\t\t * * `icon` - a string, can be a path to an icon or a className, if using an image that is in the current directory use a `./` prefix, otherwise it will be detected as a class\r\n\t\t * * `shortcut` - keyCode which will trigger the action if the menu is open (for example `113` for rename, which equals F2)\r\n\t\t * * `shortcut_label` - shortcut label (like for example `F2` for rename)\r\n\t\t * \r\n\t\t * @name $.jstree.defaults.contextmenu.items\r\n\t\t * @plugin contextmenu\r\n\t\t */\r\n\t\titems : function (o, cb) { // Could be an object directly\r\n\t\t\treturn {\r\n\t\t\t\t\"create\" : {\r\n\t\t\t\t\t\"separator_before\"\t: false,\r\n\t\t\t\t\t\"separator_after\"\t: true,\r\n\t\t\t\t\t\"_disabled\"\t\t\t: false, //(this.check(\"create_node\", data.reference, {}, \"last\")),\r\n\t\t\t\t\t\"label\"\t\t\t\t: \"Create\",\r\n\t\t\t\t\t\"action\"\t\t\t: function (data) {\r\n\t\t\t\t\t\tvar inst = $.jstree.reference(data.reference),\r\n\t\t\t\t\t\t\tobj = inst.get_node(data.reference);\r\n\t\t\t\t\t\tinst.create_node(obj, {}, \"last\", function (new_node) {\r\n\t\t\t\t\t\t\tsetTimeout(function () { inst.edit(new_node); },0);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t\"rename\" : {\r\n\t\t\t\t\t\"separator_before\"\t: false,\r\n\t\t\t\t\t\"separator_after\"\t: false,\r\n\t\t\t\t\t\"_disabled\"\t\t\t: false, //(this.check(\"rename_node\", data.reference, this.get_parent(data.reference), \"\")),\r\n\t\t\t\t\t\"label\"\t\t\t\t: \"Rename\",\r\n\t\t\t\t\t/*\r\n\t\t\t\t\t\"shortcut\"\t\t\t: 113,\r\n\t\t\t\t\t\"shortcut_label\"\t: 'F2',\r\n\t\t\t\t\t\"icon\"\t\t\t\t: \"glyphicon glyphicon-leaf\",\r\n\t\t\t\t\t*/\r\n\t\t\t\t\t\"action\"\t\t\t: function (data) {\r\n\t\t\t\t\t\tvar inst = $.jstree.reference(data.reference),\r\n\t\t\t\t\t\t\tobj = inst.get_node(data.reference);\r\n\t\t\t\t\t\tinst.edit(obj);\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t\"remove\" : {\r\n\t\t\t\t\t\"separator_before\"\t: false,\r\n\t\t\t\t\t\"icon\"\t\t\t\t: false,\r\n\t\t\t\t\t\"separator_after\"\t: false,\r\n\t\t\t\t\t\"_disabled\"\t\t\t: false, //(this.check(\"delete_node\", data.reference, this.get_parent(data.reference), \"\")),\r\n\t\t\t\t\t\"label\"\t\t\t\t: \"Delete\",\r\n\t\t\t\t\t\"action\"\t\t\t: function (data) {\r\n\t\t\t\t\t\tvar inst = $.jstree.reference(data.reference),\r\n\t\t\t\t\t\t\tobj = inst.get_node(data.reference);\r\n\t\t\t\t\t\tif(inst.is_selected(obj)) {\r\n\t\t\t\t\t\t\tinst.delete_node(inst.get_selected());\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tinst.delete_node(obj);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t\"ccp\" : {\r\n\t\t\t\t\t\"separator_before\"\t: true,\r\n\t\t\t\t\t\"icon\"\t\t\t\t: false,\r\n\t\t\t\t\t\"separator_after\"\t: false,\r\n\t\t\t\t\t\"label\"\t\t\t\t: \"Edit\",\r\n\t\t\t\t\t\"action\"\t\t\t: false,\r\n\t\t\t\t\t\"submenu\" : {\r\n\t\t\t\t\t\t\"cut\" : {\r\n\t\t\t\t\t\t\t\"separator_before\"\t: false,\r\n\t\t\t\t\t\t\t\"separator_after\"\t: false,\r\n\t\t\t\t\t\t\t\"label\"\t\t\t\t: \"Cut\",\r\n\t\t\t\t\t\t\t\"action\"\t\t\t: function (data) {\r\n\t\t\t\t\t\t\t\tvar inst = $.jstree.reference(data.reference),\r\n\t\t\t\t\t\t\t\t\tobj = inst.get_node(data.reference);\r\n\t\t\t\t\t\t\t\tif(inst.is_selected(obj)) {\r\n\t\t\t\t\t\t\t\t\tinst.cut(inst.get_selected());\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\tinst.cut(obj);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\"copy\" : {\r\n\t\t\t\t\t\t\t\"separator_before\"\t: false,\r\n\t\t\t\t\t\t\t\"icon\"\t\t\t\t: false,\r\n\t\t\t\t\t\t\t\"separator_after\"\t: false,\r\n\t\t\t\t\t\t\t\"label\"\t\t\t\t: \"Copy\",\r\n\t\t\t\t\t\t\t\"action\"\t\t\t: function (data) {\r\n\t\t\t\t\t\t\t\tvar inst = $.jstree.reference(data.reference),\r\n\t\t\t\t\t\t\t\t\tobj = inst.get_node(data.reference);\r\n\t\t\t\t\t\t\t\tif(inst.is_selected(obj)) {\r\n\t\t\t\t\t\t\t\t\tinst.copy(inst.get_selected());\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\tinst.copy(obj);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\"paste\" : {\r\n\t\t\t\t\t\t\t\"separator_before\"\t: false,\r\n\t\t\t\t\t\t\t\"icon\"\t\t\t\t: false,\r\n\t\t\t\t\t\t\t\"_disabled\"\t\t\t: function (data) {\r\n\t\t\t\t\t\t\t\treturn !$.jstree.reference(data.reference).can_paste();\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\"separator_after\"\t: false,\r\n\t\t\t\t\t\t\t\"label\"\t\t\t\t: \"Paste\",\r\n\t\t\t\t\t\t\t\"action\"\t\t\t: function (data) {\r\n\t\t\t\t\t\t\t\tvar inst = $.jstree.reference(data.reference),\r\n\t\t\t\t\t\t\t\t\tobj = inst.get_node(data.reference);\r\n\t\t\t\t\t\t\t\tinst.paste(obj);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t}\r\n\t};\r\n\r\n\t$.jstree.plugins.contextmenu = function (options, parent) {\r\n\t\tthis.bind = function () {\r\n\t\t\tparent.bind.call(this);\r\n\r\n\t\t\tvar last_ts = 0;\r\n\t\t\tthis.element\r\n\t\t\t\t.on(\"contextmenu.jstree\", \".jstree-anchor\", $.proxy(function (e) {\r\n\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\tlast_ts = e.ctrlKey ? e.timeStamp : 0;\r\n\t\t\t\t\t\tif(!this.is_loading(e.currentTarget)) {\r\n\t\t\t\t\t\t\tthis.show_contextmenu(e.currentTarget, e.pageX, e.pageY, e);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}, this))\r\n\t\t\t\t.on(\"click.jstree\", \".jstree-anchor\", $.proxy(function (e) {\r\n\t\t\t\t\t\tif(this._data.contextmenu.visible && (!last_ts || e.timeStamp - last_ts > 250)) { // work around safari & macOS ctrl+click\r\n\t\t\t\t\t\t\t$.vakata.context.hide();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}, this));\r\n\t\t\t/*\r\n\t\t\tif(!('oncontextmenu' in document.body) && ('ontouchstart' in document.body)) {\r\n\t\t\t\tvar el = null, tm = null;\r\n\t\t\t\tthis.element\r\n\t\t\t\t\t.on(\"touchstart\", \".jstree-anchor\", function (e) {\r\n\t\t\t\t\t\tel = e.currentTarget;\r\n\t\t\t\t\t\ttm = +new Date();\r\n\t\t\t\t\t\t$(document).one(\"touchend\", function (e) {\r\n\t\t\t\t\t\t\te.target = document.elementFromPoint(e.originalEvent.targetTouches[0].pageX - window.pageXOffset, e.originalEvent.targetTouches[0].pageY - window.pageYOffset);\r\n\t\t\t\t\t\t\te.currentTarget = e.target;\r\n\t\t\t\t\t\t\ttm = ((+(new Date())) - tm);\r\n\t\t\t\t\t\t\tif(e.target === el && tm > 600 && tm < 1000) {\r\n\t\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\t\t$(el).trigger('contextmenu', e);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tel = null;\r\n\t\t\t\t\t\t\ttm = null;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t});\r\n\t\t\t}\r\n\t\t\t*/\r\n\t\t\t$(document).on(\"context_hide.vakata\", $.proxy(function () { this._data.contextmenu.visible = false; }, this));\r\n\t\t};\r\n\t\tthis.teardown = function () {\r\n\t\t\tif(this._data.contextmenu.visible) {\r\n\t\t\t\t$.vakata.context.hide();\r\n\t\t\t}\r\n\t\t\tparent.teardown.call(this);\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * prepare and show the context menu for a node\r\n\t\t * @name show_contextmenu(obj [, x, y])\r\n\t\t * @param {mixed} obj the node\r\n\t\t * @param {Number} x the x-coordinate relative to the document to show the menu at\r\n\t\t * @param {Number} y the y-coordinate relative to the document to show the menu at\r\n\t\t * @param {Object} e the event if available that triggered the contextmenu\r\n\t\t * @plugin contextmenu\r\n\t\t * @trigger show_contextmenu.jstree\r\n\t\t */\r\n\t\tthis.show_contextmenu = function (obj, x, y, e) {\r\n\t\t\tobj = this.get_node(obj);\r\n\t\t\tif(!obj || obj.id === '#') { return false; }\r\n\t\t\tvar s = this.settings.contextmenu,\r\n\t\t\t\td = this.get_node(obj, true),\r\n\t\t\t\ta = d.children(\".jstree-anchor\"),\r\n\t\t\t\to = false,\r\n\t\t\t\ti = false;\r\n\t\t\tif(s.show_at_node || x === undefined || y === undefined) {\r\n\t\t\t\to = a.offset();\r\n\t\t\t\tx = o.left;\r\n\t\t\t\ty = o.top + this._data.core.li_height;\r\n\t\t\t}\r\n\t\t\tif(this.settings.contextmenu.select_node && !this.is_selected(obj)) {\r\n\t\t\t\tthis.activate_node(obj, e);\r\n\t\t\t}\r\n\r\n\t\t\ti = s.items;\r\n\t\t\tif($.isFunction(i)) {\r\n\t\t\t\ti = i.call(this, obj, $.proxy(function (i) {\r\n\t\t\t\t\tthis._show_contextmenu(obj, x, y, i);\r\n\t\t\t\t}, this));\r\n\t\t\t}\r\n\t\t\tif($.isPlainObject(i)) {\r\n\t\t\t\tthis._show_contextmenu(obj, x, y, i);\r\n\t\t\t}\r\n\t\t};\r\n\t\t/**\r\n\t\t * show the prepared context menu for a node\r\n\t\t * @name _show_contextmenu(obj, x, y, i)\r\n\t\t * @param {mixed} obj the node\r\n\t\t * @param {Number} x the x-coordinate relative to the document to show the menu at\r\n\t\t * @param {Number} y the y-coordinate relative to the document to show the menu at\r\n\t\t * @param {Number} i the object of items to show\r\n\t\t * @plugin contextmenu\r\n\t\t * @trigger show_contextmenu.jstree\r\n\t\t * @private\r\n\t\t */\r\n\t\tthis._show_contextmenu = function (obj, x, y, i) {\r\n\t\t\tvar d = this.get_node(obj, true),\r\n\t\t\t\ta = d.children(\".jstree-anchor\");\r\n\t\t\t$(document).one(\"context_show.vakata\", $.proxy(function (e, data) {\r\n\t\t\t\tvar cls = 'jstree-contextmenu jstree-' + this.get_theme() + '-contextmenu';\r\n\t\t\t\t$(data.element).addClass(cls);\r\n\t\t\t}, this));\r\n\t\t\tthis._data.contextmenu.visible = true;\r\n\t\t\t$.vakata.context.show(a, { 'x' : x, 'y' : y }, i);\r\n\t\t\t/**\r\n\t\t\t * triggered when the contextmenu is shown for a node\r\n\t\t\t * @event\r\n\t\t\t * @name show_contextmenu.jstree\r\n\t\t\t * @param {Object} node the node\r\n\t\t\t * @param {Number} x the x-coordinate of the menu relative to the document\r\n\t\t\t * @param {Number} y the y-coordinate of the menu relative to the document\r\n\t\t\t * @plugin contextmenu\r\n\t\t\t */\r\n\t\t\tthis.trigger('show_contextmenu', { \"node\" : obj, \"x\" : x, \"y\" : y });\r\n\t\t};\r\n\t};\r\n\r\n\t// contextmenu helper\r\n\t(function ($) {\r\n\t\tvar right_to_left = false,\r\n\t\t\tvakata_context = {\r\n\t\t\t\telement\t\t: false,\r\n\t\t\t\treference\t: false,\r\n\t\t\t\tposition_x\t: 0,\r\n\t\t\t\tposition_y\t: 0,\r\n\t\t\t\titems\t\t: [],\r\n\t\t\t\thtml\t\t: \"\",\r\n\t\t\t\tis_visible\t: false\r\n\t\t\t};\r\n\r\n\t\t$.vakata.context = {\r\n\t\t\tsettings : {\r\n\t\t\t\thide_onmouseleave\t: 0,\r\n\t\t\t\ticons\t\t\t\t: true\r\n\t\t\t},\r\n\t\t\t_trigger : function (event_name) {\r\n\t\t\t\t$(document).triggerHandler(\"context_\" + event_name + \".vakata\", {\r\n\t\t\t\t\t\"reference\"\t: vakata_context.reference,\r\n\t\t\t\t\t\"element\"\t: vakata_context.element,\r\n\t\t\t\t\t\"position\"\t: {\r\n\t\t\t\t\t\t\"x\" : vakata_context.position_x,\r\n\t\t\t\t\t\t\"y\" : vakata_context.position_y\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t\t_execute : function (i) {\r\n\t\t\t\ti = vakata_context.items[i];\r\n\t\t\t\treturn i && (!i._disabled || ($.isFunction(i._disabled) && !i._disabled({ \"item\" : i, \"reference\" : vakata_context.reference, \"element\" : vakata_context.element }))) && i.action ? i.action.call(null, {\r\n\t\t\t\t\t\t\t\"item\"\t\t: i,\r\n\t\t\t\t\t\t\t\"reference\"\t: vakata_context.reference,\r\n\t\t\t\t\t\t\t\"element\"\t: vakata_context.element,\r\n\t\t\t\t\t\t\t\"position\"\t: {\r\n\t\t\t\t\t\t\t\t\"x\" : vakata_context.position_x,\r\n\t\t\t\t\t\t\t\t\"y\" : vakata_context.position_y\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}) : false;\r\n\t\t\t},\r\n\t\t\t_parse : function (o, is_callback) {\r\n\t\t\t\tif(!o) { return false; }\r\n\t\t\t\tif(!is_callback) {\r\n\t\t\t\t\tvakata_context.html\t\t= \"\";\r\n\t\t\t\t\tvakata_context.items\t= [];\r\n\t\t\t\t}\r\n\t\t\t\tvar str = \"\",\r\n\t\t\t\t\tsep = false,\r\n\t\t\t\t\ttmp;\r\n\r\n\t\t\t\tif(is_callback) { str += \"<\"+\"ul>\"; }\r\n\t\t\t\t$.each(o, function (i, val) {\r\n\t\t\t\t\tif(!val) { return true; }\r\n\t\t\t\t\tvakata_context.items.push(val);\r\n\t\t\t\t\tif(!sep && val.separator_before) {\r\n\t\t\t\t\t\tstr += \"<\"+\"li class='vakata-context-separator'><\"+\"a href='#' \" + ($.vakata.context.settings.icons ? '' : 'style=\"margin-left:0px;\"') + \"> <\"+\"/a><\"+\"/li>\";\r\n\t\t\t\t\t}\r\n\t\t\t\t\tsep = false;\r\n\t\t\t\t\tstr += \"<\"+\"li class='\" + (val._class || \"\") + (val._disabled === true || ($.isFunction(val._disabled) && val._disabled({ \"item\" : val, \"reference\" : vakata_context.reference, \"element\" : vakata_context.element })) ? \" vakata-contextmenu-disabled \" : \"\") + \"' \"+(val.shortcut?\" data-shortcut='\"+val.shortcut+\"' \":'')+\">\";\r\n\t\t\t\t\tstr += \"<\"+\"a href='#' rel='\" + (vakata_context.items.length - 1) + \"'>\";\r\n\t\t\t\t\tif($.vakata.context.settings.icons) {\r\n\t\t\t\t\t\tstr += \"<\"+\"i \";\r\n\t\t\t\t\t\tif(val.icon) {\r\n\t\t\t\t\t\t\tif(val.icon.indexOf(\"/\") !== -1 || val.icon.indexOf(\".\") !== -1) { str += \" style='background:url(\\\"\" + val.icon + \"\\\") center center no-repeat' \"; }\r\n\t\t\t\t\t\t\telse { str += \" class='\" + val.icon + \"' \"; }\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tstr += \"><\"+\"/i><\"+\"span class='vakata-contextmenu-sep'> <\"+\"/span>\";\r\n\t\t\t\t\t}\r\n\t\t\t\t\tstr += ($.isFunction(val.label) ? val.label({ \"item\" : i, \"reference\" : vakata_context.reference, \"element\" : vakata_context.element }) : val.label) + (val.shortcut?' '+ (val.shortcut_label || '') +'':'') + \"<\"+\"/a>\";\r\n\t\t\t\t\tif(val.submenu) {\r\n\t\t\t\t\t\ttmp = $.vakata.context._parse(val.submenu, true);\r\n\t\t\t\t\t\tif(tmp) { str += tmp; }\r\n\t\t\t\t\t}\r\n\t\t\t\t\tstr += \"<\"+\"/li>\";\r\n\t\t\t\t\tif(val.separator_after) {\r\n\t\t\t\t\t\tstr += \"<\"+\"li class='vakata-context-separator'><\"+\"a href='#' \" + ($.vakata.context.settings.icons ? '' : 'style=\"margin-left:0px;\"') + \"> <\"+\"/a><\"+\"/li>\";\r\n\t\t\t\t\t\tsep = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t\tstr = str.replace(/
  • <\\/li\\>$/,\"\");\r\n\t\t\t\tif(is_callback) { str += \"\"; }\r\n\t\t\t\t/**\r\n\t\t\t\t * triggered on the document when the contextmenu is parsed (HTML is built)\r\n\t\t\t\t * @event\r\n\t\t\t\t * @plugin contextmenu\r\n\t\t\t\t * @name context_parse.vakata\r\n\t\t\t\t * @param {jQuery} reference the element that was right clicked\r\n\t\t\t\t * @param {jQuery} element the DOM element of the menu itself\r\n\t\t\t\t * @param {Object} position the x & y coordinates of the menu\r\n\t\t\t\t */\r\n\t\t\t\tif(!is_callback) { vakata_context.html = str; $.vakata.context._trigger(\"parse\"); }\r\n\t\t\t\treturn str.length > 10 ? str : false;\r\n\t\t\t},\r\n\t\t\t_show_submenu : function (o) {\r\n\t\t\t\to = $(o);\r\n\t\t\t\tif(!o.length || !o.children(\"ul\").length) { return; }\r\n\t\t\t\tvar e = o.children(\"ul\"),\r\n\t\t\t\t\tx = o.offset().left + o.outerWidth(),\r\n\t\t\t\t\ty = o.offset().top,\r\n\t\t\t\t\tw = e.width(),\r\n\t\t\t\t\th = e.height(),\r\n\t\t\t\t\tdw = $(window).width() + $(window).scrollLeft(),\r\n\t\t\t\t\tdh = $(window).height() + $(window).scrollTop();\r\n\t\t\t\t// може да се спести е една проверка - дали няма някой от класовете вече нагоре\r\n\t\t\t\tif(right_to_left) {\r\n\t\t\t\t\to[x - (w + 10 + o.outerWidth()) < 0 ? \"addClass\" : \"removeClass\"](\"vakata-context-left\");\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\to[x + w + 10 > dw ? \"addClass\" : \"removeClass\"](\"vakata-context-right\");\r\n\t\t\t\t}\r\n\t\t\t\tif(y + h + 10 > dh) {\r\n\t\t\t\t\te.css(\"bottom\",\"-1px\");\r\n\t\t\t\t}\r\n\t\t\t\te.show();\r\n\t\t\t},\r\n\t\t\tshow : function (reference, position, data) {\r\n\t\t\t\tvar o, e, x, y, w, h, dw, dh, cond = true;\r\n\t\t\t\tif(vakata_context.element && vakata_context.element.length) {\r\n\t\t\t\t\tvakata_context.element.width('');\r\n\t\t\t\t}\r\n\t\t\t\tswitch(cond) {\r\n\t\t\t\t\tcase (!position && !reference):\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\tcase (!!position && !!reference):\r\n\t\t\t\t\t\tvakata_context.reference\t= reference;\r\n\t\t\t\t\t\tvakata_context.position_x\t= position.x;\r\n\t\t\t\t\t\tvakata_context.position_y\t= position.y;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase (!position && !!reference):\r\n\t\t\t\t\t\tvakata_context.reference\t= reference;\r\n\t\t\t\t\t\to = reference.offset();\r\n\t\t\t\t\t\tvakata_context.position_x\t= o.left + reference.outerHeight();\r\n\t\t\t\t\t\tvakata_context.position_y\t= o.top;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase (!!position && !reference):\r\n\t\t\t\t\t\tvakata_context.position_x\t= position.x;\r\n\t\t\t\t\t\tvakata_context.position_y\t= position.y;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t\tif(!!reference && !data && $(reference).data('vakata_contextmenu')) {\r\n\t\t\t\t\tdata = $(reference).data('vakata_contextmenu');\r\n\t\t\t\t}\r\n\t\t\t\tif($.vakata.context._parse(data)) {\r\n\t\t\t\t\tvakata_context.element.html(vakata_context.html);\r\n\t\t\t\t}\r\n\t\t\t\tif(vakata_context.items.length) {\r\n\t\t\t\t\te = vakata_context.element;\r\n\t\t\t\t\tx = vakata_context.position_x;\r\n\t\t\t\t\ty = vakata_context.position_y;\r\n\t\t\t\t\tw = e.width();\r\n\t\t\t\t\th = e.height();\r\n\t\t\t\t\tdw = $(window).width() + $(window).scrollLeft();\r\n\t\t\t\t\tdh = $(window).height() + $(window).scrollTop();\r\n\t\t\t\t\tif(right_to_left) {\r\n\t\t\t\t\t\tx -= e.outerWidth();\r\n\t\t\t\t\t\tif(x < $(window).scrollLeft() + 20) {\r\n\t\t\t\t\t\t\tx = $(window).scrollLeft() + 20;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif(x + w + 20 > dw) {\r\n\t\t\t\t\t\tx = dw - (w + 20);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif(y + h + 20 > dh) {\r\n\t\t\t\t\t\ty = dh - (h + 20);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tvakata_context.element\r\n\t\t\t\t\t\t.css({ \"left\" : x, \"top\" : y })\r\n\t\t\t\t\t\t.show()\r\n\t\t\t\t\t\t.find('a:eq(0)').focus().parent().addClass(\"vakata-context-hover\");\r\n\t\t\t\t\tvakata_context.is_visible = true;\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * triggered on the document when the contextmenu is shown\r\n\t\t\t\t\t * @event\r\n\t\t\t\t\t * @plugin contextmenu\r\n\t\t\t\t\t * @name context_show.vakata\r\n\t\t\t\t\t * @param {jQuery} reference the element that was right clicked\r\n\t\t\t\t\t * @param {jQuery} element the DOM element of the menu itself\r\n\t\t\t\t\t * @param {Object} position the x & y coordinates of the menu\r\n\t\t\t\t\t */\r\n\t\t\t\t\t$.vakata.context._trigger(\"show\");\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\thide : function () {\r\n\t\t\t\tif(vakata_context.is_visible) {\r\n\t\t\t\t\tvakata_context.element.hide().find(\"ul\").hide().end().find(':focus').blur();\r\n\t\t\t\t\tvakata_context.is_visible = false;\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * triggered on the document when the contextmenu is hidden\r\n\t\t\t\t\t * @event\r\n\t\t\t\t\t * @plugin contextmenu\r\n\t\t\t\t\t * @name context_hide.vakata\r\n\t\t\t\t\t * @param {jQuery} reference the element that was right clicked\r\n\t\t\t\t\t * @param {jQuery} element the DOM element of the menu itself\r\n\t\t\t\t\t * @param {Object} position the x & y coordinates of the menu\r\n\t\t\t\t\t */\r\n\t\t\t\t\t$.vakata.context._trigger(\"hide\");\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\t\t$(function () {\r\n\t\t\tright_to_left = $(\"body\").css(\"direction\") === \"rtl\";\r\n\t\t\tvar to = false;\r\n\r\n\t\t\tvakata_context.element = $(\"
      \");\r\n\t\t\tvakata_context.element\r\n\t\t\t\t.on(\"mouseenter\", \"li\", function (e) {\r\n\t\t\t\t\te.stopImmediatePropagation();\r\n\r\n\t\t\t\t\tif($.contains(this, e.relatedTarget)) {\r\n\t\t\t\t\t\t// премахнато заради delegate mouseleave по-долу\r\n\t\t\t\t\t\t// $(this).find(\".vakata-context-hover\").removeClass(\"vakata-context-hover\");\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif(to) { clearTimeout(to); }\r\n\t\t\t\t\tvakata_context.element.find(\".vakata-context-hover\").removeClass(\"vakata-context-hover\").end();\r\n\r\n\t\t\t\t\t$(this)\r\n\t\t\t\t\t\t.siblings().find(\"ul\").hide().end().end()\r\n\t\t\t\t\t\t.parentsUntil(\".vakata-context\", \"li\").addBack().addClass(\"vakata-context-hover\");\r\n\t\t\t\t\t$.vakata.context._show_submenu(this);\r\n\t\t\t\t})\r\n\t\t\t\t// тестово - дали не натоварва?\r\n\t\t\t\t.on(\"mouseleave\", \"li\", function (e) {\r\n\t\t\t\t\tif($.contains(this, e.relatedTarget)) { return; }\r\n\t\t\t\t\t$(this).find(\".vakata-context-hover\").addBack().removeClass(\"vakata-context-hover\");\r\n\t\t\t\t})\r\n\t\t\t\t.on(\"mouseleave\", function (e) {\r\n\t\t\t\t\t$(this).find(\".vakata-context-hover\").removeClass(\"vakata-context-hover\");\r\n\t\t\t\t\tif($.vakata.context.settings.hide_onmouseleave) {\r\n\t\t\t\t\t\tto = setTimeout(\r\n\t\t\t\t\t\t\t(function (t) {\r\n\t\t\t\t\t\t\t\treturn function () { $.vakata.context.hide(); };\r\n\t\t\t\t\t\t\t}(this)), $.vakata.context.settings.hide_onmouseleave);\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t\t.on(\"click\", \"a\", function (e) {\r\n\t\t\t\t\te.preventDefault();\r\n\t\t\t\t})\r\n\t\t\t\t.on(\"mouseup\", \"a\", function (e) {\r\n\t\t\t\t\tif(!$(this).blur().parent().hasClass(\"vakata-context-disabled\") && $.vakata.context._execute($(this).attr(\"rel\")) !== false) {\r\n\t\t\t\t\t\t$.vakata.context.hide();\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t\t.on('keydown', 'a', function (e) {\r\n\t\t\t\t\t\tvar o = null;\r\n\t\t\t\t\t\tswitch(e.which) {\r\n\t\t\t\t\t\t\tcase 13:\r\n\t\t\t\t\t\t\tcase 32:\r\n\t\t\t\t\t\t\t\te.type = \"mouseup\";\r\n\t\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\t\t$(e.currentTarget).trigger(e);\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase 37:\r\n\t\t\t\t\t\t\t\tif(vakata_context.is_visible) {\r\n\t\t\t\t\t\t\t\t\tvakata_context.element.find(\".vakata-context-hover\").last().parents(\"li:eq(0)\").find(\"ul\").hide().find(\".vakata-context-hover\").removeClass(\"vakata-context-hover\").end().end().children('a').focus();\r\n\t\t\t\t\t\t\t\t\te.stopImmediatePropagation();\r\n\t\t\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase 38:\r\n\t\t\t\t\t\t\t\tif(vakata_context.is_visible) {\r\n\t\t\t\t\t\t\t\t\to = vakata_context.element.find(\"ul:visible\").addBack().last().children(\".vakata-context-hover\").removeClass(\"vakata-context-hover\").prevAll(\"li:not(.vakata-context-separator)\").first();\r\n\t\t\t\t\t\t\t\t\tif(!o.length) { o = vakata_context.element.find(\"ul:visible\").addBack().last().children(\"li:not(.vakata-context-separator)\").last(); }\r\n\t\t\t\t\t\t\t\t\to.addClass(\"vakata-context-hover\").children('a').focus();\r\n\t\t\t\t\t\t\t\t\te.stopImmediatePropagation();\r\n\t\t\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase 39:\r\n\t\t\t\t\t\t\t\tif(vakata_context.is_visible) {\r\n\t\t\t\t\t\t\t\t\tvakata_context.element.find(\".vakata-context-hover\").last().children(\"ul\").show().children(\"li:not(.vakata-context-separator)\").removeClass(\"vakata-context-hover\").first().addClass(\"vakata-context-hover\").children('a').focus();\r\n\t\t\t\t\t\t\t\t\te.stopImmediatePropagation();\r\n\t\t\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase 40:\r\n\t\t\t\t\t\t\t\tif(vakata_context.is_visible) {\r\n\t\t\t\t\t\t\t\t\to = vakata_context.element.find(\"ul:visible\").addBack().last().children(\".vakata-context-hover\").removeClass(\"vakata-context-hover\").nextAll(\"li:not(.vakata-context-separator)\").first();\r\n\t\t\t\t\t\t\t\t\tif(!o.length) { o = vakata_context.element.find(\"ul:visible\").addBack().last().children(\"li:not(.vakata-context-separator)\").first(); }\r\n\t\t\t\t\t\t\t\t\to.addClass(\"vakata-context-hover\").children('a').focus();\r\n\t\t\t\t\t\t\t\t\te.stopImmediatePropagation();\r\n\t\t\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase 27:\r\n\t\t\t\t\t\t\t\t$.vakata.context.hide();\r\n\t\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tdefault:\r\n\t\t\t\t\t\t\t\t//console.log(e.which);\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t})\r\n\t\t\t\t.on('keydown', function (e) {\r\n\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\tvar a = vakata_context.element.find('.vakata-contextmenu-shortcut-' + e.which).parent();\r\n\t\t\t\t\tif(a.parent().not('.vakata-context-disabled')) {\r\n\t\t\t\t\t\ta.mouseup();\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t\t.appendTo(\"body\");\r\n\r\n\t\t\t$(document)\r\n\t\t\t\t.on(\"mousedown\", function (e) {\r\n\t\t\t\t\tif(vakata_context.is_visible && !$.contains(vakata_context.element[0], e.target)) { $.vakata.context.hide(); }\r\n\t\t\t\t})\r\n\t\t\t\t.on(\"context_show.vakata\", function (e, data) {\r\n\t\t\t\t\tvakata_context.element.find(\"li:has(ul)\").children(\"a\").addClass(\"vakata-context-parent\");\r\n\t\t\t\t\tif(right_to_left) {\r\n\t\t\t\t\t\tvakata_context.element.addClass(\"vakata-context-rtl\").css(\"direction\", \"rtl\");\r\n\t\t\t\t\t}\r\n\t\t\t\t\t// also apply a RTL class?\r\n\t\t\t\t\tvakata_context.element.find(\"ul\").hide().end();\r\n\t\t\t\t});\r\n\t\t});\r\n\t}($));\r\n\t// $.jstree.defaults.plugins.push(\"contextmenu\");\r\n\r\n/**\r\n * ### Drag'n'drop plugin\r\n *\r\n * Enables dragging and dropping of nodes in the tree, resulting in a move or copy operations.\r\n */\r\n\r\n\t/**\r\n\t * stores all defaults for the drag'n'drop plugin\r\n\t * @name $.jstree.defaults.dnd\r\n\t * @plugin dnd\r\n\t */\r\n\t$.jstree.defaults.dnd = {\r\n\t\t/**\r\n\t\t * a boolean indicating if a copy should be possible while dragging (by pressint the meta key or Ctrl). Defaults to `true`.\r\n\t\t * @name $.jstree.defaults.dnd.copy\r\n\t\t * @plugin dnd\r\n\t\t */\r\n\t\tcopy : true,\r\n\t\t/**\r\n\t\t * a number indicating how long a node should remain hovered while dragging to be opened. Defaults to `500`.\r\n\t\t * @name $.jstree.defaults.dnd.open_timeout\r\n\t\t * @plugin dnd\r\n\t\t */\r\n\t\topen_timeout : 500,\r\n\t\t/**\r\n\t\t * a function invoked each time a node is about to be dragged, invoked in the tree's scope and receives the nodes about to be dragged as an argument (array) - return `false` to prevent dragging\r\n\t\t * @name $.jstree.defaults.dnd.is_draggable\r\n\t\t * @plugin dnd\r\n\t\t */\r\n\t\tis_draggable : true,\r\n\t\t/**\r\n\t\t * a boolean indicating if checks should constantly be made while the user is dragging the node (as opposed to checking only on drop), default is `true`\r\n\t\t * @name $.jstree.defaults.dnd.check_while_dragging\r\n\t\t * @plugin dnd\r\n\t\t */\r\n\t\tcheck_while_dragging : true,\r\n\t\t/**\r\n\t\t * a boolean indicating if nodes from this tree should only be copied with dnd (as opposed to moved), default is `false`\r\n\t\t * @name $.jstree.defaults.dnd.always_copy\r\n\t\t * @plugin dnd\r\n\t\t */\r\n\t\talways_copy : false,\r\n\t\t/**\r\n\t\t * when dropping a node \"inside\", this setting indicates the position the node should go to - it can be an integer or a string: \"first\" (same as 0) or \"last\", default is `0`\r\n\t\t * @name $.jstree.defaults.dnd.inside_pos\r\n\t\t * @plugin dnd\r\n\t\t */\r\n\t\tinside_pos : 0\r\n\t};\r\n\t// TODO: now check works by checking for each node individually, how about max_children, unique, etc?\r\n\t// TODO: drop somewhere else - maybe demo only?\r\n\t$.jstree.plugins.dnd = function (options, parent) {\r\n\t\tthis.bind = function () {\r\n\t\t\tparent.bind.call(this);\r\n\r\n\t\t\tthis.element\r\n\t\t\t\t.on('mousedown.jstree touchstart.jstree', '.jstree-anchor', $.proxy(function (e) {\r\n\t\t\t\t\tvar obj = this.get_node(e.target),\r\n\t\t\t\t\t\tmlt = this.is_selected(obj) ? this.get_selected().length : 1;\r\n\t\t\t\t\tif(obj && obj.id && obj.id !== \"#\" && (e.which === 1 || e.type === \"touchstart\") &&\r\n\t\t\t\t\t\t(this.settings.dnd.is_draggable === true || ($.isFunction(this.settings.dnd.is_draggable) && this.settings.dnd.is_draggable.call(this, (mlt > 1 ? this.get_selected(true) : [obj]))))\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\tthis.element.trigger('mousedown.jstree');\r\n\t\t\t\t\t\treturn $.vakata.dnd.start(e, { 'jstree' : true, 'origin' : this, 'obj' : this.get_node(obj,true), 'nodes' : mlt > 1 ? this.get_selected() : [obj.id] }, '
      ' + (mlt > 1 ? mlt + ' ' + this.get_string('nodes') : this.get_text(e.currentTarget, true)) + '+
      ');\r\n\t\t\t\t\t}\r\n\t\t\t\t}, this));\r\n\t\t};\r\n\t};\r\n\r\n\t$(function() {\r\n\t\t// bind only once for all instances\r\n\t\tvar lastmv = false,\r\n\t\t\tlaster = false,\r\n\t\t\topento = false,\r\n\t\t\tmarker = $('
       
      ').hide().appendTo('body');\r\n\r\n\t\t$(document)\r\n\t\t\t.bind('dnd_start.vakata', function (e, data) {\r\n\t\t\t\tlastmv = false;\r\n\t\t\t})\r\n\t\t\t.bind('dnd_move.vakata', function (e, data) {\r\n\t\t\t\tif(opento) { clearTimeout(opento); }\r\n\t\t\t\tif(!data.data.jstree) { return; }\r\n\r\n\t\t\t\t// if we are hovering the marker image do nothing (can happen on \"inside\" drags)\r\n\t\t\t\tif(data.event.target.id && data.event.target.id === 'jstree-marker') {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar ins = $.jstree.reference(data.event.target),\r\n\t\t\t\t\tref = false,\r\n\t\t\t\t\toff = false,\r\n\t\t\t\t\trel = false,\r\n\t\t\t\t\tl, t, h, p, i, o, ok, t1, t2, op, ps, pr, ip, tm;\r\n\t\t\t\t// if we are over an instance\r\n\t\t\t\tif(ins && ins._data && ins._data.dnd) {\r\n\t\t\t\t\tmarker.attr('class', 'jstree-' + ins.get_theme());\r\n\t\t\t\t\tdata.helper\r\n\t\t\t\t\t\t.children().attr('class', 'jstree-' + ins.get_theme())\r\n\t\t\t\t\t\t.find('.jstree-copy:eq(0)')[ data.data.origin && (data.data.origin.settings.dnd.always_copy || (data.data.origin.settings.dnd.copy && (data.event.metaKey || data.event.ctrlKey))) ? 'show' : 'hide' ]();\r\n\r\n\r\n\t\t\t\t\t// if are hovering the container itself add a new root node\r\n\t\t\t\t\tif( (data.event.target === ins.element[0] || data.event.target === ins.get_container_ul()[0]) && ins.get_container_ul().children().length === 0) {\r\n\t\t\t\t\t\tok = true;\r\n\t\t\t\t\t\tfor(t1 = 0, t2 = data.data.nodes.length; t1 < t2; t1++) {\r\n\t\t\t\t\t\t\tok = ok && ins.check( (data.data.origin && (data.data.origin.settings.dnd.always_copy || (data.data.origin.settings.dnd.copy && (data.event.metaKey || data.event.ctrlKey)) ) ? \"copy_node\" : \"move_node\"), (data.data.origin && data.data.origin !== ins ? data.data.origin.get_node(data.data.nodes[t1]) : data.data.nodes[t1]), '#', 'last', { 'dnd' : true, 'ref' : ins.get_node('#'), 'pos' : 'i', 'is_multi' : (data.data.origin && data.data.origin !== ins), 'is_foreign' : (!data.data.origin) });\r\n\t\t\t\t\t\t\tif(!ok) { break; }\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif(ok) {\r\n\t\t\t\t\t\t\tlastmv = { 'ins' : ins, 'par' : '#', 'pos' : 'last' };\r\n\t\t\t\t\t\t\tmarker.hide();\r\n\t\t\t\t\t\t\tdata.helper.find('.jstree-icon:eq(0)').removeClass('jstree-er').addClass('jstree-ok');\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\t// if we are hovering a tree node\r\n\t\t\t\t\t\tref = $(data.event.target).closest('.jstree-anchor');\r\n\t\t\t\t\t\tif(ref && ref.length && ref.parent().is('.jstree-closed, .jstree-open, .jstree-leaf')) {\r\n\t\t\t\t\t\t\toff = ref.offset();\r\n\t\t\t\t\t\t\trel = data.event.pageY - off.top;\r\n\t\t\t\t\t\t\th = ref.height();\r\n\t\t\t\t\t\t\tif(rel < h / 3) {\r\n\t\t\t\t\t\t\t\to = ['b', 'i', 'a'];\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse if(rel > h - h / 3) {\r\n\t\t\t\t\t\t\t\to = ['a', 'i', 'b'];\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\to = rel > h / 2 ? ['i', 'a', 'b'] : ['i', 'b', 'a'];\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t$.each(o, function (j, v) {\r\n\t\t\t\t\t\t\t\tswitch(v) {\r\n\t\t\t\t\t\t\t\t\tcase 'b':\r\n\t\t\t\t\t\t\t\t\t\tl = off.left - 6;\r\n\t\t\t\t\t\t\t\t\t\tt = off.top - 5;\r\n\t\t\t\t\t\t\t\t\t\tp = ins.get_parent(ref);\r\n\t\t\t\t\t\t\t\t\t\ti = ref.parent().index();\r\n\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\tcase 'i':\r\n\t\t\t\t\t\t\t\t\t\tip = ins.settings.dnd.inside_pos;\r\n\t\t\t\t\t\t\t\t\t\ttm = ins.get_node(ref.parent());\r\n\t\t\t\t\t\t\t\t\t\tl = off.left - 2;\r\n\t\t\t\t\t\t\t\t\t\tt = off.top - 5 + h / 2 + 1;\r\n\t\t\t\t\t\t\t\t\t\tp = tm.id;\r\n\t\t\t\t\t\t\t\t\t\ti = ip === 'first' ? 0 : (ip === 'last' ? tm.children.length : Math.min(ip, tm.children.length));\r\n\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\tcase 'a':\r\n\t\t\t\t\t\t\t\t\t\tl = off.left - 6;\r\n\t\t\t\t\t\t\t\t\t\tt = off.top - 5 + h;\r\n\t\t\t\t\t\t\t\t\t\tp = ins.get_parent(ref);\r\n\t\t\t\t\t\t\t\t\t\ti = ref.parent().index() + 1;\r\n\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t/*!\r\n\t\t\t\t\t\t\t\t// TODO: moving inside, but the node is not yet loaded?\r\n\t\t\t\t\t\t\t\t// the check will work anyway, as when moving the node will be loaded first and checked again\r\n\t\t\t\t\t\t\t\tif(v === 'i' && !ins.is_loaded(p)) { }\r\n\t\t\t\t\t\t\t\t*/\r\n\t\t\t\t\t\t\t\tok = true;\r\n\t\t\t\t\t\t\t\tfor(t1 = 0, t2 = data.data.nodes.length; t1 < t2; t1++) {\r\n\t\t\t\t\t\t\t\t\top = data.data.origin && (data.data.origin.settings.dnd.always_copy || (data.data.origin.settings.dnd.copy && (data.event.metaKey || data.event.ctrlKey))) ? \"copy_node\" : \"move_node\";\r\n\t\t\t\t\t\t\t\t\tps = i;\r\n\t\t\t\t\t\t\t\t\tif(op === \"move_node\" && v === 'a' && (data.data.origin && data.data.origin === ins) && p === ins.get_parent(data.data.nodes[t1])) {\r\n\t\t\t\t\t\t\t\t\t\tpr = ins.get_node(p);\r\n\t\t\t\t\t\t\t\t\t\tif(ps > $.inArray(data.data.nodes[t1], pr.children)) {\r\n\t\t\t\t\t\t\t\t\t\t\tps -= 1;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\tok = ok && ( (ins && ins.settings && ins.settings.dnd && ins.settings.dnd.check_while_dragging === false) || ins.check(op, (data.data.origin && data.data.origin !== ins ? data.data.origin.get_node(data.data.nodes[t1]) : data.data.nodes[t1]), p, ps, { 'dnd' : true, 'ref' : ins.get_node(ref.parent()), 'pos' : v, 'is_multi' : (data.data.origin && data.data.origin !== ins), 'is_foreign' : (!data.data.origin) }) );\r\n\t\t\t\t\t\t\t\t\tif(!ok) {\r\n\t\t\t\t\t\t\t\t\t\tif(ins && ins.last_error) { laster = ins.last_error(); }\r\n\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tif(ok) {\r\n\t\t\t\t\t\t\t\t\tif(v === 'i' && ref.parent().is('.jstree-closed') && ins.settings.dnd.open_timeout) {\r\n\t\t\t\t\t\t\t\t\t\topento = setTimeout((function (x, z) { return function () { x.open_node(z); }; }(ins, ref)), ins.settings.dnd.open_timeout);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\tlastmv = { 'ins' : ins, 'par' : p, 'pos' : v === 'i' && ip === 'last' && i === 0 && !ins.is_loaded(tm) ? 'last' : i };\r\n\t\t\t\t\t\t\t\t\tmarker.css({ 'left' : l + 'px', 'top' : t + 'px' }).show();\r\n\t\t\t\t\t\t\t\t\tdata.helper.find('.jstree-icon:eq(0)').removeClass('jstree-er').addClass('jstree-ok');\r\n\t\t\t\t\t\t\t\t\tlaster = {};\r\n\t\t\t\t\t\t\t\t\to = true;\r\n\t\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\tif(o === true) { return; }\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tlastmv = false;\r\n\t\t\t\tdata.helper.find('.jstree-icon').removeClass('jstree-ok').addClass('jstree-er');\r\n\t\t\t\tmarker.hide();\r\n\t\t\t})\r\n\t\t\t.bind('dnd_scroll.vakata', function (e, data) {\r\n\t\t\t\tif(!data.data.jstree) { return; }\r\n\t\t\t\tmarker.hide();\r\n\t\t\t\tlastmv = false;\r\n\t\t\t\tdata.helper.find('.jstree-icon:eq(0)').removeClass('jstree-ok').addClass('jstree-er');\r\n\t\t\t})\r\n\t\t\t.bind('dnd_stop.vakata', function (e, data) {\r\n\t\t\t\tif(opento) { clearTimeout(opento); }\r\n\t\t\t\tif(!data.data.jstree) { return; }\r\n\t\t\t\tmarker.hide();\r\n\t\t\t\tvar i, j, nodes = [];\r\n\t\t\t\tif(lastmv) {\r\n\t\t\t\t\tfor(i = 0, j = data.data.nodes.length; i < j; i++) {\r\n\t\t\t\t\t\tnodes[i] = data.data.origin ? data.data.origin.get_node(data.data.nodes[i]) : data.data.nodes[i];\r\n\t\t\t\t\t\tif(data.data.origin) {\r\n\t\t\t\t\t\t\tnodes[i].instance = data.data.origin;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tlastmv.ins[ data.data.origin && (data.data.origin.settings.dnd.always_copy || (data.data.origin.settings.dnd.copy && (data.event.metaKey || data.event.ctrlKey))) ? 'copy_node' : 'move_node' ](nodes, lastmv.par, lastmv.pos);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\ti = $(data.event.target).closest('.jstree');\r\n\t\t\t\t\tif(i.length && laster && laster.error && laster.error === 'check') {\r\n\t\t\t\t\t\ti = i.jstree(true);\r\n\t\t\t\t\t\tif(i) {\r\n\t\t\t\t\t\t\ti.settings.core.error.call(this, laster);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t.bind('keyup keydown', function (e, data) {\r\n\t\t\t\tdata = $.vakata.dnd._get();\r\n\t\t\t\tif(data.data && data.data.jstree) {\r\n\t\t\t\t\tdata.helper.find('.jstree-copy:eq(0)')[ data.data.origin && (data.data.origin.settings.dnd.always_copy || (data.data.origin.settings.dnd.copy && (e.metaKey || e.ctrlKey))) ? 'show' : 'hide' ]();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t});\r\n\r\n\t// helpers\r\n\t(function ($) {\r\n\t\t// private variable\r\n\t\tvar vakata_dnd = {\r\n\t\t\telement\t: false,\r\n\t\t\tis_down\t: false,\r\n\t\t\tis_drag\t: false,\r\n\t\t\thelper\t: false,\r\n\t\t\thelper_w: 0,\r\n\t\t\tdata\t: false,\r\n\t\t\tinit_x\t: 0,\r\n\t\t\tinit_y\t: 0,\r\n\t\t\tscroll_l: 0,\r\n\t\t\tscroll_t: 0,\r\n\t\t\tscroll_e: false,\r\n\t\t\tscroll_i: false\r\n\t\t};\r\n\t\t$.vakata.dnd = {\r\n\t\t\tsettings : {\r\n\t\t\t\tscroll_speed\t\t: 10,\r\n\t\t\t\tscroll_proximity\t: 20,\r\n\t\t\t\thelper_left\t\t\t: 5,\r\n\t\t\t\thelper_top\t\t\t: 10,\r\n\t\t\t\tthreshold\t\t\t: 5\r\n\t\t\t},\r\n\t\t\t_trigger : function (event_name, e) {\r\n\t\t\t\tvar data = $.vakata.dnd._get();\r\n\t\t\t\tdata.event = e;\r\n\t\t\t\t$(document).triggerHandler(\"dnd_\" + event_name + \".vakata\", data);\r\n\t\t\t},\r\n\t\t\t_get : function () {\r\n\t\t\t\treturn {\r\n\t\t\t\t\t\"data\"\t\t: vakata_dnd.data,\r\n\t\t\t\t\t\"element\"\t: vakata_dnd.element,\r\n\t\t\t\t\t\"helper\"\t: vakata_dnd.helper\r\n\t\t\t\t};\r\n\t\t\t},\r\n\t\t\t_clean : function () {\r\n\t\t\t\tif(vakata_dnd.helper) { vakata_dnd.helper.remove(); }\r\n\t\t\t\tif(vakata_dnd.scroll_i) { clearInterval(vakata_dnd.scroll_i); vakata_dnd.scroll_i = false; }\r\n\t\t\t\tvakata_dnd = {\r\n\t\t\t\t\telement\t: false,\r\n\t\t\t\t\tis_down\t: false,\r\n\t\t\t\t\tis_drag\t: false,\r\n\t\t\t\t\thelper\t: false,\r\n\t\t\t\t\thelper_w: 0,\r\n\t\t\t\t\tdata\t: false,\r\n\t\t\t\t\tinit_x\t: 0,\r\n\t\t\t\t\tinit_y\t: 0,\r\n\t\t\t\t\tscroll_l: 0,\r\n\t\t\t\t\tscroll_t: 0,\r\n\t\t\t\t\tscroll_e: false,\r\n\t\t\t\t\tscroll_i: false\r\n\t\t\t\t};\r\n\t\t\t\t$(document).off(\"mousemove touchmove\", $.vakata.dnd.drag);\r\n\t\t\t\t$(document).off(\"mouseup touchend\", $.vakata.dnd.stop);\r\n\t\t\t},\r\n\t\t\t_scroll : function (init_only) {\r\n\t\t\t\tif(!vakata_dnd.scroll_e || (!vakata_dnd.scroll_l && !vakata_dnd.scroll_t)) {\r\n\t\t\t\t\tif(vakata_dnd.scroll_i) { clearInterval(vakata_dnd.scroll_i); vakata_dnd.scroll_i = false; }\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t\tif(!vakata_dnd.scroll_i) {\r\n\t\t\t\t\tvakata_dnd.scroll_i = setInterval($.vakata.dnd._scroll, 100);\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t\tif(init_only === true) { return false; }\r\n\r\n\t\t\t\tvar i = vakata_dnd.scroll_e.scrollTop(),\r\n\t\t\t\t\tj = vakata_dnd.scroll_e.scrollLeft();\r\n\t\t\t\tvakata_dnd.scroll_e.scrollTop(i + vakata_dnd.scroll_t * $.vakata.dnd.settings.scroll_speed);\r\n\t\t\t\tvakata_dnd.scroll_e.scrollLeft(j + vakata_dnd.scroll_l * $.vakata.dnd.settings.scroll_speed);\r\n\t\t\t\tif(i !== vakata_dnd.scroll_e.scrollTop() || j !== vakata_dnd.scroll_e.scrollLeft()) {\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * triggered on the document when a drag causes an element to scroll\r\n\t\t\t\t\t * @event\r\n\t\t\t\t\t * @plugin dnd\r\n\t\t\t\t\t * @name dnd_scroll.vakata\r\n\t\t\t\t\t * @param {Mixed} data any data supplied with the call to $.vakata.dnd.start\r\n\t\t\t\t\t * @param {DOM} element the DOM element being dragged\r\n\t\t\t\t\t * @param {jQuery} helper the helper shown next to the mouse\r\n\t\t\t\t\t * @param {jQuery} event the element that is scrolling\r\n\t\t\t\t\t */\r\n\t\t\t\t\t$.vakata.dnd._trigger(\"scroll\", vakata_dnd.scroll_e);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tstart : function (e, data, html) {\r\n\t\t\t\tif(e.type === \"touchstart\" && e.originalEvent && e.originalEvent.changedTouches && e.originalEvent.changedTouches[0]) {\r\n\t\t\t\t\te.pageX = e.originalEvent.changedTouches[0].pageX;\r\n\t\t\t\t\te.pageY = e.originalEvent.changedTouches[0].pageY;\r\n\t\t\t\t\te.target = document.elementFromPoint(e.originalEvent.changedTouches[0].pageX - window.pageXOffset, e.originalEvent.changedTouches[0].pageY - window.pageYOffset);\r\n\t\t\t\t}\r\n\t\t\t\tif(vakata_dnd.is_drag) { $.vakata.dnd.stop({}); }\r\n\t\t\t\ttry {\r\n\t\t\t\t\te.currentTarget.unselectable = \"on\";\r\n\t\t\t\t\te.currentTarget.onselectstart = function() { return false; };\r\n\t\t\t\t\tif(e.currentTarget.style) { e.currentTarget.style.MozUserSelect = \"none\"; }\r\n\t\t\t\t} catch(ignore) { }\r\n\t\t\t\tvakata_dnd.init_x\t= e.pageX;\r\n\t\t\t\tvakata_dnd.init_y\t= e.pageY;\r\n\t\t\t\tvakata_dnd.data\t\t= data;\r\n\t\t\t\tvakata_dnd.is_down\t= true;\r\n\t\t\t\tvakata_dnd.element\t= e.currentTarget;\r\n\t\t\t\tif(html !== false) {\r\n\t\t\t\t\tvakata_dnd.helper = $(\"
      \").html(html).css({\r\n\t\t\t\t\t\t\"display\"\t\t: \"block\",\r\n\t\t\t\t\t\t\"margin\"\t\t: \"0\",\r\n\t\t\t\t\t\t\"padding\"\t\t: \"0\",\r\n\t\t\t\t\t\t\"position\"\t\t: \"absolute\",\r\n\t\t\t\t\t\t\"top\"\t\t\t: \"-2000px\",\r\n\t\t\t\t\t\t\"lineHeight\"\t: \"16px\",\r\n\t\t\t\t\t\t\"zIndex\"\t\t: \"10000\"\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\t$(document).bind(\"mousemove touchmove\", $.vakata.dnd.drag);\r\n\t\t\t\t$(document).bind(\"mouseup touchend\", $.vakata.dnd.stop);\r\n\t\t\t\treturn false;\r\n\t\t\t},\r\n\t\t\tdrag : function (e) {\r\n\t\t\t\tif(e.type === \"touchmove\" && e.originalEvent && e.originalEvent.changedTouches && e.originalEvent.changedTouches[0]) {\r\n\t\t\t\t\te.pageX = e.originalEvent.changedTouches[0].pageX;\r\n\t\t\t\t\te.pageY = e.originalEvent.changedTouches[0].pageY;\r\n\t\t\t\t\te.target = document.elementFromPoint(e.originalEvent.changedTouches[0].pageX - window.pageXOffset, e.originalEvent.changedTouches[0].pageY - window.pageYOffset);\r\n\t\t\t\t}\r\n\t\t\t\tif(!vakata_dnd.is_down) { return; }\r\n\t\t\t\tif(!vakata_dnd.is_drag) {\r\n\t\t\t\t\tif(\r\n\t\t\t\t\t\tMath.abs(e.pageX - vakata_dnd.init_x) > $.vakata.dnd.settings.threshold ||\r\n\t\t\t\t\t\tMath.abs(e.pageY - vakata_dnd.init_y) > $.vakata.dnd.settings.threshold\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\tif(vakata_dnd.helper) {\r\n\t\t\t\t\t\t\tvakata_dnd.helper.appendTo(\"body\");\r\n\t\t\t\t\t\t\tvakata_dnd.helper_w = vakata_dnd.helper.outerWidth();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tvakata_dnd.is_drag = true;\r\n\t\t\t\t\t\t/**\r\n\t\t\t\t\t\t * triggered on the document when a drag starts\r\n\t\t\t\t\t\t * @event\r\n\t\t\t\t\t\t * @plugin dnd\r\n\t\t\t\t\t\t * @name dnd_start.vakata\r\n\t\t\t\t\t\t * @param {Mixed} data any data supplied with the call to $.vakata.dnd.start\r\n\t\t\t\t\t\t * @param {DOM} element the DOM element being dragged\r\n\t\t\t\t\t\t * @param {jQuery} helper the helper shown next to the mouse\r\n\t\t\t\t\t\t * @param {Object} event the event that caused the start (probably mousemove)\r\n\t\t\t\t\t\t */\r\n\t\t\t\t\t\t$.vakata.dnd._trigger(\"start\", e);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse { return; }\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar d = false, w = false,\r\n\t\t\t\t\tdh = false, wh = false,\r\n\t\t\t\t\tdw = false, ww = false,\r\n\t\t\t\t\tdt = false, dl = false,\r\n\t\t\t\t\tht = false, hl = false;\r\n\r\n\t\t\t\tvakata_dnd.scroll_t = 0;\r\n\t\t\t\tvakata_dnd.scroll_l = 0;\r\n\t\t\t\tvakata_dnd.scroll_e = false;\r\n\t\t\t\t$($(e.target).parentsUntil(\"body\").addBack().get().reverse())\r\n\t\t\t\t\t.filter(function () {\r\n\t\t\t\t\t\treturn\t(/^auto|scroll$/).test($(this).css(\"overflow\")) &&\r\n\t\t\t\t\t\t\t\t(this.scrollHeight > this.offsetHeight || this.scrollWidth > this.offsetWidth);\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.each(function () {\r\n\t\t\t\t\t\tvar t = $(this), o = t.offset();\r\n\t\t\t\t\t\tif(this.scrollHeight > this.offsetHeight) {\r\n\t\t\t\t\t\t\tif(o.top + t.height() - e.pageY < $.vakata.dnd.settings.scroll_proximity)\t{ vakata_dnd.scroll_t = 1; }\r\n\t\t\t\t\t\t\tif(e.pageY - o.top < $.vakata.dnd.settings.scroll_proximity)\t\t\t\t{ vakata_dnd.scroll_t = -1; }\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif(this.scrollWidth > this.offsetWidth) {\r\n\t\t\t\t\t\t\tif(o.left + t.width() - e.pageX < $.vakata.dnd.settings.scroll_proximity)\t{ vakata_dnd.scroll_l = 1; }\r\n\t\t\t\t\t\t\tif(e.pageX - o.left < $.vakata.dnd.settings.scroll_proximity)\t\t\t\t{ vakata_dnd.scroll_l = -1; }\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif(vakata_dnd.scroll_t || vakata_dnd.scroll_l) {\r\n\t\t\t\t\t\t\tvakata_dnd.scroll_e = $(this);\r\n\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\tif(!vakata_dnd.scroll_e) {\r\n\t\t\t\t\td = $(document); w = $(window);\r\n\t\t\t\t\tdh = d.height(); wh = w.height();\r\n\t\t\t\t\tdw = d.width(); ww = w.width();\r\n\t\t\t\t\tdt = d.scrollTop(); dl = d.scrollLeft();\r\n\t\t\t\t\tif(dh > wh && e.pageY - dt < $.vakata.dnd.settings.scroll_proximity)\t\t{ vakata_dnd.scroll_t = -1; }\r\n\t\t\t\t\tif(dh > wh && wh - (e.pageY - dt) < $.vakata.dnd.settings.scroll_proximity)\t{ vakata_dnd.scroll_t = 1; }\r\n\t\t\t\t\tif(dw > ww && e.pageX - dl < $.vakata.dnd.settings.scroll_proximity)\t\t{ vakata_dnd.scroll_l = -1; }\r\n\t\t\t\t\tif(dw > ww && ww - (e.pageX - dl) < $.vakata.dnd.settings.scroll_proximity)\t{ vakata_dnd.scroll_l = 1; }\r\n\t\t\t\t\tif(vakata_dnd.scroll_t || vakata_dnd.scroll_l) {\r\n\t\t\t\t\t\tvakata_dnd.scroll_e = d;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif(vakata_dnd.scroll_e) { $.vakata.dnd._scroll(true); }\r\n\r\n\t\t\t\tif(vakata_dnd.helper) {\r\n\t\t\t\t\tht = parseInt(e.pageY + $.vakata.dnd.settings.helper_top, 10);\r\n\t\t\t\t\thl = parseInt(e.pageX + $.vakata.dnd.settings.helper_left, 10);\r\n\t\t\t\t\tif(dh && ht + 25 > dh) { ht = dh - 50; }\r\n\t\t\t\t\tif(dw && hl + vakata_dnd.helper_w > dw) { hl = dw - (vakata_dnd.helper_w + 2); }\r\n\t\t\t\t\tvakata_dnd.helper.css({\r\n\t\t\t\t\t\tleft\t: hl + \"px\",\r\n\t\t\t\t\t\ttop\t\t: ht + \"px\"\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\t/**\r\n\t\t\t\t * triggered on the document when a drag is in progress\r\n\t\t\t\t * @event\r\n\t\t\t\t * @plugin dnd\r\n\t\t\t\t * @name dnd_move.vakata\r\n\t\t\t\t * @param {Mixed} data any data supplied with the call to $.vakata.dnd.start\r\n\t\t\t\t * @param {DOM} element the DOM element being dragged\r\n\t\t\t\t * @param {jQuery} helper the helper shown next to the mouse\r\n\t\t\t\t * @param {Object} event the event that caused this to trigger (most likely mousemove)\r\n\t\t\t\t */\r\n\t\t\t\t$.vakata.dnd._trigger(\"move\", e);\r\n\t\t\t},\r\n\t\t\tstop : function (e) {\r\n\t\t\t\tif(e.type === \"touchend\" && e.originalEvent && e.originalEvent.changedTouches && e.originalEvent.changedTouches[0]) {\r\n\t\t\t\t\te.pageX = e.originalEvent.changedTouches[0].pageX;\r\n\t\t\t\t\te.pageY = e.originalEvent.changedTouches[0].pageY;\r\n\t\t\t\t\te.target = document.elementFromPoint(e.originalEvent.changedTouches[0].pageX - window.pageXOffset, e.originalEvent.changedTouches[0].pageY - window.pageYOffset);\r\n\t\t\t\t}\r\n\t\t\t\tif(vakata_dnd.is_drag) {\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * triggered on the document when a drag stops (the dragged element is dropped)\r\n\t\t\t\t\t * @event\r\n\t\t\t\t\t * @plugin dnd\r\n\t\t\t\t\t * @name dnd_stop.vakata\r\n\t\t\t\t\t * @param {Mixed} data any data supplied with the call to $.vakata.dnd.start\r\n\t\t\t\t\t * @param {DOM} element the DOM element being dragged\r\n\t\t\t\t\t * @param {jQuery} helper the helper shown next to the mouse\r\n\t\t\t\t\t * @param {Object} event the event that caused the stop\r\n\t\t\t\t\t */\r\n\t\t\t\t\t$.vakata.dnd._trigger(\"stop\", e);\r\n\t\t\t\t}\r\n\t\t\t\t$.vakata.dnd._clean();\r\n\t\t\t}\r\n\t\t};\r\n\t}(jQuery));\r\n\r\n\t// include the dnd plugin by default\r\n\t// $.jstree.defaults.plugins.push(\"dnd\");\r\n\r\n\r\n/**\r\n * ### Search plugin\r\n *\r\n * Adds search functionality to jsTree.\r\n */\r\n\r\n\t/**\r\n\t * stores all defaults for the search plugin\r\n\t * @name $.jstree.defaults.search\r\n\t * @plugin search\r\n\t */\r\n\t$.jstree.defaults.search = {\r\n\t\t/**\r\n\t\t * a jQuery-like AJAX config, which jstree uses if a server should be queried for results. \r\n\t\t * \r\n\t\t * A `str` (which is the search string) parameter will be added with the request. The expected result is a JSON array with nodes that need to be opened so that matching nodes will be revealed.\r\n\t\t * Leave this setting as `false` to not query the server. You can also set this to a function, which will be invoked in the instance's scope and receive 2 parameters - the search string and the callback to call with the array of nodes to load.\r\n\t\t * @name $.jstree.defaults.search.ajax\r\n\t\t * @plugin search\r\n\t\t */\r\n\t\tajax : false,\r\n\t\t/**\r\n\t\t * Indicates if the search should be fuzzy or not (should `chnd3` match `child node 3`). Default is `true`.\r\n\t\t * @name $.jstree.defaults.search.fuzzy\r\n\t\t * @plugin search\r\n\t\t */\r\n\t\tfuzzy : true,\r\n\t\t/**\r\n\t\t * Indicates if the search should be case sensitive. Default is `false`.\r\n\t\t * @name $.jstree.defaults.search.case_sensitive\r\n\t\t * @plugin search\r\n\t\t */\r\n\t\tcase_sensitive : false,\r\n\t\t/**\r\n\t\t * Indicates if the tree should be filtered to show only matching nodes (keep in mind this can be a heavy on large trees in old browsers). Default is `false`.\r\n\t\t * @name $.jstree.defaults.search.show_only_matches\r\n\t\t * @plugin search\r\n\t\t */\r\n\t\tshow_only_matches : false,\r\n\t\t/**\r\n\t\t * Indicates if all nodes opened to reveal the search result, should be closed when the search is cleared or a new search is performed. Default is `true`.\r\n\t\t * @name $.jstree.defaults.search.close_opened_onclear\r\n\t\t * @plugin search\r\n\t\t */\r\n\t\tclose_opened_onclear : true,\r\n\t\t/**\r\n\t\t * Indicates if only leaf nodes should be included in search results. Default is `false`.\r\n\t\t * @name $.jstree.defaults.search.search_leaves_only\r\n\t\t * @plugin search\r\n\t\t */\r\n\t\tsearch_leaves_only : false\r\n\t};\r\n\r\n\t$.jstree.plugins.search = function (options, parent) {\r\n\t\tthis.bind = function () {\r\n\t\t\tparent.bind.call(this);\r\n\r\n\t\t\tthis._data.search.str = \"\";\r\n\t\t\tthis._data.search.dom = $();\r\n\t\t\tthis._data.search.res = [];\r\n\t\t\tthis._data.search.opn = [];\r\n\r\n\t\t\tthis.element.on('before_open.jstree', $.proxy(function (e, data) {\r\n\t\t\t\tvar i, j, f, r = this._data.search.res, s = [], o = $();\r\n\t\t\t\tif(r && r.length) {\r\n\t\t\t\t\tthis._data.search.dom = $(this.element[0].querySelectorAll('#' + $.map(r, function (v) { return \"0123456789\".indexOf(v[0]) !== -1 ? '\\\\3' + v[0] + ' ' + v.substr(1).replace($.jstree.idregex,'\\\\$&') : v.replace($.jstree.idregex,'\\\\$&'); }).join(', #')));\r\n\t\t\t\t\tthis._data.search.dom.children(\".jstree-anchor\").addClass('jstree-search');\r\n\t\t\t\t\tif(this.settings.search.show_only_matches && this._data.search.res.length) {\r\n\t\t\t\t\t\tfor(i = 0, j = r.length; i < j; i++) {\r\n\t\t\t\t\t\t\ts = s.concat(this.get_node(r[i]).parents);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\ts = $.vakata.array_remove_item($.vakata.array_unique(s),'#');\r\n\t\t\t\t\t\to = s.length ? $(this.element[0].querySelectorAll('#' + $.map(s, function (v) { return \"0123456789\".indexOf(v[0]) !== -1 ? '\\\\3' + v[0] + ' ' + v.substr(1).replace($.jstree.idregex,'\\\\$&') : v.replace($.jstree.idregex,'\\\\$&'); }).join(', #'))) : $();\r\n\r\n\t\t\t\t\t\tthis.element.find(\".jstree-node\").hide().filter('.jstree-last').filter(function() { return this.nextSibling; }).removeClass('jstree-last');\r\n\t\t\t\t\t\to = o.add(this._data.search.dom);\r\n\t\t\t\t\t\to.parentsUntil(\".jstree\").addBack().show()\r\n\t\t\t\t\t\t\t.filter(\".jstree-children\").each(function () { $(this).children(\".jstree-node:visible\").eq(-1).addClass(\"jstree-last\"); });\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}, this));\r\n\t\t\tif(this.settings.search.show_only_matches) {\r\n\t\t\t\tthis.element\r\n\t\t\t\t\t.on(\"search.jstree\", function (e, data) {\r\n\t\t\t\t\t\tif(data.nodes.length) {\r\n\t\t\t\t\t\t\t$(this).find(\".jstree-node\").hide().filter('.jstree-last').filter(function() { return this.nextSibling; }).removeClass('jstree-last');\r\n\t\t\t\t\t\t\tdata.nodes.parentsUntil(\".jstree\").addBack().show()\r\n\t\t\t\t\t\t\t\t.filter(\".jstree-children\").each(function () { $(this).children(\".jstree-node:visible\").eq(-1).addClass(\"jstree-last\"); });\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.on(\"clear_search.jstree\", function (e, data) {\r\n\t\t\t\t\t\tif(data.nodes.length) {\r\n\t\t\t\t\t\t\t$(this).find(\".jstree-node\").css(\"display\",\"\").filter('.jstree-last').filter(function() { return this.nextSibling; }).removeClass('jstree-last');\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t}\r\n\t\t};\r\n\t\t/**\r\n\t\t * used to search the tree nodes for a given string\r\n\t\t * @name search(str [, skip_async])\r\n\t\t * @param {String} str the search string\r\n\t\t * @param {Boolean} skip_async if set to true server will not be queried even if configured\r\n\t\t * @plugin search\r\n\t\t * @trigger search.jstree\r\n\t\t */\r\n\t\tthis.search = function (str, skip_async) {\r\n\t\t\tif(str === false || $.trim(str) === \"\") {\r\n\t\t\t\treturn this.clear_search();\r\n\t\t\t}\r\n\t\t\tvar s = this.settings.search,\r\n\t\t\t\ta = s.ajax ? s.ajax : false,\r\n\t\t\t\tf = null,\r\n\t\t\t\tr = [],\r\n\t\t\t\tp = [], i, j;\r\n\t\t\tif(this._data.search.res.length) {\r\n\t\t\t\tthis.clear_search();\r\n\t\t\t}\r\n\t\t\tif(!skip_async && a !== false) {\r\n\t\t\t\tif($.isFunction(a)) {\r\n\t\t\t\t\treturn a.call(this, str, $.proxy(function (d) {\r\n\t\t\t\t\t\t\tif(d && d.d) { d = d.d; }\r\n\t\t\t\t\t\t\tthis._load_nodes(!$.isArray(d) ? [] : d, function () {\r\n\t\t\t\t\t\t\t\tthis.search(str, true);\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}, this));\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\ta = $.extend({}, a);\r\n\t\t\t\t\tif(!a.data) { a.data = {}; }\r\n\t\t\t\t\ta.data.str = str;\r\n\t\t\t\t\treturn $.ajax(a)\r\n\t\t\t\t\t\t.fail($.proxy(function () {\r\n\t\t\t\t\t\t\tthis._data.core.last_error = { 'error' : 'ajax', 'plugin' : 'search', 'id' : 'search_01', 'reason' : 'Could not load search parents', 'data' : JSON.stringify(a) };\r\n\t\t\t\t\t\t\tthis.settings.core.error.call(this, this._data.core.last_error);\r\n\t\t\t\t\t\t}, this))\r\n\t\t\t\t\t\t.done($.proxy(function (d) {\r\n\t\t\t\t\t\t\tif(d && d.d) { d = d.d; }\r\n\t\t\t\t\t\t\tthis._load_nodes(!$.isArray(d) ? [] : d, function () {\r\n\t\t\t\t\t\t\t\tthis.search(str, true);\r\n\t\t\t\t\t\t\t}, true);\r\n\t\t\t\t\t\t}, this));\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tthis._data.search.str = str;\r\n\t\t\tthis._data.search.dom = $();\r\n\t\t\tthis._data.search.res = [];\r\n\t\t\tthis._data.search.opn = [];\r\n\r\n\t\t\tf = new $.vakata.search(str, true, { caseSensitive : s.case_sensitive, fuzzy : s.fuzzy });\r\n\r\n\t\t\t$.each(this._model.data, function (i, v) {\r\n\t\t\t\tif(v.text && f.search(v.text).isMatch && (!s.search_leaves_only || (v.state.loaded && v.children.length === 0)) ) {\r\n\t\t\t\t\tr.push(i);\r\n\t\t\t\t\tp = p.concat(v.parents);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tif(r.length) {\r\n\t\t\t\tp = $.vakata.array_unique(p);\r\n\t\t\t\tthis._search_open(p);\r\n\t\t\t\tthis._data.search.dom = $(this.element[0].querySelectorAll('#' + $.map(r, function (v) { return \"0123456789\".indexOf(v[0]) !== -1 ? '\\\\3' + v[0] + ' ' + v.substr(1).replace($.jstree.idregex,'\\\\$&') : v.replace($.jstree.idregex,'\\\\$&'); }).join(', #')));\r\n\t\t\t\tthis._data.search.res = r;\r\n\t\t\t\tthis._data.search.dom.children(\".jstree-anchor\").addClass('jstree-search');\r\n\t\t\t}\r\n\t\t\t/**\r\n\t\t\t * triggered after search is complete\r\n\t\t\t * @event\r\n\t\t\t * @name search.jstree\r\n\t\t\t * @param {jQuery} nodes a jQuery collection of matching nodes\r\n\t\t\t * @param {String} str the search string\r\n\t\t\t * @param {Array} res a collection of objects represeing the matching nodes\r\n\t\t\t * @plugin search\r\n\t\t\t */\r\n\t\t\tthis.trigger('search', { nodes : this._data.search.dom, str : str, res : this._data.search.res });\r\n\t\t};\r\n\t\t/**\r\n\t\t * used to clear the last search (removes classes and shows all nodes if filtering is on)\r\n\t\t * @name clear_search()\r\n\t\t * @plugin search\r\n\t\t * @trigger clear_search.jstree\r\n\t\t */\r\n\t\tthis.clear_search = function () {\r\n\t\t\tthis._data.search.dom.children(\".jstree-anchor\").removeClass(\"jstree-search\");\r\n\t\t\tif(this.settings.search.close_opened_onclear) {\r\n\t\t\t\tthis.close_node(this._data.search.opn, 0);\r\n\t\t\t}\r\n\t\t\t/**\r\n\t\t\t * triggered after search is complete\r\n\t\t\t * @event\r\n\t\t\t * @name clear_search.jstree\r\n\t\t\t * @param {jQuery} nodes a jQuery collection of matching nodes (the result from the last search)\r\n\t\t\t * @param {String} str the search string (the last search string)\r\n\t\t\t * @param {Array} res a collection of objects represeing the matching nodes (the result from the last search)\r\n\t\t\t * @plugin search\r\n\t\t\t */\r\n\t\t\tthis.trigger('clear_search', { 'nodes' : this._data.search.dom, str : this._data.search.str, res : this._data.search.res });\r\n\t\t\tthis._data.search.str = \"\";\r\n\t\t\tthis._data.search.res = [];\r\n\t\t\tthis._data.search.opn = [];\r\n\t\t\tthis._data.search.dom = $();\r\n\t\t};\r\n\t\t/**\r\n\t\t * opens nodes that need to be opened to reveal the search results. Used only internally.\r\n\t\t * @private\r\n\t\t * @name _search_open(d)\r\n\t\t * @param {Array} d an array of node IDs\r\n\t\t * @plugin search\r\n\t\t */\r\n\t\tthis._search_open = function (d) {\r\n\t\t\tvar t = this;\r\n\t\t\t$.each(d.concat([]), function (i, v) {\r\n\t\t\t\tif(v === \"#\") { return true; }\r\n\t\t\t\ttry { v = $('#' + v.replace($.jstree.idregex,'\\\\$&'), t.element); } catch(ignore) { }\r\n\t\t\t\tif(v && v.length) {\r\n\t\t\t\t\tif(t.is_closed(v)) {\r\n\t\t\t\t\t\tt._data.search.opn.push(v[0].id);\r\n\t\t\t\t\t\tt.open_node(v, function () { t._search_open(d); }, 0);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t};\r\n\t};\r\n\r\n\t// helpers\r\n\t(function ($) {\r\n\t\t// from http://kiro.me/projects/fuse.html\r\n\t\t$.vakata.search = function(pattern, txt, options) {\r\n\t\t\toptions = options || {};\r\n\t\t\tif(options.fuzzy !== false) {\r\n\t\t\t\toptions.fuzzy = true;\r\n\t\t\t}\r\n\t\t\tpattern = options.caseSensitive ? pattern : pattern.toLowerCase();\r\n\t\t\tvar MATCH_LOCATION\t= options.location || 0,\r\n\t\t\t\tMATCH_DISTANCE\t= options.distance || 100,\r\n\t\t\t\tMATCH_THRESHOLD\t= options.threshold || 0.6,\r\n\t\t\t\tpatternLen = pattern.length,\r\n\t\t\t\tmatchmask, pattern_alphabet, match_bitapScore, search;\r\n\t\t\tif(patternLen > 32) {\r\n\t\t\t\toptions.fuzzy = false;\r\n\t\t\t}\r\n\t\t\tif(options.fuzzy) {\r\n\t\t\t\tmatchmask = 1 << (patternLen - 1);\r\n\t\t\t\tpattern_alphabet = (function () {\r\n\t\t\t\t\tvar mask = {},\r\n\t\t\t\t\t\ti = 0;\r\n\t\t\t\t\tfor (i = 0; i < patternLen; i++) {\r\n\t\t\t\t\t\tmask[pattern.charAt(i)] = 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tfor (i = 0; i < patternLen; i++) {\r\n\t\t\t\t\t\tmask[pattern.charAt(i)] |= 1 << (patternLen - i - 1);\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn mask;\r\n\t\t\t\t}());\r\n\t\t\t\tmatch_bitapScore = function (e, x) {\r\n\t\t\t\t\tvar accuracy = e / patternLen,\r\n\t\t\t\t\t\tproximity = Math.abs(MATCH_LOCATION - x);\r\n\t\t\t\t\tif(!MATCH_DISTANCE) {\r\n\t\t\t\t\t\treturn proximity ? 1.0 : accuracy;\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn accuracy + (proximity / MATCH_DISTANCE);\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t\tsearch = function (text) {\r\n\t\t\t\ttext = options.caseSensitive ? text : text.toLowerCase();\r\n\t\t\t\tif(pattern === text || text.indexOf(pattern) !== -1) {\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tisMatch: true,\r\n\t\t\t\t\t\tscore: 0\r\n\t\t\t\t\t};\r\n\t\t\t\t}\r\n\t\t\t\tif(!options.fuzzy) {\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tisMatch: false,\r\n\t\t\t\t\t\tscore: 1\r\n\t\t\t\t\t};\r\n\t\t\t\t}\r\n\t\t\t\tvar i, j,\r\n\t\t\t\t\ttextLen = text.length,\r\n\t\t\t\t\tscoreThreshold = MATCH_THRESHOLD,\r\n\t\t\t\t\tbestLoc = text.indexOf(pattern, MATCH_LOCATION),\r\n\t\t\t\t\tbinMin, binMid,\r\n\t\t\t\t\tbinMax = patternLen + textLen,\r\n\t\t\t\t\tlastRd, start, finish, rd, charMatch,\r\n\t\t\t\t\tscore = 1,\r\n\t\t\t\t\tlocations = [];\r\n\t\t\t\tif (bestLoc !== -1) {\r\n\t\t\t\t\tscoreThreshold = Math.min(match_bitapScore(0, bestLoc), scoreThreshold);\r\n\t\t\t\t\tbestLoc = text.lastIndexOf(pattern, MATCH_LOCATION + patternLen);\r\n\t\t\t\t\tif (bestLoc !== -1) {\r\n\t\t\t\t\t\tscoreThreshold = Math.min(match_bitapScore(0, bestLoc), scoreThreshold);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tbestLoc = -1;\r\n\t\t\t\tfor (i = 0; i < patternLen; i++) {\r\n\t\t\t\t\tbinMin = 0;\r\n\t\t\t\t\tbinMid = binMax;\r\n\t\t\t\t\twhile (binMin < binMid) {\r\n\t\t\t\t\t\tif (match_bitapScore(i, MATCH_LOCATION + binMid) <= scoreThreshold) {\r\n\t\t\t\t\t\t\tbinMin = binMid;\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tbinMax = binMid;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tbinMid = Math.floor((binMax - binMin) / 2 + binMin);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbinMax = binMid;\r\n\t\t\t\t\tstart = Math.max(1, MATCH_LOCATION - binMid + 1);\r\n\t\t\t\t\tfinish = Math.min(MATCH_LOCATION + binMid, textLen) + patternLen;\r\n\t\t\t\t\trd = new Array(finish + 2);\r\n\t\t\t\t\trd[finish + 1] = (1 << i) - 1;\r\n\t\t\t\t\tfor (j = finish; j >= start; j--) {\r\n\t\t\t\t\t\tcharMatch = pattern_alphabet[text.charAt(j - 1)];\r\n\t\t\t\t\t\tif (i === 0) {\r\n\t\t\t\t\t\t\trd[j] = ((rd[j + 1] << 1) | 1) & charMatch;\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\trd[j] = ((rd[j + 1] << 1) | 1) & charMatch | (((lastRd[j + 1] | lastRd[j]) << 1) | 1) | lastRd[j + 1];\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (rd[j] & matchmask) {\r\n\t\t\t\t\t\t\tscore = match_bitapScore(i, j - 1);\r\n\t\t\t\t\t\t\tif (score <= scoreThreshold) {\r\n\t\t\t\t\t\t\t\tscoreThreshold = score;\r\n\t\t\t\t\t\t\t\tbestLoc = j - 1;\r\n\t\t\t\t\t\t\t\tlocations.push(bestLoc);\r\n\t\t\t\t\t\t\t\tif (bestLoc > MATCH_LOCATION) {\r\n\t\t\t\t\t\t\t\t\tstart = Math.max(1, 2 * MATCH_LOCATION - bestLoc);\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (match_bitapScore(i + 1, MATCH_LOCATION) > scoreThreshold) {\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tlastRd = rd;\r\n\t\t\t\t}\r\n\t\t\t\treturn {\r\n\t\t\t\t\tisMatch: bestLoc >= 0,\r\n\t\t\t\t\tscore: score\r\n\t\t\t\t};\r\n\t\t\t};\r\n\t\t\treturn txt === true ? { 'search' : search } : search(txt);\r\n\t\t};\r\n\t}(jQuery));\r\n\r\n\t// include the search plugin by default\r\n\t// $.jstree.defaults.plugins.push(\"search\");\r\n\r\n/**\r\n * ### Sort plugin\r\n *\r\n * Autmatically sorts all siblings in the tree according to a sorting function.\r\n */\r\n\r\n\t/**\r\n\t * the settings function used to sort the nodes.\r\n\t * It is executed in the tree's context, accepts two nodes as arguments and should return `1` or `-1`.\r\n\t * @name $.jstree.defaults.sort\r\n\t * @plugin sort\r\n\t */\r\n\t$.jstree.defaults.sort = function (a, b) {\r\n\t\t//return this.get_type(a) === this.get_type(b) ? (this.get_text(a) > this.get_text(b) ? 1 : -1) : this.get_type(a) >= this.get_type(b);\r\n\t\treturn this.get_text(a) > this.get_text(b) ? 1 : -1;\r\n\t};\r\n\t$.jstree.plugins.sort = function (options, parent) {\r\n\t\tthis.bind = function () {\r\n\t\t\tparent.bind.call(this);\r\n\t\t\tthis.element\r\n\t\t\t\t.on(\"model.jstree\", $.proxy(function (e, data) {\r\n\t\t\t\t\t\tthis.sort(data.parent, true);\r\n\t\t\t\t\t}, this))\r\n\t\t\t\t.on(\"rename_node.jstree create_node.jstree\", $.proxy(function (e, data) {\r\n\t\t\t\t\t\tthis.sort(data.parent || data.node.parent, false);\r\n\t\t\t\t\t\tthis.redraw_node(data.parent || data.node.parent, true);\r\n\t\t\t\t\t}, this))\r\n\t\t\t\t.on(\"move_node.jstree copy_node.jstree\", $.proxy(function (e, data) {\r\n\t\t\t\t\t\tthis.sort(data.parent, false);\r\n\t\t\t\t\t\tthis.redraw_node(data.parent, true);\r\n\t\t\t\t\t}, this));\r\n\t\t};\r\n\t\t/**\r\n\t\t * used to sort a node's children\r\n\t\t * @private\r\n\t\t * @name sort(obj [, deep])\r\n\t\t * @param {mixed} obj the node\r\n\t\t * @param {Boolean} deep if set to `true` nodes are sorted recursively.\r\n\t\t * @plugin sort\r\n\t\t * @trigger search.jstree\r\n\t\t */\r\n\t\tthis.sort = function (obj, deep) {\r\n\t\t\tvar i, j;\r\n\t\t\tobj = this.get_node(obj);\r\n\t\t\tif(obj && obj.children && obj.children.length) {\r\n\t\t\t\tobj.children.sort($.proxy(this.settings.sort, this));\r\n\t\t\t\tif(deep) {\r\n\t\t\t\t\tfor(i = 0, j = obj.children_d.length; i < j; i++) {\r\n\t\t\t\t\t\tthis.sort(obj.children_d[i], false);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\t};\r\n\r\n\t// include the sort plugin by default\r\n\t// $.jstree.defaults.plugins.push(\"sort\");\r\n\r\n/**\r\n * ### State plugin\r\n *\r\n * Saves the state of the tree (selected nodes, opened nodes) on the user's computer using available options (localStorage, cookies, etc)\r\n */\r\n\r\n\tvar to = false;\r\n\t/**\r\n\t * stores all defaults for the state plugin\r\n\t * @name $.jstree.defaults.state\r\n\t * @plugin state\r\n\t */\r\n\t$.jstree.defaults.state = {\r\n\t\t/**\r\n\t\t * A string for the key to use when saving the current tree (change if using multiple trees in your project). Defaults to `jstree`.\r\n\t\t * @name $.jstree.defaults.state.key\r\n\t\t * @plugin state\r\n\t\t */\r\n\t\tkey\t\t: 'jstree',\r\n\t\t/**\r\n\t\t * A space separated list of events that trigger a state save. Defaults to `changed.jstree open_node.jstree close_node.jstree`.\r\n\t\t * @name $.jstree.defaults.state.events\r\n\t\t * @plugin state\r\n\t\t */\r\n\t\tevents\t: 'changed.jstree open_node.jstree close_node.jstree',\r\n\t\t/**\r\n\t\t * Time in milliseconds after which the state will expire. Defaults to 'false' meaning - no expire.\r\n\t\t * @name $.jstree.defaults.state.ttl\r\n\t\t * @plugin state\r\n\t\t */\r\n\t\tttl\t\t: false,\r\n\t\t/**\r\n\t\t * A function that will be executed prior to restoring state with one argument - the state object. Can be used to clear unwanted parts of the state.\r\n\t\t * @name $.jstree.defaults.state.filter\r\n\t\t * @plugin state\r\n\t\t */\r\n\t\tfilter\t: false\r\n\t};\r\n\t$.jstree.plugins.state = function (options, parent) {\r\n\t\tthis.bind = function () {\r\n\t\t\tparent.bind.call(this);\r\n\t\t\tvar bind = $.proxy(function () {\r\n\t\t\t\tthis.element.on(this.settings.state.events, $.proxy(function () {\r\n\t\t\t\t\tif(to) { clearTimeout(to); }\r\n\t\t\t\t\tto = setTimeout($.proxy(function () { this.save_state(); }, this), 100);\r\n\t\t\t\t}, this));\r\n\t\t\t}, this);\r\n\t\t\tthis.element\r\n\t\t\t\t.on(\"ready.jstree\", $.proxy(function (e, data) {\r\n\t\t\t\t\t\tthis.element.one(\"restore_state.jstree\", bind);\r\n\t\t\t\t\t\tif(!this.restore_state()) { bind(); }\r\n\t\t\t\t\t}, this));\r\n\t\t};\r\n\t\t/**\r\n\t\t * save the state\r\n\t\t * @name save_state()\r\n\t\t * @plugin state\r\n\t\t */\r\n\t\tthis.save_state = function () {\r\n\t\t\tvar st = { 'state' : this.get_state(), 'ttl' : this.settings.state.ttl, 'sec' : +(new Date()) };\r\n\t\t\t$.vakata.storage.set(this.settings.state.key, JSON.stringify(st));\r\n\t\t};\r\n\t\t/**\r\n\t\t * restore the state from the user's computer\r\n\t\t * @name restore_state()\r\n\t\t * @plugin state\r\n\t\t */\r\n\t\tthis.restore_state = function () {\r\n\t\t\tvar k = $.vakata.storage.get(this.settings.state.key);\r\n\t\t\tif(!!k) { try { k = JSON.parse(k); } catch(ex) { return false; } }\r\n\t\t\tif(!!k && k.ttl && k.sec && +(new Date()) - k.sec > k.ttl) { return false; }\r\n\t\t\tif(!!k && k.state) { k = k.state; }\r\n\t\t\tif(!!k && $.isFunction(this.settings.state.filter)) { k = this.settings.state.filter.call(this, k); }\r\n\t\t\tif(!!k) {\r\n\t\t\t\tthis.element.one(\"set_state.jstree\", function (e, data) { data.instance.trigger('restore_state', { 'state' : $.extend(true, {}, k) }); });\r\n\t\t\t\tthis.set_state(k);\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\treturn false;\r\n\t\t};\r\n\t\t/**\r\n\t\t * clear the state on the user's computer\r\n\t\t * @name clear_state()\r\n\t\t * @plugin state\r\n\t\t */\r\n\t\tthis.clear_state = function () {\r\n\t\t\treturn $.vakata.storage.del(this.settings.state.key);\r\n\t\t};\r\n\t};\r\n\r\n\t(function ($, undefined) {\r\n\t\t$.vakata.storage = {\r\n\t\t\t// simply specifying the functions in FF throws an error\r\n\t\t\tset : function (key, val) { return window.localStorage.setItem(key, val); },\r\n\t\t\tget : function (key) { return window.localStorage.getItem(key); },\r\n\t\t\tdel : function (key) { return window.localStorage.removeItem(key); }\r\n\t\t};\r\n\t}(jQuery));\r\n\r\n\t// include the state plugin by default\r\n\t// $.jstree.defaults.plugins.push(\"state\");\r\n\r\n/**\r\n * ### Types plugin\r\n *\r\n * Makes it possible to add predefined types for groups of nodes, which make it possible to easily control nesting rules and icon for each group.\r\n */\r\n\r\n\t/**\r\n\t * An object storing all types as key value pairs, where the key is the type name and the value is an object that could contain following keys (all optional).\r\n\t * \r\n\t * * `max_children` the maximum number of immediate children this node type can have. Do not specify or set to `-1` for unlimited.\r\n\t * * `max_depth` the maximum number of nesting this node type can have. A value of `1` would mean that the node can have children, but no grandchildren. Do not specify or set to `-1` for unlimited.\r\n\t * * `valid_children` an array of node type strings, that nodes of this type can have as children. Do not specify or set to `-1` for no limits.\r\n\t * * `icon` a string - can be a path to an icon or a className, if using an image that is in the current directory use a `./` prefix, otherwise it will be detected as a class. Omit to use the default icon from your theme.\r\n\t *\r\n\t * There are two predefined types:\r\n\t * \r\n\t * * `#` represents the root of the tree, for example `max_children` would control the maximum number of root nodes.\r\n\t * * `default` represents the default node - any settings here will be applied to all nodes that do not have a type specified.\r\n\t * \r\n\t * @name $.jstree.defaults.types\r\n\t * @plugin types\r\n\t */\r\n\t$.jstree.defaults.types = {\r\n\t\t'#' : {},\r\n\t\t'default' : {}\r\n\t};\r\n\r\n\t$.jstree.plugins.types = function (options, parent) {\r\n\t\tthis.init = function (el, options) {\r\n\t\t\tvar i, j;\r\n\t\t\tif(options && options.types && options.types['default']) {\r\n\t\t\t\tfor(i in options.types) {\r\n\t\t\t\t\tif(i !== \"default\" && i !== \"#\" && options.types.hasOwnProperty(i)) {\r\n\t\t\t\t\t\tfor(j in options.types['default']) {\r\n\t\t\t\t\t\t\tif(options.types['default'].hasOwnProperty(j) && options.types[i][j] === undefined) {\r\n\t\t\t\t\t\t\t\toptions.types[i][j] = options.types['default'][j];\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tparent.init.call(this, el, options);\r\n\t\t\tthis._model.data['#'].type = '#';\r\n\t\t};\r\n\t\tthis.refresh = function (skip_loading) {\r\n\t\t\tparent.refresh.call(this, skip_loading);\r\n\t\t\tthis._model.data['#'].type = '#';\r\n\t\t};\r\n\t\tthis.bind = function () {\r\n\t\t\tthis.element\r\n\t\t\t\t.on('model.jstree', $.proxy(function (e, data) {\r\n\t\t\t\t\t\tvar m = this._model.data,\r\n\t\t\t\t\t\t\tdpc = data.nodes,\r\n\t\t\t\t\t\t\tt = this.settings.types,\r\n\t\t\t\t\t\t\ti, j, c = 'default';\r\n\t\t\t\t\t\tfor(i = 0, j = dpc.length; i < j; i++) {\r\n\t\t\t\t\t\t\tc = 'default';\r\n\t\t\t\t\t\t\tif(m[dpc[i]].original && m[dpc[i]].original.type && t[m[dpc[i]].original.type]) {\r\n\t\t\t\t\t\t\t\tc = m[dpc[i]].original.type;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif(m[dpc[i]].data && m[dpc[i]].data.jstree && m[dpc[i]].data.jstree.type && t[m[dpc[i]].data.jstree.type]) {\r\n\t\t\t\t\t\t\t\tc = m[dpc[i]].data.jstree.type;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tm[dpc[i]].type = c;\r\n\t\t\t\t\t\t\tif(m[dpc[i]].icon === true && t[c].icon !== undefined) {\r\n\t\t\t\t\t\t\t\tm[dpc[i]].icon = t[c].icon;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}, this));\r\n\t\t\tparent.bind.call(this);\r\n\t\t};\r\n\t\tthis.get_json = function (obj, options, flat) {\r\n\t\t\tvar i, j,\r\n\t\t\t\tm = this._model.data,\r\n\t\t\t\topt = options ? $.extend(true, {}, options, {no_id:false}) : {},\r\n\t\t\t\ttmp = parent.get_json.call(this, obj, opt, flat);\r\n\t\t\tif(tmp === false) { return false; }\r\n\t\t\tif($.isArray(tmp)) {\r\n\t\t\t\tfor(i = 0, j = tmp.length; i < j; i++) {\r\n\t\t\t\t\ttmp[i].type = tmp[i].id && m[tmp[i].id] && m[tmp[i].id].type ? m[tmp[i].id].type : \"default\";\r\n\t\t\t\t\tif(options && options.no_id) {\r\n\t\t\t\t\t\tdelete tmp[i].id;\r\n\t\t\t\t\t\tif(tmp[i].li_attr && tmp[i].li_attr.id) {\r\n\t\t\t\t\t\t\tdelete tmp[i].li_attr.id;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\ttmp.type = tmp.id && m[tmp.id] && m[tmp.id].type ? m[tmp.id].type : \"default\";\r\n\t\t\t\tif(options && options.no_id) {\r\n\t\t\t\t\ttmp = this._delete_ids(tmp);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn tmp;\r\n\t\t};\r\n\t\tthis._delete_ids = function (tmp) {\r\n\t\t\tif($.isArray(tmp)) {\r\n\t\t\t\tfor(var i = 0, j = tmp.length; i < j; i++) {\r\n\t\t\t\t\ttmp[i] = this._delete_ids(tmp[i]);\r\n\t\t\t\t}\r\n\t\t\t\treturn tmp;\r\n\t\t\t}\r\n\t\t\tdelete tmp.id;\r\n\t\t\tif(tmp.li_attr && tmp.li_attr.id) {\r\n\t\t\t\tdelete tmp.li_attr.id;\r\n\t\t\t}\r\n\t\t\tif(tmp.children && $.isArray(tmp.children)) {\r\n\t\t\t\ttmp.children = this._delete_ids(tmp.children);\r\n\t\t\t}\r\n\t\t\treturn tmp;\r\n\t\t};\r\n\t\tthis.check = function (chk, obj, par, pos, more) {\r\n\t\t\tif(parent.check.call(this, chk, obj, par, pos, more) === false) { return false; }\r\n\t\t\tobj = obj && obj.id ? obj : this.get_node(obj);\r\n\t\t\tpar = par && par.id ? par : this.get_node(par);\r\n\t\t\tvar m = obj && obj.id ? $.jstree.reference(obj.id) : null, tmp, d, i, j;\r\n\t\t\tm = m && m._model && m._model.data ? m._model.data : null;\r\n\t\t\tswitch(chk) {\r\n\t\t\t\tcase \"create_node\":\r\n\t\t\t\tcase \"move_node\":\r\n\t\t\t\tcase \"copy_node\":\r\n\t\t\t\t\tif(chk !== 'move_node' || $.inArray(obj.id, par.children) === -1) {\r\n\t\t\t\t\t\ttmp = this.get_rules(par);\r\n\t\t\t\t\t\tif(tmp.max_children !== undefined && tmp.max_children !== -1 && tmp.max_children === par.children.length) {\r\n\t\t\t\t\t\t\tthis._data.core.last_error = { 'error' : 'check', 'plugin' : 'types', 'id' : 'types_01', 'reason' : 'max_children prevents function: ' + chk, 'data' : JSON.stringify({ 'chk' : chk, 'pos' : pos, 'obj' : obj && obj.id ? obj.id : false, 'par' : par && par.id ? par.id : false }) };\r\n\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif(tmp.valid_children !== undefined && tmp.valid_children !== -1 && $.inArray(obj.type, tmp.valid_children) === -1) {\r\n\t\t\t\t\t\t\tthis._data.core.last_error = { 'error' : 'check', 'plugin' : 'types', 'id' : 'types_02', 'reason' : 'valid_children prevents function: ' + chk, 'data' : JSON.stringify({ 'chk' : chk, 'pos' : pos, 'obj' : obj && obj.id ? obj.id : false, 'par' : par && par.id ? par.id : false }) };\r\n\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif(m && obj.children_d && obj.parents) {\r\n\t\t\t\t\t\t\td = 0;\r\n\t\t\t\t\t\t\tfor(i = 0, j = obj.children_d.length; i < j; i++) {\r\n\t\t\t\t\t\t\t\td = Math.max(d, m[obj.children_d[i]].parents.length);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\td = d - obj.parents.length + 1;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif(d <= 0 || d === undefined) { d = 1; }\r\n\t\t\t\t\t\tdo {\r\n\t\t\t\t\t\t\tif(tmp.max_depth !== undefined && tmp.max_depth !== -1 && tmp.max_depth < d) {\r\n\t\t\t\t\t\t\t\tthis._data.core.last_error = { 'error' : 'check', 'plugin' : 'types', 'id' : 'types_03', 'reason' : 'max_depth prevents function: ' + chk, 'data' : JSON.stringify({ 'chk' : chk, 'pos' : pos, 'obj' : obj && obj.id ? obj.id : false, 'par' : par && par.id ? par.id : false }) };\r\n\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tpar = this.get_node(par.parent);\r\n\t\t\t\t\t\t\ttmp = this.get_rules(par);\r\n\t\t\t\t\t\t\td++;\r\n\t\t\t\t\t\t} while(par);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\treturn true;\r\n\t\t};\r\n\t\t/**\r\n\t\t * used to retrieve the type settings object for a node\r\n\t\t * @name get_rules(obj)\r\n\t\t * @param {mixed} obj the node to find the rules for\r\n\t\t * @return {Object}\r\n\t\t * @plugin types\r\n\t\t */\r\n\t\tthis.get_rules = function (obj) {\r\n\t\t\tobj = this.get_node(obj);\r\n\t\t\tif(!obj) { return false; }\r\n\t\t\tvar tmp = this.get_type(obj, true);\r\n\t\t\tif(tmp.max_depth === undefined) { tmp.max_depth = -1; }\r\n\t\t\tif(tmp.max_children === undefined) { tmp.max_children = -1; }\r\n\t\t\tif(tmp.valid_children === undefined) { tmp.valid_children = -1; }\r\n\t\t\treturn tmp;\r\n\t\t};\r\n\t\t/**\r\n\t\t * used to retrieve the type string or settings object for a node\r\n\t\t * @name get_type(obj [, rules])\r\n\t\t * @param {mixed} obj the node to find the rules for\r\n\t\t * @param {Boolean} rules if set to `true` instead of a string the settings object will be returned\r\n\t\t * @return {String|Object}\r\n\t\t * @plugin types\r\n\t\t */\r\n\t\tthis.get_type = function (obj, rules) {\r\n\t\t\tobj = this.get_node(obj);\r\n\t\t\treturn (!obj) ? false : ( rules ? $.extend({ 'type' : obj.type }, this.settings.types[obj.type]) : obj.type);\r\n\t\t};\r\n\t\t/**\r\n\t\t * used to change a node's type\r\n\t\t * @name set_type(obj, type)\r\n\t\t * @param {mixed} obj the node to change\r\n\t\t * @param {String} type the new type\r\n\t\t * @plugin types\r\n\t\t */\r\n\t\tthis.set_type = function (obj, type) {\r\n\t\t\tvar t, t1, t2, old_type, old_icon;\r\n\t\t\tif($.isArray(obj)) {\r\n\t\t\t\tobj = obj.slice();\r\n\t\t\t\tfor(t1 = 0, t2 = obj.length; t1 < t2; t1++) {\r\n\t\t\t\t\tthis.set_type(obj[t1], type);\r\n\t\t\t\t}\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\tt = this.settings.types;\r\n\t\t\tobj = this.get_node(obj);\r\n\t\t\tif(!t[type] || !obj) { return false; }\r\n\t\t\told_type = obj.type;\r\n\t\t\told_icon = this.get_icon(obj);\r\n\t\t\tobj.type = type;\r\n\t\t\tif(old_icon === true || (t[old_type] && t[old_type].icon && old_icon === t[old_type].icon)) {\r\n\t\t\t\tthis.set_icon(obj, t[type].icon !== undefined ? t[type].icon : true);\r\n\t\t\t}\r\n\t\t\treturn true;\r\n\t\t};\r\n\t};\r\n\t// include the types plugin by default\r\n\t// $.jstree.defaults.plugins.push(\"types\");\r\n\r\n/**\r\n * ### Unique plugin\r\n *\r\n * Enforces that no nodes with the same name can coexist as siblings.\r\n */\r\n\r\n\t$.jstree.plugins.unique = function (options, parent) {\r\n\t\tthis.check = function (chk, obj, par, pos, more) {\r\n\t\t\tif(parent.check.call(this, chk, obj, par, pos, more) === false) { return false; }\r\n\t\t\tobj = obj && obj.id ? obj : this.get_node(obj);\r\n\t\t\tpar = par && par.id ? par : this.get_node(par);\r\n\t\t\tif(!par || !par.children) { return true; }\r\n\t\t\tvar n = chk === \"rename_node\" ? pos : obj.text,\r\n\t\t\t\tc = [],\r\n\t\t\t\tm = this._model.data, i, j;\r\n\t\t\tfor(i = 0, j = par.children.length; i < j; i++) {\r\n\t\t\t\tc.push(m[par.children[i]].text);\r\n\t\t\t}\r\n\t\t\tswitch(chk) {\r\n\t\t\t\tcase \"delete_node\":\r\n\t\t\t\t\treturn true;\r\n\t\t\t\tcase \"rename_node\":\r\n\t\t\t\t\ti = ($.inArray(n, c) === -1 || (obj.text && obj.text === n));\r\n\t\t\t\t\tif(!i) {\r\n\t\t\t\t\t\tthis._data.core.last_error = { 'error' : 'check', 'plugin' : 'unique', 'id' : 'unique_01', 'reason' : 'Child with name ' + n + ' already exists. Preventing: ' + chk, 'data' : JSON.stringify({ 'chk' : chk, 'pos' : pos, 'obj' : obj && obj.id ? obj.id : false, 'par' : par && par.id ? par.id : false }) };\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn i;\r\n\t\t\t\tcase \"create_node\":\r\n\t\t\t\t\ti = ($.inArray(n, c) === -1);\r\n\t\t\t\t\tif(!i) {\r\n\t\t\t\t\t\tthis._data.core.last_error = { 'error' : 'check', 'plugin' : 'unique', 'id' : 'unique_04', 'reason' : 'Child with name ' + n + ' already exists. Preventing: ' + chk, 'data' : JSON.stringify({ 'chk' : chk, 'pos' : pos, 'obj' : obj && obj.id ? obj.id : false, 'par' : par && par.id ? par.id : false }) };\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn i;\r\n\t\t\t\tcase \"copy_node\":\r\n\t\t\t\t\ti = ($.inArray(n, c) === -1);\r\n\t\t\t\t\tif(!i) {\r\n\t\t\t\t\t\tthis._data.core.last_error = { 'error' : 'check', 'plugin' : 'unique', 'id' : 'unique_02', 'reason' : 'Child with name ' + n + ' already exists. Preventing: ' + chk, 'data' : JSON.stringify({ 'chk' : chk, 'pos' : pos, 'obj' : obj && obj.id ? obj.id : false, 'par' : par && par.id ? par.id : false }) };\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn i;\r\n\t\t\t\tcase \"move_node\":\r\n\t\t\t\t\ti = (obj.parent === par.id || $.inArray(n, c) === -1);\r\n\t\t\t\t\tif(!i) {\r\n\t\t\t\t\t\tthis._data.core.last_error = { 'error' : 'check', 'plugin' : 'unique', 'id' : 'unique_03', 'reason' : 'Child with name ' + n + ' already exists. Preventing: ' + chk, 'data' : JSON.stringify({ 'chk' : chk, 'pos' : pos, 'obj' : obj && obj.id ? obj.id : false, 'par' : par && par.id ? par.id : false }) };\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn i;\r\n\t\t\t}\r\n\t\t\treturn true;\r\n\t\t};\r\n\t\tthis.create_node = function (par, node, pos, callback, is_loaded) {\r\n\t\t\tif(!node || node.text === undefined) {\r\n\t\t\t\tif(par === null) {\r\n\t\t\t\t\tpar = \"#\";\r\n\t\t\t\t}\r\n\t\t\t\tpar = this.get_node(par);\r\n\t\t\t\tif(!par) {\r\n\t\t\t\t\treturn parent.create_node.call(this, par, node, pos, callback, is_loaded);\r\n\t\t\t\t}\r\n\t\t\t\tpos = pos === undefined ? \"last\" : pos;\r\n\t\t\t\tif(!pos.toString().match(/^(before|after)$/) && !is_loaded && !this.is_loaded(par)) {\r\n\t\t\t\t\treturn parent.create_node.call(this, par, node, pos, callback, is_loaded);\r\n\t\t\t\t}\r\n\t\t\t\tif(!node) { node = {}; }\r\n\t\t\t\tvar tmp, n, dpc, i, j, m = this._model.data;\r\n\t\t\t\tn = tmp = this.get_string('New node');\r\n\t\t\t\tdpc = [];\r\n\t\t\t\tfor(i = 0, j = par.children.length; i < j; i++) {\r\n\t\t\t\t\tdpc.push(m[par.children[i]].text);\r\n\t\t\t\t}\r\n\t\t\t\ti = 1;\r\n\t\t\t\twhile($.inArray(n, dpc) !== -1) {\r\n\t\t\t\t\tn = tmp + ' (' + (++i) + ')';\r\n\t\t\t\t}\r\n\t\t\t\tnode.text = n;\r\n\t\t\t}\r\n\t\t\treturn parent.create_node.call(this, par, node, pos, callback, is_loaded);\r\n\t\t};\r\n\t};\r\n\r\n\t// include the unique plugin by default\r\n\t// $.jstree.defaults.plugins.push(\"unique\");\r\n\r\n\r\n/**\r\n * ### Wholerow plugin\r\n *\r\n * Makes each node appear block level. Making selection easier. May cause slow down for large trees in old browsers.\r\n */\r\n\r\n\tvar div = document.createElement('DIV');\r\n\tdiv.setAttribute('unselectable','on');\r\n\tdiv.className = 'jstree-wholerow';\r\n\tdiv.innerHTML = ' ';\r\n\t$.jstree.plugins.wholerow = function (options, parent) {\r\n\t\tthis.bind = function () {\r\n\t\t\tparent.bind.call(this);\r\n\r\n\t\t\tthis.element\r\n\t\t\t\t.on('ready.jstree set_state.jstree', $.proxy(function () {\r\n\t\t\t\t\t\tthis.hide_dots();\r\n\t\t\t\t\t}, this))\r\n\t\t\t\t.on(\"init.jstree loading.jstree ready.jstree\", $.proxy(function () {\r\n\t\t\t\t\t\tdiv.style.height = this._data.core.li_height + 'px';\r\n\t\t\t\t\t\tthis.get_container_ul().addClass('jstree-wholerow-ul');\r\n\t\t\t\t\t}, this))\r\n\t\t\t\t.on(\"deselect_all.jstree\", $.proxy(function (e, data) {\r\n\t\t\t\t\t\tthis.element.find('.jstree-wholerow-clicked').removeClass('jstree-wholerow-clicked');\r\n\t\t\t\t\t}, this))\r\n\t\t\t\t.on(\"changed.jstree\", $.proxy(function (e, data) {\r\n\t\t\t\t\t\tthis.element.find('.jstree-wholerow-clicked').removeClass('jstree-wholerow-clicked');\r\n\t\t\t\t\t\tvar tmp = false, i, j;\r\n\t\t\t\t\t\tfor(i = 0, j = data.selected.length; i < j; i++) {\r\n\t\t\t\t\t\t\ttmp = this.get_node(data.selected[i], true);\r\n\t\t\t\t\t\t\tif(tmp && tmp.length) {\r\n\t\t\t\t\t\t\t\ttmp.children('.jstree-wholerow').addClass('jstree-wholerow-clicked');\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}, this))\r\n\t\t\t\t.on(\"open_node.jstree\", $.proxy(function (e, data) {\r\n\t\t\t\t\t\tthis.get_node(data.node, true).find('.jstree-clicked').parent().children('.jstree-wholerow').addClass('jstree-wholerow-clicked');\r\n\t\t\t\t\t}, this))\r\n\t\t\t\t.on(\"hover_node.jstree dehover_node.jstree\", $.proxy(function (e, data) {\r\n\t\t\t\t\t\tthis.get_node(data.node, true).children('.jstree-wholerow')[e.type === \"hover_node\"?\"addClass\":\"removeClass\"]('jstree-wholerow-hovered');\r\n\t\t\t\t\t}, this))\r\n\t\t\t\t.on(\"contextmenu.jstree\", \".jstree-wholerow\", $.proxy(function (e) {\r\n\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\tvar tmp = $.Event('contextmenu', { metaKey : e.metaKey, ctrlKey : e.ctrlKey, altKey : e.altKey, shiftKey : e.shiftKey, pageX : e.pageX, pageY : e.pageY });\r\n\t\t\t\t\t\t$(e.currentTarget).closest(\".jstree-node\").children(\".jstree-anchor:eq(0)\").trigger(tmp);\r\n\t\t\t\t\t}, this))\r\n\t\t\t\t.on(\"click.jstree\", \".jstree-wholerow\", function (e) {\r\n\t\t\t\t\t\te.stopImmediatePropagation();\r\n\t\t\t\t\t\tvar tmp = $.Event('click', { metaKey : e.metaKey, ctrlKey : e.ctrlKey, altKey : e.altKey, shiftKey : e.shiftKey });\r\n\t\t\t\t\t\t$(e.currentTarget).closest(\".jstree-node\").children(\".jstree-anchor:eq(0)\").trigger(tmp).focus();\r\n\t\t\t\t\t})\r\n\t\t\t\t.on(\"click.jstree\", \".jstree-leaf > .jstree-ocl\", $.proxy(function (e) {\r\n\t\t\t\t\t\te.stopImmediatePropagation();\r\n\t\t\t\t\t\tvar tmp = $.Event('click', { metaKey : e.metaKey, ctrlKey : e.ctrlKey, altKey : e.altKey, shiftKey : e.shiftKey });\r\n\t\t\t\t\t\t$(e.currentTarget).closest(\".jstree-node\").children(\".jstree-anchor:eq(0)\").trigger(tmp).focus();\r\n\t\t\t\t\t}, this))\r\n\t\t\t\t.on(\"mouseover.jstree\", \".jstree-wholerow, .jstree-icon\", $.proxy(function (e) {\r\n\t\t\t\t\t\te.stopImmediatePropagation();\r\n\t\t\t\t\t\tthis.hover_node(e.currentTarget);\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}, this))\r\n\t\t\t\t.on(\"mouseleave.jstree\", \".jstree-node\", $.proxy(function (e) {\r\n\t\t\t\t\t\tthis.dehover_node(e.currentTarget);\r\n\t\t\t\t\t}, this));\r\n\t\t};\r\n\t\tthis.teardown = function () {\r\n\t\t\tif(this.settings.wholerow) {\r\n\t\t\t\tthis.element.find(\".jstree-wholerow\").remove();\r\n\t\t\t}\r\n\t\t\tparent.teardown.call(this);\r\n\t\t};\r\n\t\tthis.redraw_node = function(obj, deep, callback) {\r\n\t\t\tobj = parent.redraw_node.call(this, obj, deep, callback);\r\n\t\t\tif(obj) {\r\n\t\t\t\tvar tmp = div.cloneNode(true);\r\n\t\t\t\t//tmp.style.height = this._data.core.li_height + 'px';\r\n\t\t\t\tif($.inArray(obj.id, this._data.core.selected) !== -1) { tmp.className += ' jstree-wholerow-clicked'; }\r\n\t\t\t\tobj.insertBefore(tmp, obj.childNodes[0]);\r\n\t\t\t}\r\n\t\t\treturn obj;\r\n\t\t};\r\n\t};\r\n\t// include the wholerow plugin by default\r\n\t// $.jstree.defaults.plugins.push(\"wholerow\");\r\n\r\n}));","// additional icon on node (outside of anchor)\r\n(function ($, undefined) {\r\n\t\"use strict\";\r\n\tvar configIt = $('Configure it');\r\n\r\n\t$.jstree.defaults.configit = $.noop;\r\n\t$.jstree.plugins.configit = function (options, parent) {\r\n\t\tthis.bind = function () {\r\n\t\t\tparent.bind.call(this);\r\n\t\t};\r\n\t\tthis.teardown = function () {\r\n\t\t\tif(this.settings.configit) {\r\n\t\t\t\tthis.element.find(\".jstree-configit\").remove();\r\n\t\t\t}\r\n\t\t\tparent.teardown.call(this);\r\n\t\t};\r\n\t\tthis.redraw_node = function(obj, deep, callback) {\r\n\t\t\tobj = parent.redraw_node.call(this, obj, deep, callback);\r\n\t\t\tvar $obj = $(obj);\r\n\t\t\tif(obj && this.is_leaf(obj)) {\r\n\t\t\t\tvar tmp = configIt.clone();\r\n\t\t\t\tvar $a = $obj.find('a').eq(0);\r\n\t\t\t\tvar hide = $a.data('hideconfigit');\r\n\t\t\t\tif(!hide) {\r\n\t\t\t\t\ttmp.attr({\r\n\t\t\t\t\t\thref: $a.data('url'),\r\n\t\t\t\t\t\tid: $a.data('id')\r\n\t\t\t\t\t});\r\n\t\t\t\t\t$obj.append(tmp);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn obj;\r\n\t\t};\r\n\t};\r\n})(jQuery);","/**\r\n* jquery.matchHeight-min.js master\r\n* http://brm.io/jquery-match-height/\r\n* License: MIT\r\n*/\r\n(function(c){var n=-1,f=-1,g=function(a){return parseFloat(a)||0},r=function(a){var b=null,d=[];c(a).each(function(){var a=c(this),k=a.offset().top-g(a.css(\"margin-top\")),l=0=Math.floor(Math.abs(b-k))?d[d.length-1]=l.add(a):d.push(a);b=k});return d},p=function(a){var b={byRow:!0,property:\"height\",target:null,remove:!1};if(\"object\"===typeof a)return c.extend(b,a);\"boolean\"===typeof a?b.byRow=a:\"remove\"===a&&(b.remove=!0);return b},b=c.fn.matchHeight=\r\nfunction(a){a=p(a);if(a.remove){var e=this;this.css(a.property,\"\");c.each(b._groups,function(a,b){b.elements=b.elements.not(e)});return this}if(1>=this.length&&!a.target)return this;b._groups.push({elements:this,options:a});b._apply(this,a);return this};b._groups=[];b._throttle=80;b._maintainScroll=!1;b._beforeUpdate=null;b._afterUpdate=null;b._apply=function(a,e){var d=p(e),h=c(a),k=[h],l=c(window).scrollTop(),f=c(\"html\").outerHeight(!0),m=h.parents().filter(\":hidden\");m.each(function(){var a=c(this);\r\na.data(\"style-cache\",a.attr(\"style\"))});m.css(\"display\",\"block\");d.byRow&&!d.target&&(h.each(function(){var a=c(this),b=\"inline-block\"===a.css(\"display\")?\"inline-block\":\"block\";a.data(\"style-cache\",a.attr(\"style\"));a.css({display:b,\"padding-top\":\"0\",\"padding-bottom\":\"0\",\"margin-top\":\"0\",\"margin-bottom\":\"0\",\"border-top-width\":\"0\",\"border-bottom-width\":\"0\",height:\"100px\"})}),k=r(h),h.each(function(){var a=c(this);a.attr(\"style\",a.data(\"style-cache\")||\"\")}));c.each(k,function(a,b){var e=c(b),f=0;if(d.target)f=\r\nd.target.outerHeight(!1);else{if(d.byRow&&1>=e.length){e.css(d.property,\"\");return}e.each(function(){var a=c(this),b={display:\"inline-block\"===a.css(\"display\")?\"inline-block\":\"block\"};b[d.property]=\"\";a.css(b);a.outerHeight(!1)>f&&(f=a.outerHeight(!1));a.css(\"display\",\"\")})}e.each(function(){var a=c(this),b=0;d.target&&a.is(d.target)||(\"border-box\"!==a.css(\"box-sizing\")&&(b+=g(a.css(\"border-top-width\"))+g(a.css(\"border-bottom-width\")),b+=g(a.css(\"padding-top\"))+g(a.css(\"padding-bottom\"))),a.css(d.property,\r\nf-b))})});m.each(function(){var a=c(this);a.attr(\"style\",a.data(\"style-cache\")||null)});b._maintainScroll&&c(window).scrollTop(l/f*c(\"html\").outerHeight(!0));return this};b._applyDataApi=function(){var a={};c(\"[data-match-height], [data-mh]\").each(function(){var b=c(this),d=b.attr(\"data-mh\")||b.attr(\"data-match-height\");a[d]=d in a?a[d].add(b):b});c.each(a,function(){this.matchHeight(!0)})};var q=function(a){b._beforeUpdate&&b._beforeUpdate(a,b._groups);c.each(b._groups,function(){b._apply(this.elements,\r\nthis.options)});b._afterUpdate&&b._afterUpdate(a,b._groups)};b._update=function(a,e){if(e&&\"resize\"===e.type){var d=c(window).width();if(d===n)return;n=d}a?-1===f&&(f=setTimeout(function(){q(e);f=-1},b._throttle)):q(e)};c(b._applyDataApi);c(window).bind(\"load\",function(a){b._update(!1,a)});c(window).bind(\"resize orientationchange\",function(a){b._update(!0,a)})})(jQuery);","/*!\r\nChosen, a Select Box Enhancer for jQuery and Prototype\r\nby Patrick Filler for Harvest, http://getharvest.com\r\n\r\nVersion 1.4.1\r\nFull source at https://github.com/harvesthq/chosen\r\nCopyright (c) 2011-2015 Harvest http://getharvest.com\r\n\r\nMIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md\r\nThis file is generated by `grunt build`, do not edit it by hand.\r\n*/\r\n\r\n(function() {\r\n var $, AbstractChosen, Chosen, SelectParser, _ref,\r\n __hasProp = {}.hasOwnProperty,\r\n __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };\r\n\r\n SelectParser = (function() {\r\n function SelectParser() {\r\n this.options_index = 0;\r\n this.parsed = [];\r\n }\r\n\r\n SelectParser.prototype.add_node = function(child) {\r\n if (child.nodeName.toUpperCase() === \"OPTGROUP\") {\r\n return this.add_group(child);\r\n } else {\r\n return this.add_option(child);\r\n }\r\n };\r\n\r\n SelectParser.prototype.add_group = function(group) {\r\n var group_position, option, _i, _len, _ref, _results;\r\n group_position = this.parsed.length;\r\n this.parsed.push({\r\n array_index: group_position,\r\n group: true,\r\n label: this.escapeExpression(group.label),\r\n title: group.title ? group.title : void 0,\r\n children: 0,\r\n disabled: group.disabled,\r\n classes: group.className\r\n });\r\n _ref = group.childNodes;\r\n _results = [];\r\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\r\n option = _ref[_i];\r\n _results.push(this.add_option(option, group_position, group.disabled));\r\n }\r\n return _results;\r\n };\r\n\r\n SelectParser.prototype.add_option = function(option, group_position, group_disabled) {\r\n if (option.nodeName.toUpperCase() === \"OPTION\") {\r\n if (option.text !== \"\") {\r\n if (group_position != null) {\r\n this.parsed[group_position].children += 1;\r\n }\r\n this.parsed.push({\r\n array_index: this.parsed.length,\r\n options_index: this.options_index,\r\n value: option.value,\r\n text: option.text,\r\n html: option.innerHTML,\r\n title: option.title ? option.title : void 0,\r\n selected: option.selected,\r\n disabled: group_disabled === true ? group_disabled : option.disabled,\r\n group_array_index: group_position,\r\n group_label: group_position != null ? this.parsed[group_position].label : null,\r\n classes: option.className,\r\n style: option.style.cssText\r\n });\r\n } else {\r\n this.parsed.push({\r\n array_index: this.parsed.length,\r\n options_index: this.options_index,\r\n empty: true\r\n });\r\n }\r\n return this.options_index += 1;\r\n }\r\n };\r\n\r\n SelectParser.prototype.escapeExpression = function(text) {\r\n var map, unsafe_chars;\r\n if ((text == null) || text === false) {\r\n return \"\";\r\n }\r\n if (!/[\\&\\<\\>\\\"\\'\\`]/.test(text)) {\r\n return text;\r\n }\r\n map = {\r\n \"<\": \"<\",\r\n \">\": \">\",\r\n '\"': \""\",\r\n \"'\": \"'\",\r\n \"`\": \"`\"\r\n };\r\n unsafe_chars = /&(?!\\w+;)|[\\<\\>\\\"\\'\\`]/g;\r\n return text.replace(unsafe_chars, function(chr) {\r\n return map[chr] || \"&\";\r\n });\r\n };\r\n\r\n return SelectParser;\r\n\r\n })();\r\n\r\n SelectParser.select_to_array = function(select) {\r\n var child, parser, _i, _len, _ref;\r\n parser = new SelectParser();\r\n _ref = select.childNodes;\r\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\r\n child = _ref[_i];\r\n parser.add_node(child);\r\n }\r\n return parser.parsed;\r\n };\r\n\r\n AbstractChosen = (function() {\r\n function AbstractChosen(form_field, options) {\r\n this.form_field = form_field;\r\n this.options = options != null ? options : {};\r\n if (!AbstractChosen.browser_is_supported()) {\r\n return;\r\n }\r\n this.is_multiple = this.form_field.multiple;\r\n this.set_default_text();\r\n this.set_default_values();\r\n this.setup();\r\n this.set_up_html();\r\n this.register_observers();\r\n this.on_ready();\r\n }\r\n\r\n AbstractChosen.prototype.set_default_values = function() {\r\n var _this = this;\r\n this.click_test_action = function(evt) {\r\n return _this.test_active_click(evt);\r\n };\r\n this.activate_action = function(evt) {\r\n return _this.activate_field(evt);\r\n };\r\n this.active_field = false;\r\n this.mouse_on_container = false;\r\n this.results_showing = false;\r\n this.result_highlighted = null;\r\n this.allow_single_deselect = (this.options.allow_single_deselect != null) && (this.form_field.options[0] != null) && this.form_field.options[0].text === \"\" ? this.options.allow_single_deselect : false;\r\n this.disable_search_threshold = this.options.disable_search_threshold || 0;\r\n this.disable_search = this.options.disable_search || false;\r\n this.enable_split_word_search = this.options.enable_split_word_search != null ? this.options.enable_split_word_search : true;\r\n this.group_search = this.options.group_search != null ? this.options.group_search : true;\r\n this.search_contains = this.options.search_contains || false;\r\n this.single_backstroke_delete = this.options.single_backstroke_delete != null ? this.options.single_backstroke_delete : true;\r\n this.max_selected_options = this.options.max_selected_options || Infinity;\r\n this.inherit_select_classes = this.options.inherit_select_classes || false;\r\n this.display_selected_options = this.options.display_selected_options != null ? this.options.display_selected_options : true;\r\n this.display_disabled_options = this.options.display_disabled_options != null ? this.options.display_disabled_options : true;\r\n return this.include_group_label_in_selected = this.options.include_group_label_in_selected || false;\r\n };\r\n\r\n AbstractChosen.prototype.set_default_text = function() {\r\n if (this.form_field.getAttribute(\"data-placeholder\")) {\r\n this.default_text = this.form_field.getAttribute(\"data-placeholder\");\r\n } else if (this.is_multiple) {\r\n this.default_text = this.options.placeholder_text_multiple || this.options.placeholder_text || AbstractChosen.default_multiple_text;\r\n } else {\r\n this.default_text = this.options.placeholder_text_single || this.options.placeholder_text || AbstractChosen.default_single_text;\r\n }\r\n return this.results_none_found = this.form_field.getAttribute(\"data-no_results_text\") || this.options.no_results_text || AbstractChosen.default_no_result_text;\r\n };\r\n\r\n AbstractChosen.prototype.choice_label = function(item) {\r\n if (this.include_group_label_in_selected && (item.group_label != null)) {\r\n return \"\" + item.group_label + \"\" + item.html;\r\n } else {\r\n return item.html;\r\n }\r\n };\r\n\r\n AbstractChosen.prototype.mouse_enter = function() {\r\n return this.mouse_on_container = true;\r\n };\r\n\r\n AbstractChosen.prototype.mouse_leave = function() {\r\n return this.mouse_on_container = false;\r\n };\r\n\r\n AbstractChosen.prototype.input_focus = function(evt) {\r\n var _this = this;\r\n if (this.is_multiple) {\r\n if (!this.active_field) {\r\n return setTimeout((function() {\r\n return _this.container_mousedown();\r\n }), 50);\r\n }\r\n } else {\r\n if (!this.active_field) {\r\n return this.activate_field();\r\n }\r\n }\r\n };\r\n\r\n AbstractChosen.prototype.input_blur = function(evt) {\r\n var _this = this;\r\n if (!this.mouse_on_container) {\r\n this.active_field = false;\r\n return setTimeout((function() {\r\n return _this.blur_test();\r\n }), 100);\r\n }\r\n };\r\n\r\n AbstractChosen.prototype.results_option_build = function(options) {\r\n var content, data, _i, _len, _ref;\r\n content = '';\r\n _ref = this.results_data;\r\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\r\n data = _ref[_i];\r\n if (data.group) {\r\n content += this.result_add_group(data);\r\n } else {\r\n content += this.result_add_option(data);\r\n }\r\n if (options != null ? options.first : void 0) {\r\n if (data.selected && this.is_multiple) {\r\n this.choice_build(data);\r\n } else if (data.selected && !this.is_multiple) {\r\n this.single_set_selected_text(this.choice_label(data));\r\n }\r\n }\r\n }\r\n return content;\r\n };\r\n\r\n AbstractChosen.prototype.result_add_option = function(option) {\r\n var classes, option_el;\r\n if (!option.search_match) {\r\n return '';\r\n }\r\n if (!this.include_option_in_results(option)) {\r\n return '';\r\n }\r\n classes = [];\r\n if (!option.disabled && !(option.selected && this.is_multiple)) {\r\n classes.push(\"active-result\");\r\n }\r\n if (option.disabled && !(option.selected && this.is_multiple)) {\r\n classes.push(\"disabled-result\");\r\n }\r\n if (option.selected) {\r\n classes.push(\"result-selected\");\r\n }\r\n if (option.group_array_index != null) {\r\n classes.push(\"group-option\");\r\n }\r\n if (option.classes !== \"\") {\r\n classes.push(option.classes);\r\n }\r\n option_el = document.createElement(\"li\");\r\n option_el.className = classes.join(\" \");\r\n option_el.style.cssText = option.style;\r\n option_el.setAttribute(\"data-option-array-index\", option.array_index);\r\n option_el.innerHTML = option.search_text;\r\n if (option.title) {\r\n option_el.title = option.title;\r\n }\r\n return this.outerHTML(option_el);\r\n };\r\n\r\n AbstractChosen.prototype.result_add_group = function(group) {\r\n var classes, group_el;\r\n if (!(group.search_match || group.group_match)) {\r\n return '';\r\n }\r\n if (!(group.active_options > 0)) {\r\n return '';\r\n }\r\n classes = [];\r\n classes.push(\"group-result\");\r\n if (group.classes) {\r\n classes.push(group.classes);\r\n }\r\n group_el = document.createElement(\"li\");\r\n group_el.className = classes.join(\" \");\r\n group_el.innerHTML = group.search_text;\r\n if (group.title) {\r\n group_el.title = group.title;\r\n }\r\n return this.outerHTML(group_el);\r\n };\r\n\r\n AbstractChosen.prototype.results_update_field = function() {\r\n this.set_default_text();\r\n if (!this.is_multiple) {\r\n this.results_reset_cleanup();\r\n }\r\n this.result_clear_highlight();\r\n this.results_build();\r\n if (this.results_showing) {\r\n return this.winnow_results();\r\n }\r\n };\r\n\r\n AbstractChosen.prototype.reset_single_select_options = function() {\r\n var result, _i, _len, _ref, _results;\r\n _ref = this.results_data;\r\n _results = [];\r\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\r\n result = _ref[_i];\r\n if (result.selected) {\r\n _results.push(result.selected = false);\r\n } else {\r\n _results.push(void 0);\r\n }\r\n }\r\n return _results;\r\n };\r\n\r\n AbstractChosen.prototype.results_toggle = function() {\r\n if (this.results_showing) {\r\n return this.results_hide();\r\n } else {\r\n return this.results_show();\r\n }\r\n };\r\n\r\n AbstractChosen.prototype.results_search = function(evt) {\r\n if (this.results_showing) {\r\n return this.winnow_results();\r\n } else {\r\n return this.results_show();\r\n }\r\n };\r\n\r\n AbstractChosen.prototype.winnow_results = function() {\r\n var escapedSearchText, option, regex, results, results_group, searchText, startpos, text, zregex, _i, _len, _ref;\r\n this.no_results_clear();\r\n results = 0;\r\n searchText = this.get_search_text();\r\n escapedSearchText = searchText.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, \"\\\\$&\");\r\n zregex = new RegExp(escapedSearchText, 'i');\r\n regex = this.get_search_regex(escapedSearchText);\r\n _ref = this.results_data;\r\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\r\n option = _ref[_i];\r\n option.search_match = false;\r\n results_group = null;\r\n if (this.include_option_in_results(option)) {\r\n if (option.group) {\r\n option.group_match = false;\r\n option.active_options = 0;\r\n }\r\n if ((option.group_array_index != null) && this.results_data[option.group_array_index]) {\r\n results_group = this.results_data[option.group_array_index];\r\n if (results_group.active_options === 0 && results_group.search_match) {\r\n results += 1;\r\n }\r\n results_group.active_options += 1;\r\n }\r\n option.search_text = option.group ? option.label : option.html;\r\n if (!(option.group && !this.group_search)) {\r\n option.search_match = this.search_string_match(option.search_text, regex);\r\n if (option.search_match && !option.group) {\r\n results += 1;\r\n }\r\n if (option.search_match) {\r\n if (searchText.length) {\r\n startpos = option.search_text.search(zregex);\r\n text = option.search_text.substr(0, startpos + searchText.length) + '' + option.search_text.substr(startpos + searchText.length);\r\n option.search_text = text.substr(0, startpos) + '' + text.substr(startpos);\r\n }\r\n if (results_group != null) {\r\n results_group.group_match = true;\r\n }\r\n } else if ((option.group_array_index != null) && this.results_data[option.group_array_index].search_match) {\r\n option.search_match = true;\r\n }\r\n }\r\n }\r\n }\r\n this.result_clear_highlight();\r\n if (results < 1 && searchText.length) {\r\n this.update_results_content(\"\");\r\n return this.no_results(searchText);\r\n } else {\r\n this.update_results_content(this.results_option_build());\r\n return this.winnow_results_set_highlight();\r\n }\r\n };\r\n\r\n AbstractChosen.prototype.get_search_regex = function(escaped_search_string) {\r\n var regex_anchor;\r\n regex_anchor = this.search_contains ? \"\" : \"^\";\r\n return new RegExp(regex_anchor + escaped_search_string, 'i');\r\n };\r\n\r\n AbstractChosen.prototype.search_string_match = function(search_string, regex) {\r\n var part, parts, _i, _len;\r\n if (regex.test(search_string)) {\r\n return true;\r\n } else if (this.enable_split_word_search && (search_string.indexOf(\" \") >= 0 || search_string.indexOf(\"[\") === 0)) {\r\n parts = search_string.replace(/\\[|\\]/g, \"\").split(\" \");\r\n if (parts.length) {\r\n for (_i = 0, _len = parts.length; _i < _len; _i++) {\r\n part = parts[_i];\r\n if (regex.test(part)) {\r\n return true;\r\n }\r\n }\r\n }\r\n }\r\n };\r\n\r\n AbstractChosen.prototype.choices_count = function() {\r\n var option, _i, _len, _ref;\r\n if (this.selected_option_count != null) {\r\n return this.selected_option_count;\r\n }\r\n this.selected_option_count = 0;\r\n _ref = this.form_field.options;\r\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\r\n option = _ref[_i];\r\n if (option.selected) {\r\n this.selected_option_count += 1;\r\n }\r\n }\r\n return this.selected_option_count;\r\n };\r\n\r\n AbstractChosen.prototype.choices_click = function(evt) {\r\n evt.preventDefault();\r\n if (!(this.results_showing || this.is_disabled)) {\r\n return this.results_show();\r\n }\r\n };\r\n\r\n AbstractChosen.prototype.keyup_checker = function(evt) {\r\n var stroke, _ref;\r\n stroke = (_ref = evt.which) != null ? _ref : evt.keyCode;\r\n this.search_field_scale();\r\n switch (stroke) {\r\n case 8:\r\n if (this.is_multiple && this.backstroke_length < 1 && this.choices_count() > 0) {\r\n return this.keydown_backstroke();\r\n } else if (!this.pending_backstroke) {\r\n this.result_clear_highlight();\r\n return this.results_search();\r\n }\r\n break;\r\n case 13:\r\n evt.preventDefault();\r\n if (this.results_showing) {\r\n return this.result_select(evt);\r\n }\r\n break;\r\n case 27:\r\n if (this.results_showing) {\r\n this.results_hide();\r\n }\r\n return true;\r\n case 9:\r\n case 38:\r\n case 40:\r\n case 16:\r\n case 91:\r\n case 17:\r\n break;\r\n default:\r\n return this.results_search();\r\n }\r\n };\r\n\r\n AbstractChosen.prototype.clipboard_event_checker = function(evt) {\r\n var _this = this;\r\n return setTimeout((function() {\r\n return _this.results_search();\r\n }), 50);\r\n };\r\n\r\n AbstractChosen.prototype.container_width = function() {\r\n if (this.options.width != null) {\r\n return this.options.width;\r\n } else {\r\n return \"\" + this.form_field.offsetWidth + \"px\";\r\n }\r\n };\r\n\r\n AbstractChosen.prototype.include_option_in_results = function(option) {\r\n if (this.is_multiple && (!this.display_selected_options && option.selected)) {\r\n return false;\r\n }\r\n if (!this.display_disabled_options && option.disabled) {\r\n return false;\r\n }\r\n if (option.empty) {\r\n return false;\r\n }\r\n return true;\r\n };\r\n\r\n AbstractChosen.prototype.search_results_touchstart = function(evt) {\r\n this.touch_started = true;\r\n return this.search_results_mouseover(evt);\r\n };\r\n\r\n AbstractChosen.prototype.search_results_touchmove = function(evt) {\r\n this.touch_started = false;\r\n return this.search_results_mouseout(evt);\r\n };\r\n\r\n AbstractChosen.prototype.search_results_touchend = function(evt) {\r\n if (this.touch_started) {\r\n return this.search_results_mouseup(evt);\r\n }\r\n };\r\n\r\n AbstractChosen.prototype.outerHTML = function(element) {\r\n var tmp;\r\n if (element.outerHTML) {\r\n return element.outerHTML;\r\n }\r\n tmp = document.createElement(\"div\");\r\n tmp.appendChild(element);\r\n return tmp.innerHTML;\r\n };\r\n\r\n AbstractChosen.browser_is_supported = function() {\r\n if (window.navigator.appName === \"Microsoft Internet Explorer\") {\r\n return document.documentMode >= 8;\r\n }\r\n if (/iP(od|hone)/i.test(window.navigator.userAgent)) {\r\n return false;\r\n }\r\n if (/Android/i.test(window.navigator.userAgent)) {\r\n return false;\r\n }\r\n return true;\r\n };\r\n\r\n AbstractChosen.default_multiple_text = \"Select Some Options\";\r\n\r\n AbstractChosen.default_single_text = \"Select an Option\";\r\n\r\n AbstractChosen.default_no_result_text = \"No results match\";\r\n\r\n return AbstractChosen;\r\n\r\n })();\r\n\r\n $ = jQuery;\r\n\r\n $.fn.extend({\r\n chosen: function(options) {\r\n if (!AbstractChosen.browser_is_supported()) {\r\n return this;\r\n }\r\n return this.each(function(input_field) {\r\n var $this, chosen;\r\n $this = $(this);\r\n chosen = $this.data('chosen');\r\n if (options === 'destroy' && chosen instanceof Chosen) {\r\n chosen.destroy();\r\n } else if (!(chosen instanceof Chosen)) {\r\n $this.data('chosen', new Chosen(this, options));\r\n }\r\n });\r\n }\r\n });\r\n\r\n Chosen = (function(_super) {\r\n __extends(Chosen, _super);\r\n\r\n function Chosen() {\r\n _ref = Chosen.__super__.constructor.apply(this, arguments);\r\n return _ref;\r\n }\r\n\r\n Chosen.prototype.setup = function() {\r\n this.form_field_jq = $(this.form_field);\r\n this.current_selectedIndex = this.form_field.selectedIndex;\r\n return this.is_rtl = this.form_field_jq.hasClass(\"chosen-rtl\");\r\n };\r\n\r\n Chosen.prototype.set_up_html = function() {\r\n var container_classes, container_props;\r\n container_classes = [\"chosen-container\"];\r\n container_classes.push(\"chosen-container-\" + (this.is_multiple ? \"multi\" : \"single\"));\r\n if (this.inherit_select_classes && this.form_field.className) {\r\n container_classes.push(this.form_field.className);\r\n }\r\n if (this.is_rtl) {\r\n container_classes.push(\"chosen-rtl\");\r\n }\r\n container_props = {\r\n 'class': container_classes.join(' '),\r\n 'style': \"width: \" + (this.container_width()) + \";\",\r\n 'title': this.form_field.title\r\n };\r\n if (this.form_field.id.length) {\r\n container_props.id = this.form_field.id.replace(/[^\\w]/g, '_') + \"_chosen\";\r\n }\r\n this.container = $(\"
      \", container_props);\r\n if (this.is_multiple) {\r\n this.container.html('
        ');\r\n } else {\r\n this.container.html('' + this.default_text + '
          ');\r\n }\r\n this.form_field_jq.hide().after(this.container);\r\n this.dropdown = this.container.find('div.chosen-drop').first();\r\n this.search_field = this.container.find('input').first();\r\n this.search_results = this.container.find('ul.chosen-results').first();\r\n this.search_field_scale();\r\n this.search_no_results = this.container.find('li.no-results').first();\r\n if (this.is_multiple) {\r\n this.search_choices = this.container.find('ul.chosen-choices').first();\r\n this.search_container = this.container.find('li.search-field').first();\r\n } else {\r\n this.search_container = this.container.find('div.chosen-search').first();\r\n this.selected_item = this.container.find('.chosen-single').first();\r\n }\r\n this.results_build();\r\n this.set_tab_index();\r\n return this.set_label_behavior();\r\n };\r\n\r\n Chosen.prototype.on_ready = function() {\r\n return this.form_field_jq.trigger(\"chosen:ready\", {\r\n chosen: this\r\n });\r\n };\r\n\r\n Chosen.prototype.register_observers = function() {\r\n var _this = this;\r\n this.container.bind('touchstart.chosen', function(evt) {\r\n _this.container_mousedown(evt);\r\n return evt.preventDefault();\r\n });\r\n this.container.bind('touchend.chosen', function(evt) {\r\n _this.container_mouseup(evt);\r\n return evt.preventDefault();\r\n });\r\n this.container.bind('mousedown.chosen', function(evt) {\r\n _this.container_mousedown(evt);\r\n });\r\n this.container.bind('mouseup.chosen', function(evt) {\r\n _this.container_mouseup(evt);\r\n });\r\n this.container.bind('mouseenter.chosen', function(evt) {\r\n _this.mouse_enter(evt);\r\n });\r\n this.container.bind('mouseleave.chosen', function(evt) {\r\n _this.mouse_leave(evt);\r\n });\r\n this.search_results.bind('mouseup.chosen', function(evt) {\r\n _this.search_results_mouseup(evt);\r\n });\r\n this.search_results.bind('mouseover.chosen', function(evt) {\r\n _this.search_results_mouseover(evt);\r\n });\r\n this.search_results.bind('mouseout.chosen', function(evt) {\r\n _this.search_results_mouseout(evt);\r\n });\r\n this.search_results.bind('mousewheel.chosen DOMMouseScroll.chosen', function(evt) {\r\n _this.search_results_mousewheel(evt);\r\n });\r\n this.search_results.bind('touchstart.chosen', function(evt) {\r\n _this.search_results_touchstart(evt);\r\n });\r\n this.search_results.bind('touchmove.chosen', function(evt) {\r\n _this.search_results_touchmove(evt);\r\n });\r\n this.search_results.bind('touchend.chosen', function(evt) {\r\n _this.search_results_touchend(evt);\r\n });\r\n this.form_field_jq.bind(\"chosen:updated.chosen\", function(evt) {\r\n _this.results_update_field(evt);\r\n });\r\n this.form_field_jq.bind(\"chosen:activate.chosen\", function(evt) {\r\n _this.activate_field(evt);\r\n });\r\n this.form_field_jq.bind(\"chosen:open.chosen\", function(evt) {\r\n _this.container_mousedown(evt);\r\n });\r\n this.form_field_jq.bind(\"chosen:close.chosen\", function(evt) {\r\n _this.input_blur(evt);\r\n });\r\n this.search_field.bind('blur.chosen', function(evt) {\r\n _this.input_blur(evt);\r\n });\r\n this.search_field.bind('keyup.chosen', function(evt) {\r\n _this.keyup_checker(evt);\r\n });\r\n this.search_field.bind('keydown.chosen', function(evt) {\r\n _this.keydown_checker(evt);\r\n });\r\n this.search_field.bind('focus.chosen', function(evt) {\r\n _this.input_focus(evt);\r\n });\r\n this.search_field.bind('cut.chosen', function(evt) {\r\n _this.clipboard_event_checker(evt);\r\n });\r\n this.search_field.bind('paste.chosen', function(evt) {\r\n _this.clipboard_event_checker(evt);\r\n });\r\n if (this.is_multiple) {\r\n return this.search_choices.bind('click.chosen', function(evt) {\r\n _this.choices_click(evt);\r\n });\r\n } else {\r\n return this.container.bind('click.chosen', function(evt) {\r\n evt.preventDefault();\r\n });\r\n }\r\n };\r\n\r\n Chosen.prototype.destroy = function() {\r\n $(this.container[0].ownerDocument).unbind(\"click.chosen\", this.click_test_action);\r\n if (this.search_field[0].tabIndex) {\r\n this.form_field_jq[0].tabIndex = this.search_field[0].tabIndex;\r\n }\r\n this.container.remove();\r\n this.form_field_jq.removeData('chosen');\r\n return this.form_field_jq.show();\r\n };\r\n\r\n Chosen.prototype.search_field_disabled = function() {\r\n this.is_disabled = this.form_field_jq[0].disabled;\r\n if (this.is_disabled) {\r\n this.container.addClass('chosen-disabled');\r\n this.search_field[0].disabled = true;\r\n if (!this.is_multiple) {\r\n this.selected_item.unbind(\"focus.chosen\", this.activate_action);\r\n }\r\n return this.close_field();\r\n } else {\r\n this.container.removeClass('chosen-disabled');\r\n this.search_field[0].disabled = false;\r\n if (!this.is_multiple) {\r\n return this.selected_item.bind(\"focus.chosen\", this.activate_action);\r\n }\r\n }\r\n };\r\n\r\n Chosen.prototype.container_mousedown = function(evt) {\r\n if (!this.is_disabled) {\r\n if (evt && evt.type === \"mousedown\" && !this.results_showing) {\r\n evt.preventDefault();\r\n }\r\n if (!((evt != null) && ($(evt.target)).hasClass(\"search-choice-close\"))) {\r\n if (!this.active_field) {\r\n if (this.is_multiple) {\r\n this.search_field.val(\"\");\r\n }\r\n $(this.container[0].ownerDocument).bind('click.chosen', this.click_test_action);\r\n this.results_show();\r\n } else if (!this.is_multiple && evt && (($(evt.target)[0] === this.selected_item[0]) || $(evt.target).parents(\"a.chosen-single\").length)) {\r\n evt.preventDefault();\r\n this.results_toggle();\r\n }\r\n return this.activate_field();\r\n }\r\n }\r\n };\r\n\r\n Chosen.prototype.container_mouseup = function(evt) {\r\n if (evt.target.nodeName === \"ABBR\" && !this.is_disabled) {\r\n return this.results_reset(evt);\r\n }\r\n };\r\n\r\n Chosen.prototype.search_results_mousewheel = function(evt) {\r\n var delta;\r\n if (evt.originalEvent) {\r\n delta = evt.originalEvent.deltaY || -evt.originalEvent.wheelDelta || evt.originalEvent.detail;\r\n }\r\n if (delta != null) {\r\n evt.preventDefault();\r\n if (evt.type === 'DOMMouseScroll') {\r\n delta = delta * 40;\r\n }\r\n return this.search_results.scrollTop(delta + this.search_results.scrollTop());\r\n }\r\n };\r\n\r\n Chosen.prototype.blur_test = function(evt) {\r\n if (!this.active_field && this.container.hasClass(\"chosen-container-active\")) {\r\n return this.close_field();\r\n }\r\n };\r\n\r\n Chosen.prototype.close_field = function() {\r\n $(this.container[0].ownerDocument).unbind(\"click.chosen\", this.click_test_action);\r\n this.active_field = false;\r\n this.results_hide();\r\n this.container.removeClass(\"chosen-container-active\");\r\n this.clear_backstroke();\r\n this.show_search_field_default();\r\n return this.search_field_scale();\r\n };\r\n\r\n Chosen.prototype.activate_field = function() {\r\n this.container.addClass(\"chosen-container-active\");\r\n this.active_field = true;\r\n this.search_field.val(this.search_field.val());\r\n return this.search_field.focus();\r\n };\r\n\r\n Chosen.prototype.test_active_click = function(evt) {\r\n var active_container;\r\n active_container = $(evt.target).closest('.chosen-container');\r\n if (active_container.length && this.container[0] === active_container[0]) {\r\n return this.active_field = true;\r\n } else {\r\n return this.close_field();\r\n }\r\n };\r\n\r\n Chosen.prototype.results_build = function() {\r\n this.parsing = true;\r\n this.selected_option_count = null;\r\n this.results_data = SelectParser.select_to_array(this.form_field);\r\n if (this.is_multiple) {\r\n this.search_choices.find(\"li.search-choice\").remove();\r\n } else if (!this.is_multiple) {\r\n this.single_set_selected_text();\r\n if (this.disable_search || this.form_field.options.length <= this.disable_search_threshold) {\r\n this.search_field[0].readOnly = true;\r\n this.container.addClass(\"chosen-container-single-nosearch\");\r\n } else {\r\n this.search_field[0].readOnly = false;\r\n this.container.removeClass(\"chosen-container-single-nosearch\");\r\n }\r\n }\r\n this.update_results_content(this.results_option_build({\r\n first: true\r\n }));\r\n this.search_field_disabled();\r\n this.show_search_field_default();\r\n this.search_field_scale();\r\n return this.parsing = false;\r\n };\r\n\r\n Chosen.prototype.result_do_highlight = function(el) {\r\n var high_bottom, high_top, maxHeight, visible_bottom, visible_top;\r\n if (el.length) {\r\n this.result_clear_highlight();\r\n this.result_highlight = el;\r\n this.result_highlight.addClass(\"highlighted\");\r\n maxHeight = parseInt(this.search_results.css(\"maxHeight\"), 10);\r\n visible_top = this.search_results.scrollTop();\r\n visible_bottom = maxHeight + visible_top;\r\n high_top = this.result_highlight.position().top + this.search_results.scrollTop();\r\n high_bottom = high_top + this.result_highlight.outerHeight();\r\n if (high_bottom >= visible_bottom) {\r\n return this.search_results.scrollTop((high_bottom - maxHeight) > 0 ? high_bottom - maxHeight : 0);\r\n } else if (high_top < visible_top) {\r\n return this.search_results.scrollTop(high_top);\r\n }\r\n }\r\n };\r\n\r\n Chosen.prototype.result_clear_highlight = function() {\r\n if (this.result_highlight) {\r\n this.result_highlight.removeClass(\"highlighted\");\r\n }\r\n return this.result_highlight = null;\r\n };\r\n\r\n Chosen.prototype.results_show = function() {\r\n if (this.is_multiple && this.max_selected_options <= this.choices_count()) {\r\n this.form_field_jq.trigger(\"chosen:maxselected\", {\r\n chosen: this\r\n });\r\n return false;\r\n }\r\n this.container.addClass(\"chosen-with-drop\");\r\n this.results_showing = true;\r\n this.search_field.focus();\r\n this.search_field.val(this.search_field.val());\r\n this.winnow_results();\r\n return this.form_field_jq.trigger(\"chosen:showing_dropdown\", {\r\n chosen: this\r\n });\r\n };\r\n\r\n Chosen.prototype.update_results_content = function(content) {\r\n return this.search_results.html(content);\r\n };\r\n\r\n Chosen.prototype.results_hide = function() {\r\n if (this.results_showing) {\r\n this.result_clear_highlight();\r\n this.container.removeClass(\"chosen-with-drop\");\r\n this.form_field_jq.trigger(\"chosen:hiding_dropdown\", {\r\n chosen: this\r\n });\r\n }\r\n return this.results_showing = false;\r\n };\r\n\r\n Chosen.prototype.set_tab_index = function(el) {\r\n var ti;\r\n if (this.form_field.tabIndex) {\r\n ti = this.form_field.tabIndex;\r\n this.form_field.tabIndex = -1;\r\n return this.search_field[0].tabIndex = ti;\r\n }\r\n };\r\n\r\n Chosen.prototype.set_label_behavior = function() {\r\n var _this = this;\r\n this.form_field_label = this.form_field_jq.parents(\"label\");\r\n if (!this.form_field_label.length && this.form_field.id.length) {\r\n this.form_field_label = $(\"label[for='\" + this.form_field.id + \"']\");\r\n }\r\n if (this.form_field_label.length > 0) {\r\n return this.form_field_label.bind('click.chosen', function(evt) {\r\n if (_this.is_multiple) {\r\n return _this.container_mousedown(evt);\r\n } else {\r\n return _this.activate_field();\r\n }\r\n });\r\n }\r\n };\r\n\r\n Chosen.prototype.show_search_field_default = function() {\r\n if (this.is_multiple && this.choices_count() < 1 && !this.active_field) {\r\n this.search_field.val(this.default_text);\r\n return this.search_field.addClass(\"default\");\r\n } else {\r\n this.search_field.val(\"\");\r\n return this.search_field.removeClass(\"default\");\r\n }\r\n };\r\n\r\n Chosen.prototype.search_results_mouseup = function(evt) {\r\n var target;\r\n target = $(evt.target).hasClass(\"active-result\") ? $(evt.target) : $(evt.target).parents(\".active-result\").first();\r\n if (target.length) {\r\n this.result_highlight = target;\r\n this.result_select(evt);\r\n return this.search_field.focus();\r\n }\r\n };\r\n\r\n Chosen.prototype.search_results_mouseover = function(evt) {\r\n var target;\r\n target = $(evt.target).hasClass(\"active-result\") ? $(evt.target) : $(evt.target).parents(\".active-result\").first();\r\n if (target) {\r\n return this.result_do_highlight(target);\r\n }\r\n };\r\n\r\n Chosen.prototype.search_results_mouseout = function(evt) {\r\n if ($(evt.target).hasClass(\"active-result\" || $(evt.target).parents('.active-result').first())) {\r\n return this.result_clear_highlight();\r\n }\r\n };\r\n\r\n Chosen.prototype.choice_build = function(item) {\r\n var choice, close_link,\r\n _this = this;\r\n choice = $('
        • ', {\r\n \"class\": \"search-choice\"\r\n }).html(\"\" + (this.choice_label(item)) + \"\");\r\n if (item.disabled) {\r\n choice.addClass('search-choice-disabled');\r\n } else {\r\n close_link = $('', {\r\n \"class\": 'search-choice-close',\r\n 'data-option-array-index': item.array_index\r\n });\r\n close_link.bind('click.chosen', function(evt) {\r\n return _this.choice_destroy_link_click(evt);\r\n });\r\n choice.append(close_link);\r\n }\r\n return this.search_container.before(choice);\r\n };\r\n\r\n Chosen.prototype.choice_destroy_link_click = function(evt) {\r\n evt.preventDefault();\r\n evt.stopPropagation();\r\n if (!this.is_disabled) {\r\n return this.choice_destroy($(evt.target));\r\n }\r\n };\r\n\r\n Chosen.prototype.choice_destroy = function(link) {\r\n if (this.result_deselect(link[0].getAttribute(\"data-option-array-index\"))) {\r\n this.show_search_field_default();\r\n if (this.is_multiple && this.choices_count() > 0 && this.search_field.val().length < 1) {\r\n this.results_hide();\r\n }\r\n link.parents('li').first().remove();\r\n return this.search_field_scale();\r\n }\r\n };\r\n\r\n Chosen.prototype.results_reset = function() {\r\n this.reset_single_select_options();\r\n this.form_field.options[0].selected = true;\r\n this.single_set_selected_text();\r\n this.show_search_field_default();\r\n this.results_reset_cleanup();\r\n this.form_field_jq.trigger(\"change\");\r\n if (this.active_field) {\r\n return this.results_hide();\r\n }\r\n };\r\n\r\n Chosen.prototype.results_reset_cleanup = function() {\r\n this.current_selectedIndex = this.form_field.selectedIndex;\r\n return this.selected_item.find(\"abbr\").remove();\r\n };\r\n\r\n Chosen.prototype.result_select = function(evt) {\r\n var high, item;\r\n if (this.result_highlight) {\r\n high = this.result_highlight;\r\n this.result_clear_highlight();\r\n if (this.is_multiple && this.max_selected_options <= this.choices_count()) {\r\n this.form_field_jq.trigger(\"chosen:maxselected\", {\r\n chosen: this\r\n });\r\n return false;\r\n }\r\n if (this.is_multiple) {\r\n high.removeClass(\"active-result\");\r\n } else {\r\n this.reset_single_select_options();\r\n }\r\n item = this.results_data[high[0].getAttribute(\"data-option-array-index\")];\r\n item.selected = true;\r\n this.form_field.options[item.options_index].selected = true;\r\n this.selected_option_count = null;\r\n if (this.is_multiple) {\r\n this.choice_build(item);\r\n } else {\r\n this.single_set_selected_text(this.choice_label(item));\r\n }\r\n if (!((evt.metaKey || evt.ctrlKey) && this.is_multiple)) {\r\n this.results_hide();\r\n }\r\n this.search_field.val(\"\");\r\n if (this.is_multiple || this.form_field.selectedIndex !== this.current_selectedIndex) {\r\n this.form_field_jq.trigger(\"change\", {\r\n 'selected': this.form_field.options[item.options_index].value\r\n });\r\n }\r\n this.current_selectedIndex = this.form_field.selectedIndex;\r\n evt.preventDefault();\r\n return this.search_field_scale();\r\n }\r\n };\r\n\r\n Chosen.prototype.single_set_selected_text = function(text) {\r\n if (text == null) {\r\n text = this.default_text;\r\n }\r\n if (text === this.default_text) {\r\n this.selected_item.addClass(\"chosen-default\");\r\n } else {\r\n this.single_deselect_control_build();\r\n this.selected_item.removeClass(\"chosen-default\");\r\n }\r\n return this.selected_item.find(\"span\").html(text);\r\n };\r\n\r\n Chosen.prototype.result_deselect = function(pos) {\r\n var result_data;\r\n result_data = this.results_data[pos];\r\n if (!this.form_field.options[result_data.options_index].disabled) {\r\n result_data.selected = false;\r\n this.form_field.options[result_data.options_index].selected = false;\r\n this.selected_option_count = null;\r\n this.result_clear_highlight();\r\n if (this.results_showing) {\r\n this.winnow_results();\r\n }\r\n this.form_field_jq.trigger(\"change\", {\r\n deselected: this.form_field.options[result_data.options_index].value\r\n });\r\n this.search_field_scale();\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n\r\n Chosen.prototype.single_deselect_control_build = function() {\r\n if (!this.allow_single_deselect) {\r\n return;\r\n }\r\n if (!this.selected_item.find(\"abbr\").length) {\r\n this.selected_item.find(\"span\").first().after(\"\");\r\n }\r\n return this.selected_item.addClass(\"chosen-single-with-deselect\");\r\n };\r\n\r\n Chosen.prototype.get_search_text = function() {\r\n return $('
          ').text($.trim(this.search_field.val())).html();\r\n };\r\n\r\n Chosen.prototype.winnow_results_set_highlight = function() {\r\n var do_high, selected_results;\r\n selected_results = !this.is_multiple ? this.search_results.find(\".result-selected.active-result\") : [];\r\n do_high = selected_results.length ? selected_results.first() : this.search_results.find(\".active-result\").first();\r\n if (do_high != null) {\r\n return this.result_do_highlight(do_high);\r\n }\r\n };\r\n\r\n Chosen.prototype.no_results = function(terms) {\r\n var no_results_html;\r\n no_results_html = $('
        • ' + this.results_none_found + ' \"\"
        • ');\r\n no_results_html.find(\"span\").first().html(terms);\r\n this.search_results.append(no_results_html);\r\n return this.form_field_jq.trigger(\"chosen:no_results\", {\r\n chosen: this\r\n });\r\n };\r\n\r\n Chosen.prototype.no_results_clear = function() {\r\n return this.search_results.find(\".no-results\").remove();\r\n };\r\n\r\n Chosen.prototype.keydown_arrow = function() {\r\n var next_sib;\r\n if (this.results_showing && this.result_highlight) {\r\n next_sib = this.result_highlight.nextAll(\"li.active-result\").first();\r\n if (next_sib) {\r\n return this.result_do_highlight(next_sib);\r\n }\r\n } else {\r\n return this.results_show();\r\n }\r\n };\r\n\r\n Chosen.prototype.keyup_arrow = function() {\r\n var prev_sibs;\r\n if (!this.results_showing && !this.is_multiple) {\r\n return this.results_show();\r\n } else if (this.result_highlight) {\r\n prev_sibs = this.result_highlight.prevAll(\"li.active-result\");\r\n if (prev_sibs.length) {\r\n return this.result_do_highlight(prev_sibs.first());\r\n } else {\r\n if (this.choices_count() > 0) {\r\n this.results_hide();\r\n }\r\n return this.result_clear_highlight();\r\n }\r\n }\r\n };\r\n\r\n Chosen.prototype.keydown_backstroke = function() {\r\n var next_available_destroy;\r\n if (this.pending_backstroke) {\r\n this.choice_destroy(this.pending_backstroke.find(\"a\").first());\r\n return this.clear_backstroke();\r\n } else {\r\n next_available_destroy = this.search_container.siblings(\"li.search-choice\").last();\r\n if (next_available_destroy.length && !next_available_destroy.hasClass(\"search-choice-disabled\")) {\r\n this.pending_backstroke = next_available_destroy;\r\n if (this.single_backstroke_delete) {\r\n return this.keydown_backstroke();\r\n } else {\r\n return this.pending_backstroke.addClass(\"search-choice-focus\");\r\n }\r\n }\r\n }\r\n };\r\n\r\n Chosen.prototype.clear_backstroke = function() {\r\n if (this.pending_backstroke) {\r\n this.pending_backstroke.removeClass(\"search-choice-focus\");\r\n }\r\n return this.pending_backstroke = null;\r\n };\r\n\r\n Chosen.prototype.keydown_checker = function(evt) {\r\n var stroke, _ref1;\r\n stroke = (_ref1 = evt.which) != null ? _ref1 : evt.keyCode;\r\n this.search_field_scale();\r\n if (stroke !== 8 && this.pending_backstroke) {\r\n this.clear_backstroke();\r\n }\r\n switch (stroke) {\r\n case 8:\r\n this.backstroke_length = this.search_field.val().length;\r\n break;\r\n case 9:\r\n if (this.results_showing && !this.is_multiple) {\r\n this.result_select(evt);\r\n }\r\n this.mouse_on_container = false;\r\n break;\r\n case 13:\r\n if (this.results_showing) {\r\n evt.preventDefault();\r\n }\r\n break;\r\n case 32:\r\n if (this.disable_search) {\r\n evt.preventDefault();\r\n }\r\n break;\r\n case 38:\r\n evt.preventDefault();\r\n this.keyup_arrow();\r\n break;\r\n case 40:\r\n evt.preventDefault();\r\n this.keydown_arrow();\r\n break;\r\n }\r\n };\r\n\r\n Chosen.prototype.search_field_scale = function() {\r\n var div, f_width, h, style, style_block, styles, w, _i, _len;\r\n if (this.is_multiple) {\r\n h = 0;\r\n w = 0;\r\n style_block = \"position:absolute; left: -1000px; top: -1000px; display:none;\";\r\n styles = ['font-size', 'font-style', 'font-weight', 'font-family', 'line-height', 'text-transform', 'letter-spacing'];\r\n for (_i = 0, _len = styles.length; _i < _len; _i++) {\r\n style = styles[_i];\r\n style_block += style + \":\" + this.search_field.css(style) + \";\";\r\n }\r\n div = $('
          ', {\r\n 'style': style_block\r\n });\r\n div.text(this.search_field.val());\r\n $('body').append(div);\r\n w = div.width() + 25;\r\n div.remove();\r\n f_width = this.container.outerWidth();\r\n if (w > f_width - 10) {\r\n w = f_width - 10;\r\n }\r\n return this.search_field.css({\r\n 'width': w + 'px'\r\n });\r\n }\r\n };\r\n\r\n return Chosen;\r\n\r\n })(AbstractChosen);\r\n\r\n}).call(this);\r\n","/* ========================================================================\r\n * bootstrap-switch - v3.3.2\r\n * http://www.bootstrap-switch.org\r\n * ========================================================================\r\n * Copyright 2012-2013 Mattia Larentis\r\n *\r\n * ========================================================================\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n * ========================================================================\r\n */\r\n\r\n(function() {\r\n\tvar __slice = [].slice;\r\n\r\n\t(function($, window) {\r\n\t\t\"use strict\";\r\n\t\tvar BootstrapSwitch;\r\n\t\tBootstrapSwitch = (function() {\r\n\t\t\tfunction BootstrapSwitch(element, options) {\r\n\t\t\t\tif (options == null) {\r\n\t\t\t\t\toptions = {};\r\n\t\t\t\t}\r\n\t\t\t\tthis.$element = $(element);\r\n\t\t\t\tthis.options = $.extend({}, $.fn.bootstrapSwitch.defaults, {\r\n\t\t\t\t\tstate: this.$element.is(\":checked\"),\r\n\t\t\t\t\tsize: this.$element.data(\"size\"),\r\n\t\t\t\t\tanimate: this.$element.data(\"animate\"),\r\n\t\t\t\t\tdisabled: this.$element.is(\":disabled\"),\r\n\t\t\t\t\treadonly: this.$element.is(\"[readonly]\"),\r\n\t\t\t\t\tindeterminate: this.$element.data(\"indeterminate\"),\r\n\t\t\t\t\tinverse: this.$element.data(\"inverse\"),\r\n\t\t\t\t\tradioAllOff: this.$element.data(\"radio-all-off\"),\r\n\t\t\t\t\tonColor: this.$element.data(\"on-color\"),\r\n\t\t\t\t\toffColor: this.$element.data(\"off-color\"),\r\n\t\t\t\t\tonText: this.$element.data(\"on-text\"),\r\n\t\t\t\t\toffText: this.$element.data(\"off-text\"),\r\n\t\t\t\t\tlabelText: this.$element.data(\"label-text\"),\r\n\t\t\t\t\thandleWidth: this.$element.data(\"handle-width\"),\r\n\t\t\t\t\tlabelWidth: this.$element.data(\"label-width\"),\r\n\t\t\t\t\tbaseClass: this.$element.data(\"base-class\"),\r\n\t\t\t\t\twrapperClass: this.$element.data(\"wrapper-class\")\r\n\t\t\t\t}, options);\r\n\t\t\t\tthis.$wrapper = $(\"
          \", {\r\n\t\t\t\t\t\"class\": (function(_this) {\r\n\t\t\t\t\t\treturn function() {\r\n\t\t\t\t\t\t\tvar classes;\r\n\t\t\t\t\t\t\tclasses = [\"\" + _this.options.baseClass].concat(_this._getClasses(_this.options.wrapperClass));\r\n\t\t\t\t\t\t\tclasses.push(_this.options.state ? \"\" + _this.options.baseClass + \"-on\" : \"\" + _this.options.baseClass + \"-off\");\r\n\t\t\t\t\t\t\tif (_this.options.size != null) {\r\n\t\t\t\t\t\t\t\tclasses.push(\"\" + _this.options.baseClass + \"-\" + _this.options.size);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif (_this.options.disabled) {\r\n\t\t\t\t\t\t\t\tclasses.push(\"\" + _this.options.baseClass + \"-disabled\");\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif (_this.options.readonly) {\r\n\t\t\t\t\t\t\t\tclasses.push(\"\" + _this.options.baseClass + \"-readonly\");\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif (_this.options.indeterminate) {\r\n\t\t\t\t\t\t\t\tclasses.push(\"\" + _this.options.baseClass + \"-indeterminate\");\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif (_this.options.inverse) {\r\n\t\t\t\t\t\t\t\tclasses.push(\"\" + _this.options.baseClass + \"-inverse\");\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif (_this.$element.attr(\"id\")) {\r\n\t\t\t\t\t\t\t\tclasses.push(\"\" + _this.options.baseClass + \"-id-\" + (_this.$element.attr(\"id\")));\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\treturn classes.join(\" \");\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t})(this)()\r\n\t\t\t\t});\r\n\t\t\t\tthis.$container = $(\"
          \", {\r\n\t\t\t\t\t\"class\": \"\" + this.options.baseClass + \"-container\"\r\n\t\t\t\t});\r\n\t\t\t\tthis.$on = $(\"\", {\r\n\t\t\t\t\thtml: this.options.onText,\r\n\t\t\t\t\t\"class\": \"\" + this.options.baseClass + \"-handle-on \" + this.options.baseClass + \"-\" + this.options.onColor\r\n\t\t\t\t});\r\n\t\t\t\tthis.$off = $(\"\", {\r\n\t\t\t\t\thtml: this.options.offText,\r\n\t\t\t\t\t\"class\": \"\" + this.options.baseClass + \"-handle-off \" + this.options.baseClass + \"-\" + this.options.offColor\r\n\t\t\t\t});\r\n\t\t\t\tthis.$label = $(\"\", {\r\n\t\t\t\t\thtml: this.options.labelText,\r\n\t\t\t\t\t\"class\": \"\" + this.options.baseClass + \"-label\"\r\n\t\t\t\t});\r\n\t\t\t\tthis.$element.on(\"init.bootstrapSwitch\", (function(_this) {\r\n\t\t\t\t\treturn function() {\r\n\t\t\t\t\t\treturn _this.options.onInit.apply(element, arguments);\r\n\t\t\t\t\t};\r\n\t\t\t\t})(this));\r\n\t\t\t\tthis.$element.on(\"switchChange.bootstrapSwitch\", (function(_this) {\r\n\t\t\t\t\treturn function() {\r\n\t\t\t\t\t\treturn _this.options.onSwitchChange.apply(element, arguments);\r\n\t\t\t\t\t};\r\n\t\t\t\t})(this));\r\n\t\t\t\tthis.$container = this.$element.wrap(this.$container).parent();\r\n\t\t\t\tthis.$wrapper = this.$container.wrap(this.$wrapper).parent();\r\n\t\t\t\tthis.$element.before(this.options.inverse ? this.$off : this.$on).before(this.$label).before(this.options.inverse ? this.$on : this.$off);\r\n\t\t\t\tif (this.options.indeterminate) {\r\n\t\t\t\t\tthis.$element.prop(\"indeterminate\", true);\r\n\t\t\t\t}\r\n\t\t\t\tthis._init();\r\n\t\t\t\tthis._elementHandlers();\r\n\t\t\t\tthis._handleHandlers();\r\n\t\t\t\tthis._labelHandlers();\r\n\t\t\t\tthis._formHandler();\r\n\t\t\t\tthis._externalLabelHandler();\r\n\t\t\t\tthis.$element.trigger(\"init.bootstrapSwitch\");\r\n\t\t\t}\r\n\r\n\t\t\tBootstrapSwitch.prototype._constructor = BootstrapSwitch;\r\n\r\n\t\t\tBootstrapSwitch.prototype.lastStateChange = 0;\r\n\r\n\t\t\tBootstrapSwitch.prototype.state = function(value, skip) {\r\n\t\t\t\tDate.now = Date.now || function() { return +new Date; };\r\n\r\n\t\t\t\t/* RC - FIX FOR DOUBLE PRESS */\r\n\t\t\t\tvar now = Date.now();\r\n\r\n\t\t\t\t// if switched in the last 0.2s, ignore\r\n\t\t\t\tif ( now - this.lastStateChange < 500) {\r\n\t\t\t\t\treturn this.$element;\r\n\t\t\t\t}\r\n\t\t\t\tthis.lastStateChange = now;\r\n\r\n\t\t\t\tif (typeof value === \"undefined\") {\r\n\t\t\t\t\treturn this.options.state;\r\n\t\t\t\t}\r\n\t\t\t\tif (this.options.disabled || this.options.readonly) {\r\n\t\t\t\t\treturn this.$element;\r\n\t\t\t\t}\r\n\t\t\t\tif (this.options.state && !this.options.radioAllOff && this.$element.is(\":radio\")) {\r\n\t\t\t\t\treturn this.$element;\r\n\t\t\t\t}\r\n\t\t\t\tif (this.options.indeterminate) {\r\n\t\t\t\t\tthis.indeterminate(false);\r\n\t\t\t\t}\r\n\t\t\t\tvalue = !!value;\r\n\t\t\t\tthis.$element.prop(\"checked\", value).trigger(\"change.bootstrapSwitch\", skip);\r\n\t\t\t\treturn this.$element;\r\n\t\t\t};\r\n\r\n\t\t\tBootstrapSwitch.prototype.toggleState = function(skip) {\r\n\t\t\t\tif (this.options.disabled || this.options.readonly) {\r\n\t\t\t\t\treturn this.$element;\r\n\t\t\t\t}\r\n\t\t\t\tif (this.options.indeterminate) {\r\n\t\t\t\t\tthis.indeterminate(false);\r\n\t\t\t\t\treturn this.state(true);\r\n\t\t\t\t} else {\r\n\t\t\t\t\treturn this.$element.prop(\"checked\", !this.options.state).trigger(\"change.bootstrapSwitch\", skip);\r\n\t\t\t\t}\r\n\t\t\t};\r\n\r\n\t\t\tBootstrapSwitch.prototype.size = function(value) {\r\n\t\t\t\tif (typeof value === \"undefined\") {\r\n\t\t\t\t\treturn this.options.size;\r\n\t\t\t\t}\r\n\t\t\t\tif (this.options.size != null) {\r\n\t\t\t\t\tthis.$wrapper.removeClass(\"\" + this.options.baseClass + \"-\" + this.options.size);\r\n\t\t\t\t}\r\n\t\t\t\tif (value) {\r\n\t\t\t\t\tthis.$wrapper.addClass(\"\" + this.options.baseClass + \"-\" + value);\r\n\t\t\t\t}\r\n\t\t\t\tthis._width();\r\n\t\t\t\tthis._containerPosition();\r\n\t\t\t\tthis.options.size = value;\r\n\t\t\t\treturn this.$element;\r\n\t\t\t};\r\n\r\n\t\t\tBootstrapSwitch.prototype.animate = function(value) {\r\n\t\t\t\tif (typeof value === \"undefined\") {\r\n\t\t\t\t\treturn this.options.animate;\r\n\t\t\t\t}\r\n\t\t\t\tvalue = !!value;\r\n\t\t\t\tif (value === this.options.animate) {\r\n\t\t\t\t\treturn this.$element;\r\n\t\t\t\t}\r\n\t\t\t\treturn this.toggleAnimate();\r\n\t\t\t};\r\n\r\n\t\t\tBootstrapSwitch.prototype.toggleAnimate = function() {\r\n\t\t\t\tthis.options.animate = !this.options.animate;\r\n\t\t\t\tthis.$wrapper.toggleClass(\"\" + this.options.baseClass + \"-animate\");\r\n\t\t\t\treturn this.$element;\r\n\t\t\t};\r\n\r\n\t\t\tBootstrapSwitch.prototype.disabled = function(value) {\r\n\t\t\t\tif (typeof value === \"undefined\") {\r\n\t\t\t\t\treturn this.options.disabled;\r\n\t\t\t\t}\r\n\t\t\t\tvalue = !!value;\r\n\t\t\t\tif (value === this.options.disabled) {\r\n\t\t\t\t\treturn this.$element;\r\n\t\t\t\t}\r\n\t\t\t\treturn this.toggleDisabled();\r\n\t\t\t};\r\n\r\n\t\t\tBootstrapSwitch.prototype.toggleDisabled = function() {\r\n\t\t\t\tthis.options.disabled = !this.options.disabled;\r\n\t\t\t\tthis.$element.prop(\"disabled\", this.options.disabled);\r\n\t\t\t\tthis.$wrapper.toggleClass(\"\" + this.options.baseClass + \"-disabled\");\r\n\t\t\t\treturn this.$element;\r\n\t\t\t};\r\n\r\n\t\t\tBootstrapSwitch.prototype.readonly = function(value) {\r\n\t\t\t\tif (typeof value === \"undefined\") {\r\n\t\t\t\t\treturn this.options.readonly;\r\n\t\t\t\t}\r\n\t\t\t\tvalue = !!value;\r\n\t\t\t\tif (value === this.options.readonly) {\r\n\t\t\t\t\treturn this.$element;\r\n\t\t\t\t}\r\n\t\t\t\treturn this.toggleReadonly();\r\n\t\t\t};\r\n\r\n\t\t\tBootstrapSwitch.prototype.toggleReadonly = function() {\r\n\t\t\t\tthis.options.readonly = !this.options.readonly;\r\n\t\t\t\tthis.$element.prop(\"readonly\", this.options.readonly);\r\n\t\t\t\tthis.$wrapper.toggleClass(\"\" + this.options.baseClass + \"-readonly\");\r\n\t\t\t\treturn this.$element;\r\n\t\t\t};\r\n\r\n\t\t\tBootstrapSwitch.prototype.indeterminate = function(value) {\r\n\t\t\t\tif (typeof value === \"undefined\") {\r\n\t\t\t\t\treturn this.options.indeterminate;\r\n\t\t\t\t}\r\n\t\t\t\tvalue = !!value;\r\n\t\t\t\tif (value === this.options.indeterminate) {\r\n\t\t\t\t\treturn this.$element;\r\n\t\t\t\t}\r\n\t\t\t\treturn this.toggleIndeterminate();\r\n\t\t\t};\r\n\r\n\t\t\tBootstrapSwitch.prototype.toggleIndeterminate = function() {\r\n\t\t\t\tthis.options.indeterminate = !this.options.indeterminate;\r\n\t\t\t\tthis.$element.prop(\"indeterminate\", this.options.indeterminate);\r\n\t\t\t\tthis.$wrapper.toggleClass(\"\" + this.options.baseClass + \"-indeterminate\");\r\n\t\t\t\tthis._containerPosition();\r\n\t\t\t\treturn this.$element;\r\n\t\t\t};\r\n\r\n\t\t\tBootstrapSwitch.prototype.inverse = function(value) {\r\n\t\t\t\tif (typeof value === \"undefined\") {\r\n\t\t\t\t\treturn this.options.inverse;\r\n\t\t\t\t}\r\n\t\t\t\tvalue = !!value;\r\n\t\t\t\tif (value === this.options.inverse) {\r\n\t\t\t\t\treturn this.$element;\r\n\t\t\t\t}\r\n\t\t\t\treturn this.toggleInverse();\r\n\t\t\t};\r\n\r\n\t\t\tBootstrapSwitch.prototype.toggleInverse = function() {\r\n\t\t\t\tvar $off, $on;\r\n\t\t\t\tthis.$wrapper.toggleClass(\"\" + this.options.baseClass + \"-inverse\");\r\n\t\t\t\t$on = this.$on.clone(true);\r\n\t\t\t\t$off = this.$off.clone(true);\r\n\t\t\t\tthis.$on.replaceWith($off);\r\n\t\t\t\tthis.$off.replaceWith($on);\r\n\t\t\t\tthis.$on = $off;\r\n\t\t\t\tthis.$off = $on;\r\n\t\t\t\tthis.options.inverse = !this.options.inverse;\r\n\t\t\t\treturn this.$element;\r\n\t\t\t};\r\n\r\n\t\t\tBootstrapSwitch.prototype.onColor = function(value) {\r\n\t\t\t\tvar color;\r\n\t\t\t\tcolor = this.options.onColor;\r\n\t\t\t\tif (typeof value === \"undefined\") {\r\n\t\t\t\t\treturn color;\r\n\t\t\t\t}\r\n\t\t\t\tif (color != null) {\r\n\t\t\t\t\tthis.$on.removeClass(\"\" + this.options.baseClass + \"-\" + color);\r\n\t\t\t\t}\r\n\t\t\t\tthis.$on.addClass(\"\" + this.options.baseClass + \"-\" + value);\r\n\t\t\t\tthis.options.onColor = value;\r\n\t\t\t\treturn this.$element;\r\n\t\t\t};\r\n\r\n\t\t\tBootstrapSwitch.prototype.offColor = function(value) {\r\n\t\t\t\tvar color;\r\n\t\t\t\tcolor = this.options.offColor;\r\n\t\t\t\tif (typeof value === \"undefined\") {\r\n\t\t\t\t\treturn color;\r\n\t\t\t\t}\r\n\t\t\t\tif (color != null) {\r\n\t\t\t\t\tthis.$off.removeClass(\"\" + this.options.baseClass + \"-\" + color);\r\n\t\t\t\t}\r\n\t\t\t\tthis.$off.addClass(\"\" + this.options.baseClass + \"-\" + value);\r\n\t\t\t\tthis.options.offColor = value;\r\n\t\t\t\treturn this.$element;\r\n\t\t\t};\r\n\r\n\t\t\tBootstrapSwitch.prototype.onText = function(value) {\r\n\t\t\t\tif (typeof value === \"undefined\") {\r\n\t\t\t\t\treturn this.options.onText;\r\n\t\t\t\t}\r\n\t\t\t\tthis.$on.html(value);\r\n\t\t\t\tthis._width();\r\n\t\t\t\tthis._containerPosition();\r\n\t\t\t\tthis.options.onText = value;\r\n\t\t\t\treturn this.$element;\r\n\t\t\t};\r\n\r\n\t\t\tBootstrapSwitch.prototype.offText = function(value) {\r\n\t\t\t\tif (typeof value === \"undefined\") {\r\n\t\t\t\t\treturn this.options.offText;\r\n\t\t\t\t}\r\n\t\t\t\tthis.$off.html(value);\r\n\t\t\t\tthis._width();\r\n\t\t\t\tthis._containerPosition();\r\n\t\t\t\tthis.options.offText = value;\r\n\t\t\t\treturn this.$element;\r\n\t\t\t};\r\n\r\n\t\t\tBootstrapSwitch.prototype.labelText = function(value) {\r\n\t\t\t\tif (typeof value === \"undefined\") {\r\n\t\t\t\t\treturn this.options.labelText;\r\n\t\t\t\t}\r\n\t\t\t\tthis.$label.html(value);\r\n\t\t\t\tthis._width();\r\n\t\t\t\tthis.options.labelText = value;\r\n\t\t\t\treturn this.$element;\r\n\t\t\t};\r\n\r\n\t\t\tBootstrapSwitch.prototype.handleWidth = function(value) {\r\n\t\t\t\tif (typeof value === \"undefined\") {\r\n\t\t\t\t\treturn this.options.handleWidth;\r\n\t\t\t\t}\r\n\t\t\t\tthis.options.handleWidth = value;\r\n\t\t\t\tthis._width();\r\n\t\t\t\tthis._containerPosition();\r\n\t\t\t\treturn this.$element;\r\n\t\t\t};\r\n\r\n\t\t\tBootstrapSwitch.prototype.labelWidth = function(value) {\r\n\t\t\t\tif (typeof value === \"undefined\") {\r\n\t\t\t\t\treturn this.options.labelWidth;\r\n\t\t\t\t}\r\n\t\t\t\tthis.options.labelWidth = value;\r\n\t\t\t\tthis._width();\r\n\t\t\t\tthis._containerPosition();\r\n\t\t\t\treturn this.$element;\r\n\t\t\t};\r\n\r\n\t\t\tBootstrapSwitch.prototype.baseClass = function(value) {\r\n\t\t\t\treturn this.options.baseClass;\r\n\t\t\t};\r\n\r\n\t\t\tBootstrapSwitch.prototype.wrapperClass = function(value) {\r\n\t\t\t\tif (typeof value === \"undefined\") {\r\n\t\t\t\t\treturn this.options.wrapperClass;\r\n\t\t\t\t}\r\n\t\t\t\tif (!value) {\r\n\t\t\t\t\tvalue = $.fn.bootstrapSwitch.defaults.wrapperClass;\r\n\t\t\t\t}\r\n\t\t\t\tthis.$wrapper.removeClass(this._getClasses(this.options.wrapperClass).join(\" \"));\r\n\t\t\t\tthis.$wrapper.addClass(this._getClasses(value).join(\" \"));\r\n\t\t\t\tthis.options.wrapperClass = value;\r\n\t\t\t\treturn this.$element;\r\n\t\t\t};\r\n\r\n\t\t\tBootstrapSwitch.prototype.radioAllOff = function(value) {\r\n\t\t\t\tif (typeof value === \"undefined\") {\r\n\t\t\t\t\treturn this.options.radioAllOff;\r\n\t\t\t\t}\r\n\t\t\t\tvalue = !!value;\r\n\t\t\t\tif (value === this.options.radioAllOff) {\r\n\t\t\t\t\treturn this.$element;\r\n\t\t\t\t}\r\n\t\t\t\tthis.options.radioAllOff = value;\r\n\t\t\t\treturn this.$element;\r\n\t\t\t};\r\n\r\n\t\t\tBootstrapSwitch.prototype.onInit = function(value) {\r\n\t\t\t\tif (typeof value === \"undefined\") {\r\n\t\t\t\t\treturn this.options.onInit;\r\n\t\t\t\t}\r\n\t\t\t\tif (!value) {\r\n\t\t\t\t\tvalue = $.fn.bootstrapSwitch.defaults.onInit;\r\n\t\t\t\t}\r\n\t\t\t\tthis.options.onInit = value;\r\n\t\t\t\treturn this.$element;\r\n\t\t\t};\r\n\r\n\t\t\tBootstrapSwitch.prototype.onSwitchChange = function(value) {\r\n\t\t\t\tif (typeof value === \"undefined\") {\r\n\t\t\t\t\treturn this.options.onSwitchChange;\r\n\t\t\t\t}\r\n\t\t\t\tif (!value) {\r\n\t\t\t\t\tvalue = $.fn.bootstrapSwitch.defaults.onSwitchChange;\r\n\t\t\t\t}\r\n\t\t\t\tthis.options.onSwitchChange = value;\r\n\t\t\t\treturn this.$element;\r\n\t\t\t};\r\n\r\n\t\t\tBootstrapSwitch.prototype.destroy = function() {\r\n\t\t\t\tvar $form;\r\n\t\t\t\t$form = this.$element.closest(\"form\");\r\n\t\t\t\tif ($form.length) {\r\n\t\t\t\t\t$form.off(\"reset.bootstrapSwitch\").removeData(\"bootstrap-switch\");\r\n\t\t\t\t}\r\n\t\t\t\tthis.$container.children().not(this.$element).remove();\r\n\t\t\t\tthis.$element.unwrap().unwrap().off(\".bootstrapSwitch\").removeData(\"bootstrap-switch\");\r\n\t\t\t\treturn this.$element;\r\n\t\t\t};\r\n\r\n\t\t\tBootstrapSwitch.prototype._width = function() {\r\n\t\t\t\tvar $handles, handleWidth;\r\n\t\t\t\t$handles = this.$on.add(this.$off);\r\n\t\t\t\t$handles.add(this.$label).css(\"width\", \"\");\r\n\t\t\t\thandleWidth = this.options.handleWidth === \"auto\" ? Math.max(this.$on.width(), this.$off.width()) : this.options.handleWidth;\r\n\t\t\t\t$handles.width(handleWidth);\r\n\t\t\t\tthis.$label.width((function(_this) {\r\n\t\t\t\t\treturn function(index, width) {\r\n\t\t\t\t\t\tif (_this.options.labelWidth !== \"auto\") {\r\n\t\t\t\t\t\t\treturn _this.options.labelWidth;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (width < handleWidth) {\r\n\t\t\t\t\t\t\treturn handleWidth;\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\treturn width;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t};\r\n\t\t\t\t})(this));\r\n\t\t\t\tthis._handleWidth = this.$on.outerWidth();\r\n\t\t\t\tthis._labelWidth = this.$label.outerWidth();\r\n\t\t\t\tthis.$container.width((this._handleWidth * 2) + this._labelWidth);\r\n\t\t\t\treturn this.$wrapper.width(this._handleWidth + this._labelWidth);\r\n\t\t\t};\r\n\r\n\t\t\tBootstrapSwitch.prototype._containerPosition = function(state, callback) {\r\n\t\t\t\tif (state == null) {\r\n\t\t\t\t\tstate = this.options.state;\r\n\t\t\t\t}\r\n\t\t\t\tthis.$container.css(\"margin-left\", (function(_this) {\r\n\t\t\t\t\treturn function() {\r\n\t\t\t\t\t\tvar values;\r\n\t\t\t\t\t\tvalues = [0, \"-\" + _this._handleWidth + \"px\"];\r\n\t\t\t\t\t\tif (_this.options.indeterminate) {\r\n\t\t\t\t\t\t\treturn \"-\" + (_this._handleWidth / 2) + \"px\";\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (state) {\r\n\t\t\t\t\t\t\tif (_this.options.inverse) {\r\n\t\t\t\t\t\t\t\treturn values[1];\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\treturn values[0];\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tif (_this.options.inverse) {\r\n\t\t\t\t\t\t\t\treturn values[0];\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\treturn values[1];\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t};\r\n\t\t\t\t})(this));\r\n\t\t\t\tif (!callback) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\treturn setTimeout(function() {\r\n\t\t\t\t\treturn callback();\r\n\t\t\t\t}, 50);\r\n\t\t\t};\r\n\r\n\t\t\tBootstrapSwitch.prototype._init = function() {\r\n\t\t\t\tvar init, initInterval;\r\n\t\t\t\tinit = (function(_this) {\r\n\t\t\t\t\treturn function() {\r\n\t\t\t\t\t\t_this._width();\r\n\t\t\t\t\t\treturn _this._containerPosition(null, function() {\r\n\t\t\t\t\t\t\tif (_this.options.animate) {\r\n\t\t\t\t\t\t\t\treturn _this.$wrapper.addClass(\"\" + _this.options.baseClass + \"-animate\");\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t};\r\n\t\t\t\t})(this);\r\n\t\t\t\tif (this.$wrapper.is(\":visible\")) {\r\n\t\t\t\t\treturn init();\r\n\t\t\t\t}\r\n\t\t\t\treturn initInterval = window.setInterval((function(_this) {\r\n\t\t\t\t\treturn function() {\r\n\t\t\t\t\t\tif (_this.$wrapper.is(\":visible\")) {\r\n\t\t\t\t\t\t\tinit();\r\n\t\t\t\t\t\t\treturn window.clearInterval(initInterval);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t};\r\n\t\t\t\t})(this), 50);\r\n\t\t\t};\r\n\r\n\t\t\tBootstrapSwitch.prototype._elementHandlers = function() {\r\n\t\t\t\treturn this.$element.on({\r\n\t\t\t\t\t\"change.bootstrapSwitch\": (function(_this) {\r\n\t\t\t\t\t\treturn function(e, skip) {\r\n\t\t\t\t\t\t\tvar state;\r\n\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\t//e.stopImmediatePropagation();\r\n\t\t\t\t\t\t\tstate = _this.$element.is(\":checked\");\r\n\t\t\t\t\t\t\t_this._containerPosition(state);\r\n\t\t\t\t\t\t\tif (state === _this.options.state) {\r\n\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t_this.options.state = state;\r\n\t\t\t\t\t\t\t_this.$wrapper.toggleClass(\"\" + _this.options.baseClass + \"-off\").toggleClass(\"\" + _this.options.baseClass + \"-on\");\r\n\t\t\t\t\t\t\tif (!skip) {\r\n\t\t\t\t\t\t\t\tif (_this.$element.is(\":radio\")) {\r\n\t\t\t\t\t\t\t\t\t$(\"[name='\" + (_this.$element.attr('name')) + \"']\").not(_this.$element).prop(\"checked\", false).trigger(\"change.bootstrapSwitch\", true);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\treturn _this.$element.trigger(\"switchChange.bootstrapSwitch\", [state]);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t})(this),\r\n\t\t\t\t\t\"focus.bootstrapSwitch\": (function(_this) {\r\n\t\t\t\t\t\treturn function(e) {\r\n\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\t//return _this.$wrapper.addClass(_this.options.baseClass + \"-focused\");\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t})(this),\r\n\t\t\t\t\t\"blur.bootstrapSwitch\": (function(_this) {\r\n\t\t\t\t\t\treturn function(e) {\r\n\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\t//return _this.$wrapper.removeClass(_this.options.baseClass + \"-focused\");\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t})(this),\r\n\t\t\t\t\t\"keydown.bootstrapSwitch\": (function(_this) {\r\n\t\t\t\t\t\treturn function(e) {\r\n\t\t\t\t\t\t\tif (!e.which || _this.options.disabled || _this.options.readonly) {\r\n\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tswitch (e.which) {\r\n\t\t\t\t\t\t\t\tcase 37:\r\n\t\t\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\t\te.stopImmediatePropagation();\r\n\t\t\t\t\t\t\t\treturn _this.state(false);\r\n\t\t\t\t\t\t\t\tcase 39:\r\n\t\t\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\t\te.stopImmediatePropagation();\r\n\t\t\t\t\t\t\t\treturn _this.state(true);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t})(this)\r\n\t\t\t\t});\r\n\t\t\t};\r\n\r\n\t\t\tBootstrapSwitch.prototype._handleHandlers = function() {\r\n\t\t\t\tthis.$on.on(\"click.bootstrapSwitch\", (function(_this) {\r\n\t\t\t\t\treturn function(event) {\r\n\t\t\t\t\t\tevent.preventDefault();\r\n\t\t\t\t\t\tevent.stopPropagation();\r\n\t\t\t\t\t\t_this.state(false);\r\n\t\t\t\t\t\treturn _this.$element.trigger(\"focus.bootstrapSwitch\");\r\n\t\t\t\t\t};\r\n\t\t\t\t})(this));\r\n\r\n\t\t\t\treturn this.$off.on(\"click.bootstrapSwitch\", (function(_this) {\r\n\t\t\t\t\treturn function(event) {\r\n\t\t\t\t\t\tevent.preventDefault();\r\n\t\t\t\t\t\tevent.stopPropagation();\r\n\t\t\t\t\t\t_this.state(true);\r\n\t\t\t\t\t\treturn _this.$element.trigger(\"focus.bootstrapSwitch\");\r\n\t\t\t\t\t};\r\n\t\t\t\t})(this));\r\n\t\t\t};\r\n\r\n\t\t\tBootstrapSwitch.prototype._labelHandlers = function() {\r\n\t\t\t\treturn this.$label.on({\r\n\t\t\t\t\t\"mousedown.bootstrapSwitch touchstart.bootstrapSwitch\": (function(_this) {\r\n\t\t\t\t\t\treturn function(e) {\r\n\t\t\t\t\t\t\tif (_this._dragStart || _this.options.disabled || _this.options.readonly) {\r\n\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\te.stopPropagation();\r\n\t\t\t\t\t\t\t_this._dragStart = (e.pageX || e.originalEvent.touches[0].pageX) - parseInt(_this.$container.css(\"margin-left\"), 10);\r\n\t\t\t\t\t\t\tif (_this.options.animate) {\r\n\t\t\t\t\t\t\t\t_this.$wrapper.removeClass(\"\" + _this.options.baseClass + \"-animate\");\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\treturn _this.$element.trigger(\"focus.bootstrapSwitch\");\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t})(this),\r\n\t\t\t\t\t\"mousemove.bootstrapSwitch touchmove.bootstrapSwitch\": (function(_this) {\r\n\t\t\t\t\t\treturn function(e) {\r\n\t\t\t\t\t\t\tvar difference;\r\n\t\t\t\t\t\t\tif (_this._dragStart == null) {\r\n\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\tdifference = (e.pageX || e.originalEvent.touches[0].pageX) - _this._dragStart;\r\n\t\t\t\t\t\t\tif (difference < -_this._handleWidth || difference > 0) {\r\n\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t_this._dragEnd = difference;\r\n\t\t\t\t\t\t\treturn _this.$container.css(\"margin-left\", \"\" + _this._dragEnd + \"px\");\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t})(this),\r\n\t\t\t\t\t\"mouseup.bootstrapSwitch touchend.bootstrapSwitch\": (function(_this) {\r\n\t\t\t\t\t\treturn function(e) {\r\n\t\t\t\t\t\t\tvar state;\r\n\t\t\t\t\t\t\tif (!_this._dragStart) {\r\n\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\tif (_this.options.animate) {\r\n\t\t\t\t\t\t\t\t_this.$wrapper.addClass(\"\" + _this.options.baseClass + \"-animate\");\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif (_this._dragEnd) {\r\n\t\t\t\t\t\t\t\tstate = _this._dragEnd > -(_this._handleWidth / 2);\r\n\t\t\t\t\t\t\t\t_this._dragEnd = false;\r\n\t\t\t\t\t\t\t\t_this.state(_this.options.inverse ? !state : state);\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t_this.state(!_this.options.state);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\treturn _this._dragStart = false;\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t})(this),\r\n\t\t\t\t\t\"mouseleave.bootstrapSwitch\": (function(_this) {\r\n\t\t\t\t\t\treturn function(e) {\r\n\t\t\t\t\t\t\treturn _this.$label.trigger(\"mouseup.bootstrapSwitch\");\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t})(this)\r\n\t\t\t\t});\r\n\t\t\t};\r\n\r\n\t\t\tBootstrapSwitch.prototype._externalLabelHandler = function() {\r\n\t\t\t\tvar $externalLabel;\r\n\t\t\t\t$externalLabel = this.$element.closest(\"label\");\r\n\t\t\t\treturn $externalLabel.on(\"click\", (function(_this) {\r\n\t\t\t\t\treturn function(event) {\r\n\t\t\t\t\t\tevent.preventDefault();\r\n\t\t\t\t\t\tevent.stopImmediatePropagation();\r\n\t\t\t\t\t\tif (event.target === $externalLabel[0]) {\r\n\t\t\t\t\t\t\treturn _this.toggleState();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t};\r\n\t\t\t\t})(this));\r\n\t\t\t};\r\n\r\n\t\t\tBootstrapSwitch.prototype._formHandler = function() {\r\n\t\t\t\tvar $form;\r\n\t\t\t\t$form = this.$element.closest(\"form\");\r\n\t\t\t\tif ($form.data(\"bootstrap-switch\")) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\treturn $form.on(\"reset.bootstrapSwitch\", function() {\r\n\t\t\t\t\treturn window.setTimeout(function() {\r\n\t\t\t\t\t\treturn $form.find(\"input\").filter(function() {\r\n\t\t\t\t\t\t\treturn $(this).data(\"bootstrap-switch\");\r\n\t\t\t\t\t\t}).each(function() {\r\n\t\t\t\t\t\t\treturn $(this).bootstrapSwitch(\"state\", this.checked);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}, 1);\r\n\t\t\t\t}).data(\"bootstrap-switch\", true);\r\n\t\t\t};\r\n\r\n\t\t\tBootstrapSwitch.prototype._getClasses = function(classes) {\r\n\t\t\t\tvar c, cls, _i, _len;\r\n\t\t\t\tif (!$.isArray(classes)) {\r\n\t\t\t\t\treturn [\"\" + this.options.baseClass + \"-\" + classes];\r\n\t\t\t\t}\r\n\t\t\t\tcls = [];\r\n\t\t\t\tfor (_i = 0, _len = classes.length; _i < _len; _i++) {\r\n\t\t\t\t\tc = classes[_i];\r\n\t\t\t\t\tcls.push(\"\" + this.options.baseClass + \"-\" + c);\r\n\t\t\t\t}\r\n\t\t\t\treturn cls;\r\n\t\t\t};\r\n\r\n\t\t\treturn BootstrapSwitch;\r\n\r\n\t\t})();\r\n\t\t$.fn.bootstrapSwitch = function() {\r\n\t\t\tvar args, option, ret;\r\n\t\t\toption = arguments[0], args = 2 <= arguments.length ? __slice.call(arguments, 1) : [];\r\n\t\t\tret = this;\r\n\t\t\tthis.each(function() {\r\n\t\t\t\tvar $this, data;\r\n\t\t\t\t$this = $(this);\r\n\t\t\t\tdata = $this.data(\"bootstrap-switch\");\r\n\t\t\t\tif (!data) {\r\n\t\t\t\t\t$this.data(\"bootstrap-switch\", data = new BootstrapSwitch(this, option));\r\n\t\t\t\t}\r\n\t\t\t\tif (typeof option === \"string\") {\r\n\t\t\t\t\treturn ret = data[option].apply(data, args);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\treturn ret;\r\n\t\t};\r\n\t\t$.fn.bootstrapSwitch.Constructor = BootstrapSwitch;\r\n\t\treturn $.fn.bootstrapSwitch.defaults = {\r\n\t\t\tstate: true,\r\n\t\t\tsize: null,\r\n\t\t\tanimate: true,\r\n\t\t\tdisabled: false,\r\n\t\t\treadonly: false,\r\n\t\t\tindeterminate: false,\r\n\t\t\tinverse: false,\r\n\t\t\tradioAllOff: false,\r\n\t\t\tonColor: \"primary\",\r\n\t\t\toffColor: \"default\",\r\n\t\t\tonText: \"ON\",\r\n\t\t\toffText: \"OFF\",\r\n\t\t\tlabelText: \" \",\r\n\t\t\thandleWidth: \"auto\",\r\n\t\t\tlabelWidth: \"auto\",\r\n\t\t\tbaseClass: \"bootstrap-switch\",\r\n\t\t\twrapperClass: \"wrapper\",\r\n\t\t\tonInit: function() {},\r\n\t\t\tonSwitchChange: function() {}\r\n\t\t};\r\n\t})(window.jQuery, window);\r\n\r\n}).call(this);\r\n","/*\r\n\tBreakpoints.js\r\n\tversion 1.0\r\n\t\r\n\tCreates handy events for your responsive design breakpoints\r\n\t\r\n\tCopyright 2011 XOXCO, Inc\r\n\thttp://xoxco.com/\r\n\r\n\tDocumentation for this plugin lives here:\r\n\thttp://xoxco.com/projects/code/breakpoints\r\n\t\r\n\tLicensed under the MIT license:\r\n\thttp://www.opensource.org/licenses/mit-license.php\r\n\r\n*/\r\n(function($) {\r\n\r\n\tvar lastSize = 0;\r\n\tvar interval = null;\r\n\r\n\t$.fn.resetBreakpoints = function() {\r\n\t\t$(window).unbind('resize');\r\n\t\tif (interval) {\r\n\t\t\tclearInterval(interval);\r\n\t\t}\r\n\t\tlastSize = 0;\r\n\t};\r\n\t\r\n\t$.fn.setBreakpoints = function(settings) {\r\n\t\tvar options = jQuery.extend({\r\n\t\t\t\t\t\t\tdistinct: true,\r\n\t\t\t\t\t\t\tbreakpoints: new Array(320,480,768,1024)\r\n\t\t\t\t \t},settings);\r\n\r\n\r\n\t\tinterval = setInterval(function() {\r\n\t\r\n\t\t\tvar w = $(window).width();\r\n\t\t\tvar done = false;\r\n\t\t\t\r\n\t\t\tfor (var bp in options.breakpoints.sort(function(a,b) { return (b-a) })) {\r\n\t\t\t\r\n\t\t\t\t// fire onEnter when a browser expands into a new breakpoint\r\n\t\t\t\t// if in distinct mode, remove all other breakpoints first.\r\n\t\t\t\tif (!done && w >= options.breakpoints[bp] && lastSize < options.breakpoints[bp]) {\r\n\t\t\t\t\tif (options.distinct) {\r\n\t\t\t\t\t\tfor (var x in options.breakpoints.sort(function(a,b) { return (b-a) })) {\r\n\t\t\t\t\t\t\tif ($('body').hasClass('breakpoint-' + options.breakpoints[x])) {\r\n\t\t\t\t\t\t\t\t$('body').removeClass('breakpoint-' + options.breakpoints[x]);\r\n\t\t\t\t\t\t\t\t$(window).trigger('exitBreakpoint' + options.breakpoints[x]);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tdone = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t$('body').addClass('breakpoint-' + options.breakpoints[bp]);\r\n\t\t\t\t\t$(window).trigger('enterBreakpoint' + options.breakpoints[bp]);\r\n\r\n\t\t\t\t}\t\t\t\t\r\n\r\n\t\t\t\t// fire onExit when browser contracts out of a larger breakpoint\r\n\t\t\t\tif (w < options.breakpoints[bp] && lastSize >= options.breakpoints[bp]) {\r\n\t\t\t\t\t$('body').removeClass('breakpoint-' + options.breakpoints[bp]);\r\n\t\t\t\t\t$(window).trigger('exitBreakpoint' + options.breakpoints[bp]);\r\n\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\t// if in distinct mode, fire onEnter when browser contracts into a smaller breakpoint\r\n\t\t\t\tif (\r\n\t\t\t\t\toptions.distinct && // only one breakpoint at a time\r\n\t\t\t\t\tw >= options.breakpoints[bp] && // and we are in this one\r\n\t\t\t\t\tw < options.breakpoints[bp-1] && // and smaller than the bigger one\r\n\t\t\t\t\tlastSize > w && // and we contracted\r\n\t\t\t\t\tlastSize >0 && // and this is not the first time\r\n\t\t\t\t\t!$('body').hasClass('breakpoint-' + options.breakpoints[bp]) // and we aren't already in this breakpoint\r\n\t\t\t\t\t) {\t\t\t\t\t\r\n\t\t\t\t\t$('body').addClass('breakpoint-' + options.breakpoints[bp]);\r\n\t\t\t\t\t$(window).trigger('enterBreakpoint' + options.breakpoints[bp]);\r\n\r\n\t\t\t\t}\t\t\t\t\t\t\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\t// set up for next call\r\n\t\t\tif (lastSize != w) {\r\n\t\t\t\tlastSize = w;\r\n\t\t\t}\r\n\t\t},250);\r\n\t};\r\n\t\r\n})(jQuery);\r\n","/**\r\n * Copyright (c) 2007-2015 Ariel Flesler - afleslergmailcom | http://flesler.blogspot.com\r\n * Licensed under MIT\r\n * @author Ariel Flesler\r\n * @version 2.1.0\r\n */\r\n;(function(l){'use strict';l(['jquery'],function($){var k=$.scrollTo=function(a,b,c){return $(window).scrollTo(a,b,c)};k.defaults={axis:'xy',duration:0,limit:true};function isWin(a){return!a.nodeName||$.inArray(a.nodeName.toLowerCase(),['iframe','#document','html','body'])!==-1}$.fn.scrollTo=function(f,g,h){if(typeof g==='object'){h=g;g=0}if(typeof h==='function'){h={onAfter:h}}if(f==='max'){f=9e9}h=$.extend({},k.defaults,h);g=g||h.duration;var j=h.queue&&h.axis.length>1;if(j){g/=2}h.offset=both(h.offset);h.over=both(h.over);return this.each(function(){if(f===null)return;var d=isWin(this),elem=d?this.contentWindow||window:this,$elem=$(elem),targ=f,attr={},toff;switch(typeof targ){case'number':case'string':if(/^([+-]=?)?\\d+(\\.\\d+)?(px|%)?$/.test(targ)){targ=both(targ);break}targ=d?$(targ):$(targ,elem);if(!targ.length)return;case'object':if(targ.is||targ.style){toff=(targ=$(targ)).offset()}}var e=$.isFunction(h.offset)&&h.offset(elem,targ)||h.offset;$.each(h.axis.split(''),function(i,a){var b=a==='x'?'Left':'Top',pos=b.toLowerCase(),key='scroll'+b,prev=$elem[key](),max=k.max(elem,a);if(toff){attr[key]=toff[pos]+(d?0:prev-$elem.offset()[pos]);if(h.margin){attr[key]-=parseInt(targ.css('margin'+b),10)||0;attr[key]-=parseInt(targ.css('border'+b+'Width'),10)||0}attr[key]+=e[pos]||0;if(h.over[pos]){attr[key]+=targ[a==='x'?'width':'height']()*h.over[pos]}}else{var c=targ[pos];attr[key]=c.slice&&c.slice(-1)==='%'?parseFloat(c)/100*max:c}if(h.limit&&/^\\d+$/.test(attr[key])){attr[key]=attr[key]<=0?0:Math.min(attr[key],max)}if(!i&&h.axis.length>1){if(prev===attr[key]){attr={}}else if(j){animate(h.onAfterFirst);attr={}}}});animate(h.onAfter);function animate(a){var b=$.extend({},h,{queue:true,duration:g,complete:a&&function(){a.call(elem,targ,h)}});$elem.animate(attr,b)}})};k.max=function(a,b){var c=b==='x'?'Width':'Height',scroll='scroll'+c;if(!isWin(a))return a[scroll]-$(a)[c.toLowerCase()]();var d='client'+c,doc=a.ownerDocument||a.document,html=doc.documentElement,body=doc.body;return Math.max(html[scroll],body[scroll])-Math.min(html[d],body[d])};function both(a){return $.isFunction(a)||$.isPlainObject(a)?a:{top:a,left:a}}$.Tween.propHooks.scrollLeft=$.Tween.propHooks.scrollTop={get:function(t){return $(t.elem)[t.prop]()},set:function(t){var a=this.get(t);if(t.options.interrupt&&t._last&&t._last!==a){return $(t.elem).stop()}var b=Math.round(t.now);if(a!==b){$(t.elem)[t.prop](b);t._last=this.get(t)}}};return k})}(typeof define==='function'&&define.amd?define:function(a,b){'use strict';if(typeof module!=='undefined'&&module.exports){module.exports=b(require('jquery'))}else{b(jQuery)}}));","/*global jQuery */\r\n/*jshint browser:true */\r\n/*!\r\n* FitVids 1.1\r\n*\r\n* Copyright 2013, Chris Coyier - http://css-tricks.com + Dave Rupert - http://daverupert.com\r\n* Credit to Thierry Koblentz - http://www.alistapart.com/articles/creating-intrinsic-ratios-for-video/\r\n* Released under the WTFPL license - http://sam.zoy.org/wtfpl/\r\n*\r\n*/\r\n\r\n(function( $ ){\r\n\r\n \"use strict\";\r\n\r\n $.fn.fitVids = function( options ) {\r\n var settings = {\r\n customSelector: null\r\n };\r\n\r\n if(!document.getElementById('fit-vids-style')) {\r\n // appendStyles: https://github.com/toddmotto/fluidvids/blob/master/dist/fluidvids.js\r\n var head = document.head || document.getElementsByTagName('head')[0];\r\n var css = '.fluid-width-video-wrapper{width:100%;position:relative;padding:0;}.fluid-width-video-wrapper iframe,.fluid-width-video-wrapper object,.fluid-width-video-wrapper embed {position:absolute;top:0;left:0;width:100%;height:100%;}';\r\n var div = document.createElement('div');\r\n div.innerHTML = '

          x

          ';\r\n head.appendChild(div.childNodes[1]);\r\n }\r\n\r\n if ( options ) {\r\n $.extend( settings, options );\r\n }\r\n\r\n return this.each(function(){\r\n var selectors = [\r\n \"iframe[src*='player.vimeo.com']\",\r\n \"iframe[src*='youtube.com']\",\r\n \"iframe[src*='youtube-nocookie.com']\",\r\n \"iframe[src*='kickstarter.com'][src*='video.html']\",\r\n \"object\",\r\n \"embed\"\r\n ];\r\n\r\n if (settings.customSelector) {\r\n selectors.push(settings.customSelector);\r\n }\r\n\r\n var $allVideos = $(this).find(selectors.join(','));\r\n $allVideos = $allVideos.not(\"object object\"); // SwfObj conflict patch\r\n\r\n $allVideos.each(function(){\r\n var $this = $(this);\r\n if (this.tagName.toLowerCase() === 'embed' && $this.parent('object').length || $this.parent('.fluid-width-video-wrapper').length) { return; }\r\n var height = ( this.tagName.toLowerCase() === 'object' || ($this.attr('height') && !isNaN(parseInt($this.attr('height'), 10))) ) ? parseInt($this.attr('height'), 10) : $this.height(),\r\n width = !isNaN(parseInt($this.attr('width'), 10)) ? parseInt($this.attr('width'), 10) : $this.width(),\r\n aspectRatio = height / width;\r\n if(!$this.attr('id')){\r\n var videoID = 'fitvid' + Math.floor(Math.random()*999999);\r\n $this.attr('id', videoID);\r\n }\r\n $this.wrap('
          ').parent('.fluid-width-video-wrapper').css('padding-top', (aspectRatio * 100)+\"%\");\r\n $this.removeAttr('height').removeAttr('width');\r\n });\r\n });\r\n };\r\n// Works with either jQuery or Zepto\r\n})( window.jQuery || window.Zepto );\r\n","/*\r\n Sticky-kit v1.1.1 | WTFPL | Leaf Corcoran 2014 | http://leafo.net\r\n*/\r\n(function(){var k,e;k=this.jQuery||window.jQuery;e=k(window);k.fn.stick_in_parent=function(d){var v,y,n,p,h,C,s,G,q,H;null==d&&(d={});s=d.sticky_class;y=d.inner_scrolling;C=d.recalc_every;h=d.parent;p=d.offset_top;n=d.spacer;v=d.bottoming;null==p&&(p=0);null==h&&(h=void 0);null==y&&(y=!0);null==s&&(s=\"is_stuck\");null==v&&(v=!0);G=function(a,d,q,z,D,t,r,E){var u,F,m,A,c,f,B,w,x,g,b;if(!a.data(\"sticky_kit\")){a.data(\"sticky_kit\",!0);f=a.parent();null!=h&&(f=f.closest(h));if(!f.length)throw\"failed to find stick parent\";\r\nu=m=!1;(g=null!=n?n&&a.closest(n):k(\"
          \"))&&g.css(\"position\",a.css(\"position\"));B=function(){var c,e,l;if(!E&&(c=parseInt(f.css(\"border-top-width\"),10),e=parseInt(f.css(\"padding-top\"),10),d=parseInt(f.css(\"padding-bottom\"),10),q=f.offset().top+c+e,z=f.height(),m&&(u=m=!1,null==n&&(a.insertAfter(g),g.detach()),a.css({position:\"\",top:\"\",width:\"\",bottom:\"\"}).removeClass(s),l=!0),D=a.offset().top-parseInt(a.css(\"margin-top\"),10)-p,t=a.outerHeight(!0),r=a.css(\"float\"),g&&g.css({width:a.outerWidth(!0),\r\nheight:t,display:a.css(\"display\"),\"vertical-align\":a.css(\"vertical-align\"),\"float\":r}),l))return b()};B();if(t!==z)return A=void 0,c=p,x=C,b=function(){var b,k,l,h;if(!E&&(null!=x&&(--x,0>=x&&(x=C,B())),l=e.scrollTop(),null!=A&&(k=l-A),A=l,m?(v&&(h=l+t+c>z+q,u&&!h&&(u=!1,a.css({position:\"fixed\",bottom:\"\",top:c}).trigger(\"sticky_kit:unbottom\"))),lb&&!u&&(c-=k,c=Math.max(b-t,c),c=Math.min(p,c),m&&a.css({top:c+\"px\"})))):l>D&&(m=!0,b={position:\"fixed\",top:c},b.width=\"border-box\"===a.css(\"box-sizing\")?a.outerWidth()+\"px\":a.width()+\"px\",a.css(b).addClass(s),null==n&&(a.after(g),\"left\"!==r&&\"right\"!==r||g.append(a)),a.trigger(\"sticky_kit:stick\")),m&&v&&(null==h&&(h=l+t+c>z+q),!u&&h)))return u=!0,\"static\"===f.css(\"position\")&&f.css({position:\"relative\"}),a.css({position:\"absolute\",bottom:d,top:\"auto\"}).trigger(\"sticky_kit:bottom\")},\r\nw=function(){B();return b()},F=function(){E=!0;e.off(\"touchmove\",b);e.off(\"scroll\",b);e.off(\"resize\",w);k(document.body).off(\"sticky_kit:recalc\",w);a.off(\"sticky_kit:detach\",F);a.removeData(\"sticky_kit\");a.css({position:\"\",bottom:\"\",top:\"\",width:\"\"});f.position(\"position\",\"\");if(m)return null==n&&(\"left\"!==r&&\"right\"!==r||a.insertAfter(g),g.remove()),a.removeClass(s)},e.on(\"touchmove\",b),e.on(\"scroll\",b),e.on(\"resize\",w),k(document.body).on(\"sticky_kit:recalc\",w),a.on(\"sticky_kit:detach\",F),setTimeout(b,\r\n0)}};q=0;for(H=this.length;q 0 || e.type === 'mousedown' || e.type === 'mousewheel'){\r\n\t\t\t\t\t\tbase.$body.stop();\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\t// Adjust side menu on scroll and resize\r\n\t\t\tbase.$win.bind('scroll resize '.split(' ').join( base.namespace + ' '), function(){\r\n\t\t\t\tbase.throttle();\r\n\t\t\t});\r\n\r\n\t\t\tbase.update();\r\n\r\n\t\t\t// go to hash on page load\r\n\t\t\tif (o.useHash && base.winLoc.hash) {\r\n\t\t\t\tbase.animate(base.winLoc.hash);\r\n\t\t\t}\r\n\r\n\t\t\t// update menu\r\n\t\t\tbase.findLocation();\r\n\r\n\t\t\tif (o.scrollOnInit) {\r\n\t\t\t\t// update content class & hash\r\n\t\t\t\t$sel = base.$el.find( '.' + o.selectedClass + (o.selectedAppliedTo === o.link ? '' : ' ' + o.link) );\r\n\t\t\t\t// send true flag to signal initialization complete\r\n\t\t\t\tbase.animate( $sel.attr(o.targetAttr) || $sel.attr('href'), true );\r\n\t\t\t} else {\r\n\t\t\t\tbase.completed( true );\r\n\t\t\t}\r\n\r\n\t\t};\r\n\r\n\t\tbase.update = function(){\r\n\t\t\tbase.$content = $('.' + o.contentClass);\r\n\t\t\tbase.leftMargin = parseInt( base.$content.css('margin-left'), 10);\r\n\t\t\tbase.rightMargin = parseInt( base.$content.css('margin-right'), 10);\r\n\r\n\t\t\t// Find specific menu links (this roundabout way is needed so ordinary links in the menu continue\r\n\t\t\t// to work - like the links to other demos)\r\n\t\t\tvar $l,\r\n\t\t\t\tlinks = o.selectedAppliedTo + (o.selectedAppliedTo === o.link ? '' : ' ' + o.link),\r\n\t\t\t\tl = '.' + o.externalLinks;\r\n\t\t\t// find links that don't have the externalLinks class nor contained within an externalLinks container\r\n\t\t\tbase.$links = $( base.$el.find(links).map(function(i, el){\r\n\t\t\t\t$l = $(el);\r\n\t\t\t\treturn (!$l.hasClass(l) && !$l.closest(l).length) ? el : null;\r\n\t\t\t}) );\r\n\t\t\tl = '.' + o.contentLinks;\r\n\t\t\t// add links inside the content - the links must have a 'visualNav' class name,\r\n\t\t\t// or be within a container of class 'visualNav'\r\n\t\t\tbase.$links.add( $(l + ',' + l + ' a') )\r\n\t\t\t\t// make them clickable\r\n\t\t\t\t.unbind('click.visualNav')\r\n\t\t\t\t.bind('click.visualNav', function(e, flag){\r\n\t\t\t\t\tvar $this = $( this );\r\n\t\t\t\t\t// contentLinks outside the menu can be anything, but if they are , make sure we get the href\r\n\t\t\t\t\t// just in case the o.link isn't an \r\n\t\t\t\t\tbase.animate( $this.attr(o.targetAttr) || $this.attr('href'), flag);\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t});\r\n\t\t\t// find items (li's) based on links (a's)\r\n\t\t\tbase.$items = (o.selectedAppliedTo === o.link) ? base.$links :\r\n\t\t\t\t$( base.$links.map(function(){ return $(this).closest(o.selectedAppliedTo)[0]; }) );\r\n\r\n\t\t\tif (base.initialized) {\r\n\t\t\t\tbase.findLocation();\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tbase.animate = function(sel, flag){\r\n\t\t\tvar $t, targetOffset, animationTime, scrollTop,\r\n\t\t\t\t$sel = $(sel);\r\n\t\t\t// ignore non-existant targets & solitary '#'\r\n\t\t\tif (sel !== '#' && $sel.length) {\r\n\t\t\t\t$t = $(sel).eq(0).closest('.' + o.contentClass);\r\n\t\t\t\t// target is inside of a content block, so target the content block instead\r\n\t\t\t\tif ( $t.length ) { $sel = $t; }\r\n\t\t\t\tif ( $sel.length ) {\r\n\t\t\t\t\tbase.curHash = $sel[0].id || '';\r\n\t\t\t\t\tbase.$curContent = $sel;\r\n\t\t\t\t\t// callback before animation\r\n\t\t\t\t\tif (base.initialized && typeof o.beforeAnimation === 'function') {\r\n\t\t\t\t\t\to.beforeAnimation( base, $sel );\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\ttargetOffset = $sel.offset();\r\n\t\t\t\t\tscrollTop = Math.min( targetOffset.top, base.$doc.height() - base.$win.height() ) - o.offsetTop;\r\n\r\n\t\t\t\t\tif ( typeof o.animationTime === 'function' ) {\r\n\t\t\t\t\t\t// use animationTime function; default to 1200ms if nothing is returned\r\n\t\t\t\t\t\tanimationTime = ( o.animationTime( Math.abs( base.$body.scrollTop() - scrollTop ) ) ) || 1200;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tanimationTime = o.animationTime;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// get content top or top position if at the document bottom, then animate\r\n\t\t\t\t\tbase.$body.stop().animate({\r\n\t\t\t\t\t\tscrollLeft : Math.min( targetOffset.left, base.$doc.width() - base.$win.width() ) - base.leftMargin,\r\n\t\t\t\t\t\tscrollTop : scrollTop\r\n\t\t\t\t\t},{\r\n\t\t\t\t\t\tqueue : false,\r\n\t\t\t\t\t\tduration : base.initialized ? animationTime : 0,\r\n\t\t\t\t\t\teasing : o.easing[0], // added in case jQuery older than 1.4 is used\r\n\t\t\t\t\t\tspecialEasing : {\r\n\t\t\t\t\t\t\tscrollLeft : o.easing[0] || 'swing',\r\n\t\t\t\t\t\t\tscrollTop : o.easing[1] || o.easing[0] || 'swing'\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tcomplete : function(){\r\n\t\t\t\t\t\t\tbase.completed(flag);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tbase.throttle = function(){\r\n\t\t\tif (base.flag) { return; }\r\n\t\t\tbase.flag = true;\r\n\t\t\tbase.timer = setTimeout(function(){\r\n\t\t\t\tbase.flag = false;\r\n\t\t\t\t// find current menu item after the set time; works better with super fast scrolling\r\n\t\t\t\tbase.findLocation();\r\n\t\t\t}, 100);\r\n\t\t};\r\n\r\n\t\tbase.updateHash = function(){\r\n\t\t\tvar $fx, $node,\r\n\t\t\t\tid = ( o.selectedAppliedTo === o.link ) ?\r\n\t\t\t\tbase.$curItem.attr(o.targetAttr) || base.$curItem.attr('href') :\r\n\t\t\t\tbase.$curItem.find(o.link).attr(o.targetAttr) || base.$curItem.find(o.link).attr('href'),\r\n\t\t\t\thash = ( id || '' ).replace( /^#/, '' );\r\n\t\t\tif (id && hash !== '' && hash !== base.curHash) {\r\n\t\t\t\t$node = $( '#' + hash );\r\n\t\t\t\tbase.curHash = hash;\r\n\t\t\t\tif ( $node.length ) {\r\n\t\t\t\t\t$node.attr( 'id', '' );\r\n\t\t\t\t\t$fx = $( '
          ' )\r\n\t\t\t\t\t\t.css({\r\n\t\t\t\t\t\t\tposition: 'absolute',\r\n\t\t\t\t\t\t\tvisibility: 'hidden',\r\n\t\t\t\t\t\t\ttop: $(document).scrollTop() + 'px'\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t\t.attr( 'id', hash )\r\n\t\t\t\t\t\t.appendTo( document.body );\r\n\t\t\t\t}\r\n\t\t\t\tbase.setHash('#' + hash);\r\n\t\t\t\tif ( $node.length ) {\r\n\t\t\t\t\t$fx.remove();\r\n\t\t\t\t\t$node.attr( 'id', hash );\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tbase.setHash = function(newHash){\r\n\t\t\tif (base.winLoc.hash !== newHash && newHash !== '#'){\r\n\t\t\t\tif (base.winLoc.replace){\r\n\t\t\t\t\tif (base.history != null) {\r\n\t\t\t\t\t\tbase.history.replaceState({}, '', newHash);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tbase.winLoc.replace(newHash);\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// replace not supported by IE8/9... they get full history\r\n\t\t\t\t\tbase.winLoc.hash = newHash;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t// flag is needed for initialization\r\n\t\tbase.completed = function(flag){\r\n\t\t\tif (o.useHash) { base.setHash('#' + base.curHash); }\r\n\r\n\t\t\t// callbacks\r\n\t\t\tif (base.initialized) {\r\n\t\t\t\t// callback when animation has completed\r\n\t\t\t\tif (typeof o.complete === 'function') {\r\n\t\t\t\t\to.complete( base, base.$curContent );\r\n\t\t\t\t}\r\n\t\t\t} else if (flag) {\r\n\t\t\t\tif (typeof o.initialized === 'function') {\r\n\t\t\t\t\t// callback( visNavObject, current content, current menu item )\r\n\t\t\t\t\to.initialized( base, base.$curContent );\r\n\t\t\t\t}\r\n\t\t\t\t// complete initialization\r\n\t\t\t\tbase.initialized = true;\r\n\t\t\t}\r\n\r\n\t\t\t// clear throttle flag, just in case\r\n\t\t\tbase.flag = false;\r\n\t\t};\r\n\r\n\t\t// Update menu\r\n\t\tbase.findLocation = function(){\r\n\t\t\tvar tar, locLeft, locTop, sel, elBottom, elHeight, elWidth, elRight,\r\n\t\t\t\twinWidth = base.$win.width(),\r\n\t\t\t\twinLeft = base.$win.scrollLeft(),\r\n\t\t\t\twinTop = base.$win.scrollTop(),\r\n\t\t\t\twinRight = winLeft + winWidth,\r\n\t\t\t\twinBottom = winTop + base.$win.height(),\r\n\t\t\t\tdocHeight = base.$doc.height();\r\n\t\t\tbase.$items.removeClass(o.inViewClass);\r\n\t\t\t// Make content fit on screen\r\n\t\t\tif (o.fitContent) {\r\n\t\t\t\tbase.$content.width( winWidth - base.leftMargin - base.rightMargin );\r\n\t\t\t}\r\n\t\t\t// cycling through each link during the scroll may be slow on some computers/browsers\r\n\t\t\tbase.$links.each(function(i){\r\n\t\t\t\tsel = $(this).attr(o.targetAttr);\r\n\t\t\t\ttar = (sel === '#' || sel.length <= 1) ? '' : $(sel); // ignore links that don't point anywhere\r\n\t\t\t\tif (tar.length) {\r\n\t\t\t\t\tlocTop = Math.ceil(tar.offset().top);\r\n\t\t\t\t\tlocLeft = Math.ceil(tar.offset().left);\r\n\t\t\t\t\telHeight = tar.outerHeight();\r\n\t\t\t\t\telBottom = locTop + elHeight + o.bottomMargin;\r\n\t\t\t\t\telWidth = tar.outerWidth();\r\n\t\t\t\t\telRight = locLeft + elWidth;\r\n\t\t\t\t\t// in view class\r\n\t\t\t\t\tif ( locTop < winBottom && ( locTop + elHeight - o.bottomMargin > winTop || elBottom > winBottom ) &&\r\n\t\t\t\t\t\tlocLeft < winRight && ( locLeft + elWidth - o.bottomMargin > winLeft || elRight > winRight ) ) {\r\n\t\t\t\t\t\tbase.$items.eq(i).addClass(o.inViewClass);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\t// add selected class. If at the document end, select the last element\r\n\t\t\tsel = ( winBottom + o.bottomMargin >= docHeight ) ? ':last' : ':first';\r\n\t\t\tbase.$items.removeClass(o.selectedClass);\r\n\t\t\tbase.$curItem = base.$items.filter('.' + o.inViewClass + sel).addClass(o.selectedClass);\r\n\r\n\t\t\t// update current content class while scrolling\r\n\t\t\tif (base.$curItem[0] !== base.$lastItem[0]) {\r\n\t\t\t\tbase.$lastItem = base.$curItem;\r\n\t\t\t\tbase.$content.removeClass(o.currentContent);\r\n\t\t\t\tsel = '.' + o.selectedClass + (o.selectedAppliedTo === o.link ? '' : ' ' + o.link);\r\n\t\t\t\ttar = base.$el.find(sel).attr(o.targetAttr);\r\n\t\t\t\tbase.$curContent = $(tar)\r\n\t\t\t\t\t.closest('.' + o.contentClass)\r\n\t\t\t\t\t.addClass(o.currentContent);\r\n\t\t\t\tif (base.initialized && typeof o.changed === 'function') {\r\n\t\t\t\t\to.changed( base, base.$curContent );\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (o.useHash && base.initialized) {\r\n\t\t\t\tbase.updateHash();\r\n\t\t\t}\r\n\r\n\t\t};\r\n\r\n\t\t// Run initializer\r\n\t\tbase.init();\r\n\r\n\t};\r\n\r\n\t$.visualNav.defaultOptions = {\r\n\t\t// use link & targetAttr in case you want to use
          Home
          \r\n\t\t// the link = 'div.link' and targetAttr = 'data-target'\r\n\t\tlink : 'a', // Add a link class, as necessary.\r\n\t\ttargetAttr : 'href', // added in case you have link = 'div' and attribute something like data-target.\r\n\t\tselectedAppliedTo : 'li', // to only apply to the link, use the same value as is in the link option.\r\n\t\tcontentClass : 'content', // content class to get height of the section.\r\n\t\tcontentLinks : 'visualNav', // class name of links inside the content that act like the visualNav menu (smooth scroll).\r\n\t\texternalLinks : 'external', // class name of links that link to external content.\r\n\t\tuseHash : true, // if true, the location hash will be updated.\r\n\r\n\t\t// Classes added to items\r\n\t\tinViewClass : 'inView', // css class added to items in the viewport.\r\n\t\tselectedClass : 'selected', // css class applied to menu when a link is selected (highlighted).\r\n\t\tcurrentContent : 'current', // css class applied to the content block when it is currently selected in the menu.\r\n\r\n\t\t// Appearance\r\n\t\tbottomMargin : 100, // Margin from the end of the page where the last menu item is used (in case the target is short).\r\n\t\tfitContent : false, // If true, the contentClass width will be adjusted to fit the browser window (for horizontal pages).\r\n\t\toffsetTop : 0, // add a top offset value (pixels) or jQuery element (height is measured), of any top menu or gap.\r\n\t\tscrollOnInit : false, // scroll to first item automatically on initialization\r\n\r\n\t\t// Animation\r\n\t\tanimationTime : 1200, // page scrolling time in milliseconds or function( distance ) { return milliseconds; }\r\n\t\tstopOnInteraction : true, // if the user presses any key or scrolls the mouse, the animation will cancel\r\n\t\teasing : [ 'swing', 'swing' ], // horizontal, vertical easing; if might be best to leave one axis as swing [ 'swing', 'easeInCirc' ]\r\n\r\n\t\t// Callbacks\r\n\t\tinitialized : null, // Callback executed when the visualNav plugin has finished initializing\r\n\t\tbeforeAnimation : null, // Callback executed before the animation begins moving to the targetted element\r\n\t\tcomplete : null, // Callback executed when the targetted element is in view and scrolling animation has completed\r\n\t\tchanged : null // Callback executed every time the current menu item changes\r\n\t};\r\n\r\n\t$.fn.visualNav = function(options){\r\n\t\treturn this.each(function(){\r\n\t\t\tvar nav = $(this).data('visualNav');\r\n\t\t\t// initialize visualNav but prevent multiple initializations\r\n\t\t\tif ((typeof(options)).match('object|undefined')){\r\n\t\t\t\tif (!nav) {\r\n\t\t\t\t\t(new $.visualNav(this, options));\r\n\t\t\t\t} else {\r\n\t\t\t\t\tnav.update();\r\n\t\t\t\t}\r\n\t\t\t} else if (typeof options === 'string' && /^(#|\\.)/.test(options)) {\r\n\t\t\t\t// string provided, check if it's an ID or class\r\n\t\t\t\tnav.animate(options);\r\n\t\t\t}\r\n\t\t});\r\n\t};\r\n\r\n// This function breaks the chain, but returns\r\n// the visualNav if it has been attached to the object.\r\n\t$.fn.getvisualNav = function(){\r\n\t\treturn this.data('visualNav');\r\n\t};\r\n\r\n})(jQuery);\r\n","/*!\r\n * headroom.js v0.7.0 - Give your page some headroom. Hide your header until you need it\r\n * Copyright (c) 2014 Nick Williams - http://wicky.nillia.ms/headroom.js\r\n * License: MIT\r\n */\r\n\r\n!function(a,b){\"use strict\";function c(a){this.callback=a,this.ticking=!1}function d(b){return b&&\"undefined\"!=typeof a&&(b===a||b.nodeType)}function e(a){if(arguments.length<=0)throw new Error(\"Missing arguments in extend function\");var b,c,f=a||{};for(c=1;ca,c=a+this.getViewportHeight()>this.getScrollerHeight();return b||c},toleranceExceeded:function(a,b){return Math.abs(a-this.lastKnownScrollY)>=this.tolerance[b]},shouldUnpin:function(a,b){var c=a>this.lastKnownScrollY,d=a>=this.offset;return c&&d&&b},shouldPin:function(a,b){var c=athis.lastKnownScrollY?\"down\":\"up\",c=this.toleranceExceeded(a,b);this.isOutOfBounds(a)||(a<=this.offset?this.top():this.notTop(),this.shouldUnpin(a,c)?this.unpin():this.shouldPin(a,c)&&this.pin(),this.lastKnownScrollY=a)}},g.options={tolerance:{up:0,down:0},offset:0,scroller:a,classes:{pinned:\"headroom--pinned\",unpinned:\"headroom--unpinned\",top:\"headroom--top\",notTop:\"headroom--not-top\",initial:\"headroom\"}},g.cutsTheMustard=\"undefined\"!=typeof h&&h.rAF&&h.bind&&h.classList,a.Headroom=g}(window,document);","/*!\r\n * headroom.js v0.7.0 - Give your page some headroom. Hide your header until you need it\r\n * Copyright (c) 2014 Nick Williams - http://wicky.nillia.ms/headroom.js\r\n * License: MIT\r\n */\r\n\r\n!function(a){a&&(a.fn.headroom=function(b){return this.each(function(){var c=a(this),d=c.data(\"headroom\"),e=\"object\"==typeof b&&b;e=a.extend(!0,{},Headroom.options,e),d||(d=new Headroom(this,e),d.init(),c.data(\"headroom\",d)),\"string\"==typeof b&&d[b]()})},a(\"[data-headroom]\").each(function(){var b=a(this);b.headroom(b.data())}))}(window.Zepto||window.jQuery);","/*\r\n * jQuery throttle / debounce - v1.1 - 3/7/2010\r\n * http://benalman.com/projects/jquery-throttle-debounce-plugin/\r\n * \r\n * Copyright (c) 2010 \"Cowboy\" Ben Alman\r\n * Dual licensed under the MIT and GPL licenses.\r\n * http://benalman.com/about/license/\r\n */\r\n(function(b,c){var $=b.jQuery||b.Cowboy||(b.Cowboy={}),a;$.throttle=a=function(e,f,j,i){var h,d=0;if(typeof f!==\"boolean\"){i=j;j=f;f=c}function g(){var o=this,m=+new Date()-d,n=arguments;function l(){d=+new Date();j.apply(o,n)}function k(){h=c}if(i&&!h){l()}h&&clearTimeout(h);if(i===c&&m>e){l()}else{if(f!==true){h=setTimeout(i?k:l,i===c?e-m:e)}}}if($.guid){g.guid=j.guid=j.guid||$.guid++}return g};$.debounce=function(d,e,f){return f===c?a(d,e,false):a(d,f,e!==false)}})(this);","(function(h){h.deparam=function(i,j){var d={},k={\"true\":!0,\"false\":!1,\"null\":null};h.each(i.replace(/\\+/g,\" \").split(\"&\"),function(i,l){var m;var a=l.split(\"=\"),c=decodeURIComponent(a[0]),g=d,f=0,b=c.split(\"][\"),e=b.length-1;/\\[/.test(b[0])&&/\\]$/.test(b[e])?(b[e]=b[e].replace(/\\]$/,\"\"),b=b.shift().split(\"[\").concat(b),e=b.length-1):e=0;if(2===a.length)if(a=decodeURIComponent(a[1]),j&&(a=a&&!isNaN(a)?+a:\"undefined\"===a?void 0:void 0!==k[a]?k[a]:a),e)for(;f<=e;f++)c=\"\"===b[f]?g.length:b[f],m=g[c]=\r\nf\r\n */\r\n\r\n!function(a){\"function\"==typeof define&&define.amd?define(\"position-calculator\",[\"jquery\"],a):jQuery.PositionCalculator=a(jQuery)}(function(a){\"use strict\";function b(a){return\"string\"==typeof a&&(\"window\"===a?a=q:\"document\"===a&&(a=r)),a}function c(a){var b=a.split(\" \");return{y:t.test(b[0])?b[0]:\"top\",x:u.test(b[1])?b[1]:\"left\"}}function d(a,b){return a===b?!0:a&&b?a.top===b.top&&a.left===b.left&&a.height===b.height&&a.width===b.width:!1}function e(b){var c=b[0];if(9===c.nodeType)return{width:b.outerWidth(),height:b.outerHeight(),top:0,left:0};if(a.isWindow(c))return{width:b.outerWidth(),height:b.outerHeight(),top:b.scrollTop(),left:b.scrollLeft()};if(c.preventDefault)return{width:0,height:0,top:c.pageY,left:c.pageX};var d=b.offset();return{width:b.outerWidth(),height:b.outerHeight(),top:d.top,left:d.left}}function f(b,c){var d=b[0];if(9!==d.nodeType){if(a.isWindow(d)&&(c.top=b.scrollTop(),c.left=b.scrollLeft()),d.preventDefault)return c.top=d.pageY,void(c.left=d.pageX);var e=b.offset();c.top=e.top,c.left=e.left}}function g(b){var c,d=b[0];return 9===d.nodeType?(d=s,c={top:0,left:0}):a.isWindow(d)?(d=s,c={top:b.scrollTop(),left:b.scrollLeft()}):c=b.offset(),{width:d.clientWidth,height:d.clientHeight,top:c.top+d.clientTop,left:c.left+d.clientLeft}}function h(b,c){var d,e=b[0];9===e.nodeType?(e=s,d={top:0,left:0}):a.isWindow(e)?(e=s,d={top:b.scrollTop(),left:b.scrollLeft()}):d=b.offset(),c.top=d.top+e.clientTop,c.left=d.left+e.clientLeft}function i(a,b){return{y:parseFloat(a.y)*(v.test(a.y)?b.height/100:1),x:parseFloat(a.x)*(v.test(a.x)?b.width/100:1),mirror:a.mirror}}function j(a,b,c){var d={top:0,left:0,middle:.5*a.height,center:.5*a.width,bottom:a.height,right:a.width};return 0!==b.y&&(d.middle+=b.y,b.mirror?(d.top+=\"top\"!==c.y?-1*b.y:b.y,d.bottom+=\"bottom\"!==c.y?-1*b.y:b.y):(d.top+=b.y,d.bottom+=b.y)),0!==b.x&&(d.center+=b.x,b.mirror?(d.left+=\"left\"!==c.x?-1*b.x:b.x,d.right+=\"right\"!==c.x?-1*b.x:b.x):(d.left+=b.x,d.right+=b.x)),d}function k(a){var b=[];return a.top>0&&b.push(\"top\"),a.left>0&&b.push(\"left\"),a.bottom<0&&b.push(\"bottom\"),a.right<0&&b.push(\"right\"),a.overflow=b.length?b:null,a}function l(a,b){var c={top:a.top-b.top,left:a.left-b.left,bottom:a.top+a.height-(b.top+b.height),right:a.left+a.width-(b.left+b.width),overflow:[]};return k(c)}function m(a,b,c,d){var e,f,g,h={y:b.y,x:b.x},i={y:c.y,x:c.x};if(-1!==d.overflow.indexOf(\"top\")&&(e=\"top\"),-1!==d.overflow.indexOf(\"bottom\")&&(e=e?null:\"bottom\"),-1!==d.overflow.indexOf(\"left\")&&(f=\"left\"),-1!==d.overflow.indexOf(\"right\")&&(f=f?null:\"right\"),!e&&!f)return null;switch(a=a===!0?\"both\":a,g=0,a){case\"item\":g=1;break;case\"target\":g=2;break;case\"both\":g=3}return 1&g&&(e&&(h.y=w[h.y]),f&&(h.x=w[h.x])),2&g&&(e&&(i.y=w[i.y]),f&&(i.x=w[i.x])),{item_at:h,tar_at:i}}function n(a,b,c){var d,e,f,g,h;return h=c?[\"top\",\"bottom\"]:[\"left\",\"right\"],d=a[h[0]],f=b[h[0]],e=-1*a[h[1]],g=-1*b[h[1]],0>d&&(d=0),0>e&&(e=0),0>f&&(f=0),0>g&&(g=0),0>d&&0>e?!0:0>f&&0>g?!1:f+g>d+e}function o(a,b){\"all\"===b&&(b=!0);var c=a.distance.overflow;if(!c.length)return a;for(var d,e,f=!1,g=!1,h=c.length-1;h>=0;h--)switch(d=c[h]){case\"top\":case\"bottom\":(!g&&b===!0||-1!==b.indexOf(d))&&(e=a.distance[d],a.moveBy.y+=e,a.distance.top-=e,a.distance.bottom-=e,g=!0);break;case\"left\":case\"right\":(!f&&b===!0||-1!==b.indexOf(d))&&(e=a.distance[d],a.moveBy.x+=e,a.distance.left-=e,a.distance.right-=e,f=!0)}return k(a.distance),a}function p(a){return this instanceof p?(this.options=this.$itm=this.$trg=this.$bnd=this.itmAt=this.trgAt=this.itmPos=this.trgPos=this.bndPos=this.itmOffset=this.trgOffset=null,void this._init(a)):new p(a)}var q=window,r=document,s=r.documentElement,t=/top|middle|bottom/,u=/left|center|right/,v=/%$/,w={left:\"right\",center:\"center\",right:\"left\",top:\"bottom\",middle:\"middle\",bottom:\"top\"};return p.prototype._init=function(d){var e=this.options=a.extend({},p.defaults,d);return e.item?(this.$itm=e.item.jquery?e.item:a(e.item),0===this.$itm.length?null:(this.$trg=e.target&&e.target.jquery?e.target:a(b(e.target)),this.$bnd=e.boundary&&e.boundary.jquery?e.boundary:a(b(e.boundary)),this.itmAt=c(e.itemAt),this.trgAt=c(e.targetAt),this.resize(),this)):null},p.prototype.resize=function(){var a=this.options,b=e(this.$itm),c=this.$trg.length?e(this.$trg):null;if(this.bndPos=this.$bnd.length?g(this.$bnd):null,!this.itmPos||!d(b,this.itmPos)){this.itmPos=b;var f=i(a.itemOffset,b);f.x=-1*f.x,f.y=-1*f.y,this.itmOffset=j(b,f,this.itmAt)}return this.trgPos&&d(c,this.trgPos)||(this.trgPos=c,c&&(this.trgOffset=j(c,i(a.targetOffset,c),this.trgAt))),this},p.prototype.calcVariant=function(a,b){var c={moveBy:null,distance:null,itemAt:null,targetAt:null};if(this.trgPos&&a&&b){var d={top:this.trgPos.top+this.trgOffset[b.y],left:this.trgPos.left+this.trgOffset[b.x]},e={top:d.top-this.itmOffset[a.y],left:d.left-this.itmOffset[a.x],height:this.itmPos.height,width:this.itmPos.width};c.moveBy={y:e.top-this.itmPos.top,x:e.left-this.itmPos.left},c.distance=this.bndPos?l(this.bndPos,e):null,c.itemAt=a.y+\" \"+a.x,c.targetAt=b.y+\" \"+b.x}else c.moveBy={y:0,x:0},c.distance=this.bndPos?l(this.bndPos,this.itmPos):null;return c},p.prototype.calculate=function(){if(null===this.itmPos)return null;var a=this.options;f(this.$itm,this.itmPos),this.trgPos&&f(this.$trg,this.trgPos),this.bndPos&&h(this.$bnd,this.bndPos);var b=this.calcVariant(this.itmAt,this.trgAt);if(!b.distance||!b.distance.overflow)return b;if(a.flip&&\"none\"!==a.flip&&this.trgPos){var c,d=m(a.flip,this.itmAt,this.trgAt,b.distance);if(d){if(c=this.calcVariant(d.item_at,d.tar_at),!c.distance.overflow)return c;var e={y:!1,x:!1};if(e.y=n(c.distance,b.distance,!0),e.x=n(c.distance,b.distance,!1),e.y!==e.x){if(b=this.calcVariant({y:e.y?d.item_at.y:this.itmAt.y,x:e.x?d.item_at.x:this.itmAt.x},{y:e.y?d.tar_at.y:this.trgAt.y,x:e.x?d.tar_at.x:this.trgAt.x}),!b.distance.overflow)return b}else e.y&&e.x&&(b=c)}}return a.stick&&\"none\"!==a.stick?o(b,a.stick):b},p.defaults={item:null,target:null,boundary:window,itemAt:\"top left\",targetAt:\"top left\",itemOffset:{y:0,x:0,mirror:!0},targetOffset:{y:0,x:0,mirror:!0},flip:\"none\",stick:\"none\"},p});\r\n","/**\r\n * @preserve\r\n * Project: Bootstrap Hover Dropdown\r\n * Author: Cameron Spear\r\n * Version: v2.1.3\r\n * Contributors: Mattia Larentis\r\n * Dependencies: Bootstrap's Dropdown plugin, jQuery\r\n * Description: A simple plugin to enable Bootstrap dropdowns to active on hover and provide a nice user experience.\r\n * License: MIT\r\n * Homepage: http://cameronspear.com/blog/bootstrap-dropdown-on-hover-plugin/\r\n */\r\n;(function ($, window, undefined) {\r\n // outside the scope of the jQuery plugin to\r\n // keep track of all dropdowns\r\n var $allDropdowns = $();\r\n\r\n // if instantlyCloseOthers is true, then it will instantly\r\n // shut other nav items when a new one is hovered over\r\n $.fn.dropdownHover = function (options) {\r\n // don't do anything if touch is supported\r\n // (plugin causes some issues on mobile)\r\n\t // DR - Replaced original touch check with one supporting MS pointer events as well\r\n if(Modernizr.touch || Modernizr.pointerevents) return this; // don't want to affect chaining\r\n\r\n // the element we really care about\r\n // is the dropdown-toggle's parent\r\n $allDropdowns = $allDropdowns.add(this.parent());\r\n\r\n return this.each(function () {\r\n var $this = $(this),\r\n $parent = $this.parent(),\r\n defaults = {\r\n delay: 500,\r\n hoverDelay: 0,\r\n instantlyCloseOthers: true\r\n },\r\n data = {\r\n delay: $(this).data('delay'),\r\n hoverDelay: $(this).data('hover-delay'),\r\n instantlyCloseOthers: $(this).data('close-others')\r\n },\r\n showEvent = 'show.bs.dropdown',\r\n hideEvent = 'hide.bs.dropdown',\r\n // shownEvent = 'shown.bs.dropdown',\r\n // hiddenEvent = 'hidden.bs.dropdown',\r\n settings = $.extend(true, {}, defaults, options, data),\r\n timeout, timeoutHover;\r\n\r\n $parent.hover(function (event) {\r\n // so a neighbor can't open the dropdown\r\n if(!$parent.hasClass('open') && !$this.is(event.target)) {\r\n // stop this event, stop executing any code\r\n // in this callback but continue to propagate\r\n return true;\r\n }\r\n\r\n openDropdown(event);\r\n }, function () {\r\n // clear timer for hover event\r\n window.clearTimeout(timeoutHover)\r\n timeout = window.setTimeout(function () {\r\n $this.attr('aria-expanded', 'false');\r\n $parent.removeClass('open');\r\n $this.trigger(hideEvent);\r\n }, settings.delay);\r\n });\r\n\r\n // this helps with button groups!\r\n $this.hover(function (event) {\r\n // this helps prevent a double event from firing.\r\n // see https://github.com/CWSpear/bootstrap-hover-dropdown/issues/55\r\n if(!$parent.hasClass('open') && !$parent.is(event.target)) {\r\n // stop this event, stop executing any code\r\n // in this callback but continue to propagate\r\n return true;\r\n }\r\n\r\n openDropdown(event);\r\n });\r\n\r\n // handle submenus\r\n $parent.find('.dropdown-submenu').each(function (){\r\n var $this = $(this);\r\n var subTimeout;\r\n $this.hover(function () {\r\n window.clearTimeout(subTimeout);\r\n $this.children('.dropdown-menu').show();\r\n // always close submenu siblings instantly\r\n $this.siblings().children('.dropdown-menu').hide();\r\n }, function () {\r\n var $submenu = $this.children('.dropdown-menu');\r\n subTimeout = window.setTimeout(function () {\r\n $submenu.hide();\r\n }, settings.delay);\r\n });\r\n });\r\n\r\n function openDropdown(event) {\r\n // clear dropdown timeout here so it doesnt close before it should\r\n window.clearTimeout(timeout);\r\n // restart hover timer\r\n window.clearTimeout(timeoutHover);\r\n\r\n // delay for hover event.\r\n timeoutHover = window.setTimeout(function () {\r\n $allDropdowns.find(':focus').blur();\r\n\r\n if(settings.instantlyCloseOthers === true)\r\n $allDropdowns.removeClass('open');\r\n\r\n // clear timer for hover event\r\n window.clearTimeout(timeoutHover);\r\n $this.attr('aria-expanded', 'true');\r\n $parent.addClass('open');\r\n $this.trigger(showEvent);\r\n }, settings.hoverDelay);\r\n }\r\n });\r\n };\r\n\r\n $(document).ready(function () {\r\n // apply dropdownHover to all elements with the data-hover=\"dropdown\" attribute\r\n $('[data-hover=\"dropdown\"]').dropdownHover();\r\n });\r\n})(jQuery, window);\r\n"]}