﻿function BuildNewUrl(pageNum) 
{
    try
    {            
        pageNum = isNaN(pageNum) ? 0 : pageNum;
        return replaceQueryString(document.location, "pn", pageNum);        
    }
    catch(e)
    {
        alert("Error in BuildNewUrl(): " + e.message); 
        return "../baby-names-search/results.aspx";            
    }         
} 

function Page(pageNum)
{
    try
    {
        var str = BuildNewUrl(pageNum);
        document.location.href = str;
    }
    catch(e)
    {
        Page("PageBack()", e);		    
    }
}  

function NewSearch() 
{
    try
    {
        document.location.href = BuildNewUrl();
    }
    catch(e)
    {
        NewSearch("PageBack()", e);		    
    }         
}

function URLEncode(sStr) 
{
    try
    {
        return escape(sStr).replace(/\+/g, '%2B').replace(/\"/g,'%22').replace(/\'/g, '%27').replace(/\//g,'%2F');                        
    }
    catch(e)
    {
        alert(e.message);		    
    } 
}
/*
function replaceQueryString(url, param, value) 
{
    try
    { 
        var preURL = "";
        var postURL = "";
        var newURL = "";
        url = url + "";
        var start = url.indexOf(param+"=");
         
        if(start > -1)
        {                
           var end = url.indexOf("=", start);
           preURL=url.substring(0,end) +"="+value;

           var startRest = url.indexOf("&",start);
           postURL="";
           if(startRest > -1)
           {
                postURL=url.substring(startRest);
           }
        }
        else
        {            
            preURL=url;
            postURL="&"+param+"="+value;
        }
        newURL = preURL+postURL;
        return newURL;
    }
    catch(e)
    {
        alert("Error in replaceQueryString(): " + e.message);    
        return url;
    }      
}
*/

function replaceQueryString(url, param, value) 
{
    try
    {
        url = url + ""; 
        var re = new RegExp("([?|&])" + param + "=.*?(&|$)","i");
        
        if (url.match(re))
            return url.replace(re,'$1' + param + "=" + value + '$2');
        else if (url.indexOf("?") == -1)
            return url + '?' + param + "=" + value;
        else
            return url + '&' + param + "=" + value;         
    }
    catch(e)
    {
        alert("Error in replaceQueryString(): " + e.message);    
        return url;
    }     
}
