var Spry;if(!Spry)Spry={};if(!Spry.Utils)Spry.Utils={};Spry.Utils.urlComponentToObject=function(ucStr,paramSeparator,nameValueSeparator)
{var o=new Object;if(ucStr)
{if(!paramSeparator)paramSeparator="&";if(!nameValueSeparator)nameValueSeparator="=";var params=ucStr.split(paramSeparator);for(var i=0;i<params.length;i++)
{var a=params[i].split(nameValueSeparator);var n=decodeURIComponent(a[0]?a[0]:"");var v=decodeURIComponent(a[1]?a[1]:"");if(v.match(/^0$|^[1-9]\d*$/))
v=parseInt(v);if(typeof o[n]=="undefined")
o[n]=v;else
{if(typeof o[n]!="object")
{var t=o[n];o[n]=new Array;o[n].push(t);}
o[n].push(v);}}}
return o;};Spry.Utils.getLocationHashParamsAsObject=function(paramSeparator,nameValueSeparator)
{return Spry.Utils.urlComponentToObject(window.location.hash.replace(/^#/,""),paramSeparator,nameValueSeparator);};Spry.Utils.getLocationParamsAsObject=function()
{return Spry.Utils.urlComponentToObject(window.location.search.replace(/^\?/,""));};Spry.Utils.getURLHashParamsAsObject=function(url,paramSeparator,nameValueSeparator)
{var i;if(url&&(i=url.search("#"))>=0)
return Spry.Utils.urlComponentToObject(url.substr(i+1),paramSeparator,nameValueSeparator);return new Object;};Spry.Utils.getURLParamsAsObject=function(url)
{var s;if(url&&(s=url.match(/\?[^#]*/))&&s)
return Spry.Utils.urlComponentToObject(s[0].replace(/^\?/,""));return new Object;};