MARBRE_BEGIN_1 = "<tr><td class='lt'></td><td class='tt'></td><td class='rt'></td></tr><tr><td class='ll'></td><td class='cc'><table cellspacing='0'><tr><td class='clt'></td><td>";
MARBRE_BEGIN_2 = "</td><td class='crt'></td></tr><tr><td colspan='3'><table ";
MARBRE_END_1   = "</table></td></tr><tr><td class='clb'></td><td class='footer'>";
MARBRE_END_2   = "</td><td class='crb'></td></tr></table></td><td class='rr'></td></tr><tr><td class='lb'></td><td class='bb'></td><td class='rb'></td></tr>";
SCROLL_BEGIN_1 = "<table cellspacing='0' class='";
SCROLL_BEGIN_2 = "'><tr><td class='lt'></td><td class='tt'></td><td class='rt'></td></tr><tr><td class='ll'></td><td class='cc'><table cellspacing='0'>";
SCROLL_END     = "</table></td><td class='rr'></td></tr><tr><td class='lb'></td><td class='bb'></td><td class='rb'></td></tr></table>";
HTML_H_LINE_1  = "<tr><td";
HTML_H_LINE_2  = "><hr/></td></tr>";

//-----------------------------------
//-----------------------------------
//-- Briques pour construire la page
//-----------------------------------
//-----------------------------------

function PAGE_HEADER_BASE(TITLE, ONLOAD_SCRIPT, BODY_CLASS, BACKGROUND_PIC)
{
	if (typeof (BACKGROUND_PIC) != "undefined")
		BACKGROUND_PIC = " class='" + BACKGROUND_PIC + "'";
	else
		BACKGROUND_PIC = "";
	DOC_TEXT  = "<meta http-equiv='X-UA-Compatible' content='IE=edge' />";
	DOC_TEXT += "<meta http-equiv='content-language' content='fr'/>"

	DOC_TEXT += "<link rel='stylesheet' href='../Temple/Temple.css' type='text/css' />";
	DOC_TEXT += "<script type='text/javascript' src='../Temple/Style/Style.js'></script><script type='text/javascript' src='../Temple/Js/Common.js'></script><link rel='shortcut icon' href='../Alyson.ico'/>\n</head><body class='";
	DOC_TEXT += BODY_CLASS + "' onload=\""+ ONLOAD_SCRIPT+"\">";
	DOC_TEXT += "<div id='FRONTON'><div id='LEFT'></div><div id='FRONT'></div><div id='RIGHT'></div><h1 id='TEMPLE'><a href='../Sommaire.htm' title=\"Vers l'entrée du Temple\">Le Temple d'Alyson</a></h1>";
    DOC_TEXT += "<h2 id='CRYPTE'><a href='http://crypte.temple-alyson.net/Sommaire.htm' title=\"Vers l'entrée de la Crypte\">La Crypte</a></h2><div id='ALT'><table><tr><td id='IMAGE_ALT'></td></tr></table></div>";
    DOC_TEXT += "<div id='SEARCH_FORM'><!-- ||MessageFilter.php||Entrez ici le mot ou l'expression à rechercher dans le forum||Rechercher dans le Forum avec des critères complexes||Recherche avancée dans le forum -->";
    DOC_TEXT += "<noscript>Recherche impossible<br/>sans Javascript</noscript></div><div id='SKIN_MENU'></div><iframe id='REMOTE_SKIN_IFRAME' width='0' height='0' style='position:absolute; z-index:1; top:0; left:0; visibility:hidden;'></iframe></div>";
    DOC_TEXT += "<div id='COLONNE'><div id='SOCLE'></div>";
	
	if (typeof(USER) == "undefined")
		USER = "";
	else
	{
		DOC_TEXT += "<div id='PSEUDO'>";
		if (USER != "")
			DOC_TEXT += "Bienvenue<div class='name'>" + USER + "</div>";
		
		DOC_TEXT += "</div><div class='sep'></div>";
	}
	DOC_TEXT += "<ul>";
	
	SID = /\W(sid=\w+)(&.*)?$/.exec(document.location.href);
	if (SID)
		SID = SID[1];

	MENU_CASE = (USER != "") ? 1 : 0;
	for (ROW=0; ROW<MENU_DEF_TAB.length; ROW++)
		DOC_TEXT += "<li id='L" + ROW + "'>" + ((MENU_DEF_TAB[ROW][MENU_CASE + 3]) ? CELL_ENABLED (ROW) : CELL_DISABLED (ROW)) + "</li>";

	
    DOC_TEXT += "</ul><table id='IMAGE_BROWSER' class='off' cellspacing='0'><tr><td><a id='BROWSE_LEFT'><span>&lt;</span></a></td><td><a id='BROWSE_RETURN' title='Retour vers le texte'><span>^</span></a></td><td><a id='BROWSE_RIGHT'><span>&gt;</span></a></td></tr></table></div>";
	DOC_TEXT += "<div id='PAGE'><div id='JPEG'></div><div id='CONTENT'"+ BACKGROUND_PIC +">";
	DOC_TEXT += "<div id='HELP_DIV' onClick='CLOSE_HELP()'></div>\n";
	DOC_TEXT += "<table cellspacing='0' class='tiny' id='TITLE'><tr><td class='lt'></td><td class='tt'></td><td class='rt'></td></tr><tr><td class='ll'></td><td class='cc'><table cellspacing='0'><tr><td class='clt'></td><td class='crt'></td></tr><tr><td colspan='2'><h1>\n";
	DOC_TEXT += TITLE+"</h1></td></tr><tr><td class='clb'></td><td class='crb'></td></tr></table></td><td class='rr'></td></tr><tr><td class='lb'></td><td class='bb'></td><td class='rb'></td></tr></table>\n";
}

