var MSG_ERR_NOAJAX="Su navegador no cuenta con AJAX";

function getXMLHttpRequest(){
  var request;
  if (window.XMLHttpRequest){ // For Mozilla and Safari, IE7
    request = new XMLHttpRequest();
  }else if (window.ActiveXObject){ // For IE6
    try {
      request = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e){
      try{
        request = new ActiveXObject("Microsoft.XMLHTTP");
      }catch (e){
        throw MSG_ERR_NOAJAX;
      }
    }
  }
  return request;
}

function insertPage(url, containerid, addmethod){
  var request;
  try{
    request = getXMLHttpRequest();
   	request.onreadystatechange=function(){ loadpage(request, containerid, addmethod);};
    request.open('GET', url, true);
    request.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");
    request.send(null);
  }catch(e){
    alert(e);
  }
}

function insertPageStdview(url, containerid, locref, addmethod, appname ){	
  var request;
  try{
    request = getXMLHttpRequest();
   	request.onreadystatechange=function(){ loadpageStdview(request, containerid, locref, addmethod, appname);};
    request.open('GET', url, true);
    request.setRequestHeader("If-Modified-Since", "Sat, 01 Jan 2000 00:00:00 GMT");
    request.send(null);	
  }catch(e){
    alert(e);
  }
}

function loadpage(request, containerid, addmethod){
  if (request.readyState == 4 && (request.status==200 || window.location.href.indexOf("http")==-1)){
    // TODO@:Get charset from HTTP Headers and apply it
    var startIndex = request.responseText.indexOf("<body");
    startIndex = request.responseText.indexOf('>',startIndex)+1;
    var endIndex = request.responseText.indexOf("</body>");
    var html = request.responseText.substring(startIndex, endIndex);
    document.getElementById(containerid).innerHTML=html;
	if (addmethod!=null) {
		eval(addmethod);
	}
  }
}

function loadpageStdview(request, containerid, locref, addmethod, appname){	      
  if (request.readyState == 4 && (request.status==200 || window.location.href.indexOf("http")==-1)){  
    // TODO@:Get charset from HTTP Headers and apply it	
    var startIndex = request.responseText.indexOf("<body");
	if (startIndex<0) startIndex = request.responseText.indexOf("<BODY");
    startIndex = request.responseText.indexOf('>',startIndex)+1;
    var endIndex = request.responseText.indexOf("</body>");
	if (endIndex<0) endIndex = request.responseText.indexOf("</BODY>");	
	var htmlbody = request.responseText.substring(startIndex, endIndex);	

	/* var html = composeAhrefs(htmlbody,locref); */
    var html = htmlbody;
    if ( (appname == null) || (appname != "bmsearch") ) {
        html = composeAhrefs(htmlbody,locref);
    }
	
	try {
		startIndex = request.responseText.indexOf("<title");
		if (startIndex < 0) startIndex = request.responseText.indexOf("<TITLE");
	    startIndex = request.responseText.indexOf('>',startIndex)+1;
		endIndex = request.responseText.indexOf("</title>");
		if (endIndex < 0) endIndex = request.responseText.indexOf("</TITLE>");
		var title = request.responseText.substring(startIndex, endIndex);
		document.title = title;
		document.getElementById("bm_title").innerHTML = title;
	} catch (err) {}
    document.getElementById(containerid).innerHTML=html;
	if (addmethod!=null) {
		eval(addmethod);
	}
  }
}


function composeAhrefs(htmlbody, locref){	
	var htmlview = htmlbody;
	var url;
	var s = 1;
	var e = 1;	
	var atags = "<a";
	var atage = ">"	
	var hvlc= htmlview.toLowerCase();
	var ahrpatt = "href=\"";	 
	var ahrview = "href=\"/stdview.html?url=";
	var atars = "target";	
	for (var s=1,e=1;s>0;s++,e++){
	    var hvlc= htmlview.toLowerCase();
		s = hvlc.indexOf(atags,s);
		e = hvlc.indexOf(atage,s+2);
		if(s<0) break;
		var tag = htmlview.substring(s,e);
		var href = getAttribute(tag,"href");
		var url = ltrim(href);
		if (!(url.indexOf("stdview.html")>=0)){
			var target = getAttribute(tag,"target");
			target = ltrim(target);
			var ap = ahrpatt + href;
			var au = ahrpatt.toUpperCase() + href;
			var av = ahrview + url;
			var aw = ahrview + getRef(locref) + url;
			
			if (((url.indexOf("\/")==0)||((url.indexOf("http")==0)&&(target=="_self"))) && (url.indexOf(".htm")>=0)){	
				
				htmlview = htmlview.replace(ap,av);
				htmlview = htmlview.replace(au,av);
			}
			
			else if(((url.indexOf("\/")!=0)) && (url.indexOf(".htm")>=0)){
				
				htmlview = htmlview.replace(ap,aw);
				htmlview = htmlview.replace(au,aw);
			}
		}
	}
	return htmlview;
}

