-
Notifications
You must be signed in to change notification settings - Fork 0
/
rsk-utils.js
114 lines (101 loc) · 3.63 KB
/
rsk-utils.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
106
107
108
109
110
111
112
113
/*
* @module - A utilities module containing common utility functions.
*/
(function(RSKUtils) {
// Platform identifers.
if (navigator.userAgent.match(/Android/i)) {
RSKUtils.isAndroid = true;
} else {
RSKUtils.isAndroid = false;
}
if (navigator.userAgent.match(/BlackBerry/i)) {
RSKUtils.isBlackBerry = true;
} else {
RSKUtils.isBlackBerry= false;
}
if (navigator.userAgent.match(/iPhone|iPad|iPod/i)) {
RSKUtils.isiOS = true;
} else {
RSKUtils.isiOS = false;
}
if (navigator.userAgent.match(/IEMobile/i)) {
RSKUtils.isWindows = true;
} else {
RSKUtils.isWindows = false;
}
/*
* @function isEqualIgnoringCase - Compare two strings ignoring case.
*
* @param {string} first - First string.
* @param {string} second - Second string.
* @return {boolean} - true if equal, false otherwise.
*/
RSKUtils.isEqualIgnoringCase = function(first, second) {
return first.toUpperCase() === second.toUpperCase();
};
/*
* @function arrayContainsValue - Check if an array contains the given
* value.
*
* @param {array} array - The array.
* @param {string} value - The value.
* @return {boolean} - true if array contains value, false otherwise.
*/
RSKUtils.arrayContainsValue = function(array, value) {
return array.indexOf(value) > -1;
};
/*
* @function makeQueryString - Converts the given dictionary of key-value
* pairs into a string of query parameters.
* E.g. Given the following dictionary,
*
* makeQueryString({
* foo : 'bar',
* count : 1,
* is : true,
* });
*
* The resulting query string is:
*
* "foo=bar&count=1&is=true"
*
* @param {object} parameters - A dictionary of key-value pairs.
*/
RSKUtils.makeQueryString = function(parameters) {
// Make the full request string.
var str = [];
for (var p in parameters) {
if (parameters.hasOwnProperty(p)) {
str.push(encodeURIComponent(p) + "=" +
encodeURIComponent(parameters[p]));
}
}
var queryString = str.join("&");
return queryString;
};
/*
* @function loadCSS - Load the given CSS file.
* @param {string} - CSS file to load.
*/
RSKUtils.loadCSS = function(CSSFile) {
var head = document.getElementsByTagName('head')[0],
link = document.createElement('link');
link.type = 'text/css';
link.rel = 'stylesheet';
link.href = CSSFile;
head.appendChild(link);
return link;
};
/*
* @function getStyleProperty - Get the given style from the given element.
* @param {elem} - The element to inspect.
* @param {prop} - The CSS property to retrieve.
*/
RSKUtils.getStyleProperty = function(elem, prop) {
if (window.getComputedStyle) {
return window.getComputedStyle(elem, null).getPropertyValue(prop);
} else if (elem.currentStyle) {
return elem.currentStyle[prop]; // IE
}
};
})(window.RSKUtils = window.RSKUtils || {});