f=0;
p=0;
// variavel que servira para guardar o objeto que conterá a data durante a edição
var recebeObjetoData = new Object();

function abre_Janela(url){
	//JANELA = window.open(url,"JANELA","toolbar=no,location=no,directories=no,status=0,menubar=no,scrollbars=1,resizable=no,copyhistory=no,width=544,height=480,left=20,top=20");
	JANELA = window.open(url,"JANELA","toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=no,width=564,height=540");
	return void(0);
};
//------------------------------------------------ Funções de Crítica -----------------------------

function validaCGC(id){
	//Campo CGC deve estar vazio
    formulario = eval('document.FORM'+id);
    nomeCGC = 'CGC';
	valorCampoCGC = formulario[nomeCGC].value;
	limpaEspacosVariavel('valorCampoCGC');
	if(valorCampoCGC==''){
		alert('O campo CGC deve estar preenchido .');
		return false;
	}
    else{
        sim = true;
    }
            formulario.submit();
            return true;
    if (valorCampoCGC.length!=14){
		alert('O campo CGC deve estar preenchido com 14 dígitos.');
		return false;
	}
    else{
        sim = true;
    }
    if (sim){
      // verifica se e numero
      for (i=0;((i<=(valorCampoCGC.length-1))&& sim); i++){
         val = valorCampoCGC.charAt(i);
         if ((val!="9")&&(val!="0")&&(val!="1")&&(val!="2")&&(val!="3")&&(val!="4")&&(val!="5")&&(val!="6")&&(val!="7")&&(val!="8"))
            {sim = false;}
      }//Fim do For
      if (sim){
         m2 = 2;
         soma1 = 0;
         soma2 = 0;
         for (i=11;i>=0;i--){
            val = eval(valorCampoCGC.charAt(i));
            m1 = m2;
            if (m2 < 9)
               {m2 = m2+1;}
            else
               {m2 = 2;}
            soma1 = soma1 + (val * m1);
            soma2 = soma2 + (val * m2);
         }// fim do for de soma
         soma1 = soma1 % 11;
         if (soma1 < 2)
            {d1 = 0;}
         else
            {d1 = 11- soma1;}
         soma2 = (soma2 + (2 * d1)) % 11;
         if (soma2 < 2)
            {d2 = 0;}
         else
            {d2 = 11- soma2;}
         if ((d1==valorCampoCGC.charAt(12)) && (d2==valorCampoCGC.charAt(13))){
            formulario.submit();
            return true;
         }else{
       		alert('O campo CGC não representa um CGC Válido.');
            return false;
         }//Fim do else
      }else{
		alert('O campo CGC deve conter somente números.');
		return false;
      }//Fim do else
    }//Fim do If
};

function eliminaEspacos(nome){
	b='';
	c='';
	for(f=0;f<document.FORM[nome].value.length;f++){b=document.FORM[nome].value.charAt(f);if(b!=' '){c+=b};};
	document.FORM[nome].value = c;
};
function limpaEspacosVariavel(nome){
	b='';
	c='';
	for(f=0;f<window[nome].length;f++){b=window[nome].charAt(f);if(b!=' '){c+=b};};
	window[nome] = c;
};
function testeGeral(nome,label,tipo,vazio){
        //alert(nome);
	valorCampo = document.FORM[nome].value;
	limpaEspacosVariavel('valorCampo');
	//if((tipo!='memo')&& ((document.FORM[nome].value.indexOf(",")!=-1)||(document.FORM[nome].value.indexOf(";")!=-1))){
	//	alert('O campo ' + label + ' não pode conter vírgula nem ponto e vírgula.\nSubstitua por ponto(.)');
	//	return false;
	//};
	if(vazio){
		if(valorCampo==''){
			alert('O campo ' + label + ' precisa ser preenchido.');
			return false;
		};
	};
	if(tipo=='numero'){
		eliminaEspacos(nome);
		numeroVirgula = document.FORM[nome].value.replace(',','.');
		if(isNaN(numeroVirgula)){
			alert('O campo ' + label + ' é do tipo numérico.');
			return false;
		};		
	};
	//if(tipo=='numero'){
	//	eliminaEspacos(nome);
	//	for(f=0;f<document.FORM[nome].value.length;f++){
	//		if((document.FORM[nome].value.charAt(f)=='.')||(document.FORM[nome].value.charAt(f)==',')){
	//			alert('O campo ' + label + ' é do tipo numérico inteiro.');
	//			return false;
	//		};
	//	};		
	//};
	if(tipo=='data'){
		if(document.FORM[nome].value!=''){
			if(!testaData(document.FORM[nome].value)){
                if(!testaData2(document.FORM[nome].value)){
                   alert('O campo ' + label + ' não possui uma data válida. \n O formato aceito é dd/mm/aaaa.');
				   return false;
                };
			};
		};
	};
	if(tipo=='dataHora'){
		if(document.FORM[nome].value!=''){
			if(!testaDataHora(document.FORM[nome].value)){
				alert('O campo ' + label + ' não possui uma data válida. \n O formato aceito é dd/mm/aaaa hh:mm:ss.');
				return false;
			};
		};
	};
	return true;
};

