/*-------------------------GLOBALS-------------------------*/
var mark1;//='HS280WE5';
var mark2;//='Z50993';
var isRs1;
var isRs2;
var isRs;
var chrom_Start;//= 3608018;
var chrom_End;//= 4502019;
var chrom_;//= 'chr1';
var hettype;
var heterozygosity;
var hapmaponly;
var paddist;
var currentRecord = 0;
var ScurrentRecord = 0;
var pagingSize 	= 100;
var recordCount;
var previousPage;
var currentPage;
var currentPageNumber = 1;
var ScurrentPageNumber = 1;
var nextPage;
var active = false;
//MY VARIABLES//
var savedSNP=[];
var savedCount = 0;
var isSelected;
var hapmapList=[];
var totalSNP=0;
var currTotalSNP = 0;
var currSelected=0;
var currChrom=0;
var validTFTD="";
var hapmapTFTD=" bgcolor=#adc2d6";
var avHetTD="< bgcolor=#adc2d6";
var avHetSETD="";
var CEUTD=" bgcolor=#adc2d6";
var CHBTD="";
var JPTTD=" bgcolor=#adc2d6";
var YRITD="";
var locTD="";
var siftTD=" bgcolor=#adc2d6";
var conservTD="";
var outdata;
var currButton = '';
var currLocCheck='not-set';
var currValid = 'not-set';
var currHapmap = 'not-set';
//var currLocCheck = 'not-set';
var avHetcurrRangeLo = 'not-set';
var avHetcurrRangeHi = 'not-set';
var avHetSEcurrRangeLo = 'not-set';
var avHetSEcurrRangeHi = 'not-set';
var CEUcurrRangeLo  = 'not-set';
var CEUcurrRangeHi = 'not-set';
var CHBcurrRangeLo  = 'not-set';
var CHBcurrRangeHi = 'not-set';
var JPTcurrRangeLo  = 'not-set';
var JPTcurrRangeHi = 'not-set';
var YRIcurrRangeLo  = 'not-set';
var YRIcurrRangeHi = 'not-set';
var siftcurrRangeLo = 'not-set';
var siftcurrRangeHi = 'not-set';
var conservcurrRangeLo = 'not-set';
var conservcurrRangeHi = 'not-set';

var my_rval_str = "";
var my_rval_id = "";
var my_rval_hap = "";
var lastState = 0;
var currUrl = '';
var imageActive = false;
var activeLoadSaved = false;
var F_unknown = 0;
var F_locus_region = 0;
var F_coding = 0;
var F_coding_synon = 0;
var F_coding_nonsynon = 0;
var F_mrna_utr = 0;
var F_intron = 0;
var F_splice_slice = 0;
var F_reference = 0;
var F_exception = 0;
var selectAllFlag = 0;
var saveDescription = '';
var clickChanged = 1;
var imageDone=1;
var  initFlag=1;
var getDataActive;
var gettingImg=0;
var setInitDisplay = 0;
var reEval=1;
/*var updateButton = 'style="font-size: 10px;"';
  var clearButton = 'style="font-size: 10px;"';
  var showAllButton = 'style="font-size: 10px;"';
  var selectButton = 'style="font-size: 10px;"';
  var unselectButton = 'style="font-size: 10px;"';
  var selectAllButton = 'style="font-size: 10px;"';
  var saveButton = 'style="font-size: 10px;"';*/
/*---------------------------------------------------------------*/
var fromSave = 0;
var isGuest = 0;

function snpData(){
  var name = '';
  var hapmap = null;
  var ID = null;

}

function init() {
  //$('tester2').innerHTML="<BR>HELLO WORLD!!!!<BR>";
  getInitData();
  /*
  setTimeout(
	     function(){
	       showNavigation();
	       $('tester2').innerHTML="init ... onComplete2";
	       getTableData();
	       $('tester2').innerHTML="init ... onComplete3";
	       getRecordCount();   
	       
	       $('tester2').innerHTML="init ... onComplete4";
	       setTimeout(
			  function() {
			    getNextData();
			    //showNavigation();
			    
			  }, 50
			  );
	     }, 50
	     );*/
}


function cpySendArrayToString(){
  //$('tester2').innerHTML = "in cypSendArray";
  my_rval_str = '';
  my_rval_id = '';
  my_rval_hap = '';
  for(var i=1; i<=currTotalSNP; i++){
    if(savedSNP[i] != null){
      my_rval_str += savedSNP[i].name + ":";
      my_rval_id += savedSNP[i].ID + ":";
      if(savedSNP[i].hapmap){
	my_rval_hap += "1" + ":";
      }
      else{
	my_rval_hap += "0" + ":";
      }
    }
  }

}

////**************************NAVIGATION CONTROLS**********************************////
function getNextPage() {
  //$('tester').innerHTML = "STARTING getNextPage()";
  if(!active) {
    if ((currentRecord + pagingSize) <= currTotalSNP){
      currentRecord += pagingSize;
      currentPageNumber++;
      showNavigation();
      if(getDataActive){
	setInitDisplay=0;
      }
      else{
	previousPage = currentPage;
	currentPage = nextPage;
	drawTable(currentPage, $('view'));
	getNextData();
      }
    }
  }
}

function getPreviousPage() {
  //$('tester').innerHTML = "STARTING getPreviousPage()";
 
  if(!active) {
    if(currentRecord > 0){
      currentRecord -= pagingSize;
      currentPageNumber--;
      showNavigation();
      if(getDataActive){
	setInitDisplay=0;
      }
      else{
	nextPage = currentPage;
	currentPage = previousPage;
	drawTable(currentPage, $('view'));
	getPreviousData();
      }
    }
  }
}
function pageHelp(){
  window.open("selectPageSize.php","Ratting","width=550,height=170,left=150,top=200,toolbar=1,status=1,");
  hideTooltip();
}

function showNavigation() {
  //getRecordCount();
  //$('message').innerHTML="activeCount:" + Ajax.activeRequestCount;
  var endRec = currentRecord+pagingSize;
  var totP = parseInt(currTotalSNP/pagingSize) + 1;
  $('currentRecTop').innerHTML = '<span id="idPage"><a href=javascript:void(0); id="disLinkID" onMouseOver=javascript:enableTooltips("idPage") NAME="SELECT PAGE SIZE" title="  Select Page Size " onClick=javascript:pageHelp(); >Page</a></span> ( ' + currentPageNumber + 'of ' + totP + ' )  Records [ ' + currentRecord + " - "+ endRec + ' ]'; 
  (currentRecord <= 0)
    ?	$('previousLink').style.visibility = 'hidden'
    :	$('previousLink').style.visibility = 'visible';
  //    ((currentRecord + pagingSize) >= recordCount)
  ((currentRecord + pagingSize) >= currTotalSNP)
    ?	$('nextLink').style.visibility = 'hidden'
    :	$('nextLink').style.visibility = 'visible';

}


////*****************************SERVER COMMUNICATION FUNCTIONS**************************************////
function saveData(){
  //$('message').innerHTML = 'save: mark1='+mark1+'&mark2='+mark2+'&action=page&paddist=' + paddist + '&hapmaponly=' + hapmaponly + '&hettype=' + hettype + '&heterozygosity=' + heterozygosity + '&avHetLo=' + avHetcurrRangeLo + '&avHetHi=' + avHetcurrRangeHi + '&avHetSEHi=' + avHetSEcurrRangeHi + '&avHetSELo=' + avHetSEcurrRangeLo + '&CEULo=' + CEUcurrRangeLo + '&CEUHi=' + CEUcurrRangeHi + '&CHBLo=' + CHBcurrRangeLo + '&CHBHi=' + CHBcurrRangeHi + '&JPTLo=' + JPTcurrRangeLo + '&JPTHi=' + JPTcurrRangeHi + '&YRILo=' + YRIcurrRangeLo + '&YRIHi=' + YRIcurrRangeHi + '&siftLo=' + siftcurrRangeLo + '&siftHi=' + siftcurrRangeHi+ '&conservLo=' + conservcurrRangeLo+ '&conservHi=' + conservcurrRangeHi + '&my_rval_str=' + my_rval_str + '&rval_cnt=' + currSelected + '&unknown=' + F_unknown+ '&locus_region=' + F_locus_region+ '&coding='+F_coding+ '&coding_synon=' + F_coding_synon+ '&coding_nonsynon=' + F_coding_nonsynon+ '&mrna_utr=' + F_mrna_utr+ '&intron=' + F_intron+ '&splice_slice=' + F_splice_slice+'&reference=' + F_reference+ '&exception=' + F_exception+'&my_rval_id=' + my_rval_id + '&description=' + saveDescription + '&validation=' + currValid + '&hapmap=' + currHapmap + '&isRs=' + isRs + '&my_rval_hap=' + my_rval_hap;

  var myAjax1 = new Ajax.Request(
				 'saveP.php',
				 {
				 method: 'post', 
				     asynchronous:true,
				     postBody: 'mark1='+mark1+'&mark2='+mark2+'&action=page&paddist=' + paddist + '&hapmaponly=' + hapmaponly + '&hettype=' + hettype + '&heterozygosity=' + heterozygosity + '&avHetLo=' + avHetcurrRangeLo + '&avHetHi=' + avHetcurrRangeHi + '&avHetSEHi=' + avHetSEcurrRangeHi + '&avHetSELo=' + avHetSEcurrRangeLo + '&CEULo=' + CEUcurrRangeLo + '&CEUHi=' + CEUcurrRangeHi + '&CHBLo=' + CHBcurrRangeLo + '&CHBHi=' + CHBcurrRangeHi + '&JPTLo=' + JPTcurrRangeLo + '&JPTHi=' + JPTcurrRangeHi + '&YRILo=' + YRIcurrRangeLo + '&YRIHi=' + YRIcurrRangeHi + '&siftLo=' + siftcurrRangeLo + '&siftHi=' + siftcurrRangeHi+ '&conservLo=' + conservcurrRangeLo+ '&conservHi=' + conservcurrRangeHi + '&my_rval_str=' + my_rval_str + '&rval_cnt=' + currSelected + '&unknown=' + F_unknown+ '&locus_region=' + F_locus_region+ '&coding='+F_coding+ '&coding_synon=' + F_coding_synon+ '&coding_nonsynon=' + F_coding_nonsynon+ '&mrna_utr=' + F_mrna_utr+ '&intron=' + F_intron+ '&splice_slice=' + F_splice_slice+'&reference=' + F_reference+ '&exception=' + F_exception+'&my_rval_id=' + my_rval_id + '&description=' + saveDescription + '&validation=' + currValid + '&hapmap=' + currHapmap + '&isRs=' + isRs + '&my_rval_hap=' + my_rval_hap, 
				     onComplete: function(response) {
				     $('message').innerHTML = '<font color=blue><b> SAVED DATA <b></font>';
				     drawTable(currentPage, $('view'));
				   }
				 });
}

function getImageUrl() {
  //$('tester').innerHTML = 'chromStart='+chrom_Start+'&chromEnd='+chrom_End+'&chrom='+chrom_+'&my_rval_str='+my_rval_str+'&rval_cnt='+currSelected;
  var myAjax2 = new Ajax.Request(
				 'flowP.php', 
				 {
				 method: 'post', 
				     asynchronous:true,
				     postBody: 'chromStart='+chrom_Start+'&chromEnd='+chrom_End+'&chrom='+chrom_+'&my_rval_str='+my_rval_str+'&rval_cnt='+currSelected, 
				     onComplete: function(response) {
					
				     currUrl = response.responseText ; 
				     /** IMPORTANT!!! MUST DO HOUSEKEEPING TO DELETE SAVED IMAGES!!!! **/
				     //imageActive = false;
				     //clickChanged--;
				     imageDone=1;
				     //$('tester2').innerHTML = 'currUrl=' + currUrl;    
				   }
				 });
}

