if(window && window.process && window.process.type && process.versions['electron']) (function(){
	console.log('I AN IN ELECTRON');
	var windowWidth = window.innerWidth;
	var windowHeight = window.innerHeight;
	var dpi = window.devicePixelRatio;
	var ipc = require('electron').ipcRenderer;
	
	var onScroll = function(){};
	ipc.on('scroll', function(){
		onScroll.apply(this, arguments);
		setTimeout(function(){ ipc.send('snapshot', 'scroll-done') }, 500);
	});
	var onComplete = function(){};
	ipc.on('complete', function(){ onComplete.apply(this, arguments) });
	
	function captureElement(options, callback){
		window.scroll(0, 0);
		setTimeout(function(){
			var rect = options.el.getBoundingClientRect();
			onScroll = function(event, arg){
				window.scrollTo(0, arg);
			};
			onComplete = function(){
				if(callback) callback();
				onComplete = function(){};
			};
			ipc.send('snapshot', {
				name: options.name,
				windowWidth: windowWidth,
				windowHeight: windowHeight,
				doubleTrim: options.doubleTrim,
				dpi: dpi,
				x: rect.left | 0,
				y: rect.top | 0,
				width: rect.width | 0,
				height: rect.height | 0
			});
		}, 10);
	}
	
	window.onload = function(){
		var snapshotTasks = [
			{
				el: document.querySelector('#downloadoptions'),
				name: 'download-options',
				doubleTrim: 'white'
			},
			{
				el: document.querySelector('#languages'),
				name: 'languages'
			},
			{
				el: document.querySelector('#variants'),
				name: 'variants'
			},
			{
				el: document.querySelector('#opentype'),
				name: 'opentype'
			},
			{
				el: document.querySelector('#matrix'),
				name: 'matrix'
			},
			{
				el: document.querySelector('#family'),
				name: 'family'
			},
			{
				el: document.querySelector('#previews'),
				name: 'preview-all'
			},
			{
				el: document.querySelector('#weights'),
				name: 'weights'
			},
			{
				el: document.querySelector('#ligations'),
				name: 'ligations',
				doubleTrim: 'white'
			}
		];
		current = 0;
		var step = function(){
			var doit = function(){
				captureElement(snapshotTasks[current], function(){
					current += 1;
					if(current >= snapshotTasks.length) window.close()
					else setTimeout(step, 100)
				})
			};
			if(snapshotTasks[current].prepare) snapshotTasks[current].prepare(doit);
			else setTimeout(doit, 100)
		};
		ipc.send('snapshot', 'i am ready');
		console.log('I AM READY');
		setTimeout(step, 2000);
	}
})()