/*
 Funciones para manejar los contenidos normales
*/

function InicializaContenido()
{

}

function SubmenuSelec(submenuid)
{
  if(procesandoRequest)
    return;
  var sid;

  if(submenuid > 0  &&  dojo.byId("submenu_"+ submenuid).getAttribute("data-editable") == "0"
                    &&  dojo.byId("submenu_"+ submenuid).getAttribute("data-tothijos") == "0")
    return;

  if(dojo.byId("submenu_"+ submenuid).getAttribute("data-tothijos") == "0")
  {
    if(submenuActivo > 0)
    {
      sid = "submenu_"+ submenuActivo;
      dojo.toggleClass(sid, "on", false);
    }
  }
  submenuActivo = submenuid;
  if(dojo.byId("submenu_"+ submenuid).getAttribute("data-tothijos") == "0")
  {
    if(submenuActivo > 0)
    {
      // Cambia los estilos del botón seleccionado
      sid = "submenu_"+ submenuActivo;
      dojo.toggleClass(sid, "on", true);
    }
  }
  if(menuActivo > 0)
    dojo.byId("menu_"+ menuActivo).setAttribute("data-submenu", submenuActivo);

  // Muestra el contenido
  MuestraContenido();
}

function MuestraContenido()
{
  if(submenuActivo == 0)
  {
    dojo.style("contenidoMain", "display", "none");
    dojo.style("contenidoVacio", "display", "block");
    dojo.style("contenidoVacio2", "display", "none");
  }
  /*
  else if(dojo.byId("submenu_"+ submenuActivo).getAttribute("data-editable") == "0")
  {
    dojo.style("contenidoMain", "display", "none");
    dojo.style("contenidoVacio", "display", "none");
    dojo.style("contenidoVacio2", "display", "block");
  }
*/
  else if(dojo.byId("submenu_"+ submenuActivo).getAttribute("data-tothijos") != "0")
  {
    // Si es un nodo 'padre' despliega los hijos
    if(dojo.style("hijode_"+ submenuActivo, "display") == "none")
      dojo.style("hijode_"+ submenuActivo, "display", "block");
    else
      dojo.style("hijode_"+ submenuActivo, "display", "none");
  }
  else
  {
    var nod = dojo.byId("submenu_"+ submenuActivo).parentNode.parentNode;
    while(nod.nodeName.toLowerCase() == "ul")
    {
      dojo.style(nod, "display", "block");
      nod = nod.parentNode.parentNode;
    }
    // Hay un submenú activo: muestra el contenido adecuado
    dojo.style("contenidoMain", "display", "block");
    dojo.style("contenidoVacio", "display", "none");
    dojo.style("contenidoVacio2", "display", "none");
    // Carga el contenido de la base de datos
    procesandoRequest = true;
    dojo.xhrGet( { //
      url: base_url +"cms/lee_contenido.php?id="+ submenuActivo,
      handleAs: "json",
      preventCache: true,

      timeout: 5000, // Time in milliseconds

      // The LOAD function will be called on a successful response.
      load: function(response, ioArgs) {
        procesandoRequest = false;
        var tit = dojo.byId("titulo_main");
        // Actualiza los títulos
        tit.innerHTML = response["titulo_"+ idioma];

        // Actualiza el localizador
        var ss = "";
        var list = dojo.query(".menu_ctr", "menu_"+ menuActivo);
        if(list.length > 0)
          ss += "<a href=\"javascript:MainMenuSelec("+ menuActivo +", 0)\">"+ list[0].innerHTML + "</a> | ";
        ss += "<a href=\"javascript:MainMenuSelec("+ menuActivo +", 0, "+ submenuActivo +")\">"+ response["titulo_"+ idioma] +"</a>";
        dojo.byId("migas_contenido").innerHTML = ss;

        // Vacia lo que queda del DOM
        dojo.empty("bloqueContenidos")

        // Crea los párrafos de texto
        var tot = response.tot_parrafos;
        for(var n = 0; n < tot; n++)
        {
          if(response[n]["texto_"+ idioma] != "")
            CreaHtmlParrafo(response[n].id, response[n]["titulo_"+ idioma], response[n]["texto_"+ idioma]);
        }
        // Destruye la imágenes anteriores
        dojo.empty("imagebox");
        // Crea la lista de imágenes
        tot = response.tot_images;
        for(var n = 0; n < tot; n++)
        {
          CreaHtmlImagen(response["img"+n]);
        }
        // Destruye los formularios anteriores
        dojo.empty("lista_formularios");
        // Crea la lista de formularios
        tot = response.tot_forms;
        for(var n = 0; n < tot; n++)
        {
          if(response["form"+n]["titulo_"+ idioma] != "Nuevo formulario")
            CreaHtmlForm(response["form"+n]);
        }
        // Destruye los documentos anteriores
        dojo.empty("bloqueDocsContenido");
        // Crea la lista de documentos
        tot = response.tot_docs;
        var cta = 0;
        for(var n = 0; n < tot; n++)
        {
          if(response["doc"+n]["titulo_"+ idioma] != "Nuevo documento")
          {
            ++cta;
            CreaHtmlDocumento(response["doc"+n].id, response["doc"+n]["titulo_"+ idioma], response["doc"+n]["file_"+ idioma]);
          }
        }
        dojo.style("titulo_docs", "display", (cta > 0)? "block" : "none");
        return response;
      },

      // The ERROR function will be called in an error case.
      error: function(response, ioArgs) {
        procesandoRequest = false;
        console.error("HTTP status code: ", ioArgs.xhr.status);
        MuestraAlerta("Error al leer los contenidos");
        return response;
        }
      });
  }
}