//----------------------------- Testa Data ------------------------
function converteData(data){
	data = data.split(' ');
	data2 = data[0].split('/');
	var data3 = new Date(data2[2],data2[1],data2[0]);
	return data3
}
function testeDataMaior(data1,data2){
	data1 = converteData(data1);
	data2 = converteData(data2);
	if(data2.getTime()<data1.getTime()){
		alert('Data Inicial Maior de a Data Final!');
		return false;
	} else {
		return true;
	};
};
function testaData(recebeData){
	recebeData = recebeData.split('/');
	if(recebeData.length!=3){
		return false;
	};
	var arrayMeses = new Array(0,31,28,31,30,31,30,31,31,30,31,30,31);
	testaAnoBicesto = recebeData[2] /4 + ' ';
	if(testaAnoBicesto.indexOf('.')==-1){
		arrayMeses[2]=29;
	};
	if((recebeData[0]>arrayMeses[recebeData[1] - 0])||(recebeData[1]>12)){
		return false;
	};
	return true;
};
function testaData2(recebeData){
	recebeData = recebeData.split('-');
	if(recebeData.length!=3){
		return false;
	};
	var arrayMeses = new Array(0,31,28,31,30,31,30,31,31,30,31,30,31);
	testaAnoBicesto = recebeData[2] /4 + ' ';
	if(testaAnoBicesto.indexOf('.')==-1){
		arrayMeses[2]=29;
	};
	if((recebeData[0]>arrayMeses[recebeData[1] - 0])||(recebeData[1]>12)){
		return false;
	};
	return true;
};

function testaDataHora(recebeData){

	dataHora = recebeData.split(' ');
	if(dataHora.length<2){return false};
	if(!testaData(dataHora[0])) {return false};
	Hora = dataHora[1].split(':');
	horario = new Array(24,59,59);
	if(Hora.length<2){return false};
	for(f=0;f<horario.length;f++){
		if(Hora[f]>horario[f]){return false};
	};
	if((Hora[0]==24)&&(Hora[1]>0)){return false};
	return true;
};
// --------------------------- Funções para Layers ---------------------------
function moveLayer(strLayer,valorX,valorY) {
	if (document.layers) {
    		document.layers[strLayer].top = valorY;
    		document.layers[strLayer].left = valorX;
	} else {
    		document.all[strLayer].style.top = valorY;
    		document.all[strLayer].style.left = valorX;
	};
};

function exibeLayer(strLayer) {
	if (document.layers) {
    		document.layers[strLayer].visibility = 'show'; 
	} else {
    		document.all[strLayer].style.visibility = 'visible';
	};
};

function escondeLayer(strLayer) {
	if (document.layers){
    		document.layers[strLayer].visibility = 'hide';
	} else {
    		document.all[strLayer].style.visibility = 'hidden';
	};
};
// ---------------------------------- scripts de estilo ------------------------------------------

// trocam o estilo da tag quando no mouseOver

