(function () { // Define our constructor this.EventosProgram = function () { var self = this; // Define option defaults var defaults = { env: 'production', baseURL: 'https://program.eventos.fi' } // Create options by extending defaults with the passed in arugments if (arguments[0] && typeof arguments[0] === "object") { this.options = extendDefaults(defaults, arguments[0]); // Set baseURL if(typeof arguments[0].env !== 'undefined') { this.options.baseURL = setBaseURL(arguments[0].env) } } // Init this.init = function () { var eventosFormStyles = document.createElement("link"); eventosFormStyles.href = self.options.baseURL + "/static/css/widget.css"; eventosFormStyles.rel = "stylesheet"; document.getElementsByTagName("head")[0].appendChild(eventosFormStyles); var eventosFormScript = document.createElement("script"); eventosFormScript.src = (self.options.baseURL + "/static/js/widget.js"); document.getElementsByTagName("head")[0].appendChild(eventosFormScript); eventosFormScript.onload = function (response) { if(typeof eventos.initEventosProgram !== 'undefined') { eventos.initEventosProgram(self.options); } }; }; } // Utility method to extend defaults with user options function extendDefaults(source, properties) { var property; for (property in properties) { if (properties.hasOwnProperty(property)) { source[property] = properties[property]; } } return source; } function setBaseURL(env) { switch(env) { case 'local': return 'https://program.eventos2.local'; case 'development': return 'https://program-dev.eventos.fi'; case 'staging': return 'https://program-staging.eventos.fi'; default: return 'https://program.eventos.fi'; } } }());