cws.loadCSS(dojo.moduleUrl("cws", "themes/collarity.css"));
cws.loadCSS(dojo.moduleUrl("cust", "widgets.css"));


if (!window.collarity_appid) window.collarity_appid = "myfoxla";

var collarityNS = {
  getSelectedRadio:function () {
    var radios = document.getElementById ("top_search");
    var i = 0;
    var ret = 0;
    if(radios) {
      var nl = dojo.query("input[type=radio]", radios);
      dojo.forEach(nl, function(radio) {
        if(radio.checked) ret = i;
        ++i;
      });
    }
    return ret;
  },

  selectCompassTab:function (compass, tabIndex) {
    var compassDisabled = tabIndex < 0;
    // handle dropdown compass:
    if (compass.declaredClass == "cws.DropdownCompass") {
      compass.compassProps.selectedTab = tabIndex;
      compass.compassProps.disabled = compassDisabled;
    } else {
      // handle real compass:
      compass.disabled = compassDisabled;
      if (tabIndex == -1) {
        compass._compassClose();
      } else {
        var element = dojo.query (".cwsCompassHeaderTab"+tabIndex)[0];
        (compass._selectTab).apply (compass, [element, tabIndex]);
        compass._show();
      }
    }
  },

  pickCompassStatus:function () {
    // hack - because the Compass picks this from the cookie:
    this.level = 0.5;
    var tabIndex = collarityNS.getSelectedRadio();
    collarityNS.selectCompassTab (this, tabIndex);
  },

  compassRecordFilter:function (record) {
    this.titleTemplate = "<div class='${w.baseClass}TitleWrapper'>" +
                           "<a class='${w.baseClass}Title' href='${url}' id='${id}' target='${target}'><span style='font-weight:normal'>&#149;</span> ${title}" + (this.searchType != "web" ? " ${alt}" : " ") + "</a>" +
                         "</div>";
    if (record.cat == "Video") record.alt = "<span class='cwsCompassSRTV'>&nbsp;&nbsp;&nbsp;</span>";
    if (record.cat == "foxondemand") {
      record.alt = "<span class='cwsCompassSRFOD'><img src='"+dojo.moduleUrl("cust", "images/fod-icon.png")+"' width='76' height='9'></span>";
      record.t = cws._C.truncateWB(record.t, 25); // trim the title to make space for this icon
    }
    return record;
  },
  landingPage: "http://www.collarity.com",
  query: cws.urlParams()['top_search_field'] ,
  searchType: function() {
    var st = cws.urlParams()['search-type'];
    if (!st) st = cws.urlParams()['search_type'];
    return st == "web" ? st : "site";
  }(),
  
  searchUrlBase: "/search/SERP?search_type=site&top_search_field=",
  brandingStation: (collarity_appid == "myfoxla")? "NY" : ""
};

collarityNS.keywordCloudDataCB = function (data) {
        if (this.containerNode && data && data.t) {
          var div = dojo.query (".cwsTagCloudArticleTitle", this.containerNode)[0];
          if (div) {
            if (this.containerNode.id == "collarity_keyword_cloud")
              div.innerHTML = data.t;
            else
              div.innerHTML = "<a href='"+data.u+"'>"+data.t+"</a>";
        }
      }
};

