$('document').ready(function(){
	var $lastFocusedElement;
	var $emailField = $("input#email");
	var $passwordField = $("input#pass");
	var $inputHiddenEmail = $("input#hiddenEmail");
	var $aChangeMail = $("#changeMail");
		
	$("input#pass").passwordStrength();
	
	//Um auf das zuletzt fokusierte Element zurückzukehren nach dem das Pop-up geschlossen wird
	$("input, select").blur(function(){
		$lastFocusedElement = $(this);
	});

	$('#register input, #register select').focus(function(){
		$('span.hints').css('display','none');
		
		if ($(this).attr('id') == 'pass2') {
			$(this).parents('div').find('#passHint').css('display','block');
		} else {
			$(this).parent('p').children('span').css('display','block');
		}
	}).blur(function(){$('span.hints').css('display','none');});
	
	
	// Existiert das E-Mail Feld?
	if ($emailField.size() > 0) {
		bindEmailField($emailField);
	}
		
	$aChangeMail.click(function(){
		$("#emailP strong").hide();
		$(this).hide();
		$inputHiddenEmail.show();
		bindEmailField($inputHiddenEmail);
		$("#emailP span").removeClass('hidden');
	});
	
	function bindEmailField(_$emailField){
		_$emailField.blur(function(){
			var $emailTextfield = $(this);
			
			//E-Mail validieren
			var email = $(this).val();
			var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
			var result = reg.test(email);
			
			var pos = email.lastIndexOf("@")+1;
			// Host und Domain trennen
			var host = email.substr(0, pos);
			var eDomain = email.substr(pos).toLowerCase();
			
			$("#emailTypo img").click(function(e){
				$("ul#tips").empty();
				$(this).parent().hide();
				$lastFocusedElement.focus();
			});		
			if (email.length < 1) {
				$("#emailTypo").hide();
				return false;
			}
			if (result) {
				jQuery.ajax({
					type:"GET",
					url: "/register/checkTypo/0/value/" + eDomain,
					dataType:"json",
					success:function(data){
						// Sind Vorschläge vorhanden
						if(!data.tip){
							// Hat der Nutzer das Feld selbst korrigiert?
							if(!$("#emailTypo").is(':hidden')){
								$("#emailTypo").hide();
								$("ul#tips").empty();
							}
							return false;
						} 
						$("ul#tips").empty();
						$.each(data.tip, function(i, val){
							var proposition = host + this;
							
							var $elem = $("<li><a class='tip' href='#'>" + proposition + "</a></li>");
							$("ul#tips").append($elem);
							
						});
						$("a.tip").click(function(){
							var newEmail = $(this).html();
							_$emailField.val(newEmail);
							$("#emailTypo").hide();
							$("ul#tips").empty();
							$lastFocusedElement.focus();
							return false;
						});
						$("#notValidText").hide();
						$("#tipsText").show();
						$("#emailTypo").show();
					}
				});
			}  else {
				$("ul#tips").empty();
				$("#tipsText").hide();
				$("#notValidText").show();
				
				$("#emailTypo").show();
				
			}//end if
		});
		
		if (_$emailField.val().length > 1) {
			_$emailField.trigger('focus').trigger('blur');
		}	
	}
	


});