function EstOn(a){
	a.className = "textosCandidatosOver";
	if(typeof(f)=='object'){


		f.className = "textosCandidatosDestaque";
	};
};
function EstOff(a){
	a.className = "textosCandidatos";
	if(typeof(f)=='object'){
		f.className = "textosCandidatosDestaque";
	};
};
function numerico(){
	g = event.keyCode;
	if(((((g<48)||(g>57))&&((g<96)||(g>105)))&&(g!=8)||(event.shiftKey)||(event.shiftLeft)||(event.altLeft))&&(g!=37)&&(g!=39)&&(g!=9)&&(g!=46)){
		event.keyCode = 0;
		event.returnValue = false;
	};
};
//------------------------------------ script's para o menu  -------------------------------------
//  nenhuma layer nesta página pode ter um nome começado por 'L'
var Ybasico = 17; //altura de todas as células das layers
var Xbasico = 127; //largura de todas as layers
var aLayersInvisiveis = new Array(); //Array de layers invisíveis
var layerCod = 0 // Variável que guarda o valor da Layer do sub-menu que está sendo executada exibida para poder ser apagada
function fExibeLayer(strLayer) {
	retornaValorX(strLayer)
	if (document.layers) {
    		document.layers[strLayer].visibility = 'show'; 
	} else {
    		document.all[strLayer].style.visibility = 'visible';
	};
};
function fEscondeLayer(strLayer) {
	if (document.layers){
    		document.layers[strLayer].visibility = 'hide';
	} else {
    		document.all[strLayer].style.visibility = 'hidden';
	};
};
function fMoveLayer(strLayer,valorX,valorY) {
	if (document.layers) {
    		document.layers[strLayer].top = valorY;
			document.layers[strLayer].left = valorX;
	} else {
    		document.all[strLayer].style.top = valorY;
			document.all[strLayer].style.left = valorX;
	};
};
function fMenu(e){
	if(document.layers){
		if (e.target.name.charAt(0)=='L'){
			fExibeMenu(e.target.name);
		};
	} else {
		fExibeMenu(e.id);
	};
};
function removeL(a){
	a = a.substring(0,a.lastIndexOf('L'));
	a = a.substring(0,a.lastIndexOf('L')+1);
	return a
}
if(document.layers){
	window.captureEvents(Event.MOUSEOVER | Event.MOUSEOUT)
	window.onmouseover = fMenu;
	window.onmouseout = fEscondeMenu;
}
function verificaLayer(nLayer){
	if(document.layers){
		if(typeof(document.layers[nLayer])=='undefined'){
			return false;
		} else {
			return true;
		};
	} else {
		if(typeof(window[nLayer])=='undefined'){
			return false;
		} else {
			return true;
		};
	};
};
function retornaX(LAYER){
	if(document.layers){
		valor = document.layers[LAYER].pageX;
	} else {
		valor = removePxValor(document.all[LAYER].style.left);
	};
	return valor;
};
function retornaY(LAYER){
	if(document.layers){
		valor = document.layers[LAYER].pageY;
	} else {
		valor = removePxValor(document.all[LAYER].style.top);
	};

	return valor;
};
function removePxValor(valor){
	if(valor.indexOf('px')!=-1){
		return valor.substring(0,valor.length-2);
	};
	return valor;
};
function retornaValorY(nome){
	nome2 = nome.split('L');
	valor = retornaY('L' + nome2[1]);
	for(f=2;f<nome2.length;f++){
		valor = valor - 0 + Ybasico - 0;
	};
	return valor;
};
function retornaValorX(nome){
	//alert(nome);
	nome2 = nome.split('L');
	valor = retornaX('L' + nome2[1]);
	//for(f=2;f<nome2.length;f++){
	//	valor = valor - 0 + (Xbasico * (nome2[f] - 1));
	//};
	return valor;
};
function fEscondeMenu(e){
	if(document.layers){
		if (e.target.name.charAt(0)=='L'){
			for(f=0;f<aLayersInvisiveis.length;f++){
				fEscondeLayer(aLayersInvisiveis[f]);
			};
		};
	} else {
		for(f=0;f<aLayersInvisiveis.length;f++){
			fEscondeLayer(aLayersInvisiveis[f]);
		};
	};
	aLayersInvisiveis = '';
}

function fExibeMenu(nome){
	nome += 'L';
	aLayersInvisiveis = new Array();
	while(nome.length>2){
		layerCod = 1;
		while(verificaLayer(nome + layerCod)){
			fMoveLayer((nome + layerCod),retornaValorX(nome + layerCod),retornaValorY(nome + layerCod));
			fExibeLayer(nome + layerCod);
			aLayersInvisiveis[aLayersInvisiveis.length] = nome + layerCod;
			layerCod ++;
		};
		nome = removeL(nome);
	};
}
//--------------------------------------------- Funções Quarentena -------------------------------------
function janelaManutencao(a,b){
	
	url = "QRDProdS.php?IDCliente=" + a + "&Produto=" + b;
	window.open(url,"JANELA","toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,copyhistory=no,width=770,height=500,left=20,top=20")

}
function janelaQuarentena(a,c,b){
	
	url = "QRDProdSErr.php?IDCliente=" + a + "&Produto=" + b + "&codigoproduto=" + c;
	window.open(url,"JANELA","toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,copyhistory=no,width=770,height=500,left=20,top=20")

}
//----------------------------------------------- Funções para combos -----------------------------------
function apagaCombo(OBJ){
	tamanho = OBJ.length;
	for(gf=0;gf<tamanho;gf++){
		OBJ[0] = null;
	}
}
function insereValoresCombo(OBJ,a,b){
	var NovaOpcao = new Option('value','text');
	NovaOpcao.value = a;
	NovaOpcao.text = b;
	OBJ[OBJ.length] = NovaOpcao;
}
//-------------------------------------------------- funções de alteração de campos para a manutenção -----------------------

