if (typeof window.$Iw == 'undefined')
	window.$Iw = { };

var // À terme, initialiser dynamiquement.
	_RefreshCommand = '-N-REFRESH';


$Iw.SAVE_INITIAL_VALUES = function() {
//--===================-------------
		
	var
		I,
		E;
	
	$Iw.INITIAL_VALUES = { };
	for (I = 0; I < document.forms[0].elements.length; I++)
		if ((E = document.forms[0].elements[I]).name.match(/^[a-z]+[0-9]+-[ie]\d+$/))
			$Iw.INITIAL_VALUES[E.name] = $GetWidgetValue(E);
};


$Iw.RESTORE_INITIAL_VALUES = function() {
//--======================-------------
		
	var
		I,
		NAME;
	
	for (NAME in $Iw.INITIAL_VALUES)
		$SetWidgetValue(document.forms[0][NAME], $Iw.INITIAL_VALUES[NAME]);
};


$Iw.HAS_VALUE_CHANGED = function() {
//--=================-------------
		
	var
		I,
		NAME;
	
	for (NAME in $Iw.INITIAL_VALUES)
		if ($Iw.INITIAL_VALUES[NAME] != $GetWidgetValue(document.forms[0][NAME]))
			return true;
	return false;
};


$AddOnloadFunction(

	function() {
		document.onkeydown  =
		document.onkeypress  =
		document.onmousedown = function(evt) { $Iw.ProcessEvent($Event.NrmEvt(evt)); };
		$Iw.SAVE_INITIAL_VALUES();
	}
);


$AddOnunloadFunction(

	function() {
		var
			e;
			
		if ((e = document.forms[0]['S-AUTO-SAVE']) != undefined && ! $Iw.HAS_VALUE_CHANGED())
			e.value = '';
	}
);


$Iw.ProcessEvent = function(EVT) {
//--============----------------

	var
		target,
		tagName,
		type;
		
	switch (EVT.Type) {
		case 'Key':
			if (EVT.KeyCode == $Event.CodeESC) {
				$Iw.SHOW_LOG_PANEL(false);
				$Event.Cancel(EVT);
			}
			else if (EVT.KeyCode == $Event.CodeRTN) {
				if (
					(tagName = $Tn(target = EVT.Target)) != 'textarea' &&
					tagName != 'select' &&
					(tagName != 'input' || (type = target.type).toLowerCase() == 'text' || type == 'password')
				) {
					if (EVT.shiftKey)
						$Iw.SHOW_LOG_PANEL();
					$Event.Cancel(EVT);
				}
			}
		case 'mousedown':
			document.forms[0]['S-KBD-MODIFIERS'].value = $Event.Modifiers(EVT);
			break;
	}
		
};


$Iw.Handle = function(EVT, CONTAINER_TYPE) {
//--======--------------------------------

	var
		TARGET = $Event.NrmEvt(EVT).Target,
		CONTAINER = $Nta(TARGET, (CONTAINER_TYPE == 'PANEL' ? 'table' : 'tr'));
		
	CONTAINER.setAttribute('state', CONTAINER.getAttribute('state') == 'open' ? 'closed' : 'open');
	TARGET.blur();
};

// -- NAVIGATION --


$Iw.Req = function(VIEW, FOCUS) { // Request
//--===------------------------

	document.getElementById('iALT_SUBMIT').name = _RefreshCommand + '-' + (VIEW ? VIEW : '') + ',' + (FOCUS ? FOCUS : '');
	document.forms[0].submit();
	return void null;
};


// -- LOGGING PANEL --


$Iw.SHOW_LOG_PANEL = function(MODE) {
//--==============-----------------

	var
		logPanel = document.getElementById('iLOGIN_PANEL'),
		logInput;
	
	if (logPanel && document.getElementById('iLOGIN_SUBMIT')) {
		logPanel.style.visibility = (MODE == null ? (logPanel.style.visibility == 'hidden' ? 'visible' : 'hidden') : (MODE ? 'visible' : 'hidden'));
		if (logPanel.style.visibility == 'visible' && (logInput = document.getElementById('iLOGIN_INPUT')))
			logInput.focus();
	}
};