function loadSubmenu(menuid, subid)
{
  procesandoRequest = true;
  dojo.byId("submenu").innerHTML = "";
  dojo.xhrGet( { //
    url: base_url +"cms/submenu.php?menuid="+ menuid,
    handleAs: "json",
    preventCache: true,

    timeout: 5000, // Time in milliseconds

    // The LOAD function will be called on a successful response.
    load: function(response, ioArgs) {
      procesandoRequest = false;
      var ss = "<ul id=\"lista_submenu\">";
      var tot = response["total"];
      var labelurl = response["menu"]["label_" + idioma];
      var primero = 0;
      for(var n = 0; n < tot; n++)
      {
        if(primero == 0  &&  response[n]["vacio_" + idioma] == "0")
          primero = response[n].id;
        ss += htmlSubmenuItem(response[n], labelurl);
      }
      ss += "</ul>";
      dojo.byId("submenu").innerHTML = ss;

      var obj = dojo.byId("menu_"+ menuActivo);
      if(!subid)
      {
        subid = submenuActivo;
        if(dojo.hasAttr(obj, "data-submenu"))
          subid = parseInt(obj.getAttribute("data-submenu"));
      }
      if(subid == 0)
        SubmenuSelec(primero);
      else
        SubmenuSelec(subid);
      return response;
    },

    // The ERROR function will be called in an error case.
    error: function(response, ioArgs) {
      procesandoRequest = false;
      console.error("HTTP status code: ", ioArgs.xhr.status);
      dojo.byId("submenu").innerHTML = 'Error al leer los datos del submen&uacute;';
      return response;
      }
    });
}

// Crea el html para una entrada de formulario asociado a un contenido
function CreaHtmlForm(obj)
{
  // Nodo contenedor
  var nod1 = dojo.create("div", {id: "contenido_form"+ obj.idform}, "lista_formularios");
  // Titulo y descripción
  //var ss = "<a href=\"javascript:LanzaFormulario("+ obj.idform +")\">"+ obj.titulo_es +"</a>";
  var ss = "<a href=\"formulario.php?id="+ obj.idform +"&lang="+ idioma +"\" target=\"_blank\">"+ obj["titulo_"+ idioma] +"</a>";
  ss += "<span class=\"txt_gris\" style=\"margin-left: 20px;\">"+ obj["desc_"+ idioma] +"</span>";
  var nod2 = dojo.create("span", {
    innerHTML: ss
  }, nod1);
}

function LanzaFormulario(idform)
{
  alert(idform);
}

function htmlSubmenuItem(obj, labelurl)
{
  labelurl = urlSemantica(obj, labelurl);
  var ss;
  var tothijos = obj.tothijos;
  if(obj["vacio_"+ idioma] == 1  &&  tothijos == 0)
    ss = "<li style='display: none;'>";
  else
    ss = "<li>";
  if(obj.editable == "1"  ||  tothijos > 0)
  {
    if(tothijos > 0)
      ss += "<a onclick=\"this.blur();\" style=\"color: #a59162;\" href=\"javascript:SubmenuSelec("+ obj.id +")\" ";
    else
      ss += "<a onclick=\"this.blur();\" href=\""+ base_url + idioma + "/" + labelurl + "/0/"+ menuActivo +"/"+ obj.id +"\" ";
  }
  else
  {
    if(obj.padre == "0")
      ss += "<span class=\"noedit_span\" ";
    else
      ss += "<span class=\"noedit_span2\" ";
  }
  ss += "id=\"submenu_"+ obj.id +"\" data-editable=\""+ obj.editable +"\" data-hijable=\"";
  ss += obj.hijable +"\" data-tothijos=\""+ tothijos +"\" data-padre=\""+ obj.padre +"\" data-id=\""+ obj.id +"\">";
  ss += "<span class=\"item_sup\">";
  ss += obj["label_"+ idioma] +"</span><span class=\"item_inf\">&nbsp;</span>";
  if(obj.editable == "1"  ||  tothijos > 0)
    ss += "</a>";
  else
    ss += "</span>";
  if(tothijos > 0)  // Es padre
  {
    ss += "<ul id=\"hijode_"+ obj.id +"\" style=\"display: none;\">";
    for(var f = 0; f < tothijos; f++)
    {
      ss += htmlSubmenuItem(obj.hijos[f], labelurl);
    }
    ss += "</ul>";
  }
  ss += "</li>";
  return ss;
}

