// Esta es para llamado de datos remotos via xmlHttpRequest
//var idr=281;
function datosServidor() {
};
datosServidor.prototype.iniciar = function() {
	try {
		// Mozilla / Safari
		this._xh = new XMLHttpRequest();
	} catch (e) {
		// Explorer
		var _ieModelos = new Array(
		'MSXML2.XMLHTTP.5.0',
		'MSXML2.XMLHTTP.4.0',
		'MSXML2.XMLHTTP.3.0',
		'MSXML2.XMLHTTP',
		'Microsoft.XMLHTTP'
		);
		var success = false;
		for (var i=0;i < _ieModelos.length && !success; i++) {
			try {
				this._xh = new ActiveXObject(_ieModelos[i]);
				success = true;
			} catch (e) {
				// Implementar manejo de excepciones
			}
		}
		if ( !success ) {
			// Implementar manejo de excepciones, mientras alerta.
			return false;
		}
		return true;
	}
}

datosServidor.prototype.ocupado = function() {
	estadoActual = this._xh.readyState;
	return (estadoActual && (estadoActual < 4));
}

datosServidor.prototype.procesa = function() {
	if (this._xh.readyState == 4 && this._xh.status == 200) {
		this.procesado = true;
	}
}

datosServidor.prototype.enviar = function(urlget,datos) {
	if (!this._xh) {
		this.iniciar();
	}
	if (!this.ocupado()) {
		this._xh.open("GET",urlget,false);
		this._xh.send(datos);
		if (this._xh.readyState == 4 && this._xh.status == 200) {
			return this._xh.responseText;
		}
		
	}
	return false;
}


// Este es un acceso rapido, le paso la url y el div a cambiar
function _gr(reqseccion,divcont) {
	remotos = new datosServidor;
	nt = remotos.enviar(reqseccion,"");
	document.getElementById(divcont).innerHTML = nt;
}

// Esta es para generar un base64 encoding igual al de php, lo uso porque puede haber caracteres
// especiales en el contenido, y me parece más seguro mandarlo codificado
// Además de que ofusca un poco la forma de llamado directo a la URL

function base64() {
}
base64.chars = new Array('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','0','1','2','3','4','5','6','7','8','9','+','/');
base64.cadena = "";
base64.cuenta = 0;
base64.setCadena = function (str){
    base64.cadena = str;
    base64.cuenta = 0;
}
base64.read = function (){    
    if (!base64.cadena) return "END_OF_INPUT";
    if (base64.cuenta >= base64.cadena.length) return "END_OF_INPUT";
    var c = base64.cadena.charCodeAt(base64.cuenta) & 0xff;
    base64.cuenta++;
    return c;
}
base64.prototype.encode = function (str){
    base64.setCadena(str);
    var result = '';
    var inBuffer = new Array(3);
    var lineCount = 0;
    var done = false;
    while (!done && (inBuffer[0] = base64.read()) != "END_OF_INPUT"){
        inBuffer[1] = base64.read();
        inBuffer[2] = base64.read();
        result += (base64.chars[ inBuffer[0] >> 2 ]);
        if (inBuffer[1] != "END_OF_INPUT"){
            result += (base64.chars [(( inBuffer[0] << 4 ) & 0x30) | (inBuffer[1] >> 4) ]);
            if (inBuffer[2] != "END_OF_INPUT"){
                result += (base64.chars [((inBuffer[1] << 2) & 0x3c) | (inBuffer[2] >> 6) ]);
                result += (base64.chars [inBuffer[2] & 0x3F]);
            } else {
                result += (base64.chars [((inBuffer[1] << 2) & 0x3c)]);
                result += ('=');
                done = true;
            }
        } else {
            result += (base64.chars [(( inBuffer[0] << 4 ) & 0x30)]);
            result += ('=');
            result += ('=');
            done = true;
        }
        lineCount += 4;
        if (lineCount >= 76){
            result += ('\n');
            lineCount = 0;
        }
    }
    return result;
}
b64 = new base64;



