//----------------------------------------------------------------------------------------------------
//BASE.JS
//Componente base para aplicaciones XHTML basadas en MetaRedes 3.x
//----------------------------------------------------------------------------------------------------
/***************************************************************************************** 
FUNCIONES
*****************************************************************************************/
function reasumir(){
	return true
	}

function CambiarIdioma(){
	document.getElementById('mr_idioma').value=document.getElementById('mr_idiomas').value;
	}

function valParam(prmName){  
	var url = window.location.href; 
	url = unescape(url); 
	var prmUpper = prmName; 
	var prmPosic = url.indexOf(prmUpper); 
	var sepPos; 
	if (prmPosic != -1){var sepPos = url.indexOf("&", prmPosic); 
	if (sepPos != -1){return url.substring(prmPosic + prmUpper.length + 1, sepPos);}
	else{return url.substring(prmPosic + prmUpper.length + 1, url.length);}}
	else{return "";}
	} 

function setCookie(name, value, expires, path, domain, secure) {
	path = '/'; document.cookie= name + "=" + escape(value) + ((expires) ? "; expires=" + expires.toGMTString() : "") + ((path) ? "; path=" + path : "") + ((domain) ? "; domain=" + domain : "") + ((secure) ? "; secure" : "");
	}

function getCookie(name) {
	var dc = document.cookie; var prefix = name + "="; var begin = dc.indexOf("; " + prefix); if (begin == -1) {begin = dc.indexOf(prefix); if (begin != 0) return null;} else {begin += 2;}
	var end = document.cookie.indexOf(";", begin); if (end == -1) {end = dc.length;}
	return unescape(dc.substring(begin + prefix.length, end));
	}

function deleteCookie(name, path, domain) {
	if (getCookie(name)) {document.cookie = name + "=" + ((path) ? "; path=" + path : "") + ((domain) ? "; domain=" + domain : "") + "; expires=Thu, 01-Jan-70 00:00:01 GMT";}
	}

function CheckAll(){
	for (var i=0;i<document.forms[0].elements.length;i++)
	{var e=document.forms[0].elements[i]; e.checked=true;Entidades(e);}
	}

function Confirmar(Url,Msg) {
	var entidades = getCookie("mrlistaentidades")+'';
	var lista = '&mr_lista_entidades='+entidades;
	var agree=confirm(Msg); if (agree) {NoEntidades(); self.location.href= Url+lista;}
	}

function NoPerspectivas() {
	setCookie("mrasociacioneselegidas", "", "", "/", "", "");
	}

function Recargar() {
	self.location.reload();
	}

function Perspectivas(Check){
	v_valor = Check.value; v_lista = ','+mr_asociaciones_elegidas+',';
	if (Check.checked == true){
	if (v_lista.indexOf(','+v_valor+',')==-1 && v_valor.length>0){
	if (mr_asociaciones_elegidas.length==0){mr_asociaciones_elegidas=v_valor}else{mr_asociaciones_elegidas=mr_asociaciones_elegidas+','+v_valor}}
	}else{
	mr_asociaciones_elegidas = v_lista.replace(','+v_valor+',',',');}
	mr_asociaciones_elegidas = mr_asociaciones_elegidas.replace(/,,/gi,',');
	setCookie("mrasociacioneselegidas", mr_asociaciones_elegidas, "", "/", "", "");
	}

function Entidades(Check){
	v_valor = Check.value; v_lista = ','+mr_lista_entidades+',';
	if (Check.checked == true){
	if (v_lista.indexOf(','+v_valor+',')==-1 && v_valor.length>0){
	if (mr_lista_entidades.length==0){mr_lista_entidades=v_valor}else{mr_lista_entidades=mr_lista_entidades+','+v_valor}}
	}else{
	mr_lista_entidades = v_lista.replace(','+v_valor+',',',');}
	mr_lista_entidades = mr_lista_entidades.replace(/,,/gi,',');
	setCookie("mrlistaentidades", mr_lista_entidades, "", "/", "", "");
	}

function NoEntidades() {
	setCookie("mrlistaentidades", "", "", "/", "", "");
	}

function CambiarCantidad(id,num){
	if (document.getElementById('cantidad_'+id)) {document.getElementById('cantidad_'+id).innerHTML=num+' ';}
	if (document.getElementById('cantidad_'+id+'_elegir')) {document.getElementById('cantidad_'+id+'_elegir').style.display='none';}
	Carro(id,num,'');
	}

