var NAMEPARKNG = {

    config: {
        df_main: 1,
        df_backup: 2,
        log_url: "http://log.sitesense.com/",
        click_track_url_path: "click"
    },

    renderResponse: function(nm_result) {
        if (nm_result) {
            if (nm_result.sponsored_listing) {
                window.renderAds && window.renderAds(nm_result);
            } else {
                window.renderRelateds && window.renderRelateds(nm_result);
            }
        }
    },


    google: {
        default_feed_config: {
            relateds_clientid: "ca-dp-namemedia38_xml",
            relateds_adult_clientid: "ca-dp-namemedia39_adult_xml",
            afd_ads_clientid: "ca-dp-namemedia05_3ph_xml",
            afs_ads_clientid: "dp-namemedia05_3ph",
            channelid: "undefined",
            kw_type: "broad",
            adtest: "off",
            num_ads: 10,
            num_radlinks: 10,
            hl: "en",
            adsafe: "medium",
            adext: "as1,sr1"
        },

        redirect: function () {
            window.location = "http://www.simplesearching.com";
        },


        isRelatedsCall: function(clientid) {
            return (clientid && (clientid == this.default_feed_config.relateds_clientid || clientid == this.default_feed_config.relateds_adult_clientid));
        },


        transformGoogleResult: function(google_afd_response) {

            var nm_result = {};

            if (this.isRelatedsCall(google_afd_response.client)) {
                nm_result = {
                    fpid: 1,
                    search_token: google_afd_response.search_token,
                    custom_related_token: google_afd_response.token,
                    feed_relateds: google_afd_response.link_units,
                    popular_categories: google_afd_response.popCats,
                    meta_data: {
                        feedback_url: google_afd_response.feedback_url
                    }
                };
            } else {
                nm_result = {
                    fpid: 1,
                    sponsored_listing: google_afd_response.ads
                };
            }

            NAMEPARKNG.renderResponse(nm_result);
            
        }

    },

    buildRelateds: function(related, pagetracker_action, pagetracker_category, domain) {
        var aTag = "<a href='/"+related.term.replace(/ /g,"-") + ".html"
                + "?afdt=" + related.token + "'"
                + " rel=nofollow";

        if (pagetracker_action) {
            if (pagetracker_category) {
                aTag += " onclick=pageTracker._trackEvent('" + pagetracker_action + "','" + pagetracker_category + "','" + related.term + "');";
            } else {
                aTag += " onclick=pageTracker._trackEvent('" + pagetracker_action + "','" + related.term + "');";
            }
        }
        aTag += ">"
                + related.term
                + "</a>";
        return aTag;
    },

    replaceSpaceWithUnderscore: function(str) {
        return (str ? str.replace(/ /g, '_') : str);
    },

    randOrd: function() {
        return (Math.round(Math.random()) - 0.5);
    },

    getParam: function(name) {
        var match = new RegExp(name + "=([^&]+)", "i").exec(location.search);
        if (match == null)
            match = new RegExp(name + "=(.+)", "i").exec(location.search);
        if (match == null)
            return null;
        match = match + "";
        result = match.split(",");
        if (result != '')
            result = result[1];
        return result; //result[1];
    },

    getKeyword: function() {
        var kwd = this.getParam("keyword");
        var q = this.getParam("search");
        if (kwd) {
            return kwd;
        } else if (q) {
            return q;
        } else {
            return "";
        }
    },
    getLabelRelateds: function(){
        document.write('<a class="labelRelateds" href="' + NAMEPARKNG.google.feedback_url + '" style="text-decoration: none; color: inherit" target="_blank">Related Searches:</a>');
    }



}

function google_afd_ad_request_done(google_afd_response) {

    if (google_afd_response.faillisted) {
        NAMEPARKNG.google.redirect();
        return;
    }

    if (typeof(google_afd_response.client) == "undefined")
        return;

    if (NAMEPARKNG.google.isRelatedsCall(google_afd_response.client)) {
        NAMEPARKNG.google.relatedsResponse = google_afd_response;
    }

    if (typeof(google_afd_response.token) == "undefined") {
        //this is AFS call
        NAMEPARKNG.feedCode = 'AS';
        NAMEPARKNG.google.adsResponse = google_afd_response.ads;
    }

    if (typeof(google_afd_response.search_token) != "undefined") {
        //this is AFD call
        NAMEPARKNG.feedCode = 'AD';
        NAMEPARKNG.google.search_token = google_afd_response.search_token;
        //document.getElementById("searchBoxJS").value=NAMEPARKNG.google.search_token;
        $("#searchBoxJS").val(NAMEPARKNG.google.search_token);


        NAMEPARKNG.google.feedback_url = google_afd_response.feedback_url;
        $('.labelRelateds').attr('href',NAMEPARKNG.google.feedback_url);

    }

    NAMEPARKNG.google.transformGoogleResult(google_afd_response);

}



