
(function() {
  var delay = 100;
  var express_site = 'https://express.dolanautogroup.com';
  var vlp_link = 'Explore All Payment Options';
  var vdp_link = 'Explore All Payment Options';
  var vlp_link_optional = '';
  var vdp_link_optional = '';
  var vlp_used_link = 'Express Purchase';
  var vdp_used_link = 'Express Purchase';
  var vlp_used_link_optional = '';
  var vdp_used_link_optional = '';
  var vdpClasses = 'eprice pointer ui-button ddc-btn ddc-btn-primary btn btn-primary';
  var vlpClasses = 'pointer ui-button ddc-btn ddc-btn-primary btn btn-primary';
  var vdpStyles = 'margin-top: 10px';
  var vlpStyles = 'margin-top: 10px';
  var vlp_attrs = 'data-eprice="true"';
  var use_embedded_frame = true;
  var buttons_enabled = true;
  window.roadster = window.roadster || {};

  var tryCount = 0;
  var btnF = function() {

    if (!window.jQuery) {
      tryCount++;
      if (tryCount < 100) { window.setTimeout(btnF, ((tryCount < 10)?100:300)); }
      return;
    }

    if (window.roadster.eprice_haveRun) {return;}
    window.roadster.eprice_haveRun = true;

    var attachFrame = function(html, vin) {
      if (use_embedded_frame) {
        var buttons = jQuery(html).find('a');
        buttons.on('click', function(event) {
          if (window.roadster.showFrame) {
            window.roadster.showFrame(event.originalEvent, vin);
          }
        });
        window.roadster.vinToPreload = window.roadster.vinToPreload || vin;
      }
    };

    var html;


    var containerF = function(target, link_text) {
      var isUsed = false;
      // are we on an srp or vdp?
      var isSrp = jQuery('.vlp').length > 0;
      jQuery(target).each(function() {
        var isUsed = jQuery(this).attr('data-condition') == 'used';
        var vin = jQuery(this).attr('data-vin');
        vin = vin.replace(/vin\s*:\s*/i, '').trim();
        var url = express_site + (isUsed ? '/express/used/' : '/express/') + vin;
        var vclasses = isSrp ? vlpClasses : vdpClasses;
        var vstyles = isSrp ? vlpStyles : vdpStyles;
        html = '<a class="' + (vclasses + ' roadster-btn1') +'" style="' + vstyles + '" ' + ' href="' + url +' "data-roadster-button1="' + vin + '">' + link_text + '</a>';

        if (buttons_enabled) {
          var buttons = jQuery(html).appendTo(this);
          if (use_embedded_frame) {
            attachFrame(buttons, vin);
          }
        }
      });
    };

    var vlpF = function(vlpTarget, link_text, optional_link_text, isUsed) {
      jQuery(vlpTarget).each(function() {
        var vin = jQuery(this).attr('data-vin') || jQuery(this).closest('.hproduct').data('vin') || '';
        vin = vin.replace(/vin\s*:\s*/i, '').trim();
        var url = express_site + (isUsed ? '/express/used/' : '/express/') + vin;
        html = '<li><a class="' + vlpClasses +'" style="' + vlpStyles + '" ' + vlp_attrs + ' href="' + url +' "data-roadster-button1="' + vin + '">' + link_text + '</a></li>';
        if (optional_link_text) {
          html += '<li><a class="' + vlpClasses +'" style="' + vlpStyles + '" ' + vlp_attrs + ' href="' + url +' "data-roadster-button2="' + vin + '">' + optional_link_text + '</a></li>';
        }

        if (buttons_enabled) {
          var buttons = jQuery(html).appendTo(this);
          if (use_embedded_frame) {
            attachFrame(buttons, vin);
          }
        }
      });
    };


    var target = null;
    var hasContainer = false;
    if (jQuery('.tps-roadster-btn').length > 0) {
      target = '.tps-roadster-btn';
      hasContainer = true;
    }

    if (hasContainer) {
      // we only create one button on the page, and always use the link for the vdp
      containerF(target, vdp_link);
      if (vdp_link_optional && jQuery('.tps-roadster-buildmydeal-btn').length > 0) {
        target = '.tps-roadster-buildmydeal-btn';
        containerF(target, vdp_link_optional);
      }
    }
    else {
        target = vlp_used_link ? '.vlp .inventoryList li.inv-type-new ul.pricing' : '.vlp .inventoryList ul.pricing';

      vlpF(target, vlp_link, vlp_link_optional, false);

      if (vlp_used_link) {
        target = target || ('.vlp .inventoryList li.inv-type-used ul.pricing');
        vlpF(target, vlp_used_link, vlp_used_link_optional, true);
      }

      var vin2;
      target = vdp_used_link ? '.vdp .inventory-detail-pricing ul.pricing.inv-type-new' : '.vdp .inventory-detail-pricing ul.pricing';
      vin2 = jQuery('.vdp .page-bd input[name=vin]').val();
      if (!vin2) {
        vin2 = jQuery('.vdp .page-bd ul .vin span').text();
      }
      vin2 = vin2.replace(/vin\s*:\s*/i, '').trim();

      var vdpF = function(vdpTarget, link_text, optional_link_text, isUsed) {
        var url2 = express_site + (isUsed ? '/express/used/' : '/express/') + vin2;
        html = '<li><a class="' + vdpClasses +'" style="' + vdpStyles + '" href="' + url2 +'" data-roadster-button1="' + vin2 + '">' + link_text + '</a></li>';
        if (optional_link_text) {
          html += '<li><a class="' + vdpClasses +'" style="' + vdpStyles + '" href="' + url2 +'" data-roadster-button2="' + vin2 + '">' + optional_link_text + '</a></li>';
        }
        if (buttons_enabled) {
          var buttons = jQuery(html).appendTo(vdpTarget);
          if (use_embedded_frame) {
            attachFrame(buttons, vin2);
          }
        }
      };

      vdpF(target, vdp_link, vdp_link_optional, false);

      if (vdp_used_link) {
        target = target || ('.vdp .inventory-detail-pricing ul.pricing.inv-type-used');
        vdpF(target, vdp_used_link, vdp_used_link_optional, true);
      }
    }

  };

  window.setTimeout(btnF, delay);
}());