function CreaHtmlParrafo(newid, titulo, texto)
{
  var nod1 = dojo.create("div", {id: "contenido"+ newid}, "bloqueContenidos");
  dojo.addClass(nod1, "col w470");

  var nod2;
  if(titulo != null  &&  titulo.length > 0)
  {
    nod2 = dojo.create("h2", {innerHTML: titulo}, nod1);
    dojo.addClass(nod2, "top");
  }
  nod2 = dojo.create("div", {innerHTML: texto}, nod1);
}

function CreaHtmlImagen(id)
{
  // Nodo contenedor
  var nod1 = dojo.create("div", {id: "img"+ id}, "imagebox");
  // Imagen
  var ss = "store/img"+ padZeros(id, 5) + ".jpg";
  var img = dojo.create("img", {
    src: ss
  }, nod1);
  dojo.addClass(img, "contentIMG");
}

function CreaHtmlDocumento(newid, titulo, file)
{
  var ss;
  var ext = file.split('.').pop().toLowerCase();
  if(ext != "pdf"  &&  ext != "doc"  && ext != "ppt"  &&  ext != "xls")
    ext = "otros";
  var icon = "<img src=\"images/"+ ext +".gif\" style=\"vertical-align: middle;\" />";
  if(file && file.length > 0)
    ss = icon +" <a href=\"store/docs/"+ file +"\" target=\"_blank\">"+ titulo +"</a>";
  else
    ss = "<span class=\"sin_archivo\">"+ titulo +"</span>";
  var nod1 = dojo.create("div", {id: "documento"+ newid, innerHTML: ss}, "bloqueDocsContenido");
  dojo.style(nod1, "paddingBottom", "8px");
}

function toggleMapaWeb()
{
  var vis = (dojo.style("mapa_web_oculto", "display") == "none")?  "block" : "none";
  dojo.style("mapa_web_oculto", "display", vis)
}

function urlSemantica(obj, labelurl)
{
  var str = obj["label_"+ idioma];
	str = strtr(str, 'áéíóúüñÁÉÍÓÚÜÑ', 'aeiouunAEIOUUN');
	str = str.replace(/\W+/g, '-');

	if(labelurl == '') return str;
	else return labelurl + '-' + str;
}

// http://github.com/kvz/phpjs/raw/master/functions/strings/strtr.js
function strtr (str, from, to) {
    // http://kevin.vanzonneveld.net
    // +   original by: Brett Zamir (http://brett-zamir.me)
    // +      input by: uestla
    // +   bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +      input by: Alan C
    // +   bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +      input by: Taras Bogach
    // +   bugfixed by: Brett Zamir (http://brett-zamir.me)
    // +      input by: jpfle
    // +   bugfixed by: Brett Zamir (http://brett-zamir.me)
    // -   depends on: krsort
    // -   depends on: ini_set
    // *     example 1: $trans = {'hello' : 'hi', 'hi' : 'hello'};
    // *     example 1: strtr('hi all, I said hello', $trans)
    // *     returns 1: 'hello all, I said hi'
    // *     example 2: strtr('äaabaåccasdeöoo', 'äåö','aao');
    // *     returns 2: 'aaabaaccasdeooo'
    // *     example 3: strtr('ääääääää', 'ä', 'a');
    // *     returns 3: 'aaaaaaaa'
    // *     example 4: strtr('http', 'pthxyz','xyzpth');
    // *     returns 4: 'zyyx'
    // *     example 5: strtr('zyyx', 'pthxyz','xyzpth');
    // *     returns 5: 'http'
    // *     example 6: strtr('aa', {'a':1,'aa':2});
    // *     returns 6: '2'

    var fr = '', i = 0, j = 0, lenStr = 0, lenFrom = 0, tmpStrictForIn = false, fromTypeStr = '', toTypeStr = '', istr = '';
    var tmpFrom = [];
    var tmpTo = [];
    var ret = '';
    var match = false;

    // Received replace_pairs?
    // Convert to normal from->to chars
    if (typeof from === 'object') {
        tmpStrictForIn = this.ini_set('phpjs.strictForIn', false); // Not thread-safe; temporarily set to true
        from = this.krsort(from);
        this.ini_set('phpjs.strictForIn', tmpStrictForIn);

        for (fr in from) {
            if (from.hasOwnProperty(fr)) {
                tmpFrom.push(fr);
                tmpTo.push(from[fr]);
            }
        }

        from = tmpFrom;
        to = tmpTo;
    }

    // Walk through subject and replace chars when needed
    lenStr  = str.length;
    lenFrom = from.length;
    fromTypeStr = typeof from === 'string';
    toTypeStr = typeof to === 'string';

    for (i = 0; i < lenStr; i++) {
        match = false;
        if (fromTypeStr) {
            istr = str.charAt(i);
            for (j = 0; j < lenFrom; j++) {
                if (istr == from.charAt(j)) {
                    match = true;
                    break;
                }
            }
        }
        else {
            for (j = 0; j < lenFrom; j++) {
                if (str.substr(i, from[j].length) == from[j]) {
                    match = true;
                    // Fast forward
                    i = (i + from[j].length)-1;
                    break;
                }
            }
        }
        if (match) {
            ret += toTypeStr ? to.charAt(j) : to[j];
        } else {
            ret += str.charAt(i);
        }
    }

    return ret;
}