function getAttribute(str, attr){
	var r = "";
	attr = attr + "=\"";
	var s = str.indexOf(attr);	
	if (s<0) s = str.indexOf(attr.toUpperCase());
	var e = str.indexOf("\"",s + attr.length); 	
	if (s>=0) r = str.substring(s+attr.length,e);
	return r;
}

function ltrim(stringToTrim) {
	return stringToTrim.replace(/^\s+/,"");
}

function getRef(locref){
	var sref = locref.lastIndexOf("url");
	var eref = locref.lastIndexOf("\/");
	return locref.substring(sref+4,eref) + "\/";
}


function insertHTML(html, containerid, addmethod){
  var request;
  try{
    request = getXMLHttpRequest();
   	request.onreadystatechange=function(){ loadHTML(html, containerid, addmethod);};
    //request.open('GET', url, true);
    request.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");
    request.send(null);
  }catch(e){
    alert(e);
  }
}

function loadHTML(html, containerid, addmethod){
  if (request.readyState == 4 && (request.status==200 || window.location.href.indexOf("http")==-1)){
    // TODO@:Get charset from HTTP Headers and apply it
    document.getElementById(containerid).innerHTML=html;
	if (addmethod!=null) {
		eval(addmethod);
	}
  }
}






/**
 * createCookie();
 * nos sirve para crear una cookie en el directorio C:\Documents and Settings\usr\Cookies 
 *
 * parametros:
 * - name:  identificador (nombre/id/usuario)
 * - value: valor a guardar 
 * - days:  vigencia en dias 
 *   vigencia = 0; la cookie se borra cuando se cierra el browser
 *   vigencia < 0; la cookie se borra inmediatamente
 */

function createCookie(name,value,days) {  
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000)); //tiempo en ms
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"=" + value + expires +"; path=/";
}//function createCookie





/**
 * readCookie();
 * nos sirve para ver si una cookie existe.
 * recibe como parametro el nombre/id/usuario
 * parametros:
 * - nombre de la cookie
 */

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0; i < ca.length; i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}//function readCookie





/**
 * eraseCookie();
 * nos sirve para ver eliminar una cookie.
 * recibe como parametro el nombre/id/usuario.
 * parametros:
 * - nombre de la cookie
 */

function eraseCookie(name) {
	createCookie(name,"",-1);
}//function eraseCookie





/**
 * validateCookie();
 * nos perimite validar la existencia de una cookie por medio del nombre.
 * si no encuentra el nombre de la cookie regresa un null.
 * parametros:
 * - nombre de la cookie
 */

function validateCookie(){
    createCookie('banxicoUsr','1',1);
    alert("cookie banxicoUsr creada"); 
	if(readCookie('banxicoUsr') != null){		
		//alert("es interno");
		 if(document.getElementById("tablaInterna") != null){

		 	document.getElementById('tablaInterna').style.display = '';
		 	document.getElementById('tablaExterna').style.display = 'none';
		 }
		   
		//document.getElementById('tablaInterna').style.display = '';
		//document.getElementById('tablaExterna').style.display = 'none';

	}else{
		//alert("es externo");
		document.getElementById('tablaInterna').style.display = 'none';
		document.getElementById('tablaExterna').style.display = '';
	}
	insertPage('superior.html','bm_top_frame');
	insertPage('izquierdo.html','bm_left_frame');
	insertPage('pie.html','bm_footer_frame'); 
}//function validateCookie

function addLoadEvent(func) {   
   var oldonload = window.onload;   
   if (typeof window.onload != 'function') {   
     window.onload = func;   
   } else {   
     window.onload = function() {   
       if (oldonload) {   
         oldonload();   

       }   
       func();   
     }   
   }   
}   

function buscjur1() {
	var searchvalue=document.getElementById("_userquery").value;
	if (searchvalue.substr(0,1)=='@') {
		window.open("/buscjur.html?_userquery="+searchvalue, "_blank");
		return false;
	} else return true;
}