function getRecordCount() {
  var myAjax3 = new Ajax.Request(
				 'flowP.php', 
				 {
				 method: 'post', 
				     asynchronous:true,
				     postBody: 'mark1='+mark1+'&mark2='+mark2+'&action=count&isRs='+isRs, 
				     onComplete: function(response) {
				     currTotalSNP = response.responseText;
				     if(currTotalSNP >= 50000){
				       $('message').innerHTML = '<FONT Color=red><B>MORE THAN 50000 SNPS ... ONLY RETURNING 50000</B></FONT>';
				     }
				     $('totalSNP').innerHTML = currTotalSNP;
				   }
				 });

}

function getInitData() {
  //$('tester').innerHTML = 'getInitData->sending ... : flowP.php?mark1='+mark1+'&mark2='+mark2+'&action=init&current='+currentRecord+'&size='+pagingSize+'&paddist=' + paddist + '&hapmaponly=' + hapmaponly + '&hettype=' + hettype + '&heterozygosity=' + heterozygosity + '&isRs=' + isRs;
  //if(!activeLoadSaved){
  //active = true;
  //  var setInitDisplay = 0;

  
  var setInitStore = 0;
  var initRecCount = 0;
  var locPage;
  getDataActive=true;


  $('loadDiv').style.visibility = 'visible';
  $('loadDiv').innerHTML = '<font color=red size=2>Loading ... </font><span style="line-height: 5px;"><br></span><img src="ajax-loader.gif">';

  $('previousLink').style.color='#adc2d6';
  $('nextLink').style.color='#adc2d6';
  $('previousLink').innerHTML='<font size=1 color="red">Loading ...</font>';
  $('nextLink').innerHTML='<font size=1 color="red">Loading ...</font>';
  //  document.getElementById("updateButton").disabled=true; 
  var myAjax4 = new Ajax.Request(
				 'flowP.php',
				 {
				 method: 'post', 
				     asynchronous:true,
				     postBody: 'mark1='+mark1+'&mark2='+mark2+'&action=init&current='+currentRecord+'&size='+pagingSize+'&paddist=' + paddist + '&hapmaponly=' + hapmaponly + '&hettype=' + hettype + '&heterozygosity=' + heterozygosity + '&isRs=' + isRs,
				     onComplete: function(response) {
				     //$('tester').innerHTML = 'resp= ' + response.responseText;
				     if(response.responseText==''){
				       $('message').innerHTML = '<font color=red>ERROR GETTING SNP DATA!</font>';
				       //$('tester').innerHTML=response.responseText;
				     }
				     else if(response.responseText=="error1"){
				       $('message').innerHTML = '<font color=red>ERROR: RSID NOT FOUND IN DATABASE!</font>';
				     }
				     else if(response.responseText=="error2"){
				       $('message').innerHTML = '<font color=red>ERROR: MARKER 1 NOT FOUND IN DATABASE!</font>';
				     } 
				     else if(response.responseText=="error3"){
				       $('message').innerHTML = '<font color=red>ERROR: MARKER 2 NOT FOUND IN DATABASE!</font>';
				     }
				     else{
				       //$('tester').innerHTML="init ... onComplete1";
				     
				       getDataActive=false;
				       showNavigation();
				       //$('tester').innerHTML="init ... onComplete2";
				       if(fromSave==1){
					 setTimeout(
						    function(){
						      getTableData();
						      //$('tester').innerHTML="init ... onComplete3";
						      getRecordCount();   
						      
						      //$('tester').innerHTML="init ... onComplete4";
						      setTimeout(
								 function() {
								   getNextData();
								   //showNavigation();
								   
								 }, 50
								 );
						      $('tester').innerHTML = "";
						      $('loadDiv').style.visibility = 'hidden';
						      $('loadDiv').innerHTML = '';
						      //$('tester').innerHTML="DONE getinit ..."; //response.responseText;
						    },1000
						    );
				       }
				       else{
					 getTableData();
					 //$('tester').innerHTML="init ... onComplete3";
					 getRecordCount();   
					 
					 //$('tester').innerHTML="init ... onComplete4";
					 setTimeout(
						    function() {
						      getNextData();
						      //showNavigation();
						      
						    }, 50
						    );
					 $('tester').innerHTML = "";
					 //$('tester').innerHTML="DONE getinit ..."; //response.responseText;
				       }
				     }
				     //DisableEnableLinks(false);
				     //document.body.link = "#003366";
				     
				     $('loadDiv').style.visibility = 'hidden';
				     $('loadDiv').innerHTML = '';
				   } ,	     
				     onInteractive: function(response){
				     //$('tester').innerHTML = "onInteractive" ;
				     
				     if(setInitDisplay == 0){
				       //$('tester').innerHTML="onInter2: ";
	  			       if((response.responseText != '')||(response.responseText != null)){	//
					 //$('tester').innerHTML = "onInter3";
	 				 if(reEval==1){
					   //$('tester').innerHTML = "onInter4";
	 				   var respT = response.responseText;
	 				   var lastInt=respT.lastIndexOf('name');
	 				   respT = respT.substr(0, lastInt-5);
	 				   respT = respT + "] }";
	 				   currentPage = eval('(' + respT + ')');
	 				 }
					 //$('tester').innerHTML = "onInter5";
	 				 if(currentPage['snps'].length > currentRecord+pagingSize){
					   $('tester').innerHTML = "<B><font color=#003366>MAY BROWSE DATA WHILE LOADING ...</font></B>";
					   //$('tester2').innerHTML = "isGuest5:" + isGuest;
	 				   setInitDisplay = 1;
	 				   chrom_ = currentPage['chroms'][0].chrom;
	 				   //$('tester').innerHTML = "setInitDisplay == 1 ...";
	 				   chrom_Start = currentPage['chroms'][0].chromStart;
	 				   chrom_End = currentPage['chroms'][0].chromEnd;
	 				   $('currChrom').innerHTML = chrom_;
	 				   currTotalSNP = currentPage['snps'].length;
	 				   $('totalSNP').innerHTML = "<font color=red>Loaded: " + currTotalSNP + "</font>";
	 				   drawTable_init(currentPage, $('view'));
					   $('previousLink').style.color='#003366';
					   $('nextLink').style.color='#003366';
					   $('previousLink').innerHTML='Previous';
					   $('nextLink').innerHTML='Next';

					   document.getElementById("updateButton").disabled=true; 
					   document.getElementById("clearButton").disabled=true;
					   document.getElementById("showAllButton").disabled=true;
					   document.getElementById("selectButton").disabled=true;
					   document.getElementById("unselectButton").disabled=true;
					   document.getElementById("selectAllButton").disabled=true;
					   document.getElementById("saveButton").disabled=true;
					   //setTimeout(
					   //	function() {
					   //	  getNextData();
					   //	  
					   //	}, 50
					   //	);
	 				   reEval =0;
	 				 }
	 				 else{
	 				   reEval=1;
	 				 }
				       
	 				 //$('loadDiv').style.visibility = 'hidden';
	 				 //$('loadDiv').innerHTML = '';
				       }

				     }

				   }

				 });

 
}

function getTableData() {
  //$('message').innerHTML = 'sending ... : flowP.php?mark1='+mark1+'&mark2='+mark2+'&action=page&current='+currentRecord+'&size='+pagingSize+'&paddist=' + paddist + '&hapmaponly=' + hapmaponly + '&hettype=' + hettype + '&heterozygosity=' + heterozygosity + '&avHetLo=' + avHetcurrRangeLo + '&avHetHi=' + avHetcurrRangeHi + '&avHetSEHi=' + avHetSEcurrRangeHi + '&avHetSELo=' + avHetSEcurrRangeLo + '&CEULo=' + CEUcurrRangeLo + '&CEUHi=' + CEUcurrRangeHi + '&CHBLo=' + CHBcurrRangeLo + '&CHBHi=' + CHBcurrRangeHi + '&JPTLo=' + JPTcurrRangeLo + '&JPTHi=' + JPTcurrRangeHi + '&YRILo=' + YRIcurrRangeLo + '&YRIHi=' + YRIcurrRangeHi + '&siftLo=' + siftcurrRangeLo + '&siftHi=' + siftcurrRangeHi+ '&conservLo=' + conservcurrRangeLo+ '&conservHi=' + conservcurrRangeHi + '&unknown=' + F_unknown+ '&locus_region=' + F_locus_region+ '&coding='+F_coding+ '&coding_synon=' + F_coding_synon+ '&coding_nonsynon=' + F_coding_nonsynon+ '&mrna_utr=' + F_mrna_utr+ '&intron=' + F_intron+ '&splice_slice=' + F_splice_slice+'&reference=' + F_reference+ '&exception=' + F_exception+'&my_rval_id=' + my_rval_id + '&description=' + saveDescription + '&validTF=' + currValid + '&hapmapTF=' + currHapmap + '&isRs=' + isRs + '&state=' + lastState;
  //if(!activeLoadSaved){
  //active = true;
  //$('tester2').innerHTML = "getDataActive="+getDataActive+"<br>";
  //  getRecordCount();
  //  if(!getDataActive){
  
  $('loadDiv').style.visibility = 'visible';
  $('loadDiv').innerHTML = '<font color=red size=2>Loading ... </font><span style="line-height: 5px;"><br></span><img src="ajax-loader.gif">';
  var myAjax5 = new Ajax.Request(
				 'flowP.php',
				 {
				 method: 'post', 
				     asynchronous:true,
				     postBody: 'mark1='+mark1+'&mark2='+mark2+'&action=page&current='+currentRecord+'&size='+pagingSize+'&paddist=' + paddist + '&hapmaponly=' + hapmaponly + '&hettype=' + hettype + '&heterozygosity=' + heterozygosity + '&avHetLo=' + avHetcurrRangeLo + '&avHetHi=' + avHetcurrRangeHi + '&avHetSEHi=' + avHetSEcurrRangeHi + '&avHetSELo=' + avHetSEcurrRangeLo + '&CEULo=' + CEUcurrRangeLo + '&CEUHi=' + CEUcurrRangeHi + '&CHBLo=' + CHBcurrRangeLo + '&CHBHi=' + CHBcurrRangeHi + '&JPTLo=' + JPTcurrRangeLo + '&JPTHi=' + JPTcurrRangeHi + '&YRILo=' + YRIcurrRangeLo + '&YRIHi=' + YRIcurrRangeHi + '&siftLo=' + siftcurrRangeLo + '&siftHi=' + siftcurrRangeHi+ '&conservLo=' + conservcurrRangeLo+ '&conservHi=' + conservcurrRangeHi + '&unknown=' + F_unknown+ '&locus_region=' + F_locus_region+ '&coding='+F_coding+ '&coding_synon=' + F_coding_synon+ '&coding_nonsynon=' + F_coding_nonsynon+ '&mrna_utr=' + F_mrna_utr+ '&intron=' + F_intron+ '&splice_slice=' + F_splice_slice+'&reference=' + F_reference+ '&exception=' + F_exception+'&my_rval_id=' + my_rval_id + '&description=' + saveDescription + '&validTF=' + currValid + '&hapmapTF=' + currHapmap + '&isRs=' + isRs + '&state=' + lastState, 
				     onComplete: function(response) {
				     //$('message').innerHTML = 'resp= ' + response.responseText;
				     if(response.responseText==''){
				       $('message').innerHTML = '<font color=red>NOTHING RETURNED FROM SEARCH!</font>';
				     }
				     else{
				       //$('message').innerHTML = 'resp= ' + response.responseText;
				       //$('tester').innerHTML = response.responseText; 
				      
				       currentPage = eval('(' + response.responseText + ')');
				      
				       drawTable(currentPage, $('view'));
  				      

				       document.getElementById("updateButton").disabled=false; 
				       document.getElementById("clearButton").disabled=false;
				       document.getElementById("showAllButton").disabled=false;
				       document.getElementById("selectButton").disabled=false;
				       document.getElementById("unselectButton").disabled=false;
				       document.getElementById("selectAllButton").disabled=false;
				       if(isGuest == 0){
					
					 document.getElementById("saveButton").disabled=false;
				       }
				       else{
					
					 document.getElementById("saveButton").disabled=true;
				       }
				       document.getElementById("disLinkID").disabled=false;

				       //active = false;
				       if(initFlag==1){
					 clickChanged=1;
					 //processFormData(1);
					 //getImageUrl();
					 initFlag=0;
					 //processFormData(1);
				       }
				     }
				     $('loadDiv').style.visibility = 'hidden';
				     $('loadDiv').innerHTML = '';
				   }
				 });
  // }
  
}

