1<!DOCTYPE html> 2<html lang="en" dir="ltr" translate="no" class="notranslate"> 3<head> 4 <meta charset="UTF-8"> 5<!-- This site is hosted on Netlify. Anyone can build and deploy a site 6 like this one for free: https://netlify.new/?utm_campaign=loops&utm_source=ai-legible&utm_medium=owned&utm_content=comment&utm_id=64f98274-c4ad-4ea0-845b-73f57a175780 7 Netlify hosting facts for this site: static/SSR served via Netlify Edge. --><meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"><meta name="google" content="notranslate"> 8 <title>AmigaStore â Amiga Workbench 1.3 Online & Retro Platform | c64spark</title> 9 <meta name="description" content="AmigaStore â A live Workbench 1.3 in your browser. Online Amiga emulator, C64 tools, Z80 Story, and a retro community bazaar. Built by c64spark."> 10 <meta name="keywords" content="AmigaStore, Amiga Workbench online, Amiga emulator, Commodore 64 tools, Z80 Story, retro computing, retro bazaar, Amiga 500, C64 sprite editor, C64 BASIC to PRG, PETSCII art converter, c64spark, رترÙکا٠پÛÙØªØ±, Ø¢Ù Ûگا, Ú©Ù ÙØ¯Ùر"> 11 <meta name="robots" content="index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1"><meta name="language" content="English"><meta name="author" content="c64spark"> 12 <meta name="theme-color" content="#0000AA"> 13 <meta name="apple-mobile-web-app-capable" content="yes"><meta name="mobile-web-app-capable" content="yes"> 14 <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"> 15 <meta name="apple-mobile-web-app-title" content="AmigaStore"><meta name="application-name" content="AmigaStore"> 16 <link rel="icon" type="image/png" href="https://raw.githubusercontent.com/silverspark-ir/Amigastore/main/c64spark.ir%20logo.png"> 17 <link rel="apple-touch-icon" href="https://raw.githubusercontent.com/silverspark-ir/Amigastore/main/c64spark.ir%20logo.png"> 18 <link rel="canonical" href="https://amigastore.ir"> 19 <link rel="sitemap" type="application/xml" href="/sitemap.xml"> 20 <link rel="alternate" hreflang="en" href="https://amigastore.ir/"> 21 <link rel="alternate" hreflang="fa" href="https://amigastore.ir/"> 22 <link rel="alternate" hreflang="x-default" href="https://amigastore.ir/"> 23 <meta property="og:site_name" content="AmigaStore"> 24 <meta property="og:title" content="AmigaStore â Amiga Workbench 1.3 Online & Retro Platform"><meta property="og:description" content="A live Workbench 1.3 in your browser. Online Amiga emulator, C64 tools, Z80 Story, and a retro community bazaar. Built by c64spark."><meta property="og:url" content="https://amigastore.ir"><meta property="og:type" content="website"><meta property="og:locale" content="en_US"><meta property="og:locale:alternate" content="fa_IR"> 25 <meta property="og:image" content="https://raw.githubusercontent.com/silverspark-ir/Amigastore/main/c64spark.ir%20logo.png"> 26 <meta property="og:image:alt" content="AmigaStore â Amiga Workbench 1.3 in your browser"> 27 <meta name="twitter:card" content="summary_large_image"><meta name="twitter:site" content="@c64spark"><meta name="twitter:creator" content="@c64spark"><meta name="twitter:title" content="AmigaStore â Amiga Workbench 1.3 Online & Retro Platform"><meta name="twitter:description" content="A live Workbench 1.3 in your browser. Online Amiga emulator, C64 tools, Z80 Story, and a retro community bazaar."> 28 <meta name="twitter:image" content="https://raw.githubusercontent.com/silverspark-ir/Amigastore/main/c64spark.ir%20logo.png"> 29 <meta name="twitter:image:alt" content="AmigaStore â Amiga Workbench 1.3 in your browser"> 30
30<script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"WebSite","name":"AmigaStore","alternateName":"Amiga Workbench 1.3 Online & Retro Platform","url":"https://amigastore.ir","description":"A live Workbench 1.3 in your browser. Online Amiga emulator, C64 tools, Z80 Story, and a retro community bazaar.","inLanguage":["en-US","fa-IR"],"author":{"@type":"Person","name":"c64spark","email":"[email protected]"},"publisher":{"@type":"Organization","name":"AmigaStore","url":"https://amigastore.ir","logo":"https://raw.githubusercontent.com/silverspark-ir/Amigastore/main/c64spark.ir%20logo.png"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://amigastore.ir/search?q={search_term_string}"},"query-input":"required name=search_term_string"}},{"@type":"WebApplication","name":"AmigaStore","url":"https://amigastore.ir","applicationCategory":"MultimediaApplication","operatingSystem":"Web","description":"A live Amiga Workbench 1.3 environment in the browser, featuring an online Amiga emulator, Commodore 64 utilities, and a retro community bazaar.","offers":{"@type":"Offer","price":"0","priceCurrency":"USD"},"browserRequirements":"Requires JavaScript","author":{"@type":"Person","name":"c64spark"}},{"@type":"Organization","name":"AmigaStore","alternateName":"AmigaStore.ir","url":"https://amigastore.ir","logo":"https://raw.githubusercontent.com/silverspark-ir/Amigastore/main/c64spark.ir%20logo.png","email":"[email protected]","founder":{"@type":"Person","name":"c64spark"},"sameAs":["https://zxspectrum.ir","https://c64spark.bandcamp.com","https://retrolab.ir","https://commodore-amiga.blogfa.com"]}]}</script>
30 31 <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/amiga4ever/stylesheet.css"> 32 <style> 33 *{margin:0;padding:0;box-sizing:border-box;image-rendering:pixelated;image-rendering:crisp-edges} 34 body{font-family:'Amiga4Ever',monospace;background-color:#000;color:white;height:100vh;overflow:hidden;cursor:default;display:flex;flex-direction:column} 35 #main-container{width:100%;height:100vh;display:none;flex-direction:column;overflow:hidden} 36 #main-container.active{display:flex} 37 #splash-screen{width:100%;height:100vh;display:flex;flex-direction:column;justify-content:center;align-items:center;background-color:#000;z-index:99999;position:fixed;top:0;left:0;transition:opacity 0.5s ease} 38 #splash-screen img{max-width:90vw;max-height:75vh;object-fit:contain;display:block} 39 #splash-btn{margin-top:20px;padding:12px 28px;background-color:#0000AA;border:3px solid;border-top-color:#FFFFFF;border-left-color:#FFFFFF;border-right-color:#000000;border-bottom-color:#000000;color:#FFF;cursor:pointer;font-family:'Amiga4Ever',monospace;font-size:14px;letter-spacing:1px;animation:splash-pulse 2s infinite;text-shadow:0 0 8px rgba(255,255,255,0.5)} 40 #splash-btn:hover{animation:splash-pulse 0.5s infinite;text-shadow:0 0 15px #FFF} 41 @keyframes splash-pulse{0%{border-top-color:#FFF;border-left-color:#FFF}50%{border-top-color:#FF5500;border-left-color:#FF5500}100%{border-top-color:#FFF;border-left-color:#FFF}} 42 #boot-screen{width:100%;height:100vh;display:none;justify-content:center;align-items:center;background-color:#000;z-index:99998;position:fixed;top:0;left:0;transition:opacity 0.5s ease;overflow:auto} 43 #boot-screen.active{display:flex} 44 #boot-window{width:970px;max-width:95vw;height:auto;min-height:2100px;background-color:#0000AA;border:2px solid #FFFFFF;box-shadow:4px 4px 0 rgba(0,0,0,0.5);margin:20px auto;display:flex;flex-direction:column} 45 #boot-titlebar{background-color:#FF7700;color:#FFF;padding:6px 12px;font-size:13px;font-weight:bold;border-bottom:1px solid #000;flex-shrink:0} 46 #boot-cli{background-color:#000;color:#FFF;padding:15px;font-family:'Amiga4Ever',monospace;font-size:12px;line-height:1.6;min-height:200px;white-space:pre-wrap;text-align:left;direction:ltr;flex-grow:1} 47 #fast-load-btn{margin:15px auto 20px auto;padding:10px 24px;background-color:#0000AA;border:3px solid;border-top-color:#FFFFFF;border-left-color:#FFFFFF;border-right-color:#000000;border-bottom-color:#000000;color:#FFF;cursor:pointer;font-family:'Amiga4Ever',monospace;font-size:13px;letter-spacing:1px;animation:splash-pulse 2s infinite;text-shadow:0 0 8px rgba(255,255,255,0.5);display:block;text-align:center;flex-shrink:0} 48 #fast-load-btn:hover{animation:splash-pulse 0.5s infinite;text-shadow:0 0 15px #FFF} 49 @media(max-width:768px){#boot-window{width:95vw!important;min-height:auto;height:auto}#boot-cli{font-size:10px;padding:12px}#fast-load-btn{font-size:11px;padding:8px 18px}} 50 @media(max-width:480px){#boot-window{width:95vw!important;min-height:auto;height:auto}#boot-cli{font-size:8px;padding:10px;line-height:1.3}#fast-load-btn{font-size:10px;padding:6px 14px}} 51 #workbench-container{width:100%;flex:1;display:flex;flex-direction:column;overflow:hidden} 52 #top-white-bar{height:40px;height:calc(40px + env(safe-area-inset-top, 0px));background-color:#FFFFFF;color:#000000;display:flex;align-items:center;padding:0 15px;padding-top:env(safe-area-inset-top, 0px);font-size:16px;border-bottom:2px solid #000000;flex-shrink:0;position:relative;z-index:500} 53 #workbench-title{font-weight:bold;margin-right:20px} 54 #lang-toggle-header{margin-right:20px;padding:5px 14px;background-color:#E85050;border:2px solid;border-top-color:#FF8888;border-left-color:#FF8888;border-right-color:#AA0000;border-bottom-color:#AA0000;color:#FFF;cursor:pointer;font-family:'Amiga4Ever',monospace;font-size:13px;letter-spacing:0.5px} 55 #lang-toggle-header:hover{background-color:#FF6A6A}#articles-toggle{margin-left:auto;padding:6px 12px;background-color:#CCCCCC;border:2px solid;border-top-color:#FFFFFF;border-left-color:#FFFFFF;border-right-color:#000000;border-bottom-color:#000000;cursor:pointer;font-size:13px} 56 #articles-toggle:hover{background-color:#DDDDDD}#articles-menu{position:absolute;top:40px;right:15px;background-color:#FFFFFF;border:2px solid #000000;padding:5px 0;display:none;z-index:1000;min-width:220px;max-height:360px;overflow-y:auto} 57 .article-item{padding:8px 15px;color:#000000;cursor:pointer;font-size:13px;white-space:nowrap;border-bottom:1px solid #CCCCCC} 58 .article-item:last-child{border-bottom:none}.article-item:hover{background-color:#0000AA;color:white}
59 #desktop{position:relative;flex-grow:1;padding:25px 20px;background-color:#0000AA;overflow:auto} 60 #retro-tv-container{position:absolute;top:25px;right:25px;width:280px;z-index:0;user-select:none} 61 #retro-tv-frame{background-color:#222;border:5px solid #555;border-radius:14px;padding:10px;box-shadow:0 0 0 3px #111,0 0 20px rgba(0,0,0,0.6);position:relative;pointer-events:none} 62 #retro-tv-antenna{position:absolute;top:-30px;left:50%;transform:translateX(-50%);width:70px;height:34px} 63 .antenna-left,.antenna-right{position:absolute;bottom:0;width:3px;background-color:#888;border-radius:2px;transform-origin:bottom center} 64 .antenna-left{height:32px;left:24px;transform:rotate(-28deg)}.antenna-right{height:32px;right:24px;transform:rotate(28deg)} 65 .antenna-ball{position:absolute;top:-4px;left:50%;transform:translateX(-50%);width:7px;height:7px;background-color:#ccc;border-radius:50%} 66 #retro-tv-screen{width:100%;height:190px;background-color:#000;border:3px solid #333;border-radius:8px;overflow:hidden;position:relative;pointer-events:none} 67 #retro-tv-screen canvas{width:100%;height:100%;display:block} 68 #retro-tv-play-overlay{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:0;height:0;border-left:28px solid rgba(255,255,255,0.75);border-top:18px solid transparent;border-bottom:18px solid transparent;pointer-events:none;z-index:2;animation:tv-play-pulse 2.5s ease-in-out infinite;filter:drop-shadow(0 0 8px rgba(255,255,255,0.5))} 69 @keyframes tv-play-pulse{0%,100%{opacity:0.45;transform:translate(-50%,-50%) scale(1)}50%{opacity:1;transform:translate(-50%,-50%) scale(1.2)}} 70 #retro-tv-label{text-align:center;color:#FFAA66;font-size:12px;margin-top:7px;font-family:'Amiga4Ever',monospace;text-shadow:0 0 5px rgba(255,170,102,0.5);letter-spacing:1px;pointer-events:none} 71 #tv-click-overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:3;pointer-events:auto;cursor:pointer} 72 #tv-lightbox{display:none;position:fixed;top:0;left:0;width:100vw;height:100vh;background-color:rgba(0,0,0,0.85);z-index:9999;justify-content:center;align-items:center;flex-direction:column} 73 #tv-lightbox.active{display:flex}#tv-lightbox-video{max-width:90vw;max-height:75vh;border:4px solid #555;border-radius:12px;box-shadow:0 0 40px rgba(0,0,0,0.8);background:#000} 74 #tv-lightbox-close{position:absolute;top:20px;right:30px;width:40px;height:40px;background-color:#FF5500;border:2px solid #FFF;border-radius:4px;color:#FFF;font-size:22px;text-align:center;line-height:36px;cursor:pointer;z-index:10000;font-family:'Amiga4Ever',monospace} 75 #tv-lightbox-close:hover{background-color:#FF7733} 76 #amiga-player{position:absolute;top:310px;right:25px;width:280px;height:90px;background-color:#1a1a2e;border:4px solid #555;border-radius:8px;box-shadow:0 0 0 2px #222,0 0 15px rgba(0,0,0,0.5);z-index:0;pointer-events:auto;display:flex;flex-direction:column;padding:8px 10px} 77 #player-display{width:100%;height:24px;background-color:#000;border:2px solid #333;border-radius:3px;margin-bottom:8px;overflow:hidden;position:relative} 78 #player-marquee{white-space:nowrap;color:#00FF88;font-family:'Amiga4Ever',monospace;font-size:12px;line-height:20px;position:absolute;animation:marquee 70s linear infinite} 79 @keyframes marquee{0%{transform:translateX(240px)}100%{transform:translateX(-100%)}} 80 #player-controls{display:flex;justify-content:center;align-items:center;gap:20px;flex-grow:1} 81 .player-btn{width:36px;height:36px;background-color:#444;border:2px solid;border-top-color:#888;border-left-color:#888;border-right-color:#222;border-bottom-color:#222;cursor:pointer;display:flex;align-items:center;justify-content:center;position:relative;transition:all 0.1s} 82 .player-btn:active{border-top-color:#222;border-left-color:#222;border-right-color:#888;border-bottom-color:#888} 83 .player-btn .prev-icon{width:0;height:0;border-top:8px solid transparent;border-bottom:8px solid transparent;border-right:12px solid #CCC;margin-left:4px} 84 .player-btn .prev-icon::after{content:'';position:absolute;
84left:10px;top:50%;transform:translateY(-50%);width:0;height:0;border-top:8px solid transparent;border-bottom:8px solid transparent;border-right:12px solid #CCC} 85 .player-btn .next-icon{width:0;height:0;border-top:8px solid transparent;border-bottom:8px solid transparent;border-left:12px solid #CCC;margin-right:4px} 86 .player-btn .next-icon::after{content:'';position:absolute;right:10px;top:50%;transform:translateY(-50%);width:0;height:0;border-top:8px solid transparent;border-bottom:8px solid transparent;border-left:12px solid #CCC} 87 .player-btn.play-btn .play-icon{width:0;height:0;border-top:9px solid transparent;border-bottom:9px solid transparent;border-left:15px solid #55FF55;margin-left:3px;animation:play-blink 2.5s infinite} 88 @keyframes play-blink{0%,65%{border-left-color:#55FF55}70%,100%{border-left-color:#FF3333}} 89 .player-btn.play-btn.playing .play-icon{border:none;width:14px;height:14px;background:linear-gradient(to right,#FFAA00 0%,#FFAA00 40%,transparent 40%,transparent 60%,#FFAA00 60%,#FFAA00 100%);animation:none;margin-left:0} 90 #online-game-banner{position:absolute;top:460px;right:25px;width:280px;height:46px;background-color:#1a1a1a;border-radius:4px;cursor:pointer;z-index:0;pointer-events:auto;display:flex;align-items:center;justify-content:center;font-family:'Amiga4Ever',monospace;color:#FFF;letter-spacing:1px;overflow:hidden} 91 #online-game-banner img{width:100%;height:100%;object-fit:contain;display:block} 92 #online-game-banner:hover{opacity:0.9} 93 #right-icon-panel{position:absolute;top:566px;right:25px;width:224px;background-color:#1a1a2e;border:4px solid #555;border-radius:8px;box-shadow:0 0 0 2px #222,0 0 15px rgba(0,0,0,0.5);z-index:0;pointer-events:auto;padding:14px 12px;display:flex;flex-direction:column;gap:14px} 94 .right-panel-item{width:100%;height:56px;background-color:#2a2a3e;border:2px solid;border-top-color:#666;border-left-color:#666;border-right-color:#111;border-bottom-color:#111;cursor:pointer;display:flex;align-items:center;justify-content:center;overflow:hidden} 95 .right-panel-item:hover{background-color:#3a3a4e}.right-panel-item:active{border-top-color:#111;border-left-color:#111;border-right-color:#666;border-bottom-color:#666} 96 .right-panel-display{width:90%;height:26px;background-color:#000;border:1px solid #333;border-radius:2px;display:flex;align-items:center;justify-content:center;overflow:hidden} 97 .right-panel-label{color:#FFAA66;font-family:'Amiga4Ever',monospace;font-size:12px;letter-spacing:0.5px;animation:label-glow 3s ease-in-out infinite;white-space:nowrap} 98 @keyframes label-glow{0%,100%{text-shadow:0 0 4px rgba(255,170,102,0.4)}50%{text-shadow:0 0 10px rgba(255,170,102,0.9)}} 99 #discussion-icon-panel{position:absolute;top:840px;right:25px;width:224px;background-color:#1a1a2e;border:4px solid #3a3a5e;border-radius:8px;box-shadow:0 0 0 2px #222,0 0 15px rgba(0,0,0,0.5);z-index:0;pointer-events:auto;padding:0} 100 .discussion-panel-item{width:100%;height:56px;background-color:#1e1e35;border:2px solid;border-top-color:#555;border-left-color:#555;border-right-color:#111;border-bottom-color:#111;cursor:pointer;display:flex;align-items:center;justify-content:center;overflow:hidden} 101 .discussion-panel-item:hover{background-color:#2a2a45}.discussion-panel-item:active{border-top-color:#111;border-left-color:#111;border-right-color:#555;border-bottom-color:#555} 102 .discussion-panel-display{width:90%;height:26px;background-color:#000;border:1px solid #3a3a5e;border-radius:2px;display:flex;align-items:center;justify-content:center;overflow:hidden} 103 .discussion-panel-label{color:#AAFFAA;font-family:'Amiga4Ever',monospace;font-size:11px;letter-spacing:0.5px;animation:discussion-label-glow 4s ease-in-out infinite;white-space:nowrap} 104 @keyframes discussion-label-glow{0%,100%{text-shadow:0 0 4px rgba(170,255,170,0.3)}50%{text-shadow:0 0 12px rgba(170,255,170,0.7)}} 105 #retro-bazaar-icon{position:absolute;top:926px;right:25px;width:224px;height:75px;background-color:#1a1a2e;border:3px solid #FFAA00;border-radius:8px;box-shadow:0 0 0 2px #222,0 0 15px rgba(0,0,0,0.5);
105cursor:pointer;display:flex;align-items:center;justify-content:center;animation:bazaar-glow 3s infinite;z-index:0} 106 #retro-bazaar-icon:hover{animation:bazaar-glow 0.5s infinite;box-shadow:0 0 0 2px #222,0 0 25px rgba(255,170,0,0.7)} 107 #retro-bazaar-icon .bazaar-label{color:#FFAA00;font-family:'Amiga4Ever',monospace;font-size:18px;letter-spacing:1px;text-shadow:0 0 8px rgba(255,170,0,0.5)} 108 @keyframes bazaar-glow{0%{border-color:#FFAA00;box-shadow:0 0 10px rgba(255,170,0,0.3)}50%{border-color:#FFD700;box-shadow:0 0 20px rgba(255,215,0,0.5)}100%{border-color:#FFAA00;box-shadow:0 0 10px rgba(255,170,0,0.3)}} 109 #amiga-emu-banner{float:left;clear:left;width:280px;height:46px;background-color:#111;border:3px solid #FF5500;border-radius:4px;cursor:pointer;z-index:0;pointer-events:auto;display:flex;align-items:center;justify-content:center;font-family:'Amiga4Ever',monospace;font-size:13px;color:#FFF;text-shadow:0 0 8px rgba(255,255,255,0.6);letter-spacing:1px;animation:neon-border 3s infinite;margin-bottom:20px;margin-left:0} 110 #amiga-emu-banner:hover{animation:neon-border 0.5s infinite;text-shadow:0 0 15px #FFF} 111 @keyframes neon-border{0%{border-color:#FF5500;box-shadow:0 0 12px #FF5500,inset 0 0 8px rgba(255,85,0,0.3)}25%{border-color:#FFFFFF;box-shadow:0 0 16px #FFFFFF,inset 0 0 10px rgba(255,255,255,0.3)}50%{border-color:#0088FF;box-shadow:0 0 16px #0088FF,inset 0 0 10px rgba(0,136,255,0.4)}75%{border-color:#888888;box-shadow:0 0 12px #CCCCCC,inset 0 0 8px rgba(136,136,136,0.3)}100%{border-color:#FF5500;box-shadow:0 0 12px #FF5500,inset 0 0 8px rgba(255,85,0,0.3)}} 112 #amiga-apps-banner{float:left;clear:left;width:196px;height:46px;background-color:#111;border:3px solid #0088FF;border-radius:4px;cursor:pointer;z-index:0;pointer-events:auto;display:flex;align-items:center;justify-content:center;font-family:'Amiga4Ever',monospace;font-size:12px;color:#FFF;text-shadow:0 0 8px rgba(255,255,255,0.6);letter-spacing:1px;animation:neon-border-simple 4.5s infinite;margin-bottom:20px;margin-left:0} 113 #amiga-apps-banner:hover{animation:neon-border-simple 0.6s infinite;text-shadow:0 0 15px #FFF} 114 @keyframes neon-border-simple{0%{border-color:#0088FF;box-shadow:0 0 10px #0088FF,inset 0 0 6px rgba(0,136,255,0.3)}50%{border-color:#FF5500;box-shadow:0 0 10px #FF5500,inset 0 0 6px rgba(255,85,0,0.3)}100%{border-color:#0088FF;box-shadow:0 0 10px #0088FF,inset 0 0 6px rgba(0,136,255,0.3)}} 115 #amiga-games-banner{float:left;clear:left;width:196px;height:46px;background-color:#111;border:3px solid #0088FF;border-radius:4px;cursor:pointer;z-index:0;pointer-events:auto;display:flex;align-items:center;justify-content:center;font-family:'Amiga4Ever',monospace;font-size:12px;color:#FFF;text-shadow:0 0 8px rgba(255,255,255,0.6);letter-spacing:1px;animation:neon-border-simple 4.5s infinite;margin-bottom:20px;margin-left:0} 116 #amiga-games-banner:hover{animation:neon-border-simple 0.6s infinite;text-shadow:0 0 15px #FFF} 117 .desktop-icon{position:relative;width:90px;text-align:center;cursor:pointer;padding:10px 5px;margin-bottom:20px;float:left;clear:left} 118 .desktop-icon:hover{background-color:rgba(255,255,255,0.3)}.icon-img{width:52px;height:52px;display:block;margin:0 auto 8px;object-fit:contain} 119 .icon-label{font-size:11px;color:white;text-shadow:1px 1px 0 #000;background-color:rgba(0,0,0,0.5);padding:2px 4px;white-space:nowrap;overflow:visible;text-overflow:clip;display:inline-block;max-width:100%} 120 .cart-icon-glow{outline:3px solid #FF5500;outline-offset:4px;filter:drop-shadow(0 0 8px #FF7733);animation:cart-glow-pulse 1.5s infinite alternate} 121 @keyframes cart-glow-pulse{from{outline-color:#FF5500;filter:drop-shadow(0 0 6px #FF7733)}to{outline-color:#FF7733;filter:drop-shadow(0 0 14px #FFAA00)}} 122 @keyframes gold-rotate{0%{filter:hue-rotate(0deg)}100%{filter:hue-rotate(360deg)}}.blog-icon-glow .icon-img{animation:gold-rotate 3s infinite linear} 123 .market-icon-glow .icon-img{animation:market-pulse 2s infinite alternate} 124 @keyframes market-pulse{0%{filter:brightness(1)}100%{filter:brightness(1.2)}} 125 .book-badge{width:120px;height:40px;position:relative;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;font-family:'Inter','Segoe UI',system-ui,sans-serif;border-radius:4px;box-shadow:0 0 12px rgba(0,0,0,0.5),0 0 24px rgba(0,229,255,0.15);cursor:pointer;text-decoration:none;transition:all 0.4s;float:left;clear:left;margin:10px 5px 20px 5px} 126 .book-badge:hover{box-shadow:0 0 18px rgba(0,0,0,0.7),0 0 36px rgba(0,229,255,0.3);transform:translateY(-2px)} 127 .bb-slide{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;transition:opacity 1.2s ease-in-out} 128 .bb-slide.active{opacity:1} 129 .bb-slide:nth-child(1){background:linear-gradient(180deg,#000060,#000040);border-bottom:2px solid #ffcc00} 130 .bb-slide:nth-child(2){background:linear-gradient(180deg,#1a1a3e,#0d0d2e);border-bottom:2px solid #ff6600} 131 .bb-slide:nth-child(3){background:linear-gradient(180deg,#4040a0,#202060);border-bottom:2px solid #8888ff} 132 .bb-slide:nth-child(4){background:linear-gradient(180deg,#333340,#1a1a20);border-bottom:2px solid #ff8800} 133 .bb-slide:nth-child(5){background:linear-gradient(180deg,#0060a0,#003060);border-bottom:2px solid #ffcc00} 134 .bb-slide:nth-child(6){background:linear-gradient(180deg,#000,#1a1a1a);border-bottom:2px solid #00ff41} 135 .bb-slide:nth-child(7){background:linear-gradient(180deg,#202020,#101010);border-bottom:2px solid #00cc00} 136 .bb-rainbow{position:absolute;top:0;left:0;width:200%;height:2px;background:linear-gradient(to right,#ff0000,#ffff00,#00ff00,#00ffff,#0000ff,#ff00ff,#ff0000);animation:bbRainbow 3s linear infinite;z-index:3} 137 @keyframes bbRainbow{0%{transform:translateX(0)}100%{transform:translateX(-50%)}} 138 .bb-scan{position:absolute;top:-10%;left:0;width:100%;height:8px;background:linear-gradient(180deg,transparent,rgba(255,255,255,0.06),transparent);animation:bbScan 4s linear infinite;z-index:3;pointer-events:none} 139 @keyframes bbScan{0%{top:-10%}100%{top:110%}} 140 .bb-text{position:relative;z-index:4;text-align:center} 141 .bb-line1{font-size:11px;font-weight:800;letter-spacing:0.5px;color:#ffcc00;text-shadow:0 0 6px rgba(255,255,255,0.4);line-height:1.2;transition:color 0.8s} 142 .bb-line2{font-size:8px;font-weight:600;letter-spacing:3px;color:#ccc;text-shadow:0 0 4px rgba(255,255,255,0.3);line-height:1.2;margin-top:4px;transition:color 0.8s} 143 .bb-line2::after{content:'';display:inline-block;width:7px;height:10px;background:#fff;margin-left:8px;vertical-align:middle;animation:bbCursorBlink 0.8s steps(1) infinite;box-shadow:0 0 4px #fff} 144 @keyframes bbCursorBlink{0%,100%{opacity:1}50%{opacity:0}
144} 145 .window{position:absolute;background-color:#0000AA;border:2px solid #FFFFFF;display:none;z-index:1;overflow:hidden;box-shadow:4px 4px 0 rgba(0,0,0,0.3);min-width:250px;min-height:200px} 146 .window.active{display:block;z-index:100}.window.active>.window-header{background-color:#FF7700;color:#FFFFFF} 147 .window.minimized{height:33px!important;min-height:33px!important}.window.minimized .window-content{display:none} 148 .window-header{background-color:#FFFFFF;color:#000000;padding:6px 12px 4px 12px;font-size:14px;display:flex;justify-content:space-between;align-items:center;cursor:move;user-select:none;position:relative;border-bottom:1px solid #000000;touch-action:none;height:33px;box-sizing:border-box} 149 .window-title-container{display:flex;align-items:center;flex-grow:1;min-width:0}.window-title{font-weight:bold;margin-right:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:0} 150 .parallel-lines{flex-grow:1;height:12px;background:linear-gradient(to bottom,#000 0%,#000 30%,transparent 30%,transparent 70%,#000 70%,#000 100%);margin-right:12px;min-width:50px} 151 .window-controls{display:flex;gap:8px;flex-shrink:0}.window-btn{width:20px;height:20px;background-color:#888;border:1px solid;border-top-color:#FFF;border-left-color:#FFF;border-right-color:#000;border-bottom-color:#000;font-size:12px;text-align:center;line-height:18px;cursor:pointer;z-index:20;position:relative} 152 .window-btn:hover{background-color:#AAA}.window-btn.close{background-color:#FF5500}.window-btn.close:hover{background-color:#FF7733} 153 .window-btn.manage-btn{background-color:#000;color:#FFF;width:50px;font-size:10px;border-top-color:#444;border-left-color:#444;border-right-color:#000;border-bottom-color:#000} 154 .window-btn.manage-btn:hover{background-color:#222} 155 .resize-handle{position:absolute;bottom:0;right:0;width:20px;height:20px;cursor:se-resize;z-index:1000} 156 .resize-handle::after{content:'';position:absolute;bottom:3px;right:3px;width:12px;height:12px;background:linear-gradient(135deg,#FFFFFF 50%,transparent 50%)} 157 .window.minimized .resize-handle{display:none} 158 .window-content{padding:20px;font-size:14px;color:#FFF;height:calc(100% - 33px);overflow:auto;background-color:#0000AA;line-height:1.5;text-align:justify;pointer-events:auto} 159 .window-content.no-padding{padding:0;overflow:hidden;text-align:initial}.window-content.no-padding iframe{width:100%;height:100%;border:none;background-color:#FFF} 160 .article-content{max-width:800px;margin:0 auto}.article-title{font-size:18px;margin-bottom:15px;color:#FFF;border-bottom:2px solid #FF5500;padding-bottom:5px} 161 .article-paragraph{margin-bottom:15px;text-align:justify}.article-paragraph p{text-align:justify;text-justify:inter-word;hyphens:auto;word-spacing:-0.5px;margin-bottom:12px} 162 .article-image{display:block;max-width:100%;height:auto;margin:18px auto;border:2px solid #FFF;background-color:rgba(0,0,0,0.3);padding:4px;image-rendering:auto} 163 .article-hashtags{font-size:10px;color:#888;line-height:1.6;padding:10px 0;user-select:text;pointer-events:auto;margin-top:15px;border-top:1px solid rgba(255,255,255,0.2)} 164 .rtl-text{direction:rtl;text-align:justify}.rtl-text p{direction:rtl;text-align:justify}.ltr-text{direction:ltr;text-align:justify}.ltr-text p{direction:ltr;text-align:justify} 165 .about-logo{width:110px;height:auto;max-height:110px;object-fit:contain;object-position:center;display:block;margin:0 auto 15px} 166 .content-text{background-color:rgba(255,255,255,0.1);border:1px dashed #FFF;padding:20px;margin:15px 0;display:none;grid-template-columns:repeat(2,1fr);gap:25px} 167 @media(max-width:600px){.content-text{grid-template-columns:1fr}} 168 .product-icon{text-align:center;cursor:pointer;padding:15px 10px;border:1px solid transparent;transition:all 0.2s} 169 .product-icon:hover{background-color:rgba(255,255,255,0.15);border:1px solid rgba(255,255,255,0.3)} 170 .product-icon-label{font-size:12px;color:white;margin-top:8px;word-break:break-word;min-height:30px;display:flex;align-items:center;justify-content:center} 171 .product-image-container{margin:15px 0;text-align:center}.product-image{max-width:100%;max-height:250px;border:2px solid #FFF;background-color:rgba(0,0,0,0.3);padding:5px} 172 .product-image-placeholder{width:400px;height:300px;max-width:100%;
172border:2px dashed #FFF;background-color:rgba(255,255,255,0.1);display:flex;align-items:center;justify-content:center;margin:0 auto;color:#888;font-size:14px} 173 .cart-item{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid rgba(255,255,255,0.3)} 174 .cart-item:last-child{border-bottom:none}.cart-item-info{flex-grow:1}.cart-item-name{font-weight:bold;margin-bottom:3px}.cart-item-price{color:#FFAA66;font-size:13px} 175 .cart-item-remove{color:#F55;cursor:pointer;font-size:16px;margin-left:15px;width:20px;height:20px;display:flex;align-items:center;justify-content:center;border:1px solid #F55;background-color:rgba(255,0,0,0.1)} 176 .cart-item-remove:hover{background-color:rgba(255,0,0,0.3)}.cart-total{margin-top:25px;padding-top:15px;border-top:2px solid #FFF;font-size:16px;text-align:right} 177 .cart-total-label{font-weight:bold;margin-bottom:8px}.cart-total-amount{color:#FFAA66;font-size:18px} 178 .cart-buttons{display:flex;justify-content:space-between;margin-top:25px;gap:15px} 179 .cart-btn{flex:1;padding:10px;text-align:center;cursor:pointer;border:2px solid;border-top-color:#FFF;border-left-color:#FFF;border-right-color:#000;border-bottom-color:#000;background-color:#888;font-family:'Amiga4Ever',monospace;font-size:14px} 180 .cart-btn:hover{background-color:#AAA}.cart-btn.confirm{background-color:#5A5;color:white}.cart-btn.confirm:hover{background-color:#6C6}.cart-btn.cancel{background-color:#888} 181 .cart-input-section{margin-top:25px;padding-top:20px;border-top:1px dashed #FFF;display:none}.cart-input-group{margin-bottom:20px}.cart-input-label{display:block;margin-bottom:8px;color:#FFAA66} 182 .cart-input{width:100%;padding:10px;background-color:rgba(0,0,0,0.3);border:1px solid #FFF;color:white;font-family:'Amiga4Ever',monospace;font-size:14px} 183 .cart-input:focus{outline:2px solid #FF5500;outline-offset:1px} 184 .cart-final-buttons{display:none;justify-content:center;gap:20px;margin-top:25px} 185 .cart-final-btn{width:60px;height:60px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;border:2px solid;border-top-color:#FFF;border-left-color:#FFF;border-right-color:#000;border-bottom-color:#000;font-size:24px;transition:all 0.2s} 186 .cart-final-btn.send{background-color:#5A5;color:white}.cart-final-btn.send:hover{background-color:#6C6;transform:scale(1.05)} 187 .cart-final-btn.cancel-final{background-color:#A55;color:white}.cart-final-btn.cancel-final:hover{background-color:#C66;transform:scale(1.05)} 188 .email-form{margin-top:20px}.email-textarea{width:100%;height:150px;padding:15px;background-color:rgba(0,0,0,0.3);border:2px solid #FFF;color:white;font-family:'Amiga4Ever',monospace;font-size:14px;resize:vertical;margin-bottom:20px} 189 .email-textarea:focus{outline:2px solid #FF5500;outline-offset:2px} 190 .email-send-btn{padding:12px 30px;background-color:#888;color:white;border:2px solid;border-top-color:#FFF;border-left-color:#FFF;border-right-color:#000;border-bottom-color:#000;cursor:not-allowed;font-family:'Amiga4Ever',monospace;font-size:14px;float:right} 191 .email-send-btn.active{background-color:#5A5;cursor:pointer}.email-send-btn.active:hover{background-color:#6C6} 192 .glowing-link{color:#FFAA66;text-decoration:none;animation:pulse-link 2s infinite alternate;cursor:pointer;font-weight:bold;display:inline-block} 193 @keyframes pulse-link{from{text-shadow:0 0 5px #FF5500,0 0 10px #FF5500}to{text-shadow:0 0 15px #FF7733,0 0 25px #FF7733}} 194 #footer{height:32px;background-color:#000;color:#FFF;display:flex;align-items:center;padding:0 15px;padding-bottom:env(safe-area-inset-bottom, 0px);font-size:13px;flex-shrink:0;font-family:'Amiga4Ever',monospace} 195 #footer-left{flex-grow:1;text-transform:lowercase}#footer-right{text-align:right;font-family:monospace;font-size:14px} 196 .window-content::-webkit-scrollbar{width:14px;height:14px}.window-content::-webkit-scrollbar-track{background:#000066} 197 .window-content::-webkit-scrollbar-thumb{background:#FF5500;border:2px solid #000066;border-radius:0} 198 .window-content::-webkit-scrollbar-thumb:hover{background:#FF7700}.window-content::-webkit-scrollbar-corner{background:#000066} 199 .news-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:15px;background-color:rgba(255,255,255,0.08);
199border:1px dashed #FFF;padding:15px;margin-top:20px;max-height:500px;overflow-y:auto} 200 .news-card{background-color:rgba(0,0,0,0.3);border:1px solid rgba(255,255,255,0.2);padding:10px;cursor:pointer;text-align:center;transition:all 0.2s;position:relative} 201 .news-card:hover{border-color:#FFAA66;background-color:rgba(0,0,0,0.5)} 202 .news-card img{width:100%;height:140px;object-fit:cover;border:1px solid #555;display:block;margin-bottom:8px} 203 .news-card .news-title{color:#FFAA66;font-size:13px;font-weight:bold;line-height:1.4;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden} 204 .news-detail-slider{position:relative;width:100%;margin-bottom:15px;text-align:center} 205 .news-detail-slider img{max-width:100%;max-height:300px;object-fit:contain;border:2px solid #555} 206 .news-detail-slider .slider-btn{position:absolute;top:50%;transform:translateY(-50%);background:rgba(0,0,0,0.7);color:#FFF;border:1px solid #FFF;cursor:pointer;font-size:20px;width:32px;height:32px;text-align:center;line-height:30px;z-index:2} 207 .news-detail-slider .slider-btn.prev{left:6px}.news-detail-slider .slider-btn.next{right:6px} 208 .news-reporter-section{display:flex;align-items:center;gap:12px;margin-top:20px;padding-top:15px;border-top:1px solid rgba(255,255,255,0.3)} 209 .news-reporter-photo{width:44px;height:44px;border-radius:50%;object-fit:cover;border:2px solid #FFAA66} 210 .rate-btn{padding:6px 14px;background-color:#333;border:2px solid;border-top-color:#666;border-left-color:#666;border-right-color:#111;border-bottom-color:#111;color:#FFAA66;cursor:pointer;font-family:'Amiga4Ever',monospace;font-size:11px} 211 .rate-btn:hover{background-color:#444}.rate-btn:disabled{opacity:0.5;cursor:not-allowed} 212 .stars-container{display:inline-flex;gap:4px;margin-left:8px} 213 .star{cursor:pointer;font-size:20px;color:#555;transition:color 0.2s} 214 .star.active,.star:hover{color:#FFD700} 215 .reporter-rating{color:#FFD700;font-size:12px;margin-top:4px} 216 .rating-confirm-btn{display:inline-block;margin-left:10px;padding:3px 10px;background-color:#5A5;border:1px solid #FFF;color:#FFF;cursor:pointer;font-family:'Amiga4Ever',monospace;font-size:11px;vertical-align:middle} 217 .rating-confirm-btn:hover{background-color:#6C6} 218 .admin-del-btn,.admin-edit-btn{display:inline-block;position:absolute;top:5px;width:24px;height:24px;background-color:#333;border:1px solid #FFF;color:#FFF;cursor:pointer;font-family:'Amiga4Ever',monospace;font-size:13px;text-align:center;line-height:22px;z-index:10} 219 .admin-del-btn{right:5px;background-color:#A55}.admin-del-btn:hover{background-color:#C66} 220 .admin-edit-btn{right:34px;background-color:#55A}.admin-edit-btn:hover{background-color:#77C} 221 #delete-confirm-modal-overlay{display:none;position:fixed;top:0;left:0;width:100vw;height:100vh;background-color:rgba(0,0,0,0.85);z-index:10007;justify-content:center;align-items:center} 222 #delete-confirm-modal-overlay.active{display:flex} 223 #delete-confirm-modal{background-color:#0000AA;border:2px solid #FFF;padding:25px;width:380px;max-width:90vw;text-align:center;box-shadow:4px 4px 0 rgba(0,0,0,0.5)} 224 #delete-confirm-modal .confirm-text{color:#FFF;font-family:'Amiga4Ever',monospace;font-size:14px;margin-bottom:20px;line-height:1.5} 225 #delete-confirm-modal .modal-buttons{display:flex;justify-content:center;gap:20px} 226 #delete-confirm-modal .modal-btn{padding:10px 24px;border:2px solid;border-top-color:#FFF;border-left-color:#FFF;border-right-color:#000;border-bottom-color:#000;cursor:pointer;font-family:'Amiga4Ever',monospace;font-size:14px} 227 #delete-confirm-modal .modal-btn.confirm-yes{background-color:#C44;color:#FFF}#delete-confirm-modal .modal-btn.confirm-yes:hover{background-color:#D55} 228 #delete-confirm-modal .modal-btn.confirm-no{background-color:#888;color:#FFF}#delete-confirm-modal .modal-btn.confirm-no:hover{background-color:#999} 229 #code-modal-overlay,#news-submit-modal-overlay,#team-apply-modal-overlay,#market-access-modal-overlay{display:none;position:fixed;top:0;left:0;width:100vw;height:100vh;background-color:rgba(0,0,0,0.85);z-index:10001;justify-content:center;align-items:center} 230 #code-modal-overlay.active,#news-submit-modal-overlay.active,#team-apply-modal-overlay.active,#market-access-modal-overlay.active{display:flex} 231 #code-modal,#news-submit-modal,#team-apply-modal,#market-access-modal{background-color:#0000AA;border:2px solid #FFFFFF;padding:20px;width:420px;max-width:90vw;max-height:85vh;overflow-y:auto;box-shadow:4px 4px 0 rgba(0,0,0,0.5)} 232 #code-modal input,#news-submit-modal input,#news-submit-modal textarea,#team-apply-modal input,#market-access-modal input{width:100%;margin-bottom:8px;background:#111;border:1px solid #FFF;color:#FFF;font-family:'Amiga4Ever',monospace;font-size:13px;padding:8px} 233 #news-submit-modal textarea{height:80px;resize:vertical} 234 #code-modal .modal-hint,#news-submit-modal .modal-hint,#team-apply-modal .modal-hint,#market-access-modal .modal-hint{font-size:11px;color:#FFAA66;margin-bottom:8px} 235 #market-access-modal .market-access-text{font-size:13px;color:#FFF;line-height:1.8;margin-bottom:15px;text-align:justify;direction:rtl} 236 #code-modal .modal-buttons,#news-submit-modal .modal-buttons,#team-apply-modal .modal-buttons,#market-access-modal .modal-buttons{display:flex;justify-content:space-between;gap:8px;margin-top:10px;flex-wrap:wrap} 237 #code-modal .modal-btn,#news-submit-modal .modal-btn,#team-apply-modal .modal-btn,#market-access-modal .modal-btn{padding:8px 16px;border:2px solid;border-top-color:#FFF;border-left-color:#FFF;border-right-color:#000;border-bottom-color:#000;background-color:#888;color:#FFF;
237cursor:pointer;font-family:'Amiga4Ever',monospace;font-size:12px} 238 #code-modal .modal-btn.send,#news-submit-modal .modal-btn.send,#team-apply-modal .modal-btn.send,#market-access-modal .modal-btn.send{background-color:#5A5}#code-modal .modal-btn.send:hover,#news-submit-modal .modal-btn.send:hover,#team-apply-modal .modal-btn.send:hover,#market-access-modal .modal-btn.send:hover{background-color:#6C6} 239 #code-modal .modal-btn.cancel,#news-submit-modal .modal-btn.cancel,#team-apply-modal .modal-btn.cancel,#market-access-modal .modal-btn.cancel{background-color:#A55}#code-modal .modal-btn.cancel:hover,#news-submit-modal .modal-btn.cancel:hover,#team-apply-modal .modal-btn.cancel:hover,#market-access-modal .modal-btn.cancel:hover{background-color:#C66} 240 #market-access-modal .modal-btn.request{background-color:#0088CC}#market-access-modal .modal-btn.request:hover{background-color:#00AAFF} 241 .discussion-submit-banner{display:block;width:196px;margin:15px auto;height:46px;background-color:#111;border:3px solid #0088FF;border-radius:4px;cursor:pointer;font-family:'Amiga4Ever',monospace;font-size:12px;color:#FFF;text-shadow:0 0 8px rgba(255,255,255,0.6);letter-spacing:1px;animation:neon-border-simple 4.5s infinite;text-align:center;line-height:40px} 242 .discussion-submit-banner:hover{animation:neon-border-simple 0.6s infinite;text-shadow:0 0 15px #FFF} 243 #shop-modal-overlay{display:none;position:fixed;top:0;left:0;width:100vw;height:100vh;background-color:rgba(0,0,0,0.85);z-index:10001;justify-content:center;align-items:center} 244 #shop-modal-overlay.active{display:flex}#shop-modal{background-color:#0000AA;border:2px solid #FFFFFF;padding:20px;width:420px;max-width:90vw;box-shadow:4px 4px 0 rgba(0,0,0,0.5)} 245 #shop-modal input,#shop-modal select,#shop-modal textarea{width:100%;margin-bottom:8px;background:#111;border:1px solid #FFF;color:#FFF;font-family:'Amiga4Ever',monospace;font-size:13px;padding:8px} 246 #shop-modal select option{background:#111;color:#FFF} 247 #shop-modal .modal-hint{font-size:11px;color:#FFAA66;margin-bottom:8px} 248 #shop-modal .modal-buttons{display:flex;justify-content:space-between;gap:10px;margin-top:10px} 249 #shop-modal .modal-btn{padding:8px 20px;border:2px solid;border-top-color:#FFF;border-left-color:#FFF;border-right-color:#000;border-bottom-color:#000;background-color:#888;color:#FFF;cursor:pointer;font-family:'Amiga4Ever',monospace;font-size:13px} 250 #shop-modal .modal-btn.send{background-color:#5A5}#shop-modal .modal-btn.send:hover{background-color:#6C6} 251 #shop-modal .modal-btn.cancel{background-color:#A55}#shop-modal .modal-btn.cancel:hover{background-color:#C66} 252 .shop-modal-hint{font-size:11px;color:#FFAA66;text-align:center;margin-top:12px;line-height:1.5} 253 #success-alert-overlay{display:none;position:fixed;top:0;left:0;width:100vw;height:100vh;background-color:rgba(0,0,0,0.7);z-index:10002;justify-content:center;align-items:center} 254 #success-alert-overlay.active{display:flex}#success-alert{background-color:#0000AA;border:2px solid #FFF;padding:25px;width:320px;max-width:90vw;text-align:center;box-shadow:4px 4px 0 rgba(0,0,0,0.5)} 255 #success-alert .alert-icon{font-size:32px;margin-bottom:12px} 256 #success-alert .alert-text{color:#FFF;font-family:'Amiga4Ever',monospace;font-size:13px;margin-bottom:18px;line-height:1.5} 257 #success-alert .alert-btn{background-color:#CCC;border:2px solid;border-top-color:#FFF;border-left-color:#FFF;border-right-color:#000;border-bottom-color:#000;padding:7px 30px;cursor:pointer;font-family:'Amiga4Ever',monospace;font-size:13px;color:#000} 258 #success-alert .alert-btn:hover{background-color:#DDD} 259 .disclaimer-text{color:#FFAA66;font-size:11px} 260 .market-ads-box{background-color:rgba(255,255,255,0.08);border:1px dashed #FFF;padding:15px;margin-top:20px;max-height:400px;overflow-y:auto;display:flex;flex-direction:column;gap:12px} 261 .ad-card{background-color:rgba(0,0,0,0.3);border:1px solid rgba(255,255,255,0.2);padding:12px;cursor:pointer;text-align:center}.ad-card:hover{border-color:#FFAA66} 262 .ad-card .ad-title{color:#FFAA66;font-size:14px;margin-bottom:6px;font-weight:bold} 263 .ad-card .ad-summary{font-size:12px;color:#CCC;margin-bottom:8px}.ad-card .ad-slider{display:flex;align-items:center;justify-content:center;gap:8px;position:relative} 264 .ad-card .ad-slider img{width:100%;max-height:160px;object-fit:cover;border:1px solid #555} 265 .ad-card .ad-slider .slider-btn{position:absolute;top:50%;transform:translateY(-50%);background:rgba(0,0,0,0.7);color:#FFF;border:1px solid #FFF;
265cursor:pointer;font-size:16px;width:26px;height:26px;text-align:center;line-height:24px;z-index:2} 266 .ad-card .ad-slider .slider-btn.prev{left:4px}.ad-card .ad-slider .slider-btn.next{right:4px} 267 .ad-card .ad-province{font-size:12px;color:#FFAA66;margin-top:8px} 268 .ad-card .ad-date{font-size:10px;color:#888;margin-top:4px} 269 .ad-card .ad-violation-bar{width:100%;background-color:#FFD700;color:#000;font-size:10px;padding:4px 0;margin-top:8px;text-align:center;font-weight:bold} 270 #ad-lightbox{display:none;position:fixed;top:0;left:0;width:100vw;height:100vh;background-color:rgba(0,0,0,0.9);z-index:10003;justify-content:center;align-items:center;flex-direction:column} 271 #ad-lightbox.active{display:flex}#ad-lightbox-content{background-color:#0000AA;border:2px solid #FFF;padding:20px;width:600px;max-width:90vw;max-height:85vh;overflow-y:auto} 272 #ad-lightbox .ad-lightbox-slider{position:relative;width:100%;margin-bottom:15px}#ad-lightbox .ad-lightbox-slider img{width:100%;max-height:200px;object-fit:contain;border:2px solid #555} 273 #ad-lightbox .ad-lightbox-slider .slider-btn{position:absolute;top:50%;transform:translateY(-50%);background:rgba(0,0,0,0.7);color:#FFF;border:1px solid #FFF;cursor:pointer;font-size:20px;width:32px;height:32px;text-align:center;line-height:30px;z-index:2} 274 #ad-lightbox .ad-lightbox-slider .slider-btn.prev{left:6px}#ad-lightbox .ad-lightbox-slider .slider-btn.next{right:6px} 275 #ad-lightbox .ad-lightbox-title{font-size:16px;color:#FFAA66;margin-bottom:10px;font-weight:bold;text-align:center} 276 #ad-lightbox .ad-lightbox-name{font-size:13px;color:#FFF;margin-bottom:6px;text-align:center} 277 #ad-lightbox .ad-lightbox-phone{font-size:13px;color:#FFF;margin-bottom:6px;text-align:center} 278 #ad-lightbox .ad-lightbox-desc{font-size:13px;color:#FFF;margin-bottom:12px;line-height:1.6;text-align:center} 279 #ad-lightbox .ad-lightbox-close{position:absolute;top:20px;right:30px;width:40px;height:40px;background-color:#FF5500;border:2px solid #FFF;border-radius:4px;color:#FFF;font-size:22px;text-align:center;line-height:36px;cursor:pointer;z-index:10004;font-family:'Amiga4Ever',monospace} 280 #ad-lightbox .ad-lightbox-close:hover{background-color:#FF7733} 281 #ad-lightbox .ad-lightbox-report-btn{display:block;width:200px;margin:15px auto 0;padding:8px;background-color:#A55;border:2px solid;border-top-color:#FFF;border-left-color:#FFF;border-right-color:#000;border-bottom-color:#000;color:#FFF;cursor:pointer;font-family:'Amiga4Ever',monospace;font-size:12px;text-align:center} 282 #ad-lightbox .ad-lightbox-report-btn:hover{background-color:#C66} 283 #ad-submit-modal-overlay{display:none;position:fixed;top:0;left:0;width:100vw;height:100vh;background-color:rgba(0,0,0,0.85);z-index:10001;justify-content:center;align-items:center} 284 #ad-submit-modal-overlay.active{display:flex}#ad-submit-modal{background-color:#0000AA;border:2px solid #FFFFFF;padding:20px;width:460px;max-width:90vw;max-height:85vh;overflow-y:auto;box-shadow:4px 4px 0 rgba(0,0,0,0.5)} 285 #ad-submit-modal input,#ad-submit-modal textarea{width:100%;margin-bottom:8px;background:#111;border:1px solid #FFF;color:#FFF;font-family:'Amiga4Ever',monospace;font-size:13px;padding:8px} 286 #ad-submit-modal textarea{height:80px;resize:vertical} 287 #ad-submit-modal .modal-hint{font-size:11px;color:#FFAA66;margin-bottom:8px} 288 #ad-submit-modal .modal-buttons{display:flex;justify-content:flex-end;gap:10px;margin-top:10px} 289 #ad-submit-modal .modal-btn{padding:8px 20px;border:2px solid;border-top-color:#FFF;border-left-color:#FFF;border-right-color:#000;border-bottom-color:#000;background-color:#888;color:#FFF;cursor:pointer;font-family:'Amiga4Ever',monospace;font-size:13px} 290 #ad-submit-modal .modal-btn.send{background-color:#5A5}#ad-submit-modal .modal-btn.send:hover{background-color:#6C6} 291 #ad-submit-modal .modal-btn.cancel{background-color:#A55}#ad-submit-modal .modal-btn.cancel:hover{background-color:#C66} 292 #ad-submit-modal .upload-hint{font-size:11px;color:#FFAA66;text-align:center;margin-top:12px;line-height:1.5} 293 #ad-submit-modal .upload-hint a{color:#FFAA66;text-decoration:underline;cursor:pointer} 294 .market-submit-banner{display:block;width:196px;margin:15px auto;height:46px;background-color:#111;border:3px solid #FFAA00;border-radius:4px;cursor:pointer;font-family:'Amiga4Ever',monospace;font-size:12px;color:#FFF;text-shadow:0 0 8px rgba(255,255,255,0.6);letter-spacing:1px;animation:neon-border-market 3s infinite;text-align:center;line-height:40px} 295 .market-submit-banner:hover{animation:neon-border-market 0.6s infinite} 296 @keyframes neon-border-market{0%{border-color:#FFAA00;box-shadow:0 0 10px #FFAA00}50%{border-color:#FF5500;box-shadow:0 0 10px #FF5500}100%{border-color:#FFAA00;box-shadow:0 0 10px #FFAA00}} 297 .products-dynamic-box{background-color:rgba(255,255,255,0.08);
297border:1px dashed #FFF;padding:15px;margin-top:20px;max-height:450px;overflow-y:auto;display:flex;flex-direction:column;gap:15px} 298 .product-card-dynamic{background-color:rgba(0,0,0,0.3);border:1px solid rgba(255,255,255,0.2);padding:15px;text-align:center;cursor:default}.product-card-dynamic:hover{border-color:#FFAA66} 299 .product-card-dynamic .product-dynamic-title{color:#FFAA66;font-size:15px;font-weight:bold;margin-bottom:8px} 300 .product-card-dynamic .product-dynamic-desc{color:#CCC;font-size:12px;margin-bottom:8px;line-height:1.5} 301 .product-card-dynamic .product-dynamic-price{color:#FFAA66;font-size:14px;font-weight:bold;margin-bottom:10px} 302 .product-card-dynamic .product-add-cart-btn{display:inline-block;padding:6px 16px;background-color:#5A5;border:2px solid;border-top-color:#FFF;border-left-color:#FFF;border-right-color:#000;border-bottom-color:#000;color:#FFF;cursor:pointer;font-family:'Amiga4Ever',monospace;font-size:12px} 303 .product-card-dynamic .product-add-cart-btn:hover{background-color:#6C6} 304 .product-slider{position:relative;display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:10px} 305 .product-slider img{width:100%;max-width:200px;max-height:200px;object-fit:contain;border:1px solid #555} 306 .product-slider .slider-btn{position:absolute;top:50%;transform:translateY(-50%);background:rgba(0,0,0,0.7);color:#FFF;border:1px solid #FFF;cursor:pointer;font-size:16px;width:26px;height:26px;text-align:center;line-height:24px;z-index:2} 307 .product-slider .slider-btn.prev{left:20px}.product-slider .slider-btn.next{right:20px} 308 #admin-pass-products-modal-overlay,#admin-pass-discussion-modal-overlay{display:none;position:fixed;top:0;left:0;width:100vw;height:100vh;background-color:rgba(0,0,0,0.85);z-index:10005;justify-content:center;align-items:center} 309 #admin-pass-products-modal-overlay.active,#admin-pass-discussion-modal-overlay.active{display:flex} 310 #admin-pass-products-modal,#admin-pass-discussion-modal{background-color:#0000AA;border:2px solid #FFF;padding:20px;width:380px;max-width:90vw;box-shadow:4px 4px 0 rgba(0,0,0,0.5)} 311 #admin-pass-products-modal input,#admin-pass-discussion-modal input{width:100%;margin-bottom:8px;background:#111;border:1px solid #FFF;color:#FFF;font-family:'Amiga4Ever',monospace;font-size:14px;padding:10px;letter-spacing:2px} 312 #admin-pass-products-modal .modal-buttons,#admin-pass-discussion-modal .modal-buttons{display:flex;justify-content:flex-end;gap:10px;margin-top:10px} 313 #admin-pass-products-modal .modal-btn,#admin-pass-discussion-modal .modal-btn{padding:8px 20px;border:2px solid;border-top-color:#FFF;border-left-color:#FFF;border-right-color:#000;border-bottom-color:#000;background-color:#888;color:#FFF;cursor:pointer;font-family:'Amiga4Ever',monospace;font-size:13px} 314 #product-admin-modal-overlay{display:none;position:fixed;top:0;left:0;width:100vw;height:100vh;background-color:rgba(0,0,0,0.85);z-index:10005;justify-content:center;align-items:center} 315 #product-admin-modal-overlay.active{display:flex} 316 #product-admin-modal{background-color:#0000AA;border:2px solid #FFF;padding:20px;width:480px;max-width:90vw;max-height:85vh;overflow-y:auto;box-shadow:4px 4px 0 rgba(0,0,0,0.5)} 317 #product-admin-modal input,#product-admin-modal textarea{width:100%;margin-bottom:10px;background:#111;border:1px solid #FFF;color:#FFF;font-family:'Amiga4Ever',monospace;font-size:13px;padding:8px} 318 #product-admin-modal textarea{height:80px;resize:vertical} 319 #product-confirm-modal-overlay{display:none;position:fixed;top:0;left:0;width:100vw;height:100vh;background-color:rgba(0,0,0,0.85);z-index:10006;justify-content:center;align-items:center} 320 #product-confirm-modal-overlay.active{display:flex} 321 #product-confirm-modal{background-color:#0000AA;border:2px solid #FFF;padding:25px;width:380px;max-width:90vw;text-align:center;box-shadow:4px 4px 0 rgba(0,0,0,0.5)} 322 .cart-notification,.comment-notification{position:fixed;top:20px;left:50%;transform:translateX(-50%);color:#FFF;padding:12px 25px;border:2px solid #FFF;font-family:'Amiga4Ever',monospace;font-size:14px;z-index:20000;box-shadow:4px 4px 0 rgba(0,0,0,0.5);animation:notificationFade 2s forwards;pointer-events:none} 323 .cart-notification{background-color:#5A5}.comment-notification{background-color:#0088FF} 324 @keyframes notificationFade{0%{opacity:0;top:0}15%{opacity:1;top:20px}75%{opacity:1;top:20px}100%{opacity:0;top:0}} 325 input,textarea,select{user-select:text!important;pointer-events:auto!important;-webkit-user-select:text!important} 326 .emu-launch-btn-new{display:block;width:260px;margin:50px auto 0;padding:12px 20px;background-color:#AA00FF;border:3px solid #FF5500;border-radius:4px;cursor:pointer;font-family:'Amiga4Ever',monospace;font-size:14px;color:#FFF;text-align:center;text-shadow:0 0 8px rgba(255,255,255,0.6);letter-spacing:1px;animation:neon-border-emu 3s infinite;text-decoration:none} 327 .emu-launch-btn-new:hover{animation:neon-border-emu 0.5s infinite;text-shadow:0 0 15px #FFF} 328 @keyframes neon-border-emu{0%{border-color:#FF5500;box-shadow:0 0 12px #FF5500,inset 0 0 8px rgba(255,85,0,0.3)}25%{border-color:#FFFFFF;box-shadow:0 0 16px #FFFFFF,inset 0 0 10px rgba(255,255,255,0.3)}50%{border-color:#FFD700;box-shadow:0 0 16px #FFD700,inset 0 0 10px rgba(255,215,0,0.4)}75%{border-color:#888888;box-shadow:0 0 12px #CCCCCC,inset 0 0 8px rgba(136,136,136,0.3)}100%{border-color:#FF5500;box-shadow:0 0 12px #FF5500,inset 0 0 8px rgba(255,85,0,0.3)}} 329 .bazaar-shop-card{background-color:rgba(0,0,0,0.4);border:2px solid rgba(255,170,0,0.3);padding:15px;text-align:center;cursor:pointer;transition:all 0.2s;margin-bottom:15px;overflow:hidden} 330 .bazaar-shop-card:hover{border-color:#FFAA00;background-color:rgba(0,0,0,0.6);box-shadow:0 0 15px rgba(255,170,0,0.2)} 331 .bazaar-shop-card img{width:auto;max-width:100%;height:auto;max-height:390px;object-fit:contain;display:block;margin:0 auto 12px;border:1px solid #555} 332 .bazaar-shop-card .shop-name{color:#FFAA66;font-size:14px;font-weight:bold;margin-top:8px} 333 .about-contact-btn{display:inline-block;margin-top:20px;padding:8px 22px;background-color:#0088CC;color:#FFF;border:2px solid;border-top-color:#00AAFF;border-left-color:#00AAFF;border-right-color:#004466;border-bottom-color:#004466;cursor:pointer;font-family:'Amiga4Ever',monospace;font-size:13px;text-decoration:none;text-align:center;letter-spacing:1px;transition:all 0.2s} 334 .about-contact-btn:hover{background-color:#00AAFF;text-shadow:0 0 8px rgba(255,255,255,0.5);border-top-color:#00CCFF;border-left-color:#00CCFF} 335 @media(max-width:768px){#top-white-bar{font-size:14px;padding:0 10px}.desktop-icon{width:85px;padding:8px 4px;margin-bottom:15px}.icon-label{font-size:10px}.window{min-width:220px!important;min-height:33px!important;max-width:95vw!important;max-height:75vh!important}.window:not(.minimized){min-height:160px!important}.window-header{padding:5px 10px 3px 10px;font-size:13px}#footer{font-size:10px;padding:0 10px}#footer-right{font-size:12px}.content-text{gap:15px;padding:15px}.cart-buttons{flex-direction:column}.product-image-placeholder{height:200px}
335#retro-tv-container{width:200px;top:30px;right:15px}#retro-tv-screen{height:135px}#retro-tv-label{font-size:10px}#retro-tv-antenna{width:50px;height:26px;top:-22px}.antenna-left,.antenna-right{height:24px}.antenna-left{left:16px}.antenna-right{right:16px}#amiga-player{width:200px;top:260px;right:15px;height:80px;padding:6px 8px}#player-display{height:20px}#player-marquee{font-size:10px;line-height:16px}.player-btn{width:30px;height:30px}#online-game-banner{width:200px;top:400px;right:15px;height:40px;font-size:10px}#right-icon-panel{width:160px;top:500px;right:15px;padding:10px 8px;gap:10px}.right-panel-item{height:44px}.right-panel-label{font-size:10px}.right-panel-display{height:22px}#discussion-icon-panel{width:160px;top:720px;right:15px}.discussion-panel-item{height:44px}.discussion-panel-label{font-size:9px}.discussion-panel-display{height:22px}#retro-bazaar-icon{width:160px;top:806px;right:15px;height:65px}#retro-bazaar-icon .bazaar-label{font-size:15px}#amiga-emu-banner{width:200px;height:40px;font-size:11px}#amiga-apps-banner,#amiga-games-banner{width:140px;height:40px;font-size:10px}#tv-lightbox-video{max-width:95vw;max-height:60vh}.bandcamp-logo-img{width:50px;height:50px}.cart-notification,.comment-notification{font-size:12px;padding:10px 20px}#boot-window{width:95vw!important;min-height:auto;height:auto}#boot-cli{font-size:10px;padding:12px}#fast-load-btn{font-size:11px;padding:8px 18px}#splash-screen img{max-width:85vw;max-height:65vh}#splash-btn{font-size:12px;padding:10px 22px}.book-badge{width:100px;height:36px}.bb-line1{font-size:9px}.bb-line2{font-size:7px}} 336 @media(max-width:480px){.desktop-icon{width:75px;padding:6px 3px}.icon-img{width:45px;height:45px}.icon-label{font-size:9px}
336.window{min-width:200px!important;min-height:33px!important;max-width:92vw!important}.window:not(.minimized){min-height:140px!important}#retro-tv-container{width:150px;top:25px;right:8px}#retro-tv-screen{height:100px}#retro-tv-label{font-size:9px}#retro-tv-antenna{width:40px;height:20px;top:-18px}.antenna-left,.antenna-right{height:18px}.antenna-left{left:12px}.antenna-right{right:12px}#amiga-player{width:150px;top:185px;right:8px;height:70px;padding:4px 6px}#player-display{height:18px}#player-marquee{font-size:8px;line-height:14px}.player-btn{width:26px;height:26px}#player-controls{gap:10px}#online-game-banner{width:150px;top:305px;right:8px;height:35px;font-size:9px;border-width:2px}#right-icon-panel{width:120px;top:385px;right:8px;padding:8px 6px;gap:8px}.right-panel-item{height:36px}.right-panel-label{font-size:8px}.right-panel-display{height:18px}#discussion-icon-panel{width:120px;top:570px;right:8px}.discussion-panel-item{height:36px}.discussion-panel-label{font-size:7px}.discussion-panel-display{height:18px}#retro-bazaar-icon{width:120px;top:636px;right:8px;height:55px}#retro-bazaar-icon .bazaar-label{font-size:13px}#amiga-emu-banner{width:150px;height:35px;font-size:9px;border-width:2px}#amiga-apps-banner,#amiga-games-banner{width:105px;height:35px;font-size:8px;border-width:2px}.bandcamp-logo-img{width:45px;height:45px}.cart-notification,.comment-notification{font-size:11px;padding:8px 15px}#boot-window{width:95vw!important;min-height:auto;height:auto}#boot-cli{font-size:8px;padding:10px;line-height:1.3}#fast-load-btn{font-size:10px;padding:6px 14px}#splash-screen img{max-width:90vw;max-height:60vh}#splash-btn{font-size:11px;padding:8px 18px}.book-badge{width:90px;height:34px}.bb-line1{font-size:8px}.bb-line2{font-size:6px}} 337 </style> 338</head> 339<body> 340<div id="splash-screen"> 341 <img src="https://raw.githubusercontent.com/silverspark-ir/Amigastore/main/tasviir%20workbench.jpg" alt="Amiga Kickstart"> 342 <div id="splash-btn" onclick="startBoot()">Load Workbench 1.3</div> 343</div> 344<div id="boot-screen"> 345 <div id="boot-window"> 346 <div id="boot-titlebar">CLI - Amiga 500 Workbench 1.3</div> 347 <div id="boot-cli"></div> 348 <div id="fast-load-btn" onclick="skipBoot()">Fast Loading</div> 349 </div> 350</div> 351<div id="main-container"> 352<div id="workbench-container"> 353 <div id="top-white-bar"><div id="workbench-title">Workbench 1.3</div><div id="lang-toggle-header" onclick="toggleLanguage()">ÙØ§Ø±Ø³Û</div><div id="articles-toggle" onclick="toggleArticlesMenu()" data-lang-key="articles_btn">Articles</div></div> 354 <div id="articles-menu"> 355 <div class="article-item" onclick="openArticle(1)">ØªØ§Ø±ÛØ®ÚÙ Amiga 500</div> 356 <div class="article-item" onclick="openArticle(2)">راÙÙÙ Ø§Û Workbench 1.3</div> 357 <div class="article-item" onclick="openArticle(3)">Ø§Ø±ØªÙØ§Ø¡ Ø¢Ù Ûگا Û¶Û°Û°</div> 358 <div class="article-item" onclick="openArticle(4)">ÙÚ¯ÙØ¯Ø§Ø±Û Ø³Ø®ØªâØ§ÙØ²Ø§Ø±</div> 359 <div class="article-item" onclick="openArticle(5)">Ù¾Ø§ÛØ§Ù Ú©Ù ÙØ¯Ùر Û±Û²Û¸</div> 360 <div class="article-item" onclick="openArticle(6)">ØªØ±Ø§Ø´Ù Ø¢Ú¯ÙØ³</div> 361 <div class="article-item" onclick="openArticle(7)">Ø¢ØªØ§Ø±Û Û²Û¶Û°Û°</div> 362 <div class="article-item" onclick="openArticle(8)">ØªØ§Ø±ÛØ®ÚÙ Ú©Ù ÙØ¯Ùر Û¶Û´</div> 363 <div class="article-item" onclick="openArticle(9)">Ø³Ø®ØªâØ§ÙØ²Ø§Ø± Ú©Ù ÙØ¯Ùر Û¶Û´</div> 364 <div class="article-item" onclick="openArticle(10)">Ø®Ø±ÛØ¯ Ø¢Ù Ûگا ÛµÛ°Û° دست دÙÙ </div> 365 <div class="article-item" onclick="openArticle(11)">ØªØ§Ø±ÛØ®Ú٠آ٠Ûگا Û±Û²Û°Û°</div> 366 </div> 367 <div id="desktop"> 368 <div id="retro-tv-container"><div id="retro-tv-frame"><div id="retro-tv-antenna"><div class="antenna-left"><div class="antenna-ball"></div></div><div class="antenna-right"><div class="antenna-ball"></div></div></div><div id="retro-tv-screen"><canvas id="tv-noise-canvas"></canvas><div id="retro-tv-play-overlay"></div></div><div id="retro-tv-label" data-lang-key="tv_click_label">Ø¨Ø±Ø§Û ØªÙ Ø§Ø´Ø§ Ú©ÙÛÚ© Ú©ÙÛØ¯ â</div></div><div id="tv-click-overlay" onclick="openTvLightbox()"></div></div> 369 <div id="amiga-player"><div id="player-display"><div id="player-marquee">Bitstream Odyssey is the manifestation of an instrumental sonic universe; a realm where cyberpunk glimmers and synthwave pulses paint pixelated memories upon the canvas of time. This album invites you to explore the hidden layers of data and encounter the beauty of digital forms...... The complete version of this memorable work has been produced as a physical cassette tape by c64spark and released in 2025</div></div>
369<div id="player-controls"><div class="player-btn" id="btn-prev" onmousedown="startHold('prev')" onmouseup="stopHold()" onmouseleave="stopHold()" ontouchstart="startHold('prev')" ontouchend="stopHold()"><div class="prev-icon"></div></div><div class="player-btn play-btn" id="btn-play" onclick="togglePlay()"><div class="play-icon"></div></div><div class="player-btn" id="btn-next" onmousedown="startHold('next')" onmouseup="stopHold()" onmouseleave="stopHold()" ontouchstart="startHold('next')" ontouchend="stopHold()"><div class="next-icon"></div></div></div><audio id="music-player" preload="none" loop><source src="https://raw.githubusercontent.com/silverspark-ir/Amigastore/main/Bitstream%20Odyssey%20%20-%20%20side%20B%20%20-%20%20part%20A.mp3" type="audio/mpeg"></audio></div> 370 <div id="online-game-banner" onclick="handleBannerClick()"></div> 371 <div id="right-icon-panel"> 372 <div class="right-panel-item" onclick="navigateTo('/about')"><div class="right-panel-display"><span class="right-panel-label">About Me</span></div></div> 373 <div class="right-panel-item" onclick="navigateTo('/blog')"><div class="right-panel-display"><span class="right-panel-label">Blog</span></div></div> 374 <div class="right-panel-item" onclick="navigateTo('/email')"><div class="right-panel-display"><span class="right-panel-label">Send Email</span></div></div> 375 </div> 376 <div id="discussion-icon-panel"><div class="discussion-panel-item" onclick="navigateTo('/discussion')"><div class="discussion-panel-display"><span class="discussion-panel-label" data-lang-key="discussion_label">دÙÛØ§Û تکÙÙÙÙÚÛ</span></div></div></div> 377 <div id="retro-bazaar-icon" onclick="navigateTo('/bazaar')"><span class="bazaar-label" data-lang-key="bazaar_label">Ù¾Ø§Ø³Ø§Ú Ø±ØªØ±Ù</span></div> 378 <a href="#" class="book-badge" id="bookBadge" onclick="openBookListWindow();return false;"><div class="bb-rainbow"></div><div class="bb-scan"></div><div class="bb-slide active"></div><div class="bb-slide"></div><div class="bb-slide"></div><div class="bb-slide"></div><div class="bb-slide"></div><div class="bb-slide"></div><div class="bb-slide"></div><div class="bb-text"><div class="bb-line1" id="bbLine1">Home Computers</div><div class="bb-line2" id="bbLine2">The 1980s</div></div></a> 379 <div class="desktop-icon" id="icon-project" onclick="navigateTo('/products')"><svg class="icon-img" viewBox="0 0 32 32"><rect x="4" y="4" width="24" height="24" fill="#FFF" stroke="#00A" stroke-width="2"/><rect x="8" y="8" width="16" height="16" fill="#888" stroke="#00A" stroke-width="1"/><rect x="12" y="12" width="8" height="8" fill="#FFF"/><rect x="10" y="22" width="12" height="2" fill="#00A"/></svg><div class="icon-label" data-lang-key="icon_products">Products.info</div></div> 380 <div class="desktop-icon" id="icon-bandcamp" onclick="handleBandcampClick()"><img src="https://raw.githubusercontent.com/silverspark-ir/Amigastore/main/c64spark.ir%20logo.png" class="icon-img" id="bandcamp-icon-img" alt="bandcamp"><div class="icon-label" id="bandcamp-icon-label">bandcamp</div></div> 381 <div class="desktop-icon market-icon-glow" id="icon-market" onclick="openMarketAccessModal()"><svg class="icon-img" viewBox="0 0 32 32"><rect x="3" y="8" width="26" height="18" rx="2" fill="#FFF" stroke="#00A" stroke-width="1.5"/><rect x="5" y="10" width="3" height="2.5" fill="#888" rx=".5"/><rect x="9" y="10" width="3" height="2.5" fill="#888" rx=".5"/><rect x="13" y="10" width="3" height="2.5" fill="#888" rx=".5"/><rect x="17" y="10" width="3" height="2.5" fill="#888" rx=".5"/><rect x="21" y="10" width="3" height="2.5" fill="#888" rx=".5"/><rect x="6" y="13.5" width="3" height="2.5" fill="#F50" rx=".5"/><rect x="10" y="13.5" width="3" height="2.5" fill="#888" rx=".5"/><rect x="14" y="13.5" width="3" height="2.5" fill="#888" rx=".5"/><rect x="18" y="13.5" width="3" height="2.5" fill="#888" rx=".5"/><rect x="22" y="13.5" width="3" height="2.5" fill="#F50" rx=".5"/><rect x="7" y="17" width="3" height="2.5" fill="#888" rx=".5"/><rect x="11" y="17" width="3" height="2.5" fill="#F50" rx=".5"/><rect x="15" y="17" width="3" height="2.5" fill="#888" rx=".5"/><rect x="19" y="17" width="3" height="2.5" fill="#F50" rx=".5"/><rect x="8" y="20.5" width="14" height="2.5" fill="#888" rx=".5"/><rect x="22" y="20" width="6" height="5" rx="1" fill="#F96" stroke="#00A" stroke-width=".8"/><text x="25" y="24" text-anchor="middle" font-size="4" fill="#00A" font-family="monospace" font-weight="bold">IRR</text></svg><div class="icon-label" data-lang-key="icon_market">Ø¢Ú¯ÙÛ Ø±Ø§ÛگاÙ</div></div> 382 <div class="desktop-icon" id="icon-cart" onclick="navigateTo('/cart')"><svg class="icon-img" viewBox="0 0 32 32"><circle cx="12" cy="24" r="2" fill="#FFF" stroke="#00A" stroke-width="1"/><circle cx="22" cy="24" r="2" fill="#FFF" stroke="#00A" stroke-width="1"/><path d="M6,8 L10,8 L12,20 L22,20 L24,8 L28,8" fill="none" stroke="#FFF" stroke-width="2"/><rect x="10" y="8" width="14" height="12" fill="none" stroke="#FFF" stroke-width="1"/><rect x="12" y="10" width="4" height="3" fill="#F50"/><rect x="18" y="10" width="4" height="3" fill="#F50"/></svg><div class="icon-label" data-lang-key="icon_cart">Shopping Cart</div></div> 383 <div class="desktop-icon" id="icon-tutorials" onclick="navigateTo('/tutorials')"><svg class="icon-img" viewBox="0 0 32 32"><rect x="4" y="4" width="24" height="24" fill="#FFF" stroke="#00A" stroke-width="2"/><rect x="7" y="7" width="18" height="3" fill="#00A"/><rect x="7" y="12" width="14" height="2" fill="#888"/><rect x="7" y="16" width="16" height="2" fill="#888"/><rect x="7" y="20" width="10" height="2" fill="#888"/><polygon points="20,20 26,22 20,24" fill="#F50"/></svg><div class="icon-label" data-lang-key="icon_tutorials">Tutorials</div></div> 384 <div id="amiga-emu-banner" onclick="navigateTo('/emulator')" style="margin-top:25px;">Amiga emulator online</div> 385 <div id="amiga-apps-banner" onclick="navigateTo('/apps')">Amiga apps ADF</div> 386 <div id="amiga-games-banner" onclick="navigateTo('/games')">Amiga games ADF</div> 387 </div> 388 <div id="footer"><div id="footer-left">AmigaStore.ir © 2026 c64spark</div><div id="footer-right">00:00:00</div></div> 389</div> 390</div> 391<div id="tv-lightbox"><div id="tv-lightbox-close" onclick="closeTvLightbox()">â</div><video id="tv-lightbox-video" autoplay loop muted playsinline><source src="https://raw.githubusercontent.com/silverspark-ir/Amigastore/main/demo%20c64spark.mp4" type="video/mp4"></video></div> 392<div id="code-modal-overlay"><div id="code-modal"><div class="modal-hint" data-lang-key="code_hint">ÙØ·Ùا٠کد عضÙÛØª Ø®ÙØ¯ را ÙØ§Ø±Ø¯ Ú©ÙÛØ¯</div><input type="text" id="code-input" placeholder="کد عضÙÛØª..." maxlength="20"><div class="modal-buttons"><div class="modal-btn cancel" onclick="closeCodeModal()">Ø§ÙØµØ±Ø§Ù</div><div class="modal-btn send" onclick="verifyCode()">تأÛÛØ¯</div></div></div></div> 393<div id="market-access-modal-overlay"><div id="market-access-modal"><div class="modal-hint">Ø¯Ø³ØªØ±Ø³Û Ø¨Ù Ø¢Ú¯ÙÛ Ø±Ø§ÛگاÙ</div><div class="market-access-text">بخش Ø¢Ú¯ÙÛ Ø±Ø§Ûگا٠ÛÚ© بازار ØªØ®ØµØµÛ Ø¨Ø±Ø§Û ÙØ¹Ø§ÙØ§Ù Ø¬Ø¯Û Ø¯ÙÛØ§Û رترÙکا٠پÛÙØªØ± است. Ø¨Ø±Ø§Û ØÙظ Ú©ÛÙÛØª ٠اعتبار اÛÙ ÙØ¶Ø§Ø ÙØ±Ùد ÙÙØ· با کد عضÙÛØª ا٠کاÙâÙ¾Ø°ÛØ± است. اگر Ø®Ø±ÛØ¯Ø§Ø±Ø ÙØ±ÙØ´ÙØ¯ÙØ ØªØ¹Ù ÛØ±Ú©Ø§Ø± ÛØ§ Ù Ø¬Ù ÙØ¹ÙâØ¯Ø§Ø± ÙØ³ØªÛد ٠٠اÛÙ Ø¨Ù ÙØ¹Ø§ÙÛØª در اÛ٠بازار ÙØ³ØªÛØ¯Ø Ø§Ø² طرÛ٠اÛÙ ÛÙ Ø¯Ø±Ø®ÙØ§Ø³Øª Ø®ÙØ¯ را ارسا٠کÙÛØ¯.</div><input type="text" id="market-access-code-input" placeholder="کد Û±Û° رÙÙ Û..." maxlength="10"><div class="modal-buttons"><div class="modal-btn request" onclick="requestMarketAccess()">ثبت Ø¯Ø±Ø®ÙØ§Ø³Øª</div><div class="modal-btn send" onclick="verifyMarketAccessCode()">ÙØ±Ùد با کد</div><div class="modal-btn cancel" onclick="closeMarketAccessModal()">Ø§ÙØµØ±Ø§Ù</div></div></div></div> 394<div id="news-submit-modal-overlay"><div id="news-submit-modal"><div class="modal-hint" id="news-submit-modal-hint">ÙØ±Ù ثبت خبر</div><input type="text" id="news-image1" placeholder="ÙÛÙÚ© تصÙÛØ± Û± *" maxlength="300"><input type="text" id="news-image2" placeholder="ÙÛÙÚ© تصÙÛØ± Û² (Ø§Ø®ØªÛØ§Ø±Û)" maxlength="300"><input type="text" id="news-image3" placeholder="ÙÛÙÚ© تصÙÛØ± Û³ (Ø§Ø®ØªÛØ§Ø±Û)" maxlength="300"><input type="text" id="news-title" placeholder="Ù ÙØ¶Ùع ÙØ§Ø±Ø³Û *" maxlength="200"><textarea id="news-body" placeholder="ØªÙØ¶ÛØØ§Øª ÙØ§Ø±Ø³Û *" maxlength="3000"></textarea><input type="text" id="news-title-en" placeholder="English Title (Optional)" maxlength="200"><textarea id="news-body-en" placeholder="English Body (Optional)" maxlength="3000"></textarea><input type="text" id="news-source" placeholder="ÙÛÙÚ© Ù ÙØ¨Ø¹ (Ø§Ø®ØªÛØ§Ø±Û)" maxlength="300"><div class="modal-buttons"><div class="modal-btn cancel" onclick="closeNewsSubmitModal()">Ø§ÙØµØ±Ø§Ù</div><div class="modal-btn send" id="news-submit-btn" onclick="submitNews()">ثبت</div></div></div></div> 395<div id="team-apply-modal-overlay"><div id="team-apply-modal"><div class="modal-hint" data-lang-key="team_apply_hint">ÙØ±Ù Ø¯Ø±Ø®ÙØ§Ø³Øª عضÙÛØª در تÛ٠خبرÛ</div><input type="text" id="team-email" placeholder="اÛÙ ÛÙ *" maxlength="100"><input type="text" id="team-name" placeholder="ÙØ§Ù Ù ÙØ§Ù خاÙÙØ§Ø¯Ú¯Û *" maxlength="100"><input type="text" id="team-phone" placeholder="ش٠ار٠ت٠اس *" maxlength="11"><input type="text" id="team-photo" placeholder="ÙÛÙÚ© عکس خبرÙگار *" maxlength="300"><div class="modal-buttons"><div class="modal-btn cancel" onclick="closeTeamApplyModal()">Ø§ÙØµØ±Ø§Ù</div><div class="modal-btn send" id="team-apply-btn" onclick="submitTeamApplication()">ثبت Ø¯Ø±Ø®ÙØ§Ø³Øª عضÙÛØª</div></div></div></div> 396<div id="shop-modal-overlay"><div id="shop-modal"><div class="modal-hint">Ø§Ø·ÙØ§Ø¹Ø§Øª ÙØ±ÙØ´Ú¯Ø§Ù Ø®ÙØ¯ را ÙØ§Ø±Ø¯ Ú©ÙÛØ¯</div><input type="text" id="shop-owner-name" placeholder="ÙØ§Ù Ù ÙØ§Ù خاÙÙØ§Ø¯Ú¯Û" maxlength="80"><input type="text" id="shop-owner-phone" placeholder="Ø´Ù Ø§Ø±Ù Ù ÙØ¨Ø§ÛÙ (09xxxxxxxxx)" maxlength="11"><input type="text" id="shop-name" placeholder="ÙØ§Ù ÙØ±ÙشگاÙ" maxlength="100"><select id="shop-category"><option value="">ØÙØ²Ù ÙØ¹Ø§ÙÛØª</option><option value="retrocomputing">رترÙکا٠پÛÙØªØ±</option><option value="modern-consoles">Ú©ÙØ³ÙÙâÙØ§Û ٠درÙ</option><option value="electronics">اÙکترÙÙÛÚ©</option><option value="hardware">Ø³Ø®ØªâØ§ÙØ²Ø§Ø±</option><option value="software">ÙØ±Ù âØ§ÙØ²Ø§Ø±</option><option value="repair">ØªØ¹Ù ÛØ±Ø§Øª تخصصÛ</option><option value="other">Ø³Ø§ÛØ±</option></select><textarea id="shop-description" placeholder="ØªÙØ¶ÛØØ§Øª" style="height:80px;resize:vertical;" maxlength="1000"></textarea><input type="text" id="shop-website" placeholder="آدرس ÙØ¨Ø³Ø§Ûت Ø´Ø®ØµÛ (اگر ÙØ¯Ø§Ø±Ûد ÚÛØ²Û ÙÙÙÛØ³Ûد)" maxlength="300"><input type="text" id="shop-logo" placeholder="ÙÛÙÚ© ٠ستÙÛÙ ÙÙÚ¯ÙÛ ÙØ±ÙشگاÙ" maxlength="300"><div class="modal-buttons"><div class="modal-btn send" id="shop-send-btn" onclick="submitShopRequest()">Ø§Ø±Ø³Ø§Ù Ø¯Ø±Ø®ÙØ§Ø³Øª</div><div class="modal-btn cancel" onclick="closeShopModal()">بازگشت</div></div><div class="shop-modal-hint">ÙÙÚ¯ÙÛ ÙØ±ÙØ´Ú¯Ø§Ù Ø®ÙØ¯ را در ÙØ¨Ø³Ø§Ûت imgurl.ir آپÙÙØ¯ Ú©ÙÛØ¯Ø Ù ÙÛÙÚ© ٠ستÙÛ٠تصÙÛØ± آپÙÙØ¯ شد٠را در ÙÛÙØ¯ Ù Ø±Ø¨ÙØ·Ù Ú©Ù¾Û Ú©ÙÛØ¯.</div></div></div> 397<div id="success-alert-overlay"><div id="success-alert"><div class="alert-icon">â</div><div class="alert-text" id="success-alert-text">با Ù ÙÙÙÛØª ثبت شد.</div><div class="alert-btn" onclick="closeSuccessAlert()">باشÙ</div></div></div> 398<div id="ad-lightbox"><div id="ad-lightbox-content"></div><div class="ad-lightbox-close" onclick="closeAdLightbox()">â</div></div> 399<div id="ad-submit-modal-overlay"><div id="ad-submit-modal"><div class="modal-hint">ÙØ±Ù ثبت Ø¢Ú¯ÙÛ Ø±Ø§ÛگاÙ</div><input type="text" id="ad-subject" placeholder="Ù ÙØ¶Ùع *" maxlength="100"><textarea id="ad-description" placeholder="ØªÙØ¶ÛØØ§Øª *" maxlength="1000"></textarea><input type="text" id="ad-name" placeholder="ÙØ§Ù Ù ÙØ§Ù خاÙÙØ§Ø¯Ú¯Û *" maxlength="80"><input type="text" id="ad-phone" placeholder="ش٠ار٠ت٠اس * (09xxxxxxxxx)" maxlength="11"><input type="text" id="ad-province" placeholder="استا٠*" maxlength="50"><input type="text" id="ad-image1" class="market-link-input" placeholder="ÙÛÙÚ© تصÙÛØ± Û± *" maxlength="300"><input type="text" id="ad-image2" class="market-link-input" placeholder="ÙÛÙÚ© تصÙÛØ± Û² *" maxlength="300"><input type="text" id="ad-image3" class="market-link-input" placeholder="ÙÛÙÚ© تصÙÛØ± Û³ *" maxlength="300"><div class="upload-hint">Ø¨Ø±Ø§Û Ø¢Ù¾ÙÙØ¯ تصاÙÛØ± Ø¢Ú¯ÙÛ Ø®ÙØ¯ از ÙØ¨Ø³Ø§Ûت <a onclick="openUploadKon();event.stopPropagation();" style="text-decoration:underline;cursor:pointer;">UploadKon.ir</a> Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛØ¯. ÙÛÙÚ© تصاÙÛØ± Ø¨Ø§ÛØ¯ با <span style="color:#FFF;font-size:10px;">https://uploadkon.ir/uploads/</span> Ø´Ø±ÙØ¹ Ø´ÙØ¯.</div><div class="modal-buttons"><div class="modal-btn send" onclick="submitNewAd()">ارسا٠آگÙÛ</div><div class="modal-btn cancel" onclick="closeAdSubmitModal()">Ø§ÙØµØ±Ø§Ù</div></div></div></div> 400<div class="window" id="window-uploadkon"><div class="window-header"><div class="window-title-container"><div class="window-title">UploadKon.ir</div><div class="parallel-lines"></div></div><div class="window-controls"><div class="window-btn" onclick="toggleMinimize('window-uploadkon')">_</div><div class="window-btn close" onclick="closeWindow('window-uploadkon')">X</div></div></div><div class="window-content no-padding"><iframe src="https://uploadkon.ir" title="UploadKon.ir"></iframe></div><div class="resize-handle"></div></div> 401<div class="window" id="window-book-list"><div class="window-header"><div class="window-title-container"><div class="window-title">Amazing Computers of the 1980s</div><div class="parallel-lines"></div></div><div class="window-controls"><div class="window-btn" onclick="toggleMinimize('window-book-list')">_</div><div class="window-btn close" onclick="closeWindow('window-book-list')">X</div></div></div><div class="window-content no-padding"><iframe src="https://amigastore.ir/book-list.html" title="Amazing Computers of the 1980s"></iframe></div><div class="resize-handle"></div></div> 402<div class="window" id="window-tutorials"><div class="window-header"><div class="window-title-container"><div class="window-title" data-lang-key="win_tutorials">Tutorials</div><div class="parallel-lines"></div></div><div class="window-controls"><div class="window-btn" onclick="toggleMinimize('window-tutorials')">_</div><div class="window-btn close" onclick="closeWindow('window-tutorials')">X</div></div></div><div class="window-content"><div class="article-content"><div class="article-title" data-lang-key="win_tutorials">Tutorials</div><div style="text-align:center;padding:15px 0;"><div class="tutorial-card" onclick="openForthWindow()" style="display:inline-block;cursor:pointer;border:2px solid #FFF;background-color:rgba(0,0,0,0.3);padding:8px;max-width:100%;transition:all 0.2s;"><img src="https://cdn.imgurl.ir/uploads/f000974_Screenshot_------_files.fileexorer.jpg" alt="C64-FORTH Tutorial" style="display:block;width:100%;max-width:320px;height:auto;border:1px solid #555;"><div data-lang-key="tutorials_forth_label" style="color:#FFAA66;font-size:14px;font-weight:bold;margin-top:12px;text-align:center;font-family:'Amiga4Ever',monospace;">Complete Commodore FORTH Tutorial</div></div></div></div></div><div class="resize-handle"></div></div>
403<div id="admin-pass-products-modal-overlay"><div id="admin-pass-products-modal"><div class="modal-hint">ÙØ·Ùا٠ر٠ز Ù Ø¯ÛØ±Ûت را ÙØ§Ø±Ø¯ Ú©ÙÛØ¯</div><input type="password" id="admin-password-products-input" placeholder="ر٠ز Û²Û° کاراکترÛ..." maxlength="20"><div class="modal-buttons"><div class="modal-btn cancel" onclick="closeAdminPassProductsModal()">Ø§ÙØµØ±Ø§Ù</div><div class="modal-btn send" onclick="checkAdminPasswordProducts()">تأÛÛØ¯</div></div></div></div> 404<div id="admin-pass-discussion-modal-overlay"><div id="admin-pass-discussion-modal"><div class="modal-hint">ÙØ·Ùا٠ر٠ز Ù Ø¯ÛØ±Ûت را ÙØ§Ø±Ø¯ Ú©ÙÛØ¯</div><input type="password" id="admin-password-discussion-input" placeholder="ر٠ز Û²Û° کاراکترÛ..." maxlength="20"><div class="modal-buttons"><div class="modal-btn cancel" onclick="closeAdminPassDiscussionModal()">Ø§ÙØµØ±Ø§Ù</div><div class="modal-btn send" onclick="checkAdminPasswordDiscussion()">تأÛÛØ¯</div></div></div></div> 405<div id="product-admin-modal-overlay"><div id="product-admin-modal"><div class="modal-hint">Ù Ø¯ÛØ±Ûت Ù ØØµÙÙØ§Øª - ثبت Ù ØØµÙÙ Ø¬Ø¯ÛØ¯</div><input type="text" id="product-name" placeholder="ÙØ§Ù Ù ØØµÙÙ *" maxlength="150"><textarea id="product-description" placeholder="ØªÙØ¶ÛØØ§Øª *" maxlength="1000"></textarea><input type="text" id="product-image1" placeholder="ÙÛÙÚ© تصÙÛØ± Û± *" maxlength="300"><input type="text" id="product-image2" placeholder="ÙÛÙÚ© تصÙÛØ± Û² *" maxlength="300"><input type="text" id="product-image3" placeholder="ÙÛÙÚ© تصÙÛØ± Û³ *" maxlength="300"><input type="text" id="product-price" placeholder="ÙÛ٠ت (ب٠تÙ٠اÙ) *" maxlength="15"><div class="modal-buttons"><div class="modal-btn send" onclick="preSubmitProduct()">ثبت Ù ØØµÙÙ</div><div class="modal-btn cancel" onclick="closeProductAdminModal()">Ø§ÙØµØ±Ø§Ù</div></div></div></div> 406<div id="product-confirm-modal-overlay"><div id="product-confirm-modal"><div class="confirm-text">Ø¢ÛØ§ از ثبت اÛÙ Ù ØØµÙ٠اط٠ÛÙØ§Ù Ø¯Ø§Ø±ÛØ¯Ø</div><div class="modal-buttons"><div class="modal-btn confirm-yes" onclick="finalSubmitProduct()">â ØªØ£ÛÛØ¯</div><div class="modal-btn confirm-no" onclick="closeProductConfirmModal()">â Ø§ÙصراÙ</div></div></div></div> 407<div id="delete-confirm-modal-overlay"><div id="delete-confirm-modal"><div class="confirm-text">Ø¢ÛØ§ از ØØ°Ù اÛ٠خبر اط٠ÛÙØ§Ù Ø¯Ø§Ø±ÛØ¯Ø</div><div class="modal-buttons"><div class="modal-btn confirm-yes" id="delete-confirm-yes-btn">â ØªØ£ÛÛØ¯</div><div class="modal-btn confirm-no" onclick="closeDeleteConfirmModal()">â Ø§ÙصراÙ</div></div></div></div> 408<div class="window" id="window-market"><div class="window-header"><div class="window-title-container"><div class="window-title" data-lang-key="market_title">Ø¢Ú¯ÙÛ Ø±Ø§ÛگاÙ</div><div class="parallel-lines"></div></div><div class="window-controls"><div class="window-btn" onclick="toggleMinimize('window-market')">_</div><div class="window-btn close" onclick="closeWindow('window-market')">X</div></div></div><div class="window-content"><div class="article-content"><div class="article-title" data-lang-key="market_title">Ø¢Ú¯ÙÛ Ø±Ø§ÛگاÙ</div><div class="article-paragraph" data-lang-key="market_intro"></div><div class="article-paragraph disclaimer-text" data-lang-key="market_disclaimer"></div><div class="market-submit-banner" onclick="openAdSubmitModal()" data-lang-key="market_btn">ثبت Ø¢Ú¯ÙÛ Ø±Ø§ÛگاÙ</div><div class="market-ads-box" id="market-ads-container"><div data-lang-key="discussion_loading">در ØØ§Ù Ø¨Ø§Ø±Ú¯Ø°Ø§Ø±Û Ø¢Ú¯ÙÛâÙØ§...</div></div></div></div><div class="resize-handle"></div></div> 409<div class="window" id="window-bandcamp"><div class="window-header"><div class="window-title-container"><div class="window-title">bandcamp</div><div class="parallel-lines"></div></div><div class="window-controls"><div class="window-btn" onclick="toggleMinimize('window-bandcamp')">_</div><div class="window-btn close" onclick="closeWindow('window-bandcamp')">X</div></div></div><div class="window-content no-padding"><iframe src="https://c64spark.bandcamp.com" title="bandcamp"></iframe></div><div class="resize-handle"></div></div> 410<div class="window" id="window-project"><div class="window-header"><div class="window-title-container"><div class="window-title" data-lang-key="win_products">Products.info</div><div class="parallel-lines"></div></div><div class="window-controls"><div class="window-btn manage-btn" onclick="openAdminPassProductsModal()">Ù Ø¯ÛØ±Ûت</div><div class="window-btn" onclick="toggleMinimize('window-project')">_</div><div class="window-btn close" onclick="closeWindow('window-project')">X</div></div></div><div class="window-content"><div class="article-content"><div class="article-title" data-lang-key="products_title">Products Information</div><div class="article-paragraph" data-lang-key="products_desc"></div><div class="products-dynamic-box" id="products-dynamic-container"><div style="text-align:center;padding:15px;color:#888;">در ØØ§Ù Ø¨Ø§Ø±Ú¯Ø°Ø§Ø±Û Ù ØØµÙÙØ§Øª...</div></div></div></div><div class="resize-handle"></div></div> 411<div class="window" id="window-about"><div class="window-header"><div class="window-title-container"><div class="window-title" data-lang-key="win_about">About Me</div><div class="parallel-lines"></div></div><div class="window-controls"><div class="window-btn" onclick="toggleMinimize('window-about')">_</div><div class="window-btn close" onclick="closeWindow('window-about')">X</div></div></div><div class="window-content"><div class="article-content" id="about-content"></div><div id="about-contact" style="text-align:center;margin-top:20px;padding-top:15px;border-top:1px solid rgba(255,255,255,0.3);"></div></div><div class="resize-handle"></div></div> 412<div class="window" id="window-email"><div class="window-header"><div class="window-title-container"><div class="window-title" data-lang-key="win_email">Send Email</div><div class="parallel-lines"></div></div><div class="window-controls"><div class="window-btn" onclick="toggleMinimize('window-email')">_</div><div class="window-btn close" onclick="closeWindow('window-email')">X</div></div></div><div class="window-content"><div class="article-content"><div class="article-title" data-lang-key="email_title">Contact Us via Email</div><div class="article-paragraph" data-lang-key="email_desc"></div><div class="email-form"><textarea id="email-message" class="email-textarea" data-lang-key="email_placeholder" placeholder="Type your message here..." maxlength="3000"></textarea><button id="email-send-btn" class="email-send-btn" onclick="sendEmail()" disabled data-lang-key="email_send">Send</button><div style="clear:both;"></div></div></div></div><div class="resize-handle"></div></div> 413<div class="window" id="window-cart"><div class="window-header"><div class="window-title-container"><div class="window-title" data-lang-key="win_cart">Shopping Cart</div><div class="parallel-lines"></div></div><div class="window-controls"><div class="window-btn" onclick="toggleMinimize('window-cart')">_</div><div class="window-btn close" onclick="closeWindow('window-cart')">X</div></div></div><div class="window-content"><div class="article-content"><div class="article-title" data-lang-key="cart_title">Your Shopping Cart</div><div id="cart-items-container"></div><div id="cart-total-container" class="cart-total"></div><div class="cart-buttons" id="cart-buttons-container"><div class="cart-btn cancel" onclick="closeWindow('window-cart')" data-lang-key="cart_
413cancel">Cancel</div><div class="cart-btn confirm" onclick="showCartInputs()" data-lang-key="cart_confirm">Confirm</div></div><div id="cart-input-section" class="cart-input-section"><div class="cart-input-group"><label class="cart-input-label" data-lang-key="cart_name_label">Full Name:</label><input type="text" id="cart-customer-name" class="cart-input" data-lang-key="cart_name_placeholder" placeholder="Enter your full name" required maxlength="80"></div><div class="cart-input-group"><label class="cart-input-label" data-lang-key="cart_phone_label">Phone Number:</label><input type="number" id="cart-customer-phone" class="cart-input" data-lang-key="cart_phone_placeholder" placeholder="Enter phone number (digits only)" required maxlength="11"></div><div class="cart-input-group"><label class="cart-input-label" data-lang-key="cart_address_label">Address:</label><input type="text" id="cart-customer-address" class="cart-input" data-lang-key="cart_address_placeholder" placeholder="Enter your full address" required maxlength="500"></div><div id="cart-final-buttons" class="cart-final-buttons"><div class="cart-final-btn send" onclick="sendInvoice()">â</div><div class="cart-final-btn cancel-final" onclick="closeWindow('window-cart')">â</div></div></div></div></div><div class="resize-handle"></div></div> 414<div class="window" id="window-blog"><div class="window-header"><div class="window-title-container"><div class="window-title">ÙØ¨Ùاگ | AmigaStore</div><div class="parallel-lines"></div></div><div class="window-controls"><div class="window-btn" onclick="toggleMinimize('window-blog')">_</div><div class="window-btn close" onclick="closeWindow('window-blog')">X</div></div></div><div class="window-content no-padding"><iframe src="https://commodore-amiga.blogfa.com" title="ÙØ¨Ùاگ AmigaStore"></iframe></div><div class="resize-handle"></div></div> 415<div class="window" id="window-emu-guide"><div class="window-header"><div class="window-title-container"><div class="window-title" data-lang-key="emu_guide_title">Amiga Emulator Guide</div><div class="parallel-lines"></div></div><div class="window-controls"><div class="window-btn" onclick="toggleMinimize('window-emu-guide')">_</div><div class="window-btn close" onclick="closeWindow('window-emu-guide')">X</div></div></div><div class="window-content"><div class="article-content"><div class="article-title" data-lang-key="emu_guide_title">Amiga Emulator Guide</div><div class="article-paragraph" data-lang-key="emu_guide_content"></div><a class="emu-launch-btn-new" href="https://vamiganet.github.io" target="_blank" data-lang-key="emu_launch_btn">Launch Amiga Emulator</a></div></div><div class="resize-handle"></div></div> 416<div class="window" id="window-amigaadfs"><div class="window-header"><div class="window-title-container"><div class="window-title">Amiga apps ADF</div><div class="parallel-lines"></div></div><div class="window-controls"><div class="window-btn" onclick="toggleMinimize('window-amigaadfs')">_</div><div class="window-btn close" onclick="closeWindow('window-amigaadfs')">X</div></div></div><div class="window-content no-padding"><iframe src="https://archive.org/download/CommodoreAmigaApplicationsADF" title="Amiga Apps ADF"></iframe></div><div class="resize-handle"></div></div> 417<div class="window" id="window-amigagames"><div class="window-header"><div class="window-title-container"><div class="window-title">Amiga games ADF</div><div class="parallel-lines"></div></div><div class="window-controls"><div class="window-btn" onclick="toggleMinimize('window-amigagames')">_</div><div class="window-btn close" onclick="closeWindow('window-amigagames')">X</div></div></div><div class="window-content no-padding"><iframe src="https://www.freeroms.com/amiga.htm" title="Amiga Games ADF"></iframe></div><div class="resize-handle"></div></div> 418<div class="window" id="window-discussion"><div class="window-header"><div class="window-title-container"><div class="window-title" data-lang-key="discussion_title">دÙÛØ§Û تکÙÙÙÙÚÛ</div><div class="parallel-lines"></div></div><div class="window-controls"><div class="window-btn manage-btn" onclick="openAdminPassDiscussionModal()">Ù Ø¯ÛØ±Ûت</div><div class="window-btn" onclick="toggleMinimize('window-discussion')">_</div><div class="window-btn close" onclick="closeWindow('window-discussion')">X</div></div></div><div class="window-content"><div class="article-content"><div class="article-title" data-lang-key="discussion_title">دÙÛØ§Û تکÙÙÙÙÚÛ</div><div class="article-paragraph" data-lang-key="discussion_intro"></div><div style="text-align:center;margin-top:15px;
418display:flex;gap:15px;justify-content:center;flex-wrap:wrap;"><div class="discussion-submit-banner" onclick="openTeamApplyModal()" data-lang-key="team_apply_btn">Ø¯Ø±Ø®ÙØ§Ø³Øª عضÙÛØª</div><div class="discussion-submit-banner" onclick="openCodeModal()" data-lang-key="submit_news_btn">ثبت خبر</div></div><div class="news-grid" id="news-container"><div style="text-align:center;padding:15px;color:#888;" data-lang-key="news_loading">در ØØ§Ù Ø¨Ø§Ø±Ú¯Ø°Ø§Ø±Û Ø§Ø®Ø¨Ø§Ø±...</div></div></div></div><div class="resize-handle"></div></div> 419<div class="window" id="window-retro-bazaar"><div class="window-header"><div class="window-title-container"><div class="window-title">Ù¾Ø§Ø³Ø§Ú Ø±ØªØ±Ù</div><div class="parallel-lines"></div></div><div class="window-controls"><div class="window-btn" onclick="toggleMinimize('window-retro-bazaar')">_</div><div class="window-btn close" onclick="closeWindow('window-retro-bazaar')">X</div></div></div><div class="window-content"><div class="article-content"><div class="article-title">Ù¾Ø§Ø³Ø§Ú Ø±ØªØ±Ù</div><div class="article-paragraph rtl-text" data-lang-key="bazaar_intro_fa"><p>Ø¨Ù Ù¾Ø§Ø³Ø§Ú Ø±ØªØ±Ù Ø®ÙØ´ Ø¢Ù Ø¯ÛØ¯.</p><p>اÛÙØ¬Ø§ اÙÙÛ٠بازارÚÙ ØªØ®ØµØµÛ Ø±ØªØ±Ù Ù ØªÚ©ÙÙÙÙÚÛ Ø§ÛØ±Ø§Ù است. اگر در ز٠ÛÙ٠کا٠پÛÙØªØ±ÙØ§Û Ú©ÙØ§Ø³ÛÚ©Ø Ú©ÙØ³ÙÙâÙØ§Û ÙØ¯ÛÙ Û Ù Ù Ø¯Ø±ÙØ ÙØ·Ø¹Ø§Øª اÙکترÙÙÛÚ©Ø Ø³Ø®ØªâØ§ÙØ²Ø§Ø±Ø ÙØ±Ù âØ§ÙØ²Ø§Ø±Ø ØªØ¹Ù ÛØ±Ø§Øª ØªØ®ØµØµÛ ÛØ§ ÙØ± ØÙز٠٠رتبط دÛÚ¯Ø±Û ÙØ¹Ø§ÙÛØª Ø¯Ø§Ø±ÛØ¯Ø Ù ÛâØªÙØ§ÙÛØ¯ ÙØ±ÙØ´Ú¯Ø§Ù ØØ±ÙÙâØ§Û Ø®ÙØ¯ را در اÛÙ Ù¾Ø§Ø³Ø§Ú Ø§ÙØªØªØ§Ø Ú©ÙÛØ¯. ØØªÛ اگر ÙØ¨Ø³Ø§Ûت Ø´Ø®ØµÛ ÙÙ Ø¯Ø§Ø´ØªÙ Ø¨Ø§Ø´ÛØ¯Ø Ù ÛâØªÙØ§ÙÛØ¯ در اÛÙ Ù¾ÙØ¬Ø±ÙØ ÙØ¨Ø³Ø§Ûت Ø´Ø®ØµÛ Ø®ÙØ¯ را بÙâØµÙØ±Øª ÛÚ©Û Ø§Ø² Ù¾ÙØ¬Ø±ÙâÙØ§Û Ø²ÙØ¯Ù Workbench Ø¢Ù ÛÚ¯Ø§Ø Ø¯Ø± ٠عرض Ø¨Ø§Ø²Ø¯ÛØ¯Ú©ÙÙØ¯Ú¯Ø§Ù Ù¾Ø§Ø³Ø§Ú Ø±ØªØ±Ù ÙØ±Ø§Ø± دÙÛØ¯.</p><p><strong>ÚÙ Ø®Ø¯Ù Ø§ØªÛ Ø§Ø±Ø§Ø¦Ù Ù ÛâØ¯ÙÛÙ Ø</strong></p><p>⢠غرÙÙ Ø§Ø®ØªØµØ§ØµÛ Ø¨Ø§ ÙØ§Ù Ù ÙÙÚ¯ÙÛ Ø´Ù Ø§<br>⢠درج Ù ØØµÙÙØ§Øª ٠خد٠ات با ÙÛ٠تâگذارÛ<br>⢠ÙÙ Ø§ÛØ´ ÙØ¨Ø³Ø§Ûت Ø´Ø®ØµÛ Ø´Ù Ø§ در ÙØ§Ùب Ù¾ÙØ¬Ø±Ù Ø²ÙØ¯Ù Ø¢Ù Ûگا<br>⢠ÙÛÙÚ© ٠ستÙÛ٠ت٠اس با ش٠ا</p><p>Ø¨Ø±Ø§Û Ø«Ø¨Øª Ø¯Ø±Ø®ÙØ§Ø³ØªØ کاÙÛØ³Øª دک٠٠سبز رÙÚ¯ Ø²ÛØ± را Ù٠س Ú©ÙÛØ¯.</p><div style="background-color:rgba(0,0,0,0.4);border:1px solid rgba(255,170,102,0.4);padding:10px 15px;border-radius:4px;margin-top:15px;font-size:10px;color:#FFAA66;text-align:center;">Ù Ø¯ÛØ±Ûت ÙØ±Ú©Ø¯Ø§Ù از ÙØ±ÙشگاÙâÙØ§Û Ù¾Ø§Ø³Ø§Ú Ø±ØªØ±Ù Ø¨ÙâØ¹ÙØ¯Ù ٠اÙÚ© ÙØ±Ùشگا٠است. Ø¢Ù ÛÚ¯Ø§Ø§Ø³ØªÙØ± ÙÛÚâÚ¯ÙÙ٠٠سئÙÙÛØªÛ در ÙØ¨Ø§Ù Ù ØØªÙØ§Ø Ø®Ø¯Ù Ø§Øª Ù ØªØ¹ÙØ¯Ø§Øª ÙØ±ÙشگاÙâÙØ§ ÙÙ ÛâÙ¾Ø°ÛØ±Ø¯. در ØµÙØ±Øª Ù Ø´Ø§ÙØ¯ÙÙ ÙØ±Ú¯ÙÙ٠تخÙÙØ ÙØ·Ùا٠٠راتب را از طرÛ٠ارسا٠اÛÙ Û٠ب٠[email protected] Ø§Ø·ÙØ§Ø¹ دÙÛØ¯.</div></div><div class="article-paragraph ltr-text" data-lang-key="bazaar_intro_en" style="display:none"><p>This is a domestic marketplace for Iranians. If you offer products or services, please post them in the Free Ads section.</p><div style="background-color:rgba(0,0,0,0.4);border:1px solid rgba(255,170,102,0.4);padding:10px 15px;border-radius:4px;margin-top:15px;font-size:10px;color:#FFAA66;text-align:center;">Each shop in the Retro Bazaar is managed by its respective owner. AmigaStore assumes no responsibility for the content, services, or commitments of any shop. If you notice any violation, please report it via email to [email protected].</div></div><div style="text-align:center;margin-top:20px;"><button class="modal-btn send" style="padding:10px 30px;font-size:14px;font-family:'Amiga4Ever',monospace;background-color:#5A5;color:#FFF;cursor:pointer;" onclick="openShopModal()">ثبت ÙØ±ÙشگاÙ</button></div><div id="bazaar-shops-container" style="margin-top:25px;"></div></div></div><div class="resize-handle"></div></div> 420<div class="window" id="window-shop-retrolab"><div class="window-header"><div class="window-title-container"><div class="window-title">Ù¾Ø§Ø³Ø§Ú Ø±ØªØ±Ù</div><div class="parallel-lines"></div></div><div class="window-controls"><div class="window-btn" onclick="toggleMinimize('window-shop-retrolab')">_</div><div class="window-btn close" onclick="closeWindow('window-shop-retrolab')">X</div></div></div><div class="window-content no-padding"><iframe src="https://retrolab.ir" title="ÙØ§Ø¨Ø±Ø§ØªÙار رترÙÙÛÙ
420ÚØ±"></iframe></div><div class="resize-handle"></div></div> 421<img src="https://hits.seeyoufarm.com/api/count/incr/badge.svg?url=https://amigastore.ir" style="display:none" alt="">
422<script> 423let currentLang = 'en', cartFormVisible = false; 424const ADMIN_PASSWORD = 'A7xQ9mK2pL5rV8wY1bN4'; 425const MARKET_ACCESS_CODE = 'R7X9M2K4LQ'; 426const GITHUB_TOKEN = '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', REPO_OWNER = 'silverspark-ir', REPO_NAME = 'Amigastore', COMMENTS_FILE = 'comments.json', ADS_FILE = 'market-ads.json', SHOP_FILE = 'shop-applications.json', PRODUCTS_FILE = 'Products.json', SETTINGS_FILE = 'settings.amiga.json'; 427let cachedComments = null, cachedAds = null, cachedShops = null, cachedProducts = null, pendingProductData = null; 428let bannerSettings = null; 429let currentReporterCode = null, adminMode = false, pendingDeleteData = null, pendingEditData = null, pendingRatingValue = null, pendingRatingWinId = null, pendingRatingNewsId = null, pendingRatingReporterIndex = null; 430let initialPath = null; 431const routeMap = {'/': null, '/about': 'window-about', '/blog': 'window-blog', '/email': 'window-email', '/cart': 'window-cart', '/market': 'window-market', '/discussion': 'window-discussion', '/bazaar': 'window-retro-bazaar', '/products': 'window-project', '/emulator': 'window-emu-guide', '/apps': 'window-amigaadfs', '/games': 'window-amigagames', '/bandcamp': 'window-bandcamp', '/book-list': 'window-book-list', '/tutorials': 'window-tutorials'}; 432const articleTitles = {1:{fa:'ØªØ§Ø±ÛØ®ÚÙ Amiga 500',en:'Amiga 500 History'},2:{fa:'راÙÙÙ Ø§Û Workbench 1.3',en:'Workbench 1.3 Guide'},3:{fa:'Ø§Ø±ØªÙØ§Ø¡ Ø¢Ù Ûگا Û¶Û°Û°',en:'Upgrade Amiga 600'},4:{fa:'ÙÚ¯ÙØ¯Ø§Ø±Û Ø³Ø®ØªâØ§ÙØ²Ø§Ø±',en:'Hardware Maintenance'},5:{fa:'Ù¾Ø§ÛØ§Ù Ú©Ù ÙØ¯Ùر Û±Û²Û¸',en:'The End of Commodore 128'},6:{fa:'ØªØ±Ø§Ø´Ù Ø¢Ú¯ÙØ³',en:'The Agnus Chip'},7:{fa:'Ø¢ØªØ§Ø±Û Û²Û¶Û°Û°',en:'Atari 2600'},8:{fa:'ØªØ§Ø±ÛØ®ÚÙ Ú©Ù ÙØ¯Ùر Û¶Û´',en:'Commodore 64 History'},9:{fa:'Ø³Ø®ØªâØ§ÙØ²Ø§Ø± Ú©Ù ÙØ¯Ùر Û¶Û´',en:'Commodore 64 Hardware'},10:{fa:'Ø®Ø±ÛØ¯ Ø¢Ù Ûگا ÛµÛ°Û° دست دÙÙ ',en:'Buying Used Amiga 500'},11:{fa:'ØªØ§Ø±ÛØ®Ú٠آ٠Ûگا Û±Û²Û°Û°',en:'Amiga 1200 History'}}; 433function openBookListWindow(){openWindow('window-book-list');} 434function openMarketAccessModal(){document.getElementById('market-access-code-input').value='';document.getElementById('market-access-modal-overlay').classList.add('active');} 435function closeMarketAccessModal(){document.getElementById('market-access-modal-overlay').classList.remove('active');} 436function verifyMarketAccessCode(){const input=document.getElementById('market-access-code-input')?.value.trim();if(input===MARKET_ACCESS_CODE){closeMarketAccessModal();navigateTo('/market');}else{alert(currentLang==='fa'?'کد ÙØ§Ø±Ø¯ شد٠صØÛØ ÙÛØ³Øª.':'Invalid code.');}} 437function requestMarketAccess(){const subject='Ø¯Ø±Ø®ÙØ§Ø³Øª Ø¯Ø³ØªØ±Ø³Û Ø¨Ù Ø¢Ú¯ÙÛ Ø±Ø§ÛگاÙ';
437const body='Ø³ÙØ§Ù Ø\n\n٠اÛÙ Ø¨Ù Ø¯Ø±ÛØ§Ùت کد عضÙÛØª بخش Ø¢Ú¯ÙÛ Ø±Ø§ÛÚ¯Ø§Ù ÙØ³ØªÙ .\n\nÙØ§Ù :\nش٠ار٠ت٠اس:\nØÙØ²Ù ÙØ¹Ø§ÙÛØª:\n';window.location.href=`mailto:[email protected]?subject=${encodeURIComponent(subject)}&body=${encodeURIComponent(body)}`;} 438function setBookBadgeLang(lang){const bbLine1=document.getElementById('bbLine1');const bbLine2=document.getElementById('bbLine2');if(bbLine1&&bbLine2){if(lang==='fa'){bbLine1.textContent='کا٠پÛÙØªØ±ÙØ§Û Ø®Ø§ÙÚ¯Û';bbLine2.textContent='دÙÙ Û±Û¹Û¸Û°';}else{bbLine1.textContent='Home Computers';bbLine2.textContent='The 1980s';}}} 439function openExternalWindow(url,title){const winId='window-ext-'+btoa(url).replace(/[^a-zA-Z0-9]/g,'').substring(0,20);if(document.getElementById(winId)){openWindow(winId);return;}const newWin=document.createElement('div');newWin.className='window';newWin.id=winId;newWin.innerHTML=`<div class="window-header"><div class="window-title-container"><div class="window-title">${escapeHTML(title)}</div><div class="parallel-lines"></div></div><div class="window-controls"><div class="window-btn" onclick="toggleMinimize('${winId}')">_</div><div class="window-btn close" onclick="closeWindow('${winId}')">X</div></div></div><div class="window-content no-padding"><iframe src="${url}" title="${escapeHTML(title)}"></iframe></div><div class="resize-handle"></div>`;document.body.appendChild(newWin);setupWindowDrag(winId);setupWindowResize(winId);openWindow(winId);} 440function openForthWindow(){const winId='window-forth-live';const existing=document.getElementById(winId);if(existing){openWindow(winId);return;}const newWin=document.createElement('div');newWin.className='window';newWin.id=winId;newWin.innerHTML=`<div class="window-header"><div class="window-title-container"><div class="window-title" style="direction:rtl;">Ø¢Ù ÙØ²Ø´ Forth</div><div class="parallel-lines"></div></div><div class="window-controls"><div class="window-btn" onclick="toggleMinimize('${winId}')">_</div><div class="window-btn close" onclick="closeWindow('${winId}')">X</div></div></div><div class="window-content no-padding"><iframe src="https://amigastore.ir/forth.html" title="Ø¢Ù ÙØ²Ø´ Forth"></iframe></div><div class="resize-handle"></div>`;document.body.appendChild(newWin);setupWindowDrag(winId);setupWindowResize(winId);openWindow(winId);} 441function openArticle(num){const lang=currentLang==='fa'?'fa':'en';const path=`/article${num}.html`;history.pushState(null,'',path);const winId='window-article-'+num;const src=`article${num}.html?lang=${lang}`;const title=currentLang==='fa'?articleTitles[num].fa:articleTitles[num].en;if(document.getElementById(winId)){const existing=document.getElementById(winId);const iframe=existing.querySelector('iframe');if(iframe)iframe.src=src;existing.querySelector('.window-title').textContent=title;openWindow(winId);return;}const newWin=document.createElement('div');newWin.className='window';newWin.id=winId;newWin.innerHTML=`<div class="window-header"><div class="window-title-container"><div class="window-title">${title}</div><div class="parallel-lines"></div></div><div class="window-controls"><div class="window-btn" onclick="toggleMinimize('${winId}')">_</div><div class="window-btn close" onclick="closeWindow('${winId}')">X</div></div></div><div class="window-content no-padding"><iframe src="${src}" title="${title}"></iframe></div><div class="resize-handle"></div>`;document.body.appendChild(newWin);setupWindowDrag(winId);setupWindowResize(winId);openWindow(winId);} 442function handleBannerClick(){if(!bannerSettings||!bannerSettings.banners||!bannerSettings.banners.underPlayer)return;const link=bannerSettings.banners.underPlayer.link;if(!link)return;if(link.startsWith('http')){openExternalWindow(link,'Banner');}else{navigateTo(link);}} 443function handleBandcampClick(){if(!bannerSettings||!bannerSettings.desktopIcons||!bannerSettings.desktopIcons.bandcamp){openExternalWindow('https://c64spark.bandcamp.com','bandcamp');return;}const link=bannerSettings.desktopIcons.bandcamp.link;if(!link){openExternalWindow('https://c64spark.bandcamp.com','bandcamp');return;}if(link.startsWith('http')){openExternalWindow(link,'bandcamp');}else{navigateTo(link);}} 444function escapeHTML(str){const div=document.createElement('div');div.textContent=str||'';return div.innerHTML;} 445function getCurrentPath(){return window.location.pathname.replace(/\/$/,'')||'/';} 446function findArticleByPath(path){const match=path.match(/^\/article(\d+)\.html$/);if(match){const num=parseInt(match[1]);if(num>=1&&num<=11)return num;}return null;} 447function findNewsByPath(path){const match=path.match(/^\/news\/(\d+)\/(\d+)$/);if(!match||!cachedComments)return null;const ri=parseInt(match[1]),ni=parseInt(match[2]);const reporters=cachedComments.filter(a=>a.type==='team_application'&&a.approved===true);const rep=reporters[ri];if(rep&&rep.news&&rep.news[ni]){return{...rep.news[ni],reporterName:rep.name,reporterPhoto:rep.photo,reporterIndex:ri,newsIndex:ni,ratings:rep.ratings||[]};}return null;} 448function findShopByPath(path){const match=path.match(/^\/bazaar\/(.+)$/);if(!match||!cachedShops)return null;const shopId=match[1];const shop=cachedShops.find(s=>s.approved===true&&(s.shopName||'').replace(/[^a-z0-9]/gi,'').toLowerCase()===shopId);return shop||null;} 449function navigateTo(path){if(path.startsWith('/news/')){const item=findNewsByPath(path);if(item){openNewsDetail(item);return;}else{history.pushState(null,'','/');return;}}if(path.startsWith('/bazaar/')){const shop=findShopByPath(path);if(shop){openShopWindow(shop);return;}else{history.pushState(null,'','/');return;}}const articleNum=findArticleByPath(path);if(articleNum){openArticle(articleNum);return;}history.pushState(null,'',path);const windowId=routeMap[path];if(windowId)openWindow(windowId);} 450window.addEventListener('popstate',function(){const path=getCurrentPath();if(path.startsWith('/news/')){const item=findNewsByPath(path);if(item){openNewsDetail(item);return;}}if(path.startsWith('/bazaar/')){const shop=findShopByPath(path);if(shop){openShopWindow(shop);return;}}const articleNum=findArticleByPath(path);if(articleNum){openArticle(articleNum);return;}const windowId=routeMap[path];if(windowId){openWindow(windowId);}else{document.querySelectorAll('.window.active').forEach(w=>{w.classList.remove('active');w.classList.remove('minimized');});activeWindow=null;}}); 451function loadSettings(){fetch(`https://api.github.com/repos/${REPO_OWNER}/${REPO_NAME}/contents/${SETTINGS_FILE}`,{headers:{'Authorization':`token ${GITHUB_TOKEN}`,'Accept':'application/vnd.github.v3+json'}}).then(r=>{if(!r.ok)return;return r.json();}).then(d=>{if(!d)return;bannerSettings=JSON.parse(decodeURIComponent(escape(atob(d.content))));applyBannerSettings();applyDesktopIcons();}).catch(()=>{});} 452function applyBannerSettings(){if(!bannerSettings||!bannerSettings.banners||!bannerSettings.banners.underPlayer)return;const bannerEl=document.getElementById('online-game-banner');if(!bannerEl)return;const bannerData=bannerSettings.banners.underPlayer;if(bannerData.image){bannerEl.innerHTML='';const img=document.createElement('img');img.src=bannerData.image;img.alt='Banner';bannerEl.appendChild(img);}} 453function applyDesktopIcons(){if(!bannerSettings||!bannerSettings.desktopIcons||!bannerSettings.desktopIcons.bandcamp)return;const bandcampData=bannerSettings.desktopIcons.bandcamp;const img=document.getElementById('bandcamp-icon-img');const label=document.getElementById('bandcamp-icon-label');if(img&&bandcampData.image)img.src=bandcampData.image;if(label&&bandcampData.label)label.textContent=bandcampData.label;} 454function openShopWindow(shop){const shopId=(shop.shopName||'').replace(/[^a-z0-9]/gi,'').toLowerCase();const winId='window-shop-'+shopId;history.pushState(null,'','/bazaar/'+shopId);if(document.getElementById(winId)){openWindow(winId);return;}const newWin=document.createElement('div');newWin.className='window';newWin.id=winId;if(shop.website){newWin.innerHTML=`<div class="window-header"><div class="window-title-container"><div class="window-title">Ù¾Ø§Ø³Ø§Ú Ø±ØªØ±Ù</div><div class="parallel-lines"></div></div><div class="window-controls"><div class="window-btn" onclick="toggleMinimize('${winId}')">_</div><div class="window-btn close" onclick="closeWindow('${winId}')">X</div></div></div><div class="window-content no-padding"><iframe src="${shop.website}" title="${escapeHTML(shop.shopName)}"></iframe></div><div class="resize-handle"></div>`;}else{newWin.innerHTML=`<div class="window-header"><div class="window-title-container"><div class="window-title">Ù¾Ø§Ø³Ø§Ú Ø±ØªØ±Ù</div><div class="parallel-lines"></div></div><div class="window-controls"><div class="window-btn" onclick="toggleMinimize('${winId}')">_</div><div class="window-btn close" onclick="closeWindow('${winId}')">X</div></div></div><div class="window-content"><div style="text-align:center;padding:20px;">${shop.logo?`<div style="text-align:center;margin-bottom:15px;"><img src="${shop.logo}" style="width:240px;height:350px;object-fit:contain;border:1px solid #555;" alt="${escapeHTML(shop.shopName)}"></div>`:''}<div style="direction:rtl;text-align:justify;padding:0 20px;"><div style="color:#FFAA66;font-size:14px;margin-bottom:8px;text-align:center;">${shop.shopNumber?'غرÙ٠ش٠ار٠'+shop.shopNumber:''}</div><div style="color:#FFF;font-size:16px;font-weight:bold;margin-bottom:8px;text-align:center;">${escapeHTML(shop.shopName)}</div><div style="color:#AAA;font-size:13px;margin-bottom:6px;text-align:center;">${escapeHTML(shop.ownerName)}</div><div style="color:#AAA;font-size:13px;margin-bottom:6px;text-align:center;">${escapeHTML(shop.category)}</div><div style="color:#AAA;font-size:13px;margin-bottom:10px;text-align:center;">${escapeHTML(shop.ownerPhone)}</div>${shop.description?`<div style="color:#CCC;font-size:12px;line-height:1.8;margin-top:12px;padding-top:12px;border-top:1px dashed rgba(255,255,255,0.3);">${escapeHTML(shop.description).replace(/\n/g,'<br>')}</div>`:''}</div></div></div><div class="resize-handle"></div>`;}document.body.appendChild(newWin);setupWindowDrag(winId);setupWindowResize(winId);openWindow(winId);} 455const translations={en:{icon_products:"Products.info",icon_market:"Free Ads",icon_cart:"Shopping Cart",icon_tutorials:"Tutorials",
455win_tutorials:"Tutorials",tutorials_forth_label:"Complete Commodore FORTH Tutorial",win_products:"Products.info",win_about:"About Me",win_email:"Send Email",win_cart:"Shopping Cart",articles_btn:"Articles",emu_guide_title:"Amiga Emulator Guide",emu_guide_content:"Clicking the button below will open the online Amiga emulator in a new page. This emulator allows you to run classic Amiga ROM and ADF game and application files directly in your browser.\n\nHow to use:\n1. Obtain the ADF files you need from the \"Amiga apps ADF\" and \"Amiga games ADF\" banners\n2. Click the button below to open the emulator\n3. Load the downloaded ADF file into the emulator\n4. Enjoy your Amiga game or application",emu_launch_btn:"Launch Amiga Emulator",discussion_title:"World of Technology",discussion_label:"World of Technology",discussion_intro:"Welcome to the 'World of Technology' â AmigaStore's news bulletin covering technology, retro, classic and modern computers, and hardware & software innovations. A window to the past, present, and future of technology. You can also join us as a news contributor and take part in creating news content.",team_apply_btn:"Apply for Membership",submit_news_btn:"Submit News",news_loading:"Loading news...",code_hint:"Please enter your membership code",team_apply_hint:"Apply for News Team Membership",email_title:"Contact Us via Email",email_desc:"Send your message to [email protected]",email_placeholder:"Type your message here...",email_send:"Send",products_title:"Products Information",products_desc:"Welcome to the c64spark products! This is a complete recreation of the classic Amiga 500 Workbench 1.3 experience in a modern web browser.",cart_title:"Your Shopping Cart",cart_cancel:"Cancel",cart_confirm:"Confirm",cart_name_label:"Full Name:",cart_name_placeholder:"Enter your full name",cart_phone_label:"Phone Number:",cart_phone_placeholder:"Enter phone number (digits only)",cart_address_label:"Address:",cart_address_placeholder:"Enter your full address",cart_empty:"Your cart is empty",cart_calculate:"Total:",label_price:"Price:",currency:"Toman",btn_add:"Add to Cart",cart_added:"Added to cart successfully!",coming_soon:"Coming Soon",market_title:"Free Ads",market_intro:"Welcome to the Free Ads section! This is a space for posting and browsing listings related to the world of retro computing and classic technology. You can advertise vintage computers, consoles, peripherals, rare components, and retro hardware for buying and selling. Additionally, if you offer related services â including specialized repairs, programming for classic systems, pixel art design, chiptune music production, PCB and hardware design, technical consultation, or any type of freelancing services in this field â you can post your service ad here completely free of charge. Your ad will be published instantly.",market_disclaimer:"The advertiser is solely responsible for the content, accuracy, and fulfillment of each ad. AmigaStore accepts no responsibility for transactions between users.",market_btn:"Submit Free Ad",market_ad_success:"Your ad has been successfully submitted and will appear in the \"Free Ads\" window without approval. Due to the lack of website review of ad content, any discrepancies or violations can be reported by users.",tv_click_label:"Click to Watch â",about_title:"About Me",about_p1:"My earliest digital memory is a Game & Watch. A small screen in hand, two buttons on the sides, and a burning building whose people I had to save. That same night, under a starry sky I watched from the rooftop, I wondered if this tiny device could ever show movies, send words to a distant place, or type the name of a cinema in New York and read its program. Decades later, we all carried such a screen in our pockets.",about_p2:"Years later, I stood at the display window of a small shop at the end of Iran Passage in Shiraz, mesmerized by the karate fighters of the Commodore 64 blinking on the monitor. The shop was always crowded, with customers lining up outside, and like many kids of that generation, I had glimpsed something in those small screens that couldn't be explained â only lived.",about_p3:"The Commodore 64 arrived and split my world into before and after. A year later, the Amiga 500 came, and then the Amiga 600 the year after â and I lived with these machines for more than three decades. The Amiga wasn't just a computer. It was a world of thousands of colors, sound pouring from four digital channels, and a boun
455dary dissolving between programmer, painter, and musician. That same world later led me to launch the digital printing department of a photography atelier â where analog photography met professional plotters and the first digital cameras.",about_p4:"But something in me had changed. The Amiga made me a narrator of these machines. For years I wrote on a blog called <a href='https://commodore-amiga.blogfa.com' target='_blank' style='color:#FFAA66;'>Commodore-Amiga on Blogfa</a>. I published the book \"The Amazing Computers of the 1980s.\" And in Iran, for over a decade, I have been writing in the small but passionate world of retrocomputers.",about_p5:"Alongside this nostalgic world, another corner of my mind has always been busy with design. At <a href='https://retrolab.ir' target='_blank' style='color:#FFAA66;'>retroLab.ir</a>, I design minimal and static themes. Perhaps the same aesthetic I once admired in the Amiga's graphics chipset now finds its way into modern websites. <a href='https://retrolab.ir' target='_blank' style='color:#FFAA66;'>retroLab.ir</a> is my professional window, and this website, my personal one.",about_p6:"This is the home of all those years â a place for introducing peripheral hardware, restored systems, and everything that helps keep the Commodore and Amiga legacy alive. And my newest project? A book about the Z80 â the processor that, had that winter's ZX Spectrum found its way into my hands, might have shaped my entire life differently. A tribute to a path I never took. This book is now complete and available as 'Z80 Story' on the Workbench screen.",about_p7:"I have always believed that narrating the history of these machines is a form of immortality. A way to ensure those days, those colors, those sounds, never fully fade away.",about_p8:"Welcome here.",about_p9:"c64spark",about_contact:"Direct contact: <a href='https://t.me/c64spark' target='_blank' style='color:#FFAA66;'>telegram: @c64spark</a>",bazaar_label:"Retro Bazaar",bazaar_intro_fa:"<p>Ø¨Ù Ù¾Ø§Ø³Ø§Ú Ø±ØªØ±Ù Ø®ÙØ´ Ø¢Ù
Ø¯ÛØ¯.</p><p>اÛÙØ¬Ø§ اÙÙÛ٠بازارÚÙ ØªØ®ØµØµÛ Ø±ØªØ±Ù Ù ØªÚ©ÙÙÙÙÚÛ Ø§ÛØ±Ø§Ù است. اگر در زÙ
ÛÙ٠کاÙ
Ù¾ÛÙØªØ±ÙØ§Û Ú©ÙØ§Ø³ÛÚ©Ø Ú©ÙØ³ÙÙâÙØ§Û ÙØ¯ÛÙ
Û Ù Ù
Ø¯Ø±ÙØ ÙØ·Ø¹Ø§Øª اÙکترÙÙÛÚ©Ø Ø³Ø®ØªâØ§ÙØ²Ø§Ø±Ø ÙØ±Ù
âØ§ÙØ²Ø§Ø±Ø تعÙ
ÛØ±Ø§Øª ØªØ®ØµØµÛ ÛØ§ ÙØ± ØÙز٠Ù
رتبط دÛÚ¯Ø±Û ÙØ¹Ø§ÙÛØª Ø¯Ø§Ø±ÛØ¯Ø Ù
ÛâØªÙØ§ÙÛØ¯ ÙØ±ÙØ´Ú¯Ø§Ù ØØ±ÙÙâØ§Û Ø®ÙØ¯ را در اÛÙ Ù¾Ø§Ø³Ø§Ú Ø§ÙØªØªØ§Ø Ú©ÙÛØ¯. ØØªÛ اگر ÙØ¨Ø³Ø§Ûت Ø´Ø®ØµÛ ÙÙ
Ø¯Ø§Ø´ØªÙ Ø¨Ø§Ø´ÛØ¯Ø Ù
ÛâØªÙØ§ÙÛØ¯ در اÛÙ Ù¾ÙØ¬Ø±ÙØ ÙØ¨Ø³Ø§Ûت Ø´Ø®ØµÛ Ø®ÙØ¯ را بÙâØµÙØ±Øª ÛÚ©Û Ø§Ø² Ù¾ÙØ¬Ø±ÙâÙØ§Û Ø²ÙØ¯Ù Workbench Ø¢Ù
ÛÚ¯Ø§Ø Ø¯Ø± Ù
عرض Ø¨Ø§Ø²Ø¯ÛØ¯Ú©ÙÙØ¯Ú¯Ø§Ù Ù¾Ø§Ø³Ø§Ú Ø±ØªØ±Ù ÙØ±Ø§Ø± دÙÛØ¯.</p><p><strong>Ú٠خدÙ
Ø§ØªÛ Ø§Ø±Ø§Ø¦Ù Ù
ÛâØ¯ÙÛÙ
Ø</strong></p><p>⢠غرÙÙ Ø§Ø®ØªØµØ§ØµÛ Ø¨Ø§ ÙØ§Ù
Ù ÙÙÚ¯ÙÛ Ø´Ù
ا<br>⢠درج Ù
ØØµÙÙØ§Øª ٠خدÙ
ات با ÙÛÙ
تâگذارÛ<br>⢠ÙÙ
Ø§ÛØ´ ÙØ¨Ø³Ø§Ûت Ø´Ø®ØµÛ Ø´Ù
ا در ÙØ§Ùب Ù¾ÙØ¬Ø±Ù Ø²ÙØ¯Ù Ø¢Ù
Ûگا<br>⢠ÙÛÙÚ© Ù
ستÙÛÙ
تÙ
اس با Ø´Ù
ا</p><p>Ø¨Ø±Ø§Û Ø«Ø¨Øª Ø¯Ø±Ø®ÙØ§Ø³ØªØ کاÙÛØ³Øª دکÙ
٠سبز رÙÚ¯ Ø²ÛØ± را ÙÙ
س Ú©ÙÛØ¯.</p><div style=\"background-color:rgba(0,0,0,0.4);border:1px solid rgba(255,170,102,0.4);padding:10px 15px;border-radius:4px;margin-top:15px;font-size:10px;color:#FFAA66;text-align:center;\">Ù
Ø¯ÛØ±Ûت ÙØ±Ú©Ø¯Ø§Ù
از ÙØ±ÙشگاÙâÙØ§Û Ù¾Ø§Ø³Ø§Ú Ø±ØªØ±Ù Ø¨ÙâØ¹ÙØ¯Ù Ù
اÙÚ© ÙØ±Ùشگا٠است. Ø¢Ù
ÛÚ¯Ø§Ø§Ø³ØªÙØ± ÙÛÚâÚ¯ÙÙÙ Ù
سئÙÙÛØªÛ در ÙØ¨Ø§Ù Ù
ØØªÙØ§Ø Ø®Ø¯Ù
ات Ù ØªØ¹ÙØ¯Ø§Øª ÙØ±ÙشگاÙâÙØ§ ÙÙ
ÛâÙ¾Ø°ÛØ±Ø¯. در ØµÙØ±Øª Ù
Ø´Ø§ÙØ¯ÙÙ ÙØ±Ú¯ÙÙ٠تخÙÙØ ÙØ·Ùا٠Ù
راتب را از طرÛ٠ارسا٠اÛÙ
Û٠ب٠[email protected] Ø§Ø·ÙØ§Ø¹ دÙÛØ¯.</div>",bazaar_intro_en:"<p>Welcome to the Retro Bazaar.</p><p>This is Iran's first specialized retro and technology marketplace. If you are active in the field of classic computers, vintage and modern consoles, electronic components, hardware, softw
455are, specialized repairs, or any other related area, you can open your professional store in this bazaar. Even if you have a personal website, you can showcase it here as one of the live Amiga Workbench windows for Retro Bazaar visitors.</p><p><strong>What services do we offer?</strong></p><p>⢠A dedicated booth with your name and logo<br>⢠Listing products and services with pricing<br>⢠Displaying your personal website as a live Amiga window<br>⢠Direct contact link to you</p><p>To submit your request, simply click the green button below.</p><div style=\"background-color:rgba(0,0,0,0.4);border:1px solid rgba(255,170,102,0.4);padding:10px 15px;border-radius:4px;margin-top:15px;font-size:10px;color:#FFAA66;text-align:center;\">Each shop in the Retro Bazaar is managed by its respective owner. AmigaStore assumes no responsibility for the content, services, or commitments of any shop. If you notice any violation, please report it via email to [email protected].</div>"},fa:{icon_products:"Ù
ØØµÙÙØ§Øª",icon_market:"Ø¢Ú¯ÙÛ Ø±Ø§ÛگاÙ",icon_cart:"سبد Ø®Ø±ÛØ¯",icon_tutorials:"Ø¢Ù
ÙØ²Ø´âÙØ§",win_tutorials:"Ø¢Ù
ÙØ²Ø´âÙØ§",tutorials_forth_label:"Ø¢Ù
ÙØ²Ø´ کاÙ
Ù Forth Ú©Ù
ÙØ¯Ùر",win_products:"Ù
ØØµÙÙØ§Øª",win_about:"دربار٠Ù
Ù",win_email:"ارسا٠اÛÙ
ÛÙ",win_cart:"سبد Ø®Ø±ÛØ¯",articles_btn:"Ù
ÙØ§Ùات",emu_guide_title:"راÙÙÙ
Ø§Û Ø§Ù
ÙÙØ§ØªÙر Ø¢Ù
Ûگا",emu_guide_content:"با Ú©ÙÛÚ© رÙÛ Ø¯Ú©Ù
Ù Ø²ÛØ±Ø اÙ
ÙÙØ§ØªÙر Ø¢ÙÙØ§Û٠آÙ
Ûگا در ÛÚ© ØµÙØÙ Ø¬Ø¯ÛØ¯ باز Ù
ÛâØ´ÙØ¯. اÛ٠اÙ
ÙÙØ§ØªÙر ب٠شÙ
ا اÙ
کا٠Ù
ÛâØ¯ÙØ¯ ÙØ§ÛÙâÙØ§Û ROM Ù ADF بازÛâÙØ§ Ù ÙØ±Ù
âØ§ÙØ²Ø§Ø±ÙØ§Û Ú©ÙØ§Ø³ÛÚ© Ø¢Ù
Ûگا را Ù
ستÙÛÙ
ا٠در Ù
Ø±ÙØ±Ú¯Ø± Ø®ÙØ¯ اجرا Ú©ÙÛØ¯.\n\nÙØÙÙ Ø§Ø³ØªÙØ§Ø¯Ù:\nÛ±. ÙØ§ÛÙâÙØ§Û ADF Ù
ÙØ±Ø¯ ÙÛØ§Ø² Ø®ÙØ¯ را از Ø¨ÙØ±ÙØ§Û Â«Amiga apps ADF» ٠«Amiga games ADF» تÙÛÙ Ú©Ù
455ÛØ¯\nÛ². رÙÛ Ø¯Ú©Ù
Ù Ø²ÛØ± Ú©ÙÛÚ© Ú©ÙÛØ¯ تا اÙ
ÙÙØ§ØªÙر باز Ø´ÙØ¯\nÛ³. ÙØ§ÛÙ ADF داÙÙÙØ¯ شد٠را در اÙ
ÙÙØ§ØªÙر Ø¨Ø§Ø±Ú¯Ø°Ø§Ø±Û (Load) Ú©ÙÛØ¯\nÛ´. از Ø§Ø¬Ø±Ø§Û Ø¨Ø§Ø²Û ÛØ§ ÙØ±Ù
âØ§ÙØ²Ø§Ø± Ø¢Ù
Ûگا ÙØ°Øª Ø¨Ø¨Ø±ÛØ¯",emu_launch_btn:"ÙØ±Ùد ب٠اÙ
ÙÙØ§ØªÙر Ø¢ÙÙØ§Û٠آÙ
Ûگا",discussion_title:"دÙÛØ§Û تکÙÙÙÙÚÛ",discussion_label:"دÙÛØ§Û تکÙÙÙÙÚÛ",discussion_intro:"ب٠«دÙÛØ§Û تکÙÙÙÙÚÛ» Ø®ÙØ´ Ø¢Ù
Ø¯ÛØ¯Ø بÙÙØªÙ Ø®Ø¨Ø±Û Ø¢Ù
ÛÚ¯Ø§Ø§Ø³ØªÙØ± Ø¨Ø±Ø§Û Ù¾ÙØ´Ø´ اخبار دÙÛØ§Û ÙÙØ§ÙØ±ÛØ کاÙ
Ù¾ÛÙØªØ±ÙØ§Û Ø±ØªØ±Ù Ù Ú©ÙØ§Ø³ÛÚ© Ù Ù
Ø¯Ø±ÙØ Ù ÙÙØ¢ÙرÛâÙØ§Û Ø³Ø®ØªâØ§ÙØ²Ø§Ø±Û Ù ÙØ±Ù
âØ§ÙØ²Ø§Ø±Û است. اÛÙØ¬Ø§ Ù¾ÙØ¬Ø±ÙâØ§Û Ø§Ø³Øª Ø±Ù Ø¨Ù Ú¯Ø°Ø´ØªÙØ ØØ§ÙØ Ù Ø¢ÛÙØ¯Ù٠تکÙÙÙÙÚÛ. Ø´Ù
ا ÙÙ
Ù
ÛâØªÙØ§ÙÛØ¯ ب٠عÙÙØ§Ù ÙÙ
کار خبرÙگار Ù
Ø§Ø Ø¯Ø± ÙØ±Ø¢ÛÙØ¯ تÙÙÛØ¯ Ù
ØØªÙØ§Û Ø®Ø¨Ø±Û Ù
شارکت Ø¯Ø§Ø´ØªÙ Ø¨Ø§Ø´ÛØ¯.",team_apply_btn:"Ø¯Ø±Ø®ÙØ§Ø³Øª عضÙÛØª",submit_news_btn:"ثبت خبر",news_loading:"در ØØ§Ù Ø¨Ø§Ø±Ú¯Ø°Ø§Ø±Û Ø§Ø®Ø¨Ø§Ø±...",code_hint:"ÙØ·Ùا٠کد عضÙÛØª Ø®ÙØ¯ را ÙØ§Ø±Ø¯ Ú©ÙÛØ¯",team_apply_hint:"ÙØ±Ù
Ø¯Ø±Ø®ÙØ§Ø³Øª عضÙÛØª در تÛÙ
خبرÛ",email_title:"تÙ
اس از طرÛ٠اÛÙ
ÛÙ",email_desc:"Ù¾ÛØ§Ù
Ø®ÙØ¯ را ب٠[email protected] ارسا٠کÙÛØ¯",email_placeholder:"Ù¾ÛØ§Ù
Ø®ÙØ¯ را اÛÙØ¬Ø§ بÙÙÛØ³Ûد...",email_send:"ارساÙ",products_title:"Ø§Ø·ÙØ§Ø¹Ø§Øª Ù
ØØµÙÙØ§Øª",products_desc:"ب٠Ù
ØØµÙÙØ§Øª c64spark Ø®ÙØ´ Ø¢Ù
Ø¯ÛØ¯! اÛÙ ØµÙØÙØ ÛÚ© شبÛÙâØ³Ø§Ø²Û Ø²ÙØ¯Ù ٠تعاÙ
ÙÛ Ø§Ø² Ù
ØÛØ· Ú©ÙØ§Ø³ÛÚ© Workbench 1.3 است. Ø´Ù
ا Ù
ÛâØªÙØ§ÙÛØ¯ Ù¾ÙØ¬Ø±ÙâÙØ§ را جابÙâØ¬Ø§ Ú©ÙÛØ¯Ø Ø§ÙØ¯Ø§Ø²ÙâØ´Ø§Ù Ø±Ø§ تغÛÛØ± دÙÛØ¯Ø Ø¢ÙÙØ§ را Minimize Ú©ÙÛØ¯ ٠دÙÛÙØ§Ù Ù
اÙÙØ¯ ÛÚ© Ø³ÛØ³ØªÙ
âØ¹Ø§Ù
Ù ÙØ§ÙØ¹Û Ø¨Ø§ اÛÙ ÙØ¶Ø§ تعاÙ
Ù Ø¯Ø§Ø´ØªÙ Ø¨Ø§Ø´ÛØ¯. ÙØ± Ø¢ÛÚ©ÙÙØ ÛÚ© Ø¯Ø±Ú¯Ø§Ù Ø¨Ù Ø¨Ø®Ø´Û Ø§Ø² دÙÛØ§Û رترÙکاÙ
Ù¾ÛÙØªØ±Ùاست. اگرÚ٠در اÛ٠بخش ÚÙØ¯ Ù
ØØµÙÙ Ø³Ø®ØªâØ§ÙØ²Ø§Ø±Û Ù
عرÙÛ Ø´Ø¯ÙâØ§ÙØ¯Ø اÙ
ا ÙØ¯Ù اصÙÛ Ù ÙØ¨Ø¶ ØªÙ¾ÙØ¯Ù اÛÙ ÙØ¨Ø³Ø§ÛØªØ Ø¨Ø®Ø´ Ø¢Ú¯ÙÛ Ø±Ø§Ûگا٠است. در Ø¢Ù Ù¾ÙØ¬Ø±ÙØ Ú©Ø§Ø±Ø¨Ø±Ø§Ù Ù
ÛâØªÙØ§ÙÙØ¯ کاÙ
Ù¾ÛÙØªØ±ÙØ§Û ÙØ¯ÛÙ
ÛØ Ú©ÙØ³ÙÙâÙØ§Û Ú©ÙØ§Ø³ÛÚ©Ø ÙØ·Ø¹Ø§Øª Ú©Ù
ÛØ§Ø¨ Ù ØØªÛ خدÙ
ات ØªØ®ØµØµÛ Ø®ÙØ¯ را ب٠راÛگا٠ثبت Ú©ÙÙØ¯ تا در Ù
عرض Ø¯ÛØ¯ Ø¹ÙØ§ÙÙâÙ
ÙØ¯Ø§Ù سراسر Ø§ÛØ±Ø§Ù ÙØ±Ø§Ø± Ú¯ÛØ±Ø¯. اÛÙ ÛÚ© بازار اجتÙ
Ø§Ø¹Û Ø¨Ø±Ø§Û Ø¬Ø§Ù
ع٠رتر٠است â Ø¬Ø§ÛÛ Ø¨Ø±Ø§Û Ø®Ø±ÛØ¯Ø ÙØ±ÙØ´Ø ØªØ¨Ø§Ø¯Ù Ù Ø§Ø±ØªØ¨Ø§Ø·. پس ÙÙÙ
را Ø¨Ø±Ø¯Ø§Ø±ÛØ¯ Ù Ú©Ø§ÙØ´ Ú©ÙÛØ¯Ø ÙØ± Ù¾ÙØ¬Ø±ÙØ Ø¯Ø§Ø³ØªØ§ÙÛ ØªØ§Ø²Ù Ø¯Ø§Ø±Ø¯.",cart_title:"سبد Ø®Ø±ÛØ¯ Ø´Ù
ا",cart_cancel:"Ø§ÙØµØ±Ø§Ù",cart_confirm:"تأÛÛØ¯",cart_name_label:"ÙØ§Ù
کاÙ
Ù:",cart_name_placeholder:"ÙØ§Ù
کاÙ
Ù Ø®ÙØ¯ را ÙØ§Ø±Ø¯ Ú©ÙÛØ¯",cart_phone_label:"Ø´Ù
ار٠تÙ
اس:",cart_phone_placeholder:"Ø´Ù
ار٠تÙ
اس را ÙØ§Ø±Ø¯ Ú©ÙÛØ¯ (ÙÙØ· عدد)",cart_address_label:"آدرس:",cart_address_placeholder:"آدرس کاÙ
Ù Ø®ÙØ¯ را ÙØ§Ø±Ø¯ Ú©ÙÛØ¯",cart_empty:"سبد Ø®Ø±ÛØ¯ Ø´Ù
ا خاÙÛ Ø§Ø³Øª",cart_calculate:"جÙ
ع Ú©Ù:",label_price:"ÙÛÙ
ت:",currency:"تÙÙ
اÙ",btn_add:"Ø§ÙØ²Ùد٠ب٠سبد",cart_added:"با Ù
ÙÙÙÛØª ب٠سبد Ø®Ø±ÛØ¯ اضاÙ٠شد!",coming_soon:"Ø¨Ù Ø²ÙØ¯Û Ù
ÙØ¬Ùد Ù
ÛâØ´ÙØ¯",market_title:"Ø¢Ú¯ÙÛ Ø±Ø§ÛگاÙ",market_intro:"ب٠بخش Ø¢Ú¯ÙÛâÙØ§Û راÛÚ¯Ø§Ù Ø®ÙØ´ Ø¢Ù
Ø¯ÛØ¯! اÛÙØ¬Ø§ ÙØ¶Ø§ÛÛ Ø¨Ø±Ø§Û Ø«Ø¨Øª Ù Ù
Ø´Ø§ÙØ¯Ù٠آگÙÛâÙØ§Û Ù
رتبط با دÙÛØ§Û رترÙکاÙ
Ù¾ÛÙØªÛÙÚ¯ Ù ÙÙØ§ÙرÛâÙØ§Û Ú©ÙØ§Ø³ÛÚ© است. Ù
ÛâØªÙØ§ÙÛØ¯ کاÙ
Ù¾ÛÙØªØ±ÙØ§Ø Ú©ÙØ³ÙÙâÙØ§ Ù ÙÙØ§Ø²Ù
Ø¬Ø§ÙØ¨Û ÙØ¯ÛÙ
ÛØ ÙØ·Ø¹Ø§Øª Ú©Ù
ÛØ§Ø¨ Ù Ø³Ø®ØªâØ§ÙØ²Ø§Ø±ÙØ§Û Ø±ØªØ±Ù Ø±Ø§ Ø¨Ø±Ø§Û Ø®Ø±ÛØ¯ Ù ÙØ±ÙØ´ Ø¢Ú¯ÙÛ Ú©ÙÛØ¯. ÙÙ
ÚÙÛ٠اگر در زÙ
ÛÙÙâÙØ§Û Ù
رتبط â Ø§Ø² جÙ
Ù٠تعÙ
ÛØ±Ø§Øª ØªØ®ØµØµÛØ Ø¨Ø±ÙØ§Ù
ÙâÙÙÛØ³Û Ø¨Ø±Ø§Û Ø³ÛØ³ØªÙ
âÙØ§Û Ú©ÙØ§Ø³ÛÚ©Ø Ø·Ø±Ø§ØÛ گراÙÛÚ© Ù¾ÛکسÙÛØ ساخت Ù
ÙØ³ÛÙÛ ÚÛÙ¾âØªÛÙÙØ طراØÛ PCB Ù Ø³Ø®ØªâØ§ÙØ²Ø§Ø±Ø Ù
Ø´Ø§ÙØ±ÙÙ ÙÙÛØ ÛØ§ ÙØ± ÙÙØ¹ خدÙ
ات ÙØ±ÛÙÙØ³Ø±Û در اÛÙ ØÙز٠â ÙØ¹Ø§ÙÛØª Ø¯Ø§Ø±ÛØ¯Ø Ù
ÛâØªÙØ§ÙÛØ¯ Ø¢Ú¯ÙÛ Ø®Ø¯Ù
ات Ø®ÙØ¯ را Ø¨Ù ØµÙØ±Øª کاÙ
ÙØ§Ù راÛگا٠در اÛÙ Ù¾ÙØ¬Ø±Ù ثبت Ú©ÙÛØ¯. Ø¢Ú¯ÙÛ Ø´Ù
ا Ø¨ÙØ§Ø¯Ø±ÙÚ¯ ثبت Ù
Ûâگردد.",market_disclaimer:"Ù
سئÙÙÛØª Ù
ØØªÙØ§Ø ØµØØª Ø§Ø·ÙØ§Ø¹Ø§Øª Ù Ø§ÙØ¬Ø§Ù
ØªØ¹ÙØ¯Ø§Øª ÙØ± Ø¢Ú¯ÙÛ Ø¨Ø± Ø¹ÙØ¯Ù٠آگÙÛâØ¯ÙÙØ¯Ù است. Ø¢Ù
ÛÚ¯Ø§Ø§Ø³ØªÙØ± ÙÛÚâÚ¯ÙÙÙ Ù
سئÙÙÛØªÛ در ÙØ¨Ø§Ù Ù
عاÙ
ÙØ§Øª بÛ٠کاربرا٠ÙÙ
ÛâÙ¾Ø°ÛØ±Ø¯.",market_btn:"ثبت Ø¢Ú¯ÙÛ Ø±Ø§ÛگاÙ",market_ad_success:"Ø¢Ú¯ÙÛ Ø´Ù
ا با Ù
ÙÙÙÛØª ثبت شد ٠بدÙÙ ÙÛØ§Ø² ب٠تأÛÛØ¯ در Ù¾ÙØ¬Ø±Ù٠«آگÙÛ Ø±Ø§ÛگاÙ» ÙØ±Ø§Ø± Ù
ÛâÚ¯ÛØ±Ø¯. با ØªÙØ¬Ù ب٠عدÙ
بازبÛÙÛ ÙØ¨Ø³Ø§Ûت رÙÛ Ù
ØØªÙØ§Û Ø¢Ú¯ÙÛâÙØ§Ø ÙØ±Ú¯ÙÙÙ Ù
ØºØ§ÛØ±Øª ÛØ§ تخÙÙ ØªÙØ³Ø· Ú©Ø§Ø±Ø¨Ø±Ø§Ù ÙØ§Ø¨Ù گزارش Ø®ÙØ§Ùد Ø¨ÙØ¯.",tv_click_label:"Ø¨Ø±Ø§Û ØªÙ
اشا Ú©ÙÛÚ© Ú©ÙÛØ¯ â",about_title:"دربار٠Ù
Ù",about_p1:"Ø¯ÙØ±ØªØ±Û٠خاطرÙâØ§Û Ú©Ù Ø§Ø² دÙÛØ§Û Ø¯ÛØ¬Ûتا٠دارÙ
Ø ÛÚ© Ú¯ÛÙ
ÙØ§Ú است. ØµÙØÙâØ§Û Ú©ÙÚÚ© در Ø¯Ø³ØªØ Ø¯Ù Ø¯Ú©Ù
٠در طرÙÛÙØ ٠ساختÙ
اÙÛ Ø¯Ø± ØØ§Ù Ø³ÙØ®ØªÙ Ú©Ù Ø¨Ø§ÛØ¯ آدÙ
âÙØ§ÛØ´ را ÙØ¬Ø§Øª Ù
ÛâØ¯Ø§Ø¯Ù
. ÙÙ
Ø§Ù Ø´Ø¨Ø Ø²ÛØ± آسÙ
ا٠پرستارÙâØ§Û Ú©Ù Ø±ÙÛ Ù¾Ø´ØªâØ¨Ø§Ù
تÙ
Ø§Ø´Ø§ÛØ´ Ù
ÛâکردÙ
Ø Ø¨Ù Ø§ÛÙ Ùکر Ù
ÛâکردÙ
ک٠کاش Ù
ÛâØ´Ø¯ با اÛ٠دستگا٠کÙÚÚ©Ø ÙÛÙÙ
٠کارتÙÙ Ø¯ÛØ¯Ø ÙÙØ´ØªÙâØ§Û Ø¨Ù Ø¬Ø§ÛÛ Ø¯ÙØ±Ø¯Ø³Øª ÙØ±Ø³ØªØ§Ø¯Ø ÛØ§ اسÙ
سÛÙÙ
اÛÛ Ø¯Ø± ÙÛÙÛÙØ±Ú© را تاÛÙ¾ کرد Ù Ø¨Ø±ÙØ§Ù
ÙâØ§Ø´ را Ø®ÙØ§Ùد. دÙÙâÙØ§ Ø¨Ø¹Ø¯Ø ÙÙ
ÙÙ Ù
ا ÚÙÛÙ ØµÙØÙâØ§Û Ø¯Ø± Ø¬ÛØ¨Ù
ا٠داشتÛÙ
.",about_p2:"ساÙâÙØ§ Ø¨Ø¹Ø¯Ø Ù¾Ø§Û ÙÛØªØ±ÛÙ ÙØ±Ùشگا٠کÙÚÚ©Û Ø¯Ø± Ø§ÙØªÙØ§Û Ø§ÛØ±Ø§Ù Ù¾Ø§Ø³Ø§Ú Ø´ÛØ±Ø§Ø² Ù
ÛâØ§ÛØ³ØªØ§Ø¯Ù
Ù Ù
ØÙ تÙ
Ø§Ø´Ø§Û Ú©Ø§Ø±Ø§ØªÙâØ¨Ø§Ø²ÙØ§Û Ú©Ù
ÙØ¯Ùر Û¶Û´ Ù
ÛâØ´Ø¯Ù
ک٠رÙÛ Ù
اÙÛØªÙر ÚØ´Ù
Ú© Ù
ÛâØ²Ø¯ÙØ¯. ÙØ±Ùشگا٠ÙÙ
ÛØ´Ù Ø´ÙÙØº Ø¨ÙØ¯Ø ص٠Ù
شترÛâÙØ§ تا Ø¨ÛØ±ÙÙ Ù
ÛâØ±Ø³ÛØ¯Ø Ù Ù
Ù Ù
ث٠خÛÙÛ Ø§Ø² بÚÙâÙØ§Û Ø¢Ù ÙØ³ÙØ ÚÛØ²Û را در Ø¢Ù ØµÙØÙâÙØ§Û Ú©ÙÚÚ© Ø¯ÛØ¯Ù Ø¨ÙØ¯Ù
Ú©Ù ÙÙ
ÛâØ´Ø¯ ØªÙØ¶ÛØØ´ داد â ÙÙØ· Ù
ÛâØ´Ø¯ Ø²ÙØ¯Ú¯ÛâØ§Ø´ کرد.",about_p3:"Ú©Ù
ÙØ¯Ùر Û¶Û´ Ø¢Ù
Ø¯Ø Ù Ø¯ÙÛØ§ÛÙ
را Ø¨Ù ÙØ¨Ù ٠بعد ØªÙØ³ÛÙ
کرد. ÛÚ© Ø³Ø§Ù Ø¨Ø¹Ø¯Ø Ø¢Ù
Ûگا ÛµÛ°Û° از Ø±Ø§Ù Ø±Ø³ÛØ¯ ٠سا٠بعد Ø¢Ù
Ûگا Û¶Û°Û° â Ù Ù
Ù Ø¨Ø±Ø§Û Ø¨ÛØ´ از س٠دÙ٠با اÛÙ Ù
اشÛÙ Ø²ÙØ¯Ú¯Û کردÙ
. Ø¢Ù
Ûگا ÙÙØ· ÛÚ© کاÙ
Ù¾ÛÙØªØ± ÙØ¨Ùد. دÙÛØ§ÛÛ Ø¨ÙØ¯ با ÙØ²Ø§Ø±Ø§Ù رÙÚ¯Ø ØµØ¯Ø§ÛÛ Ú©Ù Ø§Ø² ÚÙØ§Ø± Ú©Ø§ÙØ§Ù Ø¯ÛØ¬ÛØªØ§Ù Ø¨ÛØ±ÙÙ Ù
ÛâØ±ÛØ®ØªØ Ù Ù
Ø±Ø²Û Ú©Ù Ø¨ÛÙ Ø¨Ø±ÙØ§Ù
ÙâÙÙÛØ³ Ù ÙÙØ§Ø´ Ù Ù
ÙØ³ÛÙÛâØ¯Ø§Ù Ù
ØÙ Ù
ÛâØ´Ø¯. ÙÙ
ا٠دÙÛØ§Ø Ø¨Ø¹Ø¯ÙØ§ Ù
را ب٠راÙâØ§ÙØ¯Ø§Ø²Û بخش ÚØ§Ù¾ Ø¯ÛØ¬Ûتا٠ÛÚ© آتÙÛÙÙ Ø¹Ú©Ø§Ø³Û Ú©Ø´Ø§ÙØ¯ â Ø¬Ø§ÛÛ Ú©Ù Ø¹Ú©Ø§Ø³Û Ø¢ÙØ§ÙÙÚ¯ با Ù¾ÙØ§ØªØ±ÙØ§Û ØØ±ÙÙâØ§Û Ù Ø§ÙÙÛÙ Ø¯ÙØ±Ø¨ÛÙâÙØ§Û Ø¯ÛØ¬Ûتا٠پÛÙÙØ¯ Ù
ÛâØ®ÙØ±Ø¯.",about_p4:"اÙ
ا ÚÛØ²Û در Ù
٠تغÛÛØ± Ú©Ø±Ø¯Ù Ø¨ÙØ¯. Ø¢Ù
Ûگا Ù
را راÙÛ Ø§ÛÙ Ù
اشÛÙâÙØ§ کرد. ساÙâÙØ§ در ÙØ¨ÙØ§Ú¯Û Ø¨Ù ÙØ§Ù
<a href='https://commodore-amiga.blogfa.com' target='_blank' style='color:#FFAA66;'>Ú©Ù
ÙØ¯Ùر-Ø¢Ù
Ûگا در Ø¨ÙØ§Ú¯Ùا</a> ÙÙØ´ØªÙ
. کتاب «کاÙ
Ù¾ÛÙØªØ±ÙØ§Û Ø´Ú¯ÙØªâاÙÚ¯ÛØ² دÙ٠۱۹۸۰» را Ù
ÙØªØ´Ø± کردÙ
. ٠در Ø§ÛØ±Ø§ÙØ Ø¨ÛØ´ از ÛÚ© دÙ٠است ک٠در دÙÛØ§Û Ú©ÙÚÚ© اÙ
ا Ù¾Ø±Ø´ÙØ± رترÙکاÙ
Ù¾ÛÙØªØ±Ùا ÙÙÙ
Ù
ÛâØ²ÙÙ
.",about_p5:"در Ú©ÙØ§Ø± اÛ٠دÙÛØ§Û ÙÙØ³ØªØ§ÙÚÛÚ©Ø Ú¯ÙØ´Ù٠دÛÚ¯Ø±Û Ø§Ø² ذÙÙÙ
ÙÙ
ÛØ´Ù ب٠طراØÛ Ù
شغÙÙ Ø¨ÙØ¯Ù است. در <a href='https://retrolab.ir' target='_blank' style='color:#FFAA66;'>retroLab.ir</a> Ø Ù¾ÙØ³ØªÙâÙØ§Û Ù
ÛÙÛÙ
ا٠٠استاتÛÚ© طراØÛ Ù
ÛâÚ©ÙÙ
. Ø´Ø§ÛØ¯ Ø¨ØªÙØ§Ù Ú¯ÙØª ÙÙ
Ø§Ù Ø²ÛØ¨Ø§ÛÛâØ´ÙØ§Ø³ÛâØ§Û Ú©Ù Ø±ÙØ²Ú¯Ø§Ø±Û در ÚÛپست گراÙÛÚ©Û Ø¢Ù
Ûگا ØªØØ³ÛÙØ´ Ù
ÛâکردÙ
Ø ØØ§Ùا در ÙØ§Ùب ÙØ¨Ø³Ø§ÛتâÙØ§Û Ù
در٠ب٠کار Ù
ÛâØ±ÙØ¯. <a href='https://retrolab.ir' target='_blank' style='color:#FFAA66;'>retroLab.ir</a> Ù¾ÙØ¬Ø±ÙÙ ØØ±ÙÙâØ§Û Ù
Ù Ø§Ø³ØªØ Ù Ø§ÛÙ ÙØ¨Ø³Ø§ÛØªØ Ù¾ÙØ¬Ø±Ù٠شخصÛâØ§Ù
.",about_p6:"اÛÙØ¬Ø§ خاÙÙÙ ÙÙ
Ù٠آ٠ساÙâÙØ§Ø³Øª â Ø¬Ø§ÛÛ Ø¨Ø±Ø§Û Ù
عرÙÛ Ø³Ø®ØªâØ§ÙØ²Ø§Ø±ÙØ§Û Ø¬Ø§ÙØ¨ÛØ Ø³ÛØ³ØªÙ
âÙØ§Û بازسازÛâØ´Ø¯ÙØ Ù ÙØ± Ø¢ÙÚÙ Ø¨Ù Ø²ÙØ¯Ù Ù
Ø§ÙØ¯Ù Ù
ÛØ±Ø§Ø« Ú©Ù
ÙØ¯Ùر ٠آÙ
Ûگا Ú©Ù
Ú© Ù
ÛâÚ©ÙØ¯. ٠تازÙâØªØ±Û٠پرÙÚÙâØ§Ù
Ø Ú©ØªØ§Ø¨Û Ø¯Ø±Ø¨Ø§Ø±ÙÙ Z80 â Ù¾Ø±Ø¯Ø§Ø²ÙØ¯ÙâØ§Û Ú©Ù Ø§Ú¯Ø± آ٠زÙ
ستا٠اسپکترÙÙ
ب٠دستÙ
Ù
ÛâØ±Ø³ÛØ¯Ø Ø´Ø§ÛØ¯ تÙ
اÙ
Ø²ÙØ¯Ú¯ÛâØ§Ù
را با Ø¢Ù Ù
ÛâÚ¯Ø°Ø±Ø§ÙØ¯Ù
. Ø§Ø¯Ø§Û Ø¯ÛÙÛ Ø¨Ù Ù
Ø³ÛØ±Û Ú©Ù ÙØ±ÙتÙ
. اÛ٠کتاب اکÙÙ٠تکÙ
Û٠شد٠٠با ÙØ§Ù
«Z80 Story» در ØµÙØÙ Workbench در دسترس است.",about_p7:"ÙÙ
ÛØ´Ù Ø¨Ø§ÙØ± داشتÙâØ§Ù
Ú©Ù Ø±ÙØ§Ûت Ú©Ø±Ø¯Ù ØªØ§Ø±ÛØ® اÛÙ Ù
اشÛÙâÙØ§Ø Ø®ÙØ¯Ø´ Ø´Ú©ÙÛ Ø§Ø² Ø¬Ø§ÙØ¯Ø§ÙÚ¯Û Ø§Ø³Øª. راÙÛ Ø¨Ø±Ø§Û Ø§ÛÙÚ©Ù Ø¢Ù Ø±ÙØ²ÙØ§Ø Ø¢Ù Ø±ÙÚ¯âÙØ§Ø Ø¢Ù ØµØ¯Ø§ÙØ§Ø ÙØ±Ú¯Ø² کاÙ
ÙØ§Ù خاÙ
ÙØ´ ÙØ´ÙÙØ¯.",about_p8:"ب٠اÛÙØ¬Ø§ Ø®ÙØ´ Ø¢Ù
Ø¯ÛØ¯.",about_p9:"c64spark",about_contact:"ارتباط Ù
ستÙÛÙ
با Ù
Ù: <a href='https://t.me/c64spark' target='_blank' style='color:#FFAA66;'>telegram: @c64spark</a>",bazaar_label:"Ù¾Ø§Ø³Ø§Ú Ø±ØªØ±Ù",bazaar_intro_fa:"<p>Ø¨Ù Ù¾Ø§Ø³Ø§Ú Ø±ØªØ±Ù Ø®ÙØ´ Ø¢Ù
Ø¯ÛØ¯.</p><p>اÛÙØ¬Ø§ اÙÙÛ٠بازارÚÙ ØªØ®ØµØµÛ Ø±ØªØ±Ù Ù ØªÚ©ÙÙÙÙÚÛ Ø§ÛØ±Ø§Ù است. اگر در زÙ
ÛÙ٠کاÙ
Ù¾ÛÙØªØ±ÙØ§Û Ú©ÙØ§Ø³ÛÚ©Ø Ú©ÙØ³ÙÙâÙØ§Û ÙØ¯ÛÙ
Û Ù Ù
Ø¯Ø±ÙØ ÙØ·Ø¹Ø§Øª اÙکترÙÙÛÚ©Ø Ø³Ø®ØªâØ§ÙØ²Ø§Ø±Ø ÙØ±Ù
âØ§ÙØ²Ø§Ø±Ø تعÙ
ÛØ±Ø§Øª ØªØ®ØµØµÛ ÛØ§ ÙØ± ØÙز٠Ù
رتبط دÛÚ¯Ø±Û ÙØ¹Ø§ÙÛØª Ø¯Ø§Ø±ÛØ¯Ø Ù
ÛâØªÙØ§ÙÛØ¯ ÙØ±ÙØ´Ú¯Ø§Ù ØØ±ÙÙâØ§Û Ø®ÙØ¯ را در اÛÙ Ù¾Ø§Ø³Ø§Ú Ø§ÙØªØªØ§Ø Ú©ÙÛØ¯. ØØªÛ اگر ÙØ¨Ø³Ø§Ûت Ø´Ø®ØµÛ ÙÙ
Ø¯Ø§Ø´ØªÙ Ø¨Ø§Ø´ÛØ¯Ø Ù
ÛâØªÙØ§ÙÛØ¯ در اÛÙ Ù¾ÙØ¬Ø±ÙØ ÙØ¨Ø³Ø§Ûت Ø´Ø®ØµÛ Ø®ÙØ¯ را بÙâØµÙØ±Øª ÛÚ©Û Ø§Ø² Ù¾ÙØ¬Ø±ÙâÙØ§Û Ø²ÙØ¯Ù Workbench Ø¢Ù
ÛÚ¯Ø§Ø Ø¯Ø± Ù
عرض Ø¨Ø§Ø²Ø¯ÛØ¯Ú©ÙÙØ¯Ú¯Ø§Ù Ù¾Ø§Ø³Ø§Ú Ø±ØªØ±Ù ÙØ±Ø§Ø± دÙÛØ¯.</p><p><strong>Ú٠خدÙ
Ø§ØªÛ Ø§Ø±Ø§Ø¦Ù Ù
ÛâØ¯ÙÛÙ
Ø</strong></p><p>⢠غرÙÙ Ø§Ø®ØªØµØ§ØµÛ Ø¨Ø§ ÙØ§Ù
Ù ÙÙÚ¯ÙÛ Ø´Ù
ا<br>⢠درج Ù
ØØµÙÙØ§Øª ٠خدÙ
ات با ÙÛÙ
تâگذارÛ<br>⢠ÙÙ
Ø§ÛØ´ ÙØ¨Ø³Ø§Ûت Ø´Ø®ØµÛ Ø´Ù
ا در ÙØ§Ùب Ù¾ÙØ¬Ø±Ù Ø²ÙØ¯Ù Ø¢Ù
Ûگا<br>⢠ÙÛÙÚ© Ù
ستÙÛÙ
تÙ
اس با Ø´Ù
ا</p><p>Ø¨Ø±Ø§Û Ø«Ø¨Øª Ø¯Ø±Ø®ÙØ§Ø³ØªØ کاÙÛØ³Øª دکÙ
٠سبز رÙÚ¯ Ø²ÛØ± را ÙÙ
س Ú©ÙÛØ¯.</p><div style=\"background-color:rgba(0,0,0,0.4);border:1px solid rgba(255,170,102,0.4);padding:10px 15px;border-radius:4px;margin-top:15px;font-size:10px;color:#FFAA66;text-align:center;\">Ù
Ø¯ÛØ±Ûت ÙØ±Ú©Ø¯Ø§Ù
از ÙØ±ÙشگاÙâÙØ§Û Ù¾Ø§Ø³Ø§Ú Ø±ØªØ±Ù Ø¨ÙâØ¹ÙØ¯Ù Ù
اÙÚ© ÙØ±Ùشگا٠است. Ø¢Ù
ÛÚ¯Ø§Ø§Ø³ØªÙØ± ÙÛÚâÚ¯ÙÙÙ Ù
سئÙÙÛØªÛ در ÙØ¨Ø§Ù Ù
ØØªÙØ§Ø Ø®Ø¯Ù
ات Ù ØªØ¹ÙØ¯Ø§Øª ÙØ±ÙشگاÙâÙØ§ ÙÙ
ÛâÙ¾Ø°ÛØ±Ø¯. در ØµÙØ±Øª Ù
Ø´Ø§ÙØ¯ÙÙ ÙØ±Ú¯ÙÙ٠تخÙÙØ ÙØ·Ùا٠Ù
راتب را از طرÛ٠ارسا٠اÛÙ
Û٠ب٠[email protected] Ø§Ø·ÙØ§Ø¹ دÙÛØ¯.</div>",bazaar_intro_en:"<p>Welcome to the Retro Bazaar.</p><p>This is Iran's first specialized retro and technology marketplace. If you are active in the field of classic computers, vintage and modern consoles, electronic components, hardware, softw
455are, specialized repairs, or any other related area, you can open your professional store in this bazaar. Even if you have a personal website, you can showcase it here as one of the live Amiga Workbench windows for Retro Bazaar visitors.</p><p><strong>What services do we offer?</strong></p><p>⢠A dedicated booth with your name and logo<br>⢠Listing products and services with pricing<br>⢠Displaying your personal website as a live Amiga window<br>⢠Direct contact link to you</p><p>To submit your request, simply click the green button below.</p><div style=\"background-color:rgba(0,0,0,0.4);border:1px solid rgba(255,170,102,0.4);padding:10px 15px;border-radius:4px;margin-top:15px;font-size:10px;color:#FFAA66;text-align:center;\">Each shop in the Retro Bazaar is managed by its respective owner. AmigaStore assumes no responsibility for the content, services, or commitments of any shop. If you notice any violation, please report it via email to [email protected].</div>"}}; 456function t(key){return translations[currentLang][key]||key;} 457function applyTranslations(){document.querySelectorAll('[data-lang-key]').forEach(el=>{const key=el.getAttribute('data-lang-key');if(el.tagName==='INPUT'||el.tagName==='TEXTAREA')el.placeholder=t(key);
457else el.innerHTML=t(key);});document.querySelectorAll('.article-paragraph').forEach(el=>{if(currentLang==='fa'){el.classList.add('rtl-text');el.classList.remove('ltr-text');}else{el.classList.add('ltr-text');el.classList.remove('rtl-text');}});const bazaarFa=document.querySelector('[data-lang-key="bazaar_intro_fa"]');const bazaarEn=document.querySelector('[data-lang-key="bazaar_intro_en"]');if(bazaarFa)bazaarFa.style.display=currentLang==='fa'?'':'none';if(bazaarEn)bazaarEn.style.display=currentLang==='en'?'':'none';document.querySelectorAll('.window-content').forEach(el=>{el.style.direction=currentLang==='fa'?'rtl':'ltr';});document.getElementById('lang-toggle-header').textContent=currentLang==='en'?'ÙØ§Ø±Ø³Û':'English';setBookBadgeLang(currentLang);updateCartDisplay();updateCartIcon();} 458function toggleLanguage(){currentLang=currentLang==='en'?'fa':'en';applyTranslations();} 459function toggleArticlesMenu(){const m=document.getElementById('articles-menu');m.style.display=m.style.display==='block'?'none':'block';} 460document.addEventListener('click',function(e){const m=document.getElementById('articles-menu'),t=document.getElementById('articles-toggle');if(!m.contains(e.target)&&!t.contains(e.target))m.style.display='none';}); 461function updateFooterTime(){const n=new Date();document.getElementById('footer-right').textContent=`${String(n.getHours()).padStart(2,'0')}:${String(n.getMinutes()).padStart(2,'0')}:${String(n.getSeconds()).padStart(2,'0')}`;}setInterval(updateFooterTime,1000);updateFooterTime(); 462function openTvLightbox(){const lb=document.getElementById('tv-lightbox'),lbV=document.getElementById('tv-lightbox-video');if(musicAudio&&!musicAudio.paused)musicAudio.pause();if(lbV){lbV.currentTime=0;lbV.muted=false;lbV.play();}lb.classList.add('active');} 463function closeTvLightbox(){const lb=document.getElementById('tv-lightbox'),lbV=document.getElementById('tv-lightbox-video');if(lbV){lbV.pause();lbV.muted=true;}lb.classList.remove('active');} 464document.addEventListener('keydown',function(e){if(e.key==='Escape'){closeTvLightbox();closeAdLightbox();closeShopModal();closeCodeModal();closeNewsSubmitModal();closeTeamApplyModal();closeAdSubmitModal();closeProductAdminModal();closeProductConfirmModal();closeAdminPassProductsModal();closeAdminPassDiscussionModal();closeDeleteConfirmModal();closeMarketAccessModal();}}); 465const playlist=[{title:"Bitstream Odyssey is the manifestation of an instrumental sonic universe; a realm where cyberpunk glimmers and synthwave pulses paint pixelated memories upon the canvas of time. This album invites you to explore the hidden layers of data and encounter the beauty of digital forms...... The complete version of this memorable work has been produced as a physical cassette tape by c64spark and released in 2025",url:"https://raw.githubusercontent.com/silverspark-ir/Amigastore/main/Bitstream%20Odyssey%20%20-%20%20side%20B%20%20-%20%20part%20A.mp3"}]; 466let currentTrack=0,isPlaying=false,holdInterval=null; 467const musicAudio=document.getElementById('music-player'),playBtn=document.getElementById('btn-play'),marqueeEl=document.getElementById('player-marquee'); 468function loadTrack(index){if(index<0||index>=playlist.length)return;currentTrack=index;musicAudio.src=playlist[currentTrack].url;musicAudio.load();marqueeEl.textContent=playlist[currentTrack].title;} 469function togglePlay(){if(isPlaying){musicAudio.pause();playBtn.classList.remove('playing');isPlaying=false;}else{const lbV=document.getElementById('tv-lightbox-video');if(lbV&&!lbV.paused)lbV.muted=true;musicAudio.play().then(()=>{playBtn.classList.add('playing');isPlaying=true;}).catch(()=>{});}} 470musicAudio.addEventListener('ended',()=>{playBtn.classList.remove('playing');isPlaying=false;}); 471function startHold(direction){seekTrack(direction);holdInterval=setInterval(()=>seekTrack(direction),150);} 472function stopHold(){if(holdInterval){clearInterval(holdInterval);holdInterval=null;}} 473function seekTrack(direction){if(direction==='next')musicAudio.currentTime=Math.min(musicAudio.duration||0,musicAudio.currentTime+5);else musicAudio.currentTime=Math.max(0,musicAudio.currentTime-5);}loadTrack(0); 474let activeWindow=null,isDraggingW=false,isResizingW=false,dragWindow=null,resizeWindow=null,dragOffset={x:0,y:0},resizeStart={x:0,y:0,width:0,height:0},zIndexCounter=100,openWindowCount=0; 475const windowOriginalSizes=new Map(),windowPositions=new Map(); 476let cartItems=[];const cartIcon=document.getElementById('icon-cart'); 477function showCartNotification(msg){const notification=document.createElement('div');notification.className='cart-notification';notification.textContent=msg;const desktop=document.getElementById('desktop');if(desktop){desktop.appendChild(notification);}else{document.body.appendChild(notification);}setTimeout(()=>{if(notification.parentNode)notification.parentNode.removeChild(notification);},2200);} 478function addToCart(n,p){cartItems.push({name:n,price:p});localStorage.setItem('amigaCart',JSON.stringify(cartItems));updateCartIcon();updateCartDisplay();showCartNotification(t('cart_added'));} 479function removeFromCart(i){cartItems.splice(i,1);localStorage.setItem('amigaCart',JSON.stringify(cartItems));updateCartIcon();updateCartDisplay();} 480function updateCartIcon(){if(cartIcon)cartIcon.classList.toggle('cart-icon-glow',cartItems.length>0);} 481function updateCartDisplay(){const c=document.getElementById('cart-items-container');if(!c)return;const tc=document.getElementById('cart-total-container'),bc=document.getElementById('cart-buttons-container'),isec=document.getElementById('cart-input-section');if(!cartFormVisible){if(isec)isec.style.display='none';if(bc)bc.style.display='flex';}if(cartItems.length===0){cartFormVisible=false;if(isec)isec.style.display='none';if(bc)bc.style.display='flex';const fb=document.getElementById('cart-final-buttons');if(fb)fb.style.display='none';c.innerHTML=`<div style="text-align:center;padding:20px;color:#888;">${t('cart_empty')}</div>`;tc.innerHTML='';return;}let h='',tot=0;
481cartItems.forEach((it,i)=>{tot+=it.price;h+=`<div class="cart-item"><div class="cart-item-info"><div class="cart-item-name">${escapeHTML(it.name)}</div><div class="cart-item-price">${it.price.toLocaleString()} ${t('currency')}</div></div><div class="cart-item-remove" data-index="${i}">â</div></div>`;});c.innerHTML=h;tc.innerHTML=`<div class="cart-total-label">${t('cart_calculate')}</div><div class="cart-total-amount">${tot.toLocaleString()} ${t('currency')}</div>`;c.querySelectorAll('.cart-item-remove').forEach(b=>{b.addEventListener('click',function(e){e.stopPropagation();e.preventDefault();removeFromCart(parseInt(this.getAttribute('data-index')));});});} 482function showCartInputs(){if(cartItems.length===0){alert(t('cart_empty'));return;}cartFormVisible=true;document.getElementById('cart-input-section').style.display='block';document.getElementById('cart-buttons-container').style.display='none';document.getElementById('cart-final-buttons').style.display='flex';} 483function sendInvoice(){const nm=document.getElementById('cart-customer-name')?.value;const ph=document.getElementById('cart-customer-phone')?.value;const ad=document.getElementById('cart-customer-address')?.value;if(!nm||!ph||!ad){alert('ÙØ·Ùا٠ت٠ا٠ÙÛÙØ¯Ùا را پر Ú©ÙÛØ¯.');return;}let msg=`ð ${nm}\nð ${ph}\nð ${ad}\n\n`;let tot=0;cartItems.forEach(it=>{tot+=it.price;msg+=`⢠${it.name}: ${it.price.toLocaleString()} ${t('currency')}\n`;});msg+=`\nð° ${t('cart_calculate')}: ${tot.toLocaleString()} ${t('currency')}`;window.open(`https://wa.me/989116546234?text=${encodeURIComponent(msg)}`,'_blank');cartItems=[];localStorage.removeItem('amigaCart');cartFormVisible=false;updateCartIcon();updateCartDisplay();closeWindow('window-cart');} 484function getWindowSize(wid){if(wid==='window-discussion')return{width:400,height:500};if(wid==='window-market')return{width:450,height:550};if(wid==='window-project')return{width:450,height:600};if(wid==='window-retro-bazaar')return{width:450,height:550};if(wid==='window-book-list')return{width:520,height:600};if(wid==='window-uploadkon')return{width:500,height:600};if(wid==='window-shop-retrolab')return{width:470,height:670};if(wid==='window-tutorials')return{width:420,height:480};if(wid.startsWith('window-shop-'))return{width:500,height:600};if(wid.startsWith('window-news-'))return{width:500,height:600};if(wid.startsWith('window-article-'))return{width:500,height:600};if(wid.startsWith('window-ext-'))return{width:500,height:600};if(wid==='window-forth-live')return{width:900,height:700};return{width:300,height:600};} 485function getStaggeredPosition(wid){if(windowPositions.has(wid))return windowPositions.get(wid);const p={left:50+(openWindowCount*30)%400,top:50+(openWindowCount*30)%300};windowPositions.set(wid,p);openWindowCount++;return p;} 486function openWindow(wid){document.getElementById('articles-menu').style.display='none';const w=document.getElementById(wid);if(!w)return;zIndexCounter++;w.style.zIndex=zIndexCounter;w.classList.add('active');if(!w.dataset.positioned){const pos=getStaggeredPosition(wid),sz=getWindowSize(wid);w.style.left=pos.left+'px';w.style.top=pos.top+'px';w.style.width=sz.width+'px';w.style.height=sz.height+'px';w.dataset.positioned='true';setupWindowDrag(wid);setupWindowResize(wid);}keepWindowInBounds(w);activeWindow=w;if(wid==='window-cart')updateCartDisplay();if(wid==='window-about')buildAboutContent();if(wid==='window-discussion'&&!cachedComments)loadNews();if(wid==='window-market'&&!cachedAds)loadAds();if(wid==='window-retro-bazaar')loadShops();if(wid==='window-project'&&!cachedProducts)loadProducts();} 487function buildAboutContent(){const ac=document.getElementById('about-content');const contactEl=document.getElementById('about-contact');if(!ac)return;let p='';for(let i=1;i<=9;i++)p+=`<div class="article-paragraph ${currentLang==='fa'?'rtl-text':'ltr-text'}">${t('about_p'+i)}</div>`;ac.innerHTML=`<div class="article-title">${t('about_title')}</div><img src="https://raw.githubusercontent.com/silverspark-ir/Amigastore/main/c64spark.ir%20logo.png" class="about-logo" alt="c64spark">${p}`;if(contactEl){if(currentLang==='fa'){contactEl.innerHTML=`<a href="https://t.me/c64spark" target="_blank" class="about-contact-btn">ð¡ Ø§Ø±ØªØ¨Ø§Ø· در تÙگرا٠</a>`;}else{contactEl.innerHTML=`<a href="https://t.me/c64spark" target="_blank" class="about-contact-btn">ð¡ Contact on Telegram</a>`;}}} 488function closeWindow(wid){const w=document.getElementById(wid);if(!w)return;w.classList.remove('active');w.classList.remove('minimized');if(activeWindow===w)activeWindow=null;if(wid==='window-discussion'){adminMode=false;}if(getCurrentPath()!=='/'){history.pushState(null,'','/');}} 489function toggleMinimize(wid){const w=document.getElementById(wid);if(!w)return;if(w.classList.contains('minimized')){w.classList.remove('minimized');if(windowOriginalSizes.has(wid)){w.style.height=windowOriginalSizes.get(wid).height+'px';windowOriginalSizes.delete(wid);}}else{windowOriginalSizes.set(wid,{height:w.offsetHeight,width:w.offsetWidth});w.classList.add('minimized');w.style.height='33px';}openWindow(wid);} 490function setupWindowDrag(wid){const w=document.getElementById(wid);if(!w)return;const h=w.querySelector('.window-header');if(!h)return;h.addEventListener('mousedown',function(e){if(e.target.classList.contains('window-btn'))return;e.preventDefault();e.stopPropagation();dragWindow=w;isDraggingW=true;dragOffset.x=e.clientX-w.offsetLeft;dragOffset.y=e.clientY-w.offsetTop;openWindow(wid);document.addEventListener('mousemove',drag);document.addEventListener('mouseup',stopDrag);});h.addEventListener('touchstart',function(e){if(e.target.classList.contains('window-btn'))return;e.preventDefault();e.stopPropagation();const t=e.touches[0];dragWindow=w;isDraggingW=true;dragOffset.x=t.clientX-w.offsetLeft;dragOffset.y=t.clientY-w.offsetTop;openWindow(wid);document.addEventListener('touchmove',dragTouch);document.addEventListener('touchend',stopDragTouch);});} 491function drag(e){if(!isDraggingW||!dragWindow)return;e.preventDefault();const d=document.getElementById('desktop');dragWindow.style.left=Math.max(10,Math.min(e.clientX-dragOffset.x,d.scrollWidth-dragWindow.offsetWidth-10))+'px';dragWindow.style.top=Math.max(10,Math.min(e.clientY-dragOffset.y,d.scrollHeight-dragWindow.offsetHeight-10))+'px';} 492function dragTouch(e){if(!isDraggingW||!dragWindow)return;e.preventDefault();const d=document.getElementById('desktop'),t=e.touches[0];dragWindow.style.left=Math.max(10,Math.min(t.clientX-dragOffset.x,d.scrollWidth-dragWindow.offsetWidth-10))+'px';dragWindow.style.top=Math.max(10,Math.min(t.clientY-dragOffset.y,d.scrollHeight-dragWindow.offsetHeight-10))+'px';}
493function stopDrag(){isDraggingW=false;dragWindow=null;document.removeEventListener('mousemove',drag);document.removeEventListener('mouseup',stopDrag);} 494function stopDragTouch(){isDraggingW=false;dragWindow=null;document.removeEventListener('touchmove',dragTouch);document.removeEventListener('touchend',stopDragTouch);} 495function setupWindowResize(wid){const w=document.getElementById(wid);if(!w)return;const rh=w.querySelector('.resize-handle');if(!rh)return;rh.addEventListener('mousedown',function(e){e.preventDefault();e.stopPropagation();resizeWindow=w;isResizingW=true;resizeStart={x:e.clientX,y:e.clientY,width:w.offsetWidth,height:w.offsetHeight};openWindow(wid);document.addEventListener('mousemove',resize);document.addEventListener('mouseup',stopResize);});rh.addEventListener('touchstart',function(e){e.preventDefault();e.stopPropagation();const t=e.touches[0];resizeWindow=w;isResizingW=true;resizeStart={x:t.clientX,y:t.clientY,width:w.offsetWidth,height:w.offsetHeight};openWindow(wid);document.addEventListener('touchmove',resizeTouch);document.addEventListener('touchend',stopResizeTouch);});} 496function resize(e){if(!isResizingW||!resizeWindow)return;e.preventDefault();resizeWindow.style.width=Math.min(1200,Math.max(250,resizeStart.width+(e.clientX-resizeStart.x)))+'px';resizeWindow.style.height=Math.min(800,Math.max(200,resizeStart.height+(e.clientY-resizeStart.y)))+'px';keepWindowInBounds(resizeWindow);} 497function resizeTouch(e){if(!isResizingW||!resizeWindow)return;e.preventDefault();const t=e.touches[0];resizeWindow.style.width=Math.min(1200,Math.max(250,resizeStart.width+(t.clientX-resizeStart.x)))+'px';resizeWindow.style.height=Math.min(800,Math.max(200,resizeStart.height+(t.clientY-resizeStart.y)))+'px';keepWindowInBounds(resizeWindow);} 498function stopResize(){isResizingW=false;resizeWindow=null;document.removeEventListener('mousemove',resize);document.removeEventListener('mouseup',stopResize);} 499function stopResizeTouch(){isResizingW=false;resizeWindow=null;document.removeEventListener('touchmove',resizeTouch);document.removeEventListener('touchend',stopResizeTouch);} 500function keepWindowInBounds(w){const d=document.getElementById('desktop');let l=parseInt(w.style.left)||50,t=parseInt(w.style.top)||50,wd=parseInt(w.style.width)||300,h=w.classList.contains('minimized')?33:(parseInt(w.style.height)||600);if(l+wd>d.scrollWidth)l=Math.max(10,d.scrollWidth-wd-10);if(t+h>d.scrollHeight)t=Math.max(10,d.scrollHeight-h-10);if(l<10)l=10;if(t<10)t=10;w.style.left=l+'px';w.style.top=t+'px';} 501function openAdminPassDiscussionModal(){document.getElementById('admin-password-discussion-input').value='';document.getElementById('admin-pass-discussion-modal-overlay').classList.add('active');} 502function closeAdminPassDiscussionModal(){document.getElementById('admin-pass-discussion-modal-overlay').classList.remove('active');} 503function checkAdminPasswordDiscussion(){const input=document.getElementById('admin-password-discussion-input')?.value.trim();if(input===ADMIN_PASSWORD){closeAdminPassDiscussionModal();adminMode=true;const container=document.getElementById('news-container');if(container&&cachedComments){renderNews(cachedComments.filter(a=>a.type==='team_application'&&a.approved===true),container);}}else{alert(currentLang==='fa'?'ر٠ز Ø¹Ø¨ÙØ± اشتبا٠است.':'Incorrect password.');}} 504function openDeleteConfirmModal(item){pendingDeleteData=item;const modalText=document.querySelector('#delete-confirm-modal .confirm-text');if(modalText){modalText.textContent=currentLang==='fa'?'Ø¢ÛØ§ از ØØ°Ù اÛ٠خبر اط٠ÛÙØ§Ù Ø¯Ø§Ø±ÛØ¯Ø':'Are you sure you want to delete this news?';}document.getElementById('delete-confirm-modal-overlay').classList.add('active');const yesBtn=document.getElementById('delete-confirm-yes-btn');if(yesBtn){yesBtn.onclick=function(){executeDeleteNews();};}} 505function closeDeleteConfirmModal(){document.getElementById('delete-confirm-modal-overlay').classList.remove('active');pendingDeleteData=null;} 506async function executeDeleteNews(){if(!pendingDeleteData||!cachedComments)return;const ri=pendingDeleteData.reporterIndex,ni=pendingDeleteData.newsIndex;const all=JSON.parse(JSON.stringify(cachedComments));const reporters=all.filter(a=>a.type==='team_application'&&a.approved===true);if(!reporters[ri]||!reporters[ri].news[ni])return;reporters[ri].news.splice(ni,1);if(reporters[ri].news.length===0){reporters[ri].ratings=[];}const fullAll=all.map(a=>{if(a.type==='team_application'&&a.approved===true){const idx=cachedComments.filter(x=>x.type==='team_application'&&x.approved===true).indexOf(cachedComments.filter(x=>x.type==='team_application'&&x.approved===true).find(r=>r.phone===a.phone));if(idx===ri){a.news=reporters[ri].news;a.ratings=reporters[ri].ratings;}}return a;});const jsonStr=JSON.stringify(fullAll,null,2);try{const r=await fetch(`https://api.github.com/repos/${REPO_OWNER}/${REPO_NAME}/contents/${COMMENTS_FILE}`,{headers:{'Authorization':`token ${GITHUB_TOKEN}`,'Accept':'application/vnd.github.v3+json'}});let sha=null;if(r.ok){const d=await r.json();sha=d.sha;}const ur=await fetch(`https://api.github.com/repos/${REPO_OWNER}/${REPO_NAME}/contents/${COMMENTS_FILE}`,{method:'PUT',headers:{'Authorization':`token ${GITHUB_TOKEN}`,'Accept':'application/vnd.github.v3+json','Content-Type':'application/json'},body:JSON.stringify({message:`delete news ${ri}/${ni}`,content:btoa(unescape(encodeURIComponent(jsonStr))),sha})});if(ur.ok){cachedComments=fullAll;closeDeleteConfirmModal();const container=document.getElementById('news-container');if(container)renderNews(cachedComments.filter(a=>a.type==='team_application'&&a.approved===true),container);document.getElementById('success-alert-text').textContent=currentLang==='fa'?'خبر با Ù ÙÙÙÛØª ØØ°Ù شد.':'News deleted successfully.';document.getElementById('success-alert-overlay').classList.add('active');}else{alert(currentLang==='fa'?'خطا در ØØ°Ù خبر.':'Error deleting news.');}}catch(e){alert(currentLang==='fa'?'خطا در ارتباط با Ø³Ø±ÙØ±.':'Server connection error.');}} 507function openCodeModal(){document.getElementById('code-input').value='';document.getElementById('code-modal-overlay').classList.add('active');} 508function closeCodeModal(){document.getElementById('code-modal-overlay').classList.remove('active');} 509function verifyCode(){const code=document.getElementById('code-input')?.value.trim();if(!code)return;fetch(`https://api.github.com/repos/${REPO_OWNER}/${REPO_NAME}/contents/${COMMENTS_FILE}`,{headers:{'Authorization':`token ${GITHUB_TOKEN}`,'Accept':'application/vnd.github.v3+json'}}).then(r=>{if(!r.ok)throw new Error();return r.json();}).then(d=>{const all=JSON.parse(decodeURIComponent(escape(atob(d.content))));const reporter=all.find(a=>a.type==='team_application'&&a.code===code&&a.approved===true);if(reporter){currentReporterCode=code;closeCodeModal();openNewsSubmitModal();}else{alert(currentLang==='fa'?'کد عضÙÛØª ÙØ§Ù عتبر است.':'Invalid membership code.');}}
509).catch(()=>{alert(currentLang==='fa'?'خطا در Ø¨Ø±Ø±Ø³Û Ú©Ø¯.':'Error verifying code.');});} 510function openNewsSubmitModal(item){const hint=document.getElementById('news-submit-modal-hint');const btn=document.getElementById('news-submit-btn');if(item){pendingEditData=item;document.getElementById('news-image1').value=item.images?item.images[0]||'':'';document.getElementById('news-image2').value=item.images?item.images[1]||'':'';document.getElementById('news-image3').value=item.images?item.images[2]||'':'';document.getElementById('news-title').value=item.title||'';document.getElementById('news-body').value=item.body||'';document.getElementById('news-title-en').value=item.title_en||'';document.getElementById('news-body-en').value=item.body_en||'';document.getElementById('news-source').value=item.source||'';if(hint)hint.textContent=currentLang==='fa'?'ÙÛØ±Ø§ÛØ´ خبر':'Edit News';if(btn){btn.textContent=currentLang==='fa'?'اع٠ا٠تغÛÛØ±Ø§Øª':'Apply Changes';btn.onclick=function(){submitEditedNews();};}}else{pendingEditData=null;document.getElementById('news-image1').value='';document.getElementById('news-image2').value='';document.getElementById('news-image3').value='';document.getElementById('news-title').value='';document.getElementById('news-body').value='';document.getElementById('news-title-en').value='';document.getElementById('news-body-en').value='';document.getElementById('news-source').value='';if(hint)hint.textContent=currentLang==='fa'?'ÙØ±Ù ثبت خبر':'Submit News';if(btn){btn.textContent=currentLang==='fa'?'ثبت':'Submit';btn.onclick=function(){submitNews();};}if(btn){btn.style.opacity='1';btn.style.pointerEvents='auto';btn.disabled=false;btn.style.cursor='pointer';}}document.getElementById('news-submit-modal-overlay').classList.add('active');} 511function closeNewsSubmitModal(){document.getElementById('news-submit-modal-overlay').classList.remove('active');pendingEditData=null;} 512async function submitNews(){const img1=document.getElementById('news-image1')?.value.trim();const img2=document.getElementById('news-image2')?.value.trim();const img3=document.getElementById('news-image3')?.value.trim();const title=document.getElementById('news-title')?.value.trim();const body=document.getElementById('news-body')?.value.trim();const title_en=document.getElementById('news-title-en')?.value.trim();const body_en=document.getElementById('news-body-en')?.value.trim();const source=document.getElementById('news-source')?.value.trim();if(!img1||!title||!body){alert(currentLang==='fa'?'ÙØ·Ùا٠ÙÛÙØ¯ÙØ§Û Ø§Ø¬Ø¨Ø§Ø±Û Ø±Ø§ پر Ú©ÙÛØ¯.':'Please fill in required fields.');return;}const btn=document.getElementById('news-submit-btn');if(btn){btn.textContent=currentLang==='fa'?'در ØØ§Ù ثبت...':'Submitting...';btn.disabled=true;btn.style.opacity='0.5';btn.style.cursor='wait';}try{const r=await fetch(`https://api.github.com/repos/${REPO_OWNER}/${REPO_NAME}/contents/${COMMENTS_FILE}`,{headers:{'Authorization':`token ${GITHUB_TOKEN}`,'Accept':'application/vnd.github.v3+json'}});let all=[];let sha=null;if(r.ok){const d=await r.json();all=JSON.parse(decodeURIComponent(escape(atob(d.content))));sha=d.sha;}const reporter=all.find(a=>a.type==='team_application'&&a.code===currentReporterCode&&a.approved===true);if(!reporter){alert(currentLang==='fa'?'خبرÙگار ÛØ§Ùت ÙØ´Ø¯.':'Reporter not found.');if(btn){btn.textContent=currentLang==='fa'?'ثبت':'Submit';btn.disabled=false;btn.style.opacity='1';btn.style.cursor='pointer';}return;}if(!reporter.news)reporter.news=[];reporter.news.push({images:[img1,img2,img3].filter(i=>i),title,body,title_en:title_en||'',body_en:body_en||'',source:source||'',date:new Date().toLocaleDateString('fa-IR')});const jsonStr=JSON.stringify(all,null,2);const ur=await fetch(`https://api.github.com/repos/${REPO_OWNER}/${REPO_NAME}/contents/${COMMENTS_FILE}`,{method:'PUT',headers:{'Authorization':`token ${GITHUB_TOKEN}`,'Accept':'application/vnd.github.v3+json','Content-Type':'application/json'},body:JSON.stringify({message:`news from ${reporter.name}`,content:btoa(unescape(encodeURIComponent(jsonStr))),sha})});if(ur.ok){closeNewsSubmitModal();cachedComments=all;document.getElementById('success-alert-overlay').classList.add('active');const container=document.getElementById('news-container');if(container)renderNews(all.filter(a=>a.type==='team_application'&&a.approved===true),container);}else{alert(currentLang==='fa'?'خطا در ثبت خبر.':'Error submitting news.');}}catch(e){alert(currentLang==='fa'?'خطا در ارتباط با Ø³Ø±ÙØ±.':'Server connection error.');}if(btn){btn.textContent=currentLang==='fa'?'ثبت':'Submit';btn.disabled=false;btn.style.opacity='1';btn.style.cursor='pointer';}} 513async function submitEditedNews(){if(!pendingEditData||!cachedComments)return;const img1=document.getElementById('news-image1')?.value.trim();const img2=document.getElementById('news-image2')?.value.trim();const img3=document.getElementById('news-image3')?.value.trim();const title=document.getElementById('news-title')?.value.trim();const body=document.getElementById('news-body')?.value.trim();const title_en=document.getElementById('news-title-en')?.value.trim();const body_en=document.getElementById('news-body-en')?.value.trim();const source=document.getElementById('news-source')?.value.trim();
513if(!img1||!title||!body){alert(currentLang==='fa'?'ÙØ·Ùا٠ÙÛÙØ¯ÙØ§Û Ø§Ø¬Ø¨Ø§Ø±Û Ø±Ø§ پر Ú©ÙÛØ¯.':'Please fill in required fields.');return;}const btn=document.getElementById('news-submit-btn');if(btn){btn.textContent=currentLang==='fa'?'در ØØ§Ù ثبت...':'Applying...';btn.disabled=true;btn.style.opacity='0.5';btn.style.cursor='wait';}try{const r=await fetch(`https://api.github.com/repos/${REPO_OWNER}/${REPO_NAME}/contents/${COMMENTS_FILE}`,{headers:{'Authorization':`token ${GITHUB_TOKEN}`,'Accept':'application/vnd.github.v3+json'}});let all=[];let sha=null;if(r.ok){const d=await r.json();all=JSON.parse(decodeURIComponent(escape(atob(d.content))));sha=d.sha;}const ri=pendingEditData.reporterIndex,ni=pendingEditData.newsIndex;const reporters=all.filter(a=>a.type==='team_application'&&a.approved===true);if(!reporters[ri]||!reporters[ri].news[ni]){alert(currentLang==='fa'?'خبر ÛØ§Ùت ÙØ´Ø¯.':'News not found.');if(btn){btn.textContent=currentLang==='fa'?'اع٠ا٠تغÛÛØ±Ø§Øª':'Apply Changes';btn.disabled=false;btn.style.opacity='1';btn.style.cursor='pointer';}return;}reporters[ri].news[ni]={images:[img1,img2,img3].filter(i=>i),title,body,title_en:title_en||'',body_en:body_en||'',source:source||'',date:reporters[ri].news[ni].date||new Date().toLocaleDateString('fa-IR')};const fullAll=all.map(a=>{if(a.type==='team_application'&&a.approved===true){const idx=cachedComments.filter(x=>x.type==='team_application'&&x.approved===true).indexOf(cachedComments.filter(x=>x.type==='team_application'&&x.approved===true).find(r=>r.phone===a.phone));if(idx===ri)a.news=reporters[ri].news;}return a;});const jsonStr=JSON.stringify(fullAll,null,2);const ur=await fetch(`https://api.github.com/repos/${REPO_OWNER}/${REPO_NAME}/contents/${COMMENTS_FILE}`,{method:'PUT',headers:{'Authorization':`token ${GITHUB_TOKEN}`,'Accept':'application/vnd.github.v3+json','Content-Type':'application/json'},body:JSON.stringify({message:`edit news ${ri}/${ni}`,content:btoa(unescape(encodeURIComponent(jsonStr))),sha})});if(ur.ok){closeNewsSubmitModal();cachedComments=fullAll;pendingEditData=null;const container=document.getElementById('news-container');if(container)renderNews(cachedComments.filter(a=>a.type==='team_application'&&a.approved===true),container);document.getElementById('success-alert-text').textContent=currentLang==='fa'?'خبر با Ù ÙÙÙÛØª ÙÛØ±Ø§ÛØ´ شد.':'News edited successfully.';document.getElementById('success-alert-overlay').classList.add('active');}else{alert(currentLang==='fa'?'خطا در ÙÛØ±Ø§ÛØ´ خبر.':'Error editing news.');}}catch(e){alert(currentLang==='fa'?'خطا در ارتباط با Ø³Ø±ÙØ±.':'Server connection error.');}if(btn){btn.textContent=currentLang==='fa'?'اع٠ا٠تغÛÛØ±Ø§Øª':'Apply Changes';btn.disabled=false;btn.style.opacity='1';btn.style.cursor='pointer';}} 514function openTeamApplyModal(){document.getElementById('team-email').value='';document.getElementById('team-name').value='';document.getElementById('team-phone').value='';document.getElementById('team-photo').value='';const btn=document.getElementById('team-apply-btn');if(btn){btn.style.opacity='1';btn.style.pointerEvents='auto';btn.textContent=currentLang==='fa'?'ثبت Ø¯Ø±Ø®ÙØ§Ø³Øª عضÙÛØª':'Submit Application';btn.disabled=false;btn.style.cursor='pointer';}document.getElementById('team-apply-modal-overlay').classList.add('active');} 515function closeTeamApplyModal(){document.getElementById('team-apply-modal-overlay').classList.remove('active');} 516async function submitTeamApplication(){const email=document.getElementById('team-email')?.value.trim();const name=document.getElementById('team-name')?.value.trim();const phone=document.getElementById('team-phone')?.value.trim();const photo=document.getElementById('team-photo')?.value.trim();if(!email||!name||!phone||!photo){alert(currentLang==='fa'?'ÙØ·Ùا٠ت٠ا٠ÙÛÙØ¯ÙØ§Û Ø§Ø¬Ø¨Ø§Ø±Û Ø±Ø§ پر Ú©ÙÛØ¯.':'Please fill in all required fields.');return;}if(!/^09\d{9}$/.test(phone)){alert(currentLang==='fa'?'Ø´Ù Ø§Ø±Ù Ù ÙØ¨Ø§Û٠٠عتبر ÙÛØ³Øª.':'Invalid phone number.');return;}const btn=document.getElementById('team-apply-btn');if(btn){btn.textContent=currentLang==='fa'?'در ØØ§Ù ثبت...':'Submitting...';btn.disabled=true;btn.style.opacity='0.5';btn.style.cursor='wait';}try{const r=await fetch(`https://api.github.com/repos/${REPO_OWNER}/${REPO_NAME}/contents/${COMMENTS_FILE}`,{headers:{'Authorization':`token ${GITHUB_TOKEN}`,'Accept':'application/vnd.github.v3+json'}});let all=[];let sha=null;if(r.ok){const d=await r.json();all=JSON.parse(decodeURIComponent(escape(atob(d.content))));sha=d.sha;}all.push({type:'team_application',email,name,phone,photo,code:'',ratings:[],news:[],date:new Date().toLocaleDateString('fa-IR'),approved:false});const jsonStr=JSON.stringify(all,null,2);const ur=await fetch(`https://api.github.com/repos/${REPO_OWNER}/${REPO_NAME}/contents/${COMMENTS_FILE}`,{method:'PUT',headers:{'Authorization':`token ${GITHUB_TOKEN}`,'Accept':'application/vnd.github.v3+json','Content-Type':'application/json'},body:JSON.stringify({message:`team application from ${name}`,content:btoa(unescape(encodeURIComponent(jsonStr))),sha})});if(ur.ok){closeTeamApplyModal();cachedComments=all;document.getElementById('success-alert-overlay').classList.add('active');}else{alert(currentLang==='fa'?'خطا در ثبت Ø¯Ø±Ø®ÙØ§Ø³Øª.':'Error submitting application.');}}catch(e){alert(currentLang==='fa'?'خطا در ارتباط با Ø³Ø±ÙØ±.':'Server connection error.');}if(btn){btn.textContent=currentLang==='fa'?'ثبت Ø¯Ø±Ø®ÙØ§Ø³Øª عضÙÛØª':'Submit Application';btn.disabled=false;btn.style.opacity='1';btn.style.cursor='pointer';}} 517function loadNews(){const container=document.getElementById('news-container');if(!container)return;container.innerHTML=`<div style="text-align:center;padding:15px;color:#888;">${t('news_loading')}</div>`;try{fetch(`https://api.github.com/repos/${REPO_OWNER}/${REPO_NAME}/contents/${COMMENTS_FILE}`,{headers:{'Authorization':`token ${GITHUB_TOKEN}`,'Accept':'application/vnd.github.v3+json'}}).then(r=>{if(!r.ok){container.innerHTML=`<div style="text-align:center;padding:15px;color:#FFAA66;">${currentLang==='fa'?'ÙÙÙØ² Ø®Ø¨Ø±Û Ø«Ø¨Øª ÙØ´Ø¯Ù است.':'No news registered yet.'}</div>`;cachedComments=[];return;}return r.json();}).then(d=>{if(!d)return;cachedComments=JSON.parse(decodeURIComponent(escape(atob(d.content))));renderNews(cachedComments.filter(a=>a.type==='team_application'&&a.approved===true),container);}).catch(()=>{container.innerHTML=`<div style="text-align:center;padding:15px;color:#F55;">${currentLang==='fa'?'خطا':'Error'}</div>`;});}catch(e){}} 518function renderNews(reporters,container){container.innerHTML='';let allNews=[];
518reporters.forEach(rep=>{if(rep.news&&rep.news.length>0){rep.news.forEach((n,idx)=>{allNews.push({...n,reporterName:rep.name,reporterPhoto:rep.photo,reporterIndex:cachedComments.indexOf(rep),newsIndex:idx,ratings:rep.ratings||[]});});}});if(allNews.length===0){container.innerHTML=`<div style="text-align:center;padding:15px;color:#FFAA66;">${currentLang==='fa'?'ÙÙÙØ² Ø®Ø¨Ø±Û Ø«Ø¨Øª ÙØ´Ø¯Ù است.':'No news registered yet.'}</div>`;return;}allNews.reverse().forEach(item=>{const card=document.createElement('div');card.className='news-card';if(adminMode){const delBtn=document.createElement('div');delBtn.className='admin-del-btn';delBtn.textContent='ð';delBtn.addEventListener('click',function(e){e.stopPropagation();e.preventDefault();openDeleteConfirmModal(item);});card.appendChild(delBtn);const editBtn=document.createElement('div');editBtn.className='admin-edit-btn';editBtn.textContent='â';editBtn.addEventListener('click',function(e){e.stopPropagation();e.preventDefault();openNewsSubmitModal(item);});card.appendChild(editBtn);}const validImages=item.images?item.images.filter(i=>i&&i.trim()!==''):[];if(validImages.length>0){const img=document.createElement('img');img.src=validImages[0];img.alt=escapeHTML(item.title||'');card.appendChild(img);}const titleEl=document.createElement('div');titleEl.className='news-title';titleEl.textContent=escapeHTML(item.title||'');card.appendChild(titleEl);card.addEventListener('click',function(e){if(adminMode)return;e.stopPropagation();e.preventDefault();openNewsDetail(item);},true);container.appendChild(card);});} 519function openNewsDetail(item){const winId='window-news-'+item.reporterIndex+'-'+item.newsIndex;const newsPath=`/news/${item.reporterIndex}/${item.newsIndex}`;history.pushState(null,'',newsPath);if(document.getElementById(winId)){openWindow(winId);return;}const newWin=document.createElement('div');newWin.className='window';newWin.id=winId;const avgRating=item.ratings.length>0?(item.ratings.reduce((a,b)=>a+b,0)/item.ratings.length).toFixed(1):'0.0';const starDisplay='â '.repeat(Math.round(avgRating))+'â'.repeat(5-Math.round(avgRating));const validImages=item.images?item.images.filter(i=>i&&i.trim()!==''):[];let sliderHTML='';if(validImages.length>0){sliderHTML=`<div class="news-detail-slider">`;if(validImages.length>1)sliderHTML+=`<div class="slider-btn prev" onclick="slideNewsImage(this,-1)">â</div>`;sliderHTML+=`<img src="${validImages[0]}" data-images='${JSON.stringify(validImages)}' data-current="0" id="news-detail-img-${winId}">`;if(validImages.length>1)sliderHTML+=`<div class="slider-btn next" onclick="slideNewsImage(this,1)">â¶</div>`;sliderHTML+=`</div>`;}const ratedNews=JSON.parse(localStorage.getItem('rated_news')||'[]');const newsId=`${item.reporterIndex}-${item.newsIndex}`;const alreadyRated=ratedNews.includes(newsId);const textDir=currentLang==='fa'?'rtl':'ltr';const shortTitle=(item.title||'').split(' ').slice(0,3).join(' ')+((item.title||'').split(' ').length>3?'...':'');const displayTitle=currentLang==='en'&&item.title_en?item.title_en:item.title;const displayBody=currentLang==='en'&&item.body_en?item.body_en:item.body;newWin.innerHTML=`<div class="window-header"><div class="window-title-container"><div class="window-title" style="direction:${textDir};text-align:${textDir==='rtl'?'right':'left'};">${escapeHTML(shortTitle)}</div><div class="parallel-lines"></div></div><div class="window-controls"><div class="window-btn" onclick="toggleMinimize('${winId}')">_</div><div class="window-btn close" onclick="closeWindow('${winId}')">X</div></div></div><div class="window-content"><div class="article-content" style="direction:${textDir};text-align:justify;">${sliderHTML}<div class="article-title" style="direction:${textDir};text-align:${textDir==='rtl'?'right':'left'};">${escapeHTML(displayTitle||'')}</div><div class="article-paragraph ${textDir==='rtl'?'rtl-text':'ltr-text'}" style="direction:${textDir};text-align:justify;">${(displayBody||'').replace(/\n/g,'<br>')}</div>${item.source?`<div style="margin-top:15px;direction:${textDir};text-align:${textDir==='rtl'?'right':'left'};"><a href="${item.source}" target="_blank" style="color:#FFAA66;">${currentLang==='fa'?'Ù ÙØ¨Ø¹ خبر':'Source'}</a></div>`:''}<div style="text-align:center;color:#888;margin-top:15px;">${item.date||''}</div><div class="news-reporter-section">${item.reporterPhoto?`<img src="${item.reporterPhoto}" class="news-reporter-photo" alt="${escapeHTML(item.reporterName||'')}">`:''}<div style="flex-grow:1;"><div style="color:#FFF;font-size:13px;">${escapeHTML(item.reporterName||'')}</div><div class="reporter-rating">${starDisplay} ${avgRating}</div></div>${alreadyRated?`<span style="color:#FFD700;font-size:18px;">${starDisplay}</span>`:`<button class="rate-btn" onclick="openRating('${winId}','${newsId}',${item.reporterIndex})">${currentLang==='fa'?'Ø§Ù ØªÛØ§Ø² دÙÛØ¯':'Rate'}</button>`}</div><div id="rating-stars-${winId}" class="stars-container" style="display:none;"></div></div></div><div class="resize-handle"></div>`;document.body.appendChild(newWin);setupWindowDrag(winId);setupWindowResize(winId);openWindow(winId);} 520function slideNewsImage(btn,dir){const slider=btn.closest('.news-detail-slider');const img=slider.querySelector('img');const images=JSON.parse(img.getAttribute('data-images'));let cur=parseInt(img.getAttribute('data-current'));cur=(cur+dir+images.length)%images.length;img.src=images[cur];img.setAttribute('data-current',cur);} 521function openRating(winId,newsId,reporterIndex){const container=document.getElementById('rating-stars-'+winId);if(!container)return;container.style.display='inline-flex';container.innerHTML='';pendingRatingWinId=winId;pendingRatingNewsId=newsId;pendingRatingReporterIndex=reporterIndex;pendingRatingValue=null;for(let i=1;i<=5;i++){const star=document.createElement('span');star.className='star';star.textContent='â ';star.setAttribute('data-value',i);star.addEventListener('mouseenter',function(){const val=parseInt(this.getAttribute('data-value'));const allStars=container.querySelectorAll('.star');
521allStars.forEach(s=>{if(parseInt(s.getAttribute('data-value'))<=val){s.classList.add('active');}else{s.classList.remove('active');}});});star.addEventListener('mouseleave',function(){if(!pendingRatingValue){const allStars=container.querySelectorAll('.star');allStars.forEach(s=>s.classList.remove('active'));}});star.addEventListener('click',function(e){e.stopPropagation();pendingRatingValue=parseInt(this.getAttribute('data-value'));const allStars=container.querySelectorAll('.star');allStars.forEach(s=>{if(parseInt(s.getAttribute('data-value'))<=pendingRatingValue){s.classList.add('active');}else{s.classList.remove('active');}});let confirmBtn=container.parentElement.querySelector('.rating-confirm-btn');if(!confirmBtn){confirmBtn=document.createElement('span');confirmBtn.className='rating-confirm-btn';confirmBtn.textContent=currentLang==='fa'?'â ØªØ£ÛÛØ¯':'â Confirm';confirmBtn.addEventListener('click',function(e){e.stopPropagation();submitRating(pendingRatingValue,pendingRatingWinId,pendingRatingNewsId,pendingRatingReporterIndex);});container.parentElement.appendChild(confirmBtn);}});container.appendChild(star);}} 522async function submitRating(rating,winId,newsId,reporterIndex){const ratedNews=JSON.parse(localStorage.getItem('rated_news')||'[]');if(ratedNews.includes(newsId))return;try{const r=await fetch(`https://api.github.com/repos/${REPO_OWNER}/${REPO_NAME}/contents/${COMMENTS_FILE}`,{headers:{'Authorization':`token ${GITHUB_TOKEN}`,'Accept':'application/vnd.github.v3+json'}});if(!r.ok)return;const d=await r.json();const all=JSON.parse(decodeURIComponent(escape(atob(d.content))));const sha=d.sha;const reporter=all[reporterIndex];if(!reporter||!reporter.ratings)return;reporter.ratings.push(rating);const jsonStr=JSON.stringify(all,null,2);await fetch(`https://api.github.com/repos/${REPO_OWNER}/${REPO_NAME}/contents/${COMMENTS_FILE}`,{method:'PUT',headers:{'Authorization':`token ${GITHUB_TOKEN}`,'Accept':'application/vnd.github.v3+json','Content-Type':'application/json'},body:JSON.stringify({message:`rating for news`,content:btoa(unescape(encodeURIComponent(jsonStr))),sha})});ratedNews.push(newsId);localStorage.setItem('rated_news',JSON.stringify(ratedNews));cachedComments=all;const container=document.getElementById('rating-stars-'+winId);if(container){container.innerHTML='â '.repeat(rating)+'â'.repeat(5-rating);container.style.display='inline-flex';const confirmBtn=container.parentElement.querySelector('.rating-confirm-btn');if(confirmBtn)confirmBtn.remove();const btn=document.querySelector(`#${winId} .rate-btn`);if(btn)btn.style.display='none';}}catch(e){}} 523function openShopModal(){document.getElementById('shop-owner-name').value='';document.getElementById('shop-owner-phone').value='';document.getElementById('shop-name').value='';document.getElementById('shop-category').value='';document.getElementById('shop-description').value='';document.getElementById('shop-website').value='';document.getElementById('shop-logo').value='';document.getElementById('shop-modal-overlay').classList.add('active');} 524function closeShopModal(){document.getElementById('shop-modal-overlay').classList.remove('active');} 525async function submitShopRequest(){const name=document.getElementById('shop-owner-name')?.value.trim(),phone=document.getElementById('shop-owner-phone')?.value.trim(),shopName=document.getElementById('shop-name')?.value.trim(),category=document.getElementById('shop-category')?.value,description=document.getElementById('shop-description')?.value.trim(),website=document.getElementById('shop-website')?.value.trim(),logo=document.getElementById('shop-logo')?.value.trim();if(!name||!phone||!shopName||!category){alert('ÙØ·Ùا٠ÙÛÙØ¯ÙØ§Û Ø§Ø¬Ø¨Ø§Ø±Û Ø±Ø§ پر Ú©ÙÛØ¯.');return;}if(!/^09\d{9}$/.test(phone)){alert('Ø´Ù Ø§Ø±Ù Ù ÙØ¨Ø§Û٠٠عتبر ÙÛØ³Øª.');return;}try{const r=await fetch(`https://api.github.com/repos/${REPO_OWNER}/${REPO_NAME}/contents/${SHOP_FILE}`,{headers:{'Authorization':`token ${GITHUB_TOKEN}`,'Accept':'application/vnd.github.v3+json'}});let shops=[];let sha=null;if(r.ok){const d=await r.json();shops=JSON.parse(decodeURIComponent(escape(atob(d.content))));sha=d.sha;}shops.push({ownerName:name,ownerPhone:phone,shopName,category,description:description||'',website:website||'',logo:logo||'',shopNumber:'',date:new Date().toLocaleDateString('fa-IR'),approved:false});const jsonStr=JSON.stringify(shops,null,2);const ur=await fetch(`https://api.github.com/repos/${REPO_OWNER}/${REPO_NAME}/contents/${SHOP_FILE}`,{method:'PUT',headers:{'Authorization':`token ${GITHUB_TOKEN}`,'Accept':'application/vnd.github.v3+json','Content-Type':'application/json'},body:JSON.stringify({message:`shop request from ${name}`,content:btoa(unescape(encodeURIComponent(jsonStr))),sha})});if(ur.ok){closeShopModal();cachedShops=shops;document.getElementById('success-alert-overlay').classList.add('active');const container=document.getElementById('bazaar-shops-container');if(container)renderShops(cachedShops.filter(s=>s.approved===true),container);}else alert('خطا در ثبت Ø¯Ø±Ø®ÙØ§Ø³Øª.');}catch(e){alert('خطا در ارتباط با Ø³Ø±ÙØ±.');}} 526function closeSuccessAlert(){document.getElementById('success-alert-overlay').classList.remove('active');} 527function loadShops(){const container=document.getElementById('bazaar-shops-container');if(!container)return;try{fetch(`https://api.github.com/repos/${REPO_OWNER}/${REPO_NAME}/contents/${SHOP_FILE}`,{headers:{'Authorization':`token ${GITHUB_TOKEN}`,'Accept':'application/vnd.github.v3+json'}}).then(r=>{if(!r.ok){cachedShops=[];renderDefaultShop(container);return;}return r.json();}).then(d=>{if(!d)return;cachedShops=JSON.parse(decodeURIComponent(escape(atob(d.content))));const approved=cachedShops.filter(s=>s.approved===true);if(approved.length===0){renderDefaultShop(container);}else{renderShops(approved,container);}}
527).catch(()=>{renderDefaultShop(container);});}catch(e){renderDefaultShop(container);}} 528function renderDefaultShop(container){container.innerHTML=`<div class="bazaar-shop-card" onclick="openShopWindow({shopName:'RetroFuture Lab',website:'https://retrolab.ir',shopNumber:'101'})"><img src="https://raw.githubusercontent.com/silverspark-ir/Amigastore/main/Screenshot_%DB%B2%DB%B0%DB%B2%DB%B6-%DB%B0%DB%B6-%DB%B2%DB%B2-%DB%B2%DB%B3-%DB%B1%DB%B3-%DB%B3%DB%B8-%DB%B0%DB%B0%DB%B0_com.canva.editor_Edited.jpg" alt="RetroFuture Lab"><div class="shop-name">غرÙ٠ش٠ار٠۱۰۱<br>ÙØ§Ø¨Ø±Ø§ØªÙار رترÙÙÛÙÚØ±</div></div>`;} 529function renderShops(shops,container){container.innerHTML='';shops.reverse().forEach(shop=>{const card=document.createElement('div');card.className='bazaar-shop-card';if(shop.logo){const img=document.createElement('img');img.src=shop.logo;img.alt=escapeHTML(shop.shopName);card.appendChild(img);}const nameEl=document.createElement('div');nameEl.className='shop-name';const shopNum=shop.shopNumber?'غرÙ٠ش٠ار٠'+shop.shopNumber:'';nameEl.textContent=shopNum+(shopNum?' - ':'')+escapeHTML(shop.shopName);card.appendChild(nameEl);card.onclick=function(){openShopWindow(shop);};container.appendChild(card);});} 530async function loadAds(){const container=document.getElementById('market-ads-container');if(!container)return;container.innerHTML=`<div style="text-align:center;padding:15px;color:#888;">${t('discussion_loading')}</div>`;try{const r=await fetch(`https://api.github.com/repos/${REPO_OWNER}/${REPO_NAME}/contents/${ADS_FILE}`,{headers:{'Authorization':`token ${GITHUB_TOKEN}`,'Accept':'application/vnd.github.v3+json'}});if(!r.ok){container.innerHTML='<div style="text-align:center;padding:15px;color:#FFAA66;">ÙÙÙØ² Ø¢Ú¯ÙÛ Ø«Ø¨Øª ÙØ´Ø¯Ù است.</div>';cachedAds=[];return;}const d=await r.json();cachedAds=JSON.parse(decodeURIComponent(escape(atob(d.content))));renderAds(cachedAds.filter(a=>a.approved===true),container);}catch(e){container.innerHTML='<div style="text-align:center;padding:15px;color:#F55;">خطا</div>';}} 531function renderAds(ads,container){container.innerHTML='';if(ads.length===0){container.innerHTML='<div style="text-align:center;padding:15px;color:#FFAA66;">ÙÙÙØ² Ø¢Ú¯ÙÛ Ø«Ø¨Øª ÙØ´Ø¯Ù است.</div>';return;}[...ads].reverse().forEach((ad,i)=>{const card=document.createElement('div');card.className='ad-card';const validImages=ad.images?(Array.isArray(ad.images)?ad.images.filter(img=>img&&img.trim()!==''&&!img.includes('pic link')):[]):[];const titleEl=document.createElement('div');titleEl.className='ad-title';titleEl.textContent=escapeHTML(ad.title||'');card.appendChild(titleEl);if(validImages.length>0){const sliderDiv=document.createElement('div');sliderDiv.className='ad-slider';if(validImages.length>1){const prevBtn=document.createElement('div');prevBtn.className='slider-btn prev';prevBtn.textContent='â';prevBtn.onclick=function(e){e.stopPropagation();slideAdImage(this,-1);};sliderDiv.appendChild(prevBtn);}const img=document.createElement('img');img.src=validImages[0];img.setAttribute('data-images',JSON.stringify(validImages));img.setAttribute('data-current','0');sliderDiv.appendChild(img);if(validImages.length>1){const nextBtn=document.createElement('div');nextBtn.className='slider-btn next';nextBtn.textContent='â¶';nextBtn.onclick=function(e){e.stopPropagation();slideAdImage(this,1);};sliderDiv.appendChild(nextBtn);}card.appendChild(sliderDiv);}const provinceEl=document.createElement('div');provinceEl.className='ad-province';provinceEl.textContent='ð®ð· '+escapeHTML(ad.province||'');card.appendChild(provinceEl);if(ad.violation!==undefined&&ad.violation===false){const violationBar=document.createElement('div');violationBar.className='ad-violation-bar';violationBar.textContent=currentLang==='fa'?'â Ø«Ø¨Øª تخÙÙ: در ØØ§Ù بررسÛ':'â Violation Reported: Under Review';card.appendChild(violationBar);}card.onclick=function(){openAdLightbox(ad);};container.appendChild(card);});} 532function slideAdImage(btn,dir){const slider=btn.closest('.ad-slider'),img=slider.querySelector('img'),images=JSON.parse(img.getAttribute('data-images'));let cur=parseInt(img.getAttribute('data-current'));cur=(cur+dir+images.length)%images.length;img.src=images[cur];img.setAttribute('data-current',cur);} 533function openAdLightbox(ad){const content=document.getElementById('ad-lightbox-content'),lb=document.getElementById('ad-lightbox');const validImages=ad.images?(Array.isArray(ad.images)?ad.images.filter(img=>img&&img.trim()!==''&&!img.includes('pic link')):[]):[];content.innerHTML='';if(validImages.length>
5330){const sliderDiv=document.createElement('div');sliderDiv.className='ad-lightbox-slider';if(validImages.length>1){const prevBtn=document.createElement('div');prevBtn.className='slider-btn prev';prevBtn.textContent='â';prevBtn.onclick=function(){slideLightboxImage(-1);};sliderDiv.appendChild(prevBtn);}const img=document.createElement('img');img.src=validImages[0];img.id='lightbox-ad-img';img.setAttribute('data-images',JSON.stringify(validImages));img.setAttribute('data-current','0');sliderDiv.appendChild(img);if(validImages.length>1){const nextBtn=document.createElement('div');nextBtn.className='slider-btn next';nextBtn.textContent='â¶';nextBtn.onclick=function(){slideLightboxImage(1);};sliderDiv.appendChild(nextBtn);}content.appendChild(sliderDiv);}const titleEl=document.createElement('div');titleEl.className='ad-lightbox-title';titleEl.textContent=escapeHTML(ad.title||'');content.appendChild(titleEl);const nameEl=document.createElement('div');nameEl.className='ad-lightbox-name';nameEl.textContent=escapeHTML(ad.name||'');content.appendChild(nameEl);const phoneEl=document.createElement('div');phoneEl.className='ad-lightbox-phone';phoneEl.textContent=escapeHTML(ad.phone||'');content.appendChild(phoneEl);const descEl=document.createElement('div');descEl.className='ad-lightbox-desc';descEl.textContent=escapeHTML(ad.description||'');content.appendChild(descEl);const reportBtn=document.createElement('div');reportBtn.className='ad-lightbox-report-btn';reportBtn.textContent=currentLang==='fa'?'â گزارش تخÙÙ':'â Report Violation';reportBtn.onclick=function(){const subject=(currentLang==='fa'?'گزارش تخÙ٠آگÙÛ':'Report Ad Violation')+' â '+escapeHTML(ad.title||'');const body=(currentLang==='fa'?'عÙÙØ§Ù Ø¢Ú¯ÙÛ: ':'Ad Title: ')+escapeHTML(ad.title||'')+'\n'+(currentLang==='fa'?'ÙØ§Ù Ø¢Ú¯ÙÛâØ¯ÙÙØ¯Ù: ':'Advertiser Name: ')+escapeHTML(ad.name||'')+'\n'+(currentLang==='fa'?'استاÙ: ':'Province: ')+escapeHTML(ad.province||'')+'\n\n'+(currentLang==='fa'?'ÙØ·Ùا٠تخÙÙ Ù Ø´Ø§ÙØ¯ÙâØ´Ø¯Ù Ø±Ø§ Ø´Ø±Ø Ø¯ÙÛØ¯:':'Please describe the violation:');window.location.href=`mailto:[email protected]?subject=${encodeURIComponent(subject)}&body=${encodeURIComponent(body)}`;};content.appendChild(reportBtn);lb.classList.add('active');} 534function slideLightboxImage(dir){const img=document.getElementById('lightbox-ad-img');if(!img)return;const images=JSON.parse(img.getAttribute('data-images'));let cur=parseInt(img.getAttribute('data-current'));cur=(cur+dir+images.length)%images.length;img.src=images[cur];img.setAttribute('data-current',cur);} 535function closeAdLightbox(){document.getElementById('ad-lightbox').classList.remove('active');} 536function openAdSubmitModal(){document.getElementById('ad-subject').value='';document.getElementById('ad-description').value='';document.getElementById('ad-name').value='';document.getElementById('ad-phone').value='';document.getElementById('ad-province').value='';document.getElementById('ad-image1').value='';document.getElementById('ad-image2').value='';document.getElementById('ad-image3').value='';document.getElementById('ad-submit-modal-overlay').classList.add('active');} 537function closeAdSubmitModal(){document.getElementById('ad-submit-modal-overlay').classList.remove('active');} 538function openUploadKon(){const winId='window-uploadkon';if(!document.getElementById(winId)){const newWin=document.createElement('div');newWin.className='window';newWin.id=winId;newWin.innerHTML=`<div class="window-header"><div class="window-title-container"><div class="window-title">UploadKon.ir</div><div class="parallel-lines"></div></div><div class="window-controls"><div class="window-btn" onclick="toggleMinimize('${winId}')">_</div><div class="window-btn close" onclick="closeWindow('${winId}')">X</div></div></div><div class="window-content no-padding"><iframe src="https://uploadkon.ir" title="UploadKon.ir"></iframe></div><div class="resize-handle"></div>`;document.body.appendChild(newWin);setupWindowDrag(winId);setupWindowResize(winId);}openWindow(winId);} 539async function submitNewAd(){const subject=document.getElementById('ad-subject')?.value.trim(),description=document.getElementById('ad-description')?.value.trim(),name=document.getElementById('ad-name')?.value.trim(),phone=document.getElementById('ad-phone')?.value.trim(),province=
539document.getElementById('ad-province')?.value.trim(),img1=document.getElementById('ad-image1')?.value.trim(),img2=document.getElementById('ad-image2')?.value.trim(),img3=document.getElementById('ad-image3')?.value.trim();if(!subject||!description||!name||!phone||!province||!img1||!img2||!img3){alert(currentLang==='fa'?'ÙØ·Ùا٠ت٠ا٠ÙÛÙØ¯ÙØ§Û Ø§Ø¬Ø¨Ø§Ø±Û Ø±Ø§ پر Ú©ÙÛØ¯.':'Please fill in all required fields.');return;}if(!/^09\d{9}$/.test(phone)){alert(currentLang==='fa'?'Ø´Ù Ø§Ø±Ù Ù ÙØ¨Ø§Û٠٠عتبر ÙÛØ³Øª.':'Invalid phone number.');return;}const uploadkonPrefix='https://uploadkon.ir/uploads/';const invalidImgMsg=currentLang==='fa'?'ÙÛÙÚ© تصÙÛØ± Ø¨Ø§ÛØ¯ با https://uploadkon.ir/uploads/ Ø´Ø±ÙØ¹ Ø´ÙØ¯.':'Image link must start with https://uploadkon.ir/uploads/';if(!img1.startsWith(uploadkonPrefix)){alert(invalidImgMsg);return;}if(!img2.startsWith(uploadkonPrefix)){alert(invalidImgMsg);return;}if(!img3.startsWith(uploadkonPrefix)){alert(invalidImgMsg);return;}try{const r=await fetch(`https://api.github.com/repos/${REPO_OWNER}/${REPO_NAME}/contents/${ADS_FILE}`,{headers:{'Authorization':`token ${GITHUB_TOKEN}`,'Accept':'application/vnd.github.v3+json'}});let ads=[];let sha=null;if(r.ok){const d=await r.json();ads=JSON.parse(decodeURIComponent(escape(atob(d.content))));sha=d.sha;}ads.push({title:subject,description,name,phone,province,images:[img1,img2,img3],approved:true,violation:true,date:new Date().toLocaleDateString('fa-IR')});const jsonStr=JSON.stringify(ads,null,2);const ur=await fetch(`https://api.github.com/repos/${REPO_OWNER}/${REPO_NAME}/contents/${ADS_FILE}`,{method:'PUT',headers:{'Authorization':`token ${GITHUB_TOKEN}`,'Accept':'application/vnd.github.v3+json','Content-Type':'application/json'},body:JSON.stringify({message:`ad from ${name}`,content:btoa(unescape(encodeURIComponent(jsonStr))),sha})});if(ur.ok){closeAdSubmitModal();cachedAds=ads;document.getElementById('success-alert-text').textContent=t('market_ad_success');document.getElementById('success-alert-overlay').classList.add('active');const container=document.getElementById('market-ads-container');if(container)renderAds(cachedAds.filter(a=>a.approved===true),container);}else alert(currentLang==='fa'?'خطا در ثبت Ø¢Ú¯ÙÛ.':'Error submitting ad.');}catch(e){alert(currentLang==='fa'?'خطا در ارتباط با Ø³Ø±ÙØ±.':'Server connection error.');}} 540function openAdminPassProductsModal(){document.getElementById('admin-password-products-input').value='';document.getElementById('admin-pass-products-modal-overlay').classList.add('active');} 541function closeAdminPassProductsModal(){document.getElementById('admin-pass-products-modal-overlay').classList.remove('active');} 542function checkAdminPasswordProducts(){const input=document.getElementById('admin-password-products-input')?.value.trim();if(input===ADMIN_PASSWORD){closeAdminPassProductsModal();openProductAdminModal();}else{alert(currentLang==='fa'?'ر٠ز Ø¹Ø¨ÙØ± اشتبا٠است.':'Incorrect password.');}} 543function openProductAdminModal(){document.getElementById('product-name').value='';document.getElementById('product-description').value='';document.getElementById('product-image1').value='';document.getElementById('product-image2').value='';document.getElementById('product-image3').value='';document.getElementById('product-price').value='';document.getElementById('product-admin-modal-overlay').classList.add('active');} 544function closeProductAdminModal(){document.getElementById('product-admin-modal-overlay').classList.remove('active');} 545function preSubmitProduct(){const name=document.getElementById('product-name')?.value.trim();const description=document.getElementById('product-description')?.value.trim();const image1=document.getElementById('product-image1')?.value.trim();const image2=document.getElementById('product-image2')?.value.trim();const image3=document.getElementById('product-image3')?.value.trim();const price=document.getElementById('product-price')?.value.trim();if(!name||!description||!image1||!image2||!image3||!price){alert(currentLang==='fa'?'ÙØ
545·Ùا٠ت٠ا٠ÙÛÙØ¯Ùا را پر Ú©ÙÛØ¯.':'Please fill in all fields.');return;}if(isNaN(price)||parseInt(price)<=0){alert(currentLang==='fa'?'ÙÛ٠ت Ø¨Ø§ÛØ¯ ÛÚ© عدد صØÛØ Ù Ø«Ø¨Øª باشد.':'Price must be a positive integer.');return;}pendingProductData={name,description,images:[image1,image2,image3],price:parseInt(price)};closeProductAdminModal();const confirmText=document.querySelector('#product-confirm-modal .confirm-text');if(confirmText){confirmText.textContent=currentLang==='fa'?'Ø¢ÛØ§ از ثبت اÛÙ Ù ØØµÙ٠اط٠ÛÙØ§Ù Ø¯Ø§Ø±ÛØ¯Ø':'Are you sure you want to submit this product?';}document.getElementById('product-confirm-modal-overlay').classList.add('active');} 546function closeProductConfirmModal(){document.getElementById('product-confirm-modal-overlay').classList.remove('active');pendingProductData=null;} 547async function finalSubmitProduct(){if(!pendingProductData)return;try{const r=await fetch(`https://api.github.com/repos/${REPO_OWNER}/${REPO_NAME}/contents/${PRODUCTS_FILE}`,{headers:{'Authorization':`token ${GITHUB_TOKEN}`,'Accept':'application/vnd.github.v3+json'}});let productsData=[];let sha=null;if(r.ok){const d=await r.json();productsData=JSON.parse(decodeURIComponent(escape(atob(d.content))));sha=d.sha;}else if(r.status===404){productsData=[];}productsData.push({...pendingProductData,approved:true});const jsonStr=JSON.stringify(productsData,null,2);const ur=await fetch(`https://api.github.com/repos/${REPO_OWNER}/${REPO_NAME}/contents/${PRODUCTS_FILE}`,{method:'PUT',headers:{'Authorization':`token ${GITHUB_TOKEN}`,'Accept':'application/vnd.github.v3+json','Content-Type':'application/json'},body:JSON.stringify({message:`new product: ${pendingProductData.name}`,content:btoa(unescape(encodeURIComponent(jsonStr))),sha})});if(ur.ok){closeProductConfirmModal();cachedProducts=productsData;document.getElementById('success-alert-text').textContent=currentLang==='fa'?'Ù ØØµÙ٠با Ù ÙÙÙÛØª ثبت شد.':'Product submitted successfully.';document.getElementById('success-alert-overlay').classList.add('active');const container=document.getElementById('products-dynamic-container');if(container)renderProductsDynamic(cachedProducts.filter(p=>p.approved===true),container);pendingProductData=null;}else{alert(currentLang==='fa'?'خطا در ثبت Ù ØØµÙÙ.':'Error submitting product.');}}catch(e){alert(currentLang==='fa'?'خطا در ارتباط با Ø³Ø±ÙØ±.':'Server connection error.');}} 548async function loadProducts(){const container=document.getElementById('products-dynamic-container');if(!container)return;container.innerHTML=`<div style="text-align:center;padding:15px;color:#888;">${currentLang==='fa'?'در ØØ§Ù Ø¨Ø§Ø±Ú¯Ø°Ø§Ø±Û Ù ØØµÙÙØ§Øª...':'Loading products...'}</div>`;try{const r=await fetch(`https://api.github.com/repos/${REPO_OWNER}/${REPO_NAME}/contents/${PRODUCTS_FILE}`,{headers:{'Authorization':`token ${GITHUB_TOKEN}`,'Accept':'application/vnd.github.v3+json'}});if(!r.ok){container.innerHTML='<div style="text-align:center;padding:15px;color:#FFAA66;">'+(currentLang==='fa'?'ÙÙÙØ² Ù ØØµÙÙÛ Ø«Ø¨Øª ÙØ´Ø¯Ù است.':'No products registered yet.')+'</div>';cachedProducts=[];return;}const d=await r.json();cachedProducts=JSON.parse(decodeURIComponent(escape(atob(d.content))));renderProductsDynamic(cachedProducts.filter(p=>p.approved===true),container);}catch(e){container.innerHTML='<div style="text-align:center;padding:15px;color:#F55;">'+(currentLang==='fa'?'خطا':'Error')+'</div>';}} 549function renderProductsDynamic(productsArr,container){container.innerHTML='';if(productsArr.length===0){container.innerHTML='<div style="text-align:center;padding:15px;color:#FFAA66;">'+(currentLang==='fa'?'ÙÙÙØ² Ù ØØµÙÙÛ Ø«Ø¨Øª ÙØ´Ø¯Ù است.':'No products registered yet.')+'</div>';return;}[...productsArr].reverse().forEach(product=>{const card=document.createElement('div');card.className='product-card-dynamic';const validImages=product.images?product.images.filter(img=>img&&img.trim()!==''):[];if(validImages.length>0){const sliderDiv=document.createElement('div');sliderDiv.className='product-slider';if(validImages.length>1){const prevBtn=document.createElement('div');prevBtn.className='slider-btn prev';prevBtn.textContent='â';prevBtn.onclick=function(e){e.stopPropagation();slideProductImage(this,-1);};sliderDiv.appendChild(prevBtn);}const img=document.createElement('img');img.src=validImages[0];img.setAttribute('data-images',JSON.stringify(validImages));img.setAttribute('data-current','0');sliderDiv.appendChild(img);if(validImages.length>1){const nextBtn=document.createElement('div');nextBtn.className='slider-btn next';nextBtn.textContent='â¶';nextBtn.onclick=function(e){e.stopPropagation();slideProductImage(this,1);};sliderDiv.appendChild(nextBtn);}card.appendChild(sliderDiv);}const titleEl=document.createElement('div');titleEl.className='product-dynamic-title';titleEl.textContent=escapeHTML(product.name);card.appendChild(titleEl);const descEl=document.createElement('div');descEl.className='product-dynamic-desc';descEl.textContent=escapeHTML(product.description);card.appendChild(descEl);const priceEl=document.createElement('div');priceEl.className='product-dynamic-price';priceEl.textContent=(currentLang==='fa'?'ÙÛ٠ت: ':'Price: ')+(product.price||0).toLocaleStr
549ing()+' '+t('currency');card.appendChild(priceEl);const addCartBtn=document.createElement('div');addCartBtn.className='product-add-cart-btn';addCartBtn.textContent=t('btn_add');addCartBtn.onclick=function(e){e.stopPropagation();addToCart(product.name,product.price);};card.appendChild(addCartBtn);container.appendChild(card);});} 550function slideProductImage(btn,dir){const slider=btn.closest('.product-slider'),img=slider.querySelector('img'),images=JSON.parse(img.getAttribute('data-images'));let cur=parseInt(img.getAttribute('data-current'));cur=(cur+dir+images.length)%images.length;img.src=images[cur];img.setAttribute('data-current',cur);} 551document.getElementById('email-message')?.addEventListener('input',function(){const btn=document.getElementById('email-send-btn');if(btn){if(this.value.trim()){btn.classList.add('active');btn.disabled=false;btn.style.cursor='pointer';btn.style.backgroundColor='#5A5';}else{btn.classList.remove('active');btn.disabled=true;btn.style.cursor='not-allowed';btn.style.backgroundColor='#888';}}}); 552function sendEmail(){const msg=document.getElementById('email-message')?.value;if(!msg)return;const subject='AmigaStore Contact';window.location.href=`mailto:[email protected]?subject=${encodeURIComponent(subject)}&body=${encodeURIComponent(msg)}`;} 553function startTVNoise(){const canvas=document.getElementById('tv-noise-canvas');if(!canvas)return;const container=document.getElementById('retro-tv-screen');if(!container)return;canvas.width=container.offsetWidth||280;canvas.height=container.offsetHeight||190;const ctx=canvas.getContext('2d');function drawNoise(){if(!canvas||!canvas.parentElement)return;const imageData=ctx.createImageData(canvas.width,canvas.height);const data=imageData.data;for(let i=0;i<data.length;i+=4){const v=Math.random()<0.5?0:255;data[i]=v;data[i+1]=v;data[i+2]=v;data[i+3]=255;}ctx.putImageData(imageData,0,0);requestAnimationFrame(drawNoise);}drawNoise();} 554let bootTypeTimeout=null;let initialPathForBoot=null; 555function startBoot(){initialPathForBoot=getCurrentPath();const splash=document.getElementById('splash-screen');const boot=document.getElementById('boot-screen');const cli=document.getElementById('boot-cli');const main=document.getElementById('main-container');splash.style.opacity='0';setTimeout(()=>{splash.style.display='none';boot.classList.add('active');const lines=["Amiga ROM 1.3 (Kickstart 34.5)","Copyright © 1987 Commodore-Amiga, Inc.","All rights reserved.","","Loading Workbench 1.3...","c64spark presents...","Welcome to AmigaStore.ir","The Home of Commodore & Amiga","Retro Computing Never Dies","","Workbench loaded successfully.","Starting desktop..."];let currentLine=0;let currentText='';let fullText='';function typeChar(){if(currentLine<lines.length){if(currentText.length<lines[currentLine].length){currentText+=lines[currentLine][currentText.length];cli.textContent=fullText+currentText;const delay=50+Math.random()*35;bootTypeTimeout=setTimeout(typeChar,delay);}else{fullText+=lines[currentLine]+'\n';currentText='';currentLine++;cli.textContent=fullText;bootTypeTimeout=setTimeout(typeChar,700);}}else{bootTypeTimeout=setTimeout(()=>{boot.style.opacity='0';setTimeout(()=>{boot.style.display='none';boot.classList.remove('active');main.classList.add('active');document.body.style.overflow='hidden';startTVNoise();const path=initialPathForBoot||getCurrentPath();if(path&&path!=='/'){if(path.startsWith('/news/')){const item=findNewsByPath(path);if(item)openNewsDetail(item);}else if(path.startsWith('/bazaar/')){const shop=findShopByPath(path);if(shop)openShopWindow(shop);}else{const articleNum=findArticleByPath(path);if(articleNum){openArticle(articleNum);}else{const windowId=routeMap[path];if(windowId)openWindow(windowId);}}}},500);},4000);}}cli.textContent='';bootTypeTimeout=setTimeout(typeChar,400);},500);} 556function skipBoot(){initialPathForBoot=getCurrentPath();const boot=document.getElementById('boot-screen');const main=document.getElementById('main-container');if(bootTypeTimeout){clearTimeout(bootTypeTimeout);bootTypeTimeout=null;}boot.style.opacity='0';setTimeout(()=>{boot.style.display='none';boot.classList.remove('active');main.classList.add('active');document.body.style.overflow='hidden';startTVNoise();const path=initialPathForBoot||getCurrentPath();if(path&&path!=='/'){if(path.startsWith('/news/')){const item=findNewsByPath(path);if(item)openNewsDetail(item);}else if(path.startsWith('/bazaar/')){const shop=findShopByPath(path);if(shop)openShopWindow(shop);}else{const articleNum=findArticleByPath(path);if(articleNum){openArticle(articleNum);}else{const windowId=routeMap[path];if(windowId)openWindow(windowId);}}}},500);} 557document.addEventListener('mousedown',function(e){if(e.target.tagName==='INPUT'||e.target.tagName==='TEXTAREA'||e.target.tagName==='SELECT'||e.target.tagName==='BUTTON'||e.target.tagName==='IFRAME')return;if(e.target.classList.contains('window-btn')||e.target.classList.contains('cart-item-remove')||e.target.closest('.slider-btn')||e.target.closest('.modal-btn')||e.target.closest('.rate-btn')||e.target.closest('.star')||e.target.closest('.rating-confirm-btn')||e.target.closest('.admin-del-btn')||e.target.closest('.admin-edit-btn')||e.target.closest('.news-card')||e.target.closest('a'))return;const we=e.target.closest('.window');if(we&&!e.target.classList.contains('window-btn')&&!e.target.classList.contains('cart-item-remove')){if(we.id)openWindow(we.id);}}); 558document.addEventListener('touchstart',function(e){if(e.target.tagName==='INPUT'||e.target.tagName==='TEXTAREA'||e.target.tagName==='SELECT'||e.target.tagName==='BUTTON'||e.target.tagName==='IFRAME')return;if(e.target.classList.contains('window-btn')||e.target.classList.contains('cart-item-remove')||e.target.closest('.slider-btn')||e.target.closest('.modal-btn')||e.target.closest('.rate-btn')||e.target.closest('.star')||e.target.closest('.rating-confirm-btn')||e.target.closest('.admin-del-btn')||e.target.closest('.admin-edit-btn')||e.target.closest('.news-card')||e.target.closest('a'))return;const we=e.target.closest('.window');if(we&&!e.target.classList.contains('window-btn')&&!e.target.classList.contains('cart-item-remove')){if(we.id)openWindow(we.id);}}); 559document.addEventListener('DOMContentLoaded',function(){updateFooterTime();updateCartIcon();applyTranslations();loadSettings();setBookBadgeLang(currentLang);const bbSlides=document.querySelectorAll('#bookBadge .bb-slide');let bbCurrent=0;setInterval(()=>{bbSlides[bbCurrent].classList.remove('active');bbCurrent=(bbCurrent+1)%bbSlides.length;bbSlides[bbCurrent].classList.add('active');},3000);initialPath=getCurrentPath();if(initialPath.startsWith('/news/')){loadNews();const checkAndOpen=setInterval(function(){if(cachedComments){clearInterval(checkAn
559dOpen);const item=findNewsByPath(initialPath);if(item)openNewsDetail(item);}},300);setTimeout(function(){clearInterval(checkAndOpen);},5000);}else if(initialPath.startsWith('/bazaar/')){const checkShop=setInterval(function(){if(cachedShops){clearInterval(checkShop);const shop=findShopByPath(initialPath);if(shop)openShopWindow(shop);}},300);setTimeout(function(){clearInterval(checkShop);},5000);}const savedCart=localStorage.getItem('amigaCart');if(savedCart){try{cartItems=JSON.parse(savedCart);updateCartIcon();}catch(e){}}}); 560</script>
560 561</body> 562</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.