function showProtein(protein) {
	var ret = "";
	for(var k = 0; k < protein.length; k++) {
		ret = (ret + protein[k] + '--');
	}
	return ret;
}

function checkIncludedStrains(inputVal, type) {
	if(type == "DATASET") {
		if(checkedIncludedDatasets[inputVal] == undefined || !checkedIncludedDatasets[inputVal]) {
			checkedIncludedDatasets[inputVal] = true;
		}
		else {
			checkedIncludedDatasets[inputVal] = false;
		}
	}
	if(type == "DRUG") {
		if(checkedIncludedDrugs[inputVal] == undefined || !checkedIncludedDrugs[inputVal]) {
			checkedIncludedDrugs[inputVal] = true;
		}
		else {
			checkedIncludedDrugs[inputVal] = false;
		}
	}
	var drugStrains = new Object();
	var datasetStrains = new Object();
	var datasetsChecked = false;
	var drugsChecked = false;
	for(drug in checkedIncludedDrugs) {
		if(checkedIncludedDrugs[drug]) {
			var strains = drugResistanceMap[drug];
			for(var i = 0; i < strains.length; i++ ) {
				var strain = strains[i];
				drugStrains[strain] = true;
				drugsChecked = true;
			}
		}
	}
	for(dataset in checkedIncludedDatasets) {
		if(checkedIncludedDatasets[dataset]) {
			var strains = datasetMap[dataset];
			for(var i = 0; i < strains.length; i++) {
				datasetStrains[strains[i]] = true;
				datasetsChecked = true;
			}	
		}
	}
	var strainsToCheck = new Object();

	for(var strain in allStrains) {
		if(drugsChecked && datasetsChecked) {
			if(drugStrains[strain] && datasetStrains[strain]) {
				strainsToCheck[strain] = true;
			}
		}
		else if(drugsChecked && drugStrains[strain]) {
			strainsToCheck[strain] = true;			
		}
		else if(datasetsChecked && datasetStrains[strain]) {
			strainsToCheck[strain] = true;
		}	
	}
	var theTbody = document.getElementById("included_strains_tbody");
	for(var i = theTbody.rows.length; i > 0;i--) {
		theTbody.deleteRow(i -1);
	}
	for(var strain in allStrains) {
		if(strainsToCheck[strain] ){
			var row = document.createElement("tr");
			theTbody.appendChild(row);
			var checkbox_cell = document.createElement("td");
			row.appendChild(checkbox_cell);
			var checkbox = document.createElement("input");
			checkbox.setAttribute("type","checkbox");
			var isChecked = false;
			if(includedStrains[strain] == 'undefined') isChecked = false;
			else isChecked = includedStrains[strain];
			if(isChecked) checkbox.setAttribute("checked", true);
			checkbox.setAttribute("name",strain + "_included");
			checkbox.setAttribute("id",strain+"_included");
			checkbox.setAttribute("onclick","checkIncludedStrain('" + strain + "');");
			checkbox_cell.appendChild(checkbox);
			var label_cell = document.createElement("td");
			row.appendChild(label_cell);
			var resistances = strainResistanceMap[strain];
			if(resistances == undefined) resistances = " ";
			var labelText = document.createTextNode(strain + " " + resistances);
			label_cell.appendChild(labelText);	
		}
		else {
			//don't do a thing
		}		
	
	}
	
}

function checkIncludedStrain(strain) {
	if(includedStrains[strain]) {
		includedStrains[strain] = false;
	}
	else {
		includedStrains[strain] = true;
	}
}

function checkExcludedStrain(strain) {
	if(excludedStrains[strain]) {
		excludedStrains[strain] = false;
	}
	else {
		excludedStrains[strain] = true;
	}
}


