
var Pass = 0;
function fncOrdenacao(td){
  // Imagem de ordenaçao crescente
	pathAsc   = "script/sobe.gif";
	// Imagem de ordenaçao decrescente
	pathDesc   = "script/desce.gif";
	
	// Declação de variáveis
  values = new Array;
  trH    = td.parentNode;
  table  = trH.parentNode;
		
  asc    = '<img src="' + pathAsc + '">';
  desc   = '<img src="' + pathDesc + '">';
  
  // Retirando as setas de ordenaçao
	for(x=0; trH.getElementsByTagName("td")[x]; x++){
	  if(trH.getElementsByTagName("td")[x].childNodes.length > 1)
      trH.getElementsByTagName("td")[x].removeChild(trH.getElementsByTagName("td")[x].lastChild);
  }
  
  // Colocando a seta correta para cima ou para baixo
  if(Pass == 0){
	  if(td.childNodes.length > 1)
      td.removeChild(td.lastChild);
    td.innerHTML += asc;
  }
  else{
	 if(td.childNodes.length > 1)
	   td.removeChild(td.lastChild);
   td.innerHTML += desc;
  }

  
  // Encontrando a coluna selecionada
  for(x=0;trH.getElementsByTagName("td")[x]; x++){
    if(trH.getElementsByTagName("td")[x] == td){
      tdNum = x;
      break;
    }
  }
  
  // Encontrando dados da coluna selecionada
  z = 0;
  for(x=1;table.getElementsByTagName("tr")[x]; x++){
    tr = table.getElementsByTagName("tr")[x]
    for(y=0;tr.getElementsByTagName("td")[y]; y++){
      if(y == tdNum){
        td = tr.getElementsByTagName("td")[y];
	
	conteudo = td.innerText.substring(0,60);




	// Alterei aqui para ordenar a coluna de campo de moeda

	if (y == 2)
		conteudo = converte(conteudo);

	// Para utilizar esta função em outro local, basta tirar o teste acima




	values[z] = new Array(x, conteudo);
        z++;
      }
    }
  }
 
  // Encontrando a ordenação dos dados
  valuesTemp = new Array();
  for(x=0; x < values.length; x++)
    valuesTemp[x] = values[x][1];

  //Reordenando os dados
	var ordenaNumero = function(a, b){ return(a-b) };
	// Testa se a coluna é de numeros ou palavras
	if(parseInt(valuesTemp[0]))
	  valuesTemp = valuesTemp.sort(ordenaNumero);  
	else
	  valuesTemp = valuesTemp.sort();
  
	// Testa se a ordenaçao deve ser crecente ou decrescente
  if(Pass == 1){
    valuesTemp.reverse();
    Pass = 0;
  }
  else{
    Pass = 1;
  }
    
  // Reordenando array principal
  for(x=0; x<valuesTemp.length; x++){
    for(y=0; y<values.length; y++){
      Temp = new Array(values[x][0], values[x][1]);
      if(valuesTemp[x] == values[y][1]){
        values[x] = new Array(values[y][0],values[y][1]);
        values[y] = Temp;
      }
    }
  }
  
	// Cópia da tabela principal
  tableTemp = table.cloneNode(true);

  // Reordenando linhas na tabela principal
  for(x = 0; x < values.length; x++)
		table.replaceChild(tableTemp.getElementsByTagName("tr")[values[x][0]].cloneNode(true), table.getElementsByTagName("tr")[x+1]); 
}





function converte(num)
{
	
	// Converte de 1.500,00 para 1500.00 por exemplo - Retorna Float

	tamanho = num.length;
	
	for (i=0; i < tamanho; i++)
	{
		if (num.charAt(i) == ".")
			num = num.substring(0, i) + num.substring(i+1, tamanho);
	}

	for (i=0; i < tamanho; i++)
	{
		if (num.charAt(i) == ",")
			num = num.substring(0, i) + "." + num.substring(i+1, tamanho);
	}

	return (parseFloat(num));

}



