
////// Objeto  cpBase (campos base) obrigatórios:
function cpBase (pCp, pMsgm){
  this.cp  	= pCp;
  this.msgm	= pMsgm;
}

cpBase.prototype.pCp 		= '';
cpBase.prototype.pMsgm 		= '';

////// Objeto  cpCob (campos de end de Cobranca) obrigatórios:
function cpCob (pCp, pMsgm){
  this.cp  	= pCp;
  this.msgm	= pMsgm;
}

cpCob.prototype.pCp 		= '';
cpCob.prototype.pMsgm 		= '';

////// Objeto  cpFS (campos de end de Fim-de-semana) obrigatórios:
function cpFS (pCp, pMsgm){
  this.cp  	= pCp;
  this.msgm	= pMsgm;
}

cpFS.prototype.pCp 		= '';
cpFS.prototype.pMsgm 		= '';

////////////////// instancia dos objetos //////////////////

var aCpBase = new Array();
var aCpCob = new Array();
var aCpFS = new Array();

function criaObjs(nm,cdTp,dsTp){
	eval("var cmd = 'aCp"+nm+"[aCp"+nm+".length] = cp"+nm+"Obj;';");
   
	eval("cp"+nm+"Obj = new cp"+nm+"('cdCep"+cdTp+"','CEP do endereço de "+dsTp+" inválido!');");
	eval(cmd);
	//eval("cp"+nm+"Obj = new cp"+nm+"('tpLogradouroExtenso"+cdTp+"','tipo do logradouro do endereço de "+dsTp+" inválido!');");
	//eval(cmd);
	/*eval("endRot = document.assine.nmLogradouro"+cdTp+".value");
	alert(endRot);
	if(endRot==""){
		eval("cp"+nm+"Obj = new cp"+nm+"('enderecoExtenso"+cdTp+"','endereço de "+dsTp+" inválido!');");
		eval(cmd);
	}*/
	eval("cp"+nm+"Obj = new cp"+nm+"('nrPonto"+cdTp+"','Informe o número do endereço de "+dsTp+".');");
	eval(cmd);
	eval("cp"+nm+"Obj = new cp"+nm+"('nmLocalidade"+cdTp+"','Informe a cidade do endereço de "+dsTp+".');");
	eval(cmd);
	if(nm=="Base"){
		cpBaseObj = new cpBase('nmClientePag','Preencha o campo Nome para Cobrança.');
		eval(cmd);
		cpBaseObj = new cpBase('dsEmailPag','Preencha o campo email.');
		eval(cmd);
		cpBaseObj = new cpBase('nrCpfCnpjPag','CPF/CNPJ inválido!');
		eval(cmd);
	}
//alert("teste de pos de array: "+ aCpBase[0]);
}
criaObjs('Base','Princ','entrega');
criaObjs('Cob','Cobr','cobrança');
criaObjs('FS','FSem','fim-de-semana');


function conclui(){
f=false;
	for(i=0; i<aCpBase.length; i++){
		eval("cp=document.assine."+aCpBase[i].cp);
		if(cp.value==""){
			f=true;
			alert(aCpBase[i].msgm);
			error(cp);
			return;
		}
	}
	if(document.assine.qtParcela.value==""){
		f=true;
		alert("Escolha uma opção de pagamento!");
		return;	
	}
	if(document.assine.cdTotalTelResPag.value==""&&document.assine.cdTotalTelComPag.value==""&&document.assine.cdTotalTelCelPag.value==""){
		f=true;
		alert("Preencha um dos campos de telefone dos dados para cobrança.");
		return;
	}
	if(document.assine.cdDddTelResPag.value==""&&document.assine.cdDddTelComPag.value==""&&document.assine.cdDddTelCelPag.value==""){
		f=true;
		alert("Preencha o campo de DDD no telefone dos dados para cobrança.");
		return;
	}
	if(!((document.assine.cdTotalTelResPag.value==""&&document.assine.cdDddTelResPag.value=="")||(document.assine.cdTotalTelResPag.value!=""&&document.assine.cdDddTelResPag.value!=""))||!((document.assine.cdTotalTelComPag.value==""&&document.assine.cdDddTelComPag.value=="")||(document.assine.cdTotalTelComPag.value!=""&&document.assine.cdDddTelComPag.value!=""))||!((document.assine.cdTotalTelCelPag.value==""&&document.assine.cdDddTelCelPag.value=="")||(document.assine.cdTotalTelCelPag.value!=""&&document.assine.cdDddTelCelPag.value!=""))){
			f=true;
			alert("O telefone dos dados para cobrança deve ser preenchido com número e DDD.");
			return;
	}
	if(isNaN(document.assine.cdTotalTelResPag.value)||isNaN(document.assine.cdDddTelResPag.value)||isNaN(document.assine.cdExtTelResPag.value)||isNaN(document.assine.cdTotalTelComPag.value)||isNaN(document.assine.cdDddTelComPag.value)||isNaN(document.assine.cdExtTelComPag.value)||isNaN(document.assine.cdTotalTelCelPag.value)||isNaN(document.assine.cdDddTelCelPag.value)){
		f=true;
		alert("Telefone para cobrança inválido! Utilize apenas números.");
		return;
	}
	if(document.assine.cdCepPrinc.value!=document.assine.cepPrincBack.value||document.assine.sgUfPrinc.value!=document.assine.ufPrincBack.value){
		f=true;
		alert("quando alterados, o cep e/ou o estado do endereço de entrega devem ser submetidos no botão \"prosseguir\" !");
		return;
	}
	if(emailOk==false||document.assine.dsEmailPag.value==""){
		alert("e-mail dos dados de cobrança inválido!");
		return;
	}
	if(f==false){
		//passando endereço por extenso:
		//if(document.assine.roteirizadoPrinc.value=='false')transfEndNaoRot('Princ');
		verificaNascimento();
	}
}   

