 function Inyectar(sScript, sDivRespuesta)
 {			        
	var Div = $(sDivRespuesta); 
	var req = new Request(
			{
				url:sScript
				,method:'post'
				,onSuccess:function(responseText,responseXML)
				{ Div.innerHTML = responseText; }
				,onComplete:function()
				{}
				,onRequest:function()
				{//mientra esta llendo al servidor					
					Div.innerHTML = 'Enviando...';
				}
				,onFailure:function(xhr)
				{ alert(xhr.statusText); }
			}
		);
		req.send();
 }
 
 function EnviarFormConFormCheck(formulario)
 { 
 	frmGenerico = new FormCheck(formulario.id);
	if(!frmGenerico.validateForm())
	{ return false; }
	else
	{ formulario.submit(); } 
 } 
 
 function EnviarForm(formulario)
 { formulario.submit(); }

 function EnviarFormAjax(formulario,sDivRespuesta)
 {
   var Div = $(sDivRespuesta);
   var req = new Request(
		{
			url:formulario.action
			,method:'post'
			,onSuccess:function(responseText,responseXML)
			{
			    Div.innerHTML = responseText;
            }
			,onComplete:function()
			{}
			,onRequest:function()
			{//mientra esta llendo al servidor					
				Div.innerHTML = '<span class="loading">Enviando...</span>';
			}
			,onFailure:function(xhr)
			{ alert(xhr.statusText); }
		}
	);
	req.send($(formulario.id).toQueryString());	        
 }
 
 function EnviarFormAjaxConFormCheck(formulario,sDivRespuesta,bReset)
 {
    bReset = bReset || true;
 	var frmGenerico = new FormCheck(formulario.id);
	if(!frmGenerico.validateForm())
	{ return false; }
	else
	{
       var Div = $(sDivRespuesta);
       var req = new Request(
    		{
    			url:formulario.action
    			,method:'post'
    			,onSuccess:function(responseText,responseXML)
    			{
    			  Div.innerHTML = responseText;
                  var frm = $(formulario.id);
                  frm.reset();
                  try
                  {
                    frm.getFirst('input').focus();
                  }
                  catch(err)
                  {
                    // do nothing i don't have a first element
                  }
                }
    			,onComplete:function()
    			{}
    			,onRequest:function()
    			{ Div.innerHTML = '<span class="loading">Enviando...</span>'; }
    			,onFailure:function(xhr)
    			{
    			  try
                  {
                    alert(xhr.statusText);
                  }
                  catch(err)
                  {
                    alert('La petici�n ha sido cancelada por el servidor.');
                  }
                }
    		}
    	);
    	req.send($(formulario.id).toQueryString());
    }
 }

 function EnviarFormAjaxConFormCheckJSON(formulario,sDivRespuesta,bReset,oRecaptch)
 {
    bReset = bReset || true;
    // oRecaptch = oRecaptch || Recaptcha || null;
 	var frmGenerico = new FormCheck(formulario.id);
	if(!frmGenerico.validateForm())
	{ return false; }
	else
	{
       var Div = $(sDivRespuesta);
       var req = new Request(
    		{
    			url:formulario.action
    			,method:'post'
    			,onSuccess:function(responseText,responseXML)
    			{
    			  var hash = $H(JSON.decode(responseText));
                  var frm = $(formulario.id);
                  if(hash.get('estado')==1)
                  {
                    frm.reset();
                    try
                    {
                      frm.getFirst('input').focus();
                    }
                    catch(err)
                    {
                      // do nothing i don't have a first element
                    }
                  }
                  /*
                  else
                  {
                    if(oRecaptch!=null)
                        Recaptcha.reload ();
                  }
					*/
                  Div.innerHTML = hash.get('mensaje');
                }
    			,onComplete:function()
    			{}
    			,onRequest:function()
    			{ Div.innerHTML = '<span class="loading">Enviando...</span>'; }
    			,onFailure:function(xhr)
    			{
    			  try
                  {
                    alert(xhr.statusText);
                  }
                  catch(err)
                  {
                    alert('La petici�n ha sido cancelada por el servidor.');
                  }
                }
    		}
    	);
    	req.send($(formulario.id).toQueryString());
    }
 }

 function EnviarFormAjaxConUrl(formulario,sDivRespuesta,url)
 {
 	frmGenerico = new FormCheck(formulario.id);
	if(!frmGenerico.validateForm())
	{ return false; }
	else
	{ 
	   var Div = $(sDivRespuesta); 
	   var req = new Request(
			{
				url:url
				,method:'post'
				,onSuccess:function(responseText,responseXML)
				{                                                              
				    Div.innerHTML = responseText;
                }
				,onComplete:function()
				{}
				,onRequest:function()
				{//mientra esta llendo al servidor					
					Div.innerHTML = '<img src="./images/loading.gif" border="0" /> &nbsp; Enviando...';
				}
				,onFailure:function(xhr)
				{ Sexy.alert(xhr.statusText); }
			}
		);
		req.send($(formulario.id).toQueryString());	    
    }
 } 
 
 function ReDir(url)
 { document.location = url ; } 
 
