var imgLoadingTag = "<center><img src=\"./img/loading.gif\"/></center>";
elPanel = function (elPanelHTML,sHeader) {
	try{
		this.elPanelHTML = elPanelHTML;
		this.sHeader = sHeader;
		this.panelWidth = "550px";
		this.miPanel = new YAHOO.widget.Panel(elPanelHTML,
								{ width: this.panelWidth,
								  fixedcenter: true,
								  close: false,
								  draggable: false,
								  modal: true,
								  visible: false,
								  zIndex : 100
								}
					);
		this.miPanel.beforeHideEvent.subscribe(this.beforeHideEvent, this, true);
		this.miPanel.setHeader(this.sHeader);
		this.miPanel.setBody(imgLoadingTag);
		this.miPanel.render(document.body);
	} catch (e) {
		elCatch(e)
	}
};
elPanel.prototype.setBody = function (miContenido){
		window.scroll(1,1);
		this.miPanel.setBody(miContenido);
};
elPanel.prototype.setHeader = function (miContenido){
		this.miPanel.setHeader(miContenido);
};
elPanel.prototype.show = function (o_Event){
		this.miPanel.cfg.setProperty("x",this.PosX);
		this.miPanel.show();
};
elPanel.prototype.render = function (donde){
		this.miPanel.render(donde);
};
elPanel.prototype.beforeHideEvent = function (o_Event, args){
		this.PosX = this.miPanel.cfg.getProperty("x");
		this.miPanel.cfg.setProperty("x",-9999);
};
elPanel.prototype.setAnchoPanel= function (ancho) {
	this.miPanel.cfg.setProperty("width",ancho);
};
elPanel.prototype.setAltoPanel= function (alto) {
	YAHOO.util.Dom.setStyle(this.miPanel.body,'height',alto);
};
elPanel.prototype.setFixedCenter= function (miBool) {
	this.miPanel.cfg.setProperty("fixedcenter",miBool);
};
elPanel.prototype.setX= function (miX) {
	this.miPanel.cfg.setProperty("x",miX);
};
elPanel.prototype.setY= function (miY) {
	this.miPanel.cfg.setProperty("y",miY);
};
elPanel.prototype.centrar= function () {
	this.miPanel.center();
};
elPanel.prototype.hide= function () {
	this.miPanel.hide();
};
elPanel.prototype.destroy= function () {
	this.miPanel.destroy();
};
// Carga Dinamica de Contenido.
var gjMakeRequestHandleSuccess = function(o){
	if(o.responseText !== undefined){
		document.getElementById('content').innerHTML = o.responseText;
		gjExecJS(document.getElementById('content'))
		gjPause(100);
		if (typeof panelWait!="undefined") {
			panelWait.destroy();
		}
		window.scrollTo(0, 0)
	}
}
var gjMakeRequestHandleFailure = function(o){
	if(o.responseText !== undefined){
		document.getElementById('content').innerHTML = "<li>Transaction id: " + o.tId + "</li>";
		document.getElementById('content').innerHTML += "<li>HTTP status: " + o.status + "</li>";
		document.getElementById('content').innerHTML += "<li>Status code message: " + o.statusText + "</li>";
		gjPause(100);
		if (typeof panelWait!="undefined") {
			panelWait.destroy();
		}
		window.scrollTo(0, 0)
	}
}
function gjMakeRequest(sUrl){
	var gjMakeRequestCallback =
	{
	  success:gjMakeRequestHandleSuccess,
	  failure:gjMakeRequestHandleFailure,
	  argument: {}
	};
	panelWait = new elPanel("body","Cargando...");
	panelWait.show();
	var request = YAHOO.util.Connect.asyncRequest('GET', sUrl, gjMakeRequestCallback);
}
function gjPause(millis){
	var date = new Date();
	var curDate = null;
	do { curDate = new Date(); }
	while(curDate-date < millis);
}
function gjExecJS(node){
	var bSaf = (navigator.userAgent.indexOf('Safari') != -1);
	var bOpera = (navigator.userAgent.indexOf('Opera') != -1);
	var bMoz = (navigator.appName == 'Netscape');

	if (!node) return;
	  /* IE wants it uppercase */
	  var st = node.getElementsByTagName('SCRIPT');
	  var strExec;

  for(var i=0;i<st.length; i++)
  {
    if (bSaf) {
      strExec = st[i].innerHTML;
      st[i].innerHTML = "";
    } else if (bOpera) {
      strExec = st[i].text;
      st[i].text = "";
    } else if (bMoz) {
      strExec = st[i].textContent;
      st[i].textContent = "";
    } else {
      strExec = st[i].text;
      st[i].text = "";
    }
    try {
      var x = document.createElement("script");
      x.type = "text/javascript";

      /* In IE we must use .text! */
      if ((bSaf) || (bOpera) || (bMoz))
        x.innerHTML = strExec;
      else x.text = strExec;

      document.getElementsByTagName("head")[0].appendChild(x);
    } catch(e) {
      alert(e);
    }
  }
}