<?php

/**
 * Plugin CIBLOC
 * @copyright 2018 MTECT
 * @author Christophe IMBERTI (cf. CPI art L121-1)
 * @license GNU/GPLv3
 */

if (!defined('_ECRIRE_INC_VERSION')) {
	return;
}

include_spip('inc/cibloc_commun');

function cibloc_choix_couleur($nom_element = '', $couleur_selected = '', $transparent = false, $transparent_desactive = false) {
	$disabled = '';
	if (cibloc_imposer_parametrage('couleur')) {
		$disabled = ' disabled="disabled"';
	}
	return cibloc_choix_couleur_commun($nom_element, $couleur_selected, $transparent, $transparent_desactive, $disabled);
}

function cibloc_choix_couleur_bloc($nom_element = '', $couleur_selected = '') {
	$disabled = '';
	if (cibloc_imposer_parametrage('bloc')) {
		$disabled = ' disabled="disabled"';
	}
	return cibloc_choix_couleur_commun($nom_element, $couleur_selected, true, false, $disabled);
}

function cibloc_choix_couleur_divers($nom_element = '', $couleur_selected = '') {
	$disabled = '';
	if (cibloc_imposer_parametrage('divers')) {
		$disabled = ' disabled="disabled"';
	}
	return cibloc_choix_couleur_commun($nom_element, $couleur_selected, true, false, $disabled);
}

function cibloc_choix_couleur_bouton(
	$nom_element = '',
	$couleur_selected = '',
	$transparent = false,
	$transparent_desactive = false
) {
	$disabled = '';
	if (cibloc_imposer_parametrage('bouton')) {
		$disabled = ' disabled="disabled"';
	}
	return cibloc_choix_couleur_commun($nom_element, $couleur_selected, $transparent, $transparent_desactive, $disabled);
}

function cibloc_choix_couleur_icone(
	$nom_element = '',
	$couleur_selected = '',
	$transparent = false,
	$transparent_desactive = true
) {
	$disabled = '';
	if (cibloc_imposer_parametrage('icones_couleur')) {
		$disabled = ' disabled="disabled"';
	}
	if ($nom_element == 'icone_defaut') {
		$transparent = false;
	} else {
		$transparent = true;
	}
	return cibloc_choix_couleur_commun($nom_element, $couleur_selected, $transparent, $transparent_desactive, $disabled);
}

function cibloc_choix_couleur_commun(
	$nom_element = '',
	$couleur_selected = '',
	$transparent = false,
	$transparent_desactive = false,
	$disabled = ''
) {
	$return = '';
	$selected = '';

	include_spip('cibloc_fonctions');

	// tableau des couleurs
	$tableau_couleurs = cibloc_tableau_couleurs();

	if ($transparent) {
		$tableau_couleurs = array_merge(['transparent' => ''], $tableau_couleurs);
	}

	$type_couleur = 'tout';

	if ($couleur_selected and isset($tableau_couleurs[$couleur_selected])) {
		if (cibloc_couleur_texte_pour_constraster($tableau_couleurs[$couleur_selected])) {
			$style_selected = ' style="background-color:' . $tableau_couleurs[$couleur_selected] . ';color:#FFFFFF;"';
		} else {
			$style_selected = ' style="background-color:' . $tableau_couleurs[$couleur_selected] . ';color:#484848;"';
		}
	} else {
		$style_selected = '';
	}
	// Parcours du tableau
	$return .= '<select name="' . $nom_element . '" onchange="cibloc_change_style_select(this)"' . $style_selected . $disabled . '>' . 'n';
	foreach ($tableau_couleurs as $nom_couleur => $valeur_hexa) {
		if ($type_couleur == 'tout' or strpos($nom_couleur, $type_couleur) !== false) {
			if ($nom_couleur === $couleur_selected) {
				$selected = ' selected="selected"';
			} else {
				$selected = '';
			}

			if ($nom_couleur == 'transparent') {
				$style = ' style="background-color:#FFFFFF;color:#484848;"';
			} elseif (cibloc_couleur_texte_pour_constraster($valeur_hexa)) {
				$style = ' style="background-color:' . $valeur_hexa . ';color:#FFFFFF;"';
			} else {
				$style = ' style="background-color:' . $valeur_hexa . ';color:#484848;"';
			}

			if ($transparent_desactive and $nom_couleur == 'transparent') {
				$libelle_couleur = _T('cibloc:desactive_couleur');
			} else {
				$libelle_couleur = $nom_couleur;
			}

			// Affichage de la ligne
			$return .= "\t" . '<option value="' . $nom_couleur . '"' . $selected . $style . '>' . $libelle_couleur . '</option>' . "\n";
		}
	}
	$return .= '</select>' . "\n";

	return $return;
}
