<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html xmlns="http://www.w3.org/1999/xhtml"lang="es" xml:lang="es">
<head>
<meta name="http-equiv" content="Content-type: text/html; charset=UTF-8"/>
<style type="text/css">
.color0 {background: orange;}
.color1 {background: yellow;}
</style>
<script type="text/javascript">
var ns4 = (document.layers)? true:false
var ie4 = (document.all)? true:false
var ns6 = (document.getElementById)? true:false
 
function captura_objeto(idnombre) {
    if (ns6) {
    return document.getElementById(idnombre);
    } else if (ie4) {
    return document.all[idnombre];
    } else if (ns4) {
    return document.layers[idnombre];
    } else{
    return null;
    }
}
 
 
 
function creaAjax(){
    var ajaxs = ["Msxml2.XMLHTTP","Msxml2.XMLHTTP.4.0","Msxml2.XMLH TTP.5.0","Msxml2.XMLHTTP.3.0","Microsoft.XMLHTTP"];
    var ajax = false;
    for(var i=0 ; !ajax && i<ajaxs.length ; i++){
        try{ 
            ajax = new ActiveXObject(ajaxs[i]);   // Internet Explorer
        }
        catch(e) { 
            ajax = false; 
        }
    }
    if(!ajax && typeof XMLHttpRequest!='undefined') {
        ajax = new XMLHttpRequest();  // Firefox, Opera 8.0+, Safari
    }
    return ajax;
}
 
 
 
var control = true;
function ActivarDesactivar_campos(Id, bol, acc) {
//alert(bol+ " - " +control);
var Id_tr = captura_objeto(Id);
var td = Id_tr.getElementsByTagName("TD");
var div = Id_tr.getElementsByTagName("DIV");
 
    if(control == bol && bol == true && acc == 0) {
 
        div[1].style.display = (div[1].style.display == 'none') ? 'block' : 'none';
        var elemento1 = document.createElement("INPUT");
        elemento1.setAttribute("type","text");
        elemento1.setAttribute("size","10");
        elemento1.setAttribute("maxlength","20");
        elemento1.setAttribute("name","nombre");
        elemento1.setAttribute("id","nombre");
        elemento1.setAttribute("value", div[1].innerHTML);
        td[1].appendChild(elemento1);
 
        div[2].style.display = (div[2].style.display == 'none') ? 'block' : 'none';
        var elemento2 = document.createElement("SELECT");
        elemento2.setAttribute("size","1");
        elemento2.setAttribute("name","privilegio");
        elemento2.setAttribute("id","privilegio");
        opcioncur = document.createElement("OPTION");
        opcioncur.textContent = "Tipo de Permiso";
        opcioncur.value = div[2].innerHTML;
        elemento2.appendChild(opcioncur);
        opcion1 = document.createElement("OPTION");
        opcion1.textContent = "Alto";
        opcion1.value = "A";
        elemento2.appendChild(opcion1);
        opcion2 = document.createElement("OPTION");
        opcion2.textContent = "Medio";
        opcion2.value = "D";
        elemento2.appendChild(opcion2);
        opcion3 = document.createElement("OPTION");
        opcion3.textContent = "Bajo";
        opcion3.value = "F";
        elemento2.appendChild(opcion3);
        td[2].appendChild(elemento2);
 
control = (bol == true ? false : true);
 
    } else if(control == bol && bol == false && acc == 0) {
 
        var elem1 = document.getElementById("nombre");
        var padre1 = elem1.parentNode;
        padre1.removeChild(elem1);
        div[1].style.display = (div[1].style.display == 'none') ? 'block' : 'none';
 
        var elem2 = document.getElementById("privilegio");
        var padre2 = elem2.parentNode;
        padre2.removeChild(elem2);
        div[2].style.display = (div[2].style.display == 'none') ? 'block' : 'none';
 
control = (bol == true ? false : true);
        
    } else if(control == bol && bol == false && acc == 1) {
 
 
// --- REVISAMOS LOS VALORES (sin son iguales no se usa Ajax)
var elem1_old = div[1].innerHTML
var elem1 = document.getElementById("nombre");
var elem2_old = div[2].innerHTML
var elem2 = document.getElementById("privilegio");
 
        if (elem1_old == elem1.value && elem2_old == elem2.value) {
            div[1].textContent = elem1_old;
            div[2].textContent = elem2_old;
 
        // ---- ELIMINA LOS ELEMENTOS
            var padre1 = elem1.parentNode;
            padre1.removeChild(elem1);
            var padre2 = elem2.parentNode;
            padre2.removeChild(elem2);
 
        // ---- MUESTRA REGISTRO SIN ACTUALIZAR
            div[1].style.display = (div[1].style.display == 'none') ? 'block' : 'none';
            div[2].style.display = (div[2].style.display == 'none') ? 'block' : 'none';
control = true;
 
        } else {
 
// ---- ACTUALIZA REGISTRO
var url = "Otorgar_Permisos_Ajax.php"
var ajax=creaAjax();
//var elem1 = document.getElementById("nombre");
//var elem2 = document.getElementById("privilegio");
ajax.open('POST',url,true);
ajax.onreadystatechange = function() {
 
            if (ajax==null){
                alert ("Tu navegador web no soporta AJAX!");
                return;
            }
 
            if (ajax.readyState==1 || ajax.readyState==2 || ajax.readyState==3){
 
                    } else if (ajax.readyState==4) {
                            if (ajax.status==200) {        
                    var valores = unescape(ajax.responseText);  
                    div[1].textContent = valores.split(",")[0];
                    div[2].textContent = valores.split(",")[1];
 
            // ---- ELIMINA LOS ELEMENTOS
                    var padre1 = elem1.parentNode;
                    padre1.removeChild(elem1);
                    var padre2 = elem2.parentNode;
                    padre2.removeChild(elem2);
 
            // ---- MUESTRA REGISTRO ACTUALIZADO
                    div[1].style.display = (div[1].style.display == 'none') ? 'block' : 'none';
                    div[2].style.display = (div[2].style.display == 'none') ? 'block' : 'none';
 
                            } else if (ajax.status==404) {
                                            alert("La dirección no existe");
 
                                                    } else {
                                        alert("Se ha producido un error");
                                                    }
                                        }
                    }
control = true;
    
    ajax.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
            ajax.setRequestHeader('Content-Length', Id_tr.length);  
    ajax.send('id='+Id+'&nombre='+escape(elem1.value)+'&nombre_old='+escape(div[1].innerHTML)+'&privilegio='+escape(elem2.value)+'&privilegio_old='+escape(div[2].innerHTML));
            return;
        }
    }
}
</script>
</head> 
<body> 
<table width="100%" border="1px">
<tr>
<th></th>
<th>ID</th>
<th>NOMBRE</th>
<th>PRIVILEGIOS</th>
</tr>
 
