function getCheckedValue(){

	if (document.getElementById('list').checked) {
		document.getElementById('Liste_Genomes').disabled = "";
		document.getElementById('acc_num').value = "";
		document.getElementById('acc_num').disabled = "true";
		document.getElementById('name_org').value = "";
		document.getElementById('name_org').disabled = "true";	
		document.getElementById('type').value = "list";
		for( var i = 1; i <= document.getElementById('nbKingdom').value; i++ ) {
			var id = "kingdom" + i;
			document.getElementById(id).style.display = "none";
			var ref = "RefKingdom" + i;
			moreTaxon(document.getElementById(ref).value,"moins");
		}
		document.getElementById('taxon_genome').value = "";
		if (document.getElementById('New_Genomes')){
			document.getElementById('New_Genomes').value = 0;
			document.getElementById('New_Genomes').style.visibility = "hidden";
		}
	}
	else {
		if (document.getElementById('accession_number').checked) {
			document.getElementById('Liste_Genomes').value = 0;
			document.getElementById('Liste_Genomes').disabled = "true";
			document.getElementById('acc_num').disabled = "";
			document.getElementById('name_org').value = "";
			document.getElementById('name_org').disabled = "true";
			document.getElementById('type').value = "accession_number";
			for( var i = 1; i <= document.getElementById('nbKingdom').value; i++ ) {
				var id = "kingdom" + i;
				document.getElementById(id).style.display = "none";
				var ref = "RefKingdom" + i;
				moreTaxon(document.getElementById(ref).value,"moins");
			}
			document.getElementById('taxon_genome').value = "";
			if (document.getElementById('New_Genomes')){
				document.getElementById('New_Genomes').value = 0;
				document.getElementById('New_Genomes').style.visibility = "hidden";
			}
		}
		else {
			if (document.getElementById('name').checked) {
				document.getElementById('Liste_Genomes').value = 0;
				document.getElementById('Liste_Genomes').disabled = "true";
				document.getElementById('acc_num').value = "";
				document.getElementById('acc_num').disabled = "true";
				document.getElementById('name_org').disabled = "";
				document.getElementById('type').value = "name";
				for( var i = 1; i <= document.getElementById('nbKingdom').value; i++ ) {
					var id = "kingdom" + i;
					document.getElementById(id).style.display = "none";
					var ref = "RefKingdom" + i;
					moreTaxon(document.getElementById(ref).value,"moins");
				}
				document.getElementById('taxon_genome').value = "";
			}
			else {
				document.getElementById('Liste_Genomes').value = 0;
				document.getElementById('Liste_Genomes').disabled = "true";
				document.getElementById('acc_num').value = "";
				document.getElementById('acc_num').disabled = "true";
				document.getElementById('name_org').value = "";
				document.getElementById('name_org').disabled = "true";
				document.getElementById('type').value = "taxon";
				for( var i = 1; i <= document.getElementById('nbKingdom').value; i++ ) {
					var id = "kingdom" + i;
					document.getElementById(id).style.display = "";
				}
				if (document.getElementById('New_Genomes')){
					document.getElementById('New_Genomes').value = 0;
					document.getElementById('New_Genomes').style.visibility = "hidden";
				}
			}
		}
	}
}

function initCheckedValue(){

	if (document.getElementById('type').value == "list" || document.getElementById('type').value == "") {
		document.getElementById('Liste_Genomes').disabled = "";
		document.getElementById('acc_num').value = "";
		document.getElementById('acc_num').disabled = "true";
		document.getElementById('name_org').value = "";
		document.getElementById('name_org').disabled = "true";	
		document.getElementById('list').checked;
		document.getElementById('taxon_genome').value = "";
	}
	else {
		if (document.getElementById('type').value == "accession_number") {
			document.getElementById('Liste_Genomes').value = 0;
			document.getElementById('Liste_Genomes').disabled = "true";
			document.getElementById('acc_num').disabled = "";
			document.getElementById('name_org').value = "";
			document.getElementById('name_org').disabled = "true";
			document.getElementById('accession_number').checked;
			document.getElementById('taxon_genome').value = "";
		}
		else {
			if (document.getElementById('type').value == "name") {
				document.getElementById('Liste_Genomes').value = 0;
				document.getElementById('Liste_Genomes').disabled = "true";
				document.getElementById('acc_num').value = "";
				document.getElementById('acc_num').disabled = "true";
				document.getElementById('name_org').disabled = "";
				document.getElementById('name').checked;
				document.getElementById('taxon_genome').value = "";
			}
			else {
				if (document.getElementById('type').value == "taxon") {
					document.getElementById('Liste_Genomes').value = 0;
					document.getElementById('Liste_Genomes').disabled = "true";
					document.getElementById('acc_num').value = "";
					document.getElementById('acc_num').disabled = "true";
					document.getElementById('name_org').value = "";
					document.getElementById('name_org').disabled = "true";
					document.getElementById('taxon').checked;
				}
			}
		}
	}
}