// -- TOPIC STRUCTURE --


$Iw.EditStructure = function(NAME) {
//--=============-----------------

	window.open('system/application/http-documents/structure-editor.htm?NAME=' + encodeURIComponent(NAME), 'tPALETTE', 'width=400,height=400,resizable=yes').focus();
};


$Iw.GetStructure = function(NAME) {
//--============-----------------

	var
		Dummy;
		
	return eval('Dummy = ' + $('j' + NAME).value);
};


$Iw.SetStructure = function(NAME, STRUCTURE) {
//--============----------------------------

	var
		HTML,
		HTML_WARNING,
		K,
		I,
		N,
		FIELDS,
		Dummy;
		
	HTML = HTML_WARNING = '';
	if (STRUCTURE) {
		document.forms[0][NAME].value = $AsLiteral(STRUCTURE, true);
		$('j' + NAME).value = $AsLiteral(STRUCTURE, false);
		FIELDS = STRUCTURE[1];
		I = 0;
		N = $ObjectSize(STRUCTURE[1]);
		for (K in STRUCTURE[0]) {
			if (I >= N )
				HTML_WARNING += '<li>' + $TextPlain2html(K) + '</li>';
			I++;
		}
		if (HTML_WARNING)
			HTML_WARNING =
				'<div style="color: orange">' +
				'<p>' + $Lt('For all articles in this topic, the value in the following field(s), if any, will be lost:') + '</p>' +
				'<ul>' + HTML_WARNING + '</ul>' +
				'<p>( ' + $Lt('Did you make a backup before?') + ' )</p></div>';
	}
	else
		FIELDS = eval('Dummy = ' + $('j' + NAME).value)[1];
	HTML += '<ul>';
	for (K in FIELDS)
		HTML += '<li>' + $TextPlain2html(FIELDS[K] + ': ' + K) + '</li>';
	HTML += '</ul>' + HTML_WARNING;
	$('i' + NAME).innerHTML = HTML;
};


// -- TIMEOUT --


$Iw.TIMEOUT_RUN = function() {
//--===========-------------

	var
		DISPLAY = $('iTIMEOUT'),
		SECONDS = Math.round(DISPLAY.getAttribute('timeMax') - $ServerTime());
	
	if (SECONDS <= 60 && ! $Hcn(document.body, 'cCLOSING'))
		$Acn(document.body, 'cCLOSING');
	if (SECONDS % 2)
		$Rcn(document.body, 'cEVEN');
	else
		$Acn(document.body, 'cEVEN');
	if (SECONDS > 0)
		setTimeout($Iw.TIMEOUT_RUN, 1000);
	else
		SECONDS = 0;
	DISPLAY.firstChild.firstChild.data = Math.round(SECONDS / 60);
};


$Iw.TIMEOUT_Init = function() {
//--============-------------

	$Iw.TIMEOUT_Menu = $Menu.Create();
	$Menu.addItem($Iw.TIMEOUT_Menu, null, $Menu.ItemDISABLED, $Lt('SESSION TIMEOUT:'));
	$Menu.addItem($Iw.TIMEOUT_Menu, function() { $Iw.TIMEOUT_Set(     1 * 60); }, $Menu.ItemSEPARATED, $Lt('{_n} minute' , { '_n': 1  }));
	$Menu.addItem($Iw.TIMEOUT_Menu, function() { $Iw.TIMEOUT_Set(     5 * 60); }, 0                  , $Lt('{_n} minutes', { '_n': 5  }));
	$Menu.addItem($Iw.TIMEOUT_Menu, function() { $Iw.TIMEOUT_Set(    15 * 60); }, 0                  , $Lt('{_n} minutes', { '_n': 15 }));
	$Menu.addItem($Iw.TIMEOUT_Menu, function() { $Iw.TIMEOUT_Set(    60 * 60); }, 0                  , $Lt('{_n} hour'   , { '_n': 1  }));
	$Menu.addItem($Iw.TIMEOUT_Menu, function() { $Iw.TIMEOUT_Set(4 * 60 * 60); }, 0                  , $Lt('{_n} hours'  , { '_n': 4  }));
	$Iw.TIMEOUT_RUN();
};


