/* Pre Register */

//alert('Inicio do Arquivo: preRegister.js');

Event.observe(window, 'load', inicial);

function inicial(){

	//alert('Função: inicial');

		//Expande Form
		Event.observe($('openForm'), 'click', function(event){
													//Abre
													new Effect.toggle($('preRegister'),'blind',{
																								afterFinish:function(){
																														$('sexM').activate();
																													}
																								});
													//Esconde TODAS msgs
													$$('.frmMsg').each(Element.hide);
		}, false);

		//Submete Form
		Event.observe($('btn_prereg'), 'click', function(event){ submitPreRegister(); }, false);

		/**
		* efeitos...
		*/

		new Effect.Highlight($('glow'), {
				startcolor:'#f5f5f5',
		        endcolor:'#FFFF99',
		        duration: 1.0
		         });
		new PeriodicalExecuter(function(pe) {
			new Effect.Highlight($('glow'), {
				startcolor:'#f5f5f5',
		        endcolor:'#FFFF99',
		        duration: 1.0
		         });
		}, 2);

	//alert('/Função: inicial');

}//inicial

	function submitPreRegister(){

		//Campos
		//var campos	= $('preRegister');
		//Dados
		var dados	= $('preRegister');

		//AJAX
		var url = './rpc/preRegister.php';
		var pars = dados.serialize();
		var myAjax = new Ajax.Request( url, {
			method: 'post',
			parameters: pars,
			onLoading: function() {

				//Esconde TODAS msgs
				$$('.frmMsg').each(Element.hide);

				//Load - exibe
				while($('load').visible()==false){
					Element.show($('load'));
				}

			},//onLoading
			onComplete: function(originalRequest) {

				//Load - esconde
				while($('load').visible()==true){
					Element.hide($('load'));
				}

				//Copia endereco de email para a msg de sucesso
				$('emailStr').innerHTML = $F('email');


				//Resposta da requisicao
				var resp = originalRequest.responseText;

				//transforma JSON em Objeto
				resp = resp.evalJSON(true);

				//facilita
				var valido 	= resp.valido;
				var erros 	= resp.erros;
				var mail 	= resp.mail;
				var bd 		= resp.bd;

				debug(originalRequest.responseText);


				//Verifica se esta valido
				if(valido==1){

					//Erro BD
					if(bd==0){
						//msg de erro no persist
						Element.show($('erroBD'));
					}
					// Duplicado
					else if(bd==-1){
						//msg de Email DUPLICADO
						Element.show($('erroMail'));
					}
					//EMAIL enviado
					else if(mail==1){

						//frufu
						new Effect.toggle($('preRegister'),'blind');

						//msg de sucessso
						Element.show($('sucesso'));

						//Limpa os campos
						dados.reset();

						//Remove as classes de Erro
						$$('#'+dados.id+' input, #'+dados.id+' p').invoke("removeClassName", "campoErro").invoke("removeClassName", "sexErro").invoke("removeClassName", "studentErro");

					}

				}else{

					var showBoxErro = false;

					//LOOP nos inputs do FORM
					dados.getInputs().each(function(v, k){

						var vId = v.id;

						//Define qual classe deve ser utilizada
						var classAdd;
						if(vId=="sexM" || vId=="sexF"){
							vId = "sex";
							classAdd = "sexErro";
						}
						else if(vId=="stud1" || vId=="stud0"){
							vId = "student";
							classAdd = "studentErro";
						}else{
							classAdd = "campoErro";
						}

						var campoErro = eval('erros.'+vId);

						// COM ERRO
						if(campoErro==1){
							if($(vId).hasClassName(classAdd)==false){
								$(vId).addClassName(classAdd);
								debug("ERRO: "+vId+" [ADD CLASS: "+classAdd+"]");
							}else{
								debug("ERRO: "+vId+" [NO ADD CLASS]");
							}

							//define que deve ser exibido o box de erro
							showBoxErro = true;

						}
						// SEM ERRO
						else if(campoErro==0){
							$(vId).removeClassName(classAdd);
							debug("OK: "+vId);
						}


					});// fim do LOOP


				}// Else VALIDO


				//Exibe/Esconde box de erro
				if(showBoxErro==true){
					Element.show($('erro'));
				}else if($('erro').visible()==true){
					Element.hide($('erro'));
				}


			},//onComplete
			onFailure: function() {

			}//onFailure
		});

	}// submitPreRegister()

//alert('Fim do Arquivo: preRegister.js');