//	/bin/daemon/timzone.c
//	from the Nightmare mudlib
//	a timezone daemon
//	created by Descartes of Borg
// bug in show_tzone_list() fixed by Pallando 93-06-04
mapping timezones;
void load_zones();
void load_zones() {
  if( !timezones )  // Line added by Pallando for efficiency
    timezones = ([
        "NZT":([ "offset":16, "name": "New Zealand Standard Time" ]),
	"AET":([ "offset": 15, "name": "Australian Eastern Time" ]),
	"AWT": ([ "offset":3, "name": "Australian Western Time" ]),
        "MT": ([ "offset":9, "name": "Moscow Time" ]),
        "MEZ": ([ "offset": 7, "name" : "Middle European Zone" ]),
	"CET": ([ "offset": 7, "name": "Central European Time" ]),
	"GMT": ([ "offset": 6, "name": "Greenwich Mean Time" ]),
	"BST": ([ "offset": 5, "name": "British Summer Time" ]),
	"AST": ([ "offset": 2, "name": "Atlantic Standard Time" ]),
	"EST": ([ "offset": 1, "name": "Eastern Standard Time" ]),
	"CST": ([ "offset": 0, "name": "Central Standard Time" ]),
	"MST": ([ "offset": -1, "name": "Mountain Standard Time" ]),
	"PST": ([ "offset": -2, "name": "Pacific Standard Time" ]),
    ]);
}
int query_tzone(string str)
 {
    int offset;
    load_zones();
    if(!str) return time();
    if(!timezones[str]) offset = 0;
    else offset = timezones[str]["offset"] * 3600;
    return time() + offset;
}
void show_tzone_list()
{
    string *tz;
    int i;
    load_zones();
    tz = keys(timezones);
    for(i=0; i<sizeof(tz); i++) {
 write(tz[i]+": "+timezones[tz[i]]["name"]+"\n");
    }
}