aboutsummaryrefslogtreecommitdiffstats
path: root/guides/assets/javascripts/guides.js
diff options
context:
space:
mode:
Diffstat (limited to 'guides/assets/javascripts/guides.js')
-rw-r--r--guides/assets/javascripts/guides.js59
1 files changed, 59 insertions, 0 deletions
diff --git a/guides/assets/javascripts/guides.js b/guides/assets/javascripts/guides.js
new file mode 100644
index 0000000000..a9c7f0d016
--- /dev/null
+++ b/guides/assets/javascripts/guides.js
@@ -0,0 +1,59 @@
+$.fn.selectGuide = function(guide) {
+ $("select", this).val(guide);
+};
+
+var guidesIndex = {
+ bind: function() {
+ var currentGuidePath = window.location.pathname;
+ var currentGuide = currentGuidePath.substring(currentGuidePath.lastIndexOf("/")+1);
+ $(".guides-index-small").
+ on("change", "select", guidesIndex.navigate).
+ selectGuide(currentGuide);
+ $(document).on("click", ".more-info-button", function(e){
+ e.stopPropagation();
+ if ($(".more-info-links").is(":visible")) {
+ $(".more-info-links").addClass("s-hidden").unwrap();
+ } else {
+ $(".more-info-links").wrap("<div class='more-info-container'></div>").removeClass("s-hidden");
+ }
+ });
+ $("#guidesMenu").on("click", function(e) {
+ $("#guides").toggle();
+ return false;
+ });
+ $(document).on("click", function(e){
+ e.stopPropagation();
+ var $button = $(".more-info-button");
+ var element;
+
+ // Cross browser find the element that had the event
+ if (e.target) element = e.target;
+ else if (e.srcElement) element = e.srcElement;
+
+ // Defeat the older Safari bug:
+ // http://www.quirksmode.org/js/events_properties.html
+ if (element.nodeType === 3) element = element.parentNode;
+
+ var $element = $(element);
+
+ var $container = $element.parents(".more-info-container");
+
+ // We've captured a click outside the popup
+ if($container.length === 0){
+ $container = $button.next(".more-info-container");
+ $container.find(".more-info-links").addClass("s-hidden").unwrap();
+ }
+ });
+ },
+ navigate: function(e){
+ var $list = $(e.target);
+ var url = $list.val();
+ window.location = url;
+ }
+};
+
+// Disable autolink inside example code blocks of guides.
+$(document).ready(function() {
+ SyntaxHighlighter.defaults['auto-links'] = false;
+ SyntaxHighlighter.all();
+});