var URL_ROOT = "http://arpamet.com";

/******************************
 * --- CHANNELS FUNCTIONS --- *
 ******************************/

/**
 * 
 * @param user
 * @param channel
 * @param out
 * @return
 */
function leave_channel(user, channel, jabber, out) {
	var n = Math.floor(Math.random()*1000+1);
	var src;
	$("#" + out).html("<img src=\""+URL_ROOT+"/img/wait.gif\"/>");
     $.post(URL_ROOT + "/actions/leave_channel.php", 
         {channel: channel,
         user: user}, 
         function (data) {
           if (data == "OK") {             
             src = "<div id=\"res" + n + "\" class=\"success\">Has abandonado el canal.</div><button type=\"button\" class=\"button positive\" onclick=\"join_channel('"+user+"','"+channel+"', " + jabber + ",'"+out+"');\"><img src=\"" + URL_ROOT + "/css/blueprint/plugins/buttons/icons/tick.png\" alt=\"\"/> Apuntarse a responder</button>";              
             $("#" + out).html(src);
             window.setTimeout("$(\"#res" + n + "\").fadeOut();", 3000);
           } else {
           	 src = "<div id=\"res" + n + "\" class=\"error\">Error al abandonar el canal.</div><button type=\"button\" class=\"button negative\" onclick=\"leave_channel('"+user+"','"+channel+"', " + jabber +" ,'"+out+"');\"><img src=\"" + URL_ROOT + "/css/blueprint/plugins/buttons/icons/cross.png\" alt=\"\"/> Dejar de responder</button>";              
             $("#" + out).html(src);
             window.setTimeout("$(\"#res" + n + "\").fadeOut();", 3000);
           }   
         });
   }

/**
 * 
 * @param user
 * @param channel
 * @param out
 * @return
 */
function join_channel(user, channel, jabber, out) {
  var n = Math.floor(Math.random()*1000+1);
  var src;
  $("#" + out).html("<img src=\""+URL_ROOT+"/img/wait.gif\"/>");
  $.post(URL_ROOT + "/actions/join_channel.php",
     {channel: channel,
     user: user},
     function (data) {
       if (data == "OK") {
         if (jabber == 0) {
           src = "<div id=\"res" + n + "\" class=\"success\">Has entrado en el canal.</div><button type=\"button\" class=\"button negative\" onclick=\"leave_channel('"+user+"','"+channel+"', " + jabber +" ,'"+out+"');\"><img src=\"" + URL_ROOT + "/css/blueprint/plugins/buttons/icons/cross.png\" alt=\"\"/> Dejar de responder</button>";
         } else {
           src = "<div id=\"res" + n + "\" class=\"success\">Has entrado en el canal.</div><button type=\"button\" class=\"button negative\" onclick=\"leave_channel('"+user+"','"+channel+"', " + jabber +" ,'"+out+"');\"><img src=\"" + URL_ROOT + "/css/blueprint/plugins/buttons/icons/cross.png\" alt=\"\"/> Dejar de responder</button>";
         }
         $("#" + out).html(src);
         window.setTimeout("$(\"#res" + n + "\").fadeOut();", 5000);
       } else {
         src = "<div id=\"res" + n + "\" class=\"error\">Error al entrar en el canal.</div><button type=\"button\" class=\"button positive\" onclick=\"join_channel('"+user+"','"+channel+"', " + jabber +" ,'"+out+"');\"><img src=\"" + URL_ROOT + "/css/blueprint/plugins/buttons/icons/tick.png\" alt=\"\"/> Apuntarse a responder</button>";
         $("#" + out).html(src);
         window.setTimeout("$(\"#res" + n + "\").fadeOut();", 5000);
       }
     });
  }

/**
 * 
 * @param channel
 * @param summary
 * @param description
 * @param incalls
 * @param channel_public
 * @param userlist
 * @param mastercalls
 * @param master_userlist
 * @return
 */