function PAGE_FOOTER(DEBUG)
{
	if (DEBUG)
		DOC_TEXT += "<div><textarea cols='60' rows='30' id='PAGE_CONTENT'></textarea></div>"
	DOC_TEXT += "</body>";
	document.write (DOC_TEXT);
	if (DEBUG)
		document.getElementById('PAGE_CONTENT').value = DOC_TEXT;
}

function LINK (TEXT, HREF)
{
	DOC_TEXT += ("<a href=\""+ HREF + "\">" + TEXT + "</a>");
}


//-- Décode une URI avec des % pour la rendre lisible
function UNESCAPE_URI (URI)
{
	var RESULT = "";
	var POS = 0;
	while (POS < URI.length)
	{
		NEXT_ESC = URI.indexOf("%", POS);
		if (NEXT_ESC< 0)
			NEXT_ESC=URI.length;
		RESULT += URI.substring(POS, NEXT_ESC);
		POS = NEXT_ESC;
		if (POS < URI.length)
		{
			RESULT += String.fromCharCode(parseInt(URI.substring(POS+1,POS+3), 16));
			POS += 3;
		}
	}
	return RESULT;
}

//-- A utiliser pour protéger le texte à mettre dans un attribut entouré de double quotes
function PROTECT_QUOTE (TEXT)
{
	return TEXT.replace('"', '\"');
}


//-- Cache ou rend visible un élément (avec contournement du bug d'IE)
function SET_VISIBILITY (ITEM, THE_VISIBILITY)
{
	if (typeof (document.getElementById (ITEM).style.setProperty) == "function")
		document.getElementById (ITEM).style.setProperty("visibility",THE_VISIBILITY,"");
	else
		// contournement de l'incompatibilité W3C de IE
		document.getElementById (ITEM).style.visibility = THE_VISIBILITY;
}

//------------------------------------------
//------------------------------------------
//-- Briques pour construire les tables
//------------------------------------------
//------------------------------------------