function getAdsFromService() {
    var nm_result = {


        "rt": 0.5,
        "dt":"1308064093590",
        "uuid":"XXXXXXX-XXXXXXX-XXXXXXX",
        "status_code": "200",
        "fpid":1,

        "search_token":
                "06oENya4ZGM2qE8Uy6UMlPrt4q8iPmlkVEZs33IgngNQeqgMOZvhT1oVvyrpe1udnH3tne485KaQnz3WU3oEaW7xKCOlsXdBz9wfFsxwgadEAfiZRrnxiu65QFh9x",
        "custom_related_token":
                "06oENya4ZGM2qE8Uy6UMlPrt4q8iPmlkVEZs33IgngNQeqgMOZvhT1oVvyrpe1udnH3tne485KaQnz3WU3oEaW7xKCOlsXdBz9wfFsxwgadEAfiZRrnxiu65QFh9x",


        "relateds"
                :
                [
                    {
                        "keyword": "Alaska Travel",
                        "token": "06oENya4ZGM2qE8Uy6UMlPrt4q8iPmlkVEZs33IgngNQeqgMOZvhT1oVvyrpe1udnH3tne485KaQnz3WU3oEaW7xKCOlsXdBz9wfFsxwgadEAfiZRrnxiu65QFh9x"
                    },
                    {
                        "keyword": "AK Vacation",
                        "token": "06oENya4ZGM2qE8Uy6UMlPrt4q8iPmlkVEZs33IgngNQeqgMOZvhT1oVvyrpe1udnH3tne485KaQnz3WU3oEaW7xKCOlsXdBz9wfFsxwgadEAfiZRrnxiu65QFh9x"
                    },
                    {
                        "keyword": "AK Travel",
                        "token": "06oENya4ZGM2qE8Uy6UMlPrt4q8iPmlkVEZs33IgngNQeqgMOZvhT1oVvyrpe1udnH3tne485KaQnz3WU3oEaW7xKCOlsXdBz9wfFsxwgadEAfiZRrnxiu65QFh9x"
                    }
                ],


        "categories"
                :
                [
                    {
                        "keyword": "Travel",
                        "token": "06oENya4ZGM2qE8Uy6UMlPrt4q8iPmlkVEZs33IgngNQeqgMOZvhT1oVvyrpe1udnH3tne485KaQnz3WU3oEaW7xKCOlsXdBz9wfFsxwgadEAfiZRrnxiu65QFh9x",
                        "subcategories": [
                            {
                                "keyword": "Airline",
                                "token": "06oENya4ZGM2qE8Uy6UMlPrt4q8iPmlkVEZs33IgngNQeqgMOZvhT1oVvyrpe1udnH3tne485KaQnz3WU3oEaW7xKCOlsXdBz9wfFsxwgadEAfiZRrnxiu65QFh9x"
                            },
                            {
                                "keyword": "Car Rental",
                                "token": "06oENya4ZGM2qE8Uy6UMlPrt4q8iPmlkVEZs33IgngNQeqgMOZvhT1oVvyrpe1udnH3tne485KaQnz3WU3oEaW7xKCOlsXdBz9wfFsxwgadEAfiZRrnxiu65QFh9x"
                            },
                            {
                                "keyword": "Hotels",
                                "token": "06oENya4ZGM2qE8Uy6UMlPrt4q8iPmlkVEZs33IgngNQeqgMOZvhT1oVvyrpe1udnH3tne485KaQnz3WU3oEaW7xKCOlsXdBz9wfFsxwgadEAfiZRrnxiu65QFh9x"
                            },
                            {
                                "keyword": "Cruises",
                                "token": "06oENya4ZGM2qE8Uy6UMlPrt4q8iPmlkVEZs33IgngNQeqgMOZvhT1oVvyrpe1udnH3tne485KaQnz3WU3oEaW7xKCOlsXdBz9wfFsxwgadEAfiZRrnxiu65QFh9x"
                            },
                            {
                                "keyword": "Vacations",
                                "token": "06oENya4ZGM2qE8Uy6UMlPrt4q8iPmlkVEZs33IgngNQeqgMOZvhT1oVvyrpe1udnH3tne485KaQnz3WU3oEaW7xKCOlsXdBz9wfFsxwgadEAfiZRrnxiu65QFh9x"
                            }
                        ]
                    },
                    {
                        "keyword": "Financial Planning",
                        "token": "06oENya4ZGM2qE8Uy6UMlPrt4q8iPmlkVEZs33IgngNQeqgMOZvhT1oVvyrpe1udnH3tne485KaQnz3WU3oEaW7xKCOlsXdBz9wfFsxwgadEAfiZRrnxiu65QFh9x",
                        "subcategories": [
                            {
                                "keyword": "Loans",
                                "token": "06oENya4ZGM2qE8Uy6UMlPrt4q8iPmlkVEZs33IgngNQeqgMOZvhT1oVvyrpe1udnH3tne485KaQnz3WU3oEaW7xKCOlsXdBz9wfFsxwgadEAfiZRrnxiu65QFh9x"
                            },
                            {
                                "keyword": "Credit Cards",
                                "token": "06oENya4ZGM2qE8Uy6UMlPrt4q8iPmlkVEZs33IgngNQeqgMOZvhT1oVvyrpe1udnH3tne485KaQnz3WU3oEaW7xKCOlsXdBz9wfFsxwgadEAfiZRrnxiu65QFh9x"
                            },
                            {
                                "keyword": "Debt Consolidation",
                                "token": "06oENya4ZGM2qE8Uy6UMlPrt4q8iPmlkVEZs33IgngNQeqgMOZvhT1oVvyrpe1udnH3tne485KaQnz3WU3oEaW7xKCOlsXdBz9wfFsxwgadEAfiZRrnxiu65QFh9x"
                            },
                            {
                                "keyword": "Stocks",
                                "token": "06oENya4ZGM2qE8Uy6UMlPrt4q8iPmlkVEZs33IgngNQeqgMOZvhT1oVvyrpe1udnH3tne485KaQnz3WU3oEaW7xKCOlsXdBz9wfFsxwgadEAfiZRrnxiu65QFh9x"
                            },
                            {
                                "keyword": "Payday Loans",
                                "token": "06oENya4ZGM2qE8Uy6UMlPrt4q8iPmlkVEZs33IgngNQeqgMOZvhT1oVvyrpe1udnH3tne485KaQnz3WU3oEaW7xKCOlsXdBz9wfFsxwgadEAfiZRrnxiu65QFh9x"
                            }
                        ]
                    }
                ],


        "ads"
                :
                [
                    {
                        "n": 1,
                        "url": "http://www.namemedia.com",
                        "visible_url": "radioshack.shoplocal.com",
                        "line1": "RadioShack <b>Camera</b> Sale",
                        "line2": "<b>Cameras</b> at RadioShack for Less! Sale Prices from $120. Ends Jun 18.",

                        "type": "text/wide"
                    },
                    {
                        "n": 2,
                        "url": "http://www.namemedia.com",
                        "visible_url": "www.couponmountain.com",
                        "line1": "<b>Canon</b> Digital <b>Cameras</b> Deals",
                        "line2": "Coupon Codes and Deals Save up to 40% Online",

                        "type": "text/wide"
                    }
                ],


        "previous_link": {
            "display":"Prev",
            "token":"06oENya4ZG22qGjAyqUEtH9kSsbydsMJVnw_8CL5ZlqrtU7EPwtdX7PqyMGFXqy9LQ3r_MDTlX3hHRzJdGEXwrKXbo2n1yb"
        },

        "next_link":
        {
            "display":"Prev",
            "token":"06oENya4ZG22qGjAyqUEtH9kSsbydsMJVnw_8CL5ZlqrtU7EPwtdX7PqyMGFXqy9LQ3r_MDTlX3hHRzJdGEXwrKXbo2n1yb"
        },


        "meta_data"
                :
        {
            "category_rating":"clean",
            "market":"us"
        },


        "input": {
            "domain_name":"775mm.com",
            "test":"on",
            "num_ads":"10",
            "num_relateds":"10",
            "lang":"en",
            "adult":"true"
        }


    };

    return nm_result;
}

