KANTO
you have to get the cianwood gym badge and the olivine gym badge
by beating the gym leader
Go to the forth gym!
by beating the icicle gym leader. In mahogany town.
it is bugsy the bug type leader
blackthorn city
You must defeat Clair in the gym then do a side quest in a cave north of blackthorn.
in Goldenrod city
Defeat Clair the blackthorn city gym leader but afterward she will not give you the badge go to the dragon's den which is north of blackthorn city and find a dragon fang in there show it to Clair to get the badge.
You must go and battle Misty. Once you defeat her, she will give you a badge. You have then defeated the gym.
It is attainable in poke mart after the 3 gym badge (i think)
first get a ice type Pokemon then go threw the whole gym face gym leader and get the badge