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 echeck(str) {

      var at="@";
      var dot=".";
      var lat=str.indexOf(at);
      var lstr=str.length;
      var ldot=str.indexOf(dot);

      if (str.indexOf(at)==-1){
	   return false;
      }

      if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
          return false;
      }

      if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
 	  return false;
      }

      if (str.indexOf(at,(lat+1))!=-1){
	  return false;
      }

      if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
	  return false;
      }

      if (str.indexOf(dot,(lat+2))==-1){
          return false;
      }
		
      if (str.indexOf(" ")!=-1){
	  return false;
      }

      return true;					
}

function validateContactForm() {
    
    var name = document.contactForm.name.value;
    var email = document.contactForm.email.value;
    var message = document.contactForm.message.value;

    if (!check_blank(name)) {
	alert ("Your name is required.");
	return false;
    }
    else if (!check_blank(email)) {
	alert ("Your email address is required.");
	return false;
    }
    else if (!echeck(email)) {
	alert ("Your email address is invalid.");
	return false;
    }
    else if (!check_blank(message)) {
	alert ("You must provide a message.");
	return false;
    }
    else {
        return true; 
    }
}

function validateLogin() {
    
    var username = document.loginForm.username.value;
    var password = document.loginForm.password.value;

    if (!check_blank(username)) {
	alert ("You must provide a username to log in.");
	return false;
    }
    else if (!check_blank(password)) {
	alert ("You must provide a password to log in.");
	return false;
    }
    else {
	return true;
    }
}

function validateForgot() {
    
    var email = document.forgotForm.email.value;

    if (!check_blank(email)) {
	alert ("You must provide your email address to retrieve your password.");
	return false;
    }
    else if (!echeck(email)) {
	alert ("Email address is invalid.");
	return false;
    }
    else {
	return true;
    }
}

function validateSignup() {

    var username = document.signForm.username.value;
    var password = document.signForm.password.value;
    var repassword = document.signForm.repassword.value;
    var email = document.signForm.email.value;
    var month = document.signForm.month.value;
    var day = document.signForm.day.value;
    var year = document.signForm.year.value;
    var parentText = document.getElementById('parentField').innerHTML;
    
    if (!check_blank(username)) {
	alert('You must provide a username.');
	return false;
    }
    else if (!check_blank(password)) {
	alert('You must provide a password.');
	return false;
    }
    else if (password != repassword) {
	alert('Passwords do not match.');
	return false;
    }
    else if (!check_blank(email)) {
	alert('You must provide an email address.');
	return false;
    }
    else if (!echeck(email)) {
	alert('Your email address is invalid.');
	return false;
    }
    else if (month == 'MONTH') {
	alert('You must choose a month for your birthday.');
	return false;
    }
    else if (day == 'DAY') {
	alert('You must choose a day for your birthday.');
	return false;
    }
    else if (year == 'YEAR') {
	alert('You must choose a year for your birthday.');
	return false;
    }
    
    if (check_blank(parentText)) {
	var adultemail = document.signForm.adultemail.value;
	if (!check_blank(adultemail)) {
	    alert('You must provide your parent\'s email address.');
	    return false;
	}
	else if (!echeck(adultemail)) {
	    alert('Your parent\'s email address is invalid.');
	    return false;
	}
	else if (email == adultemail) {
	    alert('Your parent\'s email address must be different from your own.');
	    return false;
	}
    }

    return true;
}

function checkAge() {
    
    var month = document.signForm.month.value;
    var day = document.signForm.day.value;
    var year = document.signForm.year.value;

    if ((month != 'MONTH') && (day != 'DAY') && (year != 'YEAR')) {
	//calculate age
	var today = new Date();
	var thirteen = new Date();
	thirteen.setYear(today.getYear()-13);
	var bday = new Date();
	bday.setFullYear(year,month,day);

	if (thirteen < bday) {
            document.getElementById('parentField').innerHTML = '<h5 style="color: red; text-align: left; margin:12px 0 0 200px; padding:0">kids under 13 need to give us a parent or guardian\'s email address, too</h5><div class="col_left"><h5 style="margin:12px 20px 0 0; padding:0">adult\'s email:</h5></div><div class="col_right2"><input type="text" name="adultemail" style=" margin:10px 0 0 0; padding:0px; width:260px; border:1px solid #000"/></div>';
	}
	else {
	    document.getElementById('parentField').innerHTML = '';
	}
    }
    else {
	document.getElementById('parentField').innerHTML = '';
    }
}

