PageSourceSearch

https://www.python.org/static/js/main-min.b1e587ad1920.js

js python.org collected 2026-10-01 06:04:26 UTC 33,435 bytes, 460 lines download raw bytes

1// usage: log('inside coolFunc', this, arguments);
2// paulirish.com/2009/log-a-lightweight-wrapper-for-consolelog/
3window.log = function f(){ log.history = log.history || []; log.history.push(arguments); if(this.console) { var args = arguments, newarr; args.callee = args.callee.caller; newarr = [].slice.call(args); if (typeof console.log === 'object') log.apply.call(console.log, console, newarr); else console.log.apply(console, newarr);}};
4
5// make it safe to use console.log always
6(function(a){function b(){}for(var c="assert,count,debug,dir,dirxml,error,exception,group,groupCollapsed,groupEnd,info,log,markTimeline,profile,profileEnd,time,timeEnd,trace,warn".split(","),d;!!(d=c.pop());){a[d]=a[d]||b;}})
7(function(){try{console.log();return window.console;}catch(a){return (window.console={});}}());
8
9
10/*!
11 * jQuery Cookie Plugin v1.3.1
12 * https://github.com/carhartl/jquery-cookie
13 *
14 * Copyright 2013 Klaus Hartl
15 * Released under the MIT license
16 */
17(function(factory){if(typeof define==='function'&&define.amd&&define.amd.jQuery){define(['jquery'],factory);}else{factory(jQuery);}}(function($){var pluses=/\+/g;function raw(s){return s;}
18function decoded(s){return decodeURIComponent(s.replace(pluses,' '));}
19function converted(s){if(s.indexOf('"')===0){s=s.slice(1,-1).replace(/\\"/g,'"').replace(/\\\\/g,'\\');}
20try{return config.json?JSON.parse(s):s;}catch(er){}}
21var config=$.cookie=function(key,value,options){if(value!==undefined){options=$.extend({},config.defaults,options);if(typeof options.expires==='number'){var days=options.expires,t=options.expires=new Date();t.setDate(t.getDate()+days);}
22value=config.json?JSON.stringify(value):String(value);return(document.cookie=[encodeURIComponent(key),'=',config.raw?value:encodeURIComponent(value),options.expires?'; expires='+options.expires.toUTCString():'',options.path?'; path='+options.path:'',options.domain?'; domain='+options.domain:'',options.secure?'; secure':''].join(''));}
23var decode=config.raw?raw:decoded;var cookies=document.cookie.split('; ');var result=key?undefined:{};for(var i=0,l=cookies.length;i<l;i++){var parts=cookies[i].split('=');var name=decode(parts.shift());var cookie=decode(parts.join('='));if(key&&key===name){result=converted(cookie);break;}
24if(!key){result[name]=converted(cookie);}}
25return result;};config.defaults={};$.removeCookie=function(key,options){if($.cookie(key)!==undefined){$.cookie(key,'',$.extend(options,{expires:-1}));return true;}
26return false;};}));
27
28/*
29 * jQuery FlexSlider v2.1
30 * http://www.woothemes.com/flexslider/
31 *
32 * Copyright 2012 WooThemes
33 * Free to use under the GPLv2 license.
34 * http://www.gnu.org/licenses/gpl-2.0.html
35 *
36 * Contributing author: Tyler Smith (@mbmufffin)
37 */
38(function(d){d.flexslider=function(j,l){var a=d(j),c=d.extend({},d.flexslider.defaults,l),e=c.namespace,q="ontouchstart"in window||window.DocumentTouch&&document instanceof DocumentTouch,u=q?"touchend":"click",m="vertical"===c.direction,n=c.reverse,h=0<c.itemWidth,s="fade"===c.animation,t=""!==c.asNavFor,f={};d.data(j,"flexslider",a);f={init:function(){a.animating=!1;a.currentSlide=c.startAt;a.animatingTo=a.currentSlide;a.atEnd=0===a.currentSlide||a.currentSlide===a.last;a.containerSelector=c.selector.substr(0,
39c.selector.search(" "));a.slides=d(c.selector,a);a.container=d(a.containerSelector,a);a.count=a.slides.length;a.syncExists=0<d(c.sync).length;"slide"===c.animation&&(c.animation="swing");a.prop=m?"top":"marginLeft";a.args={};a.manualPause=!1;var b=a,g;if(g=!c.video)if(g=!s)if(g=c.useCSS)a:{g=document.createElement("div");var p=["perspectiveProperty","WebkitPerspective","MozPerspective","OPerspective","msPerspective"],e;for(e in p)if(void 0!==g.style[p[e]]){a.pfx=p[e].replace("Perspective","").toLowerCase();
40a.prop="-"+a.pfx+"-transform";g=!0;break a}g=!1}b.transitions=g;""!==c.controlsContainer&&(a.controlsContainer=0<d(c.controlsContainer).length&&d(c.controlsContainer));""!==c.manualControls&&(a.manualControls=0<d(c.manualControls).length&&d(c.manualControls));c.randomize&&(a.slides.sort(function(){return Math.round(Math.random())-0.5}),a.container.empty().append(a.slides));a.doMath();t&&f.asNav.setup();a.setup("init");c.controlNav&&f.controlNav.setup();c.directionNav&&f.directionNav.setup();c.keyboard&&
41(1===d(a.containerSelector).length||c.multipleKeyboard)&&d(document).bind("keyup",function(b){b=b.keyCode;if(!a.animating&&(39===b||37===b))b=39===b?a.getTarget("next"):37===b?a.getTarget("prev"):!1,a.flexAnimate(b,c.pauseOnAction)});c.mousewheel&&a.bind("mousewheel",function(b,g){b.preventDefault();var d=0>g?a.getTarget("next"):a.getTarget("prev");a.flexAnimate(d,c.pauseOnAction)});c.pausePlay&&f.pausePlay.setup();c.slideshow&&(c.pauseOnHover&&a.hover(function(){!a.manualPlay&&!a.manualPause&&a.pause()},
42function(){!a.manualPause&&!a.manualPlay&&a.play()}),0<c.initDelay?setTimeout(a.play,c.initDelay):a.play());q&&c.touch&&f.touch();(!s||s&&c.smoothHeight)&&d(window).bind("resize focus",f.resize);setTimeout(function(){c.start(a)},200)},asNav:{setup:function(){a.asNav=!0;a.animatingTo=Math.floor(a.currentSlide/a.move);a.currentItem=a.currentSlide;a.slides.removeClass(e+"active-slide").eq(a.currentItem).addClass(e+"active-slide");a.slides.click(function(b){b.preventDefault();b=d(this);var g=b.index();
43!d(c.asNavFor).data("flexslider").animating&&!b.hasClass("active")&&(a.direction=a.currentItem<g?"next":"prev",a.flexAnimate(g,c.pauseOnAction,!1,!0,!0))})}},controlNav:{setup:function(){a.manualControls?f.controlNav.setupManual():f.controlNav.setupPaging(
43)},setupPaging:function(){var b=1,g;a.controlNavScaffold=d('<ol class="'+e+"control-nav "+e+("thumbnails"===c.controlNav?"control-thumbs":"control-paging")+'"></ol>');if(1<a.pagingCount)for(var p=0;p<a.pagingCount;p++)g="thumbnails"===c.controlNav?
44'<img src="'+a.slides.eq(p).attr("data-thumb")+'"/>':"<a>"+b+"</a>",a.controlNavScaffold.append("<li>"+g+"</li>"),b++;a.controlsContainer?d(a.controlsContainer).append(a.controlNavScaffold):a.append(a.controlNavScaffold);f.controlNav.set();f.controlNav.active();a.controlNavScaffold.delegate("a, img",u,function(b){b.preventDefault();b=d(this);var g=a.controlNav.index(b);b.hasClass(e+"active")||(a.direction=g>a.currentSlide?"next":"prev",a.flexAnimate(g,c.pauseOnAction))});q&&a.controlNavScaffold.delegate("a",
45"click touchstart",function(a){a.preventDefault()})},setupManual:function(){a.controlNav=a.manualControls;f.controlNav.active();a.controlNav.live(u,function(b){b.preventDefault();b=d(this);var g=a.controlNav.index(b);b.hasClass(e+"active")||(g>a.currentSlide?a.direction="next":a.direction="prev",a.flexAnimate(g,c.pauseOnAction))});q&&a.controlNav.live("click touchstart",function(a){a.preventDefault()})},set:function(){a.controlNav=d("."+e+"control-nav li "+("thumbnails"===c.controlNav?"img":"a"),
46a.controlsContainer?a.controlsContainer:a)},active:function(){a.controlNav.removeClass(e+"active").eq(a.animatingTo).addClass(e+"active")},update:function(b,c){1<a.pagingCount&&"add"===b?a.controlNavScaffold.append(d("<li><a>"+a.count+"</a></li>")):1===a.pagingCount?a.controlNavScaffold.find("li").remove():a.controlNav.eq(c).closest("li").remove();f.controlNav.set();1<a.pagingCount&&a.pagingCount!==a.controlNav.length?a.update(c,b):f.controlNav.active()}},directionNav:{setup:function(){var b=d('<ul class="'+
47e+'direction-nav"><li><a class="'+e+'prev" href="#">'+c.prevText+'</a></li><li><a class="'+e+'next" href="#">'+c.nextText+"</a></li></ul>");a.controlsContainer?(d(a.controlsContainer).append(b),a.directionNav=d("."+e+"direction-nav li a",a.controlsContainer)):(a.append(b),a.directionNav=d("."+e+"direction-nav li a",a));f.directionNav.update();a.directionNav.bind(u,function(b){b.preventDefault();b=d(this).hasClass(e+"next")?a.getTarget("next"):a.getTarget("prev");a.flexAnimate(b,c.pauseOnAction)});
48q&&a.directionNav.bind("click touchstart",function(a){a.preventDefault()})},update:function(){var b=e+"disabled";1===a.pagingCount?a.directionNav.addClass(b):c.animationLoop?a.directionNav.removeClass(b):0===a.animatingTo?a.directionNav.removeClass(b).filter("."+e+"prev").addClass(b):a.animatingTo===a.last?a.directionNav.removeClass(b).filter("."+e+"next").addClass(b):a.directionNav.removeClass(b)}},pausePlay:{setup:function(){var b=d('<div class="'+e+'pauseplay"><a></a></div>');a.controlsContainer?
49(a.controlsContainer.append(b),a.pausePlay=d("."+e+"pauseplay a",a.controlsContainer)):(a.append(b),a.pausePlay=d("."+e+"pauseplay a",a));f.pausePlay.update(c.slideshow?e+"pause":e+"play");a.pausePlay.bind(u,function(b){b.preventDefault();d(this).hasClass(e+"pause")?(a.manualPause=!0,a.manualPlay=!1,a.pause()):(a.manualPause=!1,a.manualPlay=!0,a.play())});q&&a.pausePlay.bind("click touchstart",function(a){a.preventDefault()})},update:function(b){"play"===b?a.pausePlay.removeClass(e+"pause").addClass(e+
50"play").text(c.playText):a.pausePlay.removeClass(e+"play").addClass(e+"pause").text(c.pauseText)}},touch:function(){function b(b){k=m?d-b.touches[0].pageY:d-b.touches[0].pageX;q=m?Math.abs(k)<Math.abs(b.touches[0].pageX-e):Math.abs(k)<Math.abs(b.touches[0].pageY-e);if(!q||500<Number(new Date)-l)b.preventDefault(),!s&&a.transitions&&(c.animationLoop||(k/=0===a.currentSlide&&0>k||a.currentSlide===a.last&&0<k?Math.abs(k)/r+2:1),a.setProps(f+k,"setTouch"))}function g(){j.removeEventListener("touchmove",
51b,!1);if(a.animatingTo===a.currentSlide&&!q&&null!==k){var h=n?-k:k,m=0<h?a.getTarget("next"):a.getTarget("prev");a.canAdvance(m)&&(550>Number(new Date)-l&&50<Math.abs(h)||Math.abs(h)>r/2)?a.flexAnimate(m,c.pauseOnAction):s||a.flexAnimate(a.currentSlide,c.pauseOnAction,!0)}j.removeEventListener("touchend",g,!1);f=k=e=d=null}var d,e,f,r,k,l,q=!1;j.addEventListener("touchstart",function(k){a.animating?k.preventDefault():1===k.touches.length&&(a.pause(),r=m?a.h:a.w,l=Number(new Date),f=h&&n&&a.animatingTo===
52a.last?0:h&&n?a.limit-(a.itemW+c.itemMargin)*a.move*a.animatingTo:h&&a.currentSlide===a.last?a.limit:h?(a.itemW+c.itemMargin)*a.move*a.currentSlide:n?(a.last-a.currentSlide+a.cloneOffset)*r:(a.currentSlide+a.cloneOffset)*r,d=m?k.touches[0].pageY:k.touches[0].pageX,e=m?k.touches[0].pageX:k.touches[0].pageY,j.addEventListener("touchmove",b,!1),j.addEventListener("touchend",g,!1))},!1)},resize:function(){!a.animating&&a.is(":visible")&&(h||a.doMath(),s?f.smoothHeight():h?(a.slides.width(a.computedW),
53a.update(a.pagingCount),a.setProps()):m?(a.viewport.height(a.h),a.setProps(a.h,"setTotal")):(c.smoothHeight&&f.smoothHeight(),a.newSlides.width(a.computedW),a.setProps(a.computedW,"setTotal")))},smoothHeight:function(b){if(!m||s){var c=s?a:a.viewport;b?c.animate({height:a.slides.eq(a.animatingTo).height()},b):c.height(a.slides.eq(a.animatingTo).height())}},sync:function(b){var g=d(c.sync).data("flexslider"),e=a.animatingTo;switch(b){case "animate":g.flexAnimate(e,c.pauseOnAction,!1,!0);break;case "play":!g.playing&&
54!g.asNav&&g.play();break;case "pause":g.pause()}}};a.flexAnimate=function(b,g,p,j,l){t&&1===a.pagingCount&&(a.direction=a.currentItem<b?"next":"prev");
54if(!a.animating&&(a.canAdvance(b,l)||p)&&a.is(":visible")){if(t&&j)if(p=d(c.asNavFor).data("flexslider"),a.atEnd=0===b||b===a.count-1,p.flexAnimate(b,!0,!1,!0,l),a.direction=a.currentItem<b?"next":"prev",p.direction=a.direction,Math.ceil((b+1)/a.visible)-1!==a.currentSlide&&0!==b)a.currentItem=b,a.slides.removeClass(e+"active-slide").eq(b).addClass(e+
55"active-slide"),b=Math.floor(b/a.visible);else return a.currentItem=b,a.slides.removeClass(e+"active-slide").eq(b).addClass(e+"active-slide"),!1;a.animating=!0;a.animatingTo=b;c.before(a);g&&a.pause();a.syncExists&&!l&&f.sync("animate");c.controlNav&&f.controlNav.active();h||a.slides.removeClass(e+"active-slide").eq(b).addClass(e+"active-slide");a.atEnd=0===b||b===a.last;c.directionNav&&f.directionNav.update();b===a.last&&(c.end(a),c.animationLoop||a.pause());if(s)q?(a.slides.eq(a.currentSlide).css({opacity:0,
56zIndex:1}),a.slides.eq(b).css({opacity:1,zIndex:2}),a.slides.unbind("webkitTransitionEnd transitionend"),a.slides.eq(a.currentSlide).bind("webkitTransitionEnd transitionend",function(){c.after(a)}),a.animating=!1,a.currentSlide=a.animatingTo):(a.slides.eq(a.currentSlide).fadeOut(c.animationSpeed,c.easing),a.slides.eq(b).fadeIn(c.animationSpeed,c.easing,a.wrapup));else{var r=m?a.slides.filter(":first").height():a.computedW;h?(b=c.itemWidth>a.w?2*c.itemMargin:c.itemMargin,b=(a.itemW+b)*a.move*a.animatingTo,
57b=b>a.limit&&1!==a.visible?a.limit:b):b=0===a.currentSlide&&b===a.count-1&&c.animationLoop&&"next"!==a.direction?n?(a.count+a.cloneOffset)*r:0:a.currentSlide===a.last&&0===b&&c.animationLoop&&"prev"!==a.direction?n?0:(a.count+1)*r:n?(a.count-1-b+a.cloneOffset)*r:(b+a.cloneOffset)*r;a.setProps(b,"",c.animationSpeed);if(a.transitions){if(!c.animationLoop||!a.atEnd)a.animating=!1,a.currentSlide=a.animatingTo;a.container.unbind("webkitTransitionEnd transitionend");a.container.bind("webkitTransitionEnd transitionend",
58function(){a.wrapup(r)})}else a.container.animate(a.args,c.animationSpeed,c.easing,function(){a.wrapup(r)})}c.smoothHeight&&f.smoothHeight(c.animationSpeed)}};a.wrapup=function(b){!s&&!h&&(0===a.currentSlide&&a.animatingTo===a.last&&c.animationLoop?a.setProps(b,"jumpEnd"):a.currentSlide===a.last&&(0===a.animatingTo&&c.animationLoop)&&a.setProps(b,"jumpStart"));a.animating=!1;a.currentSlide=a.animatingTo;c.after(a)};a.animateSlides=function(){a.animating||a.flexAnimate(a.getTarget("next"))};a.pause=
59function(){clearInterval(a.animatedSlides);a.playing=!1;c.pausePlay&&f.pausePlay.update("play");a.syncExists&&f.sync("pause")};a.play=function(){a.animatedSlides=setInterval(a.animateSlides,c.slideshowSpeed);a.playing=!0;c.pausePlay&&f.pausePlay.update("pause");a.syncExists&&f.sync("play")};a.canAdvance=function(b,g){var d=t?a.pagingCount-1:a.last;return g?!0:t&&a.currentItem===a.count-1&&0===b&&"prev"===a.direction?!0:t&&0===a.currentItem&&b===a.pagingCount-1&&"next"!==a.direction?!1:b===a.currentSlide&&
60!t?!1:c.animationLoop?!0:a.atEnd&&0===a.currentSlide&&b===d&&"next"!==a.direction?!1:a.atEnd&&a.currentSlide===d&&0===b&&"next"===a.direction?!1:!0};a.getTarget=function(b){a.direction=b;return"next"===b?a.currentSlide===a.last?0:a.currentSlide+1:0===a.currentSlide?a.last:a.currentSlide-1};a.setProps=function(b,g,d){var e,f=b?b:(a.itemW+c.itemMargin)*a.move*a.animatingTo;e=-1*function(){if(h)return"setTouch"===g?b:n&&a.animatingTo===a.last?0:n?a.limit-(a.itemW+c.itemMargin)*a.move*a.animatingTo:a.animatingTo===
61a.last?a.limit:f;switch(g){case "setTotal":return n?(a.count-1-a.currentSlide+a.cloneOffset)*b:(a.currentSlide+a.cloneOffset)*b;case "setTouch":return b;case "jumpEnd":return n?b:a.count*b;case "jumpStart":return n?a.count*b:b;default:return b}}()+"px";a.transitions&&(e=m?"translate3d(0,"+e+",0)":"translate3d("+e+",0,0)",d=void 0!==d?d/1E3+"s":"0s",a.container.css("-"+a.pfx+"-transition-duration",d));a.args[a.prop]=e;(a.transitions||void 0===d)&&a.container.css(a.args)};a.setup=function(b){if(s)a.slides.css({width:"100%",
62"float":"left",marginRight:"-100%",position:"relative"}),"init"===b&&(q?a.slides.css({opacity:0,display:"block",webkitTransition:"opacity "+c.animationSpeed/1E3+"s ease",zIndex:1}).eq(a.currentSlide).css({opacity:1,zIndex:2}):a.slides.eq(a.currentSlide).fadeIn(c.animationSpeed,c.easing)),c.smoothHeight&&f.smoothHeight();else{var g,p;"init"===b&&(a.viewport=d('<div class="'+e+'viewport"></div>').css({overflow:"hidden",position:"relative"}).appendTo(a).append(a.container),a.cloneCount=0,a.cloneOffset=
630,n&&(p=d.makeArray(a.slides).reverse(),a.slides=d(p),a.container.empty().append(a.slides)));c.animationLoop&&!h&&(a.cloneCount=2,a.cloneOffset=1,"init"!==b&&a.container.find(".clone").remove(),a.container.append(a.slides.first().clone().addClass("clone")).prepend(a.slides.last().clone().addClass("clone")));a.newSlides=d(c.selector,a);g=n?a.count-1-a.currentSlide+a.cloneOffset:a.currentSlide+a.cloneOffset;m&&!h?(a.container.height(200*(a.count+a.cloneCount)+"%").css("position","absolute").width("100%"),
64setTimeout(function(){a.newSlides.css({display:"block"});a.doMath();a.viewport.height(a.h);a.setProps(g*a.h,"init")},"init"===b?100:0)):(a.container.width(200*(a.count+a.cloneCount)+"%"),a.setProps(g*a.computedW,"init"),setTimeout(function(){a.doMath();a.newSlides.css({width:a.computedW,"float":"left",display:"block"});c.smoothHeight&&f.smoothHeight()},"init"===b?100:0))}h||a.slides.removeClass(e+"active-slide").eq(a.currentSlide).addClass(e+"active-slide")};a.doMath=function(){var b=a.slides.first(),
65d=c.itemMargin,e=c.minItems,f=c.maxItems;a.w=a.width();a.h=b.height();a.boxPadding=b.outerWidth()-b.width();h?(a.itemT=c.itemWidth+d,a.minW=e?e*a.itemT:a.w,a.maxW=f?f*a.itemT:a.w,a.itemW=a.minW>a.w?(a.w-d*e)/e:a.maxW<a.w?(a.w-d*f)/f:c.itemWidth>a.w?a.w:c.itemWidth,a.visible=Math.floor(a.w/(a.itemW+d)),a.move=0<c.move&&c.move<a.visible?c.move:a.visible,a.pagingCount=Math.ceil((a.count-a.visible)/a.move+1),a.last=a.pagingCount-1,a.limit=1===a.pagingCount?0:c.itemWidth>a.w?(a.itemW+2*d)*a.count-a.w-
66d:(a.itemW+d)*a.count-a.w-d):(a.itemW=a.w,a.pagingCount=a.count,a.last=a.count-1);a.computedW=a.itemW-a.boxPadding};a.update=function(b,d){a.doMath();h||(b<a.currentSlide?a.currentSlide+=1:b<=a.currentSlide&&0!==b&&(a.currentSlide-=1),a.animatingTo=a.currentSlide);
66if(c.controlNav&&!a.manualControls)if("add"===d&&!h||a.pagingCount>a.controlNav.length)f.controlNav.update("add");else if("remove"===d&&!h||a.pagingCount<a.controlNav.length)h&&a.currentSlide>a.last&&(a.currentSlide-=1,a.animatingTo-=1),
67f.controlNav.update("remove",a.last);c.directionNav&&f.directionNav.update()};a.addSlide=function(b,e){var f=d(b);a.count+=1;a.last=a.count-1;m&&n?void 0!==e?a.slides.eq(a.count-e).after(f):a.container.prepend(f):void 0!==e?a.slides.eq(e).before(f):a.container.append(f);a.update(e,"add");a.slides=d(c.selector+":not(.clone)",a);a.setup();c.added(a)};a.removeSlide=function(b){var e=isNaN(b)?a.slides.index(d(b)):b;a.count-=1;a.last=a.count-1;isNaN(b)?d(b,a.slides).remove():m&&n?a.slides.eq(a.last).remove():
68a.slides.eq(b).remove();a.doMath();a.update(e,"remove");a.slides=d(c.selector+":not(.clone)",a);a.setup();c.removed(a)};f.init()};d.flexslider.defaults={namespace:"flex-",selector:".slides > li",animation:"fade",easing:"swing",direction:"horizontal",reverse:!1,animationLoop:!0,smoothHeight:!1,startAt:0,slideshow:!0,slideshowSpeed:7E3,animationSpeed:600,initDelay:0,randomize:!1,pauseOnAction:!0,pauseOnHover:!1,useCSS:!0,touch:!0,video:!1,controlNav:!0,directionNav:!0,prevText:"Previous",nextText:"Next",
69keyboard:!0,multipleKeyboard:!1,mousewheel:!1,pausePlay:!1,pauseText:"Pause",playText:"Play",controlsContainer:"",manualControls:"",sync:"",asNavFor:"",itemWidth:0,itemMargin:0,minItems:0,maxItems:0,move:0,start:function(){},before:function(){},after:function(){},end:function(){},added:function(){},removed:function(){}};d.fn.flexslider=function(j){void 0===j&&(j={});if("object"===typeof j)return this.each(function(){var a=d(this),c=a.find(j.selector?j.selector:".slides > li");1===c.length?(c.fadeIn(400),
70j.start&&j.start(a)):void 0==a.data("flexslider")&&new d.flexslider(this,j)});var l=d(this).data("flexslider");switch(j){case "play":l.play();break;case "pause":l.pause();break;case "next":l.flexAnimate(l.getTarget("next"),!0);break;case "prev":case "previous":l.flexAnimate(l.getTarget("prev"),!0);break;default:"number"===typeof j&&l.flexAnimate(j,!0)}}})(jQuery);
71
72;var hastouch = Modernizr.touch;
73var hasplaceholder = Modernizr.placeholder;
74
75if( !window.Retina ) {
76    var is_retina = false;
77    $("html").addClass( "no-retina" );
78} else {
79    var is_retina = Retina.isRetina();
80    if ( is_retina ) {
81        $("html").addClass( "retina" );
82    } else {
83        $("html").addClass( "no-retina" );
84    }
85}
86
87
88/* For mobile, hide the iOS toolbar on initial page load */
89/* /mobile/i.test(navigator.userAgent) && !window.location.hash && setTimeout(function () { window.scrollTo(0, 0); }, 1000); */
90
91
92/* Load, Resize and Orientation change methods
93 * http://css-tricks.com/forums/discussion/16123/reload-jquery-functions-on-ipad-orientation-change/p1 */
94
95//initial load
96$(window).load(on_resize_orientationchange);
97
98//bind to resize
99$(window).resize(on_resize_orientationchange);
100
101//check for the orientation event and bind accordingly
102if (window.DeviceOrientationEvent) {
103    window.addEventListener('orientationchange', on_resize_orientationchange, false);
104}
105
106
107/* Variables to set to true later and check */
108supernavs_loaded = false;
109
110/* Load progressive content. Must remember to also load them for IE 7 and 8 if needed */
111function on_resize_orientationchange() {
112
113    // Check if a container is empty !$.trim( $('#mainnav').html() ).length
114
115    /*
116     * "Watch" the body:after { content } to find out how wide the viewport is.
117     * Thanks to http://adactio.com/journal/5429/ for details about this method
118     */
119    mq_tag = window.getComputedStyle(document.body,':after').getPropertyValue('content');
120
121    /* Click the menu button and add a class to the body for a "drawer" */
122    if ( mq_tag.indexOf("drawer_navigation") !=-1 ) {
123
124        /* TO DO: Look for a left-right swipe action (on the #touchnav-wrapper?) and also trigger the menu to open/close */
125        $( "#site-map-link" ).click( function() {
126            $("body").toggleClass("show-sidemenu");
127            //console.log( "! #site-map-link has been tapped" );
128            return false;
129        });
130
131    } else {
132
133        /* If "drawer_navigation" is not present, treat the Menu button as a scroller down to the footer */
134        $("#site-map-link").click(function() {
135            $('body, html').animate({ scrollTop: $('#site-map').offset().top }, 500);
136            return false;
137        });
138    }
139
140
141    /* Load a supernav into the About dropdown */
142    if ( ! hastouch ) {
143
144        if ( mq_tag.indexOf("load_supernavs") !=-1 && ! supernavs_loaded ) {
145
146            $.get("/box/supernav-python-about/",
147                function(data){
148                 $('.python-navigation li#about .subnav').append( data );
149                }, "html");
150            $('li#about').addClass("with-supernav");
151
152            $.get("/box/supernav-python-downloads/",
153                function(data){
154                 $('li#downloads .subnav').append( data );
155                    /* Toggle Download buttons by OS detection */
156                    if (navigator.appVersion.indexOf("Win")!=-1) {
157                        $('.download-unknown').hide();
158                        $('.download-os-windows').show();
159                    }
160                    if (navigator.appVersion.indexOf("Mac")!=-1) {
161                        $('.download-unknown').hide();
162                        $('.download-os-macos').show();
163                    }
164                    if (navigator.appVersion.indexOf("X11")!=-1) {
165                        $('.download-unknown').hide();
166                        $('.download-os-source').show();
167                    }
168                    if (navigator.appVersion.indexOf("Linux")!=-1) {
169                        $('.download-unknown').hide();
170                        $('.download-os-source').show();
171                    }
172                }, "html");
173            $('li#downloads').addClass("with-supernav");
174
175            $.get("/box/supernav-python-documentation/",
176                function(data){
177                 $('li#documentation .subnav').append( data );
178                }, "html");
179            $('li#documentation').addClass("with-supernav");
180
181            $.get("/box/supernav-python-community/",
182                function(data){
183                 $('li#community .subnav').append( data );
184                }, "html");
185            $('li#community').addClass("with-supernav");
186
187            $.get("/box/supernav-python-success-stories/",
188                function(data){
189                 $('li#success-stories .subnav').append( data );
190                }, "html");
191            $('li#success-stories').addClass("with-supernav");
192
193            $.get("/box/supernav-python-blog/",
194                function(data){
195                 $('li#blog .subnav').append( data );
196                }, "html");
197            $('li#blog').addClass("with-supernav");
198
199            $.get("/box/supernav-python-events/",
200                function(data){
201                 $('li#events .subnav').append( data );
202                }, "html");
203            $('li#events').addClass("with-supernav");
204
205            supernavs_loaded = true;
206            //console.log( "! supernavs_loaded has fired" );
207        }
208    }
209
210};
211
212
213function getPythonStatus() {
214    $.ajax({
215        url: "https://2p66nmmycsj3.statuspage.io/api/v2/status.json"
216    }).done(function(data) {
217        var className = 'python-status-indicator-' + data.status.indicator;
218        $('#python-status-indicator')
219            .removeClass('python-status-indicator-default')
220            .addClass(className)
221            .parent()
222            .attr('title', data.status.description);
223    });
224};
225
226/* Initiate some other functions as well. Fires on first page load or when called. */
227$().ready(function() {
228
229    var $container = $('#container');
230    $container.masonry({ itemSelector: '.tier-1' });
231    var mq = window.matchMedia('all and (max-width: 400px)');
232    var check_masonry = function (msnry) {
233        if(msnry.matches) {
234            $container.masonry('destroy');
235        } else {
236            $container.masonry();
237        }
238    };
239    check_masonry(mq);
240    mq.addListener(check_masonry);
241
242    /*
243     * Ensure PythonAnywhere is open for business and only fires on homepage
244     */
245    if($('body#homepage').length) {
246        var launch_shell = $('#launch-shell');
247        launch_shell.toggle();
248        $.getJSON('https://console.python.org/python-dot-org-live-consoles-status', function (data) {
249            if(data.status == 'OK') {
250                launch_shell.toggle();
251            }
252         });
253    }
254    /* Animate some scrolling for smoother transitions */
255
256    /* ! Not currently working in IE10/Windows 8, Chrome for Android, Firefox (all versions)... something about the animate() function */
257    $("#close-python-network").click(function() {
258        $('body, html').animate({ scrollTop: $('#python-network').offset().top }, 300);
259        return false;
260    });
261
262    $("#python-network").click(function() {
263        $('body, html').animate({ scrollTop: $('#top').offset().top }, 300);
264        return false;
265    });
266
267    $("#back-to-top-1, #back-to-top-2").click(function() {
268        $('body, html').animate({ scrollTop: $('#python-network').offset().top }, 500);
269        return false;
270    });
271
272    /*
273     * Load interactive shell on the homepage.
274    */
275    function loadShell(e) {
276        var CONSOLE_URL = 'https://console.python.org/python-dot-org-console/';
277        e.preventDefault();
278        shellDiv = $($(e.target).data('shell-container'));
279
280        // The iframe's DIV containing the shell has a min-height: 300px
281        var shellHeight = 300;
282        shellDiv.animate({height: shellHeight});
283        var iframe = $('<iframe>').width('100%').height(shellHeight);
284        $(iframe).attr('src', CONSOLE_URL);
285        shellDiv.html(iframe);
286    }
287    $('#start-shell').click(loadShell);
288
289    /*
290     * Load a slideshow on the homepage. Set the animationtype and detect for the library first.
291     */
292    if ( hastouch ) {
293        var animationtype = "slide";
294    } else {
295        var animationtype = "fade";
296    }
297    if ( !window.flexslider ) {
298
299        /* Grab body and html tags only once */
300        var body = $('body');
301        var html = $('html');
302
303        if ( body.hasClass( 'home' ) ) {
304
305            html.addClass( "flexslide" );
306
307            $('#dive-into-python').flexslider({
308                animation: animationtype,
309                direction: 'horizontal',
310                animationLoop: true,
311                slideshow: true,
312                slideshowSpeed: 8000,
313                animationSpeed: 600,
314                randomize: false,
315                smoothHeight: false,
316                pauseOnAction: true,
317                pauseOnHover: true,
318                useCSS: true, // use CSS transitions if available
319                controlNav: true, // Create navigation for paging control of each slide
320                directionNav: false, // Create navigation for previous/next navigation
321                prevText: "Prev.",
322                nextText: "Next",
323                touch: hastouch,
324                start: function(slider){
325                    $(this).fadeIn();
326                    $('body').removeClass('loading');
327                }
328            });
329
330        }
331
332        if( body.hasClass('psf') ) {
333            html.addClass( "flexslide" );
334            // PSF Sponsor rotation
335            $('#sponsor-rotation').flexslider({
336                animation: 'slide',
337                direction: 'horizontal',
338                animationLoop: true,
339                slideshow: true,
340                slideshowSpeed: 8000,
341                animationSpeed: 600,
342                randomize: true,
343                smoothHeight: false,
344                pauseOnAction: true,
345                pauseOnHover: true,
346                controlNav: false,
347                directionNav: false,
348                useCSS: true, // use CSS transitions if available
349                touch: hastouch
350            });
351        }
352
353    } else {
354        $("html").addClass( "no-flexslide" );
355    }
356
357
358    /*
359     * Change or store the body font-size and save it into a cookie
360     * Scales the font-size up or down by about 2 pixels.
361     * Requires jQuery.cookie.js. Only load for touch devices.
362     */
363    if ( window.cookie ) {
364        if ( hastouch ) {
365
366            var $cookie_name = "Python-FontSize";
367            var elem = "body";
368            var originalFontSize = $(elem).css("font-size");
369
370            // if exists load saved value, otherwise store it
371            if($.cookie($cookie_name)) {
372                var $getSize = $.cookie($cookie_name);
373                $(elem).css({fontSize : $getSize + ($getSize.indexOf("px")!=-1 ? "" : "px")}); // IE fix for double "pxpx" error
374            } else {
375                $.cookie($cookie_name, originalFontSize, { expires: 365 }); // 365 days
376            }
377
378            // reset link
379            $(".text-reset").bind("click", function() {
380                $(elem).css("font-size", originalFontSize);
381                $.cookie($cookie_name, originalFontSize);
382                return false;
383            });
384
385            // text "A+" link
386            $(".text-grow").bind("click", function() {
387                var currentFontSize = $(elem).css("font-size");
388                var currentFontSizeNum = parseFloat(currentFontSize, 10);
389                var newFontSize = Math.round( currentFontSizeNum*1.125 );
390                if (newFontSize) {
391                    $(elem).css("font-size", newFontSize);
392                    $.cookie($cookie_name, newFontSize);
393                }
394                return false;
395            });
396
397            // text "A-" link
398            $(".text-shrink").bind("click", function() {
399                var currentFontSize = $(elem).css("font-size");
400                var currentFontSizeNum = parseFloat(currentFontSize, 10);
401                var newFontSize = Math.round( currentFontSizeNum*0.89 );
402                if (newFontSize) {
403                    $(elem).css("font-size", newFontSize);
404                    $.cookie($cookie_name, newFontSize);
405                }
406                return false;
407            });
408        } // end hastouch
409    }
410
411    /* If there is no HTML5 placeholder present, run a javascript equivalent */
412    if ( hasplaceholder === false ) {
413
414        /* polyfill from hagenburger: https://gist.github.com/379601 */
415        $('[placeholder]').focus(function() {
416            var input = $(this);
417            if (input.val() == input.attr('placeholder')) {
418                input.val('');
419                input.removeClass('placeholder');
420            }
421        }).blur(function() {
422            var input = $(this);
423            if (input.val() === '' || input.val() == input.attr('placeholder')) {
424                input.addClass('placeholder');
425                input.val(input.attr('placeholder'));
426            }
427        }).blur().parents('form').submit(function() {
428            $(this).find('[placeholder]').each(function() {
429                var input = $(this);
430                if (input.val() == input.attr('placeholder')) {
431                    input.val('');
432                }
433            })
434        });
435    }
436
437    /*
438     * Add a class to the selected radio/checkbox parent label
439     * Requires inputs to be nested in labels:
440     * <label for="checkbox2"><input id="checkbox2" name="checkbox" type="checkbox">Choice B</label>
441     * <label for="radio1"><input id="radio1" name="radio" type="radio" checked="checked">Option 1</label>
442     */
443    $('input:radio').click(function() {
444        $('label:has(input:radio:checked)').addClass('active');
445        $('label:has(input:radio:not(:checked))').removeClass('active');
446    });
447    $('input:checkbox').click(function() {
448        $('label:has(input:checkbox:checked)').addClass('active');
449        $('label:has(input:checkbox:not(:checked))').removeClass('active');
450    });
451    /* Loop through them on initial page load as well */
452    $('input:radio').each(function() {
453        $('label:has(input:radio:checked)').addClass('active');
454    });
455    $('input:checkbox').each(function() {
456        $('label:has(input:checkbox:checked)').addClass('active');
457    });
458
459    getPythonStatus();
460});

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.