	var xvotos=new Array(); 
	var xparti=new Array();
	var xcolor=new Array();
	var tit='';
	var titulo='';
	var titulo2='';
	var dentro=false;
	var path_entrada=''
	var pagina='';
	var salida='';
	
	var grafwindoc=null;	//el documento que lee-y-genera 			


	function chglink(){ 
		try{  	
		   	grafwindoc=parent.frames[1].frames[1].document;
			
			//guarda el path de la página
			path_entrada=grafwindoc.location.href //.pathname;
			cambiahref();
						
			/*Quitar link de 'Recarga'*/
		   	var x=grafwindoc.getElementById('rlo'); 
			x.parentNode.removeChild(x);
			
			/*Cambia el link "Gráficos" por "Datos"*/	   		
	   		grafwindoc.getElementById('gra').innerHTML= '<a href=\"'+ grafwindoc.location.href + '\" accesskey=\"d\" ><span class=\"u\">D</span>atos</a>';	   		
			
			return true;
		}
		catch(errorObject){ 
 	   		alert(errorObject.description+'\n El navegador no soporta esta funcionalidad.');
 	   		return false;
 	   	}			
	}


	function gengraf(tipogr){ 
		//if (dentro==true) {alert('Generando gráfico....'); return;}	
							 		
 		try{    
 			if (chglink()==true) 
 				{dentro=true;  	
 				gengrafico (tipogr);
 				dentro=false
 				}
 			
 		}
 	   	catch(errorObject){ 
 	   		alert(errorObject.description+'\n El navegador no soporta la funcionalidad.');
 	   		
 	   	}
 	   	dentro=false;
	
	//	top.frames[2].scrollTo(1,10); //mano de santo para que se repinte
		top.frames[1].frames[1].scrollTo(0,0); //mano de santo para que se repinte
		//repinta();
 	   	dentro=false;
 	   	return
 	}

 	//
 	function gengrafico(tipogr){
		var alto, ancho;
 		var titulo;
		var tipograf;						
		var xapplet='';
		var xapplet2='';
		var xfinalapplet='</applet>';
		var xfinpag='</div><br /><div class=\"referencia\">\n' +
			'<ul><li>Recuento provisional en base a telegramas recibidos.</li>\n' +
	  		'<li>Los porcentajes expresados sobre los votos positivos</li>\n' +
			'<ul></div><br /><br /></body></html>';


		var  xcabecera=
		'<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">\n'+
		'<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"es\" >\n'+
		'<head>'+ dameHead() +'</head>\n'+
		'<body onresize=\"javascript:top.repinta();\" onload="javascript:this.focus();javascript:top.repinta();">\n'+
		'<div  id=\"cajatitulo\">\n'+dameID('cajatitulo')+'</div>\n'+
		'<div id="repinta" class="m60">\n'
								
//alert (xcabecera);

		titulo="Porcentaje de votos por " + titulotabla()
		titulo2="Asignación de Cargos"
		
		//Applet parámetros comunes
		xapplet=' '+
		'<param name=BG_Color value=white>\n'+
		'<param name=Border_Thickness value=0>\n'+
		'<param name=Grid_BG_Color value=white>\n'+
		'<param name=Grid_Color value=white>\n'+
		'<param name=HTML_BG_Color value=white>\n'+
//		'<param name=Mag_Upper_Limit value=100>\n'+
		'<param name=Num_Sets value=1>\n'+
		'<param name=Display_Value_Color value=black>\n'+
		'<param name=Display_Value_Font value=Arial-bold-12>\n'+
		'<param name=Legend_BGColor value=white>\n'+
		'<param name=Legend_Color value=black>\n'+
		'<param name=Legend_Font value=Arial-bold-12>\n'+
		'<param name=Mag_Label_Color value=black>\n'+
		'<param name=Mag_Label_Font value=Arial-plain>\n'+
		'<param name=Mag_Value_Font value=Arial-plain-8>\n'+
		'<param name=Mag_Tick_Color value=white>\n'+
		'<param name=Axis_Color value=white>\n'+
		'<param name=Mag_Value_Color value=white>\n'+
		'<param name=Set_Label_Color value=white>\n'+
		'<param name=Set_Label_Font value=Arial-bold-10>\n'+
		'<param name=Set_Label_Location value=L>\n'+
		'<param name=Set_Tick_Color value=black>\n'+
		'<param name=Set_Name_Color value=black>\n';			
		
		//Tarta->el 2
		if ( tipogr == "BT"){
			alto='210';
			ancho='350';
			xapplet2= '<applet name="papplet" class="xapplet" code="Chart.class" archive="Chart2.jar" codebase="' + ponpathcodebase(3)  + 'chart/" alt="Gráfico" align="middle" width="'+ancho+'" height="'+alto+'" >\n'+
				xapplet + '<param name=Chart_Type value=T>\n' +
				'<param name=Legend_Location value=None>\n'
			}
			
		//Barras-> el 1
		alto='220';
		ancho='500';
		xapplet='<applet class="xapplet" code="Chart.class" archive="Chart2.jar" codebase="' + ponpathcodebase(3)  + 'chart/" alt="Gráfico" align="middle" width="'+ancho+'" height="'+alto+'" >\n'+
	   		xapplet +'<param name=Chart_Type value=B>\n' + 
			'<param name=Legend_Location value=Bottom>\n'
	       

		//Leer del HTML y cargar parametros en las Barras					
		damepartidos(0,2,0,true);
//		alert(maxVotos().toString()+ ' ' + parseInt(1.1*maxVotos()).toString().replace('.', ',') );
		//xapplet = xapplet + '<param name=Mag_Upper_Limit value='+parseInt(1.1*maxVotos()).toString().replace('.', ',')+'>\n';
		xapplet = xapplet + '<param name=Mag_Upper_Limit value='+parseInt(10+maxVotos()).toString().replace('.', ',')+'>\n';
		
		xapplet=xapplet  + '<param name=Num_Items value='+ xvotos.length + '>\n';
		for (var i=0; i< xvotos.length; i++)
		{
			xapplet=xapplet + '<param name=Data(1,' + (i+1) +') value='+ xvotos[i]+'>\n';
			xapplet=xapplet + '<param name=Item_Color(1,' + (i+1) +') value='+ xcolor[i]+'>\n';
			xapplet=xapplet + '<param name=Item_Name(1,' + (i+1) +') value='+xparti[i]+'>\n';
		}			
		xapplet='<div class=\"tituapplet\" >'+ titulo + ' </div>\n' + xapplet + xfinalapplet;	
		xapplet='<div id=\"divgraf1\">'+xapplet +'</div>';
				
		if ( tipogr == "BT")
		{	//Leer del HTML y cargar parametros en la Tarta	
			damecargos(0,3,0,true);
			xapplet2=xapplet2  + '<param name=Num_Items value='+ xvotos.length + '>\n';
			for (var i=0; i< xvotos.length; i++)
			{
				xapplet2=xapplet2 + '<param name=Data(1,' + (i+1) +') value='+ xvotos[i]+'>\n';
				xapplet2=xapplet2 + '<param name=Item_Color(1,' + (i+1) +') value='+ xcolor[i]+'>\n';
				xapplet2=xapplet2 + '<param name=Item_Name(1,' + (i+1) +') value='+xparti[i]+'>\n';
			}						
			xapplet2= '<div class=\"tituapplet\" >'+ titulo2 + ' </div>\n' + xapplet2 + xfinalapplet ;
			xapplet2= '<div id=\"divgraf2\">'+ xapplet2  + '</div>\n</div>';
		}
		
		//Grabar la nueva página			
		grafwindoc.write(xcabecera + xapplet + xapplet2 + xfinpag );
		grafwindoc.close();
		
		return true;
	}


