/* JS File for JQC with functions used in ALL compose variants */
/* This document should be Vanilla JS only */

// DomReady Stuff
document.addEventListener('DOMContentLoaded', (e) => {
	initActionEvents();
});

// Adds events where a data-action attribute is present
function initActionEvents() {
	document.querySelectorAll('[data-action]').forEach(currentElement => {
		switch(currentElement.getAttribute('data-action')) {
			case 'changeBackground':
				addChangeBackgroundEvent(currentElement);
				break;
			case 'changeColor':
				addChangeColorEvent(currentElement);
				break;
			case 'changeCombination':
				addChangeCombinationEvent(currentElement);
				break;
			case 'setVignet1':
				addSetVignet1Event(currentElement);
				break;
			case 'setVignet2':
				addSetVignet2Event(currentElement);
				break;
			case 'setVignet100':
				addSetVignet100Event(currentElement);
				break;
			case 'setWasSymbool1':
				addSetWasSymbool1Event(currentElement);
				break;
			case 'setWasSymbool2':
				addSetWasSymbool2Event(currentElement);
				break;
			case 'setWasSymbool3':
				addSetWasSymbool3Event(currentElement);
				break;
			case 'setWasSymbool4':
				addSetWasSymbool4Event(currentElement);
				break;
			case 'setWasSymbool5':
				addSetWasSymbool5Event(currentElement);
				break;
		}
	});
}

// Add 'click' to background color selection
// Will still use 'changeBackground'-function of individual JQC javascript files
function addChangeBackgroundEvent(currentElement) {
	currentElement.addEventListener('click', function(e) {
		var newColor = currentElement.getAttribute('data-color');
		var newCode = currentElement.getAttribute('data-code');
		changeBackground(newColor, newCode, currentElement);
	});
}

// Add 'click' to color selection
// Will still use 'changeColor'-function of individual JQC javascript files
function addChangeColorEvent(currentElement) {
	currentElement.addEventListener('click', function(e) {
		var newColor = currentElement.getAttribute('data-color');
		var newCode = currentElement.getAttribute('data-code');
		changeColor(newColor, newCode, currentElement);
	});
}

// Add 'click' to combination selection
// Will still use 'changeCombination'-function of individual JQC javascript files
// (mogelijk niet nodig omdat 'inc_kleurcombinaties_losse_kleuren.php' niet meer gebruikt lijkt te worden)
function addChangeCombinationEvent(currentElement) {
	currentElement.addEventListener('click', function(e) {
		var newColor1 = currentElement.getAttribute('data-color1');
		var newCode1 = currentElement.getAttribute('data-code1');
		var newColor2 = currentElement.getAttribute('data-color2');
		var newCode2 = currentElement.getAttribute('data-code2');
		changeCombination(newColor1, newCode1, newColor2, newCode2, currentElement);
	});
}

// Add 'click' to vignet1 selection
// Will still use 'setVignet1'-function of individual JQC javascript files
function addSetVignet1Event(currentElement) {
	currentElement.addEventListener('click', function(e) {
		var newCode = parseInt(currentElement.getAttribute('data-code'));
		setVignet1(newCode);
	});
}

function addSetVignet100Event(currentElement) {
	currentElement.addEventListener('click', function(e) {
		var newCode = currentElement.getAttribute('data-code');
		setVignet100(newCode);
	});
}

// Add 'click' to vignet2 selection
// Will still use 'setVignet2'-function of individual JQC javascript files
function addSetVignet2Event(currentElement) {
	currentElement.addEventListener('click', function(e) {
		var newCode = parseInt(currentElement.getAttribute('data-code'));
		setVignet2(newCode);
	});
}

// Add 'click' to wassymbool1 selection
// Will still use 'setWasSymbool1'-function of individual JQC javascript files
function addSetWasSymbool1Event(currentElement) {
	currentElement.addEventListener('click', function(e) {
		var newCode = currentElement.getAttribute('data-code');
		setWasSymbool1(newCode);
	});
}

// Add 'click' to wassymbool2 selection
// Will still use 'setWasSymbool2'-function of individual JQC javascript files
function addSetWasSymbool2Event(currentElement) {
	currentElement.addEventListener('click', function(e) {
		var newCode = currentElement.getAttribute('data-code');
		setWasSymbool2(newCode);
	});
}

// Add 'click' to wassymbool3 selection
// Will still use 'setWasSymbool3'-function of individual JQC javascript files
function addSetWasSymbool3Event(currentElement) {
	currentElement.addEventListener('click', function(e) {
		var newCode = currentElement.getAttribute('data-code');
		setWasSymbool3(newCode);
	});
}

// Add 'click' to wassymbool4 selection
// Will still use 'setWasSymbool4'-function of individual JQC javascript files
function addSetWasSymbool4Event(currentElement) {
	currentElement.addEventListener('click', function(e) {
		var newCode = currentElement.getAttribute('data-code');
		setWasSymbool4(newCode);
	});
}

// Add 'click' to wassymbool5 selection
// Will still use 'setWasSymbool5'-function of individual JQC javascript files
function addSetWasSymbool5Event(currentElement) {
	currentElement.addEventListener('click', function(e) {
		var newCode = currentElement.getAttribute('data-code');
		setWasSymbool5(newCode);
	});
}