function TOP_MARBRE (TITLE, WIDTH)
{
	WIDTH = (typeof (WIDTH) == "undefined") ? "100%" : WIDTH + "px";
	DOC_TEXT += ("<table cellspacing='0' class='pm' style='width:" + WIDTH + "'>");
	DOC_TEXT += (MARBRE_BEGIN_1 + "<h2>" + TITLE + "</h2>" + MARBRE_BEGIN_2 + ">");
}

function BOT_MARBRE (PAGE)
{
	DOC_TEXT += (MARBRE_END_1 + PAGE + MARBRE_END_2 + "</table>");
}

//-- Gestion des pages en bas des tables
//-----------------------------------------
function PAGE_CHANGE (PAGE_CUR, PAGE_TOTAL, LINKED_PAGE)
{
	var TABLE, PAGE_NEXT;
	PAGE_NEXT = (PAGE_CUR >= PAGE_TOTAL) ? 0 : PAGE_CUR + 1;
	TABLE = "<table class='pagenum'><tr>"
		+ NEXT_PAGE ("p", "Pr&eacute;c&eacute;dente", PAGE_CUR-1, LINKED_PAGE)
		+ "<td class='c'><h3>Page " + PAGE_CUR + "/" + PAGE_TOTAL + "</h3></td>"
		+ NEXT_PAGE ("n", "Suivante", PAGE_NEXT, LINKED_PAGE)
		+ "</tr></table>";
	return TABLE;
}

function NEXT_PAGE (SIDE, QUALIF, PAGE, LINKED_PAGE)
{
	var CELL;
	CELL = "<td class='"+ SIDE +"'>";
	if (PAGE != 0)
		CELL += "<a href=\"" + LINKED_PAGE + PAGE + "\">";
	CELL += QUALIF;
	if (PAGE != 0)
		CELL += "</a>";
	CELL += "</td>";
	return CELL;
}

function BOTTOM_PAGE (INSIDE_CONTENT)
{
	BOT_MARBRE (PAGE_CHANGE (P, PT, PREF));

	if (typeof (INSIDE_CONTENT) != "undefined")
		eval (INSIDE_CONTENT);

	if (PT > 1)
	{
		TOP_SCROLL (false);
		PAGE_TABLE (P, PT, PREF);
		BOT_SCROLL();
	}
}

//------------------------------------------
//------------------------------------------
//-- Briques pour construire les parchemins
//------------------------------------------
//------------------------------------------

COLSPAN = "";
ADD_MARGIN = false;
function SET_COLSPAN (COL)
{
	COLSPAN = (COL > 1) ? " colspan='"+COL+"'" : "";
}

function TOP_SCROLL (IS_LARGE)
{
	DOC_TEXT += SCROLL_BEGIN_1 + ((IS_LARGE) ? "rp" : "lkt") + SCROLL_BEGIN_2;
	ADD_MARGIN = false;
}

function BOT_SCROLL ()
{
	DOC_TEXT += SCROLL_END;
}

function HTML_SCROLL_CELL_BEGIN ()
{
	var RESULT = "<tr><td "+ COLSPAN;
	if (ADD_MARGIN)
	{
		RESULT += " style=\"padding-top:6px\"";
		ADD_MARGIN = false;
	}
	return RESULT;
}

function HTML_SCROLL_CELL (TEXT, STYLE)
{
	var RESULT = HTML_SCROLL_CELL_BEGIN();
	if (STYLE.length > 0)
		RESULT += " class=\""+STYLE+"\"";
	RESULT += ">"+TEXT+"</td></tr>";
	return RESULT;
}

function HTML_SCROLL_PARAG (TEXT, LEVEL)
{
	return HTML_SCROLL_CELL_BEGIN() + "><" + LEVEL + ">" + TEXT +"</" + LEVEL + "></td></tr>";
}

function SCROLL_CELL (TEXT, STYLE)
{
	DOC_TEXT += HTML_SCROLL_CELL (TEXT, STYLE);
}

