msFormActions = Class.create();
msFormActions.prototype =
{
    initialize: function () { },

    //sets the state of the object
    setActionState: function(state_value) 
    {
      if($('action_state')) {
        $('action_state').value = state_value;
      }
    },
    
    //submits the main form
    doSubmit: function(event, params) 
    {
    	if(params && params.state) {
    	  this.setActionState(params.state);
    	}

    	buttons = msCMSObjects.getAll();
    	for ( i in buttons) {
    	  if (typeof(buttons[i].disable) == 'function') {
    	    buttons[i].disable();
    	  }
    	}
      
    	
      if(typeof validateForm == 'function') {
        if(validateForm(event)) {
          $('form').fire('form:submit');
          $('form').submit();
        }
      }
      else {
    	$('form').fire('form:submit');
    	$('form').submit();
      }
    },
    
    doDraftSubmit: function(event) 
    {
      $('form').action = form_action;
      this.doSubmit();
    },
    
    doDraftSPSubmit: function(event) 
    {
      this.setActionState('publish');
      $('form').action = form_action + 'AndPublish';
      
      this.doSubmit();
    },
    
    doDraftSubmitNew: function(event) 
    {
      this.setActionState('draft');
      this.doSubmit();
    },
    
    doDraftSPSubmitNew: function(event) 
    {
      this.setActionState('draft');
      
      new_el = new Element('input', { 'name': 'isNewCreated', 'type': 'hidden', 'value': isNew });
      $('form').appendChild(new_el);
      
      this.doSubmit();
    },
    
    updateDraftPublish: function(event, id) 
    {
      new Ajax.Updater('publish-state-' + id, window.location.href + '/listPublish', {
        parameters: { 
          id: id,
          reload: true
        },
        onSuccess: function() {
          ListObj.Refresh();
        }
      });
    },
    
    updateVisibility: function(event, id) 
    {
      new Ajax.Updater('visible-state-' + id, window.location.href + '/listVisible', {
        parameters: {
          id: id,
          reload: true
        },
        onSuccess: function() {
          ListObj.Refresh();
        }
      });
    },
    
    deleteLanguage: function(event) 
    {
      deleteCurrentLocalisation();
    },
    
    deleteObject: function(event, params) 
    {
      if (confirm(translate('Weet je zeker dat je dit item wilt verwijderen?'))) {
        window.location.href = params[0] + '/id/' + params[1];
      }
    },
    
    preview: function(event) {
      
      values = {};
      
      var all = Form.getElements($('form'));
  
      for (i = 0; i < all.length; i++) {
      	if (all[i].type != 'file') {
          
      	  isTiny = false;
          
          if(typeof(tinyMCE.get(all[i].id)) != 'undefined') {
            isTiny = true;
          }
          
          if (isTiny) {
            values[all[i].id] = tinyMCE.get(all[i].id).getContent();
          }
          else {
            values[all[i].id] = all[i].value;
          }
      	}
      }
      
      // create a preview form
      var form = document.createElement('form');

      form.action = '/index.php/page/preview';
      form.method = 'post';
      form.target = '_blank';
      
      var vals = document.createElement('input');
      vals.setAttribute('name', 'values');
      vals.setAttribute('value', Object.toJSON(values));
      
      form.appendChild(vals);
      
      document.body.appendChild(form);
      form.submit();
      document.body.removeChild(form) ;

    }
}



