function createRequestObject() {
    var ro;
    if(window.ActiveXObject){
        ro = new ActiveXObject("Microsoft.XMLHTTP");
    } else if (window.XMLHttpRequest) {
        ro = new XMLHttpRequest();
    }
    return ro;
}

var http;

function sndReq(id,file) {
	// delete node if it exist
	if (document.getElementById("desc_"+id)) {
		document.getElementById(id).removeChild(document.getElementById("desc_"+id));
	} else {
		http = createRequestObject();
		http.open('get', file+'?id='+id);
		http.onreadystatechange = handleResponse;
		http.send(null);
    }
}
var currNode;
function handleResponse() {
    if(http.readyState == 4){
        var response = http.responseXML;

       if (response != null) {
         	var idNode = response.getElementsByTagName("id");
			var id = idNode[0].firstChild.nodeValue;
         	var descNode = response.getElementsByTagName("desc");
			var desc = descNode[0].firstChild.nodeValue;
            var item = document.getElementById(id);
			var newNode = document.createElement("div");
			newNode.className = "desc";
			newNode.id = "desc_"+id;
			newNode.innerHTML = desc;
			item.appendChild(newNode);
			currNode = newNode;
			//loadColor(239,215,153);
        }
    }
}

function loadColor(r,g,b) {
	currNode.style.backgroundColor = "rgb("+r+","+g+","+b+")";
	if (r < 255 || g < 255 || b < 255) {
		// make sure no channel go over 255
		if (r == 255) r = 254;
		if (g == 255) g = 254;
		if (b == 255) b = 254;
		setTimeout( "loadColor("+(r+2)+","+(g+2)+","+(b+2)+")" , 0 );
	}
}
