/*
 * JavaScript interface to the SB network.
 * class SB.pm - manipualtion private messages
 *
 * Requirements: jQuery library 1.4.2 and above
 * Copyright (C) 2010 Tomas Hnilica.   All Rights Reserved.
 */
 

function newMessage(receiver) {
	var pm = new SB.pm(SBuser.uid);
	pm.newMessage(receiver);
}; 
 
/**
Interface to the PM
*/ 

SB.pm = function(thread) {
   this.thread = thread;
	 this.addPMControls();
	 this.addPMthreadControls();
};   


SB.pm.prototype.addPMControls = function() {
     var code = "<a href='#' onclick='SBpm.newMessage();return false;' class='fr'>nová zpráva</a>";
     $('#pm-toolbar').append(code);   

};

SB.pm.prototype.addPMthreadControls = function() {
     $('#pmthread-response').html(this.replyMsgForm());   
     $('.jq-button').button();
  	$('#pm-body').autoResize({
		    onResize : function() {
		        $(this).css({opacity:0.8});
		    },
		    animateCallback : function() {
		        $(this).css({opacity:1});
		    },
		    animateDuration : 100,
		    extraSpace : 30
		});
		
};

SB.pm.prototype.replyMessage = function() {
	var context = this;
	var params = {}
	params["ws"] = "replyPM";
	params["pm-thread"] = this.thread;
	params["pm-body"] = $('#pm-body').val();
	$.get("/ws/", params, function(data){
			$(data).hide().appendTo('.pm-thread').slideDown("slow");
			context.addPMthreadControls();
	 });
}

SB.pm.prototype.newMsgForm = function() {
	var code = "<table id='pm-new'>";
  code += "<tr><td>Pro:</td><td><input type='text' name='pm-to-input' id='pm-to-input' ><input type='hidden' name='pm-to' id='pm-to'></td></tr>";
  code += "<tr><td>Předmět:</td><td><input type='text' name='pm-title' id='pm-title'></td></tr>";
  code += "<tr><td>Zpráva:</td><td><textarea name='pm-body' id='pm-body' rows='4'></textarea></td></tr>";
  code += "</table>";
	return code;
}

SB.pm.prototype.replyMsgForm = function() {
	var code = "<h3>odpovědět:</h3>";
  code += '<div class="tabContent marginBot20">';
  code += '<div class="tabContentIn">';
  code += '<form class="formWall">';
  code += '<textarea cols="10" rows="10" name="pm-body" id="pm-body" ></textarea>';
  code += '</div>';
  code += '</div>';
  code += '<span class="corner"></span>';
  code += '</div>';
  code += "<a href='#' onclick='SBpm.replyMessage();return false;' class='jq-button fr'>odpovědět</a>";
	return code;


  code += "<textarea name='pm-body' id='pm-body' rows='4'></textarea><br>";
  code += "<a href='#' onclick='SBpm.replyMessage();return false;' class='jq-button'>odpovědět</a>";
	return code;
}

SB.pm.prototype.newMessage = function(receiver) {
	var code = this.newMsgForm();
  thDialog(code, "Nová zpráva", function(r){
  	if (!r) return false;
  	SBuser.sendPM($('#pm-to').val(),$('#pm-title').val(),$('#pm-body').val(), function(r){
  			if (r != "1") thAlert(r, "Nová zpráva");
  		else thAlert("Zpráva byla odeslána.","Nová zpráva");
  	});
  })
  
  	$('#pm-body').autoResize({
		    onResize : function() {
		        $(this).css({opacity:0.8});
		    },
		    animateCallback : function() {
		        $(this).css({opacity:1});
		    },
		    animateDuration : 100,
		    extraSpace : 30
		});
		
   $('#pm-to-input').autocomplete({
			source: "/ws/?ws=suggestFriendUsers",
			minLength: 2,
			select: function( event, ui ) {
				$('#pm-to').val(ui.item.id);
      }
   });	
  if (receiver) {
  	$('#pm-to').val(receiver);
  	$('#pm-to-input').val(receiver);
  	$('#pm-title').focus();
  }
}

SB.pm.prototype.morePM = function() {
  var offset = $('#pm-messages .pm-thread').size();
	var params = {}
	params["ws"] = "morePM";
	params["offset"] = offset;
	var context = this;
		$.get("/ws/", params, function(data){
			    if (data == "") {
			     $('#pm-show-more').hide();
			  } else {
					 $('#pm-messages').append(data);	
				}
	  	});
};




