-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathscript.js
108 lines (87 loc) · 3.24 KB
/
script.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
// Show alert messages
function checkFormAlert(alertMessage) {
$("#check-form-message").text(alertMessage)
.removeClass("hide");
}
// Mail form validation
function checkForm(obj, elems) {
var alertMessage;
var element, pattern;
for (var i = 0; i < obj.elements.length; i++) { // check all form elements
element = obj.elements[i];
// only required fields
if (elems != undefined)
if (elems.join().indexOf(element.type) < 0) continue;
// if have check_message attribute
if (!element.getAttribute("check_message")) continue;
if (pattern = element.getAttribute("check_pattern")) { // if have pattern
pattern = new RegExp(pattern, "g");
if (!pattern.test(element.value)) {
alertMessage = element.getAttribute("check_message");
checkFormAlert(alertMessage);
element.focus();
return false;
}
} else if(/^\s*$/.test(element.value)) { // elese find empty fields
alertMessage = element.getAttribute("check_message");
checkFormAlert(alertMessage);
element.focus();
return false;
}
}
return true;
}
// Retina support.
// Use: Set real width/height and add .hires class for retina images.
$(function () {
if (window.devicePixelRatio == 2) {
var images = $("img.hires");
// loop through the images and make them hi-res
for(var i = 0; i < images.length; i++) {
// create new image name
var imageType = images[i].src.substr(-4);
var imageName = images[i].src.substr(0, images[i].src.length - 4);
imageName += "@2x" + imageType;
//rename image
images[i].src = imageName;
}
}
});
// .affix-container's used to prevent "jump" of content below an affix element when it get position:fixed (.affix-top -> .affix)
// We get height of each needed affix element and assign it to its container.
// So we get an improvised indentation.
$(".affix-container").each(function() {
var affixElementHeight = $(this).children().outerHeight();
$(this).height(affixElementHeight);
});
// affix
$('#readme-nav').affix({
offset: {
top: 405
}
});
// Create Readme Navigation
// Script add IDs to generated H3 tags
$( "#readme-content h3" ).each(function( index ) {
$( this ).attr('id', 'readme-item-' + index ); // For each H3 add ID: #readme-item-0, #readme-item-1, #readme-item-2, etc.
var h3text = $(this).html(); // Get content of H3
$("#readme-nav ul").append("<li><a href='#readme-item-"+index+"'>"+h3text+"</a></li>"); //And create links to #readme-nav
});
// Make first Readme Navigation item active
$('#readme-nav ul li:first-child').addClass("active");
// Prevent <a> default action and add smooth scroll to an element
$("#readme-nav ul li a").click(function(e) {
e.preventDefault();
var href = $(this).attr("href");
var navHeight = $('#readme-nav').height();
$('html, body').animate({
scrollTop: $(href).offset().top-(navHeight+20)
}, 1000);
});
//Turn-on scrollspy
$('body').scrollspy({ target: '#readme-nav', offset:110 });
//Initialize tooltips
$('.tooltip-trigger').tooltip();
//Add version number below the download button
var downloadVersion = $("#readme-content em:first-child").html();
$( "#download-version" ).append(downloadVersion);