function Trim(TRIM_VALUE)
{
	if(TRIM_VALUE.length < 1)
	{
		return "";
	}
	TRIM_VALUE = RTrim(TRIM_VALUE);
	TRIM_VALUE = LTrim(TRIM_VALUE);
	if(TRIM_VALUE=="")
	{
		return "";
	}
	else
	{
		return TRIM_VALUE;
	}
}

function RTrim(VALUE)
{
	var w_space = String.fromCharCode(32);
	var v_length = VALUE.length;
	var strTemp = "";
	if(v_length < 0)
	{
		return "";
	}
	var iTemp = v_length -1;
	while(iTemp > -1)
	{
		if(VALUE.charAt(iTemp) == w_space)
		{
		}
		else
		{
			strTemp = VALUE.substring(0,iTemp +1);
			break;
		}
		iTemp = iTemp-1;
	}
	return strTemp;
}

function LTrim(VALUE)
{
	var w_space = String.fromCharCode(32);
	if(v_length < 1)
	{
		return "";
	}
	var v_length = VALUE.length;
	var strTemp = "";
	var iTemp = 0;
	while(iTemp < v_length)
	{
		if(VALUE.charAt(iTemp) == w_space)
		{
		}
		else
		{
			strTemp = VALUE.substring(iTemp,v_length);
			break;
		}
		iTemp = iTemp + 1;
	}
	return strTemp;
}

function addCommas(nStr)
{
        nStr += '';
        x = nStr.split('.');
        x1 = x[0];
        x2 = x.length > 1 ? '.' + x[1] : '';
        var rgx = /(\d+)(\d{3})/;
        while (rgx.test(x1)) {
                x1 = x1.replace(rgx, '$1' + '.' + '$2');
        }
        return x1 + x2;
}

function replaceSubstring (inputString, badString, goodString, caseSensitive )
{
	fixedReplace = " ";
	UI = inputString;
	UB = badString;
	if ((caseSensitive !=1) && (caseSensitive != true))
	{
		UI = inputString.toUpperCase();
		UB = badString.toUpperCase();
	}
	badEnd = -1;
	badLoc = UI.indexOf(UB);
	if (badLoc != -1)
	{
		for (x=1; (badLoc != -1); x++)
		{
			fixedReplace = fixedReplace + inputString.substring((badEnd + 1), badLoc) + goodString
			badEnd = badLoc + UB.length - 1;
			badLoc = UI.indexOf(UB, (badLoc + 1));
		}
		fixedReplace = fixedReplace + inputString.substring((badEnd + 1), inputString.length);
	}
	else
	{
		fixedReplace = inputString;
	}
	return fixedReplace;
}

function ValidaRUTS(campoRUT1, campoDV1, campoRUT2, campoDV2)
{
  return ValidaRUT(campoRUT1, campoDV1) && ValidaRUT(campoRUT2, campoDV2);
}

function ValidaRUT(campoRUT, campoDV)
{
  if (campoDV==undefined)
  {
    var rut = document.getElementById(campoRUT); 
    rut.value = rut.value.toUpperCase(); 
    var valor = ValidarRUT(rut.value); 
    if (valor === false)
    {
      alert("El RUT ingresado no es valido");
      //rut.focus();
      return false;
    }
    else
    {
      rut.value = valor; 
      return true;
    }  
  }
  else
  {
    var rut = document.getElementById(campoRUT); 
    var dv = document.getElementById(campoDV); 
    dv.value = dv.value.toUpperCase();
    var valor = ValidarRUT(rut.value+"-"+dv.value); 
    if (valor === false)
    {
      alert("El RUT ingresado no es valido");
      rut.value = "";
      dv.value = "";
      rut.focus();
      return false;
    }
    else
    {
      valor = valor.split("-"); 
      rut.value = valor[0];
      dv.value = valor[1];
      return true;
    }
  }
}

