/* Omniture click tracking for Food Home Page
 * Charles E. Lewis, Jr.  |   June 2007
 *
 *   set click events for each monitored link
 *   uses prototype.js
 *   note: WhatsOnTv.js calls trackHomepageClick(aLinkID, bLinkID) directly to count Flash load
 */


/* NOTE: THIS JSON ARRAY MAINTAINED IN CMS HOMEPAGE CSS/ JS ELEMENT
OmniLinks = [
  { id: "TSearch01", prop3: "FHP:TermClick", prop19: "FHP:Term:", fParam: "document.getElementById('TSearch01').innerHTML" },
  { id: "TSearch02", prop3: "FHP:TermClick", prop19: "FHP:Term:", fParam: "document.getElementById('TSearch02').innerHTML" },
  { id: "TSearch03", prop3: "FHP:TermClick", prop19: "FHP:Term:", fParam: "document.getElementById('TSearch03').innerHTML" },
  { id: "TSearch04", prop3: "FHP:TermClick", prop19: "FHP:Term:", fParam: "document.getElementById('TSearch04').innerHTML" },
  { id: "TSearch05", prop3: "FHP:TermClick", prop19: "FHP:Term:", fParam: "document.getElementById('TSearch05').innerHTML" },
  { id: "TSearch06", prop3: "FHP:TermClick", prop19: "FHP:Term:", fParam: "document.getElementById('TSearch06').innerHTML" },
  { id: "TSearch07", prop3: "FHP:TermClick", prop19: "FHP:Term:", fParam: "document.getElementById('TSearch07').innerHTML" },
  { id: "TSearch08", prop3: "FHP:TermClick", prop19: "FHP:Term:", fParam: "document.getElementById('TSearch08').innerHTML" },
  { id: "TSearch09", prop3: "FHP:TermClick", prop19: "FHP:Term:", fParam: "document.getElementById('TSearch09').innerHTML" },
  { id: "TSearch10", prop3: "FHP:TermClick", prop19: "FHP:Term:", fParam: "document.getElementById('TSearch10').innerHTML" },

  { id: "BPNav1", prop3: "FHP:BigPromoNavClick", prop19: "FHP:BigPromoNav:1" },
  { id: "BPNav2", prop3: "FHP:BigPromoNavClick", prop19: "FHP:BigPromoNav:2" },
  { id: "BPNav3", prop3: "FHP:BigPromoNavClick", prop19: "FHP:BigPromoNav:3" },
  { id: "BPNav4", prop3: "FHP:BigPromoNavClick", prop19: "FHP:BigPromoNav:4" },
  { id: "BPLinkImg1", prop3: "FHP:BigPromoClick", prop19: "FHP:BigPromoImg:1" },
  { id: "BPLinkImg2", prop3: "FHP:BigPromoClick", prop19: "FHP:BigPromoImg:2" },
  { id: "BPLinkImg3", prop3: "FHP:BigPromoClick", prop19: "FHP:BigPromoImg:3" },
  { id: "BPLinkImg4", prop3: "FHP:BigPromoClick", prop19: "FHP:BigPromoImg:4" },
  { id: "BPLinkText1", prop3: "FHP:BigPromoClick", prop19: "FHP:BigPromoLink:1" },
  { id: "BPLinkText2", prop3: "FHP:BigPromoClick", prop19: "FHP:BigPromoLink:2" },
  { id: "BPLinkText3", prop3: "FHP:BigPromoClick", prop19: "FHP:BigPromoLink:3" },
  { id: "BPLinkText4", prop3: "FHP:BigPromoClick", prop19: "FHP:BigPromoLink:4" },
    
  { id: "LPLinkImg1", prop3: "FHP:LittlePromoClick", prop19: "FHP:LittlePromoImg:1" },
  { id: "LPLinkImg2", prop3: "FHP:LittlePromoClick", prop19: "FHP:LittlePromoImg:2" },
  { id: "LPLinkText1", prop3: "FHP:LittlePromoClick", prop19: "FHP:LittlePromoLink:1" },
  { id: "LPLinkText2", prop3: "FHP:LittlePromoClick", prop19: "FHP:LittlePromoLink:2" },
    
  { id: "TTNav1", prop3: "FHP:Top10Click", prop19: "FHP:Top10Tab:1" },
  { id: "TTNav2", prop3: "FHP:Top10Click", prop19: "FHP:Top10Tab:2" },
  { id: "TTNav3", prop3: "FHP:Top10Click", prop19: "FHP:Top10Tab:3" },
  { id: "TTNav4", prop3: "FHP:Top10Click", prop19: "FHP:Top10Tab:4" },
    
  { id: "TTLink101", prop3: "FHP:Top10Click", prop19: "FHP:Top10Recipe:", fParam: "fURL2Rec(document.getElementById('TTLink101').href)" },
  { id: "TTLink102", prop3: "FHP:Top10Click", prop19: "FHP:Top10Recipe:", fParam: "fURL2Rec(document.getElementById('TTLink102').href)" },
  { id: "TTLink103", prop3: "FHP:Top10Click", prop19: "FHP:Top10Recipe:", fParam: "fURL2Rec(document.getElementById('TTLink103').href)" },
  { id: "TTLink104", prop3: "FHP:Top10Click", prop19: "FHP:Top10Recipe:", fParam: "fURL2Rec(document.getElementById('TTLink104').href)" },
  { id: "TTLink105", prop3: "FHP:Top10Click", prop19: "FHP:Top10Recipe:", fParam: "fURL2Rec(document.getElementById('TTLink105').href)" },
  { id: "TTLink106", prop3: "FHP:Top10Click", prop19: "FHP:Top10Recipe:", fParam: "fURL2Rec(document.getElementById('TTLink106').href)" },
  { id: "TTLink107", prop3: "FHP:Top10Click", prop19: "FHP:Top10Recipe:", fParam: "fURL2Rec(document.getElementById('TTLink107').href)" },
  { id: "TTLink108", prop3: "FHP:Top10Click", prop19: "FHP:Top10Recipe:", fParam: "fURL2Rec(document.getElementById('TTLink108').href)" },
  { id: "TTLink109", prop3: "FHP:Top10Click", prop19: "FHP:Top10Recipe:", fParam: "fURL2Rec(document.getElementById('TTLink109').href)" },
  { id: "TTLink110", prop3: "FHP:Top10Click", prop19: "FHP:Top10Recipe:", fParam: "fURL2Rec(document.getElementById('TTLink110').href)" },
    
  { id: "TTLink201", prop3: "FHP:Top10Click", prop19: "FHP:Top10Recipe:", fParam: "fURL2Rec(document.getElementById('TTLink201').href)" },
  { id: "TTLink202", prop3: "FHP:Top10Click", prop19: "FHP:Top10Recipe:", fParam: "fURL2Rec(document.getElementById('TTLink202').href)" },
  { id: "TTLink203", prop3: "FHP:Top10Click", prop19: "FHP:Top10Recipe:", fParam: "fURL2Rec(document.getElementById('TTLink203').href)" },
  { id: "TTLink204", prop3: "FHP:Top10Click", prop19: "FHP:Top10Recipe:", fParam: "fURL2Rec(document.getElementById('TTLink204').href)" },
  { id: "TTLink205", prop3: "FHP:Top10Click", prop19: "FHP:Top10Recipe:", fParam: "fURL2Rec(document.getElementById('TTLink205').href)" },
  { id: "TTLink206", prop3: "FHP:Top10Click", prop19: "FHP:Top10Recipe:", fParam: "fURL2Rec(document.getElementById('TTLink206').href)" },
  { id: "TTLink207", prop3: "FHP:Top10Click", prop19: "FHP:Top10Recipe:", fParam: "fURL2Rec(document.getElementById('TTLink207').href)" },
  { id: "TTLink208", prop3: "FHP:Top10Click", prop19: "FHP:Top10Recipe:", fParam: "fURL2Rec(document.getElementById('TTLink208').href)" },
  { id: "TTLink209", prop3: "FHP:Top10Click", prop19: "FHP:Top10Recipe:", fParam: "fURL2Rec(document.getElementById('TTLink209').href)" },
  { id: "TTLink210", prop3: "FHP:Top10Click", prop19: "FHP:Top10Recipe:", fParam: "fURL2Rec(document.getElementById('TTLink210').href)" },
    
  { id: "TTLink301", prop3: "FHP:Top10Click", prop19: "FHP:Top10Recipe:", fParam: "fURL2Rec(document.getElementById('TTLink301').href)" },
  { id: "TTLink302", prop3: "FHP:Top10Click", prop19: "FHP:Top10Recipe:", fParam: "fURL2Rec(document.getElementById('TTLink302').href)" },
  { id: "TTLink303", prop3: "FHP:Top10Click", prop19: "FHP:Top10Recipe:", fParam: "fURL2Rec(document.getElementById('TTLink303').href)" },
  { id: "TTLink304", prop3: "FHP:Top10Click", prop19: "FHP:Top10Recipe:", fParam: "fURL2Rec(document.getElementById('TTLink304').href)" },
  { id: "TTLink305", prop3: "FHP:Top10Click", prop19: "FHP:Top10Recipe:", fParam: "fURL2Rec(document.getElementById('TTLink305').href)" },
  { id: "TTLink306", prop3: "FHP:Top10Click", prop19: "FHP:Top10Recipe:", fParam: "fURL2Rec(document.getElementById('TTLink306').href)" },
  { id: "TTLink307", prop3: "FHP:Top10Click", prop19: "FHP:Top10Recipe:", fParam: "fURL2Rec(document.getElementById('TTLink307').href)" },
  { id: "TTLink308", prop3: "FHP:Top10Click", prop19: "FHP:Top10Recipe:", fParam: "fURL2Rec(document.getElementById('TTLink308').href)" },
  { id: "TTLink309", prop3: "FHP:Top10Click", prop19: "FHP:Top10Recipe:", fParam: "fURL2Rec(document.getElementById('TTLink309').href)" },
  { id: "TTLink310", prop3: "FHP:Top10Click", prop19: "FHP:Top10Recipe:", fParam: "fURL2Rec(document.getElementById('TTLink310').href)" },

  { id: "TTLink401", prop3: "FHP:Top10Click", prop19: "FHP:Top10Recipe:", fParam: "fURL2Rec(document.getElementById('TTLink401').href)" },
  { id: "TTLink402", prop3: "FHP:Top10Click", prop19: "FHP:Top10Recipe:", fParam: "fURL2Rec(document.getElementById('TTLink402').href)" },
  { id: "TTLink403", prop3: "FHP:Top10Click", prop19: "FHP:Top10Recipe:", fParam: "fURL2Rec(document.getElementById('TTLink403').href)" },
  { id: "TTLink404", prop3: "FHP:Top10Click", prop19: "FHP:Top10Recipe:", fParam: "fURL2Rec(document.getElementById('TTLink404').href)" },
  { id: "TTLink405", prop3: "FHP:Top10Click", prop19: "FHP:Top10Recipe:", fParam: "fURL2Rec(document.getElementById('TTLink405').href)" },
  { id: "TTLink406", prop3: "FHP:Top10Click", prop19: "FHP:Top10Recipe:", fParam: "fURL2Rec(document.getElementById('TTLink406').href)" },
  { id: "TTLink407", prop3: "FHP:Top10Click", prop19: "FHP:Top10Recipe:", fParam: "fURL2Rec(document.getElementById('TTLink407').href)" },
  { id: "TTLink408", prop3: "FHP:Top10Click", prop19: "FHP:Top10Recipe:", fParam: "fURL2Rec(document.getElementById('TTLink408').href)" },
  { id: "TTLink409", prop3: "FHP:Top10Click", prop19: "FHP:Top10Recipe:", fParam: "fURL2Rec(document.getElementById('TTLink409').href)" },
  { id: "TTLink410", prop3: "FHP:Top10Click", prop19: "FHP:Top10Recipe:", fParam: "fURL2Rec(document.getElementById('TTLink410').href)" },
  
  { id: "IFNLeft", prop3: "FHP:InsideNavClick", prop19: "FHP:InsideNav:1" },
  { id: "IFNRight", prop3: "FHP:InsideNavClick", prop19: "FHP:InsideNav:2" },
  { id: "IFNPg1", prop3: "FHP:InsideNavClick", prop19: "FHP:InsideNav:1" },
  { id: "IFNPg2", prop3: "FHP:InsideNavClick", prop19: "FHP:InsideNav:2" },
  
  { id: "IFNLink1", prop3: "FHP:InsideClick", prop19: "FHP:InsideLink:1" },
  { id: "IFNLink2", prop3: "FHP:InsideClick", prop19: "FHP:InsideLink:2" },
  { id: "IFNLink3", prop3: "FHP:InsideClick", prop19: "FHP:InsideLink:3" },
  { id: "IFNLink4", prop3: "FHP:InsideClick", prop19: "FHP:InsideLink:4" },
  { id: "IFNLink5", prop3: "FHP:InsideClick", prop19: "FHP:InsideLink:5" },
  { id: "IFNLink6", prop3: "FHP:InsideClick", prop19: "FHP:InsideLink:6" },

  { id: "TRCTitle", prop3: "FHP:RecCollectClick", prop19: "FHP:RecTitle:", fParam: "document.getElementById('TRCTitle').innerHTML" },
  { id: "TRCRec01", prop3: "FHP:RecCollectClick", prop19: "FHP:RecRecipe:", fParam: "fURL2Rec(document.getElementById('TRCRec01').href)" },
  { id: "TRCRec02", prop3: "FHP:RecCollectClick", prop19: "FHP:RecRecipe:", fParam: "fURL2Rec(document.getElementById('TRCRec02').href)" },
  { id: "TRCRec03", prop3: "FHP:RecCollectClick", prop19: "FHP:RecRecipe:", fParam: "fURL2Rec(document.getElementById('TRCRec03').href)" },
  { id: "TRCRec04", prop3: "FHP:RecCollectClick", prop19: "FHP:RecRecipe:", fParam: "fURL2Rec(document.getElementById('TRCRec04').href)" },
  { id: "TRCMore", prop3: "FHP:RecCollectClick", prop19: "FHP:RecMore" },

  { id: "WOTVa2z", prop3: "FHP:TopClick", prop19: "FHP:TopShowsAZ" },
  { id: "WOTVfull", prop3: "FHP:TopClick", prop19: "FHP:TopFullSchedule" },

  { id: "FOTVa2z", prop3: "FHP:OnTvClick", prop19: "FHP:OnTvShowsAZ" },
  { id: "FOTVfull", prop3: "FHP:OnTvClick", prop19: "FHP:OnTvFullSchedule" },
  { id: "imputfindtv", prop3: "FHP:OnTvClick", prop19: "FHP:OnTvSearch" }
];
*/

 /*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *
  * extract recipe number from URL and return
  * e.g., http://www.foodnetwork.com/food/recipes/recipe/0,2257,FOOD_9936_35041,00.html => 35041
  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */  
