function RunAQuery(Query) {
    //alert(Query);
    var UGen = new UrlGen(Query);
    var ArticleId = UGen.GetParam("a");
    var ArticlePage = UGen.GetParam("p");

    var strURL = WebRoot + "controls/ajaxcalls/DetailArticlePath.aspx?" + UGen.ToString();

    $AJAX.GetForDelegate(function(AjaxResponse) {
        //alert(AjaxResponse);
        //   return;
        window.location.href = AjaxResponse;

    }, strURL);



    //    var ArticleType = "article";
    //    if (ArticleId.indexOf("-") > -1) // video IDs have a dash, article IDs don't 
    //    {
    //        ArticleType = "video";
    //    }
    //    var theTarget = String.format("/news/{0}/{1}", ArticleType, ArticleId);
    //    
    //    if (parseInt(ArticlePage,10) > 1)
    //    {
    //        theTarget = String.format("/news/{0}/{1}/p{2}", ArticleType, ArticleId, ArticlePage);
    //    }
    //    document.SEO.Query.value = Query;
    //    document.SEO.action = theTarget;
    //    document.SEO.submit();
}


function MortgageCalc(num) {
    alert(num);
}


function Article(Query, ArticleSection, ArticleHeadline) {

    var UGen = new UrlGen(Query);
    UGen.RemoveParam("news");
    UGen.AddParam("news", "false");
    //VR open this:
    //UGen.RemoveParam("s");
    //         alert(UGen.ToString()) ;
    //         return;
    if (ArticleHeadline != undefined) {
        ArticleHeadline = CleanHeadline(ArticleHeadline);

        //            ArticleHeadline=ArticleHeadline.replace(/\s/gi,"-");
        //            //remove html and single quotes - VR
        //            ArticleHeadline=ArticleHeadline.replace(/'/g,"");
        //            ArticleHeadline = ArticleHeadline.replace(/<(.|\n)+?>/gi,"");
        //            ArticleHeadline=ArticleHeadline.replace(/:/gi,"");
        //            ArticleHeadline=ArticleHeadline.replace(/\+/gi,"");
        //            ArticleHeadline=ArticleHeadline.replace(/\(/gi,"");
        //            ArticleHeadline=ArticleHeadline.replace(/\)/gi,"");
        //            ArticleHeadline=ArticleHeadline.replace(/\$/gi,"");
        //            ArticleHeadline=ArticleHeadline.replace(/\,/g,""); //VR Jess buglist
        //            ArticleHeadline = ArticleHeadline.replace(/\?/gi,""); //VR Jess buglist
        //            ArticleHeadline = ArticleHeadline.replace(/\!/gi,""); //VR Jess buglist
    }
    if (ArticleSection != undefined) {
        //VR
        ArticleSection = ArticleSection.replace(/\s+/gi, '-')
        UGen.AddParam("s", ArticleSection);
        UGen.AddParam("h", ArticleHeadline);
        //alert(UGen.ToString()) ;
        //return;
    }



    RunAQuery(UGen.ToString());

    //var UGen = new UrlGen(QSCache.QueryString);


    //UGen.AddParam("a",AID);
    //window.location.href = "Article.aspx?" + UGen.ToString();
}




function ArticleSubPage(num, ArticleSection, ArticleHeadline) {
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    //  All we really need to do is swap the page portion of the 
    //  URL with the page number sent here. 
    //  ArticleSection, ArticleHeadline no longer used -Jim
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    var isPaginated = false;
    var href = window.location.href;
    href = href.replace("http://", "");
    var arrHref = href.split('/');
    var newHREF = new Array();
    var PageExp = /^p[0-9]{1,3}$/i;
    for (var x = 0; x < arrHref.length; x++) {
        if (arrHref[x].match(PageExp)) {
            isPaginated = true;
            newHREF.push("p" + num);
        }
        else {
            newHREF.push(arrHref[x]);
        }
    }
    if (!isPaginated) {
        newHREF.push("p" + num); // add if no pagination
    }
    //This line: Added by Tyquaun removes pl if not the first page
    if(num > 1){
   
        if(newHREF[newHREF.length-1].toString().indexOf("nl") != -1)
        {      
        newHREF.splice(newHREF.length-1, 1);
        }
    }
   
    if(num > 1){ //MA: 
       for(var i=0; i< newHREF.length; i++)
       {
        if (newHREF[i].toString().indexOf("?syc") != -1)
            {
                newHREF.splice(i, 1); 
            }
       }   
   }
    
    //Turns commas into slashes and removes the last slash because it is two when
    //when pl is removed
    window.location.href = "http://" + newHREF.join('/');
   
    
    return;
}

/*
----------------------------------------------------------------
----------------------------------------------------------------
var UGen = new UrlGen(QSCache.QueryString);
UGen.RemoveParam("p");
UGen.AddParam("p", num);
UGen.RemoveParam("news");
UGen.AddParam("news","false");
     
       
     
if(ArticleHeadline!= undefined)
{
      
ArticleHeadline = CleanHeadline(ArticleHeadline);
      
//            ArticleHeadline=ArticleHeadline.replace(/\s/gi,"-");
//            //remove html and punctiations - VR
//            ArticleHeadline=ArticleHeadline.replace(/'/g,"");
//            ArticleHeadline = ArticleHeadline.replace(/<(.|\n)+?>/gi,"");
//            ArticleHeadline=ArticleHeadline.replace(/:/gi,"");
//            ArticleHeadline=ArticleHeadline.replace(/\+/gi,"");
//            ArticleHeadline=ArticleHeadline.replace(/\,/g,"");    //VR Jess buglist
//            ArticleHeadline = ArticleHeadline.replace(/\?/gi,""); //VR Jess buglist
//            ArticleHeadline = ArticleHeadline.replace(/\!/gi,""); //VR Jess buglist
}
     
if(ArticleSection!=undefined)
{    
//VR
ArticleSection=ArticleSection.replace(/\s+/gi, '-')
            
UGen.AddParam("s", ArticleSection);  
UGen.AddParam("h", ArticleHeadline);
        
}

RunAQuery(UGen.ToString());
----------------------------------------------------------------
----------------------------------------------------------------
*/


