function displayOrgan(span, geneId, stageId)
{
    var temp = span.id.split("__");
    var organId = temp[1];
    var level =temp[2]; 
    var randomInt = temp[3];
    
    var action = "";
    if (span.className == "hide") {
        action = "ajax_hide_organ";
        span.className = "enlarge";
        span.innerHTML = "<img alt='enlarge' src='/bgee/images/enlarge.png' />";
    } else {
        action = "ajax_show_organ";
        span.className = "hide";
        span.innerHTML = "<img alt='hide' src='/bgee/images/hide.png' />";
    }
    
    var url = getUrlWithDataParameters
        ("gene", action, null, stageId, organId, level, null, geneId);
    if (document.getElementById("jsSearchId")) {
	    url += "search_id=" + 
	        encodeURIComponent(document.getElementById("jsSearchId").value) + "&";
	}
	if (document.getElementById("jsSearchName")) {
	    url += "search_name=" + 
	        encodeURIComponent(document.getElementById("jsSearchName").value) + "&";
	}
	if (document.getElementById("jsExactMatch")) {
	    url += "exact_match=on&";
	}
    
    var xhr = createXhr();
    xhr.onreadystatechange = function() { 
         document.getElementById("childrenContainer__" + 
                     organId + "__" + randomInt).innerHTML = "<p class='organLevel_" + level + 
                     "'>Loading... <img class='ajaxBusy' src='/bgee/images/wait24.gif' alt='Loading' /></p>";
         if(xhr.readyState == 4) {
              if(xhr.status == 200) {
                 document.getElementById("childrenContainer__" + 
                     organId + "__" + randomInt).innerHTML = xhr.responseText; 
                 loadOrganEvents();
              } else {
                  document.getElementById("childrenContainer__" + 
                     organId + "__" + randomInt).innerHTML = "<p class='organLevel_" + level + 
                     "'>Error</p>";
              }
         } else if(xhr.readyState == 0) {
             document.getElementById("childrenContainer__" + 
                     organId + "__" + randomInt).innerHTML = "<p class='organLevel_" + level + 
                     "'>Error</p>";
         }
    }
    xhr.open("GET", url,  true); 
    xhr.send(null); 
    
}

function displayStage(span, geneId)
{
	var stageId = null;
    var temp = span.id.split("__");
    var stageId = temp[1];
    var action = "";
    if (span.className == "hide") {
        span.className = "enlarge";
        action = "ajax_hide_stage";
        span.innerHTML = "<img alt='enlarge' src='/bgee/images/enlarge.png' />";
    } else {
        action = "ajax_show_stage";
        span.className = "hide";
        span.innerHTML = "<img alt='hide' src='/bgee/images/hide.png' />";
    }
    
    var url = getUrlWithDataParameters
        ("gene", action, null, stageId, null, null, null, geneId);
    
    var xhr = createXhr();
    xhr.onreadystatechange = function() { 
         document.getElementById("childrenContainer__" + stageId).innerHTML = 
             "Loading... <img class='ajaxBusy' src='/bgee/images/wait24.gif' alt='Loading' />";
         if(xhr.readyState == 4) {
              if(xhr.status == 200) {
                 document.getElementById("childrenContainer__" + stageId).innerHTML =
                 	xhr.responseText;
                 loadStageEvents();
              } else {
                  document.getElementById("childrenContainer__" + stageId).innerHTML = "Error";
              }
         } else if(xhr.readyState == 0) {
             document.getElementById("childrenContainer__" + stageId).innerHTML = "Error";
         }
    }
    xhr.open("GET", url,  true); 
    xhr.send(null); 
    
}

function loadOrganEvents()
{
    var divList = document.getElementsByTagName("div");
    var x = 0;
    var stageId = null;
    var organGeneId = null;
    var organContainer = null;
    var organContainerFound = false;
    while (x < divList.length && !organContainerFound) {
        if (divList[x].id.indexOf("organContainer_") != -1) {
            organContainerFound = true;
            var temp = divList[x].id.split("__");
            stageId = temp[1];
            organGeneId = temp[2];
            organContainer = divList[x];
        }
        x++;
    }
    
    if (organContainer) {
        var aList = organContainer.getElementsByTagName("a");
    
        for (var i = 0; i < aList.length; i++) {
            if (aList[i].id.indexOf("ajaxOrgan_") != -1) {
                aList[i].onclick = function() {
                    displayOrgan(this, organGeneId, stageId);
                    return false;
                }
            }
        }
    }
}

function loadStageEvents()
{
    var divList = document.getElementsByTagName("div");
    var x = 0;
    var stageId = null;
    var stageGeneId = null;
    var stageContainer = null;
    var stageContainerFound = false;
    while (x < divList.length && !stageContainerFound) {
        if (divList[x].id.indexOf("stageContainer_") != -1) {
            stageContainerFound = true;
            var temp = divList[x].id.split("_");
            stageGeneId = temp[1];
            stageContainer = divList[x];
        }
        x++;
    }
    
    if (stageContainer) {
        var aList = stageContainer.getElementsByTagName("a");
    
        for (var i = 0; i < aList.length; i++) {
            if (aList[i].id.indexOf("ajaxStage_") != -1) {
                aList[i].onclick = function() {
                    displayStage(this, stageGeneId);
                    return false;
                }
            }
        }
    }
}

function loadAnatomyEvents()
{
	loadOrganEvents();
	loadStageEvents();
}

window.onload = function()
{
    loadCommonEvents();
    loadAnatomyEvents();
}

