 var EmailForm = {
    
    initEmailForm: function(ev){
      this.emailSlideDown(ev);
      if (this.emailForm == undefined) {
        var form = $$("#email-form form")[0];
        this.emailForm = new meltmedia.SmartForm(form, "ajax",{
          onSuccess: this.onEmailSuccess.bind(this),
          onFailure: this.onEmailFailure,
          onInvalid: this.onInvalid
        });
         $("send-email").observe('click',this.emailForm.submit.bind(this.emailForm));
      }
    
    },
    
    onEmailFailure: function(){
       this.emailResultPopUp("Email Failure","Failed to send the email. Please try again later.");
    },
    
    onEmailSuccess: function(){
      this.emailResultPopUp("Email Sent","You successfully sent an email");
      Effect.SlideUp('email-form',{ duration: 0.5 }); 
      this.emailForm.form.reset();
      $$("#email-form .invalid").invoke("removeClassName","invalid");
    },
    
    onInvalid: function(items){
      items.each(function(item){
        var parentEl = item.value.els[0].dom.parentNode;
        if (!item.value.isValid) {
          parentEl.addClassName('invalid');
        } else {
          parentEl.removeClassName('invalid');
        }
      });
    },
    
    emailSlideDown: function(ev){
      ev.stop();
      Effect.SlideDown('email-form',{ duration: .5, afterFinish: this.onEmailSlideDown});
    },
    
    emailSlideUp: function(ev){
      ev.stop();
      Effect.SlideUp('email-form',{ duration: 0.5 }); 
      $$("#email-form .invalid").invoke("removeClassName","invalid");
      return false;
    },
    
    emailResultPopUp: function(headText, bodyText){
      
      var text = new Element("p").update(bodyText);
      
      var config = {
        modal: true,
        center: true,
        positionFixed: true,
        width: 200,
        containerCls: "dialog-container-small",
        cls: "dialog-bd",
        header: {
          cls: "dialog-hd",
          text: headText
        },
        footer:{
          cls: "dialog-ft-small",
          btns: {
            cls: "btns-cls",
            items: [{
              label: "OK",
              events: [{
                type: "click",
                func: function(ev){dialog.destroy();}
              }]
            }]
          } 
        }
       
      };
      var dialog = new meltmedia.Dialog(text,config);
      dialog.init();
    },
    
    onEmailSlideDown: function(){}
    
  }
