var tagScript = '(?:<script.*?>)((\n|\r|.)*?)(?:<\/script>)';
String.prototype.evalScript = function() {
  return (this.match(new RegExp(tagScript, 'img')) || []).evalScript();
};

String.prototype.stripScript = function() {
  return this.replace(new RegExp(tagScript, 'img'), '');
};

String.prototype.extractScript = function() {
  var matchAll = new RegExp(tagScript, 'img');
	//alert(this.match(matchAll) || []);
  return (this.match(matchAll) || []);
};

Array.prototype.evalScript = function(extracted) {
  var s=this.map(function(sr){
    var sc=(sr.match(new RegExp(tagScript, 'im')) || ['', ''])[1];
 //eval(sc);
	//if(window.execScript){
    //window.execScript(sc);
 //}
//else
       //{
    window.setTimeout(sc,0);
//}
  });
  return true;
};

Array.prototype.map = function(fun) {
  if(typeof fun!=="function"){return false;}
  var i = 0, l = this.length;
  for(i=0;i<l;i++) {
    fun(this[i]);
  }
  return true;
};

function creaAjax(){
  var objetoAjax=false;
  try {
  /*Para navegadores distintos a internet explorer*/
    objetoAjax = new ActiveXObject("Msxml2.XMLHTTP");
  } catch (e) {
    try {
    /*Para explorer*/
      objetoAjax = new ActiveXObject("Microsoft.XMLHTTP");
    } catch (E) {
      objetoAjax = false;
    }
  }
  if (!objetoAjax && typeof XMLHttpRequest!='undefined') {
    objetoAjax = new XMLHttpRequest();
  }
  return objetoAjax;
}

function FAjax (url,capa,valores,metodo) {
  var ajax=creaAjax();
  var capaContenedora = document.getElementById(capa);
  /*Creamos y ejecutamos la instancia si el metodo elegido es POST*/
  if(metodo.toUpperCase()=='POST'){
    ajax.open ('POST', url, true);
    ajax.onreadystatechange = function() {
    if (ajax.readyState==1) {
     //capaContenedora.innerHTML="Cargando...";
	} else if (ajax.readyState==4){
      if(ajax.status==200) {
	    var scs=ajax.responseText.extractScript();    //capturamos los scripts	  
        document.getElementById(capa).innerHTML=ajax.responseText.stripScript();    //eliminamos los scripts... ya son innecesarios
		altura();
		crearScripts(scs);
      } else if(ajax.status==404) {
		capaContenedora.innerHTML = "La direcci&oacute;n no existe";
      } else {
		capaContenedora.innerHTML = "Error: "+ajax.status;
      }
    }
  }
  ajax.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
  ajax.send(valores);
  return;
  }
/*Creamos y ejecutamos la instancia si el metodo elegido es GET*/
  if (metodo.toUpperCase()=='GET'){
    ajax.open ('GET', url, true);
    ajax.onreadystatechange = function() {
    if (ajax.readyState==1) {
      //capaContenedora.innerHTML="Cargando.......";
    } else if (ajax.readyState==4){
      if(ajax.status==200){
	    var scs=ajax.responseText.extractScript();    //capturamos los scripts
        document.getElementById(capa).innerHTML=ajax.responseText.stripScript();    //eliminamos los scripts... ya son innecesarios
		altura();
		crearScripts(scs);
      } else if(ajax.status==404) {
	    capaContenedora.innerHTML = "La direcci&oacute;n no existe";
      } else {
		capaContenedora.innerHTML = "Error: "+ajax.status;
      }
    }
  }
  ajax.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
  ajax.send(null);
  return
  }
} 

function crearScripts(scripts) {
	mydiv = document.getElementById("contScripts");
	mydiv.innerHTML = '<a id="top" name="top">&nbsp;</a>';
	num=scripts.length;
	for (x=0; x<num; x++) {
		mydiv.innerHTML += scripts[x];
	}
	var elementos = mydiv.getElementsByTagName('script');
	for(i=0;i<elementos.length;i++) {
		var elemento = elementos[i];
		nuevoScript = document.createElement('script');
		nuevoScript.text = elemento.innerHTML;
		nuevoScript.type = 'text/javascript';
		if(elemento.src!=null && elemento.src.length>0)
			{nuevoScript.src = elemento.src;}
		elemento.parentNode.replaceChild(nuevoScript,elemento);
	}
	//document.write('<p>'+document.getElementById("contScripts").innerHTML+'</p>');
	//alert(document.getElementById("contScripts").innerHTML);
}

function encadenarVars(formid){
	var formulario = document.getElementById(formid);
	var longitudFormulario = formulario.elements.length;
	var cadena = ""
	var sepCampos = ""
	for (var i=0; i < longitudFormulario; i++) {
		if (!((formulario.elements[i].type=="radio" || formulario.elements[i].type=="checkbox") && formulario.elements[i].checked==false)) {
			//alert(formulario.elements[i].value);
			cadena += sepCampos+formulario.elements[i].name+'='+formulario.elements[i].value;
		    sepCampos="&";
		}
	}
	//alert(cadena);
	return (cadena);
}