function ValidaRUTPersona(campoRUT, campoDV)
{
  if (campoDV==undefined)
  {
    var rut = document.getElementById(campoRUT); 
    rut.value = rut.value.toUpperCase(); 
    var valor = ValidarRUT(rut.value); 
    if (valor === false)
    {
      alert("El RUT ingresado no es valido");
      //rut.focus();
      return false;
    }
    else
    {
      aux = valor.split('-');
      aux = aux[0];
      aux = Trim(aux);
      aux = replaceSubstring(aux, ".", ""); 
      aux = parseInt(aux);
      if (aux > 50000000) 
      {
        alert("El RUT ingresado no es valido para una persona");
        return false;
      }
      else
      {
        rut.value = valor; 
        return true;
      }
    }  
  }
  else
  {
    var rut = document.getElementById(campoRUT); 
    var dv = document.getElementById(campoDV); 
    dv.value = dv.value.toUpperCase();
    var valor = ValidarRUT(rut.value+"-"+dv.value); 
    if (valor === false)
    {
      alert("El RUT ingresado no es valido");
      rut.value = "";
      dv.value = "";
      rut.focus();
      return false;
    }
    else
    {
      valor = valor.split("-"); 
      rut.value = valor[0];
      dv.value = valor[1];
      return true;
    }
  }
}

function ValidarRUT(RUT)
{
	if (Trim(RUT)!="")
	{
		RUT=Trim(RUT);
		RUT=replaceSubstring(RUT, ".", "");
		RUT=replaceSubstring(RUT, "-", "");
		RUT=Trim(RUT);
		DV=RUT.substring(RUT.length-1, RUT.length);
		RUT=RUT.substring(0, RUT.length-1);
		var suma=0;
		var digit=2;
		var aux=0;
		for (r=RUT.length-1; r>=0; r=r-1)
		{
			valor=parseInt(RUT.substring(r, r+1));
			aux=digit*valor;
			suma=suma+aux;
			digit++;
			if (digit>7)
			{
				digit=2;
			}
		}
		test=11-(suma%11);
		if (test==10)
		{
			test="K";
		}
		if (test==11)
		{
			test=0;
		}
		if (DV==test)
		{
			valido=addCommas(RUT)+"-"+DV;
		}
		else
		{
			valido=false;
		}
	}
	else
	{
		valido="";
	}
	return valido;
}

