rem: switch(typemenu.getval()) { 
add: ret=typemenu.getval(); switch(ret) { case ctrl('O'): /* CTRL-O - Pause */ case ctrl('U'): /* CTRL-U User List */ case ctrl('T'): /* CTRL-T Time Info */ case ctrl('K'): /* CTRL-K Control Key Menu */ case ctrl('P'): /* Ctrl-P Messages */ handle_a_ctrlkey(ret); break; 
context: function show_messagemenu(){	var cur=1;	var nd=false;	while(!done) {		var i;		var j;		var ret;		var messagemenu=new Messagemenu();		messagemenu.current=cur;		messagemenu.nodraw=nd;		ret=messagemenu.getval();		if(ret==KEY_RIGHT) {			if(messagemenu.items[messagemenu.current].text.substr(-2,2)==' >')				ret=messagemenu.items[messagemenu.current].retval;		}		message: switch(ret) {			case KEY_LEFT:				cleararea(messagemenu.xpos,messagemenu.ypos,messagemenu.items[0].text.length,messagemenu.items.length,true);				main_left();				return;			case '\b':			case '\x7f':			case '\x1b':				cleararea(messagemenu.xpos,messagemenu.ypos,messagemenu.items[0].text.length,messagemenu.items.length,true);				return;			case KEY_RIGHT:				cleararea(messagemenu.xpos,messagemenu.ypos,messagemenu.items[0].text.length,messagemenu.items.length,true);				main_right();				return;			case 'C':				clear_screen();				if(!msg_area.grp_list.length)					break;				msgjump: while(1) {					var orig_grp=bbs.curgrp;					var i=0;					var j=0;					if(msg_area.grp_list.length>1) {						if(file_exists(system.text_dir+"menu/grps.*"))							bbs.menu("grps");						else {							console.putmsg(bbs.text(CfgGrpLstHdr),P_SAVEATR);							for(i=0; i<msg_area.grp_list.length; i++) {								if(i==bbs.curgrp)									console.putmsg('*',P_SAVEATR);								else									console.putmsg(' ',P_SAVEATR);								if(i<9)									console.putmsg(' ',P_SAVEATR);								if(i<99)									console.putmsg(' ',P_SAVEATR);								// We use console.putmsg to expand ^A, @, etc								console.putmsg(format(bbs.text(CfgGrpLstFmt),i+1,msg_area.grp_list[i].description),P_SAVEATR);							}						}						console.mnemonics(format(bbs.text(JoinWhichGrp),bbs.curgrp+1));						j=console.getnum(msg_area.grp_list.length);						if(j<0)							break msgjump;						if(!j)							j=bbs.curgrp;						else							j--;					}					bbs.curgrp=j;					if(file_exists(system.text_dir+"menu/subs"+(bbs.curgrp+1)))						bbs.menu("subs"+(bbs.curgrp+1));					else {						console.clear();						console.putmsg(format(bbs.text(SubLstHdr), msg_area.grp_list[j].description),P_SAVEATR);						for(i=0; i<msg_area.grp_list[j].sub_list.length; i++) {							var msgbase=new MsgBase(msg_area.grp_list[j].sub_list[i].code);							if(msgbase==undefined)								continue;							if(!msgbase.open())								continue;							if(i==bbs.cursub)								console.putmsg('*',P_SAVEATR);							else								console.putmsg(' ',P_SAVEATR);							if(i<9)								console.putmsg(' ',P_SAVEATR);							if(i<99)								console.putmsg(' ',P_SAVEATR);							console.putmsg(format(bbs.text(SubLstFmt),i+1, msg_area.grp_list[j].sub_list[i].description,"",msgbase.total_msgs),P_SAVEATR);							msgbase.close();						}					}					console.mnemonics(format(bbs.text(JoinWhichSub),bbs.cursub+1));					i=console.getnum(msg_area.grp_list[j].sub_list.length);					if(i==-1) {						if(msg_area.grp_list.length==1) {							bbs.curgrp=orig_grp;							break msgjump;						}						continue;					}					if(!i)						i=bbs.cursub;					else						i--;					bbs.cursub=i;					break;				}				draw_main(true);				break;			case 'R':				clear_screen();				bbs.scan_posts();				draw_main(true);				break;			case 'N':				var typemenu=new Lightbar;				var width=29;				if(width<8+msg_area.grp_list[bbs.curgrp].name.length)					width=8+msg_area.grp_list[bbs.curgrp].name.length;				if(width<6+msg_area.grp_list[bbs.curgrp].sub_list[bbs.cursub].name.length)					width=6+msg_area.grp_list[bbs.curgrp].sub_list[bbs.cursub].name.length;				typemenu.xpos=messagemenu.xpos+messagemenu.items[0].text.length;				typemenu.ypos=messagemenu.current+1;				typemenu.lpadding="\xb3";				typemenu.rpadding="\xb3";				typemenu.hotkeys=KEY_LEFT+KEY_RIGHT+"\b\x7f\x1b";				typemenu.add(top_bar(width),undefined,undefined,"","");				typemenu.add('|All Message Areas','A',width);				typemenu.add("|Group ("+msg_area.grp_list[bbs.curgrp].name+")",'G',width);				typemenu.add('|Sub ('+msg_area.grp_list[bbs.curgrp].sub_list[bbs.cursub].name+')','S',width);				typemenu.add('Change New Scan |Configuration','C',width);				typemenu.add('Change New Scan |Pointers','P',width);				typemenu.add('|Reset New Scan Pointers','R',width);				typemenu.add(bottom_bar(width),undefined,undefined,"","");				typemenu.timeout=100;				typemenu.callback=message_callback;				while(1) {					switch(typemenu.getval()) {						case 'A':							clear_screen();							console.putmsg("\r\n\x01c\x01hNew Message Scan\r\n");							for(j=0; j<msg_area.grp_list.length; j++) {								for(i=0; i<msg_area.grp_list[j].sub_list.length; i++)									bbs.scan_posts(msg_area.grp_list[j].sub_list[i].number, SCAN_NEW);							}							draw_main(true);							messagemenu.draw();							break;						case 'G':							clear_screen();							console.putmsg("\r\n\x01c\x01hNew Message Scan\r\n");							for(i=0; i<msg_area.grp_list[bbs.curgrp].sub_list.length; i++)								bbs.scan_posts(msg_area.grp_list[bbs.curgrp].sub_list[i].number, SCAN_NEW);							draw_main(true);							messagemenu.draw();							break;						case 'S':							clear_screen();							console.putmsg("\r\n\x01c\x01hNew Message Scan\r\n");							bbs.scan_posts(msg_area.grp_list[bbs.curgrp].sub_list[bbs.cursub].number, SCAN_NEW);							draw_main(true);							messagemenu.draw();							break;						case 'C':							clear_screen();							bbs.cfg_msg_scan(SCAN_CFG_NEW);							draw_main(true);							messagemenu.draw();							break;						case 'P':							clear_screen();							bbs.cfg_msg_ptrs(SCAN_CFG_NEW);							draw_main(true);							messagemenu.draw();							break;						case 'R':							bbs.reinit_msg_ptrs()							break;						case KEY_RIGHT:							cleararea(messagemenu.xpos,messagemenu.ypos,messagemenu.items[0].text.length,messagemenu.items.length,true);							cleararea(typemenu.xpos,typemenu.ypos,typemenu.items[0].text.length,typemenu.items.length,true);							main_right();							return;						default:							cleararea(typemenu.xpos,typemenu.ypos,typemenu.items[0].text.length,typemenu.items.length,true);							messagemenu.nodraw=true;							break message;					}				}				break;			case 'Y':				var typemenu=new Lightbar;				var width=30;				if(width<8+msg_area.grp_list[bbs.curgrp].name.length)					width=8+msg_area.grp_list[bbs.curgrp].name.length;				if(width<6+msg_area.grp_list[bbs.curgrp].sub_list[bbs.cursub].name.length)					width=6+msg_area.grp_list[bbs.curgrp].sub_list[bbs.cursub].name.length;				typemenu.xpos=messagemenu.xpos+messagemenu.items[0].text.length;				typemenu.ypos=messagemenu.current+1;				typemenu.lpadding="\xb3";				typemenu.rpadding="\xb3";				typemenu.hotkeys=KEY_LEFT+KEY_RIGHT+"\b\x7f\x1b";				typemenu.add(top_bar(width),undefined,undefined,"","");				typemenu.add('|All Message Areas','A',width);				typemenu.add("|Group ("+msg_area.grp_list[bbs.curgrp].name+")",'G',width);				typemenu.add('|Sub ('+msg_area.grp_list[bbs.curgrp].sub_list[bbs.cursub].name+')','S',width);				typemenu.add('Change Your Scan |Configuration','C',width);				typemenu.add(bottom_bar(width),undefined,undefined,"","");				typemenu.timeout=100;				typemenu.callback=message_callback;				while(1) {					switch(typemenu.getval()) {						case 'A':							clear_screen();							console.putmsg("\r\n\x01c\x01hYour Message Scan\r\n");							for(j=0; j<msg_area.grp_list.length; j++) {								for(i=0; i<msg_area.grp_list[j].sub_list.length; i++)									bbs.scan_posts(msg_area.grp_list[bbs.curgrp].sub_list[i].number, SCAN_TOYOU);							}							draw_main(true);							messagemenu.draw();							break;						case 'G':							clear_screen();							console.putmsg("\r\n\x01c\x01hYour Message Scan\r\n");							for(i=0; i<msg_area.grp_list[bbs.curgrp].sub_list.length; i++)								bbs.scan_posts(msg_area.grp_list[bbs.curgrp].sub_list[i].number, SCAN_TOYOU);							draw_main(true);							messagemenu.draw();							break;						case 'S':							clear_screen();							console.putmsg("\r\n\x01c\x01hYour Message Scan\r\n");							bbs.scan_posts(msg_area.grp_list[bbs.curgrp].sub_list[bbs.cursub].number, SCAN_TOYOU);							draw_main(true);							messagemenu.draw();							break;						case 'C':							clear_screen();							bbs.cfg_msg_scan(SCAN_CFG_TOYOU);							draw_main(true);							messagemenu.draw();							break;						case KEY_RIGHT:							cleararea(messagemenu.xpos,messagemenu.ypos,messagemenu.items[0].text.length,messagemenu.items.length,true);							cleararea(typemenu.xpos,typemenu.ypos,typemenu.items[0].text.length,typemenu.items.length,true);							main_right();							return;						default:							cleararea(typemenu.xpos,typemenu.ypos,typemenu.items[0].text.length,typemenu.items.length,true);							messagemenu.nodraw=true;							break message;					}				}				break;			case 'T':				var typemenu=new Lightbar;				var width=17;				if(width<8+msg_area.grp_list[bbs.curgrp].name.length)					width=8+msg_area.grp_list[bbs.curgrp].name.length;				if(width<6+msg_area.grp_list[bbs.curgrp].sub_list[bbs.cursub].name.length)					width=6+msg_area.grp_list[bbs.curgrp].sub_list[bbs.cursub].name.length;				typemenu.xpos=messagemenu.xpos+messagemenu.items[0].text.length;				typemenu.ypos=messagemenu.current+1;				typemenu.lpadding="\xb3";				typemenu.rpadding="\xb3";				typemenu.hotkeys=KEY_LEFT+KEY_RIGHT+"\b\x7f\x1b";				typemenu.add(top_bar(width),undefined,undefined,"","");				typemenu.add('|All Message Areas','A',width);				typemenu.add("|Group ("+msg_area.grp_list[bbs.curgrp].name+")",'G',width);				typemenu.add('|Sub ('+msg_area.grp_list[bbs.curgrp].sub_list[bbs.cursub].name+')','S',width);				typemenu.add(bottom_bar(width),undefined,undefined,"","");				typemenu.timeout=100;				typemenu.callback=message_callback;				while(1) {					switch(typemenu.getval()) {						case 'A':							clear_screen();							console.putmsg("\r\n\x01c\x01hMessage Search\r\n");							console.putmsg(bbs.text(SearchStringPrompt));							str=console.getstr("",40,K_LINE|K_UPPER);							for(i=0; i<msg_area.grp_list.length; i++) {								for(j=0; j<msg_area.grp_list[i].sub_list.length; j++) {									bbs.scan_posts(msg_area.grp_list[i].sub_list[j].number, SCAN_FIND, str);								}							}							draw_main(true);							messagemenu.draw();							break;						case 'G':							clear_screen();							console.putmsg("\r\n\x01c\x01hMessage Search\r\n");							str=console.getstr("",40,K_LINE|K_UPPER);							for(i=0; i<msg_area.grp_list[bbs.curgrp].sub_list.length; i++)								bbs.scan_posts(msg_area.grp_list[bbs.curgrp].sub_list[i].number, SCAN_FIND, str);							draw_main(true);							messagemenu.draw();							break;						case 'S':							clear_screen();							console.putmsg("\r\n\x01c\x01hMessage Search\r\n");							str=console.getstr("",40,K_LINE|K_UPPER);							bbs.scan_posts(msg_area.grp_list[bbs.curgrp].sub_list[bbs.cursub].number, SCAN_FIND, str);							draw_main(true);							messagemenu.draw();							break;						case KEY_RIGHT:							cleararea(messagemenu.xpos,messagemenu.ypos,messagemenu.items[0].text.length,messagemenu.items.length,true);							cleararea(typemenu.xpos,typemenu.ypos,typemenu.items[0].text.length,typemenu.items.length,true);							main_right();							return;						default:							cleararea(typemenu.xpos,typemenu.ypos,typemenu.items[0].text.length,typemenu.items.length,true);							messagemenu.nodraw=true;							break message;					}				}				break;			case 'P':				clear_screen();				bbs.post_msg();				draw_main(true);				break;			case 'A':				clear_screen();				bbs.auto_msg();				draw_main(true);				break;			case 'Q':				clear_screen();				bbs.qwk_sec();				draw_main(true);				break;			case 'V':				clear_screen();				bbs.sub_info();				console.pause();				draw_main(true);				break;		}		cur=messagemenu.current;		nd=messagemenu.nodraw;	}}
meta: 9592	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/9592/70493357eaef9b883fc33977a03652d408e20d61/lbshell.js/buggy/lbshell.js