var electron = require('electron')
const shell = electron.shell
var ipc = electron.ipcRenderer
//title bar
const customTitlebar = require('custom-electron-titlebar')
window.addEventListener('DOMContentLoaded', () => {
	document.title = 'TheDesk'
	ipc.send('acsCheck', '')
	ipc.send('frameCheck', '')
	ipc.on('frame', function(event, args) {
		const file = location.href.substr(-10)
		if (
			file == 'index.html' ||
			file == '/acct.html' ||
			file == 'tting.html'
		) {
			new customTitlebar.Titlebar({
				backgroundColor: customTitlebar.Color.fromHex('#000'),
				titleHorizontalAlignment: 'right',
				icon: '../../img/desk.png'
			})
		}
		})
})

onmessage = function(e) {
	if (e.data[0] == 'openUrl') {
		urls = e.data[1].match(/https?:\/\/(.+)/)
		if (urls) {
			shell.openExternal(e.data[1])
		}
	} else if (e.data[0] == 'sendSinmpleIpc') {
		ipc.send(e.data[1], '')
	} else if (e.data[0] == 'dialogStore') {
		ipc.send('dialogStore', e.data[1])
	} else if (e.data[0] == 'bmpImage') {
		ipc.send('bmp-image', e.data[1])
	} else if (e.data[0] == 'resizeImage') {
		ipc.send('resize-image', e.data[1])
	} else if (e.data[0] == 'stampImage') {
		ipc.send('stamp-image', e.data[1])
	} else if (e.data[0] == 'dialogCW') {
		ipc.send('dialogCW', e.data[1])
	} else if (e.data[0] == 'nativeNotf') {
		console.log(e.data[1])
		ipc.send('native-notf', e.data[1])
	} else if (e.data[0] == 'dialogClient') {
		ipc.send('dialogClient', e.data[1])
	} else if (e.data[0] == 'generalDL') {
		ipc.send('general-dl', e.data[1])
	} else if (e.data[0] == 'openFinder') {
		ipc.send('openFinder', e.data[1])
	} else if (e.data[0] == 'columnDel') {
		ipc.send('column-del', e.data[1])
	} else if (e.data[0] == 'lang') {
		ipc.send('lang', e.data[1])
	} else if (e.data[0] == 'exportSettings') {
		ipc.send('exportSettings', e.data[1])
	} else if (e.data[0] == 'exportSettingsCoreComplete') {
		ipc.send('export', e.data[1])
	} else if (e.data[0] == 'importSettings') {
		ipc.send('importSettings', e.data[1])
	} else if (e.data[0] == 'customSound') {
		ipc.send('customSound', e.data[1])
	} else if (e.data[0] == 'themeJsonDelete') {
		ipc.send('theme-json-delete', e.data[1])
	} else if (e.data[0] == 'themeJsonCreate') {
		ipc.send('theme-json-create', e.data[1])
	} else if (e.data[0] == 'themeJsonRequest') {
		ipc.send('theme-json-request', e.data[1])
	} else if (e.data[0] == 'ha') {
		ipc.send('ha', e.data[1])
	} else if (e.data[0] == 'frameSet') {
		ipc.send('frameSet', e.data[1])
	} else if (e.data[0] == 'ua') {
		ipc.send('ua', e.data[1])
	} else if (e.data[0] == 'aboutData') {
		ipc.send('aboutData', '')
	} else if (e.data[0] == 'itunes') {
		console.log('NowPlaying')
		ipc.send('itunes', e.data[1])
	} else if (e.data[0] == 'themeCSSRequest') {
		ipc.send('theme-css-request', e.data[1])
	} else if (e.data[0] == 'customCSSRequest') {
		ipc.send('custom-css-request', e.data[1])
	} else if (e.data[0] == 'downloadButton') {
		ipc.send('download-btn', e.data[1])
	} else if (e.data[0] == 'nano') {
		ipc.send('nano', null)
	} else if (e.data[0] == 'asReadComp') {
		ipc.send('sendMarkersComplete', null)
	} else if (e.data[0] == 'copy') {
		ipc.send('copy', e.data[1])
	} else if (e.data[0] == 'log') {
		ipc.send('log', e.data[1])
	}
}
//version.js
ipc.send('getPlatform', '')
ipc.on('platform', function(event, args) {
	localStorage.setItem('platform', args[0])
	localStorage.setItem('bit', args[1])
	localStorage.setItem('about', JSON.stringify([args[2], args[3], args[4], args[5]]))
})

