<!--
//script by yvoschaap.com
//freely useable
//optional link back would be very web 2.0 :)

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;
}


var urlBase = "html/a/update_utenti.php";
var formVars = "";
var changing = false;


function fieldEnter(campo,evt,idfld) {
        evt = (evt) ? evt : window.event;
        if (evt.keyCode == 13 && campo.value!="") {
                elem = document.getElementById( idfld );
                remotos = new datosServidor;
                nt = remotos.enviar(urlBase + "?fieldname=" +escape(elem.id)+ "&content="+escape(campo.value)+"&"+formVars,"");
                //remove glow
                noLight(elem);
                elem.innerHTML = nt;
                changing = false;
                return false;
        } else {
                return true;
        }


}

function fieldBlur(campo,idfld) {
        if (campo.value!="") {
                elem = document.getElementById( idfld );
                remotos = new datosServidor;
                nt = remotos.enviar(urlBase + "?fieldname=" +escape(elem.id)+ "&content="+escape(campo.value)+"&"+formVars,"");
                elem.innerHTML = nt;
                changing = false;
                return false;
        }
}

//edit field created
function cambia(actual) {
        if(!changing){
                width = widthEl(actual.id) + 20;
                height =heightEl(actual.id) + 2;
                if(width < 100)
                        width = 150;
                if(height < 1)
                        actual.innerHTML = "<input id=\""+ actual.id +"_field\" style=\"width: "+width+"px; height: "+height+"px;\" maxlength=\"254\" type=\"text\" value=\"" + actual.innerHTML + "\" onkeypress=\"return fieldEnter(this,event,'" + actual.id + "')\" onfocus=\"highLight(this);\" onblur=\"noLight(this); return fieldBlur(this,'" + actual.id + "');\" />";
                else
                        actual.innerHTML = "<textarea name=\"textarea\" id=\""+ actual.id +"_field\" style=\"width: "+width+"px; height: 50px;\" onfocus=\"highLight(this);\" onblur=\"noLight(this); return fieldBlur(this,'" + actual.id + "');\">" + actual.innerHTML + "</textarea>";

                changing = true;
        }

                actual.firstChild.focus();
}


//find all span tags with class editText and id as fieldname parsed to update script. add onclick function
function editbox_init(){
        if (!document.getElementsByTagName){ return; }
        var spans = document.getElementsByTagName("span");

        // loop through all span tags
        for (var i=0; i<spans.length; i++){
                var spn = spans[i];

                if (((' '+spn.className+' ').indexOf("editText") != -1) && (spn.id)) {
                        spn.onclick = function () { cambia(this); }
                        spn.style.cursor = "pointer";
                        spn.title = "Click to edit!";
                       }

        }


}

//crossbrowser load function
function addEvent(elm, evType, fn, useCapture)
{
  if (elm.addEventListener){
    elm.addEventListener(evType, fn, useCapture);
    return true;
  } else if (elm.attachEvent){
    var r = elm.attachEvent("on"+evType, fn);
    return r;
  } else {
    alert("Please upgrade your browser to use full functionality on this page");
  }
}

//get width of text element
function widthEl(span){

        if (document.layers){
          w=document.layers[span].clip.width;
        } else if (document.all && !document.getElementById){
          w=document.all[span].offsetWidth;
        } else if(document.getElementById){
          w=document.getElementById(span).offsetWidth;
        }
return w;
}

//get height of text element
function heightEl(span){

        if (document.layers){
          h=document.layers[span].clip.height;
        } else if (document.all && !document.getElementById){
          h=document.all[span].offsetHeight;
        } else if(document.getElementById){
          h=document.getElementById(span).offsetHeight;
        }
return h;
}

function highLight(span){
            span.parentNode.style.border = "2px solid #D1FDCD";
            span.parentNode.style.padding = "0";
            span.style.border = "1px solid #54CE43";
}

function noLight(span){
        span.parentNode.style.border = "0px";
        span.parentNode.style.padding = "2px";
        span.style.border = "0px";

}

//sets post/get vars for update

function setVarsForm(vars){
        formVars  = vars;
}

addEvent(window, "load", editbox_init);
-->