function fURL2Rec(xhref)
{
  return(/.*_(\d+),\d\d.html$/.exec(xhref)[1]);
}

 /*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *
  * event handler to count clicks
  * looks up parameters according to ID, calls logging function
  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */  
function fCountClick(eClick)
{
 
  var elt = Event.findElement(eClick, 'a');
// if no hyperlink, look for input tag (form submit case)
  if (typeof elt.tagName == "undefined") 
  {
    elt = Event.findElement(eClick, 'input');
  }
 // look up id in JSON array:
  for (var i = 0; i < OmniLinks.length; i++)
  {
    if (OmniLinks[i].id == elt.id)
    {
      var myprop19 = OmniLinks[i].prop19;
     // if additional, dynamic data in prop19, get and append it: 
      if (OmniLinks[i].fParam != undefined) 
      {
        myprop19 += eval(OmniLinks[i].fParam);   
      }
     // call click tracking function:
      trackHomepageClick(OmniLinks[i].prop3, myprop19);
     // DEBUGGING/ DIAGNOSTIC, use instead:  TEST VERSION
//      xtrackHomepageClick(OmniLinks[i].prop3, myprop19);
      break;
    }
  }
}

 /*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *
  * set ID's for dynamically-generated "Inside Food Network" content
  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */  