function Chekear(formulario)
{//funcion auxiliar que chekea todos los checkbox que encuentra en el formulario pasado como parametro         
   var i;
   for (i=0;i<formulario.elements.length;i++)
   {
      if(formulario.elements[i].type == "checkbox") 
      { formulario.elements[i].checked = true; }    
   }  	
}

function DesChekear(formulario)
{//funcion auxiliar que chekea todos los checkbox que encuentra en el formulario pasado como parametro
   var i;
   for (i=0;i<formulario.elements.length;i++)
   {
      if(formulario.elements[i].type == "checkbox") 
      { formulario.elements[i].checked = false; }    
   }	
}

function MostrarPagina(iRegInicio,sScript,DivRta,sParametrosPost)                      
{     
	var Div = $(DivRta); 
	var req = new Request(
			{
				url:sScript
				,method:'post'
				,onSuccess:function(responseText,responseXML)
				{ 
				    Div.innerHTML = responseText;                    
                }
				,onComplete:function()
				{}
				,onRequest:function()
				{//mientra esta llendo al servidor					
					Div.innerHTML = 'Procesando...';
				}
				,onFailure:function(xhr)
				{ alert(xhr.statusText); }
			}
		);
		req.send('&iRegInicio='+iRegInicio+sParametrosPost);  
}
/**
 * viaAjaxMoo(options)
 * rv 20110215
 * @param options
 * @return
 */
function viaAjaxMoo(options)
{
	/**
	 * options: {
	 * 		hash: query string en forma de hash
	 * 		,form: elemento form a enviar
	 * 		,idElementResp: id del elemento donde se carga la respuesta del servidor
	 * 		,idElementProg: id del elemento donde se muestra el indicador de progreso
	 * 		,loaderHtml: XHtml del indicador de progreso
	 * 		,action: url de respuesta
	 * 		,actionOnSucces: closure para indicar una actividad luego de volver del servidor
	 * }
	 */
	options.loaderHtml = options.loaderHtml || "&nbsp;<span class=\"loader-small\">&nbsp;Efectuando operacion...</span>";
	options.hash = options.hash || options.form || null;
	options.action = options.action || options.form.action;
	options.actionOnSucces = options.actionOnSucces || null;
	var Div = $(options.idElementResp);
	var XHtmlTmp = (Div!=null)?Div.innerHTML:'';
	var DivProg = $(options.idElementResp)||$(options.idElementProg);
	var oReq = new Request({
				url:options.action
				,method:'post'
				,onSuccess:function(responseText,responseXML)
				{
				    if(Div!=null)
					   Div.innerHTML = responseText;
					if(options.actionOnSucces!=null)
						options.actionOnSucces.run([responseText]);	
				}
				,onComplete:function()
				{
					// nothing to do
				}
				,onFailure:function(e)
				{
					alert('Ohh no... Ha ocurrido un problema en la solicitud enviada!!');
					if(Div!=null)
                        Div.innerHTML = XHtmlTmp;
					DivProg.innerHTML = DivProg.innerHTML || '';
				}
				,onRequest:function()
				{
					DivProg.innerHTML = options.loaderHtml;
				}
			}
	);
	if(options.hash!=null)		
		oReq.send(options.hash.toQueryString());
	else
		oReq.send();
}