function getNextData() {
  //$('tester2').innerHTML = 'getNextData() : flowP.php?mark1='+mark1+'&mark2='+mark2+'&action=page&current='+(currentRecord+pagingSize)+'&size='+pagingSize+'&paddist=' + paddist + '&hapmaponly=' + hapmaponly + '&hettype=' + hettype + '&heterozygosity=' + heterozygosity + '&avHetLo=' + avHetcurrRangeLo + '&avHetHi=' + avHetcurrRangeHi + '&avHetSEHi=' + avHetSEcurrRangeHi + '&avHetSELo=' + avHetSEcurrRangeLo + '&CEULo=' + CEUcurrRangeLo + '&CEUHi=' + CEUcurrRangeHi + '&CHBLo=' + CHBcurrRangeLo + '&CHBHi=' + CHBcurrRangeHi + '&JPTLo=' + JPTcurrRangeLo + '&JPTHi=' + JPTcurrRangeHi + '&YRILo=' + YRIcurrRangeLo + '&YRIHi=' + YRIcurrRangeHi + '&siftLo=' + siftcurrRangeLo + '&siftHi=' + siftcurrRangeHi+ '&conservLo=' + conservcurrRangeLo+ '&conservHi=' + conservcurrRangeHi + '&unknown=' + F_unknown+ '&locus_region=' + F_locus_region+ '&coding='+F_coding+ '&coding_synon=' + F_coding_synon+ '&coding_nonsynon=' + F_coding_nonsynon+ '&mrna_utr=' + F_mrna_utr+ '&intron=' + F_intron+ '&splice_slice=' + F_splice_slice+'&reference=' + F_reference+ '&exception=' + F_exception+'&my_rval_id=' + my_rval_id + '&description=' + saveDescription + '&validTF=' + currValid + '&hapmapTF=' + currHapmap + '&isRs=' + isRs + '&state=' + lastState;

  $('next').innerHTML = '';
  active = true;
  $('previousLink').style.color='#adc2d6';
  $('nextLink').style.color='#adc2d6';
  $('previousLink').innerHTML='<font size=1 color="red">Loading ...</font>';
  $('nextLink').innerHTML='<font size=1 color="red">Loading ...</font>';
  //$('tester').innerHTML = "start";

  var myAjax6 = new Ajax.Request(
				 'flowP.php',
				 {
				 method: 'post', 
				     asynchronous:true,
				     postBody: 'mark1='+mark1+'&mark2='+mark2+'&action=page&current='+(currentRecord+pagingSize)+'&size='+pagingSize+'&paddist=' + paddist + '&hapmaponly=' + hapmaponly + '&hettype=' + hettype + '&heterozygosity=' + heterozygosity + '&avHetLo=' + avHetcurrRangeLo + '&avHetHi=' + avHetcurrRangeHi + '&avHetSEHi=' + avHetSEcurrRangeHi + '&avHetSELo=' + avHetSEcurrRangeLo + '&CEULo=' + CEUcurrRangeLo + '&CEUHi=' + CEUcurrRangeHi + '&CHBLo=' + CHBcurrRangeLo + '&CHBHi=' + CHBcurrRangeHi + '&JPTLo=' + JPTcurrRangeLo + '&JPTHi=' + JPTcurrRangeHi + '&YRILo=' + YRIcurrRangeLo + '&YRIHi=' + YRIcurrRangeHi + '&siftLo=' + siftcurrRangeLo + '&siftHi=' + siftcurrRangeHi+ '&conservLo=' + conservcurrRangeLo+ '&conservHi=' + conservcurrRangeHi + '&unknown=' + F_unknown+ '&locus_region=' + F_locus_region+ '&coding='+F_coding+ '&coding_synon=' + F_coding_synon+ '&coding_nonsynon=' + F_coding_nonsynon+ '&mrna_utr=' + F_mrna_utr+ '&intron=' + F_intron+ '&splice_slice=' + F_splice_slice+'&reference=' + F_reference+ '&exception=' + F_exception+'&my_rval_id=' + my_rval_id + '&description=' + saveDescription + '&validTF=' + currValid + '&hapmapTF=' + currHapmap + '&isRs=' + isRs + '&state=' + lastState, 
				     onComplete: function(response) {
				     //$('tester2').innerHTML = "completed next ... ";//+response.responseText;
				     nextPage = eval('(' + response.responseText + ')');
				     //$('tester').innerHTML = 'done eval';
				     active = false;
				     $('previousLink').style.color='#003366';
				     $('nextLink').style.color='#003366';
				     $('previousLink').innerHTML='Previous';
				     $('nextLink').innerHTML='Next';
				   }
				 });

}

function getPreviousData() {
  if((currentRecord - pagingSize) >= 0) {
    $('previous').innerHTML = '';
    active = true;
    $('previousLink').style.color='#adc2d6';
    $('nextLink').style.color='#adc2d6';
    $('previousLink').innerHTML='<font size=1 color="red">Loading ...</font>';
    $('nextLink').innerHTML='<font size=1 color="red">Loading ...</font>';
    var myAjax7 = new Ajax.Request(
				   'flowP.php',
				   {
				   method: 'post', 
				       asynchronous:true,
				       postBody: 'mark1='+mark1+'&mark2='+mark2+'&action=page&current='+(currentRecord-pagingSize)+'&size='+pagingSize+'&paddist=' + paddist + '&hapmaponly=' + hapmaponly + '&hettype=' + hettype + '&heterozygosity=' + heterozygosity + '&avHetLo=' + avHetcurrRangeLo + '&avHetHi=' + avHetcurrRangeHi + '&avHetSEHi=' + avHetSEcurrRangeHi + '&avHetSELo=' + avHetSEcurrRangeLo + '&CEULo=' + CEUcurrRangeLo + '&CEUHi=' + CEUcurrRangeHi + '&CHBLo=' + CHBcurrRangeLo + '&CHBHi=' + CHBcurrRangeHi + '&JPTLo=' + JPTcurrRangeLo + '&JPTHi=' + JPTcurrRangeHi + '&YRILo=' + YRIcurrRangeLo + '&YRIHi=' + YRIcurrRangeHi + '&siftLo=' + siftcurrRangeLo + '&siftHi=' + siftcurrRangeHi+ '&conservLo=' + conservcurrRangeLo+ '&conservHi=' + conservcurrRangeHi + '&unknown=' + F_unknown+ '&locus_region=' + F_locus_region+ '&coding='+F_coding+ '&coding_synon=' + F_coding_synon+ '&coding_nonsynon=' + F_coding_nonsynon+ '&mrna_utr=' + F_mrna_utr+ '&intron=' + F_intron+ '&splice_slice=' + F_splice_slice+'&reference=' + F_reference+ '&exception=' + F_exception+'&my_rval_id=' + my_rval_id + '&description=' + saveDescription + '&validTF=' + currValid + '&hapmapTF=' + currHapmap + '&isRs=' + isRs + '&state=' + lastState, 
				       onComplete: function(response) {
				       //$('tester2').innerHTML = "completed next";
				       previousPage = eval('(' + response.responseText + ')');
				       active = false;
				       $('previousLink').style.color='#003366';
				       $('nextLink').style.color='#003366';
				       $('previousLink').innerHTML='Previous';
				       $('nextLink').innerHTML='Next';
				     }
				   });
  }
  else {
    $('previous').innerHTML = '';
  }

}

function getSelectAll(){
     
  $('loadDiv').style.visibility = 'visible';
  $('loadDiv').innerHTML = '<font color=red size=2>Loading ... </font><span style="line-height: 5px;"><br></span><img src="ajax-loader.gif">';

  var myAjax8 = new Ajax.Request(
				 'flowP.php',
				 {
				 method: 'post',
				     asynchronous:true,
				     postBody: 'mark1='+mark1+'&mark2='+mark2+'&action=pageAll&current='+(currentRecord-pagingSize)+'&size='+pagingSize+'&paddist=' + paddist + '&hapmaponly=' + hapmaponly + '&hettype=' + hettype + '&heterozygosity=' + heterozygosity + '&avHetLo=' + avHetcurrRangeLo + '&avHetHi=' + avHetcurrRangeHi + '&avHetSEHi=' + avHetSEcurrRangeHi + '&avHetSELo=' + avHetSEcurrRangeLo + '&CEULo=' + CEUcurrRangeLo + '&CEUHi=' + CEUcurrRangeHi + '&CHBLo=' + CHBcurrRangeLo + '&CHBHi=' + CHBcurrRangeHi + '&JPTLo=' + JPTcurrRangeLo + '&JPTHi=' + JPTcurrRangeHi + '&YRILo=' + YRIcurrRangeLo + '&YRIHi=' + YRIcurrRangeHi + '&siftLo=' + siftcurrRangeLo + '&siftHi=' + siftcurrRangeHi+ '&conservLo=' + conservcurrRangeLo+ '&conservHi=' + conservcurrRangeHi + '&unknown=' + F_unknown+ '&locus_region=' + F_locus_region+ '&coding='+F_coding+ '&coding_synon=' + F_coding_synon+ '&coding_nonsynon=' + F_coding_nonsynon+ '&mrna_utr=' + F_mrna_utr+ '&intron=' + F_intron+ '&splice_slice=' + F_splice_slice+'&reference=' + F_reference+ '&exception=' + F_exception+'&my_rval_id=' + my_rval_id + '&description=' + saveDescription + '&validTF=' + currValid + '&hapmapTF=' + currHapmap + '&isRs=' + isRs + '&state=' + lastState,
				     onComplete: function(response){
				     var str_id = response.responseText;
				     //'tester2').innerHTML=response.responseText;
				     str_id_Arr = str_id.split("|");
				     my_rval_str = str_id_Arr[0];
				     my_rval_id = str_id_Arr[1];
				     my_rval_hap = str_id_Arr[2];
				     my_rval_strArr = my_rval_str.split(":");
				     my_rval_idArr = my_rval_id.split(":");
				     my_rval_hapArr = my_rval_hap.split(":");

				     //$('tester').innerHTML = str_id_Arr[0];
				     //$('tester2').innerHTML = str_id_Arr[1];
				     //$('tester').innerHTML = 'strArr length1=' + my_rval_strArr.length;
				     for(var ii=0; ii<my_rval_strArr.length; ii++){
				      
				       //$('tester2').innerHTML = 'strArr length3=' + my_rval_strArr.length;
				       //currSelected++;
				       savedSNP[my_rval_idArr[ii]] = new snpData();
				       savedSNP[my_rval_idArr[ii]].name = my_rval_strArr[ii];
				       savedSNP[my_rval_idArr[ii]].ID = my_rval_idArr[ii];
				       savedSNP[my_rval_idArr[ii]].hapmap = my_rval_hapArr[ii];
					
				       //$('tester2').innerHTML = 'strArr length'+ii+'= ' + my_rval_strArr.length;
				       //$('tester').innerHTML = 'not checked';
				      
				     }
				  
				     //$('tester2').innerHTML = 'strArr length8=' + my_rval_strArr.length;
				     $('loadDiv').style.visibility = 'hidden';
				     $('loadDiv').innerHTML = '';
				     getTableData();	
				     //$('tester2').innerHTML = 'strArr length9=' + my_rval_strArr.length;
				     currSelected = my_rval_strArr.length;
				     //$('tester2').innerHTML = 'printing currSelected: ' + currSelected;
				     $('currSelected').innerHTML = currSelected;
				   }
				 });
}