// Aqui convertimos el texto en un input
function cambia(nn,actual,idr) {
	elem = document.getElementById("cont" + nn + "top" );
	if (nn<100&& nn!=0 ){ // tipo 1 es una simple linea
			  elem.innerHTML = "<input class=\"fondoafiliados\" maxlength=\"255\" type=\"text\" value=\"" + actual.innerHTML + "\" size=\"35\" onkeypress=\"return guardaEnter(this,event," + nn + ","+ idr +")\" onblur=\"return guardaBlur(this," + nn + ","+ idr +")\" />";	
			//elem.innerHTML = "<input class=\"mystyle1\" cols=\"45\" rows=\"1\" value=\""+ actual.innerHTML + "\"< size=\"20\" onkeypress=\"return guardaEnter(this,event," + nn + ","+ idr +")\" onblur=\"return guardaBlur(this," + nn + ","+ idr +")\">  "+ actual.innerHTML + "  </textarea>";
				}
	/*		
	if (nn==0){ // tipo 2 es un campo de password
	 elem.innerHTML = "<input class=\"mystyle1\" maxlength=\"255\" type=\"password\" value=\"" + actual.innerHTML + "\" size=\"25\" onkeypress=\"return guardaEnter(this,event," + nn + ","+ idr +")\" onblur=\"return guardaBlur(this," + nn + ","+ idr +")\" />";	
	}
	*/
	if (nn>100){ // tipo 3 es un campo multilinea

	 // elem.innerHTML = '<textarea class=\"mystyle1\" rows=\"4\" cols=\"45\"    value=\"" + actual.innerHTML + "\" size=\"25\" onkeypress=\"return guardaEnter(this,event," + nn + ","+ idr +")\" onblur=\"return guardaBlur(this," + nn + ","+ idr +")\"  >'+actual.innerHTML+'</textarea>';
     elem.innerHTML = "<textarea class=\"fondoafiliados\" maxlength=\"255\" rows=\"6\" cols=\"50\"    value=\"" + actual.innerHTML + "\" size=\"25\" onkeypress=\"return guardaEnter(this,event," + nn + ","+ idr +")\" onblur=\"return guardaBlur(this," + nn + ","+ idr +")\"  >"+ actual.innerHTML + "</textarea>";
	//alert('actual.innerHTML='+actual);
//<textarea name="textarea" cols="45" rows="6"></textarea>
	}
	
	if (nn==0){ // tipo 3 es un campo multilinea

	 // elem.innerHTML = '<textarea class=\"mystyle1\" rows=\"4\" cols=\"45\"    value=\"" + actual.innerHTML + "\" size=\"25\" onkeypress=\"return guardaEnter(this,event," + nn + ","+ idr +")\" onblur=\"return guardaBlur(this," + nn + ","+ idr +")\"  >'+actual.innerHTML+'</textarea>';
	 alert('idr='+idr);
      elem.innerHTML = "<input class=\"fondoafiliados\" name=\"checkbox\" type=\"checkbox\" value=\"" + actual.innerHTML + "\" size=\"20\" onkeypress=\"return guardaEnter(this,event," + nn + ","+ idr +")\" onblur=\"return guardaBlur(this," + nn + ","+ idr +")\" checked " + actual.innerHTML + "/>";	
	//alert('idr='+idr); 
	 
//<input name="checkbox" type="checkbox" value=\"checked\" checked>
	}
	
elem.firstChild.focus();
}

//Estas dos son para guardar

var urlBase = "../../includes/functions/guardamysql_reg_full.php?coded=";


function guardaEnter(campo,evt,idfld,idr) {
	evt = (evt) ? evt : window.event;
	//if (evt.keyCode == 13 && campo.value!="") {
		if (evt.keyCode == 13 ) {
		campo.value = campo.value.replace("/\|/","");
		elem = document.getElementById("cont" + idfld + "top");
		remotos = new datosServidor;
		//nt = remotos.enviar(urlBase + escape((elem.className + "|" + campo.value + "|" + idr)),"");
		//alert('idr= '+idr);
		nt = remotos.enviar(urlBase + escape(b64.encode(elem.className + "|" + campo.value + "|" + idr)),"");
		elem.innerHTML = "<span ondblclick=\"cambia(" + idfld + ",this," + idr + ");\">" + nt + "</span>";
		//elem.innerHTML = urlBase + escape(b64.encode(elem.className + "|" + campo.value));
		return false;
	} else {
		return true;
	}
}

function guardaBlur(campo,idfld,idr) {
	//alert('idr= '+idr);
	//if (campo.value!="") {
		campo.value = campo.value.replace("/\|/","");
		elem = document.getElementById("cont" + idfld + "top");
		remotos = new datosServidor;
		//alert('paso por aqui= '+campo);
		//nt = remotos.enviar(urlBase + escape((elem.className + "|" + campo.value + "|" + idr)),"");
		nt = remotos.enviar(urlBase + escape(b64.encode(elem.className + "|" + campo.value + "|" + idr)),"");
		elem.innerHTML = "<span ondblclick=\"cambia(" + idfld + ",this," + idr + ");\"></span>";
		elem.firstChild.innerHTML = nt;
		return false;
	//}
}


