var ns4=(document.layers)?true:false;
var ie=(navigator.appVersion.indexOf("MSIE")!=-1)?true:false;
var safari=(navigator.userAgent.indexOf("Safari")!=-1)?true:false;
var ns6up=(navigator.userAgent.indexOf("Netscape")!=-1)?true:false;
var opera=(navigator.userAgent.indexOf("Opera")!=-1)?true:false;
var ie_mac =((navigator.appVersion.indexOf("Macintosh")!=-1) && (ie))?true:false;
var mac_other =((navigator.appVersion.indexOf("Macintosh")!=-1) && (!ie))?true:false; 
var w3c=(document.getElementById)?true:false;
var win_xp=(navigator.userAgent.indexOf("Windows NT 5\.1")!=-1)?true:false;
var os = navigator.platform;
var myBrowser_ns=(navigator.userAgent.indexOf("Netscape")!=-1)?true:false;
var myBrowser_ie=(navigator.appVersion.indexOf("MSIE")!=-1)?true:false;
var new_fieldname = "";
var microarrays = 0;
var organisms = 0;
var usingarrays = 0;	
var ma_array    = new Array();
var org_array   = new Array();
var using_array = new Array();


//mac ie has bugs that dont allow "push" function 
// therefore are bypassed
 
function check(form,x,f) {
    var message = "";
	var more_message = "";
	var showmsg = "no";
	var acknow_mes;
	var cutoff = 0;
	var test = new Array('one', 'two', 'three');
	for (var i = 0; i < x; i++) {
	    var messenger = form.elements[i].name;        
		if(typeof messenger == "undefined") continue;
		if (messenger == "") continue;
     	messenger = messenger.substring(0, 2);
		var fieldname = form.elements[i].name;
		if (form.elements[i].name == "acknow") {
	        acknow_mes = form.elements[i].value;
		}
		else if (form.elements[i].name.match(/^microarrays\d$/)) {
		    if (ie_mac) continue;
			ma_array.push(form.elements[i]);
		    continue;
		}
		else if (form.elements[i].name.match(/^organism\d$/)) {
		    if (ie_mac) continue;
		    org_array.push(form.elements[i]);
		    continue;
		}
		else if (form.elements[i].name.match(/^usingarrays$/)) {
		    if (ie_mac) continue;
		    using_array.push(form.elements[i]);
		    continue;
		}

		else if (messenger == "e_" || messenger == "r_") {
		    more_message = validate(i,messenger); 
        }
		else if (messenger == "a_") {
		    if (ie_mac) continue; 	    	    
		    if (fieldname == "a_microarrays") {
                more_message = multiple(ma_array, form.elements[i].value);			
			}
			else if (fieldname == "a_organisms") {
                more_message = multiple(org_array, form.elements[i].value);				
			}
			else if (fieldname == "a_usingarrays") {
                more_message = multiple(using_array, form.elements[i].value);				
			}
		}
		if (more_message != "") {
	        if (message == "") {
		        message = more_message;
				more_message="";
			}
			else {
			    message = message + "\n" + more_message;
				more_message="";
			}
	    }						
		else if (message > "") {
		    showmsg = "yes"
		}
				
	}
	if (showmsg == "yes"){
	    alert("The following form field(s) were incomplete or incorrect:\n\n" + message + "\n\n Please complete or correct the form and submit again.")
    }
    else{
        if (acknow_mes != ""){
	        alert(acknow_mes);
		}  
	    form.submit()
	}
}
	
// some options can have multiple elements checked
// validate to ensure at least one is checked
 			
function multiple (arr, msg) {
    var a = 0;
	var b;
	var more_message;
    for (var i=0;i<arr.length;i++) {
	    var elm = arr[i];
		b = validate_form(elm, msg,'multiple');
		a = a + b;					
	}
	if (a > 0) more_message = "";
	else more_message = msg;
	return more_message;		
}

