	function limitar_caracteres(txarea,total){
		if(total=="")
		{
			total = 400; 
		}
		
		tam = txarea.value.length;
		str=""; 
		str=str+tam; 
		
		//Digitado.innerHTML = str; 
		//Restante.innerHTML = total - str; 
		
		if(tam>total)
		{ 
			aux = txarea.value; 
			txarea.value = aux.substring(0,total); 
			
			//Digitado.innerHTML = total; 
			//Restante.innerHTML = 0;
		}
	}

	
	function valida_cnpj(c)
	{
		var numeros, digitos, soma, i, resultado, pos, tamanho, digitos_iguais, cnpj = c.replace(/\D+/g, '');
		digitos_iguais = 1;
		if (cnpj.length != 14) 
		{
			 return false;
			 }
		
		for (i = 0; i < cnpj.length - 1; i++)
		if (cnpj.charAt(i) != cnpj.charAt(i + 1))
			 {
			 digitos_iguais = 0;
			 break;
			 }
		if (!digitos_iguais)
		{
		tamanho = cnpj.length - 2
		numeros = cnpj.substring(0,tamanho);
		digitos = cnpj.substring(tamanho);
		soma = 0;
		pos = tamanho - 7;
		for (i = tamanho; i >= 1; i--)
			 {
			 soma += numeros.charAt(tamanho - i) * pos--;
			 if (pos < 2)
				   pos = 9;
			 }
		resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;
		if (resultado != digitos.charAt(0))
		{
			 return false;
			 }
		
		tamanho = tamanho + 1;
		numeros = cnpj.substring(0,tamanho);
		soma = 0;
		pos = tamanho - 7;
		for (i = tamanho; i >= 1; i--)
			 {
			 soma += numeros.charAt(tamanho - i) * pos--;
			 if (pos < 2)
				   pos = 9;
			 }
		resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;
		if (resultado != digitos.charAt(1)){
			 return false;
			 }
		else {
		// alert('CNPJ  OK !');
		return true;
		}
		}
		else{
		return false;
		}
	}
	
	function validaData(dia, mes, ano)
	{
		if ((ano > 1900)&&(ano < 2100))
		{
			switch(mes)
			{
				case '01':
				case '03':
				case '05':
				case '07':
				case '08':
				case '10':
				case '12':
					if  (dia <= 31)
					{
						return true;
					}
					break
				case '04':
				case '06':
				case '09':
				case '11':
					if  (dia <= 30)
					{
						return true;
					}
					break
				case '02':
					
					var bissexto;
				
				/* Validando ano Bissexto / fevereiro / dia */
				if ((ano % 4 == 0) || (ano % 100 == 0) || (ano % 400 == 0))
				{
					bissexto = 1;
				}
				
				if ((bissexto == 1) && (dia <= 29))
				{
					return true;
				}
				
				if ((bissexto != 1) && (dia <= 28))
				{
					return true;
				}
				
				break;
			}
		}    
   	 	return false;
	}

	/* calcula idade da pessoa - informa data de nascimento */
	function calcular_idade(dd,mm,yy)
	{
		thedate=new Date();
		mm2=thedate.getMonth()+1;
		dd2=thedate.getDate();
		yy2=thedate.getYear();
		
		if (yy2<100)
		{
			yy2=yy2+1900;
		}
		
		yourage=yy2-yy;
		
		if (mm2<mm)
		{
			yourage=yourage-1;
		}
		
		if (mm2==mm)
		{
			if (dd2<dd)
			{
				yourage=yourage-1;
			}
		}
		
		agestring=yourage;
		
		return agestring;
	}

	function ConfirmarMudanca(endereco)
	{
		if(confirm("Você realmente deseja executar esta operação?"))
		{
			window.location.href = endereco;
		}
		else
		{
			try {
				window.stop();
			} catch (e) {
				try {
					document.execCommand('Stop');
				} catch (e) {
					alert("Você será redirecionado para a página com as informações deste registro!") ;
				}
			}
		}
	}
	
	function envia_esqueci_senha()
	{
		var oForm = document.form_esqueci_senha;
		if (verifica_form(oForm))
		{
			return true;
			//oForm.submit();
		}
		else
		{
			return false;
		}
	}
	
	function envia_form_login()
	{
		var oForm = document.form_login;
		if (verifica_form(oForm))
		{
			return true;
			//oForm.submit();
		}
		else
		{
			return false;
		}
	}
	
	function abrir_popup(url, nome, width, height)
	{
//		if (window.showModalDialog) 
//		{ 
//			window.showModalDialog(url,nome,'help:no;status:no;scroll:no;edge:raised;dialogWidth:'+width+'px;edge:raised;dialogHeight:'+height+'px');	
//		} 
//		else
//		{
			window.open(url,nome,'height='+height+',width='+width,'modal=yes');
//		}
	}
	
	//function verifica_form - Validação de Formulário
	//Author: Tiago de Carvalho
	//Data: 09/03/2007
	//Parameter: form - 'this'		
	
	function verifica_form (form)
	{
		var campos = "" ;

		for (i=0;i<form.elements.length;i++)
		{

			if(form.elements[i].id.search("ob_") != -1)
			{

				//Resseta a classe do campo
				form.elements[i].className = 'input_text' ;
				
				//Valida Preenchimento
				if(form.elements[i].value.length == 0 || form.elements[i].value == "0")
				{
					campos = campos + "- " + form.elements[i].title + "\n" ;
					form.elements[i].className = 'input_text_erro' ;
				}
	
				//Valida Campo de E-mail
				if(form.elements[i].value.length != 0 && form.elements[i].id.search("email") != -1)
				{
					campos += valida_email( form.elements[i].value , form.elements[i].title , form.elements[i] ) ;
				}
				
				//Valida Campo de Data
				//if(form.elements[i].value.length != 0 && form.elements[i].id.search("data_") != -1)
				//{
				//	campos += jValidaData( form.elements[i].value , form.elements[i].title , form.elements[i] ) ;
				//}
				
				//Valida Campo de DDD
				if((form.elements[i].value == "ddd" || form.elements[i].value.length == 0) && form.elements[i].id.search("ddd") != -1)
				{
					campos = campos + "- " + form.elements[i].title + "\n" ;
					form.elements[i].className = 'input_text_erro' ;
				}
				
				//Valida Campo de C.P.F
				if(form.elements[i].value.length != 0 && form.elements[i].id.search("cpf") != -1)
				{
					campos += jValidaCPF( form.elements[i].value , form.elements[i].title , form.elements[i] ) ;
				}

				//Valida Campo de C.N.P.J.
				if(form.elements[i].value.length != 0 && form.elements[i].id.search("cnpj") != -1)
				{
					campos += jValidaCNPJ( form.elements[i].value , form.elements[i].title , form.elements[i] ) ;
				}

			} // Fim Campo Obrigatório

		} // For
		
		if (campos.length > 0)
		{
			alert("Atenção!\nOs seguintes campos devem ser preenchidos:\n\n" + campos);
			return false;
		}
		else
		{
			return true;
		}
	}
	
	function valida_email ( email , titulo , objeto )
	{
		var mensagem = "";

		if (email.search(/^\w+((-\w+)|(\.\w+))*\@\w+((\.|-)\w+)*\.\w+$/) == -1)
		{
			objeto.className = 'input_text_erro' ;
			mensagem = "- " + titulo + " preenchido incorretamente\n";
		}

		return (mensagem);
	}
	
	//function jValidaCPF - Valida se o CPF é válido
	//Author: Tiago de Carvalho
	//Data: 09/03/2007
	//Parameter: num_cpf - form.elements[i].value
	//			 titulo  - form.elements[i].title
	//			 objeto	 - form.elements[i]
	function jValidaCPF ( num_cpf , titulo , objeto )
	{
		var mensagem = "";
		
		var CPF = num_cpf; // Recebe o valor digitado no campo
		CPF = CPF.replace("-", "");
		CPF = CPF.replace(".", "");
		CPF = CPF.replace(".", "");
		
		if((CPF=="00000000000")||(CPF=="11111111111")||(CPF=="22222222222")||(CPF=="33333333333")||(CPF=="44444444444")||(CPF=="55555555555")||(CPF=="66666666666")||(CPF=="77777777777")||(CPF=="88888888888")||(CPF=="99999999999"))
		{
			return false;
		}
		else
		{
			// Aqui começa a checagem do CPF
			var posicao, j, soma, dv, dv_informado;
			var digito = new Array(10);
			dv_informado = CPF.substr(9, 2); // Retira os dois últimos dígitos do número informado
			
			// Desemembra o número do CPF na array DIGITO
			for (j=0; j<=8; j++) 
			{
				digito[j] = CPF.substr( j, 1);
			}
			
			// Calcula o valor do 10º dígito da verificação
			posicao = 10;
			soma = 0;
			for (j=0; j<=8; j++) 
			{
				soma = soma + digito[j] * posicao;
				posicao = posicao - 1;
			}
			
			digito[9] = soma % 11;
			
			if (digito[9] < 2) 
			{
				digito[9] = 0;
			}
			else
			{
				digito[9] = 11 - digito[9];
			}
			
			// Calcula o valor do 11º dígito da verificação
			posicao = 11;
			soma = 0;
			for (j=0; j<=9; j++) 
			{
				soma = soma + digito[j] * posicao;
				posicao = posicao - 1;
			}
			
			digito[10] = soma % 11;
			
			if (digito[10] < 2) 
			{
				digito[10] = 0;
			}
			else 
			{
				digito[10] = 11 - digito[10];
			}
			
			// Verifica se os valores dos dígitos verificadores conferem
			dv = digito[9] * 10 + digito[10];
			
			if (dv != dv_informado) 
			{
				return false;
			}
		}
		
		return true;
	}

	//function jValidaCNPJ - Valida se o CNPJ é válido
	//Author: Tiago de Carvalho
	//Data: 09/03/2007
	//Parameter: num_cnpj - form.elements[i].value
	//			 titulo   - form.elements[i].title
	//			 objeto	  - form.elements[i]
	function jValidaCNPJ ( num_cnpj , titulo , objeto )
	{

		var mensagem = "";
		var CNPJ = num_cnpj
		
		CNPJ = CNPJ.toString().replace( ".", "" );
		CNPJ = CNPJ.toString().replace( ".", "" );
		CNPJ = CNPJ.toString().replace( "-", "" );
		CNPJ = CNPJ.toString().replace( "/", "" );
		
		if((CNPJ=="00000000000000")||(CNPJ=="11111111111111")||(CNPJ=="22222222222222")||(CNPJ=="33333333333333")||(CNPJ=="44444444444444")||(CNPJ=="55555555555555")||(CNPJ=="66666666666666")||(CNPJ=="77777777777777")||(CNPJ=="88888888888888")||(CNPJ=="99999999999999"))
		{
			return false;
		}
		else
		{
			var a = [];
			var b = new Number;
			var c = [6,5,4,3,2,9,8,7,6,5,4,3,2];
			
			for (j=0; j<12; j++)
			{
				a[j] = CNPJ.charAt(j);
				b += a[j] * c[j+1];
			}
			
			if ((x = b % 11) < 2) 
			{ 
				a[12] = 0 
			} 
			else 
			{ 
				a[12] = 11-x 
			}
			
			b = 0;
			
			for (y=0; y<13; y++) 
			{
				b += (a[y] * c[y]);
			}
			
			if ((x = b % 11) < 2) 
			{ 
				a[13] = 0; 
			} 
			else 
			{ 
				a[13] = 11-x; 
			}
			
			if ((CNPJ.charAt(12) != a[12]) || (CNPJ.charAt(13) != a[13]))
			{
				return false;
			} 
		}
		
		return true;
	}
	
	function atualiza_select(oSelect,id,valor,status,acao)
	{
		if (acao == 'nova opção')
		{
			// Cria nova option
			var oOption = window.opener.document.createElement('option');
			var oTexto	= window.opener.document.createTextNode(valor);
			
			// Define classe css
			oOption.className = 'input_select';
			if (status == "I")
			{
				oOption.className = 'input_select_inativo';
			}
			
			// Define valor e texto
			oOption.value = id;
			oOption.appendChild(oTexto);
			
			oSelect.appendChild(oOption);
		}
		
		if (acao == 'atualiza opção')
		{
			// Localiza opção
			for (i=0; i<oSelect.length; i++)
			{
				if (oSelect.options[i].value == id)
				{
					var oOption = oSelect.options[i];

					// Define texto
					oOption.setAttribute('text',valor);
					oOption.text = valor;
				}
			}
		}
		
		if (acao == 'atualiza status')
		{
			// Localiza opção
			for (i=0; i<oSelect.length; i++)
			{
				if (oSelect.options[i].value == id)
				{
					var oOption = oSelect.options[i];

					// Define classe css
					oOption.className = 'input_select';
					if (status == "I")
					{
						oOption.className = 'input_select_inativo';
					}
				}
			}
		}
	}
	
	function check_inativos(oCheck)
	{
		if (oCheck.checked)
		{
			oCheck.value = "S";
		}
		else
		{
			oCheck.value = "";
		}
	}


