=0)&&(oRect.left>=0)&&(oRect.bottom<=(window.innerHeight||document.documentElement.clientHeight))&&(oRect.right<=(window.innerWidth||document.documentElement.clientWidth))
)}
function _lfielderrorScrollIntoView(eField){if(lutilsIsInViewport(eField))return;eField.scrollIntoView();var iViewportHeight=Math.max(document.documentElement.clientHeight,window.innerHeight||0);window.scrollBy(0,-iViewportHeight/2)}
function lscriptCreateAJAX(page){var AJAX;if(window.XMLHttpRequest)AJAX=new XMLHttpRequest();else AJAX=new ActiveXObject('Microsoft.XMLHTTP');AJAX.open('POST',page);AJAX.setRequestHeader('Content-type','application/x-www-form-urlencoded');AJAX.setRequestHeader('X-AJAX','true');return AJAX}
function lscriptCall(page,senddata,responseHandler){var AJAX=lscriptCreateAJAX(page);AJAX.onreadystatechange=function(){if(this.readyState===4){if(this.status===200){if(responseHandler!==undefined)responseHandler(this.responseText)}}};AJAX.send(senddata)}
function lscriptCallResultDiscard(page,senddata){lscriptCall(page,senddata)}
function ldebugRetrieveStack(){var stackRetriever=new Error('');if(stackRetriever.stack)return stackRetriever.stack;return''}
function LRDFAULT(msg){console.log('** LRDFAULT '+msg);lscriptCallResultDiscard('/_fault','msg='+encodeURIComponent(msg)+'&stack='+ldebugRetrieveStack())}
function lfielderrorSet(eField,sErrorMessage){if(!eField){LRDFAULT("lfielderrorSet called on invalid element");return}
var eErrorMessage=_lfielderrorMessageSet(eField);eField.eMessage=eErrorMessage;_lfielderrorSetErrorStyle(eField,sErrorMessage);_lfielderrorScrollIntoView(eField);lelementFocus(eField)}
function lfielderrorSetPassword(eField,sErrorMessage){if(!eField){LRDFAULT("lfielderrorSetPassword called on invalid element");return}
if(!lelementAttributeGet(eField,'type')==='password'){LRDFAULT("Field "+eField.id+" is not of type password, use lfielderrorSet instead");return}
var ePassword=eField;var eNextSibling=eField.nextElementSibling;if(eNextSibling&&eNextSibling.classList.contains('password-input__eye-icon')){eField=eNextSibling}
var eErrorMessage=_lfielderrorMessageSet(eField);ePassword.eMessage=eErrorMessage;_lfielderrorSetErrorStyle(ePassword,sErrorMessage);_lfielderrorScrollIntoView(eField);lelementFocus(eField)}
function lfielderrorSetPasswordById(sId,sErrorMessage){var eField=document.getElementById(sId);if(!eField){LRDFAULT("lfielderrorSetPasswordById called on invalid element");return}
lfielderrorSetPassword(eField,sErrorMessage)}
function lfielderrorSetById(sId,sErrorMessage){var eField=document.getElementById(sId);if(!eField){LRDFAULT("lfielderrorSetById called on invalid element");return}
lfielderrorSet(eField,sErrorMessage)}
function bsignupFormValidate(sFormId){var sEmailId=sFormId?sFormId+'-signup_email':'signup_email';if(!lutilsEmailValidate(lelementValueGetAndTrimById(sEmailId,''))){lfielderrorSetById(sEmailId,'Please enter a valid email address');return!1}
return!0}
function lelementAttributeSet(e,name,value){if(!e){LRDFAULT("lelementAttributeSet called on invalid element");return}
if(!name){LRDFAULT("lelementAttributeSet missing attribute name from function arguments");return}
if(typeof name!=='string'){LRDFAULT("attribute name must be string");return}
e.setAttribute(name,value)}
function lelementChildAppend(eParent,eChild){if(!eParent){LRDFAULT("lelementChildAppend called on invalid parent element");return}
if(!eChild){LRDFAULT("lelementChildAppend called on invalid child element");return}
eParent.appendChild(eChild)}
function lutilsHiddenInputAdd(eForm,name,value){var eInput=document.createElement('input');lelementAttributeSet(eInput,'type','hidden');lelementAttributeSet(eInput,'name',name);lelementAttributeSet(eInput,'value',value);lelementChildAppend(eForm,eInput)}
function bsignupHiddenInputLocalStorage(eForm,lsfield){if(localStorage[lsfield])lutilsHiddenInputAdd(eForm,lsfield,localStorage[lsfield])}
function ldatetimeGetTimezoneOffsetSeconds(){return new Date().getTimezoneOffset()*60}
function bsignupFormSubmit(sFormId){lfielderrorClearAll();var eForm=document.getElementById(sFormId||'form_signup');if(eForm.isSigningUp)return;if(!bsignupFormValidate(sFormId))return;eForm.isSigningUp=!0;bsignupHiddenInputLocalStorage(eForm,'webvar');bsignupHiddenInputLocalStorage(eForm,'refdate');bsignupHiddenInputLocalStorage(eForm,'ref');bsignupHiddenInputLocalStorage(eForm,'ref2');bsignupHiddenInputLocalStorage(eForm,'ref3');bsignupHiddenInputLocalStorage(eForm,'theme');lutilsHiddenInputAdd(eForm,'timezone',ldatetimeGetTimezoneOffsetSeconds());eForm.action='/signup';eForm.submit()}
function bsignupWebvarsRun(){if(webvart('NoEmailLabel'))lelementRemoveById('signup_email__label');lelementDisplaySetById('btn_googlesignup',webvart('GoogleOauthBtn')?'inline-block':'none');var eFormTitle=lgetElementByIdSafe('form_title');if(webvart('SignupTitle')){lelementInnerHTMLSet(eFormTitle,'Sign up to Brisk Table')}else if(webvart('SignupTitle2')){lelementInnerHTMLSet(eFormTitle,'Create an Account (Free)')}
if(webvart('SignupDesc')){var eDesc=document.createElement('p');lelementInnerHTMLSet(eDesc,'Gain access to all the features and save it to your FREE account');if(webvart('SignupDesc2')){lelementInnerHTMLSet(eDesc,'See how Brisk Table can work for your business. Get started in minutes.')}
eFormTitle.parentNode.insertBefore(eDesc,eFormTitle.nextSibling)}
if(webvart('SignupPlaceholder')){lelementAttributeSetById('signup_email','placeholder','Enter Your Email')}else if(webvart('SignupPlaceholder2')){lelementAttributeSetById('signup_email','placeholder','Enter your email here (e.g. myemail@email.com)')}
if(webvart('SignupBtn')){lelementInnerHTMLSetById('btn_signup','Try it Now, it\'s Free')}else if(webvart('SignupBtn2')){lelementInnerHTMLSetById('btn_signup','Sign up now!')}else if(webvart('SignupBtn3')){lelementInnerHTMLSetById('btn_signup','Sign me up!')}else if(webvart('SignupBtn4')){lelementInnerHTMLSetById('btn_signup','Get started')}else if(webvart('SignupBtn5')){lelementInnerHTMLSetById('btn_signup','Create account')}
if(webvart('FreeTierInclusion')&&(lutilsWindowGetWidthCU()>30)){var eFreeTier=document.createElement('div');eFreeTier.id='freetier_container';lelementStyleSet(eFreeTier,'cssText','flex:2;background-color:#74afe9;margin:0 2em;color:#fff;padding:2em 0');lelementInnerHTMLSet(eFreeTier,'Your FREE account includes:
\n ✔ All Restaurant features
\n ✔ Online Reservations
\n ✔ Menu Generator
\n ✔ Point Of Sale
\n ✔ Waiter Terminal View
\n ✔ Kitchen Display System
\n ✔ Staff Scheduling
\n
'
);var eForm=lgetElementByIdSafe('form_signup');lelementStyleSet(eForm,'flex','3');lelementStyleSetByClass('.gateway-container','cssText','display:flex;max-width:55em');eForm.parentNode.insertBefore(eFreeTier,eForm.nextSibling);var eFreeTierSection=lgetElementByIdSafe('freetier_items');if(webvart('CancelAnytime')){eFreeTierSection.innerHTML+='✔ Cancel Anytime
'}
if(webvart('NoCreditCard')){eFreeTierSection.innerHTML+='✔ No Credit Card required
'}}}
function bsignupGoogleSignup(){lwebgooglesignin({signup_redirect:'/dashboard.html?accounttype=GOOGLE',login_redirect:'/dashboard.html?accounttype=GOOGLE',timezone:new Date().getTimezoneOffset()})}
function bsignupPageLayoutUpdate(){if(lutilsWindowGetWidthCU()<=30)return;if(!webvart('FreeTierInclusion'))return;var ePageContainer=lgetElementByIdSafe('page_container');var bSmallScreen=lutilsWindowGetWidthCU()<66;if(bSmallScreen&&(ePageContainer.firstElementChild.id==='freetier_container'))return;var eFreeTier=document.getElementById('freetier_container');if(eFreeTier){lelementDisplaySetById('page_container',bSmallScreen?'block':'flex');var eSignupForm=lgetElementByIdSafe('form_signup');lelementStyleSet(eFreeTier,'margin',bSmallScreen?'0':'0 2em');if(bSmallScreen)eFreeTier.parentElement.appendChild(eSignupForm);else eSignupForm.parentElement.appendChild(eFreeTier)}}
function bsignupPageInit(){bsignupArgumentsProcess();var email=lutilsGetURLAttribute('email');if(email){lelementValueSetById('signup_email',email);bsignupFormSubmissionErrorHandle()}
bsignupWebvarsRun();bsignupPageLayoutUpdate()}
bsignupPageInit();window.addEventListener('resize',bsignupPageLayoutUpdate);