/*

  (c) 2006 TUFaT.com. All Rights Reserved

*/

function formatSendData (data, comm) {
  var returnData = Object ();

  returnData["sendAndLoad"] = "[type Function]";
  
  if (config["enableSocketServer"]!=true)
  	returnData["id"] = comm["commId"];
  else
  	returnData["id"] = commresponseId;

  for (key in data)
    returnData[key] = data[key];

   if (returnData["b"] == null)
     returnData["b"] = parseInt (comm.msgId) + 1;

  return returnData;
}

function formatLoginData (user) {
  var ldata = new Object ();

  ldata["c"]  = "lin"; // login command
  ldata["lg"] = user["login"];
  ldata["ps"] = user["password"];
  ldata["l"]  = user["lang"];
  ldata["tz"] = new Date().getTimezoneOffset();
  ldata["b"]  = config["backtimeOnLogin"] + 1;

  return (ldata);
}

function formatGetMsgList (user) {
  var mdata = new Object ();

  mdata["c"] = "msgl"; // message list command

  return (mdata);
}

function formatTextMessageSend (user, textToSend, urgent, broadcast) {
  var tmdata = new Object ();

  tmdata["c"] = "msg";
  tmdata["u"] = 0;

  if (broadcast != true)
    tmdata["r"] = user["room"];
  else {
    tmdata["r"] = 0;
  }
  
  tmdata["t"] = textToSend;

  if (urgent)
    tmdata["a"] = "isUrgent";

  return (tmdata);
}

function formatPMTextMessageSend (user, textToSend, sendPMTo) {
  var tmdata = new Object ();

  tmdata["c"] = "msg";
  tmdata["u"] = sendPMTo;
  tmdata["r"] = 0;
  tmdata["t"] = textToSend;

  return (tmdata);
}

function formatMoveMessage (user, toRoom, pass) {
  var mdata = new Object ();

  mdata["c"] = "mvu";
  mdata["r"] = toRoom;
  if (pass)
    mdata["ps"] = pass;

  return (mdata);
}

function formatAddRoom (user, roomName, isPublic, pass) {
  var ardata = new Object ();
  ardata["c"] = "adr";
  ardata["p"] = isPublic;
  ardata["l"] = roomName;
  ardata["ps"] = pass;

  return (ardata);
}

function formatInviteMessage (user, toUid, toRoom, textMessage) {
  var imdata = new Object ();
  imdata["c"] = "invu";
  imdata["u"] = toUid;
  imdata["r"] = toRoom;
  imdata["t"] = textMessage;

  return (imdata);
}

function formatInvitationConfirm (user, toUid, toRoom, textMessage, accepted) {

  var invdata = new Object ();
  invdata["c"] = "inv" + (accepted ? "a" : "d");
  invdata["u"] = toUid;
  invdata["r"] = toRoom;
  invdata["t"] = textMessage;

  return (invdata);
}

function formatIgnoreMessage (user, toUid, textMessage, ignored) {

  var igndata = new Object ();
  igndata["c"] = (ignored ? "" : "n") + "ignu";
  igndata["u"] = toUid;
  igndata["t"] = textMessage;

  return (igndata);
}

function formatFSConfirm (user, toUid, cfrm) {
  var cfrmdata = new Object ();
  cfrmdata["c"] = "cfrm";
  cfrmdata["u"] = toUid;
  cfrmdata["a"] = cfrm;	
  return (cfrmdata);
}

function formatConfirmAlert (userid) {
  var cfrmdata = new Object ();
  cfrmdata["c"] = "cfrm";
  cfrmdata["u"] = userid;
  cfrmdata["a"] = "alrt";
  return (cfrmdata);
}

function formatBackMessage (user, parameter, backtype) {
  var backdata = new Array ();
  backdata["c"] = "back" + (backtype ? "t" : "");
  backdata["n"] = parameter;

  return (backdata);
}

function formatBanMessage (user, forUid, forRid, banType, banText) {
  var bandata = new Object ();
  bandata["c"] = "banu";
  bandata["u"] = forUid;
  bandata["r"] = forRid;
  bandata["b"] = banType;
  bandata["t"] = banText;

  return bandata;
}

function formatUnbanMessage (user, forUser, unbanText) {
  var unbandata = new Object ();
  unbandata["c"] = "nbanu";
  unbandata["u"] = forUser;
  unbandata["t"] = unbanText;
  
  return unbandata;
}

function formatGetLangMessage (user, lang) {
  var glngdata = new Object ();
  glngdata["c"] = "glan";
  glngdata["s"] = 0;
  glngdata["l"] = lang;

  return glngdata;
}

function formatSetStatusMessage (user, newStatus) {
  var statusdata = new Object ();
  statusdata["c"] = "sst";
  statusdata["t"] = newStatus;

  return statusdata;
}