/*******************************************************************************************************************************/

	//Capturando Navegador
	if (navigator.appName.indexOf('Microsoft') != -1)
	{
		clientNavigator = "IE";
	}
		else
	{
		clientNavigator = "Other";
	}
		
	//Digitar apenas números
	function jNumero(evento)
	{
		if ( clientNavigator == "IE" )
		{
			if (evento.keyCode < 48 || evento.keyCode > 57)
			{
				return false
			}
		}
		else
		{
			if ( (evento.charCode < 48 || evento.charCode > 57) && evento.keyCode == 0 )
			{
				return false
			}
		}
 	}
	
	function pontoFlutuante(evento, objeto)
	{
		if ( clientNavigator == "IE" )
		{
			if (evento.keyCode < 48 || evento.keyCode > 57)
			{
				return false
			}
		}
		else
		{
			if ( (evento.charCode < 48 || evento.charCode > 57) && evento.keyCode == 0 )
			{
				return false
			}
		}
	}

	// Função de Máscara de Campos
	function mascaraCampos(objForm, strField, sMask, evtKeyPress) 
	{
      var i, nCount, sValue, fldLen, mskLen,bolMask, sCod, nTecla;

      if(window.event) { // Internet Explorer
        nTecla = evtKeyPress.keyCode; }
      else if(evtKeyPress.which) { // Nestcape
        nTecla = evtKeyPress.which;
      }

      sValue = objForm[strField].value;

      // Limpa todos os caracteres de formatação que
      // já estiverem no campo.
      sValue = sValue.toString().replace( "-", "" );
      sValue = sValue.toString().replace( "-", "" );
      sValue = sValue.toString().replace( ".", "" );
      sValue = sValue.toString().replace( ".", "" );
      sValue = sValue.toString().replace( "/", "" );
      sValue = sValue.toString().replace( "/", "" );
      sValue = sValue.toString().replace( "(", "" );
      sValue = sValue.toString().replace( "(", "" );
      sValue = sValue.toString().replace( ")", "" );
      sValue = sValue.toString().replace( ")", "" );
      sValue = sValue.toString().replace( " ", "" );
      sValue = sValue.toString().replace( " ", "" );
      fldLen = sValue.length;
      mskLen = sMask.length;

      i = 0;
      nCount = 0;
      sCod = "";
      mskLen = fldLen;

	  if (nTecla != 8) { // backspace
        if (sMask.charAt(i-1) == "9") { // apenas números...
          return ((nTecla > 47) && (nTecla < 58)); } // números de 0 a 9
        else { // qualquer caracter...

		
		  while (i <= mskLen) {
	        bolMask = ((sMask.charAt(i) == "-") || (sMask.charAt(i) == ".") || (sMask.charAt(i) == "/"))
	        bolMask = bolMask || ((sMask.charAt(i) == "(") || (sMask.charAt(i) == ")") || (sMask.charAt(i) == " "))
	
	        if (bolMask) {
	          sCod += sMask.charAt(i);
	          mskLen++; }
	        else {
	          sCod += sValue.charAt(nCount);
	          nCount++;
	        }
	
	        i++;
	      }
	
	      objForm[strField].value = sCod;

          return true;
        } }
      else {
        return true;
      }
    }
	
	//Máscara real
	documentall = document.all;
	
	/*
	* função para formatação de valores monetários retirada de
	* http://jonasgalvez.com/br/blog/2003-08/egocentrismo
	*/
	
	function formatamoney(c) {
		var t = this; if(c == undefined) c = 2;		
		var p, d = (t=t.split("."))[1].substr(0, c);
		for(p = (t=t[0]).length; (p-=3) >= 1;) {
				t = t.substr(0,p) + "." + t.substr(p);
		}
		return t+","+d+Array(c+1-d.length).join(0);
	}
	
	String.prototype.formatCurrency=formatamoney
	
	function demaskvalue(valor, currency){
	/*
	* Se currency é false, retorna o valor sem apenas com os números. Se é true, os dois últimos caracteres são considerados as 
	* casas decimais
	*/
	var val2 = '';
	var strCheck = '0123456789';
	var len = valor.length;
		if (len== 0){
			return 0.00;
		}
	
		if (currency ==true){	
			/* Elimina os zeros à esquerda 
			* a variável  <i> passa a ser a localização do primeiro caractere após os zeros e 
			* val2 contém os caracteres (descontando os zeros à esquerda)
			*/
			
			for(var i = 0; i < len; i++)
				if ((valor.charAt(i) != '0') && (valor.charAt(i) != ',')) break;
			
			for(; i < len; i++){
				if (strCheck.indexOf(valor.charAt(i))!=-1) val2+= valor.charAt(i);
			}
	
			if(val2.length==0) return "0.00";
			if (val2.length==1)return "0.0" + val2;
			if (val2.length==2)return "0." + val2;
			
			var parte1 = val2.substring(0,val2.length-2);
			var parte2 = val2.substring(val2.length-2);
			var returnvalue = parte1 + "." + parte2;
			return returnvalue;
			
		}
		else{
				/* currency é false: retornamos os valores COM os zeros à esquerda, 
				* sem considerar os últimos 2 algarismos como casas decimais 
				*/
				val3 ="";
				for(var k=0; k < len; k++){
					if (strCheck.indexOf(valor.charAt(k))!=-1) val3+= valor.charAt(k);
				}			
		return val3;
		}
	}
	
	function reais(obj,event) {
	
	var whichCode = (window.Event) ? event.which : event.keyCode;
	/*
	Executa a formatação após o backspace nos navegadores !document.all
	*/
	if (whichCode == 8 && !documentall) {	
	/*
	Previne a ação padrão nos navegadores
	*/
		if (event.preventDefault){ //standart browsers
				event.preventDefault();
			}else{ // internet explorer
				event.returnValue = false;
		}
		var valor = obj.value;
		var x = valor.substring(0,valor.length-1);
		obj.value= demaskvalue(x,true).formatCurrency();
		return false;
	}
	/*
	Executa o Formata Reais e faz o format currency novamente após o backspace
	*/
	FormataReais(obj,'.',',',event);
	} // end reais
	
	
	function backspace(obj,event){
	/*
	Essa função basicamente altera o  backspace nos input com máscara reais para os navegadores IE e opera.
	O IE não detecta o keycode 8 no evento keypress, por isso, tratamos no keydown.
	Como o opera suporta o infame document.all, tratamos dele na mesma parte do código.
	*/
	
	var whichCode = (window.Event) ? event.which : event.keyCode;
	if (whichCode == 8 && documentall) {	
		var valor = obj.value;
		var x = valor.substring(0,valor.length-1);
		var y = demaskvalue(x,true).formatCurrency();
	
		obj.value =""; //necessário para o opera
		obj.value += y;
		
		if (event.preventDefault){ //standart browsers
				event.preventDefault();
			}else{ // internet explorer
				event.returnValue = false;
		}
		return false;
	
		}// end if		
	}// end backspace
	
	function formatar(src, mask)
	{
	  var i = src.value.length;
	  var saida = mask.substring(0,1);
	  var texto = mask.substring(i)
		if (texto.substring(0,1) != saida)
		  {
				src.value += texto.substring(0,1);
		  }
	}
	
	function FormataReais(fld, milSep, decSep, e) {
	var sep = 0;
	var key = '';
	var i = j = 0;
	var len = len2 = 0;
	var strCheck = '0123456789';
	var aux = aux2 = '';
	var whichCode = (window.Event) ? e.which : e.keyCode;
	
	//if (whichCode == 8 ) return true; //backspace - estamos tratando disso em outra função no keydown
	if (whichCode == 0 ) return true;
	if (whichCode == 9 ) return true; //tecla tab
	if (whichCode == 13) return true; //tecla enter
	if (whichCode == 16) return true; //shift internet explorer
	if (whichCode == 17) return true; //control no internet explorer
	if (whichCode == 27 ) return true; //tecla esc
	if (whichCode == 34 ) return true; //tecla end
	if (whichCode == 35 ) return true;//tecla end
	if (whichCode == 36 ) return true; //tecla home
	
	/*
	O trecho abaixo previne a ação padrão nos navegadores. Não estamos inserindo o caractere normalmente, mas via script
	*/
	
	if (e.preventDefault){ //standart browsers
			e.preventDefault()
		}else{ // internet explorer
			e.returnValue = false
	}
	
	var key = String.fromCharCode(whichCode);  // Valor para o código da Chave
	if (strCheck.indexOf(key) == -1) return false;  // Chave inválida
	
	/*
	Concatenamos ao value o keycode de key, se esse for um número
	*/
	fld.value += key;
	
	var len = fld.value.length;
	var bodeaux = demaskvalue(fld.value,true).formatCurrency();
	fld.value=bodeaux;
	
	/*
	Essa parte da função tão somente move o cursor para o final no opera. Atualmente não existe como movê-lo no konqueror.
	*/
	  if (fld.createTextRange) {
		var range = fld.createTextRange();
		range.collapse(false);
		range.select();
	  }
	  else if (fld.setSelectionRange) {
		fld.focus();
		var length = fld.value.length;
		fld.setSelectionRange(length, length);
	  }
	  return false;
	
	}
	