function getCheckedValueBlast(){
	if (document.getElementById('DNASeq').checked) {
		document.getElementById('typeSequence').value = "DNA";
		document.getElementById('matrixLine').style.display = "none";
		document.getElementById('wordSize').value = "6";
		document.getElementById('openGap').value = "1";
		document.getElementById('extensionGap').value = "2";
	}
	else {
		document.getElementById('typeSequence').value = "Protein";
		document.getElementById('matrixLine').style.display = "";
		document.getElementById('wordSize').value = "3";
		document.getElementById('openGap').value = "11";
		document.getElementById('extensionGap').value = "1";
	}
}

function initCheckedValueBlast(){
	document.getElementById('typeSequence').value = "DNA";
	document.getElementById('matrix').value = "BLOSUM62";
	document.getElementById('DNASeq').checked; 
	getCheckedValueBlast();
}

function check_form_1()
{
	/* Vérification de la partie 1 du formulaire (sélection d'un génome), renvoie true si OK*/
	var result=true;
	var nb_motifs;

	/* Vérification de l'adresse mail */
	if (!verif_mail()){
		result=false;
	}

	if (document.getElementById('list').checked && document.getElementById('Liste_Genomes').value == 0) {
		alert("Veuillez sélectionner une valeur dans la liste");
		result=false;
	}
	if (document.getElementById('accession_number').checked && document.getElementById('acc_num').value == ""){
		alert("Veuillez saisir une valeur pour le numéro d'accession");
		result=false;
	}
	if (document.getElementById('name').checked && document.getElementById('name_org').value == "" && document.getElementById('New_Genomes').value == 0) {
		alert("Veuillez saisir une valeur pour le nom de l'organisme");
		result=false;
	}

	if (document.getElementById('taxon').checked && document.getElementById('taxon_genome').value == ""){
		alert("Veuillez sélectionner un organisme");
		result=false;
	}

	if (result) {
		return true;
	}
	else {
		return false;
	}

}// function check_form()

function check_formBlast()
{
	/* Vérification de la partie 2 du formulaire (blast contre banque de spacers), renvoie true si OK*/
	var result=true;
	var nb_motifs;

	/* Vérification de l'adresse mail */
	if (!verif_mail()){
		result=false;
	}
	else {
		if (document.getElementById('mail').value != ""){
			document.getElementById('eMail').value = document.getElementById('mail').value;
		}
	}

	// verification de la soumission de sequences :
	if (document.getElementById('typeSequence').value == ""){
		alert("Vous devez indiquer le type de séquence que vous traitez (DNA ou Proteine)");
		result = false;
	}

	if (document.getElementById('sequence').value == '' && document.getElementById('usersequence').value == ''){
		alert("Il manque la sequence query!");
		result = false;
	}

	/*if (document.getElementById('sequence').value != ''){
		result = verif_alphabet(document.getElementById('typeSeq').value,document.getElementById('sequence').value);
	}*/	

	if (document.getElementById('database').value != "0" && document.getElementById('database').value != "1") {
		alert("Veuillez sélectionner une base dans la liste");
		result=false;
	}

	if (document.getElementById('eValue').value < 0 ){
		alert("eValue must be positive");
		result=false;
	}

	if (document.getElementById('wordSize').value < 0 ){
		alert("wordSize must be positive");
		result=false;
	}

	if (document.getElementById('openGap').value < 0 ){
		alert("open Gap must be positive");
		result=false;
	}

	if (document.getElementById('extensionGap').value < 0 ){
		alert("extention gap must be positive");
		result=false;
	}
	
	if (document.getElementById('typeSequence').value != "DNA" && document.getElementById('matrix').value == "") {
		alert("Vous devez indiquer la matrice à utiliser");
		result=false;
	}

	/* alert("typeSeq = " + document.getElementById('typeSeq').value + " extensionGap = " + document.getElementById('extensionGap'));
*/
	setLowComp();

	if (result) {
		return true;
	}
	else {
		return false;
	}

}// function check_formBlast()


