;(function(window) { var materialPreloader = { defaultsOptions: { position: 'bottom', height: '5px', col_1: '#159756', col_2: '#da4733', col_3: '#3b78e7', col_4: '#fdba2c', fadeIn: 200, fadeOut: 200 }, init: function(userOptions) { var tempDiv = document.createElement('div'), settings = materialPreloader.extend(materialPreloader.defaultsOptions, userOptions), template; materialPreloader.applyFadeConfig(settings); template = ""; tempDiv.innerHTML = template; document.body.insertBefore(tempDiv, document.body.firstChild); return materialPreloader.public; }, extend: function ( defaults, options ) { var a = Object.create(defaults); Object.keys(options).map(function(prop) { prop in a && (a[prop] = options[prop]); }); return a; }, applyFadeConfig: function(settings) { var tempStyle = document.createElement('style'), fadeSettings = ''; if(settings.fadeIn !== 200 && materialPreloader.isInteger(settings.fadeIn)) { fadeSettings += '.load-bar.visible { -webkit-transition-duration: ' + (settings.fadeIn/1000) + 's; transition-duration: ' + (settings.fadeIn/1000) + 's; }'; } if(settings.fadeOut !== 200 && materialPreloader.isInteger(settings.fadeOut)) { fadeSettings += '.load-bar.invisible { -webkit-transition-duration: ' + (settings.fadeOut/1000) + 's; transition-duration: ' + (settings.fadeOut/1000) + 's; }'; } if(fadeSettings !== '') { tempStyle.innerHTML = fadeSettings document.body.insertBefore(tempStyle, document.body.firstChild); } }, isInteger: function(n) { return Number(n) === n && n%1 === 0; }, public: { on: function() { var materialDiv = document.getElementById('materialPreloader'); materialDiv.classList.remove('invisible'); materialDiv.classList.add('visible'); }, off: function() { var materialDiv = document.getElementById('materialPreloader'); materialDiv.classList.remove('visible'); materialDiv.classList.add('invisible'); } } }; window.materialPreloader = materialPreloader.init; })(window);