function cargarContenido(id, phpsource, param){

var ajax=false;
if (window.XMLHttpRequest) {
  ajax = new XMLHttpRequest();
} else if (window.ActiveXObject) {
  ajax = new ActiveXObject("Microsoft.XMLHttp");
}
var contenedor;
contenedor = document.getElementById(id);
ajax.open("POST", phpsource,true);
ajax.onreadystatechange=function() {
if (ajax.readyState==4) {
cadenafinal=ajax.responseText;
contenedor.innerHTML = cadenafinal;
delete ajax;
ajax = null;
}
}
ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
ajax.send(param);
}

function cargarContenidoSynch(id, phpsource, param){
var sjax=false;
if (window.XMLHttpRequest) {
  sjax = new XMLHttpRequest();
} else if (window.ActiveXObject) {
  sjax = new ActiveXObject("Microsoft.XMLHttp");
}
var contenedor;
contenedor = document.getElementById(id);
sjax.open("POST", phpsource,false);
sjax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
sjax.send(param);
scadenafinal=sjax.responseText;
contenedor.innerHTML = scadenafinal
}

function utf8_decode ( str_data ) {
 
    var tmp_arr = [], i = 0, ac = 0, c1 = 0, c2 = 0, c3 = 0;
    
    str_data += '';
    
    while ( i < str_data.length ) {
        c1 = str_data.charCodeAt(i);
        if (c1 < 128) {
            tmp_arr[ac++] = String.fromCharCode(c1);
            i++;
        } else if ((c1 > 191) && (c1 < 224)) {
            c2 = str_data.charCodeAt(i+1);
            tmp_arr[ac++] = String.fromCharCode(((c1 & 31) << 6) | (c2 & 63));
            i += 2;
        } else {
            c2 = str_data.charCodeAt(i+1);
            c3 = str_data.charCodeAt(i+2);
            tmp_arr[ac++] = String.fromCharCode(((c1 & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
            i += 3;
        }
    }
 
    return tmp_arr.join('');
}

function utf8_encode ( argString ) {

    var string = (argString+'').replace(/\r\n/g, "\n").replace(/\r/g, "\n");
 
    var utftext = "";
    var start, end;
    var stringl = 0;
 
    start = end = 0;
    stringl = string.length;
    for (var n = 0; n < stringl; n++) {
        var c1 = string.charCodeAt(n);
        var enc = null;
 
        if (c1 < 128) {
            end++;
        } else if((c1 > 127) && (c1 < 2048)) {
            enc = String.fromCharCode((c1 >> 6) | 192) + String.fromCharCode((c1 & 63) | 128);
        } else {
            enc = String.fromCharCode((c1 >> 12) | 224) + String.fromCharCode(((c1 >> 6) & 63) | 128) + String.fromCharCode((c1 & 63) | 128);
        }
        if (enc !== null) {
            if (end > start) {
                utftext += string.substring(start, end);
            }
            utftext += enc;
            start = end = n+1;
        }
    }
 
    if (end > start) {
        utftext += string.substring(start, string.length);
    }
 
    return utftext;
}
