var nmbForm;
var accion_nmb
var accion_vlr
var accion_tipo
var accion_add="";
var nmbPag="";

function propiedades(obj,cont)
{
        propiedad="&tipo"+cont+"=" + obj.type;
        propiedad=propiedad+"&nombre"+cont+"=" + obj.name;
        propiedad=propiedad+"&valor"+cont+"=" + obj.value;
        propiedad=propiedad+"&desabilitado"+cont+"=" + obj.disabled;

        if(obj.id!="")
                propiedad=propiedad+"&id"+cont+"=" + obj.id;

        if(obj.align !=0)
                propiedad=propiedad+"&pocicion"+cont+"=" + obj.align;

        return propiedad;
}

function recarga(nmbForm,nmbPag)
{
        var pagina_php = false

	//document.getElementById("Mensage").style.display="Block";

        if (window.XMLHttpRequest)
        {// Si es Mozilla& Safari etc
                pagina_php = new XMLHttpRequest()
        } 
        else if (window.ActiveXObject)
        {
                // pero si es IE
                try 
                {
                        pagina_php = new ActiveXObject ("Msxml2.XMLHTTP");
                }
                catch (e)
                {
                // en caso que sea una versión antigua
                        try
                        {
                                pagina_php = new ActiveXObject ("Microsoft.XMLHTTP");
                        }
                        catch (e)
                        {}
                }
        }       
        pagina_php.onreadystatechange=function()
        { // función de respuesta
                cargarpagina(pagina_php,nmbForm)
        }
        frm=document.getElementById(nmbForm);
        pagina_php.open('POST', nmbPag, true) // asignamos los métodos open y send
        pagina_php.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
        
        var indexOPtion=0;
        var cnt_elm=document.forms[nmbForm].elements.length;
        valores="";
        
        for(index_obj=0;index_obj < cnt_elm;index_obj++)
        {
                if(document.forms[nmbForm].elements[index_obj].type=="text" || document.forms[nmbForm].elements[index_obj].type=="hidden" || document.forms[nmbForm].elements[index_obj].type=="password" )
                {
			if(document.forms[nmbForm].elements[index_obj].getAttribute("tipo")!="fckeditor")
			{
				valores=valores+propiedades(document.forms[nmbForm].elements[index_obj],index_obj);
				valores=valores+"&tamano"+index_obj+"="+document.forms[nmbForm].elements[index_obj].size;
			}
                }
                if(document.forms[nmbForm].elements[index_obj].type=="select-one")
                {
                        valores=valores+propiedades(document.forms[nmbForm].elements[index_obj],index_obj);
                        valores=valores+"&multiple"+index_obj+"="+document.forms[nmbForm].multiple;
                        valores=valores+"&tamano"+index_obj+"="+document.forms[nmbForm].elements[index_obj].length;

                        for(indexOPtion=0;indexOPtion<document.forms[nmbForm].elements[index_obj].length;indexOPtion++)
                        {
                                //alert(document.forms[nmbForm].elements[index_obj].options[indexOPtion].text)
                                valores=valores+"&"+document.forms[nmbForm].elements[index_obj].options[indexOPtion].text+"="+document.forms[nmbForm].elements[index_obj].options[indexOPtion].value;
                        }
                }
                //document.write( document.forms[nmbForm].elements[index_obj])
                if(document.forms[nmbForm].elements[index_obj].type=="button")
                {
                        valores=valores+propiedades(document.forms[nmbForm].elements[index_obj],index_obj);
                        
                        if(document.forms[nmbForm].elements[index_obj]=="[object HTMLButtonElement]")
                        {
                                btn=document.forms[nmbForm].elements[index_obj];
                                valores=valores+"&tipo"+index_obj+"=btnButton";
                                //alert(document.getElementById("_btn_"+btn.name).name);
                                valores=valores+"&texto"+index_obj+"="+btn.value;//document.getElementById("_btn_"+btn.name).innerHTML;
                                if(document.getElementById(btn.name))
                                {
                                        img=document.getElementById(btn.name);
                                        valores=valores+"&imgRuta"+index_obj+"="+img.src;
                                        valores=valores+"&imgAncho"+index_obj+"="+img.width;
                                        valores=valores+"&imgAlto"+index_obj+"="+img.height;
                                }
                        }
                }

                if( document.forms[nmbForm].elements[index_obj].type=="checkbox" )
                {
                        valores=valores+propiedades(document.forms[nmbForm].elements[index_obj],index_obj);
                        if(document.forms[nmbForm].elements[index_obj].checked==true)
                                valores=valores+"&seleccionado"+index_obj+"="+1;
                        else
                                valores=valores+"&seleccionado"+index_obj+"="+0;
                }

                if(document.forms[nmbForm].elements[index_obj].type=="radio")
                {
                        if(document.forms[nmbForm].elements[index_obj].checked==true)
                        {
                                valores=valores+propiedades(document.forms[nmbForm].elements[index_obj],index_obj);
                        }
                }
                
                valores=valores+"&__finObj"+index_obj+"=";
        }

        if(document.forms[nmbForm].getElementsByTagName)
        {
                var obj;
                elementos=document.forms[nmbForm].getElementsByTagName("btnvinculo");
                for(cont=0;cont<elementos.length;cont++,index_obj++)
                {
                        obj=elementos[cont];
                        propiedad="&tipo"+index_obj+"=" + obj.getAttribute("type");                     
                        propiedad=propiedad+"&nombre"+index_obj+"=" + obj.getAttribute("name");
                        propiedad=propiedad+"&valor"+index_obj+"=" + obj.getAttribute("value");
                        propiedad=propiedad+"&texto"+index_obj+"=" + obj.innerHTML;

                        if(obj.getAttribute("id")!="")
                                propiedad=propiedad+"&id"+index_obj+"=" + obj.getAttribute("id");
                        propiedad=propiedad+"&__finObj"+index_obj+"=";

                        valores=valores+propiedad;
                }
        }
        if(accion_nmb)
        {
                var evento="&tipo=funcion&funcion="+accion_tipo+"&objeto="+accion_nmb+"&valor="+accion_vlr+"&__accion";
                valores=valores+evento;
                evento="";
        }
        pagina_php.send(valores);

        //document.getElementById("debugger").innerHTML=valores;

        accion_tipo="";
        accion_nmb="";
        accion_add="";
        accion_vlr="";
        valores="";
        return false;
}

