
function remove_fields(link) {
  $(link).prev("input[type=hidden]").val("1");
  $(link).closest(".fields").hide();
  target_ajax_update();
}

function remove_nested_fields(link) {
  $(link).prev("input[type=hidden]").val("1");
  $(link).closest(".fields").hide();
}

function add_nested_fields(link, association, content) {
  var new_id = new Date().getTime();
  var regexp = new RegExp("new_" + association, "g")
  $(link).parent().before(content.replace(regexp, new_id));
}

function add_fields(link, association, content) {
  var new_id = new Date().getTime();
  var regexp = new RegExp("new_" + association, "g")
  $("#target").append(content.replace(regexp, new_id));
  $(".file_upload").change(function() {
  target_ajax_update();
});
}

function add_picture(url) {
  var format = $("form #format").val();
  if (format == '1') { // textile
     $("#body").insertAtCaret("!"+url+"!");
  } else { // markdown
    $("#body").insertAtCaret("![] ("+url+")");
  }
  send_ajax_update()
}

function add_file(name,url) {
  var format = $("form #format").val();
  if (format == '1') {  // textile
    $("#body").insertAtCaret("\""+name+"\":"+url);
  } else { // markdown
    $("#body").insertAtCaret("["+name+"]("+url+")");
  }
  send_ajax_update()
}

function submit_form() {
  return true;
   $("form").ajaxSubmit({target:"#target",replaceTarget:true });
}

jQuery.fn.extend({
insertAtCaret: function(myValue){
  return this.each(function(i) {
    if (document.selection) {
      this.focus();
      sel = document.selection.createRange();
      sel.text = myValue;
      this.focus();
    }
    else if (this.selectionStart || this.selectionStart == '0') {
      var startPos = this.selectionStart;
      var endPos = this.selectionEnd;
      var scrollTop = this.scrollTop;
      this.value = this.value.substring(0, startPos)+myValue+this.value.substring(endPos,this.value.length);
      this.focus();
      this.selectionStart = startPos + myValue.length;
      this.selectionEnd = startPos + myValue.length;
      this.scrollTop = scrollTop;
    } else {
      this.value += myValue;
      this.focus();
    }
  })
}
});