function update_channel(channel, summary, description, incalls, channel_public,
		userlist, mastercalls, master_userlist, title, name, out) {
	 	var src;
	 	$("#" + out).html("<img src=\""+URL_ROOT+"/img/wait.gif\"/>");
		$.post(URL_ROOT + "/actions/update_channel.php", 
				{channel: channel,
				summary: summary,
				description: description,
				incalls: incalls,
				userlist: userlist,
				mastercalls: mastercalls,
				master_userlist: master_userlist,
				channel_public: channel_public,
				title: title,
				name: name}, 
				function (data) {
					if (data == "OK") {
						src = "<span class=\"success\">Canal editado correctamente.</span>";              
				        $("#" + out).html(src);
				        $("#" + out).fadeIn();
				        window.setTimeout("$('#" + out +"').fadeOut();", 3000);
					} else {
						src = "<span class=\"error\">Error al editar el canal.</span>";              
				        $("#" + out).html(src);
				        $("#" + out).fadeIn();
				        window.setTimeout("$('#" + out +"').fadeOut();", 3000);
					}
				});
}

/*********************************
 * --- INVITATIONS FUNCTIONS --- *
 *********************************/

/**
 * @param user
 * @param pass
 * @param repass
 * @param name
 * @param email
 * @param activation_code
 * @param out
 * @return
 */
function add_new_user_from_invitation(user, pass, repass, email, activation_code, conditions, out, input) {
	var src;
	if (user.replace(/^\s*|\s*$/g,"") == "" || pass.replace(/^\s*|\s*$/g,"") == "" || repass.replace(/^\s*|\s*$/g,"") == "")
	{
		src = "<span class=\"error\">Todos los campos son obligatorios.</span>";              
        $("#" + out).html(src);
        $("#" + out).fadeIn();
        window.setTimeout("$('#" + out + "').fadeOut();", 3000);
		return;
	}
	if (!conditions)
	{
		src = "<span class=\"error\">Debes aceptar las condiciones de uso.</span>";              
        $("#" + out).html(src);
        $("#" + out).fadeIn();
        window.setTimeout("$('#" + out + "').fadeOut();", 3000);
		return;
	}
    if (pass != repass)
    {
        src = "<span class=\"error\">Las contraseñas no coinciden.</span>";              
        $("#" + out).html(src);
        $("#" + out).fadeIn();
        window.setTimeout("$('#" + out + "').fadeOut();", 3000);
    }
    else 
    {
  	  src = "<img src=\"" + URL_ROOT + "/img/wait.gif\">";              
      $("#" + out).html(src);
	      $.post(URL_ROOT + "/actions/new_user_from_invitation.php", 
	          {user: user,
	          pass: pass,
	          email: email,
	          activation_code: activation_code}, 
	          function (data) {
	            if (data == "OK") {             
	              src = '<p class="success">Te has registrado correctamente. <br /> &iexcl;Enhorabuena, ya puedes disfrutar de Arpamet! <br /> Haz click <a href="' + URL_ROOT + '/login">aqu&iacute;</a> para entrar</p>';              
	              $("#" + out).html(src);
	              $("#" + out).fadeIn();
	              $("#" + input).hide();
	            } else if (data == "INC"){
	              src = "<span class=\"notice\">Faltan datos.</span>";              
	              $("#" + out).html(src);
	              $("#" + out).fadeIn();
	              window.setTimeout("$('#" + out + "').fadeOut();", 3000);
	            } else {
	              src = "<span class=\"error\">Error al a&ntilde;adir el usuario.</span>";              
	              $("#" + out).html(src);
	              $("#" + out).fadeIn();
	              window.setTimeout("$('#" + out + "').fadeOut();", 3000);
	            }   
	          });
    }
  }

function redirect(url) {
	window.location = url;
}

