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_setTextOfLayer(objName,x,newText) { //v4.01
  if ((obj=MM_findObj(objName))!=null) with (obj)
    if (document.layers) {document.write(unescape(newText)); document.close();}
    else innerHTML = unescape(newText);
}

function quitadot(str){
	ind=dato.indexOf(".");
	if(ind!=-1) dato=dato.substring(0,ind)+dato.substring(ind+1);
	return dato;
}

function pondot(num){
	str=""+num;
	len=str.length;
	// ojo negativos
	if(len>3 && !(str.indexOf("-")!=-1 && len<5)) {
		str=str.substring(0,len-3)+"."+str.substring(len-3,len);
	}
	return str;
}

function cleano(objstr){
	Objcell=MM_findObj(objstr);
	dato=0;
	if(Objcell){
		dato=Objcell.innerHTML;
		dato=quitadot(dato);
		if(dato>0) dato=parseInt(dato);
	}
	return dato;
}

function fswitch(rstr){
	// reemplaza coma por punto
	dotpos=rstr.indexOf(".");
	if(dotpos==(rstr.length-4) && rstr.indexOf("%")!=-1){
		return rstr.substring(0,dotpos)+","+rstr.substring(dotpos+1,rstr.length);
	}
	else{
		return rstr;
	}
}

var datos;
var Atotal=Array();

function cargadatos(){
	var matriz=Array(Array(),Array());
	for(i=0;i<total;i++){
		matriz[i]=Array();
		for(j=1;j<=numcolstotal;j++){matriz[i][j]=cleano("f"+i+"_"+j);}
		if(numcols!=numcolstotal) Atotal[i]=cleano("f"+i+"_"+numcolstotal); // duplico ultimo
	}
	return matriz;
}

function setdatos(newdatos){
	for(i=0;i<total;i++){
		for(j=1;j<=numcolstotal;j++){
			MM_setTextOfLayer("f"+i+"_"+j,'',newdatos[i][j]);
		}
	}
}

function arraydots(matriz){
	var res=Array(Array(),Array());
	for(i=0;i<total;i++){
		res[i]=Array();
		for(j=1;j<=numcolstotal;j++){
			res[i][j]=pondot(matriz[i][j]);
		}
	}
	return res;
}

function calculaabs(matriz,ind){
	var res=Array(Array(),Array());
	for(i=0;i<total;i++){
		res[i]=Array();
		for(j=1;j<=numcolstotal;j++){
			if((i+ind)<total){
				dato1=matriz[i][j];
				dato2=matriz[i+ind][j];
				res[i][j]=dato1-dato2;
			}
			else{
				res[i][j]="-";
			}
		}
	}
	return res;
}

function calcularelanio(matriz){
	var res=Array(Array(),Array());
	for(i=0;i<total;i++){
		res[i]=Array();
		for(j=1;j<=numcolstotal;j++){
			sig=i+1;
			res[i][j]="-";
			if(sig<total){
				if(matriz[sig][j]>0){
					dato=100*(matriz[i][j]-matriz[sig][j])/matriz[sig][j];
					if(dato.toFixed) dato=dato.toFixed(2);
					res[i][j]=fswitch(dato+"%");
				}
			}
		}
	}
	return res;
}

function calculareltrimes(matriz){
	var res=Array(Array(),Array());
	for(i=0;i<total;i++){
		res[i]=Array();
		for(j=1;j<=numcolstotal;j++){
			res[i][j]="-";
			if((i+4)<total){
				//dato1=matriz[i][j]+matriz[i+1][j]+matriz[i+2][j]+matriz[i+3][j];
				//dato2=(matriz[i+1][j]+matriz[i+2][j]+matriz[i+3][j]+matriz[i+4][j]);
				dato1=matriz[i][j];
				dato2=matriz[i+4][j];
				if(dato2>0){
					res[i][j]=dato1-dato2;
					dato=100*(dato1-dato2)/dato2;
					if(dato.toFixed) dato=dato.toFixed(2);
					res[i][j]=fswitch(dato+"%");
				}
			}
		}
	}
	return res;
}

function calcularelmes(matriz){
	var res=Array(Array(),Array());
	for(i=0;i<total;i++){
		res[i]=Array();
		for(j=1;j<=numcolstotal;j++){
			res[i][j]="-";
			if((i+12)<total){
				dato1=matriz[i][j];
				dato2=matriz[i+12][j];
				if(dato2>0){
					res[i][j]=dato1-dato2;
					dato=100*(dato1-dato2)/dato2;
					if(dato.toFixed) dato=dato.toFixed(2);
					res[i][j]=fswitch(dato+"%");
				}
			}
		}
	}
	return res;
}