$Iw.TIMEOUT_Set = function(MINUTES) {
//--===========--------------------

	document.forms[0]['S-TIMEOUT'].value = MINUTES;
	$Iw.Req();
};


// -- GESTION DU RANKING --


$Iw.RK_InitialRanking = [ ];
$Iw.RK_SEL1       =
$Iw.RK_SEL2       =
$Iw.RK_RANKS      =
$Iw.RK_AFTER_LAST = null;

	
$Iw.RK_INIT = function() {
//--=======-------------

	/*
		Appelé préalablement à toute manipulation de ranking. Effectif lors du
		premier appel seulement, pour initialiser les variables JavaScript
		nécessaires aux manipulations.
	*/
	
	var
		I;
		
	if ($Iw.RK_SEL1 == undefined) {
		$Iw.RK_SEL1 = document.getElementById('iRK_SEL1');
		$Iw.RK_SEL2 = document.getElementById('iRK_SEL2');
		$Iw.RK_RANKS = document.forms[0]['S-RANKS'];
		$Iw.RK_AFTER_LAST = new Option('  -- THE END --', '');
		for (I = 0; I < $Iw.RK_SEL1.options.length; I++)
			$Iw.RK_InitialRanking[I] = $Iw.RK_SEL1.options[I];
	}
};


$Iw.RK_Select = function() {
//--=========-------------

	/*
		Appelé suite à un clic dans la liste des items à réordonner.
	*/
	
	var
		I,
		OPTION;
		
	$Iw.RK_INIT();
	$Iw.RK_SEL2.options.length = 0;
	for (I = 0; I < $Iw.RK_SEL1.options.length; I++)
		if (! (OPTION = $Iw.RK_SEL1.options[I]).selected)
			$Iw.RK_SEL2.options[$Iw.RK_SEL2.options.length] = new Option(OPTION.text, OPTION.value);
	$Iw.RK_SEL2.options[$Iw.RK_SEL2.options.length] = $Iw.RK_AFTER_LAST;
};


$Iw.RK_Move = function() {
//--=======-------------

	/*
		Appelé suite à un clic dans la liste des points d'insertion.
	*/
	
	var
		SEL_SIZE = $Iw.RK_SEL1.options.length - ($Iw.RK_SEL2.options.length - 1),
		OFFSET = $Iw.RK_SEL2.selectedIndex,
		OPTIONS = [ ],
		OPTION,
		I,
		J;
		
	$Iw.RK_INIT();
	for (I = 0; I < $Iw.RK_SEL2.options.length - 1; I++)
		OPTIONS[I] = $Iw.RK_SEL2.options[I];
	I = J = 0;
	while (J < SEL_SIZE)
		if ((OPTION = $Iw.RK_SEL1.options[I++]).selected)
			OPTIONS.splice(OFFSET + J++, 0, OPTION);
	$Iw.RK_Reorder(OPTIONS);
};


$Iw.RK_Reorder = function(options) {
//--==========--------------------

	var
		I;
		
	$Iw.RK_INIT();
	$Iw.RK_SEL2.options.length = $Iw.RK_SEL1.options.length = 0;
	for (I = 0; I < options.length; I++)
		$Iw.RK_SEL1.options[I] = options[I];
	$Iw.RK_SEL1.selectedIndex = $Iw.RK_SEL2.selectedIndex = -1;
	$Iw.RK_AFTER_LAST.selected = false;
	$Iw.RK_EXIT();
};


