/* ✏️ EDIT ONLY THIS BLOCK — keep it identical in all 5 files */
window.CW_CONFIG={
wa:'919911705515', /* WhatsApp number, country code first, no + */
email:'support@cookwala.in',
phone:'+919911705515',
urls:{ /* your real page links (start with /) */
home:'/',
book:'/booking/', /* page that has the booking form */
bookings:'/elementor-1341/', /* Bottom-nav 'Bookings' isi page par jata hai — isi page me bookings code hona chahiye */
profile:'/profile/',
support:'/support/'
}
};
.cwp{font-family:'Plus Jakarta Sans',sans-serif;width:100%;display:block;color:#0D0D0D}
.cwp *{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
.cwp .wrap{max-width:480px;margin:0 auto;padding:18px 18px 110px}
.cwp h2{font-size:26px;font-weight:800;text-align:center;color:#4B5563;margin:6px 0 14px}
.cwp .av{width:120px;height:120px;border-radius:50%;background:#C9CED8;margin:0 auto 12px;display:flex;align-items:center;justify-content:center;overflow:hidden;font-size:44px;font-weight:800;color:#fff;background-size:cover;background-position:center}
.cwp .editimg{display:flex;margin:0 auto 14px;background:#F5C400;color:#0D0D0D;border:none;border-radius:6px;font-family:inherit;font-weight:700;font-size:12px;padding:7px 14px;cursor:pointer;gap:6px;align-items:center}
.cwp .type{display:flex;justify-content:center;gap:22px;margin-bottom:18px;font-size:14px;font-weight:600}
.cwp .type label{display:flex;align-items:center;gap:6px;cursor:pointer}
.cwp .type input{accent-color:#F5C400;width:17px;height:17px}
.cwp .row{margin-bottom:14px}
.cwp .tg{font-size:13px;font-weight:700;color:#0A84FF;text-decoration:none;cursor:pointer;background:none;border:none;font-family:inherit;padding:4px 0}
.cwp .ok{display:flex;align-items:center;gap:6px;color:#10B981;font-size:13px;font-weight:700;margin:8px 0 4px}
.cwp .extra{display:flex;gap:8px;align-items:center;margin-top:8px}
.cwp .extra .cwx-mob{flex:1}
.cwp .rm{width:38px;height:44px;border:1.5px solid #EBEBEB;border-radius:12px;background:#fff;color:#EF4444;cursor:pointer;flex-shrink:0}
.cwp .hd{display:flex;align-items:baseline;gap:10px;margin:34px 0 12px}
.cwp .hd h3{font-size:22px;font-weight:800;color:#4B5563}
.cwp .ad{border:1px solid #93C5FD;border-radius:6px;overflow:hidden;margin-bottom:14px;background:#fff}
.cwp .ad-b{background:#F8F8F6;padding:14px;position:relative}
.cwp .ad-l{font-size:13px;font-weight:800;margin-bottom:6px;display:flex;gap:8px;align-items:center}
.cwp .tag{font-size:10px;font-weight:800;background:#FFFAE8;border:1px solid rgba(245,196,0,.5);color:#C49B00;border-radius:20px;padding:2px 8px}
.cwp .ad-t{font-size:13px;color:#374151;line-height:1.55}
.cwp .ad-x{position:absolute;top:10px;right:12px;border:none;background:none;color:#6B7280;font-size:16px;cursor:pointer;padding:6px}
.cwp .ad-f{display:flex;border-top:1px solid #E5E7EB}
.cwp .ad-f button{flex:1;padding:12px;border:none;background:#fff;font-family:inherit;font-size:13px;font-weight:600;cursor:pointer;color:#6B7280}
.cwp .ad-f button.e{color:#0A84FF}
.cwp .ad-f button.d{color:#10B981;font-weight:800}
.cwp .chips{display:flex;gap:8px;margin-bottom:14px}
.cwp .chip{flex:1;padding:10px;border:1.5px solid #EBEBEB;border-radius:10px;background:#fff;font-family:inherit;font-size:13px;font-weight:700;cursor:pointer;color:#6B7280}
.cwp .chip.on{border-color:#F5C400;background:#FFFAE8;color:#0D0D0D}
.cwp .mt{margin-top:14px}
.cwp .empty{text-align:center;padding:30px 16px}
.cwp .empty .ic{width:64px;height:64px;border-radius:50%;background:#FFFAE8;display:flex;align-items:center;justify-content:center;margin:0 auto 14px;font-size:26px}
.cwp .empty h3{font-size:16px;font-weight:800;margin-bottom:6px}
.cwp .empty p{font-size:13px;color:#6B7280;line-height:1.55;margin-bottom:16px}
.cwp .empty .cwx-btn{max-width:260px;margin:0 auto}
.cwp .none{font-size:13px;color:#6B7280;background:#F8F8F6;border-radius:10px;padding:14px;text-align:center}
.cwp .who{text-align:center;font-size:12px;color:#6B7280;margin:-6px 0 14px}
.cwp .who a{color:#C49B00;font-weight:700;cursor:pointer;margin-left:6px}
/* ===== COOKWALA SHARED CORE (identical in every file; loads only once per page) ===== */
(function(){
'use strict';
if(window.CWCORE)return;
var D=window.CW_CONFIG||{};
var apiLink=null;
try{apiLink=document.querySelector('link[rel="https://api.w.org/"]');}catch(e){}
var CFG={
wa:D.wa||'919911705515',
email:D.email||'support@cookwala.in',
phone:D.phone||'+919911705515',
api:D.api||((apiLink&&apiLink.href?apiLink.href:'/wp-json/')+'cookwala/v1/'),
urls:Object.assign({home:'/',book:'/booking/',bookings:'/elementor-1341/',profile:'/profile/',support:'/support/'},D.urls||{})
};
var K={sess:'cw_session_mobile',last:'cw_last_mobile',keep:'cw_keep_login',prof:'cw_profiles',book:'cw_bookings',gate:'cw_gate_shown'};
/* ---------- storage (never throws) ---------- */
function st(n){try{return n==='s'?window.sessionStorage:window.localStorage;}catch(e){return null;}}
function get(n,k,d){var s=st(n);if(!s)return d;try{var v=s.getItem(k);return v?JSON.parse(v):d;}catch(e){return d;}}
function set(n,k,v){var s=st(n);if(!s)return false;try{s.setItem(k,JSON.stringify(v));return true;}catch(e){return false;}}
function del(n,k){var s=st(n);if(s){try{s.removeItem(k);}catch(e){}}}
/* ---------- helpers ---------- */
function esc(s){return String(s==null?'':s).replace(/[&"']/g,function(c){return {'&':'&','':'>','"':'"',"'":'''}[c];});}
function norm(v){return String(v||'').replace(/\D/g,'').slice(-10);}
function valid(m){
var seq='01234567890123456789',rev='98765432109876543210';
return m.length===10&&parseInt(m.charAt(0),10)>=6&&!/^(\d)\1{9}$/.test(m)&&seq.indexOf(m)<0&&rev.indexOf(m)<0;
}
function pretty(m){return m&&m.length===10?'+91 '+m.slice(0,5)+' '+m.slice(5):m||'';}
function pad(n){return n<10?'0'+n:''+n;}
function isoOf(d){return d.getFullYear()+'-'+pad(d.getMonth()+1)+'-'+pad(d.getDate());}
function todayISO(){return isoOf(new Date());}
function dateOf(iso){var p=String(iso).split('-');return new Date(+p[0],+p[1]-1,+p[2]);}
function fmtDate(iso,long){
try{return dateOf(iso).toLocaleDateString('en-IN',long?{weekday:'short',day:'numeric',month:'short',year:'numeric'}:{day:'numeric',month:'short'});}catch(e){return iso;}
}
function fmtDates(dates){
if(!dates||!dates.length)return 'Date to be confirmed';
var s=dates.slice().sort();
if(s.length===1)return fmtDate(s[0],true);
var range=true;
for(var i=0;i<s.length-1;i++){if(Math.round((dateOf(s[i+1])-dateOf(s[i]))/86400000)!==1){range=false;break;}}
var y=' '+dateOf(s[s.length-1]).getFullYear();
if(range)return fmtDate(s[0])+' – '+fmtDate(s[s.length-1])+y+' ('+s.length+' days)';
return s.length<=3?s.map(function(x){return fmtDate(x);}).join(', ')+y:s.length+' dates, '+fmtDate(s[0])+' onwards';
}
function waLink(text){return 'https://wa.me/'+CFG.wa+'?text='+encodeURIComponent(text||'Hi Cookwala!');}
/* ---------- session (asked once per browser session) ---------- */
/* FIX: login ab sirf sessionStorage par nahi tikta. sessionStorage naye tab / WhatsApp redirect / in-app browser me kho jata tha,
isse Profile & Support me booking-data gayab ho jata tha. Ab device par 30 din yaad rehta hai. */
function sessionMobile(){
var m=get('s',K.sess,'');if(valid(m))return m;
var k=get('l',K.keep,null);
if(k&&valid(k.m)&&(Date.now()-(k.t||0))-1;});}
function addBooking(b){
var all=allBookings().filter(function(x){return x.id!==b.id;});
all.push(b);set('l',K.book,all);return b;
}
function updateBooking(id,patch){
var all=allBookings();
for(var i=0;i<all.length;i++){if(all[i].id===id){for(var k in patch){all[i][k]=patch[k];}break;}}
set('l',K.book,all);
}
function bucket(b){
if(b.status==='cancelled')return 'past';
var d=(b.dates||[]).slice().sort(),last=d.length?d[d.length-1]:'';
if(last&&last<todayISO())return 'past';
return b.status==='confirmed'?'current':'cart';
}
/* ---------- server sync (WordPress plugin: cookwala-sync) ---------- */
function api(path,opts){
return fetch(CFG.api+path,opts).then(function(r){if(!r.ok)throw new Error('http');return r.json();});
}
function post(path,data){
return api(path,{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify(data),credentials:'omit'});
}
function register(m,name,source){
var p=ensureProfile(m,name);
if(p.srv)return;
post('register',{mobile:m,name:p.name||name||'',source:source||'web'})
.then(function(){saveProfile(m,{srv:true});}).catch(function(){});
}
function pushBooking(b){
post('booking',b).then(function(){updateBooking(b.id,{srv:true});}).catch(function(){});
}
function retrySync(){
var m=sessionMobile();if(!m)return;
register(m,'','retry');
bookingsFor(m).forEach(function(b){if(!b.srv)pushBooking(b);});
}
function refreshStatuses(cb){
var m=sessionMobile();
var ids=(m?bookingsFor(m):[]).filter(function(b){return b.srv&&bucket(b)!=='past';}).map(function(b){return b.id;});
if(!ids.length){if(cb)cb();return;}
api('status?ids='+encodeURIComponent(ids.join(','))).then(function(res){
var map=(res&&res.status)||{};
ids.forEach(function(id){
var b=allBookings().filter(function(x){return x.id===id;})[0];
if(b&&map[id]&&b.status!=='cancelled'&&map[id]!==b.status)updateBooking(id,{status:map[id]});
});
if(cb)cb();
}).catch(function(){if(cb)cb();});
}
/* ---------- UI: styles, toast, sheet, gate ---------- */
function injectCss(){
if(document.getElementById('cwxCoreCss'))return;
if(!document.querySelector('link[href*="Plus+Jakarta"]')){
var l=document.createElement('link');l.rel='stylesheet';
l.href='https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap';
document.head.appendChild(l);
}
var s=document.createElement('style');s.id='cwxCoreCss';
s.textContent=
'.cwx-bd{position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:999990;display:none;align-items:flex-end;justify-content:center;font-family:"Plus Jakarta Sans",sans-serif}'+
'.cwx-bd.open{display:flex;animation:cwxF .2s ease}'+
'@keyframes cwxF{from{opacity:0}to{opacity:1}}@keyframes cwxU{from{transform:translateY(60px);opacity:0}to{transform:none;opacity:1}}'+
'.cwx-sheet{background:#fff;width:100%;max-width:480px;border-radius:22px 22px 0 0;padding:22px 20px max(24px,env(safe-area-inset-bottom));max-height:calc(100vh - 30px);max-height:calc(100dvh - 30px);overflow-y:auto;position:relative;animation:cwxU .28s ease;box-sizing:border-box}'+
'@media(min-width:768px){.cwx-bd{align-items:center}.cwx-sheet{border-radius:22px}}'+
'.cwx-sheet *{box-sizing:border-box;font-family:inherit}'+
'.cwx-x{position:absolute;top:12px;right:12px;width:34px;height:34px;border-radius:50%;border:none;background:#F8F8F6;color:#6B7280;font-size:18px;line-height:1;cursor:pointer;touch-action:manipulation}'+
'.cwx-brand{text-align:center;font-size:13px;font-weight:800;letter-spacing:1px;color:#C49B00;margin-top:6px}'+
'.cwx-h{font-size:21px;font-weight:800;color:#0D0D0D;text-align:center;margin:6px 0 4px;line-height:1.25}'+
'.cwx-sub{font-size:13px;color:#6B7280;text-align:center;line-height:1.55;margin-bottom:18px}'+
'.cwx-lbl{display:block;font-size:11px;font-weight:700;color:#6B7280;text-transform:uppercase;letter-spacing:.7px;margin:0 0 7px}'+
'.cwx-in{width:100%;padding:13px 15px;border:1.5px solid #EBEBEB;border-radius:14px;font-size:15px;font-weight:500;color:#0D0D0D;background:#fff;outline:none;-webkit-appearance:none;appearance:none}'+
'.cwx-in:focus{border-color:#F5C400;box-shadow:0 0 0 3px rgba(245,196,0,.15)}'+
'.cwx-in.bad{border-color:#EF4444}'+
'.cwx-mob{display:flex;align-items:stretch}'+
'.cwx-cc{display:flex;align-items:center;background:#F8F8F6;border:1.5px solid #EBEBEB;border-right:none;border-radius:14px 0 0 14px;padding:0 12px;font-size:13px;font-weight:700;color:#0D0D0D;white-space:nowrap}'+
'.cwx-mob .cwx-in{border-radius:0 14px 14px 0;font-size:18px;font-weight:700;letter-spacing:2px;min-width:0}'+
'.cwx-err{display:none;font-size:11px;font-weight:600;color:#EF4444;margin-top:6px}.cwx-err.show{display:block}'+
'.cwx-btn{width:100%;padding:15px;border:none;border-radius:14px;font-size:15px;font-weight:800;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;touch-action:manipulation;-webkit-appearance:none;appearance:none;line-height:1.2}'+
'.cwx-btn.y{background:#F5C400;color:#0D0D0D;box-shadow:0 4px 14px rgba(245,196,0,.35)}.cwx-btn.y:active{background:#C49B00}'+
'.cwx-btn.k{background:#0D0D0D;color:#fff}.cwx-btn.g{background:#fff;color:#0D0D0D;border:1.5px solid #EBEBEB}'+
'.cwx-btn.w{background:#25D366;color:#fff}'+
'.cwx-note{font-size:11px;color:#6B7280;text-align:center;line-height:1.5;margin-top:12px}'+
'.cwx-toast{position:fixed;bottom:100px;left:50%;transform:translateX(-50%) translateY(16px);background:#0D0D0D;color:#fff;padding:12px 20px;border-radius:30px;font-size:13px;font-weight:600;font-family:"Plus Jakarta Sans",sans-serif;z-index:9999999;opacity:0;transition:opacity .3s,transform .3s;pointer-events:none;max-width:90vw;text-align:center}'+
'.cwx-toast.show{opacity:1;transform:translateX(-50%) translateY(0)}';
document.head.appendChild(s);
}
var _tt=null;
function toast(msg){
injectCss();
var t=document.getElementById('cwxToast');
if(!t){t=document.createElement('div');t.id='cwxToast';t.className='cwx-toast';document.body.appendChild(t);}
t.textContent=msg;t.classList.add('show');
clearTimeout(_tt);_tt=setTimeout(function(){t.classList.remove('show');},3000);
}
function sheet(html,opts){
injectCss();opts=opts||{};
var bd=document.createElement('div');bd.className='cwx-bd';if(opts.id)bd.id=opts.id;
bd.innerHTML=''+
'';
root.querySelector('#cwpGate').onclick=openGate;return;
}
var p=C.ensureProfile(m,''),name=p.name||'';
extraDraft=(p.extra||[]).slice();
var initial=(name||'C').trim().charAt(0).toUpperCase();
var avStyle=p.avatar?' style="background-image:url('+E(p.avatar)+')"':'';
root.innerHTML=
''+
''+
'';
drawExtra();drawAds();
root.querySelector('#cwpChg').onclick=function(){C.logout();render();openGate();};
root.querySelector('#cwpImgBtn').onclick=function(){root.querySelector('#cwpFile').click();};
root.querySelector('#cwpFile').onchange=pickImage;
root.querySelectorAll('input[name=cwpType]').forEach(function(r){r.onchange=function(){root.querySelector('#cwpBizRow').style.display=r.value==='business'&&r.checked?'block':'none';};});
root.querySelector('#cwpAddNum').onclick=function(){extraDraft.push('');drawExtra();var l=root.querySelectorAll('#cwpExtra input');if(l.length)l[l.length-1].focus();};
root.querySelector('#cwpSave').onclick=save;
root.querySelector('#cwpAddAd').onclick=function(){addrForm(null);};
}
function drawExtra(){
var box=root.querySelector('#cwpExtra');
box.innerHTML=extraDraft.map(function(n,i){
return ''+
'';
}).join('');
box.querySelectorAll('input').forEach(function(inp){inp.oninput=function(){inp.value=inp.value.replace(/\D/g,'').slice(0,10);extraDraft[+inp.getAttribute('data-i')]=inp.value;inp.classList.remove('bad');};});
box.querySelectorAll('[data-r]').forEach(function(b){b.onclick=function(){extraDraft.splice(+b.getAttribute('data-r'),1);drawExtra();};});
}
function pickImage(e){
var f=e.target.files&&e.target.files[0];if(!f)return;
var rd=new FileReader();
rd.onload=function(){
var img=new Image();
img.onload=function(){
var s=240,cv=document.createElement('canvas');cv.width=cv.height=s;
var ctx=cv.getContext('2d'),r=Math.min(img.width,img.height),sx=(img.width-r)/2,sy=(img.height-r)/2;
ctx.drawImage(img,sx,sy,r,r,0,0,s,s);
var url=cv.toDataURL('image/jpeg',0.8),av=root.querySelector('#cwpAv');
av.style.backgroundImage='url('+url+')';av.textContent='';
C.saveProfile(C.sessionMobile(),{avatar:url});C.toast('Photo updated');
};
img.onerror=function(){C.toast('Could not read that image');};
img.src=rd.result;
};
rd.readAsDataURL(f);
}
function save(){
var m=C.sessionMobile();if(!m)return;
var email=root.querySelector('#cwpEmail').value.trim(),eErr=root.querySelector('#cwpEmailErr'),ok=true;
eErr.classList.remove('show');
if(email&&!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email)){eErr.classList.add('show');ok=false;}
var extras=[],inputs=root.querySelectorAll('#cwpExtra input');
inputs.forEach(function(inp,i){
var v=C.norm(inp.value);
if(!v&&!inp.value)return;
if(!C.valid(v)||v===m||extras.indexOf(v)>-1){inp.classList.add('bad');ok=false;}else extras.push(v);
});
if(!ok){C.toast('Please fix the highlighted fields');return;}
var type=(root.querySelector('input[name=cwpType]:checked')||{}).value||'individual';
var name=root.querySelector('#cwpName').value.trim();
C.saveProfile(m,{
name:name,email:email,type:type,bizName:type==='business'?root.querySelector('#cwpBiz').value.trim():'',
dob:root.querySelector('#cwpDob').value,gender:root.querySelector('#cwpGender').value,extra:extras,srv:false
});
C.register(m,name,'profile');
var av=root.querySelector('#cwpAv');if(av&&!av.style.backgroundImage)av.textContent=(name||'C').charAt(0).toUpperCase();
C.toast('Profile saved ✓');
}
function drawAds(){
var m=C.sessionMobile(),p=C.getProfile(m),list=(p&&p.addresses)||[],box=root.querySelector('#cwpAds');
if(!list.length){box.innerHTML='';
}).join('');
box.querySelectorAll('[data-del]').forEach(function(b){b.onclick=function(){
if(!confirm('Delete this address?'))return;
var id=b.getAttribute('data-del'),l=list.filter(function(a){return a.id!==id;});
if(l.length&&!l.some(function(a){return a.isDefault;}))l[0].isDefault=true;
C.saveProfile(m,{addresses:l});drawAds();
};});
box.querySelectorAll('[data-def]').forEach(function(b){b.onclick=function(){
var id=b.getAttribute('data-def');
C.saveProfile(m,{addresses:list.map(function(a){a.isDefault=a.id===id;return a;})});drawAds();C.toast('Default address set');
};});
box.querySelectorAll('[data-edit]').forEach(function(b){b.onclick=function(){
addrForm(list.filter(function(a){return a.id===b.getAttribute('data-edit');})[0]);
};});
}
function addrForm(a){
var m=C.sessionMobile(),p=C.getProfile(m),list=(p&&p.addresses)||[];
var _c='';try{_c=localStorage.getItem('cw_city')||'';if(_c.charAt(0)==='"'){_c=JSON.parse(_c);}}catch(e){}
var cityDefault=a?a.city:_c;
var label=a?a.label:'Home';
var sh=C.sheet(
'
'+html+'
';
document.body.appendChild(bd);
var api_={el:bd,close:function(){if(bd.parentNode)bd.parentNode.removeChild(bd);document.body.style.overflow=prev;if(opts.onClose)opts.onClose();}};
var prev=document.body.style.overflow;document.body.style.overflow='hidden';
bd.querySelector('.cwx-x').addEventListener('click',api_.close);
bd.addEventListener('click',function(e){if(e.target===bd)api_.close();});
requestAnimationFrame(function(){bd.classList.add('open');});
return api_;
}
/* "Enter your WhatsApp number" popup */
function gate(opts){
opts=opts||{};
if(document.getElementById('cwxGate'))return;
var last=lastMobile();
var sh=sheet(
'🍳 COOKWALA
'+
''+esc(opts.title||'Cook at your doorstep')+'
'+
''+esc(opts.sub||"India's first cooking services at home")+'
'+
''+
'🇮🇳 +91
'+
'Please enter a valid 10-digit WhatsApp number.
'+
''+
'We use this number for booking updates on WhatsApp.
',
{id:'cwxGate',onClose:function(){if(!done&&opts.onCancel)opts.onCancel();}}
);
var done=false,inp=sh.el.querySelector('#cwxGateIn'),err=sh.el.querySelector('#cwxGateErr');
inp.addEventListener('input',function(){inp.value=inp.value.replace(/\D/g,'').slice(0,10);err.classList.remove('show');inp.classList.remove('bad');});
function go(){
var m=norm(inp.value);
if(!valid(m)){err.classList.add('show');inp.classList.add('bad');return;}
done=true;setSession(m);
var isNew=!getProfile(m);
ensureProfile(m,'');register(m,'',opts.source||'popup');
sh.close();
toast(isNew?'Welcome! Your account is ready.':'Welcome back'+(nameFor(m)?', '+nameFor(m):'')+'!');
try{document.dispatchEvent(new CustomEvent('cw:login',{detail:{mobile:m}}));}catch(e){}
if(opts.done)opts.done(m);
}
sh.el.querySelector('#cwxGateGo').addEventListener('click',go);
inp.addEventListener('keydown',function(e){if(e.key==='Enter')go();});
setTimeout(function(){try{inp.focus();}catch(e){}},300);
}
/* site-wide: ask once per session on first landing */
function autoGate(){
function run(){
if(sessionMobile())return;
if(document.querySelector('[data-cw-page],.cw-embed'))return;
if(get('s',K.gate,false))return;
setTimeout(function(){
if(sessionMobile()||document.getElementById('cwxGate'))return;
set('s',K.gate,true);gate({source:'site-visit'});
},1200);
}
if(document.readyState==='loading')document.addEventListener('DOMContentLoaded',run);else run();
}
window.CWCORE={
cfg:CFG,K:K,get:get,set:set,del:del,esc:esc,norm:norm,valid:valid,pretty:pretty,todayISO:todayISO,isoOf:isoOf,dateOf:dateOf,
fmtDate:fmtDate,fmtDates:fmtDates,waLink:waLink,
sessionMobile:sessionMobile,setSession:setSession,logout:logout,lastMobile:lastMobile,
getProfile:getProfile,ensureProfile:ensureProfile,saveProfile:saveProfile,numbersFor:numbersFor,nameFor:nameFor,
allBookings:allBookings,bookingsFor:bookingsFor,addBooking:addBooking,updateBooking:updateBooking,bucket:bucket,
register:register,pushBooking:pushBooking,retrySync:retrySync,refreshStatuses:refreshStatuses,
injectCss:injectCss,toast:toast,sheet:sheet,gate:gate,autoGate:autoGate
};
injectCss();
if(document.readyState==='loading')document.addEventListener('DOMContentLoaded',retrySync);else setTimeout(retrySync,500);
}());
(function(){
'use strict';
var C=window.CWCORE;if(!C)return;
var root=document.getElementById('cwpRoot'),E=C.esc;
var extraDraft=[];
function openGate(){C.gate({source:'profile',done:function(){render();}});}
function render(){
var m=C.sessionMobile();
if(!m){
root.innerHTML='My Profile
📱
Enter your WhatsApp number
'+ 'We need your WhatsApp number to open your profile.
'+ 'My Profile
Not you?Change number
'+
''+(p.avatar?'':E(initial))+'
'+
''+
''+
''+
'
'+
''+
''+
'Please enter a valid email.
'+
''+
'
'+
''+
'🇮🇳 +91
Registered
'+
''+
['','Male','Female','Other','Prefer not to say'].map(function(g){return ''+(g||'Select gender')+'';}).join('')+'
'+
''+
'My Addresses
🇮🇳 +91
No saved addresses yet. Tap +Add Address to add one.
';return;}
box.innerHTML=list.map(function(a){
return ''+
'
'+
''+E(a.label||'Home')+(a.isDefault?' DEFAULT':'')+'
'+
''+E(a.line1)+(a.line2?', '+E(a.line2):'')+'
'+E(a.city)+(a.pin?' - '+E(a.pin):'')+'
'+E(a.city)+(a.pin?' - '+E(a.pin):'')+'
'+
'
'+(a?'Edit Address':'Add Address')+'
'+
''+['Home','Work','Other'].map(function(l){return '';}).join('')+'
'+
''+
''+
''+
''+
'Please fill house/flat and city. Pincode must be 6 digits.
'+
''
);
var el=sh.el;
el.querySelectorAll('.chip').forEach(function(c){c.onclick=function(){label=c.getAttribute('data-l');el.querySelectorAll('.chip').forEach(function(x){x.classList.toggle('on',x===c);});};});
el.querySelector('#adPin').oninput=function(){this.value=this.value.replace(/\D/g,'').slice(0,6);};
el.querySelector('#adSave').onclick=function(){
var l1=el.querySelector('#adL1').value.trim(),l2=el.querySelector('#adL2').value.trim(),
city=el.querySelector('#adCity').value.trim(),pin=el.querySelector('#adPin').value.trim();
if(!l1||!city||(pin&&pin.length!==6)){el.querySelector('#adErr').classList.add('show');return;}
var rec={id:a?a.id:'ad'+Date.now(),label:label,line1:l1,line2:l2,city:city,pin:pin,isDefault:a?a.isDefault:!list.length};
var out=a?list.map(function(x){return x.id===a.id?rec:x;}):list.concat([rec]);
C.saveProfile(m,{addresses:out});sh.close();drawAds();C.toast('Address saved ✓');
};
}
render();
if(!C.sessionMobile())openGate();
window.addEventListener('storage',function(){});
}());