function tooLong(Id,texte){
	objet=document.getElementById(Id);
	sequences = objet.value;
	//le contenu du chanmp sequence est récupéré
	MesEntetesTemp = sequences.split("\n"); // tableau contenant chaque ligne de la sequence
	if(MesEntetesTemp.length < 2)
	{
		// on est en presence potentielle de sequences dont le retour a la ligne est code par un \r
		MesEntetesTemp = sequences.split("\r"); // tableau contenant chaque ligne de la sequence
	}
	var TestEntetes = new Array();
	var EnteteReg=/^>/;
	// récupération des lignes de description uniquement
	for (var i=0; i < MesEntetesTemp.length; i++) {
		if (EnteteReg.exec(MesEntetesTemp[i])!=null){
			TestEntetes.push(MesEntetesTemp[i]);
		}
	}
	for (var i=0; i < TestEntetes.length; i++) {
		//test de la longueur des lignes de description :
		var titre = TestEntetes[i];
		if (titre.length > 200){
			alert(texte+" :\n"+titre);
			return false;
		}
	}
	return true;
}

function test_mail(objet,texte){
	with(objet){
		apos=value.indexOf("@");
		if (apos==-1 && value!="None"){
			if (texte){ alert(texte);}
			return false;
		}
		return true;
	}
}

function nucValidation(objet){
	with(objet){
		if(document.getElementById('sequences').value=="" && document.getElementById('datafile').value==""){
			alert('Aucune sequence !');
			return false;
		}
		if (test_vide(divisions,'Aucune banque sélectionnée')==false){
			return false;
		}	
		return true;
	}
}

function xValidation(objet){
	with(objet){
		if(document.getElementById('sequences').value=="" && document.getElementById('datafile').value==""){
			alert('Aucune sequence !');
			return false;
		}
		if (test_vide(divisions,'Aucune banque sélectionnée')==false){
                        return false;
                }
		return true;
	}
}

function megaValidation(objet){
	with(objet){
		if(document.getElementById('sequences').value=="" && document.getElementById('datafile').value==""){
			alert('Aucune sequence !');
			return false;
		}
	}
}

function psiValidation(objet){
	with(objet){
		if(document.getElementById('sequences').value=="" && document.getElementById('datafile').value==""){
			alert('Aucune sequence !');
			return false;
		}
		if(document.getElementById('DB').value==""){
			alert('Aucune Banque de données sélectionnée !');
			return false;
		}
		if(document.getElementById('email').value!=""){
			mail=document.getElementById('email').value;
			var mailReg=/[A-Za-z_\d\.-]+@([A-Za-z_\d-]+\.)+[a-z]/;
			if (mailReg.exec(mail)==null){
				alert("Adresse mail non valide");
				email.select();
				email.focus();
				return false;
			}
		}
 		if (document.getElementById('email').value==""){
 			// champ vide
 			alert("Veuillez entrer votre email afin de recevoir votre résultat");
			email.select();
			email.focus();
 			return false;
 		}
		return true;
	}
}

function estValidation(objet){
	with(objet){
		if(document.getElementById('sequences').value=="" && document.getElementById('datafile').value==""){
			alert('Aucune sequence !');
			return false;
		}
		if (typeseq.value=="adn" && program.value=="tblastn"){
			alert('tblastn : sequences protéiques !!');
			sequences.select() ; sequences.focus(); return false;
		}
		if (typeseq.value=="prot" && program.value=="blastn"){
			alert('blastn : sequences nucléiques !!');
			typeseq.select() ; typeseq.focus(); return false;
		}	
		return true;
	}
}

function genoValidation(objet){
	with(objet){
		if(document.getElementById('sequences').value=="" && document.getElementById('datafile').value==""){
			alert('Aucune sequence !');
			return false;
		}
		return true;
	}
}

function persoBlastValidation(objet){
		with(objet){
		// verification de la soumission de sequences :
		if (document.getElementById('sequences').value=='' && document.getElementById('datafile').value==''){
			alert("Il manque la sequence query!");
			return false;
		}
		if (document.getElementById('seqsBank').value=='' && document.getElementById('fileBank').value==''){
			alert('Pas de sequences pour construire la base!');
			return false;
		}
		return true;
	}
}

function persoBlastValidationEn(objet){
		with(objet){
		if (sequences.value=='' && datafile.value==''){
			alert('query sequence missing !');
			sequences.select() ; sequences.focus(); return false;
		}
		if (seqsBank.value=='' && fileBank.value==''){
			alert('database sequences missing !');
			seqsBank.select() ; seqsBank.focus(); return false;
		}	
		return true;
	}
}