$Iw.RK_Chron = function() {
//--========-------------

	var
		OPTIONS = [ ],
		I;

	$Iw.RK_INIT();
	for (I = 0; I < $Iw.RK_InitialRanking.length; I++)
		OPTIONS.push($Iw.RK_InitialRanking[I]);
	OPTIONS.sort(
		function(option1, option2) {
			return (
				parseInt(option1.value.replace(/\D+/g, '')) -
				parseInt(option2.value.replace(/\D+/g, ''))
			);
		}
	);
	$Iw.RK_Reorder(OPTIONS);
};


$Iw.RK_Inverse = function() {
//--==========-------------

	var
		OPTIONS = [ ],
		I;

	$Iw.RK_INIT();
	for (I = $Iw.RK_SEL1.options.length - 1; I >= 0; I--)
		OPTIONS.push($Iw.RK_SEL1.options[I]);
	$Iw.RK_Reorder(OPTIONS);
};


$Iw.RK_EXIT = function() {
//--=======-------------

	var
		RANKS = [ ],
		I;
		
	for (I = 0; I < $Iw.RK_SEL1.options.length; I++)
		RANKS.push($Iw.RK_SEL1.options[I].value);
	$Iw.RK_RANKS.value = RANKS.join(',');
};


// -- GESTION DE SPACE_MAP --


$Iw.MAP_ShowArticles = function(EVT, id1, id2) {
//------============--------------------------

	var
		LEFT_PART = $(id1),
		RIGHT_PART = $(id2);
		
	switch ($Event.NrmEvt(EVT).type) {
		case 'mouseover':
			LEFT_PART.style.backgroundImage = ($Platform('MSIE') ? 'url()' : 'none');
			LEFT_PART.style.backgroundColor = 'rgb(255, 255, 255)';
			LEFT_PART.style.color = 'rgb(0, 0, 0)';
			RIGHT_PART.style.display = '';
			RIGHT_PART.style.backgroundColor = 'rgb(255, 255, 255)';
			RIGHT_PART.style.color = 'rgb(0, 0, 0)';
			break;
		case 'mouseout':
			LEFT_PART.style.backgroundImage =  ($Platform('SAFARI') ? 'inherit' : '');
			LEFT_PART.style.backgroundColor = '';
			LEFT_PART.style.color = '';
			RIGHT_PART.style.display = 'none';
			RIGHT_PART.style.backgroundColor = '';
			RIGHT_PART.style.color = '';
			break;
	}
};

// -- GESTION DE IWMLC

$Iw.IWML_Timeout = 1000; // ms
$Iw.IWML_Timer = $Iw.IWML_ActiveTextarea = null;


$Iw.IWML_Onchange = function(TEXTAREA, TIMEOUT) {
//--=============------------------------------
	
	$Iw.IWML_V_RESIZE(TEXTAREA);
	clearTimeout($Iw.IWML_Timer);
	$Iw.IWML_Timer = setTimeout($Iw.IWML_GET_HTML, (TIMEOUT ? TIMEOUT : $Iw.IWML_Timeout));
};


$Iw.IWML_Activate = function(TEXTAREA) {
//--=============---------------------

	if (TEXTAREA)
		$Iw.IWML_ActiveTextarea = TEXTAREA;
};


$Iw.IWML_Resize = function(EVT) {
//--===========----------------

	EVT = $Event.NrmEvt(EVT);
	
	var
		TEXTAREA = $(EVT.Target.id.replace(/_HANDLE/, '')),
		BIG = (TEXTAREA.value.length > 16 * 1024),
		RENDERED,
		T,
		R;
		
	if (BIG) {
		RENDERED = $(EVT.Target.id.replace(/_HANDLE/, '_RENDERED'));
		T = TEXTAREA.value;
		R = RENDERED.innerHTML;
	}
		
	$Drag.Track(
		EVT,
		function(X) {
			$Iw.IWML_H_RESIZE(X);
		},
		function() {
			if (BIG)
				TEXTAREA.value = RENDERED.innerHTML = '';
			$Iw.IWML_H_RESIZE(null, TEXTAREA);
		},
		function() {
			if (BIG) {
				TEXTAREA.value = T;
				RENDERED.innerHTML = R;
			}
		}
	);
	$Event.Cancel(EVT);
};


