function submitSpin(){
	
	$('body').spin(
			{
				message:'Please wait while the form is being saved ...',
				containerPosition:{
					relativeTo: $('body')
				}
	  });
}

function editMutations(button,edit_action){
	
	$(button).getForm().action = edit_action;

	$('body').spin({message:'Please wait while the form is being saved ...',containerPosition:{relativeTo: $('body')}});
	
	$(button).getForm().submit();
	return true;
}


function isEmpty(elem){
	var str = elem.value;
	
	var re = /.+/;
	if (!str.match(re)){
	return true;
	} else {
	return false;
	}
}


function notDate(field){
	var day=field.value.substring(8,10);
	var month=field.value.substring(5,7);
	var year=field.value.substring(0,4);
	if(isNaN(parseInt(day,10)) || isNaN(parseInt(month,10)) || isNaN(parseInt(year,10))){
		return true;
	}else{
		return false;
	}
}

function isEmail(elem){
	var str = elem.value;
	var apos=str.indexOf("@")
	var spacepos=str.indexOf(" ")	
	var dotpos=str.lastIndexOf(".")
	if (1>apos||2>dotpos-apos||spacepos!=-1) 
	{return true}
	else {return false}
}

function isNumber(elem){
	var str = elem.value;
	if (isNaN(str)){
	return true;
	} else {
	return false;
	}
}

function isChosen(select) {
	if (select.selectedIndex == 0) {
	return true;
	}
	else {
	return false;
	}
}


function isChoiceSelected(name2,notvalue){
	var elems = document.getElementsByName(name2);
	var i=0;
	var selected = false;
	while(i != elems.length){
	if(elems[i].name==name2){
	if(elems[i].checked==true){
	if(elems[i].value!=notvalue){
	selected=true;
	}
	}
	}
	i++;
	}
	return selected;
}



function isOther(select) {
	if (select.selectedIndex == select.length-1) {
	return true;
	}
	else{
	return false;
	}
}

function resetEQA(formm){
	var doconfirm = confirm('Do you really want to reset this datasheet?');
	if(doconfirm){
	document.getElementById('add_action').value='reset';
	formm.submit();
	}
}


function assessorSubmit(button,action){
    document.getElementById('eqa_id_action').value=action;
	var nowd = new Date();
	var t = nowd.getTime();
	document.getElementById('trace_date').value=t;
	var sform = button.form;
	sform.submit();
}
function changeEqaSubmit(button,action){
    document.getElementById('eqa_id_action').value=action;
	var nowd = new Date();
	var t = nowd.getTime();
	document.getElementById('trace_date').value=t;
	var sform = button.form;
	sform.submit();
}


function show_hide_ex_in(com_as){
	if(com_as=='true'){
	  
	    $$('tr[id^=pos_1_chosen_exons]').addClass('unvisible');
		$$('input[name=chosen_exons]').setProperty('checked', '');
		
	}else{
	$$('tr[id^=pos_1_chosen_exons]').removeClass('unvisible');
	}
}

function change_mutations(dropdown,selectname,selectid){
	
	var selectedAssayIndex = dropdown.selectedIndex;
	var optionss = new Array();
	optionss = dropdown.options;
	elems = dropdown.form.elements;
	$$('input[name=chosen_mutations]').setProperty('checked', '');
	$$('input[name=chosen_variant]').setProperty('value', '');
	
	
	
	for(i=0;i<optionss.length;i++){
		
		if(i==selectedAssayIndex){
			
			selectedAssay = optionss[i].value;
			previousAssay = optionss[i].value;

		}
	}
	
	var assayMutations = assays[selectedAssay];
	var com_as = commercial_assays[selectedAssay];
    show_hide_ex_in(com_as);
   
	if(assayMutations){
		
		for(i in assayMutations){
			
			if(!isNaN(assayMutations[i])){
				if(assayMutations[i] != 0){
					
					document.getElementById('col_check_chosen_mutations_'+assayMutations[i]).checked='checked';
				}
			}
		}
	}
	
	
	dropdown.blur();
	var otherindex  = dropdown.length-1;

	if(selectedAssayIndex==otherindex){
		$(dropdown).getParent().getElement("input[type=text]").removeClass("unvisible");
		$(dropdown).getParent().getElement("input[type=text]").setStyle("width",dropdown.getStyle("width"));
		$(dropdown).getParent().getElement("input[type=text]").focus();
	}else{
		$(dropdown).getParent().getElement("input[type=text]").addClass("unvisible");
		
		$(dropdown).getParent().focus();
	}
}



function ajaxsubmit2(sform){
	
	sform.submit();
	
	return true;
}



function init(){
	
}
function init2(){
	
}



function loginCookie(sub){
	if(this.document.getElementById('save_cookie').checked){
	var cookie = confirm('Saving this information will store a cookie with your account information on your computer for 3 months, that will automatically log you in each time you visit the website. You can remove the cookie bij clicking log out on the website or use the tools provided by your browser. Are you sure you want to save this cookie?');
	if(cookie){
	sub.submit();
	}else{
	this.document.getElementById('save_cookie').checked="";
	sub.submit();
	}
	}else{
	sub.submit();
	}
}