//------------------------ Funcao de Edicao de Inputs -----------------------------
// V 1.1
var matrizFormType = new Array();	// guarda todos os tipos dos objetos do Form 
var matrizFormName = new Array();	// guarda todos os nomes dos objetos do Form 
var matrizFormHidden = new Array();	// guarda todos os camos hidden em seus tamanhos
var tamanhoForm = 0  //guarda o tamanho do Form
var tamanhoLink = 0  //guarda o tamanho do link
var tamanhoHidden = 0  //guarda o tamanho do hidden
var tamanhoPassword = 0	//guarda o tamanho do password
var correcaoColuna = 0	//guarda a correção da coluna quando não há um campo correspndente

function limpaForm(){
	// reseta o form, desinibe os campos travados, esconde as layers transparentes dos campos.
	document.FORM.reset();
	for(f=0;f<tamanhoForm;f++){
		if(matrizFormName[f].charAt(0)=='K'){
			document.FORM[matrizFormName[f]].onfocus = null;	//	desinibe os campos desativando a função inibidora dos campos chave no evento onFocus
			document.FORM[matrizFormName[f]].className = "textoTabela";
			//escondeLayer('L' + matrizFormName[f].substring(1,matrizFormName[f].length));
		};
	};
	document.FORM.action = document.FORM.action.replace('?edit=1','');
};
function inibidora(){
	//	inibe o campo chave do sistema quando o registro estiver sendo editado
	//	para informar que um campo é chave é necessário que seu nome seja inicializado por 'K'
	//	alert('chegou');
	this.blur();
}
function inicializacao(){
	// identifica o número dos objetos do Form colocando-os em seus arrays e eliminando os radio
	for(f=0;f<document.FORM.length;f++){
		if(f!=0){
			if(document.FORM[f].name!= document.FORM[f-1].name){
				(document.FORM[f].type=='select-one')?(matrizFormType[tamanhoForm]='select'):(matrizFormType[tamanhoForm] = document.FORM[f].type);
				matrizFormName[tamanhoForm] = document.FORM[f].name;
				tamanhoForm ++;
			};
		} else {
			(document.FORM[f].type=='select-one')?(matrizFormType[tamanhoForm]='select'):(matrizFormType[tamanhoForm] = document.FORM[f].type);
			matrizFormName[tamanhoForm] = document.FORM[f].name;
			tamanhoForm ++;
		};
	};
	for(f=0;f<tamanhoForm;f++){
		if(matrizFormType[f]!='hidden'){
			tamanhoLink++;
		} else {
			matrizFormHidden[f] = tamanhoHidden;
			tamanhoHidden++;
		};
		if((matrizFormType[f]=='password')||(matrizFormType[f]=='file')){
			tamanhoPassword++;
		};
	};
};

// encontra os valores nos links
function recolheValoresLink(numero){
	if(document.layers){
		return document.links[numero - correcaoColuna -  tamanhoPassword * ( linhaClicada - 1 )].text;
	} else {
		//alert('numero = ' + numero);
		//alert('linha clicada = ' + (correcaoColuna + tamanhoPassword * ( linhaClicada - 1 )));
		//alert('correcaoColuna = ' + correcaoColuna + ' tamanhoPassword = ' + tamanhoPassword + ' linhaClicada = ' + linhaClicada);
		//alert(numero - correcaoColuna - tamanhoPassword * ( linhaClicada - 1 ));
		eval('valorResultante=document.all.a' + (numero - correcaoColuna - tamanhoPassword * ( linhaClicada - 1 )) + '.innerText');
		return valorResultante;
	};
};