$Iw.IWML_Init = function(TEXTAREA_NAME) {
//--=========--------------------------

	var
		SAVED = $Iw.IWML_ActiveTextarea,
		TEXTAREA = document.forms[0][TEXTAREA_NAME],
		TABLE = $Nta(TEXTAREA, 'table');
		
	TEXTAREA.style.width = '329px'; // Largeur totale = 671px.
	TEXTAREA.style.resize = 'none'; // Suppression de la manette par défaut de Safari.
	$Iw.IWML_V_RESIZE(TEXTAREA);
	$Iw.IWML_ActiveTextarea = TEXTAREA;
	$Iw.IWML_GET_HTML();
	$Iw.IWML_ActiveTextarea = SAVED;
};


$Iw.IWML_GET_HTML = function() {
//--=============-------------

	if ($Iw.IWML_ActiveTextarea)
		$('i' + $Iw.IWML_ActiveTextarea.name + '_RENDERED').innerHTML = $Iwml.GetHTML($Iw.IWML_ActiveTextarea.value);
//		$DomEmpty($('i' + $Iw.IWML_ActiveTextarea.name + '_RENDERED')).appendChild($Ct($Iwml.GetHTML($Iw.IWML_ActiveTextarea.value)));
};


$Iw.IWML_H_RESIZE = function(X, TEXTAREA) {
//--=============------------------------

	if (X == null) {
		$Iw.IWML_H_RESIZE.TEXTAREA = TEXTAREA;
		$Iw.IWML_H_RESIZE.TEXTAREA_W0 = parseInt(TEXTAREA.style.width);
	}
	else if ($Iw.IWML_H_RESIZE.TEXTAREA_W0 + X >= 0 && $Iw.IWML_H_RESIZE.TEXTAREA_W0 + X < 642)
		$Iw.IWML_H_RESIZE.TEXTAREA.style.width = $Iw.IWML_H_RESIZE.TEXTAREA_W0 + X + 'px';
};


$Iw.IWML_V_RESIZE = function(TEXTAREA) {
//--=============---------------------

	if (TEXTAREA.offsetHeight < TEXTAREA.scrollHeight)
		TEXTAREA.style.height = TEXTAREA.scrollHeight + 20 + 'px';
};


$Iw.IWML_Guide = function() {
//--==========-------------

	alert('Guide…');
};


$Iw.IWML_AttachmentPicker = function(TEXTAREA_NAME, FOCUS) {
//--===================---------------------------------
	var
		PALETTE  = $('ATTACHMENT_PICKER');

	if (PALETTE)
		document.body.appendChild(PALETTE);
	else
		new $Palette($Iw, 'ATTACHMENT_PICKER', $Lt('Use Attachment', FOCUS));
};


$Iw.IWML_ArticlePicker = function(TEXTAREA_NAME, FOCUS) {
//--==================---------------------------------

	var
		PALETTE  = $('ARTICLE_PICKER');
		
	if (PALETTE)
		document.body.appendChild(PALETTE);
	else
		new $Palette($Iw, 'ARTICLE_PICKER', $Lt('Insert Link', FOCUS));
};