function confirmDelete(delform){
	var conf = confirm('Do you really want to delete this record?');
	if(conf){
	 delform.submit();
	 return true;
	}	 
	else {
	return false;
	}	
}

function pausecomp(millis)
{
date = new Date();
var curDate = null;
do { var curDate = new Date();}
while(millis > curDate-date);
}



function setOtherSelect(select){
var x = select.selectedIndex;
var y = select.options[x].value;
var z = select.name;
var selects = document.getElementsByTagName('select');
var i=0;
while(i < selects.length){
if(selects[i].name=='limit'){
selects[i].selectedIndex=x;
}
i++;
}
}
function hideSearchResults(){
if(document.getElementById('results_table')){
document.getElementById('results_table').className='unvisible';
document.getElementById('wait').className='content';
}
}
function showSearchResults(){
if(document.getElementById('results_table')){
document.getElementById('results_table').className=' ';
document.getElementById('wait').className='unvisible';
}
}

function sendEmail(emailform,message){
var name=confirm(message)
if (name==true)
{
emailform.submit();
}
else
{
return;
}
}



function confirmEmail(button){
var sform = button.form;
document.getElementById('send_mail').value='true';
var r=confirm("Send this email?");
if (r==true)
  {
 sform.submit();
 return true;
  }
else
  {
  return false;
  }
}

function removeFiles(button,file){
	
	var conf = confirm("Do you wish to delete this file?");
	
	if(conf){
		document.getElementById('removeFile').value=file;
	    document.getElementById('removeForm').submit(); 
	}	
}

function cmsRemoveFile(img,filename){

var conf = confirm('Are you sure you want to remove file? This will permanently remove file:' + filename);
if(conf){
    document.getElementById('removeFile').value=""+filename;
	document.getElementById('removeForm').submit();
}
}




var dtCh= "-";
var minYear=1900;
var maxYear=2100;

function isInteger(s){
	var i;
    for (i = 0; i < s.length; i++){   
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}

function stripCharsInBag(s, bag){
	var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++){   
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function daysInFebruary (year){
	// February has 29 days in any year evenly divisible by four,
    // EXCEPT for centurial years which are not also divisible by 400.
    return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
}
function DaysArray(n) {
	for (var i = 1; i <= n; i++) {
		this[i] = 31
		if (i==4 || i==6 || i==9 || i==11) {this[i] = 30}
		if (i==2) {this[i] = 29}
   } 
   return this
}

function isDate(field){
 var dtStr= field.value;
	var daysInMonth = DaysArray(12)
	var pos1=dtStr.indexOf(dtCh)
	var pos2=dtStr.indexOf(dtCh,pos1+1)
	var strYear=dtStr.substring(0,pos1)
	var strMonth=dtStr.substring(pos1+1,pos2)
	var strDay=dtStr.substring(pos2+1)
		strYr=strYear
	if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1)
	if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth=strMonth.substring(1)
	for (var i = 1; i <= 3; i++) {
		if (strYr.charAt(0)=="0" && strYr.length>1) strYr=strYr.substring(1)
	}
	month=parseInt(strMonth)
	day=parseInt(strDay)
	year=parseInt(strYr)
	if (pos1==-1 || pos2==-1){
		return false
	}
	if (strMonth.length<1 || month<1 || month>12){
		return false
	}
	if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){
		return false
	}
	if (strYear.length != 4 || year==0 || year<minYear || year>maxYear){
		return false
	}
	if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false){
		return false
	}
return true
}


function checkFileTypes(button,types){
	var types_array = types.split(",");
	var value = button.value;
	value = value.slice(value.lastIndexOf(".")+1).toLowerCase();
	var allowed=false;
	for(i=0;i<=types_array.length;i++){
	
		if(types_array[i]==value){
		allowed=true;
		}
	}
	if(!allowed){
	alert("File type not allowed. Please select one of the following file types: "+types);
	}
}

function checkform2(sform, act){
var message ="";
var error=false;
cleanupTextareas();
if(act!=''){
	sform.action=act;
}
if(error){
alert(message);
sform.submit();
return false;
}else{
sform.submit();
return true;
}
}

/* WAAROM IS DIT NODIG */

function cleanupTextareas(){

var elems = document.getElementsByTagName("textarea");
var i=0;
while(i != elems.length){
if(elems[i].value){
var value = elems[i].value;
value = value.replace(/&/g,"&amp;");
value = value.replace(/"/g,"&quot;");
value = value.replace(/</g,"&lt;");
value = value.replace(/>/g,"&gt;");
elems[i].value = value;
}
i++;
}

}

/* This function replaces the action with the same action for downloading an Excel file. */
function downloadExcel(button){
	var form = button.form;
	form.action = window.location.href.replace(/.xhtml/g,".xls");
	form.target="_blank";
	document.getElementById("output_type").value="xls";
	form.submit();
	form.action = "";
	form.target="";
	document.getElementById("output_type").value="";
}



function selectFiles(box,eqa_id){
 	var boxes = $$('input[class=eqa_'+eqa_id+']');
	
	if(box.checked){

		boxes.each(function(el3){
			if(!el3.checked){
			   el3.checked="checked";
			 }
			});	
	}
	else{
       
	}
}