function Carro(producto,cantidad,mensaje){
	var mr_lista_entidades = getCookie("mrlistaentidades")+'';
	var v_listafinal = '';
	var v_existe = 0;
	var v_listaproductos = mr_lista_entidades.split(",");
	for (var i=0; i<v_listaproductos.length; i++) {
		var v_producto = v_listaproductos[i].split(";");
		if (v_producto[0]==producto) {
			v_existe=1;
			if (cantidad > 0) {v_listaproductos[i]=producto+';'+cantidad;}
			else {v_listaproductos[i]='';}}
		v_listafinal = v_listafinal + ',' + v_listaproductos[i];}
	if (v_existe == 0 && cantidad != 0) {v_listafinal = v_listafinal + ',' + producto + ';' + cantidad;}
	v_listafinal = v_listafinal.replace(/,,/gi,',');
	if (v_listafinal.charAt(0)==',') {v_listafinal = v_listafinal.substring(1,v_listafinal.length);}
	mr_lista_entidades = v_listafinal
	setCookie("mrlistaentidades", mr_lista_entidades, "", "/", "", "");
	if (window.opener) {
		if (window.opener.document.getElementById("encarro_"+producto)){
		window.opener.document.getElementById("encarro_"+producto).style.display="block";
		window.opener.document.getElementById("encarro_"+producto).innerHTML='<span class="total">'+mensaje+'</span>';}}
	if (document.getElementById("encarro_"+producto)){
		document.getElementById("encarro_"+producto).style.display="block";
		document.getElementById("encarro_"+producto).innerHTML='<span class="total">'+mensaje+'</span>';}
	if (document.getElementById("agregado_carro")) {document.getElementById("agregado_carro").innerHTML='<span class="total">'+mensaje+'</span>';}
	}

function Interruptor(tag){
	if(document.getElementById(tag)){
	if (document.getElementById(tag).style.display=="block") {document.getElementById(tag).style.display="none";}
	else {document.getElementById(tag).style.display="block";}}
	}

function SubirArchivo(d,f,c,p){
	venta=open(d+"?f="+f+"&c="+c+"&p="+p,"subir", "width=400,height=200,scrollbars=yes,directories=no,menubar=no,toolbar=no,status=no,resizable=yes,top=10,left=10");
	if (document.getElementById("elegir_imagen")){document.getElementById("elegir_imagen").style.display="none";}
	}

function Abrir(pag){
	venta=open(pag,"ventana", "width=500,height=400,scrollbars=yes,directories=no,menubar=no,toolbar=no,status=no,resizable=yes,top=0,left=0");
	}

function Votar(pag){
	venta=open(pag,"votar", "width=500,height=400,scrollbars=yes,directories=no,menubar=no,toolbar=no,status=no,resizable=yes,top=0,left=0");
	}

function AbrirGrande(pag){
	venta=open(pag,"ventana", "width=640,height=480,scrollbars=yes,directories=no,menubar=no,toolbar=yes,status=no,resizable=yes,location=yes,top=0,left=0");
	}

function CambiarPerspectiva(){
	quitar = '&perfil='+ mr_analisis_perfil;
	mr_url_script = mr_url_script.replace(quitar,'');
	ruta_cambiar = ruta_cambiar.replace(quitar,'');
	mr_url_script = mr_url_script.replace('&','@');
	mr_nuevo_perfil = document.getElementById("perspectiva_perfil").value;
	v_url = ruta_cambiar + '&vurl=' + mr_url_script + '@perfil=' + mr_nuevo_perfil + '&mr_asociaciones_elegidas=' + mr_asociaciones_elegidas
	self.location.href = v_url;
	}

function Imprimir() {
	window.print();
	}

function SetUrl(url){
	document.getElementById(CAMPO).value = url;
	}

function Buscar(pag,campo){
	CAMPO = campo;
	mr=open(ruta_explorador+'?Connector=connectors/asp/connector.asp&'+pag,"buscar","width=600,height=480,scrollbars=yes,directories=no,menubar=no,toolbar=no,status=no,resizable=yes,top=0,left=0");
	}

