Page 1 of 1

Mad Mimi Integration problems

Posted: Thu Apr 11, 2013 8:05 pm
by calastudio
Has anyone successfully integrated with Mad Mimi?

It seems that the variables (name and email address) are not being sent (when i look at my Mad Mimi subscribers the email address I am testing is not in the list).

Here's where the popup form is displayed - http://www.calastudio.com/video-de-bodas/

Here is the form Mad Mimi supplies

Code: Select all

<form action="https://madmimi.com/signups/subscribe/77930" method="post" id="mad_mimi_signup_form" target="_blank"> 
  <fieldset> 
   <div class="mimi_field text email required"> 
    <label for="signup_email">Email</label> 
    <input id="[B]signup_email[/B]" name="signup[email]" type="text" placeholder="[email protected]" data-invalid-message="This field is invalid" class="required"> 
    <div class="mimi_field_feedback"></div><span class="mimi_funk"></span> 
   </div> 
   <div class="mimi_field text required"> 
    <label for="signup_name" id="wf_label">Name</label> 
    <input id="[B]signup_name[/B]" name="signup[name]" data-required-message="This field is required" type="text" class="required"> 
    <div class="mimi_field_feedback"></div><span class="mimi_funk"></span> 
   </div> 
   <div class="mimi_field action"> 
    <input id="webform_submit_button" value="Inscribirse!" type="submit" class="submit" data-default-text="Inscribirse!" data-submitting-text="Sending…" data-invalid-text="↑ You forgot some required fields"> 
   </div> 
  </fieldset> 
 </form> 
<script type="text/javascript">
(function() {
  var form = document.getElementById("mad_mimi_signup_form"),
      submit = document.getElementById("webform_submit_button"),
      email = /.+@.+\..+/;
      
  form.onsubmit = function(event) {
    var isValid = validate();
    if(!isValid) {
      for(var i = 0; i < form.elements.length; ++i) {
        var input = form.elements[i];
        if(input.className.indexOf("required") >= 0) {
          input.onchange = validate;
        }
      }
      return false;
    }
    if(form.getAttribute("target") != "_blank") {
      form.className = "mimi_submitting";
      submit.value = submit.getAttribute("data-submitting-text");    
  		submit.disabled = true;
  		submit.className = "disabled";
    }

    setTimeout(function() {
      for(var i = 0; i < form.getElementsByTagName("input").length; ++i) {
        var input = form.getElementsByTagName("input")[i];
        if(input.getAttribute("type") == "text") {
          input.value = "";
        }
        if(input.id == "signup_email") {
          input.placeholder = "[email protected]";
        } else {
          input.placeholder = "";
        }
      }
    }, 3000);
  };
  
  function validate() {
    var isValid = true;
    
    for(var i = 0; i < form.elements.length; ++i) {
      var input = form.elements[i],
          allDivs = input.parentNode.getElementsByTagName("div");

      if(input.className.indexOf("required") >= 0) {
        if(input.id == "signup_email") {
          if(!email.test(input.value)) {
            emailErrorMessage(input, allDivs);
            isValid = false;
          } else {
            removeErrorMessage(input, allDivs);
          }
        } else {
          if((input.type == "checkbox" && !input.checked) || input.value == "" || input.value == "-1") {
            fieldErrorMessage(input, allDivs);
            isValid = false;
          } else {
            removeErrorMessage(input, allDivs);
          }
        }
      }
    }
    
    form.className = isValid ? "" : "mimi_invalid";
    submit.value = isValid ? submit.getAttribute("data-default-text") : submit.getAttribute("data-invalid-text");
		submit.disabled = !isValid;
		submit.className = isValid ? "submit" : "disabled";
    
    return isValid;
  }

  function emailErrorMessage(input, allDivs) {
    if(input.getAttribute("data-webform-type") == "iframe") {
      input.className = "required invalid";
      input.placeholder = input.getAttribute("data-required-message") || "This field is required";
    } else {
      allDivs[0].innerHTML = input.getAttribute("data-invalid-message") || "This field is invalid";
    }
  }

  function fieldErrorMessage(input, allDivs) {
    if(input.getAttribute("data-webform-type") == "iframe") {
      input.className = "required invalid";
      input.placeholder = input.getAttribute("data-required-message") || "This field is required";
    } else {
      for(var i = 0; i < allDivs.length; ++i) {
        var element = allDivs[i];
        if(element.className.indexOf("mimi_field_feedback") >= 0) {
          return element.innerHTML = input.getAttribute("data-required-message") || "This field is required";
        }
      }
    }
  }

  function removeErrorMessage(input, allDivs) {
    if(input.getAttribute("data-webform-type") == "iframe") {
      input.className = "required";
    }

    for(var i = 0; i < allDivs.length; ++i) {
      var element = allDivs[i];
      if(element.className.indexOf("mimi_field_feedback") >= 0) {
        return element.innerHTML = "";
      }
    }
  }
})();
</script>