/**
 * 
 * @param user
 * @param pass
 * @param repass
 * @param email
 * @param activation_code
 * @param conditions
 * @param out
 * @param input
 * @return
 */
function register_new_user(user, pass, repass, email, conditions, out, input) {
	var src;
	if (user.replace(/^\s*|\s*$/g,"") == "" || pass.replace(/^\s*|\s*$/g,"") == "" || repass.replace(/^\s*|\s*$/g,"") == "")
	{
		src = "<span class=\"error\">Todos los campos son obligatorios.</span>";              
        $("#" + out).html(src);
        $("#" + out).fadeIn();
        window.setTimeout("$('#" + out + "').fadeOut();", 3000);
		return;
	}
	var exr = /^[0-9a-zA-Z_\-\.]+@[0-9a-zA-Z_\-\.]+\.[a-zA-Z]{2,4}$/;
	if (!exr.test(email)) 
	{
		src = "<span class=\"error\">El correo introducido no es v&aacute;lido.</span>";              
        $("#" + out).html(src);
        $("#" + out).fadeIn();
        window.setTimeout("$('#" + out + "').fadeOut();", 3000);
		return;
	}
	if (!conditions)
	{
		src = "<span class=\"error\">Debes aceptar las condiciones de uso.</span>";              
        $("#" + out).html(src);
        $("#" + out).fadeIn();
        window.setTimeout("$('#" + out + "').fadeOut();", 3000);
		return;
	}
    if (pass != repass)
    {
        src = "<span class=\"error\">Las contrase&ntilde;as no coinciden.</span>";              
        $("#" + out).html(src);
        $("#" + out).fadeIn();
        window.setTimeout("$('#" + out + "').fadeOut();", 3000);
    }
    else 
    {
  	  src = "<img src=\"" + URL_ROOT + "/img/wait.gif\">";              
      $("#" + out).html(src);
	      $.post(URL_ROOT + "/actions/register_new_user.php", 
	          {user: user,
	          pass: pass,
	          email: email}, 
	          function (data) {
	            if (data == "OK") {             
	              //src = '<p class="success">Te has registrado correctamente. <br /> &iexcl;Enhorabuena, ya puedes disfrutar de Arpamet! <br /> Si no accedes de forma autom&aacute;tica en unos segundos, haz click <a href="' + URL_ROOT + '/login">aqu&iacute;</a> para entrar</p>';              
	              //$("#" + out).html(src);
	              //$("#" + out).fadeIn();
	              //$("#" + input).hide();
	              //window.setTimeout("redirect(\"" + URL_ROOT + "/actions/access.php?autologin&user=" + user + "&pass=" + pass+ "\");" , 3000);
	              redirect(URL_ROOT + "/actions/access.php?autologin&user=" + user + "&pass=" + pass);
	            } else if (data == "INC"){
	              src = "<span class=\"notice\">Faltan datos.</span>";              
	              $("#" + out).html(src);
	              $("#" + out).fadeIn();
	              window.setTimeout("$('#" + out + "').fadeOut();", 3000);
	            } else {
	              src = "<span class=\"error\">El nombre de usuario ya est&aacute; en uso.</span>";              
	              $("#" + out).html(src);
	              $("#" + out).fadeIn();
	              window.setTimeout("$('#" + out + "').fadeOut();", 3000);
	            }   
	          });
    }
  }

/*********************************
 * --- WAITINGLIST FUNCTIONS --- *  
 *********************************/

/**
 * 
 * @param email
 * @param name
 * @param interest
 * @param comment
 * @param out
 * @return
 */