function getWebResultsStub(q) {
    var algos = {

        "rt": 0.5,
        "dt":"1308064093590",
        "status_code": "200",

        "algos"
                :
                [
                    {
                        "n": 1,
                        "url": "http://www.namemedia.com",
                        "visible_url": "radioshack.shoplocal.com",
                        "line1": "RadioShack <b>Camera</b> Sale",
                        "line2": "<b>Cameras</b> at RadioShack for Less! Sale Prices from $120. Ends Jun 18."
                    },
                    {
                        "n": 2,
                        "url": "http://www.namemedia.com",
                        "visible_url": "www.couponmountain.com",
                        "line1": "<b>Canon</b> Digital <b>Cameras</b> Deals",
                        "line2": "Coupon Codes and Deals Save up to 40% Online"
                    }
                ],


        "input": {
            "num_algos":"10",
            "q": q
        }


    };

    return algos;
}




function getWebResults(q,d,num) {

    var url = "http://localhost:9090/feed_service/fs/algos/" + d + "?kw=" + q + "&n=" + num +"&callback=?";


    var x = {};
    $.ajax({
        url: url,
        dataType: 'jsonp',
        async: true,        // jsonp , crossdomain can only be async
        //crossDomain: true,
        success: function(result){
            //alert("r="+JSON.stringify(result));
            renderWebResults(result);
        },
        error: function(json) {
                    //alert("error!");
        }
    });

      /*
        var algo = {

        "rt": 0.5,
        "dt":"1308064093590",
        "status_code": "200",

        "algo"
                :
                [
                    {
                        "n": 1,
                        "url": "http://www.namemedia.com",
                        "visible_url": "radioshack.shoplocal.com",
                        "line1": "RadioShack <b>Camera</b> Sale",
                        "line2": "<b>Cameras</b> at RadioShack for Less! Sale Prices from $120. Ends Jun 18."
                    },
                    {
                        "n": 2,
                        "url": "http://www.namemedia.com",
                        "visible_url": "www.couponmountain.com",
                        "line1": "<b>Canon</b> Digital <b>Cameras</b> Deals",
                        "line2": "Coupon Codes and Deals Save up to 40% Online"
                    }
                ],


        "input": {
            "num_algos":"10",
            "q": q
        }


    };

    return algo;

    */
}