ipc.on('reload', function(event, arg) {
	location.reload()
})
//Native Notf
ipc.on('shownotf', function(event, args) {
	if (args['type'] == 'toot') {
		postMessage(['details', [id, acct_id]], '*')
	} else if (args['type'] == 'userdata') {
		postMessage(['udg', [user, acct_id]], '*')
	}
})

//first.js
ipc.on('custom-css-response', function(event, arg) {
	if (arg == '') {
		return false
	}
	var styleNode = document.createElement('style')
	styleNode.setAttribute('type', 'text/css')

	var content = document.createTextNode(arg)
	styleNode.append(content)
	document.getElementsByTagName('head')[0].append(styleNode)
})
ipc.on('theme-css-response', function(event, arg) {
	if (arg == '') {
		return false
	}
	var styleNode = document.createElement('style')
	styleNode.setAttribute('type', 'text/css')

	var content = document.createTextNode(arg)
	styleNode.append(content)
	document.getElementsByTagName('head')[0].append(styleNode)
})
//img.js
ipc.on('bmp-img-comp', function(event, b64) {
	if (b64[2]) {
		var stamped = true
	} else {
		var stamped = false
	}
	postMessage(['media', [b64[0], 'image/png', b64[1], stamped]], '*')
})
ipc.on('resizeJudgement', function(event, b64) {
	var resize = localStorage.getItem('uploadCrop') * 1
	if (resize > 0) {
		var element = new Image()
		var width
		element.onload = function() {
			var width = element.naturalWidth
			var height = element.naturalHeight
			if (width > resize || height > resize) {
				ipc.send('resize-image', [b64[0], resize])
			} else {
				postMessage(['media', [b64[0], 'image/png', b64[1]]], '*')
			}
		}
		element.src = 'data:image/png;base64,' + b64[0]
	} else {
		postMessage(['media', [b64[0], 'image/png', b64[1]]], '*')
	}
})
//ui,img.js
ipc.on('general-dl-prog', function(event, arg) {
	console.log('Progress: ' + arg)
})
ipc.on('general-dl-message', function(event, arg) {
	var argC = arg.replace(/\\/g, '\\\\')
	console.log('saved')
	postMessage(['toastSaved', [arg, argC]], '*')
})
//setting.js
ipc.on('langres', function(event, arg) {
	location.href = '../' + arg + '/setting.html'
})
ipc.on('exportSettingsFile', function(event, arg) {
	postMessage(['exportSettingsCore', arg], '*')
})
ipc.on('exportAllComplete', function(event, arg) {
	postMessage(['alert', 'Complete'], '*')
})
ipc.on('config', function(event, arg) {
	postMessage(['importSettingsCore', arg], '*')
})
ipc.on('savefolder', function(event, arg) {
	localStorage.setItem('savefolder', arg)
})
ipc.on('font-list', function(event, arg) {
	postMessage(['fontList', arg], '*')
})
ipc.on('customSoundRender', function(event, args) {
	postMessage(['customSoundSave', [args[0], args[1]]], '*')
})
ipc.on('theme-json-list-response', function(event, args) {
	postMessage(['ctLoadCore', args], '*')
})
ipc.on('theme-json-delete-complete', function(event, args) {
	postMessage(['ctLoad', ''], '*')
})
ipc.on('theme-json-response', function(event, args) {
	postMessage(['customConnect', args], '*')
})
ipc.on('theme-json-create-complete', function(event, args) {
	postMessage(['clearCustomImport', ''], '*')
	postMessage(['ctLoad', ''], '*')
})
//spotify.js
ipc.on('itunes-np', function(event, arg) {
	postMessage(['npCore', arg], '*')
})
//tips.js
ipc.on('memory', function(event, arg) {
	var use = arg[0]
	var cpu = arg[1]
	var total = arg[2]
	postMessage(['renderMem', [use, cpu, total]], '*')
})
//log
ipc.on('logData', function(event, args) {
	postMessage(['logData', args], '*')
})
//update.html
ipc.on('prog', function(event, arg) {
	postMessage(['updateProg', arg], '*')
})
ipc.on('mess', function(event, arg) {
	postMessage(['updateMess', arg], '*')
})
//misc
ipc.on('asRead', function(event, arg) {
	postMessage(['asRead', ''], '*')
})
ipc.on('asReadEnd', function(event, arg) {
	postMessage(['asReadEnd', ''], '*')
})
ipc.on('accessibility', function(event, arg) {
	postMessage(['accessibility', 'true'], '*')
})
var webviewDom = document.getElementById('webview')
if (webviewDom) {
	webviewDom.addEventListener('new-window', function(e) {
		shell.openExternal(e.url)
	})
}