// ****************** Funciones que traen datos de la páginaHtmldeDATOS  *****		
//Funcion que obtiene los datos de la pagina html para los graficos barras
function damepartidos(cellsiglas, cellporcentaje, cellcolor,conresto)	{ 
	var suma=0; var resto=0; 
	var MAXelem=7; 
	var contador=0;
	xvotos.length=0; xparti.length=0; xcolor.length=0;   //inicializa arrays
	
	if (!conresto) MAXelem=999;
	  		
	var theTable = grafwindoc.getElementById('TVOTOS');
	//no empezamos en 0, sino en 1, porque hemos introducido una línea hidden para mantener la validación W3C y hemos de saltarla.	
	for( var x = 1; x < theTable.tBodies[0].rows.length && contador < MAXelem ; x++ ){
		//alert( theTable.tBodies[0].rows[x].className);
		//si la fila es una agrupación (en el id tiene color + '_0000')
		var idFila = theTable.tBodies[0].rows[x].cells[0].id;
		if (idFila.substring(idFila.length-5) == '_0000')
		{
			//si la fila tiene votos 								
			if (theTable.tBodies[0].rows[x].cells[cellporcentaje].innerHTML.replace(' ','')!='0%' )				    				
			{    	
				xparti[contador]='"'+theTable.tBodies[0].rows[x].cells[cellsiglas].innerHTML+'"';							
				xvotos[contador]=quitaporcentaje(theTable.tBodies[0].rows[x].cells[cellporcentaje].innerHTML);
				xcolor[contador]=theTable.tBodies[0].rows[x].cells[cellcolor].id.substring(0, idFila.length-10).replace('X','x');
				suma=suma+100*eval(xvotos[contador].replace(',','.'));					
				contador++;
			}
		}
		//else {alert(theTable.tBodies[0].rows[x].className)};
	}
			
	if ( x < theTable.tBodies[0].rows.length)  //si quedan filas 
	{
		var resto = 0;
		var otros = 0;
		for (var i = x ; i < theTable.tBodies[0].rows.length; i++){
			var idFila = theTable.tBodies[0].rows[i].cells[0].id;
			if (idFila.substring(idFila.length-5) == '_0000'){
				votos=quitaporcentaje(theTable.tBodies[0].rows[i].cells[cellporcentaje].innerHTML);
				resto=resto+eval(votos.replace(',','.'));
				otros = otros + 1;
			}
		}
		if (otros > 0){
			xparti[contador-1]="OTROS";								
			xvotos[contador-1]= (parseFloat(xvotos[contador-1].replace(',','.'))+resto).toFixed(2).toString().replace('.', ',');
			xcolor[contador-1]='x888888'
		}
	}	
}

