
palettes = {
	"Endesga 32": {
		colors: "be4a2f,d77643,ead4aa,e4a672,b86f50,733e39,3e2731,a22633,e43b44,f77622,feae34,fee761,63c74d,3e8948,265c42,193c3e,124e89,0099db,2ce8f5,ffffff,c0cbdc,8b9bb4,5a6988,3a4466,262b44,181425,ff0044,68386c,b55088,f6757a,e8b796,c28569".split(
			","
		),
	},

	"Resurrect 64": {
		colors: "2e222f,3e3546,625565,966c6c,ab947a,694f62,7f708a,9babb2,c7dcd0,ffffff,6e2727,b33831,ea4f36,f57d4a,ae2334,e83b3b,fb6b1d,f79617,f9c22b,7a3045,9e4539,cd683d,e6904e,fbb954,4c3e24,676633,a2a947,d5e04b,fbff86,165a4c,239063,1ebc73,91db69,cddf6c,313638,374e4a,547e64,92a984,b2ba90,0b5e65,0b8a8f,0eaf9b,30e1b9,8ff8e2,323353,484a77,4d65b4,4d9be6,8fd3ff,45293f,6b3e75,905ea9,a884f3,eaaded,753c54,a24b6f,cf657f,ed8099,831c5d,c32454,f04f78,f68181,fca790,fdcbb0".split(
			","
		),
	},

	"AAP-64": {
		colors: "060608,141013,3b1725,73172d,b4202a,df3e23,fa6a0a,f9a31b,ffd541,fffc40,d6f264,9cdb43,59c135,14a02e,1a7a3e,24523b,122020,143464,285cc4,249fde,20d6c7,a6fcdb,ffffff,fef3c0,fad6b8,f5a097,e86a73,bc4a9b,793a80,403353,242234,221c1a,322b28,71413b,bb7547,dba463,f4d29c,dae0ea,b3b9d1,8b93af,6d758d,4a5462,333941,422433,5b3138,8e5252,ba756a,e9b5a3,e3e6ff,b9bffb,849be4,588dbe,477d85,23674e,328464,5daf8d,92dcba,cdf7e2,e4d2aa,c7b08b,a08662,796755,5a4e44,423934".split(
			","
		),
	},

	"Zughy 32": {
		colors: "472d3c,5e3643,7a444a,a05b53,bf7958,eea160,f4cca1,b6d53c,71aa34,397b44,3c5956,302c2e,5a5353,7d7071,a0938e,cfc6b8,dff6f5,8aebf1,28ccdf,3978a8,394778,39314b,564064,8e478c,cd6093,ffaeb6,f4b41b,f47e1b,e6482e,a93b3b,827094,4f546b".split(
			","
		),
	},

	Journey: {
		colors: "050914,110524,3b063a,691749,9c3247,d46453,f5a15d,ffcf8e,ff7a7d,ff417d,d61a88,94007a,42004e,220029,100726,25082c,3d1132,73263d,bd4035,ed7b39,ffb84a,fff540,c6d831,77b02a,429058,2c645e,153c4a,052137,0e0421,0c0b42,032769,144491,488bd4,78d7ff,b0fff1,faffff,c7d4e1,928fb8,5b537d,392946,24142c,0e0f2c,132243,1a466b,10908e,28c074,3dff6e,f8ffb8,f0c297,cf968c,8f5765,52294b,0f022e,35003b,64004c,9b0e3e,d41e3c,ed4c40,ff9757,d4662f,9c341a,691b22,450c28,2d002e".split(
			","
		),
	},

	Vinik24: {
		colors: "000000,6f6776,9a9a97,c5ccb8,8b5580,c38890,a593a5,666092,9a4f50,c28d75,7ca1c0,416aa3,8d6268,be955c,68aca9,387080,6e6962,93a167,6eaa78,557064,9d9f7f,7e9e99,5d6872,433455".split(
			","
		),
	},

	"Sweetie 16": {
		colors: "1a1c2c,5d275d,b13e53,ef7d57,ffcd75,a7f070,38b764,257179,29366f,3b5dc9,41a6f6,73eff7,f4f4f4,94b0c2,566c86,333c57".split(
			","
		),
	},

	Lospec500: {
		colors: "10121c,2c1e31,6b2643,ac2847,ec273f,94493a,de5d3a,e98537,f3a833,4d3533,6e4c30,a26d3f,ce9248,dab163,e8d282,f7f3b7,1e4044,006554,26854c,5ab552,9de64e,008b8b,62a477,a6cb96,d3eed3,3e3b65,3859b3,3388de,36c5f4,6dead6,5e5b8c,8c78a5,b0a7b8,deceed,9a4d76,c878af,cc99ff,fa6e79,ffa2ac,ffd1d5,f6e8e0,ffffff".split(
			","
		),
	},
};
palettes["Commodore 64"] = {"name":"Commodore 64","author":"","colors":["000000","626262","898989","adadad","ffffff","9f4e44","cb7e75","6d5412","a1683c","c9d487","9ae29b","5cab5e","6abfc6","887ecb","50459b","a057a3"]};
palettes["PICO-8"] = {"name":"PICO-8","author":"","colors":["000000","1D2B53","7E2553","008751","AB5236","5F574F","C2C3C7","FFF1E8","FF004D","FFA300","FFEC27","00E436","29ADFF","83769C","FF77A8","FFCCAA"]};
palettes["Gameboy Color"] = {"name":"Nintendo Gameboy (Black Zero)","author":"","colors":["2e463d","385d49","577b46","7e8416"]};



