// query string handling doesn't like ampersand entities
// this should catch double escaped ones too:
if (location.hash.indexOf("amp;") >= 0) {
    location.hash = location.hash.replace(/amp;/g, "");
}
function getQueryParam(key) {
    var qs = location.hash.substr(1);
    var qs_arr = qs.split("&");
    for (var i = 0; i < qs_arr.length; i++) {
        var key_val_arr = qs_arr[i].split("=");
        if (key_val_arr.length == 2 && key_val_arr[0] == key) {
            //alert(key + '=' + key_val_arr[1]);
            return key_val_arr[1];
        }
    }
    //alert(key + ' not found');
    return "";
}
function setFragment(params) {
    var fragment;
    for (var key in params) {
        if (fragment) {
            fragment += "&";
        }
        else {
            fragment = "";
        }
        fragment += key + "=" + params[key];
    }
    location.hash = fragment;

    // propagate that fragment!
    var anchors = document.getElementsByTagName('a');
    for(var i = 0; i < anchors.length; i += 1) {
        if(anchors[i].className.match(/\bhas-map\b/)) {
            anchors[i].href = anchors[i].href.replace(/^(.+?)(#.+)?$/, '$1'+'#'+fragment);
        }
    }    
}
function getLocationHref() {
    return location.href;
}