function openLinks(currURL) {

  cpySendArrayToString();

  document.openLinkForm.setAttribute("action", currURL);
  document.openLinkForm.mark1.value=chrom_Start;
  document.openLinkForm.mark2.value=chrom_End;
  document.openLinkForm.isRs.value=isRs;
  document.openLinkForm.chrom.value=chrom_;
  
  var sFlag;
  //var bodyurl;
  if(currSelected == 0){
    //bodyurl = 'mark1=' + mark1 + '&mark2=' + mark2 + '&my_rval_str=' + my_rval_str + '&isRs='+isRs+'&selectedFlag=0';
    //sFlag = 0;
    document.openLinkForm.my_rval_str.value = my_rval_str;
    document.openLinkForm.selectedFlag.value=0;

  }
  else{
    if(currSelected < 100){
      //$('tester').innerHTML = "my_rval_str: " + my_rval_str;
      //bodyurl = 'mark1=' + mark1 + '&mark2=' + mark2 + '&my_rval_str=' + my_rval_str + '&isRs='+isRs+'&selectedFlag=1';
      //sFlag=1;
      document.openLinkForm.my_rval_str.value = my_rval_str;
      document.openLinkForm.selectedFlag.value=1;
    }
    else{
      var getRs ='';
      var jcnt=1;
      var j=1;
      var incrmnt = Math.round(currSelected/100);
      for(var i=1; i<=currTotalSNP; i++){		
        if(savedSNP[i] != null){
	  //      $('tester2').innerHTML = "getRs"+i+"=" + getRs;
	  if((jcnt % incrmnt) == 0){
	    //$('tester2').innerHTML = "getRs"+j+"-"+i+"=" + getRs;
	    getRs = getRs + savedSNP[i].name + ":";
	    j=j+1;
	  }
          jcnt =jcnt + 1;
        }
      }
      //bodyurl= 'mark1=' + mark1 + '&mark2=' + mark2 + '&my_rval_str=' + getRs + '&isRs='+isRs+'&selectedFlag=2';
      //sFlag=2;
      //$('tester2').innerHTML = "getRs=" + getRs;
      document.openLinkForm.my_rval_str.value = getRs;
      document.openLinkForm.selectedFlag.value=2;
    }
  }

  document.openLinkForm.submit();
}


//---------------------------BUTTON CONTROL FUNCTIONS------------------------------------

function processFormData(buttonID){
  $('message').innerHTML = '';
 
  if(buttonID == 1){
    //$('updateButton').style.background= '#7CCD7C' ;
    // updateButton="style='font-size: 10px; background-color: #7CCD7C;'";
    //cpySendArrayToString();
    gettingImg++;
    lastState=1;
    //$('tester').innerHTML="gettingImg: " + gettingImg;
    if((gettingImg==1) && (clickChanged!=0)){
      imageDone=0;
      getImageUrl();
    }
    if(imageDone == 1){
      $('imageMessage').innerHTML="";
      $('imageDiv').innerHTML = "<table bgcolor=#598FB5><tr><td colspan=7 align=center><img border=0 src='.." + currUrl + "'></td></tr></table>";
      gettingImg=0;
      clickChanged=0;
    }
    else{
      $('imageMessage').innerHTML="<font color='red' size=2>Loading Image ...</font>";
      setTimeout(
		 function() {
		   processFormData(1);
		 }, 50	
		 );
    }	
    //$('tester2').innerHTML="gettingImg2: " + gettingImg;
  }
  else if(buttonID == 2){
    lastState = 2;
    //$('tester').innerHTML = "recordCount=" + recordCount + ' my_rval_str0=' + savedSNP[2].name;
    for(var i=1; i<=currTotalSNP; i++){
      if(savedSNP[i] != null){
	savedSNP[i] = null;
      }
    }
    currSelected = 0;
    clickChanged++;
    //$('tester2').innerHTML = "my_rval_str1=" + savedSNP[2].name;
    my_rval_str = "";
    my_rval_id = "";
    //$('tester2').innerHTML = "my_rval_str2=" +savedSNP[2];
    drawTable(currentPage, $('view'));
    //getTableData();
    showNavigation();
    $('currSelected').innerHTML = currSelected;
    //$('tester').innerHTML = "end clear ...";
  }
  else if(buttonID == 3){
    lastState = 3;
    getTableData();
    getNextData();
    getPreviousData();
    showNavigation();
  }
  else if(buttonID == 4){
    lastState = 4;
    currentRecord = 0;
    currentPageNumber =1;
    getTableData();
    showNavigation();
  }
  else if(buttonID == 5){
    currentRecord = 0;
    currentPageNumber =1;
    lastState = 5;
    //cpySendArrayToString();
    getTableData();
    // drawTable(currentPage, $('view'));
    showNavigation();
  }
  else if(buttonID == 6){
    lastState = 6;
    currentRecord = 0;
    currentPageNumber =1;
    //selectAllFlag = 1;
    getSelectAll();
    showNavigation();
    //    cpySendArrayToString();
  }
  else if(buttonID == 7){
    $('tester').innerHTML = "in save";
    if(document.getElementById('description').value != ""){  //||(document.getElementById('description2').value == "")){
      saveDescription=document.getElementById('description').value;
      lastState = 7;
      saveData();
    }
    else{
      $('message').innerHTML = "<font color=red><B>Must enter session description to save</B></font>";
    }			
  }

}

function checkHighlight(){
  if((avHetcurrRangeLo != "not-set") || (avHetcurrRangeHi!= "not-set")){
    avHetTD = " bgcolor=#7CCD7C";
  }
  else{
    avHetTD = "";
  }
  if((avHetSEcurrRangeLo!= "not-set") || (avHetSEcurrRangeHi!= "not-set")){
    avHetSETD = " bgcolor=#7CCD7C";
  }
  else{
    avHetSETD = " bgcolor=#adc2d6";
  }
  if((CEUcurrRangeLo!= "not-set") || (CEUcurrRangeHi!= "not-set")){
    CEUTD = " bgcolor=#7CCD7C";
  }
  else{
    CEUTD = "";
  }
  if((CHBcurrRangeLo!= "not-set") || (CHBcurrRangeHi!= "not-set")){
    CHBTD = " bgcolor=#7CCD7C";
  }
  else{
    CHBTD = " bgcolor=#adc2d6";
  }
  if((JPTcurrRangeLo!= "not-set") || (JPTcurrRangeHi!= "not-set")){
    JPTTD = " bgcolor=#7CCD7C";
  }
  else{
    JPTTD = "";
  }
  if((YRIcurrRangeLo!= "not-set") || (YRIcurrRangeHi!= "not-set")){
    YRITD = " bgcolor=#7CCD7C";
  }
  else{
    YRITD = " bgcolor=#adc2d6";
  }
  if(currValid != "not-set"){
    validTFTD = " bgcolor=#7CCD7C";
  }
  else{
    validTFTD = " bgcolor=#adc2d6";
  }
  if(currHapmap != "not-set"){
    hapmapTFTD = " bgcolor=#7CCD7C";
  }
  else{
    hapmapTFTD = "";
  }

  if((F_unknown != 0)||(F_locus_region != 0)||(F_coding != 0)||(F_coding_synon != 0)||(F_coding_nonsynon != 0)||(F_mrna_utr != 0)||(F_intron != 0)||(F_splice_slice != 0)||(F_reference != 0)||(F_exception != 0)){
    locTD = " bgcolor=#7CCD7C";
  }
  else{
    locTD = " bgcolor=#adc2d6";
  }

  if((siftcurrRangeLo!= "not-set") || (siftcurrRangeHi!= "not-set")){
    siftTD = " bgcolor=#7CCD7C";
  }
  else{
    siftTD = "";
  }
  if((conservcurrRangeLo!= "not-set") || (conservcurrRangeHi!= "not-set")){
    conservTD = " bgcolor=#7CCD7C";
  }
  else{
    conservTD = " bgcolor=#adc2d6";
  }


}

