/****************************************************************************************************/
/***************************************** IMPORTATANTE *********************************************/
/****************************************************************************************************/
/* Siempre que se utilizen estas librerias en proyectos .NET con paginas aspx hay que tener cuidado */
/* de no poner acentos ni en los comentarios de las librerias ni en los posibles alert que pongamos */
/* en ellas, ya que no funcionarian en Netscape.                                                    */
/****************************************************************************************************/


function pDinamicMenu2(matOpc, prefCp, prefMenu){
	//Atributos.
	this.opciones = matOpc;
	this.prefCp = prefCp;
	this.prefMenu = prefMenu;
	this.numOpciones = 1
	this.matOpciones = new Array(null);
	this.anchoCpOpcion = 165; // Ancho de cada capa de subpociones.
	
	this.matCapasPadre = null;
	this.matCapasObj = null;
	
	return this;
}

// Metodo para escribir el codigo HTML correspondiente a las capas del menu principal.
// Este metodo se debe invocar en el body de la página.
pDinamicMenu2.prototype.paint = function() {
	window.status = "pDinamicMenu2.paint:execute";
	
	// Debemos crear la cadena de texto con las distintas capas con las opciones del menu de segundo nivel.	
	var cadHTML = "";
	
	// Iniciamos la cadena.
 	cadHTML +=  "<div id=MenuCont style='position:absolute; left:0px; top:0px; width:1px; height:1px; z-index:100'>";

	for(var i=1;i<=this.opciones.length;i++){
		if(this.opciones[i-1].length > 1){ // Si hay subOpciones para este menu principal las dibujamos.
			// Indicador de inicio de cada menu principal.
			this.matOpciones[i] = (this.numOpciones - 1);
			
			cadHTML +=  "<div id=" + (this.prefCp + i) + " style='position:absolute; left:0px; top:0px; width:" + this.anchoCpOpcion + "px; height:"+ (((this.opciones[i-1].length - 1) * this.separacion) + 10) + "px; z-index:200; background-color: #FFFFFF; layer-background-color: #FFFFFF; border: 0px none #000000; visibility: hidden;'>";
			cadHTML +=  "<table width=100% height=100%  border=0 cellpadding=0 cellspacing=1 bgcolor=#A2A7A2><tr><td><table width=100% height=100%  border=0 cellpadding=0 cellspacing=0 bgcolor=#FFFFFF>"
			cadHTML +=  "<tr><td>";
			cadHTML +=  "<img src=../img/pixel.gif width=1 height=6>";
			cadHTML +=  "</td></tr>";			
			for(var j=1;j<this.opciones[i-1].length;j++){
				// Init Contenido.
				arg = this.opciones[i-1][j][0].split('|');
				cadHTML +=  "<tr><td align=center>";
				cadHTML +=  "<table width=93% border=0 cellpadding=0 cellspacing=0 bgcolor=#FFFFFF>";
				cadHTML +=  "<tr><td><img src=../img/pixel.gif width=1 height=2></td>";
				cadHTML +=  "</tr><tr><td id=" + (this.prefMenu + this.numOpciones)+ " height=17 bgcolor=#FFFFFF class=arial11normalgrismenu onClick='menu.accionMenu(" + this.numOpciones + ",\"click\",\"" + arg[2] + "\",\"contenido\");' onMouseOver='menu.accionMenu(" + this.numOpciones + ",\"over\");window.status=\"" + arg[0] + "\";return true' onMouseOut='menu.accionMenu(" + this.numOpciones + ",\"out\");window.status=\"\"' >";
				cadHTML +=  arg[0];
				cadHTML +=  "</td></tr></table>";
				cadHTML +=  "</td></tr>";
				cadHTML +=  "<tr><td align=center>";
				cadHTML +=  "<table width=96% border=0 cellpadding=0 cellspacing=0 bgcolor=#FFFFFF>";
				cadHTML +=  "<tr><td><img src=../img/pixel.gif width=1 height=2></td>";
				cadHTML +=  "</tr><tr>";
				cadHTML +=  "<td bgcolor=#DCDEDC><img src=../img/pixel.gif width=1 height=1></td>"
				cadHTML +=  "</tr></table>";
				cadHTML +=  "</td></tr>";					
				// End Contenido.
				this.numOpciones++;
			}
			cadHTML +=  "<tr><td><img src=../img/pixel.gif width=1 height=8></td></tr></table></td></tr></table>";
			cadHTML +=  "</div>";			
		}
	}
	// Finalizamos la cadena.
 	cadHTML +=  "</div>";	

	document.write(cadHTML);	
	window.status = "load";
}


// Metodo para escribir el codigo HTML correspondiente a las capas del menu principal.
// Este metodo se debe situar en el onLoad de la página.
pDinamicMenu2.prototype.moveTo = function(relativeX, relativeY, pMatCpOpc) {
	window.status = "pDinamicMenu2.moveTo::execute";
	// Atributos.
	var anchoScroll = 18;	
//alert(document.body.clientWidth);	
	var anchoBody = document.body.clientWidth;
	
	//var tmpScroll = window.document.body.scroll;

	this.matCapasPadre = pMatCpOpc
		
	this.matCapasObj = new Array(null);
	window.status = "init::getBody::colocMenu";
	// Capas de opciones principales.
	for(var i=1;i<=this.matCapasPadre.length;i++){
		if(document.getElementById(this.prefCp + i)){
			this.matCapasObj[i] = new ConstructObject(this.prefCp + i);
			// Comprobaciones de la última opción del menú principal.
			if((i==(this.matCapasPadre.length-1)) && ((this.matCapasPadre[i].x + this.anchoCpOpcion) > anchoBody)){
				this.matCapasObj[i].moveTo((anchoBody - this.anchoCpOpcion), relativeY); // Se sale de la pagina.
			}else{
				this.matCapasObj[i].moveTo((this.matCapasPadre[i].x + relativeX), relativeY); // No se sale de la pagina.
			}
			this.matCapasObj[i].show();			
		}
	}
	window.status = "load";
}