function pinchaCurso(id)
{
  var obj = dojo.byId("espec"+ id);
  if(obj)
  {
    var ss = dojo.style(obj, "display").toLowerCase();
    if(ss == "none")
      ss = "block";
    else
      ss = "none";
    dojo.style(obj, "display", ss);
  }
}

function accesoUsuarios()
{
  var user = dojo.trim(dojo.byId("user").value);
  var pass = dojo.trim(dojo.byId("password").value);
  if(user == ""  ||  user == default_acceso["user"])
    return;

  if(pass == ""  ||  pass == default_acceso["password"])
    return;

  var tipo = parseInt(dojo.byId("acceso_alumnos").value);

  switch(tipo)
  {
    case 1:  // Alumnos


		//alert("hola");

		var elm_url = document.getElementById('URLDestino');
		elm_url.value = 'http://enet.diocesanas.org/agenda/agenda.asp';

		var elm_pid = document.getElementById('pidExtranet');
		elm_pid.value = '1';

		var elm_idi = document.getElementById('idioma');
		elm_idi.value = '1';


		//alert(elm_url.value);

    	document.forms.frm_login.action= "http://enet.diocesanas.org/a_login.asp";

    	//alert(document.forms.frm_login.action);

		document.forms.frm_login.submit();

     /* location.href = "http://enet.diocesanas.org/a_login.asp?URLDestino="+
            encodeURIComponent("http://enet.diocesanas.org/agenda/agenda.asp?pidExtranet=1&idioma=1") +
            "&user="+ encodeURIComponent(user) +
            "&password="+ encodeURIComponent(pass);*/
      break;

    case 2:  // Padres

		var elm_url = document.getElementById('URLDestino');
		elm_url.value = 'http://enet.diocesanas.org/agenda/agenda.asp';

		var elm_pid = document.getElementById('pidExtranet');
		elm_pid.value = '2';

		var elm_idi = document.getElementById('idioma');
		elm_idi.value = '1';

    	document.forms.frm_login.action= "http://enet.diocesanas.org/a_loginpadres.asp";
    	document.forms.frm_login.submit();

      /*location.href = "http://enet.diocesanas.org/a_loginpadres.asp?URLDestino="+
            encodeURIComponent("http://enet.diocesanas.org/agenda/agenda.asp?pidExtranet=2&idioma=1") +
            "&user="+ encodeURIComponent(user) +
            "&password="+ encodeURIComponent(pass);*/
      break;

    case 3:  // Trabajadores
    	document.forms.frm_login.action= "http://inet.diocesanas.org/index.php/mod.usuarios/mem.login/chk.ae7b899d636339233588132d81ddee56.html";

    	var elm_url = document.getElementById('URLDestino');
		elm_url.value = '';

		var elm_pid = document.getElementById('pidExtranet');
		elm_pid.value = '';

		var elm_idi = document.getElementById('idioma');
		elm_idi.value = '';

    	document.forms.frm_login.submit();

      /*location.href = "http://inet.diocesanas.org/index.php/mod.usuarios/mem.login/chk.ae7b899d636339233588132d81ddee56.html?"+
            "&usuario="+ encodeURIComponent(user) +
            "&password="+ encodeURIComponent(pass);*/
      break;
  }
}

function focusAcceso(obj)
{
  var ss = default_acceso[ obj.id ];
  var txt = dojo.trim(obj.value);
  if(txt == ss)
    obj.value = "";
}

function blurAcceso(obj)
{
  var ss = default_acceso[ obj.id ];
  var txt = dojo.trim(obj.value);
  if(txt == "")
    obj.value = ss;
}

