function validateRadio( elems, cssclass ) {
    var selected = false;
    for(i=0; i < elems.length; ++i ) {
        if ( elems[i].checked ) {
            selected = true;
            break;
        }
    }
    var error = $('fieldset.'+cssclass+' .error')
    if ( selected ) {
        error.css({display:'none'});
    } else {
        error.css({display:'block'});
        return false;
    }
    return true;
}

function validateDOB() {
    var valid = true;
    var dayElem = document.regform.dobday
    var monthElem = document.regform.dobmonth
    var yearElem = document.regform.dobyear
    if ( ! dayElem.value ) {
        valid = false;
    }
    if ( ! monthElem.value ) {
        valid = false;
    }
    if ( ! yearElem.value ) {
        valid = false;
    }
    var dob = new Date();
    dob.setDate( dayElem.value )
    dob.setMonth( monthElem.value )
    dob.setFullYear( yearElem.value )
    var dobTime = dob.getTime()
    var nowTime = new Date().getTime()

    if ( nowTime-dobTime < 60*60*24*365.25*1000*18 ) {
        valid = false;
    }

    var error = $('fieldset.dob .error')
    if ( valid ) {
        error.css({display:'none'});
    } else {
        error.css({display:'block'});
    }

    return valid;
}
function validateNumber() {
    var elem = document.regform.email
    var valid = true;
    if ( ! elem.value ) {
        valid = false
    } else {
    	var anum=/^[\+]?[\d ]+$/
    	if (anum.test(elem.value)) 
    		valid = true
    	else 
    		valid = false
    }

    var error = $('.row.email .error')
    if ( valid ) {
        error.css({display:'none'});
    } else {
        error.css({display:'block'});
    }

    return valid;
}

function validateEmail() {
    var elem = document.regform.email
    var valid = true;
    if ( ! elem.value ) {
        valid = false
    } else {
        if ( elem.value.indexOf("@") < 1 ) {
	        valid = false;
        } else if ( elem.value.lastIndexOf(".") < 2 ) {
	        valid = false;
        }
    }
    
    var error = $('.row.email .error')
    if ( valid ) {
        error.css({display:'none'});
    } else {
        error.css({display:'block'});
    }

    return valid;
}

function validatePostcode() {
    var elem = document.regform.postcode
    var valid = true;
    if ( elem.value ) {
        if ( elem.value.length < 2 ) {
            valid = false;
        }
    }

    var error = $('.row.postcode .error')
    if ( valid ) {
        error.css({display:'none'});
    } else {
        error.css({display:'block'});
    }

    return valid;
}

function validateTerms() {
    var elem = document.regform.terms
    var valid = true;
    if ( ! elem.checked ) {
        valid = false
    }

    var error = $('.row.terms .error')
    if ( valid ) {
        error.css({display:'none'});
    } else {
        error.css({display:'block'});
    }

    return valid;
}

function validateAndSubmit() {
    var valid = true;
    var genders = document.regform.gender
    if ( ! validateRadio( genders, 'gender' ) ) {
        valid = false;
    }
    var flirts = document.regform.flirt
    if ( ! validateRadio( flirts, 'flirt' ) ) {
        valid = false;
    }
    if ( ! validateDOB() ) {
        valid = false;
    }
    if ( ! validateEmail() && ! validateNumber() ) {
        valid = false;
    }
    if ( ! validateTerms() ) {
        valid = false;
    }
    return valid;
}

