﻿// --------------------------------------------------------------------------------------------------------------------
// <copyright file="WebMetroControl.js" company="Wellpoint">
//   Copyright (c) Wellpoint Inc.  All rights reserved.
// </copyright>
// --------------------------------------------------------------------------------------------------------------------


// Keyword performance indicators (global variable)
var KPI = {
  StartBuyCycle: 0,
  Quote: 1,
  Lead: 2,
  Purchase: 3
};

(function($) {

  var dsmmPreviousOrderNumber = null;

  /**************************************************
  Sets the values of the WebMetro variables and then
  calls a method to store the information at WebMetro
  ***************************************************/
  $.trackWebMetro = function(keyword, product, revenue) {
    // Only execute the tracker method if it has successfully loaded from the WebMetro server.
    if (typeof wm_DSMM_TrackConversion != 'undefined') {
      var dsmmPlatform = $("input[id*='hdnWebMetroPlatform']").val();
      var dsmmAgeGroup = $("input[id*='hdnWebMetroAgeGroup']").val();
      var dsmmProductLine = product;
      var dsmmConversionStep = getConversionStepName(keyword);
      var dsmmBrand = $("input[id*='hdnWebMetroSite']").val();
      var dsmmState = $("input[id*='hdnWebMetroState']").val();
      var dsmmTransactionType = 0;
      var dsmmOrderNumber = dsmmPlatform + '-' + dsmmAgeGroup + '-' + dsmmProductLine + '-' + dsmmConversionStep + '-' + dsmmBrand + '-' + dsmmState;

      switch (keyword) {
        case KPI.StartBuyCycle:
        case KPI.Quote:
        case KPI.Lead:
          revenue = 0;
          transactionType = 1;
          break;
        case KPI.Purchase:
          transactionType = 2;
          break;
        default:
          return false;
          break;
      }

      // Disallow duplicate requests from being sent to WebMetro
      if (dsmmOrderNumber !== dsmmPreviousOrderNumber) {
        wm_DSMM_TrackConversion(dsmmOrderNumber, revenue, dsmmTransactionType);
      }
      dsmmPreviousOrderNumber = dsmmOrderNumber;
    }
    return false;
  };

  /**************************************************
  Report the StartBuyCycle, but only once per session
  ***************************************************/
  $.trackWebMetroStartBuyCycle = function(product) {
    if ($.cookie('WebMetroStartBuyCycleReported') != "true") {
      $.trackWebMetro(KPI.StartBuyCycle, product);
      $.cookie('WebMetroStartBuyCycleReported', "true");
    }
  };

  /*****************************************
  Returns the equivalent KPI enumerator name
  ******************************************/
  function getConversionStepName(keyword) {
    var i = 0;
    for (var keywordName in KPI) {
      if (i == keyword) {
        return keywordName;
      }
      i++;
    }
    return false;
  }

})(jQuery);