function prepIFNID()
{
 // note: assignment of IDs to control links is simplified for 2 pg case!
  document.getElementById("sf1").getElementsByClassName("sf_img_linkL0")[0].id = "IFNLeft";
  document.getElementById("sf1").getElementsByClassName("sf_pg_link0")[0].id = "IFNPg1";
  document.getElementById("sf1").getElementsByClassName("sf_img_linkR1")[0].id = "IFNRight";
  document.getElementById("sf1").getElementsByClassName("sf_pg_link1")[0].id = "IFNPg2";
 // assign IDs to scrolling links (s/b 6)
  var sfItems = document.getElementById("sf1").getElementsByClassName("sf_item");
  for (var i = 0; i < sfItems.length; i++)
  {
    sfItems[i].id = "IFNLink" + (i+1);
  }
  return;
}


 /*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *
  * assign event handler function to monitored links
  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */  
function prepOmniLinks()
{
 // assign IDs to dynamic content:
  if (document.getElementById("sf1")) prepIFNID();
//  assign event handlers to each monitored element: 
  for (var i = 0; i < OmniLinks.length; i++)
  {
   if ($(OmniLinks[i].id) != null)   
     Event.observe(OmniLinks[i].id, 'click', fCountClick.bindAsEventListener(this)); 
  }
  return;
}

// now called from one place with other window-load events
//  to ensure sequencing

 /*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *
  * set up event handling for Omniture click tracking upon window load:
  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */  
//Event.observe(window, 'load', function()
//{
 // prepare click counting event observers for Omniture tracking:
// alert("prepOmniLinks");
//  prepOmniLinks();
//});

 /*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *
  * for local testing/debugging - change call in fCountClick() (prepend/remove 'x')  
  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */  
function xtrackHomepageClick(aLinkID, bLinkID)
{
  s_linkTrackVars='prop3,prop19';
  s_prop3=aLinkID;
  s_prop19=bLinkID;
  s_linkType='o';
  s_linkName='FHP:Click';
//	s_lnk=s_co(this);
//	s_gs(s_account);
alert( "prop3: " + s_prop3 + "\n" + "prop19: " + s_prop19 + "\n");
}


