lag_sucesso = true;
var win = null;
var preenchimentoObrigatorio = ".: Campo de preenchimento obrigatório."; 
var caminho ="http://www.bolsadeterras.com";

var regexTexto = /^[a-z' 'A-Z1-9ãÃáÁàÀêÊéÉèÈíÍìÌôÔõÕóÓòÒúÚùÙûÛçÇ;\-_:,ºª]+$/;
var regexSoTexto = /^[a-z' 'A-ZãÃáÁàÀêÊéÉèÈíÍìÌôÔõÕóÓòÒúÚùÙûÛçÇºª.]+$/;
var txtEmail = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
var regexTextoPwd  = /[a-zA-Z0-9*#]{4,}$/;
var regexUrl = /^(ht|f)tp(s?):\/\/w{0,3}\.?[a-z' 'A-Z1-9\-_:]+$/;

function gotFocus(elem, text){
	if(elem.value == text) elem.value = ''
}


function lostFocus(elem, text){
	if(elem.value == '') elem.value = text
}

function cancela() {
	// Repor os dados de origem
	document.dados.reset();		
}

function abrirPopup(url, w, h){
	if (win != null && win.open) win.close();
	win=window.open(url,'popup','toolbar=0,location=0,status=0,menubar=0,resizable=yes,scrollbars=yes,width='+w+',height='+h);
	if(window.focus) win.focus();
}

function trim(str) {
	return str.replace(/^\s+|\s+$/g,"");
}

//função que abre uma POPUP (janela)
function openWinPost( windowURL, windowName, width, height ) {
 
	largura=0
	altura=0
	if (!document.all){
		largura=window.innerWidth
		altura=window.innerHeight
	}else{
		largura=screen.width
		altura=screen.height
	}
	esquerda=(largura/2)-(width/2)
	topo=(altura/2)-(height/2)

	comScroll="1"

	argv = openWinPost.arguments
	if (argv.length>=5) comScroll="1"

	indexForm=0
	argv = openWinPost.arguments
	if (argv.length>=6) indexForm=argv[5]
	
	windowFeatures="width="+width+",height="+height+",left="+esquerda+",top="+topo+",toolbar=0,location=0,directories=0,status=0,menuBar=1,scrollBars="+comScroll+",resizable=yes"
	
	var janela = window.open('',windowName,windowFeatures);
	janela.focus();
	document.forms[indexForm].method='POST';
	document.forms[indexForm].action=windowURL;
	document.forms[indexForm].target=windowName;
	document.forms[indexForm].submit();
}


/*********************************************************************************************/
/*                                                                                           */
/*                         			 VALIDAÇÃO DE CAMPOS									 */
/*                                                                                           */
/*********************************************************************************************/



/*********************************************************************************************/
/*                         			 VALIDAÇAO DE CAMPOS DE TEXTO							 */
/*********************************************************************************************/

function verificatexto(campo) {
  tamanho= campo.length;
  temp=0;
  
  for (i=0,j=0;i<tamanho;i++) {
    if ((campo.charCodeAt(i)!=10) && (campo.charCodeAt(i)!=13) && (campo.charCodeAt(i)!=32) ){
      temp[j]+=campo[i];
      j++;
    }
  }
        
  if (j == 0)
    return true;
  else
    return false;
} 

function validaCampoPwd(objID,divID){
	//"vai validar"
	if(regexTextoPwd.test(document.getElementById(objID).value)){
		if (flag_sucesso) document.getElementById(divID).style.display = 'none';
	}else{
		flag_sucesso = false;
		document.getElementById(divID).innerHTML = '.: Campo mal formatado!';
		document.getElementById(divID).style.display = 'inline';
		document.getElementById(objID).value="";
		document.getElementById(objID).focus()
	}
}
 

function validaCampoTextoSite(objID,divID,mandatory,tamanho){
	//"vai validar"
	if (mandatory){ // é Campo obrigatório
		//"é obrigatório"
		if (document.getElementById(objID).value != ""){
			//"Está preenchido"
			if ( document.getElementById(objID).value.length < tamanho ){
				//"Tamanho insuficiente"
				flag_sucesso = false;
				document.getElementById(divID).innerHTML = '.: Tamanho mínimo: '+tamanho+' caracteres!';
				document.getElementById(divID).style.display = 'inline';
				document.getElementById(objID).focus()
			}else{
				if(regexTexto.test(document.getElementById(objID).value)){
					if (flag_sucesso) document.getElementById(divID).style.display = 'none';
				}else{
					alert
					flag_sucesso = false;
					document.getElementById(divID).innerHTML = '.: Campo mal formatado!';
					document.getElementById(divID).style.display = 'inline';
					document.getElementById(objID).value="";
					document.getElementById(objID).focus()
				}
				
			}
		}else{ // é obrigatório e está vazio - mostrar erro
			flag_sucesso = false;
			document.getElementById(divID).innerHTML = preenchimentoObrigatorio;
			document.getElementById(objID).focus();
			document.getElementById(divID).style.display = 'inline';			
		}		
	}else{
		if ( document.getElementById(objID).value.length < tamanho ){
			//"Tamanho insuficiente"
			flag_sucesso = false;
			document.getElementById(divID).innerHTML = '.: Tamanho mínimo: '+tamanho+' caracteres!';
			document.getElementById(divID).style.display = 'inline';
			document.getElementById(objID).focus()
		}else{
			if(regexTexto.test(document.getElementById(objID).value)){
				if (flag_sucesso) document.getElementById(divID).style.display = 'none';
			}else{
				flag_sucesso = false;
				document.getElementById(divID).innerHTML = '.: Campo mal formatado!';
				document.getElementById(divID).style.display = 'inline';
				document.getElementById(objID).value="";
				document.getElementById(objID).focus()
			}
			
		}
	}	
}

function validaCampoSoTextoSite(objID,divID,mandatory,tamanho){
	//"vai validar"
	if (mandatory){ // é Campo obrigatório
		//"é obrigatório"
		if (document.getElementById(objID).value != ""){
			//"Está preenchido"
			if ( document.getElementById(objID).value.length < tamanho ){
				//"Tamanho insuficiente"
				flag_sucesso = false;
				document.getElementById(divID).innerHTML = '.: Tamanho mínimo: '+tamanho+' caracteres!';
				document.getElementById(objID).focus()
			}else{
				if(regexSoTexto.test(document.getElementById(objID).value)){
					if (flag_sucesso) document.getElementById(divID).style.display = 'none';
				}else{
					flag_sucesso = false;
					document.getElementById(divID).innerHTML = '.: Campo mal formatado!';
					document.getElementById(objID).value="";
					document.getElementById(objID).focus()
				}
				
			}
		}else{ // é obrigatório e está vazio - mostrar erro
			flag_sucesso = false;
			document.getElementById(divID).innerHTML = preenchimentoObrigatorio;
			document.getElementById(objID).focus();
			document.getElementById(divID).style.display = 'inline';			
		}		
	}else{
		if ( document.getElementById(objID).value.length < tamanho ){
			//"Tamanho insuficiente"
			flag_sucesso = false;
			document.getElementById(divID).innerHTML = '.: Tamanho mínimo: '+tamanho+' caracteres!';
			document.getElementById(divID).style.display = 'inline';
			document.getElementById(objID).focus()
		}else{
			if(regexSoTexto.test(document.getElementById(objID).value)){
				if (flag_sucesso) document.getElementById(divID).style.display = 'none';
			}else{
				flag_sucesso = false;
				document.getElementById(divID).innerHTML = '.: Campo mal formatado!';
				document.getElementById(divID).style.display = 'inline';
				document.getElementById(objID).value="";
				document.getElementById(objID).focus()
			}
		}
	}	
}


/*********************************************************************************************/
/*                         		 VALIDAÇAO DE CAMPOS NUMERICOS						 		 */
/*********************************************************************************************/

function validaCodPostal(objID,divID,mandatory){

	// Caso o CEP não esteja nesse formato ele é inválido!
	var objER = /^[0-9]{4}-[0-9]{3}$/;
	var outro = false;
	strCP = trim(document.getElementById(objID).value)
	if (mandatory){ // é Campo obrigatório
		if(strCP.length > 0){
			if(objER.test(strCP)){
				var outro = false;
				if (flag_sucesso) document.getElementById(divID).style.display = 'none';
			}else{
				flag_sucesso = false;
				document.getElementById(divID).innerHTML = '.: Campo mal formatado!';
				document.getElementById(objID).focus();
				document.getElementById(objID).className ="classError";
				document.getElementById(divID).style.display = 'inline';	
			}
		}else{
			flag_sucesso = false;
			document.getElementById(divID).innerHTML = preenchimentoObrigatorio;
			document.getElementById(objID).focus();
			document.getElementById(divID).style.display = 'inline';	
		}
	}else{
		if(strCP.length > 0){
			if(objER.test(strCP)){
				var outro = false;
				if (flag_sucesso) document.getElementById(divID).style.display = 'none';
			}else{
				flag_sucesso = false;
				document.getElementById(divID).innerHTML = '.: Campo mal formatado!';
				document.getElementById(objID).className ="classError";
				document.getElementById(objID).focus();
				document.getElementById(divID).style.display = 'inline';	
			}
		}
		
	}
}

function validaCampoNumerico(objID,divID,mandatory){
	if (mandatory){ // é Campo obrigatório
		if (document.getElementById(objID).value != ""){
			if (isNaN(document.getElementById(objID).value)) {
				flag_sucesso = false;
				document.getElementById(divID).innerHTML = '.: O campo deve ser numérico!';
				document.getElementById(divID).style.display = 'inline';
				document.getElementById(objID).value="";
				document.getElementById(objID).focus()
			}else{
				
				if ( Number(document.getElementById(objID).value) <= 0){
					flag_sucesso = false;
					document.getElementById(divID).innerHTML = '.: O campo deve ser maior que 0!';
					document.getElementById(divID).style.display = 'inline';
					document.getElementById(objID).value="";
					document.getElementById(objID).focus()
				} else if (flag_sucesso) document.getElementById(divID).style.display = 'none';
			}			
		}else{
			// campo Vazio
			flag_sucesso = false;
			document.getElementById(divID).innerHTML = preenchimentoObrigatorio;
			document.getElementById(objID).focus();
			document.getElementById(divID).style.display = 'inline';			
		}
		
	}else{
		if (isNaN(document.getElementById(objID).value)) {
			flag_sucesso = false;
			document.getElementById(divID).innerHTML = '.: O campo deve ser numérico!';
			document.getElementById(divID).style.display = 'inline';
			document.getElementById(objID).value="";
			document.getElementById(objID).focus()
		} else if (flag_sucesso) document.getElementById(divID).style.display = 'none';
	}	
}



function validaCampoTelefone(objID,divID,mandatory){
	if (mandatory){ // é Campo obrigatório
		if (document.getElementById(objID).value != ""){
			if (isNaN(document.getElementById(objID).value)) {
				// não é numero
				flag_sucesso = false;
				document.getElementById(divID).innerHTML = '.: O campo '+objID+' deve ser numérico!';
				document.getElementById(divID).style.display = 'inline';
				document.getElementById(objID).value="";
				document.getElementById(objID).focus()
			}else{
				if (( Number(document.getElementById(objID).value) < 100000000) || (Number(document.getElementById(objID).value) > 999999999)){
					// intervalo errado
					flag_sucesso = false;
					document.getElementById(divID).innerHTML = '.: Número inválido!';
					document.getElementById(divID).style.display = 'inline';
					document.getElementById(objID).value="";
					document.getElementById(objID).focus()
				}
				else if (flag_sucesso) document.getElementById(divID).style.display = 'none';
			}			
		}else{
			// Está vazio
			flag_sucesso = false;
			document.getElementById(divID).innerHTML = preenchimentoObrigatorio;
			document.getElementById(objID).focus();
			document.getElementById(divID).style.display = 'inline';			
		}
		
	}else{
		if (document.getElementById(objID).value!= ""){
			if (isNaN(document.getElementById(objID).value)) {
				flag_sucesso = false;
				document.getElementById(divID).innerHTML = '.: O campo '+objID+' deve ser numérico!';
				document.getElementById(divID).style.display = 'inline';
				document.getElementById(objID).value="";
				document.getElementById(objID).focus()
			}else{
				if ( Number(document.getElementById(objID).value) <= 100000000){
					flag_sucesso = false;
					document.getElementById(divID).innerHTML = '.: Número inválido!';
					document.getElementById(divID).style.display = 'inline';
					document.getElementById(objID).value="";
					document.getElementById(objID).focus()
				}
				else if (flag_sucesso) document.getElementById(divID).style.display = 'none';
			}
		}
	}	
}


/*********************************************************************************************/
/*                         			 VALIDAÇAO DE DATAS										 */
/*********************************************************************************************/
function validaIntervaloDatas(objIDI, objIDF,divID,mandatory){
	var mydate= new Date()
    var today=mydate.getTime();
	
	var dataI = document.getElementById(objIDI).value
	var dataF = document.getElementById(objIDF).value
	if (mandatory){
		// validar se ambas as datas estão preenchidas
		if (( dataI == "" ) || ( dataF == "")) {
			// uma das datas está vazia
			document.getElementById(divID).innerHTML = '.: As datas têm que estar preenchidas!';
			document.getElementById(divID).style.display = 'inline';
			return false
		}else{
			// estão preenchidas --- validar o formato;
			if ((validaFormatoData(dataI)) && (validaFormatoData(dataF))){
				// formato OK --- Validar os intervalos
				var anoI = dataI.substr(0,4)
				var mesI = dataI.substr(5,2)
				var diaI = dataI.substr(8,2)
				dataIni = new Date(anoI,mesI-1,diaI).getTime()
				var anoF = dataF.substr(0,4)
				var mesF = dataF.substr(5,2)
				var diaF = dataF.substr(8,2)
				var dataFim = new Date(anoF,mesF-1,diaF).getTime()
				if (dataFim <= dataIni) {
					document.getElementById(divID).innerHTML = '.: A data final não pode ser inferior à data inicial!';
					document.getElementById(divID).style.display = 'inline';
					return false	
				}
				else {
					if (flag_sucesso) document.getElementById(divID).style.display = 'none';
					return true	
				} 				
			} else{
				document.getElementById(divID).innerHTML = '.: Formato Inválido (aaaa-mm-dd)';
				document.getElementById(divID).style.display = 'inline';
				return false
			}
		}
	}else{
	// não são obrigatórias por isso podem ser qqr combinação
		if ( dataI != "" ) {
			// a data Início está preenchida
			if (validaFormatoData(dataI)){
				// bem formatada
				var anoI = dataI.substr(0,4)
				var mesI = dataI.substr(5,2)
				var diaI = dataI.substr(8,2)
				var dataIni = new Date(anoI,mesI-1,diaI).getTime()
			
			}else{
				document.getElementById(divID).innerHTML = '.: Formato Inválido (aaaa-mm-dd)';
				document.getElementById(divID).style.display = 'inline';
				return false
			}
		}
		if ( dataF != "" ) {
			// a data Fim está preenchida
			if (validaFormatoData(dataF)){
				// bem formatada
				var anoF = dataF.substr(0,4)
				var mesF = dataF.substr(5,2)
				var diaF = dataF.substr(8,2)
				var dataFim = new Date(anoF,mesF-1,diaF).getTime()
			
			}else{
				document.getElementById(divID).innerHTML = '.: Formato Inválido (aaaa-mm-dd)';
				document.getElementById(divID).style.display = 'inline';
				return false
			
			}
		}
		
		if (( dataI != "" ) && ( dataF != "")) {
			// ambas estão preenchidas logo temos que as comparar
			if (dataFim <= dataIni) {
				document.getElementById(divID).innerHTML = '.: A data final não pode ser inferior à data inicial!';
				document.getElementById(divID).style.display = 'inline';
				return false	
			}
			else {
				document.getElementById(divID).style.display = 'none';
				return true	
			} 			
		}else{
			if (flag_sucesso) document.getElementById(divID).style.display = 'none';
			return true
		}
	}
}


function validaIntervaloDatasActual(objIDI, objIDF,divID,mandatory){
	var mydate= new Date()
    var today=mydate.getTime();
	
	var dataI = document.getElementById(objIDI).value
	var dataF = document.getElementById(objIDF).value
	if (mandatory){
		// validar se ambas as datas estão preenchidas
		if (( dataI == "" ) || ( dataF == "")) {
			// uma das datas está vazia
			document.getElementById(divID).innerHTML = '.: As datas têm que estar preenchidas!';
			document.getElementById(divID).style.display = 'inline';
			return false
		}else{
			// estão preenchidas --- validar o formato;
			if ((validaFormatoData(dataI)) && (validaFormatoData(dataF))){
				// formato OK --- Validar os intervalos
				var anoI = dataI.substr(0,4)
				var mesI = dataI.substr(5,2)
				var diaI = dataI.substr(8,2)
				dataIni = new Date(anoI,mesI-1,diaI).getTime()
				var anoF = dataF.substr(0,4)
				var mesF = dataF.substr(5,2)
				var diaF = dataF.substr(8,2)
				var dataFim = new Date(anoF,mesF-1,diaF).getTime()
				if (dataFim <= today) {
					// data fim inferior a hj
					document.getElementById(divID).innerHTML = '.: A data final não pode ser inferior à data de hoje!';
					document.getElementById(divID).style.display = 'inline';
					return false	
				}
				else {
					// superior à data de hj  --- validar se sup à data início
					if (dataFim <= dataIni) {
						// data inferior
						document.getElementById(divID).innerHTML = '.: A data final não pode ser inferior à data inicial!';
						document.getElementById(divID).style.display = 'inline';
						return false	
					}
					else {
						// tudo OK
						if (flag_sucesso) document.getElementById(divID).style.display = 'none';
						return true	
						
					} 
				} 				
			} else{
				document.getElementById(divID).innerHTML = '.: Formato Inválido (aaaa-mm-dd)';
				document.getElementById(divID).style.display = 'inline';
				return false
			}
		}
	}else{
	// não são obrigatórias por isso podem ser qqr combinação
		if ( dataI != "" ) {
			// a data Início está preenchida
			if (validaFormatoData(dataI)){
				// bem formatada
				var anoI = dataI.substr(0,4)
				var mesI = dataI.substr(5,2)
				var diaI = dataI.substr(8,2)
				var dataIni = new Date(anoI,mesI-1,diaI).getTime()
			
			}else{
				document.getElementById(divID).innerHTML = '.: Formato Inválido (aaaa-mm-dd)';
				document.getElementById(divID).style.display = 'inline';
				return false
			}
		}
		if ( dataF != "" ) {
			// a data Fim está preenchida
			if (validaFormatoData(dataF)){
				// bem formatada
				var anoF = dataF.substr(0,4)
				var mesF = dataF.substr(5,2)
				var diaF = dataF.substr(8,2)
				var dataFim = new Date(anoF,mesF-1,diaF).getTime()
			
			}else{
				document.getElementById(divID).innerHTML = '.: Formato Inválido (aaaa-mm-dd)';
				document.getElementById(divID).style.display = 'inline';
				return false
			
			}
		}
		
		if (( dataI != "" ) && ( dataF != "")) {
			// ambas estão preenchidas logo temos que as comparar
			if (dataFim <= dataIni) {
				document.getElementById(divID).style.display = 'inline';
				return false	
			}
			else {
				if (dataFim <= today) {
					// data fim inferior a hj
					document.getElementById(divID).innerHTML = '.: A data final não pode ser inferior à data de hoje!';
					document.getElementById(divID).style.display = 'inline';
					return false	
				}else{
					if (flag_sucesso) document.getElementById(divID).style.display = 'none';
					return true
					
				}
			} 			
		}else {
			if (flag_sucesso) document.getElementById(divID).style.display = 'none';
			return true	
		}
	}
}

function validaFormatoData(data){
	var bissexto = 0;
    var tam = data.length;
    if (tam == 10)
    { 
		var ano = data.substr(0,4)
		var mes = data.substr(5,2)
        var dia = data.substr(8,2)
        
        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':
                    /* 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                        
            }
        }
    }    
	flag_sucesso = false;
	return false;
}


/*********************************************************************************************/
/*                         			 SUBMISSAO DE FORMULARIOS								 */
/*********************************************************************************************/

function enviaFormPag(url,pag,cod){
	document.dados.codigo.value = cod		
	document.dados.pagina.value = pag		
	document.dados.target="_self"
	document.dados.action=url
	document.dados.submit()		
}

function enviaForm(url,cod){
	document.dados.codigo.value = cod		
	document.dados.target="_self"
	document.dados.action=url
	document.dados.submit()		
}


function enviaNavegacao(pag){
	document.getElementById("pagina").value = pag;
	document.dados.target="_self"
	document.dados.submit()	
}


function submitonEnter(evt){
	var keycode;
	var keycode = (evt.which) ? evt.which : evt.keyCode

	if(keycode == "13"){
		login();
	}
}

function loginSite(){
	flag_sucesso = true;
	
	if (document.getElementById('wsuser').value=='Username') document.getElementById('wsuser').value ="";
	if (document.getElementById('wspwd').value=='Password') document.getElementById('wspwd').value ="";
	
	validaCampoPwd('wspwd','divLogin',true)
	validaCampoEmail('wsuser','divLogin',true)
	if (flag_sucesso){			
		document.login.action='login.php'
		document.login.submit()
	}
	
	
}


function validaCampoEmail(objID,divID,mandatory,tamanho){
	email = document.getElementById(objID).value;
	if (mandatory){ // é Campo obrigatório
		if (document.getElementById(objID).value != ""){
			if (verificatexto(document.getElementById(objID).value)) {
				flag_sucesso = false;
				document.getElementById(divID).innerHTML = preenchimentoObrigatorio;
				document.getElementById(divID).style.display = 'inline';
				document.getElementById(objID).value="";
				document.getElementById(objID).focus()
			}else{
				if(txtEmail.test(email)){
					if (flag_sucesso) document.getElementById(divID).style.display = 'none';
					op = true;
				}else{
					flag_sucesso = false;
					document.getElementById(divID).innerHTML = '.: Campo mal formatado!';
					document.getElementById(divID).style.display = 'inline';
					document.getElementById(objID).value="";
					document.getElementById(objID).focus()
				}
			}				
		}else{
			flag_sucesso = false;
			document.getElementById(divID).innerHTML = preenchimentoObrigatorio;
			document.getElementById(objID).focus();
			document.getElementById(divID).style.display = 'inline';			
		}
		
	}else{		
		if (document.getElementById(objID).value != ""){
			if(txtEmail.test(email)){
				op = true;
				if (flag_sucesso) document.getElementById(divID).style.display = 'none';
			}else{
				 flag_sucesso = false;
				document.getElementById(divID).innerHTML = '.: Campo mal formatado!';
				document.getElementById(divID).style.display = 'inline';
				document.getElementById(objID).value="";
				document.getElementById(objID).focus()
			}
		}
	}	
}

function validaExtensao(ext){
	doc = document.getElementById('uploadedfile').value;
	posPonto = doc.lastIndexOf(".")
	extDoc = doc.substr(posPonto +1,3);
	
	existe = ext.lastIndexOf(extDoc)

	if (existe == -1 ) {
	// n existe
		flag_sucesso = false;
		
		document.getElementById('divFile').style.display = 'inline';
		document.getElementById('divFile').innerHTML = '.: O documento tem uma extensão inválida';
		document.getElementById('uploadedfile').value="";
		document.getElementById('uploadedfile').focus()
				
	}
	else if (flag_sucesso) document.getElementById('divFile').style.display = 'none';
}