function SCROLL_PARAG (TEXT, LEVEL)
{
	DOC_TEXT += HTML_SCROLL_PARAG (TEXT, LEVEL);
}

function HTML_SCROLL_TITLE (TITLE)
{
	return HTML_SCROLL_PARAG (TITLE, "h2");
}

function SCROLL_TITLE(TITLE)
{
	SCROLL_PARAG (TITLE, "h2");
}

function SCROLL_SUBTITLE(TITLE)
{
	SCROLL_PARAG (TITLE, "h3");
}

function SCROLL_INSTRUCTION (TEXT)
{
	SCROLL_CELL (TEXT, "");
}

function SCROLL_HELP(TEXT)
{
	SCROLL_CELL (TEXT, "note");
}

function SCROLL_ERROR(TEXT)
{
	SCROLL_CELL (TEXT, "error");
}

function H_LINE()
{
	DOC_TEXT += HTML_H_LINE_1 + COLSPAN + HTML_H_LINE_2;
}

function SCROLL_SEP ()
{
	ADD_MARGIN = true;
}

function SCROLL_BUTTON (TITLE, ACTION, BUTTON)
{
	var TYPE = (ACTION.length==0) ? "submit" : "button";
	if (ACTION.length > 0)
		ACTION = "\" onClick=\"" + ACTION;
	var BUTTON = (typeof(BUTTON) != "undefined") ?
				"\" name=\"BUTTON" + BUTTON
				: "";
	SCROLL_CELL ("<input type=\""
					+ TYPE   + "\" value=\""
					+ TITLE  + BUTTON + ACTION + "\"/>",
				"");
}

function SCROLL_LINK(TITLE, TARGET, STYLE)
{
	SCROLL_CELL ("<a href=\""+TARGET+"\">"+TITLE+"</a>", STYLE);
}

//-- Gestion des pages dans les parchemins
//-----------------------------------------
function PAGE_TABLE (CUR_PAGE, PAGE_TOTAL, LINKED_PAGE)
{
	var COL_TOTAL, COL_LENGTH, PAGE, LINE, COL;
	
	COL_TOTAL = (PAGE_TOTAL < 6) ? 1 : (PAGE_TOTAL < 11) ? 2 : 3;
	COL_LENGTH = Math.ceil (PAGE_TOTAL / COL_TOTAL);
	DOC_TEXT += ("<tr><td><table cellspacing='0' class='pagelist'>");
	for (LINE = 0; LINE < COL_LENGTH; LINE++)
	{
		DOC_TEXT += ("<tr>");
		for (COL = 0; COL < COL_TOTAL; COL++)
		{
			PAGE = COL * COL_LENGTH + LINE + 1;
			DOC_TEXT += ("<td>");
			if (PAGE <= PAGE_TOTAL)
			{
				if (PAGE != CUR_PAGE)
					DOC_TEXT += "<a href=\"" + LINKED_PAGE + PAGE + "\">";
				DOC_TEXT += ("Page&nbsp;"+PAGE);
				if (PAGE != CUR_PAGE)
					DOC_TEXT += "</a>";
			}
			DOC_TEXT += ("</td> ");
		}
		DOC_TEXT += ("</tr>");
	}
	DOC_TEXT += ("</table></td></tr>");
}


//------------------------------------------
//------------------------------------------
//-- Briques pour construire les Formulaires
//-- Le formulaires sont obligatoirement
//-- des parchemins à 2 colonnes
//------------------------------------------
//------------------------------------------

function FORM_DATA (TITLE, DATA)
{
	DOC_TEXT += "<tr><td class='label'>" + TITLE + "</td><td class='control'>" + DATA + "</td></tr>"
}

function FORM_TEXT (TITLE, TEXT)
{
	FORM_DATA (TITLE, TEXT);
}

function FORM_NO_INFO (TITLE)
{
	FORM_DATA (TITLE, "<div class='info'>Aucune</div>");
}

