From a398f907a330c9f788be61668373bb5bfc6f9341 Mon Sep 17 00:00:00 2001 From: Florian N Date: Fri, 31 Jan 2014 22:17:59 -0500 Subject: [PATCH] multiple changes and updates --- db.sqlite3 | Bin 30720 -> 30720 bytes main/views.py | 162 +- pydash/settings.py | 2 +- pydash/urls.py | 6 +- static/css/base.css | 128 +- static/css/bootstrap-responsive.min.css | 12 + static/css/bootstrap.min.css | 3657 +++++- static/css/dashboard.css | 357 + static/css/font-awesome.css | 1479 +++ static/css/fonts.css | 24 + static/css/odometer.css | 94 + static/css/style.css | 1291 +++ ...UJH_bn48VBG8sNSnhCUOGz7vYGh680lGh-uXM.woff | Bin 0 -> 21704 bytes ...SUJH_bn48VBG8sNSonF5uFdDttMLvmWuJdhhgs.ttf | Bin 0 -> 37568 bytes ...ptR36kaC0GEAetxn5HxGBcBvicCpTp6spHfNo.woff | Bin 0 -> 20360 bytes ...uBrn4kERxqtaUH3T8E0i7KZn-EPnyo3HZu7kw.woff | Bin 0 -> 21080 bytes ...OuBrn4kERxqtaUH3aCWcynf_cDxXwCLxiixG1c.ttf | Bin 0 -> 36492 bytes static/fonts/fontawesome-webfont.eot | Bin 0 -> 37405 bytes static/fonts/fontawesome-webfont.svg | 399 + static/fonts/fontawesome-webfont.ttf | Bin 0 -> 79076 bytes static/fonts/fontawesome-webfont.woff | Bin 0 -> 43572 bytes ...38I15wypJXxuGMBobN6UDyHWBl620a-IRfuBk.woff | Bin 0 -> 20224 bytes ...h38I15wypJXxuGMBp0EAVxt0G0biEntp43Qt6E.ttf | Bin 0 -> 34416 bytes static/js/base.js | 57 + static/js/bootstrap.js | 1729 +++ static/js/dashboard.js | 272 + static/js/infrastructure.js | 317 +- static/js/jquery.dataTables.min.js | 155 + static/js/jquery.js | 9789 +++++++++++++++++ static/js/jquery.old.js | 4 + static/js/odometer.js | 2 + templates/.main.html.swp | Bin 0 -> 24576 bytes templates/base_auth.html | 19 +- templates/disk.html | 19 + templates/general.html | 4 + templates/login.html | 3 +- templates/logout.html | 9 + templates/main.html | 324 + templates/main.html.bk | 269 + test.py | 10 + usage/__init__.py | 0 usage/views.py | 208 + 42 files changed, 20731 insertions(+), 70 deletions(-) create mode 100644 static/css/bootstrap-responsive.min.css mode change 100755 => 100644 static/css/bootstrap.min.css create mode 100644 static/css/dashboard.css create mode 100644 static/css/font-awesome.css create mode 100644 static/css/fonts.css create mode 100644 static/css/odometer.css create mode 100644 static/css/style.css create mode 100644 static/fonts/MTP_ySUJH_bn48VBG8sNSnhCUOGz7vYGh680lGh-uXM.woff create mode 100644 static/fonts/MTP_ySUJH_bn48VBG8sNSonF5uFdDttMLvmWuJdhhgs.ttf create mode 100644 static/fonts/PRmiXeptR36kaC0GEAetxn5HxGBcBvicCpTp6spHfNo.woff create mode 100644 static/fonts/cJZKeOuBrn4kERxqtaUH3T8E0i7KZn-EPnyo3HZu7kw.woff create mode 100644 static/fonts/cJZKeOuBrn4kERxqtaUH3aCWcynf_cDxXwCLxiixG1c.ttf create mode 100644 static/fonts/fontawesome-webfont.eot create mode 100644 static/fonts/fontawesome-webfont.svg create mode 100644 static/fonts/fontawesome-webfont.ttf create mode 100644 static/fonts/fontawesome-webfont.woff create mode 100644 static/fonts/xjAJXh38I15wypJXxuGMBobN6UDyHWBl620a-IRfuBk.woff create mode 100644 static/fonts/xjAJXh38I15wypJXxuGMBp0EAVxt0G0biEntp43Qt6E.ttf create mode 100644 static/js/base.js create mode 100644 static/js/bootstrap.js create mode 100644 static/js/dashboard.js create mode 100644 static/js/jquery.dataTables.min.js create mode 100644 static/js/jquery.js create mode 100644 static/js/jquery.old.js create mode 100644 static/js/odometer.js create mode 100644 templates/.main.html.swp create mode 100644 templates/disk.html create mode 100644 templates/general.html create mode 100644 templates/logout.html create mode 100644 templates/main.html create mode 100644 templates/main.html.bk create mode 100644 test.py create mode 100644 usage/__init__.py create mode 100755 usage/views.py diff --git a/db.sqlite3 b/db.sqlite3 index 4a12dbf34f32ce71b0f59a13240e58ebe9c299b4..108434b73c5e2941d741740bcec8e1fe1de57a57 100644 GIT binary patch delta 879 zcmb`FPiqrF7{+%q8)8I?dJx1?B2;e;Gqdw&cOiv0qx}h<3w5l*i`2+ccv+QF1I)a;l_o z@Ki1AcX(qrm%|W|4Tv`omL%!->@#Lt?H~;3*m|5!ny+76oLIcp)^xA$+qfy}m3l3( z=pd*}Hg`@m^}-Y-nhw>mrJQwlsqS_lVM254s;Gu--}6M&vJXki2|as~+xa{~+AI%9 zvl=9b)0c^)8Bc;DHoy_u2)7_9?SUPduByR;-NsKk^W zxm>jE(1#2OKIm$^cGwBSPPvSRWoGjpzcG91a(c#f@g>fNI;Z^)w&_pLl=T$_982IE z_yB%^V^EJRJqM%BzngOjJ=V3DetHe$hQ*coK8@{`uNwt{_PL E0pUyhT>t<8 delta 212 zcmZqpz}WDCae_3X@J5+A=0Zl63I>K&MwV8lCVH0UW`+hPn@^cr39vCTi!m^ZZ5HI= zVb*9&XJqwlighfrurM<;DKN<_%eTnQs7Oyq%+4@3HZn^y%uCO;C^eXD=e=1HYMQB@ zfvJI!sU;T!0|O)TZ3gDsK(j6~tEw>jG7>U}aZ><`3eW`)8JHgebzNtcmt%HhG%_$W Q(KRsAH8g^`7-k0}0GMAkyZ`_I diff --git a/main/views.py b/main/views.py index c21ee72..192d3c7 100755 --- a/main/views.py +++ b/main/views.py @@ -1,28 +1,174 @@ +import socket, platform, os + from datetime import timedelta +from django.core import serializers from django.shortcuts import render_to_response from django.http import HttpResponseRedirect, HttpResponse from django.template import RequestContext from django.utils.translation import ugettext_lazy as _ from django.utils import simplejson +from pydash.settings import TIME_JS_REFRESH + +time_refresh = TIME_JS_REFRESH -def getuptime(): +def index(request): """ - Get uptime + + Index page. + """ if not request.user.is_authenticated(): return HttpResponseRedirect('/login') + else: + return HttpResponseRedirect('/main') + + +def chunks(get, n): + #for i in xrange(0, len(get), n): + #yield l[i:i+n] + return [get[i:i+n] for i in range(0, len(get), n)] + +def get_uptime(): + """ + Get uptime + """ + #if not request.user.is_authenticated(): + # return HttpResponseRedirect('/login') + try: with open('/proc/uptime', 'r') as f: uptime_seconds = float(f.readline().split()[0]) uptime_time = str(timedelta(seconds = uptime_seconds)) - data = simplejson.dumps(uptime_time) + #return uptime_time + data = uptime_time.split('.', 1)[0] + + except Exception,err: + data = str(err) + + #response = HttpResponse() + #response['Content-Type'] = "text/javascript" + #response.write(data) + return data + #print data + #return render_to_response('main.html', {'getuptime': data, 'time_refresh': time_refresh}, context_instance=RequestContext(request)) + +def get_hostname(): + """ + Get the hostname + """ + #if not request.user.is_authenticated(): + # return HttpResponseRedirect('/login') + + try: + data = socket.gethostname() + + except Exception,err: + data = str(err) + + #response = HttpResponse() + #response['Content-Type'] = "text/javascript" + #response.write(data) + return data + #return render_to_response('main.html', {'gethostname': data}, context_instance=RequestContext(request)) + +def get_ipaddress(): + """ + Get the IP Address + """ + try: + pipe = os.popen("/sbin/ifconfig |" + "grep -B1 'inet addr' |" + "awk '{ if ( $1 == \"inet\" ) { print $2 } else if ( $2 == \"Link\" ) { printf \"%s:\",$1 } }' |" + "awk -F: '{ print $1, $3 }'") + data = pipe.read().strip().split() + pipe.close() + + + except Exception,err: + data = str(err) + + return data + +def get_platform(): + """ + Get the OS name + """ + try: + data = " ".join(platform.linux_distribution()) + # + " " + platform.system() + " " + platform.release() + + except Exception,err: + data = str(err) + + return data + +def get_disk(): + """ + Get disk usage + """ + try: + #data = commands.getoutput("df -Ph | column -t") + pipe = os.popen("df -Ph | " + "grep -v Filesystem | " + "awk '{print $1, $2, $3, $4, $5, $6}'") + data = pipe.read().strip().split() + pipe.close() + + #x=len(data) + + #data1 = list(range(x)) + + #data = dict(zip(data1,data)) + #data = data1 + + #data = chunks(data, 1) + #data = simplejson.dumps(data) + #data = serializers.serialize('json', data) + + except Exception,err: + data = str(err) + #eturn HttpResponse(data, mimetype="application/json") + return data + +def get_mem(): + try: + pipe = os.popen("free -tmo | " + "grep 'Mem' | " + "awk '{print $2,$4}'") + data = pipe.read().strip().split() + pipe.close() + + allmem = int(data[0]) + freemem = int(data[1]) + + percent = (100 - ((freemem * 100) / allmem)) + usage = (allmem - freemem) + + mem_usage = {'usage': usage, 'percent': percent} + + data = mem_usage + except Exception,err: - data = simplejson.dumps(str(err)) + data = str(err) + + return data - response = HttpResponse() - response['Content-Type'] = "text/javascript" - response.write(data) - return response +def get_load(): + try: + data = os.getloadavg()[0] + except Exception, err: + data = str(err) + + return data +def getall(request): + if not request.user.is_authenticated(): + return HttpResponseRedirect('/login') + + #getuptime = get_uptime() + #global getuptime + + #gethostname = get_hostname(request) + + return render_to_response('main.html', {'getuptime': get_uptime(), + 'gethostname': get_hostname(), + 'getplatform': get_platform(), + 'getdisk': get_disk(), + 'getip': get_ipaddress(), + 'time_refresh': time_refresh + }, context_instance=RequestContext(request)) \ No newline at end of file diff --git a/pydash/settings.py b/pydash/settings.py index f63465c..ba0d873 100644 --- a/pydash/settings.py +++ b/pydash/settings.py @@ -30,7 +30,7 @@ ADMINS = ( MANAGERS = ADMINS -TIMS_JS_REFRESH = 2000 +TIME_JS_REFRESH = 30000 ALLOWED_HOSTS = ['*'] diff --git a/pydash/urls.py b/pydash/urls.py index a0432ea..cd5f510 100644 --- a/pydash/urls.py +++ b/pydash/urls.py @@ -10,10 +10,12 @@ urlpatterns = patterns('', # url(r'^blog/', include('blog.urls')), #url(r'^admin/', include(admin.site.urls)), - url(r'^$', 'home.views.index', name='index'), + url(r'^$', 'main.views.index', name='index'), url(r'^login/$', 'django.contrib.auth.views.login', {'template_name': 'login.html'}, name='login'), url(r'^logout/$', 'django.contrib.auth.views.logout', {'template_name': 'logout.html'}, name='logout'), - url(r'^home/$', 'home.views.devices_list', name='devices_list'), + url(r'^main/$', 'main.views.getall', name='main'), + url(r'^info/memory/$', 'usage.views.memusage', name='memusage'), + url(r'^info/loadaverage/$', 'usage.views.loadaverage', name='loadaverage') ) urlpatterns += patterns('', diff --git a/static/css/base.css b/static/css/base.css index 13bd067..23f17fc 100644 --- a/static/css/base.css +++ b/static/css/base.css @@ -124,4 +124,130 @@ body { padding-left: 15px; padding-right: 15px; } -} \ No newline at end of file +} +.subnavbar { + margin-bottom: 2.5em; + } + +.subnavbar-inner { + height: 60px; + background: #fff; + border-bottom: 1px solid #d6d6d6; +} + +.subnavbar .container > ul { + display: inline-block; + + height: 80px; + padding: 0; + margin: 0; + +} + +.subnavbar .container > ul > li { + float: left; + + min-width: 90px; + height: 60px; + padding: 0; + margin: 0; + + text-align: center; + list-style: none; + + border-left: 1px solid #d9d9d9; + + +} + +.subnavbar .container > ul > li > a { + display: block; + + height: 100%; + padding: 0 15px; + + font-size: 12px; + font-weight: bold; + color: #b2afaa; +} + +.subnavbar .container > ul > li > a:hover { + color: #888; + text-decoration: none; +} + +.subnavbar .container > ul > li > a > i { + display: inline-block; + + width: 24px; + height: 24px; + margin-top: 11px; + margin-bottom: -3px; + font-size: 20px; +} + +.subnavbar .container > ul > li > a > span { + display: block; + +} + + +.subnavbar .container > ul > li:hover > a { + + border-bottom:3px solid #ff7f74; + color: #383838; +} + + +.subnavbar .dropdown .dropdown-menu a { + font-size: 12px; +} + + +.subnavbar .dropdown .dropdown-menu { + text-align: left; + + -webkit-border-top-left-radius: 0; + -webkit-border-top-right-radius: 0; + -moz-border-radius-topleft: 0; + -moz-border-radius-topright: 0; + border-top-left-radius: 0; + border-top-right-radius: 0; +} + + + +.subnavbar .dropdown-menu::before { + content: ''; + display: inline-block; + border-left: 7px solid transparent; + border-right: 7px solid transparent; + border-bottom: 7px solid #CCC; + border-bottom-color: rgba(0, 0, 0, 0.2); + position: absolute; + top: -7px; + left: 9px; +} + +.subnavbar .dropdown-menu::after { + content: ''; + display: inline-block; + border-left: 6px solid transparent; + border-right: 6px solid transparent; + border-bottom: 6px solid white; + position: absolute; + top: -6px; + left: 10px; +} + + +.subnavbar .caret { + margin-top: 4px; + + border-top-color: white; + border-bottom-color: white; +} + +.subnavbar .dropdown.open .caret { + display: none; +} diff --git a/static/css/bootstrap-responsive.min.css b/static/css/bootstrap-responsive.min.css new file mode 100644 index 0000000..ba94143 --- /dev/null +++ b/static/css/bootstrap-responsive.min.css @@ -0,0 +1,12 @@ +.clearfix{*zoom:1;}.clearfix:before,.clearfix:after{display:table;content:"";} +.clearfix:after{clear:both;} +.hide-text{overflow:hidden;text-indent:100%;white-space:nowrap;} +.input-block-level{display:block;width:100%;min-height:28px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;} +.hidden{display:none;visibility:hidden;} +.visible-phone{display:none;} +.visible-tablet{display:none;} +.visible-desktop{display:block;} +.hidden-phone{display:block;} +.hidden-tablet{display:block;} +.hidden-desktop{display:none;} +@media (max-width:767px){.visible-phone{display:block;} .hidden-phone{display:none;} .hidden-desktop{display:block;} .visible-desktop{display:none;}}@media (min-width:768px) and (max-width:979px){.visible-tablet{display:block;} .hidden-tablet{display:none;} .hidden-desktop{display:block;} .visible-desktop{display:none;}}@media (max-width:480px){.nav-collapse{-webkit-transform:translate3d(0, 0, 0);} .page-header h1 small{display:block;line-height:18px;} input[type="checkbox"],input[type="radio"]{border:1px solid #ccc;} .form-horizontal .control-group>label{float:none;width:auto;padding-top:0;text-align:left;} .form-horizontal .controls{margin-left:0;} .form-horizontal .control-list{padding-top:0;} .form-horizontal .form-actions{padding-left:10px;padding-right:10px;} .modal{position:absolute;top:10px;left:10px;right:10px;width:auto;margin:0;}.modal.fade.in{top:auto;} .modal-header .close{padding:10px;margin:-10px;} .carousel-caption{position:static;}}@media (max-width:767px){body{padding-left:20px;padding-right:20px;} .navbar-fixed-top{margin-left:-20px;margin-right:-20px;} .container{width:auto;} .row-fluid{width:100%;} .row{margin-left:0;} .row>[class*="span"],.row-fluid>[class*="span"]{float:none;display:block;width:auto;margin:0;} .thumbnails [class*="span"]{width:auto;} input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input{display:block;width:100%;min-height:28px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;} .input-prepend input[class*="span"],.input-append input[class*="span"]{width:auto;}}@media (min-width:768px) and (max-width:979px){.row{margin-left:-20px;*zoom:1;}.row:before,.row:after{display:table;content:"";} .row:after{clear:both;} [class*="span"]{float:left;margin-left:20px;} .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:724px;} .span12{width:724px;} .span11{width:662px;} .span10{width:600px;} .span9{width:538px;} .span8{width:476px;} .span7{width:414px;} .span6{width:352px;} .span5{width:290px;} .span4{width:228px;} .span3{width:166px;} .span2{width:104px;} .span1{width:42px;} .offset12{margin-left:764px;} .offset11{margin-left:702px;} .offset10{margin-left:640px;} .offset9{margin-left:578px;} .offset8{margin-left:516px;} .offset7{margin-left:454px;} .offset6{margin-left:392px;} .offset5{margin-left:330px;} .offset4{margin-left:268px;} .offset3{margin-left:206px;} .offset2{margin-left:144px;} .offset1{margin-left:82px;} .row-fluid{width:100%;*zoom:1;}.row-fluid:before,.row-fluid:after{display:table;content:"";} .row-fluid:after{clear:both;} .row-fluid>[class*="span"]{float:left;margin-left:2.762430939%;} .row-fluid>[class*="span"]:first-child{margin-left:0;} .row-fluid > .span12{width:99.999999993%;} .row-fluid > .span11{width:91.436464082%;} .row-fluid > .span10{width:82.87292817100001%;} .row-fluid > .span9{width:74.30939226%;} .row-fluid > .span8{width:65.74585634900001%;} .row-fluid > .span7{width:57.182320438000005%;} .row-fluid > .span6{width:48.618784527%;} .row-fluid > .span5{width:40.055248616%;} .row-fluid > .span4{width:31.491712705%;} .row-fluid > .span3{width:22.928176794%;} .row-fluid > .span2{width:14.364640883%;} .row-fluid > .span1{width:5.801104972%;} input,textarea,.uneditable-input{margin-left:0;} input.span12, textarea.span12, .uneditable-input.span12{width:714px;} input.span11, textarea.span11, .uneditable-input.span11{width:652px;} input.span10, textarea.span10, .uneditable-input.span10{width:590px;} input.span9, textarea.span9, .uneditable-input.span9{width:528px;} input.span8, textarea.span8, .uneditable-input.span8{width:466px;} input.span7, textarea.span7, .uneditable-input.span7{width:404px;} input.span6, textarea.span6, .uneditable-input.span6{width:342px;} input.span5, textarea.span5, .uneditable-input.span5{width:280px;} input.span4, textarea.span4, .uneditable-input.span4{width:218px;} input.span3, textarea.span3, .uneditable-input.span3{width:156px;} input.span2, textarea.span2, .uneditable-input.span2{width:94px;} input.span1, textarea.span1, .uneditable-input.span1{width:32px;}}@media (max-width:979px){body{padding-top:0;} .navbar-fixed-top{position:static;margin-bottom:18px;} .navbar-fixed-top .navbar-inner{padding:5px;} .navbar .container{width:auto;padding:0;} .navbar .brand{padding-left:10px;padding-right:10px;margin:0 0 0 -5px;} .navbar .nav-collapse{clear:left;} .navbar .nav{float:none;margin:0 0 9px;} .navbar .nav>li{float:none;} .navbar .nav>li>a{margin-bottom:2px;} .navbar .nav>.divider-vertical{display:none;} .navbar .nav .nav-header{color:#999999;text-shadow:none;} .navbar .nav>li>a,.navbar .dropdown-menu a{padding:6px 15px;font-weight:bold;color:#999999;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;} .navbar .dropdown-menu li+li a{margin-bottom:2px;} .navbar .nav>li>a:hover,.navbar .dropdown-menu a:hover{background-color:#222222;} .navbar .dropdown-menu{position:static;top:auto;left:auto;float:none;display:block;max-width:none;margin:0 15px;padding:0;background-color:transparent;border:none;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;} .navbar .dropdown-menu:before,.navbar .dropdown-menu:after{display:none;} .navbar .dropdown-menu .divider{display:none;} .navbar-form,.navbar-search{float:none;padding:9px 15px;margin:9px 0;border-top:1px solid #222222;border-bottom:1px solid #222222;-webkit-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.1),0 1px 0 rgba(255, 255, 255, 0.1);-moz-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.1),0 1px 0 rgba(255, 255, 255, 0.1);box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.1),0 1px 0 rgba(255, 255, 255, 0.1);} .navbar .nav.pull-right{float:none;margin-left:0;} .navbar-static .navbar-inner{padding-left:10px;padding-right:10px;} .btn-navbar{display:block;} .nav-collapse{overflow:hidden;height:0;}}@media (min-width:980px){.nav-collapse.collapse{height:auto !important;overflow:visible !important;}}@media (min-width:1200px){.row{margin-left:-30px;*zoom:1;}.row:before,.row:after{display:table;content:"";} .row:after{clear:both;} [class*="span"]{float:left;margin-left:30px;} .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:1170px;} .span12{width:1170px;} .span11{width:1070px;} .span10{width:970px;} .span9{width:870px;} .span8{width:770px;} .span7{width:670px;} .span6{width:570px;} .span5{width:470px;} .span4{width:370px;} .span3{width:270px;} .span2{width:170px;} .span1{width:70px;} .offset12{margin-left:1230px;} .offset11{margin-left:1130px;} .offset10{margin-left:1030px;} .offset9{margin-left:930px;} .offset8{margin-left:830px;} .offset7{margin-left:730px;} .offset6{margin-left:630px;} .offset5{margin-left:530px;} .offset4{margin-left:430px;} .offset3{margin-left:330px;} .offset2{margin-left:230px;} .offset1{margin-left:130px;} .row-fluid{width:100%;*zoom:1;}.row-fluid:before,.row-fluid:after{display:table;content:"";} .row-fluid:after{clear:both;} .row-fluid>[class*="span"]{float:left;margin-left:2.564102564%;} .row-fluid>[class*="span"]:first-child{margin-left:0;} .row-fluid > .span12{width:100%;} .row-fluid > .span11{width:91.45299145300001%;} .row-fluid > .span10{width:82.905982906%;} .row-fluid > .span9{width:74.358974359%;} .row-fluid > .span8{width:65.81196581200001%;} .row-fluid > .span7{width:57.264957265%;} .row-fluid > .span6{width:48.717948718%;} .row-fluid > .span5{width:40.170940171000005%;} .row-fluid > .span4{width:31.623931624%;} .row-fluid > .span3{width:23.076923077%;} .row-fluid > .span2{width:14.529914530000001%;} .row-fluid > .span1{width:5.982905983%;} input,textarea,.uneditable-input{margin-left:0;} input.span12, textarea.span12, .uneditable-input.span12{width:1160px;} input.span11, textarea.span11, .uneditable-input.span11{width:1060px;} input.span10, textarea.span10, .uneditable-input.span10{width:960px;} input.span9, textarea.span9, .uneditable-input.span9{width:860px;} input.span8, textarea.span8, .uneditable-input.span8{width:760px;} input.span7, textarea.span7, .uneditable-input.span7{width:660px;} input.span6, textarea.span6, .uneditable-input.span6{width:560px;} input.span5, textarea.span5, .uneditable-input.span5{width:460px;} input.span4, textarea.span4, .uneditable-input.span4{width:360px;} input.span3, textarea.span3, .uneditable-input.span3{width:260px;} input.span2, textarea.span2, .uneditable-input.span2{width:160px;} input.span1, textarea.span1, .uneditable-input.span1{width:60px;} .thumbnails{margin-left:-30px;} .thumbnails>li{margin-left:30px;}} \ No newline at end of file diff --git a/static/css/bootstrap.min.css b/static/css/bootstrap.min.css old mode 100755 new mode 100644 index a553c4f..0a7c951 --- a/static/css/bootstrap.min.css +++ b/static/css/bootstrap.min.css @@ -1,9 +1,3648 @@ -/*! - * Bootstrap v3.0.0 - * - * Copyright 2013 Twitter, Inc - * Licensed under the Apache License v2.0 - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Designed and built with all the love in the world by @mdo and @fat. - *//*! normalize.css v2.1.0 | MIT License | git.io/normalize */article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,video{display:inline-block}audio:not([controls]){display:none;height:0}[hidden]{display:none}html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}a:focus{outline:thin dotted}a:active,a:hover{outline:0}h1{margin:.67em 0;font-size:2em}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}hr{height:0;-moz-box-sizing:content-box;box-sizing:content-box}mark{color:#000;background:#ff0}code,kbd,pre,samp{font-family:monospace,serif;font-size:1em}pre{white-space:pre-wrap}q{quotes:"\201C" "\201D" "\2018" "\2019"}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:0}fieldset{padding:.35em .625em .75em;margin:0 2px;border:1px solid #c0c0c0}legend{padding:0;border:0}button,input,select,textarea{margin:0;font-family:inherit;font-size:100%}button,input{line-height:normal}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{cursor:pointer;-webkit-appearance:button}button[disabled],html input[disabled]{cursor:default}input[type="checkbox"],input[type="radio"]{padding:0;box-sizing:border-box}input[type="search"]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}textarea{overflow:auto;vertical-align:top}table{border-collapse:collapse;border-spacing:0}@media print{*{color:#000!important;text-shadow:none!important;background:transparent!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100%!important}@page{margin:2cm .5cm}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.table td,.table th{background-color:#fff!important}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table-bordered th,.table-bordered td{border:1px solid #ddd!important}}*,*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:62.5%;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.428571429;color:#333;background-color:#fff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}button,input,select[multiple],textarea{background-image:none}a{color:#428bca;text-decoration:none}a:hover,a:focus{color:#2a6496;text-decoration:underline}a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}img{vertical-align:middle}.img-responsive{display:block;height:auto;max-width:100%}.img-rounded{border-radius:6px}.img-thumbnail{display:inline-block;height:auto;max-width:100%;padding:4px;line-height:1.428571429;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);border:0}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16.099999999999998px;font-weight:200;line-height:1.4}@media(min-width:768px){.lead{font-size:21px}}small{font-size:85%}cite{font-style:normal}.text-muted{color:#999}.text-primary{color:#428bca}.text-warning{color:#c09853}.text-danger{color:#b94a48}.text-success{color:#468847}.text-info{color:#3a87ad}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:500;line-height:1.1}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small{font-weight:normal;line-height:1;color:#999}h1,h2,h3{margin-top:20px;margin-bottom:10px}h4,h5,h6{margin-top:10px;margin-bottom:10px}h1,.h1{font-size:36px}h2,.h2{font-size:30px}h3,.h3{font-size:24px}h4,.h4{font-size:18px}h5,.h5{font-size:14px}h6,.h6{font-size:12px}h1 small,.h1 small{font-size:24px}h2 small,.h2 small{font-size:18px}h3 small,.h3 small,h4 small,.h4 small{font-size:14px}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ul,ol{margin-top:0;margin-bottom:10px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}dl{margin-bottom:20px}dt,dd{line-height:1.428571429}dt{font-weight:bold}dd{margin-left:0}@media(min-width:768px){.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}.dl-horizontal dd:before,.dl-horizontal dd:after{display:table;content:" "}.dl-horizontal dd:after{clear:both}.dl-horizontal dd:before,.dl-horizontal dd:after{display:table;content:" "}.dl-horizontal dd:after{clear:both}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999}abbr.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;border-left:5px solid #eee}blockquote p{font-size:17.5px;font-weight:300;line-height:1.25}blockquote p:last-child{margin-bottom:0}blockquote small{display:block;line-height:1.428571429;color:#999}blockquote small:before{content:'\2014 \00A0'}blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0}blockquote.pull-right p,blockquote.pull-right small{text-align:right}blockquote.pull-right small:before{content:''}blockquote.pull-right small:after{content:'\00A0 \2014'}q:before,q:after,blockquote:before,blockquote:after{content:""}address{display:block;margin-bottom:20px;font-style:normal;line-height:1.428571429}code,pre{font-family:Monaco,Menlo,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;white-space:nowrap;background-color:#f9f2f4;border-radius:4px}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.428571429;color:#333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre.prettyprint{margin-bottom:20px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.container:before,.container:after{display:table;content:" "}.container:after{clear:both}.container:before,.container:after{display:table;content:" "}.container:after{clear:both}.row{margin-right:-15px;margin-left:-15px}.row:before,.row:after{display:table;content:" "}.row:after{clear:both}.row:before,.row:after{display:table;content:" "}.row:after{clear:both}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12,.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12,.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12,.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11{float:left}.col-xs-1{width:8.333333333333332%}.col-xs-2{width:16.666666666666664%}.col-xs-3{width:25%}.col-xs-4{width:33.33333333333333%}.col-xs-5{width:41.66666666666667%}.col-xs-6{width:50%}.col-xs-7{width:58.333333333333336%}.col-xs-8{width:66.66666666666666%}.col-xs-9{width:75%}.col-xs-10{width:83.33333333333334%}.col-xs-11{width:91.66666666666666%}.col-xs-12{width:100%}@media(min-width:768px){.container{max-width:750px}.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11{float:left}.col-sm-1{width:8.333333333333332%}.col-sm-2{width:16.666666666666664%}.col-sm-3{width:25%}.col-sm-4{width:33.33333333333333%}.col-sm-5{width:41.66666666666667%}.col-sm-6{width:50%}.col-sm-7{width:58.333333333333336%}.col-sm-8{width:66.66666666666666%}.col-sm-9{width:75%}.col-sm-10{width:83.33333333333334%}.col-sm-11{width:91.66666666666666%}.col-sm-12{width:100%}.col-sm-push-1{left:8.333333333333332%}.col-sm-push-2{left:16.666666666666664%}.col-sm-push-3{left:25%}.col-sm-push-4{left:33.33333333333333%}.col-sm-push-5{left:41.66666666666667%}.col-sm-push-6{left:50%}.col-sm-push-7{left:58.333333333333336%}.col-sm-push-8{left:66.66666666666666%}.col-sm-push-9{left:75%}.col-sm-push-10{left:83.33333333333334%}.col-sm-push-11{left:91.66666666666666%}.col-sm-pull-1{right:8.333333333333332%}.col-sm-pull-2{right:16.666666666666664%}.col-sm-pull-3{right:25%}.col-sm-pull-4{right:33.33333333333333%}.col-sm-pull-5{right:41.66666666666667%}.col-sm-pull-6{right:50%}.col-sm-pull-7{right:58.333333333333336%}.col-sm-pull-8{right:66.66666666666666%}.col-sm-pull-9{right:75%}.col-sm-pull-10{right:83.33333333333334%}.col-sm-pull-11{right:91.66666666666666%}.col-sm-offset-1{margin-left:8.333333333333332%}.col-sm-offset-2{margin-left:16.666666666666664%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-4{margin-left:33.33333333333333%}.col-sm-offset-5{margin-left:41.66666666666667%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-7{margin-left:58.333333333333336%}.col-sm-offset-8{margin-left:66.66666666666666%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-10{margin-left:83.33333333333334%}.col-sm-offset-11{margin-left:91.66666666666666%}}@media(min-width:992px){.container{max-width:970px}.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11{float:left}.col-md-1{width:8.333333333333332%}.col-md-2{width:16.666666666666664%}.col-md-3{width:25%}.col-md-4{width:33.33333333333333%}.col-md-5{width:41.66666666666667%}.col-md-6{width:50%}.col-md-7{width:58.333333333333336%}.col-md-8{width:66.66666666666666%}.col-md-9{width:75%}.col-md-10{width:83.33333333333334%}.col-md-11{width:91.66666666666666%}.col-md-12{width:100%}.col-md-push-0{left:auto}.col-md-push-1{left:8.333333333333332%}.col-md-push-2{left:16.666666666666664%}.col-md-push-3{left:25%}.col-md-push-4{left:33.33333333333333%}.col-md-push-5{left:41.66666666666667%}.col-md-push-6{left:50%}.col-md-push-7{left:58.333333333333336%}.col-md-push-8{left:66.66666666666666%}.col-md-push-9{left:75%}.col-md-push-10{left:83.33333333333334%}.col-md-push-11{left:91.66666666666666%}.col-md-pull-0{right:auto}.col-md-pull-1{right:8.333333333333332%}.col-md-pull-2{right:16.666666666666664%}.col-md-pull-3{right:25%}.col-md-pull-4{right:33.33333333333333%}.col-md-pull-5{right:41.66666666666667%}.col-md-pull-6{right:50%}.col-md-pull-7{right:58.333333333333336%}.col-md-pull-8{right:66.66666666666666%}.col-md-pull-9{right:75%}.col-md-pull-10{right:83.33333333333334%}.col-md-pull-11{right:91.66666666666666%}.col-md-offset-0{margin-left:0}.col-md-offset-1{margin-left:8.333333333333332%}.col-md-offset-2{margin-left:16.666666666666664%}.col-md-offset-3{margin-left:25%}.col-md-offset-4{margin-left:33.33333333333333%}.col-md-offset-5{margin-left:41.66666666666667%}.col-md-offset-6{margin-left:50%}.col-md-offset-7{margin-left:58.333333333333336%}.col-md-offset-8{margin-left:66.66666666666666%}.col-md-offset-9{margin-left:75%}.col-md-offset-10{margin-left:83.33333333333334%}.col-md-offset-11{margin-left:91.66666666666666%}}@media(min-width:1200px){.container{max-width:1170px}.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11{float:left}.col-lg-1{width:8.333333333333332%}.col-lg-2{width:16.666666666666664%}.col-lg-3{width:25%}.col-lg-4{width:33.33333333333333%}.col-lg-5{width:41.66666666666667%}.col-lg-6{width:50%}.col-lg-7{width:58.333333333333336%}.col-lg-8{width:66.66666666666666%}.col-lg-9{width:75%}.col-lg-10{width:83.33333333333334%}.col-lg-11{width:91.66666666666666%}.col-lg-12{width:100%}.col-lg-push-0{left:auto}.col-lg-push-1{left:8.333333333333332%}.col-lg-push-2{left:16.666666666666664%}.col-lg-push-3{left:25%}.col-lg-push-4{left:33.33333333333333%}.col-lg-push-5{left:41.66666666666667%}.col-lg-push-6{left:50%}.col-lg-push-7{left:58.333333333333336%}.col-lg-push-8{left:66.66666666666666%}.col-lg-push-9{left:75%}.col-lg-push-10{left:83.33333333333334%}.col-lg-push-11{left:91.66666666666666%}.col-lg-pull-0{right:auto}.col-lg-pull-1{right:8.333333333333332%}.col-lg-pull-2{right:16.666666666666664%}.col-lg-pull-3{right:25%}.col-lg-pull-4{right:33.33333333333333%}.col-lg-pull-5{right:41.66666666666667%}.col-lg-pull-6{right:50%}.col-lg-pull-7{right:58.333333333333336%}.col-lg-pull-8{right:66.66666666666666%}.col-lg-pull-9{right:75%}.col-lg-pull-10{right:83.33333333333334%}.col-lg-pull-11{right:91.66666666666666%}.col-lg-offset-0{margin-left:0}.col-lg-offset-1{margin-left:8.333333333333332%}.col-lg-offset-2{margin-left:16.666666666666664%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-4{margin-left:33.33333333333333%}.col-lg-offset-5{margin-left:41.66666666666667%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-7{margin-left:58.333333333333336%}.col-lg-offset-8{margin-left:66.66666666666666%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-10{margin-left:83.33333333333334%}.col-lg-offset-11{margin-left:91.66666666666666%}}table{max-width:100%;background-color:transparent}th{text-align:left}.table{width:100%;margin-bottom:20px}.table thead>tr>th,.table tbody>tr>th,.table tfoot>tr>th,.table thead>tr>td,.table tbody>tr>td,.table tfoot>tr>td{padding:8px;line-height:1.428571429;vertical-align:top;border-top:1px solid #ddd}.table thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table caption+thead tr:first-child th,.table colgroup+thead tr:first-child th,.table thead:first-child tr:first-child th,.table caption+thead tr:first-child td,.table colgroup+thead tr:first-child td,.table thead:first-child tr:first-child td{border-top:0}.table tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed thead>tr>th,.table-condensed tbody>tr>th,.table-condensed tfoot>tr>th,.table-condensed thead>tr>td,.table-condensed tbody>tr>td,.table-condensed tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-child(odd)>td,.table-striped>tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.table-hover>tbody>tr:hover>td,.table-hover>tbody>tr:hover>th{background-color:#f5f5f5}table col[class*="col-"]{display:table-column;float:none}table td[class*="col-"],table th[class*="col-"]{display:table-cell;float:none}.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#f5f5f5}.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#dff0d8;border-color:#d6e9c6}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td{background-color:#d0e9c6;border-color:#c9e2b3}.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#f2dede;border-color:#eed3d7}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td{background-color:#ebcccc;border-color:#e6c1c7}.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#fcf8e3;border-color:#fbeed5}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td{background-color:#faf2cc;border-color:#f8e5be}@media(max-width:768px){.table-responsive{width:100%;margin-bottom:15px;overflow-x:scroll;overflow-y:hidden;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0;background-color:#fff}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>thead>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>thead>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;margin-bottom:5px;font-weight:bold}input[type="search"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type="file"]{display:block}select[multiple],select[size]{height:auto}select optgroup{font-family:inherit;font-size:inherit;font-style:inherit}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}input[type="number"]::-webkit-outer-spin-button,input[type="number"]::-webkit-inner-spin-button{height:auto}.form-control:-moz-placeholder{color:#999}.form-control::-moz-placeholder{color:#999}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.428571429;color:#555;vertical-align:middle;background-color:#fff;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6)}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eee}textarea.form-control{height:auto}.form-group{margin-bottom:15px}.radio,.checkbox{display:block;min-height:20px;padding-left:20px;margin-top:10px;margin-bottom:10px;vertical-align:middle}.radio label,.checkbox label{display:inline;margin-bottom:0;font-weight:normal;cursor:pointer}.radio input[type="radio"],.radio-inline input[type="radio"],.checkbox input[type="checkbox"],.checkbox-inline input[type="checkbox"]{float:left;margin-left:-20px}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{display:inline-block;padding-left:20px;margin-bottom:0;font-weight:normal;vertical-align:middle;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type="radio"][disabled],input[type="checkbox"][disabled],.radio[disabled],.radio-inline[disabled],.checkbox[disabled],.checkbox-inline[disabled],fieldset[disabled] input[type="radio"],fieldset[disabled] input[type="checkbox"],fieldset[disabled] .radio,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}textarea.input-sm{height:auto}.input-lg{height:45px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-lg{height:45px;line-height:45px}textarea.input-lg{height:auto}.has-warning .help-block,.has-warning .control-label{color:#c09853}.has-warning .form-control{border-color:#c09853;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-warning .form-control:focus{border-color:#a47e3c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e}.has-warning .input-group-addon{color:#c09853;background-color:#fcf8e3;border-color:#c09853}.has-error .help-block,.has-error .control-label{color:#b94a48}.has-error .form-control{border-color:#b94a48;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-error .form-control:focus{border-color:#953b39;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392}.has-error .input-group-addon{color:#b94a48;background-color:#f2dede;border-color:#b94a48}.has-success .help-block,.has-success .control-label{color:#468847}.has-success .form-control{border-color:#468847;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-success .form-control:focus{border-color:#356635;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b}.has-success .input-group-addon{color:#468847;background-color:#dff0d8;border-color:#468847}.form-control-static{padding-top:7px;margin-bottom:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media(min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block}.form-inline .radio,.form-inline .checkbox{display:inline-block;padding-left:0;margin-top:0;margin-bottom:0}.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{float:none;margin-left:0}}.form-horizontal .control-label,.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{padding-top:7px;margin-top:0;margin-bottom:0}.form-horizontal .form-group{margin-right:-15px;margin-left:-15px}.form-horizontal .form-group:before,.form-horizontal .form-group:after{display:table;content:" "}.form-horizontal .form-group:after{clear:both}.form-horizontal .form-group:before,.form-horizontal .form-group:after{display:table;content:" "}.form-horizontal .form-group:after{clear:both}@media(min-width:768px){.form-horizontal .control-label{text-align:right}}.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:normal;line-height:1.428571429;text-align:center;white-space:nowrap;vertical-align:middle;cursor:pointer;border:1px solid transparent;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus{color:#333;text-decoration:none}.btn:active,.btn.active{background-image:none;outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{pointer-events:none;cursor:not-allowed;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default:hover,.btn-default:focus,.btn-default:active,.btn-default.active,.open .dropdown-toggle.btn-default{color:#333;background-color:#ebebeb;border-color:#adadad}.btn-default:active,.btn-default.active,.open .dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#fff;border-color:#ccc}.btn-primary{color:#fff;background-color:#428bca;border-color:#357ebd}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.open .dropdown-toggle.btn-primary{color:#fff;background-color:#3276b1;border-color:#285e8e}.btn-primary:active,.btn-primary.active,.open .dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#428bca;border-color:#357ebd}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.open .dropdown-toggle.btn-warning{color:#fff;background-color:#ed9c28;border-color:#d58512}.btn-warning:active,.btn-warning.active,.open .dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#f0ad4e;border-color:#eea236}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.open .dropdown-toggle.btn-danger{color:#fff;background-color:#d2322d;border-color:#ac2925}.btn-danger:active,.btn-danger.active,.open .dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#d9534f;border-color:#d43f3a}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.open .dropdown-toggle.btn-success{color:#fff;background-color:#47a447;border-color:#398439}.btn-success:active,.btn-success.active,.open .dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#5cb85c;border-color:#4cae4c}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.open .dropdown-toggle.btn-info{color:#fff;background-color:#39b3d7;border-color:#269abc}.btn-info:active,.btn-info.active,.open .dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#5bc0de;border-color:#46b8da}.btn-link{font-weight:normal;color:#428bca;cursor:pointer;border-radius:0}.btn-link,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#2a6496;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#999;text-decoration:none}.btn-lg{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.btn-sm,.btn-xs{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-xs{padding:1px 5px}.btn-block{display:block;width:100%;padding-right:0;padding-left:0}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;transition:height .35s ease}@font-face{font-family:'Glyphicons Halflings';src:url('../fonts/glyphicons-halflings-regular.eot');src:url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'),url('../fonts/glyphicons-halflings-regular.woff') format('woff'),url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'),url('../fonts/glyphicons-halflings-regular.svg#glyphicons-halflingsregular') format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';-webkit-font-smoothing:antialiased;font-style:normal;font-weight:normal;line-height:1}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-print:before{content:"\e045"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-briefcase:before{content:"\1f4bc"}.glyphicon-calendar:before{content:"\1f4c5"}.glyphicon-pushpin:before{content:"\1f4cc"}.glyphicon-paperclip:before{content:"\1f4ce"}.glyphicon-camera:before{content:"\1f4f7"}.glyphicon-lock:before{content:"\1f512"}.glyphicon-bell:before{content:"\1f514"}.glyphicon-bookmark:before{content:"\1f516"}.glyphicon-fire:before{content:"\1f525"}.glyphicon-wrench:before{content:"\1f527"}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid #000;border-right:4px solid transparent;border-bottom:0 dotted;border-left:4px solid transparent;content:""}.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:14px;list-style:none;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.175);box-shadow:0 6px 12px rgba(0,0,0,0.175);background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:1.428571429;color:#333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{color:#fff;text-decoration:none;background-color:#428bca}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;background-color:#428bca;outline:0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#999}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.428571429;color:#999}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0 dotted;border-bottom:4px solid #000;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}@media(min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}}.btn-default .caret{border-top-color:#333}.btn-primary .caret,.btn-success .caret,.btn-warning .caret,.btn-danger .caret,.btn-info .caret{border-top-color:#fff}.dropup .btn-default .caret{border-bottom-color:#333}.dropup .btn-primary .caret,.dropup .btn-success .caret,.dropup .btn-warning .caret,.dropup .btn-danger .caret,.dropup .btn-info .caret{border-bottom-color:#fff}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2}.btn-group>.btn:focus,.btn-group-vertical>.btn:focus{outline:0}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar:before,.btn-toolbar:after{display:table;content:" "}.btn-toolbar:after{clear:both}.btn-toolbar:before,.btn-toolbar:after{display:table;content:" "}.btn-toolbar:after{clear:both}.btn-toolbar .btn-group{float:left}.btn-toolbar>.btn+.btn,.btn-toolbar>.btn-group+.btn,.btn-toolbar>.btn+.btn-group,.btn-toolbar>.btn-group+.btn-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child>.btn:last-child,.btn-group>.btn-group:first-child>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:last-child>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group-xs>.btn{padding:5px 10px;padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-lg>.btn{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after{display:table;content:" "}.btn-group-vertical>.btn-group:after{clear:both}.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after{display:table;content:" "}.btn-group-vertical>.btn-group:after{clear:both}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-right-radius:0;border-bottom-left-radius:4px;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child>.btn:last-child,.btn-group-vertical>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;border-collapse:separate;table-layout:fixed}.btn-group-justified .btn{display:table-cell;float:none;width:1%}[data-toggle="buttons"]>.btn>input[type="radio"],[data-toggle="buttons"]>.btn>input[type="checkbox"]{display:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group.col{float:none;padding-right:0;padding-left:0}.input-group .form-control{width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:45px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:45px;line-height:45px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:normal;line-height:1;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type="radio"],.input-group-addon input[type="checkbox"]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-4px}.input-group-btn>.btn:hover,.input-group-btn>.btn:active{z-index:2}.nav{padding-left:0;margin-bottom:0;list-style:none}.nav:before,.nav:after{display:table;content:" "}.nav:after{clear:both}.nav:before,.nav:after{display:table;content:" "}.nav:after{clear:both}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#999}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#999;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#eee;border-color:#428bca}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.428571429;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{text-align:center}@media(min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}}.nav-tabs.nav-justified>li>a{margin-right:0;border-bottom:1px solid #ddd}.nav-tabs.nav-justified>.active>a{border-bottom-color:#fff}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:5px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#fff;background-color:#428bca}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{text-align:center}@media(min-width:768px){.nav-justified>li{display:table-cell;width:1%}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-bottom:1px solid #ddd}.nav-tabs-justified>.active>a{border-bottom-color:#fff}.tabbable:before,.tabbable:after{display:table;content:" "}.tabbable:after{clear:both}.tabbable:before,.tabbable:after{display:table;content:" "}.tabbable:after{clear:both}.tab-content>.tab-pane,.pill-content>.pill-pane{display:none}.tab-content>.active,.pill-content>.active{display:block}.nav .caret{border-top-color:#428bca;border-bottom-color:#428bca}.nav a:hover .caret{border-top-color:#2a6496;border-bottom-color:#2a6496}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;z-index:1000;min-height:50px;margin-bottom:20px;border:1px solid transparent}.navbar:before,.navbar:after{display:table;content:" "}.navbar:after{clear:both}.navbar:before,.navbar:after{display:table;content:" "}.navbar:after{clear:both}@media(min-width:768px){.navbar{border-radius:4px}}.navbar-header:before,.navbar-header:after{display:table;content:" "}.navbar-header:after{clear:both}.navbar-header:before,.navbar-header:after{display:table;content:" "}.navbar-header:after{clear:both}@media(min-width:768px){.navbar-header{float:left}}.navbar-collapse{max-height:340px;padding-right:15px;padding-left:15px;overflow-x:visible;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);-webkit-overflow-scrolling:touch}.navbar-collapse:before,.navbar-collapse:after{display:table;content:" "}.navbar-collapse:after{clear:both}.navbar-collapse:before,.navbar-collapse:after{display:table;content:" "}.navbar-collapse:after{clear:both}.navbar-collapse.in{overflow-y:auto}@media(min-width:768px){.navbar-collapse{width:auto;border-top:0;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-collapse .navbar-nav.navbar-left:first-child{margin-left:-15px}.navbar-collapse .navbar-nav.navbar-right:last-child{margin-right:-15px}.navbar-collapse .navbar-text:last-child{margin-right:0}}.container>.navbar-header,.container>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media(min-width:768px){.container>.navbar-header,.container>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{border-width:0 0 1px}@media(min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;border-width:0 0 1px}@media(min-width:768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;z-index:1030}.navbar-fixed-bottom{bottom:0;margin-bottom:0}.navbar-brand{float:left;padding:15px 15px;font-size:18px;line-height:20px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}@media(min-width:768px){.navbar>.container .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;padding:9px 10px;margin-top:8px;margin-right:15px;margin-bottom:8px;background-color:transparent;border:1px solid transparent;border-radius:4px}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media(min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media(max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media(min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}@media(min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important}}.navbar-form{padding:10px 15px;margin-top:8px;margin-right:-15px;margin-bottom:8px;margin-left:-15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1)}@media(min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;padding-left:0;margin-top:0;margin-bottom:0}.navbar-form .radio input[type="radio"],.navbar-form .checkbox input[type="checkbox"]{float:none;margin-left:0}}@media(max-width:767px){.navbar-form .form-group{margin-bottom:5px}}@media(min-width:768px){.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-nav.pull-right>li>.dropdown-menu,.navbar-nav>li>.dropdown-menu.pull-right{right:0;left:auto}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-text{float:left;margin-top:15px;margin-bottom:15px}@media(min-width:768px){.navbar-text{margin-right:15px;margin-left:15px}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#ccc}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e6e6e6}.navbar-default .navbar-nav>.dropdown>a:hover .caret,.navbar-default .navbar-nav>.dropdown>a:focus .caret{border-top-color:#333;border-bottom-color:#333}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.open>a .caret,.navbar-default .navbar-nav>.open>a:hover .caret,.navbar-default .navbar-nav>.open>a:focus .caret{border-top-color:#555;border-bottom-color:#555}.navbar-default .navbar-nav>.dropdown>a .caret{border-top-color:#777;border-bottom-color:#777}@media(max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#999}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#999}.navbar-inverse .navbar-nav>li>a{color:#999}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.dropdown>a:hover .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .navbar-nav>.dropdown>a .caret{border-top-color:#999;border-bottom-color:#999}.navbar-inverse .navbar-nav>.open>a .caret,.navbar-inverse .navbar-nav>.open>a:hover .caret,.navbar-inverse .navbar-nav>.open>a:focus .caret{border-top-color:#fff;border-bottom-color:#fff}@media(max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#999}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#999}.navbar-inverse .navbar-link:hover{color:#fff}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.breadcrumb>.active{color:#999}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.428571429;text-decoration:none;background-color:#fff;border:1px solid #ddd}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{background-color:#eee}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:2;color:#fff;cursor:default;background-color:#428bca;border-color:#428bca}.pagination>.disabled>span,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#999;cursor:not-allowed;background-color:#fff;border-color:#ddd}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.pager:before,.pager:after{display:table;content:" "}.pager:after{clear:both}.pager:before,.pager:after{display:table;content:" "}.pager:after{clear:both}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#999;cursor:not-allowed;background-color:#fff}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:bold;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}.label[href]:hover,.label[href]:focus{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.label-default{background-color:#999}.label-default[href]:hover,.label-default[href]:focus{background-color:#808080}.label-primary{background-color:#428bca}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#3071a9}.label-success{background-color:#5cb85c}.label-success[href]:hover,.label-success[href]:focus{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:hover,.label-info[href]:focus{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:bold;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;background-color:#999;border-radius:10px}.badge:empty{display:none}a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}.btn .badge{position:relative;top:-1px}a.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#428bca;background-color:#fff}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding:30px;margin-bottom:30px;font-size:21px;font-weight:200;line-height:2.1428571435;color:inherit;background-color:#eee}.jumbotron h1{line-height:1;color:inherit}.jumbotron p{line-height:1.4}.container .jumbotron{border-radius:6px}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron{padding-right:60px;padding-left:60px}.jumbotron h1{font-size:63px}}.thumbnail{display:inline-block;display:block;height:auto;max-width:100%;padding:4px;line-height:1.428571429;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.thumbnail>img{display:block;height:auto;max-width:100%}a.thumbnail:hover,a.thumbnail:focus{border-color:#428bca}.thumbnail>img{margin-right:auto;margin-left:auto}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:bold}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable{padding-right:35px}.alert-dismissable .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{color:#468847;background-color:#dff0d8;border-color:#d6e9c6}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#356635}.alert-info{color:#3a87ad;background-color:#d9edf7;border-color:#bce8f1}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#2d6987}.alert-warning{color:#c09853;background-color:#fcf8e3;border-color:#fbeed5}.alert-warning hr{border-top-color:#f8e5be}.alert-warning .alert-link{color:#a47e3c}.alert-danger{color:#b94a48;background-color:#f2dede;border-color:#eed3d7}.alert-danger hr{border-top-color:#e6c1c7}.alert-danger .alert-link{color:#953b39}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-moz-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:0 0}to{background-position:40px 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;color:#fff;text-align:center;background-color:#428bca;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-transition:width .6s ease;transition:width .6s ease}.progress-striped .progress-bar{background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-size:40px 40px}.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-moz-animation:progress-bar-stripes 2s linear infinite;-ms-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.media,.media-body{overflow:hidden;zoom:1}.media,.media .media{margin-top:15px}.media:first-child{margin-top:0}.media-object{display:block}.media-heading{margin:0 0 5px}.media>.pull-left{margin-right:10px}.media>.pull-right{margin-left:10px}.media-list{padding-left:0;list-style:none}.list-group{padding-left:0;margin-bottom:20px}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}a.list-group-item{color:#555}a.list-group-item .list-group-item-heading{color:#333}a.list-group-item:hover,a.list-group-item:focus{text-decoration:none;background-color:#f5f5f5}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca}.list-group-item.active .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:hover .list-group-item-text,.list-group-item.active:focus .list-group-item-text{color:#e1edf7}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.05);box-shadow:0 1px 1px rgba(0,0,0,0.05)}.panel-body{padding:15px}.panel-body:before,.panel-body:after{display:table;content:" "}.panel-body:after{clear:both}.panel-body:before,.panel-body:after{display:table;content:" "}.panel-body:after{clear:both}.panel>.list-group{margin-bottom:0}.panel>.list-group .list-group-item{border-width:1px 0}.panel>.list-group .list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0}.panel>.list-group .list-group-item:last-child{border-bottom:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.panel>.table{margin-bottom:0}.panel>.panel-body+.table{border-top:1px solid #ddd}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.panel-title{margin-top:0;margin-bottom:0;font-size:16px}.panel-title>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel-group .panel{margin-bottom:0;overflow:hidden;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse .panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse .panel-body{border-top-color:#ddd}.panel-default>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#428bca}.panel-primary>.panel-heading{color:#fff;background-color:#428bca;border-color:#428bca}.panel-primary>.panel-heading+.panel-collapse .panel-body{border-top-color:#428bca}.panel-primary>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#428bca}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#468847;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse .panel-body{border-top-color:#d6e9c6}.panel-success>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#d6e9c6}.panel-warning{border-color:#fbeed5}.panel-warning>.panel-heading{color:#c09853;background-color:#fcf8e3;border-color:#fbeed5}.panel-warning>.panel-heading+.panel-collapse .panel-body{border-top-color:#fbeed5}.panel-warning>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#fbeed5}.panel-danger{border-color:#eed3d7}.panel-danger>.panel-heading{color:#b94a48;background-color:#f2dede;border-color:#eed3d7}.panel-danger>.panel-heading+.panel-collapse .panel-body{border-top-color:#eed3d7}.panel-danger>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#eed3d7}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#3a87ad;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse .panel-body{border-top-color:#bce8f1}.panel-info>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#bce8f1}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:bold;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}body.modal-open,.modal-open .navbar-fixed-top,.modal-open .navbar-fixed-bottom{margin-right:15px}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;display:none;overflow:auto;overflow-y:scroll}.modal.fade .modal-dialog{-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);transform:translate(0,-25%);-webkit-transition:-webkit-transform .3s ease-out;-moz-transition:-moz-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.modal-dialog{z-index:1050;width:auto;padding:10px;margin-right:auto;margin-left:auto}.modal-content{position:relative;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,0.2);border-radius:6px;outline:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,0.5);box-shadow:0 3px 9px rgba(0,0,0,0.5);background-clip:padding-box}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1030;background-color:#000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:.5;filter:alpha(opacity=50)}.modal-header{min-height:16.428571429px;padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.428571429}.modal-body{position:relative;padding:20px}.modal-footer{padding:19px 20px 20px;margin-top:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer:before,.modal-footer:after{display:table;content:" "}.modal-footer:after{clear:both}.modal-footer:before,.modal-footer:after{display:table;content:" "}.modal-footer:after{clear:both}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}@media screen and (min-width:768px){.modal-dialog{right:auto;left:50%;width:600px;padding-top:30px;padding-bottom:30px}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,0.5);box-shadow:0 5px 15px rgba(0,0,0,0.5)}}.tooltip{position:absolute;z-index:1030;display:block;font-size:12px;line-height:1.4;opacity:0;filter:alpha(opacity=0);visibility:visible}.tooltip.in{opacity:.9;filter:alpha(opacity=90)}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top-color:#000;border-width:5px 5px 0}.tooltip.top-left .tooltip-arrow{bottom:0;left:5px;border-top-color:#000;border-width:5px 5px 0}.tooltip.top-right .tooltip-arrow{right:5px;bottom:0;border-top-color:#000;border-width:5px 5px 0}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-right-color:#000;border-width:5px 5px 5px 0}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-left-color:#000;border-width:5px 0 5px 5px}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-bottom-color:#000;border-width:0 5px 5px}.tooltip.bottom-left .tooltip-arrow{top:0;left:5px;border-bottom-color:#000;border-width:0 5px 5px}.tooltip.bottom-right .tooltip-arrow{top:0;right:5px;border-bottom-color:#000;border-width:0 5px 5px}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:276px;padding:1px;text-align:left;white-space:normal;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);background-clip:padding-box}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;font-weight:normal;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover .arrow,.popover .arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover .arrow{border-width:11px}.popover .arrow:after{border-width:10px;content:""}.popover.top .arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,0.25);border-bottom-width:0}.popover.top .arrow:after{bottom:1px;margin-left:-10px;border-top-color:#fff;border-bottom-width:0;content:" "}.popover.right .arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,0.25);border-left-width:0}.popover.right .arrow:after{bottom:-10px;left:1px;border-right-color:#fff;border-left-width:0;content:" "}.popover.bottom .arrow{top:-11px;left:50%;margin-left:-11px;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,0.25);border-top-width:0}.popover.bottom .arrow:after{top:1px;margin-left:-10px;border-bottom-color:#fff;border-top-width:0;content:" "}.popover.left .arrow{top:50%;right:-11px;margin-top:-11px;border-left-color:#999;border-left-color:rgba(0,0,0,0.25);border-right-width:0}.popover.left .arrow:after{right:1px;bottom:-10px;border-left-color:#fff;border-right-width:0;content:" "}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;height:auto;max-width:100%;line-height:1}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;bottom:0;left:0;width:15%;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6);opacity:.5;filter:alpha(opacity=50)}.carousel-control.left{background-image:-webkit-gradient(linear,0 top,100% top,from(rgba(0,0,0,0.5)),to(rgba(0,0,0,0.0001)));background-image:-webkit-linear-gradient(left,color-stop(rgba(0,0,0,0.5) 0),color-stop(rgba(0,0,0,0.0001) 100%));background-image:-moz-linear-gradient(left,rgba(0,0,0,0.5) 0,rgba(0,0,0,0.0001) 100%);background-image:linear-gradient(to right,rgba(0,0,0,0.5) 0,rgba(0,0,0,0.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000',endColorstr='#00000000',GradientType=1)}.carousel-control.right{right:0;left:auto;background-image:-webkit-gradient(linear,0 top,100% top,from(rgba(0,0,0,0.0001)),to(rgba(0,0,0,0.5)));background-image:-webkit-linear-gradient(left,color-stop(rgba(0,0,0,0.0001) 0),color-stop(rgba(0,0,0,0.5) 100%));background-image:-moz-linear-gradient(left,rgba(0,0,0,0.0001) 0,rgba(0,0,0,0.5) 100%);background-image:linear-gradient(to right,rgba(0,0,0,0.0001) 0,rgba(0,0,0,0.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000',endColorstr='#80000000',GradientType=1)}.carousel-control:hover,.carousel-control:focus{color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;left:50%;z-index:5;display:inline-block}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;margin-top:-10px;margin-left:-10px;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;border:1px solid #fff;border-radius:10px}.carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;margin-left:-15px;font-size:30px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after{display:table;content:" "}.clearfix:after{clear:both}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.affix{position:fixed}@-ms-viewport{width:device-width}@media screen and (max-width:400px){@-ms-viewport{width:320px}}.hidden{display:none!important;visibility:hidden!important}.visible-xs{display:none!important}tr.visible-xs{display:none!important}th.visible-xs,td.visible-xs{display:none!important}@media(max-width:767px){.visible-xs{display:block!important}tr.visible-xs{display:table-row!important}th.visible-xs,td.visible-xs{display:table-cell!important}}@media(min-width:768px) and (max-width:991px){.visible-xs.visible-sm{display:block!important}tr.visible-xs.visible-sm{display:table-row!important}th.visible-xs.visible-sm,td.visible-xs.visible-sm{display:table-cell!important}}@media(min-width:992px) and (max-width:1199px){.visible-xs.visible-md{display:block!important}tr.visible-xs.visible-md{display:table-row!important}th.visible-xs.visible-md,td.visible-xs.visible-md{display:table-cell!important}}@media(min-width:1200px){.visible-xs.visible-lg{display:block!important}tr.visible-xs.visible-lg{display:table-row!important}th.visible-xs.visible-lg,td.visible-xs.visible-lg{display:table-cell!important}}.visible-sm{display:none!important}tr.visible-sm{display:none!important}th.visible-sm,td.visible-sm{display:none!important}@media(max-width:767px){.visible-sm.visible-xs{display:block!important}tr.visible-sm.visible-xs{display:table-row!important}th.visible-sm.visible-xs,td.visible-sm.visible-xs{display:table-cell!important}}@media(min-width:768px) and (max-width:991px){.visible-sm{display:block!important}tr.visible-sm{display:table-row!important}th.visible-sm,td.visible-sm{display:table-cell!important}}@media(min-width:992px) and (max-width:1199px){.visible-sm.visible-md{display:block!important}tr.visible-sm.visible-md{display:table-row!important}th.visible-sm.visible-md,td.visible-sm.visible-md{display:table-cell!important}}@media(min-width:1200px){.visible-sm.visible-lg{display:block!important}tr.visible-sm.visible-lg{display:table-row!important}th.visible-sm.visible-lg,td.visible-sm.visible-lg{display:table-cell!important}}.visible-md{display:none!important}tr.visible-md{display:none!important}th.visible-md,td.visible-md{display:none!important}@media(max-width:767px){.visible-md.visible-xs{display:block!important}tr.visible-md.visible-xs{display:table-row!important}th.visible-md.visible-xs,td.visible-md.visible-xs{display:table-cell!important}}@media(min-width:768px) and (max-width:991px){.visible-md.visible-sm{display:block!important}tr.visible-md.visible-sm{display:table-row!important}th.visible-md.visible-sm,td.visible-md.visible-sm{display:table-cell!important}}@media(min-width:992px) and (max-width:1199px){.visible-md{display:block!important}tr.visible-md{display:table-row!important}th.visible-md,td.visible-md{display:table-cell!important}}@media(min-width:1200px){.visible-md.visible-lg{display:block!important}tr.visible-md.visible-lg{display:table-row!important}th.visible-md.visible-lg,td.visible-md.visible-lg{display:table-cell!important}}.visible-lg{display:none!important}tr.visible-lg{display:none!important}th.visible-lg,td.visible-lg{display:none!important}@media(max-width:767px){.visible-lg.visible-xs{display:block!important}tr.visible-lg.visible-xs{display:table-row!important}th.visible-lg.visible-xs,td.visible-lg.visible-xs{display:table-cell!important}}@media(min-width:768px) and (max-width:991px){.visible-lg.visible-sm{display:block!important}tr.visible-lg.visible-sm{display:table-row!important}th.visible-lg.visible-sm,td.visible-lg.visible-sm{display:table-cell!important}}@media(min-width:992px) and (max-width:1199px){.visible-lg.visible-md{display:block!important}tr.visible-lg.visible-md{display:table-row!important}th.visible-lg.visible-md,td.visible-lg.visible-md{display:table-cell!important}}@media(min-width:1200px){.visible-lg{display:block!important}tr.visible-lg{display:table-row!important}th.visible-lg,td.visible-lg{display:table-cell!important}}.hidden-xs{display:block!important}tr.hidden-xs{display:table-row!important}th.hidden-xs,td.hidden-xs{display:table-cell!important}@media(max-width:767px){.hidden-xs{display:none!important}tr.hidden-xs{display:none!important}th.hidden-xs,td.hidden-xs{display:none!important}}@media(min-width:768px) and (max-width:991px){.hidden-xs.hidden-sm{display:none!important}tr.hidden-xs.hidden-sm{display:none!important}th.hidden-xs.hidden-sm,td.hidden-xs.hidden-sm{display:none!important}}@media(min-width:992px) and (max-width:1199px){.hidden-xs.hidden-md{display:none!important}tr.hidden-xs.hidden-md{display:none!important}th.hidden-xs.hidden-md,td.hidden-xs.hidden-md{display:none!important}}@media(min-width:1200px){.hidden-xs.hidden-lg{display:none!important}tr.hidden-xs.hidden-lg{display:none!important}th.hidden-xs.hidden-lg,td.hidden-xs.hidden-lg{display:none!important}}.hidden-sm{display:block!important}tr.hidden-sm{display:table-row!important}th.hidden-sm,td.hidden-sm{display:table-cell!important}@media(max-width:767px){.hidden-sm.hidden-xs{display:none!important}tr.hidden-sm.hidden-xs{display:none!important}th.hidden-sm.hidden-xs,td.hidden-sm.hidden-xs{display:none!important}}@media(min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}tr.hidden-sm{display:none!important}th.hidden-sm,td.hidden-sm{display:none!important}}@media(min-width:992px) and (max-width:1199px){.hidden-sm.hidden-md{display:none!important}tr.hidden-sm.hidden-md{display:none!important}th.hidden-sm.hidden-md,td.hidden-sm.hidden-md{display:none!important}}@media(min-width:1200px){.hidden-sm.hidden-lg{display:none!important}tr.hidden-sm.hidden-lg{display:none!important}th.hidden-sm.hidden-lg,td.hidden-sm.hidden-lg{display:none!important}}.hidden-md{display:block!important}tr.hidden-md{display:table-row!important}th.hidden-md,td.hidden-md{display:table-cell!important}@media(max-width:767px){.hidden-md.hidden-xs{display:none!important}tr.hidden-md.hidden-xs{display:none!important}th.hidden-md.hidden-xs,td.hidden-md.hidden-xs{display:none!important}}@media(min-width:768px) and (max-width:991px){.hidden-md.hidden-sm{display:none!important}tr.hidden-md.hidden-sm{display:none!important}th.hidden-md.hidden-sm,td.hidden-md.hidden-sm{display:none!important}}@media(min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}tr.hidden-md{display:none!important}th.hidden-md,td.hidden-md{display:none!important}}@media(min-width:1200px){.hidden-md.hidden-lg{display:none!important}tr.hidden-md.hidden-lg{display:none!important}th.hidden-md.hidden-lg,td.hidden-md.hidden-lg{display:none!important}}.hidden-lg{display:block!important}tr.hidden-lg{display:table-row!important}th.hidden-lg,td.hidden-lg{display:table-cell!important}@media(max-width:767px){.hidden-lg.hidden-xs{display:none!important}tr.hidden-lg.hidden-xs{display:none!important}th.hidden-lg.hidden-xs,td.hidden-lg.hidden-xs{display:none!important}}@media(min-width:768px) and (max-width:991px){.hidden-lg.hidden-sm{display:none!important}tr.hidden-lg.hidden-sm{display:none!important}th.hidden-lg.hidden-sm,td.hidden-lg.hidden-sm{display:none!important}}@media(min-width:992px) and (max-width:1199px){.hidden-lg.hidden-md{display:none!important}tr.hidden-lg.hidden-md{display:none!important}th.hidden-lg.hidden-md,td.hidden-lg.hidden-md{display:none!important}}@media(min-width:1200px){.hidden-lg{display:none!important}tr.hidden-lg{display:none!important}th.hidden-lg,td.hidden-lg{display:none!important}}.visible-print{display:none!important}tr.visible-print{display:none!important}th.visible-print,td.visible-print{display:none!important}@media print{.visible-print{display:block!important}tr.visible-print{display:table-row!important}th.visible-print,td.visible-print{display:table-cell!important}.hidden-print{display:none!important}tr.hidden-print{display:none!important}th.hidden-print,td.hidden-print{display:none!important}} \ No newline at end of file +article, aside, details, figcaption, figure, footer, header, hgroup, nav, section { + display: block; +} +audio, canvas, video { + display: inline-block; +*display:inline; +*zoom:1; +} +audio:not([controls]) { + display: none; +} +html { + font-size: 100%; + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; +} +a:focus { + outline: thin dotted #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} +a:hover, a:active { + outline: 0; +} +sub, sup { + position: relative; + font-size: 75%; + line-height: 0; + vertical-align: baseline; +} +sup { + top: -0.5em; +} +sub { + bottom: -0.25em; +} +img { + height: auto; + border: 0; + -ms-interpolation-mode: bicubic; + vertical-align: middle; +} +button, input, select, textarea { + margin: 0; + font-size: 100%; + vertical-align: middle; +} +button, input { +*overflow:visible; + line-height: normal; +} +button::-moz-focus-inner, input::-moz-focus-inner { +padding:0; +border:0; +} +button, input[type="button"], input[type="reset"], input[type="submit"] { + cursor: pointer; + -webkit-appearance: button; +} +input[type="search"] { + -webkit-appearance: textfield; + -webkit-box-sizing: content-box; + -moz-box-sizing: content-box; + box-sizing: content-box; +} +input[type="search"]::-webkit-search-decoration, input[type="search"]::-webkit-search-cancel-button { +-webkit-appearance:none; +} +textarea { + overflow: auto; + vertical-align: top; +} +.clearfix { +*zoom:1; +} +.clearfix:before, .clearfix:after { + display: table; + content: ""; +} +.clearfix:after { + clear: both; +} +.hide-text { + overflow: hidden; + text-indent: 100%; + white-space: nowrap; +} +.input-block-level { + display: block; + width: 100%; + min-height: 28px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; +} +body { + margin: 0; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 13px; + line-height: 18px; + color: #333333; + background-color: #ffffff; +} +a { + color: #19bc9c; + text-decoration: none; +} +a:hover { + color: #545454; + text-decoration: underline; +} +.row { + margin-left: -20px; +*zoom:1; +} +.row:before, .row:after { + display: table; + content: ""; +} +.row:after { + clear: both; +} +[class*="span"] { +float:left; +margin-left:20px; +} +.container, .navbar-fixed-top .container, .navbar-fixed-bottom .container { + width: 940px; +} +.span12 { + width: 940px; +} +.span11 { + width: 860px; +} +.span10 { + width: 780px; +} +.span9 { + width: 700px; +} +.span8 { + width: 620px; +} +.span7 { + width: 540px; +} +.span6 { + width: 460px; +} +.span5 { + width: 380px; +} +.span4 { + width: 300px; +} +.span3 { + width: 220px; +} +.span2 { + width: 140px; +} +.span1 { + width: 60px; +} +.offset12 { + margin-left: 980px; +} +.offset11 { + margin-left: 900px; +} +.offset10 { + margin-left: 820px; +} +.offset9 { + margin-left: 740px; +} +.offset8 { + margin-left: 660px; +} +.offset7 { + margin-left: 580px; +} +.offset6 { + margin-left: 500px; +} +.offset5 { + margin-left: 420px; +} +.offset4 { + margin-left: 340px; +} +.offset3 { + margin-left: 260px; +} +.offset2 { + margin-left: 180px; +} +.offset1 { + margin-left: 100px; +} +.row-fluid { + width: 100%; +*zoom:1; +} +.row-fluid:before, .row-fluid:after { + display: table; + content: ""; +} +.row-fluid:after { + clear: both; +} +.row-fluid>[class*="span"] { +float:left; +margin-left:2.127659574%; +} +.row-fluid>[class*="span"]:first-child { + margin-left: 0; +} +.row-fluid > .span12 { + width: 99.99999998999999%; +} +.row-fluid > .span11 { + width: 91.489361693%; +} +.row-fluid > .span10 { + width: 82.97872339599999%; +} +.row-fluid > .span9 { + width: 74.468085099%; +} +.row-fluid > .span8 { + width: 65.95744680199999%; +} +.row-fluid > .span7 { + width: 57.446808505%; +} +.row-fluid > .span6 { + width: 48.93617020799999%; +} +.row-fluid > .span5 { + width: 40.425531911%; +} +.row-fluid > .span4 { + width: 31.914893614%; +} +.row-fluid > .span3 { + width: 23.404255317%; +} +.row-fluid > .span2 { + width: 14.89361702%; +} +.row-fluid > .span1 { + width: 6.382978723%; +} +.container { + margin-left: auto; + margin-right: auto; +*zoom:1; +} +.container:before, .container:after { + display: table; + content: ""; +} +.container:after { + clear: both; +} +.container-fluid { + padding-left: 20px; + padding-right: 20px; +*zoom:1; +} +.container-fluid:before, .container-fluid:after { + display: table; + content: ""; +} +.container-fluid:after { + clear: both; +} +p { + margin: 0 0 9px; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 13px; + line-height: 18px; +} +p small { + font-size: 11px; + color: #999999; +} +.lead { + margin-bottom: 18px; + font-size: 20px; + font-weight: 200; + line-height: 27px; +} +h1, h2, h3, h4, h5, h6 { + margin: 0; + font-family: inherit; + font-weight: bold; + color: inherit; + text-rendering: optimizelegibility; +} +h1 small, h2 small, h3 small, h4 small, h5 small, h6 small { + font-weight: normal; + color: #999999; +} +h1 { + font-size: 30px; + line-height: 36px; +} +h1 small { + font-size: 18px; +} +h2 { + font-size: 24px; + line-height: 36px; +} +h2 small { + font-size: 18px; +} +h3 { + line-height: 27px; + font-size: 18px; +} +h3 small { + font-size: 14px; +} +h4, h5, h6 { + line-height: 18px; +} +h4 { + font-size: 14px; +} +h4 small { + font-size: 12px; +} +h5 { + font-size: 12px; +} +h6 { + font-size: 11px; + color: #999999; + text-transform: uppercase; +} +.page-header { + padding-bottom: 17px; + margin: 18px 0; + border-bottom: 1px solid #eeeeee; +} +.page-header h1 { + line-height: 1; +} +ul, ol { + padding: 0; + margin: 0 0 9px 25px; +} +ul ul, ul ol, ol ol, ol ul { + margin-bottom: 0; +} +ul { + list-style: disc; +} +ol { + list-style: decimal; +} +li { + line-height: 18px; +} +ul.unstyled, ol.unstyled { + margin-left: 0; + list-style: none; +} +dl { + margin-bottom: 18px; +} +dt, dd { + line-height: 18px; +} +dt { + font-weight: bold; + line-height: 17px; +} +dd { + margin-left: 9px; +} +.dl-horizontal dt { + float: left; + clear: left; + width: 120px; + text-align: right; +} +.dl-horizontal dd { + margin-left: 130px; +} +hr { + margin: 18px 0; + border: 0; + border-top: 1px solid #eeeeee; + border-bottom: 1px solid #ffffff; +} +strong { + font-weight: bold; +} +em { + font-style: italic; +} +.muted { + color: #999999; +} +abbr[title] { + border-bottom: 1px dotted #ddd; + cursor: help; +} +abbr.initialism { + font-size: 90%; + text-transform: uppercase; +} +blockquote { + padding: 0 0 0 15px; + margin: 0 0 18px; + border-left: 5px solid #eeeeee; +} +blockquote p { + margin-bottom: 0; + font-size: 16px; + font-weight: 300; + line-height: 22.5px; +} +blockquote small { + display: block; + line-height: 18px; + color: #999999; +} +blockquote small:before { + content: '\2014 \00A0'; +} +blockquote.pull-right { + float: right; + padding-left: 0; + padding-right: 15px; + border-left: 0; + border-right: 5px solid #eeeeee; +} +blockquote.pull-right p, blockquote.pull-right small { + text-align: right; +} +q:before, q:after, blockquote:before, blockquote:after { + content: ""; +} +address { + display: block; + margin-bottom: 18px; + line-height: 18px; + font-style: normal; +} +small { + font-size: 100%; +} +cite { + font-style: normal; +} +code, pre { + padding: 0 3px 2px; + font-family: Menlo, Monaco, "Courier New", monospace; + font-size: 12px; + color: #333333; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} +code { + padding: 2px 4px; + color: #d14; + background-color: #f7f7f9; + border: 1px solid #e1e1e8; +} +pre { + display: block; + padding: 8.5px; + margin: 0 0 9px; + font-size: 12.025px; + line-height: 18px; + background-color: #f5f5f5; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.15); + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + white-space: pre; + white-space: pre-wrap; + word-break: break-all; + word-wrap: break-word; +} +pre.prettyprint { + margin-bottom: 18px; +} +pre code { + padding: 0; + color: inherit; + background-color: transparent; + border: 0; +} +.pre-scrollable { + max-height: 340px; + overflow-y: scroll; +} +form { + margin: 0 0 18px; +} +fieldset { + padding: 0; + margin: 0; + border: 0; +} +legend { + display: block; + width: 100%; + padding: 0; + margin-bottom: 27px; + font-size: 19.5px; + line-height: 36px; + color: #333333; + border: 0; + border-bottom: 1px solid #eee; +} +legend small { + font-size: 13.5px; + color: #999999; +} +label, input, button, select, textarea { + font-size: 13px; + font-weight: normal; + line-height: 18px; +} +input, button, select, textarea { + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; +} +label { + display: block; + margin-bottom: 5px; + color: #333333; +} +input, textarea, select, .uneditable-input { + display: inline-block; + width: 210px; + height: 18px; + padding: 4px; + margin-bottom: 9px; + font-size: 13px; + line-height: 18px; + color: #555555; + border: 1px solid #cccccc; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} +.uneditable-textarea { + width: auto; + height: auto; +} +label input, label textarea, label select { + display: block; +} +input[type="image"], input[type="checkbox"], input[type="radio"] { + width: auto; + height: auto; + padding: 0; + margin: 3px 0; +*margin-top:0; + line-height: normal; + cursor: pointer; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; + border: 0 \9; +} +input[type="image"] { + border: 0; +} +input[type="file"] { + width: auto; + padding: initial; + line-height: initial; + border: initial; + background-color: #ffffff; + background-color: initial; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} +input[type="button"], input[type="reset"], input[type="submit"] { + width: auto; + height: auto; +} +select, input[type="file"] { + height: 28px; +*margin-top:4px; + line-height: 28px; +} +input[type="file"] { + line-height: 18px \9; +} +select { + width: 220px; + background-color: #ffffff; +} +select[multiple], select[size] { + height: auto; +} +input[type="image"] { + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} +textarea { + height: auto; +} +input[type="hidden"] { + display: none; +} +.radio, .checkbox { + padding-left: 18px; +} +.radio input[type="radio"], .checkbox input[type="checkbox"] { + float: left; + margin-left: -18px; +} +.controls>.radio:first-child, .controls>.checkbox:first-child { + padding-top: 5px; +} +.radio.inline, .checkbox.inline { + display: inline-block; + padding-top: 5px; + margin-bottom: 0; + vertical-align: middle; +} +.radio.inline+.radio.inline, .checkbox.inline+.checkbox.inline { + margin-left: 10px; +} +input, textarea { + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -webkit-transition: border linear 0.2s, box-shadow linear 0.2s; + -moz-transition: border linear 0.2s, box-shadow linear 0.2s; + -ms-transition: border linear 0.2s, box-shadow linear 0.2s; + -o-transition: border linear 0.2s, box-shadow linear 0.2s; + transition: border linear 0.2s, box-shadow linear 0.2s; +} +input:focus, textarea:focus { + border-color: rgba(82, 168, 236, 0.8); + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); + outline: 0; + outline: thin dotted \9; +} +input[type="file"]:focus, input[type="radio"]:focus, input[type="checkbox"]:focus, select:focus { + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; + outline: thin dotted #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} +.input-mini { + width: 60px; +} +.input-small { + width: 90px; +} +.input-medium { + width: 150px; +} +.input-large { + width: 210px; +} +.input-xlarge { + width: 270px; +} +.input-xxlarge { + width: 530px; +} +input[class*="span"], select[class*="span"], textarea[class*="span"], .uneditable-input { + float: none; + margin-left: 0; +} +input, textarea, .uneditable-input { + margin-left: 0; +} +input.span12, textarea.span12, .uneditable-input.span12 { + width: 930px; +} +input.span11, textarea.span11, .uneditable-input.span11 { + width: 850px; +} +input.span10, textarea.span10, .uneditable-input.span10 { + width: 770px; +} +input.span9, textarea.span9, .uneditable-input.span9 { + width: 690px; +} +input.span8, textarea.span8, .uneditable-input.span8 { + width: 610px; +} +input.span7, textarea.span7, .uneditable-input.span7 { + width: 530px; +} +input.span6, textarea.span6, .uneditable-input.span6 { + width: 450px; +} +input.span5, textarea.span5, .uneditable-input.span5 { + width: 370px; +} +input.span4, textarea.span4, .uneditable-input.span4 { + width: 290px; +} +input.span3, textarea.span3, .uneditable-input.span3 { + width: 210px; +} +input.span2, textarea.span2, .uneditable-input.span2 { + width: 130px; +} +input.span1, textarea.span1, .uneditable-input.span1 { + width: 50px; +} +input[disabled], select[disabled], textarea[disabled], input[readonly], select[readonly], textarea[readonly] { + background-color: #eeeeee; + border-color: #ddd; + cursor: not-allowed; +} +.control-group.warning>label, .control-group.warning .help-block, .control-group.warning .help-inline { + color: #c09853; +} +.control-group.warning input, .control-group.warning select, .control-group.warning textarea { + color: #c09853; + border-color: #c09853; +} +.control-group.warning input:focus, .control-group.warning select:focus, .control-group.warning textarea:focus { + border-color: #a47e3c; + -webkit-box-shadow: 0 0 6px #dbc59e; + -moz-box-shadow: 0 0 6px #dbc59e; + box-shadow: 0 0 6px #dbc59e; +} +.control-group.warning .input-prepend .add-on, .control-group.warning .input-append .add-on { + color: #c09853; + background-color: #fcf8e3; + border-color: #c09853; +} +.control-group.error>label, .control-group.error .help-block, .control-group.error .help-inline { + color: #b94a48; +} +.control-group.error input, .control-group.error select, .control-group.error textarea { + color: #b94a48; + border-color: #b94a48; +} +.control-group.error input:focus, .control-group.error select:focus, .control-group.error textarea:focus { + border-color: #953b39; + -webkit-box-shadow: 0 0 6px #d59392; + -moz-box-shadow: 0 0 6px #d59392; + box-shadow: 0 0 6px #d59392; +} +.control-group.error .input-prepend .add-on, .control-group.error .input-append .add-on { + color: #b94a48; + background-color: #f2dede; + border-color: #b94a48; +} +.control-group.success>label, .control-group.success .help-block, .control-group.success .help-inline { + color: #468847; +} +.control-group.success input, .control-group.success select, .control-group.success textarea { + color: #468847; + border-color: #468847; +} +.control-group.success input:focus, .control-group.success select:focus, .control-group.success textarea:focus { + border-color: #356635; + -webkit-box-shadow: 0 0 6px #7aba7b; + -moz-box-shadow: 0 0 6px #7aba7b; + box-shadow: 0 0 6px #7aba7b; +} +.control-group.success .input-prepend .add-on, .control-group.success .input-append .add-on { + color: #468847; + background-color: #dff0d8; + border-color: #468847; +} +input:focus:required:invalid, textarea:focus:required:invalid, select:focus:required:invalid { +color:#b94a48; +border-color:#ee5f5b; +} +input:focus:required:invalid:focus, textarea:focus:required:invalid:focus, select:focus:required:invalid:focus { +border-color:#e9322d; +-webkit-box-shadow:0 0 6px #f8b9b7; +-moz-box-shadow:0 0 6px #f8b9b7; +box-shadow:0 0 6px #f8b9b7; +} +.form-actions { + padding: 17px 20px 18px; + margin-top: 18px; + margin-bottom: 18px; + background-color: #eeeeee; + border-top: 1px solid #ddd; +*zoom:1; +} +.form-actions:before, .form-actions:after { + display: table; + content: ""; +} +.form-actions:after { + clear: both; +} +.uneditable-input { + display: block; + background-color: #ffffff; + border-color: #eee; + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); + -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); + cursor: not-allowed; +} +:-moz-placeholder { +color:#999999; +} +::-webkit-input-placeholder { +color:#999999; +} +.help-block, .help-inline { + color: #555555; +} +.help-block { + display: block; + margin-bottom: 9px; +} +.help-inline { + display: inline-block; +*display:inline; +*zoom:1; + vertical-align: middle; + padding-left: 5px; +} +.input-prepend, .input-append { + margin-bottom: 5px; +} +.input-prepend input, .input-append input, .input-prepend select, .input-append select, .input-prepend .uneditable-input, .input-append .uneditable-input { +*margin-left:0; + -webkit-border-radius: 0 3px 3px 0; + -moz-border-radius: 0 3px 3px 0; + border-radius: 0 3px 3px 0; +} +.input-prepend input:focus, .input-append input:focus, .input-prepend select:focus, .input-append select:focus, .input-prepend .uneditable-input:focus, .input-append .uneditable-input:focus { + position: relative; + z-index: 2; +} +.input-prepend .uneditable-input, .input-append .uneditable-input { + border-left-color: #ccc; +} +.input-prepend .add-on, .input-append .add-on { + display: inline-block; + width: auto; + min-width: 16px; + height: 18px; + padding: 4px 5px; + font-weight: normal; + line-height: 18px; + text-align: center; + text-shadow: 0 1px 0 #ffffff; + vertical-align: middle; + background-color: #eeeeee; + border: 1px solid #ccc; +} +.input-prepend .add-on, .input-append .add-on, .input-prepend .btn, .input-append .btn { + -webkit-border-radius: 3px 0 0 3px; + -moz-border-radius: 3px 0 0 3px; + border-radius: 3px 0 0 3px; +} +.input-prepend .active, .input-append .active { + background-color: #a9dba9; + border-color: #46a546; +} +.input-prepend .add-on, .input-prepend .btn { + margin-right: -1px; +} +.input-append input, .input-append select .uneditable-input { + -webkit-border-radius: 3px 0 0 3px; + -moz-border-radius: 3px 0 0 3px; + border-radius: 3px 0 0 3px; +} +.input-append .uneditable-input { + border-left-color: #eee; + border-right-color: #ccc; +} +.input-append .add-on, .input-append .btn { + margin-left: -4px; + -webkit-border-radius: 0 3px 3px 0; + -moz-border-radius: 0 3px 3px 0; + border-radius: 0 3px 3px 0; +} +.input-prepend.input-append input, .input-prepend.input-append select, .input-prepend.input-append .uneditable-input { + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +.input-prepend.input-append .add-on:first-child, .input-prepend.input-append .btn:first-child { + -webkit-border-radius: 4px 0 0 4px; + -moz-border-radius: 4px 0 0 4px; + -ms-border-radius: 4px 0 0 4px; + -o-border-radius: 4px 0 0 4px; + border-radius: 4px 0 0 4px; + margin-right: -1px; +} +.input-prepend.input-append .add-on:last-child, .input-prepend.input-append .btn:last-child { + margin-left: -4px; + -webkit-border-radius: 0 3px 3px 0; + -moz-border-radius: 0 3px 3px 0; + border-radius: 0 3px 3px 0; +} +.search-query { + padding-left: 14px; + padding-right: 14px; + margin-bottom: 0; + -webkit-border-radius: 14px; + -moz-border-radius: 14px; + border-radius: 14px; +} +.form-search input, .form-inline input, .form-horizontal input, .form-search textarea, .form-inline textarea, .form-horizontal textarea, .form-search select, .form-inline select, .form-horizontal select, .form-search .help-inline, .form-inline .help-inline, .form-horizontal .help-inline, .form-search .uneditable-input, .form-inline .uneditable-input, .form-horizontal .uneditable-input, .form-search .input-prepend, .form-inline .input-prepend, .form-horizontal .input-prepend, .form-search .input-append, .form-inline .input-append, .form-horizontal .input-append { + display: inline-block; + margin-bottom: 0; +} +.form-search .hide, .form-inline .hide, .form-horizontal .hide { + display: none; +} +.form-search label, .form-inline label { + display: inline-block; +} +.form-search .input-append, .form-inline .input-append, .form-search .input-prepend, .form-inline .input-prepend { + margin-bottom: 0; +} +.form-search .radio, .form-search .checkbox, .form-inline .radio, .form-inline .checkbox { + padding-left: 0; + margin-bottom: 0; + vertical-align: middle; +} +.form-search .radio input[type="radio"], .form-search .checkbox input[type="checkbox"], .form-inline .radio input[type="radio"], .form-inline .checkbox input[type="checkbox"] { + float: left; + margin-left: 0; + margin-right: 3px; +} +.control-group { + margin-bottom: 9px; +} +legend+.control-group { + margin-top: 18px; + -webkit-margin-top-collapse: separate; +} +.form-horizontal .control-group { + margin-bottom: 18px; +*zoom:1; +} +.form-horizontal .control-group:before, .form-horizontal .control-group:after { + display: table; + content: ""; +} +.form-horizontal .control-group:after { + clear: both; +} +.form-horizontal .control-label { + float: left; + width: 140px; + padding-top: 5px; + text-align: right; +} +.form-horizontal .controls { + margin-left: 160px; +*display:inline-block; +*margin-left:0; +*padding-left:20px; +} +.form-horizontal .help-block { + margin-top: 9px; + margin-bottom: 0; +} +.form-horizontal .form-actions { + padding-left: 160px; +} +table { + max-width: 100%; + border-collapse: collapse; + border-spacing: 0; + background-color: transparent; +} +.table { + width: 100%; + margin-bottom: 18px; +} +.table th, .table td { + padding: 8px; + line-height: 18px; + text-align: left; + vertical-align: top; + border-top: 1px solid #dddddd; +} +.table th { + font-weight: bold; +} +.table thead th { + vertical-align: bottom; +} +.table colgroup+thead tr:first-child th, .table colgroup+thead tr:first-child td, .table thead:first-child tr:first-child th, .table thead:first-child tr:first-child td { + border-top: 0; +} +.table tbody+tbody { + border-top: 2px solid #dddddd; +} +.table-condensed th, .table-condensed td { + padding: 4px 5px; +} +.table-bordered { + border: 1px solid #dddddd; + border-left: 0; + border-collapse: separate; +*border-collapse:collapsed; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} +.table-bordered th, .table-bordered td { + border-left: 1px solid #dddddd; +} +.table-bordered thead:first-child tr:first-child th, .table-bordered tbody:first-child tr:first-child th, .table-bordered tbody:first-child tr:first-child td { + border-top: 0; +} +.table-bordered thead:first-child tr:first-child th:first-child, .table-bordered tbody:first-child tr:first-child td:first-child { + -webkit-border-radius: 4px 0 0 0; + -moz-border-radius: 4px 0 0 0; + border-radius: 4px 0 0 0; +} +.table-bordered thead:first-child tr:first-child th:last-child, .table-bordered tbody:first-child tr:first-child td:last-child { + -webkit-border-radius: 0 4px 0 0; + -moz-border-radius: 0 4px 0 0; + border-radius: 0 4px 0 0; +} +.table-bordered thead:last-child tr:last-child th:first-child, .table-bordered tbody:last-child tr:last-child td:first-child { + -webkit-border-radius: 0 0 0 4px; + -moz-border-radius: 0 0 0 4px; + border-radius: 0 0 0 4px; +} +.table-bordered thead:last-child tr:last-child th:last-child, .table-bordered tbody:last-child tr:last-child td:last-child { + -webkit-border-radius: 0 0 4px 0; + -moz-border-radius: 0 0 4px 0; + border-radius: 0 0 4px 0; +} +.table-striped tbody tr:nth-child(odd) td, .table-striped tbody tr:nth-child(odd) th { + background-color: #f9f9f9; +} +.table tbody tr:hover td, .table tbody tr:hover th { + background-color: #f5f5f5; +} +table .span1 { + float: none; + width: 44px; + margin-left: 0; +} +table .span2 { + float: none; + width: 124px; + margin-left: 0; +} +table .span3 { + float: none; + width: 204px; + margin-left: 0; +} +table .span4 { + float: none; + width: 284px; + margin-left: 0; +} +table .span5 { + float: none; + width: 364px; + margin-left: 0; +} +table .span6 { + float: none; + width: 444px; + margin-left: 0; +} +table .span7 { + float: none; + width: 524px; + margin-left: 0; +} +table .span8 { + float: none; + width: 604px; + margin-left: 0; +} +table .span9 { + float: none; + width: 684px; + margin-left: 0; +} +table .span10 { + float: none; + width: 764px; + margin-left: 0; +} +table .span11 { + float: none; + width: 844px; + margin-left: 0; +} +table .span12 { + float: none; + width: 924px; + margin-left: 0; +} +table .span13 { + float: none; + width: 1004px; + margin-left: 0; +} +table .span14 { + float: none; + width: 1084px; + margin-left: 0; +} +table .span15 { + float: none; + width: 1164px; + margin-left: 0; +} +table .span16 { + float: none; + width: 1244px; + margin-left: 0; +} +table .span17 { + float: none; + width: 1324px; + margin-left: 0; +} +table .span18 { + float: none; + width: 1404px; + margin-left: 0; +} +table .span19 { + float: none; + width: 1484px; + margin-left: 0; +} +table .span20 { + float: none; + width: 1564px; + margin-left: 0; +} +table .span21 { + float: none; + width: 1644px; + margin-left: 0; +} +table .span22 { + float: none; + width: 1724px; + margin-left: 0; +} +table .span23 { + float: none; + width: 1804px; + margin-left: 0; +} +table .span24 { + float: none; + width: 1884px; + margin-left: 0; +} +[class^="icon-"], [class*=" icon-"] { +display:inline-block; +width:14px; +height:14px; +line-height:14px; +vertical-align:text-top; +background-image:url("../img/glyphicons-halflings.html"); +background-position:14px 14px; +background-repeat:no-repeat; +*margin-right:.3em; +} +[class^="icon-"]:last-child, [class*=" icon-"]:last-child { +*margin-left:0; +} +.icon-white { + background-image: url("../img/glyphicons-halflings-white.html"); +} +.icon-glass { + background-position: 0 0; +} +.icon-music { + background-position: -24px 0; +} +.icon-search { + background-position: -48px 0; +} +.icon-envelope { + background-position: -72px 0; +} +.icon-heart { + background-position: -96px 0; +} +.icon-star { + background-position: -120px 0; +} +.icon-star-empty { + background-position: -144px 0; +} +.icon-user { + background-position: -168px 0; +} +.icon-film { + background-position: -192px 0; +} +.icon-th-large { + background-position: -216px 0; +} +.icon-th { + background-position: -240px 0; +} +.icon-th-list { + background-position: -264px 0; +} +.icon-ok { + background-position: -288px 0; +} +.icon-remove { + background-position: -312px 0; +} +.icon-zoom-in { + background-position: -336px 0; +} +.icon-zoom-out { + background-position: -360px 0; +} +.icon-off { + background-position: -384px 0; +} +.icon-signal { + background-position: -408px 0; +} +.icon-cog { + background-position: -432px 0; +} +.icon-trash { + background-position: -456px 0; +} +.icon-home { + background-position: 0 -24px; +} +.icon-file { + background-position: -24px -24px; +} +.icon-time { + background-position: -48px -24px; +} +.icon-road { + background-position: -72px -24px; +} +.icon-download-alt { + background-position: -96px -24px; +} +.icon-download { + background-position: -120px -24px; +} +.icon-upload { + background-position: -144px -24px; +} +.icon-inbox { + background-position: -168px -24px; +} +.icon-play-circle { + background-position: -192px -24px; +} +.icon-repeat { + background-position: -216px -24px; +} +.icon-refresh { + background-position: -240px -24px; +} +.icon-list-alt { + background-position: -264px -24px; +} +.icon-lock { + background-position: -287px -24px; +} +.icon-flag { + background-position: -312px -24px; +} +.icon-headphones { + background-position: -336px -24px; +} +.icon-volume-off { + background-position: -360px -24px; +} +.icon-volume-down { + background-position: -384px -24px; +} +.icon-volume-up { + background-position: -408px -24px; +} +.icon-qrcode { + background-position: -432px -24px; +} +.icon-barcode { + background-position: -456px -24px; +} +.icon-tag { + background-position: 0 -48px; +} +.icon-tags { + background-position: -25px -48px; +} +.icon-book { + background-position: -48px -48px; +} +.icon-bookmark { + background-position: -72px -48px; +} +.icon-print { + background-position: -96px -48px; +} +.icon-camera { + background-position: -120px -48px; +} +.icon-font { + background-position: -144px -48px; +} +.icon-bold { + background-position: -167px -48px; +} +.icon-italic { + background-position: -192px -48px; +} +.icon-text-height { + background-position: -216px -48px; +} +.icon-text-width { + background-position: -240px -48px; +} +.icon-align-left { + background-position: -264px -48px; +} +.icon-align-center { + background-position: -288px -48px; +} +.icon-align-right { + background-position: -312px -48px; +} +.icon-align-justify { + background-position: -336px -48px; +} +.icon-list { + background-position: -360px -48px; +} +.icon-indent-left { + background-position: -384px -48px; +} +.icon-indent-right { + background-position: -408px -48px; +} +.icon-facetime-video { + background-position: -432px -48px; +} +.icon-picture { + background-position: -456px -48px; +} +.icon-pencil { + background-position: 0 -72px; +} +.icon-map-marker { + background-position: -24px -72px; +} +.icon-adjust { + background-position: -48px -72px; +} +.icon-tint { + background-position: -72px -72px; +} +.icon-edit { + background-position: -96px -72px; +} +.icon-share { + background-position: -120px -72px; +} +.icon-check { + background-position: -144px -72px; +} +.icon-move { + background-position: -168px -72px; +} +.icon-step-backward { + background-position: -192px -72px; +} +.icon-fast-backward { + background-position: -216px -72px; +} +.icon-backward { + background-position: -240px -72px; +} +.icon-play { + background-position: -264px -72px; +} +.icon-pause { + background-position: -288px -72px; +} +.icon-stop { + background-position: -312px -72px; +} +.icon-forward { + background-position: -336px -72px; +} +.icon-fast-forward { + background-position: -360px -72px; +} +.icon-step-forward { + background-position: -384px -72px; +} +.icon-eject { + background-position: -408px -72px; +} +.icon-chevron-left { + background-position: -432px -72px; +} +.icon-chevron-right { + background-position: -456px -72px; +} +.icon-plus-sign { + background-position: 0 -96px; +} +.icon-minus-sign { + background-position: -24px -96px; +} +.icon-remove-sign { + background-position: -48px -96px; +} +.icon-ok-sign { + background-position: -72px -96px; +} +.icon-question-sign { + background-position: -96px -96px; +} +.icon-info-sign { + background-position: -120px -96px; +} +.icon-screenshot { + background-position: -144px -96px; +} +.icon-remove-circle { + background-position: -168px -96px; +} +.icon-ok-circle { + background-position: -192px -96px; +} +.icon-ban-circle { + background-position: -216px -96px; +} +.icon-arrow-left { + background-position: -240px -96px; +} +.icon-arrow-right { + background-position: -264px -96px; +} +.icon-arrow-up { + background-position: -289px -96px; +} +.icon-arrow-down { + background-position: -312px -96px; +} +.icon-share-alt { + background-position: -336px -96px; +} +.icon-resize-full { + background-position: -360px -96px; +} +.icon-resize-small { + background-position: -384px -96px; +} +.icon-plus { + background-position: -408px -96px; +} +.icon-minus { + background-position: -433px -96px; +} +.icon-asterisk { + background-position: -456px -96px; +} +.icon-exclamation-sign { + background-position: 0 -120px; +} +.icon-gift { + background-position: -24px -120px; +} +.icon-leaf { + background-position: -48px -120px; +} +.icon-fire { + background-position: -72px -120px; +} +.icon-eye-open { + background-position: -96px -120px; +} +.icon-eye-close { + background-position: -120px -120px; +} +.icon-warning-sign { + background-position: -144px -120px; +} +.icon-plane { + background-position: -168px -120px; +} +.icon-calendar { + background-position: -192px -120px; +} +.icon-random { + background-position: -216px -120px; +} +.icon-comment { + background-position: -240px -120px; +} +.icon-magnet { + background-position: -264px -120px; +} +.icon-chevron-up { + background-position: -288px -120px; +} +.icon-chevron-down { + background-position: -313px -119px; +} +.icon-retweet { + background-position: -336px -120px; +} +.icon-shopping-cart { + background-position: -360px -120px; +} +.icon-folder-close { + background-position: -384px -120px; +} +.icon-folder-open { + background-position: -408px -120px; +} +.icon-resize-vertical { + background-position: -432px -119px; +} +.icon-resize-horizontal { + background-position: -456px -118px; +} +.dropdown { + position: relative; +} +.dropdown-toggle { +*margin-bottom:-3px; +} +.dropdown-toggle:active, .open .dropdown-toggle { + outline: 0; +} +.caret { + display: inline-block; + width: 0; + height: 0; + vertical-align: top; + border-left: 4px solid transparent; + border-right: 4px solid transparent; + border-top: 4px solid #000000; + opacity: 0.3; + filter: alpha(opacity=30); + content: ""; +} +.dropdown .caret { + margin-top: 8px; + margin-left: 2px; +} +.dropdown:hover .caret, .open.dropdown .caret { + opacity: 1; + filter: alpha(opacity=100); +} +.dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: 1000; + float: left; + display: none; + min-width: 160px; + padding: 4px 0; + margin: 0; + list-style: none; + background-color: #ffffff; + border-color: #ccc; + border-color: rgba(0, 0, 0, 0.2); + border-style: solid; + border-width: 1px; + -webkit-border-radius: 0 0 5px 5px; + -moz-border-radius: 0 0 5px 5px; + border-radius: 0 0 5px 5px; + -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + -webkit-background-clip: padding-box; + -moz-background-clip: padding; + background-clip: padding-box; +*border-right-width:2px; +*border-bottom-width:2px; +} +.dropdown-menu.pull-right { + right: 0; + left: auto; +} +.dropdown-menu .divider { + height: 1px; + margin: 8px 1px; + overflow: hidden; + background-color: #e5e5e5; + border-bottom: 1px solid #ffffff; +*width:100%; +*margin:-5px 0 5px; +} +.dropdown-menu a { + display: block; + padding: 3px 15px; + clear: both; + font-weight: normal; + line-height: 18px; + color: #333333; + white-space: nowrap; +} +.dropdown-menu li>a:hover, .dropdown-menu .active>a, .dropdown-menu .active>a:hover { + color: #ffffff; + text-decoration: none; + background-color: #0088cc; +} +.dropdown.open { +*z-index:1000; +} +.dropdown.open .dropdown-toggle { + color: #ffffff; + background: #ccc; + background: rgba(0, 0, 0, 0.3); +} +.dropdown.open .dropdown-menu { + display: block; +} +.pull-right .dropdown-menu { + left: auto; + right: 0; +} +.dropup .caret, .navbar-fixed-bottom .dropdown .caret { + border-top: 0; + border-bottom: 4px solid #000000; + content: "\2191"; +} +.dropup .dropdown-menu, .navbar-fixed-bottom .dropdown .dropdown-menu { + top: auto; + bottom: 100%; + margin-bottom: 1px; +} +.typeahead { + margin-top: 2px; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} +.well { + min-height: 20px; + padding: 19px; + margin-bottom: 20px; + background-color: #f5f5f5; + border: 1px solid #eee; + border: 1px solid rgba(0, 0, 0, 0.05); + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); +} +.well blockquote { + border-color: #ddd; + border-color: rgba(0, 0, 0, 0.15); +} +.well-large { + padding: 24px; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; +} +.well-small { + padding: 9px; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} +.fade { + -webkit-transition: opacity 0.15s linear; + -moz-transition: opacity 0.15s linear; + -ms-transition: opacity 0.15s linear; + -o-transition: opacity 0.15s linear; + transition: opacity 0.15s linear; + opacity: 0; +} +.fade.in { + opacity: 1; +} +.collapse { + -webkit-transition: height 0.35s ease; + -moz-transition: height 0.35s ease; + -ms-transition: height 0.35s ease; + -o-transition: height 0.35s ease; + transition: height 0.35s ease; + position: relative; + overflow: hidden; + height: 0; +} +.collapse.in { + height: auto; +} +.close { + float: right; + font-size: 20px; + font-weight: bold; + line-height: 18px; + color: #000000; + text-shadow: 0 1px 0 #ffffff; + opacity: 0.2; + filter: alpha(opacity=20); +} +.close:hover { + color: #000000; + text-decoration: none; + opacity: 0.4; + filter: alpha(opacity=40); + cursor: pointer; +} + + +/**/ + +.btn { + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + -ms-border-radius: 4px; + -o-border-radius: 4px; + border-radius: 4px; + -webkit-box-shadow: inset rgba(255, 255, 255, 0.1) 0 1px 0, rgba(0, 0, 0, 0.1) 0 1px 2px; + -moz-box-shadow: inset rgba(255, 255, 255, 0.1) 0 1px 0, rgba(0, 0, 0, 0.1) 0 1px 2px; + box-shadow: inset rgba(255, 255, 255, 0.1) 0 1px 0, rgba(0, 0, 0, 0.1) 0 1px 2px; + background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, rgba(255, 255, 255, 0)), color-stop(100%, rgba(128, 128, 128, 0.1))); + background-image: -webkit-linear-gradient(rgba(255, 255, 255, 0), rgba(128, 128, 128, 0.1)); + background-image: -moz-linear-gradient(rgba(255, 255, 255, 0), rgba(128, 128, 128, 0.1)); + background-image: -o-linear-gradient(rgba(255, 255, 255, 0), rgba(128, 128, 128, 0.1)); + background-image: linear-gradient(rgba(255, 255, 255, 0), rgba(128, 128, 128, 0.1)); + background-color: white; + border-color: whitesmoke whitesmoke #cfcfcf; + border-color: rgba(0, 0, 0, 0.05) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.15); + color: #333333; + *background-color: whitesmoke; + font-size: 14px; + line-height: 22px; + -webkit-transition: background-color 0.2s; + -moz-transition: background-color 0.2s; + -o-transition: background-color 0.2s; + transition: background-color 0.2s; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.15) rgba(0, 0, 0, 0.2); + border-style: solid; + border-width: 1px; + cursor: pointer; + display: inline-block; + margin-bottom: 0; + padding: 2px 12px; + text-align: center; + vertical-align: middle; + *border: 0; + *display: inline; + *zoom: 1; + *margin-left: .3em; +} +.btn:hover, .btn:active, .btn.active, .btn.disabled, .btn[disabled] { + background-color: whitesmoke; + color: #333333; + *background-color: #e8e8e8; +} +.btn:active, .btn.active { + background-color: #dbdbdb \9; +} +.btn:first-child { +*margin-left:0; +} +.btn:hover { + color: #333333; + text-decoration: none; + background-color: #e6e6e6; + background-position: 0 -15px; + -webkit-transition: background-position 0.1s linear; + -moz-transition: background-position 0.1s linear; + -ms-transition: background-position 0.1s linear; + -o-transition: background-position 0.1s linear; + transition: background-position 0.1s linear; +} +.btn:focus { + outline: thin dotted #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} +.btn.active, .btn:active { + -webkit-box-shadow: inset 0 2px 3px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 2px 3px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 2px 3px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); + outline: 0; +} +.btn.disabled, .btn[disabled] { + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; + filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=65); + opacity: 0.65; + background-image: none; + cursor: default; +} +.btn-large { + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + -ms-border-radius: 6px; + -o-border-radius: 6px; + border-radius: 6px; + font-size: 16px; + line-height: 24px; + line-height: 22px; + padding: 6px 14px; +} +.btn-large [class^="icon-"] { + margin-top: 1px; +} +.btn-small { + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + -ms-border-radius: 3px; + -o-border-radius: 3px; + border-radius: 3px; + font-size: 12px; + line-height: 24px; + line-height: 22px; + padding: 0 9px; +} +.btn-small [class^="icon-"] { + margin-top: -1px; +} +.btn-mini { + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + -ms-border-radius: 3px; + -o-border-radius: 3px; + border-radius: 3px; + font-size: 11px; + line-height: 24px; + line-height: 22px; + padding: 0 6px; +} +.btn-primary, .btn-primary:hover, .btn-warning, .btn-warning:hover, .btn-danger, .btn-danger:hover, .btn-success, .btn-success:hover, .btn-info, .btn-info:hover, .btn-inverse, .btn-inverse:hover { + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + color: #ffffff; +} +.btn-primary.active, .btn-warning.active, .btn-danger.active, .btn-success.active, .btn-info.active, .btn-inverse.active { + color: rgba(255, 255, 255, 0.75); +} +.btn-primary { + background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, rgba(33, 169, 236, 0)), color-stop(100%, rgba(1, 9, 13, 0.1))); + background-image: -webkit-linear-gradient(rgba(33, 169, 236, 0), rgba(1, 9, 13, 0.1)); + background-image: -moz-linear-gradient(rgba(33, 169, 236, 0), rgba(1, 9, 13, 0.1)); + background-image: -o-linear-gradient(rgba(33, 169, 236, 0), rgba(1, 9, 13, 0.1)); + background-image: linear-gradient(rgba(33, 169, 236, 0), rgba(1, 9, 13, 0.1)); + background-color: #21a9ec; + border-color: #1399dc #1399dc #0d6895; + border-color: rgba(0, 0, 0, 0.05) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.15); + color: white; + text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.15); + *background-color: #1399dc; +} +.btn-primary:hover, .btn-primary:active, .btn-primary.active, .btn-primary.disabled, .btn-primary[disabled] { + background-color: #1399dc; + color: white; + *background-color: #1189c4; +} +.btn-primary:active, .btn-primary.active { + background-color: #0f79ad \9; +} +.btn-warning { + background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, rgba(245, 167, 50, 0)), color-stop(100%, rgba(38, 24, 2, 0.1))); + background-image: -webkit-linear-gradient(rgba(245, 167, 50, 0), rgba(38, 24, 2, 0.1)); + background-image: -moz-linear-gradient(rgba(245, 167, 50, 0), rgba(38, 24, 2, 0.1)); + background-image: -o-linear-gradient(rgba(245, 167, 50, 0), rgba(38, 24, 2, 0.1)); + background-image: linear-gradient(rgba(245, 167, 50, 0), rgba(38, 24, 2, 0.1)); + background-color: #f5a732; + border-color: #f49a15 #f49a15 #b36f09; + border-color: rgba(0, 0, 0, 0.05) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.15); + color: white; + text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.15); + *background-color: #f49a15; +} +.btn-warning:hover, .btn-warning:active, .btn-warning.active, .btn-warning.disabled, .btn-warning[disabled] { + background-color: #f49a15; + color: white; + *background-color: #e48d0b; +} +.btn-warning:active, .btn-warning.active { + background-color: #cb7e0a \9; +} +.btn-danger { + background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, rgba(219, 51, 37, 0)), color-stop(100%, rgba(1, 0, 0, 0.1))); + background-image: -webkit-linear-gradient(rgba(219, 51, 37, 0), rgba(1, 0, 0, 0.1)); + background-image: -moz-linear-gradient(rgba(219, 51, 37, 0), rgba(1, 0, 0, 0.1)); + background-image: -o-linear-gradient(rgba(219, 51, 37, 0), rgba(1, 0, 0, 0.1)); + background-image: linear-gradient(rgba(219, 51, 37, 0), rgba(1, 0, 0, 0.1)); + background-color: #db3325; + border-color: #bd2b1f #bd2b1f #7b1c14; + border-color: rgba(0, 0, 0, 0.05) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.15); + color: white; + text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.15); + *background-color: #bd2b1f; +} +.btn-danger:hover, .btn-danger:active, .btn-danger.active, .btn-danger.disabled, .btn-danger[disabled] { + background-color: #bd2b1f; + color: white; + *background-color: #a7261c; +} +.btn-danger:active, .btn-danger.active { + background-color: #912118 \9; +} +.btn-success { + background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, rgba(126, 178, 22, 0)), color-stop(100%, rgba(0, 0, 0, 0.1))); + background-image: -webkit-linear-gradient(rgba(126, 178, 22, 0), rgba(0, 0, 0, 0.1)); + background-image: -moz-linear-gradient(rgba(126, 178, 22, 0), rgba(0, 0, 0, 0.1)); + background-image: -o-linear-gradient(rgba(126, 178, 22, 0), rgba(0, 0, 0, 0.1)); + background-image: linear-gradient(rgba(126, 178, 22, 0), rgba(0, 0, 0, 0.1)); + background-color: #7eb216; + border-color: #6e9b13 #6e9b13 #3e570b; + border-color: rgba(0, 0, 0, 0.05) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.15); + color: white; + text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.15); + *background-color: #6e9b13; +} +.btn-success:hover, .btn-success:active, .btn-success.active, .btn-success.disabled, .btn-success[disabled] { + background-color: #6e9b13; + color: white; + *background-color: #5e8510; +} +.btn-success:active, .btn-success.active { + background-color: #4e6e0e \9; +} +.btn-info { + background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, rgba(78, 178, 213, 0)), color-stop(100%, rgba(7, 23, 29, 0.1))); + background-image: -webkit-linear-gradient(rgba(78, 178, 213, 0), rgba(7, 23, 29, 0.1)); + background-image: -moz-linear-gradient(rgba(78, 178, 213, 0), rgba(7, 23, 29, 0.1)); + background-image: -o-linear-gradient(rgba(78, 178, 213, 0), rgba(7, 23, 29, 0.1)); + background-image: linear-gradient(rgba(78, 178, 213, 0), rgba(7, 23, 29, 0.1)); + background-color: #4eb2d5; + border-color: #35a7cf #35a7cf #237795; + border-color: rgba(0, 0, 0, 0.05) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.15); + color: white; + text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.15); + *background-color: #35a7cf; +} +.btn-info:hover, .btn-info:active, .btn-info.active, .btn-info.disabled, .btn-info[disabled] { + background-color: #35a7cf; + color: white; + *background-color: #2d98be; +} +.btn-info:active, .btn-info.active { + background-color: #2888a9 \9; +} +.btn-inverse { + background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, rgba(85, 85, 85, 0)), color-stop(100%, rgba(0, 0, 0, 0.1))); + background-image: -webkit-linear-gradient(rgba(85, 85, 85, 0), rgba(0, 0, 0, 0.1)); + background-image: -moz-linear-gradient(rgba(85, 85, 85, 0), rgba(0, 0, 0, 0.1)); + background-image: -o-linear-gradient(rgba(85, 85, 85, 0), rgba(0, 0, 0, 0.1)); + background-image: linear-gradient(rgba(85, 85, 85, 0), rgba(0, 0, 0, 0.1)); + background-color: #555555; + border-color: #464646 #464646 #1f1f1f; + border-color: rgba(0, 0, 0, 0.05) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.15); + color: white; + text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.15); + *background-color: #464646; +} +.btn-inverse:hover, .btn-inverse:active, .btn-inverse.active, .btn-inverse.disabled, .btn-inverse[disabled] { + background-color: #464646; + color: white; + *background-color: #393939; +} +.btn-inverse:active, .btn-inverse.active { + background-color: #2c2c2c \9; +} +button.btn, input[type="submit"].btn { +*padding-top:2px; +*padding-bottom:2px; +} +button.btn::-moz-focus-inner, input[type="submit"].btn::-moz-focus-inner { +padding:0; +border:0; +} +button.btn.btn-large, input[type="submit"].btn.btn-large { +*padding-top:7px; +*padding-bottom:7px; +} +button.btn.btn-small, input[type="submit"].btn.btn-small { +*padding-top:3px; +*padding-bottom:3px; +} +button.btn.btn-mini, input[type="submit"].btn.btn-mini { +*padding-top:1px; +*padding-bottom:1px; +} +.btn-group { + position: relative; +*zoom:1; +*margin-left:.3em; +} +.btn-group:before, .btn-group:after { + display: table; + content: ""; +} +.btn-group:after { + clear: both; +} +.btn-group:first-child { +*margin-left:0; +} +.btn-group+.btn-group { + margin-left: 5px; +} +.btn-toolbar { + margin-top: 9px; + margin-bottom: 9px; +} +.btn-toolbar .btn-group { + display: inline-block; +*display:inline; +*zoom:1; +} +.btn-group .btn { + position: relative; + float: left; + margin-left: -1px; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +.btn-group .btn:first-child { + margin-left: 0; + -webkit-border-top-left-radius: 4px; + -moz-border-radius-topleft: 4px; + border-top-left-radius: 4px; + -webkit-border-bottom-left-radius: 4px; + -moz-border-radius-bottomleft: 4px; + border-bottom-left-radius: 4px; +} +.btn-group .btn:last-child, .btn-group .dropdown-toggle { + -webkit-border-top-right-radius: 4px; + -moz-border-radius-topright: 4px; + border-top-right-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -moz-border-radius-bottomright: 4px; + border-bottom-right-radius: 4px; +} +.btn-group .btn.large:first-child { + margin-left: 0; + -webkit-border-top-left-radius: 6px; + -moz-border-radius-topleft: 6px; + border-top-left-radius: 6px; + -webkit-border-bottom-left-radius: 6px; + -moz-border-radius-bottomleft: 6px; + border-bottom-left-radius: 6px; +} +.btn-group .btn.large:last-child, .btn-group .large.dropdown-toggle { + -webkit-border-top-right-radius: 6px; + -moz-border-radius-topright: 6px; + border-top-right-radius: 6px; + -webkit-border-bottom-right-radius: 6px; + -moz-border-radius-bottomright: 6px; + border-bottom-right-radius: 6px; +} +.btn-group .btn:hover, .btn-group .btn:focus, .btn-group .btn:active, .btn-group .btn.active { + z-index: 2; +} +.btn-group .dropdown-toggle:active, .btn-group.open .dropdown-toggle { + outline: 0; +} +.btn-group .dropdown-toggle { + padding-left: 8px; + padding-right: 8px; + -webkit-box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); +*padding-top:3px; +*padding-bottom:3px; +} +.btn-group .btn-mini.dropdown-toggle { + padding-left: 5px; + padding-right: 5px; +*padding-top:1px; +*padding-bottom:1px; +} +.btn-group .btn-small.dropdown-toggle { +*padding-top:4px; +*padding-bottom:4px; +} +.btn-group .btn-large.dropdown-toggle { + padding-left: 12px; + padding-right: 12px; +} +.btn-group.open { +*z-index:1000; +} +.btn-group.open .dropdown-menu { + display: block; + margin-top: 1px; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; +} +.btn-group.open .dropdown-toggle { + background-image: none; + -webkit-box-shadow: inset 0 1px 6px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 1px 6px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 6px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); +} + + +/**/ + + +.btn .caret { + margin-left: 0; + margin-top: 10px; + *margin-top: 5px; +} +.btn:hover .caret, .open.btn-group .caret { + opacity: 1; + filter: alpha(opacity=100); +} +.btn-mini .caret { + margin-top: 5px; +} +.btn-small .caret { + margin-top: 6px; +} +.btn-large .caret { + margin-top: 6px; + border-left: 5px solid transparent; + border-right: 5px solid transparent; + border-top: 5px solid #000000; +} +.btn-primary .caret, .btn-warning .caret, .btn-danger .caret, .btn-info .caret, .btn-success .caret, .btn-inverse .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; + opacity: 0.75; + filter: alpha(opacity=75); +} +.alert { + padding: 8px 35px 8px 14px; + margin-bottom: 18px; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); + background-color: #fcf8e3; + border: 1px solid #fbeed5; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + color: #c09853; +} +.alert-heading { + color: inherit; +} +.alert .close { + position: relative; + top: -2px; + right: -21px; + line-height: 18px; +} +.alert-success { + background-color: #dff0d8; + border-color: #d6e9c6; + color: #468847; +} +.alert-danger, .alert-error { + background-color: #f2dede; + border-color: #eed3d7; + color: #b94a48; +} +.alert-info { + background-color: #d9edf7; + border-color: #bce8f1; + color: #3a87ad; +} +.alert-block { + padding-top: 14px; + padding-bottom: 14px; +} +.alert-block>p, .alert-block>ul { + margin-bottom: 0; +} +.alert-block p+p { + margin-top: 5px; +} +.nav { + margin-left: 0; + margin-bottom: 18px; + list-style: none; +} +.nav>li>a { + display: block; +} +.nav>li>a:hover { + text-decoration: none; + background-color: #eeeeee; +} +.nav .nav-header { + display: block; + padding: 3px 15px; + font-size: 11px; + font-weight: bold; + line-height: 18px; + color: #999999; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); + text-transform: uppercase; +} +.nav li+.nav-header { + margin-top: 9px; +} +.nav-list { + padding-left: 15px; + padding-right: 15px; + margin-bottom: 0; +} +.nav-list>li>a, .nav-list .nav-header { + margin-left: -15px; + margin-right: -15px; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); +} +.nav-list>li>a { + padding: 3px 15px; +} +.nav-list>.active>a, .nav-list>.active>a:hover { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2); + background-color: #0088cc; +} +.nav-list [class^="icon-"] { + margin-right: 2px; +} +.nav-list .divider { + height: 1px; + margin: 8px 1px; + overflow: hidden; + background-color: #e5e5e5; + border-bottom: 1px solid #ffffff; +*width:100%; +*margin:-5px 0 5px; +} +.nav-tabs, .nav-pills { +*zoom:1; +} +.nav-tabs:before, .nav-pills:before, .nav-tabs:after, .nav-pills:after { + display: table; + content: ""; +} +.nav-tabs:after, .nav-pills:after { + clear: both; +} +.nav-tabs>li, .nav-pills>li { + float: left; +} +.nav-tabs>li>a, .nav-pills>li>a { + padding-right: 12px; + padding-left: 12px; + margin-right: 2px; + line-height: 14px; +} +.nav-tabs { + border-bottom: 1px solid #ddd; +} +.nav-tabs>li { + margin-bottom: -1px; +} +.nav-tabs>li>a { + padding-top: 8px; + padding-bottom: 8px; + line-height: 18px; + border: 1px solid transparent; + -webkit-border-radius: 4px 4px 0 0; + -moz-border-radius: 4px 4px 0 0; + border-radius: 4px 4px 0 0; +} +.nav-tabs>li>a:hover { + border-color: #eeeeee #eeeeee #dddddd; +} +.nav-tabs>.active>a, .nav-tabs>.active>a:hover { + color: #555555; + background-color: #ffffff; + border: 1px solid #ddd; + border-bottom-color: transparent; + cursor: default; +} +.nav-pills>li>a { + padding-top: 8px; + padding-bottom: 8px; + margin-top: 2px; + margin-bottom: 2px; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; +} +.nav-pills>.active>a, .nav-pills>.active>a:hover { + color: #ffffff; + background-color: #0088cc; +} +.nav-stacked>li { + float: none; +} +.nav-stacked>li>a { + margin-right: 0; +} +.nav-tabs.nav-stacked { + border-bottom: 0; +} +.nav-tabs.nav-stacked>li>a { + border: 1px solid #ddd; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +.nav-tabs.nav-stacked>li:first-child>a { + -webkit-border-radius: 4px 4px 0 0; + -moz-border-radius: 4px 4px 0 0; + border-radius: 4px 4px 0 0; +} +.nav-tabs.nav-stacked>li:last-child>a { + -webkit-border-radius: 0 0 4px 4px; + -moz-border-radius: 0 0 4px 4px; + border-radius: 0 0 4px 4px; +} +.nav-tabs.nav-stacked>li>a:hover { + border-color: #ddd; + z-index: 2; +} +.nav-pills.nav-stacked>li>a { + margin-bottom: 3px; +} +.nav-pills.nav-stacked>li:last-child>a { + margin-bottom: 1px; +} +.nav-tabs .dropdown-menu, .nav-pills .dropdown-menu { + margin-top: 1px; + border-width: 1px; +} +.nav-pills .dropdown-menu { + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} +.nav-tabs .dropdown-toggle .caret, .nav-pills .dropdown-toggle .caret { + border-top-color: #0088cc; + border-bottom-color: #0088cc; + margin-top: 6px; +} +.nav-tabs .dropdown-toggle:hover .caret, .nav-pills .dropdown-toggle:hover .caret { + border-top-color: #005580; + border-bottom-color: #005580; +} +.nav-tabs .active .dropdown-toggle .caret, .nav-pills .active .dropdown-toggle .caret { + border-top-color: #333333; + border-bottom-color: #333333; +} +.nav>.dropdown.active>a:hover { + color: #000000; + cursor: pointer; +} +.nav-tabs .open .dropdown-toggle, .nav-pills .open .dropdown-toggle, .nav>.open.active>a:hover { + color: #ffffff; + background-color: #999999; + border-color: #999999; +} +.nav .open .caret, .nav .open.active .caret, .nav .open a:hover .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; + opacity: 1; + filter: alpha(opacity=100); +} +.tabs-stacked .open>a:hover { + border-color: #999999; +} +.tabbable { +*zoom:1; +} +.tabbable:before, .tabbable:after { + display: table; + content: ""; +} +.tabbable:after { + clear: both; +} +.tab-content { + display: table; + width: 100%; +} +.tabs-below .nav-tabs, .tabs-right .nav-tabs, .tabs-left .nav-tabs { + border-bottom: 0; +} +.tab-content>.tab-pane, .pill-content>.pill-pane { + display: none; +} +.tab-content>.active, .pill-content>.active { + display: block; +} +.tabs-below .nav-tabs { + border-top: 1px solid #ddd; +} +.tabs-below .nav-tabs>li { + margin-top: -1px; + margin-bottom: 0; +} +.tabs-below .nav-tabs>li>a { + -webkit-border-radius: 0 0 4px 4px; + -moz-border-radius: 0 0 4px 4px; + border-radius: 0 0 4px 4px; +} +.tabs-below .nav-tabs>li>a:hover { + border-bottom-color: transparent; + border-top-color: #ddd; +} +.tabs-below .nav-tabs .active>a, .tabs-below .nav-tabs .active>a:hover { + border-color: transparent #ddd #ddd #ddd; +} +.tabs-left .nav-tabs>li, .tabs-right .nav-tabs>li { + float: none; +} +.tabs-left .nav-tabs>li>a, .tabs-right .nav-tabs>li>a { + min-width: 74px; + margin-right: 0; + margin-bottom: 3px; +} +.tabs-left .nav-tabs { + float: left; + margin-right: 19px; + border-right: 1px solid #ddd; +} +.tabs-left .nav-tabs>li>a { + margin-right: -1px; + -webkit-border-radius: 4px 0 0 4px; + -moz-border-radius: 4px 0 0 4px; + border-radius: 4px 0 0 4px; +} +.tabs-left .nav-tabs>li>a:hover { + border-color: #eeeeee #dddddd #eeeeee #eeeeee; +} +.tabs-left .nav-tabs .active>a, .tabs-left .nav-tabs .active>a:hover { + border-color: #ddd transparent #ddd #ddd; +*border-right-color:#ffffff; +} +.tabs-right .nav-tabs { + float: right; + margin-left: 19px; + border-left: 1px solid #ddd; +} +.tabs-right .nav-tabs>li>a { + margin-left: -1px; + -webkit-border-radius: 0 4px 4px 0; + -moz-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; +} +.tabs-right .nav-tabs>li>a:hover { + border-color: #eeeeee #eeeeee #eeeeee #dddddd; +} +.tabs-right .nav-tabs .active>a, .tabs-right .nav-tabs .active>a:hover { + border-color: #ddd #ddd #ddd transparent; +*border-left-color:#ffffff; +} +.navbar { +*position:relative; +*z-index:2; + overflow: visible; + margin-bottom: 18px; +} +.navbar-inner { + padding-left: 20px; + padding-right: 20px; + background-color: #2c2c2c; + background-image: -moz-linear-gradient(top, #333333, #222222); + background-image: -ms-linear-gradient(top, #333333, #222222); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#333333), to(#222222)); + background-image: -webkit-linear-gradient(top, #333333, #222222); + background-image: -o-linear-gradient(top, #333333, #222222); + background-image: linear-gradient(top, #333333, #222222); + background-repeat: repeat-x; +filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#333333', endColorstr='#222222', GradientType=0); + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1); + -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1); + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1); +} +.navbar .container { + width: auto; +} +.btn-navbar { + display: none; + float: right; + padding: 7px 10px; + margin-left: 5px; + margin-right: 5px; + background-color: #2c2c2c; + background-image: -moz-linear-gradient(top, #333333, #222222); + background-image: -ms-linear-gradient(top, #333333, #222222); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#333333), to(#222222)); + background-image: -webkit-linear-gradient(top, #333333, #222222); + background-image: -o-linear-gradient(top, #333333, #222222); + background-image: linear-gradient(top, #333333, #222222); + background-repeat: repeat-x; +filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#333333', endColorstr='#222222', GradientType=0); + border-color: #222222 #222222 #000000; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); +filter:progid:dximagetransform.microsoft.gradient(enabled=false); + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075); + -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075); +} +.btn-navbar:hover, .btn-navbar:active, .btn-navbar.active, .btn-navbar.disabled, .btn-navbar[disabled] { + background-color: #222222; +} +.btn-navbar:active, .btn-navbar.active { + background-color: #080808 \9; +} +.btn-navbar .icon-bar { + display: block; + width: 18px; + height: 2px; + background-color: #f5f5f5; + -webkit-border-radius: 1px; + -moz-border-radius: 1px; + border-radius: 1px; + -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); + -moz-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); + box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); +} +.btn-navbar .icon-bar+.icon-bar { + margin-top: 3px; +} +.nav-collapse.collapse { + height: auto; +} +.navbar { + color: #999999; +} +.navbar .brand:hover { + text-decoration: none; +} +.navbar .brand { + float: left; + display: block; + padding: 8px 20px 12px; + margin-left: -20px; + font-size: 20px; + font-weight: 200; + line-height: 1; + color: #ffffff; +} +.navbar .navbar-text { + margin-bottom: 0; + line-height: 40px; +} +.navbar .btn, .navbar .btn-group { + margin-top: 5px; + float: right; +} +.navbar .btn-group .btn { + margin-top: 0; +} +.navbar-form { + margin-bottom: 0; +*zoom:1; +} +.navbar-form:before, .navbar-form:after { + display: table; + content: ""; +} +.navbar-form:after { + clear: both; +} +.navbar-form input, .navbar-form select, .navbar-form .radio, .navbar-form .checkbox { + margin-top: 5px; +} +.navbar-form input, .navbar-form select { + display: inline-block; + margin-bottom: 0; +} +.navbar-form input[type="image"], .navbar-form input[type="checkbox"], .navbar-form input[type="radio"] { + margin-top: 3px; +} +.navbar-form .input-append, .navbar-form .input-prepend { + margin-top: 6px; + white-space: nowrap; +} +.navbar-form .input-append input, .navbar-form .input-prepend input { + margin-top: 0; +} +.navbar-search { + position: relative; + float: left; + margin-top: 6px; + margin-bottom: 0; +} +.navbar-search .search-query { + padding: 4px 9px; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 13px; + font-weight: normal; + line-height: 1; + color: #ffffff; + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0px rgba(255, 255, 255, 0.15); + -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0px rgba(255, 255, 255, 0.15); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0px rgba(255, 255, 255, 0.15); + -webkit-transition: none; + -moz-transition: none; + -ms-transition: none; + -o-transition: none; + transition: none; +} +.navbar-search .search-query:-moz-placeholder { +color:#cccccc; +} +.navbar-search .search-query::-webkit-input-placeholder { +color:#cccccc; +} +.navbar-search .search-query:focus, .navbar-search .search-query.focused { + padding: 5px 10px; + color: #333333; + text-shadow: 0 1px 0 #ffffff; + background-color: #ffffff; + border: 0; + -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); + -moz-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); + box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); + outline: 0; +} +.navbar-fixed-top, .navbar-fixed-bottom { + position: fixed; + right: 0; + left: 0; + z-index: 1030; + margin-bottom: 0; +} +.navbar-fixed-top .navbar-inner, .navbar-fixed-bottom .navbar-inner { + padding-left: 0; + padding-right: 0; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +.navbar-fixed-top .container, .navbar-fixed-bottom .container { + width: 940px; +} +.navbar-fixed-top { + top: 0; +} +.navbar-fixed-bottom { + bottom: 0; +} +.navbar .nav { + position: relative; + left: 0; + display: block; + float: left; + margin: 0 10px 0 0; +} +.navbar .nav.pull-right { + float: right; +} +.navbar .nav>li { + display: block; + float: left; +} +.navbar .nav>li>a { + float: none; + padding: 10px 10px 11px; + line-height: 19px; + color: #999999; + text-decoration: none; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); +} +.navbar .nav>li>a:hover { + background-color: transparent; + color: #ffffff; + text-decoration: none; +} +.navbar .nav .active>a, .navbar .nav .active>a:hover { + color: #ffffff; + text-decoration: none; + background-color: #222222; +} +.navbar .divider-vertical { + height: 40px; + width: 1px; + margin: 0 9px; + overflow: hidden; + background-color: #222222; + border-right: 1px solid #333333; +} +.navbar .nav.pull-right { + margin-left: 10px; + margin-right: 0; +} +.navbar .dropdown-menu { + margin-top: 1px; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} +.navbar .dropdown-menu:before { + content: ''; + display: inline-block; + border-left: 7px solid transparent; + border-right: 7px solid transparent; + border-bottom: 7px solid #ccc; + border-bottom-color: rgba(0, 0, 0, 0.2); + position: absolute; + top: -7px; + left: 9px; +} +.navbar .dropdown-menu:after { + content: ''; + display: inline-block; + border-left: 6px solid transparent; + border-right: 6px solid transparent; + border-bottom: 6px solid #ffffff; + position: absolute; + top: -6px; + left: 10px; +} +.navbar-fixed-bottom .dropdown-menu:before { + border-top: 7px solid #ccc; + border-top-color: rgba(0, 0, 0, 0.2); + border-bottom: 0; + bottom: -7px; + top: auto; +} +.navbar-fixed-bottom .dropdown-menu:after { + border-top: 6px solid #ffffff; + border-bottom: 0; + bottom: -6px; + top: auto; +} +.navbar .nav .dropdown-toggle .caret, .navbar .nav .open.dropdown .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; +} +.navbar .nav .active .caret { + opacity: 1; + filter: alpha(opacity=100); +} +.navbar .nav .open>.dropdown-toggle, .navbar .nav .active>.dropdown-toggle, .navbar .nav .open.active>.dropdown-toggle { + background-color: transparent; +} +.navbar .nav .active>.dropdown-toggle:hover { + color: #ffffff; +} +.navbar .nav.pull-right .dropdown-menu, .navbar .nav .dropdown-menu.pull-right { + left: auto; + right: 0; +} +.navbar .nav.pull-right .dropdown-menu:before, .navbar .nav .dropdown-menu.pull-right:before { + left: auto; + right: 12px; +} +.navbar .nav.pull-right .dropdown-menu:after, .navbar .nav .dropdown-menu.pull-right:after { + left: auto; + right: 13px; +} +.breadcrumb { + padding: 7px 14px; + margin: 0 0 18px; + list-style: none; + background-color: #fbfbfb; + background-image: -moz-linear-gradient(top, #ffffff, #f5f5f5); + background-image: -ms-linear-gradient(top, #ffffff, #f5f5f5); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#f5f5f5)); + background-image: -webkit-linear-gradient(top, #ffffff, #f5f5f5); + background-image: -o-linear-gradient(top, #ffffff, #f5f5f5); + background-image: linear-gradient(top, #ffffff, #f5f5f5); + background-repeat: repeat-x; +filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#f5f5f5', GradientType=0); + border: 1px solid #ddd; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + -webkit-box-shadow: inset 0 1px 0 #ffffff; + -moz-box-shadow: inset 0 1px 0 #ffffff; + box-shadow: inset 0 1px 0 #ffffff; +} +.breadcrumb li { + display: inline-block; +*display:inline; +*zoom:1; + text-shadow: 0 1px 0 #ffffff; +} +.breadcrumb .divider { + padding: 0 5px; + color: #999999; +} +.breadcrumb .active a { + color: #333333; +} +.pagination { + height: 36px; + margin: 18px 0; +} +.pagination ul { + display: inline-block; +*display:inline; +*zoom:1; + margin-left: 0; + margin-bottom: 0; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); +} +.pagination li { + display: inline; +} +.pagination a { + float: left; + padding: 0 14px; + line-height: 34px; + text-decoration: none; + border: 1px solid #ddd; + border-left-width: 0; +} +.pagination a:hover, .pagination .active a { + background-color: #f5f5f5; +} +.pagination .active a { + color: #999999; + cursor: default; +} +.pagination .disabled span, .pagination .disabled a, .pagination .disabled a:hover { + color: #999999; + background-color: transparent; + cursor: default; +} +.pagination li:first-child a { + border-left-width: 1px; + -webkit-border-radius: 3px 0 0 3px; + -moz-border-radius: 3px 0 0 3px; + border-radius: 3px 0 0 3px; +} +.pagination li:last-child a { + -webkit-border-radius: 0 3px 3px 0; + -moz-border-radius: 0 3px 3px 0; + border-radius: 0 3px 3px 0; +} +.pagination-centered { + text-align: center; +} +.pagination-right { + text-align: right; +} +.pager { + margin-left: 0; + margin-bottom: 18px; + list-style: none; + text-align: center; +*zoom:1; +} +.pager:before, .pager:after { + display: table; + content: ""; +} +.pager:after { + clear: both; +} +.pager li { + display: inline; +} +.pager a { + display: inline-block; + padding: 5px 14px; + background-color: #fff; + border: 1px solid #ddd; + -webkit-border-radius: 15px; + -moz-border-radius: 15px; + border-radius: 15px; +} +.pager a:hover { + text-decoration: none; + background-color: #f5f5f5; +} +.pager .next a { + float: right; +} +.pager .previous a { + float: left; +} +.pager .disabled a, .pager .disabled a:hover { + color: #999999; + background-color: #fff; + cursor: default; +} +.modal-open .dropdown-menu { + z-index: 2050; +} +.modal-open .dropdown.open { +*z-index:2050; +} +.modal-open .popover { + z-index: 2060; +} +.modal-open .tooltip { + z-index: 2070; +} +.modal-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1040; + background-color: #000000; +} +.modal-backdrop.fade { + opacity: 0; +} +.modal-backdrop, .modal-backdrop.fade.in { + opacity: 0.8; + filter: alpha(opacity=80); +} +.modal { + position: fixed; + top: 50%; + left: 50%; + z-index: 1050; + overflow: auto; + width: 560px; + margin: -250px 0 0 -280px; + background-color: #ffffff; + border: 1px solid #999; + border: 1px solid rgba(0, 0, 0, 0.3); +*border:1px solid #999; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; + -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); + -moz-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); + box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); + -webkit-background-clip: padding-box; + -moz-background-clip: padding-box; + background-clip: padding-box; +} +.modal.fade { + -webkit-transition: opacity .3s linear, top .3s ease-out; + -moz-transition: opacity .3s linear, top .3s ease-out; + -ms-transition: opacity .3s linear, top .3s ease-out; + -o-transition: opacity .3s linear, top .3s ease-out; + transition: opacity .3s linear, top .3s ease-out; + top: -25%; +} +.modal.fade.in { + top: 50%; +} +.modal-header { + padding: 9px 15px; + border-bottom: 1px solid #eee; +} +.modal-header .close { + margin-top: 2px; +} +.modal-body { + overflow-y: auto; + max-height: 400px; + padding: 15px; +} +.modal-form { + margin-bottom: 0; +} +.modal-footer { + padding: 14px 15px 15px; + margin-bottom: 0; + text-align: right; + background-color: #f5f5f5; + border-top: 1px solid #ddd; + -webkit-border-radius: 0 0 6px 6px; + -moz-border-radius: 0 0 6px 6px; + border-radius: 0 0 6px 6px; + -webkit-box-shadow: inset 0 1px 0 #ffffff; + -moz-box-shadow: inset 0 1px 0 #ffffff; + box-shadow: inset 0 1px 0 #ffffff; +*zoom:1; +} +.modal-footer:before, .modal-footer:after { + display: table; + content: ""; +} +.modal-footer:after { + clear: both; +} +.modal-footer .btn+.btn { + margin-left: 5px; + margin-bottom: 0; +} +.modal-footer .btn-group .btn+.btn { + margin-left: -1px; +} +.tooltip { + position: absolute; + z-index: 1020; + display: block; + visibility: visible; + padding: 5px; + font-size: 11px; + opacity: 0; + filter: alpha(opacity=0); +} +.tooltip.in { + opacity: 0.8; + filter: alpha(opacity=80); +} +.tooltip.top { + margin-top: -2px; +} +.tooltip.right { + margin-left: 2px; +} +.tooltip.bottom { + margin-top: 2px; +} +.tooltip.left { + margin-left: -2px; +} +.tooltip.top .tooltip-arrow { + bottom: 0; + left: 50%; + margin-left: -5px; + border-left: 5px solid transparent; + border-right: 5px solid transparent; + border-top: 5px solid #000000; +} +.tooltip.left .tooltip-arrow { + top: 50%; + right: 0; + margin-top: -5px; + border-top: 5px solid transparent; + border-bottom: 5px solid transparent; + border-left: 5px solid #000000; +} +.tooltip.bottom .tooltip-arrow { + top: 0; + left: 50%; + margin-left: -5px; + border-left: 5px solid transparent; + border-right: 5px solid transparent; + border-bottom: 5px solid #000000; +} +.tooltip.right .tooltip-arrow { + top: 50%; + left: 0; + margin-top: -5px; + border-top: 5px solid transparent; + border-bottom: 5px solid transparent; + border-right: 5px solid #000000; +} +.tooltip-inner { + max-width: 200px; + padding: 3px 8px; + color: #ffffff; + text-align: center; + text-decoration: none; + background-color: #000000; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} +.tooltip-arrow { + position: absolute; + width: 0; + height: 0; +} +.popover { + position: absolute; + top: 0; + left: 0; + z-index: 1010; + display: none; + padding: 5px; +} +.popover.top { + margin-top: -5px; +} +.popover.right { + margin-left: 5px; +} +.popover.bottom { + margin-top: 5px; +} +.popover.left { + margin-left: -5px; +} +.popover.top .arrow { + bottom: 0; + left: 50%; + margin-left: -5px; + border-left: 5px solid transparent; + border-right: 5px solid transparent; + border-top: 5px solid #000000; +} +.popover.right .arrow { + top: 50%; + left: 0; + margin-top: -5px; + border-top: 5px solid transparent; + border-bottom: 5px solid transparent; + border-right: 5px solid #000000; +} +.popover.bottom .arrow { + top: 0; + left: 50%; + margin-left: -5px; + border-left: 5px solid transparent; + border-right: 5px solid transparent; + border-bottom: 5px solid #000000; +} +.popover.left .arrow { + top: 50%; + right: 0; + margin-top: -5px; + border-top: 5px solid transparent; + border-bottom: 5px solid transparent; + border-left: 5px solid #000000; +} +.popover .arrow { + position: absolute; + width: 0; + height: 0; +} +.popover-inner { + padding: 3px; + width: 280px; + overflow: hidden; + background: #000000; + background: rgba(0, 0, 0, 0.8); + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; + -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); + -moz-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); + box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); +} +.popover-title { + padding: 9px 15px; + line-height: 1; + background-color: #f5f5f5; + border-bottom: 1px solid #eee; + -webkit-border-radius: 3px 3px 0 0; + -moz-border-radius: 3px 3px 0 0; + border-radius: 3px 3px 0 0; +} +.popover-content { + padding: 14px; + background-color: #ffffff; + -webkit-border-radius: 0 0 3px 3px; + -moz-border-radius: 0 0 3px 3px; + border-radius: 0 0 3px 3px; + -webkit-background-clip: padding-box; + -moz-background-clip: padding-box; + background-clip: padding-box; +} +.popover-content p, .popover-content ul, .popover-content ol { + margin-bottom: 0; +} +.thumbnails { + margin-left: -20px; + list-style: none; +*zoom:1; +} +.thumbnails:before, .thumbnails:after { + display: table; + content: ""; +} +.thumbnails:after { + clear: both; +} +.thumbnails>li { + float: left; + margin: 0 0 18px 20px; +} +.thumbnail { + display: block; + padding: 4px; + line-height: 1; + border: 1px solid #ddd; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075); +} +a.thumbnail:hover { + border-color: #0088cc; + -webkit-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); + -moz-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); + box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); +} +.thumbnail>img { + display: block; + max-width: 100%; + margin-left: auto; + margin-right: auto; +} +.thumbnail .caption { + padding: 9px; +} +.label { + padding: 1px 4px 2px; + font-size: 10.998px; + font-weight: bold; + line-height: 13px; + color: #ffffff; + vertical-align: middle; + white-space: nowrap; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #999999; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} +.label:hover { + color: #ffffff; + text-decoration: none; +} +.label-important { + background-color: #b94a48; +} +.label-important:hover { + background-color: #953b39; +} +.label-warning { + background-color: #f89406; +} +.label-warning:hover { + background-color: #c67605; +} +.label-success { + background-color: #468847; +} +.label-success:hover { + background-color: #356635; +} +.label-info { + background-color: #3a87ad; +} +.label-info:hover { + background-color: #2d6987; +} +.label-inverse { + background-color: #333333; +} +.label-inverse:hover { + background-color: #1a1a1a; +} +.badge { + padding: 1px 9px 2px; + font-size: 12.025px; + font-weight: bold; + white-space: nowrap; + color: #ffffff; + background-color: #999999; + -webkit-border-radius: 9px; + -moz-border-radius: 9px; + border-radius: 9px; +} +.badge:hover { + color: #ffffff; + text-decoration: none; + cursor: pointer; +} +.badge-error { + background-color: #b94a48; +} +.badge-error:hover { + background-color: #953b39; +} +.badge-warning { + background-color: #f89406; +} +.badge-warning:hover { + background-color: #c67605; +} +.badge-success { + background-color: #468847; +} +.badge-success:hover { + background-color: #356635; +} +.badge-info { + background-color: #3a87ad; +} +.badge-info:hover { + background-color: #2d6987; +} +.badge-inverse { + background-color: #333333; +} +.badge-inverse:hover { + background-color: #1a1a1a; +} +@-webkit-keyframes progress-bar-stripes { +from { +background-position:0 0; +} +to { + background-position: 40px 0; +} +} +@-moz-keyframes progress-bar-stripes { +from { +background-position:0 0; +} +to { + background-position: 40px 0; +} +} +@-ms-keyframes progress-bar-stripes { +from { +background-position:0 0; +} +to { + background-position: 40px 0; +} +} +@keyframes progress-bar-stripes { +from { +background-position:0 0; +} +to { + background-position: 40px 0; +} +} +.progress { + overflow: hidden; + height: 18px; + margin-bottom: 18px; + background-color: #f7f7f7; + background-image: -moz-linear-gradient(top, #f5f5f5, #f9f9f9); + background-image: -ms-linear-gradient(top, #f5f5f5, #f9f9f9); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f5f5f5), to(#f9f9f9)); + background-image: -webkit-linear-gradient(top, #f5f5f5, #f9f9f9); + background-image: -o-linear-gradient(top, #f5f5f5, #f9f9f9); + background-image: linear-gradient(top, #f5f5f5, #f9f9f9); + background-repeat: repeat-x; +filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f5f5f5', endColorstr='#f9f9f9', GradientType=0); + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); + -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} +.progress .bar { + width: 0%; + height: 18px; + color: #ffffff; + font-size: 12px; + text-align: center; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #0e90d2; + background-image: -moz-linear-gradient(top, #149bdf, #0480be); + background-image: -ms-linear-gradient(top, #149bdf, #0480be); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#149bdf), to(#0480be)); + background-image: -webkit-linear-gradient(top, #149bdf, #0480be); + background-image: -o-linear-gradient(top, #149bdf, #0480be); + background-image: linear-gradient(top, #149bdf, #0480be); + background-repeat: repeat-x; +filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#149bdf', endColorstr='#0480be', GradientType=0); + -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + -moz-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; + -webkit-transition: width 0.6s ease; + -moz-transition: width 0.6s ease; + -ms-transition: width 0.6s ease; + -o-transition: width 0.6s ease; + transition: width 0.6s ease; +} +.progress-striped .bar { + background-color: #149bdf; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + -webkit-background-size: 40px 40px; + -moz-background-size: 40px 40px; + -o-background-size: 40px 40px; + background-size: 40px 40px; +} +.progress.active .bar { + -webkit-animation: progress-bar-stripes 2s linear infinite; + -moz-animation: progress-bar-stripes 2s linear infinite; + animation: progress-bar-stripes 2s linear infinite; +} +.progress-danger .bar { + background-color: #dd514c; + background-image: -moz-linear-gradient(top, #ee5f5b, #c43c35); + background-image: -ms-linear-gradient(top, #ee5f5b, #c43c35); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#c43c35)); + background-image: -webkit-linear-gradient(top, #ee5f5b, #c43c35); + background-image: -o-linear-gradient(top, #ee5f5b, #c43c35); + background-image: linear-gradient(top, #ee5f5b, #c43c35); + background-repeat: repeat-x; +filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#c43c35', GradientType=0); +} +.progress-danger.progress-striped .bar { + background-color: #ee5f5b; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} +.progress-success .bar { + background-color: #5eb95e; + background-image: -moz-linear-gradient(top, #62c462, #57a957); + background-image: -ms-linear-gradient(top, #62c462, #57a957); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#57a957)); + background-image: -webkit-linear-gradient(top, #62c462, #57a957); + background-image: -o-linear-gradient(top, #62c462, #57a957); + background-image: linear-gradient(top, #62c462, #57a957); + background-repeat: repeat-x; +filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#57a957', GradientType=0); +} +.progress-success.progress-striped .bar { + background-color: #62c462; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} +.progress-info .bar { + background-color: #4bb1cf; + background-image: -moz-linear-gradient(top, #5bc0de, #339bb9); + background-image: -ms-linear-gradient(top, #5bc0de, #339bb9); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#339bb9)); + background-image: -webkit-linear-gradient(top, #5bc0de, #339bb9); + background-image: -o-linear-gradient(top, #5bc0de, #339bb9); + background-image: linear-gradient(top, #5bc0de, #339bb9); + background-repeat: repeat-x; +filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#339bb9', GradientType=0); +} +.progress-info.progress-striped .bar { + background-color: #5bc0de; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} +.progress-warning .bar { + background-color: #faa732; + background-image: -moz-linear-gradient(top, #fbb450, #f89406); + background-image: -ms-linear-gradient(top, #fbb450, #f89406); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406)); + background-image: -webkit-linear-gradient(top, #fbb450, #f89406); + background-image: -o-linear-gradient(top, #fbb450, #f89406); + background-image: linear-gradient(top, #fbb450, #f89406); + background-repeat: repeat-x; +filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fbb450', endColorstr='#f89406', GradientType=0); +} +.progress-warning.progress-striped .bar { + background-color: #fbb450; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} +.accordion { + margin-bottom: 18px; +} +.accordion-group { + margin-bottom: 2px; + border: 1px solid #e5e5e5; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} +.accordion-heading { + border-bottom: 0; +} +.accordion-heading .accordion-toggle { + display: block; + padding: 8px 15px; +} +.accordion-inner { + padding: 9px 15px; + border-top: 1px solid #e5e5e5; +} +.carousel { + position: relative; + margin-bottom: 18px; + line-height: 1; +} +.carousel-inner { + overflow: hidden; + width: 100%; + position: relative; +} +.carousel .item { + display: none; + position: relative; + -webkit-transition: 0.6s ease-in-out left; + -moz-transition: 0.6s ease-in-out left; + -ms-transition: 0.6s ease-in-out left; + -o-transition: 0.6s ease-in-out left; + transition: 0.6s ease-in-out left; +} +.carousel .item>img { + display: block; + line-height: 1; +} +.carousel .active, .carousel .next, .carousel .prev { + display: block; +} +.carousel .active { + left: 0; +} +.carousel .next, .carousel .prev { + position: absolute; + top: 0; + width: 100%; +} +.carousel .next { + left: 100%; +} +.carousel .prev { + left: -100%; +} +.carousel .next.left, .carousel .prev.right { + left: 0; +} +.carousel .active.left { + left: -100%; +} +.carousel .active.right { + left: 100%; +} +.carousel-control { + position: absolute; + top: 40%; + left: 15px; + width: 40px; + height: 40px; + margin-top: -20px; + font-size: 60px; + font-weight: 100; + line-height: 30px; + color: #ffffff; + text-align: center; + background: #222222; + border: 3px solid #ffffff; + -webkit-border-radius: 23px; + -moz-border-radius: 23px; + border-radius: 23px; + opacity: 0.5; + filter: alpha(opacity=50); +} +.carousel-control.right { + left: auto; + right: 15px; +} +.carousel-control:hover { + color: #ffffff; + text-decoration: none; + opacity: 0.9; + filter: alpha(opacity=90); +} +.carousel-caption { + position: absolute; + left: 0; + right: 0; + bottom: 0; + padding: 10px 15px 5px; + background: #333333; + background: rgba(0, 0, 0, 0.75); +} +.carousel-caption h4, .carousel-caption p { + color: #ffffff; +} +.hero-unit { + padding: 60px; + margin-bottom: 30px; + background-color: #eeeeee; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; +} +.hero-unit h1 { + margin-bottom: 0; + font-size: 60px; + line-height: 1; + color: inherit; + letter-spacing: -1px; +} +.hero-unit p { + font-size: 18px; + font-weight: 200; + line-height: 27px; + color: inherit; +} +.pull-right { + float: right; +} +.pull-left { + float: left; +} +.hide { + display: none; +} +.show { + display: block; +} +.invisible { + visibility: hidden; +} \ No newline at end of file diff --git a/static/css/dashboard.css b/static/css/dashboard.css new file mode 100644 index 0000000..78dd108 --- /dev/null +++ b/static/css/dashboard.css @@ -0,0 +1,357 @@ +/*------------------------------------------------------------------ +Bootstrap Admin Template by EGrappler.com +------------------------------------------------------------------*/ + + + +/*------------------------------------------------------------------ +[1. Shortcuts / .shortcuts] +*/ + +.shortcuts { + text-align: center; +} + +.shortcuts .shortcut { + width: 22.50%; + display: inline-block; + padding: 12px 0; + margin: 0 .9% 1em; + vertical-align: top; + + text-decoration: none; + + background: #f9f6f1; + + border-radius: 5px; +} + +.shortcuts .shortcut .shortcut-icon { + margin-top: .25em; + margin-bottom: .25em; + + font-size: 32px; + color: #545454; +} + +.shortcuts .shortcut:hover { + background: #00ba8b; +} + +.shortcuts .shortcut:hover span{ + color: #fff; +} + +.shortcuts .shortcut:hover .shortcut-icon { + color: #fff; +} + +.shortcuts .shortcut-label { + display: block; + + font-weight: 400; + color: #545454; +} + + + +/*------------------------------------------------------------------ +[2. Stats / .stats] +*/ + +.stats { + width: 100%; + display: table; + padding: 0 0 0 10px; + margin-top: .5em; + margin-bottom: 1.9em; +} + +.stats .stat { + display: table-cell; + width: 40%; + vertical-align: top; + + font-size: 11px; + font-weight: bold; + color: #999; +} + +.stat-value { + display: block; + margin-bottom: .55em; + + font-size: 30px; + font-weight: bold; + letter-spacing: -2px; + color: #444; +} + +.stat-time { + text-align: center; + padding-top: 1.5em; +} + +.stat-time .stat-value { + color: #19bc9c; + font-size: 40px; +} + +.stats #donut-chart { + height: 100px; + margin-left: -20px; +} + + + + + +/*------------------------------------------------------------------ +[3. News Item / .news-items] +*/ + +.news-items { + margin: 1em 0 0; +} + +.news-items li { + display: table; + padding: 0 2em 0 1.5em; + padding-bottom: 1em; + margin-bottom: 1em; + border-bottom: 1px dotted #CCC; +} + +.news-items li:last-child { padding-bottom: 0; border: none; } + +.news-item-date { + display: table-cell; +} + +.news-item-detail { + display: table-cell; +} + +.news-item-title { + font-size: 13px; + font-weight: 600; +} + +.news-item-date { + width: 75px; + vertical-align: middle; + text-align: center; + +} + +.news-item-day { + display: block; + margin-bottom: .25em; + + font-size: 24px; + color: #888; +} + +.news-item-preview { + margin-bottom: 0; + + color: #777; +} + +.news-item-month { + display: block; + padding-right: 1px; + + font-size: 12px; + font-weight: 600; + color: #888; +} + + + +/*------------------------------------------------------------------ +[4. Action Table / .action-table] +*/ + +.action-table .btn-small { + padding: 4px 5px 5px; + + font-size: 10px; +} + +.action-table .td-actions { + width: 80px; + + text-align: center; +} + +.action-table .td-actions .btn { + margin-right: .5em; +} + +.action-table .td-actions .btn:last-child { + margin-rigth: 0; +} + + + +#big_stats { + width: 100%; + display: table; + margin-top: 1.5em; +} + +.big-stats-container .widget-content { + border:0; +} + +#big_stats .stat { + width: 35%; + height: 90px; + text-align: center; + display: table-cell; + padding: 0; + position: relative; + + border-right: 1px solid #CCC; + border-left: 1px solid #FFF; +} + +#big_stats i { font-size:20px; display:block; line-height: 30px; color:#b2afaa; } +#big_stats .stat i { color:#19bc9c; } + +h6.bigstats { + margin: 20px; + border-bottom: 1px solid #eee; + padding-bottom: 20px; + margin-bottom: 26px; +} + +#big_stats .stat:first-child { + border-left: none; + width:35%; +} + +#big_stats .stat:last-child { + border-right: none; + width:35%; +} + +#big_stats .stat h4 { + font-size: 11px; + font-weight: bold; + color: #777; + margin-bottom: 1.5em; +} + +#big_stats .stat .value { + font-size: 20px; + font-weight: bold; + color: #545454; + line-height: 1em; +} + + + +@media all and (max-width: 950px) and (min-width: 1px) { + + #big_stats { + display: block; + margin-bottom: -10px; + } + + #big_stats .stat { + width: 25%; + display: block; + margin-bottom: 1em; + float: left; + } + + + +} + +@media (max-width: 767px) { + #big_stats .stat .value { + font-size: 25px; + } +} + + + + +@media (max-width: 979px) { + + .shortcuts .shortcut { + width: 31%; + } +} + + +@media (max-width: 480px) { + + .stats .stat { + + margin-bottom: 3em; + } + + .stats .stat .stat-value { + margin-bottom: .15em; + + font-size: 20px; + } + + .stats { + float: left; + + display: block; + + margin-bottom: 0; + } + + #chart-stats { + margin: 2em 0 1em; + } + + .shortcuts .shortcut { + width: 48%; + } +} + +/* ADDED BY AFAQ */ +.widget-content { padding:0px; } +.dataTables_length { display:none; } +.dataTable { margin-bottom:0px; } + +.pulse { + background:#19bc9c; + border:1px solid #19bc9c; + color:white; +} + +.pulse-border { + border-color:#19bc9c; +} + +.navbar { + position:fixed; + top:0; + z-index:9999999; + width:100%; +} + +.subnavbar { + position:fixed; + top:50px; + z-index:9999999; + width:100%; +} + +.main { + margin-top:130px; +} +.dataTables_paginate{ width:100%; text-align:center; margin-top:10px; margin-left:-30px;} +.dataTables_paginate a{ margin-left:8px;} +.dataTables_paginate a:hover{ pointer:pointer;} +.navbar-fixed-top{ margin-left:0px;} +.widget-search{display: inline-block; vertical-align: middle; margin: 0 6px; width: 200px;} \ No newline at end of file diff --git a/static/css/font-awesome.css b/static/css/font-awesome.css new file mode 100644 index 0000000..da28a95 --- /dev/null +++ b/static/css/font-awesome.css @@ -0,0 +1,1479 @@ +/*! + * Font Awesome 3.2.1 + * the iconic font designed for Bootstrap + * ------------------------------------------------------------------------------ + * The full suite of pictographic icons, examples, and documentation can be + * found at http://fontawesome.io. Stay up to date on Twitter at + * http://twitter.com/fontawesome. + * + * License + * ------------------------------------------------------------------------------ + * - The Font Awesome font is licensed under SIL OFL 1.1 - + * http://scripts.sil.org/OFL + * - Font Awesome CSS, LESS, and SASS files are licensed under MIT License - + * http://opensource.org/licenses/mit-license.html + * - Font Awesome documentation licensed under CC BY 3.0 - + * http://creativecommons.org/licenses/by/3.0/ + * - Attribution is no longer required in Font Awesome 3.0, but much appreciated: + * "Font Awesome by Dave Gandy - http://fontawesome.io" + * + * Author - Dave Gandy + * ------------------------------------------------------------------------------ + * Email: dave@fontawesome.io + * Twitter: http://twitter.com/davegandy + * Work: Lead Product Designer @ Kyruus - http://kyruus.com + */ +/* FONT PATH + * -------------------------- */ +@font-face { + font-family: 'FontAwesome'; + src: url('../fonts/fontawesome-webfont.eot'); + src: url('../fonts/fontawesome-webfont.eot') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff') format('woff'), url('../fonts/fontawesome-webfont.ttf') format('truetype'), url('../fonts/fontawesome-webfont.svg') format('svg'); + font-weight: normal; + font-style: normal; +} +/* FONT AWESOME CORE + * -------------------------- */ +[class^="icon-"], +[class*=" icon-"] { + font-family: FontAwesome; + font-weight: normal; + font-style: normal; + text-decoration: inherit; + -webkit-font-smoothing: antialiased; + *margin-right: .3em; +} +[class^="icon-"]:before, +[class*=" icon-"]:before { + text-decoration: inherit; + display: inline-block; + speak: none; +} +/* makes the font 33% larger relative to the icon container */ +.icon-large:before { + vertical-align: -10%; + font-size: 1.3333333333333333em; +} +/* makes sure icons active on rollover in links */ +a [class^="icon-"], +a [class*=" icon-"] { + display: inline; +} +/* increased font size for icon-large */ +[class^="icon-"].icon-fixed-width, +[class*=" icon-"].icon-fixed-width { + display: inline-block; + width: 1.1428571428571428em; + text-align: right; + padding-right: 0.2857142857142857em; +} +[class^="icon-"].icon-fixed-width.icon-large, +[class*=" icon-"].icon-fixed-width.icon-large { + width: 1.4285714285714286em; +} +.icons-ul { + margin-left: 2.142857142857143em; + list-style-type: none; +} +.icons-ul > li { + position: relative; +} +.icons-ul .icon-li { + position: absolute; + left: -2.142857142857143em; + width: 2.142857142857143em; + text-align: center; + line-height: inherit; +} +[class^="icon-"].hide, +[class*=" icon-"].hide { + display: none; +} +.icon-muted { + color: #eeeeee; +} +.icon-light { + color: #ffffff; +} +.icon-dark { + color: #333333; +} +.icon-border { + border: solid 1px #eeeeee; + padding: .2em .25em .15em; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} +.icon-2x { + font-size: 2em; +} +.icon-2x.icon-border { + border-width: 2px; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} +.icon-3x { + font-size: 3em; +} +.icon-3x.icon-border { + border-width: 3px; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; +} +.icon-4x { + font-size: 4em; +} +.icon-4x.icon-border { + border-width: 4px; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; +} +.icon-5x { + font-size: 5em; +} +.icon-5x.icon-border { + border-width: 5px; + -webkit-border-radius: 7px; + -moz-border-radius: 7px; + border-radius: 7px; +} +.pull-right { + float: right; +} +.pull-left { + float: left; +} +[class^="icon-"].pull-left, +[class*=" icon-"].pull-left { + margin-right: .3em; +} +[class^="icon-"].pull-right, +[class*=" icon-"].pull-right { + margin-left: .3em; +} +/* BOOTSTRAP SPECIFIC CLASSES + * -------------------------- */ +/* Bootstrap 2.0 sprites.less reset */ +[class^="icon-"], +[class*=" icon-"] { + display: inline; + width: auto; + height: auto; + line-height: normal; + vertical-align: baseline; + background-image: none; + background-position: 0% 0%; + background-repeat: repeat; + margin-top: 0; +} +/* more sprites.less reset */ +.icon-white, +.nav-pills > .active > a > [class^="icon-"], +.nav-pills > .active > a > [class*=" icon-"], +.nav-list > .active > a > [class^="icon-"], +.nav-list > .active > a > [class*=" icon-"], +.navbar-inverse .nav > .active > a > [class^="icon-"], +.navbar-inverse .nav > .active > a > [class*=" icon-"], +.dropdown-menu > li > a:hover > [class^="icon-"], +.dropdown-menu > li > a:hover > [class*=" icon-"], +.dropdown-menu > .active > a > [class^="icon-"], +.dropdown-menu > .active > a > [class*=" icon-"], +.dropdown-submenu:hover > a > [class^="icon-"], +.dropdown-submenu:hover > a > [class*=" icon-"] { + background-image: none; +} +/* keeps Bootstrap styles with and without icons the same */ +.btn [class^="icon-"].icon-large, +.nav [class^="icon-"].icon-large, +.btn [class*=" icon-"].icon-large, +.nav [class*=" icon-"].icon-large { + line-height: .9em; +} +.btn [class^="icon-"].icon-spin, +.nav [class^="icon-"].icon-spin, +.btn [class*=" icon-"].icon-spin, +.nav [class*=" icon-"].icon-spin { + display: inline-block; +} +.nav-tabs [class^="icon-"], +.nav-pills [class^="icon-"], +.nav-tabs [class*=" icon-"], +.nav-pills [class*=" icon-"], +.nav-tabs [class^="icon-"].icon-large, +.nav-pills [class^="icon-"].icon-large, +.nav-tabs [class*=" icon-"].icon-large, +.nav-pills [class*=" icon-"].icon-large { + line-height: .9em; +} +.btn [class^="icon-"].pull-left.icon-2x, +.btn [class*=" icon-"].pull-left.icon-2x, +.btn [class^="icon-"].pull-right.icon-2x, +.btn [class*=" icon-"].pull-right.icon-2x { + margin-top: .18em; +} +.btn [class^="icon-"].icon-spin.icon-large, +.btn [class*=" icon-"].icon-spin.icon-large { + line-height: .8em; +} +.btn.btn-small [class^="icon-"].pull-left.icon-2x, +.btn.btn-small [class*=" icon-"].pull-left.icon-2x, +.btn.btn-small [class^="icon-"].pull-right.icon-2x, +.btn.btn-small [class*=" icon-"].pull-right.icon-2x { + margin-top: .25em; +} +.btn.btn-large [class^="icon-"], +.btn.btn-large [class*=" icon-"] { + margin-top: 0; +} +.btn.btn-large [class^="icon-"].pull-left.icon-2x, +.btn.btn-large [class*=" icon-"].pull-left.icon-2x, +.btn.btn-large [class^="icon-"].pull-right.icon-2x, +.btn.btn-large [class*=" icon-"].pull-right.icon-2x { + margin-top: .05em; +} +.btn.btn-large [class^="icon-"].pull-left.icon-2x, +.btn.btn-large [class*=" icon-"].pull-left.icon-2x { + margin-right: .2em; +} +.btn.btn-large [class^="icon-"].pull-right.icon-2x, +.btn.btn-large [class*=" icon-"].pull-right.icon-2x { + margin-left: .2em; +} +/* Fixes alignment in nav lists */ +.nav-list [class^="icon-"], +.nav-list [class*=" icon-"] { + line-height: inherit; +} +/* EXTRAS + * -------------------------- */ +/* Stacked and layered icon */ +.icon-stack { + position: relative; + display: inline-block; + width: 2em; + height: 2em; + line-height: 2em; + vertical-align: -35%; +} +.icon-stack [class^="icon-"], +.icon-stack [class*=" icon-"] { + display: block; + text-align: center; + position: absolute; + width: 100%; + height: 100%; + font-size: 1em; + line-height: inherit; + *line-height: 2em; +} +.icon-stack .icon-stack-base { + font-size: 2em; + *line-height: 1em; +} +/* Animated rotating icon */ +.icon-spin { + display: inline-block; + -moz-animation: spin 2s infinite linear; + -o-animation: spin 2s infinite linear; + -webkit-animation: spin 2s infinite linear; + animation: spin 2s infinite linear; +} +/* Prevent stack and spinners from being taken inline when inside a link */ +a .icon-stack, +a .icon-spin { + display: inline-block; + text-decoration: none; +} +@-moz-keyframes spin { + 0% { + -moz-transform: rotate(0deg); + } + 100% { + -moz-transform: rotate(359deg); + } +} +@-webkit-keyframes spin { + 0% { + -webkit-transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + } +} +@-o-keyframes spin { + 0% { + -o-transform: rotate(0deg); + } + 100% { + -o-transform: rotate(359deg); + } +} +@-ms-keyframes spin { + 0% { + -ms-transform: rotate(0deg); + } + 100% { + -ms-transform: rotate(359deg); + } +} +@keyframes spin { + 0% { + transform: rotate(0deg); + } + 100% { + transform: rotate(359deg); + } +} +/* Icon rotations and mirroring */ +.icon-rotate-90:before { + -webkit-transform: rotate(90deg); + -moz-transform: rotate(90deg); + -ms-transform: rotate(90deg); + -o-transform: rotate(90deg); + transform: rotate(90deg); + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1); +} +.icon-rotate-180:before { + -webkit-transform: rotate(180deg); + -moz-transform: rotate(180deg); + -ms-transform: rotate(180deg); + -o-transform: rotate(180deg); + transform: rotate(180deg); + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2); +} +.icon-rotate-270:before { + -webkit-transform: rotate(270deg); + -moz-transform: rotate(270deg); + -ms-transform: rotate(270deg); + -o-transform: rotate(270deg); + transform: rotate(270deg); + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3); +} +.icon-flip-horizontal:before { + -webkit-transform: scale(-1, 1); + -moz-transform: scale(-1, 1); + -ms-transform: scale(-1, 1); + -o-transform: scale(-1, 1); + transform: scale(-1, 1); +} +.icon-flip-vertical:before { + -webkit-transform: scale(1, -1); + -moz-transform: scale(1, -1); + -ms-transform: scale(1, -1); + -o-transform: scale(1, -1); + transform: scale(1, -1); +} +/* ensure rotation occurs inside anchor tags */ +a .icon-rotate-90:before, +a .icon-rotate-180:before, +a .icon-rotate-270:before, +a .icon-flip-horizontal:before, +a .icon-flip-vertical:before { + display: inline-block; +} +/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen + readers do not read off random characters that represent icons */ +.icon-glass:before { + content: "\f000"; +} +.icon-music:before { + content: "\f001"; +} +.icon-search:before { + content: "\f002"; +} +.icon-envelope-alt:before { + content: "\f003"; +} +.icon-heart:before { + content: "\f004"; +} +.icon-star:before { + content: "\f005"; +} +.icon-star-empty:before { + content: "\f006"; +} +.icon-user:before { + content: "\f007"; +} +.icon-film:before { + content: "\f008"; +} +.icon-th-large:before { + content: "\f009"; +} +.icon-th:before { + content: "\f00a"; +} +.icon-th-list:before { + content: "\f00b"; +} +.icon-ok:before { + content: "\f00c"; +} +.icon-remove:before { + content: "\f00d"; +} +.icon-zoom-in:before { + content: "\f00e"; +} +.icon-zoom-out:before { + content: "\f010"; +} +.icon-power-off:before, +.icon-off:before { + content: "\f011"; +} +.icon-signal:before { + content: "\f012"; +} +.icon-gear:before, +.icon-cog:before { + content: "\f013"; +} +.icon-trash:before { + content: "\f014"; +} +.icon-home:before { + content: "\f015"; +} +.icon-file-alt:before { + content: "\f016"; +} +.icon-time:before { + content: "\f017"; +} +.icon-road:before { + content: "\f018"; +} +.icon-download-alt:before { + content: "\f019"; +} +.icon-download:before { + content: "\f01a"; +} +.icon-upload:before { + content: "\f01b"; +} +.icon-inbox:before { + content: "\f01c"; +} +.icon-play-circle:before { + content: "\f01d"; +} +.icon-rotate-right:before, +.icon-repeat:before { + content: "\f01e"; +} +.icon-refresh:before { + content: "\f021"; +} +.icon-list-alt:before { + content: "\f022"; +} +.icon-lock:before { + content: "\f023"; +} +.icon-flag:before { + content: "\f024"; +} +.icon-headphones:before { + content: "\f025"; +} +.icon-volume-off:before { + content: "\f026"; +} +.icon-volume-down:before { + content: "\f027"; +} +.icon-volume-up:before { + content: "\f028"; +} +.icon-qrcode:before { + content: "\f029"; +} +.icon-barcode:before { + content: "\f02a"; +} +.icon-tag:before { + content: "\f02b"; +} +.icon-tags:before { + content: "\f02c"; +} +.icon-book:before { + content: "\f02d"; +} +.icon-bookmark:before { + content: "\f02e"; +} +.icon-print:before { + content: "\f02f"; +} +.icon-camera:before { + content: "\f030"; +} +.icon-font:before { + content: "\f031"; +} +.icon-bold:before { + content: "\f032"; +} +.icon-italic:before { + content: "\f033"; +} +.icon-text-height:before { + content: "\f034"; +} +.icon-text-width:before { + content: "\f035"; +} +.icon-align-left:before { + content: "\f036"; +} +.icon-align-center:before { + content: "\f037"; +} +.icon-align-right:before { + content: "\f038"; +} +.icon-align-justify:before { + content: "\f039"; +} +.icon-list:before { + content: "\f03a"; +} +.icon-indent-left:before { + content: "\f03b"; +} +.icon-indent-right:before { + content: "\f03c"; +} +.icon-facetime-video:before { + content: "\f03d"; +} +.icon-picture:before { + content: "\f03e"; +} +.icon-pencil:before { + content: "\f040"; +} +.icon-map-marker:before { + content: "\f041"; +} +.icon-adjust:before { + content: "\f042"; +} +.icon-tint:before { + content: "\f043"; +} +.icon-edit:before { + content: "\f044"; +} +.icon-share:before { + content: "\f045"; +} +.icon-check:before { + content: "\f046"; +} +.icon-move:before { + content: "\f047"; +} +.icon-step-backward:before { + content: "\f048"; +} +.icon-fast-backward:before { + content: "\f049"; +} +.icon-backward:before { + content: "\f04a"; +} +.icon-play:before { + content: "\f04b"; +} +.icon-pause:before { + content: "\f04c"; +} +.icon-stop:before { + content: "\f04d"; +} +.icon-forward:before { + content: "\f04e"; +} +.icon-fast-forward:before { + content: "\f050"; +} +.icon-step-forward:before { + content: "\f051"; +} +.icon-eject:before { + content: "\f052"; +} +.icon-chevron-left:before { + content: "\f053"; +} +.icon-chevron-right:before { + content: "\f054"; +} +.icon-plus-sign:before { + content: "\f055"; +} +.icon-minus-sign:before { + content: "\f056"; +} +.icon-remove-sign:before { + content: "\f057"; +} +.icon-ok-sign:before { + content: "\f058"; +} +.icon-question-sign:before { + content: "\f059"; +} +.icon-info-sign:before { + content: "\f05a"; +} +.icon-screenshot:before { + content: "\f05b"; +} +.icon-remove-circle:before { + content: "\f05c"; +} +.icon-ok-circle:before { + content: "\f05d"; +} +.icon-ban-circle:before { + content: "\f05e"; +} +.icon-arrow-left:before { + content: "\f060"; +} +.icon-arrow-right:before { + content: "\f061"; +} +.icon-arrow-up:before { + content: "\f062"; +} +.icon-arrow-down:before { + content: "\f063"; +} +.icon-mail-forward:before, +.icon-share-alt:before { + content: "\f064"; +} +.icon-resize-full:before { + content: "\f065"; +} +.icon-resize-small:before { + content: "\f066"; +} +.icon-plus:before { + content: "\f067"; +} +.icon-minus:before { + content: "\f068"; +} +.icon-asterisk:before { + content: "\f069"; +} +.icon-exclamation-sign:before { + content: "\f06a"; +} +.icon-gift:before { + content: "\f06b"; +} +.icon-leaf:before { + content: "\f06c"; +} +.icon-fire:before { + content: "\f06d"; +} +.icon-eye-open:before { + content: "\f06e"; +} +.icon-eye-close:before { + content: "\f070"; +} +.icon-warning-sign:before { + content: "\f071"; +} +.icon-plane:before { + content: "\f072"; +} +.icon-calendar:before { + content: "\f073"; +} +.icon-random:before { + content: "\f074"; +} +.icon-comment:before { + content: "\f075"; +} +.icon-magnet:before { + content: "\f076"; +} +.icon-chevron-up:before { + content: "\f077"; +} +.icon-chevron-down:before { + content: "\f078"; +} +.icon-retweet:before { + content: "\f079"; +} +.icon-shopping-cart:before { + content: "\f07a"; +} +.icon-folder-close:before { + content: "\f07b"; +} +.icon-folder-open:before { + content: "\f07c"; +} +.icon-resize-vertical:before { + content: "\f07d"; +} +.icon-resize-horizontal:before { + content: "\f07e"; +} +.icon-bar-chart:before { + content: "\f080"; +} +.icon-twitter-sign:before { + content: "\f081"; +} +.icon-facebook-sign:before { + content: "\f082"; +} +.icon-camera-retro:before { + content: "\f083"; +} +.icon-key:before { + content: "\f084"; +} +.icon-gears:before, +.icon-cogs:before { + content: "\f085"; +} +.icon-comments:before { + content: "\f086"; +} +.icon-thumbs-up-alt:before { + content: "\f087"; +} +.icon-thumbs-down-alt:before { + content: "\f088"; +} +.icon-star-half:before { + content: "\f089"; +} +.icon-heart-empty:before { + content: "\f08a"; +} +.icon-signout:before { + content: "\f08b"; +} +.icon-linkedin-sign:before { + content: "\f08c"; +} +.icon-pushpin:before { + content: "\f08d"; +} +.icon-external-link:before { + content: "\f08e"; +} +.icon-signin:before { + content: "\f090"; +} +.icon-trophy:before { + content: "\f091"; +} +.icon-github-sign:before { + content: "\f092"; +} +.icon-upload-alt:before { + content: "\f093"; +} +.icon-lemon:before { + content: "\f094"; +} +.icon-phone:before { + content: "\f095"; +} +.icon-unchecked:before, +.icon-check-empty:before { + content: "\f096"; +} +.icon-bookmark-empty:before { + content: "\f097"; +} +.icon-phone-sign:before { + content: "\f098"; +} +.icon-twitter:before { + content: "\f099"; +} +.icon-facebook:before { + content: "\f09a"; +} +.icon-github:before { + content: "\f09b"; +} +.icon-unlock:before { + content: "\f09c"; +} +.icon-credit-card:before { + content: "\f09d"; +} +.icon-rss:before { + content: "\f09e"; +} +.icon-hdd:before { + content: "\f0a0"; +} +.icon-bullhorn:before { + content: "\f0a1"; +} +.icon-bell:before { + content: "\f0a2"; +} +.icon-certificate:before { + content: "\f0a3"; +} +.icon-hand-right:before { + content: "\f0a4"; +} +.icon-hand-left:before { + content: "\f0a5"; +} +.icon-hand-up:before { + content: "\f0a6"; +} +.icon-hand-down:before { + content: "\f0a7"; +} +.icon-circle-arrow-left:before { + content: "\f0a8"; +} +.icon-circle-arrow-right:before { + content: "\f0a9"; +} +.icon-circle-arrow-up:before { + content: "\f0aa"; +} +.icon-circle-arrow-down:before { + content: "\f0ab"; +} +.icon-globe:before { + content: "\f0ac"; +} +.icon-wrench:before { + content: "\f0ad"; +} +.icon-tasks:before { + content: "\f0ae"; +} +.icon-filter:before { + content: "\f0b0"; +} +.icon-briefcase:before { + content: "\f0b1"; +} +.icon-fullscreen:before { + content: "\f0b2"; +} +.icon-group:before { + content: "\f0c0"; +} +.icon-link:before { + content: "\f0c1"; +} +.icon-cloud:before { + content: "\f0c2"; +} +.icon-beaker:before { + content: "\f0c3"; +} +.icon-cut:before { + content: "\f0c4"; +} +.icon-copy:before { + content: "\f0c5"; +} +.icon-paperclip:before, +.icon-paper-clip:before { + content: "\f0c6"; +} +.icon-save:before { + content: "\f0c7"; +} +.icon-sign-blank:before { + content: "\f0c8"; +} +.icon-reorder:before { + content: "\f0c9"; +} +.icon-list-ul:before { + content: "\f0ca"; +} +.icon-list-ol:before { + content: "\f0cb"; +} +.icon-strikethrough:before { + content: "\f0cc"; +} +.icon-underline:before { + content: "\f0cd"; +} +.icon-table:before { + content: "\f0ce"; +} +.icon-magic:before { + content: "\f0d0"; +} +.icon-truck:before { + content: "\f0d1"; +} +.icon-pinterest:before { + content: "\f0d2"; +} +.icon-pinterest-sign:before { + content: "\f0d3"; +} +.icon-google-plus-sign:before { + content: "\f0d4"; +} +.icon-google-plus:before { + content: "\f0d5"; +} +.icon-money:before { + content: "\f0d6"; +} +.icon-caret-down:before { + content: "\f0d7"; +} +.icon-caret-up:before { + content: "\f0d8"; +} +.icon-caret-left:before { + content: "\f0d9"; +} +.icon-caret-right:before { + content: "\f0da"; +} +.icon-columns:before { + content: "\f0db"; +} +.icon-sort:before { + content: "\f0dc"; +} +.icon-sort-down:before { + content: "\f0dd"; +} +.icon-sort-up:before { + content: "\f0de"; +} +.icon-envelope:before { + content: "\f0e0"; +} +.icon-linkedin:before { + content: "\f0e1"; +} +.icon-rotate-left:before, +.icon-undo:before { + content: "\f0e2"; +} +.icon-legal:before { + content: "\f0e3"; +} +.icon-dashboard:before { + content: "\f0e4"; +} +.icon-comment-alt:before { + content: "\f0e5"; +} +.icon-comments-alt:before { + content: "\f0e6"; +} +.icon-bolt:before { + content: "\f0e7"; +} +.icon-sitemap:before { + content: "\f0e8"; +} +.icon-umbrella:before { + content: "\f0e9"; +} +.icon-paste:before { + content: "\f0ea"; +} +.icon-lightbulb:before { + content: "\f0eb"; +} +.icon-exchange:before { + content: "\f0ec"; +} +.icon-cloud-download:before { + content: "\f0ed"; +} +.icon-cloud-upload:before { + content: "\f0ee"; +} +.icon-user-md:before { + content: "\f0f0"; +} +.icon-stethoscope:before { + content: "\f0f1"; +} +.icon-suitcase:before { + content: "\f0f2"; +} +.icon-bell-alt:before { + content: "\f0f3"; +} +.icon-coffee:before { + content: "\f0f4"; +} +.icon-food:before { + content: "\f0f5"; +} +.icon-file-text-alt:before { + content: "\f0f6"; +} +.icon-building:before { + content: "\f0f7"; +} +.icon-hospital:before { + content: "\f0f8"; +} +.icon-ambulance:before { + content: "\f0f9"; +} +.icon-medkit:before { + content: "\f0fa"; +} +.icon-fighter-jet:before { + content: "\f0fb"; +} +.icon-beer:before { + content: "\f0fc"; +} +.icon-h-sign:before { + content: "\f0fd"; +} +.icon-plus-sign-alt:before { + content: "\f0fe"; +} +.icon-double-angle-left:before { + content: "\f100"; +} +.icon-double-angle-right:before { + content: "\f101"; +} +.icon-double-angle-up:before { + content: "\f102"; +} +.icon-double-angle-down:before { + content: "\f103"; +} +.icon-angle-left:before { + content: "\f104"; +} +.icon-angle-right:before { + content: "\f105"; +} +.icon-angle-up:before { + content: "\f106"; +} +.icon-angle-down:before { + content: "\f107"; +} +.icon-desktop:before { + content: "\f108"; +} +.icon-laptop:before { + content: "\f109"; +} +.icon-tablet:before { + content: "\f10a"; +} +.icon-mobile-phone:before { + content: "\f10b"; +} +.icon-circle-blank:before { + content: "\f10c"; +} +.icon-quote-left:before { + content: "\f10d"; +} +.icon-quote-right:before { + content: "\f10e"; +} +.icon-spinner:before { + content: "\f110"; +} +.icon-circle:before { + content: "\f111"; +} +.icon-mail-reply:before, +.icon-reply:before { + content: "\f112"; +} +.icon-github-alt:before { + content: "\f113"; +} +.icon-folder-close-alt:before { + content: "\f114"; +} +.icon-folder-open-alt:before { + content: "\f115"; +} +.icon-expand-alt:before { + content: "\f116"; +} +.icon-collapse-alt:before { + content: "\f117"; +} +.icon-smile:before { + content: "\f118"; +} +.icon-frown:before { + content: "\f119"; +} +.icon-meh:before { + content: "\f11a"; +} +.icon-gamepad:before { + content: "\f11b"; +} +.icon-keyboard:before { + content: "\f11c"; +} +.icon-flag-alt:before { + content: "\f11d"; +} +.icon-flag-checkered:before { + content: "\f11e"; +} +.icon-terminal:before { + content: "\f120"; +} +.icon-code:before { + content: "\f121"; +} +.icon-reply-all:before { + content: "\f122"; +} +.icon-mail-reply-all:before { + content: "\f122"; +} +.icon-star-half-full:before, +.icon-star-half-empty:before { + content: "\f123"; +} +.icon-location-arrow:before { + content: "\f124"; +} +.icon-crop:before { + content: "\f125"; +} +.icon-code-fork:before { + content: "\f126"; +} +.icon-unlink:before { + content: "\f127"; +} +.icon-question:before { + content: "\f128"; +} +.icon-info:before { + content: "\f129"; +} +.icon-exclamation:before { + content: "\f12a"; +} +.icon-superscript:before { + content: "\f12b"; +} +.icon-subscript:before { + content: "\f12c"; +} +.icon-eraser:before { + content: "\f12d"; +} +.icon-puzzle-piece:before { + content: "\f12e"; +} +.icon-microphone:before { + content: "\f130"; +} +.icon-microphone-off:before { + content: "\f131"; +} +.icon-shield:before { + content: "\f132"; +} +.icon-calendar-empty:before { + content: "\f133"; +} +.icon-fire-extinguisher:before { + content: "\f134"; +} +.icon-rocket:before { + content: "\f135"; +} +.icon-maxcdn:before { + content: "\f136"; +} +.icon-chevron-sign-left:before { + content: "\f137"; +} +.icon-chevron-sign-right:before { + content: "\f138"; +} +.icon-chevron-sign-up:before { + content: "\f139"; +} +.icon-chevron-sign-down:before { + content: "\f13a"; +} +.icon-html5:before { + content: "\f13b"; +} +.icon-css3:before { + content: "\f13c"; +} +.icon-anchor:before { + content: "\f13d"; +} +.icon-unlock-alt:before { + content: "\f13e"; +} +.icon-bullseye:before { + content: "\f140"; +} +.icon-ellipsis-horizontal:before { + content: "\f141"; +} +.icon-ellipsis-vertical:before { + content: "\f142"; +} +.icon-rss-sign:before { + content: "\f143"; +} +.icon-play-sign:before { + content: "\f144"; +} +.icon-ticket:before { + content: "\f145"; +} +.icon-minus-sign-alt:before { + content: "\f146"; +} +.icon-check-minus:before { + content: "\f147"; +} +.icon-level-up:before { + content: "\f148"; +} +.icon-level-down:before { + content: "\f149"; +} +.icon-check-sign:before { + content: "\f14a"; +} +.icon-edit-sign:before { + content: "\f14b"; +} +.icon-external-link-sign:before { + content: "\f14c"; +} +.icon-share-sign:before { + content: "\f14d"; +} +.icon-compass:before { + content: "\f14e"; +} +.icon-collapse:before { + content: "\f150"; +} +.icon-collapse-top:before { + content: "\f151"; +} +.icon-expand:before { + content: "\f152"; +} +.icon-euro:before, +.icon-eur:before { + content: "\f153"; +} +.icon-gbp:before { + content: "\f154"; +} +.icon-dollar:before, +.icon-usd:before { + content: "\f155"; +} +.icon-rupee:before, +.icon-inr:before { + content: "\f156"; +} +.icon-yen:before, +.icon-jpy:before { + content: "\f157"; +} +.icon-renminbi:before, +.icon-cny:before { + content: "\f158"; +} +.icon-won:before, +.icon-krw:before { + content: "\f159"; +} +.icon-bitcoin:before, +.icon-btc:before { + content: "\f15a"; +} +.icon-file:before { + content: "\f15b"; +} +.icon-file-text:before { + content: "\f15c"; +} +.icon-sort-by-alphabet:before { + content: "\f15d"; +} +.icon-sort-by-alphabet-alt:before { + content: "\f15e"; +} +.icon-sort-by-attributes:before { + content: "\f160"; +} +.icon-sort-by-attributes-alt:before { + content: "\f161"; +} +.icon-sort-by-order:before { + content: "\f162"; +} +.icon-sort-by-order-alt:before { + content: "\f163"; +} +.icon-thumbs-up:before { + content: "\f164"; +} +.icon-thumbs-down:before { + content: "\f165"; +} +.icon-youtube-sign:before { + content: "\f166"; +} +.icon-youtube:before { + content: "\f167"; +} +.icon-xing:before { + content: "\f168"; +} +.icon-xing-sign:before { + content: "\f169"; +} +.icon-youtube-play:before { + content: "\f16a"; +} +.icon-dropbox:before { + content: "\f16b"; +} +.icon-stackexchange:before { + content: "\f16c"; +} +.icon-instagram:before { + content: "\f16d"; +} +.icon-flickr:before { + content: "\f16e"; +} +.icon-adn:before { + content: "\f170"; +} +.icon-bitbucket:before { + content: "\f171"; +} +.icon-bitbucket-sign:before { + content: "\f172"; +} +.icon-tumblr:before { + content: "\f173"; +} +.icon-tumblr-sign:before { + content: "\f174"; +} +.icon-long-arrow-down:before { + content: "\f175"; +} +.icon-long-arrow-up:before { + content: "\f176"; +} +.icon-long-arrow-left:before { + content: "\f177"; +} +.icon-long-arrow-right:before { + content: "\f178"; +} +.icon-apple:before { + content: "\f179"; +} +.icon-windows:before { + content: "\f17a"; +} +.icon-android:before { + content: "\f17b"; +} +.icon-linux:before { + content: "\f17c"; +} +.icon-dribbble:before { + content: "\f17d"; +} +.icon-skype:before { + content: "\f17e"; +} +.icon-foursquare:before { + content: "\f180"; +} +.icon-trello:before { + content: "\f181"; +} +.icon-female:before { + content: "\f182"; +} +.icon-male:before { + content: "\f183"; +} +.icon-gittip:before { + content: "\f184"; +} +.icon-sun:before { + content: "\f185"; +} +.icon-moon:before { + content: "\f186"; +} +.icon-archive:before { + content: "\f187"; +} +.icon-bug:before { + content: "\f188"; +} +.icon-vk:before { + content: "\f189"; +} +.icon-weibo:before { + content: "\f18a"; +} +.icon-renren:before { + content: "\f18b"; +} \ No newline at end of file diff --git a/static/css/fonts.css b/static/css/fonts.css new file mode 100644 index 0000000..e81785c --- /dev/null +++ b/static/css/fonts.css @@ -0,0 +1,24 @@ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 400; + src: local('Open Sans'), local('OpenSans'), url(../fonts/cJZKeOuBrn4kERxqtaUH3aCWcynf_cDxXwCLxiixG1c.ttf) format('truetype'); +} +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 600; + src: local('Open Sans Semibold'), local('OpenSans-Semibold'), url(../fonts/MTP_ySUJH_bn48VBG8sNSonF5uFdDttMLvmWuJdhhgs.ttf) format('truetype'); +} +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 400; + src: local('Open Sans Italic'), local('OpenSans-Italic'), url(../fonts/xjAJXh38I15wypJXxuGMBp0EAVxt0G0biEntp43Qt6E.ttf) format('truetype'); +} +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 600; + src: local('Open Sans Semibold Italic'), local('OpenSans-SemiboldItalic'), url(../fonts/PRmiXeptR36kaC0GEAetxi8cqLH4MEiSE0ROcU-qHOA.ttf) format('truetype'); +} diff --git a/static/css/odometer.css b/static/css/odometer.css new file mode 100644 index 0000000..a30d81c --- /dev/null +++ b/static/css/odometer.css @@ -0,0 +1,94 @@ +.odometer.odometer-auto-theme, .odometer.odometer-theme-default { + display: -moz-inline-box; + -moz-box-orient: vertical; + display: inline-block; + vertical-align: middle; + *vertical-align: auto; + position: relative; +} +.odometer.odometer-auto-theme, .odometer.odometer-theme-default { + *display: inline; +} +.odometer.odometer-auto-theme .odometer-digit, .odometer.odometer-theme-default .odometer-digit { + display: -moz-inline-box; + -moz-box-orient: vertical; + display: inline-block; + vertical-align: middle; + *vertical-align: auto; + position: relative; +} +.odometer.odometer-auto-theme .odometer-digit, .odometer.odometer-theme-default .odometer-digit { + *display: inline; +} +.odometer.odometer-auto-theme .odometer-digit .odometer-digit-spacer, .odometer.odometer-theme-default .odometer-digit .odometer-digit-spacer { + display: -moz-inline-box; + -moz-box-orient: vertical; + display: inline-block; + vertical-align: middle; + *vertical-align: auto; + visibility: hidden; +} +.odometer.odometer-auto-theme .odometer-digit .odometer-digit-spacer, .odometer.odometer-theme-default .odometer-digit .odometer-digit-spacer { + *display: inline; +} +.odometer.odometer-auto-theme .odometer-digit .odometer-digit-inner, .odometer.odometer-theme-default .odometer-digit .odometer-digit-inner { + text-align: left; + display: block; + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + overflow: hidden; +} +.odometer.odometer-auto-theme .odometer-digit .odometer-ribbon, .odometer.odometer-theme-default .odometer-digit .odometer-ribbon { + display: block; +} +.odometer.odometer-auto-theme .odometer-digit .odometer-ribbon-inner, .odometer.odometer-theme-default .odometer-digit .odometer-ribbon-inner { + display: block; +} +.odometer.odometer-auto-theme .odometer-digit .odometer-value, .odometer.odometer-theme-default .odometer-digit .odometer-value { + display: block; +} +.odometer.odometer-auto-theme .odometer-digit .odometer-value.odometer-last-value, .odometer.odometer-theme-default .odometer-digit .odometer-value.odometer-last-value { + position: absolute; +} +.odometer.odometer-auto-theme.odometer-animating-up .odometer-ribbon-inner, .odometer.odometer-theme-default.odometer-animating-up .odometer-ribbon-inner { + -webkit-transition: -webkit-transform 2s; + -moz-transition: -moz-transform 2s; + -ms-transition: -ms-transform 2s; + -o-transition: -o-transform 2s; + transition: transform 2s; +} +.odometer.odometer-auto-theme.odometer-animating-up.odometer-animating .odometer-ribbon-inner, .odometer.odometer-theme-default.odometer-animating-up.odometer-animating .odometer-ribbon-inner { + -webkit-transform: translateY(-100%); + -moz-transform: translateY(-100%); + -ms-transform: translateY(-100%); + -o-transform: translateY(-100%); + transform: translateY(-100%); +} +.odometer.odometer-auto-theme.odometer-animating-down .odometer-ribbon-inner, .odometer.odometer-theme-default.odometer-animating-down .odometer-ribbon-inner { + -webkit-transform: translateY(-100%); + -moz-transform: translateY(-100%); + -ms-transform: translateY(-100%); + -o-transform: translateY(-100%); + transform: translateY(-100%); +} +.odometer.odometer-auto-theme.odometer-animating-down.odometer-animating .odometer-ribbon-inner, .odometer.odometer-theme-default.odometer-animating-down.odometer-animating .odometer-ribbon-inner { + -webkit-transition: -webkit-transform 2s; + -moz-transition: -moz-transform 2s; + -ms-transition: -ms-transform 2s; + -o-transition: -o-transform 2s; + -o-transition: -o-transform 2s; + transition: transform 2s; + -webkit-transform: translateY(0); + -moz-transform: translateY(0); + -ms-transform: translateY(0); + -o-transform: translateY(0); + transform: translateY(0); +} + +.odometer.odometer-auto-theme, .odometer.odometer-theme-default { + font-family: "Helvetica Neue", sans-serif; + line-height: 1.1em; +} diff --git a/static/css/style.css b/static/css/style.css new file mode 100644 index 0000000..d9be4da --- /dev/null +++ b/static/css/style.css @@ -0,0 +1,1291 @@ +/*------------------------------------------------------------------ +Bootstrap Admin Template by EGrappler.com +------------------------------------------------------------------*/ + + + +/*------------------------------------------------------------------ +[1. Global] +*/ + +body { + background: #f9f6f1; + font: 13px/1.7em 'Open Sans'; +} + +p { + font: 13px/1.7em 'Open Sans'; +} + +a { + cursor: pointer; +} + +input, +button, +select, +textarea { + font-family: 'Open Sans'; +} + +.dropdown .dropdown-menu { + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; +} + +.btn-icon-only { + padding-right: 3px; + padding-left: 3px; +} + +.table td { + vertical-align: middle; +} + +.table-bordered th { + background: #E9E9E9; + background:-moz-linear-gradient(top, #FAFAFA 0%, #E9E9E9 100%); /* FF3.6+ */ + background:-webkit-gradient(linear, left top, left bottom, color-stop(0%,#FAFAFA), color-stop(100%,#E9E9E9)); /* Chrome,Safari4+ */ + background:-webkit-linear-gradient(top, #FAFAFA 0%,#E9E9E9 100%); /* Chrome10+,Safari5.1+ */ + background:-o-linear-gradient(top, #FAFAFA 0%,#E9E9E9 100%); /* Opera11.10+ */ + background:-ms-linear-gradient(top, #FAFAFA 0%,#E9E9E9 100%); /* IE10+ */ + background:linear-gradient(top, #FAFAFA 0%,#E9E9E9 100%); /* W3C */ + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FAFAFA', endColorstr='#E9E9E9'); + -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr='#FAFAFA', endColorstr='#E9E9E9')"; + + font-size: 10px; + color: #444; + text-transform: uppercase; +} + + + + + + + +/*------------------------------------------------------------------ +[2. Navbar / .navbar] +*/ + +.navbar .container { + position: relative; +} + +.navbar-inner { + padding: 7px 0; + + background: #00ba8b !important; + + -moz-border-radius: 0; + -webkit-border-radius: 0; + border-radius: 0; +} + +.navbar-fixed-top { + position: static; +} + +.navbar .nav a { + font-size: 11px; +} +.navbar .nav>li>a { color:#fff !important;} +.navbar .brand { + font-weight: 600; + position: relative; + top: 2px; +} + +.navbar .search-query { + background-color: #444; + width: 150px; + font-size: 11px; + font-weight: bold; +} + +.navbar .search-query::-webkit-input-placeholder { + color: #666; +} + +.navbar .search-query:-moz-placeholder { + color: #666; +} + +.navbar-search .search-query { background:#008866; border:0; color:#fff; line-height:normal;} + + +/*------------------------------------------------------------------ +[3. Subnavbar / .subnavbar] +*/ + +.subnavbar { + margin-bottom: 2.5em; + } + +.subnavbar-inner { + height: 60px; + background: #fff; + border-bottom: 1px solid #d6d6d6; +} + +.subnavbar .container > ul { + display: inline-block; + + height: 80px; + padding: 0; + margin: 0; + +} + +.subnavbar .container > ul > li { + float: left; + + min-width: 90px; + height: 60px; + padding: 0; + margin: 0; + + text-align: center; + list-style: none; + + border-left: 1px solid #d9d9d9; + + +} + +.subnavbar .container > ul > li > a { + display: block; + + height: 100%; + padding: 0 15px; + + font-size: 12px; + font-weight: bold; + color: #b2afaa; +} + +.subnavbar .container > ul > li > a:hover { + color: #888; + text-decoration: none; +} + +.subnavbar .container > ul > li > a > i { + display: inline-block; + + width: 24px; + height: 24px; + margin-top: 11px; + margin-bottom: -3px; + font-size: 20px; +} + +.subnavbar .container > ul > li > a > span { + display: block; + +} + + +.subnavbar .container > ul > li:hover > a { + + border-bottom:3px solid #ff7f74; + color: #383838; +} + + +.subnavbar .dropdown .dropdown-menu a { + font-size: 12px; +} + + +.subnavbar .dropdown .dropdown-menu { + text-align: left; + + -webkit-border-top-left-radius: 0; + -webkit-border-top-right-radius: 0; + -moz-border-radius-topleft: 0; + -moz-border-radius-topright: 0; + border-top-left-radius: 0; + border-top-right-radius: 0; + } + + + +.subnavbar .dropdown-menu::before { + content: ''; + display: inline-block; + border-left: 7px solid transparent; + border-right: 7px solid transparent; + border-bottom: 7px solid #CCC; + border-bottom-color: rgba(0, 0, 0, 0.2); + position: absolute; + top: -7px; + left: 9px; +} + +.subnavbar .dropdown-menu::after { + content: ''; + display: inline-block; + border-left: 6px solid transparent; + border-right: 6px solid transparent; + border-bottom: 6px solid white; + position: absolute; + top: -6px; + left: 10px; +} + + +.subnavbar .caret { + margin-top: 4px; + + border-top-color: white; + border-bottom-color: white; +} + +.subnavbar .dropdown.open .caret { + display: none; +} + + + + + +/*------------------------------------------------------------------ +[4. Main / .main] +*/ + +.main { + padding-bottom: 2em; + + border-bottom: 1px solid #000; +} + + + +/*------------------------------------------------------------------ +[5. Extra / .extra] +*/ + +.extra { + + border-top: 1px solid #585858; + border-bottom: 1px solid #000; + +} + +.extra-inner { + padding: 20px 0; + + font-size: 11px; + color: #BBB; + + background: #1A1A1A; +} + +.extra a { + color: #666; +} + +.extra h4 { + margin-bottom: 1em; + + font-weight: 400; +} + +.extra ul { + padding: 0; + margin: 0; +} + +.extra li { + margin-bottom: .6em; + + list-style: none; +} + + + + +/*------------------------------------------------------------------ +[6. Footer/ .footer] +*/ + +.footer { + margin-top: 0; + + border-top: 1px solid #292929; +} + +.footer-inner { + padding: 15px 0; + + font-size: 12px; + background: #111; + color: #999; +} + +.footer a { + color: #999; +} + +.footer a:hover { + color: #FFF; + text-decoration: none; +} + + +/*------------------------------------------------------------------ +[6. Widget / .widget] +*/ + +.widget { + + position: relative; + clear: both; + + width: auto; + + margin-bottom: 2em; + + overflow: hidden; +} + +.widget-header { + + position: relative; + + height: 40px; + line-height: 40px; + + background: #f9f6f1; + background:-moz-linear-gradient(top, #f9f6f1 0%, #f2efea 100%); /* FF3.6+ */ + background:-webkit-gradient(linear, left top, left bottom, color-stop(0%,#f9f6f1), color-stop(100%,#f2efea)); /* Chrome,Safari4+ */ + background:-webkit-linear-gradient(top, #f9f6f1 0%,#f2efea 100%); /* Chrome10+,Safari5.1+ */ + background:-o-linear-gradient(top, #f9f6f1 0%,#f2efea 100%); /* Opera11.10+ */ + background:-ms-linear-gradient(top, #f9f6f1 0%,#f2efea 100%); /* IE10+ */ + background:linear-gradient(top, #f9f6f1 0%,#f2efea 100%); /* W3C */ + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f9f6f1', endColorstr='#f2efea'); + -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr='#f9f6f1', endColorstr='#f2efea')"; + + + border: 1px solid #d6d6d6; + + + -webkit-background-clip: padding-box; +} + + .widget-header h3 { + + position: relative; + top: 2px; + left: 10px; + + display: inline-block; + margin-right: 3em; + + font-size: 14px; + font-weight: 800; + color: #525252; + line-height: 18px; + + text-shadow: 1px 1px 2px rgba(255,255,255,.5); + } + + .widget-header [class^="icon-"], .widget-header [class*=" icon-"] { + + display: inline-block; + margin-left: 13px; + margin-right: -2px; + + font-size: 16px; + color: #555; + vertical-align: middle; + + + + } + + + + +.widget-content { + padding: 20px 15px 15px; + + background: #FFF; + + + border: 1px solid #D5D5D5; + + -moz-border-radius: 5px; + -webkit-border-radius: 5px; + border-radius: 5px; +} + +.widget-header+.widget-content { + border-top: none; + + -webkit-border-top-left-radius: 0; + -webkit-border-top-right-radius: 0; + -moz-border-radius-topleft: 0; + -moz-border-radius-topright: 0; + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +.widget-nopad .widget-content { + padding: 0; +} + +/* Widget Content Clearfix */ +.widget-content:before, +.widget-content:after { + content:""; + display:table; +} + +.widget-content:after { + clear:both; +} + +/* For IE 6/7 (trigger hasLayout) */ +.widget-content { + zoom:1; +} + +/* Widget Table */ + +.widget-table .widget-content { + padding: 0; +} + +.widget-table .table { + margin-bottom: 0; + + border: none; +} + +.widget-table .table tr td:first-child { + border-left: none; +} + +.widget-table .table tr th:first-child { + border-left: none; +} + + +/* Widget Plain */ + +.widget-plain { + + background: transparent; + + border: none; +} + +.widget-plain .widget-content { + padding: 0; + + background: transparent; + + border: none; +} + + +/* Widget Box */ + +.widget-box { + +} + +.widget-box .widget-content { + background: #E3E3E3; + background: #FFF; +} + + + + +/*------------------------------------------------------------------ +[7. Error / .error-container] +*/ + +.error-container { + margin-top: 4em; + margin-bottom: 4em; + text-align: center; +} + +.error-container h1 { + margin-bottom: .5em; + + font-size: 120px; + line-height: 1em; +} + +.error-container h2 { + margin-bottom: .75em; + font-size: 28px; +} + +.error-container .error-details { + margin-bottom: 1.5em; + + font-size: 16px; +} + +.error-container .error-actions a { + margin: 0 .5em; +} + + + +/* Message layout */ + + +ul.messages_layout { + position: relative; + margin: 0; + padding: 0 +} +ul.messages_layout li { + float: left; + list-style: none; + position: relative +} +ul.messages_layout li.left { + padding-left: 75px +} +ul.messages_layout li.right { + padding-right: 75px +} +ul.messages_layout li.right .avatar { + right: 0; + left: auto +} +ul.messages_layout li.right .message_wrap .arrow { + right: -12px; + left: auto; + background-position: 0 -213px; + height: 15px; + width: 12px +} +ul.messages_layout li.by_myself .message_wrap { + border: 1px solid #b3cdf8 +} +ul.messages_layout li.by_myself .message_wrap .info a.name { + color: #4a8cf7 +} +ul.messages_layout li a.avatar { + position: absolute; + left: 0; + top: 0 +} +ul.messages_layout li a.avatar img { + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px +} +ul.messages_layout li .message_wrap { + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + position: relative; + border: 1px solid #e9e9e9; + padding: 10px; + border: 1px solid #cbcbcb; + margin-bottom: 20px; + float: left; + background: #fefefe; + -webkit-box-shadow: rgba(0,0,0,0.1) 0 1px 0px; + -moz-box-shadow: rgba(0,0,0,0.1) 0 1px 0px; + box-shadow: rgba(0,0,0,0.1) 0 1px 0px +} +ul.messages_layout li .message_wrap .arrow { + background-position: 0 -228px; + height: 15px; + width: 12px; + height: 15px; + width: 12px; + position: absolute; + left: -12px; + top: 13px +} +ul.messages_layout li .message_wrap .info { + float: left; + width: 100%; + border-bottom: 1px solid #fff; + line-height: 23px +} +ul.messages_layout li .message_wrap .info .name { + float: left; + font-weight: bold; + color: #483734 +} +ul.messages_layout li .message_wrap .info .time { + float: left; + font-size: 11px; + margin-left: 6px +} +ul.messages_layout li .message_wrap .text { + float: left; + width: 100%; + border-top: 1px solid #cfcfcf; + padding-top: 5px +} + +ul.messages_layout .dropdown-menu li{ width:100%; font-size:11px;} + + +/* Full Calendar */ + +.fc { + direction: ltr; + text-align: left; + position: relative +} +.fc table { + border-collapse: collapse; + border-spacing: 0 +} +html .fc, .fc table { + font-size: 1em +} +.fc td, .fc th { + padding: 0; + vertical-align: top +} +.fc-header td { + white-space: nowrap; + background: none +} +.fc-header-left { + width: 100%; + text-align: left; + position: absolute; + left: 0; + top: 6px +} +.fc-header-left .fc-button { + margin: 0; + position: relative +} +.fc-header-left .fc-button-prev, .fc-header-left .fc-button-next { + float: left; + border: none; + padding: 14px 10px; + opacity: 0.5 +} +.fc-header-left .fc-button-prev .fc-button-inner, .fc-header-left .fc-button-next .fc-button-inner { + border: none +} +.fc-header-left .fc-button-prev .fc-button-inner .fc-button-content, .fc-header-left .fc-button-next .fc-button-inner .fc-button-content { + display: none +} +.fc-header-left .fc-button-prev.fc-state-hover, .fc-header-left .fc-button-next.fc-state-hover { + opacity: 1 +} +.fc-header-left .fc-button-prev.fc-state-down, .fc-header-left .fc-button-next.fc-state-down { + background: none !important; + margin-top: -1px +} +.fc-header-left .fc-button-prev .fc-button-inner { + background-position: 0 -351px; + height: 16px; + width: 11px +} +.fc-header-left .fc-button-next { + float: right +} +.fc-header-left .fc-button-next .fc-button-inner { + background-position: 0 -367px; + height: 16px; + width: 11px +} +.fc-header-center { + text-align: center +} +.fc-header-right { + text-align: right; + position: absolute; + top: -34px; + right: 10px +} +.fc-header-title { + display: inline-block; + vertical-align: top +} +.fc-header-title h2 { + margin-top: 0; + white-space: nowrap; + font-size: 1.1rem; + color: #6C737F; + line-height: 55px; +} +.fc .fc-header-space { + padding-left: 10px +} +.fc-header .fc-button { + margin-bottom: 1em; + vertical-align: top +} +.fc-header .fc-button { + margin-right: -1px +} +.fc-header .fc-corner-right { + margin-right: 1px +} +.fc-header .ui-corner-right { + margin-right: 0 +} +.fc-header .fc-state-hover, .fc-header .ui-state-hover { + z-index: 2 +} +.fc-header .fc-state-down { + z-index: 3 +} +.fc-header .fc-state-active, .fc-header .ui-state-active { + z-index: 4 +} +.fc-content { + clear: both; + background: #f9f9f9 +} +.fc-view { + width: 100%; + overflow: hidden +} +.fc-view thead { + background:#e9ecf1; + line-height: 35px +} +.fc-widget-header, .fc-widget-content { + border: 1px solid #ccc +} +.fc-state-highlight { + background: #F4F3E6 +} +.fc-cell-overlay { + background: #9cf; + opacity: .2; + filter: alpha(opacity=20) +} +.fc-button { + position: relative; + display: inline-block; + cursor: pointer +} +.fc-button-today{margin-top: 8px !important;} +.fc-state-default { + border-style: solid; + border-width: 1px 0 +} +.fc-button-inner { + position: relative; + float: left; + overflow: hidden +} +.fc-state-default .fc-button-inner { + border-style: solid; + border-width: 0 1px +} +.fc-button-content { + position: relative; + float: left; + height: 1.9em; + line-height: 1.9em; + padding: 0 .6em; + white-space: nowrap +} +.fc-button-content .fc-icon-wrap { + position: relative; + float: left; + top: 50% +} +.fc-button-content .ui-icon { + position: relative; + float: left; + margin-top: -50%; +*margin-top:0; +*top:-50% +} +.fc-state-default .fc-button-effect { + position: absolute; + top: 50%; + left: 0 +} +.fc-state-default .fc-button-effect span { + position: absolute; + top: -100px; + left: 0; + width: 500px; + height: 100px; + border-width: 100px 0 0 1px; + border-style: solid; + border-color: #fff; + background: #444; + opacity: .09; + filter: alpha(opacity=9) +} +.fc-state-default, .fc-state-default .fc-button-inner { + border-style: solid; + border-color: #ccc #bbb #aaa; + color: #000 +} +.fc-state-hover, .fc-state-hover .fc-button-inner { + border-color: #999 +} +.fc-state-down { + border-color: #555; + background: #777 +} +.fc-state-active, .fc-state-active .fc-button-inner { + border-color: #555; + background: #777; + color: #fff +} +.fc-state-disabled, .fc-state-disabled .fc-button-inner { + color: #999; + border-color: #ddd +} +.fc-state-disabled { + cursor: default +} +.fc-state-disabled .fc-button-effect { + display: none +} +.fc-event { + border-style: solid; + border-width: 0; + font-size: .85em; + cursor: default +} +a.fc-event, .fc-event-draggable { + cursor: pointer +} +a.fc-event { + text-decoration: none +} +.fc-rtl .fc-event { + text-align: right +} +.fc-event-skin { + border-color: #3f85f5; + background-color: #5e96ea; + color: #fff +} +.fc-event-inner { + position: relative; + width: 100%; + height: 100%; + border-style: solid; + border-width: 0; + overflow: hidden +} +.fc-event-time, .fc-event-title { + padding: 0 1px +} +.fc .ui-resizable-handle { + display: block; + position: absolute; + z-index: 99999; + overflow: hidden; + font-size: 300%; + line-height: 50% +} +.fc-event-hori { + border-width: 1px 0; + margin-bottom: 1px +} +.fc-event-hori .ui-resizable-e { + top: 0 !important; + right: -3px !important; + width: 7px !important; + height: 100% !important; + cursor: e-resize +} +.fc-event-hori .ui-resizable-w { + top: 0 !important; + left: -3px !important; + width: 7px !important; + height: 100% !important; + cursor: w-resize +} +.fc-event-hori .ui-resizable-handle { + _padding-bottom: 14px +} +.fc-corner-left { + margin-left: 1px +} +.fc-corner-left .fc-button-inner, .fc-corner-left .fc-event-inner { + margin-left: -1px +} +.fc-corner-right { + margin-right: 1px +} +.fc-corner-right .fc-button-inner, .fc-corner-right .fc-event-inner { + margin-right: -1px +} +.fc-corner-top { + margin-top: 1px +} +.fc-corner-top .fc-event-inner { + margin-top: -1px +} +.fc-corner-bottom { + margin-bottom: 1px +} +.fc-corner-bottom .fc-event-inner { + margin-bottom: -1px +} +.fc-corner-left .fc-event-inner { + border-left-width: 1px +} +.fc-corner-right .fc-event-inner { + border-right-width: 1px +} +.fc-corner-top .fc-event-inner { + border-top-width: 1px +} +.fc-corner-bottom .fc-event-inner { + border-bottom-width: 1px +} +table.fc-border-separate { + border-collapse: separate +} +.fc-border-separate th, .fc-border-separate td { + border-width: 1px 0 0 1px +} +.fc-border-separate th.fc-last, .fc-border-separate td.fc-last { + border-right-width: 1px +} +.fc-border-separate tr.fc-last th, .fc-border-separate tr.fc-last td { + border-bottom-width: 0px +} +.fc-first { + border-left-width: 0 !important +} +.fc-last { + border-right-width: 0 !important +} +.fc-grid th { + text-align: center +} +.fc-grid .fc-day-number { + float: right; + padding: 0 2px +} +.fc-grid .fc-other-month .fc-day-number { + opacity: 0.3; + filter: alpha(opacity=30) +} +.fc-grid .fc-day-content { + clear: both; + padding: 2px 2px 1px +} +.fc-grid .fc-event-time { + font-weight: bold +} +.fc-rtl .fc-grid .fc-day-number { + float: left +} +.fc-rtl .fc-grid .fc-event-time { + float: right +} +.fc-agenda table { + border-collapse: separate +} +.fc-agenda-days th { + text-align: center +} +.fc-agenda .fc-agenda-axis { + width: 60px !important; + padding: 0 4px; + vertical-align: middle; + text-align: right; + white-space: nowrap; + font-weight: normal +} +.fc-agenda .fc-day-content { + padding: 2px 2px 1px +} +.fc-agenda-days .fc-agenda-axis { + border-right-width: 1px +} +.fc-agenda-days .fc-col0 { + border-left-width: 0 +} +.fc-agenda-allday th { + border-width: 0 1px +} +.fc-agenda-allday .fc-day-content { + min-height: 34px; + _height: 34px +} +.fc-agenda-divider-inner { + height: 2px; + overflow: hidden +} +.fc-widget-header .fc-agenda-divider-inner { + background: #eee +} +.fc-agenda-slots th { + border-width: 1px 1px 0 +} +.fc-agenda-slots td { + border-width: 1px 0 0; + background: none +} +.fc-agenda-slots td div { + height: 20px +} +.fc-agenda-slots tr.fc-slot0 th, .fc-agenda-slots tr.fc-slot0 td { + border-top-width: 0 +} +.fc-agenda-slots tr.fc-minor th, .fc-agenda-slots tr.fc-minor td { + border-top-style: dotted +} +.fc-agenda-slots tr.fc-minor th.ui-widget-header { +*border-top-style:solid +} +.fc-event-vert { + border-width: 0 1px +} +.fc-event-vert .fc-event-head, .fc-event-vert .fc-event-content { + position: relative; + z-index: 2; + width: 100%; + overflow: hidden +} +.fc-event-vert .fc-event-time { + white-space: nowrap; + font-size: 10px +} +.fc-event-vert .fc-event-bg { + position: absolute; + z-index: 1; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: #fff; + opacity: .3; + filter: alpha(opacity=30) +} +.fc .ui-draggable-dragging .fc-event-bg, .fc-select-helper .fc-event-bg { + display: none\9 +} +.fc-event-vert .ui-resizable-s { + bottom: 0 !important; + width: 100% !important; + height: 8px !important; + overflow: hidden !important; + line-height: 8px !important; + font-size: 11px !important; + font-family: monospace; + text-align: center; + cursor: s-resize +} +.fc-agenda .ui-resizable-resizing { + _overflow: hidden +} +.fc-header-left .fc-button-prev .fc-button-inner {background: url('../img/icons-sa7c41345d9.png') no-repeat; background-position: 0 -351px; +height: 16px; +width: 11px;} + +.fc-header-left .fc-button-next .fc-button-inner {background: url('../img/icons-sa7c41345d9.png') no-repeat; background-position: 0 -367px; +height: 16px; +width: 11px;} + +/*------------------------------------------------------------------ +[8. Miscellaneous] +*/ + +.chart-holder { + width: 100%; + height: 250px; +} + +.dropdown-menu li>a:hover, .dropdown-menu .active>a, .dropdown-menu .active>a:hover { background:#00ba8b;} + +.accordion-heading { background:#e5e5e5; } +.accordion-heading a { color:#545454; text-decoration:none; font-weight:bold; } + +.btn-facebook-alt i { +color: #23386a; +} +.btn-twitter-alt i { +color: #0098d0; +} +.btn-google-alt i { +color: #b6362d; +} +.btn-linkedin-alt i { +color: #0073b2; +} +.btn-pinterest-alt i { +color: #ab171e; +} +.btn-github-alt i { +color: #333; +} + +.all-icons li { list-style:none;} + +.ML0 { margin-left:0} +.MR0 { margin-right:0;} + +.paginate_active { text-decoration: underline; } + + + +/*------------------------------------------------------------------ +[1. Max Width: 480px] +*/ + +@media (max-width: 480px) { + + .error-container h1 { + font-size: 72px; + } + +} + + + + + +/*------------------------------------------------------------------ +[1. Max Width: 767px] +*/ + +@media (max-width: 767px) { + + #main { + padding: 0 10px; + margin-right: -20px; + margin-left: -20px; + } + + + .subnavbar { + margin-left: -20px; + margin-right: -20px; + } + + + .subnavbar-inner { + height: auto; + } + + .subnavbar .container > ul { + width: 100%; + height: auto; + + border: none; + } + + .subnavbar .container > ul > li { + width: 33%; + height: 70px; + margin-bottom: 0; + + border: none; + } + + + + .subnavbar .container > ul > li.active > a { + font-size: 11px; + background: transparent; + } + + .subnavbar .container > ul > li > a > i { + display: inline-block; + margin-bottom: 0; + + font-size: 20px; + } + + + .subnavbar-open-right .dropdown-menu { + left: auto; + right: 0; + } + + .subnavbar-open-right .dropdown-menu:before { + left: auto; + right: 12px; + } + .subnavbar-open-right .dropdown-menu:after { + left: auto; + right: 13px; + } + + .extra { + margin-right: -20px; + margin-left: -20px; + } + + .extra .container { + padding: 0 20px; + } + + .footer { + margin-right: -20px; + margin-left: -20px; + } + + .footer .container { + padding: 0 20px; + } + + .footer .footer-terms { + text-align: left; + } + + .footer .footer-terms a { + margin-left: 0; + margin-right: 1em; + } + +} + + + + + +/*------------------------------------------------------------------ +[3. Max Width: 979px] +*/ + +@media (max-width: 979px) { + + .navbar-fixed-top { + position: static; + + margin-bottom: 0; + } + + .subnavbar { + } + + .subnavbar .container { + width: auto; + } +} + + + + + + +/*------------------------------------------------------------------ +[2. Max Width: 1200px] +*/ + +@media (min-width: 1200px) { + .navbar .search-query { + width: 200px; + } + +} diff --git a/static/fonts/MTP_ySUJH_bn48VBG8sNSnhCUOGz7vYGh680lGh-uXM.woff b/static/fonts/MTP_ySUJH_bn48VBG8sNSnhCUOGz7vYGh680lGh-uXM.woff new file mode 100644 index 0000000000000000000000000000000000000000..c06198da1c4bbc91d3a55662ad539a511f44dab1 GIT binary patch literal 21704 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 bCEtp$>XDD8qhB#wpVQ9)NV{9d0Kk6$!w1;r literal 0 HcmV?d00001 diff --git a/static/fonts/MTP_ySUJH_bn48VBG8sNSonF5uFdDttMLvmWuJdhhgs.ttf b/static/fonts/MTP_ySUJH_bn48VBG8sNSonF5uFdDttMLvmWuJdhhgs.ttf new file mode 100644 index 0000000000000000000000000000000000000000..c1845120dce93848e28c4fb646653150a10bdd7c GIT binary patch literal 37568 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 literal 0 HcmV?d00001 diff --git a/static/fonts/PRmiXeptR36kaC0GEAetxn5HxGBcBvicCpTp6spHfNo.woff b/static/fonts/PRmiXeptR36kaC0GEAetxn5HxGBcBvicCpTp6spHfNo.woff new file mode 100644 index 0000000000000000000000000000000000000000..2f2313ef807bdfcf86640e8de449d173ec392100 GIT binary patch literal 20360 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 fxZ{g7397d{;!x!C3*tv=1kX_>8f+4 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�-A&iY%khEsGVMaq&$BJA^QAs8x>7-g_ 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 k3oQ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/static/fonts/fontawesome-webfont.ttf b/static/fonts/fontawesome-webfont.ttf new file mode 100644 index 0000000000000000000000000000000000000000..d3659246915cacb0c9204271f1f9fc5f77049eac GIT binary patch literal 79076 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 literal 0 HcmV?d00001 diff --git a/static/fonts/xjAJXh38I15wypJXxuGMBobN6UDyHWBl620a-IRfuBk.woff b/static/fonts/xjAJXh38I15wypJXxuGMBobN6UDyHWBl620a-IRfuBk.woff new file mode 100644 index 0000000000000000000000000000000000000000..cd19d0782d7395a16bf84588fb2f0a1b30bd8512 GIT binary patch literal 20224 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 literal 0 HcmV?d00001 diff --git a/static/fonts/xjAJXh38I15wypJXxuGMBp0EAVxt0G0biEntp43Qt6E.ttf b/static/fonts/xjAJXh38I15wypJXxuGMBp0EAVxt0G0biEntp43Qt6E.ttf new file mode 100644 index 0000000000000000000000000000000000000000..3b903d56378308ffc73203c5c9c78d19329b3fa0 GIT binary patch literal 34416 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 literal 0 HcmV?d00001 diff --git a/static/js/base.js b/static/js/base.js new file mode 100644 index 0000000..9fe8127 --- /dev/null +++ b/static/js/base.js @@ -0,0 +1,57 @@ +$(function () { + + + $('.subnavbar').find ('li').each (function (i) { + + var mod = i % 3; + + if (mod === 2) { + $(this).addClass ('subnavbar-open-right'); + } + + }); + + +/* ADDED BY AFAQ */ + +var pulse_counter; // number of times the element should pulsate +var pulse_interval; // interval (in milliseconds) of pulsating + + +function pulsate_element(element){ + + while ( pulse_counter>0){ + pulse_counter--; + setTimeout(function(){ element.parent().toggleClass('pulse'); },pulse_interval*pulse_counter); + setTimeout(function(){ element.parent().parent().toggleClass('pulse-boder'); },pulse_interval*pulse_counter); + pulsate_element(element); + } + + //if (pulse_counter==0){ pulse_counter=8;} +} + +// smooth scrolling for links +$(function() { + $('a[href*=#]:not([href=#])').click(function() { + if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') + || location.hostname == this.hostname) { + + var target = $(this.hash); + + pulse_counter=8; // number of times the element should pulsate + pulse_interval=400; // interval (in milliseconds) of pulsating + pulsate_element(target); + + target = target.length ? target : $('[name=' + this.hash.slice(1) +']'); + if (target.length) { + $('html,body').animate({ + scrollTop: target.parent().offset().top-130 + }, 1000); + return false; + } + } + }); +}); + + +}); diff --git a/static/js/bootstrap.js b/static/js/bootstrap.js new file mode 100644 index 0000000..af61bb9 --- /dev/null +++ b/static/js/bootstrap.js @@ -0,0 +1,1729 @@ +/* =================================================== + * bootstrap-transition.js v2.0.2 + * http://twitter.github.com/bootstrap/javascript.html#transitions + * =================================================== + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ========================================================== */ + +!function( $ ) { + + $(function () { + + "use strict" + + /* CSS TRANSITION SUPPORT (https://gist.github.com/373874) + * ======================================================= */ + + $.support.transition = (function () { + var thisBody = document.body || document.documentElement + , thisStyle = thisBody.style + , support = thisStyle.transition !== undefined || thisStyle.WebkitTransition !== undefined || thisStyle.MozTransition !== undefined || thisStyle.MsTransition !== undefined || thisStyle.OTransition !== undefined + + return support && { + end: (function () { + var transitionEnd = "TransitionEnd" + /*if ( $.browser.webkit ) { + transitionEnd = "webkitTransitionEnd" + } else + + if ( $.browser.mozilla ) { + transitionEnd = "transitionend" + } else if ( $.browser.opera ) { + transitionEnd = "oTransitionEnd" + } + */ + return transitionEnd + }()) + } + })() + + }) + +}( window.jQuery );/* ========================================================== + * bootstrap-alert.js v2.0.2 + * http://twitter.github.com/bootstrap/javascript.html#alerts + * ========================================================== + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ========================================================== */ + + +!function( $ ){ + + "use strict" + + /* ALERT CLASS DEFINITION + * ====================== */ + + var dismiss = '[data-dismiss="alert"]' + , Alert = function ( el ) { + $(el).on('click', dismiss, this.close) + } + + Alert.prototype = { + + constructor: Alert + + , close: function ( e ) { + var $this = $(this) + , selector = $this.attr('data-target') + , $parent + + if (!selector) { + selector = $this.attr('href') + selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7 + } + + $parent = $(selector) + $parent.trigger('close') + + e && e.preventDefault() + + $parent.length || ($parent = $this.hasClass('alert') ? $this : $this.parent()) + + $parent + .trigger('close') + .removeClass('in') + + function removeElement() { + $parent + .trigger('closed') + .remove() + } + + $.support.transition && $parent.hasClass('fade') ? + $parent.on($.support.transition.end, removeElement) : + removeElement() + } + + } + + + /* ALERT PLUGIN DEFINITION + * ======================= */ + + $.fn.alert = function ( option ) { + return this.each(function () { + var $this = $(this) + , data = $this.data('alert') + if (!data) $this.data('alert', (data = new Alert(this))) + if (typeof option == 'string') data[option].call($this) + }) + } + + $.fn.alert.Constructor = Alert + + + /* ALERT DATA-API + * ============== */ + + $(function () { + $('body').on('click.alert.data-api', dismiss, Alert.prototype.close) + }) + +}( window.jQuery );/* ============================================================ + * bootstrap-button.js v2.0.2 + * http://twitter.github.com/bootstrap/javascript.html#buttons + * ============================================================ + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================ */ + +!function( $ ){ + + "use strict" + + /* BUTTON PUBLIC CLASS DEFINITION + * ============================== */ + + var Button = function ( element, options ) { + this.$element = $(element) + this.options = $.extend({}, $.fn.button.defaults, options) + } + + Button.prototype = { + + constructor: Button + + , setState: function ( state ) { + var d = 'disabled' + , $el = this.$element + , data = $el.data() + , val = $el.is('input') ? 'val' : 'html' + + state = state + 'Text' + data.resetText || $el.data('resetText', $el[val]()) + + $el[val](data[state] || this.options[state]) + + // push to event loop to allow forms to submit + setTimeout(function () { + state == 'loadingText' ? + $el.addClass(d).attr(d, d) : + $el.removeClass(d).removeAttr(d) + }, 0) + } + + , toggle: function () { + var $parent = this.$element.parent('[data-toggle="buttons-radio"]') + + $parent && $parent + .find('.active') + .removeClass('active') + + this.$element.toggleClass('active') + } + + } + + + /* BUTTON PLUGIN DEFINITION + * ======================== */ + + $.fn.button = function ( option ) { + return this.each(function () { + var $this = $(this) + , data = $this.data('button') + , options = typeof option == 'object' && option + if (!data) $this.data('button', (data = new Button(this, options))) + if (option == 'toggle') data.toggle() + else if (option) data.setState(option) + }) + } + + $.fn.button.defaults = { + loadingText: 'loading...' + } + + $.fn.button.Constructor = Button + + + /* BUTTON DATA-API + * =============== */ + + $(function () { + $('body').on('click.button.data-api', '[data-toggle^=button]', function ( e ) { + var $btn = $(e.target) + if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn') + $btn.button('toggle') + }) + }) + +}( window.jQuery );/* ========================================================== + * bootstrap-carousel.js v2.0.2 + * http://twitter.github.com/bootstrap/javascript.html#carousel + * ========================================================== + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ========================================================== */ + + +!function( $ ){ + + "use strict" + + /* CAROUSEL CLASS DEFINITION + * ========================= */ + + var Carousel = function (element, options) { + this.$element = $(element) + this.options = $.extend({}, $.fn.carousel.defaults, options) + this.options.slide && this.slide(this.options.slide) + this.options.pause == 'hover' && this.$element + .on('mouseenter', $.proxy(this.pause, this)) + .on('mouseleave', $.proxy(this.cycle, this)) + } + + Carousel.prototype = { + + cycle: function () { + this.interval = setInterval($.proxy(this.next, this), this.options.interval) + return this + } + + , to: function (pos) { + var $active = this.$element.find('.active') + , children = $active.parent().children() + , activePos = children.index($active) + , that = this + + if (pos > (children.length - 1) || pos < 0) return + + if (this.sliding) { + return this.$element.one('slid', function () { + that.to(pos) + }) + } + + if (activePos == pos) { + return this.pause().cycle() + } + + return this.slide(pos > activePos ? 'next' : 'prev', $(children[pos])) + } + + , pause: function () { + clearInterval(this.interval) + this.interval = null + return this + } + + , next: function () { + if (this.sliding) return + return this.slide('next') + } + + , prev: function () { + if (this.sliding) return + return this.slide('prev') + } + + , slide: function (type, next) { + var $active = this.$element.find('.active') + , $next = next || $active[type]() + , isCycling = this.interval + , direction = type == 'next' ? 'left' : 'right' + , fallback = type == 'next' ? 'first' : 'last' + , that = this + + this.sliding = true + + isCycling && this.pause() + + $next = $next.length ? $next : this.$element.find('.item')[fallback]() + + if ($next.hasClass('active')) return + + if (!$.support.transition && this.$element.hasClass('slide')) { + this.$element.trigger('slide') + $active.removeClass('active') + $next.addClass('active') + this.sliding = false + this.$element.trigger('slid') + } else { + $next.addClass(type) + $next[0].offsetWidth // force reflow + $active.addClass(direction) + $next.addClass(direction) + this.$element.trigger('slide') + this.$element.one($.support.transition.end, function () { + $next.removeClass([type, direction].join(' ')).addClass('active') + $active.removeClass(['active', direction].join(' ')) + that.sliding = false + setTimeout(function () { that.$element.trigger('slid') }, 0) + }) + } + + isCycling && this.cycle() + + return this + } + + } + + + /* CAROUSEL PLUGIN DEFINITION + * ========================== */ + + $.fn.carousel = function ( option ) { + return this.each(function () { + var $this = $(this) + , data = $this.data('carousel') + , options = typeof option == 'object' && option + if (!data) $this.data('carousel', (data = new Carousel(this, options))) + if (typeof option == 'number') data.to(option) + else if (typeof option == 'string' || (option = options.slide)) data[option]() + else data.cycle() + }) + } + + $.fn.carousel.defaults = { + interval: 5000 + , pause: 'hover' + } + + $.fn.carousel.Constructor = Carousel + + + /* CAROUSEL DATA-API + * ================= */ + + $(function () { + $('body').on('click.carousel.data-api', '[data-slide]', function ( e ) { + var $this = $(this), href + , $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7 + , options = !$target.data('modal') && $.extend({}, $target.data(), $this.data()) + $target.carousel(options) + e.preventDefault() + }) + }) + +}( window.jQuery );/* ============================================================= + * bootstrap-collapse.js v2.0.2 + * http://twitter.github.com/bootstrap/javascript.html#collapse + * ============================================================= + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================ */ + +!function( $ ){ + + "use strict" + + var Collapse = function ( element, options ) { + this.$element = $(element) + this.options = $.extend({}, $.fn.collapse.defaults, options) + + if (this.options["parent"]) { + this.$parent = $(this.options["parent"]) + } + + this.options.toggle && this.toggle() + } + + Collapse.prototype = { + + constructor: Collapse + + , dimension: function () { + var hasWidth = this.$element.hasClass('width') + return hasWidth ? 'width' : 'height' + } + + , show: function () { + var dimension = this.dimension() + , scroll = $.camelCase(['scroll', dimension].join('-')) + , actives = this.$parent && this.$parent.find('.in') + , hasData + + if (actives && actives.length) { + hasData = actives.data('collapse') + actives.collapse('hide') + hasData || actives.data('collapse', null) + } + + this.$element[dimension](0) + this.transition('addClass', 'show', 'shown') + this.$element[dimension](this.$element[0][scroll]) + + } + + , hide: function () { + var dimension = this.dimension() + this.reset(this.$element[dimension]()) + this.transition('removeClass', 'hide', 'hidden') + this.$element[dimension](0) + } + + , reset: function ( size ) { + var dimension = this.dimension() + + this.$element + .removeClass('collapse') + [dimension](size || 'auto') + [0].offsetWidth + + this.$element[size ? 'addClass' : 'removeClass']('collapse') + + return this + } + + , transition: function ( method, startEvent, completeEvent ) { + var that = this + , complete = function () { + if (startEvent == 'show') that.reset() + that.$element.trigger(completeEvent) + } + + this.$element + .trigger(startEvent) + [method]('in') + + $.support.transition && this.$element.hasClass('collapse') ? + this.$element.one($.support.transition.end, complete) : + complete() + } + + , toggle: function () { + this[this.$element.hasClass('in') ? 'hide' : 'show']() + } + + } + + /* COLLAPSIBLE PLUGIN DEFINITION + * ============================== */ + + $.fn.collapse = function ( option ) { + return this.each(function () { + var $this = $(this) + , data = $this.data('collapse') + , options = typeof option == 'object' && option + if (!data) $this.data('collapse', (data = new Collapse(this, options))) + if (typeof option == 'string') data[option]() + }) + } + + $.fn.collapse.defaults = { + toggle: true + } + + $.fn.collapse.Constructor = Collapse + + + /* COLLAPSIBLE DATA-API + * ==================== */ + + $(function () { + $('body').on('click.collapse.data-api', '[data-toggle=collapse]', function ( e ) { + var $this = $(this), href + , target = $this.attr('data-target') + || e.preventDefault() + || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') //strip for ie7 + , option = $(target).data('collapse') ? 'toggle' : $this.data() + $(target).collapse(option) + }) + }) + +}( window.jQuery );/* ============================================================ + * bootstrap-dropdown.js v2.0.2 + * http://twitter.github.com/bootstrap/javascript.html#dropdowns + * ============================================================ + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================ */ + + +!function( $ ){ + + "use strict" + + /* DROPDOWN CLASS DEFINITION + * ========================= */ + + var toggle = '[data-toggle="dropdown"]' + , Dropdown = function ( element ) { + var $el = $(element).on('click.dropdown.data-api', this.toggle) + $('html').on('click.dropdown.data-api', function () { + $el.parent().removeClass('open') + }) + } + + Dropdown.prototype = { + + constructor: Dropdown + + , toggle: function ( e ) { + var $this = $(this) + , selector = $this.attr('data-target') + , $parent + , isActive + + if (!selector) { + selector = $this.attr('href') + selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7 + } + + $parent = $(selector) + $parent.length || ($parent = $this.parent()) + + isActive = $parent.hasClass('open') + + clearMenus() + !isActive && $parent.toggleClass('open') + + return false + } + + } + + function clearMenus() { + $(toggle).parent().removeClass('open') + } + + + /* DROPDOWN PLUGIN DEFINITION + * ========================== */ + + $.fn.dropdown = function ( option ) { + return this.each(function () { + var $this = $(this) + , data = $this.data('dropdown') + if (!data) $this.data('dropdown', (data = new Dropdown(this))) + if (typeof option == 'string') data[option].call($this) + }) + } + + $.fn.dropdown.Constructor = Dropdown + + + /* APPLY TO STANDARD DROPDOWN ELEMENTS + * =================================== */ + + $(function () { + $('html').on('click.dropdown.data-api', clearMenus) + $('body').on('click.dropdown.data-api', toggle, Dropdown.prototype.toggle) + }) + +}( window.jQuery );/* ========================================================= + * bootstrap-modal.js v2.0.2 + * http://twitter.github.com/bootstrap/javascript.html#modals + * ========================================================= + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ========================================================= */ + + +!function( $ ){ + + "use strict" + + /* MODAL CLASS DEFINITION + * ====================== */ + + var Modal = function ( content, options ) { + this.options = options + this.$element = $(content) + .delegate('[data-dismiss="modal"]', 'click.dismiss.modal', $.proxy(this.hide, this)) + } + + Modal.prototype = { + + constructor: Modal + + , toggle: function () { + return this[!this.isShown ? 'show' : 'hide']() + } + + , show: function () { + var that = this + + if (this.isShown) return + + $('body').addClass('modal-open') + + this.isShown = true + this.$element.trigger('show') + + escape.call(this) + backdrop.call(this, function () { + var transition = $.support.transition && that.$element.hasClass('fade') + + !that.$element.parent().length && that.$element.appendTo(document.body) //don't move modals dom position + + that.$element + .show() + + if (transition) { + that.$element[0].offsetWidth // force reflow + } + + that.$element.addClass('in') + + transition ? + that.$element.one($.support.transition.end, function () { that.$element.trigger('shown') }) : + that.$element.trigger('shown') + + }) + } + + , hide: function ( e ) { + e && e.preventDefault() + + if (!this.isShown) return + + var that = this + this.isShown = false + + $('body').removeClass('modal-open') + + escape.call(this) + + this.$element + .trigger('hide') + .removeClass('in') + + $.support.transition && this.$element.hasClass('fade') ? + hideWithTransition.call(this) : + hideModal.call(this) + } + + } + + + /* MODAL PRIVATE METHODS + * ===================== */ + + function hideWithTransition() { + var that = this + , timeout = setTimeout(function () { + that.$element.off($.support.transition.end) + hideModal.call(that) + }, 500) + + this.$element.one($.support.transition.end, function () { + clearTimeout(timeout) + hideModal.call(that) + }) + } + + function hideModal( that ) { + this.$element + .hide() + .trigger('hidden') + + backdrop.call(this) + } + + function backdrop( callback ) { + var that = this + , animate = this.$element.hasClass('fade') ? 'fade' : '' + + if (this.isShown && this.options.backdrop) { + var doAnimate = $.support.transition && animate + + this.$backdrop = $('

")[0];a.nTable.parentNode.insertBefore(b,a.nTable);a.nTableWrapper=h('
')[0];a.nTableReinsertBefore=a.nTable.nextSibling;for(var c=a.nTableWrapper,d=a.sDom.split(""),i,f,g,e,w,o,k,m=0;m")[0];w=d[m+ +1];if("'"==w||'"'==w){o="";for(k=2;d[m+k]!=w;)o+=d[m+k],k++;"H"==o?o=a.oClasses.sJUIHeader:"F"==o&&(o=a.oClasses.sJUIFooter);-1!=o.indexOf(".")?(w=o.split("."),e.id=w[0].substr(1,w[0].length-1),e.className=w[1]):"#"==o.charAt(0)?e.id=o.substr(1,o.length-1):e.className=o;m+=k}c.appendChild(e);c=e}else if(">"==g)c=c.parentNode;else if("l"==g&&a.oFeatures.bPaginate&&a.oFeatures.bLengthChange)i=ya(a),f=1;else if("f"==g&&a.oFeatures.bFilter)i=za(a),f=1;else if("r"==g&&a.oFeatures.bProcessing)i=Aa(a),f= +1;else if("t"==g)i=Ba(a),f=1;else if("i"==g&&a.oFeatures.bInfo)i=Ca(a),f=1;else if("p"==g&&a.oFeatures.bPaginate)i=Da(a),f=1;else if(0!==j.ext.aoFeatures.length){e=j.ext.aoFeatures;k=0;for(w=e.length;k'):""===c?'':c+' ',d=l.createElement("div");d.className=a.oClasses.sFilter;d.innerHTML="";a.aanFeatures.f||(d.id=a.sTableId+"_filter");c=h('input[type="text"]',d);d._DT_Input=c[0];c.val(b.sSearch.replace('"',"""));c.bind("keyup.DT",function(){for(var c=a.aanFeatures.f,d=this.value===""?"":this.value, +g=0,e=c.length;g=b.length)a.aiDisplay.splice(0,a.aiDisplay.length),a.aiDisplay=a.aiDisplayMaster.slice();else if(a.aiDisplay.length==a.aiDisplayMaster.length||i.sSearch.length>b.length||1==c||0!==b.indexOf(i.sSearch)){a.aiDisplay.splice(0, +a.aiDisplay.length);la(a,1);for(b=0;b").html(c).text()); +return c.replace(/[\n\r]/g," ")}function ma(a,b,c,d){if(c)return a=b?a.split(" "):oa(a).split(" "),a="^(?=.*?"+a.join(")(?=.*?")+").*$",RegExp(a,d?"i":"");a=b?a:oa(a);return RegExp(a,d?"i":"")}function Ja(a,b){return"function"===typeof j.ext.ofnSearch[b]?j.ext.ofnSearch[b](a):null===a?"":"html"==b?a.replace(/[\r\n]/g," ").replace(/<.*?>/g,""):"string"===typeof a?a.replace(/[\r\n]/g," "):a}function oa(a){return a.replace(RegExp("(\\/|\\.|\\*|\\+|\\?|\\||\\(|\\)|\\[|\\]|\\{|\\}|\\\\|\\$|\\^|\\-)","g"), +"\\$1")}function Ca(a){var b=l.createElement("div");b.className=a.oClasses.sInfo;a.aanFeatures.i||(a.aoDrawCallback.push({fn:Ka,sName:"information"}),b.id=a.sTableId+"_info");a.nTable.setAttribute("aria-describedby",a.sTableId+"_info");return b}function Ka(a){if(a.oFeatures.bInfo&&0!==a.aanFeatures.i.length){var b=a.oLanguage,c=a._iDisplayStart+1,d=a.fnDisplayEnd(),i=a.fnRecordsTotal(),f=a.fnRecordsDisplay(),g;g=0===f?b.sInfoEmpty:b.sInfo;f!=i&&(g+=" "+b.sInfoFiltered);g+=b.sInfoPostFix;g=ja(a,g); +null!==b.fnInfoCallback&&(g=b.fnInfoCallback.call(a.oInstance,a,c,d,i,f,g));a=a.aanFeatures.i;b=0;for(c=a.length;b",c,d,i=a.aLengthMenu;if(2==i.length&&"object"===typeof i[0]&&"object"===typeof i[1]){c=0;for(d=i[0].length;c'+i[1][c]+""}else{c=0;for(d=i.length;c'+i[c]+""}b+="";i=l.createElement("div");a.aanFeatures.l|| +(i.id=a.sTableId+"_length");i.className=a.oClasses.sLength;i.innerHTML="";h('select option[value="'+a._iDisplayLength+'"]',i).attr("selected",!0);h("select",i).bind("change.DT",function(){var b=h(this).val(),i=a.aanFeatures.l;c=0;for(d=i.length;ca.aiDisplay.length||-1==a._iDisplayLength?a.aiDisplay.length:a._iDisplayStart+a._iDisplayLength}function Da(a){if(a.oScroll.bInfinite)return null;var b=l.createElement("div");b.className=a.oClasses.sPaging+a.sPaginationType;j.ext.oPagination[a.sPaginationType].fnInit(a, +b,function(a){y(a);x(a)});a.aanFeatures.p||a.aoDrawCallback.push({fn:function(a){j.ext.oPagination[a.sPaginationType].fnUpdate(a,function(a){y(a);x(a)})},sName:"pagination"});return b}function qa(a,b){var c=a._iDisplayStart;if("number"===typeof b)a._iDisplayStart=b*a._iDisplayLength,a._iDisplayStart>a.fnRecordsDisplay()&&(a._iDisplayStart=0);else if("first"==b)a._iDisplayStart=0;else if("previous"==b)a._iDisplayStart=0<=a._iDisplayLength?a._iDisplayStart-a._iDisplayLength:0,0>a._iDisplayStart&&(a._iDisplayStart= +0);else if("next"==b)0<=a._iDisplayLength?a._iDisplayStart+a._iDisplayLengthh(a.nTable).height()-a.oScroll.iLoadGap&&a.fnDisplayEnd()d.offsetHeight||"scroll"==h(d).css("overflow-y")))a.nTable.style.width=q(h(a.nTable).outerWidth()-a.oScroll.iBarWidth)}else""!==a.oScroll.sXInner?a.nTable.style.width= +q(a.oScroll.sXInner):i==h(d).width()&&h(d).height()i-a.oScroll.iBarWidth&&(a.nTable.style.width=q(i))):a.nTable.style.width=q(i);i=h(a.nTable).outerWidth();C(s,e);C(function(a){p.push(q(h(a).width()))},e);C(function(a,b){a.style.width=p[b]},g);h(e).height(0);null!==a.nTFoot&&(C(s,j),C(function(a){n.push(q(h(a).width()))},j),C(function(a,b){a.style.width=n[b]},o),h(j).height(0));C(function(a,b){a.innerHTML= +"";a.style.width=p[b]},e);null!==a.nTFoot&&C(function(a,b){a.innerHTML="";a.style.width=n[b]},j);if(h(a.nTable).outerWidth()d.offsetHeight||"scroll"==h(d).css("overflow-y")?i+a.oScroll.iBarWidth:i;if(r&&(d.scrollHeight>d.offsetHeight||"scroll"==h(d).css("overflow-y")))a.nTable.style.width=q(g-a.oScroll.iBarWidth);d.style.width=q(g);a.nScrollHead.style.width=q(g);null!==a.nTFoot&&(a.nScrollFoot.style.width=q(g));""===a.oScroll.sX?D(a,1,"The table cannot fit into the current element which will cause column misalignment. The table has been drawn at its minimum possible width."): +""!==a.oScroll.sXInner&&D(a,1,"The table cannot fit into the current element which will cause column misalignment. Increase the sScrollXInner value or remove it to allow automatic calculation")}else d.style.width=q("100%"),a.nScrollHead.style.width=q("100%"),null!==a.nTFoot&&(a.nScrollFoot.style.width=q("100%"));""===a.oScroll.sY&&r&&(d.style.height=q(a.nTable.offsetHeight+a.oScroll.iBarWidth));""!==a.oScroll.sY&&a.oScroll.bCollapse&&(d.style.height=q(a.oScroll.sY),r=""!==a.oScroll.sX&&a.nTable.offsetWidth> +d.offsetWidth?a.oScroll.iBarWidth:0,a.nTable.offsetHeightd.clientHeight||"scroll"==h(d).css("overflow-y");b.style.paddingRight=c?a.oScroll.iBarWidth+"px":"0px";null!==a.nTFoot&&(R.style.width=q(r),l.style.width=q(r),l.style.paddingRight=c?a.oScroll.iBarWidth+"px":"0px");h(d).scroll();if(a.bSorted||a.bFiltered)d.scrollTop=0}function C(a,b,c){for(var d= +0,i=0,f=b.length,g,e;itd",b));j=N(a,f);for(f=d=0;fc)return null;if(null===a.aoData[c].nTr){var d=l.createElement("td");d.innerHTML=v(a,c,b,"");return d}return J(a,c)[b]}function Pa(a,b){for(var c=-1,d=-1,i=0;i/g,"");e.length>c&&(c=e.length,d=i)}return d}function q(a){if(null===a)return"0px";if("number"==typeof a)return 0>a?"0px":a+"px";var b=a.charCodeAt(a.length-1); +return 48>b||57/g,""),i=q[c].nTh,i.removeAttribute("aria-sort"),i.removeAttribute("aria-label"),q[c].bSortable?0d&&d++;f=RegExp(f+"[123]");var o;b=0;for(c=a.length;b
')[0];l.body.appendChild(b);a.oBrowser.bScrollOversize= +100===h("#DT_BrowserTest",b)[0].offsetWidth?!0:!1;l.body.removeChild(b)}function Va(a){return function(){var b=[s(this[j.ext.iApiIndex])].concat(Array.prototype.slice.call(arguments));return j.ext.oApi[a].apply(this,b)}}var U=/\[.*?\]$/,Wa=X.JSON?JSON.stringify:function(a){var b=typeof a;if("object"!==b||null===a)return"string"===b&&(a='"'+a+'"'),a+"";var c,d,e=[],f=h.isArray(a);for(c in a)d=a[c],b=typeof d,"string"===b?d='"'+d+'"':"object"===b&&null!==d&&(d=Wa(d)),e.push((f?"":'"'+c+'":')+d);return(f? +"[":"{")+e+(f?"]":"}")};this.$=function(a,b){var c,d,e=[],f;d=s(this[j.ext.iApiIndex]);var g=d.aoData,o=d.aiDisplay,k=d.aiDisplayMaster;b||(b={});b=h.extend({},{filter:"none",order:"current",page:"all"},b);if("current"==b.page){c=d._iDisplayStart;for(d=d.fnDisplayEnd();c=d.fnRecordsDisplay()&&(d._iDisplayStart-=d._iDisplayLength,0>d._iDisplayStart&&(d._iDisplayStart=0));if(c===n||c)y(d),x(d);return g};this.fnDestroy=function(a){var b=s(this[j.ext.iApiIndex]),c=b.nTableWrapper.parentNode,d=b.nTBody,i,f,a=a===n?!1:a;b.bDestroying=!0;A(b,"aoDestroyCallback","destroy",[b]);if(!a){i=0;for(f=b.aoColumns.length;itr>td."+b.oClasses.sRowEmpty,b.nTable).parent().remove();b.nTable!=b.nTHead.parentNode&&(h(b.nTable).children("thead").remove(),b.nTable.appendChild(b.nTHead));b.nTFoot&&b.nTable!=b.nTFoot.parentNode&&(h(b.nTable).children("tfoot").remove(),b.nTable.appendChild(b.nTFoot));b.nTable.parentNode.removeChild(b.nTable);h(b.nTableWrapper).remove();b.aaSorting=[];b.aaSortingFixed=[];P(b);h(T(b)).removeClass(b.asStripeClasses.join(" "));h("th, td",b.nTHead).removeClass([b.oClasses.sSortable,b.oClasses.sSortableAsc, +b.oClasses.sSortableDesc,b.oClasses.sSortableNone].join(" "));b.bJUI&&(h("th span."+b.oClasses.sSortIcon+", td span."+b.oClasses.sSortIcon,b.nTHead).remove(),h("th, td",b.nTHead).each(function(){var a=h("div."+b.oClasses.sSortJUIWrapper,this),c=a.contents();h(this).append(c);a.remove()}));!a&&b.nTableReinsertBefore?c.insertBefore(b.nTable,b.nTableReinsertBefore):a||c.appendChild(b.nTable);i=0;for(f=b.aoData.length;i=t(d);if(!m)for(e=a;et<"F"ip>')):h.extend(g.oClasses,j.ext.oStdClasses);h(this).addClass(g.oClasses.sTable);if(""!==g.oScroll.sX||""!==g.oScroll.sY)g.oScroll.iBarWidth=Qa();g.iInitDisplayStart===n&&(g.iInitDisplayStart=e.iDisplayStart, +g._iDisplayStart=e.iDisplayStart);e.bStateSave&&(g.oFeatures.bStateSave=!0,Sa(g,e),z(g,"aoDrawCallback",ra,"state_save"));null!==e.iDeferLoading&&(g.bDeferLoading=!0,a=h.isArray(e.iDeferLoading),g._iRecordsDisplay=a?e.iDeferLoading[0]:e.iDeferLoading,g._iRecordsTotal=a?e.iDeferLoading[1]:e.iDeferLoading);null!==e.aaData&&(f=!0);""!==e.oLanguage.sUrl?(g.oLanguage.sUrl=e.oLanguage.sUrl,h.getJSON(g.oLanguage.sUrl,null,function(a){pa(a);h.extend(true,g.oLanguage,e.oLanguage,a);ba(g)}),i=!0):h.extend(!0, +g.oLanguage,e.oLanguage);null===e.asStripeClasses&&(g.asStripeClasses=[g.oClasses.sStripeOdd,g.oClasses.sStripeEven]);b=g.asStripeClasses.length;g.asDestroyStripes=[];if(b){c=!1;d=h(this).children("tbody").children("tr:lt("+b+")");for(a=0;a=g.aoColumns.length&&(g.aaSorting[a][0]=0);var k=g.aoColumns[g.aaSorting[a][0]];g.aaSorting[a][2]===n&&(g.aaSorting[a][2]=0);e.aaSorting===n&&g.saved_aaSorting===n&&(g.aaSorting[a][1]= +k.asSorting[0]);c=0;for(d=k.asSorting.length;c=parseInt(n,10)};j.fnIsDataTable=function(e){for(var h=j.settings,m=0;me)return e;for(var h=e+"",e=h.split(""),j="",h=h.length,k=0;k'+k.sPrevious+''+k.sNext+"":'';h(j).append(k);var l=h("a",j), +k=l[0],l=l[1];e.oApi._fnBindAction(k,{action:"previous"},n);e.oApi._fnBindAction(l,{action:"next"},n);e.aanFeatures.p||(j.id=e.sTableId+"_paginate",k.id=e.sTableId+"_previous",l.id=e.sTableId+"_next",k.setAttribute("aria-controls",e.sTableId),l.setAttribute("aria-controls",e.sTableId))},fnUpdate:function(e){if(e.aanFeatures.p)for(var h=e.oClasses,j=e.aanFeatures.p,k,l=0,n=j.length;l'+k.sFirst+''+k.sPrevious+''+k.sNext+''+k.sLast+"");var t=h("a",j),k=t[0],l=t[1],r=t[2],t=t[3];e.oApi._fnBindAction(k,{action:"first"},n);e.oApi._fnBindAction(l,{action:"previous"},n);e.oApi._fnBindAction(r,{action:"next"},n);e.oApi._fnBindAction(t,{action:"last"},n);e.aanFeatures.p||(j.id=e.sTableId+"_paginate",k.id=e.sTableId+"_first",l.id=e.sTableId+"_previous",r.id=e.sTableId+"_next",t.id=e.sTableId+"_last")}, +fnUpdate:function(e,o){if(e.aanFeatures.p){var m=j.ext.oPagination.iFullNumbersShowPages,k=Math.floor(m/2),l=Math.ceil(e.fnRecordsDisplay()/e._iDisplayLength),n=Math.ceil(e._iDisplayStart/e._iDisplayLength)+1,t="",r,B=e.oClasses,u,M=e.aanFeatures.p,L=function(h){e.oApi._fnBindAction(this,{page:h+r-1},function(h){e.oApi._fnPageChange(e,h.data.page);o(e);h.preventDefault()})};-1===e._iDisplayLength?n=k=r=1:l=l-k?(r=l-m+1,k=l):(r=n-Math.ceil(m/2)+1,k=r+m-1);for(m=r;m<=k;m++)t+= +n!==m?''+e.fnFormatNumber(m)+"":''+e.fnFormatNumber(m)+"";m=0;for(k=M.length;mh?1:0},"string-desc":function(e,h){return eh?-1:0},"html-pre":function(e){return e.replace(/<.*?>/g,"").toLowerCase()},"html-asc":function(e,h){return eh?1:0},"html-desc":function(e,h){return e< +h?1:e>h?-1:0},"date-pre":function(e){e=Date.parse(e);if(isNaN(e)||""===e)e=Date.parse("01/01/1970 00:00:00");return e},"date-asc":function(e,h){return e-h},"date-desc":function(e,h){return h-e},"numeric-pre":function(e){return"-"==e||""===e?0:1*e},"numeric-asc":function(e,h){return e-h},"numeric-desc":function(e,h){return h-e}});h.extend(j.ext.aTypes,[function(e){if("number"===typeof e)return"numeric";if("string"!==typeof e)return null;var h,j=!1;h=e.charAt(0);if(-1=="0123456789-".indexOf(h))return null; +for(var k=1;k")?"html":null}]);h.fn.DataTable=j;h.fn.dataTable=j;h.fn.dataTableSettings=j.settings;h.fn.dataTableExt=j.ext};"function"===typeof define&&define.amd?define(["jquery"],L):jQuery&&!jQuery.fn.dataTable&& +L(jQuery)})(window,document); diff --git a/static/js/jquery.js b/static/js/jquery.js new file mode 100644 index 0000000..c5c6482 --- /dev/null +++ b/static/js/jquery.js @@ -0,0 +1,9789 @@ +/*! + * jQuery JavaScript Library v1.10.2 + * http://jquery.com/ + * + * Includes Sizzle.js + * http://sizzlejs.com/ + * + * Copyright 2005, 2013 jQuery Foundation, Inc. and other contributors + * Released under the MIT license + * http://jquery.org/license + * + * Date: 2013-07-03T13:48Z + */ +(function( window, undefined ) { + +// Can't do this because several apps including ASP.NET trace +// the stack via arguments.caller.callee and Firefox dies if +// you try to trace through "use strict" call chains. (#13335) +// Support: Firefox 18+ +//"use strict"; +var + // The deferred used on DOM ready + readyList, + + // A central reference to the root jQuery(document) + rootjQuery, + + // Support: IE<10 + // For `typeof xmlNode.method` instead of `xmlNode.method !== undefined` + core_strundefined = typeof undefined, + + // Use the correct document accordingly with window argument (sandbox) + location = window.location, + document = window.document, + docElem = document.documentElement, + + // Map over jQuery in case of overwrite + _jQuery = window.jQuery, + + // Map over the $ in case of overwrite + _$ = window.$, + + // [[Class]] -> type pairs + class2type = {}, + + // List of deleted data cache ids, so we can reuse them + core_deletedIds = [], + + core_version = "1.10.2", + + // Save a reference to some core methods + core_concat = core_deletedIds.concat, + core_push = core_deletedIds.push, + core_slice = core_deletedIds.slice, + core_indexOf = core_deletedIds.indexOf, + core_toString = class2type.toString, + core_hasOwn = class2type.hasOwnProperty, + core_trim = core_version.trim, + + // Define a local copy of jQuery + jQuery = function( selector, context ) { + // The jQuery object is actually just the init constructor 'enhanced' + return new jQuery.fn.init( selector, context, rootjQuery ); + }, + + // Used for matching numbers + core_pnum = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source, + + // Used for splitting on whitespace + core_rnotwhite = /\S+/g, + + // Make sure we trim BOM and NBSP (here's looking at you, Safari 5.0 and IE) + rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, + + // A simple way to check for HTML strings + // Prioritize #id over to avoid XSS via location.hash (#9521) + // Strict HTML recognition (#11290: must start with <) + rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/, + + // Match a standalone tag + rsingleTag = /^<(\w+)\s*\/?>(?:<\/\1>|)$/, + + // JSON RegExp + rvalidchars = /^[\],:{}\s]*$/, + rvalidbraces = /(?:^|:|,)(?:\s*\[)+/g, + rvalidescape = /\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g, + rvalidtokens = /"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g, + + // Matches dashed string for camelizing + rmsPrefix = /^-ms-/, + rdashAlpha = /-([\da-z])/gi, + + // Used by jQuery.camelCase as callback to replace() + fcamelCase = function( all, letter ) { + return letter.toUpperCase(); + }, + + // The ready event handler + completed = function( event ) { + + // readyState === "complete" is good enough for us to call the dom ready in oldIE + if ( document.addEventListener || event.type === "load" || document.readyState === "complete" ) { + detach(); + jQuery.ready(); + } + }, + // Clean-up method for dom ready events + detach = function() { + if ( document.addEventListener ) { + document.removeEventListener( "DOMContentLoaded", completed, false ); + window.removeEventListener( "load", completed, false ); + + } else { + document.detachEvent( "onreadystatechange", completed ); + window.detachEvent( "onload", completed ); + } + }; + +jQuery.fn = jQuery.prototype = { + // The current version of jQuery being used + jquery: core_version, + + constructor: jQuery, + init: function( selector, context, rootjQuery ) { + var match, elem; + + // HANDLE: $(""), $(null), $(undefined), $(false) + if ( !selector ) { + return this; + } + + // Handle HTML strings + if ( typeof selector === "string" ) { + if ( selector.charAt(0) === "<" && selector.charAt( selector.length - 1 ) === ">" && selector.length >= 3 ) { + // Assume that strings that start and end with <> are HTML and skip the regex check + match = [ null, selector, null ]; + + } else { + match = rquickExpr.exec( selector ); + } + + // Match html or make sure no context is specified for #id + if ( match && (match[1] || !context) ) { + + // HANDLE: $(html) -> $(array) + if ( match[1] ) { + context = context instanceof jQuery ? context[0] : context; + + // scripts is true for back-compat + jQuery.merge( this, jQuery.parseHTML( + match[1], + context && context.nodeType ? context.ownerDocument || context : document, + true + ) ); + + // HANDLE: $(html, props) + if ( rsingleTag.test( match[1] ) && jQuery.isPlainObject( context ) ) { + for ( match in context ) { + // Properties of context are called as methods if possible + if ( jQuery.isFunction( this[ match ] ) ) { + this[ match ]( context[ match ] ); + + // ...and otherwise set as attributes + } else { + this.attr( match, context[ match ] ); + } + } + } + + return this; + + // HANDLE: $(#id) + } else { + elem = document.getElementById( match[2] ); + + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document #6963 + if ( elem && elem.parentNode ) { + // Handle the case where IE and Opera return items + // by name instead of ID + if ( elem.id !== match[2] ) { + return rootjQuery.find( selector ); + } + + // Otherwise, we inject the element directly into the jQuery object + this.length = 1; + this[0] = elem; + } + + this.context = document; + this.selector = selector; + return this; + } + + // HANDLE: $(expr, $(...)) + } else if ( !context || context.jquery ) { + return ( context || rootjQuery ).find( selector ); + + // HANDLE: $(expr, context) + // (which is just equivalent to: $(context).find(expr) + } else { + return this.constructor( context ).find( selector ); + } + + // HANDLE: $(DOMElement) + } else if ( selector.nodeType ) { + this.context = this[0] = selector; + this.length = 1; + return this; + + // HANDLE: $(function) + // Shortcut for document ready + } else if ( jQuery.isFunction( selector ) ) { + return rootjQuery.ready( selector ); + } + + if ( selector.selector !== undefined ) { + this.selector = selector.selector; + this.context = selector.context; + } + + return jQuery.makeArray( selector, this ); + }, + + // Start with an empty selector + selector: "", + + // The default length of a jQuery object is 0 + length: 0, + + toArray: function() { + return core_slice.call( this ); + }, + + // Get the Nth element in the matched element set OR + // Get the whole matched element set as a clean array + get: function( num ) { + return num == null ? + + // Return a 'clean' array + this.toArray() : + + // Return just the object + ( num < 0 ? this[ this.length + num ] : this[ num ] ); + }, + + // Take an array of elements and push it onto the stack + // (returning the new matched element set) + pushStack: function( elems ) { + + // Build a new jQuery matched element set + var ret = jQuery.merge( this.constructor(), elems ); + + // Add the old object onto the stack (as a reference) + ret.prevObject = this; + ret.context = this.context; + + // Return the newly-formed element set + return ret; + }, + + // Execute a callback for every element in the matched set. + // (You can seed the arguments with an array of args, but this is + // only used internally.) + each: function( callback, args ) { + return jQuery.each( this, callback, args ); + }, + + ready: function( fn ) { + // Add the callback + jQuery.ready.promise().done( fn ); + + return this; + }, + + slice: function() { + return this.pushStack( core_slice.apply( this, arguments ) ); + }, + + first: function() { + return this.eq( 0 ); + }, + + last: function() { + return this.eq( -1 ); + }, + + eq: function( i ) { + var len = this.length, + j = +i + ( i < 0 ? len : 0 ); + return this.pushStack( j >= 0 && j < len ? [ this[j] ] : [] ); + }, + + map: function( callback ) { + return this.pushStack( jQuery.map(this, function( elem, i ) { + return callback.call( elem, i, elem ); + })); + }, + + end: function() { + return this.prevObject || this.constructor(null); + }, + + // For internal use only. + // Behaves like an Array's method, not like a jQuery method. + push: core_push, + sort: [].sort, + splice: [].splice +}; + +// Give the init function the jQuery prototype for later instantiation +jQuery.fn.init.prototype = jQuery.fn; + +jQuery.extend = jQuery.fn.extend = function() { + var src, copyIsArray, copy, name, options, clone, + target = arguments[0] || {}, + i = 1, + length = arguments.length, + deep = false; + + // Handle a deep copy situation + if ( typeof target === "boolean" ) { + deep = target; + target = arguments[1] || {}; + // skip the boolean and the target + i = 2; + } + + // Handle case when target is a string or something (possible in deep copy) + if ( typeof target !== "object" && !jQuery.isFunction(target) ) { + target = {}; + } + + // extend jQuery itself if only one argument is passed + if ( length === i ) { + target = this; + --i; + } + + for ( ; i < length; i++ ) { + // Only deal with non-null/undefined values + if ( (options = arguments[ i ]) != null ) { + // Extend the base object + for ( name in options ) { + src = target[ name ]; + copy = options[ name ]; + + // Prevent never-ending loop + if ( target === copy ) { + continue; + } + + // Recurse if we're merging plain objects or arrays + if ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) { + if ( copyIsArray ) { + copyIsArray = false; + clone = src && jQuery.isArray(src) ? src : []; + + } else { + clone = src && jQuery.isPlainObject(src) ? src : {}; + } + + // Never move original objects, clone them + target[ name ] = jQuery.extend( deep, clone, copy ); + + // Don't bring in undefined values + } else if ( copy !== undefined ) { + target[ name ] = copy; + } + } + } + } + + // Return the modified object + return target; +}; + +jQuery.extend({ + // Unique for each copy of jQuery on the page + // Non-digits removed to match rinlinejQuery + expando: "jQuery" + ( core_version + Math.random() ).replace( /\D/g, "" ), + + noConflict: function( deep ) { + if ( window.$ === jQuery ) { + window.$ = _$; + } + + if ( deep && window.jQuery === jQuery ) { + window.jQuery = _jQuery; + } + + return jQuery; + }, + + // Is the DOM ready to be used? Set to true once it occurs. + isReady: false, + + // A counter to track how many items to wait for before + // the ready event fires. See #6781 + readyWait: 1, + + // Hold (or release) the ready event + holdReady: function( hold ) { + if ( hold ) { + jQuery.readyWait++; + } else { + jQuery.ready( true ); + } + }, + + // Handle when the DOM is ready + ready: function( wait ) { + + // Abort if there are pending holds or we're already ready + if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) { + return; + } + + // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443). + if ( !document.body ) { + return setTimeout( jQuery.ready ); + } + + // Remember that the DOM is ready + jQuery.isReady = true; + + // If a normal DOM Ready event fired, decrement, and wait if need be + if ( wait !== true && --jQuery.readyWait > 0 ) { + return; + } + + // If there are functions bound, to execute + readyList.resolveWith( document, [ jQuery ] ); + + // Trigger any bound ready events + if ( jQuery.fn.trigger ) { + jQuery( document ).trigger("ready").off("ready"); + } + }, + + // See test/unit/core.js for details concerning isFunction. + // Since version 1.3, DOM methods and functions like alert + // aren't supported. They return false on IE (#2968). + isFunction: function( obj ) { + return jQuery.type(obj) === "function"; + }, + + isArray: Array.isArray || function( obj ) { + return jQuery.type(obj) === "array"; + }, + + isWindow: function( obj ) { + /* jshint eqeqeq: false */ + return obj != null && obj == obj.window; + }, + + isNumeric: function( obj ) { + return !isNaN( parseFloat(obj) ) && isFinite( obj ); + }, + + type: function( obj ) { + if ( obj == null ) { + return String( obj ); + } + return typeof obj === "object" || typeof obj === "function" ? + class2type[ core_toString.call(obj) ] || "object" : + typeof obj; + }, + + isPlainObject: function( obj ) { + var key; + + // Must be an Object. + // Because of IE, we also have to check the presence of the constructor property. + // Make sure that DOM nodes and window objects don't pass through, as well + if ( !obj || jQuery.type(obj) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) { + return false; + } + + try { + // Not own constructor property must be Object + if ( obj.constructor && + !core_hasOwn.call(obj, "constructor") && + !core_hasOwn.call(obj.constructor.prototype, "isPrototypeOf") ) { + return false; + } + } catch ( e ) { + // IE8,9 Will throw exceptions on certain host objects #9897 + return false; + } + + // Support: IE<9 + // Handle iteration over inherited properties before own properties. + if ( jQuery.support.ownLast ) { + for ( key in obj ) { + return core_hasOwn.call( obj, key ); + } + } + + // Own properties are enumerated firstly, so to speed up, + // if last one is own, then all properties are own. + for ( key in obj ) {} + + return key === undefined || core_hasOwn.call( obj, key ); + }, + + isEmptyObject: function( obj ) { + var name; + for ( name in obj ) { + return false; + } + return true; + }, + + error: function( msg ) { + throw new Error( msg ); + }, + + // data: string of html + // context (optional): If specified, the fragment will be created in this context, defaults to document + // keepScripts (optional): If true, will include scripts passed in the html string + parseHTML: function( data, context, keepScripts ) { + if ( !data || typeof data !== "string" ) { + return null; + } + if ( typeof context === "boolean" ) { + keepScripts = context; + context = false; + } + context = context || document; + + var parsed = rsingleTag.exec( data ), + scripts = !keepScripts && []; + + // Single tag + if ( parsed ) { + return [ context.createElement( parsed[1] ) ]; + } + + parsed = jQuery.buildFragment( [ data ], context, scripts ); + if ( scripts ) { + jQuery( scripts ).remove(); + } + return jQuery.merge( [], parsed.childNodes ); + }, + + parseJSON: function( data ) { + // Attempt to parse using the native JSON parser first + if ( window.JSON && window.JSON.parse ) { + return window.JSON.parse( data ); + } + + if ( data === null ) { + return data; + } + + if ( typeof data === "string" ) { + + // Make sure leading/trailing whitespace is removed (IE can't handle it) + data = jQuery.trim( data ); + + if ( data ) { + // Make sure the incoming data is actual JSON + // Logic borrowed from http://json.org/json2.js + if ( rvalidchars.test( data.replace( rvalidescape, "@" ) + .replace( rvalidtokens, "]" ) + .replace( rvalidbraces, "")) ) { + + return ( new Function( "return " + data ) )(); + } + } + } + + jQuery.error( "Invalid JSON: " + data ); + }, + + // Cross-browser xml parsing + parseXML: function( data ) { + var xml, tmp; + if ( !data || typeof data !== "string" ) { + return null; + } + try { + if ( window.DOMParser ) { // Standard + tmp = new DOMParser(); + xml = tmp.parseFromString( data , "text/xml" ); + } else { // IE + xml = new ActiveXObject( "Microsoft.XMLDOM" ); + xml.async = "false"; + xml.loadXML( data ); + } + } catch( e ) { + xml = undefined; + } + if ( !xml || !xml.documentElement || xml.getElementsByTagName( "parsererror" ).length ) { + jQuery.error( "Invalid XML: " + data ); + } + return xml; + }, + + noop: function() {}, + + // Evaluates a script in a global context + // Workarounds based on findings by Jim Driscoll + // http://weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-global-context + globalEval: function( data ) { + if ( data && jQuery.trim( data ) ) { + // We use execScript on Internet Explorer + // We use an anonymous function so that context is window + // rather than jQuery in Firefox + ( window.execScript || function( data ) { + window[ "eval" ].call( window, data ); + } )( data ); + } + }, + + // Convert dashed to camelCase; used by the css and data modules + // Microsoft forgot to hump their vendor prefix (#9572) + camelCase: function( string ) { + return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); + }, + + nodeName: function( elem, name ) { + return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); + }, + + // args is for internal usage only + each: function( obj, callback, args ) { + var value, + i = 0, + length = obj.length, + isArray = isArraylike( obj ); + + if ( args ) { + if ( isArray ) { + for ( ; i < length; i++ ) { + value = callback.apply( obj[ i ], args ); + + if ( value === false ) { + break; + } + } + } else { + for ( i in obj ) { + value = callback.apply( obj[ i ], args ); + + if ( value === false ) { + break; + } + } + } + + // A special, fast, case for the most common use of each + } else { + if ( isArray ) { + for ( ; i < length; i++ ) { + value = callback.call( obj[ i ], i, obj[ i ] ); + + if ( value === false ) { + break; + } + } + } else { + for ( i in obj ) { + value = callback.call( obj[ i ], i, obj[ i ] ); + + if ( value === false ) { + break; + } + } + } + } + + return obj; + }, + + // Use native String.trim function wherever possible + trim: core_trim && !core_trim.call("\uFEFF\xA0") ? + function( text ) { + return text == null ? + "" : + core_trim.call( text ); + } : + + // Otherwise use our own trimming functionality + function( text ) { + return text == null ? + "" : + ( text + "" ).replace( rtrim, "" ); + }, + + // results is for internal usage only + makeArray: function( arr, results ) { + var ret = results || []; + + if ( arr != null ) { + if ( isArraylike( Object(arr) ) ) { + jQuery.merge( ret, + typeof arr === "string" ? + [ arr ] : arr + ); + } else { + core_push.call( ret, arr ); + } + } + + return ret; + }, + + inArray: function( elem, arr, i ) { + var len; + + if ( arr ) { + if ( core_indexOf ) { + return core_indexOf.call( arr, elem, i ); + } + + len = arr.length; + i = i ? i < 0 ? Math.max( 0, len + i ) : i : 0; + + for ( ; i < len; i++ ) { + // Skip accessing in sparse arrays + if ( i in arr && arr[ i ] === elem ) { + return i; + } + } + } + + return -1; + }, + + merge: function( first, second ) { + var l = second.length, + i = first.length, + j = 0; + + if ( typeof l === "number" ) { + for ( ; j < l; j++ ) { + first[ i++ ] = second[ j ]; + } + } else { + while ( second[j] !== undefined ) { + first[ i++ ] = second[ j++ ]; + } + } + + first.length = i; + + return first; + }, + + grep: function( elems, callback, inv ) { + var retVal, + ret = [], + i = 0, + length = elems.length; + inv = !!inv; + + // Go through the array, only saving the items + // that pass the validator function + for ( ; i < length; i++ ) { + retVal = !!callback( elems[ i ], i ); + if ( inv !== retVal ) { + ret.push( elems[ i ] ); + } + } + + return ret; + }, + + // arg is for internal usage only + map: function( elems, callback, arg ) { + var value, + i = 0, + length = elems.length, + isArray = isArraylike( elems ), + ret = []; + + // Go through the array, translating each of the items to their + if ( isArray ) { + for ( ; i < length; i++ ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret[ ret.length ] = value; + } + } + + // Go through every key on the object, + } else { + for ( i in elems ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret[ ret.length ] = value; + } + } + } + + // Flatten any nested arrays + return core_concat.apply( [], ret ); + }, + + // A global GUID counter for objects + guid: 1, + + // Bind a function to a context, optionally partially applying any + // arguments. + proxy: function( fn, context ) { + var args, proxy, tmp; + + if ( typeof context === "string" ) { + tmp = fn[ context ]; + context = fn; + fn = tmp; + } + + // Quick check to determine if target is callable, in the spec + // this throws a TypeError, but we will just return undefined. + if ( !jQuery.isFunction( fn ) ) { + return undefined; + } + + // Simulated bind + args = core_slice.call( arguments, 2 ); + proxy = function() { + return fn.apply( context || this, args.concat( core_slice.call( arguments ) ) ); + }; + + // Set the guid of unique handler to the same of original handler, so it can be removed + proxy.guid = fn.guid = fn.guid || jQuery.guid++; + + return proxy; + }, + + // Multifunctional method to get and set values of a collection + // The value/s can optionally be executed if it's a function + access: function( elems, fn, key, value, chainable, emptyGet, raw ) { + var i = 0, + length = elems.length, + bulk = key == null; + + // Sets many values + if ( jQuery.type( key ) === "object" ) { + chainable = true; + for ( i in key ) { + jQuery.access( elems, fn, i, key[i], true, emptyGet, raw ); + } + + // Sets one value + } else if ( value !== undefined ) { + chainable = true; + + if ( !jQuery.isFunction( value ) ) { + raw = true; + } + + if ( bulk ) { + // Bulk operations run against the entire set + if ( raw ) { + fn.call( elems, value ); + fn = null; + + // ...except when executing function values + } else { + bulk = fn; + fn = function( elem, key, value ) { + return bulk.call( jQuery( elem ), value ); + }; + } + } + + if ( fn ) { + for ( ; i < length; i++ ) { + fn( elems[i], key, raw ? value : value.call( elems[i], i, fn( elems[i], key ) ) ); + } + } + } + + return chainable ? + elems : + + // Gets + bulk ? + fn.call( elems ) : + length ? fn( elems[0], key ) : emptyGet; + }, + + now: function() { + return ( new Date() ).getTime(); + }, + + // A method for quickly swapping in/out CSS properties to get correct calculations. + // Note: this method belongs to the css module but it's needed here for the support module. + // If support gets modularized, this method should be moved back to the css module. + swap: function( elem, options, callback, args ) { + var ret, name, + old = {}; + + // Remember the old values, and insert the new ones + for ( name in options ) { + old[ name ] = elem.style[ name ]; + elem.style[ name ] = options[ name ]; + } + + ret = callback.apply( elem, args || [] ); + + // Revert the old values + for ( name in options ) { + elem.style[ name ] = old[ name ]; + } + + return ret; + } +}); + +jQuery.ready.promise = function( obj ) { + if ( !readyList ) { + + readyList = jQuery.Deferred(); + + // Catch cases where $(document).ready() is called after the browser event has already occurred. + // we once tried to use readyState "interactive" here, but it caused issues like the one + // discovered by ChrisS here: http://bugs.jquery.com/ticket/12282#comment:15 + if ( document.readyState === "complete" ) { + // Handle it asynchronously to allow scripts the opportunity to delay ready + setTimeout( jQuery.ready ); + + // Standards-based browsers support DOMContentLoaded + } else if ( document.addEventListener ) { + // Use the handy event callback + document.addEventListener( "DOMContentLoaded", completed, false ); + + // A fallback to window.onload, that will always work + window.addEventListener( "load", completed, false ); + + // If IE event model is used + } else { + // Ensure firing before onload, maybe late but safe also for iframes + document.attachEvent( "onreadystatechange", completed ); + + // A fallback to window.onload, that will always work + window.attachEvent( "onload", completed ); + + // If IE and not a frame + // continually check to see if the document is ready + var top = false; + + try { + top = window.frameElement == null && document.documentElement; + } catch(e) {} + + if ( top && top.doScroll ) { + (function doScrollCheck() { + if ( !jQuery.isReady ) { + + try { + // Use the trick by Diego Perini + // http://javascript.nwbox.com/IEContentLoaded/ + top.doScroll("left"); + } catch(e) { + return setTimeout( doScrollCheck, 50 ); + } + + // detach all dom ready events + detach(); + + // and execute any waiting functions + jQuery.ready(); + } + })(); + } + } + } + return readyList.promise( obj ); +}; + +// Populate the class2type map +jQuery.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function(i, name) { + class2type[ "[object " + name + "]" ] = name.toLowerCase(); +}); + +function isArraylike( obj ) { + var length = obj.length, + type = jQuery.type( obj ); + + if ( jQuery.isWindow( obj ) ) { + return false; + } + + if ( obj.nodeType === 1 && length ) { + return true; + } + + return type === "array" || type !== "function" && + ( length === 0 || + typeof length === "number" && length > 0 && ( length - 1 ) in obj ); +} + +// All jQuery objects should point back to these +rootjQuery = jQuery(document); +/*! + * Sizzle CSS Selector Engine v1.10.2 + * http://sizzlejs.com/ + * + * Copyright 2013 jQuery Foundation, Inc. and other contributors + * Released under the MIT license + * http://jquery.org/license + * + * Date: 2013-07-03 + */ +(function( window, undefined ) { + +var i, + support, + cachedruns, + Expr, + getText, + isXML, + compile, + outermostContext, + sortInput, + + // Local document vars + setDocument, + document, + docElem, + documentIsHTML, + rbuggyQSA, + rbuggyMatches, + matches, + contains, + + // Instance-specific data + expando = "sizzle" + -(new Date()), + preferredDoc = window.document, + dirruns = 0, + done = 0, + classCache = createCache(), + tokenCache = createCache(), + compilerCache = createCache(), + hasDuplicate = false, + sortOrder = function( a, b ) { + if ( a === b ) { + hasDuplicate = true; + return 0; + } + return 0; + }, + + // General-purpose constants + strundefined = typeof undefined, + MAX_NEGATIVE = 1 << 31, + + // Instance methods + hasOwn = ({}).hasOwnProperty, + arr = [], + pop = arr.pop, + push_native = arr.push, + push = arr.push, + slice = arr.slice, + // Use a stripped-down indexOf if we can't use a native one + indexOf = arr.indexOf || function( elem ) { + var i = 0, + len = this.length; + for ( ; i < len; i++ ) { + if ( this[i] === elem ) { + return i; + } + } + return -1; + }, + + booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", + + // Regular expressions + + // Whitespace characters http://www.w3.org/TR/css3-selectors/#whitespace + whitespace = "[\\x20\\t\\r\\n\\f]", + // http://www.w3.org/TR/css3-syntax/#characters + characterEncoding = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+", + + // Loosely modeled on CSS identifier characters + // An unquoted value should be a CSS identifier http://www.w3.org/TR/css3-selectors/#attribute-selectors + // Proper syntax: http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier + identifier = characterEncoding.replace( "w", "w#" ), + + // Acceptable operators http://www.w3.org/TR/selectors/#attribute-selectors + attributes = "\\[" + whitespace + "*(" + characterEncoding + ")" + whitespace + + "*(?:([*^$|!~]?=)" + whitespace + "*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|(" + identifier + ")|)|)" + whitespace + "*\\]", + + // Prefer arguments quoted, + // then not containing pseudos/brackets, + // then attribute selectors/non-parenthetical expressions, + // then anything else + // These preferences are here to reduce the number of selectors + // needing tokenize in the PSEUDO preFilter + pseudos = ":(" + characterEncoding + ")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|" + attributes.replace( 3, 8 ) + ")*)|.*)\\)|)", + + // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter + rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ), + + rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), + rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ), + + rsibling = new RegExp( whitespace + "*[+~]" ), + rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*)" + whitespace + "*\\]", "g" ), + + rpseudo = new RegExp( pseudos ), + ridentifier = new RegExp( "^" + identifier + "$" ), + + matchExpr = { + "ID": new RegExp( "^#(" + characterEncoding + ")" ), + "CLASS": new RegExp( "^\\.(" + characterEncoding + ")" ), + "TAG": new RegExp( "^(" + characterEncoding.replace( "w", "w*" ) + ")" ), + "ATTR": new RegExp( "^" + attributes ), + "PSEUDO": new RegExp( "^" + pseudos ), + "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace + + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace + + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), + "bool": new RegExp( "^(?:" + booleans + ")$", "i" ), + // For use in libraries implementing .is() + // We use this for POS matching in `select` + "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + + whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) + }, + + rnative = /^[^{]+\{\s*\[native \w/, + + // Easily-parseable/retrievable ID or TAG or CLASS selectors + rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, + + rinputs = /^(?:input|select|textarea|button)$/i, + rheader = /^h\d$/i, + + rescape = /'|\\/g, + + // CSS escapes http://www.w3.org/TR/CSS21/syndata.html#escaped-characters + runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ), + funescape = function( _, escaped, escapedWhitespace ) { + var high = "0x" + escaped - 0x10000; + // NaN means non-codepoint + // Support: Firefox + // Workaround erroneous numeric interpretation of +"0x" + return high !== high || escapedWhitespace ? + escaped : + // BMP codepoint + high < 0 ? + String.fromCharCode( high + 0x10000 ) : + // Supplemental Plane codepoint (surrogate pair) + String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); + }; + +// Optimize for push.apply( _, NodeList ) +try { + push.apply( + (arr = slice.call( preferredDoc.childNodes )), + preferredDoc.childNodes + ); + // Support: Android<4.0 + // Detect silently failing push.apply + arr[ preferredDoc.childNodes.length ].nodeType; +} catch ( e ) { + push = { apply: arr.length ? + + // Leverage slice if possible + function( target, els ) { + push_native.apply( target, slice.call(els) ); + } : + + // Support: IE<9 + // Otherwise append directly + function( target, els ) { + var j = target.length, + i = 0; + // Can't trust NodeList.length + while ( (target[j++] = els[i++]) ) {} + target.length = j - 1; + } + }; +} + +function Sizzle( selector, context, results, seed ) { + var match, elem, m, nodeType, + // QSA vars + i, groups, old, nid, newContext, newSelector; + + if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) { + setDocument( context ); + } + + context = context || document; + results = results || []; + + if ( !selector || typeof selector !== "string" ) { + return results; + } + + if ( (nodeType = context.nodeType) !== 1 && nodeType !== 9 ) { + return []; + } + + if ( documentIsHTML && !seed ) { + + // Shortcuts + if ( (match = rquickExpr.exec( selector )) ) { + // Speed-up: Sizzle("#ID") + if ( (m = match[1]) ) { + if ( nodeType === 9 ) { + elem = context.getElementById( m ); + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document #6963 + if ( elem && elem.parentNode ) { + // Handle the case where IE, Opera, and Webkit return items + // by name instead of ID + if ( elem.id === m ) { + results.push( elem ); + return results; + } + } else { + return results; + } + } else { + // Context is not a document + if ( context.ownerDocument && (elem = context.ownerDocument.getElementById( m )) && + contains( context, elem ) && elem.id === m ) { + results.push( elem ); + return results; + } + } + + // Speed-up: Sizzle("TAG") + } else if ( match[2] ) { + push.apply( results, context.getElementsByTagName( selector ) ); + return results; + + // Speed-up: Sizzle(".CLASS") + } else if ( (m = match[3]) && support.getElementsByClassName && context.getElementsByClassName ) { + push.apply( results, context.getElementsByClassName( m ) ); + return results; + } + } + + // QSA path + if ( support.qsa && (!rbuggyQSA || !rbuggyQSA.test( selector )) ) { + nid = old = expando; + newContext = context; + newSelector = nodeType === 9 && selector; + + // qSA works strangely on Element-rooted queries + // We can work around this by specifying an extra ID on the root + // and working up from there (Thanks to Andrew Dupont for the technique) + // IE 8 doesn't work on object elements + if ( nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) { + groups = tokenize( selector ); + + if ( (old = context.getAttribute("id")) ) { + nid = old.replace( rescape, "\\$&" ); + } else { + context.setAttribute( "id", nid ); + } + nid = "[id='" + nid + "'] "; + + i = groups.length; + while ( i-- ) { + groups[i] = nid + toSelector( groups[i] ); + } + newContext = rsibling.test( selector ) && context.parentNode || context; + newSelector = groups.join(","); + } + + if ( newSelector ) { + try { + push.apply( results, + newContext.querySelectorAll( newSelector ) + ); + return results; + } catch(qsaError) { + } finally { + if ( !old ) { + context.removeAttribute("id"); + } + } + } + } + } + + // All others + return select( selector.replace( rtrim, "$1" ), context, results, seed ); +} + +/** + * Create key-value caches of limited size + * @returns {Function(string, Object)} Returns the Object data after storing it on itself with + * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) + * deleting the oldest entry + */ +function createCache() { + var keys = []; + + function cache( key, value ) { + // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) + if ( keys.push( key += " " ) > Expr.cacheLength ) { + // Only keep the most recent entries + delete cache[ keys.shift() ]; + } + return (cache[ key ] = value); + } + return cache; +} + +/** + * Mark a function for special use by Sizzle + * @param {Function} fn The function to mark + */ +function markFunction( fn ) { + fn[ expando ] = true; + return fn; +} + +/** + * Support testing using an element + * @param {Function} fn Passed the created div and expects a boolean result + */ +function assert( fn ) { + var div = document.createElement("div"); + + try { + return !!fn( div ); + } catch (e) { + return false; + } finally { + // Remove from its parent by default + if ( div.parentNode ) { + div.parentNode.removeChild( div ); + } + // release memory in IE + div = null; + } +} + +/** + * Adds the same handler for all of the specified attrs + * @param {String} attrs Pipe-separated list of attributes + * @param {Function} handler The method that will be applied + */ +function addHandle( attrs, handler ) { + var arr = attrs.split("|"), + i = attrs.length; + + while ( i-- ) { + Expr.attrHandle[ arr[i] ] = handler; + } +} + +/** + * Checks document order of two siblings + * @param {Element} a + * @param {Element} b + * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b + */ +function siblingCheck( a, b ) { + var cur = b && a, + diff = cur && a.nodeType === 1 && b.nodeType === 1 && + ( ~b.sourceIndex || MAX_NEGATIVE ) - + ( ~a.sourceIndex || MAX_NEGATIVE ); + + // Use IE sourceIndex if available on both nodes + if ( diff ) { + return diff; + } + + // Check if b follows a + if ( cur ) { + while ( (cur = cur.nextSibling) ) { + if ( cur === b ) { + return -1; + } + } + } + + return a ? 1 : -1; +} + +/** + * Returns a function to use in pseudos for input types + * @param {String} type + */ +function createInputPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === type; + }; +} + +/** + * Returns a function to use in pseudos for buttons + * @param {String} type + */ +function createButtonPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return (name === "input" || name === "button") && elem.type === type; + }; +} + +/** + * Returns a function to use in pseudos for positionals + * @param {Function} fn + */ +function createPositionalPseudo( fn ) { + return markFunction(function( argument ) { + argument = +argument; + return markFunction(function( seed, matches ) { + var j, + matchIndexes = fn( [], seed.length, argument ), + i = matchIndexes.length; + + // Match elements found at the specified indexes + while ( i-- ) { + if ( seed[ (j = matchIndexes[i]) ] ) { + seed[j] = !(matches[j] = seed[j]); + } + } + }); + }); +} + +/** + * Detect xml + * @param {Element|Object} elem An element or a document + */ +isXML = Sizzle.isXML = function( elem ) { + // documentElement is verified for cases where it doesn't yet exist + // (such as loading iframes in IE - #4833) + var documentElement = elem && (elem.ownerDocument || elem).documentElement; + return documentElement ? documentElement.nodeName !== "HTML" : false; +}; + +// Expose support vars for convenience +support = Sizzle.support = {}; + +/** + * Sets document-related variables once based on the current document + * @param {Element|Object} [doc] An element or document object to use to set the document + * @returns {Object} Returns the current document + */ +setDocument = Sizzle.setDocument = function( node ) { + var doc = node ? node.ownerDocument || node : preferredDoc, + parent = doc.defaultView; + + // If no document and documentElement is available, return + if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) { + return document; + } + + // Set our document + document = doc; + docElem = doc.documentElement; + + // Support tests + documentIsHTML = !isXML( doc ); + + // Support: IE>8 + // If iframe document is assigned to "document" variable and if iframe has been reloaded, + // IE will throw "permission denied" error when accessing "document" variable, see jQuery #13936 + // IE6-8 do not support the defaultView property so parent will be undefined + if ( parent && parent.attachEvent && parent !== parent.top ) { + parent.attachEvent( "onbeforeunload", function() { + setDocument(); + }); + } + + /* Attributes + ---------------------------------------------------------------------- */ + + // Support: IE<8 + // Verify that getAttribute really returns attributes and not properties (excepting IE8 booleans) + support.attributes = assert(function( div ) { + div.className = "i"; + return !div.getAttribute("className"); + }); + + /* getElement(s)By* + ---------------------------------------------------------------------- */ + + // Check if getElementsByTagName("*") returns only elements + support.getElementsByTagName = assert(function( div ) { + div.appendChild( doc.createComment("") ); + return !div.getElementsByTagName("*").length; + }); + + // Check if getElementsByClassName can be trusted + support.getElementsByClassName = assert(function( div ) { + div.innerHTML = "
"; + + // Support: Safari<4 + // Catch class over-caching + div.firstChild.className = "i"; + // Support: Opera<10 + // Catch gEBCN failure to find non-leading classes + return div.getElementsByClassName("i").length === 2; + }); + + // Support: IE<10 + // Check if getElementById returns elements by name + // The broken getElementById methods don't pick up programatically-set names, + // so use a roundabout getElementsByName test + support.getById = assert(function( div ) { + docElem.appendChild( div ).id = expando; + return !doc.getElementsByName || !doc.getElementsByName( expando ).length; + }); + + // ID find and filter + if ( support.getById ) { + Expr.find["ID"] = function( id, context ) { + if ( typeof context.getElementById !== strundefined && documentIsHTML ) { + var m = context.getElementById( id ); + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document #6963 + return m && m.parentNode ? [m] : []; + } + }; + Expr.filter["ID"] = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + return elem.getAttribute("id") === attrId; + }; + }; + } else { + // Support: IE6/7 + // getElementById is not reliable as a find shortcut + delete Expr.find["ID"]; + + Expr.filter["ID"] = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + var node = typeof elem.getAttributeNode !== strundefined && elem.getAttributeNode("id"); + return node && node.value === attrId; + }; + }; + } + + // Tag + Expr.find["TAG"] = support.getElementsByTagName ? + function( tag, context ) { + if ( typeof context.getElementsByTagName !== strundefined ) { + return context.getElementsByTagName( tag ); + } + } : + function( tag, context ) { + var elem, + tmp = [], + i = 0, + results = context.getElementsByTagName( tag ); + + // Filter out possible comments + if ( tag === "*" ) { + while ( (elem = results[i++]) ) { + if ( elem.nodeType === 1 ) { + tmp.push( elem ); + } + } + + return tmp; + } + return results; + }; + + // Class + Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) { + if ( typeof context.getElementsByClassName !== strundefined && documentIsHTML ) { + return context.getElementsByClassName( className ); + } + }; + + /* QSA/matchesSelector + ---------------------------------------------------------------------- */ + + // QSA and matchesSelector support + + // matchesSelector(:active) reports false when true (IE9/Opera 11.5) + rbuggyMatches = []; + + // qSa(:focus) reports false when true (Chrome 21) + // We allow this because of a bug in IE8/9 that throws an error + // whenever `document.activeElement` is accessed on an iframe + // So, we allow :focus to pass through QSA all the time to avoid the IE error + // See http://bugs.jquery.com/ticket/13378 + rbuggyQSA = []; + + if ( (support.qsa = rnative.test( doc.querySelectorAll )) ) { + // Build QSA regex + // Regex strategy adopted from Diego Perini + assert(function( div ) { + // Select is set to empty string on purpose + // This is to test IE's treatment of not explicitly + // setting a boolean content attribute, + // since its presence should be enough + // http://bugs.jquery.com/ticket/12359 + div.innerHTML = ""; + + // Support: IE8 + // Boolean attributes and "value" are not treated correctly + if ( !div.querySelectorAll("[selected]").length ) { + rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" ); + } + + // Webkit/Opera - :checked should return selected option elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + // IE8 throws error here and will not see later tests + if ( !div.querySelectorAll(":checked").length ) { + rbuggyQSA.push(":checked"); + } + }); + + assert(function( div ) { + + // Support: Opera 10-12/IE8 + // ^= $= *= and empty values + // Should not select anything + // Support: Windows 8 Native Apps + // The type attribute is restricted during .innerHTML assignment + var input = doc.createElement("input"); + input.setAttribute( "type", "hidden" ); + div.appendChild( input ).setAttribute( "t", "" ); + + if ( div.querySelectorAll("[t^='']").length ) { + rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" ); + } + + // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) + // IE8 throws error here and will not see later tests + if ( !div.querySelectorAll(":enabled").length ) { + rbuggyQSA.push( ":enabled", ":disabled" ); + } + + // Opera 10-11 does not throw on post-comma invalid pseudos + div.querySelectorAll("*,:x"); + rbuggyQSA.push(",.*:"); + }); + } + + if ( (support.matchesSelector = rnative.test( (matches = docElem.webkitMatchesSelector || + docElem.mozMatchesSelector || + docElem.oMatchesSelector || + docElem.msMatchesSelector) )) ) { + + assert(function( div ) { + // Check to see if it's possible to do matchesSelector + // on a disconnected node (IE 9) + support.disconnectedMatch = matches.call( div, "div" ); + + // This should fail with an exception + // Gecko does not error, returns false instead + matches.call( div, "[s!='']:x" ); + rbuggyMatches.push( "!=", pseudos ); + }); + } + + rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") ); + rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") ); + + /* Contains + ---------------------------------------------------------------------- */ + + // Element contains another + // Purposefully does not implement inclusive descendent + // As in, an element does not contain itself + contains = rnative.test( docElem.contains ) || docElem.compareDocumentPosition ? + function( a, b ) { + var adown = a.nodeType === 9 ? a.documentElement : a, + bup = b && b.parentNode; + return a === bup || !!( bup && bup.nodeType === 1 && ( + adown.contains ? + adown.contains( bup ) : + a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 + )); + } : + function( a, b ) { + if ( b ) { + while ( (b = b.parentNode) ) { + if ( b === a ) { + return true; + } + } + } + return false; + }; + + /* Sorting + ---------------------------------------------------------------------- */ + + // Document order sorting + sortOrder = docElem.compareDocumentPosition ? + function( a, b ) { + + // Flag for duplicate removal + if ( a === b ) { + hasDuplicate = true; + return 0; + } + + var compare = b.compareDocumentPosition && a.compareDocumentPosition && a.compareDocumentPosition( b ); + + if ( compare ) { + // Disconnected nodes + if ( compare & 1 || + (!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) { + + // Choose the first element that is related to our preferred document + if ( a === doc || contains(preferredDoc, a) ) { + return -1; + } + if ( b === doc || contains(preferredDoc, b) ) { + return 1; + } + + // Maintain original order + return sortInput ? + ( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) : + 0; + } + + return compare & 4 ? -1 : 1; + } + + // Not directly comparable, sort on existence of method + return a.compareDocumentPosition ? -1 : 1; + } : + function( a, b ) { + var cur, + i = 0, + aup = a.parentNode, + bup = b.parentNode, + ap = [ a ], + bp = [ b ]; + + // Exit early if the nodes are identical + if ( a === b ) { + hasDuplicate = true; + return 0; + + // Parentless nodes are either documents or disconnected + } else if ( !aup || !bup ) { + return a === doc ? -1 : + b === doc ? 1 : + aup ? -1 : + bup ? 1 : + sortInput ? + ( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) : + 0; + + // If the nodes are siblings, we can do a quick check + } else if ( aup === bup ) { + return siblingCheck( a, b ); + } + + // Otherwise we need full lists of their ancestors for comparison + cur = a; + while ( (cur = cur.parentNode) ) { + ap.unshift( cur ); + } + cur = b; + while ( (cur = cur.parentNode) ) { + bp.unshift( cur ); + } + + // Walk down the tree looking for a discrepancy + while ( ap[i] === bp[i] ) { + i++; + } + + return i ? + // Do a sibling check if the nodes have a common ancestor + siblingCheck( ap[i], bp[i] ) : + + // Otherwise nodes in our document sort first + ap[i] === preferredDoc ? -1 : + bp[i] === preferredDoc ? 1 : + 0; + }; + + return doc; +}; + +Sizzle.matches = function( expr, elements ) { + return Sizzle( expr, null, null, elements ); +}; + +Sizzle.matchesSelector = function( elem, expr ) { + // Set document vars if needed + if ( ( elem.ownerDocument || elem ) !== document ) { + setDocument( elem ); + } + + // Make sure that attribute selectors are quoted + expr = expr.replace( rattributeQuotes, "='$1']" ); + + if ( support.matchesSelector && documentIsHTML && + ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) && + ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) { + + try { + var ret = matches.call( elem, expr ); + + // IE 9's matchesSelector returns false on disconnected nodes + if ( ret || support.disconnectedMatch || + // As well, disconnected nodes are said to be in a document + // fragment in IE 9 + elem.document && elem.document.nodeType !== 11 ) { + return ret; + } + } catch(e) {} + } + + return Sizzle( expr, document, null, [elem] ).length > 0; +}; + +Sizzle.contains = function( context, elem ) { + // Set document vars if needed + if ( ( context.ownerDocument || context ) !== document ) { + setDocument( context ); + } + return contains( context, elem ); +}; + +Sizzle.attr = function( elem, name ) { + // Set document vars if needed + if ( ( elem.ownerDocument || elem ) !== document ) { + setDocument( elem ); + } + + var fn = Expr.attrHandle[ name.toLowerCase() ], + // Don't get fooled by Object.prototype properties (jQuery #13807) + val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ? + fn( elem, name, !documentIsHTML ) : + undefined; + + return val === undefined ? + support.attributes || !documentIsHTML ? + elem.getAttribute( name ) : + (val = elem.getAttributeNode(name)) && val.specified ? + val.value : + null : + val; +}; + +Sizzle.error = function( msg ) { + throw new Error( "Syntax error, unrecognized expression: " + msg ); +}; + +/** + * Document sorting and removing duplicates + * @param {ArrayLike} results + */ +Sizzle.uniqueSort = function( results ) { + var elem, + duplicates = [], + j = 0, + i = 0; + + // Unless we *know* we can detect duplicates, assume their presence + hasDuplicate = !support.detectDuplicates; + sortInput = !support.sortStable && results.slice( 0 ); + results.sort( sortOrder ); + + if ( hasDuplicate ) { + while ( (elem = results[i++]) ) { + if ( elem === results[ i ] ) { + j = duplicates.push( i ); + } + } + while ( j-- ) { + results.splice( duplicates[ j ], 1 ); + } + } + + return results; +}; + +/** + * Utility function for retrieving the text value of an array of DOM nodes + * @param {Array|Element} elem + */ +getText = Sizzle.getText = function( elem ) { + var node, + ret = "", + i = 0, + nodeType = elem.nodeType; + + if ( !nodeType ) { + // If no nodeType, this is expected to be an array + for ( ; (node = elem[i]); i++ ) { + // Do not traverse comment nodes + ret += getText( node ); + } + } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { + // Use textContent for elements + // innerText usage removed for consistency of new lines (see #11153) + if ( typeof elem.textContent === "string" ) { + return elem.textContent; + } else { + // Traverse its children + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + ret += getText( elem ); + } + } + } else if ( nodeType === 3 || nodeType === 4 ) { + return elem.nodeValue; + } + // Do not include comment or processing instruction nodes + + return ret; +}; + +Expr = Sizzle.selectors = { + + // Can be adjusted by the user + cacheLength: 50, + + createPseudo: markFunction, + + match: matchExpr, + + attrHandle: {}, + + find: {}, + + relative: { + ">": { dir: "parentNode", first: true }, + " ": { dir: "parentNode" }, + "+": { dir: "previousSibling", first: true }, + "~": { dir: "previousSibling" } + }, + + preFilter: { + "ATTR": function( match ) { + match[1] = match[1].replace( runescape, funescape ); + + // Move the given value to match[3] whether quoted or unquoted + match[3] = ( match[4] || match[5] || "" ).replace( runescape, funescape ); + + if ( match[2] === "~=" ) { + match[3] = " " + match[3] + " "; + } + + return match.slice( 0, 4 ); + }, + + "CHILD": function( match ) { + /* matches from matchExpr["CHILD"] + 1 type (only|nth|...) + 2 what (child|of-type) + 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...) + 4 xn-component of xn+y argument ([+-]?\d*n|) + 5 sign of xn-component + 6 x of xn-component + 7 sign of y-component + 8 y of y-component + */ + match[1] = match[1].toLowerCase(); + + if ( match[1].slice( 0, 3 ) === "nth" ) { + // nth-* requires argument + if ( !match[3] ) { + Sizzle.error( match[0] ); + } + + // numeric x and y parameters for Expr.filter.CHILD + // remember that false/true cast respectively to 0/1 + match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) ); + match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" ); + + // other types prohibit arguments + } else if ( match[3] ) { + Sizzle.error( match[0] ); + } + + return match; + }, + + "PSEUDO": function( match ) { + var excess, + unquoted = !match[5] && match[2]; + + if ( matchExpr["CHILD"].test( match[0] ) ) { + return null; + } + + // Accept quoted arguments as-is + if ( match[3] && match[4] !== undefined ) { + match[2] = match[4]; + + // Strip excess characters from unquoted arguments + } else if ( unquoted && rpseudo.test( unquoted ) && + // Get excess from tokenize (recursively) + (excess = tokenize( unquoted, true )) && + // advance to the next closing parenthesis + (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) { + + // excess is a negative index + match[0] = match[0].slice( 0, excess ); + match[2] = unquoted.slice( 0, excess ); + } + + // Return only captures needed by the pseudo filter method (type and argument) + return match.slice( 0, 3 ); + } + }, + + filter: { + + "TAG": function( nodeNameSelector ) { + var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase(); + return nodeNameSelector === "*" ? + function() { return true; } : + function( elem ) { + return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; + }; + }, + + "CLASS": function( className ) { + var pattern = classCache[ className + " " ]; + + return pattern || + (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) && + classCache( className, function( elem ) { + return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== strundefined && elem.getAttribute("class") || "" ); + }); + }, + + "ATTR": function( name, operator, check ) { + return function( elem ) { + var result = Sizzle.attr( elem, name ); + + if ( result == null ) { + return operator === "!="; + } + if ( !operator ) { + return true; + } + + result += ""; + + return operator === "=" ? result === check : + operator === "!=" ? result !== check : + operator === "^=" ? check && result.indexOf( check ) === 0 : + operator === "*=" ? check && result.indexOf( check ) > -1 : + operator === "$=" ? check && result.slice( -check.length ) === check : + operator === "~=" ? ( " " + result + " " ).indexOf( check ) > -1 : + operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : + false; + }; + }, + + "CHILD": function( type, what, argument, first, last ) { + var simple = type.slice( 0, 3 ) !== "nth", + forward = type.slice( -4 ) !== "last", + ofType = what === "of-type"; + + return first === 1 && last === 0 ? + + // Shortcut for :nth-*(n) + function( elem ) { + return !!elem.parentNode; + } : + + function( elem, context, xml ) { + var cache, outerCache, node, diff, nodeIndex, start, + dir = simple !== forward ? "nextSibling" : "previousSibling", + parent = elem.parentNode, + name = ofType && elem.nodeName.toLowerCase(), + useCache = !xml && !ofType; + + if ( parent ) { + + // :(first|last|only)-(child|of-type) + if ( simple ) { + while ( dir ) { + node = elem; + while ( (node = node[ dir ]) ) { + if ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) { + return false; + } + } + // Reverse direction for :only-* (if we haven't yet done so) + start = dir = type === "only" && !start && "nextSibling"; + } + return true; + } + + start = [ forward ? parent.firstChild : parent.lastChild ]; + + // non-xml :nth-child(...) stores cache data on `parent` + if ( forward && useCache ) { + // Seek `elem` from a previously-cached index + outerCache = parent[ expando ] || (parent[ expando ] = {}); + cache = outerCache[ type ] || []; + nodeIndex = cache[0] === dirruns && cache[1]; + diff = cache[0] === dirruns && cache[2]; + node = nodeIndex && parent.childNodes[ nodeIndex ]; + + while ( (node = ++nodeIndex && node && node[ dir ] || + + // Fallback to seeking `elem` from the start + (diff = nodeIndex = 0) || start.pop()) ) { + + // When found, cache indexes on `parent` and break + if ( node.nodeType === 1 && ++diff && node === elem ) { + outerCache[ type ] = [ dirruns, nodeIndex, diff ]; + break; + } + } + + // Use previously-cached element index if available + } else if ( useCache && (cache = (elem[ expando ] || (elem[ expando ] = {}))[ type ]) && cache[0] === dirruns ) { + diff = cache[1]; + + // xml :nth-child(...) or :nth-last-child(...) or :nth(-last)?-of-type(...) + } else { + // Use the same loop as above to seek `elem` from the start + while ( (node = ++nodeIndex && node && node[ dir ] || + (diff = nodeIndex = 0) || start.pop()) ) { + + if ( ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) && ++diff ) { + // Cache the index of each encountered element + if ( useCache ) { + (node[ expando ] || (node[ expando ] = {}))[ type ] = [ dirruns, diff ]; + } + + if ( node === elem ) { + break; + } + } + } + } + + // Incorporate the offset, then check against cycle size + diff -= last; + return diff === first || ( diff % first === 0 && diff / first >= 0 ); + } + }; + }, + + "PSEUDO": function( pseudo, argument ) { + // pseudo-class names are case-insensitive + // http://www.w3.org/TR/selectors/#pseudo-classes + // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters + // Remember that setFilters inherits from pseudos + var args, + fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] || + Sizzle.error( "unsupported pseudo: " + pseudo ); + + // The user may use createPseudo to indicate that + // arguments are needed to create the filter function + // just as Sizzle does + if ( fn[ expando ] ) { + return fn( argument ); + } + + // But maintain support for old signatures + if ( fn.length > 1 ) { + args = [ pseudo, pseudo, "", argument ]; + return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? + markFunction(function( seed, matches ) { + var idx, + matched = fn( seed, argument ), + i = matched.length; + while ( i-- ) { + idx = indexOf.call( seed, matched[i] ); + seed[ idx ] = !( matches[ idx ] = matched[i] ); + } + }) : + function( elem ) { + return fn( elem, 0, args ); + }; + } + + return fn; + } + }, + + pseudos: { + // Potentially complex pseudos + "not": markFunction(function( selector ) { + // Trim the selector passed to compile + // to avoid treating leading and trailing + // spaces as combinators + var input = [], + results = [], + matcher = compile( selector.replace( rtrim, "$1" ) ); + + return matcher[ expando ] ? + markFunction(function( seed, matches, context, xml ) { + var elem, + unmatched = matcher( seed, null, xml, [] ), + i = seed.length; + + // Match elements unmatched by `matcher` + while ( i-- ) { + if ( (elem = unmatched[i]) ) { + seed[i] = !(matches[i] = elem); + } + } + }) : + function( elem, context, xml ) { + input[0] = elem; + matcher( input, null, xml, results ); + return !results.pop(); + }; + }), + + "has": markFunction(function( selector ) { + return function( elem ) { + return Sizzle( selector, elem ).length > 0; + }; + }), + + "contains": markFunction(function( text ) { + return function( elem ) { + return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1; + }; + }), + + // "Whether an element is represented by a :lang() selector + // is based solely on the element's language value + // being equal to the identifier C, + // or beginning with the identifier C immediately followed by "-". + // The matching of C against the element's language value is performed case-insensitively. + // The identifier C does not have to be a valid language name." + // http://www.w3.org/TR/selectors/#lang-pseudo + "lang": markFunction( function( lang ) { + // lang value must be a valid identifier + if ( !ridentifier.test(lang || "") ) { + Sizzle.error( "unsupported lang: " + lang ); + } + lang = lang.replace( runescape, funescape ).toLowerCase(); + return function( elem ) { + var elemLang; + do { + if ( (elemLang = documentIsHTML ? + elem.lang : + elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) { + + elemLang = elemLang.toLowerCase(); + return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0; + } + } while ( (elem = elem.parentNode) && elem.nodeType === 1 ); + return false; + }; + }), + + // Miscellaneous + "target": function( elem ) { + var hash = window.location && window.location.hash; + return hash && hash.slice( 1 ) === elem.id; + }, + + "root": function( elem ) { + return elem === docElem; + }, + + "focus": function( elem ) { + return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex); + }, + + // Boolean properties + "enabled": function( elem ) { + return elem.disabled === false; + }, + + "disabled": function( elem ) { + return elem.disabled === true; + }, + + "checked": function( elem ) { + // In CSS3, :checked should return both checked and selected elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + var nodeName = elem.nodeName.toLowerCase(); + return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected); + }, + + "selected": function( elem ) { + // Accessing this property makes selected-by-default + // options in Safari work properly + if ( elem.parentNode ) { + elem.parentNode.selectedIndex; + } + + return elem.selected === true; + }, + + // Contents + "empty": function( elem ) { + // http://www.w3.org/TR/selectors/#empty-pseudo + // :empty is only affected by element nodes and content nodes(including text(3), cdata(4)), + // not comment, processing instructions, or others + // Thanks to Diego Perini for the nodeName shortcut + // Greater than "@" means alpha characters (specifically not starting with "#" or "?") + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + if ( elem.nodeName > "@" || elem.nodeType === 3 || elem.nodeType === 4 ) { + return false; + } + } + return true; + }, + + "parent": function( elem ) { + return !Expr.pseudos["empty"]( elem ); + }, + + // Element/input types + "header": function( elem ) { + return rheader.test( elem.nodeName ); + }, + + "input": function( elem ) { + return rinputs.test( elem.nodeName ); + }, + + "button": function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === "button" || name === "button"; + }, + + "text": function( elem ) { + var attr; + // IE6 and 7 will map elem.type to 'text' for new HTML5 types (search, etc) + // use getAttribute instead to test this case + return elem.nodeName.toLowerCase() === "input" && + elem.type === "text" && + ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === elem.type ); + }, + + // Position-in-collection + "first": createPositionalPseudo(function() { + return [ 0 ]; + }), + + "last": createPositionalPseudo(function( matchIndexes, length ) { + return [ length - 1 ]; + }), + + "eq": createPositionalPseudo(function( matchIndexes, length, argument ) { + return [ argument < 0 ? argument + length : argument ]; + }), + + "even": createPositionalPseudo(function( matchIndexes, length ) { + var i = 0; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "odd": createPositionalPseudo(function( matchIndexes, length ) { + var i = 1; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "lt": createPositionalPseudo(function( matchIndexes, length, argument ) { + var i = argument < 0 ? argument + length : argument; + for ( ; --i >= 0; ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "gt": createPositionalPseudo(function( matchIndexes, length, argument ) { + var i = argument < 0 ? argument + length : argument; + for ( ; ++i < length; ) { + matchIndexes.push( i ); + } + return matchIndexes; + }) + } +}; + +Expr.pseudos["nth"] = Expr.pseudos["eq"]; + +// Add button/input type pseudos +for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) { + Expr.pseudos[ i ] = createInputPseudo( i ); +} +for ( i in { submit: true, reset: true } ) { + Expr.pseudos[ i ] = createButtonPseudo( i ); +} + +// Easy API for creating new setFilters +function setFilters() {} +setFilters.prototype = Expr.filters = Expr.pseudos; +Expr.setFilters = new setFilters(); + +function tokenize( selector, parseOnly ) { + var matched, match, tokens, type, + soFar, groups, preFilters, + cached = tokenCache[ selector + " " ]; + + if ( cached ) { + return parseOnly ? 0 : cached.slice( 0 ); + } + + soFar = selector; + groups = []; + preFilters = Expr.preFilter; + + while ( soFar ) { + + // Comma and first run + if ( !matched || (match = rcomma.exec( soFar )) ) { + if ( match ) { + // Don't consume trailing commas as valid + soFar = soFar.slice( match[0].length ) || soFar; + } + groups.push( tokens = [] ); + } + + matched = false; + + // Combinators + if ( (match = rcombinators.exec( soFar )) ) { + matched = match.shift(); + tokens.push({ + value: matched, + // Cast descendant combinators to space + type: match[0].replace( rtrim, " " ) + }); + soFar = soFar.slice( matched.length ); + } + + // Filters + for ( type in Expr.filter ) { + if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] || + (match = preFilters[ type ]( match ))) ) { + matched = match.shift(); + tokens.push({ + value: matched, + type: type, + matches: match + }); + soFar = soFar.slice( matched.length ); + } + } + + if ( !matched ) { + break; + } + } + + // Return the length of the invalid excess + // if we're just parsing + // Otherwise, throw an error or return tokens + return parseOnly ? + soFar.length : + soFar ? + Sizzle.error( selector ) : + // Cache the tokens + tokenCache( selector, groups ).slice( 0 ); +} + +function toSelector( tokens ) { + var i = 0, + len = tokens.length, + selector = ""; + for ( ; i < len; i++ ) { + selector += tokens[i].value; + } + return selector; +} + +function addCombinator( matcher, combinator, base ) { + var dir = combinator.dir, + checkNonElements = base && dir === "parentNode", + doneName = done++; + + return combinator.first ? + // Check against closest ancestor/preceding element + function( elem, context, xml ) { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + return matcher( elem, context, xml ); + } + } + } : + + // Check against all ancestor/preceding elements + function( elem, context, xml ) { + var data, cache, outerCache, + dirkey = dirruns + " " + doneName; + + // We can't set arbitrary data on XML nodes, so they don't benefit from dir caching + if ( xml ) { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + if ( matcher( elem, context, xml ) ) { + return true; + } + } + } + } else { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + outerCache = elem[ expando ] || (elem[ expando ] = {}); + if ( (cache = outerCache[ dir ]) && cache[0] === dirkey ) { + if ( (data = cache[1]) === true || data === cachedruns ) { + return data === true; + } + } else { + cache = outerCache[ dir ] = [ dirkey ]; + cache[1] = matcher( elem, context, xml ) || cachedruns; + if ( cache[1] === true ) { + return true; + } + } + } + } + } + }; +} + +function elementMatcher( matchers ) { + return matchers.length > 1 ? + function( elem, context, xml ) { + var i = matchers.length; + while ( i-- ) { + if ( !matchers[i]( elem, context, xml ) ) { + return false; + } + } + return true; + } : + matchers[0]; +} + +function condense( unmatched, map, filter, context, xml ) { + var elem, + newUnmatched = [], + i = 0, + len = unmatched.length, + mapped = map != null; + + for ( ; i < len; i++ ) { + if ( (elem = unmatched[i]) ) { + if ( !filter || filter( elem, context, xml ) ) { + newUnmatched.push( elem ); + if ( mapped ) { + map.push( i ); + } + } + } + } + + return newUnmatched; +} + +function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) { + if ( postFilter && !postFilter[ expando ] ) { + postFilter = setMatcher( postFilter ); + } + if ( postFinder && !postFinder[ expando ] ) { + postFinder = setMatcher( postFinder, postSelector ); + } + return markFunction(function( seed, results, context, xml ) { + var temp, i, elem, + preMap = [], + postMap = [], + preexisting = results.length, + + // Get initial elements from seed or context + elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ), + + // Prefilter to get matcher input, preserving a map for seed-results synchronization + matcherIn = preFilter && ( seed || !selector ) ? + condense( elems, preMap, preFilter, context, xml ) : + elems, + + matcherOut = matcher ? + // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, + postFinder || ( seed ? preFilter : preexisting || postFilter ) ? + + // ...intermediate processing is necessary + [] : + + // ...otherwise use results directly + results : + matcherIn; + + // Find primary matches + if ( matcher ) { + matcher( matcherIn, matcherOut, context, xml ); + } + + // Apply postFilter + if ( postFilter ) { + temp = condense( matcherOut, postMap ); + postFilter( temp, [], context, xml ); + + // Un-match failing elements by moving them back to matcherIn + i = temp.length; + while ( i-- ) { + if ( (elem = temp[i]) ) { + matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem); + } + } + } + + if ( seed ) { + if ( postFinder || preFilter ) { + if ( postFinder ) { + // Get the final matcherOut by condensing this intermediate into postFinder contexts + temp = []; + i = matcherOut.length; + while ( i-- ) { + if ( (elem = matcherOut[i]) ) { + // Restore matcherIn since elem is not yet a final match + temp.push( (matcherIn[i] = elem) ); + } + } + postFinder( null, (matcherOut = []), temp, xml ); + } + + // Move matched elements from seed to results to keep them synchronized + i = matcherOut.length; + while ( i-- ) { + if ( (elem = matcherOut[i]) && + (temp = postFinder ? indexOf.call( seed, elem ) : preMap[i]) > -1 ) { + + seed[temp] = !(results[temp] = elem); + } + } + } + + // Add elements to results, through postFinder if defined + } else { + matcherOut = condense( + matcherOut === results ? + matcherOut.splice( preexisting, matcherOut.length ) : + matcherOut + ); + if ( postFinder ) { + postFinder( null, results, matcherOut, xml ); + } else { + push.apply( results, matcherOut ); + } + } + }); +} + +function matcherFromTokens( tokens ) { + var checkContext, matcher, j, + len = tokens.length, + leadingRelative = Expr.relative[ tokens[0].type ], + implicitRelative = leadingRelative || Expr.relative[" "], + i = leadingRelative ? 1 : 0, + + // The foundational matcher ensures that elements are reachable from top-level context(s) + matchContext = addCombinator( function( elem ) { + return elem === checkContext; + }, implicitRelative, true ), + matchAnyContext = addCombinator( function( elem ) { + return indexOf.call( checkContext, elem ) > -1; + }, implicitRelative, true ), + matchers = [ function( elem, context, xml ) { + return ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( + (checkContext = context).nodeType ? + matchContext( elem, context, xml ) : + matchAnyContext( elem, context, xml ) ); + } ]; + + for ( ; i < len; i++ ) { + if ( (matcher = Expr.relative[ tokens[i].type ]) ) { + matchers = [ addCombinator(elementMatcher( matchers ), matcher) ]; + } else { + matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches ); + + // Return special upon seeing a positional matcher + if ( matcher[ expando ] ) { + // Find the next relative operator (if any) for proper handling + j = ++i; + for ( ; j < len; j++ ) { + if ( Expr.relative[ tokens[j].type ] ) { + break; + } + } + return setMatcher( + i > 1 && elementMatcher( matchers ), + i > 1 && toSelector( + // If the preceding token was a descendant combinator, insert an implicit any-element `*` + tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" }) + ).replace( rtrim, "$1" ), + matcher, + i < j && matcherFromTokens( tokens.slice( i, j ) ), + j < len && matcherFromTokens( (tokens = tokens.slice( j )) ), + j < len && toSelector( tokens ) + ); + } + matchers.push( matcher ); + } + } + + return elementMatcher( matchers ); +} + +function matcherFromGroupMatchers( elementMatchers, setMatchers ) { + // A counter to specify which element is currently being matched + var matcherCachedRuns = 0, + bySet = setMatchers.length > 0, + byElement = elementMatchers.length > 0, + superMatcher = function( seed, context, xml, results, expandContext ) { + var elem, j, matcher, + setMatched = [], + matchedCount = 0, + i = "0", + unmatched = seed && [], + outermost = expandContext != null, + contextBackup = outermostContext, + // We must always have either seed elements or context + elems = seed || byElement && Expr.find["TAG"]( "*", expandContext && context.parentNode || context ), + // Use integer dirruns iff this is the outermost matcher + dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1); + + if ( outermost ) { + outermostContext = context !== document && context; + cachedruns = matcherCachedRuns; + } + + // Add elements passing elementMatchers directly to results + // Keep `i` a string if there are no elements so `matchedCount` will be "00" below + for ( ; (elem = elems[i]) != null; i++ ) { + if ( byElement && elem ) { + j = 0; + while ( (matcher = elementMatchers[j++]) ) { + if ( matcher( elem, context, xml ) ) { + results.push( elem ); + break; + } + } + if ( outermost ) { + dirruns = dirrunsUnique; + cachedruns = ++matcherCachedRuns; + } + } + + // Track unmatched elements for set filters + if ( bySet ) { + // They will have gone through all possible matchers + if ( (elem = !matcher && elem) ) { + matchedCount--; + } + + // Lengthen the array for every element, matched or not + if ( seed ) { + unmatched.push( elem ); + } + } + } + + // Apply set filters to unmatched elements + matchedCount += i; + if ( bySet && i !== matchedCount ) { + j = 0; + while ( (matcher = setMatchers[j++]) ) { + matcher( unmatched, setMatched, context, xml ); + } + + if ( seed ) { + // Reintegrate element matches to eliminate the need for sorting + if ( matchedCount > 0 ) { + while ( i-- ) { + if ( !(unmatched[i] || setMatched[i]) ) { + setMatched[i] = pop.call( results ); + } + } + } + + // Discard index placeholder values to get only actual matches + setMatched = condense( setMatched ); + } + + // Add matches to results + push.apply( results, setMatched ); + + // Seedless set matches succeeding multiple successful matchers stipulate sorting + if ( outermost && !seed && setMatched.length > 0 && + ( matchedCount + setMatchers.length ) > 1 ) { + + Sizzle.uniqueSort( results ); + } + } + + // Override manipulation of globals by nested matchers + if ( outermost ) { + dirruns = dirrunsUnique; + outermostContext = contextBackup; + } + + return unmatched; + }; + + return bySet ? + markFunction( superMatcher ) : + superMatcher; +} + +compile = Sizzle.compile = function( selector, group /* Internal Use Only */ ) { + var i, + setMatchers = [], + elementMatchers = [], + cached = compilerCache[ selector + " " ]; + + if ( !cached ) { + // Generate a function of recursive functions that can be used to check each element + if ( !group ) { + group = tokenize( selector ); + } + i = group.length; + while ( i-- ) { + cached = matcherFromTokens( group[i] ); + if ( cached[ expando ] ) { + setMatchers.push( cached ); + } else { + elementMatchers.push( cached ); + } + } + + // Cache the compiled function + cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) ); + } + return cached; +}; + +function multipleContexts( selector, contexts, results ) { + var i = 0, + len = contexts.length; + for ( ; i < len; i++ ) { + Sizzle( selector, contexts[i], results ); + } + return results; +} + +function select( selector, context, results, seed ) { + var i, tokens, token, type, find, + match = tokenize( selector ); + + if ( !seed ) { + // Try to minimize operations if there is only one group + if ( match.length === 1 ) { + + // Take a shortcut and set the context if the root selector is an ID + tokens = match[0] = match[0].slice( 0 ); + if ( tokens.length > 2 && (token = tokens[0]).type === "ID" && + support.getById && context.nodeType === 9 && documentIsHTML && + Expr.relative[ tokens[1].type ] ) { + + context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0]; + if ( !context ) { + return results; + } + selector = selector.slice( tokens.shift().value.length ); + } + + // Fetch a seed set for right-to-left matching + i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length; + while ( i-- ) { + token = tokens[i]; + + // Abort if we hit a combinator + if ( Expr.relative[ (type = token.type) ] ) { + break; + } + if ( (find = Expr.find[ type ]) ) { + // Search, expanding context for leading sibling combinators + if ( (seed = find( + token.matches[0].replace( runescape, funescape ), + rsibling.test( tokens[0].type ) && context.parentNode || context + )) ) { + + // If seed is empty or no tokens remain, we can return early + tokens.splice( i, 1 ); + selector = seed.length && toSelector( tokens ); + if ( !selector ) { + push.apply( results, seed ); + return results; + } + + break; + } + } + } + } + } + + // Compile and execute a filtering function + // Provide `match` to avoid retokenization if we modified the selector above + compile( selector, match )( + seed, + context, + !documentIsHTML, + results, + rsibling.test( selector ) + ); + return results; +} + +// One-time assignments + +// Sort stability +support.sortStable = expando.split("").sort( sortOrder ).join("") === expando; + +// Support: Chrome<14 +// Always assume duplicates if they aren't passed to the comparison function +support.detectDuplicates = hasDuplicate; + +// Initialize against the default document +setDocument(); + +// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27) +// Detached nodes confoundingly follow *each other* +support.sortDetached = assert(function( div1 ) { + // Should return 1, but returns 4 (following) + return div1.compareDocumentPosition( document.createElement("div") ) & 1; +}); + +// Support: IE<8 +// Prevent attribute/property "interpolation" +// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx +if ( !assert(function( div ) { + div.innerHTML = ""; + return div.firstChild.getAttribute("href") === "#" ; +}) ) { + addHandle( "type|href|height|width", function( elem, name, isXML ) { + if ( !isXML ) { + return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 ); + } + }); +} + +// Support: IE<9 +// Use defaultValue in place of getAttribute("value") +if ( !support.attributes || !assert(function( div ) { + div.innerHTML = ""; + div.firstChild.setAttribute( "value", "" ); + return div.firstChild.getAttribute( "value" ) === ""; +}) ) { + addHandle( "value", function( elem, name, isXML ) { + if ( !isXML && elem.nodeName.toLowerCase() === "input" ) { + return elem.defaultValue; + } + }); +} + +// Support: IE<9 +// Use getAttributeNode to fetch booleans when getAttribute lies +if ( !assert(function( div ) { + return div.getAttribute("disabled") == null; +}) ) { + addHandle( booleans, function( elem, name, isXML ) { + var val; + if ( !isXML ) { + return (val = elem.getAttributeNode( name )) && val.specified ? + val.value : + elem[ name ] === true ? name.toLowerCase() : null; + } + }); +} + +jQuery.find = Sizzle; +jQuery.expr = Sizzle.selectors; +jQuery.expr[":"] = jQuery.expr.pseudos; +jQuery.unique = Sizzle.uniqueSort; +jQuery.text = Sizzle.getText; +jQuery.isXMLDoc = Sizzle.isXML; +jQuery.contains = Sizzle.contains; + + +})( window ); +// String to Object options format cache +var optionsCache = {}; + +// Convert String-formatted options into Object-formatted ones and store in cache +function createOptions( options ) { + var object = optionsCache[ options ] = {}; + jQuery.each( options.match( core_rnotwhite ) || [], function( _, flag ) { + object[ flag ] = true; + }); + return object; +} + +/* + * Create a callback list using the following parameters: + * + * options: an optional list of space-separated options that will change how + * the callback list behaves or a more traditional option object + * + * By default a callback list will act like an event callback list and can be + * "fired" multiple times. + * + * Possible options: + * + * once: will ensure the callback list can only be fired once (like a Deferred) + * + * memory: will keep track of previous values and will call any callback added + * after the list has been fired right away with the latest "memorized" + * values (like a Deferred) + * + * unique: will ensure a callback can only be added once (no duplicate in the list) + * + * stopOnFalse: interrupt callings when a callback returns false + * + */ +jQuery.Callbacks = function( options ) { + + // Convert options from String-formatted to Object-formatted if needed + // (we check in cache first) + options = typeof options === "string" ? + ( optionsCache[ options ] || createOptions( options ) ) : + jQuery.extend( {}, options ); + + var // Flag to know if list is currently firing + firing, + // Last fire value (for non-forgettable lists) + memory, + // Flag to know if list was already fired + fired, + // End of the loop when firing + firingLength, + // Index of currently firing callback (modified by remove if needed) + firingIndex, + // First callback to fire (used internally by add and fireWith) + firingStart, + // Actual callback list + list = [], + // Stack of fire calls for repeatable lists + stack = !options.once && [], + // Fire callbacks + fire = function( data ) { + memory = options.memory && data; + fired = true; + firingIndex = firingStart || 0; + firingStart = 0; + firingLength = list.length; + firing = true; + for ( ; list && firingIndex < firingLength; firingIndex++ ) { + if ( list[ firingIndex ].apply( data[ 0 ], data[ 1 ] ) === false && options.stopOnFalse ) { + memory = false; // To prevent further calls using add + break; + } + } + firing = false; + if ( list ) { + if ( stack ) { + if ( stack.length ) { + fire( stack.shift() ); + } + } else if ( memory ) { + list = []; + } else { + self.disable(); + } + } + }, + // Actual Callbacks object + self = { + // Add a callback or a collection of callbacks to the list + add: function() { + if ( list ) { + // First, we save the current length + var start = list.length; + (function add( args ) { + jQuery.each( args, function( _, arg ) { + var type = jQuery.type( arg ); + if ( type === "function" ) { + if ( !options.unique || !self.has( arg ) ) { + list.push( arg ); + } + } else if ( arg && arg.length && type !== "string" ) { + // Inspect recursively + add( arg ); + } + }); + })( arguments ); + // Do we need to add the callbacks to the + // current firing batch? + if ( firing ) { + firingLength = list.length; + // With memory, if we're not firing then + // we should call right away + } else if ( memory ) { + firingStart = start; + fire( memory ); + } + } + return this; + }, + // Remove a callback from the list + remove: function() { + if ( list ) { + jQuery.each( arguments, function( _, arg ) { + var index; + while( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) { + list.splice( index, 1 ); + // Handle firing indexes + if ( firing ) { + if ( index <= firingLength ) { + firingLength--; + } + if ( index <= firingIndex ) { + firingIndex--; + } + } + } + }); + } + return this; + }, + // Check if a given callback is in the list. + // If no argument is given, return whether or not list has callbacks attached. + has: function( fn ) { + return fn ? jQuery.inArray( fn, list ) > -1 : !!( list && list.length ); + }, + // Remove all callbacks from the list + empty: function() { + list = []; + firingLength = 0; + return this; + }, + // Have the list do nothing anymore + disable: function() { + list = stack = memory = undefined; + return this; + }, + // Is it disabled? + disabled: function() { + return !list; + }, + // Lock the list in its current state + lock: function() { + stack = undefined; + if ( !memory ) { + self.disable(); + } + return this; + }, + // Is it locked? + locked: function() { + return !stack; + }, + // Call all callbacks with the given context and arguments + fireWith: function( context, args ) { + if ( list && ( !fired || stack ) ) { + args = args || []; + args = [ context, args.slice ? args.slice() : args ]; + if ( firing ) { + stack.push( args ); + } else { + fire( args ); + } + } + return this; + }, + // Call all the callbacks with the given arguments + fire: function() { + self.fireWith( this, arguments ); + return this; + }, + // To know if the callbacks have already been called at least once + fired: function() { + return !!fired; + } + }; + + return self; +}; +jQuery.extend({ + + Deferred: function( func ) { + var tuples = [ + // action, add listener, listener list, final state + [ "resolve", "done", jQuery.Callbacks("once memory"), "resolved" ], + [ "reject", "fail", jQuery.Callbacks("once memory"), "rejected" ], + [ "notify", "progress", jQuery.Callbacks("memory") ] + ], + state = "pending", + promise = { + state: function() { + return state; + }, + always: function() { + deferred.done( arguments ).fail( arguments ); + return this; + }, + then: function( /* fnDone, fnFail, fnProgress */ ) { + var fns = arguments; + return jQuery.Deferred(function( newDefer ) { + jQuery.each( tuples, function( i, tuple ) { + var action = tuple[ 0 ], + fn = jQuery.isFunction( fns[ i ] ) && fns[ i ]; + // deferred[ done | fail | progress ] for forwarding actions to newDefer + deferred[ tuple[1] ](function() { + var returned = fn && fn.apply( this, arguments ); + if ( returned && jQuery.isFunction( returned.promise ) ) { + returned.promise() + .done( newDefer.resolve ) + .fail( newDefer.reject ) + .progress( newDefer.notify ); + } else { + newDefer[ action + "With" ]( this === promise ? newDefer.promise() : this, fn ? [ returned ] : arguments ); + } + }); + }); + fns = null; + }).promise(); + }, + // Get a promise for this deferred + // If obj is provided, the promise aspect is added to the object + promise: function( obj ) { + return obj != null ? jQuery.extend( obj, promise ) : promise; + } + }, + deferred = {}; + + // Keep pipe for back-compat + promise.pipe = promise.then; + + // Add list-specific methods + jQuery.each( tuples, function( i, tuple ) { + var list = tuple[ 2 ], + stateString = tuple[ 3 ]; + + // promise[ done | fail | progress ] = list.add + promise[ tuple[1] ] = list.add; + + // Handle state + if ( stateString ) { + list.add(function() { + // state = [ resolved | rejected ] + state = stateString; + + // [ reject_list | resolve_list ].disable; progress_list.lock + }, tuples[ i ^ 1 ][ 2 ].disable, tuples[ 2 ][ 2 ].lock ); + } + + // deferred[ resolve | reject | notify ] + deferred[ tuple[0] ] = function() { + deferred[ tuple[0] + "With" ]( this === deferred ? promise : this, arguments ); + return this; + }; + deferred[ tuple[0] + "With" ] = list.fireWith; + }); + + // Make the deferred a promise + promise.promise( deferred ); + + // Call given func if any + if ( func ) { + func.call( deferred, deferred ); + } + + // All done! + return deferred; + }, + + // Deferred helper + when: function( subordinate /* , ..., subordinateN */ ) { + var i = 0, + resolveValues = core_slice.call( arguments ), + length = resolveValues.length, + + // the count of uncompleted subordinates + remaining = length !== 1 || ( subordinate && jQuery.isFunction( subordinate.promise ) ) ? length : 0, + + // the master Deferred. If resolveValues consist of only a single Deferred, just use that. + deferred = remaining === 1 ? subordinate : jQuery.Deferred(), + + // Update function for both resolve and progress values + updateFunc = function( i, contexts, values ) { + return function( value ) { + contexts[ i ] = this; + values[ i ] = arguments.length > 1 ? core_slice.call( arguments ) : value; + if( values === progressValues ) { + deferred.notifyWith( contexts, values ); + } else if ( !( --remaining ) ) { + deferred.resolveWith( contexts, values ); + } + }; + }, + + progressValues, progressContexts, resolveContexts; + + // add listeners to Deferred subordinates; treat others as resolved + if ( length > 1 ) { + progressValues = new Array( length ); + progressContexts = new Array( length ); + resolveContexts = new Array( length ); + for ( ; i < length; i++ ) { + if ( resolveValues[ i ] && jQuery.isFunction( resolveValues[ i ].promise ) ) { + resolveValues[ i ].promise() + .done( updateFunc( i, resolveContexts, resolveValues ) ) + .fail( deferred.reject ) + .progress( updateFunc( i, progressContexts, progressValues ) ); + } else { + --remaining; + } + } + } + + // if we're not waiting on anything, resolve the master + if ( !remaining ) { + deferred.resolveWith( resolveContexts, resolveValues ); + } + + return deferred.promise(); + } +}); +jQuery.support = (function( support ) { + + var all, a, input, select, fragment, opt, eventName, isSupported, i, + div = document.createElement("div"); + + // Setup + div.setAttribute( "className", "t" ); + div.innerHTML = "
a"; + + // Finish early in limited (non-browser) environments + all = div.getElementsByTagName("*") || []; + a = div.getElementsByTagName("a")[ 0 ]; + if ( !a || !a.style || !all.length ) { + return support; + } + + // First batch of tests + select = document.createElement("select"); + opt = select.appendChild( document.createElement("option") ); + input = div.getElementsByTagName("input")[ 0 ]; + + a.style.cssText = "top:1px;float:left;opacity:.5"; + + // Test setAttribute on camelCase class. If it works, we need attrFixes when doing get/setAttribute (ie6/7) + support.getSetAttribute = div.className !== "t"; + + // IE strips leading whitespace when .innerHTML is used + support.leadingWhitespace = div.firstChild.nodeType === 3; + + // Make sure that tbody elements aren't automatically inserted + // IE will insert them into empty tables + support.tbody = !div.getElementsByTagName("tbody").length; + + // Make sure that link elements get serialized correctly by innerHTML + // This requires a wrapper element in IE + support.htmlSerialize = !!div.getElementsByTagName("link").length; + + // Get the style information from getAttribute + // (IE uses .cssText instead) + support.style = /top/.test( a.getAttribute("style") ); + + // Make sure that URLs aren't manipulated + // (IE normalizes it by default) + support.hrefNormalized = a.getAttribute("href") === "/a"; + + // Make sure that element opacity exists + // (IE uses filter instead) + // Use a regex to work around a WebKit issue. See #5145 + support.opacity = /^0.5/.test( a.style.opacity ); + + // Verify style float existence + // (IE uses styleFloat instead of cssFloat) + support.cssFloat = !!a.style.cssFloat; + + // Check the default checkbox/radio value ("" on WebKit; "on" elsewhere) + support.checkOn = !!input.value; + + // Make sure that a selected-by-default option has a working selected property. + // (WebKit defaults to false instead of true, IE too, if it's in an optgroup) + support.optSelected = opt.selected; + + // Tests for enctype support on a form (#6743) + support.enctype = !!document.createElement("form").enctype; + + // Makes sure cloning an html5 element does not cause problems + // Where outerHTML is undefined, this still works + support.html5Clone = document.createElement("nav").cloneNode( true ).outerHTML !== "<:nav>"; + + // Will be defined later + support.inlineBlockNeedsLayout = false; + support.shrinkWrapBlocks = false; + support.pixelPosition = false; + support.deleteExpando = true; + support.noCloneEvent = true; + support.reliableMarginRight = true; + support.boxSizingReliable = true; + + // Make sure checked status is properly cloned + input.checked = true; + support.noCloneChecked = input.cloneNode( true ).checked; + + // Make sure that the options inside disabled selects aren't marked as disabled + // (WebKit marks them as disabled) + select.disabled = true; + support.optDisabled = !opt.disabled; + + // Support: IE<9 + try { + delete div.test; + } catch( e ) { + support.deleteExpando = false; + } + + // Check if we can trust getAttribute("value") + input = document.createElement("input"); + input.setAttribute( "value", "" ); + support.input = input.getAttribute( "value" ) === ""; + + // Check if an input maintains its value after becoming a radio + input.value = "t"; + input.setAttribute( "type", "radio" ); + support.radioValue = input.value === "t"; + + // #11217 - WebKit loses check when the name is after the checked attribute + input.setAttribute( "checked", "t" ); + input.setAttribute( "name", "t" ); + + fragment = document.createDocumentFragment(); + fragment.appendChild( input ); + + // Check if a disconnected checkbox will retain its checked + // value of true after appended to the DOM (IE6/7) + support.appendChecked = input.checked; + + // WebKit doesn't clone checked state correctly in fragments + support.checkClone = fragment.cloneNode( true ).cloneNode( true ).lastChild.checked; + + // Support: IE<9 + // Opera does not clone events (and typeof div.attachEvent === undefined). + // IE9-10 clones events bound via attachEvent, but they don't trigger with .click() + if ( div.attachEvent ) { + div.attachEvent( "onclick", function() { + support.noCloneEvent = false; + }); + + div.cloneNode( true ).click(); + } + + // Support: IE<9 (lack submit/change bubble), Firefox 17+ (lack focusin event) + // Beware of CSP restrictions (https://developer.mozilla.org/en/Security/CSP) + for ( i in { submit: true, change: true, focusin: true }) { + div.setAttribute( eventName = "on" + i, "t" ); + + support[ i + "Bubbles" ] = eventName in window || div.attributes[ eventName ].expando === false; + } + + div.style.backgroundClip = "content-box"; + div.cloneNode( true ).style.backgroundClip = ""; + support.clearCloneStyle = div.style.backgroundClip === "content-box"; + + // Support: IE<9 + // Iteration over object's inherited properties before its own. + for ( i in jQuery( support ) ) { + break; + } + support.ownLast = i !== "0"; + + // Run tests that need a body at doc ready + jQuery(function() { + var container, marginDiv, tds, + divReset = "padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;", + body = document.getElementsByTagName("body")[0]; + + if ( !body ) { + // Return for frameset docs that don't have a body + return; + } + + container = document.createElement("div"); + container.style.cssText = "border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px"; + + body.appendChild( container ).appendChild( div ); + + // Support: IE8 + // Check if table cells still have offsetWidth/Height when they are set + // to display:none and there are still other visible table cells in a + // table row; if so, offsetWidth/Height are not reliable for use when + // determining if an element has been hidden directly using + // display:none (it is still safe to use offsets if a parent element is + // hidden; don safety goggles and see bug #4512 for more information). + div.innerHTML = "
t
"; + tds = div.getElementsByTagName("td"); + tds[ 0 ].style.cssText = "padding:0;margin:0;border:0;display:none"; + isSupported = ( tds[ 0 ].offsetHeight === 0 ); + + tds[ 0 ].style.display = ""; + tds[ 1 ].style.display = "none"; + + // Support: IE8 + // Check if empty table cells still have offsetWidth/Height + support.reliableHiddenOffsets = isSupported && ( tds[ 0 ].offsetHeight === 0 ); + + // Check box-sizing and margin behavior. + div.innerHTML = ""; + div.style.cssText = "box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;"; + + // Workaround failing boxSizing test due to offsetWidth returning wrong value + // with some non-1 values of body zoom, ticket #13543 + jQuery.swap( body, body.style.zoom != null ? { zoom: 1 } : {}, function() { + support.boxSizing = div.offsetWidth === 4; + }); + + // Use window.getComputedStyle because jsdom on node.js will break without it. + if ( window.getComputedStyle ) { + support.pixelPosition = ( window.getComputedStyle( div, null ) || {} ).top !== "1%"; + support.boxSizingReliable = ( window.getComputedStyle( div, null ) || { width: "4px" } ).width === "4px"; + + // Check if div with explicit width and no margin-right incorrectly + // gets computed margin-right based on width of container. (#3333) + // Fails in WebKit before Feb 2011 nightlies + // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right + marginDiv = div.appendChild( document.createElement("div") ); + marginDiv.style.cssText = div.style.cssText = divReset; + marginDiv.style.marginRight = marginDiv.style.width = "0"; + div.style.width = "1px"; + + support.reliableMarginRight = + !parseFloat( ( window.getComputedStyle( marginDiv, null ) || {} ).marginRight ); + } + + if ( typeof div.style.zoom !== core_strundefined ) { + // Support: IE<8 + // Check if natively block-level elements act like inline-block + // elements when setting their display to 'inline' and giving + // them layout + div.innerHTML = ""; + div.style.cssText = divReset + "width:1px;padding:1px;display:inline;zoom:1"; + support.inlineBlockNeedsLayout = ( div.offsetWidth === 3 ); + + // Support: IE6 + // Check if elements with layout shrink-wrap their children + div.style.display = "block"; + div.innerHTML = "
"; + div.firstChild.style.width = "5px"; + support.shrinkWrapBlocks = ( div.offsetWidth !== 3 ); + + if ( support.inlineBlockNeedsLayout ) { + // Prevent IE 6 from affecting layout for positioned elements #11048 + // Prevent IE from shrinking the body in IE 7 mode #12869 + // Support: IE<8 + body.style.zoom = 1; + } + } + + body.removeChild( container ); + + // Null elements to avoid leaks in IE + container = div = tds = marginDiv = null; + }); + + // Null elements to avoid leaks in IE + all = select = fragment = opt = a = input = null; + + return support; +})({}); + +var rbrace = /(?:\{[\s\S]*\}|\[[\s\S]*\])$/, + rmultiDash = /([A-Z])/g; + +function internalData( elem, name, data, pvt /* Internal Use Only */ ){ + if ( !jQuery.acceptData( elem ) ) { + return; + } + + var ret, thisCache, + internalKey = jQuery.expando, + + // We have to handle DOM nodes and JS objects differently because IE6-7 + // can't GC object references properly across the DOM-JS boundary + isNode = elem.nodeType, + + // Only DOM nodes need the global jQuery cache; JS object data is + // attached directly to the object so GC can occur automatically + cache = isNode ? jQuery.cache : elem, + + // Only defining an ID for JS objects if its cache already exists allows + // the code to shortcut on the same path as a DOM node with no cache + id = isNode ? elem[ internalKey ] : elem[ internalKey ] && internalKey; + + // Avoid doing any more work than we need to when trying to get data on an + // object that has no data at all + if ( (!id || !cache[id] || (!pvt && !cache[id].data)) && data === undefined && typeof name === "string" ) { + return; + } + + if ( !id ) { + // Only DOM nodes need a new unique ID for each element since their data + // ends up in the global cache + if ( isNode ) { + id = elem[ internalKey ] = core_deletedIds.pop() || jQuery.guid++; + } else { + id = internalKey; + } + } + + if ( !cache[ id ] ) { + // Avoid exposing jQuery metadata on plain JS objects when the object + // is serialized using JSON.stringify + cache[ id ] = isNode ? {} : { toJSON: jQuery.noop }; + } + + // An object can be passed to jQuery.data instead of a key/value pair; this gets + // shallow copied over onto the existing cache + if ( typeof name === "object" || typeof name === "function" ) { + if ( pvt ) { + cache[ id ] = jQuery.extend( cache[ id ], name ); + } else { + cache[ id ].data = jQuery.extend( cache[ id ].data, name ); + } + } + + thisCache = cache[ id ]; + + // jQuery data() is stored in a separate object inside the object's internal data + // cache in order to avoid key collisions between internal data and user-defined + // data. + if ( !pvt ) { + if ( !thisCache.data ) { + thisCache.data = {}; + } + + thisCache = thisCache.data; + } + + if ( data !== undefined ) { + thisCache[ jQuery.camelCase( name ) ] = data; + } + + // Check for both converted-to-camel and non-converted data property names + // If a data property was specified + if ( typeof name === "string" ) { + + // First Try to find as-is property data + ret = thisCache[ name ]; + + // Test for null|undefined property data + if ( ret == null ) { + + // Try to find the camelCased property + ret = thisCache[ jQuery.camelCase( name ) ]; + } + } else { + ret = thisCache; + } + + return ret; +} + +function internalRemoveData( elem, name, pvt ) { + if ( !jQuery.acceptData( elem ) ) { + return; + } + + var thisCache, i, + isNode = elem.nodeType, + + // See jQuery.data for more information + cache = isNode ? jQuery.cache : elem, + id = isNode ? elem[ jQuery.expando ] : jQuery.expando; + + // If there is already no cache entry for this object, there is no + // purpose in continuing + if ( !cache[ id ] ) { + return; + } + + if ( name ) { + + thisCache = pvt ? cache[ id ] : cache[ id ].data; + + if ( thisCache ) { + + // Support array or space separated string names for data keys + if ( !jQuery.isArray( name ) ) { + + // try the string as a key before any manipulation + if ( name in thisCache ) { + name = [ name ]; + } else { + + // split the camel cased version by spaces unless a key with the spaces exists + name = jQuery.camelCase( name ); + if ( name in thisCache ) { + name = [ name ]; + } else { + name = name.split(" "); + } + } + } else { + // If "name" is an array of keys... + // When data is initially created, via ("key", "val") signature, + // keys will be converted to camelCase. + // Since there is no way to tell _how_ a key was added, remove + // both plain key and camelCase key. #12786 + // This will only penalize the array argument path. + name = name.concat( jQuery.map( name, jQuery.camelCase ) ); + } + + i = name.length; + while ( i-- ) { + delete thisCache[ name[i] ]; + } + + // If there is no data left in the cache, we want to continue + // and let the cache object itself get destroyed + if ( pvt ? !isEmptyDataObject(thisCache) : !jQuery.isEmptyObject(thisCache) ) { + return; + } + } + } + + // See jQuery.data for more information + if ( !pvt ) { + delete cache[ id ].data; + + // Don't destroy the parent cache unless the internal data object + // had been the only thing left in it + if ( !isEmptyDataObject( cache[ id ] ) ) { + return; + } + } + + // Destroy the cache + if ( isNode ) { + jQuery.cleanData( [ elem ], true ); + + // Use delete when supported for expandos or `cache` is not a window per isWindow (#10080) + /* jshint eqeqeq: false */ + } else if ( jQuery.support.deleteExpando || cache != cache.window ) { + /* jshint eqeqeq: true */ + delete cache[ id ]; + + // When all else fails, null + } else { + cache[ id ] = null; + } +} + +jQuery.extend({ + cache: {}, + + // The following elements throw uncatchable exceptions if you + // attempt to add expando properties to them. + noData: { + "applet": true, + "embed": true, + // Ban all objects except for Flash (which handle expandos) + "object": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" + }, + + hasData: function( elem ) { + elem = elem.nodeType ? jQuery.cache[ elem[jQuery.expando] ] : elem[ jQuery.expando ]; + return !!elem && !isEmptyDataObject( elem ); + }, + + data: function( elem, name, data ) { + return internalData( elem, name, data ); + }, + + removeData: function( elem, name ) { + return internalRemoveData( elem, name ); + }, + + // For internal use only. + _data: function( elem, name, data ) { + return internalData( elem, name, data, true ); + }, + + _removeData: function( elem, name ) { + return internalRemoveData( elem, name, true ); + }, + + // A method for determining if a DOM node can handle the data expando + acceptData: function( elem ) { + // Do not set data on non-element because it will not be cleared (#8335). + if ( elem.nodeType && elem.nodeType !== 1 && elem.nodeType !== 9 ) { + return false; + } + + var noData = elem.nodeName && jQuery.noData[ elem.nodeName.toLowerCase() ]; + + // nodes accept data unless otherwise specified; rejection can be conditional + return !noData || noData !== true && elem.getAttribute("classid") === noData; + } +}); + +jQuery.fn.extend({ + data: function( key, value ) { + var attrs, name, + data = null, + i = 0, + elem = this[0]; + + // Special expections of .data basically thwart jQuery.access, + // so implement the relevant behavior ourselves + + // Gets all values + if ( key === undefined ) { + if ( this.length ) { + data = jQuery.data( elem ); + + if ( elem.nodeType === 1 && !jQuery._data( elem, "parsedAttrs" ) ) { + attrs = elem.attributes; + for ( ; i < attrs.length; i++ ) { + name = attrs[i].name; + + if ( name.indexOf("data-") === 0 ) { + name = jQuery.camelCase( name.slice(5) ); + + dataAttr( elem, name, data[ name ] ); + } + } + jQuery._data( elem, "parsedAttrs", true ); + } + } + + return data; + } + + // Sets multiple values + if ( typeof key === "object" ) { + return this.each(function() { + jQuery.data( this, key ); + }); + } + + return arguments.length > 1 ? + + // Sets one value + this.each(function() { + jQuery.data( this, key, value ); + }) : + + // Gets one value + // Try to fetch any internally stored data first + elem ? dataAttr( elem, key, jQuery.data( elem, key ) ) : null; + }, + + removeData: function( key ) { + return this.each(function() { + jQuery.removeData( this, key ); + }); + } +}); + +function dataAttr( elem, key, data ) { + // If nothing was found internally, try to fetch any + // data from the HTML5 data-* attribute + if ( data === undefined && elem.nodeType === 1 ) { + + var name = "data-" + key.replace( rmultiDash, "-$1" ).toLowerCase(); + + data = elem.getAttribute( name ); + + if ( typeof data === "string" ) { + try { + data = data === "true" ? true : + data === "false" ? false : + data === "null" ? null : + // Only convert to a number if it doesn't change the string + +data + "" === data ? +data : + rbrace.test( data ) ? jQuery.parseJSON( data ) : + data; + } catch( e ) {} + + // Make sure we set the data so it isn't changed later + jQuery.data( elem, key, data ); + + } else { + data = undefined; + } + } + + return data; +} + +// checks a cache object for emptiness +function isEmptyDataObject( obj ) { + var name; + for ( name in obj ) { + + // if the public data object is empty, the private is still empty + if ( name === "data" && jQuery.isEmptyObject( obj[name] ) ) { + continue; + } + if ( name !== "toJSON" ) { + return false; + } + } + + return true; +} +jQuery.extend({ + queue: function( elem, type, data ) { + var queue; + + if ( elem ) { + type = ( type || "fx" ) + "queue"; + queue = jQuery._data( elem, type ); + + // Speed up dequeue by getting out quickly if this is just a lookup + if ( data ) { + if ( !queue || jQuery.isArray(data) ) { + queue = jQuery._data( elem, type, jQuery.makeArray(data) ); + } else { + queue.push( data ); + } + } + return queue || []; + } + }, + + dequeue: function( elem, type ) { + type = type || "fx"; + + var queue = jQuery.queue( elem, type ), + startLength = queue.length, + fn = queue.shift(), + hooks = jQuery._queueHooks( elem, type ), + next = function() { + jQuery.dequeue( elem, type ); + }; + + // If the fx queue is dequeued, always remove the progress sentinel + if ( fn === "inprogress" ) { + fn = queue.shift(); + startLength--; + } + + if ( fn ) { + + // Add a progress sentinel to prevent the fx queue from being + // automatically dequeued + if ( type === "fx" ) { + queue.unshift( "inprogress" ); + } + + // clear up the last queue stop function + delete hooks.stop; + fn.call( elem, next, hooks ); + } + + if ( !startLength && hooks ) { + hooks.empty.fire(); + } + }, + + // not intended for public consumption - generates a queueHooks object, or returns the current one + _queueHooks: function( elem, type ) { + var key = type + "queueHooks"; + return jQuery._data( elem, key ) || jQuery._data( elem, key, { + empty: jQuery.Callbacks("once memory").add(function() { + jQuery._removeData( elem, type + "queue" ); + jQuery._removeData( elem, key ); + }) + }); + } +}); + +jQuery.fn.extend({ + queue: function( type, data ) { + var setter = 2; + + if ( typeof type !== "string" ) { + data = type; + type = "fx"; + setter--; + } + + if ( arguments.length < setter ) { + return jQuery.queue( this[0], type ); + } + + return data === undefined ? + this : + this.each(function() { + var queue = jQuery.queue( this, type, data ); + + // ensure a hooks for this queue + jQuery._queueHooks( this, type ); + + if ( type === "fx" && queue[0] !== "inprogress" ) { + jQuery.dequeue( this, type ); + } + }); + }, + dequeue: function( type ) { + return this.each(function() { + jQuery.dequeue( this, type ); + }); + }, + // Based off of the plugin by Clint Helfers, with permission. + // http://blindsignals.com/index.php/2009/07/jquery-delay/ + delay: function( time, type ) { + time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; + type = type || "fx"; + + return this.queue( type, function( next, hooks ) { + var timeout = setTimeout( next, time ); + hooks.stop = function() { + clearTimeout( timeout ); + }; + }); + }, + clearQueue: function( type ) { + return this.queue( type || "fx", [] ); + }, + // Get a promise resolved when queues of a certain type + // are emptied (fx is the type by default) + promise: function( type, obj ) { + var tmp, + count = 1, + defer = jQuery.Deferred(), + elements = this, + i = this.length, + resolve = function() { + if ( !( --count ) ) { + defer.resolveWith( elements, [ elements ] ); + } + }; + + if ( typeof type !== "string" ) { + obj = type; + type = undefined; + } + type = type || "fx"; + + while( i-- ) { + tmp = jQuery._data( elements[ i ], type + "queueHooks" ); + if ( tmp && tmp.empty ) { + count++; + tmp.empty.add( resolve ); + } + } + resolve(); + return defer.promise( obj ); + } +}); +var nodeHook, boolHook, + rclass = /[\t\r\n\f]/g, + rreturn = /\r/g, + rfocusable = /^(?:input|select|textarea|button|object)$/i, + rclickable = /^(?:a|area)$/i, + ruseDefault = /^(?:checked|selected)$/i, + getSetAttribute = jQuery.support.getSetAttribute, + getSetInput = jQuery.support.input; + +jQuery.fn.extend({ + attr: function( name, value ) { + return jQuery.access( this, jQuery.attr, name, value, arguments.length > 1 ); + }, + + removeAttr: function( name ) { + return this.each(function() { + jQuery.removeAttr( this, name ); + }); + }, + + prop: function( name, value ) { + return jQuery.access( this, jQuery.prop, name, value, arguments.length > 1 ); + }, + + removeProp: function( name ) { + name = jQuery.propFix[ name ] || name; + return this.each(function() { + // try/catch handles cases where IE balks (such as removing a property on window) + try { + this[ name ] = undefined; + delete this[ name ]; + } catch( e ) {} + }); + }, + + addClass: function( value ) { + var classes, elem, cur, clazz, j, + i = 0, + len = this.length, + proceed = typeof value === "string" && value; + + if ( jQuery.isFunction( value ) ) { + return this.each(function( j ) { + jQuery( this ).addClass( value.call( this, j, this.className ) ); + }); + } + + if ( proceed ) { + // The disjunction here is for better compressibility (see removeClass) + classes = ( value || "" ).match( core_rnotwhite ) || []; + + for ( ; i < len; i++ ) { + elem = this[ i ]; + cur = elem.nodeType === 1 && ( elem.className ? + ( " " + elem.className + " " ).replace( rclass, " " ) : + " " + ); + + if ( cur ) { + j = 0; + while ( (clazz = classes[j++]) ) { + if ( cur.indexOf( " " + clazz + " " ) < 0 ) { + cur += clazz + " "; + } + } + elem.className = jQuery.trim( cur ); + + } + } + } + + return this; + }, + + removeClass: function( value ) { + var classes, elem, cur, clazz, j, + i = 0, + len = this.length, + proceed = arguments.length === 0 || typeof value === "string" && value; + + if ( jQuery.isFunction( value ) ) { + return this.each(function( j ) { + jQuery( this ).removeClass( value.call( this, j, this.className ) ); + }); + } + if ( proceed ) { + classes = ( value || "" ).match( core_rnotwhite ) || []; + + for ( ; i < len; i++ ) { + elem = this[ i ]; + // This expression is here for better compressibility (see addClass) + cur = elem.nodeType === 1 && ( elem.className ? + ( " " + elem.className + " " ).replace( rclass, " " ) : + "" + ); + + if ( cur ) { + j = 0; + while ( (clazz = classes[j++]) ) { + // Remove *all* instances + while ( cur.indexOf( " " + clazz + " " ) >= 0 ) { + cur = cur.replace( " " + clazz + " ", " " ); + } + } + elem.className = value ? jQuery.trim( cur ) : ""; + } + } + } + + return this; + }, + + toggleClass: function( value, stateVal ) { + var type = typeof value; + + if ( typeof stateVal === "boolean" && type === "string" ) { + return stateVal ? this.addClass( value ) : this.removeClass( value ); + } + + if ( jQuery.isFunction( value ) ) { + return this.each(function( i ) { + jQuery( this ).toggleClass( value.call(this, i, this.className, stateVal), stateVal ); + }); + } + + return this.each(function() { + if ( type === "string" ) { + // toggle individual class names + var className, + i = 0, + self = jQuery( this ), + classNames = value.match( core_rnotwhite ) || []; + + while ( (className = classNames[ i++ ]) ) { + // check each className given, space separated list + if ( self.hasClass( className ) ) { + self.removeClass( className ); + } else { + self.addClass( className ); + } + } + + // Toggle whole class name + } else if ( type === core_strundefined || type === "boolean" ) { + if ( this.className ) { + // store className if set + jQuery._data( this, "__className__", this.className ); + } + + // If the element has a class name or if we're passed "false", + // then remove the whole classname (if there was one, the above saved it). + // Otherwise bring back whatever was previously saved (if anything), + // falling back to the empty string if nothing was stored. + this.className = this.className || value === false ? "" : jQuery._data( this, "__className__" ) || ""; + } + }); + }, + + hasClass: function( selector ) { + var className = " " + selector + " ", + i = 0, + l = this.length; + for ( ; i < l; i++ ) { + if ( this[i].nodeType === 1 && (" " + this[i].className + " ").replace(rclass, " ").indexOf( className ) >= 0 ) { + return true; + } + } + + return false; + }, + + val: function( value ) { + var ret, hooks, isFunction, + elem = this[0]; + + if ( !arguments.length ) { + if ( elem ) { + hooks = jQuery.valHooks[ elem.type ] || jQuery.valHooks[ elem.nodeName.toLowerCase() ]; + + if ( hooks && "get" in hooks && (ret = hooks.get( elem, "value" )) !== undefined ) { + return ret; + } + + ret = elem.value; + + return typeof ret === "string" ? + // handle most common string cases + ret.replace(rreturn, "") : + // handle cases where value is null/undef or number + ret == null ? "" : ret; + } + + return; + } + + isFunction = jQuery.isFunction( value ); + + return this.each(function( i ) { + var val; + + if ( this.nodeType !== 1 ) { + return; + } + + if ( isFunction ) { + val = value.call( this, i, jQuery( this ).val() ); + } else { + val = value; + } + + // Treat null/undefined as ""; convert numbers to string + if ( val == null ) { + val = ""; + } else if ( typeof val === "number" ) { + val += ""; + } else if ( jQuery.isArray( val ) ) { + val = jQuery.map(val, function ( value ) { + return value == null ? "" : value + ""; + }); + } + + hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ]; + + // If set returns undefined, fall back to normal setting + if ( !hooks || !("set" in hooks) || hooks.set( this, val, "value" ) === undefined ) { + this.value = val; + } + }); + } +}); + +jQuery.extend({ + valHooks: { + option: { + get: function( elem ) { + // Use proper attribute retrieval(#6932, #12072) + var val = jQuery.find.attr( elem, "value" ); + return val != null ? + val : + elem.text; + } + }, + select: { + get: function( elem ) { + var value, option, + options = elem.options, + index = elem.selectedIndex, + one = elem.type === "select-one" || index < 0, + values = one ? null : [], + max = one ? index + 1 : options.length, + i = index < 0 ? + max : + one ? index : 0; + + // Loop through all the selected options + for ( ; i < max; i++ ) { + option = options[ i ]; + + // oldIE doesn't update selected after form reset (#2551) + if ( ( option.selected || i === index ) && + // Don't return options that are disabled or in a disabled optgroup + ( jQuery.support.optDisabled ? !option.disabled : option.getAttribute("disabled") === null ) && + ( !option.parentNode.disabled || !jQuery.nodeName( option.parentNode, "optgroup" ) ) ) { + + // Get the specific value for the option + value = jQuery( option ).val(); + + // We don't need an array for one selects + if ( one ) { + return value; + } + + // Multi-Selects return an array + values.push( value ); + } + } + + return values; + }, + + set: function( elem, value ) { + var optionSet, option, + options = elem.options, + values = jQuery.makeArray( value ), + i = options.length; + + while ( i-- ) { + option = options[ i ]; + if ( (option.selected = jQuery.inArray( jQuery(option).val(), values ) >= 0) ) { + optionSet = true; + } + } + + // force browsers to behave consistently when non-matching value is set + if ( !optionSet ) { + elem.selectedIndex = -1; + } + return values; + } + } + }, + + attr: function( elem, name, value ) { + var hooks, ret, + nType = elem.nodeType; + + // don't get/set attributes on text, comment and attribute nodes + if ( !elem || nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + // Fallback to prop when attributes are not supported + if ( typeof elem.getAttribute === core_strundefined ) { + return jQuery.prop( elem, name, value ); + } + + // All attributes are lowercase + // Grab necessary hook if one is defined + if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { + name = name.toLowerCase(); + hooks = jQuery.attrHooks[ name ] || + ( jQuery.expr.match.bool.test( name ) ? boolHook : nodeHook ); + } + + if ( value !== undefined ) { + + if ( value === null ) { + jQuery.removeAttr( elem, name ); + + } else if ( hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) { + return ret; + + } else { + elem.setAttribute( name, value + "" ); + return value; + } + + } else if ( hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ) { + return ret; + + } else { + ret = jQuery.find.attr( elem, name ); + + // Non-existent attributes return null, we normalize to undefined + return ret == null ? + undefined : + ret; + } + }, + + removeAttr: function( elem, value ) { + var name, propName, + i = 0, + attrNames = value && value.match( core_rnotwhite ); + + if ( attrNames && elem.nodeType === 1 ) { + while ( (name = attrNames[i++]) ) { + propName = jQuery.propFix[ name ] || name; + + // Boolean attributes get special treatment (#10870) + if ( jQuery.expr.match.bool.test( name ) ) { + // Set corresponding property to false + if ( getSetInput && getSetAttribute || !ruseDefault.test( name ) ) { + elem[ propName ] = false; + // Support: IE<9 + // Also clear defaultChecked/defaultSelected (if appropriate) + } else { + elem[ jQuery.camelCase( "default-" + name ) ] = + elem[ propName ] = false; + } + + // See #9699 for explanation of this approach (setting first, then removal) + } else { + jQuery.attr( elem, name, "" ); + } + + elem.removeAttribute( getSetAttribute ? name : propName ); + } + } + }, + + attrHooks: { + type: { + set: function( elem, value ) { + if ( !jQuery.support.radioValue && value === "radio" && jQuery.nodeName(elem, "input") ) { + // Setting the type on a radio button after the value resets the value in IE6-9 + // Reset value to default in case type is set after value during creation + var val = elem.value; + elem.setAttribute( "type", value ); + if ( val ) { + elem.value = val; + } + return value; + } + } + } + }, + + propFix: { + "for": "htmlFor", + "class": "className" + }, + + prop: function( elem, name, value ) { + var ret, hooks, notxml, + nType = elem.nodeType; + + // don't get/set properties on text, comment and attribute nodes + if ( !elem || nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + notxml = nType !== 1 || !jQuery.isXMLDoc( elem ); + + if ( notxml ) { + // Fix name and attach hooks + name = jQuery.propFix[ name ] || name; + hooks = jQuery.propHooks[ name ]; + } + + if ( value !== undefined ) { + return hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ? + ret : + ( elem[ name ] = value ); + + } else { + return hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ? + ret : + elem[ name ]; + } + }, + + propHooks: { + tabIndex: { + get: function( elem ) { + // elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set + // http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ + // Use proper attribute retrieval(#12072) + var tabindex = jQuery.find.attr( elem, "tabindex" ); + + return tabindex ? + parseInt( tabindex, 10 ) : + rfocusable.test( elem.nodeName ) || rclickable.test( elem.nodeName ) && elem.href ? + 0 : + -1; + } + } + } +}); + +// Hooks for boolean attributes +boolHook = { + set: function( elem, value, name ) { + if ( value === false ) { + // Remove boolean attributes when set to false + jQuery.removeAttr( elem, name ); + } else if ( getSetInput && getSetAttribute || !ruseDefault.test( name ) ) { + // IE<8 needs the *property* name + elem.setAttribute( !getSetAttribute && jQuery.propFix[ name ] || name, name ); + + // Use defaultChecked and defaultSelected for oldIE + } else { + elem[ jQuery.camelCase( "default-" + name ) ] = elem[ name ] = true; + } + + return name; + } +}; +jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) { + var getter = jQuery.expr.attrHandle[ name ] || jQuery.find.attr; + + jQuery.expr.attrHandle[ name ] = getSetInput && getSetAttribute || !ruseDefault.test( name ) ? + function( elem, name, isXML ) { + var fn = jQuery.expr.attrHandle[ name ], + ret = isXML ? + undefined : + /* jshint eqeqeq: false */ + (jQuery.expr.attrHandle[ name ] = undefined) != + getter( elem, name, isXML ) ? + + name.toLowerCase() : + null; + jQuery.expr.attrHandle[ name ] = fn; + return ret; + } : + function( elem, name, isXML ) { + return isXML ? + undefined : + elem[ jQuery.camelCase( "default-" + name ) ] ? + name.toLowerCase() : + null; + }; +}); + +// fix oldIE attroperties +if ( !getSetInput || !getSetAttribute ) { + jQuery.attrHooks.value = { + set: function( elem, value, name ) { + if ( jQuery.nodeName( elem, "input" ) ) { + // Does not return so that setAttribute is also used + elem.defaultValue = value; + } else { + // Use nodeHook if defined (#1954); otherwise setAttribute is fine + return nodeHook && nodeHook.set( elem, value, name ); + } + } + }; +} + +// IE6/7 do not support getting/setting some attributes with get/setAttribute +if ( !getSetAttribute ) { + + // Use this for any attribute in IE6/7 + // This fixes almost every IE6/7 issue + nodeHook = { + set: function( elem, value, name ) { + // Set the existing or create a new attribute node + var ret = elem.getAttributeNode( name ); + if ( !ret ) { + elem.setAttributeNode( + (ret = elem.ownerDocument.createAttribute( name )) + ); + } + + ret.value = value += ""; + + // Break association with cloned elements by also using setAttribute (#9646) + return name === "value" || value === elem.getAttribute( name ) ? + value : + undefined; + } + }; + jQuery.expr.attrHandle.id = jQuery.expr.attrHandle.name = jQuery.expr.attrHandle.coords = + // Some attributes are constructed with empty-string values when not defined + function( elem, name, isXML ) { + var ret; + return isXML ? + undefined : + (ret = elem.getAttributeNode( name )) && ret.value !== "" ? + ret.value : + null; + }; + jQuery.valHooks.button = { + get: function( elem, name ) { + var ret = elem.getAttributeNode( name ); + return ret && ret.specified ? + ret.value : + undefined; + }, + set: nodeHook.set + }; + + // Set contenteditable to false on removals(#10429) + // Setting to empty string throws an error as an invalid value + jQuery.attrHooks.contenteditable = { + set: function( elem, value, name ) { + nodeHook.set( elem, value === "" ? false : value, name ); + } + }; + + // Set width and height to auto instead of 0 on empty string( Bug #8150 ) + // This is for removals + jQuery.each([ "width", "height" ], function( i, name ) { + jQuery.attrHooks[ name ] = { + set: function( elem, value ) { + if ( value === "" ) { + elem.setAttribute( name, "auto" ); + return value; + } + } + }; + }); +} + + +// Some attributes require a special call on IE +// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx +if ( !jQuery.support.hrefNormalized ) { + // href/src property should get the full normalized URL (#10299/#12915) + jQuery.each([ "href", "src" ], function( i, name ) { + jQuery.propHooks[ name ] = { + get: function( elem ) { + return elem.getAttribute( name, 4 ); + } + }; + }); +} + +if ( !jQuery.support.style ) { + jQuery.attrHooks.style = { + get: function( elem ) { + // Return undefined in the case of empty string + // Note: IE uppercases css property names, but if we were to .toLowerCase() + // .cssText, that would destroy case senstitivity in URL's, like in "background" + return elem.style.cssText || undefined; + }, + set: function( elem, value ) { + return ( elem.style.cssText = value + "" ); + } + }; +} + +// Safari mis-reports the default selected property of an option +// Accessing the parent's selectedIndex property fixes it +if ( !jQuery.support.optSelected ) { + jQuery.propHooks.selected = { + get: function( elem ) { + var parent = elem.parentNode; + + if ( parent ) { + parent.selectedIndex; + + // Make sure that it also works with optgroups, see #5701 + if ( parent.parentNode ) { + parent.parentNode.selectedIndex; + } + } + return null; + } + }; +} + +jQuery.each([ + "tabIndex", + "readOnly", + "maxLength", + "cellSpacing", + "cellPadding", + "rowSpan", + "colSpan", + "useMap", + "frameBorder", + "contentEditable" +], function() { + jQuery.propFix[ this.toLowerCase() ] = this; +}); + +// IE6/7 call enctype encoding +if ( !jQuery.support.enctype ) { + jQuery.propFix.enctype = "encoding"; +} + +// Radios and checkboxes getter/setter +jQuery.each([ "radio", "checkbox" ], function() { + jQuery.valHooks[ this ] = { + set: function( elem, value ) { + if ( jQuery.isArray( value ) ) { + return ( elem.checked = jQuery.inArray( jQuery(elem).val(), value ) >= 0 ); + } + } + }; + if ( !jQuery.support.checkOn ) { + jQuery.valHooks[ this ].get = function( elem ) { + // Support: Webkit + // "" is returned instead of "on" if a value isn't specified + return elem.getAttribute("value") === null ? "on" : elem.value; + }; + } +}); +var rformElems = /^(?:input|select|textarea)$/i, + rkeyEvent = /^key/, + rmouseEvent = /^(?:mouse|contextmenu)|click/, + rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, + rtypenamespace = /^([^.]*)(?:\.(.+)|)$/; + +function returnTrue() { + return true; +} + +function returnFalse() { + return false; +} + +function safeActiveElement() { + try { + return document.activeElement; + } catch ( err ) { } +} + +/* + * Helper functions for managing events -- not part of the public interface. + * Props to Dean Edwards' addEvent library for many of the ideas. + */ +jQuery.event = { + + global: {}, + + add: function( elem, types, handler, data, selector ) { + var tmp, events, t, handleObjIn, + special, eventHandle, handleObj, + handlers, type, namespaces, origType, + elemData = jQuery._data( elem ); + + // Don't attach events to noData or text/comment nodes (but allow plain objects) + if ( !elemData ) { + return; + } + + // Caller can pass in an object of custom data in lieu of the handler + if ( handler.handler ) { + handleObjIn = handler; + handler = handleObjIn.handler; + selector = handleObjIn.selector; + } + + // Make sure that the handler has a unique ID, used to find/remove it later + if ( !handler.guid ) { + handler.guid = jQuery.guid++; + } + + // Init the element's event structure and main handler, if this is the first + if ( !(events = elemData.events) ) { + events = elemData.events = {}; + } + if ( !(eventHandle = elemData.handle) ) { + eventHandle = elemData.handle = function( e ) { + // Discard the second event of a jQuery.event.trigger() and + // when an event is called after a page has unloaded + return typeof jQuery !== core_strundefined && (!e || jQuery.event.triggered !== e.type) ? + jQuery.event.dispatch.apply( eventHandle.elem, arguments ) : + undefined; + }; + // Add elem as a property of the handle fn to prevent a memory leak with IE non-native events + eventHandle.elem = elem; + } + + // Handle multiple events separated by a space + types = ( types || "" ).match( core_rnotwhite ) || [""]; + t = types.length; + while ( t-- ) { + tmp = rtypenamespace.exec( types[t] ) || []; + type = origType = tmp[1]; + namespaces = ( tmp[2] || "" ).split( "." ).sort(); + + // There *must* be a type, no attaching namespace-only handlers + if ( !type ) { + continue; + } + + // If event changes its type, use the special event handlers for the changed type + special = jQuery.event.special[ type ] || {}; + + // If selector defined, determine special event api type, otherwise given type + type = ( selector ? special.delegateType : special.bindType ) || type; + + // Update special based on newly reset type + special = jQuery.event.special[ type ] || {}; + + // handleObj is passed to all event handlers + handleObj = jQuery.extend({ + type: type, + origType: origType, + data: data, + handler: handler, + guid: handler.guid, + selector: selector, + needsContext: selector && jQuery.expr.match.needsContext.test( selector ), + namespace: namespaces.join(".") + }, handleObjIn ); + + // Init the event handler queue if we're the first + if ( !(handlers = events[ type ]) ) { + handlers = events[ type ] = []; + handlers.delegateCount = 0; + + // Only use addEventListener/attachEvent if the special events handler returns false + if ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) { + // Bind the global event handler to the element + if ( elem.addEventListener ) { + elem.addEventListener( type, eventHandle, false ); + + } else if ( elem.attachEvent ) { + elem.attachEvent( "on" + type, eventHandle ); + } + } + } + + if ( special.add ) { + special.add.call( elem, handleObj ); + + if ( !handleObj.handler.guid ) { + handleObj.handler.guid = handler.guid; + } + } + + // Add to the element's handler list, delegates in front + if ( selector ) { + handlers.splice( handlers.delegateCount++, 0, handleObj ); + } else { + handlers.push( handleObj ); + } + + // Keep track of which events have ever been used, for event optimization + jQuery.event.global[ type ] = true; + } + + // Nullify elem to prevent memory leaks in IE + elem = null; + }, + + // Detach an event or set of events from an element + remove: function( elem, types, handler, selector, mappedTypes ) { + var j, handleObj, tmp, + origCount, t, events, + special, handlers, type, + namespaces, origType, + elemData = jQuery.hasData( elem ) && jQuery._data( elem ); + + if ( !elemData || !(events = elemData.events) ) { + return; + } + + // Once for each type.namespace in types; type may be omitted + types = ( types || "" ).match( core_rnotwhite ) || [""]; + t = types.length; + while ( t-- ) { + tmp = rtypenamespace.exec( types[t] ) || []; + type = origType = tmp[1]; + namespaces = ( tmp[2] || "" ).split( "." ).sort(); + + // Unbind all events (on this namespace, if provided) for the element + if ( !type ) { + for ( type in events ) { + jQuery.event.remove( elem, type + types[ t ], handler, selector, true ); + } + continue; + } + + special = jQuery.event.special[ type ] || {}; + type = ( selector ? special.delegateType : special.bindType ) || type; + handlers = events[ type ] || []; + tmp = tmp[2] && new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" ); + + // Remove matching events + origCount = j = handlers.length; + while ( j-- ) { + handleObj = handlers[ j ]; + + if ( ( mappedTypes || origType === handleObj.origType ) && + ( !handler || handler.guid === handleObj.guid ) && + ( !tmp || tmp.test( handleObj.namespace ) ) && + ( !selector || selector === handleObj.selector || selector === "**" && handleObj.selector ) ) { + handlers.splice( j, 1 ); + + if ( handleObj.selector ) { + handlers.delegateCount--; + } + if ( special.remove ) { + special.remove.call( elem, handleObj ); + } + } + } + + // Remove generic event handler if we removed something and no more handlers exist + // (avoids potential for endless recursion during removal of special event handlers) + if ( origCount && !handlers.length ) { + if ( !special.teardown || special.teardown.call( elem, namespaces, elemData.handle ) === false ) { + jQuery.removeEvent( elem, type, elemData.handle ); + } + + delete events[ type ]; + } + } + + // Remove the expando if it's no longer used + if ( jQuery.isEmptyObject( events ) ) { + delete elemData.handle; + + // removeData also checks for emptiness and clears the expando if empty + // so use it instead of delete + jQuery._removeData( elem, "events" ); + } + }, + + trigger: function( event, data, elem, onlyHandlers ) { + var handle, ontype, cur, + bubbleType, special, tmp, i, + eventPath = [ elem || document ], + type = core_hasOwn.call( event, "type" ) ? event.type : event, + namespaces = core_hasOwn.call( event, "namespace" ) ? event.namespace.split(".") : []; + + cur = tmp = elem = elem || document; + + // Don't do events on text and comment nodes + if ( elem.nodeType === 3 || elem.nodeType === 8 ) { + return; + } + + // focus/blur morphs to focusin/out; ensure we're not firing them right now + if ( rfocusMorph.test( type + jQuery.event.triggered ) ) { + return; + } + + if ( type.indexOf(".") >= 0 ) { + // Namespaced trigger; create a regexp to match event type in handle() + namespaces = type.split("."); + type = namespaces.shift(); + namespaces.sort(); + } + ontype = type.indexOf(":") < 0 && "on" + type; + + // Caller can pass in a jQuery.Event object, Object, or just an event type string + event = event[ jQuery.expando ] ? + event : + new jQuery.Event( type, typeof event === "object" && event ); + + // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true) + event.isTrigger = onlyHandlers ? 2 : 3; + event.namespace = namespaces.join("."); + event.namespace_re = event.namespace ? + new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" ) : + null; + + // Clean up the event in case it is being reused + event.result = undefined; + if ( !event.target ) { + event.target = elem; + } + + // Clone any incoming data and prepend the event, creating the handler arg list + data = data == null ? + [ event ] : + jQuery.makeArray( data, [ event ] ); + + // Allow special events to draw outside the lines + special = jQuery.event.special[ type ] || {}; + if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) { + return; + } + + // Determine event propagation path in advance, per W3C events spec (#9951) + // Bubble up to document, then to window; watch for a global ownerDocument var (#9724) + if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) { + + bubbleType = special.delegateType || type; + if ( !rfocusMorph.test( bubbleType + type ) ) { + cur = cur.parentNode; + } + for ( ; cur; cur = cur.parentNode ) { + eventPath.push( cur ); + tmp = cur; + } + + // Only add window if we got to document (e.g., not plain obj or detached DOM) + if ( tmp === (elem.ownerDocument || document) ) { + eventPath.push( tmp.defaultView || tmp.parentWindow || window ); + } + } + + // Fire handlers on the event path + i = 0; + while ( (cur = eventPath[i++]) && !event.isPropagationStopped() ) { + + event.type = i > 1 ? + bubbleType : + special.bindType || type; + + // jQuery handler + handle = ( jQuery._data( cur, "events" ) || {} )[ event.type ] && jQuery._data( cur, "handle" ); + if ( handle ) { + handle.apply( cur, data ); + } + + // Native handler + handle = ontype && cur[ ontype ]; + if ( handle && jQuery.acceptData( cur ) && handle.apply && handle.apply( cur, data ) === false ) { + event.preventDefault(); + } + } + event.type = type; + + // If nobody prevented the default action, do it now + if ( !onlyHandlers && !event.isDefaultPrevented() ) { + + if ( (!special._default || special._default.apply( eventPath.pop(), data ) === false) && + jQuery.acceptData( elem ) ) { + + // Call a native DOM method on the target with the same name name as the event. + // Can't use an .isFunction() check here because IE6/7 fails that test. + // Don't do default actions on window, that's where global variables be (#6170) + if ( ontype && elem[ type ] && !jQuery.isWindow( elem ) ) { + + // Don't re-trigger an onFOO event when we call its FOO() method + tmp = elem[ ontype ]; + + if ( tmp ) { + elem[ ontype ] = null; + } + + // Prevent re-triggering of the same event, since we already bubbled it above + jQuery.event.triggered = type; + try { + elem[ type ](); + } catch ( e ) { + // IE<9 dies on focus/blur to hidden element (#1486,#12518) + // only reproducible on winXP IE8 native, not IE9 in IE8 mode + } + jQuery.event.triggered = undefined; + + if ( tmp ) { + elem[ ontype ] = tmp; + } + } + } + } + + return event.result; + }, + + dispatch: function( event ) { + + // Make a writable jQuery.Event from the native event object + event = jQuery.event.fix( event ); + + var i, ret, handleObj, matched, j, + handlerQueue = [], + args = core_slice.call( arguments ), + handlers = ( jQuery._data( this, "events" ) || {} )[ event.type ] || [], + special = jQuery.event.special[ event.type ] || {}; + + // Use the fix-ed jQuery.Event rather than the (read-only) native event + args[0] = event; + event.delegateTarget = this; + + // Call the preDispatch hook for the mapped type, and let it bail if desired + if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) { + return; + } + + // Determine handlers + handlerQueue = jQuery.event.handlers.call( this, event, handlers ); + + // Run delegates first; they may want to stop propagation beneath us + i = 0; + while ( (matched = handlerQueue[ i++ ]) && !event.isPropagationStopped() ) { + event.currentTarget = matched.elem; + + j = 0; + while ( (handleObj = matched.handlers[ j++ ]) && !event.isImmediatePropagationStopped() ) { + + // Triggered event must either 1) have no namespace, or + // 2) have namespace(s) a subset or equal to those in the bound event (both can have no namespace). + if ( !event.namespace_re || event.namespace_re.test( handleObj.namespace ) ) { + + event.handleObj = handleObj; + event.data = handleObj.data; + + ret = ( (jQuery.event.special[ handleObj.origType ] || {}).handle || handleObj.handler ) + .apply( matched.elem, args ); + + if ( ret !== undefined ) { + if ( (event.result = ret) === false ) { + event.preventDefault(); + event.stopPropagation(); + } + } + } + } + } + + // Call the postDispatch hook for the mapped type + if ( special.postDispatch ) { + special.postDispatch.call( this, event ); + } + + return event.result; + }, + + handlers: function( event, handlers ) { + var sel, handleObj, matches, i, + handlerQueue = [], + delegateCount = handlers.delegateCount, + cur = event.target; + + // Find delegate handlers + // Black-hole SVG instance trees (#13180) + // Avoid non-left-click bubbling in Firefox (#3861) + if ( delegateCount && cur.nodeType && (!event.button || event.type !== "click") ) { + + /* jshint eqeqeq: false */ + for ( ; cur != this; cur = cur.parentNode || this ) { + /* jshint eqeqeq: true */ + + // Don't check non-elements (#13208) + // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764) + if ( cur.nodeType === 1 && (cur.disabled !== true || event.type !== "click") ) { + matches = []; + for ( i = 0; i < delegateCount; i++ ) { + handleObj = handlers[ i ]; + + // Don't conflict with Object.prototype properties (#13203) + sel = handleObj.selector + " "; + + if ( matches[ sel ] === undefined ) { + matches[ sel ] = handleObj.needsContext ? + jQuery( sel, this ).index( cur ) >= 0 : + jQuery.find( sel, this, null, [ cur ] ).length; + } + if ( matches[ sel ] ) { + matches.push( handleObj ); + } + } + if ( matches.length ) { + handlerQueue.push({ elem: cur, handlers: matches }); + } + } + } + } + + // Add the remaining (directly-bound) handlers + if ( delegateCount < handlers.length ) { + handlerQueue.push({ elem: this, handlers: handlers.slice( delegateCount ) }); + } + + return handlerQueue; + }, + + fix: function( event ) { + if ( event[ jQuery.expando ] ) { + return event; + } + + // Create a writable copy of the event object and normalize some properties + var i, prop, copy, + type = event.type, + originalEvent = event, + fixHook = this.fixHooks[ type ]; + + if ( !fixHook ) { + this.fixHooks[ type ] = fixHook = + rmouseEvent.test( type ) ? this.mouseHooks : + rkeyEvent.test( type ) ? this.keyHooks : + {}; + } + copy = fixHook.props ? this.props.concat( fixHook.props ) : this.props; + + event = new jQuery.Event( originalEvent ); + + i = copy.length; + while ( i-- ) { + prop = copy[ i ]; + event[ prop ] = originalEvent[ prop ]; + } + + // Support: IE<9 + // Fix target property (#1925) + if ( !event.target ) { + event.target = originalEvent.srcElement || document; + } + + // Support: Chrome 23+, Safari? + // Target should not be a text node (#504, #13143) + if ( event.target.nodeType === 3 ) { + event.target = event.target.parentNode; + } + + // Support: IE<9 + // For mouse/key events, metaKey==false if it's undefined (#3368, #11328) + event.metaKey = !!event.metaKey; + + return fixHook.filter ? fixHook.filter( event, originalEvent ) : event; + }, + + // Includes some event props shared by KeyEvent and MouseEvent + props: "altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "), + + fixHooks: {}, + + keyHooks: { + props: "char charCode key keyCode".split(" "), + filter: function( event, original ) { + + // Add which for key events + if ( event.which == null ) { + event.which = original.charCode != null ? original.charCode : original.keyCode; + } + + return event; + } + }, + + mouseHooks: { + props: "button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "), + filter: function( event, original ) { + var body, eventDoc, doc, + button = original.button, + fromElement = original.fromElement; + + // Calculate pageX/Y if missing and clientX/Y available + if ( event.pageX == null && original.clientX != null ) { + eventDoc = event.target.ownerDocument || document; + doc = eventDoc.documentElement; + body = eventDoc.body; + + event.pageX = original.clientX + ( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) - ( doc && doc.clientLeft || body && body.clientLeft || 0 ); + event.pageY = original.clientY + ( doc && doc.scrollTop || body && body.scrollTop || 0 ) - ( doc && doc.clientTop || body && body.clientTop || 0 ); + } + + // Add relatedTarget, if necessary + if ( !event.relatedTarget && fromElement ) { + event.relatedTarget = fromElement === event.target ? original.toElement : fromElement; + } + + // Add which for click: 1 === left; 2 === middle; 3 === right + // Note: button is not normalized, so don't use it + if ( !event.which && button !== undefined ) { + event.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) ); + } + + return event; + } + }, + + special: { + load: { + // Prevent triggered image.load events from bubbling to window.load + noBubble: true + }, + focus: { + // Fire native event if possible so blur/focus sequence is correct + trigger: function() { + if ( this !== safeActiveElement() && this.focus ) { + try { + this.focus(); + return false; + } catch ( e ) { + // Support: IE<9 + // If we error on focus to hidden element (#1486, #12518), + // let .trigger() run the handlers + } + } + }, + delegateType: "focusin" + }, + blur: { + trigger: function() { + if ( this === safeActiveElement() && this.blur ) { + this.blur(); + return false; + } + }, + delegateType: "focusout" + }, + click: { + // For checkbox, fire native event so checked state will be right + trigger: function() { + if ( jQuery.nodeName( this, "input" ) && this.type === "checkbox" && this.click ) { + this.click(); + return false; + } + }, + + // For cross-browser consistency, don't fire native .click() on links + _default: function( event ) { + return jQuery.nodeName( event.target, "a" ); + } + }, + + beforeunload: { + postDispatch: function( event ) { + + // Even when returnValue equals to undefined Firefox will still show alert + if ( event.result !== undefined ) { + event.originalEvent.returnValue = event.result; + } + } + } + }, + + simulate: function( type, elem, event, bubble ) { + // Piggyback on a donor event to simulate a different one. + // Fake originalEvent to avoid donor's stopPropagation, but if the + // simulated event prevents default then we do the same on the donor. + var e = jQuery.extend( + new jQuery.Event(), + event, + { + type: type, + isSimulated: true, + originalEvent: {} + } + ); + if ( bubble ) { + jQuery.event.trigger( e, null, elem ); + } else { + jQuery.event.dispatch.call( elem, e ); + } + if ( e.isDefaultPrevented() ) { + event.preventDefault(); + } + } +}; + +jQuery.removeEvent = document.removeEventListener ? + function( elem, type, handle ) { + if ( elem.removeEventListener ) { + elem.removeEventListener( type, handle, false ); + } + } : + function( elem, type, handle ) { + var name = "on" + type; + + if ( elem.detachEvent ) { + + // #8545, #7054, preventing memory leaks for custom events in IE6-8 + // detachEvent needed property on element, by name of that event, to properly expose it to GC + if ( typeof elem[ name ] === core_strundefined ) { + elem[ name ] = null; + } + + elem.detachEvent( name, handle ); + } + }; + +jQuery.Event = function( src, props ) { + // Allow instantiation without the 'new' keyword + if ( !(this instanceof jQuery.Event) ) { + return new jQuery.Event( src, props ); + } + + // Event object + if ( src && src.type ) { + this.originalEvent = src; + this.type = src.type; + + // Events bubbling up the document may have been marked as prevented + // by a handler lower down the tree; reflect the correct value. + this.isDefaultPrevented = ( src.defaultPrevented || src.returnValue === false || + src.getPreventDefault && src.getPreventDefault() ) ? returnTrue : returnFalse; + + // Event type + } else { + this.type = src; + } + + // Put explicitly provided properties onto the event object + if ( props ) { + jQuery.extend( this, props ); + } + + // Create a timestamp if incoming event doesn't have one + this.timeStamp = src && src.timeStamp || jQuery.now(); + + // Mark it as fixed + this[ jQuery.expando ] = true; +}; + +// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding +// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html +jQuery.Event.prototype = { + isDefaultPrevented: returnFalse, + isPropagationStopped: returnFalse, + isImmediatePropagationStopped: returnFalse, + + preventDefault: function() { + var e = this.originalEvent; + + this.isDefaultPrevented = returnTrue; + if ( !e ) { + return; + } + + // If preventDefault exists, run it on the original event + if ( e.preventDefault ) { + e.preventDefault(); + + // Support: IE + // Otherwise set the returnValue property of the original event to false + } else { + e.returnValue = false; + } + }, + stopPropagation: function() { + var e = this.originalEvent; + + this.isPropagationStopped = returnTrue; + if ( !e ) { + return; + } + // If stopPropagation exists, run it on the original event + if ( e.stopPropagation ) { + e.stopPropagation(); + } + + // Support: IE + // Set the cancelBubble property of the original event to true + e.cancelBubble = true; + }, + stopImmediatePropagation: function() { + this.isImmediatePropagationStopped = returnTrue; + this.stopPropagation(); + } +}; + +// Create mouseenter/leave events using mouseover/out and event-time checks +jQuery.each({ + mouseenter: "mouseover", + mouseleave: "mouseout" +}, function( orig, fix ) { + jQuery.event.special[ orig ] = { + delegateType: fix, + bindType: fix, + + handle: function( event ) { + var ret, + target = this, + related = event.relatedTarget, + handleObj = event.handleObj; + + // For mousenter/leave call the handler if related is outside the target. + // NB: No relatedTarget if the mouse left/entered the browser window + if ( !related || (related !== target && !jQuery.contains( target, related )) ) { + event.type = handleObj.origType; + ret = handleObj.handler.apply( this, arguments ); + event.type = fix; + } + return ret; + } + }; +}); + +// IE submit delegation +if ( !jQuery.support.submitBubbles ) { + + jQuery.event.special.submit = { + setup: function() { + // Only need this for delegated form submit events + if ( jQuery.nodeName( this, "form" ) ) { + return false; + } + + // Lazy-add a submit handler when a descendant form may potentially be submitted + jQuery.event.add( this, "click._submit keypress._submit", function( e ) { + // Node name check avoids a VML-related crash in IE (#9807) + var elem = e.target, + form = jQuery.nodeName( elem, "input" ) || jQuery.nodeName( elem, "button" ) ? elem.form : undefined; + if ( form && !jQuery._data( form, "submitBubbles" ) ) { + jQuery.event.add( form, "submit._submit", function( event ) { + event._submit_bubble = true; + }); + jQuery._data( form, "submitBubbles", true ); + } + }); + // return undefined since we don't need an event listener + }, + + postDispatch: function( event ) { + // If form was submitted by the user, bubble the event up the tree + if ( event._submit_bubble ) { + delete event._submit_bubble; + if ( this.parentNode && !event.isTrigger ) { + jQuery.event.simulate( "submit", this.parentNode, event, true ); + } + } + }, + + teardown: function() { + // Only need this for delegated form submit events + if ( jQuery.nodeName( this, "form" ) ) { + return false; + } + + // Remove delegated handlers; cleanData eventually reaps submit handlers attached above + jQuery.event.remove( this, "._submit" ); + } + }; +} + +// IE change delegation and checkbox/radio fix +if ( !jQuery.support.changeBubbles ) { + + jQuery.event.special.change = { + + setup: function() { + + if ( rformElems.test( this.nodeName ) ) { + // IE doesn't fire change on a check/radio until blur; trigger it on click + // after a propertychange. Eat the blur-change in special.change.handle. + // This still fires onchange a second time for check/radio after blur. + if ( this.type === "checkbox" || this.type === "radio" ) { + jQuery.event.add( this, "propertychange._change", function( event ) { + if ( event.originalEvent.propertyName === "checked" ) { + this._just_changed = true; + } + }); + jQuery.event.add( this, "click._change", function( event ) { + if ( this._just_changed && !event.isTrigger ) { + this._just_changed = false; + } + // Allow triggered, simulated change events (#11500) + jQuery.event.simulate( "change", this, event, true ); + }); + } + return false; + } + // Delegated event; lazy-add a change handler on descendant inputs + jQuery.event.add( this, "beforeactivate._change", function( e ) { + var elem = e.target; + + if ( rformElems.test( elem.nodeName ) && !jQuery._data( elem, "changeBubbles" ) ) { + jQuery.event.add( elem, "change._change", function( event ) { + if ( this.parentNode && !event.isSimulated && !event.isTrigger ) { + jQuery.event.simulate( "change", this.parentNode, event, true ); + } + }); + jQuery._data( elem, "changeBubbles", true ); + } + }); + }, + + handle: function( event ) { + var elem = event.target; + + // Swallow native change events from checkbox/radio, we already triggered them above + if ( this !== elem || event.isSimulated || event.isTrigger || (elem.type !== "radio" && elem.type !== "checkbox") ) { + return event.handleObj.handler.apply( this, arguments ); + } + }, + + teardown: function() { + jQuery.event.remove( this, "._change" ); + + return !rformElems.test( this.nodeName ); + } + }; +} + +// Create "bubbling" focus and blur events +if ( !jQuery.support.focusinBubbles ) { + jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ) { + + // Attach a single capturing handler while someone wants focusin/focusout + var attaches = 0, + handler = function( event ) { + jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ), true ); + }; + + jQuery.event.special[ fix ] = { + setup: function() { + if ( attaches++ === 0 ) { + document.addEventListener( orig, handler, true ); + } + }, + teardown: function() { + if ( --attaches === 0 ) { + document.removeEventListener( orig, handler, true ); + } + } + }; + }); +} + +jQuery.fn.extend({ + + on: function( types, selector, data, fn, /*INTERNAL*/ one ) { + var type, origFn; + + // Types can be a map of types/handlers + if ( typeof types === "object" ) { + // ( types-Object, selector, data ) + if ( typeof selector !== "string" ) { + // ( types-Object, data ) + data = data || selector; + selector = undefined; + } + for ( type in types ) { + this.on( type, selector, data, types[ type ], one ); + } + return this; + } + + if ( data == null && fn == null ) { + // ( types, fn ) + fn = selector; + data = selector = undefined; + } else if ( fn == null ) { + if ( typeof selector === "string" ) { + // ( types, selector, fn ) + fn = data; + data = undefined; + } else { + // ( types, data, fn ) + fn = data; + data = selector; + selector = undefined; + } + } + if ( fn === false ) { + fn = returnFalse; + } else if ( !fn ) { + return this; + } + + if ( one === 1 ) { + origFn = fn; + fn = function( event ) { + // Can use an empty set, since event contains the info + jQuery().off( event ); + return origFn.apply( this, arguments ); + }; + // Use same guid so caller can remove using origFn + fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); + } + return this.each( function() { + jQuery.event.add( this, types, fn, data, selector ); + }); + }, + one: function( types, selector, data, fn ) { + return this.on( types, selector, data, fn, 1 ); + }, + off: function( types, selector, fn ) { + var handleObj, type; + if ( types && types.preventDefault && types.handleObj ) { + // ( event ) dispatched jQuery.Event + handleObj = types.handleObj; + jQuery( types.delegateTarget ).off( + handleObj.namespace ? handleObj.origType + "." + handleObj.namespace : handleObj.origType, + handleObj.selector, + handleObj.handler + ); + return this; + } + if ( typeof types === "object" ) { + // ( types-object [, selector] ) + for ( type in types ) { + this.off( type, selector, types[ type ] ); + } + return this; + } + if ( selector === false || typeof selector === "function" ) { + // ( types [, fn] ) + fn = selector; + selector = undefined; + } + if ( fn === false ) { + fn = returnFalse; + } + return this.each(function() { + jQuery.event.remove( this, types, fn, selector ); + }); + }, + + trigger: function( type, data ) { + return this.each(function() { + jQuery.event.trigger( type, data, this ); + }); + }, + triggerHandler: function( type, data ) { + var elem = this[0]; + if ( elem ) { + return jQuery.event.trigger( type, data, elem, true ); + } + } +}); +var isSimple = /^.[^:#\[\.,]*$/, + rparentsprev = /^(?:parents|prev(?:Until|All))/, + rneedsContext = jQuery.expr.match.needsContext, + // methods guaranteed to produce a unique set when starting from a unique set + guaranteedUnique = { + children: true, + contents: true, + next: true, + prev: true + }; + +jQuery.fn.extend({ + find: function( selector ) { + var i, + ret = [], + self = this, + len = self.length; + + if ( typeof selector !== "string" ) { + return this.pushStack( jQuery( selector ).filter(function() { + for ( i = 0; i < len; i++ ) { + if ( jQuery.contains( self[ i ], this ) ) { + return true; + } + } + }) ); + } + + for ( i = 0; i < len; i++ ) { + jQuery.find( selector, self[ i ], ret ); + } + + // Needed because $( selector, context ) becomes $( context ).find( selector ) + ret = this.pushStack( len > 1 ? jQuery.unique( ret ) : ret ); + ret.selector = this.selector ? this.selector + " " + selector : selector; + return ret; + }, + + has: function( target ) { + var i, + targets = jQuery( target, this ), + len = targets.length; + + return this.filter(function() { + for ( i = 0; i < len; i++ ) { + if ( jQuery.contains( this, targets[i] ) ) { + return true; + } + } + }); + }, + + not: function( selector ) { + return this.pushStack( winnow(this, selector || [], true) ); + }, + + filter: function( selector ) { + return this.pushStack( winnow(this, selector || [], false) ); + }, + + is: function( selector ) { + return !!winnow( + this, + + // If this is a positional/relative selector, check membership in the returned set + // so $("p:first").is("p:last") won't return true for a doc with two "p". + typeof selector === "string" && rneedsContext.test( selector ) ? + jQuery( selector ) : + selector || [], + false + ).length; + }, + + closest: function( selectors, context ) { + var cur, + i = 0, + l = this.length, + ret = [], + pos = rneedsContext.test( selectors ) || typeof selectors !== "string" ? + jQuery( selectors, context || this.context ) : + 0; + + for ( ; i < l; i++ ) { + for ( cur = this[i]; cur && cur !== context; cur = cur.parentNode ) { + // Always skip document fragments + if ( cur.nodeType < 11 && (pos ? + pos.index(cur) > -1 : + + // Don't pass non-elements to Sizzle + cur.nodeType === 1 && + jQuery.find.matchesSelector(cur, selectors)) ) { + + cur = ret.push( cur ); + break; + } + } + } + + return this.pushStack( ret.length > 1 ? jQuery.unique( ret ) : ret ); + }, + + // Determine the position of an element within + // the matched set of elements + index: function( elem ) { + + // No argument, return index in parent + if ( !elem ) { + return ( this[0] && this[0].parentNode ) ? this.first().prevAll().length : -1; + } + + // index in selector + if ( typeof elem === "string" ) { + return jQuery.inArray( this[0], jQuery( elem ) ); + } + + // Locate the position of the desired element + return jQuery.inArray( + // If it receives a jQuery object, the first element is used + elem.jquery ? elem[0] : elem, this ); + }, + + add: function( selector, context ) { + var set = typeof selector === "string" ? + jQuery( selector, context ) : + jQuery.makeArray( selector && selector.nodeType ? [ selector ] : selector ), + all = jQuery.merge( this.get(), set ); + + return this.pushStack( jQuery.unique(all) ); + }, + + addBack: function( selector ) { + return this.add( selector == null ? + this.prevObject : this.prevObject.filter(selector) + ); + } +}); + +function sibling( cur, dir ) { + do { + cur = cur[ dir ]; + } while ( cur && cur.nodeType !== 1 ); + + return cur; +} + +jQuery.each({ + parent: function( elem ) { + var parent = elem.parentNode; + return parent && parent.nodeType !== 11 ? parent : null; + }, + parents: function( elem ) { + return jQuery.dir( elem, "parentNode" ); + }, + parentsUntil: function( elem, i, until ) { + return jQuery.dir( elem, "parentNode", until ); + }, + next: function( elem ) { + return sibling( elem, "nextSibling" ); + }, + prev: function( elem ) { + return sibling( elem, "previousSibling" ); + }, + nextAll: function( elem ) { + return jQuery.dir( elem, "nextSibling" ); + }, + prevAll: function( elem ) { + return jQuery.dir( elem, "previousSibling" ); + }, + nextUntil: function( elem, i, until ) { + return jQuery.dir( elem, "nextSibling", until ); + }, + prevUntil: function( elem, i, until ) { + return jQuery.dir( elem, "previousSibling", until ); + }, + siblings: function( elem ) { + return jQuery.sibling( ( elem.parentNode || {} ).firstChild, elem ); + }, + children: function( elem ) { + return jQuery.sibling( elem.firstChild ); + }, + contents: function( elem ) { + return jQuery.nodeName( elem, "iframe" ) ? + elem.contentDocument || elem.contentWindow.document : + jQuery.merge( [], elem.childNodes ); + } +}, function( name, fn ) { + jQuery.fn[ name ] = function( until, selector ) { + var ret = jQuery.map( this, fn, until ); + + if ( name.slice( -5 ) !== "Until" ) { + selector = until; + } + + if ( selector && typeof selector === "string" ) { + ret = jQuery.filter( selector, ret ); + } + + if ( this.length > 1 ) { + // Remove duplicates + if ( !guaranteedUnique[ name ] ) { + ret = jQuery.unique( ret ); + } + + // Reverse order for parents* and prev-derivatives + if ( rparentsprev.test( name ) ) { + ret = ret.reverse(); + } + } + + return this.pushStack( ret ); + }; +}); + +jQuery.extend({ + filter: function( expr, elems, not ) { + var elem = elems[ 0 ]; + + if ( not ) { + expr = ":not(" + expr + ")"; + } + + return elems.length === 1 && elem.nodeType === 1 ? + jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [] : + jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) { + return elem.nodeType === 1; + })); + }, + + dir: function( elem, dir, until ) { + var matched = [], + cur = elem[ dir ]; + + while ( cur && cur.nodeType !== 9 && (until === undefined || cur.nodeType !== 1 || !jQuery( cur ).is( until )) ) { + if ( cur.nodeType === 1 ) { + matched.push( cur ); + } + cur = cur[dir]; + } + return matched; + }, + + sibling: function( n, elem ) { + var r = []; + + for ( ; n; n = n.nextSibling ) { + if ( n.nodeType === 1 && n !== elem ) { + r.push( n ); + } + } + + return r; + } +}); + +// Implement the identical functionality for filter and not +function winnow( elements, qualifier, not ) { + if ( jQuery.isFunction( qualifier ) ) { + return jQuery.grep( elements, function( elem, i ) { + /* jshint -W018 */ + return !!qualifier.call( elem, i, elem ) !== not; + }); + + } + + if ( qualifier.nodeType ) { + return jQuery.grep( elements, function( elem ) { + return ( elem === qualifier ) !== not; + }); + + } + + if ( typeof qualifier === "string" ) { + if ( isSimple.test( qualifier ) ) { + return jQuery.filter( qualifier, elements, not ); + } + + qualifier = jQuery.filter( qualifier, elements ); + } + + return jQuery.grep( elements, function( elem ) { + return ( jQuery.inArray( elem, qualifier ) >= 0 ) !== not; + }); +} +function createSafeFragment( document ) { + var list = nodeNames.split( "|" ), + safeFrag = document.createDocumentFragment(); + + if ( safeFrag.createElement ) { + while ( list.length ) { + safeFrag.createElement( + list.pop() + ); + } + } + return safeFrag; +} + +var nodeNames = "abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|" + + "header|hgroup|mark|meter|nav|output|progress|section|summary|time|video", + rinlinejQuery = / jQuery\d+="(?:null|\d+)"/g, + rnoshimcache = new RegExp("<(?:" + nodeNames + ")[\\s/>]", "i"), + rleadingWhitespace = /^\s+/, + rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi, + rtagName = /<([\w:]+)/, + rtbody = /\s*$/g, + + // We have to close these tags to support XHTML (#13200) + wrapMap = { + option: [ 1, "" ], + legend: [ 1, "
", "
" ], + area: [ 1, "", "" ], + param: [ 1, "", "" ], + thead: [ 1, "", "
" ], + tr: [ 2, "", "
" ], + col: [ 2, "", "
" ], + td: [ 3, "", "
" ], + + // IE6-8 can't serialize link, script, style, or any html5 (NoScope) tags, + // unless wrapped in a div with non-breaking characters in front of it. + _default: jQuery.support.htmlSerialize ? [ 0, "", "" ] : [ 1, "X
", "
" ] + }, + safeFragment = createSafeFragment( document ), + fragmentDiv = safeFragment.appendChild( document.createElement("div") ); + +wrapMap.optgroup = wrapMap.option; +wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; +wrapMap.th = wrapMap.td; + +jQuery.fn.extend({ + text: function( value ) { + return jQuery.access( this, function( value ) { + return value === undefined ? + jQuery.text( this ) : + this.empty().append( ( this[0] && this[0].ownerDocument || document ).createTextNode( value ) ); + }, null, value, arguments.length ); + }, + + append: function() { + return this.domManip( arguments, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + var target = manipulationTarget( this, elem ); + target.appendChild( elem ); + } + }); + }, + + prepend: function() { + return this.domManip( arguments, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + var target = manipulationTarget( this, elem ); + target.insertBefore( elem, target.firstChild ); + } + }); + }, + + before: function() { + return this.domManip( arguments, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this ); + } + }); + }, + + after: function() { + return this.domManip( arguments, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this.nextSibling ); + } + }); + }, + + // keepData is for internal use only--do not document + remove: function( selector, keepData ) { + var elem, + elems = selector ? jQuery.filter( selector, this ) : this, + i = 0; + + for ( ; (elem = elems[i]) != null; i++ ) { + + if ( !keepData && elem.nodeType === 1 ) { + jQuery.cleanData( getAll( elem ) ); + } + + if ( elem.parentNode ) { + if ( keepData && jQuery.contains( elem.ownerDocument, elem ) ) { + setGlobalEval( getAll( elem, "script" ) ); + } + elem.parentNode.removeChild( elem ); + } + } + + return this; + }, + + empty: function() { + var elem, + i = 0; + + for ( ; (elem = this[i]) != null; i++ ) { + // Remove element nodes and prevent memory leaks + if ( elem.nodeType === 1 ) { + jQuery.cleanData( getAll( elem, false ) ); + } + + // Remove any remaining nodes + while ( elem.firstChild ) { + elem.removeChild( elem.firstChild ); + } + + // If this is a select, ensure that it displays empty (#12336) + // Support: IE<9 + if ( elem.options && jQuery.nodeName( elem, "select" ) ) { + elem.options.length = 0; + } + } + + return this; + }, + + clone: function( dataAndEvents, deepDataAndEvents ) { + dataAndEvents = dataAndEvents == null ? false : dataAndEvents; + deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; + + return this.map( function () { + return jQuery.clone( this, dataAndEvents, deepDataAndEvents ); + }); + }, + + html: function( value ) { + return jQuery.access( this, function( value ) { + var elem = this[0] || {}, + i = 0, + l = this.length; + + if ( value === undefined ) { + return elem.nodeType === 1 ? + elem.innerHTML.replace( rinlinejQuery, "" ) : + undefined; + } + + // See if we can take a shortcut and just use innerHTML + if ( typeof value === "string" && !rnoInnerhtml.test( value ) && + ( jQuery.support.htmlSerialize || !rnoshimcache.test( value ) ) && + ( jQuery.support.leadingWhitespace || !rleadingWhitespace.test( value ) ) && + !wrapMap[ ( rtagName.exec( value ) || ["", ""] )[1].toLowerCase() ] ) { + + value = value.replace( rxhtmlTag, "<$1>" ); + + try { + for (; i < l; i++ ) { + // Remove element nodes and prevent memory leaks + elem = this[i] || {}; + if ( elem.nodeType === 1 ) { + jQuery.cleanData( getAll( elem, false ) ); + elem.innerHTML = value; + } + } + + elem = 0; + + // If using innerHTML throws an exception, use the fallback method + } catch(e) {} + } + + if ( elem ) { + this.empty().append( value ); + } + }, null, value, arguments.length ); + }, + + replaceWith: function() { + var + // Snapshot the DOM in case .domManip sweeps something relevant into its fragment + args = jQuery.map( this, function( elem ) { + return [ elem.nextSibling, elem.parentNode ]; + }), + i = 0; + + // Make the changes, replacing each context element with the new content + this.domManip( arguments, function( elem ) { + var next = args[ i++ ], + parent = args[ i++ ]; + + if ( parent ) { + // Don't use the snapshot next if it has moved (#13810) + if ( next && next.parentNode !== parent ) { + next = this.nextSibling; + } + jQuery( this ).remove(); + parent.insertBefore( elem, next ); + } + // Allow new content to include elements from the context set + }, true ); + + // Force removal if there was no new content (e.g., from empty arguments) + return i ? this : this.remove(); + }, + + detach: function( selector ) { + return this.remove( selector, true ); + }, + + domManip: function( args, callback, allowIntersection ) { + + // Flatten any nested arrays + args = core_concat.apply( [], args ); + + var first, node, hasScripts, + scripts, doc, fragment, + i = 0, + l = this.length, + set = this, + iNoClone = l - 1, + value = args[0], + isFunction = jQuery.isFunction( value ); + + // We can't cloneNode fragments that contain checked, in WebKit + if ( isFunction || !( l <= 1 || typeof value !== "string" || jQuery.support.checkClone || !rchecked.test( value ) ) ) { + return this.each(function( index ) { + var self = set.eq( index ); + if ( isFunction ) { + args[0] = value.call( this, index, self.html() ); + } + self.domManip( args, callback, allowIntersection ); + }); + } + + if ( l ) { + fragment = jQuery.buildFragment( args, this[ 0 ].ownerDocument, false, !allowIntersection && this ); + first = fragment.firstChild; + + if ( fragment.childNodes.length === 1 ) { + fragment = first; + } + + if ( first ) { + scripts = jQuery.map( getAll( fragment, "script" ), disableScript ); + hasScripts = scripts.length; + + // Use the original fragment for the last item instead of the first because it can end up + // being emptied incorrectly in certain situations (#8070). + for ( ; i < l; i++ ) { + node = fragment; + + if ( i !== iNoClone ) { + node = jQuery.clone( node, true, true ); + + // Keep references to cloned scripts for later restoration + if ( hasScripts ) { + jQuery.merge( scripts, getAll( node, "script" ) ); + } + } + + callback.call( this[i], node, i ); + } + + if ( hasScripts ) { + doc = scripts[ scripts.length - 1 ].ownerDocument; + + // Reenable scripts + jQuery.map( scripts, restoreScript ); + + // Evaluate executable scripts on first document insertion + for ( i = 0; i < hasScripts; i++ ) { + node = scripts[ i ]; + if ( rscriptType.test( node.type || "" ) && + !jQuery._data( node, "globalEval" ) && jQuery.contains( doc, node ) ) { + + if ( node.src ) { + // Hope ajax is available... + jQuery._evalUrl( node.src ); + } else { + jQuery.globalEval( ( node.text || node.textContent || node.innerHTML || "" ).replace( rcleanScript, "" ) ); + } + } + } + } + + // Fix #11809: Avoid leaking memory + fragment = first = null; + } + } + + return this; + } +}); + +// Support: IE<8 +// Manipulating tables requires a tbody +function manipulationTarget( elem, content ) { + return jQuery.nodeName( elem, "table" ) && + jQuery.nodeName( content.nodeType === 1 ? content : content.firstChild, "tr" ) ? + + elem.getElementsByTagName("tbody")[0] || + elem.appendChild( elem.ownerDocument.createElement("tbody") ) : + elem; +} + +// Replace/restore the type attribute of script elements for safe DOM manipulation +function disableScript( elem ) { + elem.type = (jQuery.find.attr( elem, "type" ) !== null) + "/" + elem.type; + return elem; +} +function restoreScript( elem ) { + var match = rscriptTypeMasked.exec( elem.type ); + if ( match ) { + elem.type = match[1]; + } else { + elem.removeAttribute("type"); + } + return elem; +} + +// Mark scripts as having already been evaluated +function setGlobalEval( elems, refElements ) { + var elem, + i = 0; + for ( ; (elem = elems[i]) != null; i++ ) { + jQuery._data( elem, "globalEval", !refElements || jQuery._data( refElements[i], "globalEval" ) ); + } +} + +function cloneCopyEvent( src, dest ) { + + if ( dest.nodeType !== 1 || !jQuery.hasData( src ) ) { + return; + } + + var type, i, l, + oldData = jQuery._data( src ), + curData = jQuery._data( dest, oldData ), + events = oldData.events; + + if ( events ) { + delete curData.handle; + curData.events = {}; + + for ( type in events ) { + for ( i = 0, l = events[ type ].length; i < l; i++ ) { + jQuery.event.add( dest, type, events[ type ][ i ] ); + } + } + } + + // make the cloned public data object a copy from the original + if ( curData.data ) { + curData.data = jQuery.extend( {}, curData.data ); + } +} + +function fixCloneNodeIssues( src, dest ) { + var nodeName, e, data; + + // We do not need to do anything for non-Elements + if ( dest.nodeType !== 1 ) { + return; + } + + nodeName = dest.nodeName.toLowerCase(); + + // IE6-8 copies events bound via attachEvent when using cloneNode. + if ( !jQuery.support.noCloneEvent && dest[ jQuery.expando ] ) { + data = jQuery._data( dest ); + + for ( e in data.events ) { + jQuery.removeEvent( dest, e, data.handle ); + } + + // Event data gets referenced instead of copied if the expando gets copied too + dest.removeAttribute( jQuery.expando ); + } + + // IE blanks contents when cloning scripts, and tries to evaluate newly-set text + if ( nodeName === "script" && dest.text !== src.text ) { + disableScript( dest ).text = src.text; + restoreScript( dest ); + + // IE6-10 improperly clones children of object elements using classid. + // IE10 throws NoModificationAllowedError if parent is null, #12132. + } else if ( nodeName === "object" ) { + if ( dest.parentNode ) { + dest.outerHTML = src.outerHTML; + } + + // This path appears unavoidable for IE9. When cloning an object + // element in IE9, the outerHTML strategy above is not sufficient. + // If the src has innerHTML and the destination does not, + // copy the src.innerHTML into the dest.innerHTML. #10324 + if ( jQuery.support.html5Clone && ( src.innerHTML && !jQuery.trim(dest.innerHTML) ) ) { + dest.innerHTML = src.innerHTML; + } + + } else if ( nodeName === "input" && manipulation_rcheckableType.test( src.type ) ) { + // IE6-8 fails to persist the checked state of a cloned checkbox + // or radio button. Worse, IE6-7 fail to give the cloned element + // a checked appearance if the defaultChecked value isn't also set + + dest.defaultChecked = dest.checked = src.checked; + + // IE6-7 get confused and end up setting the value of a cloned + // checkbox/radio button to an empty string instead of "on" + if ( dest.value !== src.value ) { + dest.value = src.value; + } + + // IE6-8 fails to return the selected option to the default selected + // state when cloning options + } else if ( nodeName === "option" ) { + dest.defaultSelected = dest.selected = src.defaultSelected; + + // IE6-8 fails to set the defaultValue to the correct value when + // cloning other types of input fields + } else if ( nodeName === "input" || nodeName === "textarea" ) { + dest.defaultValue = src.defaultValue; + } +} + +jQuery.each({ + appendTo: "append", + prependTo: "prepend", + insertBefore: "before", + insertAfter: "after", + replaceAll: "replaceWith" +}, function( name, original ) { + jQuery.fn[ name ] = function( selector ) { + var elems, + i = 0, + ret = [], + insert = jQuery( selector ), + last = insert.length - 1; + + for ( ; i <= last; i++ ) { + elems = i === last ? this : this.clone(true); + jQuery( insert[i] )[ original ]( elems ); + + // Modern browsers can apply jQuery collections as arrays, but oldIE needs a .get() + core_push.apply( ret, elems.get() ); + } + + return this.pushStack( ret ); + }; +}); + +function getAll( context, tag ) { + var elems, elem, + i = 0, + found = typeof context.getElementsByTagName !== core_strundefined ? context.getElementsByTagName( tag || "*" ) : + typeof context.querySelectorAll !== core_strundefined ? context.querySelectorAll( tag || "*" ) : + undefined; + + if ( !found ) { + for ( found = [], elems = context.childNodes || context; (elem = elems[i]) != null; i++ ) { + if ( !tag || jQuery.nodeName( elem, tag ) ) { + found.push( elem ); + } else { + jQuery.merge( found, getAll( elem, tag ) ); + } + } + } + + return tag === undefined || tag && jQuery.nodeName( context, tag ) ? + jQuery.merge( [ context ], found ) : + found; +} + +// Used in buildFragment, fixes the defaultChecked property +function fixDefaultChecked( elem ) { + if ( manipulation_rcheckableType.test( elem.type ) ) { + elem.defaultChecked = elem.checked; + } +} + +jQuery.extend({ + clone: function( elem, dataAndEvents, deepDataAndEvents ) { + var destElements, node, clone, i, srcElements, + inPage = jQuery.contains( elem.ownerDocument, elem ); + + if ( jQuery.support.html5Clone || jQuery.isXMLDoc(elem) || !rnoshimcache.test( "<" + elem.nodeName + ">" ) ) { + clone = elem.cloneNode( true ); + + // IE<=8 does not properly clone detached, unknown element nodes + } else { + fragmentDiv.innerHTML = elem.outerHTML; + fragmentDiv.removeChild( clone = fragmentDiv.firstChild ); + } + + if ( (!jQuery.support.noCloneEvent || !jQuery.support.noCloneChecked) && + (elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem) ) { + + // We eschew Sizzle here for performance reasons: http://jsperf.com/getall-vs-sizzle/2 + destElements = getAll( clone ); + srcElements = getAll( elem ); + + // Fix all IE cloning issues + for ( i = 0; (node = srcElements[i]) != null; ++i ) { + // Ensure that the destination node is not null; Fixes #9587 + if ( destElements[i] ) { + fixCloneNodeIssues( node, destElements[i] ); + } + } + } + + // Copy the events from the original to the clone + if ( dataAndEvents ) { + if ( deepDataAndEvents ) { + srcElements = srcElements || getAll( elem ); + destElements = destElements || getAll( clone ); + + for ( i = 0; (node = srcElements[i]) != null; i++ ) { + cloneCopyEvent( node, destElements[i] ); + } + } else { + cloneCopyEvent( elem, clone ); + } + } + + // Preserve script evaluation history + destElements = getAll( clone, "script" ); + if ( destElements.length > 0 ) { + setGlobalEval( destElements, !inPage && getAll( elem, "script" ) ); + } + + destElements = srcElements = node = null; + + // Return the cloned set + return clone; + }, + + buildFragment: function( elems, context, scripts, selection ) { + var j, elem, contains, + tmp, tag, tbody, wrap, + l = elems.length, + + // Ensure a safe fragment + safe = createSafeFragment( context ), + + nodes = [], + i = 0; + + for ( ; i < l; i++ ) { + elem = elems[ i ]; + + if ( elem || elem === 0 ) { + + // Add nodes directly + if ( jQuery.type( elem ) === "object" ) { + jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem ); + + // Convert non-html into a text node + } else if ( !rhtml.test( elem ) ) { + nodes.push( context.createTextNode( elem ) ); + + // Convert html into DOM nodes + } else { + tmp = tmp || safe.appendChild( context.createElement("div") ); + + // Deserialize a standard representation + tag = ( rtagName.exec( elem ) || ["", ""] )[1].toLowerCase(); + wrap = wrapMap[ tag ] || wrapMap._default; + + tmp.innerHTML = wrap[1] + elem.replace( rxhtmlTag, "<$1>" ) + wrap[2]; + + // Descend through wrappers to the right content + j = wrap[0]; + while ( j-- ) { + tmp = tmp.lastChild; + } + + // Manually add leading whitespace removed by IE + if ( !jQuery.support.leadingWhitespace && rleadingWhitespace.test( elem ) ) { + nodes.push( context.createTextNode( rleadingWhitespace.exec( elem )[0] ) ); + } + + // Remove IE's autoinserted from table fragments + if ( !jQuery.support.tbody ) { + + // String was a , *may* have spurious + elem = tag === "table" && !rtbody.test( elem ) ? + tmp.firstChild : + + // String was a bare or + wrap[1] === "
" && !rtbody.test( elem ) ? + tmp : + 0; + + j = elem && elem.childNodes.length; + while ( j-- ) { + if ( jQuery.nodeName( (tbody = elem.childNodes[j]), "tbody" ) && !tbody.childNodes.length ) { + elem.removeChild( tbody ); + } + } + } + + jQuery.merge( nodes, tmp.childNodes ); + + // Fix #12392 for WebKit and IE > 9 + tmp.textContent = ""; + + // Fix #12392 for oldIE + while ( tmp.firstChild ) { + tmp.removeChild( tmp.firstChild ); + } + + // Remember the top-level container for proper cleanup + tmp = safe.lastChild; + } + } + } + + // Fix #11356: Clear elements from fragment + if ( tmp ) { + safe.removeChild( tmp ); + } + + // Reset defaultChecked for any radios and checkboxes + // about to be appended to the DOM in IE 6/7 (#8060) + if ( !jQuery.support.appendChecked ) { + jQuery.grep( getAll( nodes, "input" ), fixDefaultChecked ); + } + + i = 0; + while ( (elem = nodes[ i++ ]) ) { + + // #4087 - If origin and destination elements are the same, and this is + // that element, do not do anything + if ( selection && jQuery.inArray( elem, selection ) !== -1 ) { + continue; + } + + contains = jQuery.contains( elem.ownerDocument, elem ); + + // Append to fragment + tmp = getAll( safe.appendChild( elem ), "script" ); + + // Preserve script evaluation history + if ( contains ) { + setGlobalEval( tmp ); + } + + // Capture executables + if ( scripts ) { + j = 0; + while ( (elem = tmp[ j++ ]) ) { + if ( rscriptType.test( elem.type || "" ) ) { + scripts.push( elem ); + } + } + } + } + + tmp = null; + + return safe; + }, + + cleanData: function( elems, /* internal */ acceptData ) { + var elem, type, id, data, + i = 0, + internalKey = jQuery.expando, + cache = jQuery.cache, + deleteExpando = jQuery.support.deleteExpando, + special = jQuery.event.special; + + for ( ; (elem = elems[i]) != null; i++ ) { + + if ( acceptData || jQuery.acceptData( elem ) ) { + + id = elem[ internalKey ]; + data = id && cache[ id ]; + + if ( data ) { + if ( data.events ) { + for ( type in data.events ) { + if ( special[ type ] ) { + jQuery.event.remove( elem, type ); + + // This is a shortcut to avoid jQuery.event.remove's overhead + } else { + jQuery.removeEvent( elem, type, data.handle ); + } + } + } + + // Remove cache only if it was not already removed by jQuery.event.remove + if ( cache[ id ] ) { + + delete cache[ id ]; + + // IE does not allow us to delete expando properties from nodes, + // nor does it have a removeAttribute function on Document nodes; + // we must handle all of these cases + if ( deleteExpando ) { + delete elem[ internalKey ]; + + } else if ( typeof elem.removeAttribute !== core_strundefined ) { + elem.removeAttribute( internalKey ); + + } else { + elem[ internalKey ] = null; + } + + core_deletedIds.push( id ); + } + } + } + } + }, + + _evalUrl: function( url ) { + return jQuery.ajax({ + url: url, + type: "GET", + dataType: "script", + async: false, + global: false, + "throws": true + }); + } +}); +jQuery.fn.extend({ + wrapAll: function( html ) { + if ( jQuery.isFunction( html ) ) { + return this.each(function(i) { + jQuery(this).wrapAll( html.call(this, i) ); + }); + } + + if ( this[0] ) { + // The elements to wrap the target around + var wrap = jQuery( html, this[0].ownerDocument ).eq(0).clone(true); + + if ( this[0].parentNode ) { + wrap.insertBefore( this[0] ); + } + + wrap.map(function() { + var elem = this; + + while ( elem.firstChild && elem.firstChild.nodeType === 1 ) { + elem = elem.firstChild; + } + + return elem; + }).append( this ); + } + + return this; + }, + + wrapInner: function( html ) { + if ( jQuery.isFunction( html ) ) { + return this.each(function(i) { + jQuery(this).wrapInner( html.call(this, i) ); + }); + } + + return this.each(function() { + var self = jQuery( this ), + contents = self.contents(); + + if ( contents.length ) { + contents.wrapAll( html ); + + } else { + self.append( html ); + } + }); + }, + + wrap: function( html ) { + var isFunction = jQuery.isFunction( html ); + + return this.each(function(i) { + jQuery( this ).wrapAll( isFunction ? html.call(this, i) : html ); + }); + }, + + unwrap: function() { + return this.parent().each(function() { + if ( !jQuery.nodeName( this, "body" ) ) { + jQuery( this ).replaceWith( this.childNodes ); + } + }).end(); + } +}); +var iframe, getStyles, curCSS, + ralpha = /alpha\([^)]*\)/i, + ropacity = /opacity\s*=\s*([^)]*)/, + rposition = /^(top|right|bottom|left)$/, + // swappable if display is none or starts with table except "table", "table-cell", or "table-caption" + // see here for display values: https://developer.mozilla.org/en-US/docs/CSS/display + rdisplayswap = /^(none|table(?!-c[ea]).+)/, + rmargin = /^margin/, + rnumsplit = new RegExp( "^(" + core_pnum + ")(.*)$", "i" ), + rnumnonpx = new RegExp( "^(" + core_pnum + ")(?!px)[a-z%]+$", "i" ), + rrelNum = new RegExp( "^([+-])=(" + core_pnum + ")", "i" ), + elemdisplay = { BODY: "block" }, + + cssShow = { position: "absolute", visibility: "hidden", display: "block" }, + cssNormalTransform = { + letterSpacing: 0, + fontWeight: 400 + }, + + cssExpand = [ "Top", "Right", "Bottom", "Left" ], + cssPrefixes = [ "Webkit", "O", "Moz", "ms" ]; + +// return a css property mapped to a potentially vendor prefixed property +function vendorPropName( style, name ) { + + // shortcut for names that are not vendor prefixed + if ( name in style ) { + return name; + } + + // check for vendor prefixed names + var capName = name.charAt(0).toUpperCase() + name.slice(1), + origName = name, + i = cssPrefixes.length; + + while ( i-- ) { + name = cssPrefixes[ i ] + capName; + if ( name in style ) { + return name; + } + } + + return origName; +} + +function isHidden( elem, el ) { + // isHidden might be called from jQuery#filter function; + // in that case, element will be second argument + elem = el || elem; + return jQuery.css( elem, "display" ) === "none" || !jQuery.contains( elem.ownerDocument, elem ); +} + +function showHide( elements, show ) { + var display, elem, hidden, + values = [], + index = 0, + length = elements.length; + + for ( ; index < length; index++ ) { + elem = elements[ index ]; + if ( !elem.style ) { + continue; + } + + values[ index ] = jQuery._data( elem, "olddisplay" ); + display = elem.style.display; + if ( show ) { + // Reset the inline display of this element to learn if it is + // being hidden by cascaded rules or not + if ( !values[ index ] && display === "none" ) { + elem.style.display = ""; + } + + // Set elements which have been overridden with display: none + // in a stylesheet to whatever the default browser style is + // for such an element + if ( elem.style.display === "" && isHidden( elem ) ) { + values[ index ] = jQuery._data( elem, "olddisplay", css_defaultDisplay(elem.nodeName) ); + } + } else { + + if ( !values[ index ] ) { + hidden = isHidden( elem ); + + if ( display && display !== "none" || !hidden ) { + jQuery._data( elem, "olddisplay", hidden ? display : jQuery.css( elem, "display" ) ); + } + } + } + } + + // Set the display of most of the elements in a second loop + // to avoid the constant reflow + for ( index = 0; index < length; index++ ) { + elem = elements[ index ]; + if ( !elem.style ) { + continue; + } + if ( !show || elem.style.display === "none" || elem.style.display === "" ) { + elem.style.display = show ? values[ index ] || "" : "none"; + } + } + + return elements; +} + +jQuery.fn.extend({ + css: function( name, value ) { + return jQuery.access( this, function( elem, name, value ) { + var len, styles, + map = {}, + i = 0; + + if ( jQuery.isArray( name ) ) { + styles = getStyles( elem ); + len = name.length; + + for ( ; i < len; i++ ) { + map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles ); + } + + return map; + } + + return value !== undefined ? + jQuery.style( elem, name, value ) : + jQuery.css( elem, name ); + }, name, value, arguments.length > 1 ); + }, + show: function() { + return showHide( this, true ); + }, + hide: function() { + return showHide( this ); + }, + toggle: function( state ) { + if ( typeof state === "boolean" ) { + return state ? this.show() : this.hide(); + } + + return this.each(function() { + if ( isHidden( this ) ) { + jQuery( this ).show(); + } else { + jQuery( this ).hide(); + } + }); + } +}); + +jQuery.extend({ + // Add in style property hooks for overriding the default + // behavior of getting and setting a style property + cssHooks: { + opacity: { + get: function( elem, computed ) { + if ( computed ) { + // We should always get a number back from opacity + var ret = curCSS( elem, "opacity" ); + return ret === "" ? "1" : ret; + } + } + } + }, + + // Don't automatically add "px" to these possibly-unitless properties + cssNumber: { + "columnCount": true, + "fillOpacity": true, + "fontWeight": true, + "lineHeight": true, + "opacity": true, + "order": true, + "orphans": true, + "widows": true, + "zIndex": true, + "zoom": true + }, + + // Add in properties whose names you wish to fix before + // setting or getting the value + cssProps: { + // normalize float css property + "float": jQuery.support.cssFloat ? "cssFloat" : "styleFloat" + }, + + // Get and set the style property on a DOM Node + style: function( elem, name, value, extra ) { + // Don't set styles on text and comment nodes + if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) { + return; + } + + // Make sure that we're working with the right name + var ret, type, hooks, + origName = jQuery.camelCase( name ), + style = elem.style; + + name = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( style, origName ) ); + + // gets hook for the prefixed version + // followed by the unprefixed version + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; + + // Check if we're setting a value + if ( value !== undefined ) { + type = typeof value; + + // convert relative number strings (+= or -=) to relative numbers. #7345 + if ( type === "string" && (ret = rrelNum.exec( value )) ) { + value = ( ret[1] + 1 ) * ret[2] + parseFloat( jQuery.css( elem, name ) ); + // Fixes bug #9237 + type = "number"; + } + + // Make sure that NaN and null values aren't set. See: #7116 + if ( value == null || type === "number" && isNaN( value ) ) { + return; + } + + // If a number was passed in, add 'px' to the (except for certain CSS properties) + if ( type === "number" && !jQuery.cssNumber[ origName ] ) { + value += "px"; + } + + // Fixes #8908, it can be done more correctly by specifing setters in cssHooks, + // but it would mean to define eight (for every problematic property) identical functions + if ( !jQuery.support.clearCloneStyle && value === "" && name.indexOf("background") === 0 ) { + style[ name ] = "inherit"; + } + + // If a hook was provided, use that value, otherwise just set the specified value + if ( !hooks || !("set" in hooks) || (value = hooks.set( elem, value, extra )) !== undefined ) { + + // Wrapped to prevent IE from throwing errors when 'invalid' values are provided + // Fixes bug #5509 + try { + style[ name ] = value; + } catch(e) {} + } + + } else { + // If a hook was provided get the non-computed value from there + if ( hooks && "get" in hooks && (ret = hooks.get( elem, false, extra )) !== undefined ) { + return ret; + } + + // Otherwise just get the value from the style object + return style[ name ]; + } + }, + + css: function( elem, name, extra, styles ) { + var num, val, hooks, + origName = jQuery.camelCase( name ); + + // Make sure that we're working with the right name + name = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( elem.style, origName ) ); + + // gets hook for the prefixed version + // followed by the unprefixed version + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; + + // If a hook was provided get the computed value from there + if ( hooks && "get" in hooks ) { + val = hooks.get( elem, true, extra ); + } + + // Otherwise, if a way to get the computed value exists, use that + if ( val === undefined ) { + val = curCSS( elem, name, styles ); + } + + //convert "normal" to computed value + if ( val === "normal" && name in cssNormalTransform ) { + val = cssNormalTransform[ name ]; + } + + // Return, converting to number if forced or a qualifier was provided and val looks numeric + if ( extra === "" || extra ) { + num = parseFloat( val ); + return extra === true || jQuery.isNumeric( num ) ? num || 0 : val; + } + return val; + } +}); + +// NOTE: we've included the "window" in window.getComputedStyle +// because jsdom on node.js will break without it. +if ( window.getComputedStyle ) { + getStyles = function( elem ) { + return window.getComputedStyle( elem, null ); + }; + + curCSS = function( elem, name, _computed ) { + var width, minWidth, maxWidth, + computed = _computed || getStyles( elem ), + + // getPropertyValue is only needed for .css('filter') in IE9, see #12537 + ret = computed ? computed.getPropertyValue( name ) || computed[ name ] : undefined, + style = elem.style; + + if ( computed ) { + + if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) { + ret = jQuery.style( elem, name ); + } + + // A tribute to the "awesome hack by Dean Edwards" + // Chrome < 17 and Safari 5.0 uses "computed value" instead of "used value" for margin-right + // Safari 5.1.7 (at least) returns percentage for a larger set of values, but width seems to be reliably pixels + // this is against the CSSOM draft spec: http://dev.w3.org/csswg/cssom/#resolved-values + if ( rnumnonpx.test( ret ) && rmargin.test( name ) ) { + + // Remember the original values + width = style.width; + minWidth = style.minWidth; + maxWidth = style.maxWidth; + + // Put in the new values to get a computed value out + style.minWidth = style.maxWidth = style.width = ret; + ret = computed.width; + + // Revert the changed values + style.width = width; + style.minWidth = minWidth; + style.maxWidth = maxWidth; + } + } + + return ret; + }; +} else if ( document.documentElement.currentStyle ) { + getStyles = function( elem ) { + return elem.currentStyle; + }; + + curCSS = function( elem, name, _computed ) { + var left, rs, rsLeft, + computed = _computed || getStyles( elem ), + ret = computed ? computed[ name ] : undefined, + style = elem.style; + + // Avoid setting ret to empty string here + // so we don't default to auto + if ( ret == null && style && style[ name ] ) { + ret = style[ name ]; + } + + // From the awesome hack by Dean Edwards + // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291 + + // If we're not dealing with a regular pixel number + // but a number that has a weird ending, we need to convert it to pixels + // but not position css attributes, as those are proportional to the parent element instead + // and we can't measure the parent instead because it might trigger a "stacking dolls" problem + if ( rnumnonpx.test( ret ) && !rposition.test( name ) ) { + + // Remember the original values + left = style.left; + rs = elem.runtimeStyle; + rsLeft = rs && rs.left; + + // Put in the new values to get a computed value out + if ( rsLeft ) { + rs.left = elem.currentStyle.left; + } + style.left = name === "fontSize" ? "1em" : ret; + ret = style.pixelLeft + "px"; + + // Revert the changed values + style.left = left; + if ( rsLeft ) { + rs.left = rsLeft; + } + } + + return ret === "" ? "auto" : ret; + }; +} + +function setPositiveNumber( elem, value, subtract ) { + var matches = rnumsplit.exec( value ); + return matches ? + // Guard against undefined "subtract", e.g., when used as in cssHooks + Math.max( 0, matches[ 1 ] - ( subtract || 0 ) ) + ( matches[ 2 ] || "px" ) : + value; +} + +function augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) { + var i = extra === ( isBorderBox ? "border" : "content" ) ? + // If we already have the right measurement, avoid augmentation + 4 : + // Otherwise initialize for horizontal or vertical properties + name === "width" ? 1 : 0, + + val = 0; + + for ( ; i < 4; i += 2 ) { + // both box models exclude margin, so add it if we want it + if ( extra === "margin" ) { + val += jQuery.css( elem, extra + cssExpand[ i ], true, styles ); + } + + if ( isBorderBox ) { + // border-box includes padding, so remove it if we want content + if ( extra === "content" ) { + val -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); + } + + // at this point, extra isn't border nor margin, so remove border + if ( extra !== "margin" ) { + val -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + } + } else { + // at this point, extra isn't content, so add padding + val += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); + + // at this point, extra isn't content nor padding, so add border + if ( extra !== "padding" ) { + val += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + } + } + } + + return val; +} + +function getWidthOrHeight( elem, name, extra ) { + + // Start with offset property, which is equivalent to the border-box value + var valueIsBorderBox = true, + val = name === "width" ? elem.offsetWidth : elem.offsetHeight, + styles = getStyles( elem ), + isBorderBox = jQuery.support.boxSizing && jQuery.css( elem, "boxSizing", false, styles ) === "border-box"; + + // some non-html elements return undefined for offsetWidth, so check for null/undefined + // svg - https://bugzilla.mozilla.org/show_bug.cgi?id=649285 + // MathML - https://bugzilla.mozilla.org/show_bug.cgi?id=491668 + if ( val <= 0 || val == null ) { + // Fall back to computed then uncomputed css if necessary + val = curCSS( elem, name, styles ); + if ( val < 0 || val == null ) { + val = elem.style[ name ]; + } + + // Computed unit is not pixels. Stop here and return. + if ( rnumnonpx.test(val) ) { + return val; + } + + // we need the check for style in case a browser which returns unreliable values + // for getComputedStyle silently falls back to the reliable elem.style + valueIsBorderBox = isBorderBox && ( jQuery.support.boxSizingReliable || val === elem.style[ name ] ); + + // Normalize "", auto, and prepare for extra + val = parseFloat( val ) || 0; + } + + // use the active box-sizing model to add/subtract irrelevant styles + return ( val + + augmentWidthOrHeight( + elem, + name, + extra || ( isBorderBox ? "border" : "content" ), + valueIsBorderBox, + styles + ) + ) + "px"; +} + +// Try to determine the default display value of an element +function css_defaultDisplay( nodeName ) { + var doc = document, + display = elemdisplay[ nodeName ]; + + if ( !display ) { + display = actualDisplay( nodeName, doc ); + + // If the simple way fails, read from inside an iframe + if ( display === "none" || !display ) { + // Use the already-created iframe if possible + iframe = ( iframe || + jQuery("