function update_waiting_list(email, name, interest, comment, out) {
  var src;
  $("#" + out).html("<img src=\""+URL_ROOT+"/img/wait.gif\"/>");
  $.post(URL_ROOT + "/actions/update_waiting_list.php", 
      {email: email,
      name: name,
      interest: interest,
      comment: comment}, 
      function (data) {
        if (data == "OK") {             
          src = "<span class=\"success\">Datos extras a&ntilde;adidos con &eacute;xito.</span>";              
          $("#" + out).html(src);
          $("#" + out).fadeIn();
          window.setTimeout("$('#" + out + "').fadeOut();", 3000);
        } else {
          src = "<span class=\"error\">Error al a&ntilde;adir los datos extra.</span>";              
          $("#" + out).html(src);
          $("#" + out).fadeIn();
          window.setTimeout("$('#" + out + "').fadeOut();", 3000);
        }   
      });
}

/*****************************
 * --- PROFILE FUNCTIONS --- *
 *****************************/
 
/**
 * 
 * @param jid
 * @param out
 * @return
 */
function validate_jabber(jid, out) {
	  var src;
	  $("#" + out).html("<img src=\""+URL_ROOT+"/img/wait.gif\"/>");
	  $.post(URL_ROOT + "/actions/validate_jabber.php",
			  {jid: jid},
			  function (data) {
				  if (data == "ERROR") {
		            src = "<span class=\"error\">Error en el proceso, vuelva a intentarlo m&aacute;s tarde.</span>";              
		            $("#" + out).html(src);
		            $("#" + out).fadeIn();
		            window.setTimeout("$('#" + out + "').fadeOut();", 3000);
				  }
				  else if (jid != "")
				  {
		            src = "<span class=\"success\">A&ntilde;ada el contacto arpamet@arpamet.com a su lista de contactos (si no lo tiene ya) y env&iacute;ele <strong>" + data + "</strong> para confirmar que es el usuario de la cuenta.</span>";              
		            $("#" + out).html(src);
		            $("#" + out).fadeIn();
				  }
				  else
				  {
					$("#" + out).html("");
				  }
			  });
}
 
function get_cookie(name){
  var cname = name + "=";               
  var dc = document.cookie;             
  if (dc.length > 0) 
  {              
    begin = dc.indexOf(cname);       
	if (begin != -1) 
	{           
	  begin += cname.length;       
	  end = dc.indexOf(";", begin);
	  if (end == -1) end = dc.length;
	  return unescape(dc.substring(begin, end));
    } 
  }
  return null;
}

function send_user_invitation(destination, content, out) {
	  var src;
	  $("#" + out).html("<img src=\""+URL_ROOT+"/img/wait.gif\"/>");
	  $.post(URL_ROOT + "/actions/send_user_invitation.php", 
	      {destination: destination,
	      content: content}, 
	      function (data) {
	        if (data == "ERROR") {
        	  src = "<span class=\"error\">Error al enviar las invitaciones.</span>";              
	          $("#" + out).html(src);
	          $("#" + out).fadeIn();		          
	          window.setTimeout("$('#" + out + "').fadeOut();", 3000);
	        } else if (data == "INC"){
	          src = "<span class=\"notice\">Faltan datos.</span>";              
	          $("#res_invitation").html(src);
	          $("#res_invitation").fadeIn();
	          window.setTimeout("$('#" + out + "').fadeOut();", 3000);
	        } else {
	          src = "<span class=\"success\">Invitaciones enviadas con &eacute;xito.</span>";
	          var src_link;
	          if (data == "-1")
	          {
	        	  src_link = '<a href="'+URL_ROOT+'/invitations">invitaciones ilimitadas</a> - ';
	          }
	          else if (data == "1")
	          {
	        	  src_link = '<a href="'+URL_ROOT+'/invitations">1 invitaci&oacute;n</a> - ';
	          }
	          else if (data == "0")
	          {
	        	  src_link = '';
	          }
	          else
	          {
	        	  src_link = '<a href="'+URL_ROOT+'/invitations">'+data+' invitaciones</a> - ';
	          }
	          $("#num_invitations").html(src_link);
		      $("#" + out).html(src);
		      $("#" + out).fadeIn();
		      window.setTimeout("$('#" + out + "').fadeOut();", 3000);
	        }   
	      });
	}  

