//-----------------------
//Cria um objeto em Ajax
//-----------------------
function Get_ObjAjax(){
  try {
    // Firefox, Opera 8.0+, Safari
    return new XMLHttpRequest();
  }
  catch (e) {
    // Internet Explorer
    try {
      return new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch (e) {
      try {
        return new ActiveXObject("Microsoft.XMLHTTP");
      }
      catch (e) {
        alert("O sistema utiliza tecnologia AJAX, o seu browser não suporta esta tecnologia.\n Faça uma atualização!");
        return false;
      }
    }
  }
}

//-----------------------------------------------------------------------------------------
//Chama o carregamento de uma página em AJAX
// input: url - página a ser chamada.
//        campo_dados - campo a ser carregado: ser o id começar com "txt" carrrega o texto; 
//                      caso contrário, carrega um valor para o campo.
//-----------------------------------------------------------------------------------------
function ajaxFunction(url, campo_dados) {
  var xmlHttp = Get_ObjAjax();
  
  if(xmlHttp){
	  xmlHttp.onreadystatechange = function() {
		  if(xmlHttp.readyState==4) {
			if(campo_dados.substring(0,3) == "txt")
				document.getElementById(campo_dados).innerHTML = xmlHttp.responseText;
			else
				document.getElementById(campo_dados).value = xmlHttp.responseText;
		  }
	  }
  }

  xmlHttp.open("GET",url,true);
  xmlHttp.send(null);
}

//--------------------------
//Limpa os Objetos TPesquisa
//--------------------------
function Limpa_TPesq(obj1, obj2){
	if(obj1.value.length == 0)
	   obj2.value = "";
}

//---------------------
//Muda a cor dos inputs
//---------------------
function Change_Color(object, bg) {
  if (object.style) object.style.backgroundColor = bg;
}

function CVDiv(obj_img, name, nesconde){
	var node = document.getElementById(name);
	var nextDIV = node.nextSibling;

	while(nextDIV.nodeName != "DIV") 
		nextDIV = nextDIV.nextSibling;

	if (nextDIV.style.display == 'none'){
		nextDIV.style.display = 'block';
		Effect.SlideDown(nesconde,{queue:{scope:'myscope', position:'end', limit: 1}});
		obj_img.src = getImgDirectory(obj_img.src) + "../Imagens/seta-baixo.gif";
	}
	else{
		nextDIV.style.display = 'none';
		Effect.SlideUp(nesconde,{queue:{scope:'myscope', position:'end', limit: 1}});
		obj_img.src = getImgDirectory(obj_img.src) + "../Imagens/seta-lado.gif";
	}
}

//-------------------------------
//Busca o diretório de uma imagem
//-------------------------------
function getImgDirectory(source) {
	return source.substring(0, source.lastIndexOf('/') + 1);
}

//-----------------------------
//Cria o Drag/Drop de um objeto
//-----------------------------
function CriaDragDrop(name){
  new Draggable(name,{scroll:window,handle:name+'move'});
}

//--------------------------
//Muda a classe de um objeto
//--------------------------
function Muda_Classe(obj, classe){
	obj.className = classe;
}

//---------------------------------------------------
//Função que deixa digitar apenas números em um input
//---------------------------------------------------
function Apenas_Numeros(eventObj, obj){ 
	var keyCode 
	
	if (document.all)
		keyCode=eventObj.keyCode 
	else
		keyCode=eventObj.which 

	var str= obj.value 

	if((keyCode<48 || keyCode >=58))
		return false 


	return true
} 

//-----------------------------------------------------------
//Função que retira caracteres especiais de um valor de input
//-----------------------------------------------------------
function Retirar_Caracteres_Esp(valor){
	var val = valor;
	
	for(i=0; i<10; i++)
		val = val.replace(".","");

	for(i=0; i<10; i++)
		val = val.replace("-","");

	for(i=0; i<10; i++)
		val = val.replace("/", "");
	
	return val;
}

//--------------------------------------------------
//Função que seleciona um valor passado de um select
//--------------------------------------------------
function Select_Option(value,list){
// Check if the value is a number
	count=0
	found=false
// Check if exist some option with the required code
	for(count=0; count < list.options.length; count++)
	{	
		if (value==list.options[count].value)
		{
			found=true
			break
		}
	}
// If exist, select. Else, clear the select
	if (found)
		list.options[count].selected=true 
	else 
		list.options[0].selected=true 
}

//---------------------------------
//Função para abrir uma nova janela
//---------------------------------
function Pesquisar(page, _width, _height, dis_left, dis_top){
	window.open(page,"","toolbar=no,location=no,directories=no,status=no,scrollbars=yes,menubar=no,resizable=no,width="+_width+",height="+_height+",top="+dis_top+",left="+dis_left);
}

//FUNCTION THAT PUT '/' IN CORRECT POSITION IN A DATE
function Automatic_Date(eventObj, obj){
	var keyCode 
	
	if (document.all)
		keyCode=eventObj.keyCode 
	else
		keyCode=eventObj.which 

	if(keyCode==8)
		return;
	
	if(obj.value.length == 2 || obj.value.length == 5)
		obj.value += "/";
}

// VALIDATION DATES
function Verify_Date(value){
	error= ""
	error_day= "Dia Inválido; ";
	error_month= "Mês Inválido; ";
	error_year= "Ano Inválido;";
	
	if ( (value.charAt(2)=="/")&&(value.charAt(5)=="/") ){
 
		// Day
		day= value.substring(0,2)
		if (!isNaN(day)){ 
			
			day = parseInt(day,10)
			
			if ( (day<1) || (day>31) )
				error+= error_day;
		}
		else 
			error+= error_day

		// Month
		month= value.substring(3,5)
		if (!isNaN(month)){ 
			
			month = parseInt(month,10)

			if ( (month<1)||(month>12) )
				error+= error_month;
		}
		else 
			error+= error_month;

		// Year
		year= value.substring(6,10)
		if (!isNaN(year) && year!=""){ 
			
			year = parseInt(year,10);
			
			if ( year<1900 )
				error+= error_year;
		}
		else 
			error+= error_year;

	}
	else
		error+= "Data Inválida, você tem que colocar dd/mm/aaaa. Ex: 15/06/2004;";


	return error;
}

function validacpf(pCPF){
 
	var i;
	var s = pCPF;
	 
	var c = s.substr(0,9);
	var dv = s.substr(9,2);
	var d1 = 0;
 
	for (i = 0; i < 9; i++)
		d1 += c.charAt(i)*(10-i);
 
	if (d1 == 0){
		alert("CPF Inválido")
		return false;
	}
 
	d1 = 11 - (d1 % 11);
 
	if (d1 > 9) d1 = 0;
 
	if (dv.charAt(0) != d1){
		alert("CPF Inválido")
		return false;
	}
 
	d1 *= 2;
 
	for (i = 0; i < 9; i++)
		d1 += c.charAt(i)*(11-i);
 
	d1 = 11 - (d1 % 11);
 
	if (d1 > 9) d1 = 0;
 
	if (dv.charAt(1) != d1){
		alert("CPF Inválido")
		return false;
	}
 
	return true;
} 