<?php 
include($_SERVER["DOCUMENT_ROOT"]."/ink_utiles/ink_comunesbd.php");  
$bd = new ClassConexionBD('database');
$bd->ConexionBD();
 
$sql = $bd->consulta("SELECT Id, nombre, privilegio FROM Usuarios");
 
    if($bd->RS($sql)>0) {  
$tabla = 0;
        while($registros = $bd->arreglo($sql)){  
$resto = ($tabla % 2);
            switch ($resto) { // Coloreamos cada tr        
                case 0: $estilo = "color0"; break;        
                case 1: $estilo = "color1"; break;
            }
 
//------------------------- Valores de la consulta -------------------------
?>
<tr width="100%" id="<?=$registros["Id"]?>">
<th><img src="./cancelar.gif" onclick="javascript:ActivarDesactivar_campos(<?=$registros["Id"]?>, false, 0);" /> <img src="./editar.gif" onclick="javascript:ActivarDesactivar_campos(<?=$registros["Id"]?>, false, 1);" /> <img src="./mostar.gif" onclick="javascript:ActivarDesactivar_campos(<?=$registros["Id"]?>, true, 0);" /></th>
<td id="td_<?=$tabla?>[]" class="<?=$estilo?>">
<div id="<?=$tabla?>[]" style="display:block;"><?=$registros["Id"]?></div>
</td>
<td id="td_<?=$tabla?>[]" class="<?=$estilo?>">
<div id="<?=$tabla?>[]" style="display:block;"><?=$registros["nombre"]?></div>
</td>
<td id="td_<?=$tabla?>[]" class="<?=$estilo?>">
<div id="<?=$tabla?>[]" style="display:block;"><?=$registros["privilegio"]?></div>
</td>
</tr>
<?php
$tabla++;
//------------------------------------------------------
        }
    }
$bd->limparRS($sql);
$bd->limpiarCon();
?>
</table>
</body> 
</html>