collarityNS.keywordCloudSettings = {
    widgetClass: 'cws.Tag',
    containerId: 'collarity_keyword_cloud',
    createContainer: false,
    props: {
      mainTemplate: "<div class='${w.baseClass}Container'>" +
                      "<div class='${w.baseClass}Title'>" +
                        "<span class='${w.baseClass}ArticleTitle'></span> " +
                        "<span class='${w.baseClass}SmallTitle'>An analysis of this story's most prominent words and phrases:</span>"+
                      "</div>" +
                      "<div class='${w.baseClass}Results'>${results}</div>" +
                      "<div class='${w.baseClass}TooltipLink'>" +
                        "<div class='${w.baseClass}TooltipLinkText' id='${w.baseClass}TooltipLinkText'>" +
                          "${w.tooltipLinkText}" +
                        "</div>" +
                      "</div>" +
                    "</div>",
      method: "contextual",
      level: 0.5,
      searchType: "site",
      query: collarityNS.query,
      searchUrlBase: collarityNS.searchUrlBase,
      levels: 5,
      separatorText: ' ',
      number: 15,
      queryBehavior: 'replace',
      tooltipText: 'Keyword Cloud: an<br>analysis of this story\'s<br> most prominent words <br>and phrases.',
      url: 'http://www.myfoxny.com/myfox/pages/News/Politics/Detail;jsessionid=B59DBFCEC73ADAF4966C14D5AA934395?contentId=7133924&version=1&locale=EN-US&layoutCode=TSTY&pageId=3.14.1&sflg=1'
    }
  };

collarityNS.sectionKeywordCloudSettings = dojo.clone (collarityNS.keywordCloudSettings);
collarityNS.sectionKeywordCloudSettings.props.method = "latest-contextual";
collarityNS.sectionKeywordCloudSettings.containerId = "collarity_section_keyword_cloud";
collarityNS.keywordCloudSettings.props.dataCB = collarityNS.keywordCloudDataCB;
collarityNS.sectionKeywordCloudSettings.props.dataCB = collarityNS.keywordCloudDataCB;


var sr = document.getElementById('collarity_search');
if (sr) {
  sr.innerHTML = "<div id='collarity_serp_sponsored'></div><div id='collarity_serp'></div>";
  sr = document.getElementById ('collarity_serp_logo');
  if (sr) {
    sr.innerHTML = "<div align='center'>" +
                "<a href='"+collarityNS.landingPage+"' class='cwsPoweredByLink'>" +
                  "<div class='cwsPoweredByCollarity'></div>" +
                "</a>" +
              "</div>";
  }
}


function switchTo(c) {
  var tabIndex = collarityNS.getSelectedRadio();
  var myCompass = cws.GetWidgetById("compass");
  if (myCompass!=null)
    collarityNS.selectCompassTab (myCompass, tabIndex);
}

function updateCollarityDirectory(id, category) {
  cws._C.DelayedConstruct("tab", {
    containerId: id,
    props: {
      category: category
    }
  });
}

var urlString = window.location.href + "";
var stationName = urlString.match(/myfox\w*/);
var maskUrl = window["collarity_mask_url"] || urlString;