function cargarpagina(pagina_php,frm)   
{
        nmbForm=frm;	
        if (pagina_php.readyState == 4 && (pagina_php.status==200 || window.location.href.indexOf("http")==-1))
        {       
                var A_nmbForm=new Array();
                var A_nmbPag=new Array();
                var ipanel=0;
                texto=pagina_php.responseText.split("/*#/");
                i=0;
                while(i<texto.length)
                {
                        obj_valor=texto[i].split("#->");
                        switch(obj_valor[0])
                        {
				case "alert":
					alert(obj_valor[1]);
				break;
                                case "tbl":
					try
					{
						document.getElementById(obj_valor[1]).innerHTML="";
                                        	document.getElementById(obj_valor[1]).innerHTML=obj_valor[2];
					}
					catch(e) {}
                                break;
                                case "pnl":
                                        var panel=document.getElementById(obj_valor[1]);
                                        panel.innerHTML=obj_valor[2];
                                        if(obj_valor[5]==1)
                                        {
                                                panel.style.display="block";
                                        }
                                        else
                                                panel.style.display="none";
                                        nmbForm=obj_valor[3];
                                        nmbPag=obj_valor[4];

					A_nmbForm[ipanel]=obj_valor[3];
					A_nmbPag[ipanel++]=obj_valor[4];
                                break;
                                case "text":
                                        try
                                        {
                                        document.forms[nmbForm][obj_valor[1]].value=obj_valor[2];
                                        document.forms[nmbForm][obj_valor[1]].id=obj_valor[3];
                                        document.forms[nmbForm][obj_valor[1]].clase=obj_valor[4];
                                        document.forms[nmbForm][obj_valor[1]].align=obj_valor[5];
                                        document.forms[nmbForm][obj_valor[1]].maxlength=obj_valor[6];

					if(obj_valor[7]=="true")
                                        	document.forms[nmbForm][obj_valor[1]].disabled=true;
					else
                                        	document.forms[nmbForm][obj_valor[1]].disabled=false;

                                        document.forms[nmbForm][obj_valor[1]].size=obj_valor[8];
                                        }
                                        catch(e)
                                        {}
                                break;
                                case "btnbutton":
                                        document.forms[nmbForm][obj_valor[1]].value=obj_valor[2];
                                        document.forms[nmbForm][obj_valor[3]].innerHTML=obj_valor[5]+obj_valor[4];
                                        document.forms[nmbForm][obj_valor[1]].id=obj_valor[6];
                                        document.forms[nmbForm][obj_valor[1]].clase=obj_valor[7];
                                        document.forms[nmbForm][obj_valor[1]].align=obj_valor[8];
                                        document.forms[nmbForm][obj_valor[1]].enabled=obj_valor[9];
                                        document.forms[nmbForm][obj_valor[1]].size=obj_valor[10];
                                break;
                                case "checkbox":
                                        document.forms[nmbForm][obj_valor[1]].value=obj_valor[2];
                                        if(obj_valor[3]==0)
                                                document.forms[nmbForm][obj_valor[1]].checked=false;
                                        else
                                                document.forms[nmbForm][obj_valor[1]].checked=true;
                                        document.forms[nmbForm][obj_valor[1]].id=obj_valor[4];
                                        document.forms[nmbForm][obj_valor[1]].clase=obj_valor[5];
                                        document.forms[nmbForm][obj_valor[1]].align=obj_valor[6];
                                        document.forms[nmbForm][obj_valor[1]].enabled=obj_valor[7];
                                        //document.forms[nmbForm][obj_valor[1]].size=obj_valor[8];
                                break;
                                case "radio":
                                        try{
                                        document.forms[nmbForm][obj_valor[1]].value=obj_valor[2];

                                        if(obj_valor[3]==0)
                                                document.forms[nmbForm][obj_valor[1]].checked=false;
                                        else
                                                document.forms[nmbForm][obj_valor[1]].checked=true;

                                        //document.forms[nmbForm][obj_valor[1]].checked=obj_valor[3];
                                        document.forms[nmbForm][obj_valor[1]].id=obj_valor[4];
                                        document.forms[nmbForm][obj_valor[1]].clase=obj_valor[5];
                                        document.forms[nmbForm][obj_valor[1]].align=obj_valor[6];
                                        document.forms[nmbForm][obj_valor[1]].enabled=obj_valor[7];
                                        document.forms[nmbForm][obj_valor[1]].size=obj_valor[8];
                                        }
                                        catch(e){}
                                break;
                                case "ltb":
                                        try
                                        {

                                        cont=0;
                                        document.forms[nmbForm][obj_valor[1]].length=obj_valor[2];
                                        for(iltbl=3,cont=0;cont<obj_valor[2];iltbl++,cont++)
                                        {
                                                newOpt=new Option;
                                                newOpt.value=obj_valor[iltbl];
                                                newOpt.text=obj_valor[++iltbl];
                                                try
                                                {
                                                        document.forms[nmbForm][obj_valor[1]].options[obj_valor[++iltbl]]=newOpt;
                                                }
                                                catch (e)
                                                {break;}
                                        }
                                        document.forms[nmbForm][obj_valor[1]].value=obj_valor[iltbl];
                                        if(obj_valor[iltbl+1]=="true")
                                                document.forms[nmbForm][obj_valor[1]].disabled=true;
                                        else
                                                document.forms[nmbForm][obj_valor[1]].disabled=false;
                                        }
                                        catch(e){}
                                break;
                                case "callbacks":
                                        switch(obj_valor[2])
                                        {
                                                case "click":
                                                        try
                                                        {
								if(!document.forms[nmbForm][obj_valor[1]].onclick)
                                                                	document.forms[nmbForm][obj_valor[1]].onclick=__callback;
                                                        }
                                                        catch(e)
                                                        {
                                                                elementos=document.forms[nmbForm].getElementsByTagName("btnvinculo");
                                                                for(cont=0;cont<elementos.length;cont++,index_obj++)
                                                                {
                                                                        obj=elementos[cont];
                                                                        if(obj.getAttribute("name")==obj_valor[1])
                                                                        {
                                                                                obj.onclick=__callback;
                                                                                break;
                                                                        }
                                                                }
                                                        }
                                                break;
                                                case "change":
                                                        try
                                                        {
                                                        document.forms[nmbForm][obj_valor[1]].onchange=__callback;
                                                        }
                                                        catch(e)
                                                        {}
                                                break;
                                        }
                                break;
				case "jsFuncion":
					funciones(obj_valor[1],obj_valor[2]);
				break;
				case "div":
					try
					{
						var div=document.getElementById(obj_valor[1]);
						div.innerHTML=obj_valor[2];
					}
					catch(e)
					{
						alert(e.message)
					}
				break;
                        }
                        i++;
                }
                for(i=0;i<ipanel;i++)
                {
                        recarga(A_nmbForm[i],A_nmbPag[i]);
                }
		//document.getElementById("Mensage").style.display="none";

        }
                
}
