summaryrefslogtreecommitdiff
path: root/www/js/utils.js
diff options
context:
space:
mode:
Diffstat (limited to 'www/js/utils.js')
-rw-r--r--www/js/utils.js49
1 files changed, 49 insertions, 0 deletions
diff --git a/www/js/utils.js b/www/js/utils.js
index 86c369b..c09628c 100644
--- a/www/js/utils.js
+++ b/www/js/utils.js
@@ -118,3 +118,52 @@ function get_rd_week(msEpoch) {
var week = Math.floor((((sEpoch + 259200)/604800) + 2) % 4) + 1;
return week;
}
+
+function parseLocationHref() {
+ var matches = window.location.href.match(/(https?):\/\/(.*)/);
+ if(matches === null) {
+ return null;
+ }
+
+ var uri = {};
+ uri.scheme = matches[1];
+ uri.servername = '';
+ uri.path = [];
+ uri.query = [];
+ uri.fragment = '';
+
+ if(matches[2].indexOf('/') < 0) {
+ uri.servername = parts[2];
+ return uri;
+ }
+
+ var parts = matches[2].split('/');
+ uri.servername = parts[0];
+ uri.path = parts.slice(1);
+
+ var tmp = uri.path[uri.path.length-1];
+ if(tmp.length > 0) {
+ var qidx = tmp.indexOf('?');
+ var fidx = tmp.indexOf('#');
+
+ var query = '';
+ if(qidx >= 0 && fidx >= 0) {
+ uri.path[uri.path.length-1] = tmp.substring(0, qidx);
+ if(qidx < fidx) {
+ query = tmp.substring(qidx+1, fidx);
+ }
+ uri.fragment = tmp.substring(fidx+1);
+ } else if (qidx >= 0 && fidx < 0) {
+ uri.path[uri.path.length-1] = tmp.substring(0, qidx);
+ query = tmp.substring(qidx+1);
+ } else if (qidx < 0 && fidx >= 0) {
+ uri.path[uri.path.length-1] = tmp.substring(0, fidx);
+ uri.fragment = tmp.substring(fidx+1);
+ }
+ if(query.length > 0) {
+ uri.query = query.split('&');
+ }
+ }
+
+ return uri
+}