function check_formFind()
{
	/* Vérification de la partie 3 du formulaire (find avec sequence utilisateur), renvoie true si OK*/
	var result=true;

	/* Vérification de l'adresse mail */
	if (!verif_mail()){
		result=false;
	}
	else {
		if (document.getElementById('mail').value != ""){
			document.getElementById('eMail2').value = document.getElementById('mail').value;
// 			alert ("eMail maj " + document.getElementById('mail').value);
		}
	}

	// verification de la soumission de sequence :
	if (document.getElementById('sequencePerso').value == '' && document.getElementById('usersequencePerso').value == ''){
		alert("Il manque la sequence query!");
		result = false;
	}

	return result;

}// function check_formFind()

/*
Vérification de la syntaxe du mail si présent
*/
function verif_mail()
{
	var mail;

	mail=document.getElementById('mail').value;
	result=true;
	if (mail!="")
	{
		var mailReg=/[A-Za-z_\d\.-]+@([A-Za-z_\d-]+\.)+[a-z]/;
		if (mailReg.exec(mail)==null)
		{
			alert("Wrong adress mail");
			result=false;
		}
	}
	return result;
}//function verif_mail()


function verif_alphabet(typeSeq,sequence){
// 	var sequence = document.getElementById('sequence').value;
	var typeSeq = document.getElementById('typeSequence').value;

	if (sequence.indexOf("\n") != -1) {
		sequence = sequence.substring(sequence.indexOf("\n")+1);
	}

	if (typeSeq == "DNA"){
		var alphabet = "ACGTURYNacgturyn\n\r";
	}
	else {
		var alphabet = "ABCDEFGHIKLMNPQRSTVWXYZabcdefghiklmnpqrstvwxyz\n\r";
	}
	
	for (var i=0; i< sequence.length; i++){
		if (alphabet.indexOf(sequence.charAt(i)) == -1 ){
			alert("Sequence is inconsistent with the alphabet.\n" + sequence.charAt(i) + " find at position " + i)
			return false;
		}
	}

	return true;
	
}

function selectligne(ligne){
	document.getElementById('id_crispr').value = ligne;
	document.forms['form'].submit();
}

function selectcrispr(debut,fin,consensus,size,nbUnits,id){
	document.getElementById('begin_crispr').value = debut;
	document.getElementById('end_crispr').value = fin;
	document.getElementById('consensus').value = consensus;
	document.getElementById('size').value = size;
	document.getElementById('nb_units').value = nbUnits;
	document.getElementById('id_crispr').value = id;
	document.forms['form'].submit();
}

function displayFeatures(all){
	if (all == "yes"){
		document.getElementById('allFeatures').value = "no";
	}
	else {
		document.getElementById('allFeatures').value = "yes";
	}
}

function moreOptions(){

	if (document.getElementById('sens').value == "moins"){
		document.getElementById('value').style.display = "none";
		document.getElementById('word').style.display = "none";
		document.getElementById('open').style.display = "none";
		document.getElementById('extension').style.display = "none";
		document.getElementById('low').style.display = "none";
		document.getElementById('sens').value = "plus";
	}
	else {
		document.getElementById('value').style.display = "";
		document.getElementById('word').style.display = "";
		document.getElementById('open').style.display = "";
		document.getElementById('extension').style.display = "";
		document.getElementById('low').style.display = "";
		document.getElementById('sens').value = "moins";
	}
}