function i_check(form,x,fieldname,i) {
    for (var y = 0; y <= x; y++){
		if(typeof form.elements[y].name == "undefined") continue;
	    if (form.elements[y].name == fieldname) {
            break;
		}						
	    var msg_addition = "";
        var decimal = "";
		inputStr = form.elements[y].value.toString();
		if (inputStr == "") {
			//msg_addition = form.elements[i].value;
		}
		else {
	        for (var c = 0; c < inputStr.length; c++) {
		        var oneChar = inputStr.charAt(c)
	         	if (c == 0 && oneChar == "-" || oneChar == "."  && decimal == "") {
			        if (oneChar == ".") {
				        decimal = "yes"
				    }
				 	continue				
		        }
				if (oneChar < "0" || oneChar > "9") {
			        msg_addition = form.elements[i].value
				}
		    }
	    }
	 }	 
	return(msg_addition)
}	
	
	
//Changes made on 9th August 2004

function validate(i,messenger) {
    var msg_addition = "";
    var element_obj =document.forms[1].elements[i];   
	var inputForm_name = element_obj.name.replace(/^\w{1}_/,"");
	eval('var inputForm_obj = document.forms[1].'+inputForm_name);
	if (messenger == 'e_') {    
	    msg_addition = validate_email(inputForm_obj,element_obj.value);
		return(msg_addition);
	}
	else if (messenger == 'r_') {
	    msg_addition = validate_form(inputForm_obj,element_obj.value);
		return(msg_addition);
	}
}

function validate_form(inputForm_obj,error_msg,a) {
    // a indicates that a form can have multiple values
    var blank_msg = "";
		if ((inputForm_obj.type == "radio") || (inputForm_obj.type == "checkbox")) {
		    if (inputForm_obj.checked == true) {
			    if (a == 'multiple') return (1);
			    else return (blank_msg);
			} 
			else {
			 	if (a == 'multiple') return (0);
				else return (error_msg);	
			}    		
		}
		else if (inputForm_obj.type == "select-one") {    
		    var x = inputForm_obj.selectedIndex;
			if (inputForm_obj.options[x].value == 'null') {
			    return(error_msg);
			}
			else {
			    return(blank_msg);
			}
		}
		else if (inputForm_obj.type == "text") {
		    if (inputForm_obj.value == "") return(error_msg);
			else return(blank_msg);
		}	

}

function validate_email(inputForm_obj,error_msg) {
    var val = inputForm_obj.value;
    var error;
	var test;
	var blank_msg;
	var bad_char = val.match(/\s|\,/);
    if (bad_char != null) return(error_msg);
    if (val == "" || (val.indexOf ('@', 0) < 2)) {
        error = 1;
    }
    else {
	    test = val.indexOf('.', val.indexOf ('@', 0));
	    if (test != -1) {
            error = 0;
	    }
	    else {
	        error=1;
	    }
    }
    if (error == 1) {
        return(error_msg);
	}
    else {
        var new_length = val.length - test;
        if (new_length == 4 || new_length == 3 || 
	       (new_length >= 5 && val.indexOf ('.', (test+1)) != -1)){ 
            return(blank_msg);
	    }
	    else {
	        return(error_msg);
	    }
    }
}

