if (Drupal.jsEnabled) {
   
   $(document).ready(function(){
	   // If Anlaysis admin page is shown, get the settings for selected database
	   if ($("#edit-blastdb")[0]) {
		   tripal_update_regex($("#edit-blastdb")[0]);
		   tripal_set_genbank_style();
	   }
      // hide the alignment information on the blast results box
      $(".tripal_analysis_blast-info-hsp-desc").hide();

   });
  
   //------------------------------------------------------------
   // Update the blast results based on the user selection
   function tripal_update_blast(link,db_id){
      tripal_startAjax();
      $.ajax({
         url: link.href,
         dataType: 'json',
         type: 'POST',
         success: function(data){         
            $("#blast_db_" + db_id).html(data.update);
            $(".tripal_analysis_blast-info-hsp-desc").hide();
            tripal_stopAjax();
         }
      });
      return false;
   }

   //------------------------------------------------------------
   // Update the blast results based on the user selection
   function tripal_blast_toggle_alignment(analysis_id,hit_id){
      var alignment_box = $("#tripal_analysis_blast-info-hsp-desc-"+analysis_id+"-"+hit_id);
      var toggle_img = $("#tripal_analysis_blast-info-toggle-image-"+analysis_id+"-"+hit_id);
	   var icon_url = toggle_img.attr("src");


      if (alignment_box.is(':visible')) {
         alignment_box.fadeOut('fast');
	      var changed_icon_url = icon_url.replace(/arrow_d.png/,"arrow_r.png");
	      toggle_img.attr("src", changed_icon_url);
	   } else {
         var width = alignment_box.parent().width();
         alignment_box.css("width", width+'px');
         alignment_box.fadeIn('slow');
	      var icon_url = icon_url.replace(/arrow_r.png/,"arrow_d.png");
	      toggle_img.attr("src", icon_url);
	   }
      return false;
   }
   
   //------------------------------------------------------------
   // Update regular expression for selected database
   function tripal_update_regex(options){
	   // Get the dbname from DOM
	   var index = options.selectedIndex;
	   var dbid = options[index].value;

	   // Form the link for the following ajax call	   
      var baseurl = tripal_get_base_url();
      var link = baseurl + '/tripal_blast_regex/' + dbid;
	   
	   // Make ajax call to retrieve regular expressions
	   $.ajax( {
			url : link,
			dataType : 'json',
			type : 'POST',
			success : tripal_set_parser,
		});
	}
   
   // Set parser for the admin page
   function tripal_set_parser(data) {
	   // Set title if it exists
	   if (data.name) {
			$("#edit-displayname").val(data.name);
	   } else {
			$("#edit-displayname").val("");
	   }
		
	   // If genbank_style is TRUE, check the Genbank style box, clear all regular expressions, and disable
	   // the text fields
	   if (data.genbank_style == 1) {
		   $("#edit-gb-style-parser").attr("checked", true);
		   $("#edit-hit-id").val("");
		   $("#edit-hit-def").val("");
		   $("#edit-hit-accession").val("");
		
	   // Otherwise, uncheck the Genbank style box and set the regular expressions
	   } else {
			$("#edit-gb-style-parser").attr("checked", false);
			if (data.reg1) {
				$("#edit-hit-id").val(data.reg1);			
			// Show default hit-id parser if it's not set
			} else {
				$("#edit-hit-id").val("^(.*?)\s.*$");
			}
			if (data.reg2) {
				$("#edit-hit-def").val(data.reg2);
			// Show default hit-def parser if it's not set
			} else {
				$("#edit-hit-def").val("^.*?\s(.*)$");
			}
			if (data.reg3) {
				$("#edit-hit-accession").val(data.reg3);			
			// Show default hit-accession parser if it's not set
			} else {
				$("#edit-hit-accession").val("^(.*?)\s.*$");
			}
		}
		tripal_set_genbank_style();  
   }
   // ------------------------------------------------------------
   // Use genbank style parser. Hide regular expression text feilds
   function tripal_set_genbank_style (){
	  // Disable regular expressions if genbank style parser is used (checked)
	  if ($("#edit-gb-style-parser").is(":checked")) {
		  $("#edit-hit-id-wrapper > label").css("color", "grey");
		  $("#edit-hit-def-wrapper > label").css("color", "grey");
		  $("#edit-hit-accession-wrapper > label").css("color", "grey");
		  $("#edit-hit-id").attr('disabled', 'disabled');
		  $("#edit-hit-def").attr('disabled', 'disabled');
		  $("#edit-hit-accession").attr('disabled', 'disabled');
	  } else {
		  $("#edit-hit-id-wrapper > label").css("color", "black");
		  $("#edit-hit-def-wrapper > label").css("color", "black");
		  $("#edit-hit-accession-wrapper > label").css("color", "black");
		  $("#edit-hit-id").removeAttr('disabled');
		  $("#edit-hit-def").removeAttr('disabled');
		  $("#edit-hit-accession").removeAttr('disabled');
	  }
   }
   // -------------------------------------------------------------
   // Function that toggles the blast droppable subbox content
   function tripal_set_blast_subbox(db_id){
	  
	  $('.blast-hit-arrow-icon').hover(
	     function() {
	        $(this).css("cursor", "pointer");
	     },
	     function() {
	        $(this).css("cursor", "pointer");
	     }
	  );
     $('.blast-hit-arrow-icon').click(function() {
	        
     });
   }
   
   	//------------------------------------------------------------
	// Update the blast best hit report for selected page and sorting
	function tripal_update_best_hit_report(obj, analysis_id, sort, descending, per_page){
		var page = obj.selectedIndex + 1;
		var baseurl = location.href.substring(0,location.href.lastIndexOf('/tripal_blast_report/'));
		var link = baseurl + '/tripal_blast_report/' + analysis_id + "/" + page + "/" + sort + "/" + descending + "/" + per_page;

		tripal_startAjax();
		$.ajax({
			url: link,
			dataType: 'html',
			type: 'POST',
			success: function(data){
				var d = document.createElement('div');
				d.innerHTML = data;
				var divs = d.getElementsByTagName("div");
				for (var i = 0; i < divs.length; i ++) {
					if (divs[i].getAttribute('id') == 'blast-hits-report') {	
						var report_table = document.getElementById('blast-hits-report');
						report_table.innerHTML = divs[i].innerHTML;
						var table_breport = document.getElementById('tripal_blast_report_table');
						var sel = document.getElementById('tripal_blast_report_page_selector');
						sel.options[page - 1].selected = true;
						tripal_stopAjax();
					}
				}
			}
		});
		
		return false;
	}
}