function FORM_INFO (TITLE, TEXT)
{
	if (TEXT.length == 0)
		FORM_NO_INFO (TITLE);
	else
		FORM_TEXT (TITLE, TEXT);
}

function FORM_LARGE_INFO (TITLE, TEXT)
{
	if (TEXT.LENGTH == 0)
		FORM_NO_INFO (TITLE);
	else
	{
		FORM_DATA (TITLE, "");
		DOC_TEXT += "<tr><td colspan='2' class='control'>"+TEXT+"</td></tr>";
	}
}

function HTML_INPUT (NAME, LENGTH, WIDTH, PASSWORD)
{
	var TYPE=((typeof(PASSWORD)!="undefined")&&PASSWORD)?"password":"text";
	var INPUT_TEXT = "<input type='" + TYPE +"' name='"
					+ NAME   + "' maxlength='"
					+ LENGTH + "' size='"
					+ WIDTH;
	if (eval ("typeof("+NAME+")") != "undefined")
		INPUT_TEXT += "' value='" + eval(NAME);
	INPUT_TEXT += "'/>";
	return INPUT_TEXT;
}

function FORM_INPUT (TITLE, NAME, LENGTH, WIDTH, PASSWORD)
{
	FORM_DATA (TITLE, HTML_INPUT (NAME, LENGTH, WIDTH, PASSWORD), "");
}

function FORM_BOX (TITLE, NAME)
{
	var CHECKED = ((eval("typeof("+NAME+")") != "undefined") && eval(NAME)) ? " checked='checked'" : "";
	FORM_DATA (TITLE, "<input type='checkbox' value='1' name='" + NAME + "'"+CHECKED+"/>", "");
}

//-- Aide à la création de select
//--------------------------------
function OPTION_HTML (VALUE, TEXT, SELECTED)
{
	var RESULT = "<option value='" + VALUE + "'";
	if (SELECTED)
		RESULT +=  " selected";
	RESULT += ">" + TEXT + "</option>";
	return RESULT;
}

function SELECT_HTML (CHOICE_TAB, SELECT_NAME, ON_CHANGE, TITLE)
{
	var ON_CHANGE = (!ON_CHANGE) ? "" : (' onchange="' + ON_CHANGE + '"');
	var TITLE     = (!TITLE) ? "" : (' title="' + TITLE + '"');
	var INIT_SELECT = ((SELECT_NAME.indexOf(" ") > 0)
				|| (eval("typeof("+SELECT_NAME+")") == "undefined")) ? 0 : eval (SELECT_NAME);
	var RESULT = "<select name='" + SELECT_NAME + "'" + ON_CHANGE + TITLE + ">";
	var AUTO_NUM = typeof(CHOICE_TAB[0]) == "string";
	for (var I = 0; I < CHOICE_TAB.length; I++)
	{
		var INDEX = (AUTO_NUM)?I:CHOICE_TAB[I][0];
		RESULT += OPTION_HTML (INDEX, (AUTO_NUM)?CHOICE_TAB[I]:CHOICE_TAB[I][1], (INDEX==INIT_SELECT));
	}
	return RESULT + "</select>";
}

//----------------------------------------------
//-- Fabrication du menu
//----------------------------------------------

function CELL_ENABLED (I)
{
	HERE = (I == 3) ? " id='HERE'" : "";
	if ((typeof(MENU_DEF_TAB[I][6]) != "undefined") && MENU_DEF_TAB[I][6] && SID)
	{
		CELL_SID = "?" + SID;
	}
	else
		CELL_SID = "";
	return "<a href='" + MENU_DEF_TAB[I][1] + CELL_SID + "' class='stone" + ((I & 1)+1) + "'" + HERE + "title=\""+ MENU_DEF_TAB[I][2]+"\">" + MENU_DEF_TAB[I][0] + "</a>";
}

function CELL_DISABLED (I)
{
	return "<div>" + MENU_DEF_TAB[I][0] + "</div>";
}

