Como planeas hacer las lineas...Esto es algo mas o menos complicado en javascript...
A lo mejor esto te ayuda:
http://www.vicsjavascripts.org.uk/Sk.../SketchPad.htm
Ahora, deberás crear grupos de enlace, digamos un class CSS.
Por medio de javascript puedes cambiar El estilo de aquellos que están relacionados, digamos:
.NoSelect{
background-color:#ffcc00;
}
.Selecto{
background-color:#eee;
}
En javascript
:
Inicialmente todos estan en Noselect, Ahora, al hacer un click puedes utilizar el atributo style y le das un color desde javascript, o alternas el css de aquellos relacionados a select.
Digamos:
onclick="this.style.background='#FFCC00'"
Asi seria para una sola capa, ahora para varios... Ya deberías tener un lugar donde consultas cuales están enlazadas(El cual puede ser un XML generado por tu sistema (En PHP, ASP o JSP), solo hay que recorrerlo he ir cambiando los colores a todos...
Algo mas, Como leer XML:
Código:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta content="text/html; charset=iso-8859-1" http-equiv="Content-Type">
<title>Address book</title>
<script type="application/javascript">
var ELEMENT_NODE = 1
//TEXT_NODE
function loadAddresses()
{
xmlDoc = document.implementation.createDocument("", "", null);
xmlDoc.onload = writeList;
xmlDoc.load("labels.xml");
}
function writeList()
{
var labels = xmlDoc.getElementsByTagName('label');
var ol = document.createElement('OL');
for (i=0; i < labels.length; i++)
{
var li = document.createElement('LI');
for (j=0; j < labels[i].childNodes.length; j++)
{
if (labels[i].childNodes[j].nodeType != ELEMENT_NODE) continue;
var cdata = document.createTextNode(
labels[i].childNodes[j].firstChild.nodeValue);
li.appendChild(cdata);
}
var labelId = document.createTextNode('(' +
labels[i].getAttribute('id') + ')');
li.appendChild(labelId);
ol.appendChild(li);
}
document.getElementById('updateTarget').appendChild(ol);
}
</script>
</head>
<body id='updateTarget'>
<p>
<a href="javascript:loadAddresses()">Click here to load addresses</a>
</p>
</body>
</html>
El archivo: labels.xml
Código:
<?xml version="1.0" encoding="iso-8859-1"?>
<labels>
<label id='ep' added="2003-06-10">
<name>Ezra Pound</name>
<address>
<street>45 Usura Place</street>
<city>Hailey</city>
<province>ID</province>
</address>
</label>
<label id='tse' added="2003-06-20">
<name>Thomas Eliot</name>
<address>
<street>3 Prufrock Lane</street>
<city>Stamford</city>
<province>CT</province>
</address>
</label>
<label id="lh" added="2004-11-01">
<name>Langston Hughes</name>
<address>
<street>10 Bridge Tunnel</street>
<city>Harlem</city>
<province>NY</province>
</address>
</label>
<label id="co" added="2004-11-15">
<name>Christopher Okigbo</name>
<address>
<street>7 Heaven's Gate</street>
<city>Idoto</city>
<province>Anambra</province>
</address>
</label>
</labels>
Espero te sea util...