//Funcion que obtiene los cargos de la pagina html para los gráficos de tarta 
function damecargos(cellsiglas, cellcargos,cellcolor,conresto)	{ 
	var suma=0; var resto=0;
	xvotos.length=0;  //inicializa array  		
	var contador=0;
	var MAXelem=7; 
	var theTable = grafwindoc.getElementById('TVOTOS');
	
	//no empezamos en 0, sino en 1, porque hemos introducido una línea hidden para mantener la validación W3C y hemos de saltarla.	
	for( var x = 1 ;  x < theTable.tBodies[0].rows.length && contador < MAXelem; x++ )
	{
	  var idFila = theTable.tBodies[0].rows[x].cells[0].id;
	  //si la fila tiene columna cargos y es una agrupación (en el id tiene color + '_0000')
		if (theTable.tBodies[0].rows[x].cells.length>=cellcargos && (idFila.substring(idFila.length-5) == '_0000') ){
		  if (theTable.tBodies[0].rows[x].cells[cellsiglas].innerHTML.replace(' ','')!='')
			{
			  valor=parseInt(theTable.tBodies[0].rows[x].cells[cellcargos].innerHTML);
			
  			if (!isNaN(valor) && valor>0)
  			{  
  				xparti[contador]='"'+theTable.tBodies[0].rows[x].cells[cellsiglas].innerHTML+'"';				
  				xvotos[contador]=theTable.tBodies[0].rows[x].cells[cellcargos].innerHTML;
  				xcolor[contador]=theTable.tBodies[0].rows[x].cells[cellcolor].id.substring(0, idFila.length-10).replace('X','x');
  				contador++;
  			}
			}
		}
	}
	
	if ( x < theTable.tBodies[0].rows.length) //si quedan filas
	{ 
	  var resto = 0;
	  var otros = 0;
	  valor = 0;
		for(var x = x ; x < theTable.tBodies[0].rows.length; x++ )
		{
		  var idFila = theTable.tBodies[0].rows[x].cells[0].id;
			if (idFila.substring(idFila.length-5) == '_0000'){
				valor=parseInt(theTable.tBodies[0].rows[x].cells[cellcargos].innerHTML.replace('.',''));				
				if (!isNaN(valor) && valor>0){
			    	resto = resto + valor
			    	otros = otros +1;
			  }
			}    						    				  	
		}
		if (otros > 0){
  		xparti[contador-1]="OTROS";
  		xcolor[contador-1]='x888888';
  		xvotos[contador-1]= ponpuntos (parseInt(xvotos[contador-1])+resto);
  	}
	}
	
}
	
		
	// ******************	
	
	function dameID(elID){return(grafwindoc.getElementById(elID).innerHTML)}			
	function dameWintitulo(){return(grafwindoc.getElementsByTagName('title')[0].innerHTML)}	
	function dameHead(){return(grafwindoc.getElementsByTagName('head')[0].innerHTML)}		
	
	// ******************			

	
	function enlaceparacambiar(tipogr){
		var tipo=(tipogr=='T'?'B':'T');
		var texto=(tipogr=='T'?'Barras':'&nbsp;Tarta&nbsp;');
		return ('&nbsp;<A class=At6 href=javascript:window.parent.frames[0].genpagina("' +tipo+'")>'+texto+'</A>&nbsp;&nbsp;');
	}
	
	function quitanegrita(cadena){
		cadena=cadena.toUpperCase();
		cadena=cadena.replace('<B>','');
		cadena=cadena.replace('</B>','');
		
		return cadena;	
	}

	function quitaporcentaje(cadena){
		cadena=cadena.toUpperCase();
		cadena=cadena.replace('%','');	
		cadena=cadena.replace('&NBSP;','');		
		return cadena;	
	}

	//Funcion que obtiene la suma de todos los porcentajes  
	function sumatotal(cellporcentaje)	{ 
		var suma=0; 
		var dato=0; 
						  		
		var theTable = grafwindoc.getElementById('TVOTOS');
		for( var x = 0; x < (theTable.tBodies[0].rows.length); x++ )
		{if (theTable.tBodies[0].rows[x].className.indexOf('sub')<0  	
			&& theTable.tBodies[0].rows[x].cells[0].innerHTML.replace(' ','')!='')				
				{	
					dato=quitaporcentaje(theTable.tBodies[0].rows[x].cells[cellporcentaje].innerHTML.replace(' ',''));	
					if (dato!='') suma=suma + 100 * eval(dato.replace(',','.'));					
				}
		}
	//alert(suma);				
		return (suma);		
	}

	function ponpuntos(valor){	
		if (valor > 1000){
			valor='' + valor;
			var j=valor.length;
			if (j>3) {		
				valor= valor.substring(0,j-3) + "." + valor.substring(j-3);		
			}
		}
		return(valor)
	}

	//invoca al metodo Refresh del Applet
	function repinta()
	{	
		for( var x = 0; x < (top.frames[1].frames[1].document.applets.length); x++ ) 
				{ top.frames[1].frames[1].document.applets[x].refresh();}
	// alert("repinta")
	}

	function titulotabla() {
	        var retorno ="Listas";		
		var theTable = grafwindoc.getElementById('TVOTOS');
		if (theTable.tHead.rows[0].cells[0].innerHTML.indexOf('Fórmula')>-1 ) retorno="Fórmulas";
		if (theTable.tHead.rows[0].cells[0].innerHTML.indexOf('Lemas')>-1)  retorno="Lemas";
		return retorno
	}
	
	
