function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
  if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
/**
actualizarBloque
----------------
Oculta o muestra un pedazo de c�digo que se encuentra dentro de un div con id igual a idBloque.
Inputs:
	element:representa el checkbox que ndica si el bloque debe estar visible o no
	idBloque=id del div a mostrar u ocultar
	visible: si element es null, indica si el bloque debe estar visible o no
Dependencias:
	funci�n:GetElement() | archivo:utils.js
**/
function actualizarVisibilidadBloque(element,idBloque,visible){
	var mostrar;
	if (element!=null){
	  	mostrar=element.checked;
	}
	else
		mostrar=!visible;
	if (mostrar){
		GetElement(idBloque).className ="oculto";
	}else{
		GetElement(idBloque).className ="visible";
	}
}
 /*
 *	actualizarVisibilidadRow()
 *	------------------
 *  Actualiza la visibilidad de la fila.
 *  Par�metros:
 *		tabla:tabla cuya fila se quiere actualizar.
 *		id:id de la columna a actualizar la visibilidad.	
 *		mostrar:true si se tiene que estar visible o false en caso contrario. 
 *	Dependencias:
 *		1. funci�n: GetRowById() | archivo: util.js
 */
 function actualizarVisibilidadRow(tabla,id,mostrar){
 	var row=GetRowById(tabla,id);
 	if(mostrar){
 		row.className="visible";
 	}else{
 		row.className="oculto";
 	}
 }
 /*
 *	actualizarVisibilidadCell()
 *	------------------
 *  Actualiza la visibilidad de la fila.
 *  Par�metros:
 *		tabla:tabla cuya fila se quiere actualizar.
 *		id:id de la columna a actualizar la visibilidad.	
 *		mostrar:true si se tiene que estar visible o false en caso contrario. 
 *	Dependencias:
 *		1. funci�n: GetRowById() | archivo: util.js
 *      2. function: GetCellById()| archivo: util.js
 */
 function actualizarVisibilidadCell(fila,id,mostrar){
 	var cell=GetCellById(fila,id);
 	var oldEstilo=cell.className;
 	var newEstilo;
 	if(mostrar){
 		newEstilo=oldEstilo.replace("oculto","visible");		
 	}else{
 		newEstilo=oldEstilo.replace("visible","oculto");
 	}
 	cell.className=newEstilo;
 }
/**
 * 	resetForm()
 * 	------------
 * 	Resetea los campos del formulario cuyos id son pasados como parametro.
 	Si el campos es de tio select coloca como opci�n seleccionada a la que corresponda al value=0, si es te tipo
 	text lo vacia.
 *	Parametros:
 		1. idCampos: array con los ids de los campos a resetear.
 *	Dependencia:
 *		1. funci�n: GetElement() | archivo:utils.js 		
 * 
 */
  function resetForm(idCampos,form){
  	var cant=idCampos.length;
  
  	for(var i=0;i<cant;i++){
  		var element=form[idCampos[i]];
  		if (element.type=="select-one")
  			element.value=0;
  		else
  			element.value=""; 
  	}
  }		
  
/*
 * createInput()
 * ----------------- 
 *
 */	
  function createInput(value,name){
  	var input=document.createElement("input");
  	input.type="text";
  	input.value=value;
  	input.name=name;
  	return input;
  }
    
 /**
 * createCell()
 * -----------------
 * Parametros:
 *			fila:
 *			texto:
 *			cspan:
 *			rspan:
 *			cssClass:
 *			cssStyle:
 */
  function createCell(texto,cspan,rspan,cssClase){
  	var newcell=document.createElement("td");
  	text=document.createTextNode(texto);
   	newcell.appendChild(text);
  	if (cssClase!=null)
  		newcell.className=cssClase;
  	if (cspan!=null)
  		newcell.setAttribute("colspan",cspan);
  	if (rspan!=null)
  		newcell.setAttribute("rowspan",rspan);	
  	return newcell;
  }  
  /**
  *
  */
  function addLink(cssTexto,link,texto,metodo)
  {
 	return '<a href="#'+link+'" onclick="'+metodo+'" class="'+cssTexto+'">'+texto+'</a>'; 
  }
/**
 * createLink()
 * --------------
 * 
 * Parametros:
 *		fila
 *		cssLink
 *		cssTexto
 *		link
 *		texto
 *		metodo
 *
 */
  function createLink(fila,cssLink,cssTexto,link,texto,metodo){
 	cell=createCell("",null,2,cssLink);
 	cell.innerHTML =addLink(cssTexto,link,texto,metodo); 
 	fila.appendChild(cell);
 } 
 