// JavaScript Document

/***********************************************************************************************
 * Validate entry functions for all Events                                                     *
 ***********************************************************************************************/

function WithoutContent(ss) {
	if(ss.length > 0) { return false; }
	return true;
	}

function NoneWithContent(ss) {
	for(var i = 0; i < ss.length; i++) {
		if(ss[i].value.length > 0) { return false; }
		}
	return true;
	}

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

function WithoutCheck(ss) {
	if(ss.checked) { return false; }
	return true;
	}
	
function WithoutSelectionValue(ss) {
	for(var i = 0; i < ss.length; i++) {
		if(ss[i].selected) {
			if(ss[i].value.length) { return false; }
			}
		}
	return true;
	}

/*--- Check if email entered is valid ---*/
function checkemail(str) {
	var r1 = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)");
	var r2 = new RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$");
	var isOK = !r1.test(str) && r2.test(str);
	if (!isOK)
		return true;
	return false;
	}

/*--- Check if zip entered is valid ---*/
function validateZIP(field) {
	var valid = "0123456789";

	if (field.length!=5) {
		return true;
	}
	
	for (var i=0; i < field.length; i++) {
		temp = "" + field.substring(i, i+1);
		if (valid.indexOf(temp) == "-1") {
			return true;
			}
		}
	return false;
	}

/*--- Check if date entered is valid ---*/
function checkdate(str) {
	var err = 0
	var valid = "0123456789/"
	var temp;
	
	for (var i=0; i< str.length; i++) {
		temp = "" + str.substring(i, i+1);
		if (valid.indexOf(temp) == "-1") err = 1;
		}
	
	if (str.length != 10) err=1
		b = str.substring(0, 2) // month
		c = str.substring(2, 3)// '/'
		d = str.substring(3, 5) // day
		e = str.substring(5, 6)// '/'
		f = str.substring(6, 10) // year
	if (b<1 || b>12) err = 1
	if (c != '/') err = 1
	if (d<1 || d>31) err = 1
	if (e != '/') err = 1
	if (f<1900 || f>2099) err = 1
	if (b==4 || b==6 || b==9 || b==11){
		if (d==31) err=1
		}
	if (b==2){
		var g=parseInt(f/4)
		if (isNaN(g)) {
			err=1
			}
		if (d>29) err=1
		if (d==29 && ((f/4)!=parseInt(f/4))) err=1
		}
	if (err==1) {
		return true;
		}
	else {
		return false;
	   }
	}

/*--- Check if phone entered is valid ---*/
function validatePhone(field) {
	var valid = "0123456789-";

	if (field.length!=12) {
		return true;
	}
	
	for (var i=0; i < field.length; i++) {
		temp = "" + field.substring(i, i+1);
		if (valid.indexOf(temp) == "-1") {
			return true;
			}
		}
	
	b = field.substring(0, 3) // area code
	c = field.substring(3, 4)// '-'
	d = field.substring(4, 7) // 999
	e = field.substring(7, 8)// '-'
	f = field.substring(8, 12) // 9999
	if (c != '-') {
		return true;
	}
	if (e != '-') {
		return true;
	}
	
	return false;
	}

/*****/

function validateMemberType(obj1, obj2) {
	var date = new Date();
	var month = date.getMonth() + 1;
	var day = date.getDate();
	var year = date.getFullYear();
	var today = year + "/" + month + "/" + day;

	var DoC = Date.parse(today);
	var newdob = obj1.replace(/\-/g, "/");
	var DoB = Date.parse(newdob);
	
	var AgeDays  = 0;
	var AgeWeeks = 0;
	var AgeMonth = 0;
	var AgeYears = 0;
	var AgeRmdr  = 0;
	
	mSecDiff   = DoC - DoB;
	AgeDays  = mSecDiff / 86400000;
	AgeWeeks = AgeDays / 7;
	AgeMonth = AgeDays / 30.4375;
	AgeYears = AgeDays / 365.24;    
	AgeYears = Math.floor(AgeYears);
	AgeRmdr  = (AgeDays - AgeYears * 365.24) / 30.4375;
	
	AgeDays  = Math.round(AgeDays * 10) / 10;
	AgeWeeks = Math.round(AgeWeeks * 10) / 10;
	AgeMonth = Math.round(AgeMonth * 10) / 10;
	AgeRmdr  = Math.round(AgeRmdr * 10) / 10;
	
	if(AgeYears >= 18) {
		if(obj2 == "Regular") {
			return false;	
		}
	}
	else if(AgeYears < 18) {
		if(obj2 == "Junior") {
			return false;
		}
	}
	return true;
}

function validateTournamentDiscount(age) {	
	if( age >= 20 ) {
		if( age < 50 ) {
			return true;
		}
	}
	return false;
}

function validateSenior(age) {	
	if( age < 50 ) {
		return true;
	}
	return false;
}

function validateUSCF(uscf) {
	// A USCF ID only consists of numbers
	var valid = "0123456789";

	// A USCF ID is 8 digits long
	if (uscf.length!=8) {
		return true;
	}

	for (var i=0; i < uscf.length; i++) {
		temp = "" + uscf.substring(i, i+1);
		if (valid.indexOf(temp) == "-1") {
			return true;
		}
	}
	
	// A USCF ID begins with the number 1 or 2
	if (uscf.substring(0) >= '3') {
		return true;	
	}
	if (uscf.substring(0) == '0') {
		return true;
	}

	return false;
}