//****************************************************************************************************	
	// Cambia los <a href='Dxx99999.htm" de menuelec que apunta a una página del directorio actual
	// por la url completa de esa página.
	// Debido a que la Morzilla, se posiciona en donde está en el f_top que lanza el javascript
	// y pierde el directorio de la página creada on-line
	function cambiahref(){
		var x=0;
		try
		{
		var menu =grafwindoc.getElementById('menuelec').getElementsByTagName("a");
		for ( var x = 0; x < menu.length; x++) {
			menu[x].href=menu[x].href; // Para asombro del personal!!
			}
		}
		catch (errorObject)
		{
		}
		return
	}


	// Al path completo le quita el número de directorios del parámetro. 
	// Ñapa para la Morzilla que hace mal la referencia a dos más arriba  "../../"
	function ponpathcodebase(valor){
		var dir="";
		var salida="";
		dir=path_entrada.split("/");
		
		for (var x=0; x < (dir.length-valor); x++){
			salida= salida + dir[x] + "/" 
		}		
		return (salida)
	}
//******************************************************************************************************	

  function maxVotos(){
    var maximo = 0;
    for(var i = 0; i < xvotos.length; i++){
      var valor = parseFloat(xvotos[i].replace(',', '.'));
      if (valor > maximo)
        maximo = valor;
    }
    return maximo;
  }