/**
* Javascript prototypes - String.pad() and Number.format()
* Carlos Reche (carlosreche@yahoo.com)
*/
String.PAD_LEFT  = 0;
String.PAD_RIGHT = 1;
String.PAD_BOTH  = 2;

String.prototype.pad = function(size, pad, side) {
  var str = this, append = "", size = (size - str.length);
  var pad = ((pad != null) ? pad : " ");
  if ((typeof size != "number") || ((typeof pad != "string") || (pad == ""))) {
    throw new Error("Wrong parameters for String.pad() method.");
  }
  if (side == String.PAD_BOTH) {
    str = str.pad((Math.floor(size / 2) + str.length), pad, String.PAD_LEFT);
    return str.pad((Math.ceil(size / 2) + str.length), pad, String.PAD_RIGHT);
  }
  while ((size -= pad.length) > 0) {
    append += pad;
  }
  append += pad.substr(0, (size + pad.length));
  return ((side == String.PAD_LEFT) ? append.concat(str) : str.concat(append));
}

Number.prototype.format = function(d_len, d_pt, t_pt) {
  var d_len = d_len || 0;
  var d_pt = d_pt || ".";
  var t_pt = t_pt || ",";
  if ((typeof d_len != "number")
    || (typeof d_pt != "string")
    || (typeof t_pt != "string")) {
    throw new Error("wrong parameters for method 'String.pad()'.");
  }
  var integer = "", decimal = "";
  var n = new String(this).split(/\./), i_len = n[0].length, i = 0;
  if (d_len > 0) {
    n[1] = (typeof n[1] != "undefined") ? n[1].substr(0, d_len) : "";
    decimal = d_pt.concat(n[1].pad(d_len, "0", String.PAD_RIGHT));
  }
  while (i_len > 0) {
    if ((++i % 3 == 1) && (i_len != n[0].length)) {
      integer = t_pt.concat(integer);
    }
    integer = n[0].substr(--i_len, 1).concat(integer);
  }
  return (integer + decimal);
}

function checkMail(mail)
{
	var er = new RegExp(/^[A-Za-z0-9_\-\.]+@[A-Za-z0-9_\-\.]{2,}\.[A-Za-z0-9]{2,}(\.[A-Za-z0-9])?/);
	if(typeof(mail) == "string")
	{
		if(er.test(mail)){ return true; }
	}
	else if(typeof(mail) == "object")
	{
		if(er.test(mail.value))
		{
			return true;
		}
	}
	else
	{
		return false;
	}
}

function formataMoedaReal(num)
{
	x = 0;

	if(num<0)
	{
		num = Math.abs(num);
		x = 1;
	}

	if(isNaN(num)) num = "0";
	cents = Math.floor((num*100+0.5)%100);

	num = Math.floor((num*100+0.5)/100).toString();

	if(cents < 10) cents = "0" + cents;

	for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
	num = num.substring(0,num.length-(4*i+3))+'.'+num.substring(num.length-(4*i+3));   ret = num + ',' + cents;   if (x == 1) ret = ' - ' + ret;return ret;
}