function CleanHeadline(ArticleHeadline) {
    if (ArticleHeadline != undefined) {
        ArticleHeadline = ArticleHeadline.replace(/<[^>]+>/g, '');          // strip html
        ArticleHeadline = ArticleHeadline.replace(/[']+/g, '');             // strip apostrophe
        ArticleHeadline = ArticleHeadline.replace(/^\s+|\s+$/g, '');        // trim
        ArticleHeadline = ArticleHeadline.replace(/[^a-z0-9]+/gi, '-');     // non alphanumeric, replace with dash
        ArticleHeadline = ArticleHeadline.replace(/\-+/g, '-');             // replace runon dashes

        return ArticleHeadline;

        //            headline = ArticleHeadline.replace(/\s/gi,"-");
        //            //remove html and punctiations - VR
        //            headline = headline.replace(/'/g,"");
        //            headline = headline.replace(/<(.|\n)+?>/gi,"");
        //            headline = headline.replace(/:/gi,"");
        //            headline = headline.replace(/\+/gi,"");
        //            headline = headline.replace(/\,/g,"");    //VR Jess buglist
        //            headline = headline.replace(/\?/gi,""); //VR Jess buglist
        //            headline = headline.replace(/\!/gi,""); //VR Jess buglist
    }
    return "";

}
function OpenPrint(IdArticle) {
    //VR temp test window.open("/news/article/" + IdArticle + "/print");
    window.open("/news/article/" + IdArticle + "/print");
}

function ArticlePrint(IdArticle) {
    window.print();
}
function ArticleEmail(IdArticle) {
    void (null);
}
function ArticleSave(IdArticle) {
    void (null);
}
function ArticleShare(IdArticle) {
    tb_showhtml('Article you are sharing:', WebRoot + "Controls/AjaxCalls/EmailFriend.aspx?height=450&width=470&IdListing=" + IdArticle + "&PageFlag=A", false);
}

//================================================================
//  Function body now generated in XML, see code-in-front
//================================================================
//    function BackToResults()
//    {
//        var UGen = new UrlGen(QSCache.QueryString);
//        UGen.RemoveParams(["a", "p", "aids", "t"]);
//        //RunQuery(UGen.ToString());
//        window.location.href = WebRoot + "Articles.aspx?" + UGen.ToString();
//    }


function ArticlePage(No, Position) {
    QSCache.Position = Position; // position of current listing after query.
    var UGen = new UrlGen(QSCache.QueryString);
    //alert(QSCache.QueryString);
    //return; //VR
    UGen.RemoveParam("No");
    UGen.AddParam("No", No);
    UGen.AddParam("news", "false"); //VR 
    //        UGen.RemoveParam("N");
    //        UGen. AddParam("N","0")
    QSCache.QueryString = UGen.ToString();
    //document.write(WebRoot + "Controls/AjaxCalls/DetailListingIds.aspx?" + QSCache.QueryString); 
    $AJAX.GetForDelegate(ArticlePageHandler, WebRoot + "Controls/AjaxCalls/ArticleIds.aspx?" + QSCache.QueryString);
}

function ArticlePageHandler(AJAXResponse) {
    //REMOVE THIS AJAXResponse returns aids=1,2,3,4,5,..&s=section&h=headline&

    if (AJAXResponse.length > 0) {
        var arrListingIds;
        var articlesection = "";
        var articleheadline = "";
        var ListingIds = "";

        //AJAXResponse  a string - parse the string to get s=..., and h=...
        //arrListingIds=AJAXResponse.split(','); 

        var params = AJAXResponse.split("&");
        for (var m = 0; m < params.length; m++) {
            if (params[m].split("=")[0].indexOf("aids") > -1) {
                arrListingIds = params[m].split("=")[1].split(',');
                ListingIds = params[m].split("=")[1];
            }
            if (params[m].split("=")[0].indexOf("s") > -1) {
                articlesection = params[m].split("=")[1];
                articlesection = articlesection.replace(/\s+/gi, '-')
            }
            if (params[m].split("=")[0].indexOf("h") > -1) {
                articleheadline = params[m].split("=")[1];
                articleheadline = CleanHeadline(articleheadline);
            }
        }

        var UGen = new UrlGen(QSCache.QueryString);
        //UGen.RemoveParams(["news","aids","a","s","h"]);
        UGen.RemoveParams(["aids", "a", "s", "h"]);
        UGen.AddParam("news", "false");  //VR 
        UGen.AddParam("aids", ListingIds);
        UGen.AddParam("a", arrListingIds[QSCache.Position]);
        UGen.AddParam("s", articlesection);
        UGen.AddParam("h", articleheadline);

        RunAQuery(UGen.ToString());

    }
}
    
