String.prototype.trim = function()
{
return this.replace(/^\s*/, "").replace(/\s*$/, "");
}

String.prototype.setCharAt = function(index, char) 
{
	if(index >= 0) 
		if(index < this.length) 
			return this.substr(0,index - 1) + char + this.substr(index + 1);
}

String.prototype.setCharUpperCase = function(index)
{
	var s
	if(index >= 0) 
		if(index < this.length) 
			{
				s = this.charAt(index).toUpperCase();
				if (index > 0) s = this.substr(0 , index) + s ;
				if (index < (this.length - 1)) s = s + this.substr( index + 1 ) ;
				return s;
			}
}

String.prototype.setCharLowerCase = function(index)
{
	if(index >= 0) 
		if(index < this.length) 
			return this.substr(0 , index) + this.charAt(index).toLowerCase() + this.substr( index + 1 );
}


String.prototype.toProprio = function () 
{
var LastChar, NewTextClear, NewText, I, L, E;

  if (this.trim().length == 0) 
    {
      return this.trim();
    }

  NewText = '';
  for (I = 0; I < this.length; I++)
    if (this.substr(I, 2) != '  ') 
      NewText = NewText + this.substr(I, 1);

  NewText= NewText.trim().toLowerCase();
  NewTextClear = NewText;

  NewTextClear = NewTextClear.replace('ã', 'a');
  NewTextClear = NewTextClear.replace('á', 'a');
  NewTextClear = NewTextClear.replace('à', 'a');
  NewTextClear = NewTextClear.replace('â', 'a');
  NewTextClear = NewTextClear.replace('ä', 'a');

  NewTextClear = NewTextClear.replace('é', 'e');
  NewTextClear = NewTextClear.replace('è', 'e');
  NewTextClear = NewTextClear.replace('ê', 'e');
  NewTextClear = NewTextClear.replace('ë', 'e');

  NewTextClear = NewTextClear.replace('í', 'i');
  NewTextClear = NewTextClear.replace('ì', 'i');
  NewTextClear = NewTextClear.replace('î', 'i');
  NewTextClear = NewTextClear.replace('ï', 'i');

  NewTextClear = NewTextClear.replace('õ', 'o');
  NewTextClear = NewTextClear.replace('ó', 'o');
  NewTextClear = NewTextClear.replace('ò', 'o');
  NewTextClear = NewTextClear.replace('ô', 'o');
  NewTextClear = NewTextClear.replace('ö', 'o');

  NewTextClear = NewTextClear.replace('ú', 'u');
  NewTextClear = NewTextClear.replace('ù', 'u');
  NewTextClear = NewTextClear.replace('û', 'u');
  NewTextClear = NewTextClear.replace('ü', 'u');

  NewTextClear = NewTextClear.replace('ç', 'c');

  LastChar = NewTextClear.charAt(0);
  NewText= NewText.setCharUpperCase(0);
	
  for (I = 1; I < NewText.length; I++)
  {
    if (!((LastChar != '\\') && (LastChar >= 'A') && (LastChar <= 'z')))
    {
      E = false;
      E = E || (NewText.substr(I, 3) == 'de '  );
      E = E || (NewText.substr(I, 3) == 'da '  );
      E = E || (NewText.substr(I, 4) == 'das ' );
      E = E || (NewText.substr(I, 3) == 'do '  );
      E = E || (NewText.substr(I, 4) == 'dos ' );
      E = E || (NewText.substr(I, 2) == 'a '   );
      E = E || (NewText.substr(I, 2) == 'e '   );
      E = E || (NewText.substr(I, 3) == 'ao '  );
      E = E || (NewText.substr(I, 4) == 'aos ' );
      if (!E) 
        NewText= NewText.setCharUpperCase(I);
    }
    LastChar = NewTextClear.charAt(I);
  }

  return NewText;
  
}

