|
|
|
@ -28,6 +28,69 @@ function secondsToHuman(seconds)
|
|
|
|
|
var v=Math.floor(seconds/(60*60*24*30)); return v+' month'+((v>1)?'s':'');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Converts an associative array to an encoded string
|
|
|
|
|
* for appending to the anchor.
|
|
|
|
|
*
|
|
|
|
|
* @param object associative_array Object to be serialized
|
|
|
|
|
* @return string
|
|
|
|
|
*/
|
|
|
|
|
function hashToParameterString(associativeArray)
|
|
|
|
|
{
|
|
|
|
|
var parameterString = ""
|
|
|
|
|
for (key in associativeArray)
|
|
|
|
|
{
|
|
|
|
|
if( parameterString === "" )
|
|
|
|
|
{
|
|
|
|
|
parameterString = encodeURIComponent(key);
|
|
|
|
|
parameterString += "=" + encodeURIComponent(associativeArray[key]);
|
|
|
|
|
} else {
|
|
|
|
|
parameterString += "&" + encodeURIComponent(key);
|
|
|
|
|
parameterString += "=" + encodeURIComponent(associativeArray[key]);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//padding for URL shorteners
|
|
|
|
|
parameterString += "&p=p";
|
|
|
|
|
|
|
|
|
|
return parameterString;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Converts a string to an associative array.
|
|
|
|
|
*
|
|
|
|
|
* @param string parameter_string String containing parameters
|
|
|
|
|
* @return object
|
|
|
|
|
*/
|
|
|
|
|
function parameterStringToHash(parameterString)
|
|
|
|
|
{
|
|
|
|
|
var parameterHash = {};
|
|
|
|
|
var parameterArray = parameterString.split("&");
|
|
|
|
|
for (var i = 0; i < parameterArray.length; i++) {
|
|
|
|
|
//var currentParamterString = decodeURIComponent(parameterArray[i]);
|
|
|
|
|
var pair = parameterArray[i].split("=");
|
|
|
|
|
var key = decodeURIComponent(pair[0]);
|
|
|
|
|
var value = decodeURIComponent(pair[1]);
|
|
|
|
|
parameterHash[key] = value;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return parameterHash;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Get an associative array of the parameters found in the anchor
|
|
|
|
|
*
|
|
|
|
|
* @return object
|
|
|
|
|
**/
|
|
|
|
|
function getParameterHash()
|
|
|
|
|
{
|
|
|
|
|
var hashIndex = window.location.href.indexOf("#");
|
|
|
|
|
if (hashIndex >= 0) {
|
|
|
|
|
return parameterStringToHash(window.location.href.substring(hashIndex + 1));
|
|
|
|
|
} else {
|
|
|
|
|
return {};
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Compress a message (deflate compression). Returns base64 encoded data.
|
|
|
|
|
*
|
|
|
|
@ -71,8 +134,13 @@ function zeroDecipher(key, data) {
|
|
|
|
|
* eg. http://server.com/zero/?aaaa#bbbb --> http://server.com/zero/
|
|
|
|
|
*/
|
|
|
|
|
function scriptLocation() {
|
|
|
|
|
return window.location.href.substring(0,window.location.href.length
|
|
|
|
|
-window.location.search.length -window.location.hash.length);
|
|
|
|
|
var scriptLocation = window.location.href.substring(0,window.location.href.length
|
|
|
|
|
- window.location.search.length - window.location.hash.length);
|
|
|
|
|
var hashIndex = scriptLocation.indexOf("#");
|
|
|
|
|
if (hashIndex !== -1) {
|
|
|
|
|
scriptLocation = scriptLocation.substring(0, hashIndex)
|
|
|
|
|
}
|
|
|
|
|
return scriptLocation
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|