//populate palettes list in new pixel menu
(() => {
    const palettesMenu = document.getElementById('palette-menu');
    const splashPalettes = document.getElementById('palette-menu-splash');
    const noPaletteButton = document.getElementById('no-palette-button');
    const newPixelElement = document.getElementById('new-pixel');
    const paletteButton = document.getElementById('palette-button');
    const paletteButtonSplash = document.getElementById('palette-button-splash');
    const loadPaletteButton = document.getElementById('load-palette-button');
    const loadPaletteButtonSplash = document.getElementById('load-palette-button-splash');

	splashPalettes.refresh = function () {
		splashPalettes.innerHTML = '';
		palettesMenu.innerHTML = '';

		Object.keys(palettes).forEach((paletteName,) => {

			const button = document.createElement('button');
			button.appendChild(document.createTextNode(paletteName));

			//if the palette was specified by the user, change the dropdown to it
			if (palettes[paletteName].specified) {
				Util.setText('palette-button', paletteName);
				Util.setText('palette-button-splash', paletteName)
				//Show empty palette option
				noPaletteButton.style.display = 'block';
			}

			const buttonEvent = () => {
				//hide the dropdown menu
				deselect('palette-menu');
				deselect('palette-button');
				deselect('palette-menu-splash');
				deselect('palette-button-splash');

				//show empty palette option
				noPaletteButton.style.display = 'block';

				//set the text of the dropdown to the newly selected preset
				Util.setText('palette-button', paletteName);
				Util.setText('palette-button-splash', paletteName);
			}

			// Making a copy for the splash page too
			const copyButton = button.cloneNode(true);
			copyButton.addEventListener('click', buttonEvent);
			button.addEventListener('click', buttonEvent);

			// Appending it to the splash palette menu
			splashPalettes.appendChild(copyButton);
			palettesMenu.appendChild(button);
		});
	}	

	splashPalettes.refresh();


    const loadPaletteButtonEvent = () => {
        document.getElementById('load-palette-browse-holder').click();
    }
    const clickPaletteButtonEvent = (e) => {
        toggle('palette-button');
        toggle('palette-menu');

        deselect('preset-button');
        deselect('preset-menu');

        // Splash version
        toggle('palette-button-splash');
        toggle('palette-menu-splash');

        e.stopPropagation();
    }
    // Load Palettes
    loadPaletteButton.addEventListener('click', loadPaletteButtonEvent);
    loadPaletteButtonSplash.addEventListener('click', loadPaletteButtonEvent);

    // Palette menu click
    paletteButtonSplash.addEventListener('click', clickPaletteButtonEvent);
    paletteButton.addEventListener('click', clickPaletteButtonEvent);

    noPaletteButton.addEventListener('click', () => {
        noPaletteButton.style.display = 'none';
        Util.setText('palette-button', 'Choose a palette...');
    })

    newPixelElement.addEventListener('click', () => {
        deselect('preset-button');
        deselect('preset-menu');
        deselect('palette-button');
        deselect('palette-menu');

        // Splash version
        deselect('palette-button-splash');
        deselect('palette-menu-splash');
    })
})(); 