
function check_form()
{
	/* Verification complete du formulaire, renvoie true si OK */
	var alignment;
	document.getElementById('varNum').value=new Date().getTime(); // on definit la variable d'identification de la requete
	/*
        if (document.getElementById('all_occurences').checked=="checked")
	{
		document.getElementById('all').value='yes';
	}
	else
	{
		document.getElementById('all').value='no';
	}
        */
	/* Verification des differents elements du formulaire */
	if (! verif_mail()){
		result=false;
	}
        /*
	if (! verif_Pattern_Parameters()){
		result=false;
	}
        */
	if (! verifSeq())
	{
		result = false;
	}
	// verification qu'un fichier est rentré si on donne un alignement personnel
	if (document.forms[0].align[0].checked==true)
	{
		seq = document.getElementById('alignment_file').value;
		if (seq=="")
		{
			alert("You must set an alignment file if the options 'Provide a custom alignment' is checked.");
                	result = false;
		}
	}
	if (! verif_Clustal_Parameters()){
		result=false;
	}
	if (! verif_Domain_Parameters()){
		result=false;
	}
	return result;
}//check_form

/*
function upload_alignement()
{
	// l'utilisateur a coche sur la checkbox de selection de l'alignement
	align_sequences=document.getElementById('align_sequences');
	alignment_file=document.getElementById('alignment_file');
        param1 = document.getElementById('align_param1');
        param2 = document.getElementById('align_param2');
        param1_valeur = document.getElementById('Open_Gap');
        param2_valeur = document.getElementById('Extension_Gap');

	visible='visible'; // chaine de caractere contenu dans le style css visibility pour faire apparaitre l'element
	hidden='hidden'; // chaine de caractere contenu dans le style css visibility pour faire disparaitre l'element

	if ( navigator.appName== "Netscape" && navigator.appVersion=="4.0"){
	/* Code specifique a internet explorer*/
/*		if(type=='visible'){type='show';}
	}
	if (align_sequences.checked==true)
	{
		// il ne faut pas montrer alignement_file
		alignment_file.style.visibility=hidden;
                // il faut montrer les parametres de l'alignement
                param1.style.visibility = visible;
                param2.style.visibility = visible;
                param1_valeur.value = "20";
                param2_valeur.value = "0.01";
	}
	else
	{
		alignment_file.style.visibility=visible;
                // les paramtres ne doivent pas apparaitre
                param1.style.visibility = hidden;
                param2.style.visibility = hidden;
                param1_valeur.value = "";
                param2_valeur.value = "";
	}
}
*/

function upload_alignement()
{
        param1_valeur = document.getElementById('Open_Gap');
        param2_valeur = document.getElementById('Extension_Gap');
        alignment_file=document.getElementById('alignment_file');
        //align = document.getElementById('align');
        align = document.form.align;

        // alignement utilisateur
        if (align[1].checked) {
                param1_valeur.disabled = "";
                param2_valeur.disabled = "";
                alignment_file.disabled = "disabled";
                alignment_file.value = "";
        }
	else if (align[2].checked)
	{
		param1_valeur.disabled = "disabled";
                param2_valeur.disabled = "disabled";
                alignment_file.disabled = "disabled";
                alignment_file.value = "";
	}
        // utilisation de clustal
        else {
                param1_valeur.disabled = "disabled";
                param2_valeur.disabled = "disabled";
                alignment_file.disabled = "" ;
        }
}

// ************************************************
function verif_Domain_Parameters()
{
	/* Verification des parametres du domain */
	// definition des constantes
	var Minimal_Domain_Size_min=10;
	var Minimal_Domain_Size_max=100;
	var error_min=10;
	var error_max=50;
	var result=true;
	// definition des variables
	var Minimal_Domain_Size=document.getElementById('Minimal_Domain_Size').value;
	var error=document.getElementById('error').value;
	if (isNaN(Minimal_Domain_Size))
	{
		/* Minimal_Domain_Size is not a number*/
		result=false;
		alert("Minimal domain size must be a number");
	} else if(Minimal_Domain_Size<Minimal_Domain_Size_min || Minimal_Domain_Size>Minimal_Domain_Size_max)
	{
		/*  Minimal_Domain_Size must be in the range Minimal_Domain_Size_min to Minimal_Domain_Size_max  */
		result=false;
		alert("Minimal domain size must be in the range : "+Minimal_Domain_Size_min+" to "+Minimal_Domain_Size_max);
	}else if (isNaN(error))
	{
		/* error is not a number */
		result=false;
		alert("Maximal error must be a number");
	}else if(error<error_min || error>error_max)
	{
		/*  error must be in the range error_min to error_max  */
		result=false;
		alert("Maximal error must be in the range : "+error_min+" to "+error_max);
	}
	return result;
}// verif_Domain_Parameters
// ************************************************
function verif_Pattern_Parameters()
{
	/* VÃ©rification des paramÃ¨tres du motif */
	// definition des variables
	var DNA_pattern=document.getElementById('DNA_pattern').value;
	var Sequences_name=document.getElementById('Seqences_name').value;
	var result=true;
	if(Sequences_name=="")
	{
		result=false;
		alert("Sequence name can't be null.");
	}else if(! test_pattern(DNA_pattern))
	{
		/* The pattern is not correct, an help message is display by fonction test_pattern */
		result=false;
	}
	return result;
}
// ************************************************
function verif_Clustal_Parameters()
{
	/* VÃ©rification des paramÃ¨tres propres Ã  ClustalW*/
	// definition des constantes
	var Open_gap_min=1;
	var Open_gap_max=100;
	var Extension_gap_min=0.001;
	var Extension_gap_max=10.0;
	// definition des variables
	var Open_gap=document.getElementById('Open_Gap').value;
	var Extension_gap=document.getElementById('Extension_Gap').value;
	var result=true

	if (isNaN(Open_gap) || Open_gap=="")
	{
		/* Open gap is not a number */
		result=false;
		alert('Open gap must be a number');
	}else if(isNaN(Extension_gap) || Extension_gap=="")
	{
		/* Extension gap is not a number */
		result=false;
		alert('Extension gap must be a number');
	}else if(Open_gap<Open_gap_min || Open_gap>Open_gap_max)
	{
		/* Open gap must be in the range Open_gap_min to Open_gap_max */
		result=false;
		alert('Open gap must be in the range '+Open_gap_min+' to '+Open_gap_max);
	}else if(Extension_gap<Extension_gap_min || Extension_gap>Extension_gap_max)
	{
		/* Extension gap mus be in the range Extension_gap_min to Extension_gap_max */
		result=false;
		alert('Extension gap must be in the range : '+Extension_gap_min+' to '+Extension_gap_max);
	}
	return result;
}
// ************************************************
function verif_mail()
{
/*
VÃ©rification de la syntaxe du mail si prÃ©sent
*/
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;
}//fonction verif mail
//*************************************************
function verifSeq(){
        seq = document.getElementById('sequences_file').value;
        result = true;
        if (seq == "" ) {
                alert("set the sequence file");
                result = false;
        }
        return result;
}

