β˜€ LIGHT BERNAERS SYSTEMS INC.   AS/400 V3R6M0   HARDWARE ORDER SYSTEM 02/14/82 09:00:00
F1=Help   F3=Main Menu   F12=Back   Enter=Select SYSTEM: AS4-BERN01   SUBSYSTEM: ORDERMGR
Selection or command ==>
`); w.document.close(); } function showHelp(){ S.prevScreen=S.screen; render(`
${RV(center(' HELP β€” BERNAERS SYSTEMS AS/400 ORDER SYSTEM ',80))}

  ${B('KEYBOARD NAVIGATION')}
  ${D(pad('─',78))}
  ${B('ENTER')}      Confirm selection or action
  ${B('F1')}         Display this help screen
  ${B('F3')}         Return to Main Menu (from anywhere)
  ${B('F7')}         Share configuration (from Checkout screen)
  ${B('F12')}        Go back one screen
  ${B('ESC')}        Return to Main Menu

  ${B('HOW TO ORDER')}
  ${D(pad('─',78))}
  1. From the Main Menu, select a catalog section (options 1–4)
  2. Type an item number and press ENTER to view full specifications
  3. Enter a quantity (1–99) and press ENTER to add to your order
  4. View your full order via option 5
  5. Checkout via option 6 β€” then print the invoice or share!

  ${B('HOW TO SHARE')}
  ${D(pad('─',78))}
  After checkout, press F7 or select option 7 to generate a unique link.
  Your configuration is encoded in the URL β€” share on LinkedIn, Twitter/X,
  or copy the link. Others can view your exact configuration instantly!

  ${B('ABOUT THIS SYSTEM')}
  ${D(pad('─',78))}
  ${D('Created by')} ${B('Jasper Bernaers')} ${D('β€” Cloud & AI Strategist | IBM Consulting')}
  ${D('jasperbernaers.com | LinkedIn: /in/jasperbernaers')}
  ${D('All catalog items, prices, and orders are fictional.')}
  ${D('The nostalgia: 100% genuine.')}

  ${D('Press F12 or F3 to return.')}
`); } // ─── SHARED CONFIG LOADER ──────────────────────────────────────────────────── function loadShared(){ try{ const cfg=new URLSearchParams(window.location.search).get('cfg'); if(!cfg) return false; const p=JSON.parse(decodeURIComponent(escape(atob(cfg)))); S.user=p.u||'ANONYMOUS'; S.orderNum=p.o||('BSI-'+Math.floor(Math.random()*90000+10000)+'-82'); S.cart=p.c.map(i=>({id:i.id,name:i.n,price:i.p,qty:i.q,sku:i.s})); return true; }catch(e){return false;} } // ─── INPUT HANDLER ─────────────────────────────────────────────────────────── function handle(raw){ const v=raw.trim(); const lo=v.toLowerCase(); // Boot screen β€” any enter if(S.mode==='boot'){showSignin();return;} // Name entry if(S.mode==='name'){ if(!v) return; S.user=v.toUpperCase().slice(0,30)||'ANONYMOUS'; showMain();return; } // Quantity entry if(S.mode==='qty'){ const q=parseInt(v)||1; if(q<1||q>99) return; const ex=S.cart.find(i=>i.id===S.sel.id); if(ex) ex.qty+=q; else S.cart.push({...S.sel,qty:q}); // confirmation screen S.screen='added'; S.mode='selection'; setFkeys('F3=Main Menu Enter=Continue Browsing 5=View Order 6=Checkout'); setPrompt('Selection ═══>'); cmd.value=''; render(`
${RV(center(' ITEM ADDED TO ORDER ',80))}
  ${B('βœ“ ADDED:')}  ${B(S.sel.name)}

  ${D('Quantity:')}   ${B(String(q))}
  ${D('Unit price:')} ${B(money(S.sel.price))}
  ${D('Line total:')} ${A(money(S.sel.price*q))}

  ${D(pad('─',78))}
  ${D('Order total:')} ${A(money(cartTotal()))}    ${D('Items:')} ${B(String(cartCount()))}

     ${B('ENTER')}  Continue browsing this catalog
     ${B('5')}      View full order
     ${B('6')}      Proceed to checkout & print
`); return; } // Checkout β€” enter prints, F7 shares if(S.mode==='checkout'){ if(!v){printInvoice();return;} } // Remove mode if(S.mode==='remove'){ const idx=parseInt(v)-1; if(!isNaN(idx)&&idx>=0&&idx ${B('Thank you for using BERNAERS SYSTEMS AS/400 Order System.')} ${D('Your virtual order has been virtually processed.')} ${D('Your fictional hardware will be fictionally delivered in 2–4 fictional weeks.')} ${A('"The best interface is the one that remembers 1982."')} ${D('jasperbernaers.com | LinkedIn: /in/jasperbernaers')} ${D('Β© 1982 BERNAERS SYSTEMS INC. All fictional rights reserved.')} ${BL('β–ˆ')}`); cmd.disabled=true; return; } } if(S.screen==='hardware'){ const items=HW.filter(h=>S.selCat==='desktop'?['DESKTOP','HOME','HOBBYIST'].includes(h.cat):['PORTABLE','PROFESSIONAL','MINICOMPUTER'].includes(h.cat)); const idx=parseInt(v)-1; if(!isNaN(idx)&&idx>=0&&idx=0&&idx=0&&idx{ if(e.key==='Enter'){const v=cmd.value;cmd.value='';handle(v);} else if(e.key==='F1'){e.preventDefault();showHelp();} else if(e.key==='F3'){e.preventDefault();showMain();} else if(e.key==='F7'){e.preventDefault();if(S.screen==='checkout'||S.screen==='share')showShare();} else if(e.key==='F12'){e.preventDefault(); if(S.screen==='detail'){S.selCat?showHardware(S.selCat):showMain();} else if(S.screen==='share'||S.screen==='help'){showMain();} else showMain(); } else if(e.key==='Escape'){e.preventDefault();showMain();} }); // Focus input on click anywhere in terminal document.getElementById('terminal').addEventListener('click',()=>{if(!cmd.disabled)cmd.focus();}); // ─── INIT ───────────────────────────────────────────────────────────────────── window.addEventListener('load',()=>{ if(loadShared()){showCheckout();} else showBoot(); }); // ── THEME TOGGLE ──────────────────────────────── function toggleTheme(){ var body = document.body; var btn = document.getElementById('theme-toggle'); body.classList.toggle('light'); document.documentElement.classList.toggle('light'); var isLight = body.classList.contains('light'); btn.textContent = isLight ? '\u263E DARK' : '\u2600 LIGHT'; localStorage.setItem('jb-theme', isLight ? 'light' : 'dark'); } (function(){ if(localStorage.getItem('jb-theme') === 'light'){ document.body.classList.add('light'); document.documentElement.classList.add('light'); var btn = document.getElementById('theme-toggle'); if(btn) btn.textContent = '\u263E DARK'; } })();