// Autor: Antonio Molina
// Fecha: 02/10/2000
// Proyecto: 
// Modulo: 
// Prefijo: 
// Tipo: Plug-In

function fc_onchange(obj, formato)
{
obj.value = fc_onchange_val(obj, formato);
}

function onchange_any(obj)
{
var typ = typ_obj(obj);
//var arr = obj.name.split(typ);
var tmp = onchange_val(obj);
}

function typ_obj(obj)
{
//switch (obj.type.toLowerCase()){
switch (obj.type){
case 'text':
     return('_txt_');
case 'checkbox':
     return('_chk_');
case 'radio':
     return('_rad_');
case 'select-one':
     return('_sel_');
default:
     alert('El tipo "' + obj.type + '" del objeto "' + obj.name + '" no es valido');
     return('');
}
}

function fc_onchange_val(obj, formato)
{
if(formato=='') return;

//switch (obj.format.toLowerCase()){
switch (formato.toLowerCase()){
case 'string':
     return onchange_String(obj);
case 'integer':
     return onchange_Integer(obj);
case 'date':
     return onchange_Date(obj);
case 'rut':
     return onchange_Rut(obj);
case 'currency':
     return onchange_Currency(obj);
case 'idem':
     return obj.value;
case 'bit':
     return obj.checked?1:0;
case 'percent':
     return onchange_Percent(obj);
case 'day':
	 var fld = ((obj.value>=1 && obj.value<=31)?obj.value:1);
	 obj.value = fld;
     return(fld);
case 'year':
	 var fld = ((obj.value>=1900 && obj.value<=9999)?obj.value:1900);
	 obj.value = fld;
     return(fld);
default:
     alert('El formato "' + obj.format + '" del objeto "' + obj.name + '" no es valido');
     return obj.value;
}
}

function onchange_val(obj, formato)
{
if(obj.format=='') return;

//switch (obj.format.toLowerCase()){
switch (obj.format){
case 'string':
     return onchange_String(obj);
case 'integer':
     return onchange_Integer(obj);
case 'date':
     return onchange_Date(obj);
case 'rut':
     return onchange_Rut(obj);
case 'currency':
     return onchange_Currency(obj);
case 'idem':
     return obj.value;
case 'bit':
     return obj.checked?1:0;
case 'percent':
     return onchange_Percent(obj);
case 'day':
	 var fld = ((obj.value>=1 && obj.value<=31)?obj.value:1);
	 obj.value = fld;
     return(fld);
case 'year':
	 var fld = ((obj.value>=1900 && obj.value<=9999)?obj.value:1900);
	 obj.value = fld;
     return(fld);
default:
     alert('El formato "' + obj.format + '" del objeto "' + obj.name + '" no es valido');
     return obj.value;
}
}


function onchange_String(obj)
{ // Aca se deben filtrar los caracteres ('"|_)
var fld = obj.value;
var arr;

arr = fld.split("'");
fld = arr.join('');
arr = fld.split('"');
fld = arr.join('');
arr = fld.split('|');
fld = arr.join(' ');
arr = fld.split('_');
fld = arr.join(' ');

obj.value = fld;
return(fld);
}

function onchange_Percent(obj)
{
var fld = getNumber(obj.value);
obj.value = getFormNumber(fld);
return(fld/100);
}

function onchange_Currency(obj)
{

var fld = getNumberFloat(0+obj.value);

fld = fld + '';
var arr = fld.split(".");

if(!isNaN(parseInt(obj.value))){       // Largo MAXIMO 9 Ent
  var max = 0+parseInt(obj.value);
  if(arr[0].length > max){arr[0] = arr[0].substring(arr[0].length-max,arr[0].length)}
}
fld = arr[0];

if(arr.length>1){
  if(!isNaN(obj.dec)){     // Largo MAXIMO 2 Dec
    var max = 0+obj.dec;
    if(arr[1].length > max){arr[1] = arr[1].substring(0,max)}
  }
  fld = fld + "." + arr[1];
}

if(arr.length>1){fld = getFormNumberFloat(fld)}
else{fld = getFormNumber(fld)}

//////fld = getFormNumberFloat(fld);
//obj.value = fld;
return(fld);
}

function onchange_Integer(obj)
{
var fld = getNumber(0+obj.value);

fld = fld + '';

if(!isNaN(parseInt(obj.value))){       // Largo MAXIMO 9 Ent
  var max = 0+parseInt(obj.value);

  if(fld.length > max){fld = fld.substring(fld.length-max,fld.length)}
}

fld = getFormNumber(fld);
//obj.value = fld;
return(fld);
}

function onchange_Date(obj)
{
var fld = obj.value;

if(!validDate(fld, '/')){
  alert('Debe ingresar una fecha valida\n\nPor Ej:\n\t"01/01/1900"');
  obj.focus();
}

obj.value = fld;
return(fld);
}

function onchange_Rut(obj)
{
var fld = new Object();
format(fld, obj);

return(fld.value);
}