function moreTaxon(pere,mode){


	var idNB = "nb" + pere;
	for ( var i = 1; i <= document.getElementById(idNB).value; i++ ) {
		var id = pere + "" + i;
		var idRef = "Ref" + pere + "" + i;
		if (document.getElementById(id).style.display == "none" && mode != "moins"){
			document.getElementById(id).style.display = "";
		}
		else {	
			if (document.getElementById(id).style.display != "none"){
				document.getElementById(id).style.display = "none";
				// on traite les enfants
				if (document.getElementById(idRef)){
					var idFils = document.getElementById(idRef).value;
					moreTaxon(idFils,"moins");
				}
			}
		}
	}

	var idNB = "nbGen" + pere;
	if (document.getElementById(idNB)){
		
		for ( var i = 1; i <= document.getElementById(idNB).value; i++ ) {
			var id = "Gen" + pere + "" + i;
			if (document.getElementById(id).style.display == "none" && mode != "moins"){
				document.getElementById(id).style.display = "";
			}
			else {
				if (document.getElementById(id).style.display != "none"){
					document.getElementById(id).style.display = "none";
				}
			}
		}
	}
}

function afficherFlankingSelect(){
	document.getElementById('flanking').style.display = "";
}

function afficherCRISPRSelect(){
	document.getElementById('sequence').style.display = "";
}

function selectTaxon(id){
	document.getElementById('taxon_genome').value = id;
	document.forms['formConsult'].submit();
}

function select_all(nameF,val){
    
    for( var i = 0; i < nameF.length; i++ ) {
	var e = nameF.elements[i];
	if(e.type == "checkbox") {
	    e.checked = ( val == 0 ? false : true );
	}
    }

   setCheckedValue(nameF);
}

function select_all_units(nameF,val){
    
    for( var i = 0; i < nameF.length; i=i+2 ) {
	var e = nameF.elements[i];
	if(e.type == "checkbox") {
	    e.checked = ( val == 0 ? false : true );
	}
    }

   setCheckedValue(nameF);
}

function select_all_spacers(nameF,val){
    
    for( var i = 1; i < nameF.length; i=i+2 ) {
	var e = nameF.elements[i];
	if(e.type == "checkbox") {
	    e.checked = ( val == 0 ? false : true );
	}
    }

   setCheckedValue(nameF);
}

function extractCAS(nameF){

	var listeGenes = new Array;
	var indiceListe=0;

	for( var j = 0; j < document.forms.length; j++ ) {
    		var f = document.forms[j];

		for( var i = 0; i < f.length; i++ ) {
			var e = f.elements[i];
			if (e.type == "checkbox" && e.checked) {
				listeGenes[indiceListe] = e.value;
				indiceListe++;
			}
    		}
	}

	nameF.liste_GenesCAS.value = listeGenes;	
// 	alert("genes = " + nameF.liste_GenesCAS.value);
	nameF.submit();
}

function extractData(nameF,type){

	var listeGenes = new Array;
	var indiceListe=0;

	for( var j = 0; j < document.forms.length; j++ ) {
    		var f = document.forms[j];

		for( var i = 0; i < f.length; i++ ) {
			var e = f.elements[i];
			if (e.type == "checkbox" && e.checked) {
				listeGenes[indiceListe] = e.value;
				indiceListe++;
			}
    		}
	}

	if ( type == "CAS"){
		nameF.liste_GenesCAS.value = listeGenes;	
// 		alert("Genes = " + nameF.liste_GenesCAS.value);
	}
	else {
		nameF.liste_Data.value = listeGenes;
// 		alert("Data = " + nameF.liste_Data.value);
	}

	nameF.submit();
}

function extractAllData(type){
	document.getElementById('type').value = type;
	document.forms['form'].submit();
}

function setCheckedValue(nameF){
	
	var nbChecked=0;

	for( var j = 0; j < document.forms.length; j++ ) {
		var f = document.forms[j];

		for( var i = 0; i < f.length; i++ ) {
			var e = f.elements[i];
			if (e.type == "checkbox" && e.checked) {
				nbChecked++;
			}
    		}
	}

	if (nbChecked > 0){
		nameF.bDownload.disabled = "";
	}
	else {
		nameF.bDownload.disabled = "true";
	}
}

function setLowComp(){
	
	if (document.getElementById('LowComp').checked) {
		document.getElementById('LowComplexity').value = "T";
	}
	else {
		document.getElementById('LowComplexity').value = "F";
	}
}
