Parse url function
function parse_url(url) {
var queryObj = {},
a = document.createElement('a');
a.href = url;
var query = a.search.substring(1);
if (query) {
var vars = query.split("&");
a.href = url;
for (var i = 0; i < vars.length; i++) {
var pair = vars[i].split("=");
if (typeof queryObj[pair[0]] === "undefined") {
queryObj[pair[0]] = pair[1];
}
else if (typeof queryObj[pair[0]] === "string") {
var arr = [ queryObj[pair[0]], pair[1] ];
queryObj[pair[0]] = arr;
}
else {
queryObj[pair[0]].push(pair[1]);
}
}
}
return {
path: a.pathname.replace(/^([^\/])/, '/$1'),
query: queryObj,
segments: a.pathname.replace(/^\//, '').split('/'),
hash: a.hash
};
}