function get_html_translation_table(table, quote_style) 
{
  var entities = {}, histogram = {}, decimal = 0, symbol = '';
  var constMappingTable = {}, constMappingQuoteStyle = {};
  var useTable = {}, useQuoteStyle = {};
    
  useTable      = (table ? table.toUpperCase() : 'HTML_SPECIALCHARS');
  useQuoteStyle = (quote_style ? quote_style.toUpperCase() : 'ENT_COMPAT');
    
  constMappingTable[0]      = 'HTML_SPECIALCHARS';
  constMappingTable[1]      = 'HTML_ENTITIES';
  constMappingQuoteStyle[0] = 'ENT_NOQUOTES';
  constMappingQuoteStyle[2] = 'ENT_COMPAT';
  constMappingQuoteStyle[3] = 'ENT_QUOTES';

  if (!isNaN(useTable)) 
  {
    useTable = constMappingTable[useTable];
  }
  if (!isNaN(useQuoteStyle)) 
  {
    useQuoteStyle = constMappingQuoteStyle[useQuoteStyle];
  }

  if (useTable == 'HTML_SPECIALCHARS') 
  {
    entities['38'] = '&amp;';
    if (useQuoteStyle != 'ENT_NOQUOTES') 
    {
      entities['34'] = '&quot;';
    }
    if (useQuoteStyle == 'ENT_QUOTES') 
    {
      entities['39'] = '&#039;';
    }
    entities['60'] = '&lt;';
    entities['62'] = '&gt;';
  } 
  else 
  {
    if (useTable == 'HTML_ENTITIES') 
    {
      entities['38']  = '&amp;';
      if (useQuoteStyle != 'ENT_NOQUOTES') 
      {
        entities['34'] = '&quot;';
      }
      if (useQuoteStyle == 'ENT_QUOTES') 
      {
        entities['39'] = '&#039;';
      }
	    entities['60']  = '&lt;';
	    entities['62']  = '&gt;';
	    entities['160'] = '&nbsp;';
	    entities['161'] = '&iexcl;';
	    entities['162'] = '&cent;';
	    entities['163'] = '&pound;';
	    entities['164'] = '&curren;';
	    entities['165'] = '&yen;';
	    entities['166'] = '&brvbar;';
	    entities['167'] = '&sect;';
	    entities['168'] = '&uml;';
	    entities['169'] = '&copy;';
	    entities['170'] = '&ordf;';
	    entities['171'] = '&laquo;';
	    entities['172'] = '&not;';
	    entities['173'] = '&shy;';
	    entities['174'] = '&reg;';
	    entities['175'] = '&macr;';
	    entities['176'] = '&deg;';
	    entities['177'] = '&plusmn;';
	    entities['178'] = '&sup2;';
	    entities['179'] = '&sup3;';
	    entities['180'] = '&acute;';
	    entities['181'] = '&micro;';
	    entities['182'] = '&para;';
	    entities['183'] = '&middot;';
	    entities['184'] = '&cedil;';
	    entities['185'] = '&sup1;';
	    entities['186'] = '&ordm;';
	    entities['187'] = '&raquo;';
	    entities['188'] = '&frac14;';
	    entities['189'] = '&frac12;';
	    entities['190'] = '&frac34;';
	    entities['191'] = '&iquest;';
	    entities['192'] = '&Agrave;';
	    entities['193'] = '&Aacute;';
	    entities['194'] = '&Acirc;';
	    entities['195'] = '&Atilde;';
	    entities['196'] = '&Auml;';
	    entities['197'] = '&Aring;';
	    entities['198'] = '&AElig;';
	    entities['199'] = '&Ccedil;';
	    entities['200'] = '&Egrave;';
	    entities['201'] = '&Eacute;';
	    entities['202'] = '&Ecirc;';
	    entities['203'] = '&Euml;';
	    entities['204'] = '&Igrave;';
	    entities['205'] = '&Iacute;';
	    entities['206'] = '&Icirc;';
	    entities['207'] = '&Iuml;';
	    entities['208'] = '&ETH;';
	    entities['209'] = '&Ntilde;';
	    entities['210'] = '&Ograve;';
	    entities['211'] = '&Oacute;';
	    entities['212'] = '&Ocirc;';
	    entities['213'] = '&Otilde;';
	    entities['214'] = '&Ouml;';
	    entities['215'] = '&times;';
	    entities['216'] = '&Oslash;';
	    entities['217'] = '&Ugrave;';
	    entities['218'] = '&Uacute;';
	    entities['219'] = '&Ucirc;';
	    entities['220'] = '&Uuml;';
	    entities['221'] = '&Yacute;';
	    entities['222'] = '&THORN;';
	    entities['223'] = '&szlig;';
	    entities['224'] = '&agrave;';
	    entities['225'] = '&aacute;';
	    entities['226'] = '&acirc;';
	    entities['227'] = '&atilde;';
	    entities['228'] = '&auml;';
	    entities['229'] = '&aring;';
	    entities['230'] = '&aelig;';
	    entities['231'] = '&ccedil;';
	    entities['232'] = '&egrave;';
	    entities['233'] = '&eacute;';
	    entities['234'] = '&ecirc;';
	    entities['235'] = '&euml;';
	    entities['236'] = '&igrave;';
	    entities['237'] = '&iacute;';
	    entities['238'] = '&icirc;';
	    entities['239'] = '&iuml;';
	    entities['240'] = '&eth;';
	    entities['241'] = '&ntilde;';
	    entities['242'] = '&ograve;';
	    entities['243'] = '&oacute;';
	    entities['244'] = '&ocirc;';
	    entities['245'] = '&otilde;';
	    entities['246'] = '&ouml;';
	    entities['247'] = '&divide;';
	    entities['248'] = '&oslash;';
	    entities['249'] = '&ugrave;';
	    entities['250'] = '&uacute;';
	    entities['251'] = '&ucirc;';
	    entities['252'] = '&uuml;';
	    entities['253'] = '&yacute;';
	    entities['254'] = '&thorn;';
      entities['255'] = '&yuml;';
    } 
    else 
    {
      return false;
    }
  }
    
  for (decimal in entities) 
  {
    symbol = String.fromCharCode(decimal);
    histogram[symbol] = entities[decimal];
  }
  
  return histogram;
}

function htmlentities (string, quote_style) 
{
  var histogram = {}, symbol = '', tmp_str = '', entity = '';
  tmp_str = string.toString();
    
  if (false === (histogram = get_html_translation_table('HTML_ENTITIES', quote_style))) 
  {
    return false;
  }
    
  for (symbol in histogram) 
  {
    entity = histogram[symbol];
    tmp_str = tmp_str.split(symbol).join(entity);
  }
  
  return tmp_str;
}

function htmlspecialchars(string, txt2html)
{
  if (txt2html == null)
  {
    txt2html = false;
  }
  if (txt2html)
  {
  }
  else
  {
    string = replaceSubstring(string, "&gt;", ">"); 
    string = replaceSubstring(string, "&lt;", "<"); 
    string = replaceSubstring(string, "&quot;", "\""); 
    string = replaceSubstring(string, "&apos;", "'"); 
  }
  string = Trim(string);
  return string;
}