function formatSetRoomAvatar (user, newAvatar) {
  var data = new Object ();
  data["c"] = "ravt";
  data["a"] = newAvatar;
  data["u"] = user;
  
  
return data;
	/*if(user)
  		
	else
		return null;*/
}

function formatSetMainChatAvatar (user, newAvatar) {

  var data = new Object ();
  data["c"] = "mavt";
  data["a"] = newAvatar;
  data["u"] = user;
  
  return data;
  /*if(user)
  		
	else
		return null;*/
}

function formatSetPicture (user, newPicture) {
  //
  newPicture = newPicture.substring(0,newPicture.indexOf('?'));
  //alert(newPicture);
  var data = new Object ();
  data["c"] = "spht";
  data["a"] = newPicture;
  data["cid"] = 1;
  data["u"] = user;
  return data;
  /*if(user)
  		
	else
		return null;*/
}
function ringTheBell(user)
{

	var data = new Object ();
  data["c"] = "ring";
  data["cid"] = 1;
  
  if(user)
  		return data;
	else
		return null;
} 
function formatLogoutMessage (user) {
  var loutdata = new Object ();
  loutdata["c"] = "lout";

  return loutdata;
}

function formatSetColorMessage (user, newColor) {
  var scdata = new Object ();
  scdata["c"] = "scl";
  scdata["t"] = hex2dec (newColor);

  return scdata;
}

function formatAlertMessage (user, alertType, sendTo, message) {
  var alrtdata = new Object ();

  switch (alertType) {
    case 1:
      alrtdata["c"] = "alrt";
      alrtdata["u"] = sendTo;

      break;

    case 2:
      alrtdata["c"] = "ralrt";
      alrtdata["r"] = sendTo;

      break;

    case 3:
      alrtdata["c"] = "calrt";

      break;
  }

  alrtdata["t"] = message;

  return alrtdata;
}

function formatAddBotMessage(login, bot, sup){
  var addbotdata = new Object ();
  addbotdata["c"] = "adbt";
  addbotdata["lg"] = login;
  addbotdata["a"]  = bot;
  if(sup) addbotdata["s"]  = sup;  
  return addbotdata;
}

function formatStartBotMessage(userName, roomId, sup){
  var startbotdata = new Object ();
  startbotdata["c"] = "srtbt";
  startbotdata["lg"] = userName;
  startbotdata["a"]  = roomId;
  if(sup) startbotdata["s"]  = sup;  
  return startbotdata;
}

function formatShowBotsMessage(sup){
  var showbotsdata = new Object ();
  showbotsdata["c"] = "swbt";
  if(sup) showbotsdata["s"]  = sup;  
  return showbotsdata;
}

function formatKillBotMessage(userName, sup){
  var killbotdata = new Object ();
  killbotdata["c"] = "klbt";
  killbotdata["lg"] = userName;
  if(sup) killbotdata["s"]  = sup;  
  return killbotdata;
}

function formatTeachBotMessage(userName, args, sup){
  var teachbotdata = new Object ();
  teachbotdata["c"] = "tchbt";
  teachbotdata["lg"] = userName;
  teachbotdata["a"] = args;
  if(sup) teachbotdata["s"]  = sup;  
  return teachbotdata;
}

function formatUnTeachBotMessage(userName, args, sup){
  var unteachbotdata = new Object ();
  unteachbotdata["c"] = "utbt";
  unteachbotdata["lg"] = userName;
  unteachbotdata["a"] = args;
  if(sup) unteachbotdata["s"]  = sup;  
  return unteachbotdata;
}

function formatGagMessage(userid, minutes, sup){
  var gagdata = new Object ();
  gagdata["c"] = "gag";
  gagdata["u"] = userid;
  gagdata["t"] = minutes;
  if(sup) gagdata["s"]  = sup;  
  return gagdata;
}

function formatUnGagMessage(userid, sup){
  var ungagdata = new Object ();
  ungagdata["c"] = "ngag";
  ungagdata["u"] = userid;
  if(sup) ungagdata["s"]  = sup;  
  return ungagdata;
}

function formatSendTimeZone(){
	var data = new Object ();
	data["c"]  = 'tzset';
	data["cid"]  = 1;
	data["tz"] = new Date().getTimezoneOffset();
	
	return(data);
}

function enqueueMessage (data, queue) {    
  /*if (config["enableSocketServer"]==true){
	dataToSend = dequeueMessage (sendQueue);
    comm.getAsyncPOSTURL (config["getXMLURL"], formatSendData (dataToSend, comm));	
    sendQueue= new Array ();
  }*/
  	queue.push (data);
  
}

function dequeueMessage (queue) {
  if (queue.length > 0)
    return (queue.shift ());
  else
    return null;
}

function flushQueue (queue) {
  while (queue.length > 0)
    queue.shift ();
}

