// ==================================================================== */
// =================== DETECTION DU NAVIGATEUR ======================== */
// ==================================================================== */
var appName = navigator.appName;
var ie = (appName.indexOf("Internet Explorer", 0) != -1); 



/* ===================================================================== */
/* ===================== AFFICHAGE DES DIFFERENTS MENUS ================ */
/* ===================================================================== */
/**
 * Affiche le menu du haut dans une simple table.
 * 
 * @param menu -
 *        represente un objet json contenant les donnees provenant de la
 *        transformation XSLT.<br>
 *        <b>menus</b> est de la forme:<br>
 *        A valider!
 * @return void
 */
function draw_top_menu(menus) {	
	// debug_script_menu(menus);
	document.write("<table id=\"tb_menu_t\" class=\"tb_menu_t\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">");
	document.write("<tr>");
	var separator = false;
	var cnt = 1;

	for ( var i = 0; i < menus.menu.length; i++) {
		if (menus.menu[i] && menus.menu[i].showmenu) {
			var m = menus.menu[i];
			var items = m.items;

			if (items.length == 0 && !menus.menu[i].action) {
				document.write("<td class=\"menu_t_sep\">");
				document.write("</td>");
				continue;
			}

			document.write("<td class=\"menut_t_td\">");
			document.write("<div id=\"top_menu_"+i+"\" class=\"menu_t\">");
			m_h("top_menu_"+i, menus.menuOvale, false, (menus.menuBorderTop || m.borderTop), m.borderStyle);
			document.write("<img src=\""+"images/menu/:::_"+(i%5)+".gif"+"\" class=\"img_item_t\"/>");
			document.write("<img src=\""+m.icon+"\" class=\"img_item_t\"/>");
			document.write("<span onclick=\""+m.action+"\">"+m.title+"</span>");
			m_f("top_menu_"+i, menus.menuOvale, false, (menus.menuBorderTop || m.borderTop), m.borderStyle);

			if (items.length > 0) {
				document.write("<div id=\"top_items_"+i+"\" class=\"items_t\">");
				m_h("top_items_"+i, menus.menuOvale, false, m.borderTop, "");

				for ( var j = 0; j < items.length; j++) {
					var item = items[j];
					if(item == null) continue;
					document.write("<div id=\"top_item_"+i+"_"+j+"\" class=\"item_t\">");

					if (item.sous_items.length == 0) { 
						document.write("<a href=\"javascript:void(0)\" onclick=\""+((item.action && item.action!=null&&item.action!="")?item.action:"")+"; hideMenu('top_items_"+i+"');\">"+item.name+"</a>");
					} else {
						document.write("<div id=\"sous_items_available_"+i+"_"+j+"\" class=\"sousitems_available\">");
						document.write("<table border=\"0\" style=\"width:100%;\">");
						document.write("<tr><td>");
						document.write(item.name);
						document.write("</td><td style=\"align:right;\">");
						document.write("<img src=\"../images/sep_/bullet_bluearrow.gif\" class=\"img_sousitems_available\"/>");
						document.write("<td></tr>");
						document.write("</table>");
						document.write("</div>");
						document.write("<div id=\"top_sousitems_"+i+"_"+j+"\" class=\"sousitems_t\">");
						m_h("top_sousitems_"+i, menus.menuOvale, false, true, "");
						for ( var k = 0; k < item.sous_items.length; k++) {
							var sous_item = item.sous_items[k];
							if(sous_item == null) continue;
							document.write("<div id=\"top_sousitem_"+i+"_"+j+"\" class=\"sousitem_t\"><a href=\"javascript:void(0)\" onclick=\""
									+((sous_item.action && sous_item.action!=null && sous_item.action!="")?sous_item.action:"")+"; hideMenu('top_items_"+i+"');\">"
									+sous_item.name+"</a></div>");
						}
						m_f("top_sousitems_"+i, menus.menuOvale, false, true, "");
						document.write("</div>");

						var d_sous_items = document.getElementById("top_sousitems_"+ i + "_" + j);
						d_sous_items.onmouseover = function() { this.style.display = "block"; /*chooseMenuEffect("top_sousitems_"+i+"_"+j); */};
						d_sous_items.onmouseout = function() { this.style.display = "none"; /* chooseMenuEffect("top_sousitems_"+i+"_"+j);*/};

						var d_item = document.getElementById("top_item_"+i+"_"+j);
						d_item.onmouseover = function() {this.getElementsByTagName("div")[1].style.display = "block"; /* chooseMenuEffect("top_item_"+i+"_"+j);*/};
						d_item.onmouseout = function() {this.getElementsByTagName("div")[1].style.display = "none"; /*chooseMenuEffect("top_item_"+i+"_"+j);*/};
					}
					document.write("</div>");
				}
				m_f("top_items_"+i, menus.menuOvale, false, m.borderTop, "");
				document.write("</div>");

				var d_menu = document.getElementById("top_menu_" + i);
				//console.log(d_menu);
				d_menu.onmouseover = function() { this.getElementsByTagName("div")[ie?1:menus.menuOvale?0:1].style.display = "block"; /*chooseMenuEffect(this.getElementsByTagName("div")[0].id);*/};
				d_menu.onmouseout = function() {this.getElementsByTagName("div")[ie?1:menus.menuOvale?0:1].style.display = "none"; /*chooseMenuEffect(this.getElementsByTagName("div")[0].id);*/};
			}
			
			document.write("</div>");
			document.write("</td>");
			
			// ---
			hideMenu = function(a) {
			    $(a).style.display='none';
			};
		}
	}
	document.write("</tr>");
	document.write("</table>");
}

/**
 * Affiche le menu de gauche a partir des donnees JSON issues de la
 * transformation XSLT.
 * 
 * @param menus
 *        voir la fonction {@link draw_top_menu} pour plus de precisions sur
 *        le format de ces donnees.
 * @return void
 */
function draw_left_menu(menus) {
	// debug_script_menu(menus);
	document.write("<table id=\"tb_menu_l\" class=\"tb_menu_l\">");

	for ( var i = 0; i < menus.menu.length; i++) {
		if (menus.menu[i] && menus.menu[i].showmenu) {
			var m = menus.menu[i];
			var items = m.items;

			if (items.length == 0 && !menus.menu[i].action) {
				continue;
			}

			document.write("<tr>");
			document.write("<td>");
			document.write("<div id=\"left_menu_"+i+"\" class=\"menu_l\">");
			m_h("left_menu_"+i, menus.menuOvale, false, true, "");
			document.write("<img src=\""+m.icon+"\" class=\"img_item_l\"/>");
			document.write("<span onclick=\""+m.action+"\">"+m.title+"</span>");

			if (items.length > 0) {
				document.write("<div id=\"left_items_"+i+"\" class=\"items_l\">");
				m_h("left_items_"+i, menus.menuOvale, false, true, "");

				for ( var j = 0; j < items.length; j++) {
					var item = items[j];
					if(item == null) continue;
					document.write("<div id=\"left_item_"+i+"_"+j+"\" class=\"item_l\">");

					if (item.sous_items.length == 0) {
						document.write("<a href=\"javascript:void(0)\" onclick=\""+((item.action!=null&&item.action!="")?item.action:"")+"; hideMenu('left_items_"+i+"');\">"+item.name+"</a>");
					} else {
						document.write("<span class=\"sousitems_available\">");
						document.write("<table border=\"0\" style=\"width:100%;\">");
						document.write("<tr><td>");
						document.write(item.name);
						document.write("</td><td>");
						document.write("<img src=\"../images/sep_/bullet_bluearrow.gif\" class=\"img_sousitems_available\"/>");
						document.write("<td></tr>");
						document.write("</table>");
						document.write("</span>");
						document.write("<div id=\"left_sousitems_"+i+"_"+j+"\" class=\"sousitems_l\">");
						m_h("left_sousitems_"+i, menus.menuOvale, false, true, "");
						for ( var k = 0; k < item.sous_items.length; k++) {
							var sous_item = item.sous_items[k];
							if(sous_item == null) continue;
							document.write("<div id=\"left_sousitem_"+i+"_"+j
									+ "\" class=\"sousitem_l\"><a href=\"javascript:void(0)\" onclick=\""
									+ ((sous_item.action && sous_item.action!=null && sous_item.action!="")?sous_item.action:"") + "; hideMenu('left_items_"+i+"');\">"
									+ sous_item.name + "</a></div>");
						}
						m_f("left_sousitems_"+i, menus.menuOvale, false, true, "");
						document.write("</div>");

						var d_sous_items = document.getElementById("left_sousitems_"+i+"_"+j);
						d_sous_items.onmouseover = function() {	this.style.display = "block";};
						d_sous_items.onmouseout = function() { this.style.display = "none";};

						var d_item = document.getElementById("left_item_"+i+"_"+j);
						d_item.onmouseover = function() {this.getElementsByTagName("div")[0].style.display = "block";};
						d_item.onmouseout = function() {this.getElementsByTagName("div")[0].style.display = "none";};
					}
					document.write("</div>");
				}
				m_f("left_items_"+i, menus.menuOvale, false, true, "");
				document.write("</div>");

				var d_menu = document.getElementById("left_menu_"+i);
				d_menu.onmouseover = function() {this.getElementsByTagName("div")[ie?1:menus.menuOvale?0:1].style.display = "block";};
				d_menu.onmouseout = function() {this.getElementsByTagName("div")[ie?1:menus.menuOvale?0:1].style.display = "none";};
			}

			m_f("left_menu_"+i, menus.menuOvale, false, true, "");
			document.write("</div>");
			document.write("</td>");
			document.write("</tr>");
			
			// ---
			hideMenu = function(a) {
				$(a).style.display='none';
			};
		}
	}
	document.write("</table>");
}

/**
 * @param menus
 * @return void
 */
function draw_right_menu(menus) {

	// debug_script_menu(menus);
	document.write("<table id=\"tb_menu_r\" class=\"tb_menu_r\">");
	document.write("<tr>");
	document.write("<td>");
//	for ( var i = 0; i < menus.menu.length; i++) {} // on peut ajouter ici des menus extras
	draw_panel_block(blocks);
	document.write("</td>");
	document.write("</tr>");
	document.write("</table>");
}


function draw_bottom_menu(menus) {	
	document.write("<table id=\"tb_menu_b\" class=\"tb_menu_b\">");
	document.write("<tr>");
	for (var i = 0; i < menus.menu.length; i++) {
		var m = menus.menu[i];
		if (m == null || m.items.length == 0) {
			continue;
		}

		if ( m.showmenu) {
			document.write("<td>");
			document.write("<div id=\"bot_menu_"+i+"\" class=\"menu_b\">");
			// ajout du nom du menu .
			document.write("<div id=\"bot_items_"+i+"\" class=\"items_b\">");
			for (var j = 0; j < m.items.length; j++) {
				var item = m.items[j];
				if(item == null) continue;
				document.write("<div id=\"left_item_"+i+"_"+j+"\" class=\"item_b\">");
				if(item.sous_items.length == 0) {
					document.write("<a href=\"javascript:void(0)\" onclick=\""+((item.action!=null&&item.action!="")?item.action:"")+"\">"+item.name+"</a>");
				} else {
					//document.write("<a href=\"javascript:void(0)\"><span>"+item.name+"</span>");
					document.write("<em>"+item.name+"</em>");
					//document.write("<img src=\"../images/sep_/bullet_bluearrow.gif\" class=\"img_sousitems_available\"/>");
					//document.write("</a>");
					document.write("<div id=\"bot_sousitems_"+i+"_"+j+"\" class=\"sousitems_b\">");
					for ( var k = 0; k < item.sous_items.length; k++) {
						var sous_item = item.sous_items[k];
						if(item.sous_items[k] == null) continue;
						document.write("<div id=\"bot_sousitem_"+i+"_"+j
								+ "\" class=\"sousitem_b\"><a href=\"javascript:void(0)\" onclick=\""
								+ ((sous_item.action && sous_item.action!=null && sous_item.action!="")?sous_item.action:"") + "\">"
								+ sous_item.name + "</a></div>");
					}
					document.write("</div>");
				}
				document.write("</div>");
			}
			document.write("</div>");
			document.write("</div>");
			document.write("</td>");
		}
	}
	document.write("</tr>");
	document.write("</table>");
}
/* ===================================================================== */
/* ===================================================================== */
/* =================================================================================== */
/* ===================== QUADRILLAGE DE LA PAGE WEB ================================== */
/* =================================================================================== */
/**
 * Affiche la configuration de la fenetre en fonction des valeurs issues de la
 * transformation XSLT.
 * 
 * @param menu -
 *            voir {@link <em>draw_left_menu</em>} pour des informations
 *            supplementaires sur le format de ces donnees.
 * @param onSession - 
 *            Boolean , permet de savoir si la session est mis à <i>'on'</i> ou bien si elle est <i>'unset'</i>
 * @return void
 */
function draw_fenetre(menu, onSession) {
	draw_popups();
	var hautOvale   = menu.hautOvale;
	var droiteOvale = menu.droiteOvale;
	var basOvale    = menu.basOvale;
	var gaucheOvale = menu.gaucheOvale;
	var centreOvale = menu.centreOvale;
	
	document.write("<table id=\"tb_fenetre\"  class=\"tb_fenetre\">");

	// menu du haut
	if (menu.haut) {
		document.write("<tr><td colspan=\"3\">");
		document.write("<table class=\"menu_t_barre\" cellspacing=\"0\" cellpadding=\"0\">");
		document.write("<tr id=\"tr_menu_t\"><td id=\"td_menu_t\">");
		draw_flags();
		document.write("</td></tr><tr><td>");
		document.write("<div id=\"id_div_menu_top\" class=\"cls_div_menu_top\">");
		if(hautOvale) draw_cadre_h("menu_t", hautOvale);
		draw_top_menu(menu);
		if(hautOvale) draw_cadre_f("menu_t", hautOvale);
		document.write("</div>");
		document.write("</td></tr>");
		document.write("</table>");
		document.write("</td></tr>");
	}
	// menu de gauche
	document.write("<tr id=\"tr_menu_c\">");
	if (menu.gauche) {
		document.write("<td id=\"td_menu_l\">");
		if(gaucheOvale) draw_cadre_h("menu_l", gaucheOvale);
		draw_slider("id_slider_l", "d_slider_l");
		draw_left_menu(menu);
		draw_panel_extras(extras, onSession);
		if(gaucheOvale) draw_cadre_f("menu_l", gaucheOvale);
		document.write("</td>");
	}

	document.write("<td id=\"td_menu_c\">");
	if(centreOvale) draw_cadre_h("div_cadres", centreOvale);
	draw_cadres(cadres);
	if(centreOvale) draw_cadre_f("div_cadres", centreOvale);
	document.write("</td>");
	
	// menu de droite
	if (menu.droite) {
		document.write("<td id=\"td_menu_r\">"); 
		if(droiteOvale) draw_cadre_h("menu_r", droiteOvale);
		draw_slider("id_slider_r", "d_slider_r");
		if (!menu.gauche) {
			draw_panel_extras(extras, onSession);
		}
		if (menu.showAlertes) {
			draw_alertes(menu.alertesOvale);
		}
		draw_right_menu(menu);
		if(droiteOvale) draw_cadre_f("menu_t", droiteOvale);
		document.write("</td>");
	}
	
	
	document.write("<tr id=\"tr_menu_b1\"><td id=\"td_menu_b1\" colspan=\"3\"></td></tr>");
	
	
	// menu du bas
	if (menu.bas) {
		document.write("<tr id=\"tr_menu_b\"><td id=\"td_menu_b\" colspan=\"3\">");
		if(basOvale) draw_cadre_h("menu_b", basOvale); 
		draw_slider("id_slider_b", "d_slider_b");
		draw_bottom_menu(menu);
		if(basOvale) draw_cadre_f("menu_b", basOvale);
		document.write("</td></tr>");
	}

	// END
	document.write("</table>");

}
//==================================================================================================
//==================================================================================================
//==================================================================================================


/**
 * Cette fonction permet simplement d'affiher le loader ajax en attendant le chargement du 
 * contenu.
 */
function draw_ajax_loader() {
	 document.write(ajax_loader());
}
function ajax_loader() {
	return    "<div id=\"ajax_loader_div\">"
		    + "<center><img src=\"./images/sep_/ajax_loader.gif\"></center>"
		    + "</div>";
}

/* =================================================================================== */
/* =================================================================================== */
/* ================================================================*/
/* ===================== DECORATIONS ==============================*/
/* ================================================================*/
/**
 * Affiche l'etete des elements de decorations.
 * @param id - Identifiant de l'element.
 * @return
 */
function draw_cadre_h(id, round, blk, top) {
	var vtop = (typeof(top) == 'undefined')?true:top;
	var vblk = (typeof(blk) == 'undefined')?false:blk;
	var o = {id:id, round:round, blk:vblk, top:vtop, h:"h",w:"w",t_l:"t_l",t_t:"t_t",t_r:"t_r",w_w:"w_w",x_bg:"x_bg"};
	h(o);
}

/**
 * Affiche le footer des elements de decorations.
 * @param id - Identifiant de l'element.
 * @return
 */
function draw_cadre_f(id, round, blk, top) {
	var vtop = (typeof(top) == 'undefined')?true:top;
	var vblk = (typeof(blk) == 'undefined')?false:blk;
	var o = {id:id, round:round, blk:vblk, top:vtop, h:"h",w:"w",e_e:"e_e",b_l:"b_l",b_b:"b_b",b_r:"b_r",x_bg:"x_bg"};
	f(o);
}

function m_h(id, round, blk, top, style) {
	var vtop = (typeof(top)=='undefined')?true:top;
	var vblk = (typeof(blk)=='undefined')?false:blk;
	var m = ((typeof(style)=='undefined' || style=="")?"tp":style)+"_";
	var o = {id:id, round:round, blk:vblk, top:vtop, h:m+"h",w:m+"w",t_l:m+"t_l",t_t:m+"t_t",t_r:m+"t_r",w_w:m+"w_w",x_bg:m+"x_bg"};
	h(o);
}
function m_f(id, round, blk, top, style) {
	var vtop = (typeof(top)=='undefined')?true:top;
	var vblk = (typeof(blk)=='undefined')?false:blk;
	var m = ((typeof(style)=='undefined' || style=="")?"tp":style)+"_";
	var o = {id:id, round:round, blk:vblk, top:vtop, h:m+"h",w:m+"w",e_e:m+"e_e",b_l:m+"b_l",b_b:m+"b_b",b_r:m+"b_r",x_bg:m+"x_bg"};
	f(o);
}

function h(o) {
	if (!ie && o.round) {
		document.write("<table class=\"h_w_e_b\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">");
		if (o.top) {
			document.write("<tr>");
			document.write("<td id=\"t_l_"+o.id+"\" class=\""+o.t_l+(o.blk?"_blk":"")+" "+o.h+" "+o.w+"\"></td>");
			document.write("<td id=\"t_t_"+o.id+"\" class=\""+o.t_t+(o.blk?"_blk":"")+" "+o.h+"\"></td>");
			document.write("<td id=\"t_r_"+o.id+"\" class=\""+o.t_r+(o.blk?"_blk":"")+" "+o.h+" "+o.w+"\"></td>");
			document.write("</tr>");
		} else {
			document.write("<tr>");
			document.write("<td id=\"t_t_"+o.id+"\" colspan=\"3\" class=\""+o.t_t+(o.blk?"_blk":"")+" "+o.h+"\" style=\"height:1px;\"></td>");
			document.write("</tr>");		
		}
		document.write("<tr>");
		document.write("<td id=\"w_w_"+o.id+"\" class=\""+o.w_w+(o.blk?"_blk":"")+" "+o.w+"\"></td>");
		document.write("<td id=\"x_bg_"+o.id+"\" class=\""+o.x_bg+"\">");
	} else {
		document.write("<div class=\"ie_t_r_b_w\" style=\"width:100%;\">");
	}
}

function f(o) {
	if (!ie && o.round) {
		document.write("</td>");
		document.write("<td id=\"e_e_"+o.id+"\" class=\""+o.e_e+(o.blk?"_blk":"")+" "+o.w+"\"></td>");
		document.write("</tr><tr>");
		document.write("<td id=\"b_l_"+o.id+"\" class=\""+o.b_l+(o.blk?"_blk":"")+" "+o.h+" "+o.w+"\"></td>");
		document.write("<td id=\"b_b_"+o.id+"\" class=\""+o.b_b+(o.blk?"_blk":"")+" "+o.h+"\"></td>");
		document.write("<td id=\"b_r_"+o.id+"\" class=\""+o.b_r+(o.blk?"_blk":"")+" "+o.h+" "+o.w+"\"></td>");
		document.write("</tr>");
		document.write("</table>");
	} else {
		document.write("</div>");
	}
}
/* ================================================================*/
/* ================================================================*/
/* =============================================================================================== */
/* ===================== AFFICHAGE DES BLOCKS SUPPLEMENTAIRES ==================================== */
/* =============================================================================================== */
function draw_panel_block(blocks) {
	if(blocks.showBlocks) {
		document.write("<table id=\"panelBlock\" class=\"panelBlock\">");
		for ( var i = 0; i < blocks.block.length; i++) {
			if(blocks.block[i] == null) continue;
			if(blocks.block[i].showblock) {
				document.write("<tr>");
				document.write("<td>");
				if (blocks.block[i] !='undefined' && blocks.block[i].items.length != 0) {
					draw_cadre_h("block_"+i, true, !blocks.block[i].blockOvale);
					draw_block(blocks.block[i], "block_"+i);
					draw_cadre_f("block_"+i, true, !blocks.block[i].blockOvale);
				} else {
					document.write("<div class=\"block-hr\"/>");
				}
				document.write("</td>");
				document.write("</tr>");
				document.write("<tr><td height=\"3\"></td></tr>");
			}
		}
		document.write("</table>");
	}
}
function draw_block(block, id) {
	if( block != null && block !='undefined') {
		document.write("<table id=\"tb_block_"+id+"\" class=\"tb_block\">");
		document.write("<tr><td>");
		document.write("<table  class=\"block_title\"><tr>");
		document.write("<td id=\"td_extra_title_"+id+"\" onclick=\"toggle_content('"+id+"',"+block.slidable+");\">"+block.title+"</td>");
		if (block.slidable) {
			document.write("<td id=\"td_title_img"+id+"\"><img src=\"images/expand.png\" onclick=\"toggle_content('"+id+"',"+block.slidable+");\"/></td>");
		}
		document.write("</tr></table>");
		document.write("</td></tr>");

		document.write("<tr><td>");
		document.write("<div id=\""+id+"\" class=\"block\">");
		if (block.items.length != 0) {
			document.write("<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">");
			for ( var j = 0; j < block.items.length; j++) {
				if(block.items[j] == null) continue;
				document.write("<tr class=\"block_item\"><td>");
				document.write("<div id=\"item_"+id+"_"+j+"\">");
				document.write("<img src=\""+block.items[j].icon+"\" class=\"img_block\" title=\""+block.items[j].description+"\"/>");
				document.write("</div>");
				document.write("<td><a href=\"javascript:void(0)\" onclick=\""+block.items[j].action+"\">");
				document.write(block.items[j].title);
				document.write("</a></td>");
				document.write("<td> ");
				if (block.items[j].nouveau) {
					document.write("<img src=\"images/menu/new.gif\"/>");
				}
				document.write("</td></tr>");
				document.write("<tr><td></td>");
				document.write("<td colspan=\"2\"><div id=\"p_"+id+"_"+j+"\" class=\"p_block\">");
				document.write(block.items[j].description);
				document.write("</div></td>");
				
				document.write("</tr>");
			}
			document.write("</table>");
	  }
		
		document.write("</div>");
		document.write("</td>");
		document.write("</tr>");
		document.write("</table>");
		document.write("<script>toggle_content(\""+id+"\", "+block.slidable+");</script>");
	}
}

// panel des extras menus 

function draw_panel_extras(extras, onSession) {
	var styleOvale = extras.styleOvale;
	if(extras.showBlocks) {
		document.write("<table id=\"panel_extra_l\" class=\"panelExtra\">");
		for ( var i = 0; i < extras.block.length; i++) {
			if(extras.block[i] == null) continue;
			if(extras.block[i].showblock) {
				document.write("<tr>");
				document.write("<td>");
				if (extras.block[i] !='undefined' && extras.block[i].items.length != 0) {
					//draw_cadre_h("extra_"+i, true, !extras.block[i].blockOvale);
					m_h("extra_"+i, extras.block[i].blockOvale, false, true);				
					draw_extra(extras.block[i], "extra_"+i, onSession);
					m_f("extra_"+i, extras.block[i].blockOvale, false, true);
					//draw_cadre_f("extra_"+i, true, !extras.block[i].blockOvale);
				} else  {
					document.write("<div class=\"extra-hr\"/>");
				}
				document.write("</td>");
				document.write("</tr>");
			}
		}
		document.write("</table>");
	}

}
function draw_extra(block, id, onSession) {
	if( block != null && block !='undefined') {
		document.write("<table id=\"tb"+id+"\" class=\"tb_extra\">");
		document.write("<tr><td>");
		document.write("<table  class=\"extra_title\"><tr>");
		document.write("<td id=\"td_extra_title_"+id+"\" onclick=\"toggle_content('"+id+"',"+block.slidable+");\">"+block.title+"</td>");
		if (block.slidable) {
			document.write("<td id=\"td_title_img"+id+"\"><img src=\"images/expand.png\" onclick=\"toggle_content('"+id+"',"+block.slidable+");\"/></td>");
		}
		document.write("</tr></table>");
		document.write("</td></tr>");

		document.write("<tr><td>");
		document.write("<div id=\""+id+"\" class=\"extra\">");
		document.write("<table>");

		for ( var j = 0; j < block.items.length; j++) {
			var display = "";
			if(block.items[j] == null) continue;
			if (block.items[j].displayed == -1) {
				display = "block";
			} else {
				if(onSession) {
					display = ((block.items[j].displayed == 0) ? "block" : "none");
				} else {
					display = ((block.items[j].displayed == 1) ? "block" : "none");
				}
			}
			document.write("<tr id=\"tr_extra_"+block.items[j].id+"\" style=\"display:"+display+";\">");
			document.write("<td>");
			document.write("<div id=\"item_"+id+"_"+j+"\" class=\"extra_item\">");
			document.write("<a href=\"javascript:void(0)\" onclick=\""+block.items[j].action+"\">");
			document.write("<img src=\""+block.items[j].icon+"\" class=\"img_extra\" title=\""+block.items[j].description+"\"/>");
			document.write(block.items[j].title);
			document.write("</a>");
			document.write("</div>");
			document.write("</td>");
			document.write("</tr>");
		}
		document.write("</table>");
		document.write("</div>");
		document.write("</td>");
		document.write("</tr>");
		document.write("</table>");
		document.write("<script>toggle_content(\""+id+"\", "+block.slidable+");</script>");
	}
}


/* =============================================================================================== */
/* ===================== Chragement dynamique du contenu des cadres ============================== */
/* =============================================================================================== */
function get_cadre(id) {
	// ---------------------------------------
	do_get_cadre = function(r_val) {
		
		var onglets = r_val.split("_ONGLET_");
		
		if (onglets.length > 2) {
			var str = draw_onglets(onglets, "cadre_"+id);
			$("cadre_"+id).innerHTML = str;
		} else {
			$("cadre_"+id).innerHTML = r_val.split("_SEP_")[5].split("_ONGLET_")[0];
		}
		chooseEffect(id);
	};
	// ---------------------------------------
	x_call_get_cadre(id, varlang, do_get_cadre);
}

function save_remote_informations() {
	// ---------------------------------------
	do_save_remote_informations = function(r_val) { };
	// ---------------------------------------
	x_call_save_remote_informations(do_save_remote_informations);
}

/* =============================================================================================== */
/* =============================================================================================== */
/* =============================================================================================== */
/* =============================================================================================== */



function chooseMenuEffect(id) {
//	alert("id="+id+" - "+$(id));
	//
	switch ( Math.round( 10*Math.random()) ) {
	case 0 : Effect.SlideDown(id, { duration: 3.0}); break;
	case 1 : Effect.SlideDown(id, { duration: 3.0}); break;
	case 2 : Effect.BlindDown(id, { duration: 3.0}); break;
	case 3.0 : Effect.BlindDown(id, { duration: 3.0}); break;
	case 4 : Effect.SlideDown(id, { duration: 3.0}); break;
	case 5 : Effect.SlideDown(id, { duration: 3.0}); break;
	case 6 : Effect.BlindDown(id, { duration: 3.0}); break;
	case 7 : Effect.BlindDown(id, { duration: 3.0}); break;
	case 8 : Effect.Appear(id, { duration: 3.0}); break;
	case 9 : Effect.Appear(id, { duration: 3.0 }); break;
	default:
		break;
	}
	return true;
}

/* =================================================================================== */
/* ===================== AFFICHAGE DES SLIDERS ======================================= */
/* =================================================================================== */
/**
 * affiche le slider en fcontion des parametres.
 * @param id Identifiant de la DIV du slider.
 * @param cls la classe de style de la DIV du slider.
 * @param flt valeur de l'attribut float de l'image du slider.
 */
function draw_slider(id, cls) {
	document.write("<div id=\""+id+"\" class=\""+cls+"\">");
	document.write("<img id=\"img_"+id+"\" src=\"/images/sep_/viewsmaller.gif\" onclick=\"do_slide('"+id+"');\">");
	document.write("</div>");
}

function do_slide(id) {
	var side = id.substring(id.length-2);
	var obj = $("tb_menu"+side);
	var p_extra= $("panel_extra"+side);
	var d_alert = $("div_alertes");

	if (obj.style.display=='' || obj.style.display=='block') {
		obj.style.display="none";
		if (p_extra != null) { p_extra.style.display = 'none'; }
		if (d_alert != null && side == '_r') { d_alert.style.display = 'none'; }
		
		var img = $(id).getElementsByTagName("img")[0];
		img.src="/images/sep_/viewlarger.gif";
	}
	else {
		obj.style.display="block";
		if (p_extra != null) { p_extra.style.display = 'block'; }
		if (d_alert != null && side == '_r') { d_alert.style.display = 'block'; }
		
		var img = $(id).getElementsByTagName("img")[0];
		img.src="/images/sep_/viewsmaller.gif";
	}
}

/* =================================================================================== */
/* ===================== AFFICHAGE DES DRAPEAUX ====================================== */
/* =================================================================================== */
function draw_flags(lang) {
	document.write("<div class=\"div_logo\"> <form name=\"langForm\" method=\"post\" action=\".\">");
	document.write("<input type=\"hidden\" name=\"lang\" value='fr'/>");
	draw_flag("fr","sn");
	draw_flag("en","en");
	draw_flag("fr","fr");
	document.write("</form></div>");
}
function draw_flag(lang, icon) {
	document.write("<div>[<a href=\"javascript:select_lang(\'"+lang+"\');\"><img src=\"/images/logo/"+icon+".gif\" class=\"img_logo\"></a>]</div>");
}
function select_lang(lg) {
	document.forms['langForm'].lang.value=lg;
	document.forms['langForm'].submit();
}

/* =============================================================================================== */
/* ============================== Affichage du contenu des alertes  ============================== */
/* =============================================================================================== */

function draw_alertes(alertesOvale) {
	document.write("<div id=\"div_alertes\">");
	//if ( alertesOvale) 
	draw_cadre_h("header", true, !alertesOvale);
	document.write("<table border=\"1\" class=\"tb_alert\">");
	
	document.write("<tr><th><div id=\"alert_header_title\"></div>");
	document.write("<center><table id=\"tb_alert_header_id\" class=\"tb_alert_header\">");
	document.write("<tr><td><a href=\"javascript:void(0)\" onclick=\"prev_alertes()\">&lt;&lt;</a></td>");
	document.write("<td><a href=\"javascript:void(0)\" onclick=\"stop_alertes()\">||</a></td>");
	document.write("<td><a href=\"javascript:void(0)\" onclick=\"next_alertes()\">&gt;&gt;</a></td>");
	document.write("</table></center>");
	document.write("</th></tr>");
	
	document.write("<tr><td>");
	document.write("<div id=\"alert_body_div\" class=\"alert_body\"><div id=\"alert_content\"/></div>");
	document.write("</td></tr>");
	document.write("</table>");
	//if (alertesOvale) 
	draw_cadre_f("header", true, !alertesOvale);
	document.write("</div>");
}

/* =================================================================================== */
/* =================================================================================== */

function draw_cadres(cadres) {
	var c = (screen.width > 1500) ? 3 : 2;
	document.write("<div id=\"div_cadres\" class=\"div_cadres\">");
	document.write("<table id=\"tb_cadres\" class=\"tb_cadres\" border=\"0\">");
	var j=0;
	for ( var i = 0; i < cadres.cadre.length; i++) {
		if (cadres.cadre[i] == null) continue;
		if (cadres.cadre[i].showcadre) {
			if (j%c == 0) { document.write("<tr>"); }
			document.write("<td class=\"td_cadre_item\">");

			/******************************************************/
			/**/ draw_cadre(i, cadres.cadre[i]);                /**/
			/******************************************************/

			if (j%c == c-1) { document.write("</tr>"); }
			j++;
		}
	}	
	if (j%c != 0) {
		for ( var i=j%c; i < c && (i+j) < cadres.cadre.length; i++) { 
			document.write("<td class=\"td_cadre_item\">");
			draw_cadre(i, cadres.cadre[i]);
			document.write("</td>");
		}
		document.write("</tr>");
	}
	document.write("</table>");
	document.write("<div>");
}

function draw_cadre(id, cadre) {
	draw_cadre_h(id, cadre.styleOvale);
	//affichage du contenu
	/***************************************************************************/
	/***/ document.write("<div class=\"div_cadre_title\">"+cadre.title+"</div>"); 
	/***/ document.write("<div id=\"cadre_"+id+"\" class=\"div_cadre\">");  /***/
	/***/ draw_ajax_loader();                                               /***/
	/***/ document.write("</div>");                                         /***/
	/***************************************************************************/
	draw_cadre_f(id, cadre.styleOvale);
	
	// recuperation du contenu via sajax
	get_cadre(id);
}

/* ================================================================================================== */
/* ================================================================================================== */
/* ================================================================================================== */

function draw_menu_content(index) {
	eval(menus.menu[index].items[0].action);
	reduiceLeftPanel();
}

function reduiceLeftPanel() {
	var obj = $("tb_menu_l");
	if (obj && (obj.style.display == 'block' || obj.style.display == '')) {
		do_slide('id_slider_l');
	}
}

/**
 * This function toggle the content of a DIV.
 * @param id
 * 		The identifier of the DIV
 * @param slidable
 * 		Boolean value indicating if the DIV have to be toggled.
 */
function toggle_content(id, slidable) {
	if (! slidable) return;

	var container = $(id);
	var img = $("td_title_img"+id).getElementsByTagName("img")[0];
	if (container && (container.style.display == '' || container.style.display == 'block')) {
		container.style.display = 'none';
		img.src="/images/expand.png";
	} else {
		container.style.display = 'block';
		img.src="/images/reduce.png";
	}

	
}

/* ======================================================================================= */
/* ==============================  Tables scroller functions ============================= */
/* ======================================================================================= */

function first_page(tb_name, nb_page, fn, in1) {
	var page = $("scroll_"+tb_name).value;
	if (parseInt(page) != 1) {
		var value = $(in1) ? $(in1).value : "";
		eval(fn+"('"+value+"', 0);");
	}
}
function last_page(tb_name, nb_page, fn, in1) {
	var page = $("scroll_"+tb_name).value;
	if (parseInt(page) != nb_page) {
		var value = $(in1) ? $(in1).value : "";
		eval(fn+"('"+value+"', nb_page-1);");
	}
}
function next_page(tb_name, nb_page, fn, in1) {
	var page = $("scroll_"+tb_name).value;
	if (parseInt(page) < nb_page) {
		var value = $(in1) ? $(in1).value : "";
		eval(fn+"('"+value+"', page);");
	}
}
function prec_page(tb_name, nb_page, fn, in1) {
	var page = $("scroll_"+tb_name).value;
	if (parseInt(page) > 1) {
		var value = $(in1) ? $(in1).value : "";
		eval(fn+"('"+value+"', page-2);");
	}
}

/* ================================================================================================== */
/* ================================================================================================== */
/* ================================================================================================== */

/* ======================================================================================= */
/* ==============================  config page functions ================================= */
/* ======================================================================================= */

function chooseMenuType(o, menu, sousmenu) {
	$("divMenuContentTextAreaId").style.display = 'none';
	$("saveConfigButtonId").style.display = 'none';

	menu.style.display = 'none';
	sousmenu.style.display = 'none';
	if (o) {
		if (o.value == 0) {
		} else {
			$("saveConfigButtonId").style.display = 'block';
			if (o.value == 1) {
				if (menu) {
					menu.style.display = 'block';
				}
			} else {
				$("divMenuContentTextAreaId").style.display = 'block';
				sousmenu.style.display = 'block';
				var parentSelect = $("divMenuParentId");
				var str = "<select id=\"selectMenuParentId\">";
				if (o.value == 2) {
					str += addMenuOptionsGroup(menus.title, menus.menu);
					str += addMenuOptionsGroup(extras.title, extras.block);
					str += addMenuOptionsGroup(blocks.title, blocks.block);
				} else {
					for (var i = 0; i < menus.menu.length; i++) {
						var m = menus.menu[i];
						str += addSousMenuOptionsGroup(m.title, m.items);
					}
				}
				str += "</select>";
				parentSelect.innerHTML = str;
			}

			initTinyMCE();
		}
	}
}

function addMenuOptionsGroup(title, elements) {
	var str = "<optgroup label=\""+title+"\">";
	for ( var i = 0; i < elements.length; i++) {
		var e = elements[i];
		if (e && e.id != '') {
			str += "<option id=\""+e.id+"\" value=\""+e.id+"\" label=\""+e.title+"\">"+e.title+"</option>";
		}
	}
	str += "</optgroup>";
	return str;
}
function addSousMenuOptionsGroup(title, items) {
	var str = "";
	var b = false;
	if (items && items.length != 0) {
		for (var j = 0; j < items.length; j++) {
			var item = items[j];
			if (item.sous_items && item.sous_items.length != 0) {
				b = true;
				str += "<option id=\""+item.name+"\" value=\""+item.name+"\" label=\""+item.name+"\">"+item.name+"</option>";
			}
		}
	}
	if (b) {
		str = "<optgroup label=\""+title+"\">" + str + "</optgroup>";
	}
	return str;
}



