// Muestra u oculta fecha y hora de sms programado
function actDesFechaHora()
{
  if ($("#tipo").val() == "Directo")
  {
    $("#colFechaSms").hide();
    $("#colBEnviar").show();
    $("#colBGuardar").hide();
  }
  else
  {
    $("#colFechaSms").show();
    $("#colBGuardar").show();
    $("#colBEnviar").hide();
  }
}

// Muestra el buscador de teléfonos
function mostrarBuscadorTelefonos()
{
    $('#fondoTelefonos').fadeIn();
}

// Ocultar el buscador de teléfonos
function ocultarBuscadorTelefonos()
{
    $('#fondoTelefonos').fadeOut();
}

// Seleccionar todos los telefonos
function selecTodos(pTel)
{
  $(".selecCli").each(function() {
    this.checked = pTel.checked;
  });

  $("#selec_todos_tel_1").attr("checked", pTel.checked);
  $("#selec_todos_tel_2").attr("checked", pTel.checked);

  selecTodosTel1(pTel);
  selecTodosTel2(pTel);
}

// Deseleccionar padres si se deselecciona hijo
function selecTodosCli(pCli,pTel1,pTel2)
{
  if (!pCli.checked)
  {
    $("#selec_todos").attr("checked", false);
    pTel1.attr("checked", false);
    pTel2.attr("checked", false);
  }
  else
  {
    pTel1.attr("checked", true);
    pTel2.attr("checked", true);
  }
}

// Seleccionar todos los telefonos 1
function selecTodosTel1(pTel1)
{
  $(".selecTel1").each(function() {
    this.checked = pTel1.checked;
  });
}

// Deseleccionar padres si se deselecciona hijo
function unSelecTodosTel1(pTel,pCli)
{
  if (!pTel.checked)
  {
    $("#selec_todos_tel_1").attr("checked", false);
    pCli.attr("checked", false);
    $("#selec_todos").attr("checked", false);
  }
}

// Seleccionar todos los telefonos 2
function selecTodosTel2(pTel2)
{
  $(".selecTel2").each(function() {
    this.checked = pTel2.checked;
  });
}

// Deseleccionar padres si se deselecciona hijo
function unSelecTodosTel2(pTel,pCli)
{
  if (!pTel.checked)
  {
    $("#selec_todos_tel_2").attr("checked", false);
    pCli.attr("checked", false);
    $("#selec_todos").attr("checked", false);
  }
}

// Insertar teléfonos seleccionados en destinatarios
function insertarTelefonos()
{
  var telefonos = '';

  $(".selecTel1").each(function() {
    if ((this.checked) && ($(this).val() != ''))
    {
      if ($("#destinatarios").val().indexOf($(this).val()) == -1)
      {
        telefonos += $(this).val() + ",";
      }
    }

    if (!this.checked)
    {
      if ($("#destinatarios").val().indexOf($(this).val()) != -1)
      {
        $("#destinatarios").val($("#destinatarios").val().replace($(this).val()+",",""));
        $("#destinatarios").val($("#destinatarios").val().replace($(this).val(),""));
        $("#destinatarios").val().trim(",");
      }
    }
  });

  $(".selecTel2").each(function() {
    if ((this.checked) && ($(this).val() != ''))
    {
      if ($("#destinatarios").val().indexOf($(this).val()) == -1)
      {
        telefonos += $(this).val() + ",";
      }
    }
  });

  if (telefonos != ",") {
    if ($("#destinatarios").val() == '')
      $("#destinatarios").val(telefonos);
    else {
      if ($("#destinatarios").val().charAt($("#destinatarios").val().length-1) == ",")
        $("#destinatarios").val($("#destinatarios").val() + telefonos);
      else
        $("#destinatarios").val($("#destinatarios").val() + "," + telefonos);
    }
  }

  if ($("#destinatarios").val().charAt($("#destinatarios").val().length - 1) == ",")
      $("#destinatarios").val($("#destinatarios").val().substr(0, $("#destinatarios").val().length-1));

  ocultarBuscadorTelefonos();
}

