erikroyall/hilo

View on GitHub
docs/hilo.min.html

Summary

Maintainability
Test Coverage
<!DOCTYPE html>

<html>
<head>
  <title>hilo.min.js</title>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  <meta name="viewport" content="width=device-width, target-densitydpi=160dpi, initial-scale=1.0; maximum-scale=1.0; user-scalable=0;">
  <link rel="stylesheet" media="all" href="docco.css" />
</head>
<body>
  <div id="container">
    <div id="background"></div>
    
      <ul id="jump_to">
        <li>
          <a class="large" href="javascript:void(0);">Jump To &hellip;</a>
          <a class="small" href="javascript:void(0);">+</a>
          <div id="jump_wrapper">
          <div id="jump_page">
            
              
              <a class="source" href="hilo-legacy.html">
                hilo-legacy.js
              </a>
            
              
              <a class="source" href="hilo-legacy.min.html">
                hilo-legacy.min.js
              </a>
            
              
              <a class="source" href="hilo.html">
                hilo.js
              </a>
            
              
              <a class="source" href="hilo.min.html">
                hilo.min.js
              </a>
            
          </div>
        </li>
      </ul>
    
    <ul class="sections">
        
          <li id="title">
              <div class="annotation">
                  <h1>hilo.min.js</h1>
              </div>
          </li>
        
        
        
        <li id="section-1">
            <div class="annotation">
              
              <div class="pilwrap ">
                <a class="pilcrow" href="#section-1">&#182;</a>
              </div>
              
            </div>
            
            <div class="content"><div class='highlight'><pre>!<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a,b,c)</span></span>{<span class="hljs-string">"undefined"</span>!=<span class="hljs-keyword">typeof</span> <span class="hljs-built_in">module</span>&amp;&amp;<span class="hljs-built_in">module</span>.exports?<span class="hljs-built_in">module</span>.exports=c:<span class="hljs-string">"function"</span>==<span class="hljs-keyword">typeof</span> define&amp;&amp;define.amd?define(c):<span class="hljs-string">"function"</span>==<span class="hljs-keyword">typeof</span> YUI?YUI.add(a,c):b[a]=c()}(<span class="hljs-string">"Hilo"</span>,<span class="hljs-keyword">this</span>,<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-string">"use strict"</span>;<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">Test</span><span class="hljs-params">(a,b)</span></span>{<span class="hljs-keyword">this</span>.con=a,b&amp;&amp;(<span class="hljs-keyword">this</span>.neg=!<span class="hljs-number">0</span>)}<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">ajaxRequest</span><span class="hljs-params">(a,b,c,d)</span></span>{d=<span class="hljs-string">"object"</span>==<span class="hljs-keyword">typeof</span> d?d:<span class="hljs-keyword">void</span> <span class="hljs-number">0</span>,hiloAjax(<span class="hljs-string">"string"</span>==<span class="hljs-keyword">typeof</span> b&amp;&amp;<span class="hljs-string">"function"</span>==<span class="hljs-keyword">typeof</span> c?extend({method:a,url:b,success:c},d):extend({method:a},b))}<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">Dom</span><span class="hljs-params">(a,b)</span></span>{<span class="hljs-keyword">var</span> c,d;<span class="hljs-keyword">for</span>(c=<span class="hljs-number">0</span>,d=a.length;d&gt;c;c+=<span class="hljs-number">1</span>)<span class="hljs-keyword">this</span>[c]=a[c];<span class="hljs-keyword">this</span>.length=a.length,<span class="hljs-keyword">this</span>.sel=b}<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">unhyph</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span> a.toLowerCase().replace(<span class="hljs-regexp">/-(.)/g</span>,<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a,b)</span></span>{<span class="hljs-keyword">return</span> b.toUpperCase()})}<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">unitize</span><span class="hljs-params">(a,b)</span></span>{<span class="hljs-keyword">var</span> c={width:!<span class="hljs-number">0</span>,maxWidth:!<span class="hljs-number">0</span>,minWidth:!<span class="hljs-number">0</span>,height:!<span class="hljs-number">0</span>,maxHeight:!<span class="hljs-number">0</span>,minHeight:!<span class="hljs-number">0</span>,borderWidth:!<span class="hljs-number">0</span>,borderTopWidth:!<span class="hljs-number">0</span>,borderLeftWidth:!<span class="hljs-number">0</span>,borderBottomWidth:!<span class="hljs-number">0</span>,borderRightWidth:!<span class="hljs-number">0</span>,borderRadius:!<span class="hljs-number">0</span>,outlineWidth:!<span class="hljs-number">0</span>,outlineOffset:!<span class="hljs-number">0</span>,strokeWidth:!<span class="hljs-number">0</span>,fontSize:!<span class="hljs-number">0</span>,lineHeight:!<span class="hljs-number">0</span>,letterSpacing:!<span class="hljs-number">0</span>,textIndent:!<span class="hljs-number">0</span>,textUnderlineWidth:!<span class="hljs-number">0</span>,margin:!<span class="hljs-number">0</span>,marginTop:!<span class="hljs-number">0</span>,marginLeft:!<span class="hljs-number">0</span>,marginBottom:!<span class="hljs-number">0</span>,marginRight:!<span class="hljs-number">0</span>,padding:!<span class="hljs-number">0</span>,paddingTop:!<span class="hljs-number">0</span>,paddingLeft:!<span class="hljs-number">0</span>,paddingBottom:!<span class="hljs-number">0</span>,paddingRight:!<span class="hljs-number">0</span>,top:!<span class="hljs-number">0</span>,left:!<span class="hljs-number">0</span>,bottom:!<span class="hljs-number">0</span>,right:!<span class="hljs-number">0</span>};<span class="hljs-keyword">return</span><span class="hljs-string">"string"</span>==<span class="hljs-keyword">typeof</span> a?a:c[b]===!<span class="hljs-number">0</span>?a+<span class="hljs-string">"px"</span>:a}<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">NumberObject</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">this</span>.num=a}<span class="hljs-keyword">var</span> hilo,start,win=<span class="hljs-built_in">window</span>,doc=win.document,detected,key,callbacks=[],select,feature,hiloAjax,own=<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a,b)</span></span>{<span class="hljs-keyword">return</span> a.hasOwnProperty(b)},_i;start=(<span class="hljs-keyword">new</span> <span class="hljs-built_in">Date</span>).getTime(),feature=<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">var</span> a=<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span> doc.createElement(a)},b=a(<span class="hljs-string">"input"</span>),c=a(<span class="hljs-string">"div"</span>),d=a(<span class="hljs-string">"canvas"</span>),e=a(<span class="hljs-string">"iframe"</span>),f=<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a,b,c)</span></span>{<span class="hljs-keyword">return</span>!!a.setAttribute(b,c)},g=a(<span class="hljs-string">"audio"</span>),h=a(<span class="hljs-string">"span"</span>),i=a(<span class="hljs-string">"video"</span>),j=<span class="hljs-keyword">new</span> XMLHttpRequest;<span class="hljs-keyword">return</span>{addEventListener:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span><span class="hljs-string">"function"</span>==<span class="hljs-keyword">typeof</span> win.addEventListener}(),applicationCache:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span>!!win.applicationCache}(),audio:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span>!!g.canPlayType}(),audioPreload:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span><span class="hljs-string">"preload"</span><span class="hljs-keyword">in</span> g}(),audioType:{mp3:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span>!(!g.canPlayType||!g.canPlayType(<span class="hljs-string">"audio/mpeg;"</span>).replace(<span class="hljs-regexp">/no/</span>,<span class="hljs-string">""</span>))}(),vorbis:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span>!(!g.canPlayType||!g.canPlayType(<span class="hljs-string">"audio/ogg; codecs='vorbis'"</span>).replace(<span class="hljs-regexp">/no/</span>,<span class="hljs-string">""</span>))}(),wav:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span>!(!g.canPlayType||!g.canPlayType(<span class="hljs-string">"audio/wav; codecs='1'"</span>).replace(<span class="hljs-regexp">/no/</span>,<span class="hljs-string">""</span>))}(),aac:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span>!(!g.canPlayType||!g.canPlayType(<span class="hljs-string">"audio/mp4; codecs='mp4a.40.2'"</span>).replace(<span class="hljs-regexp">/no/</span>,<span class="hljs-string">""</span>))}()},canvas:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span>!!d.getContext}(),canvasText:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span>!!d.getContext&amp;&amp;<span class="hljs-string">"function"</span>==<span class="hljs-keyword">typeof</span> d.getContext(<span class="hljs-string">"2d"</span>).fillText}(),classList:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span><span class="hljs-string">"classList"</span><span class="hljs-keyword">in</span> h}(),command:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span><span class="hljs-string">"type"</span><span class="hljs-keyword">in</span> a(<span class="hljs-string">"command"</span>)}(),consval:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span><span class="hljs-string">"noValidate"</span><span class="hljs-keyword">in</span> a(<span class="hljs-string">"form"</span>)}(),contentEditable:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span><span class="hljs-string">"isContentEditable"</span><span class="hljs-keyword">in</span> h}(),datalist:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span><span class="hljs-string">"options"</span><span class="hljs-keyword">in</span> a(<span class="hljs-string">"datalist"</span>)}(),details:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span><span class="hljs-string">"open"</span><span class="hljs-keyword">in</span> a(<span class="hljs-string">"details"</span>)}(),dragdrop:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span><span class="hljs-string">"draggable"</span><span class="hljs-keyword">in</span> h}(),es6:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span><span class="hljs-string">"function"</span>==<span class="hljs-keyword">typeof</span> <span class="hljs-built_in">String</span>.prototype.contains}(),fileapi:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span><span class="hljs-string">"undefined"</span>!=<span class="hljs-keyword">typeof</span> FileReader}(),gen5:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-number">5</span>===<span class="hljs-built_in">parseInt</span>(win.navigator.appVersion,<span class="hljs-number">10</span>)}(),geolocation:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span><span class="hljs-string">"geolocation"</span><span class="hljs-keyword">in</span> win.navigator}(),getSelection:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span><span class="hljs-string">"function"</span>==<span class="hljs-keyword">typeof</span> win.getSelection}(),history:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span>!(!win.history||!history.pushState)}(),iframe:{sandbox:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span><span class="hljs-string">"sandbox"</span><span class="hljs-keyword">in</span> e}(),srdoc:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span><span class="hljs-string">"srcdoc"</span><span class="hljs-keyword">in</span> e}()},indexeddb:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span>!!(win.indexedDB&amp;&amp;win.IDBKeyRange&amp;&amp;win.IDBTransaction)}(),input:{autofocus:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span><span class="hljs-string">"autofocus"</span><span class="hljs-keyword">in</span> b}(),placeholder:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span><span class="hljs-string">"placeholder"</span><span class="hljs-keyword">in</span> b}(),type:{color:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span> f(b,<span class="hljs-string">"type"</span>,<span class="hljs-string">"color"</span>),<span class="hljs-string">"text"</span>!==b.type}(),date:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span> f(b,<span class="hljs-string">"type"</span>,<span class="hljs-string">"date"</span>),<span class="hljs-string">"text"</span>!==b.type}(),datetime:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span> f(b,<span class="hljs-string">"type"</span>,<span class="hljs-string">"datetime"</span>),<span class="hljs-string">"text"</span>!==b.type}(),datetimeLocal:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span> f(b,<span class="hljs-string">"type"</span>,<span class="hljs-string">"datetime-local"</span>),<span class="hljs-string">"text"</span>!==b.type}(),email:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span> f(b,<span class="hljs-string">"type"</span>,<span class="hljs-string">"email"</span>),<span class="hljs-string">"text"</span>!==b.type}(),month:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span> f(b,<span class="hljs-string">"type"</span>,<span class="hljs-string">"month"</span>),<span class="hljs-string">"text"</span>!==b.type}(),number:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span> f(b,<span class="hljs-string">"type"</span>,<span class="hljs-string">"number"</span>),<span class="hljs-string">"text"</span>!==b.type}(),range:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span> f(b,<span class="hljs-string">"type"</span>,<span class="hljs-string">"range"</span>),<span class="hljs-string">"text"</span>!==b.type}(),search:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span> f(b,<span class="hljs-string">"type"</span>,<span class="hljs-string">"search"</span>),<span class="hljs-string">"text"</span>!==b.type}(),tel:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span> f(b,<span class="hljs-string">"type"</span>,<span class="hljs-string">"tel"</span>),<span class="hljs-string">"text"</span>!==b.type}(),time:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span> f(b,<span class="hljs-string">"type"</span>,<span class="hljs-string">"time"</span>),<span class="hljs-string">"text"</span>!==b.type}(),week:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span> f(b,<span class="hljs-string">"type"</span>,<span class="hljs-string">"week"</span>),<span class="hljs-string">"text"</span>!==b.type}()}},localStorage:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">try</span>{<span class="hljs-keyword">return</span><span class="hljs-string">"localStorage"</span><span class="hljs-keyword">in</span> win&amp;&amp;<span class="hljs-literal">null</span>!==win.localStorage&amp;&amp;!!win.localStorage.setItem}<span class="hljs-keyword">catch</span>(a){<span class="hljs-keyword">return</span>!<span class="hljs-number">1</span>}}(),meter:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span><span class="hljs-string">"value"</span><span class="hljs-keyword">in</span> a(<span class="hljs-string">"meter"</span>)}(),microdata:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span><span class="hljs-string">"getItems"</span><span class="hljs-keyword">in</span> doc}(),offline:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span>!!win.applicationCache}(),output:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span><span class="hljs-string">"value"</span><span class="hljs-keyword">in</span> a(<span class="hljs-string">"output"</span>)}(),progress:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span><span class="hljs-string">"value"</span><span class="hljs-keyword">in</span> a(<span class="hljs-string">"progress"</span>)}(),qsa:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span><span class="hljs-string">"querySelector"</span><span class="hljs-keyword">in</span> doc&amp;&amp;<span class="hljs-string">"querySelectorAll"</span><span class="hljs-keyword">in</span> doc}(),qsa3:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">try</span>{<span class="hljs-keyword">return</span> doc.querySelectorAll(<span class="hljs-string">":root"</span>).length&gt;<span class="hljs-number">0</span>}<span class="hljs-keyword">catch</span>(a){<span class="hljs-keyword">return</span>!<span class="hljs-number">1</span>}}(),requestAnimationFrame:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span><span class="hljs-string">"function"</span>==<span class="hljs-keyword">typeof</span> requestAnimationFrame?!<span class="hljs-number">0</span>:<span class="hljs-string">"function"</span>==<span class="hljs-keyword">typeof</span> msRequestAnimationFrame?<span class="hljs-string">"ms"</span>:<span class="hljs-string">"function"</span>==<span class="hljs-keyword">typeof</span> webkitRequestAnimationFrame?<span class="hljs-string">"webkit"</span>:<span class="hljs-string">"function"</span>==<span class="hljs-keyword">typeof</span> mozRequestAnimationFrame?<span class="hljs-string">"moz"</span>:!<span class="hljs-number">1</span>}(),serverEvt:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span><span class="hljs-string">"undefined"</span>!=<span class="hljs-keyword">typeof</span> EventSource}(),sessionStorage:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">try</span>{<span class="hljs-keyword">return</span><span class="hljs-string">"sessionStorage"</span><span class="hljs-keyword">in</span> win&amp;&amp;<span class="hljs-literal">null</span>!==win.sessionStorage}<span class="hljs-keyword">catch</span>(a){<span class="hljs-keyword">return</span>!<span class="hljs-number">1</span>}}(),showModalDialog:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span><span class="hljs-string">"function"</span>==<span class="hljs-keyword">typeof</span> win.showModalDialog}(),svg:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span>!(!doc.createElementNS||!doc.createElementNS(<span class="hljs-string">"http://www.w3.org/2000/svg"</span>,<span class="hljs-string">"svg"</span>).createSVGRect)}(),svginhtml:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span> c.innerHTML=<span class="hljs-string">"&lt;svg&gt;&lt;/svg&gt;"</span>,!!(win.SVGSVGElement&amp;&amp;c.firstChild <span class="hljs-keyword">instanceof</span> win.SVGSVGElement)}(),template:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span><span class="hljs-string">"content"</span><span class="hljs-keyword">in</span> a(<span class="hljs-string">"template"</span>)}(),time:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span><span class="hljs-string">"datetime"</span><span class="hljs-keyword">in</span> a(<span class="hljs-string">"time"</span>)}(),undo:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span><span class="hljs-string">"undefined"</span>!=<span class="hljs-keyword">typeof</span> UndoManager}(),video:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">try</span>{<span class="hljs-keyword">return</span>!!i.canPlayType}<span class="hljs-keyword">catch</span>(a){<span class="hljs-keyword">return</span>!<span class="hljs-number">1</span>}}(),videoCaptions:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span><span class="hljs-string">"src"</span><span class="hljs-keyword">in</span> a(<span class="hljs-string">"track"</span>)}(),videoFormats:{h264:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">try</span>{<span class="hljs-keyword">return</span> i.canPlayType(<span class="hljs-string">"video/mp4; codecs='avc1.42E01E, mp4a.40.2'"</span>)}<span class="hljs-keyword">catch</span>(a){<span class="hljs-keyword">return</span>!<span class="hljs-number">1</span>}}(),webm:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">try</span>{<span class="hljs-keyword">return</span> i.canPlayType(<span class="hljs-string">"video/webm; codecs='vp8, vorbis'"</span>)}<span class="hljs-keyword">catch</span>(a){<span class="hljs-keyword">return</span>!<span class="hljs-number">1</span>}}(),ogg:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">try</span>{<span class="hljs-keyword">return</span> i.canPlayType(<span class="hljs-string">"video/ogg; codecs='theora, vorbis'"</span>)}<span class="hljs-keyword">catch</span>(a){<span class="hljs-keyword">return</span>!<span class="hljs-number">1</span>}}()},videoPoster:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span><span class="hljs-string">"poster"</span><span class="hljs-keyword">in</span> a(<span class="hljs-string">"video"</span>)}(),webAudio:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span> win.AudioContext?!<span class="hljs-number">0</span>:win.webkitAudioContext?<span class="hljs-string">"webkit"</span>:!<span class="hljs-number">1</span>}(),webSockets:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span>!!win.webSocket}(),websql:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span>!!win.openDatabase}(),webWorkers:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span>!!win.Worker}(),widgets:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span><span class="hljs-string">"undefined"</span>!=<span class="hljs-keyword">typeof</span> widget}(),xdocmsg:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span>!!win.postMessage}(),xhr:{xdr:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span><span class="hljs-string">"withCredentials"</span><span class="hljs-keyword">in</span> j}(),formdata:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span>!!win.FormData}(),upe:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span><span class="hljs-string">"upload"</span><span class="hljs-keyword">in</span> j}()}}}(),detected=<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">var</span> a,b,c,d,e,f=win.navigator.userAgent;<span class="hljs-keyword">if</span>(b={ie:<span class="hljs-number">0</span>,firefox:<span class="hljs-number">0</span>,safari:<span class="hljs-number">0</span>,konq:<span class="hljs-number">0</span>,opera:<span class="hljs-number">0</span>,chrome:<span class="hljs-number">0</span>,ver:<span class="hljs-literal">null</span>},c={win:!<span class="hljs-number">1</span>,mac:!<span class="hljs-number">1</span>,x11:!<span class="hljs-number">1</span>,iphone:!<span class="hljs-number">1</span>,ipod:!<span class="hljs-number">1</span>,ipad:!<span class="hljs-number">1</span>,ios:!<span class="hljs-number">1</span>,android:!<span class="hljs-number">1</span>,nokiaN:!<span class="hljs-number">1</span>,winMobile:!<span class="hljs-number">1</span>,wii:!<span class="hljs-number">1</span>,ps:!<span class="hljs-number">1</span>},a={ie:<span class="hljs-number">0</span>,gecko:<span class="hljs-number">0</span>,webkit:<span class="hljs-number">0</span>,khtml:<span class="hljs-number">0</span>,opera:<span class="hljs-number">0</span>,ver:<span class="hljs-literal">null</span>},<span class="hljs-built_in">window</span>.opera?(a.ver=b.ver=<span class="hljs-built_in">window</span>.opera.version(),a.opera=b.opera=<span class="hljs-built_in">parseFloat</span>(a.ver)):<span class="hljs-regexp">/AppleWebKit\/(\S+)/</span>.test(f)?(a.ver=<span class="hljs-built_in">RegExp</span>.$<span class="hljs-number">1</span>,a.webkit=<span class="hljs-built_in">parseFloat</span>(a.ver),<span class="hljs-regexp">/Chrome\/(\S+)/</span>.test(f)?(b.ver=<span class="hljs-built_in">RegExp</span>.$<span class="hljs-number">1</span>,b.chrome=<span class="hljs-built_in">parseFloat</span>(b.ver)):<span class="hljs-regexp">/Version\/(\S+)/</span>.test(f)?(b.ver=<span class="hljs-built_in">RegExp</span>.$<span class="hljs-number">1</span>,b.safari=<span class="hljs-built_in">parseFloat</span>(b.ver)):(d=<span class="hljs-number">1</span>,d=a.webkit&lt;<span class="hljs-number">100</span>?<span class="hljs-number">1</span>:a.webkit&lt;<span class="hljs-number">312</span>?<span class="hljs-number">1.2</span>:a.webkit&lt;<span class="hljs-number">412</span>?<span class="hljs-number">1.3</span>:<span class="hljs-number">2</span>,b.safari=b.ver=d)):<span class="hljs-regexp">/KHTML\/(\S+)/</span>.test(f)||<span class="hljs-regexp">/Konqueror\/([^;]+)/</span>.test(f)?(a.ver=b.ver=<span class="hljs-built_in">RegExp</span>.$<span class="hljs-number">1</span>,a.khtml=b.konq=<span class="hljs-built_in">parseFloat</span>(a.ver)):<span class="hljs-regexp">/rv:([^\)]+)\) Gecko\/\d{8}/</span>.test(f)?(a.ver=<span class="hljs-built_in">RegExp</span>.$<span class="hljs-number">1</span>,a.gecko=<span class="hljs-built_in">parseFloat</span>(a.ver),<span class="hljs-regexp">/Firefox\/(\S+)/</span>.test(f)&amp;&amp;(b.ver=<span class="hljs-built_in">RegExp</span>.$<span class="hljs-number">1</span>,b.firefox=<span class="hljs-built_in">parseFloat</span>(b.ver))):<span class="hljs-regexp">/MSIE ([^;]+)/</span>.test(f)&amp;&amp;(a.ver=b.ver=<span class="hljs-built_in">RegExp</span>.$<span class="hljs-number">1</span>,a.ie=b.ie=<span class="hljs-built_in">parseFloat</span>(a.ver)),b.ie=a.ie,b.opera=a.opera,e=navigator.platform,c.win=<span class="hljs-number">0</span>===e.indexOf(<span class="hljs-string">"Win"</span>),c.mac=<span class="hljs-number">0</span>===e.indexOf(<span class="hljs-string">"Mac"</span>),c.x11=<span class="hljs-string">"X11"</span>===e||<span class="hljs-number">0</span>===e.indexOf(<span class="hljs-string">"Linux"</span>),c.win&amp;&amp;<span class="hljs-regexp">/Win(?:dows )?([^do]{2})\s?(\d+\.\d+)?/</span>.test(f))<span class="hljs-keyword">if</span>(<span class="hljs-string">"NT"</span>===<span class="hljs-built_in">RegExp</span>.$<span class="hljs-number">1</span>)<span class="hljs-keyword">switch</span>(<span class="hljs-built_in">RegExp</span>.$<span class="hljs-number">2</span>){<span class="hljs-keyword">case</span><span class="hljs-string">"5.0"</span>:c.win=<span class="hljs-string">"2000"</span>;<span class="hljs-keyword">break</span>;<span class="hljs-keyword">case</span><span class="hljs-string">"5.1"</span>:c.win=<span class="hljs-string">"XP"</span>;<span class="hljs-keyword">break</span>;<span class="hljs-keyword">case</span><span class="hljs-string">"6.0"</span>:c.win=<span class="hljs-string">"Vista"</span>;<span class="hljs-keyword">break</span>;<span class="hljs-keyword">case</span><span class="hljs-string">"6.1"</span>:c.win=<span class="hljs-string">"7"</span>;<span class="hljs-keyword">break</span>;<span class="hljs-keyword">default</span>:c.win=<span class="hljs-string">"NT"</span>}<span class="hljs-keyword">else</span> c.win=<span class="hljs-string">"9x"</span>===<span class="hljs-built_in">RegExp</span>.$<span class="hljs-number">1</span>?<span class="hljs-string">"ME"</span>:<span class="hljs-built_in">RegExp</span>.$<span class="hljs-number">1</span>;<span class="hljs-keyword">return</span> c.iphone=f.indexOf(<span class="hljs-string">"iPhone"</span>)&gt;-<span class="hljs-number">1</span>,c.ipod=f.indexOf(<span class="hljs-string">"iPod"</span>)&gt;-<span class="hljs-number">1</span>,c.ipad=f.indexOf(<span class="hljs-string">"iPad"</span>)&gt;-<span class="hljs-number">1</span>,c.nokiaN=f.indexOf(<span class="hljs-string">"NokiaN"</span>)&gt;-<span class="hljs-number">1</span>,<span class="hljs-string">"CE"</span>===c.win?c.winMobile=c.win:<span class="hljs-string">"Ph"</span>===c.win&amp;&amp;<span class="hljs-regexp">/Windows Phone OS(\d+.\d+)/</span>.test(f)&amp;&amp;(c.win=<span class="hljs-string">"Phone"</span>,c.winMobile=<span class="hljs-built_in">parseFloat</span>(<span class="hljs-built_in">RegExp</span>.$<span class="hljs-number">1</span>)),c.mac&amp;&amp;f.indexOf(<span class="hljs-string">"Mobile"</span>)&gt;-<span class="hljs-number">1</span>&amp;&amp;(c.ios=<span class="hljs-regexp">/CPU (?:iPhone )?OS (\d+_\d+)/</span>.test(f)?<span class="hljs-built_in">parseFloat</span>(<span class="hljs-built_in">RegExp</span>.$<span class="hljs-number">1.</span>replace(<span class="hljs-string">"_"</span>,<span class="hljs-string">"."</span>)):<span class="hljs-number">2</span>),<span class="hljs-regexp">/Android (\d+\.\d+)/</span>.test(f)&amp;&amp;(c.android=<span class="hljs-built_in">parseFloat</span>(<span class="hljs-built_in">RegExp</span>.$<span class="hljs-number">1</span>)),c.wii=f.indexOf(<span class="hljs-string">"Wii"</span>)&gt;-<span class="hljs-number">1</span>,c.ps=<span class="hljs-regexp">/playstation/i</span>.test(f),c.win?(c.name=<span class="hljs-string">"Windows"</span>,c.version=c.win):c.name=c.mac?<span class="hljs-string">"Mac"</span>:c.x11?<span class="hljs-string">"Linux"</span>:<span class="hljs-string">"Some other"</span>,b.ie?(b.name=<span class="hljs-string">"IE"</span>,b.version=b.ie):b.chrome?(b.name=<span class="hljs-string">"Chrome"</span>,b.version=b.chrome):b.safari?(b.name=<span class="hljs-string">"Safari"</span>,b.version=b.safari):b.konq?(b.name=<span class="hljs-string">"Konqueror"</span>,b.version=b.konq):b.opera?(b.name=<span class="hljs-string">"Opera"</span>,b.version=b.opera):b.firefox&amp;&amp;(b.name=<span class="hljs-string">"Firefox"</span>,b.version=b.firefox),{engine:a,browser:b,system:c}}();<span class="hljs-keyword">var</span> json={};!<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">f</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-number">10</span>&gt;a?<span class="hljs-string">"0"</span>+a:a}<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">quote</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span> escapable.lastIndex=<span class="hljs-number">0</span>,escapable.test(a)?<span class="hljs-string">'"'</span>+a.replace(escapable,<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">var</span> b=meta[a];<span class="hljs-keyword">return</span><span class="hljs-string">"string"</span>==<span class="hljs-keyword">typeof</span> b?b:<span class="hljs-string">"\\u"</span>+(<span class="hljs-string">"0000"</span>+a.charCodeAt(<span class="hljs-number">0</span>).toString(<span class="hljs-number">16</span>)).slice(-<span class="hljs-number">4</span>)})+<span class="hljs-string">'"'</span>:<span class="hljs-string">'"'</span>+a+<span class="hljs-string">'"'</span>}<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">str</span><span class="hljs-params">(a,b)</span></span>{<span class="hljs-keyword">var</span> c,d,e,f,g,h=gap,i=b[a];<span class="hljs-keyword">switch</span>(i&amp;&amp;<span class="hljs-string">"object"</span>==<span class="hljs-keyword">typeof</span> i&amp;&amp;<span class="hljs-string">"function"</span>==<span class="hljs-keyword">typeof</span> i.tojson&amp;&amp;(i=i.tojson(a)),<span class="hljs-string">"function"</span>==<span class="hljs-keyword">typeof</span> rep&amp;&amp;(i=rep.call(b,a,i)),<span class="hljs-keyword">typeof</span> i){<span class="hljs-keyword">case</span><span class="hljs-string">"string"</span>:<span class="hljs-keyword">return</span> quote(i);<span class="hljs-keyword">case</span><span class="hljs-string">"number"</span>:<span class="hljs-keyword">return</span> <span class="hljs-built_in">isFinite</span>(i)?<span class="hljs-built_in">String</span>(i):<span class="hljs-string">"null"</span>;<span class="hljs-keyword">case</span><span class="hljs-string">"boolean"</span>:<span class="hljs-keyword">case</span><span class="hljs-string">"null"</span>:<span class="hljs-keyword">return</span> <span class="hljs-built_in">String</span>(i);<span class="hljs-keyword">case</span><span class="hljs-string">"object"</span>:<span class="hljs-keyword">if</span>(!i)<span class="hljs-keyword">return</span><span class="hljs-string">"null"</span>;<span class="hljs-keyword">if</span>(gap+=indent,g=[],<span class="hljs-string">"[object Array]"</span>===<span class="hljs-built_in">Object</span>.prototype.toString.apply(i)){<span class="hljs-keyword">for</span>(f=i.length,c=<span class="hljs-number">0</span>;f&gt;c;c+=<span class="hljs-number">1</span>)g[c]=str(c,i)||<span class="hljs-string">"null"</span>;<span class="hljs-keyword">return</span> e=<span class="hljs-number">0</span>===g.length?<span class="hljs-string">"[]"</span>:gap?<span class="hljs-string">"[\n"</span>+gap+g.join(<span class="hljs-string">",\n"</span>+gap)+<span class="hljs-string">"\n"</span>+h+<span class="hljs-string">"]"</span>:<span class="hljs-string">"["</span>+g.join(<span class="hljs-string">","</span>)+<span class="hljs-string">"]"</span>,gap=h,e}<span class="hljs-keyword">if</span>(rep&amp;&amp;<span class="hljs-string">"object"</span>==<span class="hljs-keyword">typeof</span> rep)<span class="hljs-keyword">for</span>(f=rep.length,c=<span class="hljs-number">0</span>;f&gt;c;c+=<span class="hljs-number">1</span>)<span class="hljs-string">"string"</span>==<span class="hljs-keyword">typeof</span> rep[c]&amp;&amp;(d=rep[c],e=str(d,i),e&amp;&amp;g.push(quote(d)+(gap?<span class="hljs-string">": "</span>:<span class="hljs-string">":"</span>)+e));<span class="hljs-keyword">else</span> <span class="hljs-keyword">for</span>(d <span class="hljs-keyword">in</span> i)<span class="hljs-built_in">Object</span>.prototype.hasOwnProperty.call(i,d)&amp;&amp;(e=str(d,i),e&amp;&amp;g.push(quote(d)+(gap?<span class="hljs-string">": "</span>:<span class="hljs-string">":"</span>)+e));<span class="hljs-keyword">return</span> e=<span class="hljs-number">0</span>===g.length?<span class="hljs-string">"{}"</span>:gap?<span class="hljs-string">"{\n"</span>+gap+g.join(<span class="hljs-string">",\n"</span>+gap)+<span class="hljs-string">"\n"</span>+h+<span class="hljs-string">"}"</span>:<span class="hljs-string">"{"</span>+g.join(<span class="hljs-string">","</span>)+<span class="hljs-string">"}"</span>,gap=h,e}}<span class="hljs-keyword">if</span>(<span class="hljs-string">"object"</span>==<span class="hljs-keyword">typeof</span> <span class="hljs-built_in">window</span>.JSON&amp;&amp;<span class="hljs-string">"function"</span>==<span class="hljs-keyword">typeof</span> <span class="hljs-built_in">window</span>.JSON.parse)<span class="hljs-keyword">return</span> <span class="hljs-keyword">void</span>(json=<span class="hljs-built_in">window</span>.JSON);<span class="hljs-string">"function"</span>!=<span class="hljs-keyword">typeof</span> <span class="hljs-built_in">Date</span>.prototype.tojson&amp;&amp;(<span class="hljs-built_in">Date</span>.prototype.tojson=<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-built_in">isFinite</span>(<span class="hljs-keyword">this</span>.valueOf())?<span class="hljs-keyword">this</span>.getUTCFullYear()+<span class="hljs-string">"-"</span>+f(<span class="hljs-keyword">this</span>.getUTCMonth()+<span class="hljs-number">1</span>)+<span class="hljs-string">"-"</span>+f(<span class="hljs-keyword">this</span>.getUTCDate())+<span class="hljs-string">"T"</span>+f(<span class="hljs-keyword">this</span>.getUTCHours())+<span class="hljs-string">":"</span>+f(<span class="hljs-keyword">this</span>.getUTCMinutes())+<span class="hljs-string">":"</span>+f(<span class="hljs-keyword">this</span>.getUTCSeconds())+<span class="hljs-string">"Z"</span>:<span class="hljs-literal">null</span>},<span class="hljs-built_in">String</span>.prototype.tojson=<span class="hljs-built_in">Number</span>.prototype.tojson=<span class="hljs-built_in">Boolean</span>.prototype.tojson=<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-keyword">this</span>.valueOf()});<span class="hljs-keyword">var</span> cx=<span class="hljs-regexp">/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g</span>,escapable=<span class="hljs-regexp">/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g</span>,gap,indent,meta={<span class="hljs-string">"\b"</span>:<span class="hljs-string">"\\b"</span>,<span class="hljs-string">"    "</span>:<span class="hljs-string">"\\t"</span>,<span class="hljs-string">"\n"</span>:<span class="hljs-string">"\\n"</span>,<span class="hljs-string">"\f"</span>:<span class="hljs-string">"\\f"</span>,<span class="hljs-string">"\r"</span>:<span class="hljs-string">"\\r"</span>,<span class="hljs-string">'"'</span>:<span class="hljs-string">'\\"'</span>,<span class="hljs-string">"\\"</span>:<span class="hljs-string">"\\\\"</span>},rep;<span class="hljs-string">"function"</span>!=<span class="hljs-keyword">typeof</span> json.stringify&amp;&amp;(json.stringify=<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a,b,c)</span></span>{<span class="hljs-keyword">var</span> d;<span class="hljs-keyword">if</span>(gap=<span class="hljs-string">""</span>,indent=<span class="hljs-string">""</span>,<span class="hljs-string">"number"</span>==<span class="hljs-keyword">typeof</span> c)<span class="hljs-keyword">for</span>(d=<span class="hljs-number">0</span>;c&gt;d;d+=<span class="hljs-number">1</span>)indent+=<span class="hljs-string">" "</span>;<span class="hljs-keyword">else</span><span class="hljs-string">"string"</span>==<span class="hljs-keyword">typeof</span> c&amp;&amp;(indent=c);<span class="hljs-keyword">if</span>(rep=b,b&amp;&amp;<span class="hljs-string">"function"</span>!=<span class="hljs-keyword">typeof</span> b&amp;&amp;(<span class="hljs-string">"object"</span>!=<span class="hljs-keyword">typeof</span> b||<span class="hljs-string">"number"</span>!=<span class="hljs-keyword">typeof</span> b.length))<span class="hljs-keyword">throw</span> <span class="hljs-keyword">new</span> <span class="hljs-built_in">Error</span>(<span class="hljs-string">"json.stringify"</span>);<span class="hljs-keyword">return</span> str(<span class="hljs-string">""</span>,{<span class="hljs-string">""</span>:a})}),<span class="hljs-string">"function"</span>!=<span class="hljs-keyword">typeof</span> json.parse&amp;&amp;(json.parse=<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(text,reviver)</span></span>{<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">walk</span><span class="hljs-params">(a,b)</span></span>{<span class="hljs-keyword">var</span> c,d,e=a[b];<span class="hljs-keyword">if</span>(e&amp;&amp;<span class="hljs-string">"object"</span>==<span class="hljs-keyword">typeof</span> e)<span class="hljs-keyword">for</span>(c <span class="hljs-keyword">in</span> e)<span class="hljs-built_in">Object</span>.prototype.hasOwnProperty.call(e,c)&amp;&amp;(d=walk(e,c),<span class="hljs-keyword">void</span> <span class="hljs-number">0</span>!==d?e[c]=d:<span class="hljs-keyword">delete</span> e[c]);<span class="hljs-keyword">return</span> reviver.call(a,b,e)}<span class="hljs-keyword">var</span> j;<span class="hljs-keyword">if</span>(text=<span class="hljs-built_in">String</span>(text),cx.lastIndex=<span class="hljs-number">0</span>,cx.test(text)&amp;&amp;(text=text.replace(cx,<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span><span class="hljs-string">"\\u"</span>+(<span class="hljs-string">"0000"</span>+a.charCodeAt(<span class="hljs-number">0</span>).toString(<span class="hljs-number">16</span>)).slice(-<span class="hljs-number">4</span>)})),<span class="hljs-regexp">/^[\],:{}\s]*$/</span>.test(text.replace(<span class="hljs-regexp">/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g</span>,<span class="hljs-string">"@"</span>).replace(<span class="hljs-regexp">/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g</span>,<span class="hljs-string">"]"</span>).replace(<span class="hljs-regexp">/(?:^|:|,)(?:\s*\[)+/g</span>,<span class="hljs-string">""</span>)))<span class="hljs-keyword">return</span> j=<span class="hljs-built_in">eval</span>(<span class="hljs-string">"("</span>+text+<span class="hljs-string">")"</span>),<span class="hljs-string">"function"</span>==<span class="hljs-keyword">typeof</span> reviver?walk({<span class="hljs-string">""</span>:j},<span class="hljs-string">""</span>):j;<span class="hljs-keyword">throw</span> <span class="hljs-keyword">new</span> <span class="hljs-built_in">SyntaxError</span>(<span class="hljs-string">"json.parse"</span>)})}();<span class="hljs-keyword">var</span> boxedString=<span class="hljs-built_in">Object</span>(<span class="hljs-string">"a"</span>),splitString=<span class="hljs-string">"a"</span>!==boxedString[<span class="hljs-number">0</span>]||!(<span class="hljs-number">0</span> <span class="hljs-keyword">in</span> boxedString),toObject=<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">if</span>(<span class="hljs-string">"undefined"</span>==<span class="hljs-keyword">typeof</span> a)<span class="hljs-keyword">throw</span> <span class="hljs-keyword">new</span> <span class="hljs-built_in">TypeError</span>(<span class="hljs-string">"can't convert "</span>+a+<span class="hljs-string">" to object"</span>);<span class="hljs-keyword">return</span> <span class="hljs-built_in">Object</span>(a)},toInteger=<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">var</span> b=+a;<span class="hljs-keyword">return</span> <span class="hljs-built_in">Number</span>.isNaN(b)?<span class="hljs-number">0</span>:<span class="hljs-number">0</span>!==b&amp;&amp;<span class="hljs-built_in">isFinite</span>(b)?sign(b)*<span class="hljs-built_in">Math</span>.floor(<span class="hljs-built_in">Math</span>.abs(b)):b},isPrimitive=<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">var</span> b=<span class="hljs-keyword">typeof</span> a;<span class="hljs-keyword">return</span> <span class="hljs-literal">null</span>===a||<span class="hljs-string">"undefined"</span>===b||<span class="hljs-string">"boolean"</span>===b||<span class="hljs-string">"number"</span>===b||<span class="hljs-string">"string"</span>===b},toPrimitive=<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">var</span> b,c,d;<span class="hljs-keyword">if</span>(isPrimitive(a))<span class="hljs-keyword">return</span> a;<span class="hljs-keyword">if</span>(c=a.valueOf,<span class="hljs-string">"function"</span>==<span class="hljs-keyword">typeof</span> c&amp;&amp;(b=c.call(a),isPrimitive(b)))<span class="hljs-keyword">return</span> b;<span class="hljs-keyword">if</span>(d=a.toString,<span class="hljs-string">"function"</span>==<span class="hljs-keyword">typeof</span> d&amp;&amp;(b=d.call(a),isPrimitive(b)))<span class="hljs-keyword">return</span> b;<span class="hljs-keyword">throw</span> <span class="hljs-keyword">new</span> <span class="hljs-built_in">TypeError</span>},sign=<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">var</span> b=+a;<span class="hljs-keyword">return</span> <span class="hljs-number">0</span>===b?b:<span class="hljs-built_in">Number</span>.isNaN(b)?b:<span class="hljs-number">0</span>&gt;b?-<span class="hljs-number">1</span>:<span class="hljs-number">1</span>},each=<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a,b,c)</span></span>{<span class="hljs-keyword">var</span> d,e;<span class="hljs-keyword">if</span>(<span class="hljs-built_in">Array</span>.prototype.forEach)<span class="hljs-keyword">return</span> <span class="hljs-built_in">Array</span>.prototype.forEach.call(a,b);<span class="hljs-keyword">if</span>(!a||!b)<span class="hljs-keyword">throw</span> <span class="hljs-keyword">new</span> <span class="hljs-built_in">Error</span>(<span class="hljs-string">"Not enough arguments provided for each()"</span>);<span class="hljs-keyword">for</span>(c=c||a,d=<span class="hljs-number">0</span>,e=a.length;e&gt;d;d+=<span class="hljs-number">1</span>)b.call(c,a[d])},forIn=<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a,b,c)</span></span>{<span class="hljs-keyword">var</span> d;<span class="hljs-keyword">if</span>(!a||!b)<span class="hljs-keyword">throw</span> <span class="hljs-keyword">new</span> <span class="hljs-built_in">Error</span>(<span class="hljs-string">"Not enough arguments provided for forIn()"</span>);c=c||a;<span class="hljs-keyword">for</span>(d <span class="hljs-keyword">in</span> a)own(a,d)&amp;&amp;b.call(c,d)},extend=<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a,b)</span></span>{<span class="hljs-keyword">var</span> c;<span class="hljs-keyword">if</span>(!a||!b)<span class="hljs-keyword">throw</span> <span class="hljs-keyword">new</span> <span class="hljs-built_in">Error</span>(<span class="hljs-string">"Not enough arguments provided for extend()"</span>);<span class="hljs-keyword">for</span>(c <span class="hljs-keyword">in</span> b)own(b,c)&amp;&amp;(a[c]=b[c]);<span class="hljs-keyword">return</span> a},every=<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a,b)</span></span>{<span class="hljs-keyword">var</span> c,d,e,f;<span class="hljs-keyword">if</span>(<span class="hljs-literal">null</span>===a)<span class="hljs-keyword">throw</span> <span class="hljs-keyword">new</span> <span class="hljs-built_in">TypeError</span>;<span class="hljs-keyword">if</span>(c=<span class="hljs-built_in">Object</span>(a),d=c.length&gt;&gt;&gt;<span class="hljs-number">0</span>,<span class="hljs-string">"function"</span>!=<span class="hljs-keyword">typeof</span> b)<span class="hljs-keyword">throw</span> <span class="hljs-keyword">new</span> <span class="hljs-built_in">TypeError</span>;<span class="hljs-keyword">for</span>(e=<span class="hljs-built_in">arguments</span>[<span class="hljs-number">1</span>],f=<span class="hljs-number">0</span>;d&gt;f;f++)<span class="hljs-keyword">if</span>(f <span class="hljs-keyword">in</span> c&amp;&amp;!b.call(e,c[f],f,c))<span class="hljs-keyword">return</span>!<span class="hljs-number">1</span>;<span class="hljs-keyword">return</span>!<span class="hljs-number">0</span>},trim=<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">var</span> b=<span class="hljs-string">"    \n\f\r   ᠎              \u2028\u2029"</span>;b=<span class="hljs-string">"["</span>+b+<span class="hljs-string">"]"</span>;<span class="hljs-keyword">var</span> c=<span class="hljs-keyword">new</span> <span class="hljs-built_in">RegExp</span>(<span class="hljs-string">"^"</span>+b+b+<span class="hljs-string">"*"</span>),d=<span class="hljs-keyword">new</span> <span class="hljs-built_in">RegExp</span>(b+b+<span class="hljs-string">"*$"</span>);<span class="hljs-keyword">if</span>(<span class="hljs-keyword">void</span> <span class="hljs-number">0</span>===a||<span class="hljs-literal">null</span>===a)<span class="hljs-keyword">throw</span> <span class="hljs-keyword">new</span> <span class="hljs-built_in">TypeError</span>(<span class="hljs-string">"can't convert "</span>+a+<span class="hljs-string">" to object"</span>);<span class="hljs-keyword">return</span> <span class="hljs-built_in">String</span>(a).replace(c,<span class="hljs-string">""</span>).replace(d,<span class="hljs-string">""</span>)},contains=<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a,b)</span></span>{<span class="hljs-keyword">var</span> c=<span class="hljs-built_in">arguments</span>[<span class="hljs-number">1</span>];<span class="hljs-keyword">return</span>-<span class="hljs-number">1</span>!==a.indexOf(b,c)},indexOf=<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a,b)</span></span>{<span class="hljs-keyword">var</span> c=splitString&amp;&amp;<span class="hljs-string">"[object String]"</span>===a.toString()?<span class="hljs-keyword">this</span>.split(<span class="hljs-string">""</span>):toObject(<span class="hljs-keyword">this</span>),d=c.length&gt;&gt;&gt;<span class="hljs-number">0</span>;<span class="hljs-keyword">if</span>(!d)<span class="hljs-keyword">return</span>-<span class="hljs-number">1</span>;<span class="hljs-keyword">var</span> e=<span class="hljs-number">0</span>;<span class="hljs-keyword">for</span>(<span class="hljs-built_in">arguments</span>.length&gt;<span class="hljs-number">1</span>&amp;&amp;(e=toInteger(<span class="hljs-built_in">arguments</span>[<span class="hljs-number">1</span>])),e=e&gt;=<span class="hljs-number">0</span>?e:<span class="hljs-built_in">Math</span>.max(<span class="hljs-number">0</span>,d+e);d&gt;e;e++)<span class="hljs-keyword">if</span>(e <span class="hljs-keyword">in</span> c&amp;&amp;c[e]===b)<span class="hljs-keyword">return</span> e;<span class="hljs-keyword">return</span>-<span class="hljs-number">1</span>};<span class="hljs-keyword">return</span> select=select||<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a,b)</span></span>{<span class="hljs-keyword">return</span> b=b||doc,b.querySelectorAll(a)},hilo=<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a,b,c)</span></span>{<span class="hljs-keyword">return</span><span class="hljs-string">"undefined"</span>==<span class="hljs-keyword">typeof</span> a?win.Hilo:<span class="hljs-string">"number"</span>==<span class="hljs-keyword">typeof</span> a?<span class="hljs-keyword">new</span> NumberObject(a):<span class="hljs-string">"string"</span>==<span class="hljs-keyword">typeof</span> a?<span class="hljs-string">""</span>===trim(a)?<span class="hljs-keyword">new</span> Dom({length:<span class="hljs-number">0</span>}):<span class="hljs-keyword">new</span> Dom(select(a,b,c),a):<span class="hljs-string">"function"</span>==<span class="hljs-keyword">typeof</span> a?(<span class="hljs-string">"complete"</span>===<span class="hljs-built_in">document</span>.readyState?a():callbacks.push(a),win.Hilo):a.length?<span class="hljs-keyword">new</span> Dom(a):(a=[a],<span class="hljs-keyword">new</span> Dom(a))},hilo.temp={},hilo.version=<span class="hljs-string">"0.1.0-pre-dev-beta-9"</span>,hilo.feature=feature,hilo.browser=detected.browser,hilo.engine=detected.engine,hilo.platform=detected.system,extend(hilo,{each:each,extend:extend,every:every,trim:trim,contains:contains,indexOf:indexOf,isPrimitive:isPrimitive,toObject:toObject,toInteger:toInteger,toPrimitive:toPrimitive}),hilo.json={parse:json.parse,stringify:json.stringify},hilo.legacy=<span class="hljs-string">"function"</span>==<span class="hljs-keyword">typeof</span> sizzle,extend(hilo,{test:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-keyword">new</span> Test(a)}}),extend(Test.prototype,{ifEquals:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">var</span> b=<span class="hljs-keyword">this</span>.con===a;<span class="hljs-keyword">return</span> <span class="hljs-keyword">this</span>.neg?!b:b},ifContains:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">var</span> b=<span class="hljs-number">1</span>===<span class="hljs-keyword">this</span>.con.split(a).length?!<span class="hljs-number">1</span>:!<span class="hljs-number">0</span>;<span class="hljs-keyword">if</span>(<span class="hljs-string">"string"</span>==<span class="hljs-keyword">typeof</span> a&amp;&amp;<span class="hljs-string">"object"</span>==<span class="hljs-keyword">typeof</span> <span class="hljs-keyword">this</span>.con&amp;&amp;<span class="hljs-keyword">this</span>.con.length);<span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span>(<span class="hljs-string">"string"</span>==<span class="hljs-keyword">typeof</span> a&amp;&amp;<span class="hljs-string">"string"</span>==<span class="hljs-keyword">typeof</span> <span class="hljs-keyword">this</span>.con)<span class="hljs-keyword">return</span> <span class="hljs-keyword">this</span>.neg?!b:b},not:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-keyword">new</span> Test(<span class="hljs-keyword">this</span>,!<span class="hljs-number">0</span>)}}),hiloAjax=<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">var</span> b;<span class="hljs-keyword">if</span>(win.XMLHttpRequest?b=<span class="hljs-keyword">new</span> win.XMLHttpRequest:win.ActiveXObject&amp;&amp;(b=<span class="hljs-keyword">new</span> win.ActiveXObject(<span class="hljs-string">"Microsoft.XMLHTTP"</span>)),!a.url)<span class="hljs-keyword">throw</span> <span class="hljs-keyword">new</span> <span class="hljs-built_in">TypeError</span>(<span class="hljs-string">"url parameter not provided to hilo.ajax"</span>);a.async=a.async||!<span class="hljs-number">0</span>,a.username=a.username||<span class="hljs-literal">null</span>,a.password=a.password||<span class="hljs-literal">null</span>,a.contentType=a.contentType||<span class="hljs-string">"application/x-www-form-urlencoded; charset=UTF-8"</span>,b.onreadystatechange=<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">if</span>(a.callback&amp;&amp;a.callback(b),<span class="hljs-number">4</span>===b.readyState)<span class="hljs-keyword">switch</span>(a.complete.call(<span class="hljs-keyword">this</span>,b),b.status){<span class="hljs-keyword">case</span> <span class="hljs-number">200</span>:a.success.call(<span class="hljs-keyword">this</span>,b),a.error.call(<span class="hljs-keyword">this</span>,b);<span class="hljs-keyword">break</span>;<span class="hljs-keyword">case</span> <span class="hljs-number">404</span>:a.notfound.call(<span class="hljs-keyword">this</span>,b),a.error.call(<span class="hljs-keyword">this</span>,b);<span class="hljs-keyword">break</span>;<span class="hljs-keyword">case</span> <span class="hljs-number">403</span>:a.forbidden.call(<span class="hljs-keyword">this</span>,b),a.error.call(<span class="hljs-keyword">this</span>,b);<span class="hljs-keyword">break</span>;<span class="hljs-keyword">default</span>:a.error.call(<span class="hljs-keyword">this</span>,b)}<span class="hljs-keyword">else</span> <span class="hljs-number">3</span>===b.readyState&amp;&amp;a.sent.call(<span class="hljs-keyword">this</span>,b)},b.timeout=a.timeout,b.open(a.method.trim().toUpperCase()||<span class="hljs-string">"POST"</span>,a.url,a.async,a.username,a.password),<span class="hljs-string">"object"</span>==<span class="hljs-keyword">typeof</span> a.data&amp;&amp;(a.data=<span class="hljs-built_in">JSON</span>.encode(a.data)),b.send(<span class="hljs-string">"string"</span>==<span class="hljs-keyword">typeof</span> a.data?a.data:<span class="hljs-literal">null</span>)},hilo.ajax=hiloAjax,hilo.get=<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a,b,c)</span></span>{ajaxRequest(<span class="hljs-string">"GET"</span>,a,b,c)},hilo.post=<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a,b,c)</span></span>{ajaxRequest(<span class="hljs-string">"POST"</span>,a,b,c)},Dom.prototype=<span class="hljs-built_in">Array</span>.prototype,extend(Dom.prototype,{constructor:Dom}),hilo.create=<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a,b)</span></span>{<span class="hljs-keyword">var</span> c,d=<span class="hljs-keyword">new</span> Dom([<span class="hljs-built_in">document</span>.createElement(a)]);<span class="hljs-keyword">if</span>(b){b.className&amp;&amp;(d.addClass(b.className),<span class="hljs-keyword">delete</span> b.className),b.text&amp;&amp;(d.html(b.text),<span class="hljs-keyword">delete</span> b.text);<span class="hljs-keyword">for</span>(c <span class="hljs-keyword">in</span> b)b.hasOwnProperty(c)&amp;&amp;d.attr(c,b[c])}<span class="hljs-keyword">return</span> d},extend(Dom.prototype,{each:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-keyword">this</span>.map(a),<span class="hljs-keyword">this</span>},map:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">var</span> b,c,d=[];<span class="hljs-keyword">for</span>(b=<span class="hljs-number">0</span>,c=<span class="hljs-keyword">this</span>.length;c&gt;b;b+=<span class="hljs-number">1</span>)d.push(a.call(<span class="hljs-keyword">this</span>,<span class="hljs-keyword">this</span>[b],b));<span class="hljs-keyword">return</span> d},one:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">var</span> b=<span class="hljs-keyword">this</span>.map(a);<span class="hljs-keyword">return</span> b.length&gt;<span class="hljs-number">1</span>?b:b[<span class="hljs-number">0</span>]},first:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span> a(<span class="hljs-keyword">this</span>[<span class="hljs-number">0</span>])},filter:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">var</span> b,c,d=<span class="hljs-keyword">this</span>.length&gt;&gt;&gt;<span class="hljs-number">0</span>,e=<span class="hljs-built_in">Object</span>(<span class="hljs-keyword">this</span>),f=[];<span class="hljs-keyword">for</span>(b=<span class="hljs-number">0</span>;d&gt;b;b++)b <span class="hljs-keyword">in</span> e&amp;&amp;(c=e[b],a.call(<span class="hljs-keyword">this</span>,c,b,e)&amp;&amp;f.push(c));<span class="hljs-keyword">return</span> <span class="hljs-keyword">new</span> Dom(f)},get:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">var</span> a=[];<span class="hljs-keyword">return</span> <span class="hljs-keyword">this</span>.each(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(b)</span></span>{a.push(b)}),a},firstEl:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-keyword">new</span> Dom([<span class="hljs-keyword">this</span>[<span class="hljs-number">0</span>]])},lastEl:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-keyword">new</span> Dom([<span class="hljs-keyword">this</span>[<span class="hljs-keyword">this</span>.length-<span class="hljs-number">1</span>]])},el:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-keyword">new</span> Dom([<span class="hljs-keyword">this</span>[a-<span class="hljs-number">1</span>]])},children:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">var</span> b,c,d=[];<span class="hljs-keyword">return</span> <span class="hljs-keyword">this</span>.each(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(e)</span></span>{<span class="hljs-keyword">var</span> f=select(a?a:<span class="hljs-string">"*"</span>,e);<span class="hljs-keyword">for</span>(b=<span class="hljs-number">0</span>,c=f.length;c&gt;b;b+=<span class="hljs-number">1</span>)d=d.concat(f[b])}),d},parents:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">var</span> a=[];<span class="hljs-keyword">return</span> <span class="hljs-keyword">this</span>.each(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(b)</span></span>{a=a.concat(b.parentElement)}),<span class="hljs-keyword">new</span> Dom(a)},parent:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-keyword">this</span>.first(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-keyword">new</span> Dom([a.parentElement])})},rel:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">var</span> b=[];<span class="hljs-keyword">return</span> <span class="hljs-keyword">this</span>.each(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(c)</span></span>{b.push(c[a])}),b},next:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-keyword">this</span>.rel(<span class="hljs-string">"nextElementSibling"</span>)},prev:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-keyword">this</span>.rel(<span class="hljs-string">"previousElementSibling"</span>)},html:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span><span class="hljs-string">"undefined"</span>!=<span class="hljs-keyword">typeof</span> a?<span class="hljs-keyword">this</span>.each(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(b)</span></span>{b.innerHTML=a}):<span class="hljs-keyword">this</span>.first(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span> a.innerHTML})},empty:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-keyword">this</span>.html(<span class="hljs-string">""</span>)},append:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-keyword">this</span>.each(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(b)</span></span>{b.innerHTML+=a})},prepend:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-keyword">this</span>.each(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(b)</span></span>{b.innerHTML=a+b.innerHTML})},value:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span> a?<span class="hljs-keyword">this</span>.each(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(b)</span></span>{b.value=a}):<span class="hljs-keyword">void</span> <span class="hljs-keyword">this</span>.first(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span> a.value})},id:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-keyword">this</span>.first(a?<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(b)</span></span>{b.id=a}:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span> a.id})},<span class="hljs-string">"class"</span>:feature.classList===!<span class="hljs-number">0</span>?<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a,b)</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-keyword">this</span>.each(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(c)</span></span>{<span class="hljs-keyword">var</span> d,e,f,g=[];<span class="hljs-keyword">if</span>(<span class="hljs-string">"string"</span>==<span class="hljs-keyword">typeof</span> b)<span class="hljs-keyword">if</span>(e=b.split(<span class="hljs-string">" "</span>),<span class="hljs-number">1</span>===e.length)<span class="hljs-keyword">switch</span>(f=c.classList.contains(b),a){<span class="hljs-keyword">case</span><span class="hljs-string">"add"</span>:f||c.classList.add(b);<span class="hljs-keyword">break</span>;<span class="hljs-keyword">case</span><span class="hljs-string">"remove"</span>:f&amp;&amp;c.classList.remove(b);<span class="hljs-keyword">break</span>;<span class="hljs-keyword">case</span><span class="hljs-string">"has"</span>:g=!<span class="hljs-number">0</span>;<span class="hljs-keyword">break</span>;<span class="hljs-keyword">case</span><span class="hljs-string">"toggle"</span>:<span class="hljs-keyword">for</span>(d=<span class="hljs-number">0</span>;d&lt;e.length;d+=<span class="hljs-number">1</span>)f?c.classList.remove(e[d]):c.classList.add(e[d])}<span class="hljs-keyword">else</span> <span class="hljs-keyword">switch</span>(f=<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span> c.classList.contains(a)},a){<span class="hljs-keyword">case</span><span class="hljs-string">"add"</span>:<span class="hljs-keyword">for</span>(d=<span class="hljs-number">0</span>;d&lt;e.length;d+=<span class="hljs-number">1</span>)f(e[d])||c.classList.add(e[d]);<span class="hljs-keyword">break</span>;<span class="hljs-keyword">case</span><span class="hljs-string">"remove"</span>:<span class="hljs-keyword">for</span>(d=<span class="hljs-number">0</span>;d&lt;e.length;d+=<span class="hljs-number">1</span>)f(e[d])&amp;&amp;c.classList.remove(e[d]);<span class="hljs-keyword">break</span>;<span class="hljs-keyword">case</span><span class="hljs-string">"has"</span>:<span class="hljs-keyword">for</span>(d=<span class="hljs-number">0</span>;d&lt;e.length;d+=<span class="hljs-number">1</span>)g.push(f(e[d]));<span class="hljs-keyword">break</span>;<span class="hljs-keyword">case</span><span class="hljs-string">"toggle"</span>:<span class="hljs-keyword">for</span>(d=<span class="hljs-number">0</span>;d&lt;e.length;d+=<span class="hljs-number">1</span>)f(e[d])?c.classList.remove(e[d]):c.classList.add(e[d])}<span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span>(b.length)<span class="hljs-keyword">switch</span>(e=b,f=<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span> c.classList.contains(a)},a){<span class="hljs-keyword">case</span><span class="hljs-string">"add"</span>:<span class="hljs-keyword">for</span>(d=<span class="hljs-number">0</span>;d&lt;e.length;d+=<span class="hljs-number">1</span>)f(e[d])||c.classList.add(e[d]);<span class="hljs-keyword">break</span>;<span class="hljs-keyword">case</span><span class="hljs-string">"remove"</span>:<span class="hljs-keyword">for</span>(d=<span class="hljs-number">0</span>;d&lt;e.length;d+=<span class="hljs-number">1</span>)f(e[d])&amp;&amp;c.classList.remove(e[d]);<span class="hljs-keyword">break</span>;<span class="hljs-keyword">case</span><span class="hljs-string">"has"</span>:<span class="hljs-keyword">for</span>(d=<span class="hljs-number">0</span>;d&lt;e.length;d+=<span class="hljs-number">1</span>)g.push(f(e[d]));<span class="hljs-keyword">break</span>;<span class="hljs-keyword">case</span><span class="hljs-string">"toggle"</span>:<span class="hljs-keyword">for</span>(d=<span class="hljs-number">0</span>;d&lt;e.length;d+=<span class="hljs-number">1</span>)f(e[d])?c.classList.remove(e[d]):c.classList.add(e[d])}<span class="hljs-keyword">return</span><span class="hljs-string">"boolean"</span>==<span class="hljs-keyword">typeof</span> g?g:g.every(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span> a===!<span class="hljs-number">0</span>})})}:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a,b)</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-keyword">this</span>.each(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(c)</span></span>{<span class="hljs-keyword">var</span> d,e,f,g=[];<span class="hljs-keyword">if</span>(<span class="hljs-string">"string"</span>==<span class="hljs-keyword">typeof</span> b)<span class="hljs-keyword">if</span>(e=b.split(<span class="hljs-string">" "</span>),<span class="hljs-number">1</span>===e.length)<span class="hljs-keyword">switch</span>(f=c.className.split(b).length&gt;<span class="hljs-number">1</span>,a){<span class="hljs-keyword">case</span><span class="hljs-string">"add"</span>:f||(c.className+=<span class="hljs-string">" "</span>+b);<span class="hljs-keyword">break</span>;<span class="hljs-keyword">case</span><span class="hljs-string">"remove"</span>:f&amp;&amp;c.className.replace(b,<span class="hljs-string">""</span>);<span class="hljs-keyword">break</span>;<span class="hljs-keyword">case</span><span class="hljs-string">"has"</span>:g=f;<span class="hljs-keyword">break</span>;<span class="hljs-keyword">case</span><span class="hljs-string">"toggle"</span>:<span class="hljs-keyword">for</span>(d=<span class="hljs-number">0</span>;d&lt;e.length;d+=<span class="hljs-number">1</span>)f?c.className.replace(b,<span class="hljs-string">""</span>):c.className+=<span class="hljs-string">" "</span>+b}<span class="hljs-keyword">else</span> <span class="hljs-keyword">switch</span>(f=<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span> c.className.split(a).length&gt;<span class="hljs-number">1</span>},a){<span class="hljs-keyword">case</span><span class="hljs-string">"add"</span>:<span class="hljs-keyword">for</span>(d=<span class="hljs-number">0</span>;d&lt;e.length;d+=<span class="hljs-number">1</span>)f(e[d])||(c.className+=<span class="hljs-string">" "</span>+e[d]);<span class="hljs-keyword">break</span>;<span class="hljs-keyword">case</span><span class="hljs-string">"remove"</span>:<span class="hljs-keyword">for</span>(d=<span class="hljs-number">0</span>;d&lt;e.length;d+=<span class="hljs-number">1</span>)f(e[d])&amp;&amp;c.className.replace(e[d],<span class="hljs-string">""</span>);<span class="hljs-keyword">break</span>;<span class="hljs-keyword">case</span><span class="hljs-string">"has"</span>:<span class="hljs-keyword">for</span>(d=<span class="hljs-number">0</span>;d&lt;e.length;d+=<span class="hljs-number">1</span>)g.push(f(e[d]));<span class="hljs-keyword">break</span>;<span class="hljs-keyword">case</span><span class="hljs-string">"toggle"</span>:<span class="hljs-keyword">for</span>(d=<span class="hljs-number">0</span>;d&lt;e.length;d+=<span class="hljs-number">1</span>)f(e[d])?c.className.replace(e[d],<span class="hljs-string">""</span>):c.className+=<span class="hljs-string">" "</span>+e[d]}<span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span>(b.length)<span class="hljs-keyword">switch</span>(e=b,f=<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span> c.className.split(a).length&gt;<span class="hljs-number">1</span>},a){<span class="hljs-keyword">case</span><span class="hljs-string">"add"</span>:<span class="hljs-keyword">for</span>(d=<span class="hljs-number">0</span>;d&lt;e.length;d+=<span class="hljs-number">1</span>)f(e[d])||(c.className+=<span class="hljs-string">" "</span>+e[d]);<span class="hljs-keyword">break</span>;<span class="hljs-keyword">case</span><span class="hljs-string">"remove"</span>:<span class="hljs-keyword">for</span>(d=<span class="hljs-number">0</span>;d&lt;e.length;d+=<span class="hljs-number">1</span>)f(e[d])&amp;&amp;c.className.replace(e[d],<span class="hljs-string">""</span>);<span class="hljs-keyword">break</span>;<span class="hljs-keyword">case</span><span class="hljs-string">"has"</span>:<span class="hljs-keyword">for</span>(d=<span class="hljs-number">0</span>;d&lt;e.length;d+=<span class="hljs-number">1</span>)g.push(f(e[d]));<span class="hljs-keyword">break</span>;<span class="hljs-keyword">case</span><span class="hljs-string">"toggle"</span>:<span class="hljs-keyword">for</span>(d=<span class="hljs-number">0</span>;d&lt;e.length;d+=<span class="hljs-number">1</span>)f(e[d])?c.className.replace(e[d],<span class="hljs-string">""</span>):c.className+=<span class="hljs-string">" "</span>+e[d]}<span class="hljs-keyword">return</span><span class="hljs-string">"boolean"</span>==<span class="hljs-keyword">typeof</span> g?g:g.every(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span> a===!<span class="hljs-number">0</span>})})},addClass:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-keyword">this</span>[<span class="hljs-string">"class"</span>](<span class="hljs-string">"add"</span>,a)},removeClass:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-keyword">this</span>[<span class="hljs-string">"class"</span>](<span class="hljs-string">"remove"</span>,a)},hasClass:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-keyword">this</span>[<span class="hljs-string">"class"</span>](<span class="hljs-string">"has"</span>,a)},toggleClass:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-keyword">this</span>[<span class="hljs-string">"class"</span>](<span class="hljs-string">"toggle"</span>,a)},attr:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a,b)</span></span>{<span class="hljs-keyword">return</span> b?<span class="hljs-keyword">this</span>.each(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(c)</span></span>{c.setAttribute(a,b)}):<span class="hljs-keyword">this</span>.first(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(b)</span></span>{<span class="hljs-keyword">return</span> b.getAttribute(a)})},css:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a,b)</span></span>{<span class="hljs-keyword">var</span> c;<span class="hljs-keyword">return</span><span class="hljs-string">"string"</span>==<span class="hljs-keyword">typeof</span> a?(c=unhyph(a),b?<span class="hljs-keyword">this</span>.each(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{a.style[c]=unitize(b,c)}):<span class="hljs-keyword">this</span>.first(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span> a.style[c]})):<span class="hljs-keyword">void</span>(<span class="hljs-string">"object"</span>==<span class="hljs-keyword">typeof</span> a&amp;&amp;forIn(a,<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(b)</span></span>{c=unhyph(b),<span class="hljs-keyword">this</span>.each(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(d)</span></span>{d.style[c]=unitize(a[b],c)})},<span class="hljs-keyword">this</span>))},computed:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-keyword">this</span>.first(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(b)</span></span>{<span class="hljs-keyword">return</span> win.getComputedStyle(b)[a]})},outerWidth:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-built_in">parseFloat</span>(<span class="hljs-keyword">this</span>.computed(<span class="hljs-string">"width"</span>))+<span class="hljs-built_in">parseFloat</span>(<span class="hljs-keyword">this</span>.computed(<span class="hljs-string">"paddingLeft"</span>))+<span class="hljs-built_in">parseFloat</span>(<span class="hljs-keyword">this</span>.computed(<span class="hljs-string">"paddingRight"</span>))+<span class="hljs-built_in">parseFloat</span>(<span class="hljs-keyword">this</span>.computed(<span class="hljs-string">"borderLeft"</span>))+<span class="hljs-built_in">parseFloat</span>(<span class="hljs-keyword">this</span>.computed(<span class="hljs-string">"borderRight"</span>))+<span class="hljs-string">"px"</span>},innerWidth:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-built_in">parseFloat</span>(<span class="hljs-keyword">this</span>.computed(<span class="hljs-string">"width"</span>))+<span class="hljs-built_in">parseFloat</span>(<span class="hljs-keyword">this</span>.computed(<span class="hljs-string">"paddingLeft"</span>))+<span class="hljs-built_in">parseFloat</span>(<span class="hljs-keyword">this</span>.computed(<span class="hljs-string">"paddingRight"</span>))+<span class="hljs-string">"px"</span>},outerHeight:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-built_in">parseFloat</span>(<span class="hljs-keyword">this</span>.computed(<span class="hljs-string">"height"</span>))+<span class="hljs-built_in">parseFloat</span>(<span class="hljs-keyword">this</span>.computed(<span class="hljs-string">"paddingTop"</span>))+<span class="hljs-built_in">parseFloat</span>(<span class="hljs-keyword">this</span>.computed(<span class="hljs-string">"paddingBottom"</span>))+<span class="hljs-built_in">parseFloat</span>(<span class="hljs-keyword">this</span>.computed(<span class="hljs-string">"borderTop"</span>))+<span class="hljs-built_in">parseFloat</span>(<span class="hljs-keyword">this</span>.computed(<span class="hljs-string">"borderBottom"</span>))+<span class="hljs-string">"px"</span>},innerHeight:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-built_in">parseFloat</span>(<span class="hljs-keyword">this</span>.computed(<span class="hljs-string">"height"</span>))+<span class="hljs-built_in">parseFloat</span>(<span class="hljs-keyword">this</span>.computed(<span class="hljs-string">"paddingTop"</span>))+<span class="hljs-built_in">parseFloat</span>(<span class="hljs-keyword">this</span>.computed(<span class="hljs-string">"paddingBottom"</span>))+<span class="hljs-string">"px"</span>}}),extend(Dom.prototype,{on:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-built_in">document</span>.addEventListener?<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a,b)</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-keyword">this</span>.each(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(c)</span></span>{c.addEventListener(a,b,!<span class="hljs-number">1</span>)})}:<span class="hljs-built_in">document</span>.attachEvent?<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a,b)</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-keyword">this</span>.each(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(c)</span></span>{c.attachEvent(<span class="hljs-string">"on"</span>+a,b)})}:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a,b)</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-keyword">this</span>.each(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(c)</span></span>{c[<span class="hljs-string">"on"</span>+a]=b})}}(),off:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-built_in">document</span>.removeEventListener?<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a,b)</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-keyword">this</span>.each(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(c)</span></span>{c.removeEventListener(a,b,!<span class="hljs-number">1</span>)})}:<span class="hljs-built_in">document</span>.detachEvent?<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a,b)</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-keyword">this</span>.each(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(c)</span></span>{c.detachEvent(<span class="hljs-string">"on"</span>+a,b)})}:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-keyword">this</span>.each(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(b)</span></span>{b[<span class="hljs-string">"on"</span>+a]=<span class="hljs-literal">null</span>})}}(),fire:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-built_in">document</span>.dispatchEvent?<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">var</span> b;<span class="hljs-keyword">try</span>{b=<span class="hljs-built_in">document</span>.createEvent(<span class="hljs-string">"Events"</span>)}<span class="hljs-keyword">catch</span>(c){b=<span class="hljs-built_in">document</span>.createEvent(<span class="hljs-string">"UIEvents"</span>)}<span class="hljs-keyword">return</span> b.initUIEvent(a,!<span class="hljs-number">0</span>,!<span class="hljs-number">0</span>,<span class="hljs-built_in">window</span>,<span class="hljs-number">1</span>),<span class="hljs-keyword">this</span>.each(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{a.dispatchEvent(b)})}:<span class="hljs-built_in">document</span>.fireEvent?<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">var</span> b=<span class="hljs-built_in">document</span>.createEventObject();<span class="hljs-keyword">return</span> b.button=<span class="hljs-number">1</span>,<span class="hljs-keyword">this</span>.each(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(c)</span></span>{c.fireEvent(<span class="hljs-string">"on"</span>+a,b)})}:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-keyword">this</span>.each(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(b)</span></span>{b[<span class="hljs-string">"on"</span>+a].call()})}}()}),extend(Dom.prototype,{ready:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">this</span>.each(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(b)</span></span>{b.onreadystatechange=<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{(b.readyState=<span class="hljs-string">"complete"</span>)&amp;&amp;a()}})}}),<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">var</span> a,b={};<span class="hljs-keyword">for</span>(a=[<span class="hljs-string">"blur"</span>,<span class="hljs-string">"click"</span>,<span class="hljs-string">"change"</span>,<span class="hljs-string">"dblclick"</span>,<span class="hljs-string">"drag"</span>,<span class="hljs-string">"dragstart"</span>,<span class="hljs-string">"dragend"</span>,<span class="hljs-string">"dragenter"</span>,<span class="hljs-string">"dragleave"</span>,<span class="hljs-string">"dragover"</span>,<span class="hljs-string">"drop"</span>,<span class="hljs-string">"error"</span>,<span class="hljs-string">"focus"</span>,<span class="hljs-string">"keyup"</span>,<span class="hljs-string">"keydown"</span>,<span class="hljs-string">"keypress"</span>,<span class="hljs-string">"load"</span>,<span class="hljs-string">"mousedown"</span>,<span class="hljs-string">"mouseleave"</span>,<span class="hljs-string">"mouseenter"</span>,<span class="hljs-string">"mouseover"</span>,<span class="hljs-string">"mousemove"</span>,<span class="hljs-string">"mouseout"</span>,<span class="hljs-string">"submit"</span>],_i=<span class="hljs-number">0</span>;_i&lt;a.length;_i+=<span class="hljs-number">1</span>)b[a[_i]]=<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(b)</span></span>{<span class="hljs-keyword">return</span><span class="hljs-string">"function"</span>==<span class="hljs-keyword">typeof</span> b?<span class="hljs-keyword">this</span>.on(a[_i],b):<span class="hljs-keyword">this</span>.fire(a[_i])};extend(Dom.prototype,b)}(),key={<span class="hljs-number">0</span>:<span class="hljs-number">48</span>,<span class="hljs-number">1</span>:<span class="hljs-number">49</span>,<span class="hljs-number">2</span>:<span class="hljs-number">50</span>,<span class="hljs-number">3</span>:<span class="hljs-number">51</span>,<span class="hljs-number">4</span>:<span class="hljs-number">52</span>,<span class="hljs-number">5</span>:<span class="hljs-number">53</span>,<span class="hljs-number">6</span>:<span class="hljs-number">54</span>,<span class="hljs-number">7</span>:<span class="hljs-number">55</span>,<span class="hljs-number">8</span>:<span class="hljs-number">56</span>,<span class="hljs-number">9</span>:<span class="hljs-number">57</span>,A:<span class="hljs-number">65</span>,B:<span class="hljs-number">66</span>,C:<span class="hljs-number">67</span>,D:<span class="hljs-number">68</span>,E:<span class="hljs-number">69</span>,F:<span class="hljs-number">70</span>,G:<span class="hljs-number">71</span>,H:<span class="hljs-number">72</span>,I:<span class="hljs-number">73</span>,J:<span class="hljs-number">74</span>,K:<span class="hljs-number">75</span>,L:<span class="hljs-number">76</span>,M:<span class="hljs-number">77</span>,N:<span class="hljs-number">78</span>,O:<span class="hljs-number">79</span>,P:<span class="hljs-number">80</span>,Q:<span class="hljs-number">81</span>,R:<span class="hljs-number">82</span>,S:<span class="hljs-number">83</span>,T:<span class="hljs-number">84</span>,U:<span class="hljs-number">85</span>,V:<span class="hljs-number">86</span>,W:<span class="hljs-number">87</span>,X:<span class="hljs-number">88</span>,Y:<span class="hljs-number">89</span>,Z:<span class="hljs-number">90</span>,a:<span class="hljs-number">97</span>,b:<span class="hljs-number">98</span>,c:<span class="hljs-number">99</span>,d:<span class="hljs-number">100</span>,e:<span class="hljs-number">101</span>,f:<span class="hljs-number">102</span>,g:<span class="hljs-number">103</span>,h:<span class="hljs-number">104</span>,i:<span class="hljs-number">105</span>,j:<span class="hljs-number">106</span>,k:<span class="hljs-number">107</span>,l:<span class="hljs-number">108</span>,m:<span class="hljs-number">109</span>,n:<span class="hljs-number">110</span>,o:<span class="hljs-number">111</span>,p:<span class="hljs-number">112</span>,q:<span class="hljs-number">113</span>,r:<span class="hljs-number">114</span>,s:<span class="hljs-number">115</span>,t:<span class="hljs-number">116</span>,u:<span class="hljs-number">117</span>,v:<span class="hljs-number">118</span>,w:<span class="hljs-number">119</span>,x:<span class="hljs-number">120</span>,y:<span class="hljs-number">121</span>,z:<span class="hljs-number">122</span>,alt:<span class="hljs-number">18</span>,caps:<span class="hljs-number">20</span>,ctrl:<span class="hljs-number">17</span>,cmd:<span class="hljs-number">17</span>,enter:<span class="hljs-number">13</span>,esc:<span class="hljs-number">27</span>,del:<span class="hljs-number">46</span>,end:<span class="hljs-number">35</span>,back:<span class="hljs-number">8</span>,left:<span class="hljs-number">37</span>,up:<span class="hljs-number">38</span>,right:<span class="hljs-number">39</span>,down:<span class="hljs-number">40</span>,f1:<span class="hljs-number">112</span>,f2:<span class="hljs-number">113</span>,f3:<span class="hljs-number">114</span>,f4:<span class="hljs-number">115</span>,f5:<span class="hljs-number">116</span>,f6:<span class="hljs-number">117</span>,f7:<span class="hljs-number">118</span>,f8:<span class="hljs-number">119</span>,f9:<span class="hljs-number">120</span>,f10:<span class="hljs-number">121</span>,f11:<span class="hljs-number">122</span>,f12:<span class="hljs-number">123</span>,home:<span class="hljs-number">36</span>,insert:<span class="hljs-number">45</span>,numlock:<span class="hljs-number">144</span>,<span class="hljs-string">"`"</span>:<span class="hljs-number">222</span>,<span class="hljs-string">"-"</span>:<span class="hljs-number">189</span>,<span class="hljs-string">","</span>:<span class="hljs-number">188</span>,<span class="hljs-string">"."</span>:<span class="hljs-number">190</span>,<span class="hljs-string">"/"</span>:<span class="hljs-number">191</span>,<span class="hljs-string">";"</span>:<span class="hljs-number">186</span>,<span class="hljs-string">"["</span>:<span class="hljs-number">219</span>,<span class="hljs-string">"\\"</span>:<span class="hljs-number">220</span>,<span class="hljs-string">"]"</span>:<span class="hljs-number">221</span>,<span class="hljs-string">"="</span>:<span class="hljs-number">187</span>},hilo.keys=key,extend(Dom.prototype,{show:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span> a=a||<span class="hljs-string">""</span>,<span class="hljs-keyword">this</span>.each(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(b)</span></span>{b.style.display=a,b.setAttribute(<span class="hljs-string">"aria-hidden"</span>,!<span class="hljs-number">1</span>)})},hide:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-keyword">this</span>.each(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{a.style.display=<span class="hljs-string">"none"</span>,a.setAttribute(<span class="hljs-string">"aria-hidden"</span>,!<span class="hljs-number">0</span>)})},toggle:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-keyword">this</span>.each(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(b)</span></span>{<span class="hljs-string">"none"</span>===b.style.display?(b.style.display=a?a:<span class="hljs-string">""</span>,b.setAttribute(<span class="hljs-string">"aria-hidden"</span>,!<span class="hljs-number">1</span>)):(b.style.display=<span class="hljs-string">"none"</span>,b.setAttribute(<span class="hljs-string">"aria-hidden"</span>,!<span class="hljs-number">0</span>))})},appear:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-keyword">this</span>.each(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{a.style.visibility=<span class="hljs-string">"visible"</span>,a.setAttribute(<span class="hljs-string">"aria-hidden"</span>,!<span class="hljs-number">1</span>)})},disappear:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-keyword">this</span>.each(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{a.style.visibility=<span class="hljs-string">"hidden"</span>,a.setAttribute(<span class="hljs-string">"aria-hidden"</span>,!<span class="hljs-number">0</span>)})},toggleVisibility:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-keyword">this</span>.each(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-string">"0"</span>===a.style.opacity?(a.style.visibility=<span class="hljs-string">"visible"</span>,a.setAttribute(<span class="hljs-string">"aria-hidden"</span>,!<span class="hljs-number">0</span>)):(a.style.visibility=<span class="hljs-string">"hidden"</span>,a.setAttribute(<span class="hljs-string">"aria-hidden"</span>,!<span class="hljs-number">0</span>))})},fade:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a,b)</span></span>{<span class="hljs-keyword">return</span><span class="hljs-string">"in"</span>===a&amp;&amp;<span class="hljs-keyword">this</span>.show(),<span class="hljs-keyword">this</span>.each(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(c)</span></span>{<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">d</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">var</span> b=<span class="hljs-number">.3</span>,d=<span class="hljs-number">1</span>;<span class="hljs-built_in">parseFloat</span>(c.style.opacity)===(<span class="hljs-string">"in"</span>===a?<span class="hljs-number">1</span>:<span class="hljs-number">0</span>)?clearInterval(win.Hilo.temp.anim):(<span class="hljs-string">"out"</span>===a&amp;&amp;(b=-b,d=<span class="hljs-number">0</span>),c.style.opacity=<span class="hljs-built_in">parseFloat</span>(c.style.opacity||d)+b)}<span class="hljs-keyword">var</span> e;<span class="hljs-keyword">switch</span>(b){<span class="hljs-keyword">case</span><span class="hljs-string">"slow"</span>:e=<span class="hljs-number">200</span>;<span class="hljs-keyword">break</span>;<span class="hljs-keyword">case</span><span class="hljs-string">"normal"</span>:e=<span class="hljs-number">120</span>;<span class="hljs-keyword">break</span>;<span class="hljs-keyword">case</span><span class="hljs-string">"fast"</span>:e=<span class="hljs-number">80</span>;<span class="hljs-keyword">break</span>;<span class="hljs-keyword">default</span>:e=e||<span class="hljs-number">120</span>}win.Hilo.temp.anim=setInterval(d,b)})},fadeIn:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">this</span>.fade(<span class="hljs-string">"in"</span>,a)},fadeOut:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{<span class="hljs-keyword">this</span>.fade(<span class="hljs-string">"out"</span>,a)}}),hilo.classify=<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">a</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-built_in">String</span>(hilo.browser.version).replace(<span class="hljs-string">"."</span>,<span class="hljs-string">"-"</span>)}<span class="hljs-keyword">var</span> b,c=win.Hilo(<span class="hljs-string">"body"</span>),d=[<span class="hljs-string">"js"</span>];<span class="hljs-keyword">if</span>(c.removeClass(<span class="hljs-string">"no-js"</span>),hilo.browser.chrome)d.push(<span class="hljs-string">"chrome"</span>);<span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span>(hilo.browser.firefox)d.push(<span class="hljs-string">"firefox"</span>);<span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span>(hilo.browser.safari)d.push(<span class="hljs-string">"safari"</span>);<span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span>(hilo.browser.ie){<span class="hljs-keyword">for</span>(b=<span class="hljs-number">6</span>;<span class="hljs-number">11</span>&gt;=b;b++)hilo.browser.ie&lt;=b&amp;&amp;(d.push(<span class="hljs-string">"lte-ie"</span>+b),hilo.browser.ie&lt;b&amp;&amp;d.push(<span class="hljs-string">"lt-ie"</span>+b)),hilo.browser.ie&gt;=b&amp;&amp;(d.push(<span class="hljs-string">"gte-ie"</span>+b),hilo.browser.ie&gt;b&amp;&amp;d.push(<span class="hljs-string">"gt-ie"</span>+b)),hilo.browser.ie===b&amp;&amp;d.push(<span class="hljs-string">"ie"</span>+b);d.push(<span class="hljs-string">"ie"</span>)}<span class="hljs-keyword">else</span> hilo.browser.opera?d.push(<span class="hljs-string">"opera"</span>):hilo.browser.konq&amp;&amp;d.push(<span class="hljs-string">"konqueror"</span>);d.push(<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">switch</span>(hilo.platform.name){<span class="hljs-keyword">case</span><span class="hljs-string">"Windows"</span>:<span class="hljs-keyword">return</span><span class="hljs-string">"windows"</span>;<span class="hljs-keyword">case</span><span class="hljs-string">"Mac"</span>:<span class="hljs-keyword">return</span><span class="hljs-string">"mac"</span>;<span class="hljs-keyword">case</span><span class="hljs-string">"Linux"</span>:<span class="hljs-keyword">return</span><span class="hljs-string">"linux"</span>}}()),hilo.engine.webkit?d.push(<span class="hljs-string">"webkit"</span>):hilo.engine.ie?d.push(<span class="hljs-string">"trident"</span>):hilo.engine.opera?d.push(<span class="hljs-string">"presto"</span>):hilo.engine.gecko&amp;&amp;d.push(<span class="hljs-string">"gecko"</span>),d.push(hilo.browser.name.toLowerCase()+<span class="hljs-built_in">parseInt</span>(hilo.browser.version,<span class="hljs-number">10</span>)),a()!==<span class="hljs-built_in">parseInt</span>(hilo.browser.version,<span class="hljs-number">10</span>)&amp;&amp;d.push(hilo.browser.name.toLowerCase()+a());<span class="hljs-keyword">for</span>(b <span class="hljs-keyword">in</span> hilo.feature)hilo.feature.hasOwnProperty(b)&amp;&amp;(hilo.feature[b]===!<span class="hljs-number">0</span>?d.push(b.toLowerCase()):hilo.feature[b]===!<span class="hljs-number">1</span>&amp;&amp;d.push(<span class="hljs-string">"no-"</span>+b.toLowerCase()));<span class="hljs-keyword">return</span> c.addClass(d),d},extend(NumberObject.prototype,{MAX_INTEGER:<span class="hljs-number">9007199254740991</span>,EPSILON:<span class="hljs-number">2.220446049250313e-16</span>,<span class="hljs-built_in">parseInt</span>:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-built_in">parseInt</span>.call(<span class="hljs-keyword">this</span>,<span class="hljs-keyword">this</span>.num)},<span class="hljs-built_in">parseFloat</span>:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-built_in">parseFloat</span>.call(<span class="hljs-keyword">this</span>,<span class="hljs-keyword">this</span>.num)},<span class="hljs-built_in">isFinite</span>:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span><span class="hljs-string">"number"</span>==<span class="hljs-keyword">typeof</span> <span class="hljs-keyword">this</span>.num&amp;&amp;<span class="hljs-built_in">isFinite</span>(<span class="hljs-keyword">this</span>.num)},isInteger:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span><span class="hljs-string">"number"</span>==<span class="hljs-keyword">typeof</span> <span class="hljs-keyword">this</span>.num&amp;&amp;!<span class="hljs-built_in">isNaN</span>(<span class="hljs-keyword">this</span>.num)&amp;&amp;<span class="hljs-built_in">isFinite</span>(<span class="hljs-keyword">this</span>.num)&amp;&amp;<span class="hljs-built_in">parseInt</span>(<span class="hljs-keyword">this</span>.num,<span class="hljs-number">10</span>)===<span class="hljs-keyword">this</span>.num},<span class="hljs-built_in">isNaN</span>:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">return</span> <span class="hljs-keyword">this</span>.num!==<span class="hljs-keyword">this</span>.num},toInteger:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">var</span> a=+<span class="hljs-keyword">this</span>.num;<span class="hljs-keyword">return</span> <span class="hljs-built_in">isNaN</span>(a)?<span class="hljs-number">0</span>:<span class="hljs-number">0</span>!==a&amp;&amp;<span class="hljs-built_in">isFinite</span>(a)?sign.call(<span class="hljs-keyword">this</span>,a)*<span class="hljs-built_in">Math</span>.floor(<span class="hljs-built_in">Math</span>.abs(a)):a},sign:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a)</span></span>{sign.call(<span class="hljs-keyword">this</span>,<span class="hljs-keyword">this</span>.num,a)},times:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(a,b)</span></span>{<span class="hljs-keyword">for</span>(<span class="hljs-keyword">var</span> c=<span class="hljs-number">0</span>;c&lt;<span class="hljs-keyword">this</span>.num;)a.apply(<span class="hljs-keyword">this</span>,b),c+=<span class="hljs-number">1</span>}}),extend(hilo,{Dom:Dom.prototype,Test:Test.prototype}),doc.onreadystatechange=<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">()</span></span>{<span class="hljs-keyword">if</span>(<span class="hljs-string">"complete"</span>===doc.readyState)<span class="hljs-keyword">for</span>(_i=<span class="hljs-number">0</span>;_i&lt;callbacks.length;_i+=<span class="hljs-number">1</span>)callbacks[_i]()},hilo.perf=(<span class="hljs-keyword">new</span> <span class="hljs-built_in">Date</span>).getTime()-start,hilo});</pre></div></div>
            
        </li>
        
    </ul>
  </div>
</body>
</html>