if (kendo.support.browser.webkit || kendo.support.browser.mozilla || (kendo.support.browser.msie && kendo.support.browser.version >= 10)) { (function ($, undefined) { var devices = [ "ios7", "ios", "android", "blackberry", "wp", "flat" ], CtrlDown = false, originalToggle, visibleOSes, wasActive, helpRead, deviceClasses = $.map(devices, function (value) { return ".km-" + value; }), extend = $.extend, importWindow, exportWindow, each = $.each, dragging = false, globalUndoBuffer = [], globalRedoBuffer = [], click = kendo.support.mobileOS ? "touchend" : "click", defaultCSS = { cursor: "default", background: "", color: "", "border-color": "", font: "", "text-shadow": "" }, browsers = [ "-webkit-", "-moz-", "-ms-" ], propertyTargets = { color: [ "background-color", "color", "border-color" ], gradient: [ "background-image" ], pattern: [ "background-image" ], font: [ "font" ] }, packages = { color: [ "background-color" ], "background-color": [ "background-color" ], "border-color": [ "background-color" ], "background-image": [ "background-image", "background-repeat", "background-position" ], gradient: [ "background-image" ], pattern: [ "background-image", "background-repeat", "background-position" ], font: [ "font-family", "font-size", "font-weight", "font-style", "line-height", "text-shadow" ] }, tools = { color: new Color(), gradient: new Gradient(), pattern: { get: function () { return this.result; }, set: function (result) { this.result = result; return this; } }, font: { get: function () { return this.result; }, set: function (result) { this.result = result; return this; } } }, engineTool = null, backgroundSplitRegExp = /\s*,\s*(?=-|url)/i, properties = propertyTargets.color.concat(propertyTargets.gradient, propertyTargets.pattern, propertyTargets.font), TRANSITION = kendo.support.transitions.css + "transition", fillSvg = 'url(\'data:image/svg+xml;utf-8,<%2FlinearGradient><%2FlinearGradient><%2FlinearGradient><%2FlinearGradient><%2FlinearGradient><%2FlinearGradient><%2Fsvg>\')', ie10fillSvg = "
" + fillSvg.replace("url(\'data:image/svg+xml;utf-8,", "").replace(/\)$/, "").replace(/%2f/gi, "/").replace(/%23/gi, "#") + "
", cursorSvg = fillSvg + ' 14 37, crosshair', defaultColor = '', defaultIE10Color = '', defaultPattern = '<%2Fpattern>', defaultFont = 'Aa<%2Ftext>', defaultStop = '<%2FlinearGradient>', defaultIE10Stop = '', ui = kendo.ui, Widget = ui.Widget, applications = {}, counter = 1, clones = extend([], devices), widgetList = { listitemactiveicon: { name: "Active List Icon", selector: ".km-state-active .km-listview-link .km-icon", whitelist: [ "color", "background-image" ] }, activeicon: { name: "Active Icon", selector: ".km-state-active span.km-icon", whitelist: [ "color", "background-image" ] }, icon: { name: "Icon", selector: ".km-icon", whitelist: [ "color", "background-image", "width", "height" ] }, activetext: { name: "Active Text", selector: ".km-active-state .km-text", whitelist: [ "color" ], blacklist: ".km-android .km-tabstrip .km-text, .km-blackberry .km-tabstrip .km-text, .km-meego .km-tabstrip .km-text" }, text: { name: "Text", selector: ".km-text", whitelist: [ "color" ], blacklist: ".km-android .km-tabstrip .km-text, .km-blackberry .km-tabstrip .km-text, .km-meego .km-tabstrip .km-text" }, grouptitleinset: { name: "Group Title Inset", selector: ".km-listgroupinset .km-group-title", whitelist: [ "color", "background-color", "background-image" ] }, grouptitle: { name: "Group Title", selector: ".km-listgroup .km-group-title", whitelist: [ "color", "background-color", "background-image" ] }, viewtitle: { name: "View Title", selector: ".km-view-title > *", whitelist: [ "color" ] }, listitemactivelink: { name: "Active List Link", selector: ".km-state-active .km-listview-link", whitelist: [ "background-color", "background-image", "border-radius", "color", "border-color" ] }, listitem: { name: "List Item", selector: ".km-list > li", activeSelector: ".km-state-active", whitelist: [ "background-color", "background-image", "border-radius", "color", "border-color" ] }, scrollitem: { name: "ScrollView Item", selector: ".km-scrollview > div > *", whitelist: [ "width", "height" ] }, switchback: { name: "Switch Background", selector: ".km-switch-background", whitelist: [ "background-color", "background-image" ] }, switchcontainer: { name: "Switch Container", selector: ".km-switch-container", whitelist: [ "background-color", "background-image" ] }, switchhandleon: { name: "Active Switch Handle", selector: ".km-android .km-switch-on .km-switch-handle", whitelist: [ "border-color" ] }, switchhandleoff: { name: "Inactive Switch Handle", selector: ".km-android .km-switch-off .km-switch-handle", whitelist: [ "border-color" ] }, switchhandle: { name: "Switch Handle", selector: ".km-switch-handle", whitelist: [ "width", "height", "background-color", "background-image" ] }, switchon: { name: "Switch On Label", selector: ".km-switch-label-on", whitelist: [ "left", "width", "height", "color" ] }, switchoff: { name: "Switch Off Label", selector: ".km-switch-label-off", whitelist: [ "left", "width", "height", "color" ] }, switcher: { name: "Switch", selector: ".km-switch", activeSelector: ".km-switch-on", whitelist: [ "width", "height" ], children: [ "switchback", "switchhandle", "switchon", "switchoff" ] }, buttongroup: { selector: ".km-button-group", whitelist: [ "box-shadow", "border-radius" ], children: [ "button" ] }, scrollview: { name: "ScrollView", selector: ".km-scrollview", whitelist: [ "background-color", "background-image", "box-shadow" ], children: [ "scrollitem" ] }, activebutton: { name: "Active Button", selector: ".km-button.km-state-active", activeSelector: ".km-state-active", whitelist: [ "background-color", "background-image", "border-color" ] }, button: { name: "Button", selector: ".km-button", activeSelector: ".km-state-active", whitelist: [ "background-color", "background-image", "border-color" ], children: [ "icon", "text" ] }, navbar: { name: "NavBar", selector: ".km-navbar", whitelist: [ "background-color", "background-image", "font" ], children: [ "button", "viewtitle" ] }, listview: { name: "ListView", selector: ".km-list", whitelist: [ "border-color" ], children: [ "icon", "button", "switch", "listitem", "grouptitle" ] }, content: { name: "View Content", selector: ".km-content", whitelist: [ "background-color", "color", "background-image", "font" ], children: [ "button", "listview", "scrollview", "switch", "buttongroup" ] }, tabstrip: { name: "TabStrip", selector: ".km-tabstrip", whitelist: [ "background-color", "background-image", "border-color", "border-width", "border-style", "font" ], children: [ "button" ] }, view: { name: "View", selector: ".km-view", whitelist: [ "background-color" ], children: [ "navbar", "content", "tabstrip", "loader" ] }, ios: { selector: ".km-ios" }, ios7: { selector: ".km-ios7" }, android: { selector: ".km-android" }, blackberry: { selector: ".km-blackberry" }, wp: { selector: ".km-wp" }, flat: { selector: ".km-flat" }, meego: { selector: ".km-meego" } }, pickers = {}, defaults = { color: [ { "background-color": "#c5007c" }, { "background-color": "#6300a5" }, { "background-color": "#0010a5" }, { "background-color": "#0064b5" }, { "background-color": "#00a3c7" }, { "background-color": "#0fad00" }, { "background-color": "#8cc700" }, { "background-color": "#ff0" }, { "background-color": "#fec500" }, { "background-color": "#ff9400" }, { "background-color": "#f60" }, { "background-color": "#f00" }, { "background-color": "#fff" }, { "background-color": "#e5e5e5" }, { "background-color": "#ccc" }, { "background-color": "#b2b2b2" }, { "background-color": "#999" }, { "background-color": "#7f7f7f" }, { "background-color": "#666" }, { "background-color": "#4c4c4c" }, { "background-color": "#333" }, { "background-color": "#191919" }, { "background-color": "#000" }, { "background-color": "none" } ], gradient: [ { "background-image": "linear-gradient(top, #fff, rgba(255,255,255,.2) 50%, rgba(255,255,255,.3) 50%, rgba(255,255,255,.7))" }, { "background-image": "linear-gradient(top, rgba(255,255,255,.2), rgba(255,255,255,.4) 50%, rgba(255,255,255,.5) 50%, rgba(255,255,255,.8))" }, { "background-image": "linear-gradient(top, rgba(255,255,255,.2), rgba(255,255,255,.35) 50%, rgba(255,255,255,.45) 50%, rgba(255,255,255,.4))" }, { "background-image": "linear-gradient(top, rgba(255,255,255,.2), rgba(255,255,255,.4) 50%, rgba(255,255,255,.45) 50%, rgba(255,255,255,.4))" }, { "background-image": "linear-gradient(top, rgba(255,255,255,.6), rgba(255,255,255,.35) 50%, rgba(255,255,255,.4) 50%, rgba(255,255,255,.6))" }, { "background-image": "linear-gradient(top, rgba(255,255,255,.4), rgba(255,255,255,.6))" }, { "background-image": "linear-gradient(top, rgba(255,255,255,.2), rgba(255,255,255,.8))" }, { "background-image": "linear-gradient(top, rgba(255,255,255,.5), rgba(255,255,255,.2) 50%, rgba(255,255,255,.5))" }, { "background-image": "linear-gradient(top, rgba(255,255,255,.5), rgba(255,255,255,.2) 73%, rgba(255,255,255,.5))" }, { "background-image": "linear-gradient(top, rgba(255,255,255,.2), rgba(255,255,255,.5) 73%, rgba(255,255,255,.2))" }, { "background-image": "linear-gradient(top, rgba(255,255,255,.2), rgba(255,255,255,.35) 12%, rgba(255,255,255,.65) 40%, rgba(255,255,255,.4) 80%, rgba(255,255,255,.6))" }, { "background-image": "linear-gradient(top, rgba(0,0,0,.2), rgba(0,0,0,.4) 50%, rgba(0,0,0,.5) 50%, rgba(0,0,0,.8))" }, { "background-image": "linear-gradient(top, rgba(0,0,0,.2), rgba(0,0,0,.35) 50%, rgba(0,0,0,.45) 50%, rgba(0,0,0,.4))" }, { "background-image": "linear-gradient(top, rgba(0,0,0,.2), rgba(0,0,0,.4) 50%, rgba(0,0,0,.45) 50%, rgba(0,0,0,.4))" }, { "background-image": "linear-gradient(top, rgba(0,0,0,.6), rgba(0,0,0,.35) 50%, rgba(0,0,0,.4) 50%, rgba(0,0,0,.6))" }, { "background-image": "linear-gradient(top, rgba(0,0,0,.4), rgba(0,0,0,.6))" }, { "background-image": "linear-gradient(top, rgba(0,0,0,.2), rgba(0,0,0,.8))" }, { "background-image": "linear-gradient(top, rgba(0,0,0,.5), rgba(0,0,0,.2) 50%, rgba(0,0,0,.5))" }, { "background-image": "linear-gradient(top, rgba(0,0,0,.5), rgba(0,0,0,.2) 73%, rgba(0,0,0,.5))" }, { "background-image": "linear-gradient(top, rgba(0,0,0,.2), rgba(0,0,0,.5) 73%, rgba(0,0,0,.2))" }, { "background-image": "linear-gradient(top, rgba(0,0,0,.2), rgba(0,0,0,.35) 12%, rgba(0,0,0,.65) 40%, rgba(0,0,0,.4) 80%, rgba(0,0,0,.6))" }, { "background-image": "none" } ], pattern: [ { "background-image": "url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAIAAAAECAYAAACk7+45AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAABhJREFUeNpiYGBg+M+ADfxn/P8fIgMQYAA+7gT90CvwKgAAAABJRU5ErkJggg==)" }, { "background-image": "url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAADCAYAAABWKLW/AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAB1JREFUeNpiZGBg+A8EjECagRHIYIABJgYkABBgAM3TBv+4J7s8AAAAAElFTkSuQmCC)" }, { "background-image": "url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAB5JREFUeNpiYGBg+M8ABf//w5nYBf6DBBjRRQECDADOlA30CxD9AQAAAABJRU5ErkJggg==)" }, { "background-image": "url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAICAYAAADeM14FAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACBJREFUeNpiYGBg+M8ABf//w5nkCvwHCTCiixIWAAgwAP5EGepXPmrSAAAAAElFTkSuQmCC)" }, { "background-image": "url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAABxJREFUeNpiZGBg+A8EjAxQwAjkMCADwgIAAQYAGS4M+cNlSrIAAAAASUVORK5CYII=)" }, { "background-image": "url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAHVJREFUeNpiZGBgaGCAgL////9vZkADjIyMVUCKjQlJ7DEDdgAWhym8A8TrcSjcBJJnBFqHbA0fkPIGYhWo5q1A+U/IJsKAPxCrAzEzlA6CSaArlMXFZ8LmcGx8JmwOx+ZBRiCuRXc4WjiCPciEzeHYPAgQYADTTSDE4AZRlgAAAABJRU5ErkJggg==)" }, { "background-image": "url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAKCAYAAACE2W/HAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAHxJREFUeNpiZGBgaGCAgL////9vZiAAGBkZq4AUGxOS2GMG4gBYHUzjHSBeT6TGTSD1jEDnYXMOH5DyBmIVqKFbgeo+IathwmGqPxCrAzEzlA5CV4BLoywBPk6NjwnwcWrcBPUbzoBjBOJaXAGAIx7BAceELwDwBRxAgAEAdXkgxF84rxcAAAAASUVORK5CYII=)" }, { "background-image": "url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAKCAYAAACE2W/HAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAK5JREFUeNpiZGBgaGCAgL9QzMaAAH/////fjMRnYGRkrAKpYUISewzFDGhiDNjEYBrvAPF6IN4EZSOLoQOwGkYgwQd0zic05/ABKW8gVoEasBUqBRcDaUwAalyApjEWSCkjCT2A+h8uxgLEslicI4uF/xdZgAlfAOALOJBT+YFO/YjmVH4g5Yvkx81QKV9kP9biCgCQGK6AA/mRGYjVgZgdLQBgYgvQnO0PUgMQYAB8nzZRZvZqnQAAAABJRU5ErkJggg==)" }, { "background-image": "url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAOCAYAAAAWo42rAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAALNJREFUeNpiZGBgqALix0C8EYiLGFDBXyCeBMR+zEDCGYiFoPgDlIaB20CsAcQqTEiCKkC8GYgfQE0C0Vuh4gwsSArv/P///yOQXoBsNyMj4x2Yici6sQGwLTCFfxnwg78ghWxArAzE3jgU+YLkkd2oAnQPPygogFgWKcjAngEFjwN6UEDFUYKMCVtQYAsyRmCQIAdFDJrim0D55SAGE7agwBZkTNiCAluQMWELCmxBBhBgAMO1Mzvr3GK6AAAAAElFTkSuQmCC)" }, { "background-image": "url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAQ9JREFUeNqMkz8KwjAUxpP4B6GiuDq4CNrdsR7AGzg7OioewBO4egYXDyHSC+hSsKurVCyIS/0Cr8WG2LwHv6bkvXwvCV+kEGIryvHMsmwn/oSUco2hY84rS20kqsOaN4U+IHQIhVRXirohcgAPbL+LcQpGQP8n4AZOOLbO67o5aBZHBhva7lmLgKFZZDaDWAyxHjUbg7bE5O9F6u5L0Ko42hvssS6puqPAISIoH7gu2xe88F1CHlPIcwmlTKHUJRQxhSKXkNVsHNNqH61ys5HxnD4CMRm1MG0Nnxnogwm4U9EVNOhxasEXuIAj1ehmCzDI7SKN1281m/H6raZVHLNxTKs4ZuPkFcdsnPxXgAEAitpFKbukwF4AAAAASUVORK5CYII=)" }, { "background-image": "url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAANtJREFUeNpiZGBgaGCAgNP////fysjIWAtkMzOQCJig9C8gPgZlf2UgAzBBDVkJdM17oGv4geyf5BjECMSCUEOUgexwIGYjQt9fIP4BxNxA/AWIb7IAiXygIZ+BNBeRYQP2ARDfBWKQD+yAWIUFKslLpA9eAfFyIH4PxCg+YCIxKDhAwQB1SShyMJBqEDeUtgYZii36iQWwpKGBKx0RC26iuYwsg/AmWiYSDMGbaFmISWxAfIRQomUhJrEBsTGhRMtCTGIjJtEyEZPYSClG8CY2Ug3CmdiIAQABBgCRyUSyesNqjgAAAABJRU5ErkJggg==)" }, { "background-image": "url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAUCAYAAACEYr13AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAaJJREFUeNqUks1ugkAQx4FdRUUq4EeTXlqTNo16gcZ40hfoS/SNfCx7a9OTTW+aNLERCEKQb+iQ1IYa2E0n2Zgd3P/8Z+bHDofDK+YnEELsaDTSeJ6PmYoIggCv1+vXJEmy/M4VP3a7Xb7X6zGkGAwGbP6/0/2PwHQ6vW61Wpgk0Gg00Gw2u/l1LcuyOJ/PpcVicYcxlkzTDKMoSkki+RtVVaVOpxOyy+XyKQzDZL/fe7quB67rxgwlBEHA0Crf7/ebeLVafTH/jLxIfjabjYurJn04HETHcS7AHV+v1wNRFG2w7JxvCJc9NgxDsm3bh3hO09SEnAJzuY/jWFYUxYJBRpUCYK0JVS34fTnlYOc63HWorh6PR6EowJW1AALvZXlw8MGybFbMcSUT9qCKVzE8DzjxiQLnpNFI5Wik0UhF4/H4lkTadrv1SaSWbSHe7XY+WG1PJpMHTdNQgVT/nFRMI41GJYK1PAI0bVgRBxZjOCntUQ4btNIBp5cIEP2Engw4ClAn1mq1iCRyItWyrBDW/YazLEtJpNFI5Wik0Uj9FmAAlmwVK4mYI6QAAAAASUVORK5CYII=)" }, { "background-image": "url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAE8AAABPCAYAAACqNJiGAAATuUlEQVR4Xo3c64oFtRKG4b4OEVERRUVRPCEeUPHC5tI334IHXopB9o+m13TSSVXlq2PS8/z0009v33zzzdu333779vnnn7999913b99///3bnu/v/d71+++/v/3yyy9vX3311drX/9X3yy+/fPX9+eef377++uu3H3/88fXs119/ffviiy/efvjhhz3b782z58ZY256tfeO92j/++OM9X7/Nt7E33sbee/v79fuvv/5C665X+2effbbno3Vte7b7xt618dYXf2vbXHs2Xvd7Y4wez9G59rWh+TXWs0ExtY4Y28CE0hf30h9//DGGdq19bRvD++uztv2N4bW9nmPk008/xcSujbE2fSfs9R8jm2PjbX6LtnF3X/t+j/793jidt/RsYfZ+hbXn6zP6N9764gVINuZoWBvaXvdnjQgYuqwIAsYkFGB2d8SvbQSYaH0Rsmtjrg3hG2dE7/3Nu76Qumto2fX3339jbP031p7tbr7ezb07QZeu15i//fbbhEA4wLFrvwmODAia5r1kAWwb/4E0L3lh0oayPQNlKqIfFZtwdt970ER1MEYFEb42jI8wQt19yBs6xrA++9u8u482qofxzUOge4b2zWfO3StcYCha23/tALA58THkEQDEsHd7Nqagbs8QOKbWBtYblPrsvsHXF6GD/dqLDMJh9ywa4ox1Ga993HsvOwcEBEKl2eT1HXo2LxDUzHzyySe06EWX92vGqD+5PBtog+/lEQQ9I5S66GMQKrhnmMFkDTJbQoiEtGsEUmEMErSFoxEQiukKlwAIyiKOTu9DHvuMJ5rTRV2bhV9/9z3HBxA9DDiCuoJVA4whyoSEQEXYTUKk5vpQObauKMcAIhl/am8sAudUoGlCWj80Yh6i2VwI02d3zml2dc/Rs4v24YPjetaJzdgEVRUCorLUmqpr44EwDo0udoywd10Bcx5UBWrR0vk4I7RAIy8o9MIs1HN861fzQW0hcTRsbB4amGrShvBnxIHlJgNVAhmSPvjgAw4A0wiEiN0J2EVor3eEJgTEhmDeIrrWbwRCYdHKO6LFQkPp2iHQew2fRguhQXDtez04YUEsraO2Oo4pDIE0DwOVUFgV4Dg4AEYYsww9IZkcM4gnWMEqQjkbAoNkizTUvN4jbOpNeOyh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)" }, { "background-image": "url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAVCAYAAABljp99AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAWpJREFUeNo0kd9LwlAUx91VnKWhYwY2fZFJ9eCmhCAMRFgQ/cU9iS+ChpAsUcLQMRHSzKttIYNgrfM1uy8fPufcH+eeIxSLxYdGo/G42+2mo9Hoq1wun0mSVGKyLH+v12sFwQgtEM5o95PjOAWKpSN/Kw1niUSC53K5CQWMY8KAs3a7/U6nFrFY7JyCGgiPxuPxUjKZjGSz2WC5XNar1erQ87w3hrP9fv9TEIQ0bRBA+CERBIE4Ho9VwzCeQTg7PlhPpVILRVFWIByJAmOsZJqm3el0ViAciTtVVSdbWrZt+yCciaJ4QleEvV5viztBONN1/XUwGFzv9/vDYyCcaZo2C8OQU6xyLKQCZ5Zl8WazOaX6bygogXBGx1yqYkP9cShxD8IP/+h2u5zm4FKfZBAepaFc+b7/47qumc/nOZV8wTm3/n9+SdUE1NUhCEfiFDOo1Wov8/ncA+FI3GYyGQxr02q1PkD4rwADAPUIvqcPnGiJAAAAAElFTkSuQmCC)" }, { "background-image": "url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAGJJREFUeNqUkMEJAEEIA/fAWq8DO9rG7EAU3ZdwW0DyuDwNQ3AeVX0XyN4bnZeYGSzOORhwd1hkJga6GxYzg4GIWH9CFyhQVbC49jDAbDB7wmwwe8JssN+EPcfsUYAtfAIMABlKNaG74oyiAAAAAElFTkSuQmCC)" }, { "background-image": "url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAYAAAA7bUf6AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAj1JREFUeNpkU8mqIkEQTLsU9w0Vcb0ouB0E26NfoKBeRLwKzl/6EZ4U9SSCK+77+joSynHmFRTVVRkVmZEVrWs2m386nQ51u126XC70er3oe8RiMSoUCtRut2kymXD8/X7/g1ECgQAlEgkKhUK/gslkkmq1Gp9Ho1HS6/W/MI1Gg4TP51OPxyMDTqcTT0lQrVZpPp/Tdrsls9lMJpOJdrsd3e/3D0EkEiH9+XxmGUIICofDHLTZbB8CTGAejwcZDAbyeDy8b7Va5Ha7qd/v/yXBBNBqtVI+n6f9fs8V4ByZUS2+LRYLOZ1OJhwMBly5CAaDKj6u1+sHiAYul0uWCALEkex2uzEOzR0OhywRGOH3+1VZDQCoZjab8cRAxsPhwGSyYuDW6zUnRVxohyo6jiwAgvD5fPIroAJcQkZIQwIQyB6BBGRKPB4nnU7HG2QEQHoFF9BYWACkIERcvg4G9kqxWKRsNsvNwqX/fVCv1/lFvF4vN/ubACOdTpPQKmE5kLBarXj9NhJMtlgsWBKSQKKsNJPJUKVSIaE5VoWB0CBFURgEvdJIeAVpQJhNGjKXy1GpVKLpdEp66QM01uFwkOZgSqVS/M/gf4JmOYF1uVzcu3K5TOPxmKsUWjb2CQJYQYj+bDYbrgwv8G0BSMfEOfZIznJAgA2AWHu9Hr8KfgXoBwkuIC7ljkYjlmi320loOlU0EyA5pUsxjUbjxy/SSzIGWwAvtJJVBFEeyKTZvn2CHmHFuSTEQJV4lB8BBgB2zhzgn3iZ8wAAAABJRU5ErkJggg==)" }, { "background-image": "url(data:image/png;base64,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)" }, { "background-image": "url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAcCAYAAAByDd+UAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAKBJREFUeNq81T0OgCAMhmGp3IHNS7hwGnZOxM45TTB1MCHKX9J+79SFPGkXjPf+3BaLMdoQwrX6LqVkCYnlnC9CYjwTEpsGpbApUBIbgtJYF9TAmqAW9gtqYh9QG6tABPaCKOwBkRhnSiknCuPlCInxJQmJLf0WEtg0KIVNgZLYEJTGuqAG1gS1sF9QE/uA2lgFIrAXRGHc7pw7UBh3CzAAGoDd5dFuw6wAAAAASUVORK5CYII=)" }, { "background-image": "url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAcCAYAAAByDd+UAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAMtJREFUeNq81b0NwyAQBeBEWMxgWcgrUKHMxBY0XgF6FvAibjwIExChKC4sWf7j8B1XXfP0de+9rbUfrfX3BTzvfeOcA+dYCKGNMTZKqQQJSikT57yZpgmUY0KIbp7nVAtdwP9TC13BWugGrIHuQGr0EKRET0Eq9BKkQG9BbDQLxESzQSwUBGKgbBiGHlrAT1A2jmNb0vqlKDPGdKVTU4Iu4JN9g6IrWAvdgDXQHUiNHoKU6ClIhV6CFOgtiI1mgZhoNoiFgkAM9CfAAO0Pfd+RDuL0AAAAAElFTkSuQmCC)" }, { "background-image": "url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAFRJREFUeNpiKigoMGJgYDBGwgpfvnwR////vwoMM0IlYOAtUMF3bm5uXphAYWEhHwM+E5BsIagArIiQAmMGggqAhjAQUgAyhIGQApAcAyEFIAwQYAD+7HsO5fo76wAAAABJRU5ErkJggg==)" }, { "background-image": "url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAFZJREFUeNpi/P//vwoDFHz9+vUzDw8PJ5ApDBMrKCj4DyKMQAph+MuXL+JAOQUgNkbCDMZEKIQwCChEGItHIar9WBVicyi6QgZcPkJWyIDP6zCFAAEGAPRWfgx4dcnyAAAAAElFTkSuQmCC)" }, { "background-image": "url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAABCAYAAADeko4lAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAABlJREFUeNpiZGBgUGMgAvz///8LMeoAAgwAo98EGXpqjeMAAAAASUVORK5CYII=)" }, { "background-image": "url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAABCAYAAADn9T9+AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAABhJREFUeNpiZGBgUGNAA/////+CLgYQYABOywQZlafNQAAAAABJRU5ErkJggg==)" }, { "background-image": "none" } ], font: [ { font: "0.9em/normal HelveticaNeue, Roboto, 'Myriad Pro', 'Nokia Pure', Arial, sans-serif", "text-shadow" : "none" }, { font: "1em/normal HelveticaNeue, Roboto, 'Myriad Pro', 'Nokia Pure', Arial, sans-serif", "text-shadow" : "none" }, { font: "italic 1em/1.2em HelveticaNeue, Roboto, 'Myriad Pro', 'Nokia Pure', Arial, sans-serif", "text-shadow" : "none" }, { font: "0.9em/normal HelveticaNeue, Roboto, 'Myriad Pro', 'Nokia Pure', Arial, sans-serif", "text-shadow" : "0 -1px #000" }, { font: "1em/normal HelveticaNeue, Roboto, 'Myriad Pro', 'Nokia Pure', Arial, sans-serif", "text-shadow" : "0 -1px #000" }, { font: "italic 1em HelveticaNeue, Roboto, 'Myriad Pro', 'Nokia Pure', Arial, sans-serif", "text-shadow" : "0 -1px #000" }, { font: "0.9em/normal Roboto, HelveticaNeue, sans-serif", "text-shadow" : "none" }, { font: "1em/normal Roboto, HelveticaNeue, sans-serif", "text-shadow" : "none" }, { font: "italic 1em Roboto, HelveticaNeue, sans-serif", "text-shadow" : "none" }, { font: "0.9em/normal Roboto, HelveticaNeue, sans-serif", "text-shadow" : "0 -1px #000" }, { font: "1em/normal Roboto, HelveticaNeue, sans-serif", "text-shadow" : "0 -1px #000" }, { font: "italic 1em Roboto, HelveticaNeue, sans-serif", "text-shadow" : "0 -1px #000" }, { font: "0.9em/normal 'Lucida Sans Unicode', 'Lucida Grande', sans-serif", "text-shadow" : "none" }, { font: "1em/normal 'Lucida Sans Unicode', 'Lucida Grande', sans-serif", "text-shadow" : "none" }, { font: "italic 1em 'Lucida Sans Unicode', 'Lucida Grande', sans-serif", "text-shadow" : "none" }, { font: "0.9em/normal 'Lucida Sans Unicode', 'Lucida Grande', sans-serif", "text-shadow" : "0 -1px #000" }, { font: "1em/normal 'Lucida Sans Unicode', 'Lucida Grande', sans-serif", "text-shadow" : "0 -1px #000" }, { font: "italic 1em 'Lucida Sans Unicode', 'Lucida Grande', sans-serif", "text-shadow" : "0 -1px #000" }, { font: "0.9em/normal Arial, Helvetica, sans-serif", "text-shadow" : "none" }, { font: "1em/normal Arial, Helvetica, sans-serif", "text-shadow" : "none" }, { font: "italic 1em Arial, Helvetica, sans-serif", "text-shadow" : "0 -1px #000" }, { "font-family": "inherit", "font-size": "inherit", "font-weight": "inherit", "font-style": "inherit", "line-height": "inherit", "text-shadow" : "inherit" } ] }, i = 0, events = { color: { cursorOffset: { left: -50, top: -38 }, hint: function (element) { if (kendo.support.browser.msie) { return $(ie10fillSvg.replace(defaultIE10Color, '')); } else { return kendo.support.touch ? $("
") .css("background-image", fillSvg.replace(defaultColor, '')) : undefined; } }, dragstart: function () { var element = this.element, color = element.css("background-color"), doc = document.documentElement; dragging = true; element.data("property", "color"); element.data("background-color", tools.color.compress(color)); $(doc).addClass("drop-override"); if (!kendo.support.touch) { doc.style.cssText = "cursor: " + (kendo.support.browser.msie ? "none" : cursorSvg.replace(defaultColor, '')); } addRecentItem(element, "color"); }, dragend: function () { var doc = document.documentElement; dragging = false; widgetTarget.hide(); $(doc).removeClass("drop-override"); doc.style.cssText = ""; } } }, widgetTarget = $("
").appendTo(document.body), StyleEngine = Widget.extend({ init: function (element, options) { var that = this, key; Widget.fn.init.call(that, element, options); element = that.element; options = that.options; that.object = {}; that.undoBuffer = []; that.redoBuffer = []; if (options.restoreFromStorage) { if (localStorage && localStorage.length) { try { for (var i = 0; i < localStorage.length; i++){ key = localStorage.key(i); if (key.indexOf(".km-" + options.platform) === 0) { that.object[key] = JSON.parse(localStorage.getItem(key)); } } } catch(err) {} } } that.styleElement = $("").insertBefore(element); }, options: { name: "StyleEngine", restoreFromStorage: false, platform: "" }, cleanse: function() { var that = this, idx; for (idx in that.object) { if (!that.object[idx]) { delete that.object[idx]; } } }, populate: function(styles) { var that = this, style; that.object = kendo.deepExtend(that.object, styles); that.cleanse(); style = $("").insertAfter(that.styleElement); that.styleElement.remove(); that.styleElement = style; }, getElementSelector: function (element, agnostic) { var output = "", widget, parents = element.parentsUntil(agnostic ? ".km-pane" : ".km-root"); $(parents.add(element).get().reverse()).each(function (idx, value) { widget = matchWidget(value); if (widget && !(new RegExp(widget.selector + "\\s" + (widget.activeSelector ? "|" + widget.activeSelector + "\\s" : "")).test(output))) { output = widget.selector + " " + output; } }); return output.substr(0, output.length-1); }, update: function(element, styles, selector) { element = $(element); var that = this, style = {}, output = selector || that.getElementSelector(element), undoItem = {}; if (output) { undoItem[output] = kendo.deepExtend({}, that.object[output]); that.undoBuffer.push(undoItem); if (this.object[output]) { style[output] = kendo.deepExtend(this.object[output], styles); } else { style[output] = styles; } that.store(output, style[output]); that.populate(style); if (globalUndoBuffer) { globalUndoBuffer.push(that); } } }, undo: function() { var that = this, key, redoItem = {}, item = that.undoBuffer.pop(); if (item) { key = Object.keys(item)[0]; redoItem[key] = kendo.deepExtend({}, that.object[key]); that.redoBuffer.push(redoItem); if (globalRedoBuffer) { globalRedoBuffer.push(that); } that.store(key, item[key]); if (!kendo.size(item[key])) { item[key] = ""; } that.populate(item); } }, redo: function() { var that = this, key, undoItem = {}, item = that.redoBuffer.pop(); if (item) { key = Object.keys(item)[0]; undoItem[key] = kendo.deepExtend({}, that.object[key]); that.undoBuffer.push(undoItem); if (globalUndoBuffer) { globalUndoBuffer.push(that); } that.store(key, item[key]); if (!kendo.size(item[key])) { item[key] = ""; } that.populate(item); } }, getCSS: function () { var object = this.object, output = ""; for (var i in object) { output += i + " {\n"; for (var j in object[i]) { output += " " + j + ": " + object[i][j] + ";\n"; } output += "}\n"; } return output; }, getFullCSS: function () { var object = this.object, output = "", outputs, backgrounds, firstLetter; for (var i in object) { output += i + " {\n"; for (var j in object[i]) { if (j == "background-image") { backgrounds = object[i][j].split(backgroundSplitRegExp); outputs = []; browsers.forEach(function () { outputs.push([]); }); backgrounds.forEach(function (value) { firstLetter = value[0].toLowerCase(); if (firstLetter != "u" && firstLetter != "n") { tools.gradient.set(value).get(browsers).forEach(function (val, idx) { outputs[idx].push(val); }); } else { browsers.forEach(function (val, idx) { outputs[idx].push(value); }) } }); browsers.forEach(function (val, idx) { output += " " + j + ": " + outputs[idx].join(",") + ";\n"; }); } else { output += " " + j + ": " + object[i][j] + ";\n"; } } output += "}\n"; } return output; }, mixBackground: function (css, element, replace, forceUrl) { var that = this, idx, imageHash, repeats, url, comma, grPosition, grRepeat, color = element.css("background-color"), backgrounds = [ element.css("background-image").split(backgroundSplitRegExp), css["background-image"].split(backgroundSplitRegExp) ], backSplits = [ { gradient: [], url: [] }, { gradient: [] }], position = css["background-position"], repeat = css["background-repeat"]; position = position ? position.substring(position.indexOf(",") + 1) : ""; repeat = repeat ? repeat.substring(repeat.indexOf(",") + 1) : ""; backgrounds.forEach(function (val, idx) { val.forEach(function (value) { if (value[0].toLowerCase() == "u" || (forceUrl && value.trim() == "none")) { backSplits[0].url = [ value ]; } else { if (!forceUrl && value.trim() == "none") { backSplits[0].gradient = [ "none" ]; } else { backSplits[idx].gradient.push( value ); } } }); }); idx = -1; if (backSplits[1].gradient[0]) { imageHash = that.createHash(backSplits[1].gradient[0]); backSplits[0].gradient.forEach(function (value, i) { if (that.createHash(value) == imageHash) { idx = i; } }); } if (replace && backSplits[1].gradient[0]) { idx = 0; } if (idx > -1) { backSplits[0].gradient[idx] = backSplits[1].gradient[0]; } else if (backSplits[0].gradient.length < 4 && backSplits[1].gradient[0]) { backSplits[0].gradient.splice(0, 0, backSplits[1].gradient[0]); } repeats = new Array(backSplits[0].gradient.length+1); grPosition = repeats.join("0 0,"); grRepeat = repeats.join("repeat,"); url = backSplits[0].url[0]; comma = (url ? "," :""); return { "background-color": color, "background-image": (backSplits[0].gradient.length ? backSplits[0].gradient.join(",") + comma : "") + (url ? url : ""), "background-position": grPosition.substr(0, grPosition.length - 1) + comma + (url ? position : ""), "background-repeat": grRepeat.substr(0, grRepeat.length - 1) + comma + (url ? repeat : "") } }, createHash: function(str) { var hash = 0, i, len = str.length; if (!len) { return hash; } for (i = 0; i < len; i++) { hash = ((hash << 5) - hash) + str.charCodeAt(i); hash = hash & hash; } return hash; }, store: function(property, obj) { if (localStorage) { try { localStorage.setItem(property, JSON.stringify(obj)); } catch(err) {} } }, retrieve: function (property) { if (localStorage && localStorage.length) { try { return JSON.parse(localStorage.getItem(property)); } catch(err) {} } return {}; }, reset: function () { var that = this, key, style; that.object = {}; style = $("").insertAfter(that.styleElement); that.styleElement.remove(); that.styleElement = style; if (that.options.restoreFromStorage) { if (localStorage && localStorage.length) { for (var i = 0; i < localStorage.length; i++){ key = localStorage.key(i); if (key.indexOf(".km-" + that.options.platform) !== -1) { localStorage.removeItem(key); i--; } } } } } }); kendo.ui.plugin(StyleEngine); if (localStorage) { try { helpRead = localStorage.getItem("helpRead"); if (!helpRead) { var help = $("
").appendTo(document.body); $(".closeHelp").on(click, function () { try { localStorage.setItem("helpRead", true); help.remove(); } catch(err) {} }); } visibleOSes = JSON.parse(localStorage.getItem("visibility")); visibleOSes.forEach(function (value) { document.getElementById(value).checked = "checked"; }); } catch(err) { visibleOSes = [ "ios7box", "androidbox", "blackberrybox", "wpbox" ]; visibleOSes.forEach(function (value) { document.getElementById(value).checked = "checked"; }); } } window.URL = window.webkitURL || window.mozURL || window.URL; window.BlobBuilder = window.BlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder; extend(events, { gradient: extend({}, events.color, { hint: function (element) { if (kendo.support.browser.msie) { return $(ie10fillSvg.replace(defaultIE10Stop, tools.gradient.set(element.css("background-image")).get("svg"))); } else { return kendo.support.touch ? $("
") .css("background-image", fillSvg.replace(defaultStop, tools.gradient.set(element.css("background-image")).get("svg"))) : undefined; } }, dragstart: function () { var element = this.element, gradient = element.css("background-image"), doc = document.documentElement; dragging = true; element.data("property", "gradient"); element.data("background-image", tools.gradient.set(gradient).get()); $(doc).addClass("drop-override"); if (!kendo.support.touch) { doc.style.cssText = "cursor: " + (kendo.support.browser.msie ? "none" : cursorSvg.replace(defaultStop, tools.gradient.get("svg"))); } addRecentItem(element, "gradient"); } }), pattern: extend({}, events.color, { hint: function (element) { if (kendo.support.browser.msie) { return $(ie10fillSvg.replace(defaultIE10Color, defaultPattern.replace("##", element.css("background-image").replace(/^url\("?|"?\)$/ig, "")))); } else { return kendo.support.touch ? $("
") .css("background-image", fillSvg.replace(defaultColor, defaultPattern.replace("##", element.css("background-image").replace(/^url\("?|"?\)$/ig, "").replace("/", "%2F")))) : undefined; } }, dragstart: function () { var element = this.element, pattern = element.css("background-image"), doc = document.documentElement; dragging = true; element.data("property", "pattern"); element.data("background-image", pattern); $(doc).addClass("drop-override"); if (!kendo.support.touch) { doc.style.cssText = "cursor: " + (kendo.support.browser.msie ? "none" : cursorSvg.replace(defaultColor, defaultPattern.replace("##", pattern.replace(/^url\("?|"?\)$/ig, "")))); } addRecentItem(element, "pattern"); } }), font: extend({}, events.color, { hint: function (element) { if (kendo.support.browser.msie) { return $(ie10fillSvg.replace(defaultIE10Color, defaultFont.replace("##", JSON.stringify(kendo.getComputedStyles(element[0], [ "font-family", "font-size", "font-weight", "font-style" ])).replace(/","/g, ";").replace(/"|{|}|'/g, "")).replace(/%2f/gi, "/"))); } else { return kendo.support.touch ? $("
") .css("background-image", fillSvg.replace(defaultColor, defaultFont.replace("##", JSON.stringify(kendo.getComputedStyles(element[0], [ "font-family", "font-size", "font-weight", "font-style" ])).replace(/","/g, ";").replace(/"|{|}|'/g, "")))) : undefined; } }, dragstart: function () { var element = this.element, font = JSON.stringify(kendo.getComputedStyles(element[0], [ "font-family", "font-size", "font-weight", "font-style" ])).replace(/","/g, ";").replace(/"|{|}|'/g, ""), doc = document.documentElement; dragging = true; element.data("property", "font"); element.data("font", element.css("font")); $(doc).addClass("drop-override"); if (!kendo.support.touch) { doc.style.cssText = "cursor: " + (kendo.support.browser.msie ? "none" : cursorSvg.replace(defaultColor, defaultFont.replace("##", font))); } addRecentItem(element, "font"); } }) }); for (var idx in widgetList) { var children = widgetList[idx].children; if (children) { children.forEach(function (name) { var item = widgetList[name]; if (item) { item.parents = [ idx ].concat(item.parents || []); } }); } } function matchWidget(element, properties) { if ($(element).hasClass("km-root")) return false; var widget, props; for(var idx in widgetList) { widget = widgetList[idx]; if (kendo.support.matchesSelector.call(element, widget.selector) && !kendo.support.matchesSelector.call(element, widget.blacklist)) { if (properties && widget.whitelist) { props = widget.whitelist.filter(function (value) { return properties.indexOf(value) !== -1 }); if (props.length) { return kendo.deepExtend( { widget: idx, element: element, properties: props, idx: 0 }, widget ); } } else { return kendo.deepExtend( { widget: idx, element: element }, widget ); } } } return matchWidget(element.parentNode, properties); } function getPropertySelector(property) { var output = "", widget; for(var idx in widgetList) { widget = widgetList[idx]; if (((widget.whitelist && widget.whitelist.indexOf(property) != -1) || !property) && widget.selector[0] != ">") { output += widget.selector + ","; } } return output.substring(0, output.length-1); } function getWidgets(property) { var widget, qualifiedWhiteList, widgets = { selector: "" }; if (typeof property == "string") property = [ property ]; for(var idx in widgetList) { widget = widgetList[idx]; qualifiedWhiteList = widget.whitelist ? widget.whitelist.filter(function (value) { return property.indexOf(value) != -1; }) : []; if (((widget.whitelist && qualifiedWhiteList.length) || !property.length) && widget.selector[0] != ">") { widgets[idx] = widget; widgets[idx].whitelist = qualifiedWhiteList; widgets.selector += widget.selector + ","; } } widgets.selector = widgets.selector.substring(0, widgets.selector.length-1); return widgets; } window.globalUndo = function() { var lastEngine = globalUndoBuffer.pop(); if (lastEngine) { lastEngine.undo(); } }; window.globalRedo = function() { var lastEngine = globalRedoBuffer.pop(); if (lastEngine) { lastEngine.redo(); } }; // Wheel scrolling affects property chooser kendo.mobile.ui.Scroller.prototype._wheelScroll = function(e) {}; // Override Kendo Pane bindToRouter to avoid URL breaks and bad refresh kendo.mobile.ui.Pane.prototype.bindToRouter = function(router) { var that = this, options = that.options, initial = options.initial, viewEngine = this.viewEngine; router.bind("init", function(e) { var url = e.url, attrUrl = router.pushState ? url : "/"; viewEngine.rootView.attr(kendo.attr("url"), attrUrl); if (url === "/" && initial) { router.navigate(initial, true); e.preventDefault(); // prevents from executing routeMissing, by default } }); router.bind("routeMissing", function(e) { if (!that.historyCallback(e.url, e.params)) { e.preventDefault(); } }); router.bind("same", function() { that.trigger("sameViewRequested"); }); }; originalToggle = kendo.mobile.ui.ListView.prototype._toggle; kendo.mobile.ui.ListView.prototype._toggle = function(e) { if ((!dragging && "mousemove touchmove".indexOf(e.type) == -1) && "mouseleave touchcancel".indexOf(e.type) == -1) { if (e.type != kendo.support.mouseup) { wasActive = $(e.currentTarget).closest("li").hasClass("km-state-active"); originalToggle(e); } else { if (!wasActive) { originalToggle(e); } } } }; $(".device").on("mouseenter", ".km-list > li > .km-listview-link, .km-list > li > .km-listview-label, .km-button", function(e) { wasActive = $(e.currentTarget).hasClass("km-state-active") || $(e.currentTarget).parent().hasClass("km-state-active"); }); kendo.mobile.ui.Button.prototype._deactivate = function (e) { if ((!dragging && e.type != kendo.support.mousemove) && e.type != kendo.support.mousecancel) { if (e.type !== kendo.support.mouseup) { wasActive = $(e.currentTarget).closest(".km-button,.km-detail").hasClass("km-state-active"); $(e.target).closest(".km-button,.km-detail").addClass("km-state-active"); } else { if (!wasActive) { $(e.target).closest(".km-button,.km-detail").removeClass("km-state-active"); } } } }; function replaceIDs() { var id = this.id; this.id += counter; $(this).closest(".device").find("[href^=#" + id + "]").attr("href", "#" + this.id); } function replaceLayouts() { var that = $(this), newId = that.attr("data-id") + counter++; that.attr("data-id", newId); that.closest(".device").find("[data-layout]").attr("data-layout", newId); } clones.shift(); each(clones.reverse(), function () { $("#ios7Device") .clone(true) .find("[id]") // Make sure there are no duplicate IDs. .each(replaceIDs) .end() .find("[data-id]") .each(replaceLayouts) .end() .attr("id", this.toString() + "Device") .insertAfter("#ios7Device"); }); $("#" + clones[0] + "Device [data-role=view]").attr("data-init", "initTargets"); each(devices, function () { var that = this.toString(), deviceId = "#" + that + "Device", device = $(deviceId), checkbox = $("#" + that + "box")[0]; applications[that] = new kendo.mobile.Application(device, { skin: that, platform: that, icon: { "72x72" : "../content/mobilethemebuilder/images/Icon-72.png", "144x144" : "../content/mobilethemebuilder/images/Icon2x.png" }, updateDocumentTitle: false }); kendo.mobile.application.element = device; engineTool = device.kendoStyleEngine({ restoreFromStorage: true, platform: that }).data("kendoStyleEngine"); device.toggleClass("hiddenOS", !checkbox.checked); }); pickers = { color: $(".recent-colors").kendoHSLPicker({ filter: ".drop" }).data("kendoHSLPicker"), gradient: $(".recent-gradients").kendoGradientPicker({ filter: ".drop", styleEngine: engineTool }).data("kendoGradientPicker"), pattern: $(".recent-patterns").kendoPatternPicker({ filter: ".drop", styleEngine: engineTool }).data("kendoPatternPicker"), font: $(".recent-fonts").kendoFontPicker({ filter: ".drop", styleEngine: engineTool }).data("kendoFontPicker") }; window.initTargets = function() { setTimeout(function () { var whitelisted = false, draggedElement, css, widget = false, color = "transparent"; $(document.documentElement).off("touchmove"); $(".color-holder .drop").kendoDraggable(events.color); $(".gradient-holder .drop").kendoDraggable(events.gradient); $(".pattern-holder .drop").kendoDraggable(events.pattern); $(".font-holder .drop").kendoDraggable(events.font); function applyHint(element, target, pkg) { var engine = target.parents(".device").data("kendoStyleEngine"), color; css = kendo.getComputedStyles(element, pkg); if (css["background-color"]) { color = css["background-color"]; delete css["background-color"]; css[whitelisted] = color; } if (css["background-image"]) { kendo.deepExtend(css, engine.mixBackground(css, target, true, $(element).attr("data-pattern") !== undefined)); } if (draggedElement.hasClass("k-none") && css["font-family"]) { packages.font.forEach(function (value) { delete css[value]; }); kendo.deepExtend(css, defaults.font[defaults.font.length - 1]); } target.css(css); widgetTarget .children("div") .last() .children() .text(whitelisted); } $(".device").on("DOMMouseScroll mousewheel", "*", function (e) { if (!dragging) { return; } if (widget) { e.preventDefault(); e.stopImmediatePropagation(); var properties = widget.properties, target = $(widget.element), maxIndex = properties.length - 1; widget.idx += (e.originalEvent.wheelDelta / 120 || e.originalEvent.detail / 3); widget.idx < 0 && (widget.idx = maxIndex); widget.idx > maxIndex && (widget.idx = 0); target.css(defaultCSS); whitelisted = widget.whitelist.indexOf(properties[widget.idx]) != -1 ? properties[widget.idx] : false; if (!whitelisted) { return; } applyHint(draggedElement[0], target, packages[properties[widget.idx]]); } }); $(".device").kendoDropTargetArea({ filter: getWidgets(properties).selector, dragenter: function (e) { draggedElement = $(e.draggable.element); var properties = propertyTargets[draggedElement.data("property")]; widget = matchWidget(e.dropTarget[0], properties); properties = widget.properties; var target = $(widget.element), offset = target.offset(), height = target.outerHeight(), widgetChildren = widgetTarget.children("div"); if (widget && widget.whitelist) { whitelisted = widget.whitelist.indexOf(properties[widget.idx]) != -1 ? properties[widget.idx] : false; if (!whitelisted) { return; } applyHint(draggedElement[0], target, packages[whitelisted]); widgetTarget .show() .css(TRANSITION, "all 100ms") .css("display"); widgetTarget .css({ top: offset.top, left: offset.left }) .children("span") .text(widget.name); widgetChildren .width(target.outerWidth()) .css(TRANSITION, "all 100ms") .last() .css("top", height) .end() .css("display"); widgetChildren .children("div") .height(height) .css(TRANSITION, "all 100ms") .css("display"); } }, dragleave: function () { $(widget.element).css(defaultCSS); widgetTarget.hide(); }, drop: function (e) { if (!whitelisted) { return; } var target = $(widget.element), engines = $("#applyall")[0].checked ? $.map(visibleOSes, function (value) { return $("#" + value.replace("box", "Device")).data("kendoStyleEngine"); }) : [ target.parents(".device").data("kendoStyleEngine") ], targetSelector = engines[0].getElementSelector(target, true); target.css(defaultCSS); widgetTarget.hide(); engines.forEach(function (value) { var currentTarget = value.element.find(targetSelector); if (css["background-image"]) { kendo.deepExtend(css, value.mixBackground(css, currentTarget, true, draggedElement.attr("data-pattern") !== undefined)); } value.update(currentTarget, css, ".km-" + value.options.platform + " " + targetSelector); }); } }); $(document).on({ keydown: function (e) { CtrlDown = e.which == 17; }, keyup: function (e) { var Y = e.which == 89 || e.which == 121, Z = e.which == 90 || e.which == 122; if (e.ctrlKey && (Y || Z)) { e.stopImmediatePropagation(); e.preventDefault(); if (e.shiftKey || Y) { globalRedo(); } else { globalUndo(); } } e.which == 17 && (CtrlDown = false); } }); $(".device").on(click, ".utility-active", function (e) { var target = $(e.currentTarget), width = target.outerWidth(); if (width - 20 < e.offsetX && e.offsetX < width && e.offsetY > 0 && e.offsetY < 20) { e.stopImmediatePropagation(); e.preventDefault(); } }); }, 200); }; window.mobileAccountViewInit = function () { var listviews = this.element.find("ul.km-listview"); this.element.find("[id^=settings-view]").kendoMobileButtonGroup({ select: function() { listviews.hide() .eq(this.selectedIndex) .show(); }, index: 0 }); }; function addRecentItem(element, type) { element = $(element); var existing = $('.recent-' + type + 's [data-' + type + '="' + element.attr("data-" + type) + '"]'); if (existing[0]) { existing .addClass("k-state-active") .trigger(click) .siblings(".k-state-active") .removeClass("k-state-active") } else { var recent = element.clone() .prependTo(".recent-" + type + "s") .addClass("k-state-active") .siblings(".k-state-active") .removeClass("k-state-active").end(); recent.kendoDraggable(events[type]); pickers[type].popup.wrapper.addClass("k-static-shown"); pickers[type].open(recent); recent.on(click, function (e) { var that = $(this), item; if (e.button == 0) { that.addClass("k-state-active") .siblings(".k-state-active") .removeClass("k-state-active"); } else if (e.button == 1) { if (this == pickers[type].target[0]) { item = that.next(); !item[0] && (item = that.prev()); if (!item[0]) { pickers[type].popup.wrapper.removeClass("k-static-shown"); pickers[type].close(); } else { pickers[type].open(item); } } that.remove(); } }); } } ["color", "gradient", "pattern", "font"].forEach(function (type) { i = 0; while (defaults[type][i]) { var value = defaults[type][i], drop, style; if (value["background-image"]) { value["background-image"] = tools[type].set(value["background-image"]).get(); } if (value["background-color"]) { } drop = $('
') .css(value) .insertBefore(".recent-" + type + "s") .on(click, function () { addRecentItem(this, type); }); style = JSON.stringify(kendo.getComputedStyles(drop[0], packages[type])); drop.attr("data-" + type, (type == "color" ? value["background-color"] : engineTool.createHash(style))); i++; if (!(i % (type != "gradient" && type != "font" ? 12 : 11))) { $("
").insertBefore(".recent-" + type + "s"); } } $("." + type + "-holder .drop:last").addClass("k-none"); kendo.wrap(pickers[type].popup.element).addClass("k-static-picker k-static-" + type); }); $(".tools").kendoTabStrip({ animation: { open: { effects: "fade:in" } }, select: function (e) { } }); $("body").css("visibility", "visible"); $(".optionsSheet input").on("change", function () { $("#" + this.id.replace("box", "Device")).toggleClass("hiddenOS", !this.checked); visibleOSes = $(this) .parents(".optionsSheet") .find("label") .prev(":checked") .map(function() { return this.id; }).toArray(); if (localStorage && localStorage.length) { try { localStorage.setItem("visibility", JSON.stringify(visibleOSes)); } catch(err) {} } }); $(".optionsSheet label, .optionsSheet input").on(click, function (e) { e.stopImmediatePropagation(); }); $(".optionsSheet").on(click, function (e) { e.preventDefault(); $(".optionsSheet .items") .css("z-index", ""); $(".optionsSheet .cover") .one(kendo.support.transitions.event, function () { if ($(this).parent().hasClass("k-state-opened")) { $(".optionsSheet .items").css("z-index", 10); } }).css("overflow"); $(this).toggleClass("k-state-opened"); }); importWindow = $("#importWindow").kendoWindow({ width: "400px", height: "400px", maxHeight: "400px", title: "Import Styles", visible: false, modal: true }).data("kendoWindow"); exportWindow = $("#exportWindow"); exportWindow.append('

Download CSS'); exportWindow = exportWindow.kendoWindow({ width: "400px", height: "400px", maxHeight: "400px", title: "Export Styles", visible: false, modal: true }).data("kendoWindow"); $("#resetStyles").on(click, function () { each(devices, function () { var that = this.toString(); $("#" + that + "Device").data("kendoStyleEngine").reset(); }); }); $("#importStyles").on(click, function () { if (sessionStorage && sessionStorage.length) { try { $("#importWindow .k-textbox")[0].value = sessionStorage.getItem("import"); } catch(err) {} } importWindow.center().open(); }); $("#exportStyles").on(click, function () { var output = "", blob = "", BlobBuilder, textarea = exportWindow.element.find("textarea"), anchor = exportWindow.element.find("a"); each(devices, function () { var that = this.toString(); if ($("#" + that + "box")[0].checked) { output += $("#" + that + "Device").data("kendoStyleEngine").getFullCSS(); } }); textarea.text(output); try { blob = new Blob([output], {type: "text/plain"}); } catch (e) { BlobBuilder = window.WebKitBlobBuilder || window.MozBlobBuilder; if (BlobBuilder) { var bb = new BlobBuilder(); bb.append(output); blob = bb.getBlob("text/plain"); } } if (anchor[0].download) { anchor.attr("href", window.URL.createObjectURL(blob)); } else { anchor.remove(); textarea.css("height", "365px"); } exportWindow.center().open(); }); $("#import").on(click, function () { var imports = $("#importWindow .k-textbox")[0].value.replace(/<\s*\/.*?>/gm, ""), stylesheet = $("").appendTo(document.body), styles = {}, style; if (stylesheet[0].sheet) { each((stylesheet[0].sheet.rules || stylesheet[0].sheet.cssRules), function () { deviceClasses.forEach(function (value) { if (this.selectorText.indexOf(value) === 0) { style = {}; for (var i = 0, len = this.style.length; i < len; i++) { if (!style[this.selectorText]){ style[this.selectorText] = {}; } style[this.selectorText][this.style[i]] = this.style[this.style[i]] || this.style[$.camelCase(this.style[i])]; } styles[value] = extend(styles[value], style); } }, this); }); } for (var idx in styles) { var engine = $(idx).data("kendoStyleEngine"); if (!$("#mixStyles")[0].checked) { engine.object = {}; } engine.populate(styles[idx]); for (i in styles[idx]) { engine.store(i, styles[idx][i]); } } stylesheet.remove(); try { sessionStorage.setItem("import", imports); } catch(err) {} importWindow.close(); }); window.tools = tools; })(jQuery); } else { $(document.body).addClass("old-browser").show(); $(".header, .tools, .files").hide(); $(".box").empty().html("The Kendo UI Mobile ThemeBuilderis fully supported in WebKit based browsers and partially supported in Firefox.
Please use a compatible desktop browser.
") }