// Dojo requires
dojo.require("dijit.Tooltip");
dojo.require("dojo.parser");	// scan page for widgets and instantiate them

var NUM_MARKERS = 7;
var NUM_BUCKETS = 5;
var genome = new Array(NUM_MARKERS);
var genome_id = 'user';
var tooltip_id = null;
var tooltip_closer = '<div class="tooltip_closer"><img onclick="hideGenomeDigitTooltip()" src="/@@/vortexwebgenomeproject/images/closer.gif"/></div>';

function toggleGenomeDigitTooltip (el) {
	var tooltip = dijit.byId('description_tooltip');
	var id = parseInt(el.id.split('_')[2]);
	
	if (!tooltip_id || id != tooltip_id) {
		displayGenomeDigitTooltip (el);
		tooltip_id = id;
	}
	else {
		hideGenomeDigitTooltip();
		tooltip_id = null;
	}
}

function displayGenomeDigitTooltip (el) {
	
	// Get the genome
	var genomeEl = dojo.byId('user_genome');
	if (!genomeEl) {
		// No user genome so use the globally stored genome.
		genome = wgp_globals['global_genome'];
		genome_id = 'random';
	}
	else {
		genome = decodeGenomeString(genomeEl.value);
	}

	// Display some text for the genome digit we're hovering over.
	if (!el) return;
	var id = parseInt(el.id.split('_')[2]);
	var digit = genome[id - 1];
	var text;
	
	// Get the explanation for this marker.
	var exp = dojo.byId('pos_exp_' + id).innerHTML;	
	
	// Get the text for this digit
	switch (digit) {
		case 1:
		case 2:
			text = dojo.byId('desc_' + id + '_low').innerHTML;
			break;
		case 3:
			text = dojo.byId('desc_' + id + '_med').innerHTML;
			break;
		case 4:
		case 5:
			text = dojo.byId('desc_' + id + '_high').innerHTML;
			break;
	}
	
	// Replace some of the content of the popup.
	text = text.replace("[digit]", digit);

	if (genome_id == 'global') {
		var lbl = getNodeText(dojo.byId('position_label_' + id));
		text = text.replace("[subject]", 'The display genome\'s');	
		text = text.replace("[prompt]", '<br/><br/>Download the MyWebDNA extension to find out your ' + lbl + ' number!');
	}
	else {
		text = text.replace("[subject]", 'Your');			
		text = text.replace("[prompt]", '');			
	}

	// Display it.
	var tooltip = dijit.byId('description_tooltip');
	tooltip.domNode.innerHTML = tooltip_closer + exp + text;
	tooltip.connectId = el.id;
	tooltip.open(el);
}

function hideGenomeDigitTooltip() {
	var tooltip = dijit.byId('description_tooltip');
	tooltip.close();	
}
		
function getNodeText(node) {
	if (node.textContent) {
		return node.textContent;
	}
	else {
		return node.firstChild.data;
	}
}

function decodeGenomeString(genomeString) {
	var garr = new Array();
	for (var i=0; i<genomeString.length; i++) {
		garr.push(parseInt(genomeString.substr(i, 1)));
	}
	return garr;
}