function onload_stuff() {
 document.getElementById("uploading_msg").style.visibility = "hidden";
 spec_click()
}

function spec_click() {
 if( document.getElementById("use_example").checked )
   return;
 if( document.getElementsByName("PARAM__in_params__predefined")[0].checked) {
	document.getElementsByName("FILE__in1_int__XX")[0].disabled = 1;
	document.getElementsByName("FILE__in1_blast__XX")[0].disabled = 1;
	document.getElementsByName("PARAM__predefined__species")[0].disabled = 0;
 }else{
	document.getElementsByName("PARAM__predefined__species")[0].disabled = 1;
	document.getElementsByName("FILE__in1_int__XX")[0].disabled = 0;
	document.getElementsByName("FILE__in1_blast__XX")[0].disabled = 0;
 }
}

function example_click() {
 var x = document.getElementById("use_example").checked;
 if( x ) {
   document.getElementsByName("PARAM__in_params__predefined")[0].checked = 0;
   document.getElementsByName("PARAM__in_params__predefined")[1].checked = 0;
   document.getElementsByName("PARAM__in_params__predefined")[0].disabled = 1;
   document.getElementsByName("PARAM__in_params__predefined")[1].disabled = 1;
   document.getElementsByName("PARAM__in_params__blast_th")[0].disabled = 1;
   document.getElementsByName("PARAM__in_params__blast_th")[0].value = "1E-7";
   document.getElementsByName("PARAM__in_params__ip_th")[0].disabled = 1;
   document.getElementsByName("PARAM__in_params__ip_th")[0].value = "0.0";   
   document.getElementsByName("PARAM__predefined__species")[0].disabled = 1;
   document.getElementsByName("TEXT__in2_comp__XX")[0].disabled = 1;
   document.getElementsByName("FILE__in1_int__XX")[0].disabled = 1;
   document.getElementsByName("FILE__in1_blast__XX")[0].disabled = 1;
   document.getElementsByName("FILE__in2_blast__XX")[0].disabled = 1;

   //document.getElementById("example_desc").style.display = "block";
 }else{
   document.getElementsByName("PARAM__in_params__predefined")[0].checked = 0;
   document.getElementsByName("PARAM__in_params__predefined")[1].checked = 0;
   document.getElementsByName("PARAM__in_params__predefined")[0].disabled = 0;
   document.getElementsByName("PARAM__in_params__predefined")[1].disabled = 0;
   document.getElementsByName("PARAM__predefined__species")[0].disabled = 0;
   document.getElementsByName("PARAM__in_params__blast_th")[0].disabled = 0;
   document.getElementsByName("PARAM__in_params__ip_th")[0].disabled = 0;
   document.getElementsByName("TEXT__in2_comp__XX")[0].disabled = 0;
   document.getElementsByName("FILE__in1_int__XX")[0].disabled = 0;
   document.getElementsByName("FILE__in1_blast__XX")[0].disabled = 0;
   document.getElementsByName("FILE__in2_blast__XX")[0].disabled = 0;
   //document.getElementById("example_desc").style.display = "none";
   }
}

function check_non_empty( elName ) {
 var x = document.getElementsByName(elName)[0];
 if( !x.disabled && x.value == "" ) {
   return false;
 }
 return true;
}

function submit_validation( form ) {
  
  var x = document.getElementsByName("PARAM__in_params__predefined");
  
  if ( x[0].disabled == 0 &&  x[1].disabled == 0) {
	  if( x[1].checked == 0 &&  x[0].checked == 0) {
		alert( "Please supply data for target species, or select a predefined species" );
	    return false;
	  }
	  
	  if( x[1].checked ) { //user uploads target species data
	     if( !check_non_empty( "FILE__in1_int__XX" ) ) {
	     alert( "Please supply a PPI file for target species, or select a predefined species" );
	     return false;
	     }
		if( !check_non_empty( "FILE__in1_blast__XX" )  ) {
	     alert( "Please supply a FASTA file for target species, or select a predefined species" );
	     return false;
	     }
	  }
  }	

  if ( check_non_empty( "PARAM__email__XX" )) {
     var e = document.getElementsByName("PARAM__email__XX")[0].value
     if ( !validEmail( e ) ) {
     alert( "The email address you have entered is not valid.\nPlease enter a valid email address, or leave blank. " );
     return false;
	 }
  }
  
  if ( check_non_empty( "PARAM__in_params__ip_th" )) {
     var e = document.getElementsByName("PARAM__in_params__ip_th")[0].value
     if ( !validNetTh( e ) ) {
     alert( "The network threshold you have entered is not valid.\nPlease enter a number between 0 and 0.99. " );
     return false;
	 }
  }
  
  if ( check_non_empty( "PARAM__in_params__blast_th" )) {
     var e = document.getElementsByName("PARAM__in_params__blast_th")[0].value
     if ( !validBLASTTh( e ) ) {
     alert( "The BLAST threshold you have entered is not valid.\nPlease enter a number between 1e-99 and 1e-3. " );
     return false;
	 }
  }
  
  if( !check_non_empty( "FILE__in2_blast__XX" ) && !check_non_empty( "TEXT__in2_comp__XX" ) ) {
     alert( "Please provide a FASTA file or a set of proteins for source species" );
     return false;
  }	
  
  if( !check_non_empty( "FILE__in2_blast__XX" ) ) {
	document.getElementsByName("FILE__in2_blast__XX")[0].disabled = 1;
  }
  

  document.getElementById("uploading_msg").style.visibility = "visible";
  form.submit();
  return true;
}

function show(id) {
  var d = document.getElementById(id);
  d.style.display = "block";
}

function toggle(element) {
   if ( document.getElementById(element).style.display == "none" ) {
	document.getElementById(element).style.display = "";
   } 
   else {
	document.getElementById(element).style.display = "none";
   }
}


function trim(str) {
  return str.replace(/^s+|s+$/g,"");
}

//Parameter validation functions

function validEmail(str) {
	var email = trim(str);
	if (str.match(/\b[\w._%+\-]+@(?:[\w\-]+\.)+[A-Za-z]{2,4}\b/)) {
		return true;
   }else {
	    return false;
	}
}

function validNetTh(str) {
	var th = trim(str);
	if (str.match(/^0?\.\d+$/)) {
		return true;
   }else {
	    return false;
	}
}

function validBLASTTh(str) {
	var th = trim(str);
	if (str.match(/^(?:(?:0?\.00\d+)|(\d+\.?\d*[eE]\-\d+))$/)) {
		return true;
   }else {
	    return false;
	}
}