function checkExcludedStrains(inputVal, type) {
	if(type == "DATASET") {
		if(checkedExcludedDatasets[inputVal] == undefined || !checkedExcludedDatasets[inputVal]) {
			checkedExcludedDatasets[inputVal] = true;
		}
		else {
			checkedExcludedDatasets[inputVal] = false;
		}
	}
	if(type == "DRUG") {
		if(checkedExcludedDrugs[inputVal] == undefined || !checkedExcludedDrugs[inputVal]) {
			checkedExcludedDrugs[inputVal] = true;
		}
		else {
			checkedExcludedDrugs[inputVal] = false;
		}
	}
	var drugStrains = new Object();
	var datasetStrains = new Object();
	var datasetsChecked = false;
	var drugsChecked = false;
	for(drug in checkedExcludedDrugs) {
		if(checkedExcludedDrugs[drug]) {
			var strains = drugResistanceMap[drug];
			for(var i = 0; i < strains.length; i++ ) {
				var strain = strains[i];
				drugStrains[strain] = true;
				drugsChecked = true;
			}
		}
	}
	for(dataset in checkedExcludedDatasets) {
		if(checkedExcludedDatasets[dataset]) {
			var strains = datasetMap[dataset];
			for(var i = 0; i < strains.length; i++) {
				datasetStrains[strains[i]] = true;
				datasetsChecked = true;
			}	
		}
	}
	var strainsToCheck = new Object();

	for(var strain in allStrains) {
		if(drugsChecked && datasetsChecked) {
			if(drugStrains[strain] && datasetStrains[strain]) {
				strainsToCheck[strain] = true;
			}
		}
		else if(drugsChecked && drugStrains[strain]) {
			strainsToCheck[strain] = true;			
		}
		else if(datasetsChecked && datasetStrains[strain]) {
			strainsToCheck[strain] = true;
		}	
	}

	var theTbody = document.getElementById("excluded_strains_tbody");
	for(var i = theTbody.rows.length; i > 0;i--) {
		theTbody.deleteRow(i -1);
	}
	for(var strain in allStrains) {
		if(strainsToCheck[strain]){
			var row = document.createElement("tr");
			theTbody.appendChild(row);
			var checkbox_cell = document.createElement("td");
			row.appendChild(checkbox_cell);
			var checkbox = document.createElement("input");
			checkbox.setAttribute("type","checkbox");
			var isChecked = false;
			if(excludedStrains[strain] == 'undefined') isChecked = false;
			else isChecked = excludedStrains[strain];	
			if(isChecked) checkbox.setAttribute("checked", true);
			checkbox.setAttribute("name",strain + "_excluded");
			checkbox.setAttribute("id",strain+"_excluded");
			checkbox.setAttribute("onclick","checkExcludedStrain('" + strain + "');");
			checkbox_cell.appendChild(checkbox);
			var label_cell = document.createElement("td");
			row.appendChild(label_cell);
			var resistances = strainResistanceMap[strain];
			if(resistances == undefined) resistances = " ";
			var labelText = document.createTextNode(strain + " " + resistances);
			label_cell.appendChild(labelText);	
		}
		else {
			//don't do a thing
		}		
	}
}

function setAllStrains(type, value) {
	var theDiv = document.getElementById(type);
	var checkboxes = theDiv.getElementsByTagName("input");
	for(var i = 0; i < checkboxes.length; i++) {
		if(value) checkboxes[i].checked = true;
		else checkboxes[i].checked = false;
		var name = checkboxes[i].name;
		var strain = name.substring(0, name.indexOf("_" + type));
		if(type == 'included') {
			includedStrains[strain] = value;
		}
		else {
			excludedStrains[strain] = value;
		}
	}
}

/**
 * This may not be necessary
 */
function showDrugResistances(theStrain) {
	var out = theStrain;
	var first = true;
	for(var drug in drugResistanceMap) {
		var strains = drugResistanceMap[drug];
		for(var i = 0; i < strains.length; i++) {
			aStrain = strains[i];
			if(aStrain == theStrain) {
				if(first) {
					out += " (";
					first = false;
				}
				else {
					out += ",";
				}
				out += aStrain;
			}
		}
	}
	if(!first) {
		out += ")";
	}
	return out;	
}

function evalCheck() {
		var ch1 = document.getElementById("proteinCheck").checked; 
		var ch2 = document.getElementById("genomicCheck").checked;

		var proteins = $(".protein");
		var nucleotides = $(".genomic");
		var rowState = 0;

		
		if (ch1) {
			proteins.show();
			rowState++;    
		} else {
			proteins.hide();
			
		}
		
		if (ch2) {
			nucleotides.show();
			rowState++;    
		} else {
			nucleotides.hide();
		}
		
		var hght = rowState*20;
		$(".label").css("height",hght);
			
			
	}	


var currentPosition;
var numPositions;

function move(direction)
{
	if (direction && (currentPosition < numPositions))
	  currentPosition++;
	else if (!direction && (currentPosition > 0))
	  currentPosition--;
	return "#snp"+currentPosition;
}

function dumpTable(tableId) {
	var outWindow = window.open("","Tab-Delimited Table Data","width=600,height=400,status=yes,status=yes,resizable=yes,scrollbars=yes");
	var odoc = outWindow.document;
	var out = "<pre>"
	var table = this.document.getElementById(tableId);
	var headers = table.getElementsByTagName('th');
	var first =  true;
	for(var i = 0; i < (headers.length -1); i++) {
		if(first) {
			first = false;
		}
		else out += "\t";
		var header = headers[i];
		var t = header.innerHTML;
		out += t;
	}
	out += "\n";
	var $rows = $("#" + tableId).find("tr");
	for(var j = 1; j < $rows.length; j++) {
		var $row = $rows[j];
		var $cells = $($row).find("td");
		first = true;
		for(var k = 0; k < ($cells.length -1); k++)	{
			var $cell = $cells[k];
			var $t = $($cell).text().replace(/\s+/g,'');
			if(first) {
				first = false;
			}
			else out += "\t";
			out += $t;
		}
		out += "\n";	
	}
	out += "</pre>";
	odoc.write(out);
	odoc.close();
}



