anchor.diff:  	popup.set_content(output)
   	popup.open(FALSE)
   
  -/proc/age_gate(/mob/dead/new_player/plr)
  +/mob/dead/new_player/proc/age_gate()
   	var/list/dat = list("<center>")
   	dat += "Enter your date of birth here, to confirm that you are over 18.<BR>"
   	dat += "<b>Your date of birth is not saved, only the fact that you are over/under 18 is.</b><BR>"
   	dat += "</center>"
   
  -	dat += "<form action='?src=[REF(src)]' method='get'><select name = 'Month'>"
  +	dat += "<form action='?src=[REF(src)]'>"
  +	dat += "<input type='hidden' name='src' value='[REF(src)]'>"
  +	dat += HrefTokenFormField()
  +	dat += "<select name = 'Month'>"
   	var/monthList = list("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December")
   	for(var/month in monthList)
   		dat += "<option value = [monthList[month]]>[month]</option>"
   	dat += "</select>"
  -	dat += "<select name = 'Year'>"
  -	for(var/year in 1920 to 2020)
  -		dat += "<option value = [year]>[year]</option>"
  -	dat += "</select></form><BR>"
  -
  -	output += "<p><input type='submit' value='Submit information.'>"
  -
  -	plr << browse(dat,"window=playerpoll;size=500x250")
  +	dat += "<select name = 'Year' style = 'float:right'>"
  +	var/current_year = text2num(time2text(world.realtime, "YYYY"))
  +	var/start_year = 1920
  +	for(var/year in start_year to current_year)
  +		var/reverse_year = 1920 + (current_year - year)
  +		dat += "<option value = [reverse_year]>[reverse_year]</option>"
  +	dat += "</select>"
  +	dat += "<center><input type='submit' value='Submit information'></center>"
  +	dat += "</form>"
  +
  +	winshow(src, "age_gate", TRUE)
  +	var/datum/browser/popup = new(src, "age_gate", "<div align='center'>Age Gate</div>", 400, 250)
  +	popup.set_content(dat.Join())
  +	popup.open(FALSE)
  +	onclose(src, "age_gate")
  +
  +	while(!age_gate_result)
  +		stoplag(1)
  +
  +	popup.close()
  +
  +	return age_gate_result
   
   /mob/dead/new_player/proc/age_verify()
   	if(CONFIG_GET(flag/age_verification) && !check_rights_for(client, R_ADMIN) && !(client.ckey in GLOB.bunker_passthrough)) //make sure they are verified
  
positive.code: 
  	if(!client)
  		return 0
  
  	if(!age_verify())
  		return
  
negative.code: 		else
  			var/dbflags = client.prefs.db_flags
  			if(dbflags & DB_FLAG_AGE_CONFIRMATION_INCOMPLETE) //they have not completed age gate
  				var/age_verification = age_gate()
  				if(age_verification != 1)
  					client.add_system_note("Automated-Age-Gate", "Failed automatic age gate process")
  					qdel(client) //kick the user
  