function strtoupper( str ) {    
	return (str+'').toUpperCase(); 
}
function substr( f_string, f_start, f_length ) {
    f_string += '';
    if(f_start < 0) {
        f_start += f_string.length;
    }
    if(f_length == undefined) {
        f_length = f_string.length;
    } else if(f_length < 0){
        f_length += f_string.length;
    } else {
        f_length += f_start;
    }
    if(f_length < f_start) {
        f_length = f_start;
    }
    return f_string.substring(f_start, f_length);
}

function strlen (string) {
    var str = string+'';
    var i = 0, chr = '', lgth = 0;
 
    var getWholeChar = function (str, i) {
        var code = str.charCodeAt(i);
        var next = '', prev = '';
        if (0xD800 <= code && code <= 0xDBFF) { 
            if (str.length <= (i+1))  {
                throw 'High surrogate without following low surrogate';
            }
            next = str.charCodeAt(i+1);
            if (0xDC00 > next || next > 0xDFFF) {
                throw 'High surrogate without following low surrogate';
            }
            return str[i]+str[i+1];
        } else if (0xDC00 <= code && code <= 0xDFFF) {
            if (i === 0) {
                throw 'Low surrogate without preceding high surrogate';
            }
            prev = str.charCodeAt(i-1);
            if (0xD800 > prev || prev > 0xDBFF) { 
                throw 'Low surrogate without preceding high surrogate';
            }
            return false; 
        }
        return str[i];
    };
 
    for (i=0, lgth=0; i < str.length; i++) {
        if ((chr = getWholeChar(str, i)) === false) {
            continue;
        } 
        lgth++;
    }
    return lgth;
}


function nuevoAjax(){
    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 cargarurl(file,capan,postdata) {
    ajax = nuevoAjax();
	var rnd=Math.random();
    accionado = function () {
		var capa = document.getElementById(capan);
		if (ajax.readyState == 1) {
capa.innerHTML = '<center><img src="images/load.gif" /><br /><br /><br /><span style="color: black; font-weight: bold; font-size: 15px;">Cargando...</span></center>';
		}
		else if ((ajax.readyState == 4) && (ajax.status == 200)) {
		var g=ajax.responseText;
		var g=g.split('[JS]');
		if (g.length>0) {
		capa.innerHTML = g[0]; 
		eval(g[1]);
		}
		else { capa.innerHTML = ajax.responseText; }
		}
	}
   ajax.onreadystatechange = accionado;
   ajax.open("POST", file+'?random='+rnd,true);
   ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
   if (!postdata) { postdata=null; }
   ajax.send(postdata); 

}

function layer(archivo,ancho,alto,postdata) {
	scroll(0,0); 
	$('ver2').style.width=ancho+'px';
	$('ver2').style.height=alto+'px';
	an=parseInt($('ver2').style.width);
	al=parseInt($('ver2').style.height);
	x=(document.body.clientWidth-an)/2;
	y=(document.body.clientHeight-al)/2;
	$('ver2').style.left=x+'px';
	$('ver2').style.top=y+'px'; 
	document.documentElement.style.overflow='hidden'; 
	cargarurl(archivo,'ver2',postdata); 
	$('ver').style.display=''; 
	$('ver2').style.display='';	
}
function cerrarlayer() {
	$('ver').style.display='none';
	$('ver2').style.display='none';
	document.documentElement.style.overflow=''; 
}

function slideFolio(col){
	if ($('lastPag').value!=col) {
	var x = ((col-1)*-610)
	var folioChange = new Fx.Tween('folio', {duration:1000});
	folioChange.start('left',x);
	$('trigger'+$('lastPag').value).style.borderColor='white';
	$('lastPag').value=col;
	}
}


function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

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_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

var nav4 = window.Event ? true : false;
function sN(evt){	
var key = nav4 ? evt.which : evt.keyCode;	
return (key <= 13 || (key >= 48 && key <= 57));
}

function resetpassword(correo) {
    if (correo.indexOf('@', 0) == -1 || correo.indexOf('.', 0) == -1) { alert("Direccion de correo invalida"); $('recuperaMail').focus(); }
	else if (confirm('Se va a reestablecer la clave para esta cuenta, desea continuar?')) { 
		$('emailRecupera').value=correo; 
		darReset.submit(); 
	} 
}
