window.onload = function () { 'use strict'; var Viewer = window.Viewer; var console = window.console || { log: function () {} }; var pictures = document.querySelector('.docs-pictures'); var toggles = document.querySelector('.docs-toggles'); var buttons = document.querySelector('.docs-buttons'); var options = { // inline: true, url: 'data-original', ready: function (e) { console.log(e.type); }, show: function (e) { console.log(e.type); }, shown: function (e) { console.log(e.type); }, hide: function (e) { console.log(e.type); }, hidden: function (e) { console.log(e.type); }, view: function (e) { console.log(e.type); }, viewed: function (e) { console.log(e.type); }, move: function (e) { console.log(e.type); }, moved: function (e) { console.log(e.type); }, rotate: function (e) { console.log(e.type); }, rotated: function (e) { console.log(e.type); }, scale: function (e) { console.log(e.type); }, scaled: function (e) { console.log(e.type); }, zoom: function (e) { console.log(e.type); }, zoomed: function (e) { console.log(e.type); }, play: function (e) { console.log(e.type); }, stop: function (e) { console.log(e.type); } }; var viewer = new Viewer(pictures, options); function toggleButtons(mode) { var targets; var target; var length; var i; if (/modal|inline|none/.test(mode)) { targets = buttons.querySelectorAll('button[data-enable]'); for (i = 0, length = targets.length; i < length; i++) { target = targets[i]; target.disabled = true; if (String(target.getAttribute('data-enable')).indexOf(mode) > -1) { target.disabled = false; } } } } function addEventListener(element, type, handler) { if (element.addEventListener) { element.addEventListener(type, handler, false); } else if (element.attachEvent) { element.attachEvent('on' + type, handler); } } toggleButtons(options.inline ? 'inline' : 'modal'); toggles.onchange = function (event) { var e = event || window.event; var input = e.target || e.srcElement; var name; if (viewer) { name = input.getAttribute('name'); options[name] = name === 'inline' ? JSON.parse(input.getAttribute('data-value')) : input.checked; viewer.destroy(); viewer = new Viewer(pictures, options); toggleButtons(options.inline ? 'inline' : 'modal'); } }; buttons.onclick = function (event) { var e = event || window.event; var button = e.target || e.srcElement; var method = button.getAttribute('data-method'); var target = button.getAttribute('data-target'); var args = JSON.parse(button.getAttribute('data-arguments')) || []; if (viewer && method) { if (target) { viewer[method](document.querySelector(target).value); } else { viewer[method](args[0], args[1]); } switch (method) { case 'scaleX': case 'scaleY': args[0] = -args[0]; break; case 'destroy': viewer = null; toggleButtons('none'); break; } } }; $('[data-toggle="tooltip"]').tooltip(); };