function initPageContainer(a,b,comboCantLines){
	
	containerId = a;
	controlTableId = b;

	// Actualizo los valores de la tabla.
	pag = document.getElementById(controlTableId);	

		var tmp_texto= pag.rows[1].cells[0].innerHTML;
		tmp_texto=tmp_texto.replace('{inicio}', '<span id="pagecrange"></span>');
		tmp_texto=tmp_texto.replace('{final}', '<span id="pagectot"></span>');
		pag.rows[1].cells[0].innerHTML=tmp_texto;


	// Creo los combos si no existen
	if(pag != null){
		oaux = document.getElementById('pagecselpage');
		
		if (oaux == null){
			oSelect = document.createElement('SELECT'); 
			oSelect.id = 'pagecselpage';
			oSelect.onchange = pageContainer;
			oSelect.className = "input";

			pag.rows[1].cells[1].appendChild(oSelect);
		}
		
		oaux = document.getElementById('pagecselcant');
		
		if (oaux == null){
			oSelect = document.createElement('SELECT'); 
			oSelect.id = 'pagecselcant'; 
			oSelect.onchange = pageContainer;
			oSelect.className = "input";
			
			pag.rows[1].cells[4].appendChild(oSelect);
		}
				
	}
	else{
		// No se encontro la pagina de control
		return;
	}
	
	// cargo el array necesario para la cantidad de lineas 	
	arrclines = new Array;
	array_aux = Array(5,10,25,50,100);
	for (var z=0;z<array_aux.length;z++) {
		arrclines[z] = new Array;
		arrclines[z]['text'] = array_aux[z];
		arrclines[z]['value'] = array_aux[z];
	}

	// actualizo el combo de cantidad de lineas mostrada
	arrayToCombo('pagecselcant',arrclines,comboCantLines);
	
	pageContainer();
}

function pageContainer(){
	
	//Chequeo si el objeto es una tabla o un div 
	if (ocont = getObjectByType(containerId,"DIV")){
		//Inicializo en contador de lineas
		totalLineas = ocont.childNodes.length;
		pageArray = ocont.childNodes;
	}
	else if (ocont = getObjectByType(containerId,"TABLE")){
		//Inicializo en contador de lineas
		totalLineas = ocont.tBodies.item(0).childNodes.length;
		pageArray = ocont.tBodies.item(0).childNodes;
	}
	else{
		// No se encuentra el objeto contenedor. Imposible continuar
		return;
	}
	
	comboCantLines = 5;
	comboStartLine = 1;
	// Levanto los opciones de paginado de los controles
	if (document.getElementById('pagecselpage'))
		if (document.getElementById('pagecselpage').selectedIndex == -1) comboStartLine = 1; else comboStartLine = document.getElementById('pagecselpage').options[document.getElementById('pagecselpage').selectedIndex].value;;

	if (document.getElementById('pagecselcant'))
		if (document.getElementById('pagecselcant').selectedIndex == -1) comboCantLines = 5; else comboCantLines = document.getElementById('pagecselcant').options[document.getElementById('pagecselcant').selectedIndex].value;;

	// Calculo todas las variables de acuerdo con las opciones de los controles
	if (comboCantLines == -1){
		startLine = 1;
		cantLines = totalLineas;
	}
	else{
		if (comboStartLine <= totalLineas && comboStartLine % comboCantLines == 1){
			startLine = comboStartLine;
			cantLines = comboCantLines;
		}
		else{
			startLine = 1;
			cantLines = comboCantLines;		
		}
	}
	
	// cargo el array necesario para la seleccion de pagina
//	if (parseInt(totalLineas) !=  parseInt(cantLines))
		totalPaginas = parseInt(totalLineas) /  parseInt(cantLines);
		totalPaginas = Math.ceil(totalPaginas);
//	else
//		totalPaginas = 1;
	arrselpag = new Array;

	for (i=0 ; i<totalPaginas; i++){
		arraux = new Array;
		arraux['text'] = 'pagina' + (i+1);//set_lang['pagina'] + (i+1);
		arraux['value'] = (i * cantLines+1);
		arrselpag[i] = arraux;
	}

	// Recorro el contenedor para ocultar o mostrar los objetos. 
	for (i=0; i<totalLineas; i++) {
		if( i >= (startLine-1) && i < (parseInt(startLine) + parseInt(cantLines) -1)){
			try{pageArray.item(i).style.display = 'block'}catch(ex){};
		}else{
			try{pageArray.item(i).style.display = 'none'}catch(ex){};
		}
	}
	
	// actualizo las etiquetas de registros a mostrar	
	document.getElementById('pagecrange').innerHTML = (((parseInt(startLine) -1) /comboCantLines) +1) + ' ';
	document.getElementById('pagectot').innerHTML = totalPaginas;

	// actualizo el combo de seleccion de pagina
	arrayToCombo('pagecselpage',arrselpag,startLine);
	
	if (totalPaginas == 1)
		document.getElementById('pagecselpage').disabled = true;
	else
		document.getElementById('pagecselpage').disabled = false;
	
	LoadURL('/inc/refresh_ajax.php?cadena=paginacion_cantidad|'+comboCantLines);
}

function arrayToCombo(comboid,array,selvalue){

	while (document.getElementById(comboid).hasChildNodes()){
		document.getElementById(comboid).removeChild(document.getElementById(comboid).childNodes.item(0));
	}
	selIndex = 1;
	for (i=0 ; i<array.length; i++){
		oOption = document.createElement('OPTION'); 
		oOption.text = array[i]['text']; 
		oOption.value = array[i]['value']
				
		if (/safari/i.test(navigator.userAgent))
			document.getElementById(comboid).add(oOption);
		else
			document.getElementById(comboid).options.add(oOption);	
				
		if (array[i]['value'] == selvalue){
			selIndex = (i);
		}
	}
	document.getElementById(comboid).selectedIndex = selIndex;
}

function getObjectByType(oid,type){
	var aDivs = document.getElementsByTagName(type);
	
	for (i=0 ; i< aDivs.length ; i++ ){
		if (aDivs[i].id == oid)
			return document.getElementById(oid);
	}
	
	return false;
}

