TablePrinter = function()
{
  this.check_file_type = function(obj)
  {
    var types = $(obj).attr("accept_types");
    types = types.split("|");
    var file_name = $(obj).val();
    if (!in_array_nc(file_name.substr(file_name.lastIndexOf(".") + 1), types))
    {
      alert("Enkel de volgende bestandstypes worden geaccepteerd:\n\n*." + types.join("\n*."));
      $(obj).replaceWith($(obj).parent().html());
    }
  }
  this.submit = function(form_name, f_callback)
  {
    if (f_callback == "r") callback = function() { document.location.reload(); };
    else if (f_callback.indexOf && f_callback.indexOf("url=") === 0) callback = function() { document.location.href = f_callback.substr(4); };
    else callback = f_callback;
   
    var form = $("form[name=" + form_name + "]");
    
    $("iframe[name=" + form.attr("target") + "]").bind("load", function()
    {
      var doc = get_iframe_document($(this).attr("id"));
      var val = unescape(doc.body.innerHTML.replace(/[\n\r]+/ig, ""));
      $(this).unbind("load").attr("src", "about:blank");
      var json = $.parseJSON(val);
      if (!json.succes) 
      {
        $("form[name=" + form_name + "] td#error_msg div").html(json.msg).fadeIn(300);
        if ($("form[name=" + form_name + "] td#error_msg div").offset().top - get_scroll_top() < 0) // Buiten beeld
          $.scrollTo("form[name=" + form_name + "] td#error_msg div", 500); 
     
        return false;
      }
      if (typeof(callback) != "undefined") $.timeout(callback(json), 10);
    });
    dates_before_submit();
    form.trigger("submit");
  }
  this.change_expand_data = function(ID)
  {
    $(".table_expand_data").hide(300);
    if (ID)
    {
      ID = ID.replace(/([\[|\]])/g, "\\$1");
      $("#expand_data_" + ID).show(300);
    }
  }
}
var table_printer = new TablePrinter();
$(document).ready(function()
{
  $("input:file").wrap("<span />");
  
  $("table.table_printer").delegate("input[system=geenvoorkeur]", "change", function()
  {
    var name = $(this).attr("name").replace(/([\[|\]])/g, "\\$1");
    if ($(this).is(":checked"))
      $(this).parent().find("input[name=" + name + "]:not([system=geenvoorkeur])").attr("checked", false).trigger("change");
  });
  
  $("table.table_printer").delegate("input[system!=geenvoorkeur]", "change", function()
  {
    var name = $(this).attr("name").replace(/([\[|\]])/g, "\\$1");
    if ($(this).is(":checked"))
      $(this).parent().find("input[name=" + name + "][system=geenvoorkeur]").attr("checked", false).trigger("change");
  });
});