function rDados(numero){

	document.FORM.action = document.FORM.action + "?edit=1";
	linhaClicada = numero;
	valorLink = (numero - 1) * tamanhoLink;	
	for(f=0;f<tamanhoForm;f++){
		eval('F' + matrizFormType[f] + '(valorLink)'); 										// desvia a execução para a função correspondente com o typo do campo
		if(matrizFormName[f].charAt(0)=='K'){ 												//  verifica se o campo é chave e desvia para funções apropriadas
			document.FORM[matrizFormName[f]].onfocus = inibidora;  							// trava o campo para edição
			document.FORM[matrizFormName[f]].className = "caixasChave";
			//exibeLayer('L' + matrizFormName[f].substring(1,matrizFormName[f].length));  	// mostra a layer transparente sobre o campo chave na edição
		};
	};
	correcaoColuna = 0;
};
function Ftext(valor){	//	coloca o valor do link correspondente no campo texto
	document.FORM[matrizFormName[f]].value = recolheValoresLink(valor + f);
};
function Ftextarea(valor){	//	coloca o valor do link correspondente no campo texto
	document.FORM[matrizFormName[f]].value = recolheValoresLink(valor + f);
};
function Fcheckbox(valor){  //  marca o desmarca o checkbox caso o seu valor seja igual ao do link correspondente
	(document.FORM[matrizFormName[f]].value==recolheValoresLink(valor + f))?(document.FORM[matrizFormName[f]].checked = true):(document.FORM[matrizFormName[f]].checked = false);
};
function Fselect(valor){	//	seleciona o valor que seja igual ao do link no select, verificando o texto e depois o value
	tTeste=true;
	for(g=0;g<document.FORM[matrizFormName[f]].length;g++){
		if(document.FORM[matrizFormName[f]][g].text==recolheValoresLink(valor + f)){
			document.FORM[matrizFormName[f]][g].selected = true;
			tTeste = false;
		} else {
			document.FORM[matrizFormName[f]][g].selected = false
		};
	};
	if(tTeste){
		for(g=0;g<document.FORM[matrizFormName[f]].length;g++){
			(document.FORM[matrizFormName[f]][g].value==recolheValoresLink(valor + f))?(document.FORM[matrizFormName[f]][g].selected = true):(document.FORM[matrizFormName[f]][g].selected = false);
		};
	};
};
function Fradio(valor){  //	seta o campo que possuir o mesmo value do select, caso nenhum exista desmarca todos
	for(g=0;g<document.FORM[matrizFormName[f]].length;g++){
		(document.FORM[matrizFormName[f]][g].value==recolheValoresLink(valor + f))?(document.FORM[matrizFormName[f]][g].checked = true):(document.FORM[matrizFormName[f]][g].checked = false);
	};
};
function Fhidden(valor){	//	procura e iguala os campos hidden do for com os do frame de dados
	posicaoHidden = (valor/tamanhoLink)*tamanhoHidden + matrizFormHidden[f] + (valor/tamanhoLink); // descobre a posição do campo hidden a der copiado para o form
	document.FORM[matrizFormName[f]].value = document.deletar[posicaoHidden].value;
};
function Fpassword(valor){  //	apaga o valor que existir dentro do campo pois nos campos de leitura não haverão valores para preenche-los
	document.FORM[matrizFormName[f]].value = '';
	correcaoColuna = 1;	//	faz com que o número de localização da coluna da tabela seja subtraída de um, pois não há coluna para o campo
};
function Ffile(valor){  //	apaga o valor que existir dentro do campo pois nos campos de leitura não haverão valores para preenche-los
	document.FORM[matrizFormName[f]].value = '';
	correcaoColuna = 1;	//	faz com que o número de localização da coluna da tabela seja subtraída de um, pois não há coluna para o campo
};

function montaFlash(swf, width, height, wmode, cache)
{
noCache = cache || cache == undefined ? "" : "?" + new Date();
wmode = wmode || wmode == undefined ? "opaque" : "transparent";

monta_swf = "";
monta_swf += "<object classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" codebase=\"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0\" width=\""+ width +"\" height=\""+ height +"\" title=\"\">";
monta_swf += "<param name=\"movie\" value=\""+ swf + noCache +"\" />";
monta_swf += "<param name=\"quality\" value=\"high\" />";
monta_swf += "<param name=\"menu\" value=\"0\" />";
monta_swf += "<param name=\"wmode\" value=\"transparent\" />";
monta_swf += "<embed src=\""+ swf + noCache +"\" quality=\"best\" wmode=\"transparent\" pluginspage=\"http://www.macromedia.com/go/getflashplayer\" type=\"application/x-shockwave-flash\" width=\""+ width +"\" height=\""+ height +"\"></embed>";
monta_swf += "</object>";

document.write(monta_swf);
}

function addFav(){
    var url      = "http://www.guiarb.com.br";
    var title    = "GuiaRB - O Site de Rio Bonito";
    if (window.sidebar) window.sidebar.addPanel(title, url,"");
    else if(window.opera && window.print){
        var mbm = document.createElement('a');
        mbm.setAttribute('rel','sidebar');
        mbm.setAttribute('href',url);
        mbm.setAttribute('title',title);
        mbm.click();
    }
    else if(document.all){window.external.AddFavorite(url, title);}
}
