//viene de insert_obj.js
function InsertObj(tbl)
{
  //alert("entro al insert_obj");
  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)
{
        //alert("1");
	// 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()
{
  //alert("3");
  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()
{
  //alert("4");
  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()
{
  //alert("5");
  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)
{
  //alert("6");
  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)
{
//	alert(params);
	try
	{
		var param1 = params.split("&rescatar")[0];
		var param2 = params.split("&rescatar")[1];

		param1 = replace(param1,"!","#33");
		param1 = replace(param1,"%","#37");
		param1 = replace(param1,"&","#38");
		param1 = replace(param1,"+","#43");
		param1 = replace(param1,"?","#63");
		param1 = replace(param1,"~","#126");
		param1 = replace(param1,"´","#145");
		param1 = replace(param1,"¡","#161");
		param1 = replace(param1,"ç","#162");
		param1 = replace(param1,"¨","#168");
		param1 = replace(param1,"ª","#170");
		param1 = replace(param1,"¬","#172");
		param1 = replace(param1,"º","#176");
		param1 = replace(param1,"·","#183");
		param1 = replace(param1,"¿","#191");
		param1 = replace(param1,"Á","#193");
		param1 = replace(param1,"Ä","#196");
		param1 = replace(param1,"Ç","#199");
		param1 = replace(param1,"É","#201");
		param1 = replace(param1,"Ë","#203");
		param1 = replace(param1,"Í","#205");
		param1 = replace(param1,"Ï","#207");
		param1 = replace(param1,"Ñ","#209");
		param1 = replace(param1,"Ó","#211");
		param1 = replace(param1,"Ö","#214");
		param1 = replace(param1,"Ú","#218");
		param1 = replace(param1,"Ü","#220");
		param1 = replace(param1,"á","#225");
		param1 = replace(param1,"ä","#228");
		param1 = replace(param1,"é","#233");
		param1 = replace(param1,"ë","#235");
		param1 = replace(param1,"í","#237");
		param1 = replace(param1,"ï","#239");
		param1 = replace(param1,"ñ","#241");
		param1 = replace(param1,"ó","#243");
		param1 = replace(param1,"ö","#246");
		param1 = replace(param1,"ú","#250");
		param1 = replace(param1,"ü","#252");
		param1 = replace(param1,"ÿ","#255");
		params = param1;
		if (param2 != null && param2 != "")
			params += "&rescatar" + param2;
	}
	catch(e){}
	//alert(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