function calculaporctotal(matriz){
	var res=Array(Array(),Array());
	if(numcols!=numcolstotal){
		for(i=0;i<total;i++){
			res[i]=Array();
			for(j=1;j<=numcolstotal;j++){
				if(j!=numcolstotal){
					if(Atotal[i]>0){
						dato=100*matriz[i][j]/Atotal[i];
						if(dato.toFixed) dato=dato.toFixed(2);
						res[i][j]=fswitch(dato+"%");
					}
					else{
						res[i][j]="-";
					}
				}
				else{
					res[i][j]=pondot(Atotal[i]);
				}
			}
		}
		return res;
	}
}


function setdata(tipo,cur){
	if(total>0 && numcols>0){
		if(!hasloaded){
			datos=cargadatos();
			hasloaded=true;
		}
		switch(tipo){
			case "total":
				newdata=arraydots(datos);
				setdatos(newdata);
				break;
			case "abs":
				newdata=calculaabs(datos,1);
				newdata=arraydots(newdata);
				setdatos(newdata);
				break;
			case "rel":
				newdata=calcularelanio(datos);
				setdatos(newdata);
				break;
			case "ptotal":
				newdata=calculaporctotal(datos);
				setdatos(newdata);
				break;
			case "abst":
				// anual
				if(tipodatos==0){
					newdata=calculaabs(datos,1);
				}
				// trimestral
				else if(tipodatos=1){
					newdata=calculaabs(datos,4);
				}
				// mensual
				else if(tipodatos=2){
					newdata=calculaabs(datos,12);
				}
				else{
					alert("No se puede calcular el incremento anual con estos datos");
				}
				newdata=arraydots(newdata);
				setdatos(newdata);
				break;
			case "relt":
				newdata=calculareltrimes(datos);
				setdatos(newdata);
				break;
			case "absm":
				newdata=calculaabs(datos,12);
				newdata=arraydots(newdata);
				setdatos(newdata);
				break;
			case "relm":
				newdata=calcularelmes(datos);
				setdatos(newdata);
				break;
		}
		if(document.getElementById) {
			for(i=0;i<13;i++){
				identity=document.getElementById('b'+i);
				if(identity){
					if(i==cur) identity.className="smark";
					else identity.className="s";
				}
			}
		}
	}
	else{
		alert("Esta opción no está disponible con este navegador y estos datos.");
	}
}

function addfavoritos(){
   if ((navigator.appName=="Microsoft Internet Explorer") && (parseInt(navigator.appVersion)>=4)) {
      var url=document.location.href; 
      var titulo="Indicadores Socioeconómicos Futurelx";
      window.external.AddFavorite(url,titulo);
   }else{
      if(navigator.appName == "Netscape") 
         alert("Presione Crtl+D para agregar este sitio en sus Bookmarks"); 
   }
} 


function showhide(cual){
	obj=MM_findObj(cual);
	if(obj.style.display=="none") obj.style.display="";
	else obj.style.display="none";
}

function goind(area,ind){
	f=document.forms["foind"];
	f.action="mostrarconsulta.asp";
	f.area.value=area;
	f.ind.value=ind;
	f.submit();
}

function goind2(area,ind){
	f=document.forms["foind"];
	f.action="mostrarconsulta.asp";
	f.area.value=area;
	f.ind.value=ind;
	f.submit();
}

function fflasht(tsrc,w,h,version,vars){
	document.write("<OBJECT classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' ");
	document.write("codebase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version="+version+"' ");
	document.write("WIDTH='"+ w + "' HEIGHT='"+ h + "' id='iflash' ALIGN='center'> ");
	document.write("<param name=movie value='" + tsrc + "'> <PARAM NAME=quality VALUE=high> <PARAM NAME=menu VALUE=false> ");
	document.write("<param name='FlashVars' value='"+ vars +"'> ");
	document.write("<param name='allowScriptAccess' value='sameDomain'>");
	document.write("<param name='bgcolor' VALUE='#ffffff'> <param name='wmode' value='transparent'> <EMBED src='" + tsrc + "' quality=high ");
	document.write("bgcolor=#ffffff wmode='transparent' WIDTH='"+ w + "' HEIGHT='"+ h + "' NAME='iflash' ALIGN='center' ");
	document.write("TYPE='application/x-shockwave-flash' menu='false' ");
	document.write("PLUGINSPAGE='http://www.macromedia.com/go/getflashplayer' flashvars='" + vars + "' allowScriptAccess='sameDomain'></EMBED></OBJECT>");
}