function drawTable_init(page, contain) {

  //$('tester').innerHTML = 'lastState: ' + lastState;
 
  checkHighlight();
  
  table='<form name=SNPForm action="" method="" id=mainForm><table class=myTable id=mainTable width=760 align="center"><tr bgcolor=#598FB5><th align="center" colspan=2><font color=lightgray>Get Sequences</font></th><th align="center" colspan=2><font color=lightgray>Excel</font></th><th align="center">Haplotype Struct:</th>';

  
  table +='<th align="center" colspan=2><font color=lightgray>CEU</font></th>'+
    '<th colspan=3><font color=lightgray>CHB</font></th>'+
    '<th colspan=2><font color=lightgray>JPT</font></th>'+
    '<th colspan=3><font color=lightgray>YRI</font></th>';
  
  table+='</tr><tr bgcolor=#ADC2D6><td colspan=1 align="center" width=20><input type="button" id="updateButton" name="updateImageB" onclick="javascript:processFormData(1)" value="Update Image"></td>'+

    '<td colspan=1 align="center" width=20><input type="button" id="clearButton" name="clearB" onclick="javascript:processFormData(2)" value="Clear"></td>'+

    '<td colspan=2 align="center"><input type="button" id="showAllButton" name="showAllB" onclick="javascript:processFormData(3)" value="Show All"></td>'+

    '<td colspan=1 align="center"><input type="button" id="selectButton" name="showSelectedB" onclick="javascript:processFormData(4)" value="Show Selected"></td>'+

    '<td colspan=2 align="center"><input type="button" id="unselectButton" name="showUnselectedB" onclick="javascript:processFormData(5)" value="Show Unselected"></td>'+

    '<td colspan=2 align="center"><input type="button" id="selectAllButton" name="selectAllB" onclick="javascript:processFormData(6)" value="Select All"></td>'+

    '<td colspan=3 align="center"><span style="font-size: 10px;">Session Name: </span><input type="text" size=10 id="description" name="description" style="font-size: 10px; width: 65px;"></td><td colspan=3 align="center"><input type="button" id="saveButton" name="saveB" onclick="javascript:processFormData(7)" value="Save"></td>'+

    '</tr><tr bgcolor=#598FB5><th colspan=5 align="center">SNP Info</th><th colspan=2 align="center">UCSC</th><th colspan=2 align="center">dbSNP</th><th colspan=4 align="center">HapMap Freq</th><th colspan=2>Scores</th></tr><tr bgcolor=#ADC2D6><td width=20 align="center">rsid</td><td width=20>'+

    '<div id="idObserved"><font color=lightgray>observed</font></div></td><td>'+

    '<div id="idValidation"><font color=lightgray>validation</font></div></td><td>'+

     '<div id="idHapmap"><font color=lightgray>hapmap</font></div></td><td>'+

    '<div id="idLocation"><font color=lightgray>Location</font></div></td><td width=20>strand</td><td>position</td><td>'+

    '<div id="idAvHet"><font color=lightgray>avHet</font></div></td><td>'+

    '<div id="idAvHetSE"><font color=lightgray>avHetSE</font></div></td><td>'+

    '<div id="idCEU"><font color=lightgray>CEU</font></div></td><td>'+

    '<div id="idCHB"><font color=lightgray>CHB</font></div></td><td>'+

    '<div id="idJPT"><font color=lightgray>JPT</font></div></td><td>'+

    '<div id="idYRI"><font color=lightgray>YRI</font></div></td>' +
    
    '<td><div id="idSift"><font color=lightgray>SIFT score</font></div></td>'+
    
    '<td><div id="idConserv"><font color=lightgray>conserv</font></div></td></tr>';
  

  var init_recCount=0;
  var isdisplayed = 1;
  var snpGood = 0;
  var validstr;
  var hapmapstr;
  var isdisplayed;
  //$('message').innerHTML = currentRecord+pagingSize;

  
  for(i = 0; (i < page['snps'].length)&&(snpGood<=currentRecord+pagingSize); i++) {
    
    //var idValue = i+1+(currentPageNumber-1)*pagingSize;		
    init_recCount++;
    
    isdisplayed = 1;

    if(isdisplayed){	
      snpGood = snpGood + 1;
      
      if((snpGood > currentRecord)&&(snpGood<=(currentRecord+pagingSize))){
	/// DONE FILTERING DATA///
	
	
	//if(init_recCount>=currentRecord){
	//$('message').innerHTML = init_recCount;
	
	//    if((lastState!=5)||(savedSNP[page['snps'][i].ID] == null)){				
	var isChecked ='';
	if(savedSNP[page['snps'][i].ID] != null){
	  isChecked = 'checked';
	}
	
	var obsArr = [];
	var myOutput = "";
	var CEU_out = "";
	var CHB_out = "";
	var JPT_out = "";
	var YRI_out = "";
	var conserv_out = "";

	if(page['snps'][i].hapmapstr == 'X'){
	  //obsArr = page['snps'][i].observed.split('/');
	  //myOutput = "<font color = purple>" + obsArr[0] +" </font> / <font color = red>"+ obsArr[1]+" </font>";
	  myOutput = "<font color = purple>" +  page['snps'][i].ref     +" </font> / <font color = red>"+ page['snps'][i].het+" </font>";
	  CEU_out = "<font color= purple>" + page['snps'][i].CEU + "</font>";
	  CHB_out = "<font color= purple>" + page['snps'][i].CHB + "</font>";
	  JPT_out = "<font color= purple>" + page['snps'][i].JPT + "</font>";
	  YRI_out = "<font color= purple>" + page['snps'][i].YRI + "</font>";

	  if(page['snps'][i].ref_het_CEU == 1){
	    CEU_out = "<font color= red>" + page['snps'][i].CEU + "</font>";
	  }
	  if(page['snps'][i].ref_het_CHB == 1){
	    CHB_out = "<font color= red>" + page['snps'][i].CHB + "</font>";
	  }
	  if(page['snps'][i].ref_het_JPT == 1){
	    JPT_out = "<font color= red>" + page['snps'][i].JPT + "</font>";
	  }
	  if(page['snps'][i].ref_het_YRI == 1){
	    YRI_out = "<font color= red>" + page['snps'][i].YRI + "</font>";
	  }

	}
	
	if(page['snps'][i].conserv == ''){
	  conserv_out = "<font color=red> ... </font>";
	}
	else{
	  conserv_out = page['snps'][i].conserv;
	}

	table +=  '<tr>' +
	  '<td class=alt3>'+
	  '<input type=checkbox name=rsidval id="' + page['snps'][i].ID + '" onClick=saveCheckedSNP('+ page['snps'][i].ID+ ',"'+page['snps'][i].name+'"); ' +isChecked +'>'+
	  // '<span id="idRs'+ page['snps'][i].ID+ '" class=divalt1><a href="http://www.ncbi.nlm.nih.gov/SNP/snp_ref.cgi?rs=' + page['snps'][i].name + '"  onMouseOver=javascript:enableTooltips2("idRs'+ page['snps'][i].ID+ ':'+page['snps'][i].observed+':'+page['snps'][i].molType+':'+page['snps'][i].class+':'+page['snps'][i].locType+'") target="_blank">'+ page['snps'][i].name + '</a></span></td>';
	  '<span id="idRs'+ page['snps'][i].ID+ '" class=divalt1><a href="http://www.ncbi.nlm.nih.gov/SNP/snp_ref.cgi?rs=' + page['snps'][i].name + '" target="_blank">'+ page['snps'][i].name + '</a></span></td>'+
	
	  '<td width=20">' + myOutput	+ '</td>' +
	  
	  '<td '+validTFTD+'>' + page['snps'][i].validstr 	+ '</td>' +
	  '<td '+hapmapTFTD+'>' + page['snps'][i].hapmapstr	+ '</td>' +	
	  '<td '+locTD+ '>' + page['snps'][i].func 	+ '</td>' +
	  '<td>' + page['snps'][i].strand 	+ '</td>' +
	  '<td bgcolor=#adc2d6>' + page['snps'][i].chromStart	+ '</td>' +
	  '<td ' + avHetTD +'>' + page['snps'][i].avHet 	+ '</td>' +
	  '<td ' + avHetSETD +'>' + page['snps'][i].avHetSE 	+ '</td>' +
	  '<td ' + CEUTD +'>' + CEU_out	+ '</td>' +
	  '<td ' + CHBTD +'>' + CHB_out	+ '</td>' +
	  '<td ' + JPTTD +'>' + JPT_out	+ '</td>' +
	  '<td ' + YRITD +'>' + YRI_out	+ '</td>' +
	  '<td ' + siftTD + '>' + page['snps'][i].sift 	+ '</td>' +
	  '<td' + conservTD + '>' + conserv_out + '</td>' +
	  
	  '</tr>';
	
	// }
      }
    }
    
  }
  table += '</table></form>';  contain.innerHTML = table;

  //$('tester').innerHTML = 'snpGood: ' + page['snpGood'];
  selectAllFlag = 0;
  $('currSelected').innerHTML = currSelected;
  if(lastState==1){
    $('updateButton').style.background= '#7CCD7C' ;
  }
  else if(lastState==2){
    $('clearButton').style.background= '#7CCD7C' ;
  }
  else if(lastState==3){
    $('showAllButton').style.background= '#7CCD7C' ;
  }
  else if(lastState==4){
    $('selectButton').style.background= '#7CCD7C' ;
  }
  else if(lastState==5){
    $('unselectButton').style.background= '#7CCD7C' ;
  }
  else if(lastState==6){
    $('selectAllButton').style.background= '#7CCD7C' ;
  }
  else if(lastState==7){
    $('saveButton').style.background= '#7CCD7C' ;
  }
  //currTotalSNP = page['snpGood'];
  //$('totalSNP').innerHTML = currTotalSNP;
  //$('currChrom').innerHTML = 'chr1';
  
  showNavigation();
  //getImageUrl();
  //document.write("webSnapr X:" + webSnapr.x);
  //webSnapr.init();



}


