function trim(s) {

    if((s==null)||(typeof(s)!='string')||!s.length) {
        return '';
    }
    return s.replace(/^\s+/,'').replace(/\s+$/,'');

}

function check_blank(field) {

    if (field == '') {
        return false;
    }
    if (trim(field) == '') {
        return false;
    }
    return true;
}

function validate_survey() {
    
    var gender = document.form1.gender;
    var hs = document.form1.hs;
    var nh = document.form1.nh;
    var fhs = document.form1.fhs;
    var fnh = document.form1.fnh;
    var bullying = document.form1.bullying.value;
    var pressure = document.form1.pressure.value;
    var drugs = document.form1.drugs.value;
    var prostitution = document.form1.prostitution.value;
    var alcohol = document.form1.alcohol.value;
    var gangs = document.form1.gangs.value;
    var weapons = document.form1.weapons.value;
    var issues = new Array(bullying, pressure, drugs, prostitution, alcohol, gangs, weapons, issues);
    var fight = document.form1.fight;

    if (!(gender[0].checked || gender[1].checked)) {
	alert ("Please select a gender.");
	return false;
    }
    
    else if (!check_selected(hs)) {
	alert("Please choose an answer for question 1a.");
	return false;
    }

    else if (!check_selected(nh)) {
	alert("Please choose an answer for question 1b.");
	return false;
    }

    else if (!check_selected(fhs)) {
	alert("Please choose an answer for question 1c.");
	return false;
    } 
   
    else if (!check_selected(fnh)) {
	alert("Please choose an answer for question 1d.");
	return false;
    } 
    
    else if (check_match(issues, 0)) {
	alert ("Please rank all issues in question 2 a value from 1 to 7.");
	return false;
    }

    else if (!check_match(issues, 1)) {
	alert ("Please make sure you do not rank any of the issues in question 2 the same value.");
	return false;
    }

    else if (!check_match(issues, 2)) {
	alert ("Please make sure you do not rank any of the issues in question 2 the same value.");
	return false;
    }

    else if (!check_match(issues, 3)) {
	alert ("Please make sure you do not rank any of the issues in question 2 the same value.");
	return false;
    }

    else if (!check_match(issues, 4)) {
	alert ("Please make sure you do not rank any of the issues in question 2 the same value.");
	return false;
    }

    else if (!check_match(issues, 5)) {
	alert ("Please make sure you do not rank any of the issues in question 2 the same value.");
	return false;
    }

    else if (!check_match(issues, 6)) {
	alert ("Please make sure you do not rank any of the issues in question 2 the same value.");
	return false;
    }

    else if (!check_match(issues, 7)) {
	alert ("Please make sure you do not rank any of the issues in question 2 the same value.");
	return false;
    }

    else if (!check_selected(fight)) {
	alert ("Please choose 'Yes' or 'No' For question 4.");
	return false;
    }
    
    return true;
}

function check_selected(group) {
    
    for (var i = 0; i < group.length; i++) {
	if (group[i].checked) {
	    return true;
	}
    }
    return false;
}

function check_match(match_array, val) {

    for (var i = 0; i < match_array.length; i++) {
        if (match_array[i] == val) {
	    return true;
	}
    }
    return false;
}
