// ==================================================================== */
// =================== 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\">");
	document.write("<tr>");

	for ( var i = 0; i < menus.menu.length; i++) {
		if (menus.menu[i]) {
			var m = menus.menu[i];
			var items = m.items;
			document.write("<td>");
			document.write("<div id=\"top_menu_"+i+"\" class=\"menu_t\">");
			document.write("<img src=\""+"images/menu/:::_"+i+".gif"+"\" class=\"img_item_t\"/>");
			document.write("<img src=\""+m.icon+"\" class=\"img_item_t\"/>");
			document.write("<span>"+m.title+"</span>");
			document.write("<div id=\"top_items_"+i+"\" class=\"items_t\">");

			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("<a href=\"javascript:void(0)\"><span>"+item.name+"</span>");
					//document.write("<em>"+item.name);
					document.write("<div id=\"sous_items_available_"+j+"\" class=\"sousitems_available\">"+item.name);
					document.write("<img src=\"../images/sep_/bullet_bluearrow.gif\" class=\"img_sousitems_available\"/>");
					document.write("</div>");
					//document.write("</a>");
					document.write("<div id=\"top_sousitems_"+i+"_"+j+"\" class=\"sousitems_t\">");
					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>");
					}
					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>");
			}
			document.write("</div>");
			document.write("</div>");
			document.write("</td>");
			var d_menu = document.getElementById("top_menu_" + i);
			d_menu.onmouseover = function() {this.getElementsByTagName("div")[0].style.display = "block"; /*chooseMenuEffect(this.getElementsByTagName("div")[0].id);*/};
			d_menu.onmouseout = function() {this.getElementsByTagName("div")[0].style.display = "none"; /*chooseMenuEffect(this.getElementsByTagName("div")[0].id);*/};
			
			// ---
			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]) {
			var m = menus.menu[i];
			var items = m.items;
			document.write("<tr>");
			document.write("<td>");
			document.write("<div id=\"left_menu_"+i+"\" class=\"menu_l\">");
			document.write("<img src=\""+m.icon+"\" class=\"img_item_l\"/>");
			document.write("<span>"+m.title+"</span>");
			document.write("<div id=\"left_items_"+i+"\" class=\"items_l\">");

			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("<a href=\"javascript:void(0)\"><span>"+item.name+"</span>");
					document.write("<em>"+item.name);
					document.write("<img src=\"../images/sep_/bullet_bluearrow.gif\" class=\"img_sousitems_available\"/>");
					document.write("</em>");
					//document.write("</a>");
					document.write("<div id=\"left_sousitems_"+i+"_"+j+"\" class=\"sousitems_l\">");
					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>");
					}
					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>");
			}
			document.write("</div>");
			document.write("</div>");
			document.write("</td>");
			document.write("</tr>");
			var d_menu = document.getElementById("left_menu_"+i);
			d_menu.onmouseover = function() {this.getElementsByTagName("div")[0].style.display = "block";};
			d_menu.onmouseout = function() {this.getElementsByTagName("div")[0].style.display = "none";};
			
			// ---
			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) continue;
		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 c = (screen.width > 1500) ? 3 : 2;
	var ovale = menu.styleOvale;
	
	document.write("<table id=\"tb_fenetre\"  class=\"tb_fenetre\">");

	// menu du haut
	if (menus.haut) {
		document.write("<tr><td colspan=\"3\">");
		if(ovale) draw_cadre_h("menu_t"); 
		draw_top_menu(menus); 
		if(ovale) draw_cadre_f("menu_t");
		document.write("</td></tr>");
	}
	// menu de gauche
	document.write("<tr>");
	if (menus.gauche) {
		document.write("<td id=\"td_menu_l\">");
		if(ovale) draw_cadre_h("menu_l"); 
		draw_left_menu(menus);
		draw_panel_extras(extras, onSession);
		if(ovale) draw_cadre_f("menu_l");
		document.write("</td>");
	}

	var t =  new Array("<center>Cette</center>", "<center>page</center>", "<center>est</center>", "<center>en</center>", "<center>construction</center>", "<center>:-) hihi...</center>");
	// affichage des cadres (centre de la page) 

	document.write("<td id=\"td_menu_c\">");
	if(ovale) draw_cadre_h("div_cadres");
	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>");

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

			if (j%c == c-1) { document.write("</tr>"); }
			j++;
		}
	}
	
	if (j%c != 0) {
		for ( var i=j%c; i < c; i++) 
			document.write("<td><center> :-) hihi...</center></td>");
		document.write("</tr>");
	}
	
	document.write("<div>");
	document.write("</table>");
	if(ovale) draw_cadre_f("div_cadres");
	document.write("</td>");
	
	// menu de droit
	if (menus.droite) {
		document.write("<td id=\"td_menu_r\">"); 
		if(ovale) draw_cadre_h("menu_r");
		draw_right_menu(menus);
		if(ovale) draw_cadre_f("menu_t");
		document.write("</td>");
	}
	// menu du bas
	if (menus.bas) {
		document.write("<tr><td id=\"td_menu_b\" colspan=\"3\">");
		if(ovale) draw_cadre_h("menu_b"); 
		draw_bottom_menu(menus);
		if(ovale) draw_cadre_f("menu_b");
		document.write("</td></tr>");
	}

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

}
//==================================================================================================
//==================================================================================================
//==================================================================================================
function draw_cadres(menu) {
/*
	 document.write("<>");
	 document.write("</>");
	 document.write("<>");
	 document.write("</>");
	 document.write("<>");
	 document.write("</>");
*/
}
function draw_cadre(content, id) {
	draw_cadre_h(id);
	//affichage du contenu
	/************************************/
	/***/ document.write( "<div id=\"cadre_"+id+"\" class=\"div_cadre\">"+ content +"</div>"); /***/
	/************************************/
	draw_cadre_f(id);
	
	// recuperation du contenu via sajax
	get_cadre(id);
}
/* =================================================================================== */
/* =================================================================================== */
/* ================================================================*/
/* ===================== DECORATIONS ==============================*/
/* ================================================================*/
/**
 * Affiche l'etete des elements de decorations.
 * @param id - Identifiant de l'element.
 * @return
 */