function TextBoxFormat (Objeto, Mask, EvtKeyPress, RightToLeft) 
{
	var ValuePos, MaskPos, BolMask, Key, RightToLeft, ClearValue, NewValue, ReturnValue;

	Key = 0; 

	if(document.all) 
		{ 
			Key = EvtKeyPress.keyCode; 
		}
	else 
		{ 
			Key = EvtKeyPress.which;
		}

	ClearValue = Objeto.value;
	ClearValue = ClearValue.toString().replace( "-", "" );
	ClearValue = ClearValue.toString().replace( "-", "" );
	ClearValue = ClearValue.toString().replace( ".", "" );
	ClearValue = ClearValue.toString().replace( ".", "" );
	ClearValue = ClearValue.toString().replace( ",", "" );
	ClearValue = ClearValue.toString().replace( ",", "" );
	ClearValue = ClearValue.toString().replace( "/", "" );
	ClearValue = ClearValue.toString().replace( "/", "" );
	ClearValue = ClearValue.toString().replace( ":", "" );
	ClearValue = ClearValue.toString().replace( ":", "" );
	ClearValue = ClearValue.toString().replace( "(", "" );
	ClearValue = ClearValue.toString().replace( "(", "" );
	ClearValue = ClearValue.toString().replace( ")", "" );
	ClearValue = ClearValue.toString().replace( ")", "" );
	ClearValue = ClearValue.toString().replace( " ", "" );
	ClearValue = ClearValue.toString().replace( " ", "" );
	
	NewValue = "";
	
	if (RightToLeft)
	  {
	    MaskPos = Mask.length - 1;
	    ValuePos = ClearValue.length;
	    while ((ValuePos >= 0) && (ValuePos >= 0)) 
	      {
	        BolMask =            ((Mask.charAt(MaskPos) == "-") || (Mask.charAt(MaskPos) == ".") );
	        BolMask = BolMask || ((Mask.charAt(MaskPos) == "/") || (Mask.charAt(MaskPos) == ",") );
	        BolMask = BolMask || ((Mask.charAt(MaskPos) == "(") || (Mask.charAt(MaskPos) == ")") );
	        BolMask = BolMask || ((Mask.charAt(MaskPos) == " ") || (Mask.charAt(MaskPos) == ":") );
	        if (BolMask) 
	          {
	            NewValue = Mask.charAt(MaskPos) + NewValue ;
	          }
	        else 
	          {
	            NewValue = ClearValue.charAt(ValuePos) + NewValue ;
	            ValuePos--;
	          }
	        MaskPos--;
	      }
	    MaskPos = Mask.length;
	  }
	else
	  {
	    MaskPos = 0;
	    ValuePos= 0;
	    while ((ValuePos <= ClearValue.length) && (ValuePos <= ClearValue.length)) 
	      {
	        BolMask =            ((Mask.charAt(MaskPos) == "-") || (Mask.charAt(MaskPos) == ".") );
	        BolMask = BolMask || ((Mask.charAt(MaskPos) == "/") || (Mask.charAt(MaskPos) == ",") );
	        BolMask = BolMask || ((Mask.charAt(MaskPos) == "(") || (Mask.charAt(MaskPos) == ")") );
	        BolMask = BolMask || ((Mask.charAt(MaskPos) == " ") || (Mask.charAt(MaskPos) == ":") );
	        if (BolMask) 
	          {
	            NewValue += Mask.charAt(MaskPos);
	          }
	        else 
	          {
	            NewValue += ClearValue.charAt(ValuePos);
	            ValuePos++;
	          }
	        MaskPos++; 
	      }
	  }

	if ((Key == 8) || (Key == 0))
	  {
	    return true;
	  }
	else
	  { 
	    if (NewValue.length >= Mask.length) 
	      {
	        return false;
	      }
	    else
	      if (Mask.charAt(MaskPos - 1) == "9")  
	        { 
	          ReturnValue = ( (Key > 47) && (Key < 58) );
	        } 
	      else if (Mask.charAt(MaskPos - 1) == "A")         
	        {
	          ReturnValue = ( ((Key >= 65) && (Key <= 90)) || ((Key >= 97) && (Key <= 122)) );
	        } 
	      else 
	        { 
	          ReturnValue = false;
	        } 
	  }
	
	if (ReturnValue) 
	  {
		Objeto.value = NewValue;
		return ReturnValue; 
	  }
	else
	  {
	     return ReturnValue; 
	  }
	  
}

function UpperCase(Objeto)
{
	if (Objeto.value != Objeto.value.toUpperCase())
	  Objeto.value = Objeto.value.toUpperCase();
}

