// include authenticity token to ajax requests
$(document).ajaxSend(function(event, request, settings) {
  if (typeof(AUTH_TOKEN) == "undefined") return;
  
  settings.data = settings.data || "";
  settings.data += (settings.data ? "&" : "") + "authenticity_token=" + encodeURIComponent(AUTH_TOKEN);

});

// Remove leading hash from a string if it exists
$.removeHash = function(url) {
  if(url && url.charAt(0) == "#") {
    return url.substring(1, url.length);
  }
  return url;
};


var DialogBox = new function() {
  this.show = function(options) {
    id = options["id"];
    html = options["html"];
    handle_id = options["handle_id"];
    var link = $('#'+id);

    link.click(function(){
      $('.dialog-box').remove();
      //handle element
      handle = $(document.createElement('div'))
        .addClass('dialog-box');
      handle.appendTo(link.parent());

      //content element
      content = $(document.createElement('div'))
        .html(html)
        .addClass('content');
      arrow = $(document.createElement('div'))
        .addClass('right-arrow');
      content.appendTo(handle);
      arrow.appendTo(handle);
      return false;
    });
  }
}

jQuery.fn.smartArea = function (){
  
  return this.each(function() {
      if (!jQuery(this).is("textarea")) {
        return false;
      }
      jQuery(this).click( function(){
      jQuery.SA.resizeArea( this ); } )
      .keyup( function(){
      jQuery.SA.resizeArea( this ); } );
      return this;
  });
  
}

jQuery.SA = {
  resizeArea : function ( t ) {
    
    var lines = t.value.split('\n') || [];
    var newRows = lines.length;
    var oldRows = t.rows;
    for (var i = 0; i < lines.length; i++)
    { var line = lines[i]; if (line.length >= t.cols) newRows += Math.floor(line.length / t.cols);
    }
    if (newRows > t.rows) t.rows = newRows;
    if (newRows < t.rows) t.rows = Math.max(1, newRows);
  }
}

$(document).ready(function(){		
	$('.blankable').labelify({labelledClass: "label_highlight"});	

  $(".bubble-list .img").each(function(){
    if(this.id) {
      new ToolTip().show({
        tool_tip_id: "tooltip_" + this.id,
        link_id: this.id,
        arrow: "left",
        x: 110
      });
    }
  });

  var avatar_tooltip_counter = 0
  $("img.avatar").each(function(){
    avatar = $(this);
    avatar_tooltip = $(this).siblings("div.avatar_tooltip");
    if(avatar_tooltip.size() > 0) {
      avatar_tooltip.attr("id", "avatar_tooltip_" + avatar_tooltip_counter);
      avatar.attr("id", "avatar_for_tooltip_" + avatar_tooltip_counter);
      avatar_tooltip_counter += 1;
      new ToolTip().show({
        tool_tip_id: avatar_tooltip.attr("id"),
        link_id: this.id,
        arrow: "right",
        x: -160
      });
    }
  });
});

