anchor.diff:  				for(var/i = 1 to worldData.potions.len)
   					kp += i
   			else
  -				kp = usr:knownPotions
  +				kp = i_Player.knownPotions
   
   			for(var/i in kp)
  -				c++
   				var/ing    = worldData.potions[i]
   				var/potion = worldData.potions[ing]
   
   				if(potion == 0)
  -					potion = "explosion"
  +					if(sort != "Explosion") continue
  +					potion = "Explosion"
   				else
  +					if(sort == "Explosion") continue
  +					if(sort && !findtext("[potion]", sort)) continue
  +
   					var/list/t = splittext("[potion]", "/")
   					potion = replacetext(t[t.len], "_", " ")
   
  
positive.code: 
  	Click()
  		if(src in usr)
  			if(!usr:knownPotions && !master)
  				usr << errormsg("Your book is empty, go brew potions!")
  				return
  			var/const/HEADER = {"<html><head><title>Potion Book</title><style>
  body
  {
  
negative.code: 	background-color:#DFDFDF;
  	border: solid 1px #E5E5E5;
  }
  </style></head><body><table align="center" class="colored"><tr><td colspan="4"><center>"}
  
  			var/sortText = sort ? "<a href='?src=\ref[src];action=All'>All</a>" : "All"
  			var/list/types = list("Health", "Mana", "Explosion", "Taming", "Pets", "Luck", "Defense", "Damage")
  			for(var/t in types)
  				sortText += t == sort ? " | [t]" : " | <a href='?src=\ref[src];action=[t]'>[t]</a>"
  
  			var/html = {"</center></td></tr><tr><td><b># &nbsp &nbsp &nbsp </b></td><td><b>Name</b></td><td><b>Ingredients</b></td></tr>"}
  			var/c = 0
  
  			var/list/kp
  