$Iw.IWML_Export = function(TEXTAREA_NAME) {
//--==================-------------------

	var
		F = document.forms[0],
		F_ACTION = F.action,
		F_TARGET = F.target,
		INPUT1 = $Ce('input'),
		INPUT2 = $Ce('input'),
		INPUT3 = $Ce('input'),
		INPUT4 = $Ce('input');
		
	INPUT1.setAttribute('type', 'hidden');
	INPUT1.setAttribute('name', 'SOURCE');
	INPUT1.value = $Iwml.GetHTML($('i' + TEXTAREA_NAME).value, true);
	F.appendChild(INPUT1);
	INPUT2.setAttribute('type', 'hidden');
	INPUT2.setAttribute('name', 'PATH_TO_CWD');
	INPUT2.value = $PathToCWD;
	F.appendChild(INPUT2);
	INPUT3.setAttribute('type', 'hidden');
	INPUT3.setAttribute('name', 'PATH_TO_SPACE');
	INPUT3.value = $PathToSpace;
	F.appendChild(INPUT3);
	INPUT4.setAttribute('type', 'hidden');
	INPUT4.setAttribute('name', 'PATH_TO_SYSTEM');
	INPUT4.value = $PathToSystem;
	F.appendChild(INPUT4);
	F.action = $PathToSystem + 'application/http-documents/iwml-export.php';
	F.target = 'EXPORT';
	F.submit();
	F.target = F_TARGET;
	F.action = F_ACTION;
	F.removeChild(INPUT4);
	F.removeChild(INPUT3);
	F.removeChild(INPUT2);
	F.removeChild(INPUT1);
};


$Iw.IWML_INSERT_TAG_AND_SYNONYM = function(TEXTAREA, TAG, URL, SYNONYM) {
//--===========================----------------------------------------

	var
		SELECTION_BOUNDS;
		
	if (! TEXTAREA)
		return alert($Lt('Click into the relevant input field before.'));
	if ($TA_GetSelectionText(TEXTAREA).search(/\r|\n/) >= 0)
		return alert($Lt('Selected text includes a block boundary.'));
	$TA_SetSelectionText(TEXTAREA, TAG);
	SELECTION_BOUNDS = $TA_GetSelectionBounds(TEXTAREA);
	if (URL)
		TEXTAREA.value += '\n{Y ' + URL + ' ' + SYNONYM + '}';
	$TA_SetSelectionBounds(TEXTAREA, [ SELECTION_BOUNDS[1], SELECTION_BOUNDS[1] ]);
	$Iw.IWML_Onchange(TEXTAREA, 1);
	$Iw.IWML_ActiveTextarea.focus();
	return null;
};