function verificaNascimento(){
	if(document.assine.tpPessoaPag.value=="F" && (document.assine.diaNascimentoPag.value==""||document.assine.mesNascimentoPag.value==""||document.assine.anoNascimentoPag.value=="")){
		alert("o preenchimento da data de nascimento é obrigatório para pessoa física!");
		return;
	}else{
		verificaFormaPagamento();
	}
}

function verificaFormaPagamento(){
	var fp = document.assine.cdFormaVenda.value;
	if(fp==5&&(document.assine.cdCartaoCredito.value==""||document.assine.mesValidCartaoCredito.value==""||document.assine.anoValidCartaoCredito.value=="")){
		alert("Informe os dados do seu cartão de crédito.");
		return;
	}else if(fp==7&&(document.assine.cdAgencia.value==""||document.assine.cdContaCorrente.value==""||document.assine.digitoContaCorrente.value=="")){
		alert("Informe os dados de sua conta corrente.");
		return;
	}else{
		concluiClRec();
	}
}

function transfEndNaoRot(alvo){
	eval("document.assine.enderecoExtenso"+alvo+".value = document.assine.nmLogradouro"+alvo+".value + document.assine.nrPonto"+alvo+".value + document.assine.dsComplemento"+alvo+".value;");
	return true;
}

function concluiClRec(){
	if(document.assine.askClienteRec.value=="S"){  
		if(document.assine.nmClienteRec.value==""){
			f=true;
			alert("Preencha o nome do presenteado.");
			error(document.assine.nmClienteRec);
			return;
		}else if(document.assine.cdTotalTelResRec.value==""&&document.assine.cdTotalTelComRec.value==""&&document.assine.cdTotalTelCelRec.value==""){
			f=true;
			alert("Preencha um dos campos de telefone do presenteado.");
			return;
		}else if(document.assine.cdDddTelResRec.value==""&&document.assine.cdDddTelComRec.value==""&&document.assine.cdDddTelCelRec.value==""){
			f=true;
			alert("Preencha o campo de DDD no telefone do presenteado.");
			return;
		}else if(!((document.assine.cdTotalTelResRec.value==""&&document.assine.cdDddTelResRec.value=="")||(document.assine.cdTotalTelResRec.value!=""&&document.assine.cdDddTelResRec.value!=""))||!((document.assine.cdTotalTelComRec.value==""&&document.assine.cdDddTelComRec.value=="")||(document.assine.cdTotalTelComRec.value!=""&&document.assine.cdDddTelComRec.value!=""))||!((document.assine.cdTotalTelCelRec.value==""&&document.assine.cdDddTelCelRec.value=="")||(document.assine.cdTotalTelCelRec.value!=""&&document.assine.cdDddTelCelRec.value!=""))){
			f=true;
			alert("O telefone do presenteado deve ser preenchido com número e DDD.");
			return;
		}else if(isNaN(document.assine.cdTotalTelResRec.value)||isNaN(document.assine.cdDddTelResRec.value)||isNaN(document.assine.cdExtTelResRec.value)||isNaN(document.assine.cdTotalTelComRec.value)||isNaN(document.assine.cdDddTelComRec.value)||isNaN(document.assine.cdExtTelComRec.value)||isNaN(document.assine.cdTotalTelCelRec.value)||isNaN(document.assine.cdDddTelCelRec.value)){
			f=true;
			alert("Telefone do presenteado inválido! Utilize apenas números.");
			return;
		}		
		concluiEndCobr();
	}else{
		concluiEndCobr();
	}
}

function concluiEndCobr(){
	if(document.assine.askEnderecoCobr.value=="S"){ 
		for(i=0; i<aCpCob.length; i++){
			eval("cp=document.assine."+aCpCob[i].cp);
			if(cp.value==""){
				f=true;
				alert(aCpCob[i].msgm);
				error(cp);
				return;
			}
		}
		if(document.assine.cdCepCobr.value!=document.assine.cepCobrBack.value||document.assine.sgUfCobr.value!=document.assine.ufCobrBack.value){
			f=true;
			alert("quando alterados, o cep e/ou o estado do endereço de cobrança devem ser submetidos no botão \"prosseguir\" !");
			return;
		}
		//if(document.assine.roteirizadoCobr.value=='false')transfEndNaoRot('Cobr');
		concluiEndFSem();	
	}else{
		//if(document.assine.roteirizadoCobr.value=='false')transfEndNaoRot('Cobr');
		concluiEndFSem();
	}
}

function concluiEndFSem(){
	if(document.assine.askEnderecoFSem.value=="S"){ 
		for(i=0; i<aCpFS.length; i++){
			eval("cp=document.assine."+aCpFS[i].cp);
			if(cp.value==""){
				alert(aCpFS[i].msgm);
				error(cp);
				return;
			}
		}
		if(document.assine.cdCepFSem.value!=document.assine.cepFSemBack.value||document.assine.sgUfFSem.value!=document.assine.ufFSemBack.value){
			f=true;
			alert("quando alterados, o cep e/ou o estado do endereço de fim-de-semana devem ser submetidos no botão \"prosseguir\" !");
			return;
		}
		//if(document.assine.roteirizadoFSem.value=='false')transfEndNaoRot('FSem');
		assine.submit();
	}else{
		//if(document.assine.roteirizadoFSem.value=='false')transfEndNaoRot('FSem');
		assine.submit();
	}
}

