//viene de insert_obj.js
function InsertObj(tbl)
{

  this.tblSAVE = tbl;
  this.argsSAVE = 'args=p_Ins_Upd = \'I\'';
  this.argsRESCUE = '';
  this.arrVALIDATE = new Array();
  this.arrVALIDATE_FIELD = new Array();
  this.arrVALIDATE_FIELD_NAME = new Array();
  this.arrCTRLS = new Array();
  this.counter = 0;
  this.counterCTRLS = 0;
  this.CommitIns = '';
  this.fn_before = '';
  this.fn_after  = '';
  this.RetVal = '';
}

InsertObj.prototype.Rescatar = function(parametrosArescatar)
{
	// separados por ","
	this.argsRESCUE = '&rescatar=' + parametrosArescatar;
}

InsertObj.prototype.AddField = function(name,no_validate,value,selectorEnTipo)
{
	var tp = (value)?'':document.getElementById('a_' + name).className;
	/*
	alert(name + " - " + no_validate + " - " + value);
	*/
	if(value)
	{
	  if(typeof(value) == "string")
	  {
	    tp = '';
	  }
	  else
	  { 
	    tp = 'int';
	  }
    }
    	if (selectorEnTipo)
    	{
		tp = '';
    	}
    	else
    	{
		if(!value)
		{
			if(document.getElementById('a_' + name).tagName == 'SELECT') tp = 'int';
		}    	
    	}
	var v = (value)?value:document.getElementById('a_' + name).value;
    switch(tp)
    {
       case '':
            this.argsSAVE += ', p_' + name + ' = \'' + v + '\'';
            break;
       case 'fecha':
            this.argsSAVE += ', p_' + name + ' = \'' + v + '\'';
            break;       
       case 'int':
            if(v != "")
            {
              this.argsSAVE += ', p_' + name + ' = ' + v;
            }            
            break;
       case 'bool':
            this.argsSAVE += ', p_' + name + ' = ' + v;
            break;
       default:       
       break;    
    }
    if(!value)
    {
     this.arrCTRLS[this.counterCTRLS] = 'a_' + name;
     this.counterCTRLS++;
    }
    // si el 5to. parametro trae algo hay que correr la funcion parecidos y ofrecerlos
    //con el valor document.getElementById('a_' + name).value
    if(!no_validate)
    {
			if(!value)
			{
				this.arrVALIDATE[this.counter] = document.getElementById('a_' + name).value;
				this.arrVALIDATE_FIELD[this.counter] = 'a_' + name;
			}
			else
			{
				this.arrVALIDATE[this.counter] = value;
				this.arrVALIDATE_FIELD[this.counter] = '';
			}
			this.counter++; 
     } 
}




InsertObj.prototype.CheckALLIns = function()
{

  for(var i = 0; i < this.arrVALIDATE.length; i++)
  {

    if(this.arrVALIDATE[i] == '')
    {   
      if(this.arrVALIDATE_FIELD[i] != '')
      {
        alert("El lugar para ingresar '" +document.getElementById(this.arrVALIDATE_FIELD[i]).parentElement.parentElement.children[0].innerText  + "' está vacío.\nPor favor, ingrese el dato requerido.");
        try{ document.getElementById(this.arrVALIDATE_FIELD[i]).focus(); }catch(e){}
      }
      else
      {
      
        alert("VALUE OF VARIABLE " + this.arrVALIDATE_FIELD_NAME[i] + " IS EMPTY!")
      }
    
      return false;
    }
  }
  
  return true;
}





InsertObj.prototype.SaveIns = function()
{

  if(this.CheckALLIns())
  {
  
      //document.getElementById("tbl_form").style.visibility="hidden";
      eval(this.fn_before);
      var r = this.insDat(this.tblSAVE,this.argsSAVE);



	  if(r == "GRABACION EXITOSA!")
	  {
	    for(var i = 0;i < this.arrCTRLS.length;i++)
	    {
	     document.getElementById(this.arrCTRLS[i]).value = '';	     
	    }
	     //document.getElementById("tbl_form").style.visibility="visible";
	     eval(this.CommitIns);
	     eval(this.fn_after);
	     return true;
	  }
	  else
	  {	     
	     //document.getElementById("tbl_form").style.visibility="visible";
	     eval(this.fn_after);
	     return false;
	  }     
  }
  else
  {
	return false;
  }   
}





InsertObj.prototype.SaveIns_RetVal = function()
{
  if(this.CheckALLIns())
  {
      //document.getElementById("tbl_form").style.visibility="hidden";
      eval(this.fn_before);
      var r_2 = this.insDatRetVal(this.tblSAVE,this.argsSAVE + this.argsRESCUE);
      var rv_2 = r_2.split(',');
	  if(rv_2[0] == 'OK')
	  {    
	    for(var i = 0;i < this.arrCTRLS.length;i++)
	    {
	    }
	     //document.getElementById("tbl_form").style.visibility="visible";
	     eval(this.CommitIns);
	     eval(this.fn_after);
	     var aDevolver = rv_2[1].toString();;
	     if (rv_2.length>2)
	     {
		     for (var j=2;j<rv_2.length;j++)
		     {
			aDevolver += "," + rv_2[j].toString();
		     }
	     }
	     this.RetVal = aDevolver;
	     return aDevolver;
	  }
	  else
	  {
	     //document.getElementById("tbl_form").style.visibility="visible";
	     eval(this.fn_after);
	     return false;
	  }     
  }
  else
  {
	return false;
  }   
}
//-----------------------------------------------------
InsertObj.prototype.insDat = function(mode,params)
{
	
  var str = String(fnPOST2('../../../data/save.asp?m='+ mode + '&' + params));
  if(str != String('GRABACION EXITOSA!'))
  {
    ErrorWindow(str);
  }
  return str;
}
InsertObj.prototype.insDatRetVal = function(mode,params)
{
  var str = String(fnPOST2('../../../data/saveRetVal.asp?m='+ mode + '&' + params));
  //alert("str ->" + str);
  if(str.split(',')[0] != String('OK'))
  {
    ErrorWindow(str);
  }
  return str.toString();
}

//Hasta aca era de insert_obj.js
