﻿function isEmail(email) {
	if (/^[a-zA-Z0-9!#$%&*+\/=?\_`{|}~-]+([\\.-][a-zA-Z0-9!#$%&*+\/=?^_`{|}~-]+)*@[a-zA-Z0-9]+([\.-]?[a-zA-Z0-9]+)*(\.[a-zA-Z]{2,})+$/.test(email)){return (true);}
	else{return (false);}
}

error = {

evFocus: function ()
{
},

evBlur: function ()
{
	error.check(this.form, this.name);
},

check: function (form, name)
{
	var el = form.elements[name];
	var v = $.trim(el.value);
	//alert(this.name);
	switch (name) {

		case 'nick':
			var reg = new RegExp('^[a-z0-9_\\.-]{4,15}$', 'ig');
			if (v == '') {
				error.trigger(el, 'err1');
			}
			else if (! reg.test(v)) {
				error.trigger(el, 'err2');
			} else {
				error.ok(el);
			}
			break;

		case 'email':
			if (!isEmail(v)) {
				error.trigger(el, 'err3');
			}
			else {
				error.ok(el);
			}
			break;

		case 'password':
			var pv = $.trim(form.elements['password2'].value);
            if (v == "") {
            	error.trigger(el, 'err4');
            }
			else {
				if (pv == "") {
					//error.trigger(el, 'err1');
					error.ok(el, false);
				}
				else if (pv != v) {
					error.trigger(el, 'err5');
				}
				else {
					error.ok(el);
				}
			}
			break;

		case 'password2':
			el = form.elements['password'];
			var pv = $.trim(el.value);
            if (pv == "") {
            	error.trigger(el, 'err4');
            }
			else if (pv != v) {
				error.trigger(el, 'err5');
			}
			else {
				error.ok(el);
			}
			break;

		case 'toc':
            if (!el.checked) {
            	error.trigger(el, 'err6');
            }
			else {
				error.ok(el, false);
			}
			break;

		case 'code':
            if (v == "") {
            	error.trigger(el, 'err10');
            }
			else {
				error.ok(el, false);
			}
			break;
	}
},

evSubmit: function ()
{
    var elF = this;
	error.isError = false;
    error.check(this, 'nick');
    error.check(this, 'email');
    error.check(this, 'password2');
    error.check(this, 'code');
    error.check(this, 'toc');
	return !error.isError;
},

trigger : function(el, code)
{
	if (typeof(error.messages) != "undefined" && typeof(error.messages[code]) != "undefined") {
		error.isError = true;
		var parent = $(el).closest(el.name == 'toc' ? 'dd' : 'dd');
        parent.addClass('error');
		var span = parent.children('.tip');
		if (span.size()) {
        	span.text(error.messages[code]);
		}
		else {
			$(el).after('<em class="tip errorTip">' + error.messages[code] + '</em>');
		}
	}
},

ok : function(el, empty)
{
	var parent = $(el).closest(el.name == 'toc' ? 'dd' : 'dd');
	parent.removeClass('error');
	if (typeof(empty) != "boolean" || empty != false) {
		parent.addClass('ok');
	}
	parent.children('.tip').text('');
},

isError : false

}
error.messages = {
'err1' : "Por favor, introduza o seu username na CasinoGrinder.",
'err2' : "Por favor corrige o nome de membro escolhido. (Min. 4 caracteres; Max. 15 caracteres; Sem espaços, caracteres aceitáveis: A-z, 0-9, -, .,",
'err3' : "Por favor o teu endereço electrónico",
'err4' : "Por favor introduz a tua palavra-chave.",
'err5' : "Palavras-chave não coincidem, por favor tenta de novo.",
'err6' : "Por favor clica na checkbox para aceitar os Termos e Condições.",
'err7' : "Este nick já está escolhido por outro utilizador - introduz outro nick por favor.",
'err8' : "Este endereço electrónico já está em uso. Se alguma vez te registaste, faz apenas login.",
'err9' : "Perdão, este endereço de IP está banido.",
'err10' : "Introduz o código mostrado.",
'err13' : "Ocorreu um erro técnico! Por favor tenta de novo."
};
function signupInsertDropdown(id, html)
{
	if(jQuery.browser.msie && !(jQuery.browser.opera) && (parseInt(jQuery.browser.version) < 7)) return; // ignore IE6 and lower
	var div ='';
	/*div = '<div class="headerDropdown"><div class="ctr"></div><div class="cbl"></div><div class="cbr"></div>' + html;
	div += '<a href="" class="hideDropdown" onclick="return(!($(this).parent().parent().removeClass(\'expanded\')));"></a>';
	div += '</div>';
	*/
	div = html;
	var li = $(id);
	//li.addClass('expanding');
	$('a', li).after(div);
	$('a', li).click(function(e) {
		var clickedEl = e.srcElement ? e.srcElement : e.target;
		if (!clickedEl.id || (clickedEl.id != "urlForgot" && clickedEl.id != "terms-conditions")) {
			this.blur();
			$(this).parent().siblings().removeClass('active');
			$(this).parent().toggleClass('active');
			return false;
		}
	});
	if (id.indexOf('createAccount')) {
        $('a', li).click(function() {
			var i = $('img#imgCaptcha');
			if (!i.attr('src')) {
				i.attr('src', 'captcha.php?t=1329978740');
			}
		});
	}
}
$(document).ready(function (){
	signupInsertDropdown('#toolbar ul.user > li.signIn', "<div class=\"form login\">\r\n\t<form action=\"/users-signup/\" method=\"post\">\r\n\t\t<input type=\"hidden\" name=\"event\" value=\"users.signup#login\" />\r\n\t\t<input type=\"text\" name=\"nick\" value=\"\" class=\"altStyle hasPlaceholder\" title=\"Nome de utilizador\" />\r\n\t\t<input type=\"password\"  name=\"password\"  value=\"\" class=\"altStyle hasPlaceholder\" title=\"Palavra-chave\" />\r\n\t\t<em class=\"tip\">Login e palavra-chave são sensiveis a maiúsculas<\/em>\r\n\t\t<label><input type=\"checkbox\" name=\"remember\" value=\"1\" /> Lembrar-me<\/label>\r\n\t\t<a href=\"/forgot-password/\" id=\"urlForgot\">Esqueceste a tua palavra-chave?<\/a>\r\n\t\t<button type=\"submit\">Iniciar sessão<\/button>\r\n\t<\/form>\r\n<\/div>");
	signupInsertDropdown('#toolbar ul.user > li.createAccount', "<div class=\"form registration\">\r\n\t<form method=\"post\" action=\"/users-signup/\" id=\"formSignUp\">\r\n\t<input type=\"hidden\" name=\"event\" value=\"users.signup#create\" />\r\n\t\t<dl>\r\n\t\t\t<dt><label for=\"reg-username\">Nome de utilizador<\/label><\/dt>\r\n\t\t\t<dd><input type=\"text\" class=\"altStyle\" name=\"nick\" value=\"\" maxlength=\"15\" id=\"reg-username\" /><\/dd>\r\n\t\t\t<dt><label for=\"reg-email\">E-mail<\/label><\/dt>\r\n\t\t\t<dd><input type=\"text\" class=\"altStyle\" name=\"email\" value=\"\" id=\"reg-email\" maxlength=\"50\" /><\/dd>\r\n\t\t\t<dt><label for=\"reg-password\">Palavra-chave<\/label><\/dt>\r\n\t\t\t<dd><input type=\"password\" class=\"altStyle\" name=\"password\" value=\"\" id=\"reg-password\" /><\/dd>\r\n\t\t\t<dt><label for=\"reg-password\">Re-escrever a palavra-chave<\/label><\/dt>\r\n\t\t\t<dd><input type=\"password\" class=\"altStyle\" name=\"password2\" value=\"\" id=\"reg-password2\" /> <em class=\"tip\">Login e palavra-chave são sensiveis a maiúsculas<\/em><\/dd>\r\n\t\t\t<dt>&nbsp;<\/dt>\r\n\t\t\t<dd class=\"agree\">\r\n\t\t\t\t<label><input type=\"checkbox\"  name=\"subscribe\" value=\"1\" /> Gostaria de receber actualizações regulares, freerolls, e outros eventos especiais.<\/label>\r\n\t\t\t\t<label><input type=\"checkbox\"  name=\"toc\" value=\"1\" id=\"acceptTOC\" /> Terás de aceitar os <a href=\"/page/terms-conditions.htm\" class=\"popup\" target=\"_blank\" id=\"terms-conditions\"> Termos & Condições <\/a> para continuar com a inscrição.<\/label>\r\n\t\t\t\t<em class=\"tip errorTip\"><\/em>\r\n\t\t\t<\/dd>\r\n\t\t\t<dt><span class=\"clr\"><\/span><label for=\"reg-captcha\">Verificar registo<\/label><\/dt>\r\n\t\t\t<dd class=\"captcha\">\r\n\t\t\t\t<img width=\"103\" height=\"32\" id=\"imgCaptcha\" alt=\"CAPTCHA image\"   /> <span><input type=\"text\" id=\"reg-captcha\" value=\"\" name=\"code\" /><\/span>\r\n\t\t\t\t<em class=\"tip errorTip\"><\/em>\r\n\t\t\t<\/dd>\r\n\t\t\t<dt>&nbsp;<\/dt>\r\n\t\t\t<dd><button type=\"submit\">Submeter<\/button><\/dd>\r\n\t\t<\/dl>\r\n\t<\/form>\r\n<\/div>");

	var context = $('#formSignUp');
	//prikabinam
	//$('input', context).focus(error.evFocus);
	$('input', context).blur(error.evBlur);
	$(context).submit(error.evSubmit);
	if (fixPlaceholders) {
		fixPlaceholders();
	}
});