cws.createWidgets({
  compass: {
    widgetClass: "cws.DropdownCompass",
    containerId: "compass",
    createContainer: true,
    props: {
      inputId: "top_search_field",
      containerId: "compass",
      compassProps: {
        // _onBlur: function() {},
        query: "",
        level: 0.5,
        inputId: "top_search_field",
        tabs: [
          {display: "", st: "site", target: "", titles:'title', src: "appid-channel:"+window.collarity_appid+"_index",appid:collarity_appid},
          {display: "", st: "web", target: "", titles:'url', appid: collarity_appid}
        ],
        personalizationModeTemplate: "",
        enableShadow: true,
        brandingLogo: collarityNS.brandingStation,
        footerTemplate: "<div class='${w.baseClass}FooterBranding ${w.baseClass}FooterBranding${w.brandingLogo}'>&nbsp;</div>" +
                        "<div class='${w.baseClass}FooterCollarityLink'><a href='${w.collarityLandingURL}' target='_blank'></a></div>",
        associationsProperties: {
          mainTemplate: "<table width='100%' cellspacing='0' cellpadding='0' border ='0'>" +
                    "<tbody>" +
                      "${results}" +
                    "</tbody>" +
                  "</table><div id='associationsSeparator'><span style='width:4px;height:4px;'></span></div>",
          separatorText:"|"
        },
        searcherProperties: {
          titleTemplate: "<div class='${w.baseClass}TitleWrapper'>" +
                   "<a class='${w.baseClass}Title' href='${url}' id='${id}' target='${target}'><span style='font-weight:normal'>&#149;</span> ${title}" + (collarityNS.getSelectedRadio() == 0 ? " ${alt}" : " ") + "</a>" +
                 "</div>",
          maxLineLength: 36,
          recordFilter: collarityNS.compassRecordFilter,
          altParameterContainsClickUrl: true
        },
        advertisementProperties: {
          channel: collarity_appid+"-compass-site"
        },
        tabsSeparatorText: "",
        customPostCreate: collarityNS.pickCompassStatus,
        collarityLandingURL: collarityNS.landingPage,
        method: "search"
      }
    }
  },
  recommendedStories: {
    widgetClass: "cws.RelatedArticles",
    containerId: "collarity_recommended_stories",
    props: {
      mainTemplate: "<div class='${w.baseClass}Container'>" +
                      "<div class='${w.baseClass}Results'>${resultList}</div>" +
                      "<div class='cwsFooter'><div class='cwsFooterCollarityLink'><a href='${w.collarityLandingURL}' target='_blank'><span style='width:4px;height:4px;'></span></a></a></div></div>" +
                    "</div>",
      itemTemplate: "&#149; <a href='${url}' id='${id}' target='${w.target}'>${title}</a><br>" ,
      maxTitleLength: 45,
      collarityLandingURL: collarityNS.landingPage,
      hintText: collarityNS.articleTitle,
      url: maskUrl,
      target: "",
      number: 4
    }
  },
  relatedStories: {
    widgetClass: "cws.RelatedArticles",
    containerId: "collarity_related_articles",
    props: {
      mainTemplate: "<div class='${w.baseClass}Container'>" +
                      "<div class='${w.baseClass}Results'>${resultList}</div>" +
                      "<div class='cwsFooter'><div class='cwsFooterCollarityLink'><a href='${w.collarityLandingURL}' target='_blank'><span style='width:4px;height:4px;'></span></a></a></div></div>" +
                    "</div>",
      itemTemplate: "&#149; <a href='${url}' id='${id}' target='${w.target}'>${title}</a><br>" ,
      maxTitleLength: 45,
      collarityLandingURL: collarityNS.landingPage,
      hintText: collarityNS.articleTitle,
      url: maskUrl,
      target: "",
      number: 4
    }
  },
  suggestedSearches: {
    widgetClass: "cws.SuggestedSearches",
    containerId: "collarity_suggested_searches",
    props: {
      searchUrlBase: collarityNS.searchUrlBase,
      // searchUrlBase: "http://www." + this.stationName + ".com/myfox/pages/Home/SearchResult?siteId=1003&pageId=1.1&searchLocation=site&qt=",
      mainTemplate: "<div class='${w.baseClass}Container'>" +
                      "<div class='${w.baseClass}Results'>${results}</div>" +
                      "<div class='cwsFooter'><div class='cwsFooterCollarityLink'><a href='${w.collarityLandingURL}' target='_blank'><span style='width:4px;height:4px;'></span></a></div></div>" +
                    "</div>",
      separatorText: " - ",
      collarityLandingURL: collarityNS.landingPage,
      documentTitleAsHintText: true 
    }
  },
  documentKeywordCloud: collarityNS.keywordCloudSettings,
  sectionKeywordCloud: collarityNS.sectionKeywordCloudSettings,
  buzz: {
    widgetClass: "cws.BuzzIndicator",
    containerId: "collarity_buzz_political",
    props: {
      // appid:window.collarity_appid, //uncomment for production
      appid: collarity_appid,
      category: "Politics",
      days: 9,
      number: 20,
      collarityLandingURL: collarityNS.landingPage,
      mainTemplate: "<div class='${w.baseClass}Title'>Top Political Search Terms</div><table class='${w.baseClass}Table' border=0 cellspacing=0>" +
                    "<tbody>" +
                      "${terms}"+
                    "</tbody>" +
                  "</table>" +
                  "<div class='cwsFooter'><div class='cwsFooterCollarityLink'><a href='${w.collarityLandingURL}' target='_blank'><span style='width:4px;height:4px;'></span></a></div></div>",
      itemTemplate: "<td class='${w.baseClass}Number' style='${style}'>${num}.</td>"+
                  "<td class='${w.baseClass}Word'>"+
                    "<a href='${url}' class='${w.baseClass}BuzzUrl'>${term}</a>"+
                  "</td>",
      searchUrlBase: collarityNS.searchUrlBase
    }
  },
  tagcloud: {
    widgetClass: 'cws.Tag',
    containerId: 'collarity_tag_cloud',
    createContainer: false,
    props: {
      method: "DocumentTagCloud",
      level: 0.5,
      searchType: collarityNS.searchType,
      query: collarityNS.query,
      searchUrlBase: collarityNS.searchUrlBase,
      levels: 5,
      separatorText: ' ',
      number: 16,
      queryBehavior: 'append',
      mainTemplate: "<div class='${w.baseClass}Results'>${results}</div>" +
                    "<div class='${w.baseClass}TooltipLink'>" +
                      "<div class='${w.baseClass}TooltipLinkText' id='${w.baseClass}TooltipLinkText'>" +
                        "${w.tooltipLinkText}" +
                      "</div>" +
                    "</div>"
    }
  },
  serp: {
    widgetClass: 'cws.ContentSearcher',
    containerId: 'collarity_serp',
    createContainer: false,
    props: {
      level: 0.5,
      searchType: collarityNS.searchType,
      query: collarityNS.query,
      src: "appid-channel:"+window.collarity_appid+"_index",
      navSeparator: '&nbsp;&nbsp;|&nbsp;&nbsp;',
      navNextMessage: 'Next Page &#187;',
      navPreviousMessage: '&#171; Previous Page',
      mainTemplate: "<div class='${w.baseClass}ResultsContainer'>" +
                "${resultList}" +
              "</div>" +
              "<div class='${w.baseClass}ResultsNavigator'>" +
                "${navigator}" +
              "</div>",
      altParameterContainsClickUrl: true,
      dataCB: function(response) {
        if(window["searchCallbackHandler"] != undefined) {
          window["searchCallbackHandler"]({
            query: collarityNS.query,
            resultCount: response.total || 0
          });
        }
      }
    }
  },
  content_ads: {
    widgetClass: "cws.TextAds",
    containerId: "collarity_article_marketplace",
    props: {
      query: collarityNS.query,
      number: 3,
      appid:collarity_appid,
      channel: collarity_appid+"-content",
      method: "content",
      separatorTemplate: "<div class='${w.baseClass}Separator'></div>"
    }
  },
  serp_sponsored_ads: {
    widgetClass: "cws.TextAds",
    containerId: "collarity_serp_sponsored",
    props: {
      query: collarityNS.query,
      number: 3,
      searchType: collarityNS.searchType,
      channel: collarity_appid + "-search-" + collarityNS.searchType,
      mainTemplate: "<div id='sponsored_links'><div id='sponsored_title'>Sponsored Links</div>${adsResults}</div>",
      method: "search",
      dataCB: function(i) {
        if(i["items"] && i["items"].length == 0) dojo.style(this.containerNode, {display: "none"});
      }
    }
  },
  serp_marketplace_ads: {
    widgetClass: "cws.TextAds",
    containerId: "collarity_serp_marketplace",
    props: {
      query: collarityNS.query,
      number: 6,
      searchType: collarityNS.searchType,
      channel: collarity_appid + "-search-" + collarityNS.searchType,
      method: "search",
      separatorTemplate: "<div class='${w.baseClass}Separator'></div>"
    }
  },
  tab: {
    widgetClass: "cwsx.Fox.Directory.DirectoryView",
    containerId: "hotels",
    props: {
      appid: "local" + collarity_appid,
      category: "Hotels and Travel",
      number: 6,
      search_button_image_src: djConfig.modulePaths.cust + "/images/directory/search_button.gif"
    }
  }
});