(function($) { 

jQuery.ui.epiGeneticsMap = function(options_)
{	    
	var opts = { 
			selector : 'td', 
			elementText : 'Named Annotation' ,
			parentTag: 'tr'
	};
	// Extend default options.
	var options = jQuery.extend( true, opts, options_ );  // extend options
	
	var nodes = [];
	var parents = [];
	var nextSibling = [];
	
	var init = function(){
		this.elementList = jQuery(options.selector+':contains('+options.elementText+')');
		var proceed = false;
		for(i in this.elementList){
			if(this.elementList[i].innerHTML == options.elementText){				
				nodes.push(this.elementList[i]);
				proceed = true;
			}			
		} 
		
		if(!proceed){ return;}
		
		
		var parent = [];
		var ids = [];
		for(i in nodes){
			var node = nodes[i];
			parent = getParent( node );
			var sibling = getNextSibling( node );
			
			parent.css('display','none');		
			ids.push(sibling.text());									
		}		
		
		if(ids[0]){
			var content = getContents(ids);
			var contentsNode = jQuery("<td colspan='2'></td>").append(content);
			var epiNode = jQuery("<tr></tr>").append(contentsNode);			
			parent.after(epiNode);				
		}
		
		jQuery('button#submit2viewer').click(function(){
			var p = jQuery('#selectChromo');
			if(p){
				if(p.val()){
					window.open(p.val());
				}
			}
			return false;
		});
		
	};
	var getContents = function (idList){
		var html = '<div id="seqViewerWrapper">';
		html += '<p><span class="new">*New*</span> See data on NCBI Sequence Viewer:</p>';
		html += '<div class="snapShot"><img src="../img/seqview_snap.jpg" alt="seqview_snap.jpg"/></div>';
		html += createLinks(idList);
		html += "</div>";
		return html;
	}
	var getParent = function( el ){
		return jQuery(el).parent(options.parentTag);	
	}
	var getNextSibling = function( el ){
		return jQuery(el).next(options.selector)	
	}
	
	var createLinks = function(idList){
		var html = '<p><b>Please choose chromosome to see data on NCBI Sequence Viewer </b></p><ul id="seqViewerUL">';
		var matrix = {
				1: {'acc': 'NC_000001.9',gi: 89161185},  
				2: {'acc': 'NC_000002.10',gi: 89161199},
				3: {'acc': 'NC_000003.10',gi: 89161205},
				4: {'acc': 'NC_000004.10',gi: 89161207},     
				5: {'acc': 'NC_000005.8',gi:  51511721},       
				6: {'acc': 'NC_000006.10',gi: 89161210},
				7: {'acc': 'NC_000007.12',gi: 89161213},
				8: {'acc': 'NC_000008.9',gi:  51511724},
				9: {'acc': 'NC_000009.10',gi: 89161216},
				10: {'acc':'NC_000010.9',gi:  89161187},
				11: {'acc':'NC_000011.8',gi:  51511727},
				12: {'acc':'NC_000012.10',gi: 89161190},
				13: {'acc':'NC_000013.9',gi:  51511729},
				14: {'acc':'NC_000014.7',gi:  51511730},
				15: {'acc':'NC_000015.8',gi:  51511731},
				16: {'acc':'NC_000016.8',gi:  51511732},
				17: {'acc':'NC_000017.9',gi:  51511734},
				18: {'acc':'NC_000018.8',gi:  51511735},
				19: {'acc':'NC_000019.8',gi:  42406306},
				20: {'acc':'NC_000020.9',gi:  51511747},
				21: {'acc':'NC_000021.7',gi:  51511750},
				22: {'acc':'NC_000022.9',gi:  89161203},
				X: {'acc': 'NC_000023.9',gi:  89161218},
				Y: {'acc': 'NC_000024.8',gi:  89161220}
		};
		
		
		for(i in matrix){
			html += '<li class="viewerLI">'+
				'<a href="http://www.ncbi.nlm.nih.gov/nuccore/'+
				matrix[i].gi+
				'?report=graph&tracks=key:sequence_track;key:graph_track,annots:'+
				idList.join('|')+
				';key:gene_model_track,RNAs:false,CDSs:false,Exons:false,annots:Unnamed;key:feature_track,subkey:misc_RNA,annots:other"'+
				' target="_new">'+						
				//'<a href="http://www.ncbi.nlm.nih.gov/nuccore/'+matrix[i].gi+'?report=graph&naa='+idList.join(',')+'" target="_new">'+
				i+
				'</a>'+
			'</li>';
			
		}
		
		html += "</ul>";
		return html;
	}

	
	return 	init();	
};

})(jQuery);

jQuery(document).ready(function(){jQuery.ui.epiGeneticsMap();});