// Insertar plantilla seleccionada en SMS
function insertarPlantilla()
{
  var plantilla = '';

  $(".selecPlan").each(function() {
    if (this.checked)
    {
      plantilla = $(this).val();
    }
  });
  
  $("#mensaje").val($("#mensaje").val() + plantilla);

  $("#fondoPlantillas").fadeOut(function(){
    mostrarCaracteresMensaje();
  });
}

// Escribe numero de caracteres mientras redactas el mensaje
function mostrarCaracteresMensaje()
{
  if ($("#mensaje").val().length > 160) {
    var valor = $("#mensaje").val();
    valor = valor.substr(0, 160);
    $("#mensaje").val(valor);

    alert("Máximo 160 caracteres");
  }

  $("#caracteresMensaje").html("<b>Nº Caracteres:</b> " + $("#mensaje").val().length);
}

// Consulta el crédito restante para SMS's
function creditoSms(urlDestino, urlProxy)
{
  var url = urlDestino;
  var dt = new Date();
  var proxy = urlProxy + '?currDate='+dt.getTime()+'&proxy_url=';
  url = proxy + encodeURIComponent(url);

  jQuery.get(url, null, function(data) {
    if (data.substr(0, 8) != "SMS-TEXT")
      $("#txtCredito").html('Error al solicitar el crédito. Inténtelo más tarde');
    else
    {
      var indice = data.indexOf("=");
      var texto = data.replace("<br>", "");
      $("#txtCredito").html('Su crédito es: ' + texto.substring(indice + 1, texto.indexOf("SMS-VOZ")));
    }
  });
}

// Envía el SMS
function enviaSms(urlDestino, urlProxy, urlGuardar)
{
    var usuario         = $("#usuario").val();
    var password        = $("#password").val();
    var remitente       = $("#remitente").val();
    var ruta = '';
    if (remitente == "")
        ruta            = 1;
    else
        ruta            = $("#ruta").val();
    var destinatarios   = eliminaEspacios($("#destinatarios").val());
    var mensaje         = URLEncode($("#mensaje").val());
    var reporte         = $("#reporte").val();

    // Envio
    var campos = '';

    campos += "?usuario=" + usuario;
    campos += "&password=" + password;
    campos += "&ruta=" + ruta;
    campos += "&remitente=" + remitente;
    campos += "&destinatarios=" + destinatarios;
    campos += "&mensaje=" + mensaje;
    campos += "&reporte=" + reporte;

    var url = urlDestino + campos;
    var dt = new Date();
    var proxy = urlProxy + '/url_proxy.php?currDate='+dt.getTime()+'&proxy_url=';
    url = proxy + encodeURIComponent(url);

    jQuery.post(url, null, function(data) {
      if (data.substr(0, 2) != "OK")
      {
        $("#con-loader-doc").hide();
        alert('Error enviando SMS');
      }
      else
      {
        $('#formEnvioSms').submit();
      }
    });
}

// CODIFICAR URL
function URLEncode(texto)
{
	// caracteres que no se tendran en cuenta

	var SAFECHARS = "0123456789" + "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + "abcdefghijklmnopqrstuvwxyz" + "!~*'()";
	var HEX = "0123456789ABCDEF";

	var plaintext = texto;
	var encoded = "";
	for (var i = 0; i < plaintext.length; i++ ) {
		var ch = plaintext.charAt(i);
	    if (ch == " ") {
		    encoded += "+";
		} else if (SAFECHARS.indexOf(ch) != -1) {
		    encoded += ch;
		} else {
		    var charCode = ch.charCodeAt(0);
			if (charCode > 255) {
			    alert( "Unicode Character '"
                        + ch
                        + "' cannot be encoded using standard URL encoding.\n" +
				          "(URL encoding only supports 8-bit characters.)\n" +
						  "A space (+) will be substituted." );
				encoded += "+";
			} else {
				encoded += "%";
				encoded += HEX.charAt((charCode >> 4) & 0xF);
				encoded += HEX.charAt(charCode & 0xF);
			}
		}
	} // for

	return encoded;
}

function eliminaEspacios(cadena)
{
	// Funcion para eliminar espacios delante y detras de cada cadena
	while(cadena.charAt(cadena.length-1)==" ") cadena=cadena.substr(0, cadena.length-1);
	while(cadena.charAt(0)==" ") cadena=cadena.substr(1, cadena.length-1);
	return cadena;
}