function d_check(form,x,fieldname,i) {
//date must be in MM/DD/YY format OR M/D/YY or a MIX of the two
    for (var y = 0; y <= x; y++) {		
	    if (form.elements[y].name == fieldname) {
	       break
        }		
		var msg_addition = "";	
		var sDate = form.elements[y].value
		var int_or_not = isInteger(form.elements[y].value)
		
		//to allow NO validation unless r_ specified
		if (form.elements[y].value != "") {
		    if (int_or_not == "true") {
		        if ((!(form.elements[y].value.length >= 6)) || (!(form.elements[y].value.length <= 8))) {
    		        msg_addition = form.elements[i].value
			    }
   		    }
  		    else {
		        var SlashlPos = form.elements[y].value.indexOf("/",0)
			    if (SlashlPos > 0 && SlashlPos <= 2) {
				    if (SlashlPos == 1){
					    if (form.elements[y].value.charAt(0) < 1 || form.elements[y].value.charAt(0) > 9) {
						    msg_addition = form.elements[i].value
						}
						else{
                            if (
							     (form.elements[y].value.charAt(0) == 1 || form.elements[y].value.charAt(0) == 3 || form.elements[y].value.charAt(0) == 5 || form.elements[y].value.charAt(0) == 7 || form.elements[y].value.charAt(0) == 8) &&
							     (
							       (form.elements[y].value.charAt(2) == 0 && form.elements[y].value.charAt(3) == "/") || (form.elements[y].value.charAt(3) == "/" && form.elements[y].value.length >= 7) ||(form.elements[y].value.charAt(1) == "/" && form.elements[y].value.charAt(2) == "/")
							     )
							   )
							{
							    msg_addition = form.elements[i].value;
							}
							else if (
							(form.elements[y].value.charAt(0) == 1 || form.elements[y].value.charAt(0) == 3 || 
							form.elements[y].value.charAt(0) == 5 || form.elements[y].value.charAt(0) == 7 || 
							form.elements[y].value.charAt(0) == 8) 
							&& ((form.elements[y].value.charAt(2) >= 3 && form.elements[y].value.charAt(3) > 1) || 
							(form.elements[y].value.charAt(2) == 0 && form.elements[y].value.charAt(3) == 0) || 
							(form.elements[y].value.charAt(1) == "/" && (form.elements[y].value.charAt(3) != "/" && 
							form.elements[y].value.charAt(4) != "/" && form.elements[y].value.charAt(5) != "/" && form.elements[y].value.charAt(6) != "/")))
							){
							   msg_addition = form.elements[i].value + "hi"
						    }
							else if (
							(form.elements[y].value.charAt(0) == 1 || form.elements[y].value.charAt(0) == 3 || 
							form.elements[y].value.charAt(0) == 5 || form.elements[y].value.charAt(0) == 7 || 
							form.elements[y].value.charAt(0) == 8) && 
							(((form.elements[y].value.charAt(2) > 3 && form.elements[y].value.charAt(3) != "/") || 
							(((form.elements[y].value.charAt(1) == "/" && form.elements[y].value.charAt(4) == "/")) && 
							((form.elements[y].value.length == 6 || form.elements[y].value.length == 8)))) || 
							form.elements[y].value.charAt(5) == "/")
							){
							    msg_addition = form.elements[i].value
							}
							else{
							    if (
								(form.elements[y].value.charAt(0) == 2 && ((form.elements[y].value.charAt(2) == 0 && 
								form.elements[y].value.charAt(3) == "/") || (form.elements[y].value.charAt(3) == "/" && 
								form.elements[y].value.length >= 7) || (form.elements[y].value.charAt(1) == "/" && 
								form.elements[y].value.charAt(2) == "/") || (form.elements[y].value.charAt(2) == 0 && 
								form.elements[y].value.charAt(3) == 0) || (form.elements[y].value.charAt(1) == "/" && 
								form.elements[y].value.charAt(3) != "/" && form.elements[y].value.charAt(4) != "/" && 
								form.elements[y].value.charAt(5) != "/" && form.elements[y].value.charAt(6) != "/")))
								){
							        msg_addition = form.elements[i].value;
								}
								else if (form.elements[y].value.charAt(0) == 2 && ((form.elements[y].value.charAt(2) > 2 && 
								form.elements[y].value.charAt(3) != "/") || (((form.elements[y].value.charAt(1) == "/" && 
								form.elements[y].value.charAt(4) == "/") && ((form.elements[y].value.length == 6 || 
								form.elements[y].value.length == 8)))) || form.elements[y].value.charAt(5) == "/")
								){
								   msg_addition = form.elements[i].value
								}
								else{														
								    if (
									(form.elements[y].value.charAt(0) == 4 || form.elements[y].value.charAt(0) == 6 || 
									form.elements[y].value.charAt(0) == 9) && ((form.elements[y].value.charAt(2) == 0 && 
									form.elements[y].value.charAt(3) == "/") || (form.elements[y].value.charAt(3) == "/" && 
									form.elements[y].value.length >= 7) || (form.elements[y].value.charAt(1) == "/" && 
									form.elements[y].value.charAt(2) == "/"))
									){							
									    msg_addition = form.elements[i].value
									}
									else if (
									(form.elements[y].value.charAt(0) == 4 || form.elements[y].value.charAt(0) == 6 || 
									form.elements[y].value.charAt(0) == 9) && ((form.elements[y].value.charAt(2) >= 3 && 
									form.elements[y].value.charAt(3) > 0) || (form.elements[y].value.charAt(2) == 0 && 
									form.elements[y].value.charAt(3) == 0) || (form.elements[y].value.charAt(1) == "/" && 
									(form.elements[y].value.charAt(3) != "/" && form.elements[y].value.charAt(4) != "/" && 
								  	form.elements[y].value.charAt(5) != "/" && form.elements[y].value.charAt(6) != "/")))
									){							 
									    msg_addition = form.elements[i].value
									}
									else if (
									(form.elements[y].value.charAt(0) == 4 || form.elements[y].value.charAt(0) == 6 || 
									form.elements[y].value.charAt(0) == 9) && (((form.elements[y].value.charAt(2) > 3 && 
									form.elements[y].value.charAt(3) != "/") || ((form.elements[y].value.charAt(1) == "/" && 
									form.elements[y].value.charAt(4) == "/") && ((form.elements[y].value.length == 6 || 
									form.elements[y].value.length == 8)))) || form.elements[y].value.charAt(5) == "/")
									){
									    msg_addition = form.elements[i].value
									}
								}
							}
						}
						}						
					    else{
						    if (
							form.elements[y].value.charAt(0) > 1 || (form.elements[y].value.charAt(0) == 1 && 
							form.elements[y].value.charAt(1) > 2) || (form.elements[y].value.charAt(0) == 0 && 
							form.elements[y].value.charAt(1) == 0)
							){
						        msg_addition = form.elements[i].value
							}
							else{											
						        if (
								((form.elements[y].value.charAt(0) == 0 && form.elements[y].value.charAt(1) == 1) || 
								(form.elements[y].value.charAt(0) == 0 && form.elements[y].value.charAt(1) == 3) || 
								(form.elements[y].value.charAt(0) == 0 && form.elements[y].value.charAt(1) == 5) || 
								(form.elements[y].value.charAt(0) == 0 && form.elements[y].value.charAt(1) == 7) || 
								(form.elements[y].value.charAt(0) == 0 && form.elements[y].value.charAt(1) == 8) || 
								(form.elements[y].value.charAt(0) == 1 && form.elements[y].value.charAt(1) == 0) || 
								(form.elements[y].value.charAt(0) == 1 && form.elements[y].value.charAt(1) == 2)) && 
								((form.elements[y].value.charAt(3) == 0 && form.elements[y].value.charAt(4) == "/") || 
								(form.elements[y].value.charAt(2) == "/" && form.elements[y].value.charAt(3) == "/") || 
								(form.elements[y].value.charAt(2) == "/" && (form.elements[y].value.charAt(4) != "/" && 
								form.elements[y].value.charAt(5) != "/" && form.elements[y].value.charAt(6) != "/" && 
								form.elements[y].value.charAt(7) != "/")))
								){		
							        msg_addition = form.elements[i].value		
								}
								else if (
							    ((form.elements[y].value.charAt(0) == 0 && form.elements[y].value.charAt(1) == 1) || 
								(form.elements[y].value.charAt(0) == 0 && form.elements[y].value.charAt(1) == 3) || 
								(form.elements[y].value.charAt(0) == 0 && form.elements[y].value.charAt(1) == 5) || 
								(form.elements[y].value.charAt(0) == 0 && form.elements[y].value.charAt(1) == 7) || 
								(form.elements[y].value.charAt(0) == 0 && form.elements[y].value.charAt(1) == 8) || 
								(form.elements[y].value.charAt(0) == 1 && form.elements[y].value.charAt(1) == 0) || 
								(form.elements[y].value.charAt(0) == 1 && form.elements[y].value.charAt(1) == 2)) && 
								((form.elements[y].value.charAt(3) >= 3 && form.elements[y].value.charAt(4) > 1) || 
								(form.elements[y].value.charAt(3) == 0 && form.elements[y].value.charAt(4) == 0) || 
								form.elements[y].value.length < 7)
								){
							   	    msg_addition = form.elements[i].value
								}
								else if (
								((form.elements[y].value.charAt(0) == 0 && form.elements[y].value.charAt(1) == 1) || 
								(form.elements[y].value.charAt(0) == 0 && form.elements[y].value.charAt(1) == 3) || 
								(form.elements[y].value.charAt(0) == 0 && form.elements[y].value.charAt(1) == 5) || 
								(form.elements[y].value.charAt(0) == 0 && form.elements[y].value.charAt(1) == 7) || 
								(form.elements[y].value.charAt(0) == 0 && form.elements[y].value.charAt(1) == 8) || 
								(form.elements[y].value.charAt(0) == 1 && form.elements[y].value.charAt(1) == 0) || 
								(form.elements[y].value.charAt(0) == 1 && form.elements[y].value.charAt(1) == 2)) && 
								((form.elements[y].value.charAt(3) > 3 && form.elements[y].value.charAt(4) != "/")	|| 
								((form.elements[y].value.charAt(2) == "/" && form.elements[y].value.charAt(5) == "/" && form.elements[y].value.length == 7 || 
								form.elements[y].value.charAt(6) == "/") || (form.elements[y].value.charAt(2) == "/" && form.elements[y].value.charAt(4) == "/" && 
								(form.elements[y].value.length == 6 || form.elements[y].value.length == 8))))
								){				
							        msg_addition = form.elements[i].value
								}
								else{
							        if (
									    ((form.elements[y].value.charAt(0) == 0 && form.elements[y].value.charAt(1) == 2) && ((form.elements[y].value.charAt(3) == 0 && 
										form.elements[y].value.charAt(4) == "/") || (form.elements[y].value.charAt(3) == 0 && form.elements[y].value.charAt(4) == 0)) || 
										form.elements[y].value.length < 7) || (form.elements[y].value.charAt(2) == "/" && (form.elements[y].value.charAt(4) != "/" && 
										form.elements[y].value.charAt(5) != "/" && form.elements[y].value.charAt(6) != "/" && form.elements[y].value.charAt(7) != "/"))
								    ){
										msg_addition = form.elements[i].value						
									}								
								    else if ((form.elements[y].value.charAt(0) == 0 && form.elements[y].value.charAt(1) == 2) && 
									((form.elements[y].value.charAt(3) > 2 && form.elements[y].value.charAt(4) != "/") || 
									((form.elements[y].value.charAt(2) == "/" && form.elements[y].value.charAt(5) == "/" && form.elements[y].value.length == 7 || 
									form.elements[y].value.charAt(6) == "/") || (form.elements[y].value.charAt(2) == "/" && form.elements[y].value.charAt(4) == "/" && 
									(form.elements[y].value.length == 6 || form.elements[y].value.length == 8))))
									){
								        msg_addition = form.elements[i].value
								    }
									else{			
								        if (
									       ((form.elements[y].value.charAt(0) == 0 && form.elements[y].value.charAt(1) == 4) || (form.elements[y].value.charAt(0) == 0 && 
										   form.elements[y].value.charAt(1) == 6) || (form.elements[y].value.charAt(0) == 0 && form.elements[y].value.charAt(1) == 9) || 
										   (form.elements[y].value.charAt(0) == 1 && form.elements[y].value.charAt(1) == 1)) && ((form.elements[y].value.charAt(3) == 0 && 
										   form.elements[y].value.charAt(4) == "/") || (form.elements[y].value.charAt(2) == "/" && form.elements[y].value.charAt(3) == "/") || 
										   (form.elements[y].value.charAt(2) == "/" && (form.elements[y].value.charAt(4) != "/" && form.elements[y].value.charAt(5) != "/" && 
										   form.elements[y].value.charAt(6) != "/" && form.elements[y].value.charAt(7) != "/")))
										){														
									       msg_addition = form.elements[i].value
									    }
										else if (
										((form.elements[y].value.charAt(0) == 0 && form.elements[y].value.charAt(1) == 4) || 
										(form.elements[y].value.charAt(0) == 0 && form.elements[y].value.charAt(1) == 6) || (form.elements[y].value.charAt(0) == 0 && 
										form.elements[y].value.charAt(1) == 9) || (form.elements[y].value.charAt(0) == 1 && form.elements[y].value.charAt(1) == 1)) && 
										((form.elements[y].value.charAt(3) >= 3 && form.elements[y].value.charAt(4) > 0) || (form.elements[y].value.charAt(3) == 0 && 
										form.elements[y].value.charAt(4) == 0) || form.elements[y].value.length < 7)
										){			
									        msg_addition = form.elements[i].value
										}
								        else if (
								   		((form.elements[y].value.charAt(0) == 0 && form.elements[y].value.charAt(1) == 4) || (form.elements[y].value.charAt(0) == 0 && 
								   		form.elements[y].value.charAt(1) == 6) || (form.elements[y].value.charAt(0) == 0 && form.elements[y].value.charAt(1) == 9) || 
								   		(form.elements[y].value.charAt(0) == 1 && form.elements[y].value.charAt(1) == 1)) && ((form.elements[y].value.charAt(3) > 3 && 
								   		form.elements[y].value.charAt(4) != "/") || ((form.elements[y].value.charAt(2) == "/" && form.elements[y].value.charAt(5) == "/" && form.elements[y].value.length == 7 || form.elements[y].value.charAt(6) == "/") || 
								   		(form.elements[y].value.charAt(2) == "/" && form.elements[y].value.charAt(4) == "/" && (form.elements[y].value.length == 6 || form.elements[y].value.length == 8))))
								   		){
									        msg_addition = form.elements[i].value								
								    	}										
							        }
							    }
						    }		
					    }
				    }
		            else {
				        msg_addition = form.elements[i].value
		 	       }
		       }
	        } 
	        else {
		        msg_addition = form.elements[i].value
	        }
	        return(msg_addition)
         }
    //to allow NO validation unless r_ specified CLOSING
	return(msg_addition)

}	
function isInteger(sDate) {
    var new_msg = "true"
    inputStr = sDate.toString()
    for (var i = 0; i < inputStr.length; i++){
        var oneChar = inputStr.charAt(i)			
		if ((oneChar < "0" || oneChar > "9") && oneChar != "/"){
		    new_msg = "false"
	    }
	}
	return (new_msg)
}	
	
function asc(each_char) {
    var n = 0
	var char_str = charSetStr()
	for (i = 0; i < char_str.length; i++) {
	    if (each_char == char_str.substring(i, i+1)) {
		    break
		}
	}
	return i + 32
}
		
function charSetStr() {
    var str
 	str = ' !"#$%&' + "'" + '()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~'
	return str
}

function ed_desc() {
var w =window;
var d=w.document;
var f_width;
var f_height;

if (myBrowser_ns){
   f_width = '500';
   f_height = '200';
}
else if (myBrowser_ie) {
   f_width = '480';
   f_height = '200'; 
}
d.write('<input type=textbox name=description style=width:',f_width,';height:',f_height,';>'); 
}

