function toggleOffer(options) {
  var container = options['container']
  var performClick = options['performClick']
  var stepType = options['stepType']

  var checkbox = container.find('.body .tell-me-more input:checkbox')
  var domCheckbox = checkbox[0]
  var isChecked = domCheckbox.checked
  var tellMeMore = container.find('.tell-me-more')
  var fullOfferContainer = container.find('.body .expandable-container')

  if (performClick) {
    domCheckbox.checked = !domCheckbox.checked
    isChecked = !isChecked
  }

  var tokens = container.attr('id').split('-')
  var offerId = tokens[tokens.length-1]

  if (isChecked) {
    if (container.hasClass('popup_offer')) {
      Survey.selectPopup(offerId);
    }

    if (stepType == 'StepLadder' && !container.hasClass('popup_offer')) {
      if (!fullOfferContainer.is(':visible')) {
        if (performClick) {
          fullOfferContainer.slideDown()
        } else {
          fullOfferContainer.show()
        }
      }
    }
    if (container.hasClass('outline')) {
      container.removeClass('outline').addClass('shaded')
    }
    tellMeMore.addClass('selected')

  } else {
    if (container.hasClass('popup_offer')) {
      Survey.burninatePopup(offerId);
    }
    if (stepType == 'StepLadder' && !container.hasClass('popup_offer') && fullOfferContainer.is(':visible')) {
      fullOfferContainer.slideUp()
    }
    if (container.hasClass('shaded')) {
      container.removeClass('shaded').addClass('outline')
    }
    tellMeMore.removeClass('selected')
  }
}

$(document).ready(function(){
  $().busy("defaults", { img:'/surveys/spinner.gif', position:'right', offset:-22, hide:false });
  (new Image(25,25)).src="/surveys/spinner.gif";

  // // Dynamic triggers
  $('input[type="radio"], input[type="checkbox"]:not([class~="acceptance-question"]), select').bind('change', function(ev){
    var values = $('input:checked:not([class~="acceptance-question"]), option:selected').map(function(){ if (this.value == ""){ return; }else{ return this.value; } });
    var elements = $('input[id$="is-visible"]').map(function(){ return (/\d+/.exec(this.id))+':'+this.value; });

    ah.send({
      ruler_action: 'trigger',
      visitor_id: $.cookie('_vid') || '-',
      elementVisibility: elements.toArray(),
      values: values.toArray()
    });
  });

  $.each($('input[default]'), function(i, htmlInput){
    var input = $(htmlInput)
    var def = input.attr('default')

    if (input.val() == "" && def != "") {
      input
        .val(def)
        .addClass('default')
    }
  })

  $('input[default]')
    .focus(function(){
      var input = $(this);
      var v = input.val();

      input.removeClass('default')

      var default_val = input.attr('default');
      var current_val = input.val();

      if ( (default_val == current_val) || (current_val == '') ) {
        input.val('')
      }


    }).blur(function(){
      var input = $(this)
      if (input.val() == '') {
        input
          .addClass('default')
          .val(input.attr('default'))
      }
  })


  /////////////////////////////////////////////////////////
  // SURVEY FORM
  $('#survey-form').submit(function(){return Survey.validateForm()})
  $('#survey-form .button-skip').click(function(){return Survey.skipForm()})

  $('.element-wrapper input, .element-wrapper select').focus(function(){
    $(this)
      .addClass('field-being-fixed')
      .removeClass('field-with-errors')
      .parents('.element-wrapper:eq(0)').removeClass('error-wrapper')
  });

  $('.element-wrapper input.check_box,input.radio_button,input.checkbox,input.radio').change(function(){
    $(this).parents('.element-wrapper:eq(0)').removeClass('error-wrapper')
  })


  /////////////////////////////////////////////////////////
  // Step Ladder
  $('#step-ladder .hot-area')
    .mouseover(function() { $(this).addClass('shaded').removeClass('outline') })
    .mouseout(function() { $(this).removeClass('shaded').addClass('outline') })
    .each(function() { toggleOffer({container: $(this), performClick: false, stepType: 'StepLadder'}) } )
    .click(function() { toggleOffer({container: $(this), performClick: true, stepType: 'StepLadder'}) } )

  $('.expandable-container').click(function(event){
    event.stopPropagation()
  })


  /////////////////////////////////////////////////////////
  // Offer Selection
  $('#offer-selection .hot-area')
    .mouseover(function() { $(this).addClass('shaded').removeClass('outline') })
    .mouseout(function() { $(this).removeClass('shaded').addClass('outline') })
    .each(function() { toggleOffer({container: $(this), performClick: false, stepType: 'OfferSelection'}) } )
    .click(function() { toggleOffer({container: $(this), performClick: true, stepType: 'OfferSelection'}) } )

})