function drawTable(page, contain) {


  checkHighlight();
  if(isGuest == 1){					
    document.getElementById("saveButton").disabled=true;
  }
 

  table='<form name=SNPForm action="" method="" id=mainForm><table class=myTable id=mainTable bgcolor=#d5dfe8 width=760 align="center"><tr bgcolor=#598FB5><th align="center" colspan=2><div id="idGetSeq"><a href=javascript:void(0);  onMouseOver=javascript:enableTooltips("idGetSeq") id="disLinkID" onclick=openLinks("getsequence.php");>Get Sequences</a></div></th><th align="center" colspan=2><div id="idGetExcel"><a href=javascript:void(0);  onMouseOver=javascript:enableTooltips("idGetExcel") id="disLinkID" onclick=openLinks("getexcel.php");>Excel</a></div></th><th align="center">Haplotype Struct:</th>';

  
  table +='<th colspan=2><div id="idCEU_h"><a href=javascript:void(0); onMouseOver=javascript:enableTooltips("idCEU_h") onClick=hapmapLink2("CEU");>CEU</a></div></th>'+
    '<th colspan=3><div id="idCHB_h"><a href=javascript:void(0); onMouseOver=javascript:enableTooltips("idCHB_h") id="disLinkID" onClick=hapmapLink2("CHB");>CHB</a></div></th>'+
    '<th colspan=2><div id="idJPT_h"><a href=javascript:void(0); onMouseOver=javascript:enableTooltips("idJPT_h") id="disLinkID" onClick=hapmapLink2("JPT");>JPT</a></div></th>'+
    '<th colspan=3><div id="idYRI_h"><a href=javascript:void(0); onMouseOver=javascript:enableTooltips("idYRI_h") id="disLinkID" onClick=hapmapLink2("YRI");>YRI</a></div></th>';
  
  table+='</tr><tr bgcolor=#ADC2D6><td colspan=1 align="center" width=50><input type="button" id="updateButton" name="updateImageB" onclick="javascript:processFormData(1)" value="Update Image"></td>'+

    '<td colspan=1 align="center"><input type="button" id="clearButton" name="clearB" onclick="javascript:processFormData(2)" value="Clear"></td>'+

    '<td colspan=2 align="center"><input type="button" id="showAllButton" name="showAllB" onclick="javascript:processFormData(3)" value="Show All"></td>'+

    '<td colspan=1 align="center" width=100><input type="button" id="selectButton" name="showSelectedB" onclick="javascript:processFormData(4)" value="Show Selected"></td>'+


    '<td colspan=2 align="center"><input type="button" id="unselectButton" name="showUnselectedB" onclick="javascript:processFormData(5)" value="Show Unselected"></td>'+

    '<td colspan=2 align="center"><input type="button" id="selectAllButton" name="selectAllB" onclick="javascript:processFormData(6)" value="Select All"></td>'+

    '<td colspan=3 align="center"><span style="font-size: 10px;">Session Name: </span><input type="text" size=10 id="description" name="description" style="font-size: 10px; width: 65px;"></td><td colspan=3 align="center"><input type="button" id="saveButton" name="saveB" onclick="javascript:processFormData(7)" value="Save"></td>'+


    '</tr><tr bgcolor=#598FB5><th colspan=5 align=center>SNP Info</th><th colspan=2 align=center>UCSC</th><th colspan=2 align=center>dbSNP</th><th colspan=4 align=center>HapMap Freq</th><th colspan=2>Scores</th></tr><tr bgcolor=#ADC2D6><td width=50 align="center">rsid</td><td width=50>'+

    '<div id="idObservated">observated</div></td><td width=100>'+

    '<div id="idValidation"> <a href="#"; onMouseOver=javascript:enableTooltips("idValidation")  id="disLinkID" onClick=openPWindow("selectTF.php?type=Valid&currValid=' + currValid + '");>validation</a></div></td><td width=100>'+

    '<div id="idHapmap"> <a href="#" onMouseOver=javascript:enableTooltips("idHapmap") id="disLinkID" onClick=window.open("selectTF.php?type=Hapmap&currHapmap=' + currHapmap + '","Ratting","width=550,height=170,left=150,top=200,toolbar=1,status=1");>hapmap</a></div></td><td width=100>'+


    '<div id="idLocation"> <a href=javascript:openPWindow("selectLoc.php?type=location&currLocCheck=' + currLocCheck + '"); id="disLinkID" onMouseOver=javascript:enableTooltips("idLocation") NAME="SELECT LOCATIONS" title="  CHECK LOCATIONS TO INCLUDE ">Location</a></div></td><td width=50>strand</td><td>position</td><td>'+


    '<div id="idAvHet"> <a href=javascript:void(0); id="disLinkID" onMouseOver=javascript:enableTooltips("idAvHet") NAME="SELECT RANGE FOR avHet" title="  Select Range " onClick=window.open("selectRange.php?type=avHet&currRangeLo=' + avHetcurrRangeLo + '&currRangeHi=' + avHetcurrRangeHi + '","Ratting","width=550,height=170,left=150,top=200,toolbar=1,status=1,");>avHet</a></div></td><td>'+


    '<div id="idAvHetSE"><a href=javascript:void(0); id="disLinkID" onMouseOver=javascript:enableTooltips("idAvHetSE") NAME="SELECT RANGE FOR avHetSE" title="  Select Range " onClick=window.open("selectRange.php?type=avHetSE&currRangeLo='+ avHetSEcurrRangeLo + '&currRangeHi=' + avHetSEcurrRangeHi + '","Ratting","width=550,height=170,left=150,top=200,toolbar=1,status=1,");>avHetSE</a></div></td><td>'+



    '<div id="idCEU"><a href=javascript:void(0); id="disLinkID" onMouseOver=javascript:enableTooltips("idCEU") NAME="SELECT RANGE FOR CEU" title="  Select Range " onClick=window.open("selectRange.php?type=CEU&currRangeLo='+ CEUcurrRangeLo + '&currRangeHi=' + CEUcurrRangeHi + '","Ratting","width=550,height=170,left=150,top=200,toolbar=1,status=1,");>CEU</a></div></td><td>'+



    '<div id="idCHB"> <a href=javascript:void(0); id="disLinkID" onMouseOver=javascript:enableTooltips("idCHB") NAME="SELECT RANGE FOR CHB" title="  Select Range " onClick=window.open("selectRange.php?type=CHB&currRangeLo='+ CHBcurrRangeLo + '&currRangeHi=' + CHBcurrRangeHi + '","Ratting","width=550,height=170,left=150,top=200,toolbar=1,status=1,");>CHB</a></div></td><td>'+



    '<div id="idJPT"> <a href=javascript:void(0); id="disLinkID" onMouseOver=javascript:enableTooltips("idJPT") NAME="SELECT RANGE FOR JPT" title="  Select Range " onClick=window.open("selectRange.php?type=JPT&currRangeLo='+ JPTcurrRangeLo + '&currRangeHi=' + JPTcurrRangeHi + '","Ratting","width=550,height=170,left=150,top=200,toolbar=1,status=1,");>JPT</a></div></td><td>'+



    '<div id="idYRI"> <a href=javascript:void(0); id="disLinkID" onMouseOver=javascript:enableTooltips("idYRI") NAME="SELECT RANGE FOR YRI" title="  Select Range " onClick=window.open("selectRange.php?type=YRI&currRangeLo='+ YRIcurrRangeLo + '&currRangeHi=' + YRIcurrRangeHi + '","Ratting","width=550,height=170,left=150,top=200,toolbar=1,status=1,");>YRI</a></div></td>' +
    
    '<td><div id="idSift"> <a href=javascript:void(0); id="disLinkID" onMouseOver=javascript:enableTooltips("idSift")  NAME="SELECT RANGE FOR sift" title="  Select Range " onClick=window.open("selectRange.php?type=sift&currRangeLo='+ siftcurrRangeLo + '&currRangeHi=' + siftcurrRangeHi + '","Ratting","width=550,height=170,left=150,top=200,toolbar=1,status=1,");>SIFT score </a></div></td>'+
    
    '<td><div id="idConserv"><a href=javascript:void(0); id="disLinkID" onMouseOver=javascript:enableTooltips("idConserv") NAME="SELECT RANGE FOR conservation" title="  Select Range "  onClick=window.open("selectRange.php?type=conserv&currRangeLo='+ conservcurrRangeLo + '&currRangeHi=' + conservcurrRangeHi + '","Ratting","width=550,height=170,left=150,top=200,toolbar=1,status=1,");> conserv </a></div></td></tr>';
  


  
  for(i = 0; i < page['snps'].length; i++) {
    //var idValue = i+1+(currentPageNumber-1)*pagingSize;		
    //if((i>=currentRecord)&&(i<currentRecord+pagingSize)){

    
    var obsArr = [];
    var myOutput = "";
    var CEU_out = "";
    var CHB_out = "";
    var JPT_out = "";
    var YRI_out = "";
    var conserv_out = "";

    if(page['snps'][i].hapmapstr == 'X'){
      //obsArr = page['snps'][i].observed.split('/');
      //myOutput = "<font color = purple>" + obsArr[0] +" </font> / <font color = red>"+ obsArr[1]+" </font>";
      myOutput = "<font color = purple>" +  page['snps'][i].ref     +" </font> / <font color = red>"+ page['snps'][i].het+" </font>";
      CEU_out = "<font color= purple>" + page['snps'][i].CEU + "</font>";
      CHB_out = "<font color= purple>" + page['snps'][i].CHB + "</font>";
      JPT_out = "<font color= purple>" + page['snps'][i].JPT + "</font>";
      YRI_out = "<font color= purple>" + page['snps'][i].YRI + "</font>";
      
      if(page['snps'][i].ref_het_CEU == 1){
	CEU_out = "<font color= red>" + page['snps'][i].CEU + "</font>";
      }
      if(page['snps'][i].ref_het_CHB == 1){
	CHB_out = "<font color= red>" + page['snps'][i].CHB + "</font>";
      }
      if(page['snps'][i].ref_het_JPT == 1){
	JPT_out = "<font color= red>" + page['snps'][i].JPT + "</font>";
      }
      if(page['snps'][i].ref_het_YRI == 1){
	YRI_out = "<font color= red>" + page['snps'][i].YRI + "</font>";
      }
      
    }
    if(page['snps'][i].conserv == ''){
      conserv_out = "<font color=red> ... </font>";
    }
    else{
      conserv_out = page['snps'][i].conserv;
    }

	    //    if((lastState!=5)||(savedSNP[page['snps'][i].ID] == null)){				
    var isChecked ='';
    if(savedSNP[page['snps'][i].ID] != null){
      isChecked = 'checked';
    }
    table +=	'<tr>' +
      '<td class=alt3>'+
      '<input type=checkbox name=rsidval id="' + page['snps'][i].ID + '" onClick=saveCheckedSNP('+ page['snps'][i].ID+ ',"'+page['snps'][i].name+ '","' + page['snps'][i].hapmapstr +'"); ' +isChecked +'>'+
      //'<input type=checkbox name=rsidval id="' + page['snps'][i].ID + '" onClick=saveCheckedSNP('+ page['snps'][i].ID+ ',"'+page['snps'][i].name+'"); ' +isChecked +'>'+
      //'<span id="idRs'+ page['snps'][i].ID+ '" class=divalt1><a href="http://www.ncbi.nlm.nih.gov/SNP/snp_ref.cgi?rs=' + page['snps'][i].name + '"  onMouseOver=javascript:enableTooltips2("idRs'+ page['snps'][i].ID+ ':'+page['snps'][i].observed+':'+page['snps'][i].molType+':'+page['snps'][i].class+':'+page['snps'][i].locType+'") target="_blank">'+ page['snps'][i].name + '</a></span></td>' +
      '<span id="idRs'+ page['snps'][i].ID+ '" class=divalt1><a href="http://www.ncbi.nlm.nih.gov/SNP/snp_ref.cgi?rs=' + page['snps'][i].name + '" target="_blank">'+ page['snps'][i].name + '</a></span></td>' +

      '<td>' + myOutput	+ '</td>' +
      '<td '+validTFTD+'>' + page['snps'][i].validstr 	+ '</td>' +
      '<td '+hapmapTFTD+'>' + page['snps'][i].hapmapstr	+ '</td>' +	
      '<td '+locTD+ '>' + page['snps'][i].func 	+ '</td>' +
      '<td>' + page['snps'][i].strand 	+ '</td>' +
      '<td bgcolor=#adc2d6>' + page['snps'][i].chromStart	+ '</td>' +
      '<td ' + avHetTD +'>' + page['snps'][i].avHet 	+ '</td>' +
      '<td ' + avHetSETD +'>' + page['snps'][i].avHetSE 	+ '</td>' +
      '<td ' + CEUTD +'>' + CEU_out	+ '</td>' +
      '<td ' + CHBTD +'>' + CHB_out	+ '</td>' +
      '<td ' + JPTTD +'>' + JPT_out	+ '</td>' +
      '<td ' + YRITD +'>' + YRI_out	+ '</td>' +
      '<td ' + siftTD + '>' + page['snps'][i].sift 	+ '</td>' +
      '<td' + conservTD + '>' + conserv_out	+ '</td>' +
     
      '</tr>';

    // }
    }
 
  table += '</table></form>';
  contain.innerHTML = table;

  //$('tester').innerHTML = 'snpGood: ' + page['snpGood'];
  selectAllFlag = 0;
  $('currSelected').innerHTML = currSelected;
  if(lastState==1){
    $('updateButton').style.background= '#7CCD7C' ;
  }
  else if(lastState==2){
    $('clearButton').style.background= '#7CCD7C' ;
  }
  else if(lastState==3){
    $('showAllButton').style.background= '#7CCD7C' ;
  }
  else if(lastState==4){
    $('selectButton').style.background= '#7CCD7C' ;
  }
  else if(lastState==5){
    $('unselectButton').style.background= '#7CCD7C' ;
  }
  else if(lastState==6){
    $('selectAllButton').style.background= '#7CCD7C' ;
  }
  else if(lastState==7){
    $('saveButton').style.background= '#7CCD7C' ;
  }
  currTotalSNP = page['snpGood'];
  $('totalSNP').innerHTML = currTotalSNP;
  //$('currChrom').innerHTML = 'chr1';
  
  showNavigation();
  //getImageUrl();
  //document.write("webSnapr X:" + webSnapr.x);
  //webSnapr.init();
    if(isGuest == 1){					
    document.getElementById("saveButton").disabled=true;
  }
 
  hideTooltip();
}

function hapmapLink2(hname){
  var selectedWithHapmap = 0;
  for(var i=0; i<currTotalSNP; i++){		
    if(savedSNP[i] != null){
      if(savedSNP[i].hapmap){
	selectedWithHapmap = selectedWithHapmap + 1;
      }
    }
  }
  
  if(selectedWithHapmap == 0){
    var url = 'get_image.php?x=1000&y=700&chrom='+chrom_+'&population='+hname+'&selectedFlag=0';
    window.open(url, hname);
  }
  else{
    if(selectedWithHapmap < 100){
      var getRs ='';
      var j=1;
      for(var i=0; i<currTotalSNP; i++){		
        if(savedSNP[i] != null){
          if(savedSNP[i].hapmap){
	    getRs = getRs + '&rs' + j + '=' + savedSNP[i].name;
	    j+=1;
	  }
        }
      }

      var url = 'get_image.php?x=1000&y=700&chrom='+chrom_+'&population='+hname+'&selectedFlag=1' + getRs;
      window.open(url, hname);
    }
    else{
      var getRs ='';
      var jcnt=1;
      var j=1;
      var incrmnt = Math.round(selectedWithHapmap/100);
      for(var i=0; i<currTotalSNP; i++){		
        if(savedSNP[i] != null){
	  if(savedSNP[i].hapmap){
	    if((jcnt % incrmnt) == 0){
	      getRs = getRs + '&rs' + j + '=' + savedSNP[i].name;
	      j=j+1;
	    }
	    jcnt =jcnt + 1;
	  }
        }
      }

      var url = 'get_image.php?x=1000&y=700&chrom='+chrom_+'&population='+hname+'&selectedFlag=2' + getRs;
      window.open(url, hname);
    }
  }
}
/*
function hapmapLink2(hname){

  if(currSelected == 0){
    var url = 'get_image.php?x=1000&y=700&chrom='+chrom_+'&population='+hname+'&selectedFlag=0';
    window.open(url, hname);
  }
  else{
    if(currSelected < 200){
      var getRs ='';
      var j=1;
      for(var i=0; i<currTotalSNP; i++){		
        if(savedSNP[i] != null){
          //if(savedSNP[i].inHapList){
	  getRs = getRs + '&rs' + j + '=' + savedSNP[i].name;
	  j+=1;
	  //  }
        }
      }

      var url = 'get_image.php?x=1000&y=700&chrom='+chrom_+'&population='+hname+'&selectedFlag=1' + getRs;
      window.open(url, hname);
    }
    else{
      var getRs ='';
      var jcnt=1;
      var j=1;
      var incrmnt = Math.round(currSelected/200);
      for(var i=0; i<currTotalSNP; i++){		
        if(savedSNP[i] != null){
	  //if(savedSNP[i].inHapList){
	  if((jcnt % incrmnt) == 0){
	    getRs = getRs + '&rs' + j + '=' + savedSNP[i].name;
	    j=j+1;
	  }
	  //}
          jcnt =jcnt + 1;
        }
      }

      var url = 'get_image.php?x=1000&y=700&chrom='+chrom_+'&population='+hname+'&selectedFlag=2' + getRs;
      window.open(url, hname);
    }
  }
}
*/