function update_password(pass, new_pass, new_pass_bis, out)
{
	var src;
	if (pass.replace(/^\s*|\s*$/g,"") == "" || new_pass.replace(/^\s*|\s*$/g,"") == "" || new_pass_bis.replace(/^\s*|\s*$/g,"") == "")
	{
		src = "<span class=\"error\">Todos los campos son obligatorios.</span>";              
        $("#" + out).html(src);
        $("#" + out).fadeIn();
        window.setTimeout("$('#" + out + "').fadeOut();", 3000);
		return;
	}
	
    if (new_pass != new_pass_bis)
    {
        src = "<span class=\"error\">Las contrase&ntilde;as no coinciden.</span>";              
        $("#" + out).html(src);
        $("#" + out).fadeIn();
        window.setTimeout("$('#" + out + "').fadeOut();", 3000);
    }
    else 
    {
  	  src = "<img src=\"" + URL_ROOT + "/img/wait.gif\">";              
      $("#" + out).html(src);
	      $.post(URL_ROOT + "/actions/update_user_password.php", 
	          {pass: pass,
	          new_pass: new_pass,
	          new_pass_bis: new_pass_bis}, 
	          function (data) {
	            if (data == "OK") {             
	              src = '<span class="success">Contrase&ntilde;a actualizada correctamente.</span>';              
	              $("#" + out).html(src);
	              $("#" + out).fadeIn();
	            } else if (data == "INC"){
	              src = "<span class=\"notice\">Faltan datos.</span>";              
	              $("#" + out).html(src);
	              $("#" + out).fadeIn();
	              window.setTimeout("$('#" + out + "').fadeOut();", 3000);
	            } else {
	              src = "<span class=\"error\">Error al cambiar la contrase&ntilde;a.</span>";              
	              $("#" + out).html(src);
	              $("#" + out).fadeIn();
	              window.setTimeout("$('#" + out + "').fadeOut();", 3000);
	            }   
	          });
    }
}


function set_as_readed(out)
{
  var x = $("input:checkbox[checked='true']");
  jQuery.each(x, function(index, value) {
    var id = value.value;
      var src;
      $("#" + out).html("<img src=\""+URL_ROOT+"/img/wait.gif\"/>");
      $.post(URL_ROOT + "/actions/update_message.php", 
	  {id: id}, 
	  function (data) {
	    if (data == "OK") {             
	      src = "<span class=\"success\">Mensajes actualizados con &eacute;xito.</span>";              
	      $("#" + out).html(src);
	      $("#" + out).fadeIn();
	      window.setTimeout("$('#" + out + "').fadeOut();", 3000);
	    } else {
	      src = "<span class=\"error\">Error al actualizar los mensajes.</span>";              
	      $("#" + out).html(src);
	      $("#" + out).fadeIn();
	      window.setTimeout("$('#" + out + "').fadeOut();", 3000);
	    }   
	  });
  });
}
function delete_messages(out)
{
  var x = $("input:checkbox[checked='true']");
  jQuery.each(x, function(index, value) {
    var id = value.value;
      var src;
      $("#" + out).html("<img src=\""+URL_ROOT+"/img/wait.gif\"/>");
      $.post(URL_ROOT + "/actions/delete_message.php", 
	  {id: id}, 
	  function (data) {
	    if (data == "OK") {             
	      src = "<span class=\"success\">Mensajes borrados con &eacute;xito.</span>";              
	      $("#" + out).html(src);
	      $("#" + out).fadeIn();
	      window.setTimeout("$('#" + out + "').fadeOut();", 3000);
	    } else {
	      src = "<span class=\"error\">Error al borrar los mensajes.</span>";              
	      $("#" + out).html(src);
	      $("#" + out).fadeIn();
	      window.setTimeout("$('#" + out + "').fadeOut();", 3000);
	    }   
	  });
  });
}
