// SpryURLUtils.js - version 0.1 - Spry Pre-Release 1.6
|
//
|
// Copyright (c) 2007. Adobe Systems Incorporated.
|
// All rights reserved.
|
//
|
// Redistribution and use in source and binary forms, with or without
|
// modification, are permitted provided that the following conditions are met:
|
//
|
// * Redistributions of source code must retain the above copyright notice,
|
// this list of conditions and the following disclaimer.
|
// * Redistributions in binary form must reproduce the above copyright notice,
|
// this list of conditions and the following disclaimer in the documentation
|
// and/or other materials provided with the distribution.
|
// * Neither the name of Adobe Systems Incorporated nor the names of its
|
// contributors may be used to endorse or promote products derived from this
|
// software without specific prior written permission.
|
//
|
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
// POSSIBILITY OF SUCH DAMAGE.
|
|
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;};
|