function ajax(){var xmlhttp=false;try
	{xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");}
	catch(e){try{xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");}
	catch(E){xmlhttp=false;}}
	if (!xmlhttp && typeof XMLHttpRequest!="undefined"){xmlhttp=new XMLHttpRequest();}
	return xmlhttp;
	}

function getposOffset(overlay, offsettype){
	/***********************************************
	* Drop Down/ Overlapping Content- © Dynamic Drive (www.dynamicdrive.com)
	* This notice must stay intact for legal use.
	* Visit http://www.dynamicdrive.com/ for full source code
	***********************************************/
	var totaloffset=(offsettype=="left")? overlay.offsetLeft : overlay.offsetTop;
	var parentEl=overlay.offsetParent;
	while (parentEl!=null){
	totaloffset=(offsettype=="left")? totaloffset+parentEl.offsetLeft : totaloffset+parentEl.offsetTop;
	parentEl=parentEl.offsetParent;}
	return totaloffset;}
	function overlay(curobj, subobjstr, opt_position){
	if (document.getElementById){
	var subobj=document.getElementById(subobjstr)
	subobj.style.display=(subobj.style.display!="block")? "block" : "none"
	var xpos=getposOffset(curobj, "left")+((typeof opt_position!="undefined" && opt_position.indexOf("right")!=-1)? -(subobj.offsetWidth-curobj.offsetWidth) : 0) 
	var ypos=getposOffset(curobj, "top")+((typeof opt_position!="undefined" && opt_position.indexOf("bottom")!=-1)? curobj.offsetHeight : 0)
	subobj.style.left=xpos+"px"
	subobj.style.top=ypos+"px"
	return false}
	else
	return true}
	function overlayclose(subobj){
	document.getElementById(subobj).style.display="none"
	}

function CrearCalendario(Ano,Mes,Dia,cTipo,vPagina){
	mes = mr_hoy.getMonth();
	mes=mr_meses[mes];
	var vFecha=new Date(Ano, Mes-1, Dia);
	if (mr_hoy.getMonth()!=vFecha.getMonth())
		{var vFecha=new Date(Ano, Mes-1, 1);}
	if (mr_hoy.getDay()!=vFecha.getDay())
		{var vFecha=new Date(Ano, Mes-1, 1);}
	var EsteDia;
	var DiasPorMes=[31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
	Anyo=vFecha.getFullYear(); 
	EsteMes = vFecha.getMonth()
	EsteDia=vFecha.getDate();
	if (((Anyo % 4 == 0) && (Anyo % 100 != 0)) || (Anyo % 400 == 0))
		DiasPorMes[1] = 29; 
	NDias =DiasPorMes[EsteMes];
	PrimerDia=vFecha;
	PrimerDia.setDate(1);
	Comienzo=PrimerDia.getDay();
	vCalendario=vCalendario+'<table cellspacing="0" cellpadding="2" class="calendario_fondo"><tr><td>';
	vCalendario=vCalendario+'<table border="0" cellspacing="2" cellpadding="2" width="100%">';
	vCalendario=vCalendario+'<tr><td class="calendario_mes"><a href="javascript:void(0);" onclick="Mes_Ant('+cTipo+',\''+vPagina+'\');" target="_self"><span class="calendario_control">&lt;&lt;</span></a></td><td colspan="5" class="calendario_mes">'+ mr_meses[EsteMes] +' '+Anyo+'</td><td class="calendario_mes"><a href="javascript:void(0);" onclick="Mes_Pro('+cTipo+',\''+vPagina+'\');" target="_self"><span class="calendario_control">&gt;&gt;</span></a></td></tr>';
	vCalendario=vCalendario+'<tr><td class="calendario_dias">'+mr_dias[0]+'</td><td class="calendario_dias">'+mr_dias[1]+'</td><td class="calendario_dias">'+mr_dias[2]+'</td><td class="calendario_dias">'+mr_dias[3]+'</td><td class="calendario_dias">'+mr_dias[4]+'</td><td class="calendario_dias">'+mr_dias[5]+'</td><td class="calendario_dias">'+mr_dias[6]+'</td></tr>';
	vCalendario=vCalendario+'<tr>';
	columna=0;
	vCompromisos=Agenda[EsteMes].split(';');
	for (ik=0; ik<Comienzo; ik++)
		{
		vCalendario=vCalendario+'<td>';
		columna++;
		vCalendario=vCalendario+'</td>';
		}
	for (ik=1; ik<=NDias; ik++)
		{ 
		iktxt = ik.toString();
		if (iktxt.length==1) {iktxt = '0'+iktxt;}
		mestxt = EsteMes+1;
		mestxt = mestxt.toString();
		if (mestxt.length==1) {mestxt = '0'+mestxt;}
		if (ik == parseFloat(mr_dia_elegido) && EsteMes==parseFloat(mr_mes_elegido)-1 ) {elegido=' style="border: 2px solid black;"';} else {elegido='';}
		if (ik == EsteDia && EsteMes==mr_hoy.getMonth() ) {vCalendario=vCalendario+'<td class="calendario_DiaHoy"'+elegido+'>';}
		else {
			if (vCompromisos[ik-1]==1) {vCalendario=vCalendario+'<td class="calendario_DiaOcupado"'+elegido+'>';}
			else if (columna == 0) vCalendario=vCalendario+'<td class="calendario_DiaNormal"'+elegido+'>';
			else vCalendario=vCalendario+'<td class="calendario_DiaNormal"'+elegido+'>';
			}
		if (vCompromisos[ik-1]==1) {vCalendario=vCalendario+'<a target="_self" href="'+vPagina+'&dia='+(iktxt)+'&mes='+(mestxt)+'&ano='+Anyo+'">'+ik+'</a>';}
		else {
			if (cTipo==1) {vCalendario=vCalendario+'<a target="_self" href="'+vPagina+'&dia='+(iktxt)+'&mes='+(mestxt)+'&ano='+Anyo+'">'+ik+'</a>';}
			else {vCalendario=vCalendario+''+ik+'';}
			}
		if (ik == EsteDia || columna == 0) vCalendario=vCalendario+'</span>'
		else if (columna == 0)
			vCalendario=vCalendario+'</span>'; 
		vCalendario=vCalendario+'</td>';
		columna++;
		if (columna == 7) {vCalendario=vCalendario+'</tr><tr>';columna=0;}
		}
	vCalendario=vCalendario+'</tr>';
	vCalendario=vCalendario+'</table></td></tr>';
	vCalendario=vCalendario+'</table>';
	vCompromisos = '';
	}

function MostrarCalendario(ElMes,cTipo,vPagina) {
	vCalendario=''; CrearCalendario(mr_ano, ElMes, mr_dia,cTipo,vPagina); document.getElementById("calendario").innerHTML = vCalendario;
	}

function Mes_Ant(cTipo,vPagina) {
	mr_mes=mr_mes-1; if (mr_mes<1){mr_mes = 12} {MostrarCalendario(mr_mes,cTipo,vPagina);}
	}

function Mes_Pro(cTipo,vPagina) {
	mr_mes=mr_mes+1; if (mr_mes>12){mr_mes = 1} {MostrarCalendario(mr_mes,cTipo,vPagina);}
	}

function CargarContenido(tag,ruta,fmt,num,ini,fecha){
	var total = 0; num = parseFloat("0" + num); ini = parseFloat("0" + ini); num = num + ini - 1;
	var plantilla = unescape(document.getElementById(tag).innerHTML);
	document.getElementById(tag).innerHTML="Cargando...";
	if (ruta.indexOf('?')!=-1) {ruta = ruta + "&jsx=" + new Date().getTime();}
	else {ruta = ruta + "?jsx=" + new Date().getTime();}
	while (ruta.indexOf('&')!=-1){ruta = ruta.replace(/&/,'@');} 
	if (ruta.substring(0,7)=="http://") {ruta="proxy.asp?vurl="+ruta}
	var carga_contenido=ajax(); carga_contenido.open("GET", ruta,true);
	carga_contenido.send(null); carga_contenido.onreadystatechange=function(){
	if (carga_contenido.readyState==1) 
		{document.getElementById(tag).innerHTML="Cargando...";}
	else if (carga_contenido.readyState==4){
		if(carga_contenido.status==200) {
			var respuesta=carga_contenido.responseText;
			switch (fmt){
			case "jsx":
				respuesta = respuesta.replace(/[\n\r]/gi," ");
				eval('var mr_casos = new Array('+respuesta+'"");'); 
				respuesta = "";
				if (mr_casos.length > num) {total = num}
				else {total = mr_casos.length}
				for (var i=ini-1; i<total; i++){
				var datos = mr_casos[i].split("{MR}");
				var mr_aux = plantilla;
				mr_aux = mr_aux.replace("[id]",datos[0]);
				mr_aux = mr_aux.replace("[titulo]",datos[1]);
				mr_aux = mr_aux.replace("[descripcion]",datos[2]);
				mr_aux = mr_aux.replace("[fecha]",datos[3]);
				mr_aux = mr_aux.replace("[autor]",datos[4]);
				mr_aux = mr_aux.replace("[enlace]",datos[5]);
				mr_aux = mr_aux.replace("[imagen]",datos[6]);
				respuesta = respuesta + mr_aux;}
				break;
			case "rss":
				var mr_casos = carga_contenido.responseXML.getElementsByTagName("item"); 
				respuesta = "";
				if (mr_casos.length > num) {total = num}
				else {total = mr_casos.length}
				for(var i=ini-1; i < total; i++ ){
					var mr_aux = plantilla;
					for (var j=0; j<mr_casos.item(i).childNodes.length; j++){
						var nombre = mr_casos.item(i).childNodes[j].nodeName;
						var valor = "";
						if (mr_casos.item(i).childNodes[j].firstChild)
						{valor = mr_casos.item(i).childNodes[j].firstChild.nodeValue;}					
						switch (nombre){
						case "id": mr_aux = mr_aux.replace("[guid]",valor); break;
						case "title": mr_aux = mr_aux.replace("[titulo]",valor); break;
						case "description": mr_aux = mr_aux.replace("[descripcion]",valor); break;
						case "link": mr_aux = mr_aux.replace("[enlace]",valor); break;
						case "pubDate": 
							var mi_fecha=new Date(valor);
							if (isNaN(mi_fecha.getDate())==false){
							valor = fecha.replace("[dd]",mi_fecha.getDate());
							valor = valor.replace("[mm]",mi_fecha.getMonth());
							valor = valor.replace("[aaaa]",mi_fecha.getFullYear());}
							mr_aux = mr_aux.replace("[fecha]",valor); 
							break;
						case "PubDate": 
							var mi_fecha=new Date(valor);
							if (isNaN(mi_fecha.getDate())==false){
							valor = fecha.replace("[dd]",mi_fecha.getDate());
							valor = valor.replace("[mm]",mi_fecha.getMonth());
							valor = valor.replace("[aaaa]",mi_fecha.getFullYear());}
							mr_aux = mr_aux.replace("[fecha]",valor); 
							break;
						case "author": mr_aux = mr_aux.replace("[autor]",valor); break;
						case "image": mr_aux = mr_aux.replace("[imagen]",valor); break;
						}
					} 
					mr_aux = mr_aux.replace("[descripcion]","");
					mr_aux = mr_aux.replace("[enlace]","");
					mr_aux = mr_aux.replace("[autor]","");
					mr_aux = mr_aux.replace("[imagen]","");
					mr_aux = mr_aux.replace("[fecha]","");
					respuesta = respuesta + mr_aux;}
				break;
			case "htm":
				respuesta = respuesta.replace(/<script[\s\S]*?<\/script>/gi,'');
				respuesta = respuesta.replace(/<noscript[\s\S]*?<\/noscript>/gi,'');
				respuesta = respuesta.replace(/onsubmit=\"*?\"/gi,'');
				break;
			case "txt":
				break;}
			document.getElementById(tag).innerHTML = respuesta;
			respuesta = ""; mr_aux = ""; datos = Array(); mr_casos = Array();}
		else if(carga_contenido.status==404) {document.getElementById(tag).innerHTML="(La url no existe)";}
		else if(carga_contenido.status==500) {document.getElementById(tag).innerHTML="(Error del servidor)";}
		else {document.getElementById(tag).innerHTML="(Error: "+carga_contenido.status+")";}}}
	}

/***************************************************************************************** 
VARIABLES
*****************************************************************************************/
//var Hoy = new Date();
//var vMes = valParam("mes");
//var vDia = valParam("dia");
//var vAno = valParam("ano");
//if (vMes=='' | vDia=='' | vAno==''){
//var vMes = Hoy.getMonth() + 1;
//var vDia = Hoy.getDate();
//var vAno = Hoy.getFullYear();}
//var Hoy = new Date(vAno, vMes-1, vDia);
//var Objeto = new Array();
//var mr_expandir = 0;
var arbol;
var CAMPO;
var Caja = new Array();
var Ficha = new Array();
var mr_meses=new Array("enero", "febrero", "marzo", "abril", "mayo", "junio", "julio", "agosto", "septiembre", "octubre", "noviembre", "diciembre");
var mr_dias=new Array("D", "L", "M", "M", "J", "V", "S");
var Agenda = new Array("","","","","","","","","","","","");
var mr_casos = new Array();
//window.onerror=reasumir;
