window.fc_url_base='https://platform.fonolo.com';window.fc_cdn_base='https://cdn.fonolo.com/platform.fonolo.com';window.fc_version='2.5';var fonoloWidget=function(_profile_key,_options){if((typeof _profile_key==='undefined')||(_profile_key.length==0)){console.log('Error: please provide a call-back profile id as the first argument.');return;}
this.options=this.merge_options(this.defaults,_options);this.profile_key=_profile_key;if((_options!==null)&&(typeof _options.container!=='undefined')){this.is_embedded=true;}
this.quirks_mode=(document.doctype===null)?true:false;if((this.quirks_mode==true)&&(this.is_embedded==false)&&(this.options.displayWarnings==true)){console.warn('Missing HTML doctype property. Consider adding a doctype property to all your pages.');}
this.options.timezone=new Date().getTimezoneOffset();var script=window.fc_url_base+'/v2/callback/'+this.profile_key+'/?c='+this.options.container+'&u='+
encodeURI(window.location.href)+'&s='+this.get_session(this.options.container)+'&tz='+this.options.timezone+
this.build_input_arguments(this.options.input);if(this.is_embedded==true){script+='&t=embedded';}
if(typeof window.fc_objects==='undefined'){window.fc_objects=new Array();}
this.options.nonce=this.find_nonce();window.fc_objects[this.options.container]=this;var script_attributes={src:script};if(this.options.nonce.length>0){script_attributes.nonce=this.options.nonce;}
Element.prototype.fc_add_class=function(){for(var i=0;i<arguments.length;i++){this.classList.add(arguments[i]);}
return this;};Element.prototype.fc_remove_class=function(){for(var i=0;i<arguments.length;i++){this.classList.remove(arguments[i]);}
return this;};document.head.appendChild(this.create_element('script',script_attributes));return this;};fonoloWidget.prototype={defaults:{container:'_fc_widget_container',input:{},position:'right',containerStyle:null,containerClass:null,iframeStyle:{border:'none',display:'block',height:'100%',margin:'0px',padding:'0px',width:'100%'},iframeClass:null,displayWarnings:true},settings:{},session:null,is_open:false,is_embedded:false,button_alert_handler:null,button_alert_active:true,svg_phone:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path id="_fc_widget_phone_icon" fill="#fff" d="M375.8 275.2c-16.4-7-35.4-2.4-46.7 11.4l-33.2 40.6c-46-26.7-84.4-65.1-111.1-111.1L225.3 183c13.8-11.3 18.5-30.3 11.4-46.7l-48-112C181.2 6.7 162.3-3.1 143.6 .9l-112 24C13.2 28.8 0 45.1 0 64v0C0 300.7 183.5 494.5 416 510.9c4.5 .3 9.1 .6 13.7 .8c0 0 0 0 0 0c0 0 0 0 .1 0c6.1 .2 12.1 .4 18.3 .4l0 0c18.9 0 35.2-13.2 39.1-31.6l24-112c4-18.7-5.8-37.6-23.4-45.1l-112-48zM447.7 480C218.1 479.8 32 293.7 32 64v0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0c0-3.8 2.6-7 6.3-7.8l112-24c3.7-.8 7.5 1.2 9 4.7l48 112c1.4 3.3 .5 7.1-2.3 9.3l-40.6 33.2c-12.1 9.9-15.3 27.2-7.4 40.8c29.5 50.9 71.9 93.3 122.7 122.7c13.6 7.9 30.9 4.7 40.8-7.4l33.2-40.6c2.3-2.8 6.1-3.7 9.3-2.3l112 48c3.5 1.5 5.5 5.3 4.7 9l-24 112c-.8 3.7-4.1 6.3-7.8 6.3c-.1 0-.2 0-.3 0z"/></svg>',svg_close:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path id="_fc_widget_close_icon" fill="#fff" d="M239 401c9.4 9.4 24.6 9.4 33.9 0L465 209c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-175 175L81 175c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9L239 401z"/></svg>',create_element:function(_name,_attributes){attributes=_attributes||{};var element=document.createElement(_name);for(var attr in attributes){element.setAttribute(attr,attributes[attr]);}
return element;},build_style:function(_obj){var out='';obj=_obj||{};for(var attr in obj){out+=attr+':'+obj[attr]+';';}
return out;},merge_options:function(_obj1,_obj2){var obj3={};for(attrname in _obj1){obj3[attrname]=_obj1[attrname];}
for(attrname in _obj2){obj3[attrname]=_obj2[attrname];}
return obj3;},build_input_arguments:function(_input){var out='';var input=_input||{};for(var attr in input){out+='&input['+attr+']='+encodeURI(input[attr]);}
return out;},get_session:function(){if((navigator.cookieEnabled==false)||(document.cookie.length==0)){return'';}
var value='; '+document.cookie;var parts=value.split('; '+this.options.container+'=');if(parts.length==2){return parts.pop().split(';').shift();}
return'';},find_nonce:function(){var scripts=document.getElementsByTagName('script');for(var i=0;i<scripts.length;i++){if(scripts[i].src.substring(0,window.fc_url_base.length)==window.fc_url_base){if(scripts[i].nonce){return(scripts[i].nonce.length>0)?scripts[i].nonce:'';}}}
return'';},load_embedded:function(){document.removeEventListener('DOMContentLoaded',this.load_embedded);window.removeEventListener('load',this.load_embedded);var container=document.getElementById(this.options.container);if(!container){console.log('Error: container object "'+this.options.container+'" does not exist or is not accessible');return false;}
if(this.settings.active_call==true){if(this.settings.scheduled==true){var frame_url=window.fc_url_base+'/v2/scheduled/'+this.profile_key+'/?s='+this.session;}else{var frame_url=window.fc_url_base+'/v2/inprogress/'+this.profile_key+'/?s='+this.session;}}else{var frame_url=window.fc_url_base+'/v2/main/'+this.profile_key+'/?s='+this.session;}
var iframe_attributes={id:'_fc_widget_iframe',src:frame_url}
if(this.options.iframeStyle){iframe_attributes.style=this.build_style(this.options.iframeStyle);}
if(this.options.iframeClass){iframe_attributes.className=this.options.iframeClass;}
if(this.options.nonce.length>0){iframe_attributes.nonce=this.options.nonce;}
container.appendChild(this.create_element('iframe',iframe_attributes));return true;},put_session:function(_session_id){document.cookie=this.options.container+'='+_session_id+'; secure; samesite=lax;';this.session=_session_id;},clear_session:function(){document.cookie=this.options.container+'=; expires=Thu, 01 Jan 1970 00:00:00 UTC';},create_widget:function(_settings){var obj=this;if(document.getElementById(this.options.container)!=null){return true;}
var widget=this.create_element('div',{id:this.options.container});if(this.options.containerStyle){widget.setAttribute('style',this.build_style(this.options.containerStyle));}
if(this.options.position=='left'){widget.fc_add_class('_fc_widget_container_left_position');}else{widget.fc_add_class('_fc_widget_container_right_position');}
if(this.options.containerClass){widget.fc_add_class(this.options.containerClass);}
if(_settings.active_call==true){if(_settings.scheduled==true){var frame_url=window.fc_url_base+'/v2/scheduled/'+this.profile_key+'/?s='+this.session;}else{var frame_url=window.fc_url_base+'/v2/inprogress/'+this.profile_key+'/?s='+this.session;}}else{var frame_url=window.fc_url_base+'/v2/main/'+this.profile_key+'/?s='+this.session;}
var html='';if(this.quirks_mode==true){html='<div class="_fc_widget_header" style="'+this.build_style({display:"block"})+'"><h2 class="_fc_widget_header_title" style="'+this.build_style({width:"80%",display:"inline-block"})+'">'+_settings.header_title+'</h2><div id="_fc_widget_close_container" style="'+this.build_style({display:"inline-block","vertical-align":"middle"})+'"><span id="_fc_widget_close">'+this.svg_close+'</span></div></div><div class="_fc_widget_body"><iframe id="_fc_widget_iframe" style="'+
this.build_style(this.options.iframeStyle)+'"';}else{html='<div class="_fc_widget_header"><h2 class="_fc_widget_header_title">'+_settings.header_title+'</h2><div id="_fc_widget_close_container"><span id="_fc_widget_close">'+this.svg_close+'</span></div></div><div class="_fc_widget_body"><iframe id="_fc_widget_iframe" style="'+this.build_style(this.options.iframeStyle)+'"';}
if(this.options.iframeClass){html+=' class="'+this.options.iframeClass+'" ';}
if(this.options.nonce.length>0){html+=' nonce="'+this.options.nonce+'" ';}
html+='src="'+frame_url+'"></iframe></div>';if((_settings.show_footer==true)&&(this.quirks_mode==false)){html+='<div class="_fc_widget_footer"><a href="https://fonolo.com/" target="_blank" class="_fc_widget_footer_link"><h3 class="_fc_widget_footer_link_title">'+_settings.footer_title+' Fonolo</h3></a></div>';}
widget.innerHTML=html;document.body.appendChild(widget);document.getElementById('_fc_widget_close').addEventListener('click',function(){document.getElementById(this.options.container).fc_remove_class('_fc_slide_in_up').fc_add_class('_fc_slide_out_down');setTimeout(function(){document.getElementById(this.options.container).style.display='none';document.getElementById('_fc_button').style.display='flex';document.getElementById('_fc_button').fc_remove_class('_fc_bounce_out_down').fc_add_class('_fc_bounce_in_up');this.is_open=false;}.bind(this),600);}.bind(this));return true;},listener:function(_event){if(_event.data.status_code==200){document.getElementById('_fc_button_title').innerHTML=_event.data.data.active_call.m_call_status_message;if((_event.data.data.active_call.m_call_status_code==103)&&(this.is_open==false)&&(this.button_alert_active==true)){document.getElementById('_fc_button').fc_remove_class('_fc_bounce_in_up').fc_add_class('_fc_animated_tada');this.button_alert_handler=setTimeout(function(){document.getElementById('_fc_button').fc_remove_class('_fc_animated_tada');}.bind(this),800);}}else if(_event.data.status_code==-1){document.getElementById('_fc_button_title').innerHTML=this.settings.button_text;}},init:function(_session,_settings){this.put_session(_session);this.settings=_settings;if(this.is_embedded==true){if((document.readyState==='complete')||((document.readyState!=='loading')&&(!document.documentElement.doScroll))){window.setTimeout(this.load_embedded.bind(this));}else{document.addEventListener('DOMContentLoaded',this.load_embedded.bind(this));window.addEventListener('load',this.load_embedded.bind(this));}}else{if(window.addEventListener){window.addEventListener('message',this.listener.bind(this),false)}else{attachEvent('onmessage',this.listener.bind(this));}
var theme_attributes={rel:'stylesheet',type:'text/css',media:'screen',href:window.fc_cdn_base+'/'+window.fc_version+'/themes/default.min.css'};if(this.options.nonce.length>0){theme_attributes.nonce=this.options.nonce;}
var theme=this.create_element('link',theme_attributes);theme.addEventListener('load',function(){if(this.settings.active_call==true){this.create_widget(_settings);}
var button=this.create_element('button',{id:'_fc_button',class:'_fc_bounce_in_up _fc_animated',role:'button','aria-hidden':false});if(this.options.position=='left'){button.fc_add_class('_fc_button_left_position');}else{button.fc_add_class('_fc_button_right_position');}
button.innerHTML='<span id="_fc_button_icon">'+this.svg_phone+'</span><span id="_fc_button_title">'+_settings.button_text+'</span>';button.addEventListener('click',function(){this.create_widget(_settings);this.button_alert_active=false;clearTimeout(this.button_alert_handler);button.fc_remove_class('_fc_bounce_in_up').fc_add_class('_fc_bounce_out_down');setTimeout(function(){document.getElementById('_fc_button').style.display='none';document.getElementById(this.options.container).style.display='flex';document.getElementById(this.options.container).fc_remove_class('_fc_slide_out_down').fc_add_class('_fc_slide_in_up','_fc_animated');this.is_open=true;this.button_alert_active=true;}.bind(this),600);}.bind(this));document.body.appendChild(button);}.bind(this));document.head.appendChild(theme);if((_settings.styles)&&(_settings.styles.length>0)){var style_attributes={type:"text/css"};if(this.options.nonce.length>0){style_attributes.nonce=this.options.nonce;}
var styles=this.create_element("style",style_attributes);styles.appendChild(document.createTextNode(_settings.styles));document.head.appendChild(styles);}}
return this;}};(function(){if(typeof window.fopts==='object'){for(i=0;i<window.fopts.length;i++){new fonoloWidget(window.fopts[i][0],(window.fopts[i][1])?window.fopts[i][1]:{});}}})();