function saveCheckedSNP(sID, nm, hap){
  //$('tester').innerHTML = 'sid=' + sID;
  if(document.getElementById(sID).checked){
    clickChanged++;
    currSelected++;
    savedSNP[sID] = new snpData();
    savedSNP[sID].name = nm;
    savedSNP[sID].ID = sID;
    savedSNP[sID].hapmap = hap;

  }
  else{
    clickChanged++;
    currSelected--;
    delete savedSNP[sID];	
  } 

  $('currSelected').innerHTML = currSelected;
  cpySendArrayToString();
  //getImageUrl();
}
            
function openPWindow(url){

  myWin = window.open(url, "Filtering", 'width=550,height=170,left=150,top=200,toolbar=1,status=1');
  if(!myWin.opener) myWin.opener = this;

}

function ShowPop(popID){
  document.getElementById(popID).style.visibility = 'visible';
}


//////////////////////////////////////////////////////////////////////////////////////

function enableTooltips2(incomingData){
  
  var links,i,h,id,currObserved, currMolType,currClass,currLocType,dArray;
  var linkout="links: ";
  //$('tester2').innerHTML="in enableTooltips2-1 ... : " + incomingData;
  dArray= incomingData.split(":");
  id=dArray[0];
  currObserved=dArray[1];
  currMolType=dArray[2];
  currClass=dArray[3];
  currLocType=dArray[4];
  if(!document.getElementById || !document.getElementsByTagName) return;
  //AddCss();

  h=document.createElement("span");
  h.id="btc";
  h.setAttribute("id","btc");
  h.style.position="absolute";
  document.getElementsByTagName("body")[0].appendChild(h);
  if(id==null) links=document.getElementsByTagName("a");
  else links=document.getElementById(id).getElementsByTagName("a");
  //$('tester').innerHTML="links.length: " + links.length;
  for(i=0;i<links.length;i++){
    //linkout+=links[i]+" | ";
    PrepRs(links[i], currObserved, currMolType, currClass, currLocType);
  }
  //$('tester').innerHTML=linkout;
  //$('tester').innerHTML="in enableTooltips2 ...";
}
function PrepRs(el, currObserved, currMolType, currClass, currLocType){
  //$('tester2').innerHTML="in PrepRs ...:"+currObserved;
  var tooltip,t,b,s,l;
  el.removeAttribute("title");
  tooltip=CreateEl("span","tooltip");
  //$('tester2').innerHTML="1";
  s=CreateEl("span","top");
  //$('tester2').innerHTML="2";
  t = "Observed: "+currObserved+" MolType: "+currMolType;
  //$('tester2').innerHTML="2.5";
  s.appendChild(document.createTextNode(t));
  //$('tester2').innerHTML="3";
  tooltip.appendChild(s);
  //$('tester2').innerHTML="4";
  b=CreateEl("b","bottom");
  l = "Class: "+currClass+" LocType: "+currLocType;
  //$('tester2').innerHTML="5";
  b.appendChild(document.createTextNode(l));
  //$('tester2').innerHTML="6";
  tooltip.appendChild(b);
  //$('tester2').innerHTML="7";
  setOpacity(tooltip);
  el.tooltip=tooltip;
  //$('tester2').innerHTML="8";
  //el.onmouseover=showTooltip;
  document.getElementById("btc").appendChild(el.tooltip);
  el.onmouseout=hideTooltip;
  //$('tester2').innerHTML="9";
  el.onmousemove=Locate;
}

function enableTooltips(id){
  //$('tester').innerHTML="in enableTooltips ...";
  var links,i,h;
  if(!document.getElementById || !document.getElementsByTagName) return;
  //AddCss();
  h=document.createElement("span");
  h.id="btc";
  h.setAttribute("id","btc");
  h.style.position="absolute";
  document.getElementsByTagName("body")[0].appendChild(h);
  if(id==null) links=document.getElementsByTagName("a");
  else links=document.getElementById(id).getElementsByTagName("a");
  if(id=="idValidation"){
    for(i=0;i<links.length;i++){
      PrepValidation(links[i]);
    }
  }
  if(id=="idHapmap"){
    for(i=0;i<links.length;i++){
      PrepHapmap(links[i]);
    }
  }
  if(id=="idLocation"){
    for(i=0;i<links.length;i++){
      PrepLocation(links[i]);
    }
  }
  if(id=="idAvHet"){
    for(i=0;i<links.length;i++){
      PrepAvHet(links[i]);
    }
  }
  if(id=="idAvHetSE"){
    for(i=0;i<links.length;i++){
      PrepAvHetSE(links[i]);
    }
  }
  if(id=="idCEU"){
    for(i=0;i<links.length;i++){
      PrepCEU(links[i]);
    }
  }
  if(id=="idCHB"){
    for(i=0;i<links.length;i++){
      PrepCHB(links[i]);
    }
  }
  if(id=="idJPT"){
    for(i=0;i<links.length;i++){
      PrepJPT(links[i]);
    }
  }
  if(id=="idYRI"){
    for(i=0;i<links.length;i++){
      PrepYRI(links[i]);
    }
  }
  if(id=="idSift"){
    for(i=0;i<links.length;i++){
      PrepSift(links[i]);
    }
  }
  if(id=="idConserv"){
    for(i=0;i<links.length;i++){
      PrepConserv(links[i]);
    }
  }
  if(id=="idPage"){
    for(i=0;i<links.length;i++){
      PrepPage(links[i]);
    }
  }
  if(id=="idCEU_h"){
    for(i=0;i<links.length;i++){
      PrepCEU_h(links[i]);
    }
  }
  if(id=="idCHB_h"){
    for(i=0;i<links.length;i++){
      PrepCHB_h(links[i]);
    }
  }
  if(id=="idJPT_h"){
    for(i=0;i<links.length;i++){
      PrepJPT_h(links[i]);
    }
  }
  if(id=="idYRI_h"){
    for(i=0;i<links.length;i++){
      PrepYRI_h(links[i]);
    }
  }
  if(id=="idGetSeq"){
    for(i=0;i<links.length;i++){
      PrepGetSeq(links[i]);
    }
  }
  if(id=="idGetExcel"){
    for(i=0;i<links.length;i++){
      PrepGetExcel(links[i]);
    }
  }

}

function PrepPage(el){
  var tooltip,t,b,s,l;
  el.removeAttribute("title");
  tooltip=CreateEl("span","tooltip");
  s=CreateEl("span","top");
  t = "Page Size";
  s.appendChild(document.createTextNode(t));
  tooltip.appendChild(s);
  b=CreateEl("b","bottom");
  l = pagingSize;
  b.appendChild(document.createTextNode(l));
  tooltip.appendChild(b);
  setOpacity(tooltip);
  el.tooltip=tooltip;
  //el.onmouseover=showTooltip;
  document.getElementById("btc").appendChild(el.tooltip);
  el.onmouseout=hideTooltip;
  el.onmousemove=Locate;
}

function PrepCEU_h(el){
  var tooltip,t,b,s,l;
  el.removeAttribute("title");
  tooltip=CreateEl("span","tooltip");
  s=CreateEl("span","top");
  t = "CEU";
  s.appendChild(document.createTextNode(t));
  tooltip.appendChild(s);
  b=CreateEl("b","bottom");
  l = "Displays Hapmap-like image" ;
  b.appendChild(document.createTextNode(l));
  tooltip.appendChild(b);
  setOpacity(tooltip);
  el.tooltip=tooltip;
  //el.onmouseover=showTooltip;
  document.getElementById("btc").appendChild(el.tooltip);
  el.onmouseout=hideTooltip;
  el.onmousemove=Locate;
}

function PrepCHB_h(el){
  var tooltip,t,b,s,l;
  el.removeAttribute("title");
  tooltip=CreateEl("span","tooltip");
  s=CreateEl("span","top");
  t = "CHB";
  s.appendChild(document.createTextNode(t));
  tooltip.appendChild(s);
  b=CreateEl("b","bottom");
  l = "Displays Hapmap-like image" ;
  b.appendChild(document.createTextNode(l));
  tooltip.appendChild(b);
  setOpacity(tooltip);
  el.tooltip=tooltip;
  //el.onmouseover=showTooltip;
  document.getElementById("btc").appendChild(el.tooltip);
  el.onmouseout=hideTooltip;
  el.onmousemove=Locate;
}

function PrepJPT_h(el){
  var tooltip,t,b,s,l;
  el.removeAttribute("title");
  tooltip=CreateEl("span","tooltip");
  s=CreateEl("span","top");
  t = "JPT";
  s.appendChild(document.createTextNode(t));
  tooltip.appendChild(s);
  b=CreateEl("b","bottom");
  l = "Displays Hapmap-like image" ;
  b.appendChild(document.createTextNode(l));
  tooltip.appendChild(b);
  setOpacity(tooltip);
  el.tooltip=tooltip;
  //el.onmouseover=showTooltip;
  document.getElementById("btc").appendChild(el.tooltip);
  el.onmouseout=hideTooltip;
  el.onmousemove=Locate;
}
function PrepYRI_h(el){
  var tooltip,t,b,s,l;
  el.removeAttribute("title");
  tooltip=CreateEl("span","tooltip");
  s=CreateEl("span","top");
  t = "YRI";
  s.appendChild(document.createTextNode(t));
  tooltip.appendChild(s);
  b=CreateEl("b","bottom");
  l = "Displays Hapmap-like image" ;
  b.appendChild(document.createTextNode(l));
  tooltip.appendChild(b);
  setOpacity(tooltip);
  el.tooltip=tooltip;
  //el.onmouseover=showTooltip;
  document.getElementById("btc").appendChild(el.tooltip);
  el.onmouseout=hideTooltip;
  el.onmousemove=Locate;
}
function PrepGetSeq(el){
  var tooltip,t,b,s,l;
  el.removeAttribute("title");
  tooltip=CreateEl("span","tooltip");
  s=CreateEl("span","top");
  t = "Sequence";
  s.appendChild(document.createTextNode(t));
  tooltip.appendChild(s);
  b=CreateEl("b","bottom");
  l = "Outputs sequence information in HTML" ;
  b.appendChild(document.createTextNode(l));
  tooltip.appendChild(b);
  setOpacity(tooltip);
  el.tooltip=tooltip;
  //el.onmouseover=showTooltip;
  document.getElementById("btc").appendChild(el.tooltip);
  el.onmouseout=hideTooltip;
  el.onmousemove=Locate;
}
function PrepGetExcel(el){
  var tooltip,t,b,s,l;
  el.removeAttribute("title");
  tooltip=CreateEl("span","tooltip");
  s=CreateEl("span","top");
  t = "Excel";
  s.appendChild(document.createTextNode(t));
  tooltip.appendChild(s);
  b=CreateEl("b","bottom");
  l = "Outputs SNP Data in excel sheet" ;
  b.appendChild(document.createTextNode(l));
  tooltip.appendChild(b);
  setOpacity(tooltip);
  el.tooltip=tooltip;
  //el.onmouseover=showTooltip;
  document.getElementById("btc").appendChild(el.tooltip);
  el.onmouseout=hideTooltip;
  el.onmousemove=Locate;
}

