
var taxonomy;
var ROOT_HTDOC = "/cgi-bin/orf";
var CGIBIN_DIR = "/cgi-bin/orf";


function showSelection (show, hide) {
	var show_element = document.getElementById(show);
	var hidden_element = document.getElementById(hide);
	
	show_element.style.display = "block";
	hidden_element.style.display = "none";
}

function show_err(txt) {
	var err = document.getElementById("error-msg");
	err.innerHTML = "Error: "+txt;
	err.style.display = "block";
}

function validate_searchForm(thisForm) {
	var txt = thisForm.q.value;
	txt = txt.replace(/^\s+/, "");
	txt = txt.replace(/\s+$/, "");
	
	if(txt) {
		if(txt.length > 50) {
			show_err("You can only search up to 50 characters!");
			return false;
		}
		if(txt.length < 2) {
			show_err("You can only search at least 2 characters!");
			return false;
		}
	}
	else {
		show_err("Search field should not be empty!");
		return false;
	}
	
	return true;
}



function initialAjax () {
	var xmlHttp;
	try
	{
		// Firefox, Opera 8.0+, Safari
		xmlHttp=new XMLHttpRequest();
	}
	catch (e)
	{
	// Internet Explorer
		try
		{
			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e)
		{
			try
  		{
				xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e)
			{
				alert("ÄúµÄä¯ÀÀÆ÷²»Ö§³ÖAJAX£¡");
				return false;
			}
		}
	}
	return xmlHttp;
}


function get_sequence (acc, taxon,cds_position) {
	var xmlHttp = initialAjax();
	var obj = document.getElementById("sequence-div");

	xmlHttp.onreadystatechange=function()
	{
		if(xmlHttp.readyState==4)
		{
			obj.innerHTML = xmlHttp.responseText;
		} else {
			obj.innerHTML = "Loading ...";
		}
	}
	xmlHttp.open("GET", "/cgi-bin/orf/sequence.pl?acc="+acc+"&cds_position="+cds_position,true);
	xmlHttp.send(null);
}

function addTerm (formid) {
	var ul_element = document.getElementById("advanced-search-term-list");
//	var n_term = ul_element.getElementsByTagName("li").length;
	var n_term = $(ul_element).children("li:last").attr("id");
	n_term = parseInt(n_term) + 1;
	if(n_term < 5)
	{
		var li=document.createElement("li"); 
		ul_element.appendChild(li);
		
		li.setAttribute("class", "multiselection");
		li.setAttribute("id",n_term);
		var s = '<select name="field' + n_term + '" class="form-select">\n' +
				'<option value="all">ALL Fields</option>' +
				'<option value="Symbol">Symbol</option>' +
				'<option value="description">Description</option>' +
				'<option value="chromosome">Chromosome</option>' +
				'<option value="map_location">Map Location</option>\n' +
				"</select>\n" +
				"THAT\n" +
				"<select name=\"matchtype" + n_term + "\" class=\"form-select\">\n" +
				"<option selected=\"selected\" value=\"do\">DO</option>\n" +
				"<option value=\"not\">DO NOT</option>\n" +
				"</option></select>\n" +
				"<select name=\"anchor" + n_term + "\" class=\"form-select\">\n" +
				"<option selected=\"selected\" value=\"contain\">CONTAIN</option>\n" +
				"<option value=\"begin\">BEGIN WITH</option>\n" +
				"<option value=\"end\">END WITH</option>\n" +
				"<option value=\"equal\">EQUAL</option>\n" +
				"</select>\n" +
				"<input type=\"text\" name=\"text" + n_term +"\"  style=\"width:150px; height:18px; line-height:18px; padding:1px;\" />\n" +
				" <span style=\" color:#2647a0; font-weight:bold;\">&nbsp;&nbsp;AND	<a href=\"#\" onclick=\"deleteitem(this)\" class=\"deleteitem\" ><img src=\"/images/orf/tree_dnd_no.gif\" /></a>		</span>\n";
		li.innerHTML = s;
		var n_term_element = document.getElementById("n_term");
		n_term_element.setAttribute("value", n_term);
	}
}

function deleteTerm (obj) {
	var id = $(obj).li.attr('id');
	alert(id);
	var ul_element = document.getElementById("advanced-search-term-list");
	ul_element.removeChild(id);
	//var ul_element = document.getElementById("advanced-search-term-list");
	//var n_term = ul_element.getElementsByTagName("li").length;
	//if(n_term > 1)
	//{
	//	var last_li_element = ul_element.getElementsByTagName("li")[n_term - 1];
	//	ul_element.removeChild(last_li_element);
		
	//	var n_term_element = document.getElementById("n_term");
	//	n_term_element.setAttribute("value", n_term - 1);
	//}
}

function getSpeciesSelection() {
	var xmlHttp = initialAjax();
	var obj1 = document.getElementById("division-selection-1");

	var obj2 = document.getElementById("division-selection-2");
	xmlHttp.onreadystatechange=function() {
		if(xmlHttp.readyState==4) {
			obj1.innerHTML = "";
			obj2.innerHTML = "";
			taxonomy = eval("("+xmlHttp.responseText+")");
			initial_species_selection();
		} else {
			obj1.innerHTML = "Loading Species...";
			obj2.innerHTML = "Loading Species...";
		}
	}
	xmlHttp.open("GET", CGIBIN_DIR + "/get-species.pl",true);
	xmlHttp.send(null);
}

function initial_species_selection() {
	var division = "<span class='front' >Divisions: </span><select class='form-select' onChange='get_taxon_species(this.value, this);'><option value='' selected='selected'>Model organisms</option>";
	for(var key in taxonomy) {
		division += "<option value='"+key+"'>"+key+"</option>";
	}
	division += "</select>";

	var obj1 = document.getElementById("division-selection-1");
	var obj2 = document.getElementById("division-selection-2");
	
	obj1.innerHTML = division;
	obj2.innerHTML = division;
}

function get_taxon_species(division, obj) {
	obj.value = division;
	if(division && taxonomy[division]) {
		var species = "<span class='front'>Species: </span><select  name='species' class='form-select'>";
		for(var i = 0; i < taxonomy[division].length; i ++) {
			if(taxonomy[division][i][1]) {
				species += "<option value='"+taxonomy[division][i][0]+"'>"+taxonomy[division][i][2]+" ("+taxonomy[division][i][1]+")</option>";
			}
			else {
				species += "<option value='"+taxonomy[division][i][0]+"'>"+taxonomy[division][i][2]+"</option>";
			}
		}
		species += "</select>";
		
		if(obj.parentNode.getAttribute("id") == "division-selection-1") {
			document.getElementById("species-selection-1").innerHTML = species;
		}
		else if(obj.parentNode.getAttribute("id") == "division-selection-2") {
			document.getElementById("species-selection-2").innerHTML = species;
		}
	}
	else {
		if(obj.parentNode.getAttribute("id") == "division-selection-1") {
			document.getElementById("species-selection-1").innerHTML = "";
		}
		else if(obj.parentNode.getAttribute("id") == "division-selection-2") {
			document.getElementById("species-selection-2").innerHTML = "";
		}
	}
} 

function show()
{
	$('#myshow').toggle();
}