function draw_cadre_h(id) {
	if( !ie ) {
		document.write("<table class=\"h_w_e_b\">");
		document.write("<tr>");
		document.write("<td id=\"t_l_"+id+"\" class=\"t_l h w\"></td>");
		document.write("<td id=\"t_t_"+id+"\" class=\"t_t h\"></td>");
		document.write("<td id=\"t_r_"+id+"\" class=\"t_r h w\"></td>");
		document.write("</tr><tr>");
		document.write("<td id=\"w_w_"+id+"\" class=\"w_w w\"></td>");
		document.write("<td id=\"x_bg_"+id+"\" class=\"x_bg\">");
	}
}

/**
 * Affiche le footer des elements de decorations.
 * @param id - Identifiant de l'element.
 * @return
 */
function draw_cadre_f(id) {
	if( !ie ) {
		document.write("</td>");
		document.write("<td id=\"e_e_"+id+"\" class=\"e_e w\"></td>");
		document.write("</tr><tr>");
		document.write("<td id=\"b_l_"+id+"\" class=\"b_l h w\"></td>");
		document.write("<td id=\"b_b_"+id+"\" class=\"b_b h\"></td>");
		document.write("<td id=\"b_r_"+id+"\" class=\"b_r h w\"></td>");
		document.write("</tr>");
		document.write("</table>");
	}
}
/* ================================================================*/
/* ================================================================*/
/* =============================================================================================== */
/* ===================== AFFICHAGE DES BLOCKS SUPPLEMENTAIRES ==================================== */
/* =============================================================================================== */
function draw_panel_block(blocks) {
	var styleOvale = blocks.styleOvale;
	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(styleOvale) draw_cadre_h("block_"+i);
				draw_block(blocks.block[i], "block_"+i);
				if(styleOvale) draw_cadre_f("block_"+i);
				document.write("</td>");
				document.write("</tr>");
			}
		}
		document.write("</table>");
	}
}
function draw_block(block, id) {
	if( block != null && block !='undefined') {
		if(block.items.length != 0) {
			document.write("<table id=\"tb"+id+"\" class=\"tb_block\">");
			document.write("<tr>");
			document.write("<td>");
			document.write("<div id=\""+id+"\" class=\"block\">");
			for ( var j = 0; j < block.items.length; j++) {
				if(block.items[j] == null) continue;
				document.write("<div id=\"item_"+id+"_"+j+"\" class=\"block_item\">");
				document.write("<img src=\""+block.items[j].icon+"\" class=\"img_block\" title=\""+block.items[j].description+"\"/>");
				document.write("<a href=\"javascript:void(0)\" onclick=\""+block.items[j].action+"\">");
				document.write(block.items[j].title);
				document.write("</a>");
				if (block.items[j].nouveau) {
					document.write("<img src=\"images/menu/new.gif\" />");
				}
				document.write("<div id=\"p_"+id+"_"+j+"\" class=\"p_block\">");
				document.write(block.items[j].description);
				document.write("</div>");
				document.write("</div>");
			}
			document.write("</div>");
			document.write("</td>");
			document.write("</tr>");
			document.write("</table>");
		}
	}
}

// panel des extras menus 

function draw_panel_extras(extras, onSession) {
	var styleOvale = extras.styleOvale;
	if(extras.showBlocks) {
		document.write("<table id=\"panelExtra\" 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(styleOvale) draw_cadre_h("extra_"+i);
				draw_extra(extras.block[i], "extra_"+i, onSession);
				if(styleOvale) draw_cadre_f("extra_"+i);
				document.write("</td>");
				document.write("</tr>");
			}
		}
		document.write("</table>");
	}

}
function draw_extra(block, id, onSession) {
	if( block != null && block !='undefined') {
		if(block.items.length != 0) {
			document.write("<table id=\"tb"+id+"\" class=\"tb_extra\">");
			document.write("<tr><td>");
			document.write("<div id=\"tr_extra_title_"+id+"\" class=\"extra_title\">"+block.title+"<hr></div>");
			document.write("</td></tr>");
			
			document.write("<tr>");
			document.write("<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(onSession) {
					display = ((block.items[j].displayed==-1) || (block.items[j].displayed==0) ? "block" : "none");
				}
				else {
					display = ((block.items[j].displayed==-1) || (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("<>");
//document.write("<>");

//document.write("<div id=\"\" class=\"\">");
//document.write("<div id=\"\" class=\"\">");
//document.write("<>");
//document.write("</>");



/* =============================================================================================== */
/* ===================== Chragement dynamique du contenu des cadres ============================== */
/* =============================================================================================== */
function get_cadre(id) {
	// ---------------------------------------
	do_get_cadre = function(r_val) {
		$("cadre_"+id).innerHTML = r_val;
		chooseEffect(id);
	};
	// ---------------------------------------
	x_call_get_cadre(id, 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;
}
