var TvForm = $.klass({
  
  initialize: function(link, options)
    {
    var obj = this;
    
    this.options = $.extend({
      check: true
      }, options);
    
    this.link = $(link);
    this.link.fancybox({
      transitionIn:	  'elastic',
      transitionOut:	'elastic',
      scrolling:      'no',
      hideOnOverlayClick: false,
      autoScale:      false,
      overlayColor:   "#00468C",
      onComplete: function(){
        Nav.stop_loading();
        obj.initialize_form();
        }
      });
    },
  
  initialize_form: function()
    {
    $("#fancybox-inner div.checkbox").disableSelection();
    $("#fancybox-inner form").bind("submit", this, function(e){
      e.data.submit.apply(e.data, [e]);
      });
    },
  
  submit: function(e)
    {
    e.preventDefault();
    
    var form = $(e.target);
    var data = form.serialize();
    var obj = this;
    
    form.addClass("loading");
    
    $.ajax({
      url: form.attr("action"),
      type: "post",
      data: data,
      success: function(response)
        {
        $("#fancybox-inner").html(response.html);
        $.fancybox.resize();
        obj.initialize_form();
        (obj.options.afterRefresh || function(){}).apply(obj, [response, $("#fancybox-inner")]);
        if(obj.options.check !== false) Nav.check(response);
        }
      });
    }
    
  });
