dojo.addOnLoad(function(){
  emailSubscribe.init();
});

var emailSubscribe = {
  
  init: function ( formId ) {
    this.dialogObj = dojo.byId('emailSubscribeWrapper');
    this.formObj = dojo.byId('emailSubscribeForm');
    dojo.event.connect(this.formObj,'onsubmit',this,'submitEmailSubscribeForm');
  },
  
  submitEmailSubscribeForm: function ( e ) {
    e.preventDefault();
  	this.showPanel('emailSubscribe_working');
    dojo.io.bind({
      url: "ajax/subscribe.php",
      method: 'post',
      formNode: this.formObj,
      load: dojo.lang.hitch(this,'_onFinishSubmit'),
      error: dojo.lang.hitch(this,'setError'),
      timeoutSeconds: 20,
      timeout: dojo.lang.hitch(this,'setError')
    });
  },
  
	_onFinishSubmit: function ( t, data, e ) {
		if(data.length)
			return this.setError(data);
		this.showPanel('emailSubscribe_done');
	},
  
	showDialog: function ( ) {
		dojo.html.show(this.dialogObj);
	},
  
	hideDialog: function ( ) {
		dojo.html.hide(this.dialogObj);
		this.formObj.reset();
		this.showPanel('emailSubscribe_step1');
	},
  
  setError: function ( msg ) {
  	dojo.byId('emailSubscribe_error').getElementsByTagName('span')[0].innerHTML = msg;
	this.showPanel('emailSubscribe_error');
  },
  
  showPanel: function ( panel ) {
  	dojo.html.hide('emailSubscribe_step1');
  	dojo.html.hide('emailSubscribe_working');
  	dojo.html.hide('emailSubscribe_error');
  	dojo.html.hide('emailSubscribe_done');
  	dojo.html.show(panel);
  }
  
};