



var MBWLoadStateType = {
    LOADING: 0,
    LOADED: 1
};

function MBWScript() {
    var state = MBWLoadStateType.LOADING;
    var callbacksOnLoad = [];


    this.setLoaded = function () {
        state = MBWLoadStateType.LOADED;
        for (var i in callbacksOnLoad) {
            if (callbacksOnLoad.hasOwnProperty(i)) {
                callbacksOnLoad[i]();
            }
        }
    };

    this.onLoad = function (callback) {
        if (state === MBWLoadStateType.LOADED) {
            callback();
        } else {
            callbacksOnLoad.push(callback);
        }
    };
}

function MBWScriptList() {
    var scripts = {};

    this.getOrCreateScriptInstance = function(src) {
        if (!this.getScriptInstance(src)) {
            scripts[src] = new MBWScript();
        }
        return scripts[src];
    }

    this.getScriptInstance = function(src) {
        return scripts[src];
    }

    this.onLoad = function (src, callback) {
        var script = this.getOrCreateScriptInstance(src);

        if (callback) {
            script.onLoad(callback);
        }

        return script;
    };
}

if (!window.mbw_loaded_scripts) {
    window.mbw_loaded_scripts = new MBWScriptList();
}

if ( ! window.mbw_loaded_styles) {
    window.mbw_loaded_styles = [];
}

mbw_is_style_already_loaded = function(src) {
    return mbw_loaded_styles.indexOf(src) != -1;
}

mbw_include_script = function (src, callback) {

    var scriptAlreadyLoaded = !! mbw_loaded_scripts.getScriptInstance(src);
    var scriptInstance = mbw_loaded_scripts.onLoad(src, callback);

    if (scriptAlreadyLoaded) {
        return true;
    }


    var script = document.createElement('script');
    script.type = "text/javascript";

    var scriptLoaded = false;
    if (callback) {
        script.onreadystatechange = function () {
            if (scriptLoaded) return;
            if (this.readyState == 'complete' || this.readyState == 'loaded') {
                scriptLoaded = true;
                scriptInstance.setLoaded();
            }
        };
        script.charset = "utf-8";
        script.onload = function() {
            if (scriptLoaded) return;
            scriptLoaded = true;
            scriptInstance.setLoaded();
        }
    }
    script.src = src + (src.indexOf('?') != -1 ? '&' : '?') + 'rev=3201';

    document.getElementsByTagName('head')[0].appendChild(script);
};

var mbw_include_style = function (src) {
    if (mbw_is_style_already_loaded(src)) {
        return;
    }
    mbw_loaded_styles.push(src);


    var style = document.createElement('link');
    style.setAttribute("rel", "stylesheet");
    style.type = "text/css";
    style.href = src + (src.indexOf('?') != -1 ? '&' : '?') + 'rev=3201';
    document.getElementsByTagName('head')[0].appendChild(style);
};

window.mbw_instances = window.mbw_instances || [];
window.mbw_script_loaded = window.mbw_script_loaded || false;

    window.mbw_widget_settings_name = 'klinik-arlesheim';



function MedicosearchBookingWidget2(config) {
    if (!config.token) {
        config.token = 'ee001f26-9e35-4391-aba4-2527a7894679';
    }
    config.rev = '3201';
    this.config = config;
    this.initialized = false;
    this.parent = null;

    if (mbw_script_loaded) {
        this.initialize();
    } else {
        mbw_instances.push(this);
    }

    return this;
}

MedicosearchBookingWidget2.prototype.initialize = function() {
    this.parent = new MedicosearchBookingWidget2Api(this.config);
    this.initialized = true;
}

function mbw_on_script_loaded() {
    for (var i = 0; i < mbw_instances.length; i++) {
        var instance = mbw_instances[i];

        if (!instance.initialized) {
            instance.initialize();
        }
    }
}

mbw_include_script('https://www.medicosearch.ch/widget/booking/2.0.0/build/app.js', function() {

    mbw_script_loaded = true;
    mbw_on_script_loaded();

    
        new MedicosearchBookingWidget2({
            token: 'ee001f26-9e35-4391-aba4-2527a7894679',
            lang: 'de',
            
                widgetSettingsName: 'klinik-arlesheim',
            
            
                sessionId: 'DD7D0989DBC8649702B4DF4C0CAD1DCD',
            

            wrapper: '#medicosearchWidget',

            

            

            

            

            

            

            

            

            

            
            
            
            
            
            

            
            
            
            
            useCase: 'BOOKING'
        });
    
});