$Iw.IWML_INSERT_PLAYER = function(XID, PATH, WIDTH, HEIGHT) {
//--==================----------------------

	var
		EXTENSION = $PathInfoCase(PATH).extension,
		IMAGE = ($MimeTypes[EXTENSION] == undefined || $MimeTypes[EXTENSION].search(/^image\//i) !== 0),
		TA = $Iw.IWML_ActiveTextarea,
		TXT = TA && $TA_GetSelectionText(TA) || $Lt('VIEW ATTACHMENT');

	$Iw.IWML_INSERT_TAG_AND_SYNONYM(
		TA,
		(IMAGE ?
			'{X ViewAttachment ' + XID + ' ' + WIDTH + ' ' + HEIGHT + ' ' + TXT + '}' :
			'{G ' + XID + ' ' + TXT + '}'
		),
		PATH,
		XID
	);
};

$Iw.IWML_INSERT_PLAYER_0 = function(XID, PATH) {
//--==================----------------------

	var
		EXTENSION = $PathInfoCase(PATH).extension,
		IMAGE = ($MimeTypes[EXTENSION] == undefined || $MimeTypes[EXTENSION].search(/^image\//i) !== 0),
		TA = $Iw.IWML_ActiveTextarea,
		TXT = TA && $TA_GetSelectionText(TA) || $Lt('VIEW ATTACHMENT');

	$Iw.IWML_INSERT_TAG_AND_SYNONYM(
		TA,
		(IMAGE ?
			'{X ViewAttachment ' + XID + ' ' + TXT + '}' :
			'{G ' + XID + ' ' + TXT + '}'
		),
		PATH,
		XID
	);
};


$Iw.IWML_INSERT_DOWNLOADER = function(XID, PATH) {
//--======================----------------------

	var
		TA = $Iw.IWML_ActiveTextarea,
		TXT = TA && $TA_GetSelectionText(TA) || $Lt('DOWNLOAD ATTACHMENT');
		
	$Iw.IWML_INSERT_TAG_AND_SYNONYM(
		TA,
		'{D ' + XID + ' ' + TXT + '}',
		PATH,
		XID
	);
};


$Iw.IWML_INSERT_LINK = function(URL, OTHER_WINDOW) {
//--================------------------------------

	var
		TA = $Iw.IWML_ActiveTextarea,
		TXT = TA && $TA_GetSelectionText(TA) || $Lt('LINK');
		
	$Iw.IWML_INSERT_TAG_AND_SYNONYM(
		TA,
		'{' + (OTHER_WINDOW ? 'LW ' : 'L ') + URL + ' ' + TXT + '}'
	);
};


// -- GESTION DE LA PALETTE


$Iw.PaletteRequest = function(PALETTE_ID, FOCUS) {
//--==============------------------------------

	return {
		'URL': $PathToSystem + 'application/ajax.php',
		'PARAMS':
			'N-CODE=' + document.forms[0]['N-CODE'].value + '&' +
			'PATH_TO_SYSTEM=' + $PathToSystem + '&' +
			'PATH_TO_SPACE=' + $PathToSpace + '&' +
			'PATH_TO_CWD=' + $PathToCWD + '&' +
			'CMD=' + PALETTE_ID + '&' +
			'FOCUS=' + (FOCUS ? FOCUS : $Focus)
	};
};


$Iw.PaletteEvent = function(PALETTE_ID, EVT) {
//--============----------------------------
	var
		TARGET = EVT.Target; 
	if ($Nca(EVT.Target, 'cTOPIC')) {	// comment rombapa : clic sur un sujet
		$Menu.ItemClicked = function(ITEM) {
			$Iw.IWML_PALETTE_JS.Refresh($Menu.ItemExtra(ITEM));
		};
		$Menu.open($Iw.TopicsMenu(), EVT);
		$Iw.IWML_PALETTE_JS = $(PALETTE_ID).JS_Obj;
	}
	else
		switch (PALETTE_ID) {
			case 'ATTACHMENT_PICKER':
				if ((TARGET = $Nca(EVT.Target, 'mAO')))
					if ($('iATTACHMENT_USAGE_PLAYER').checked)
						$Iw.IWML_INSERT_PLAYER(TARGET.getAttribute('XID'), TARGET.getAttribute('PATH'), $('iPLAYER_WIDTH').value, $('iPLAYER_HEIGHT').value);
					else
						$Iw.IWML_INSERT_DOWNLOADER(TARGET.getAttribute('XID'), TARGET.getAttribute('PATH'));
				break;
			case 'ARTICLE_PICKER':
				if ($Hcn(EVT.Target, 'mB'))
					$Iw.IWML_INSERT_LINK($('iLINK_URL').value, ! $('iLINK_WINDOW_SAME').checked);
				else if ($Tn(EVT.Target) == 'div' && $Hcn(EVT.Target.parentNode, 'cCLIENT'))
					$Iw.IWML_INSERT_LINK('javascript:$Iw.Req(null,\'' + TARGET.getAttribute('XID') + '\')', ! $('iLINK_WINDOW_SAME').checked);
				break;
		}
};


// --------------------------------------


$Iw.TopicsMenu = function() {
//--==========-------------

/*
	Renvoie le menu des sujets, tels que renseignés dans la variable globale $Topics.
*/

	var
		MENUS,
		ITEMS,
		TID,
		PID;
		
	if ($Iw.TopicsMenu.MENU == null) {
		MENUS = { };
		ITEMS = { };
		for (TID in $Topics) {
			PID = $Topics[TID][1];
			if (MENUS[PID] == undefined) {
				MENUS[PID] = $Menu.Create();
				if (ITEMS[PID] != undefined)
					$Menu.ItemSubmenu(ITEMS[PID], MENUS[PID]);
			}
			ITEMS[TID] = $Menu.addItem((MENUS[PID] ? MENUS[PID] : ''), '', 0, $Topics[TID][0], null, TID);
		}
		$Iw.TopicsMenu.MENU = MENUS[''];
	}
	return $Iw.TopicsMenu.MENU;
};
