rem: row=document.getElementById(name+'_'+id); while(row.nextSibling){ row=row.nextSibling; if(row.id)break; 
add: this_row_id=name+'_'+id; row=document.getElementById(this_row_id); if(e.shiftKey||e.modifiers==4){  while(row.previousSibling){ row=row.previousSibling; if(row.id&&row.id!=this_row_id)break; } }else{  while(row.nextSibling){ row=row.nextSibling; if(row.id)break; } 
context: function inline_process_key(e, name, id, activate_next){	if(isKeyPressed(e, kEsc)){		//submitting and hiding current inline		inline_hide(name, id, 'cancel');		return false;	}	if(isKeyPressed(e, kReturn)){		//submitting and hiding current inline		inline_hide(name, id, 'update');		return false;	}	if(activate_next&&isKeyPressed(e, kTab)){		row=document.getElementById(name+'_'+id);		while(row.nextSibling){			row=row.nextSibling;			if(row.id)break;		}		if(row.id){ 			//we need to parse an ID from row.id			row_id=new String(row.id);			while(row_id.indexOf("_")!=-1)				row_id=row_id.substring(row_id.indexOf('_')+1);			//storing values cause they will be erased on hide			active_field=inline_active[name][id]['active_field'];			submit_url=inline_active[name][id]['submit_url'];			//submitting and hiding current inline			inline_hide(name, id, 'update');			//activating next inline			inline_show(name,active_field,row_id,submit_url,true,inline_active[name]['show_submit']);			return false;		}	}	return true;}
meta: 106	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/106/47d7277541917706f901b312bdcc412aad1f944c/amodules3.js/buggy/templates/shared/amodules3.js