function PrepValidation(el){
  var tooltip,t,b,s,l;
  el.removeAttribute("title");
  tooltip=CreateEl("span","tooltip");
  s=CreateEl("span","top");
  t = "VALIDATION:";
  s.appendChild(document.createTextNode(t));
  tooltip.appendChild(s);
  b=CreateEl("b","bottom");
  l = currValid;
  b.appendChild(document.createTextNode(l));
  tooltip.appendChild(b);
  setOpacity(tooltip);
  el.tooltip=tooltip;
  //el.onmouseover=showTooltip;
  document.getElementById("btc").appendChild(el.tooltip);
  el.onmouseout=hideTooltip;
  el.onmousemove=Locate;
}
function PrepHapmap(el){
  var tooltip,t,b,s,l;
  el.removeAttribute("title");
  tooltip=CreateEl("span","tooltip");
  s=CreateEl("span","top");
  t = "HAPMAP";
  s.appendChild(document.createTextNode(t));
  tooltip.appendChild(s);
  b=CreateEl("b","bottom");
  l = currHapmap;
  b.appendChild(document.createTextNode(l));
  tooltip.appendChild(b);
  setOpacity(tooltip);
  el.tooltip=tooltip;
  //el.onmouseover=showTooltip;
  document.getElementById("btc").appendChild(el.tooltip);
  el.onmouseout=hideTooltip;
  el.onmousemove=Locate;
}
function PrepLocation(el){
  var tooltip,t,b,s,l;
  el.removeAttribute("title");
  tooltip=CreateEl("span","tooltip");
  s=CreateEl("span","top");
  t = "LOCATION";
  s.appendChild(document.createTextNode(t));
  tooltip.appendChild(s);
  b=CreateEl("b","bottom");
  if((F_unknown != 0)||(F_locus_region != 0)||(F_coding != 0)||(F_coding_synon != 0)||(F_coding_nonsynon != 0)||(F_mrna_utr != 0)||(F_intron != 0)||(F_splice_slice != 0)||(F_reference != 0)||(F_exception != 0)){
    l = "set";
  }
  else{
    l = "not-set";
  }
  b.appendChild(document.createTextNode(l));
  tooltip.appendChild(b);
  setOpacity(tooltip);
  el.tooltip=tooltip;
  //el.onmouseover=showTooltip;
  document.getElementById("btc").appendChild(el.tooltip);
  el.onmouseout=hideTooltip;
  el.onmousemove=Locate;
}
function PrepAvHet(el){
  var tooltip,t,b,s,l;
  el.removeAttribute("title");
  tooltip=CreateEl("span","tooltip");
  s=CreateEl("span","top");
  t = "AvHet Lower Bounds: "+ avHetcurrRangeLo;
  s.appendChild(document.createTextNode(t));
  tooltip.appendChild(s);
  b=CreateEl("b","bottom");
  l = "AvHet Upper Bounds: "+ avHetcurrRangeHi;
  b.appendChild(document.createTextNode(l));
  tooltip.appendChild(b);
  setOpacity(tooltip);
  el.tooltip=tooltip;
  //el.onmouseover=showTooltip;
  document.getElementById("btc").appendChild(el.tooltip);
  el.onmouseout=hideTooltip;
  el.onmousemove=Locate;
}
function PrepAvHetSE(el){
  var tooltip,t,b,s,l;
  el.removeAttribute("title");
  tooltip=CreateEl("span","tooltip");
  s=CreateEl("span","top");
  t = "AvHetSE Lower Bounds: "+ avHetcurrRangeLo;
  s.appendChild(document.createTextNode(t));
  tooltip.appendChild(s);
  b=CreateEl("b","bottom");
  l = "AvHetSE Upper Bounds: "+ avHetcurrRangeHi;
  b.appendChild(document.createTextNode(l));
  tooltip.appendChild(b);
  setOpacity(tooltip);
  el.tooltip=tooltip;
  //el.onmouseover=showTooltip;
  document.getElementById("btc").appendChild(el.tooltip);
  el.onmouseout=hideTooltip;
  el.onmousemove=Locate;
}
function PrepCEU(el){
  var tooltip,t,b,s,l;
  el.removeAttribute("title");
  tooltip=CreateEl("span","tooltip");
  s=CreateEl("span","top");
  t = "CEU Lower Bounds: "+ CEUcurrRangeLo;
  s.appendChild(document.createTextNode(t));
  tooltip.appendChild(s);
  b=CreateEl("b","bottom");
  l = "CEU Upper Bounds: "+ CEUcurrRangeHi;
  b.appendChild(document.createTextNode(l));
  tooltip.appendChild(b);
  setOpacity(tooltip);
  el.tooltip=tooltip;
  //el.onmouseover=showTooltip;
  document.getElementById("btc").appendChild(el.tooltip);
  el.onmouseout=hideTooltip;
  el.onmousemove=Locate;
}
function PrepCHB(el){
  var tooltip,t,b,s,l;
  el.removeAttribute("title");
  tooltip=CreateEl("span","tooltip");
  s=CreateEl("span","top");
  t = "CHB Lower Bounds: "+ CHBcurrRangeLo;
  s.appendChild(document.createTextNode(t));
  tooltip.appendChild(s);
  b=CreateEl("b","bottom");
  l = "CHB Upper Bounds: "+ CHBcurrRangeHi;
  b.appendChild(document.createTextNode(l));
  tooltip.appendChild(b);
  setOpacity(tooltip);
  el.tooltip=tooltip;
  //el.onmouseover=showTooltip;
  document.getElementById("btc").appendChild(el.tooltip);
  el.onmouseout=hideTooltip;
  el.onmousemove=Locate;
}
function PrepJPT(el){
  var tooltip,t,b,s,l;
  el.removeAttribute("title");
  tooltip=CreateEl("span","tooltip");
  s=CreateEl("span","top");
  t = "JPT Lower Bounds: "+ JPTcurrRangeLo;
  s.appendChild(document.createTextNode(t));
  tooltip.appendChild(s);
  b=CreateEl("b","bottom");
  l = "JPT Upper Bounds: "+ JPTcurrRangeHi;
  b.appendChild(document.createTextNode(l));
  tooltip.appendChild(b);
  setOpacity(tooltip);
  el.tooltip=tooltip;
  //el.onmouseover=showTooltip;
  document.getElementById("btc").appendChild(el.tooltip);
  el.onmouseout=hideTooltip;
  el.onmousemove=Locate;
}
function PrepYRI(el){
  var tooltip,t,b,s,l;
  el.removeAttribute("title");
  tooltip=CreateEl("span","tooltip");
  s=CreateEl("span","top");
  t = "YRI Lower Bounds: "+ YRIcurrRangeLo;
  s.appendChild(document.createTextNode(t));
  tooltip.appendChild(s);
  b=CreateEl("b","bottom");
  l = "YRI Upper Bounds: "+ YRIcurrRangeHi;
  b.appendChild(document.createTextNode(l));
  tooltip.appendChild(b);
  setOpacity(tooltip);
  el.tooltip=tooltip;
  //el.onmouseover=showTooltip;
  document.getElementById("btc").appendChild(el.tooltip);
  el.onmouseout=hideTooltip;
  el.onmousemove=Locate;
}
function PrepSift(el){
  var tooltip,t,b,s,l;
  el.removeAttribute("title");
  tooltip=CreateEl("span","tooltip");
  s=CreateEl("span","top");
  t = "Sift Lower Bounds: "+ siftcurrRangeLo;
  s.appendChild(document.createTextNode(t));
  tooltip.appendChild(s);
  b=CreateEl("b","bottom");
  l = "Sift Upper Bounds: "+ siftcurrRangeHi;
  b.appendChild(document.createTextNode(l));
  tooltip.appendChild(b);
  setOpacity(tooltip);
  el.tooltip=tooltip;
  //el.onmouseover=showTooltip;
  document.getElementById("btc").appendChild(el.tooltip);
  el.onmouseout=hideTooltip;
  el.onmousemove=Locate;
}

function PrepConserv(el){
  var tooltip,t,b,s,l;
  el.removeAttribute("title");
  tooltip=CreateEl("span","tooltip");
  s=CreateEl("span","top");
  t = "Conservation Lower Bounds: "+ conservcurrRangeLo;
  s.appendChild(document.createTextNode(t));
  tooltip.appendChild(s);
  b=CreateEl("b","bottom");
  l = "Conservation Upper Bounds: "+ conservcurrRangeHi;
  b.appendChild(document.createTextNode(l));
  tooltip.appendChild(b);
  setOpacity(tooltip);
  el.tooltip=tooltip;
  //el.onmouseover=showTooltip;
  document.getElementById("btc").appendChild(el.tooltip);
  el.onmouseout=hideTooltip;
  el.onmousemove=Locate;
}




function showTooltip(e){
  //Prepare(id);
  document.getElementById("btc").appendChild(this.tooltip);
  Locate(e);
}

function hideTooltip(e){
  var d=document.getElementById("btc");
  //if(d.childNodes.length>0) d.removeChild(d.firstChild);
  while(d.childNodes.length>0){ d.removeChild(d.firstChild);}

}

function setOpacity(el){
  el.style.filter="alpha(opacity:95)";
  el.style.KHTMLOpacity="0.95";
  el.style.MozOpacity="0.95";
  el.style.opacity="0.95";
}

function CreateEl(t,c){
  var x=document.createElement(t);
  x.className=c;
  x.style.display="block";
  return(x);
}

function AddCss(){
  var l=CreateEl("link");
  l.setAttribute("type","text/css");
  l.setAttribute("rel","stylesheet");
  l.setAttribute("href","bt.css");
  l.setAttribute("media","screen");
  document.getElementsByTagName("head")[0].appendChild(l);
}

function Locate(e){
  var posx=0,posy=0;
  if(e==null) e=window.event;
  if(e.pageX || e.pageY){
    posx=e.pageX; posy=e.pageY;
  }
  else if(e.clientX || e.clientY){
    if(document.documentElement.scrollTop){
      posx=e.clientX+document.documentElement.scrollLeft;
      posy=e.clientY+document.documentElement.scrollTop;
    }
    else{
      posx=e.clientX+document.body.scrollLeft;
      posy=e.clientY+document.body.scrollTop;
    }
  }
  document.getElementById("btc").style.top=(posy+10)+"px";
  document.getElementById("btc").style.left=(posx-20)+"px";  
}

function DisableEnableLinks(xHow){
  //objLinks = document.links;
  objLinks = document.getElementById("disID").getElementsbyTagName("a");
  //document.write("111111<br>");
  for(i=0;i<objLinks.length;i++){
    objLinks[i].disabled = xHow;
    //link with onclick
  document.write("222222<br>");
    if(objLinks[i].onclick && xHow){  
        objLinks[i].onclick = new Function("return false;" + objLinks[i].onclick.toString().getFuncBody());
    }
    //link without onclick
    else if(xHow){  
      objLinks[i].onclick = function(){return false;}
    }
    //remove return false with link without onclick
    else if(!xHow && objLinks[i].onclick.toString().indexOf("function(){return false;}") != -1){            
      objLinks[i].onclick = null;
    }
    //remove return false link with onclick
    else if(!xHow && objLinks[i].onclick.toString().indexOf("return false;") != -1){  
      strClick = objLinks[i].onclick.toString().getFuncBody().replace("return false;","")
      objLinks[i].onclick = new Function(strClick);
    }
  }
}

String.prototype.getFuncBody = function(){ 
  var str=this.toString(); 
  str=str.replace(/[^{]+{/,"");
  str=str.substring(0,str.length-1);   
  str = str.replace(/\n/gi,"");
  if(!str.match(/\(.*\)/gi))str += ")";
  return str; 
} 


