]> git.mxchange.org Git - friendica.git/commitdiff
new file: view/theme/smoothly/bottom.tpl
authorpixelroot <info@pixelbits.de>
Fri, 14 Sep 2012 17:08:39 +0000 (19:08 +0200)
committerpixelroot <info@pixelbits.de>
Fri, 14 Sep 2012 17:08:39 +0000 (19:08 +0200)
new file:   view/theme/smoothly/js/jquery.autogrow.textarea.js
new file:   view/theme/smoothly/js/modernizr.custom.2.5.3.js
new file:   view/theme/smoothly/js/modernizr.custom.2.5.3.min.js

view/theme/smoothly/bottom.tpl [new file with mode: 0644]
view/theme/smoothly/js/jquery.autogrow.textarea.js [new file with mode: 0644]
view/theme/smoothly/js/modernizr.custom.2.5.3.js [new file with mode: 0644]
view/theme/smoothly/js/modernizr.custom.2.5.3.min.js [new file with mode: 0644]

diff --git a/view/theme/smoothly/bottom.tpl b/view/theme/smoothly/bottom.tpl
new file mode 100644 (file)
index 0000000..800dc63
--- /dev/null
@@ -0,0 +1,59 @@
+<script type="text/javascript" src="$baseurl/view/theme/smoothly/js/jquery.autogrow.textarea.js"></script>
+<script type="text/javascript">
+$(document).ready(function() {
+
+});
+function tautogrow(id) {
+       $("textarea#comment-edit-text-" + id).autogrow();
+};
+
+function insertFormatting(comment, BBcode, id) {
+       var tmpStr = $("#comment-edit-text-" + id).val();
+       if(tmpStr == comment) {
+               tmpStr = "";
+               $("#comment-edit-text-" + id).addClass("comment-edit-text-full");
+               $("#comment-edit-text-" + id).removeClass("comment-edit-text-empty");
+               openMenu("comment-edit-submit-wrapper-" + id);
+       }
+       textarea = document.getElementById("comment-edit-text-" + id);
+       if (document.selection) {
+               textarea.focus();
+               selected = document.selection.createRange();
+               if (BBcode == "url") {
+                       selected.text = "["+BBcode+"]" + "http://" +  selected.text + "[/"+BBcode+"]";
+               } else {
+                       selected.text = "["+BBcode+"]" + selected.text + "[/"+BBcode+"]";
+               }
+       } else if (textarea.selectionStart || textarea.selectionStart == "0") {
+               var start = textarea.selectionStart;
+               var end = textarea.selectionEnd;
+               if (BBcode == "url") {
+                       textarea.value = textarea.value.substring(0, start) + "["+BBcode+"]"
+                       + "http://" + textarea.value.substring(start, end)
+                       + "[/"+BBcode+"]" + textarea.value.substring(end, textarea.value.length);
+               } else {
+                       textarea.value = textarea.value.substring(0, start)
+                       + "["+BBcode+"]" + textarea.value.substring(start, end) + "[/"+BBcode+"]"
+                       + textarea.value.substring(end, textarea.value.length);
+               }
+       }
+       return true;
+}
+
+function cmtBbOpen(id) {
+       $(".comment-edit-bb-" + id).show();
+}
+function cmtBbClose(id) {
+    $(".comment-edit-bb-" + id).hide();
+}
+
+var doctitle = document.title;
+function checkNotify() {
+       if(document.getElementById("notify-update").innerHTML != "") {
+               document.title = "("+document.getElementById("notify-update").innerHTML+") " + doctitle;
+       } else {
+               document.title = doctitle;
+    };
+    setInterval(function () {checkNotify();}, 10 * 1000);
+}
+</script>
diff --git a/view/theme/smoothly/js/jquery.autogrow.textarea.js b/view/theme/smoothly/js/jquery.autogrow.textarea.js
new file mode 100644 (file)
index 0000000..806e34f
--- /dev/null
@@ -0,0 +1,46 @@
+(function($) {
+
+    /*
+     * Auto-growing textareas; technique ripped from Facebook
+     */
+    $.fn.autogrow = function(options) {
+        
+        this.filter('textarea').each(function() {
+            
+            var $this       = $(this),
+                minHeight   = $this.height(),
+                lineHeight  = $this.css('lineHeight');
+            
+            var shadow = $('<div></div>').css({
+                position:   'absolute',
+                top:        -10000,
+                left:       -10000,
+                width:      $(this).width(),
+                fontSize:   $this.css('fontSize'),
+                fontFamily: $this.css('fontFamily'),
+                lineHeight: $this.css('lineHeight'),
+                resize:     'none'
+            }).appendTo(document.body);
+            
+            var update = function() {
+                
+                var val = this.value.replace(/</g, '&lt;')
+                                    .replace(/>/g, '&gt;')
+                                    .replace(/&/g, '&amp;')
+                                    .replace(/\n/g, '<br/>');
+                
+                shadow.html(val);
+                $(this).css('height', Math.max(shadow.height() + 20, minHeight));
+            }
+            
+            $(this).change(update).keyup(update).keydown(update);
+            
+            update.apply(this);
+            
+        });
+        
+        return this;
+        
+    }
+    
+})(jQuery);
\ No newline at end of file
diff --git a/view/theme/smoothly/js/modernizr.custom.2.5.3.js b/view/theme/smoothly/js/modernizr.custom.2.5.3.js
new file mode 100644 (file)
index 0000000..2502348
--- /dev/null
@@ -0,0 +1,989 @@
+/* Modernizr 2.5.3 (Custom Build) | MIT & BSD\r
+ * Build: http://www.modernizr.com/download/#-fontface-backgroundsize-borderimage-borderradius-boxshadow-flexbox-flexbox_legacy-hsla-multiplebgs-opacity-rgba-textshadow-cssanimations-csscolumns-generatedcontent-cssgradients-cssreflections-csstransforms-csstransforms3d-csstransitions-applicationcache-canvas-canvastext-draganddrop-hashchange-history-audio-video-indexeddb-input-inputtypes-localstorage-postmessage-sessionstorage-websockets-websqldatabase-webworkers-geolocation-inlinesvg-smil-svg-svgclippaths-touch-printshiv-mq-teststyles-testprop-testallprops-hasevent-prefixes-domprefixes-load\r
+ */\r
+;\r
+\r
+\r
+\r
+window.Modernizr = (function( window, document, undefined ) {\r
+\r
+    var version = '2.5.3',\r
+\r
+    Modernizr = {},\r
+\r
+\r
+    docElement = document.documentElement,\r
+\r
+    mod = 'modernizr',\r
+    modElem = document.createElement(mod),\r
+    mStyle = modElem.style,\r
+\r
+    inputElem  = document.createElement('input')  ,\r
+\r
+    smile = ':)',\r
+\r
+    toString = {}.toString,\r
+\r
+    prefixes = ' -webkit- -moz- -o- -ms- '.split(' '),\r
+\r
+\r
+\r
+    omPrefixes = 'Webkit Moz O ms',\r
+\r
+    cssomPrefixes = omPrefixes.split(' '),\r
+\r
+    domPrefixes = omPrefixes.toLowerCase().split(' '),\r
+\r
+    ns = {'svg': 'http://www.w3.org/2000/svg'},\r
+\r
+    tests = {},\r
+    inputs = {},\r
+    attrs = {},\r
+\r
+    classes = [],\r
+\r
+    slice = classes.slice,\r
+\r
+    featureName, \r
+\r
+\r
+    injectElementWithStyles = function( rule, callback, nodes, testnames ) {\r
+\r
+      var style, ret, node,\r
+          div = document.createElement('div'),\r
+                body = document.body, \r
+                fakeBody = body ? body : document.createElement('body');\r
+\r
+      if ( parseInt(nodes, 10) ) {\r
+                      while ( nodes-- ) {\r
+              node = document.createElement('div');\r
+              node.id = testnames ? testnames[nodes] : mod + (nodes + 1);\r
+              div.appendChild(node);\r
+          }\r
+      }\r
+\r
+                style = ['&#173;','<style>', rule, '</style>'].join('');\r
+      div.id = mod;\r
+          (body ? div : fakeBody).innerHTML += style;\r
+      fakeBody.appendChild(div);\r
+      if(!body){\r
+                fakeBody.style.background = "";\r
+          docElement.appendChild(fakeBody);\r
+      }\r
+\r
+      ret = callback(div, rule);\r
+        !body ? fakeBody.parentNode.removeChild(fakeBody) : div.parentNode.removeChild(div);\r
+\r
+      return !!ret;\r
+\r
+    },\r
+\r
+    testMediaQuery = function( mq ) {\r
+\r
+      var matchMedia = window.matchMedia || window.msMatchMedia;\r
+      if ( matchMedia ) {\r
+        return matchMedia(mq).matches;\r
+      }\r
+\r
+      var bool;\r
+\r
+      injectElementWithStyles('@media ' + mq + ' { #' + mod + ' { position: absolute; } }', function( node ) {\r
+        bool = (window.getComputedStyle ?\r
+                  getComputedStyle(node, null) :\r
+                  node.currentStyle)['position'] == 'absolute';\r
+      });\r
+\r
+      return bool;\r
+\r
+     },\r
\r
+\r
+    isEventSupported = (function() {\r
+\r
+      var TAGNAMES = {\r
+        'select': 'input', 'change': 'input',\r
+        'submit': 'form', 'reset': 'form',\r
+        'error': 'img', 'load': 'img', 'abort': 'img'\r
+      };\r
+\r
+      function isEventSupported( eventName, element ) {\r
+\r
+        element = element || document.createElement(TAGNAMES[eventName] || 'div');\r
+        eventName = 'on' + eventName;\r
+\r
+            var isSupported = eventName in element;\r
+\r
+        if ( !isSupported ) {\r
+                if ( !element.setAttribute ) {\r
+            element = document.createElement('div');\r
+          }\r
+          if ( element.setAttribute && element.removeAttribute ) {\r
+            element.setAttribute(eventName, '');\r
+            isSupported = is(element[eventName], 'function');\r
+\r
+                    if ( !is(element[eventName], 'undefined') ) {\r
+              element[eventName] = undefined;\r
+            }\r
+            element.removeAttribute(eventName);\r
+          }\r
+        }\r
+\r
+        element = null;\r
+        return isSupported;\r
+      }\r
+      return isEventSupported;\r
+    })(),\r
+\r
+\r
+    _hasOwnProperty = ({}).hasOwnProperty, hasOwnProperty;\r
+\r
+    if ( !is(_hasOwnProperty, 'undefined') && !is(_hasOwnProperty.call, 'undefined') ) {\r
+      hasOwnProperty = function (object, property) {\r
+        return _hasOwnProperty.call(object, property);\r
+      };\r
+    }\r
+    else {\r
+      hasOwnProperty = function (object, property) { \r
+        return ((property in object) && is(object.constructor.prototype[property], 'undefined'));\r
+      };\r
+    }\r
+\r
+\r
+    if (!Function.prototype.bind) {\r
+      Function.prototype.bind = function bind(that) {\r
+\r
+        var target = this;\r
+\r
+        if (typeof target != "function") {\r
+            throw new TypeError();\r
+        }\r
+\r
+        var args = slice.call(arguments, 1),\r
+            bound = function () {\r
+\r
+            if (this instanceof bound) {\r
+\r
+              var F = function(){};\r
+              F.prototype = target.prototype;\r
+              var self = new F;\r
+\r
+              var result = target.apply(\r
+                  self,\r
+                  args.concat(slice.call(arguments))\r
+              );\r
+              if (Object(result) === result) {\r
+                  return result;\r
+              }\r
+              return self;\r
+\r
+            } else {\r
+\r
+              return target.apply(\r
+                  that,\r
+                  args.concat(slice.call(arguments))\r
+              );\r
+\r
+            }\r
+\r
+        };\r
+\r
+        return bound;\r
+      };\r
+    }\r
+\r
+    function setCss( str ) {\r
+        mStyle.cssText = str;\r
+    }\r
+\r
+    function setCssAll( str1, str2 ) {\r
+        return setCss(prefixes.join(str1 + ';') + ( str2 || '' ));\r
+    }\r
+\r
+    function is( obj, type ) {\r
+        return typeof obj === type;\r
+    }\r
+\r
+    function contains( str, substr ) {\r
+        return !!~('' + str).indexOf(substr);\r
+    }\r
+\r
+    function testProps( props, prefixed ) {\r
+        for ( var i in props ) {\r
+            if ( mStyle[ props[i] ] !== undefined ) {\r
+                return prefixed == 'pfx' ? props[i] : true;\r
+            }\r
+        }\r
+        return false;\r
+    }\r
+\r
+    function testDOMProps( props, obj, elem ) {\r
+        for ( var i in props ) {\r
+            var item = obj[props[i]];\r
+            if ( item !== undefined) {\r
+\r
+                            if (elem === false) return props[i];\r
+\r
+                            if (is(item, 'function')){\r
+                                return item.bind(elem || obj);\r
+                }\r
+\r
+                            return item;\r
+            }\r
+        }\r
+        return false;\r
+    }\r
+\r
+    function testPropsAll( prop, prefixed, elem ) {\r
+\r
+        var ucProp  = prop.charAt(0).toUpperCase() + prop.substr(1),\r
+            props   = (prop + ' ' + cssomPrefixes.join(ucProp + ' ') + ucProp).split(' ');\r
+\r
+            if(is(prefixed, "string") || is(prefixed, "undefined")) {\r
+          return testProps(props, prefixed);\r
+\r
+            } else {\r
+          props = (prop + ' ' + (domPrefixes).join(ucProp + ' ') + ucProp).split(' ');\r
+          return testDOMProps(props, prefixed, elem);\r
+        }\r
+    }\r
+\r
+    var testBundle = (function( styles, tests ) {\r
+        var style = styles.join(''),\r
+            len = tests.length;\r
+\r
+        injectElementWithStyles(style, function( node, rule ) {\r
+            var style = document.styleSheets[document.styleSheets.length - 1],\r
+                                                    cssText = style ? (style.cssRules && style.cssRules[0] ? style.cssRules[0].cssText : style.cssText || '') : '',\r
+                children = node.childNodes, hash = {};\r
+\r
+            while ( len-- ) {\r
+                hash[children[len].id] = children[len];\r
+            }\r
+\r
+                       Modernizr['touch'] = ('ontouchstart' in window) || window.DocumentTouch && document instanceof DocumentTouch || (hash['touch'] && hash['touch'].offsetTop) === 9; \r
+             Modernizr['csstransforms3d'] = (hash['csstransforms3d'] && hash['csstransforms3d'].offsetLeft) === 9 && hash['csstransforms3d'].offsetHeight === 3;                  Modernizr['generatedcontent'] = (hash['generatedcontent'] && hash['generatedcontent'].offsetHeight) >= 1;                       Modernizr['fontface'] = /src/i.test(cssText) &&\r
+                                                                  cssText.indexOf(rule.split(' ')[0]) === 0;            }, len, tests);\r
+\r
+    })([\r
+                    '@font-face {font-family:"font";src:url("https://")}'                    ,['@media (',prefixes.join('touch-enabled),('),mod,')',\r
+                                '{#touch{top:9px;position:absolute}}'].join('')            ,['@media (',prefixes.join('transform-3d),('),mod,')',\r
+                                '{#csstransforms3d{left:9px;position:absolute;height:3px;}}'].join('')\r
+\r
+        ,['#generatedcontent:after{content:"',smile,'";visibility:hidden}'].join('')  \r
+    ],\r
+      [\r
+                'fontface'                         ,'touch'                 ,'csstransforms3d'  \r
+        ,'generatedcontent' \r
+\r
+    ]);    tests['flexbox'] = function() {\r
+      return testPropsAll('flexOrder');\r
+    };\r
+\r
+\r
+    tests['flexbox-legacy'] = function() {\r
+        return testPropsAll('boxDirection');\r
+    };\r
+\r
+\r
+    tests['canvas'] = function() {\r
+        var elem = document.createElement('canvas');\r
+        return !!(elem.getContext && elem.getContext('2d'));\r
+    };\r
+\r
+    tests['canvastext'] = function() {\r
+        return !!(Modernizr['canvas'] && is(document.createElement('canvas').getContext('2d').fillText, 'function'));\r
+    };    tests['touch'] = function() {\r
+        return Modernizr['touch'];\r
+    };\r
+\r
+    tests['geolocation'] = function() {\r
+        return !!navigator.geolocation;\r
+    };\r
+\r
+    tests['postmessage'] = function() {\r
+      return !!window.postMessage;\r
+    };\r
+\r
+\r
+    tests['websqldatabase'] = function() {\r
+      return !!window.openDatabase;\r
+    };\r
+\r
+    tests['indexedDB'] = function() {\r
+      return !!testPropsAll("indexedDB",window);\r
+    };\r
+\r
+    tests['hashchange'] = function() {\r
+      return isEventSupported('hashchange', window) && (document.documentMode === undefined || document.documentMode > 7);\r
+    };\r
+\r
+    tests['history'] = function() {\r
+      return !!(window.history && history.pushState);\r
+    };\r
+\r
+    tests['draganddrop'] = function() {\r
+        var div = document.createElement('div');\r
+        return ('draggable' in div) || ('ondragstart' in div && 'ondrop' in div);\r
+    };\r
+\r
+    tests['websockets'] = function() {\r
+        for ( var i = -1, len = cssomPrefixes.length; ++i < len; ){\r
+          if ( window[cssomPrefixes[i] + 'WebSocket'] ){\r
+            return true;\r
+          }\r
+        }\r
+        return 'WebSocket' in window;\r
+    };\r
+\r
+\r
+    tests['rgba'] = function() {\r
+        setCss('background-color:rgba(150,255,150,.5)');\r
+\r
+        return contains(mStyle.backgroundColor, 'rgba');\r
+    };\r
+\r
+    tests['hsla'] = function() {\r
+            setCss('background-color:hsla(120,40%,100%,.5)');\r
+\r
+        return contains(mStyle.backgroundColor, 'rgba') || contains(mStyle.backgroundColor, 'hsla');\r
+    };\r
+\r
+    tests['multiplebgs'] = function() {\r
+                setCss('background:url(https://),url(https://),red url(https://)');\r
+\r
+            return /(url\s*\(.*?){3}/.test(mStyle.background);\r
+    };\r
+    tests['backgroundsize'] = function() {\r
+        return testPropsAll('backgroundSize');\r
+    };\r
+\r
+    tests['borderimage'] = function() {\r
+        return testPropsAll('borderImage');\r
+    };\r
+\r
+\r
+\r
+    tests['borderradius'] = function() {\r
+        return testPropsAll('borderRadius');\r
+    };\r
+\r
+    tests['boxshadow'] = function() {\r
+        return testPropsAll('boxShadow');\r
+    };\r
+\r
+    tests['textshadow'] = function() {\r
+        return document.createElement('div').style.textShadow === '';\r
+    };\r
+\r
+\r
+    tests['opacity'] = function() {\r
+                setCssAll('opacity:.55');\r
+\r
+                    return /^0.55$/.test(mStyle.opacity);\r
+    };\r
+\r
+\r
+    tests['cssanimations'] = function() {\r
+        return testPropsAll('animationName');\r
+    };\r
+\r
+\r
+    tests['csscolumns'] = function() {\r
+        return testPropsAll('columnCount');\r
+    };\r
+\r
+\r
+    tests['cssgradients'] = function() {\r
+        var str1 = 'background-image:',\r
+            str2 = 'gradient(linear,left top,right bottom,from(#9f9),to(white));',\r
+            str3 = 'linear-gradient(left top,#9f9, white);';\r
+\r
+        setCss(\r
+                       (str1 + '-webkit- '.split(' ').join(str2 + str1) \r
+                       + prefixes.join(str3 + str1)).slice(0, -str1.length)\r
+        );\r
+\r
+        return contains(mStyle.backgroundImage, 'gradient');\r
+    };\r
+\r
+\r
+    tests['cssreflections'] = function() {\r
+        return testPropsAll('boxReflect');\r
+    };\r
+\r
+\r
+    tests['csstransforms'] = function() {\r
+        return !!testPropsAll('transform');\r
+    };\r
+\r
+\r
+    tests['csstransforms3d'] = function() {\r
+\r
+        var ret = !!testPropsAll('perspective');\r
+\r
+                        if ( ret && 'webkitPerspective' in docElement.style ) {\r
+\r
+                      ret = Modernizr['csstransforms3d'];\r
+        }\r
+        return ret;\r
+    };\r
+\r
+\r
+    tests['csstransitions'] = function() {\r
+        return testPropsAll('transition');\r
+    };\r
+\r
+\r
+\r
+    tests['fontface'] = function() {\r
+        return Modernizr['fontface'];\r
+    };\r
+\r
+    tests['generatedcontent'] = function() {\r
+        return Modernizr['generatedcontent'];\r
+    };\r
+    tests['video'] = function() {\r
+        var elem = document.createElement('video'),\r
+            bool = false;\r
+\r
+            try {\r
+            if ( bool = !!elem.canPlayType ) {\r
+                bool      = new Boolean(bool);\r
+                bool.ogg  = elem.canPlayType('video/ogg; codecs="theora"')      .replace(/^no$/,'');\r
+\r
+                bool.h264 = elem.canPlayType('video/mp4; codecs="avc1.42E01E"') .replace(/^no$/,'');\r
+\r
+                bool.webm = elem.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/^no$/,'');\r
+            }\r
+\r
+        } catch(e) { }\r
+\r
+        return bool;\r
+    };\r
+\r
+    tests['audio'] = function() {\r
+        var elem = document.createElement('audio'),\r
+            bool = false;\r
+\r
+        try { \r
+            if ( bool = !!elem.canPlayType ) {\r
+                bool      = new Boolean(bool);\r
+                bool.ogg  = elem.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,'');\r
+                bool.mp3  = elem.canPlayType('audio/mpeg;')               .replace(/^no$/,'');\r
+\r
+                                                    bool.wav  = elem.canPlayType('audio/wav; codecs="1"')     .replace(/^no$/,'');\r
+                bool.m4a  = ( elem.canPlayType('audio/x-m4a;')            || \r
+                              elem.canPlayType('audio/aac;'))             .replace(/^no$/,'');\r
+            }\r
+        } catch(e) { }\r
+\r
+        return bool;\r
+    };\r
+\r
+\r
+    tests['localstorage'] = function() {\r
+        try {\r
+            localStorage.setItem(mod, mod);\r
+            localStorage.removeItem(mod);\r
+            return true;\r
+        } catch(e) {\r
+            return false;\r
+        }\r
+    };\r
+\r
+    tests['sessionstorage'] = function() {\r
+        try {\r
+            sessionStorage.setItem(mod, mod);\r
+            sessionStorage.removeItem(mod);\r
+            return true;\r
+        } catch(e) {\r
+            return false;\r
+        }\r
+    };\r
+\r
+\r
+    tests['webworkers'] = function() {\r
+        return !!window.Worker;\r
+    };\r
+\r
+\r
+    tests['applicationcache'] = function() {\r
+        return !!window.applicationCache;\r
+    };\r
+\r
+\r
+    tests['svg'] = function() {\r
+        return !!document.createElementNS && !!document.createElementNS(ns.svg, 'svg').createSVGRect;\r
+    };\r
+\r
+    tests['inlinesvg'] = function() {\r
+      var div = document.createElement('div');\r
+      div.innerHTML = '<svg/>';\r
+      return (div.firstChild && div.firstChild.namespaceURI) == ns.svg;\r
+    };\r
+\r
+    tests['smil'] = function() {\r
+        return !!document.createElementNS && /SVGAnimate/.test(toString.call(document.createElementNS(ns.svg, 'animate')));\r
+    };\r
+\r
+\r
+    tests['svgclippaths'] = function() {\r
+        return !!document.createElementNS && /SVGClipPath/.test(toString.call(document.createElementNS(ns.svg, 'clipPath')));\r
+    };\r
+\r
+    function webforms() {\r
+                                            Modernizr['input'] = (function( props ) {\r
+            for ( var i = 0, len = props.length; i < len; i++ ) {\r
+                attrs[ props[i] ] = !!(props[i] in inputElem);\r
+            }\r
+            if (attrs.list){\r
+                                  attrs.list = !!(document.createElement('datalist') && window.HTMLDataListElement);\r
+            }\r
+            return attrs;\r
+        })('autocomplete autofocus list placeholder max min multiple pattern required step'.split(' '));\r
+                            Modernizr['inputtypes'] = (function(props) {\r
+\r
+            for ( var i = 0, bool, inputElemType, defaultView, len = props.length; i < len; i++ ) {\r
+\r
+                inputElem.setAttribute('type', inputElemType = props[i]);\r
+                bool = inputElem.type !== 'text';\r
+\r
+                                                    if ( bool ) {\r
+\r
+                    inputElem.value         = smile;\r
+                    inputElem.style.cssText = 'position:absolute;visibility:hidden;';\r
+\r
+                    if ( /^range$/.test(inputElemType) && inputElem.style.WebkitAppearance !== undefined ) {\r
+\r
+                      docElement.appendChild(inputElem);\r
+                      defaultView = document.defaultView;\r
+\r
+                                        bool =  defaultView.getComputedStyle &&\r
+                              defaultView.getComputedStyle(inputElem, null).WebkitAppearance !== 'textfield' &&\r
+                                                                                  (inputElem.offsetHeight !== 0);\r
+\r
+                      docElement.removeChild(inputElem);\r
+\r
+                    } else if ( /^(search|tel)$/.test(inputElemType) ){\r
+                                                                                    } else if ( /^(url|email)$/.test(inputElemType) ) {\r
+                                        bool = inputElem.checkValidity && inputElem.checkValidity() === false;\r
+\r
+                    } else if ( /^color$/.test(inputElemType) ) {\r
+                                                                docElement.appendChild(inputElem);\r
+                        docElement.offsetWidth;\r
+                        bool = inputElem.value != smile;\r
+                        docElement.removeChild(inputElem);\r
+\r
+                    } else {\r
+                                        bool = inputElem.value != smile;\r
+                    }\r
+                }\r
+\r
+                inputs[ props[i] ] = !!bool;\r
+            }\r
+            return inputs;\r
+        })('search tel url email datetime date month week time datetime-local number range color'.split(' '));\r
+        }\r
+    for ( var feature in tests ) {\r
+        if ( hasOwnProperty(tests, feature) ) {\r
+                                    featureName  = feature.toLowerCase();\r
+            Modernizr[featureName] = tests[feature]();\r
+\r
+            classes.push((Modernizr[featureName] ? '' : 'no-') + featureName);\r
+        }\r
+    }\r
+\r
+    Modernizr.input || webforms();    setCss('');\r
+    modElem = inputElem = null;\r
+\r
+\r
+    Modernizr._version      = version;\r
+\r
+    Modernizr._prefixes     = prefixes;\r
+    Modernizr._domPrefixes  = domPrefixes;\r
+    Modernizr._cssomPrefixes  = cssomPrefixes;\r
+\r
+    Modernizr.mq            = testMediaQuery;\r
+\r
+    Modernizr.hasEvent      = isEventSupported;\r
+\r
+    Modernizr.testProp      = function(prop){\r
+        return testProps([prop]);\r
+    };\r
+\r
+    Modernizr.testAllProps  = testPropsAll;\r
+\r
+\r
+    Modernizr.testStyles    = injectElementWithStyles;\r
+    return Modernizr;\r
+\r
+})(this, this.document);\r
+/*! HTML5 Shiv v3.4 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed */\r
+;(function(window, document) {\r
+\r
+  /** Preset options */\r
+  var options = window.html5 || {};\r
+\r
+  /** Used to skip problem elements */\r
+  var reSkip = /^<|^(?:button|form|map|select|textarea)$/i;\r
+\r
+  /** Detect whether the browser supports default html5 styles */\r
+  var supportsHtml5Styles;\r
+\r
+  /** Detect whether the browser supports unknown elements */\r
+  var supportsUnknownElements;\r
+\r
+  (function() {\r
+    var a = document.createElement('a');\r
+\r
+    a.innerHTML = '<xyz></xyz>';\r
+\r
+    //if the hidden property is implemented we can assume, that the browser supports HTML5 Styles\r
+    supportsHtml5Styles = ('hidden' in a);\r
+    supportsUnknownElements = a.childNodes.length == 1 || (function() {\r
+      // assign a false positive if unable to shiv\r
+      try {\r
+        (document.createElement)('a');\r
+      } catch(e) {\r
+        return true;\r
+      }\r
+      var frag = document.createDocumentFragment();\r
+      return (\r
+        typeof frag.cloneNode == 'undefined' ||\r
+        typeof frag.createDocumentFragment == 'undefined' ||\r
+        typeof frag.createElement == 'undefined'\r
+      );\r
+    }());\r
+\r
+  }());\r
+\r
+  /*--------------------------------------------------------------------------*/\r
+\r
+  /**\r
+   * Creates a style sheet with the given CSS text and adds it to the document.\r
+   * @private\r
+   * @param {Document} ownerDocument The document.\r
+   * @param {String} cssText The CSS text.\r
+   * @returns {StyleSheet} The style element.\r
+   */\r
+  function addStyleSheet(ownerDocument, cssText) {\r
+    var p = ownerDocument.createElement('p'),\r
+        parent = ownerDocument.getElementsByTagName('head')[0] || ownerDocument.documentElement;\r
+\r
+    p.innerHTML = 'x<style>' + cssText + '</style>';\r
+    return parent.insertBefore(p.lastChild, parent.firstChild);\r
+  }\r
+\r
+  /**\r
+   * Returns the value of `html5.elements` as an array.\r
+   * @private\r
+   * @returns {Array} An array of shived element node names.\r
+   */\r
+  function getElements() {\r
+    var elements = html5.elements;\r
+    return typeof elements == 'string' ? elements.split(' ') : elements;\r
+  }\r
+\r
+  /**\r
+   * Shivs the `createElement` and `createDocumentFragment` methods of the document.\r
+   * @private\r
+   * @param {Document|DocumentFragment} ownerDocument The document.\r
+   */\r
+  function shivMethods(ownerDocument) {\r
+    var cache = {},\r
+        docCreateElement = ownerDocument.createElement,\r
+        docCreateFragment = ownerDocument.createDocumentFragment,\r
+        frag = docCreateFragment();\r
+\r
+    ownerDocument.createElement = function(nodeName) {\r
+      // Avoid adding some elements to fragments in IE < 9 because\r
+      // * Attributes like `name` or `type` cannot be set/changed once an element\r
+      //   is inserted into a document/fragment\r
+      // * Link elements with `src` attributes that are inaccessible, as with\r
+      //   a 403 response, will cause the tab/window to crash\r
+      // * Script elements appended to fragments will execute when their `src`\r
+      //   or `text` property is set\r
+      var node = (cache[nodeName] || (cache[nodeName] = docCreateElement(nodeName))).cloneNode();\r
+      return html5.shivMethods && node.canHaveChildren && !reSkip.test(nodeName) ? frag.appendChild(node) : node;\r
+    };\r
+\r
+    ownerDocument.createDocumentFragment = Function('h,f', 'return function(){' +\r
+      'var n=f.cloneNode(),c=n.createElement;' +\r
+      'h.shivMethods&&(' +\r
+        // unroll the `createElement` calls\r
+        getElements().join().replace(/\w+/g, function(nodeName) {\r
+          cache[nodeName] = docCreateElement(nodeName);\r
+          frag.createElement(nodeName);\r
+          return 'c("' + nodeName + '")';\r
+        }) +\r
+      ');return n}'\r
+    )(html5, frag);\r
+  }\r
+\r
+  /*--------------------------------------------------------------------------*/\r
+\r
+  /**\r
+   * Shivs the given document.\r
+   * @memberOf html5\r
+   * @param {Document} ownerDocument The document to shiv.\r
+   * @returns {Document} The shived document.\r
+   */\r
+  function shivDocument(ownerDocument) {\r
+    var shived;\r
+    if (ownerDocument.documentShived) {\r
+      return ownerDocument;\r
+    }\r
+    if (html5.shivCSS && !supportsHtml5Styles) {\r
+      shived = !!addStyleSheet(ownerDocument,\r
+        // corrects block display not defined in IE6/7/8/9\r
+        'article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}' +\r
+        // corrects audio display not defined in IE6/7/8/9\r
+        'audio{display:none}' +\r
+        // corrects canvas and video display not defined in IE6/7/8/9\r
+        'canvas,video{display:inline-block;*display:inline;*zoom:1}' +\r
+        // corrects 'hidden' attribute and audio[controls] display not present in IE7/8/9\r
+        '[hidden]{display:none}audio[controls]{display:inline-block;*display:inline;*zoom:1}' +\r
+        // adds styling not present in IE6/7/8/9\r
+        'mark{background:#FF0;color:#000}'\r
+      );\r
+    }\r
+    if (!supportsUnknownElements) {\r
+      shived = !shivMethods(ownerDocument);\r
+    }\r
+    if (shived) {\r
+      ownerDocument.documentShived = shived;\r
+    }\r
+    return ownerDocument;\r
+  }\r
+\r
+  /*--------------------------------------------------------------------------*/\r
+\r
+  /**\r
+   * The `html5` object is exposed so that more elements can be shived and\r
+   * existing shiving can be detected on iframes.\r
+   * @type Object\r
+   * @example\r
+   *\r
+   * // options can be changed before the script is included\r
+   * html5 = { 'elements': 'mark section', 'shivCSS': false, 'shivMethods': false };\r
+   */\r
+  var html5 = {\r
+\r
+    /**\r
+     * An array or space separated string of node names of the elements to shiv.\r
+     * @memberOf html5\r
+     * @type Array|String\r
+     */\r
+    'elements': options.elements || 'abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video',\r
+\r
+    /**\r
+     * A flag to indicate that the HTML5 style sheet should be inserted.\r
+     * @memberOf html5\r
+     * @type Boolean\r
+     */\r
+    'shivCSS': !(options.shivCSS === false),\r
+\r
+    /**\r
+     * A flag to indicate that the document's `createElement` and `createDocumentFragment`\r
+     * methods should be overwritten.\r
+     * @memberOf html5\r
+     * @type Boolean\r
+     */\r
+    'shivMethods': !(options.shivMethods === false),\r
+\r
+    /**\r
+     * A string to describe the type of `html5` object ("default" or "default print").\r
+     * @memberOf html5\r
+     * @type String\r
+     */\r
+    'type': 'default',\r
+\r
+    // shivs the document according to the specified `html5` object options\r
+    'shivDocument': shivDocument\r
+  };\r
+\r
+  /*--------------------------------------------------------------------------*/\r
+\r
+  // expose html5\r
+  window.html5 = html5;\r
+\r
+  // shiv the document\r
+  shivDocument(document);\r
+\r
+  /*------------------------------- Print Shiv -------------------------------*/\r
+\r
+  /** Used to filter media types */\r
+  var reMedia = /^$|\b(?:all|print)\b/;\r
+\r
+  /** Used to namespace printable elements */\r
+  var shivNamespace = 'html5shiv';\r
+\r
+  /** Detect whether the browser supports shivable style sheets */\r
+  var supportsShivableSheets = !supportsUnknownElements && (function() {\r
+    // assign a false negative if unable to shiv\r
+    var docEl = document.documentElement;\r
+    return !(\r
+      typeof document.namespaces == 'undefined' ||\r
+      typeof document.parentWindow == 'undefined' ||\r
+      typeof docEl.applyElement == 'undefined' ||\r
+      typeof docEl.removeNode == 'undefined' ||\r
+      typeof window.attachEvent == 'undefined'\r
+    );\r
+  }());\r
+\r
+  /*--------------------------------------------------------------------------*/\r
+\r
+  /**\r
+   * Wraps all HTML5 elements in the given document with printable elements.\r
+   * (eg. the "header" element is wrapped with the "html5shiv:header" element)\r
+   * @private\r
+   * @param {Document} ownerDocument The document.\r
+   * @returns {Array} An array wrappers added.\r
+   */\r
+  function addWrappers(ownerDocument) {\r
+    var node,\r
+        nodes = ownerDocument.getElementsByTagName('*'),\r
+        index = nodes.length,\r
+        reElements = RegExp('^(?:' + getElements().join('|') + ')$', 'i'),\r
+        result = [];\r
+\r
+    while (index--) {\r
+      node = nodes[index];\r
+      if (reElements.test(node.nodeName)) {\r
+        result.push(node.applyElement(createWrapper(node)));\r
+      }\r
+    }\r
+    return result;\r
+  }\r
+\r
+  /**\r
+   * Creates a printable wrapper for the given element.\r
+   * @private\r
+   * @param {Element} element The element.\r
+   * @returns {Element} The wrapper.\r
+   */\r
+  function createWrapper(element) {\r
+    var node,\r
+        nodes = element.attributes,\r
+        index = nodes.length,\r
+        wrapper = element.ownerDocument.createElement(shivNamespace + ':' + element.nodeName);\r
+\r
+    // copy element attributes to the wrapper\r
+    while (index--) {\r
+      node = nodes[index];\r
+      node.specified && wrapper.setAttribute(node.nodeName, node.nodeValue);\r
+    }\r
+    // copy element styles to the wrapper\r
+    wrapper.style.cssText = element.style.cssText;\r
+    return wrapper;\r
+  }\r
+\r
+  /**\r
+   * Shivs the given CSS text.\r
+   * (eg. header{} becomes html5shiv\:header{})\r
+   * @private\r
+   * @param {String} cssText The CSS text to shiv.\r
+   * @returns {String} The shived CSS text.\r
+   */\r
+  function shivCssText(cssText) {\r
+    var pair,\r
+        parts = cssText.split('{'),\r
+        index = parts.length,\r
+        reElements = RegExp('(^|[\\s,>+~])(' + getElements().join('|') + ')(?=[[\\s,>+~#.:]|$)', 'gi'),\r
+        replacement = '$1' + shivNamespace + '\\:$2';\r
+\r
+    while (index--) {\r
+      pair = parts[index] = parts[index].split('}');\r
+      pair[pair.length - 1] = pair[pair.length - 1].replace(reElements, replacement);\r
+      parts[index] = pair.join('}');\r
+    }\r
+    return parts.join('{');\r
+  }\r
+\r
+  /**\r
+   * Removes the given wrappers, leaving the original elements.\r
+   * @private\r
+   * @params {Array} wrappers An array of printable wrappers.\r
+   */\r
+  function removeWrappers(wrappers) {\r
+    var index = wrappers.length;\r
+    while (index--) {\r
+      wrappers[index].removeNode();\r
+    }\r
+  }\r
+\r
+  /*--------------------------------------------------------------------------*/\r
+\r
+  /**\r
+   * Shivs the given document for print.\r
+   * @memberOf html5\r
+   * @param {Document} ownerDocument The document to shiv.\r
+   * @returns {Document} The shived document.\r
+   */\r
+  function shivPrint(ownerDocument) {\r
+    var shivedSheet,\r
+        wrappers,\r
+        namespaces = ownerDocument.namespaces,\r
+        ownerWindow = ownerDocument.parentWindow;\r
+\r
+    if (!supportsShivableSheets || ownerDocument.printShived) {\r
+      return ownerDocument;\r
+    }\r
+    if (typeof namespaces[shivNamespace] == 'undefined') {\r
+      namespaces.add(shivNamespace);\r
+    }\r
+\r
+    ownerWindow.attachEvent('onbeforeprint', function() {\r
+      var imports,\r
+          length,\r
+          sheet,\r
+          collection = ownerDocument.styleSheets,\r
+          cssText = [],\r
+          index = collection.length,\r
+          sheets = Array(index);\r
+\r
+      // convert styleSheets collection to an array\r
+      while (index--) {\r
+        sheets[index] = collection[index];\r
+      }\r
+      // concat all style sheet CSS text\r
+      while ((sheet = sheets.pop())) {\r
+        // IE does not enforce a same origin policy for external style sheets\r
+        if (!sheet.disabled && reMedia.test(sheet.media)) {\r
+          for (imports = sheet.imports, index = 0, length = imports.length; index < length; index++) {\r
+            sheets.push(imports[index]);\r
+          }\r
+          try {\r
+            cssText.push(sheet.cssText);\r
+          } catch(er){}\r
+        }\r
+      }\r
+      // wrap all HTML5 elements with printable elements and add the shived style sheet\r
+      cssText = shivCssText(cssText.reverse().join(''));\r
+      wrappers = addWrappers(ownerDocument);\r
+      shivedSheet = addStyleSheet(ownerDocument, cssText);\r
+    });\r
+\r
+    ownerWindow.attachEvent('onafterprint', function() {\r
+      // remove wrappers, leaving the original elements, and remove the shived style sheet\r
+      removeWrappers(wrappers);\r
+      shivedSheet.removeNode(true);\r
+    });\r
+\r
+    ownerDocument.printShived = true;\r
+    return ownerDocument;\r
+  }\r
+\r
+  /*--------------------------------------------------------------------------*/\r
+\r
+  // expose API\r
+  html5.type += ' print';\r
+  html5.shivPrint = shivPrint;\r
+\r
+  // shiv for print\r
+  shivPrint(document);\r
+\r
+}(this, document));/*yepnope1.5.3|WTFPL*/\r
+(function(a,b,c){function d(a){return o.call(a)=="[object Function]"}function e(a){return typeof a=="string"}function f(){}function g(a){return!a||a=="loaded"||a=="complete"||a=="uninitialized"}function h(){var a=p.shift();q=1,a?a.t?m(function(){(a.t=="c"?B.injectCss:B.injectJs)(a.s,0,a.a,a.x,a.e,1)},0):(a(),h()):q=0}function i(a,c,d,e,f,i,j){function k(b){if(!o&&g(l.readyState)&&(u.r=o=1,!q&&h(),l.onload=l.onreadystatechange=null,b)){a!="img"&&m(function(){t.removeChild(l)},50);for(var d in y[c])y[c].hasOwnProperty(d)&&y[c][d].onload()}}var j=j||B.errorTimeout,l={},o=0,r=0,u={t:d,s:c,e:f,a:i,x:j};y[c]===1&&(r=1,y[c]=[],l=b.createElement(a)),a=="object"?l.data=c:(l.src=c,l.type=a),l.width=l.height="0",l.onerror=l.onload=l.onreadystatechange=function(){k.call(this,r)},p.splice(e,0,u),a!="img"&&(r||y[c]===2?(t.insertBefore(l,s?null:n),m(k,j)):y[c].push(l))}function j(a,b,c,d,f){return q=0,b=b||"j",e(a)?i(b=="c"?v:u,a,b,this.i++,c,d,f):(p.splice(this.i++,0,a),p.length==1&&h()),this}function k(){var a=B;return a.loader={load:j,i:0},a}var l=b.documentElement,m=a.setTimeout,n=b.getElementsByTagName("script")[0],o={}.toString,p=[],q=0,r="MozAppearance"in l.style,s=r&&!!b.createRange().compareNode,t=s?l:n.parentNode,l=a.opera&&o.call(a.opera)=="[object Opera]",l=!!b.attachEvent&&!l,u=r?"object":l?"script":"img",v=l?"script":u,w=Array.isArray||function(a){return o.call(a)=="[object Array]"},x=[],y={},z={timeout:function(a,b){return b.length&&(a.timeout=b[0]),a}},A,B;B=function(a){function b(a){var a=a.split("!"),b=x.length,c=a.pop(),d=a.length,c={url:c,origUrl:c,prefixes:a},e,f,g;for(f=0;f<d;f++)g=a[f].split("="),(e=z[g.shift()])&&(c=e(c,g));for(f=0;f<b;f++)c=x[f](c);return c}function g(a,e,f,g,i){var j=b(a),l=j.autoCallback;j.url.split(".").pop().split("?").shift(),j.bypass||(e&&(e=d(e)?e:e[a]||e[g]||e[a.split("/").pop().split("?")[0]]||h),j.instead?j.instead(a,e,f,g,i):(y[j.url]?j.noexec=!0:y[j.url]=1,f.load(j.url,j.forceCSS||!j.forceJS&&"css"==j.url.split(".").pop().split("?").shift()?"c":c,j.noexec,j.attrs,j.timeout),(d(e)||d(l))&&f.load(function(){k(),e&&e(j.origUrl,i,g),l&&l(j.origUrl,i,g),y[j.url]=2})))}function i(a,b){function c(a,c){if(a){if(e(a))c||(j=function(){var a=[].slice.call(arguments);k.apply(this,a),l()}),g(a,j,b,0,h);else if(Object(a)===a)for(n in m=function(){var b=0,c;for(c in a)a.hasOwnProperty(c)&&b++;return b}(),a)a.hasOwnProperty(n)&&(!c&&!--m&&(d(j)?j=function(){var a=[].slice.call(arguments);k.apply(this,a),l()}:j[n]=function(a){return function(){var b=[].slice.call(arguments);a&&a.apply(this,b),l()}}(k[n])),g(a[n],j,b,n,h))}else!c&&l()}var h=!!a.test,i=a.load||a.both,j=a.callback||f,k=j,l=a.complete||f,m,n;c(h?a.yep:a.nope,!!i),i&&c(i)}var j,l,m=this.yepnope.loader;if(e(a))g(a,0,m,0);else if(w(a))for(j=0;j<a.length;j++)l=a[j],e(l)?g(l,0,m,0):w(l)?B(l):Object(l)===l&&i(l,m);else Object(a)===a&&i(a,m)},B.addPrefix=function(a,b){z[a]=b},B.addFilter=function(a){x.push(a)},B.errorTimeout=1e4,b.readyState==null&&b.addEventListener&&(b.readyState="loading",b.addEventListener("DOMContentLoaded",A=function(){b.removeEventListener("DOMContentLoaded",A,0),b.readyState="complete"},0)),a.yepnope=k(),a.yepnope.executeStack=h,a.yepnope.injectJs=function(a,c,d,e,i,j){var k=b.createElement("script"),l,o,e=e||B.errorTimeout;k.src=a;for(o in d)k.setAttribute(o,d[o]);c=j?h:c||f,k.onreadystatechange=k.onload=function(){!l&&g(k.readyState)&&(l=1,c(),k.onload=k.onreadystatechange=null)},m(function(){l||(l=1,c(1))},e),i?k.onload():n.parentNode.insertBefore(k,n)},a.yepnope.injectCss=function(a,c,d,e,g,i){var e=b.createElement("link"),j,c=i?h:c||f;e.href=a,e.rel="stylesheet",e.type="text/css";for(j in d)e.setAttribute(j,d[j]);g||(n.parentNode.insertBefore(e,n),m(c,0))}})(this,document);\r
+Modernizr.load=function(){yepnope.apply(window,[].slice.call(arguments,0));};\r
+;
\ No newline at end of file
diff --git a/view/theme/smoothly/js/modernizr.custom.2.5.3.min.js b/view/theme/smoothly/js/modernizr.custom.2.5.3.min.js
new file mode 100644 (file)
index 0000000..1ce20bd
--- /dev/null
@@ -0,0 +1,4 @@
+/* Modernizr 2.5.3 (Custom Build) | MIT & BSD\r
+ * Build: http://www.modernizr.com/download/#-fontface-backgroundsize-borderimage-borderradius-boxshadow-flexbox-flexbox_legacy-hsla-multiplebgs-opacity-rgba-textshadow-cssanimations-csscolumns-generatedcontent-cssgradients-cssreflections-csstransforms-csstransforms3d-csstransitions-applicationcache-canvas-canvastext-draganddrop-hashchange-history-audio-video-indexeddb-input-inputtypes-localstorage-postmessage-sessionstorage-websockets-websqldatabase-webworkers-geolocation-inlinesvg-smil-svg-svgclippaths-touch-printshiv-mq-teststyles-testprop-testallprops-hasevent-prefixes-domprefixes-load\r
+ */\r
+;window.Modernizr=function(a,b,c){function C(a){i.cssText=a}function D(a,b){return C(m.join(a+";")+(b||""))}function E(a,b){return typeof a===b}function F(a,b){return!!~(""+a).indexOf(b)}function G(a,b){for(var d in a)if(i[a[d]]!==c)return b=="pfx"?a[d]:!0;return!1}function H(a,b,d){for(var e in a){var f=b[a[e]];if(f!==c)return d===!1?a[e]:E(f,"function")?f.bind(d||b):f}return!1}function I(a,b,c){var d=a.charAt(0).toUpperCase()+a.substr(1),e=(a+" "+o.join(d+" ")+d).split(" ");return E(b,"string")||E(b,"undefined")?G(e,b):(e=(a+" "+p.join(d+" ")+d).split(" "),H(e,b,c))}function K(){e.input=function(c){for(var d=0,e=c.length;d<e;d++)t[c[d]]=c[d]in j;return t.list&&(t.list=!!b.createElement("datalist")&&!!a.HTMLDataListElement),t}("autocomplete autofocus list placeholder max min multiple pattern required step".split(" ")),e.inputtypes=function(a){for(var d=0,e,g,h,i=a.length;d<i;d++)j.setAttribute("type",g=a[d]),e=j.type!=="text",e&&(j.value=k,j.style.cssText="position:absolute;visibility:hidden;",/^range$/.test(g)&&j.style.WebkitAppearance!==c?(f.appendChild(j),h=b.defaultView,e=h.getComputedStyle&&h.getComputedStyle(j,null).WebkitAppearance!=="textfield"&&j.offsetHeight!==0,f.removeChild(j)):/^(search|tel)$/.test(g)||(/^(url|email)$/.test(g)?e=j.checkValidity&&j.checkValidity()===!1:/^color$/.test(g)?(f.appendChild(j),f.offsetWidth,e=j.value!=k,f.removeChild(j)):e=j.value!=k)),s[a[d]]=!!e;return s}("search tel url email datetime date month week time datetime-local number range color".split(" "))}var d="2.5.3",e={},f=b.documentElement,g="modernizr",h=b.createElement(g),i=h.style,j=b.createElement("input"),k=":)",l={}.toString,m=" -webkit- -moz- -o- -ms- ".split(" "),n="Webkit Moz O ms",o=n.split(" "),p=n.toLowerCase().split(" "),q={svg:"http://www.w3.org/2000/svg"},r={},s={},t={},u=[],v=u.slice,w,x=function(a,c,d,e){var h,i,j,k=b.createElement("div"),l=b.body,m=l?l:b.createElement("body");if(parseInt(d,10))while(d--)j=b.createElement("div"),j.id=e?e[d]:g+(d+1),k.appendChild(j);return h=["&#173;","<style>",a,"</style>"].join(""),k.id=g,(l?k:m).innerHTML+=h,m.appendChild(k),l||(m.style.background="",f.appendChild(m)),i=c(k,a),l?k.parentNode.removeChild(k):m.parentNode.removeChild(m),!!i},y=function(b){var c=a.matchMedia||a.msMatchMedia;if(c)return c(b).matches;var d;return x("@media "+b+" { #"+g+" { position: absolute; } }",function(b){d=(a.getComputedStyle?getComputedStyle(b,null):b.currentStyle)["position"]=="absolute"}),d},z=function(){function d(d,e){e=e||b.createElement(a[d]||"div"),d="on"+d;var f=d in e;return f||(e.setAttribute||(e=b.createElement("div")),e.setAttribute&&e.removeAttribute&&(e.setAttribute(d,""),f=E(e[d],"function"),E(e[d],"undefined")||(e[d]=c),e.removeAttribute(d))),e=null,f}var a={select:"input",change:"input",submit:"form",reset:"form",error:"img",load:"img",abort:"img"};return d}(),A={}.hasOwnProperty,B;!E(A,"undefined")&&!E(A.call,"undefined")?B=function(a,b){return A.call(a,b)}:B=function(a,b){return b in a&&E(a.constructor.prototype[b],"undefined")},Function.prototype.bind||(Function.prototype.bind=function(b){var c=this;if(typeof c!="function")throw new TypeError;var d=v.call(arguments,1),e=function(){if(this instanceof e){var a=function(){};a.prototype=c.prototype;var f=new a,g=c.apply(f,d.concat(v.call(arguments)));return Object(g)===g?g:f}return c.apply(b,d.concat(v.call(arguments)))};return e});var J=function(c,d){var f=c.join(""),g=d.length;x(f,function(c,d){var f=b.styleSheets[b.styleSheets.length-1],h=f?f.cssRules&&f.cssRules[0]?f.cssRules[0].cssText:f.cssText||"":"",i=c.childNodes,j={};while(g--)j[i[g].id]=i[g];e.touch="ontouchstart"in a||a.DocumentTouch&&b instanceof DocumentTouch||(j.touch&&j.touch.offsetTop)===9,e.csstransforms3d=(j.csstransforms3d&&j.csstransforms3d.offsetLeft)===9&&j.csstransforms3d.offsetHeight===3,e.generatedcontent=(j.generatedcontent&&j.generatedcontent.offsetHeight)>=1,e.fontface=/src/i.test(h)&&h.indexOf(d.split(" ")[0])===0},g,d)}(['@font-face {font-family:"font";src:url("https://")}',["@media (",m.join("touch-enabled),("),g,")","{#touch{top:9px;position:absolute}}"].join(""),["@media (",m.join("transform-3d),("),g,")","{#csstransforms3d{left:9px;position:absolute;height:3px;}}"].join(""),['#generatedcontent:after{content:"',k,'";visibility:hidden}'].join("")],["fontface","touch","csstransforms3d","generatedcontent"]);r.flexbox=function(){return I("flexOrder")},r["flexbox-legacy"]=function(){return I("boxDirection")},r.canvas=function(){var a=b.createElement("canvas");return!!a.getContext&&!!a.getContext("2d")},r.canvastext=function(){return!!e.canvas&&!!E(b.createElement("canvas").getContext("2d").fillText,"function")},r.touch=function(){return e.touch},r.geolocation=function(){return!!navigator.geolocation},r.postmessage=function(){return!!a.postMessage},r.websqldatabase=function(){return!!a.openDatabase},r.indexedDB=function(){return!!I("indexedDB",a)},r.hashchange=function(){return z("hashchange",a)&&(b.documentMode===c||b.documentMode>7)},r.history=function(){return!!a.history&&!!history.pushState},r.draganddrop=function(){var a=b.createElement("div");return"draggable"in a||"ondragstart"in a&&"ondrop"in a},r.websockets=function(){for(var b=-1,c=o.length;++b<c;)if(a[o[b]+"WebSocket"])return!0;return"WebSocket"in a},r.rgba=function(){return C("background-color:rgba(150,255,150,.5)"),F(i.backgroundColor,"rgba")},r.hsla=function(){return C("background-color:hsla(120,40%,100%,.5)"),F(i.backgroundColor,"rgba")||F(i.backgroundColor,"hsla")},r.multiplebgs=function(){return C("background:url(https://),url(https://),red url(https://)"),/(url\s*\(.*?){3}/.test(i.background)},r.backgroundsize=function(){return I("backgroundSize")},r.borderimage=function(){return I("borderImage")},r.borderradius=function(){return I("borderRadius")},r.boxshadow=function(){return I("boxShadow")},r.textshadow=function(){return b.createElement("div").style.textShadow===""},r.opacity=function(){return D("opacity:.55"),/^0.55$/.test(i.opacity)},r.cssanimations=function(){return I("animationName")},r.csscolumns=function(){return I("columnCount")},r.cssgradients=function(){var a="background-image:",b="gradient(linear,left top,right bottom,from(#9f9),to(white));",c="linear-gradient(left top,#9f9, white);";return C((a+"-webkit- ".split(" ").join(b+a)+m.join(c+a)).slice(0,-a.length)),F(i.backgroundImage,"gradient")},r.cssreflections=function(){return I("boxReflect")},r.csstransforms=function(){return!!I("transform")},r.csstransforms3d=function(){var a=!!I("perspective");return a&&"webkitPerspective"in f.style&&(a=e.csstransforms3d),a},r.csstransitions=function(){return I("transition")},r.fontface=function(){return e.fontface},r.generatedcontent=function(){return e.generatedcontent},r.video=function(){var a=b.createElement("video"),c=!1;try{if(c=!!a.canPlayType)c=new Boolean(c),c.ogg=a.canPlayType('video/ogg; codecs="theora"').replace(/^no$/,""),c.h264=a.canPlayType('video/mp4; codecs="avc1.42E01E"').replace(/^no$/,""),c.webm=a.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/^no$/,"")}catch(d){}return c},r.audio=function(){var a=b.createElement("audio"),c=!1;try{if(c=!!a.canPlayType)c=new Boolean(c),c.ogg=a.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),c.mp3=a.canPlayType("audio/mpeg;").replace(/^no$/,""),c.wav=a.canPlayType('audio/wav; codecs="1"').replace(/^no$/,""),c.m4a=(a.canPlayType("audio/x-m4a;")||a.canPlayType("audio/aac;")).replace(/^no$/,"")}catch(d){}return c},r.localstorage=function(){try{return localStorage.setItem(g,g),localStorage.removeItem(g),!0}catch(a){return!1}},r.sessionstorage=function(){try{return sessionStorage.setItem(g,g),sessionStorage.removeItem(g),!0}catch(a){return!1}},r.webworkers=function(){return!!a.Worker},r.applicationcache=function(){return!!a.applicationCache},r.svg=function(){return!!b.createElementNS&&!!b.createElementNS(q.svg,"svg").createSVGRect},r.inlinesvg=function(){var a=b.createElement("div");return a.innerHTML="<svg/>",(a.firstChild&&a.firstChild.namespaceURI)==q.svg},r.smil=function(){return!!b.createElementNS&&/SVGAnimate/.test(l.call(b.createElementNS(q.svg,"animate")))},r.svgclippaths=function(){return!!b.createElementNS&&/SVGClipPath/.test(l.call(b.createElementNS(q.svg,"clipPath")))};for(var L in r)B(r,L)&&(w=L.toLowerCase(),e[w]=r[L](),u.push((e[w]?"":"no-")+w));return e.input||K(),C(""),h=j=null,e._version=d,e._prefixes=m,e._domPrefixes=p,e._cssomPrefixes=o,e.mq=y,e.hasEvent=z,e.testProp=function(a){return G([a])},e.testAllProps=I,e.testStyles=x,e}(this,this.document),function(a,b){function g(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x<style>"+b+"</style>",d.insertBefore(c.lastChild,d.firstChild)}function h(){var a=k.elements;return typeof a=="string"?a.split(" "):a}function i(a){var b={},c=a.createElement,e=a.createDocumentFragment,f=e();a.createElement=function(a){var e=(b[a]||(b[a]=c(a))).cloneNode();return k.shivMethods&&e.canHaveChildren&&!d.test(a)?f.appendChild(e):e},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+h().join().replace(/\w+/g,function(a){return b[a]=c(a),f.createElement(a),'c("'+a+'")'})+");return n}")(k,f)}function j(a){var b;return a.documentShived?a:(k.shivCSS&&!e&&(b=!!g(a,"article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio{display:none}canvas,video{display:inline-block;*display:inline;*zoom:1}[hidden]{display:none}audio[controls]{display:inline-block;*display:inline;*zoom:1}mark{background:#FF0;color:#000}")),f||(b=!i(a)),b&&(a.documentShived=b),a)}function o(a){var b,c=a.getElementsByTagName("*"),d=c.length,e=RegExp("^(?:"+h().join("|")+")$","i"),f=[];while(d--)b=c[d],e.test(b.nodeName)&&f.push(b.applyElement(p(b)));return f}function p(a){var b,c=a.attributes,d=c.length,e=a.ownerDocument.createElement(m+":"+a.nodeName);while(d--)b=c[d],b.specified&&e.setAttribute(b.nodeName,b.nodeValue);return e.style.cssText=a.style.cssText,e}function q(a){var b,c=a.split("{"),d=c.length,e=RegExp("(^|[\\s,>+~])("+h().join("|")+")(?=[[\\s,>+~#.:]|$)","gi"),f="$1"+m+"\\:$2";while(d--)b=c[d]=c[d].split("}"),b[b.length-1]=b[b.length-1].replace(e,f),c[d]=b.join("}");return c.join("{")}function r(a){var b=a.length;while(b--)a[b].removeNode()}function s(a){var b,c,d=a.namespaces,e=a.parentWindow;return!n||a.printShived?a:(typeof d[m]=="undefined"&&d.add(m),e.attachEvent("onbeforeprint",function(){var d,e,f,h=a.styleSheets,i=[],j=h.length,k=Array(j);while(j--)k[j]=h[j];while(f=k.pop())if(!f.disabled&&l.test(f.media)){for(d=f.imports,j=0,e=d.length;j<e;j++)k.push(d[j]);try{i.push(f.cssText)}catch(m){}}i=q(i.reverse().join("")),c=o(a),b=g(a,i)}),e.attachEvent("onafterprint",function(){r(c),b.removeNode(!0)}),a.printShived=!0,a)}var c=a.html5||{},d=/^<|^(?:button|form|map|select|textarea)$/i,e,f;(function(){var a=b.createElement("a");a.innerHTML="<xyz></xyz>",e="hidden"in a,f=a.childNodes.length==1||function(){try{b.createElement("a")}catch(a){return!0}var c=b.createDocumentFragment();return typeof c.cloneNode=="undefined"||typeof c.createDocumentFragment=="undefined"||typeof c.createElement=="undefined"}()})();var k={elements:c.elements||"abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video",shivCSS:c.shivCSS!==!1,shivMethods:c.shivMethods!==!1,type:"default",shivDocument:j};a.html5=k,j(b);var l=/^$|\b(?:all|print)\b/,m="html5shiv",n=!f&&function(){var c=b.documentElement;return typeof b.namespaces!="undefined"&&typeof b.parentWindow!="undefined"&&typeof c.applyElement!="undefined"&&typeof c.removeNode!="undefined"&&typeof a.attachEvent!="undefined"}();k.type+=" print",k.shivPrint=s,s(b)}(this,document),function(a,b,c){function d(a){return o.call(a)=="[object Function]"}function e(a){return typeof a=="string"}function f(){}function g(a){return!a||a=="loaded"||a=="complete"||a=="uninitialized"}function h(){var a=p.shift();q=1,a?a.t?m(function(){(a.t=="c"?B.injectCss:B.injectJs)(a.s,0,a.a,a.x,a.e,1)},0):(a(),h()):q=0}function i(a,c,d,e,f,i,j){function k(b){if(!o&&g(l.readyState)&&(u.r=o=1,!q&&h(),l.onload=l.onreadystatechange=null,b)){a!="img"&&m(function(){t.removeChild(l)},50);for(var d in y[c])y[c].hasOwnProperty(d)&&y[c][d].onload()}}var j=j||B.errorTimeout,l={},o=0,r=0,u={t:d,s:c,e:f,a:i,x:j};y[c]===1&&(r=1,y[c]=[],l=b.createElement(a)),a=="object"?l.data=c:(l.src=c,l.type=a),l.width=l.height="0",l.onerror=l.onload=l.onreadystatechange=function(){k.call(this,r)},p.splice(e,0,u),a!="img"&&(r||y[c]===2?(t.insertBefore(l,s?null:n),m(k,j)):y[c].push(l))}function j(a,b,c,d,f){return q=0,b=b||"j",e(a)?i(b=="c"?v:u,a,b,this.i++,c,d,f):(p.splice(this.i++,0,a),p.length==1&&h()),this}function k(){var a=B;return a.loader={load:j,i:0},a}var l=b.documentElement,m=a.setTimeout,n=b.getElementsByTagName("script")[0],o={}.toString,p=[],q=0,r="MozAppearance"in l.style,s=r&&!!b.createRange().compareNode,t=s?l:n.parentNode,l=a.opera&&o.call(a.opera)=="[object Opera]",l=!!b.attachEvent&&!l,u=r?"object":l?"script":"img",v=l?"script":u,w=Array.isArray||function(a){return o.call(a)=="[object Array]"},x=[],y={},z={timeout:function(a,b){return b.length&&(a.timeout=b[0]),a}},A,B;B=function(a){function b(a){var a=a.split("!"),b=x.length,c=a.pop(),d=a.length,c={url:c,origUrl:c,prefixes:a},e,f,g;for(f=0;f<d;f++)g=a[f].split("="),(e=z[g.shift()])&&(c=e(c,g));for(f=0;f<b;f++)c=x[f](c);return c}function g(a,e,f,g,i){var j=b(a),l=j.autoCallback;j.url.split(".").pop().split("?").shift(),j.bypass||(e&&(e=d(e)?e:e[a]||e[g]||e[a.split("/").pop().split("?")[0]]||h),j.instead?j.instead(a,e,f,g,i):(y[j.url]?j.noexec=!0:y[j.url]=1,f.load(j.url,j.forceCSS||!j.forceJS&&"css"==j.url.split(".").pop().split("?").shift()?"c":c,j.noexec,j.attrs,j.timeout),(d(e)||d(l))&&f.load(function(){k(),e&&e(j.origUrl,i,g),l&&l(j.origUrl,i,g),y[j.url]=2})))}function i(a,b){function c(a,c){if(a){if(e(a))c||(j=function(){var a=[].slice.call(arguments);k.apply(this,a),l()}),g(a,j,b,0,h);else if(Object(a)===a)for(n in m=function(){var b=0,c;for(c in a)a.hasOwnProperty(c)&&b++;return b}(),a)a.hasOwnProperty(n)&&(!c&&!--m&&(d(j)?j=function(){var a=[].slice.call(arguments);k.apply(this,a),l()}:j[n]=function(a){return function(){var b=[].slice.call(arguments);a&&a.apply(this,b),l()}}(k[n])),g(a[n],j,b,n,h))}else!c&&l()}var h=!!a.test,i=a.load||a.both,j=a.callback||f,k=j,l=a.complete||f,m,n;c(h?a.yep:a.nope,!!i),i&&c(i)}var j,l,m=this.yepnope.loader;if(e(a))g(a,0,m,0);else if(w(a))for(j=0;j<a.length;j++)l=a[j],e(l)?g(l,0,m,0):w(l)?B(l):Object(l)===l&&i(l,m);else Object(a)===a&&i(a,m)},B.addPrefix=function(a,b){z[a]=b},B.addFilter=function(a){x.push(a)},B.errorTimeout=1e4,b.readyState==null&&b.addEventListener&&(b.readyState="loading",b.addEventListener("DOMContentLoaded",A=function(){b.removeEventListener("DOMContentLoaded",A,0),b.readyState="complete"},0)),a.yepnope=k(),a.yepnope.executeStack=h,a.yepnope.injectJs=function(a,c,d,e,i,j){var k=b.createElement("script"),l,o,e=e||B.errorTimeout;k.src=a;for(o in d)k.setAttribute(o,d[o]);c=j?h:c||f,k.onreadystatechange=k.onload=function(){!l&&g(k.readyState)&&(l=1,c(),k.onload=k.onreadystatechange=null)},m(function(){l||(l=1,c(1))},e),i?k.onload():n.parentNode.insertBefore(k,n)},a.yepnope.injectCss=function(a,c,d,e,g,i){var e=b.createElement("link"),j,c=i?h:c||f;e.href=a,e.rel="stylesheet",e.type="text/css";for(j in d)e.setAttribute(j,d[j]);g||(n.parentNode.insertBefore(e,n),m(c,0))}}(this,document),Modernizr.load=function(){yepnope.apply(window,[].slice.call(arguments,0))};
\ No newline at end of file