var focus = false;
var validator_se = new FormValidator({
	onFailure: function(id, message){
		var ct = message;
		ct = '<div class="error_message_form">' + ct + '</div>';
		Element.insert($(id), {after: ct});
		if(!focus){
			$(id).focus();
			focus = true;
		}
	}
});
var validator_cp =  new FormValidator({
	onFailure: function(id, message){
		var ct = message;
		ct = '<div class="error_message_form">' + ct + '</div>';
		Element.insert($(id), {after: ct});
		if(!focus){
			$(id).focus();
			focus = true;
		}
	}
});
function initialize_pass_forgot(event){
	if($('email_change')) $('email_change').value = ''; 
	if($('password'))	$('password').value = '';
	validator_cp.register('emailexists',validate_email_existance);
	validator_se.register('emailexists',validate_email_existance);
	var email_required = {
		id : ['email'],
		type: 'required',
		message: "Acest câmp este obligatoriu."
	};
	var email_validator = {
		id : 'email',
		type: 'email',
		message: 'Email-ul completat nu are o formă corectă.'
	};
	var email_exists_validator = {
		id : 'email',
		type: 'emailexists',
		message: 'Email-ul completat nu exista in baza noastra de date.'
	};
	if($('send_code_submit')){
		validator_se.add(email_required);
		validator_se.add(email_validator);
		validator_se.add(email_exists_validator);
		Event.observe($('send_code_submit'), 'click', submit_send_code_form);
	}
	if($('change_pass_submit')){
		email_required.id = ['email_change', 'password', 'password_confirm'];
		email_validator.id = 'email_change';
		email_exists_validator.id = 'email_change';
		validator_cp.add(email_required);
		validator_cp.add(email_validator);
		validator_cp.add(email_exists_validator);
		validator_cp.add({
		id : 'password_confirm',
		type: 'equals|id=password',
		message: 'Parolele nu coincid!'
	});
		Event.observe($('change_pass_submit'), 'click', submit_change_pass_form);
	}
	
	
	//event observers
	
	
};
function submit_send_code_form(event){
	clear_errors();
	if(validator_se.validateAll()){
		new Ajax.Request('/user/ajax-send-pass-change-code/format/json',{
			method: 'post',
			asynchronous: false,
			parameters: {
				email: $('email').value
			},
			 onSuccess: function(transport) {
				 var sent = transport.responseJSON.sent;
				if(!sent) {
				 	//sent email
				 	$('send_code_div').innerHTML = '<div class="error_message_form">Ne pare rău, dar e-mail-ul cu codul unic nu a putut fi trimis.' +
				 	' Aceasta se datorează faptului că aceasta nu este prima încercare de recuperare a parolei din ultima ora și linkul de verificare v-a fost ' +
				 	'deja trimis prin e-mail. În caz contrar, a apărut o eroare. Vă rugăm să reveniți mai tarziu.</div>';
				 }else{
				 	$('send_code_div').innerHTML = 'Succes! Un link de verificare a fost trimis la adresa de e-mail: <b>' + $('email').value +'</b>. Va rugăm să vă verificați e-mail-ul.';
				 }
			}
		});
	}
}
function submit_change_pass_form(event){
	clear_errors();
	if(validator_cp.validateAll()){
		if(checkCodeEmailValid()){
			$('change_pass_form').submit();
		}else{
			var ct = "Ne pare rău, dar acest link nu este valid pentru adresa de e-mail <b>" +
			$('email_change').value	+ "</b> sau a expirat. Vă rugăm să vă verificați adresa de e-mail "+
			"sau să vă <a href='" + $("pass_forgot_link").innerHTML + "'>retrimiteți un link unic.</a>";
		}
		Element.insert($("pass_forgot_link"), {before: ct});
	}
}
function clear_errors(){
	var ed = $A($$('.error_message_form'));
	ed.each(function(item){
		Element.remove(item);
	});
	focus = false;
}
function validate_email_existance(id, parameters){
	var ret = true;
	new Ajax.Request('/index/ajax-check-email/format/json', {
		asynchronous: false,
		method: 'post',
		parameters: {
			email: $(id).value
		},
		onSuccess: function(transport){
			var data = transport.responseJSON;
			if(data.exists == '0') {
				ret = false;
			}
		}
	});

	return ret;
}
function checkCodeEmailValid(){
	var em = $('email_change').value;
	var co = $('code').value;
	var valid = false;
	new Ajax.Request('/user/ajax-check-code/format/json',{
		method: 'post',
		asynchronous: false,
		parameters: {
			email: em,
			code: co
		},
		onSuccess: function(transport){ 
			var data = transport.responseJSON;
			valid = data.valid;	
		}
	});
	if(valid){
		return true;
	}
	return false;
}
Event.observe(window, 'load', initialize_pass_forgot);