﻿function isEmail(email) {
	if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/.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('label');
        parent.addClass('error');
		var span = parent.children('.tip');
		if (span.size()) {
        	span.text(error.messages[code]);
		}
		else {
			$(el).after('<span class="tip">' + error.messages[code] + '</span>');
		}
	}
},

ok : function(el, empty)
{
	var parent = $(el).closest('label');
	parent.removeClass('error');
	if (typeof(empty) != "boolean" || empty != false) {
		parent.addClass('ok');
	}
	parent.children('.tip').text('');
},

isError : false

}
error.messages = {
'err1' : "Please enter your PokerNews username.",
'err2' : "Please correct your chosen member name. (Min. 4 characters; Max. 15 characters; No spaces; Accepted characters: A-z, 0-9, -, ., _).",
'err3' : "Please correct your e-mail address.",
'err4' : "Please enter your password.",
'err5' : "Passwords do not match, please try again.",
'err6' : "You must accept the Terms and Conditions to continue signing up.",
'err7' : "This nick is already taken by another user - enter another nick please.",
'err8' : "This e-mail address is already in use. If you have already registered once - just login.",
'err9' : "Sorry, this IP address is banned.",
'err10' : "Enter the code shown.",
'err13' : "Technical error occured! Please try again."
};
function signupInsertDropdown(id, html)
{
	var div ='';
	div = '<div class="headerDropdown">' + html;
	div += '<a class="hideDropdown" onclick="return(!($(this).parent().parent().removeClass(\'expanded\')));" title="Close">Close</a>';
	div += '</div>';
	var li = $(id);
	$('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();
			return(!($(this).parent().siblings().removeClass('expanded') && $(this).parent().toggleClass('expanded')));
		}
	});
	if (id == "li#topLinksCreateAccount") {
        $('a', li).click(function() {
			var i = $('img#imgCaptcha');
			if (!i.attr('src')) {
				i.attr('src', '/captcha.php?t=1329991579');
			}
		});
	}
}
$(document).ready(function (){
	signupInsertDropdown('li#topLinksSignIn', "<form action=\"/register.htm\" method=\"post\">\n\t\t\t<div>\n\t\t\t\t<input type=\"hidden\" name=\"event\" value=\"users.signup#login\" />\n\t\t\t\t<label><span class=\"labelText\">Username <\/span><input type=\"text\" name=\"nick\" value=\"\" /><\/label>\n\t\t\t\t<label><span class=\"labelText\">Password <\/span><input type=\"password\"  name=\"password\"  value=\"\" /><span class=\"tip\">Login and password are case sensitive<\/span><\/label>\n\t\t\t\t<label class=\"checkbox\"><input type=\"checkbox\" name=\"remember\" value=\"1\" /> Remember me<\/label>\n\t\t\t\t<a class=\"lostPassword\" href=\"/forgot-password.htm\" id=\"urlForgot\">Forgot your password?<\/a>\n\t\t\t\t<button type=\"submit\">Sign in<\/button>\n\t\t\t<\/div>\n\t\t<\/form>");
	signupInsertDropdown('li#topLinksCreateAccount', "<p class=\"sameLoginInfo\">Already a member of PokerNews? No need for a separate account. <strong>Use your PokerNews login.<\/strong><\/p><form method=\"post\" action=\"/register.htm\" id=\"formSignUp\">\n\t\t\t<div>\n\t\t\t\t<input type=\"hidden\" name=\"event\" value=\"users.signup#create\" />\n\t\t\t\t<label><span class=\"labelText\">Username <\/span><input type=\"text\"  name=\"nick\" value=\"\" maxlength=\"15\" /><span class=\"tip\"><\/span><\/label>\n\t\t\t\t<label><span class=\"labelText\">E-mail <\/span><input type=\"text\"  name=\"email\" value=\"\" /><span class=\"tip\"><\/span><\/label>\n\t\t\t\t<label><span class=\"labelText\">Password <\/span><input type=\"password\" name=\"password\" value=\"\" /><\/label>\n\t\t\t\t<label><span class=\"labelText\">Re-type Password <\/span><input type=\"password\" name=\"password2\" value=\"\" /><span class=\"tip\">Login and password are case sensitive<\/span><\/label>\n\n\t\t\t\t<label class=\"checkbox\"><input type=\"checkbox\" name=\"subscribe\" value=\"1\" /> I\'d like to recieve regular updates, freerolls, and other special events.<\/label>\n\t\t\t\t<label class=\"checkbox\"><input type=\"checkbox\" name=\"toc\" value=\"1\" /> You must accept <a href=\"http://www.pokernews.com/terms-conditions.htm\">terms and conditions<\/a> to continue<span class=\"tip\"><\/span><\/label>\n\t\t\t\t<label class=\"captcha\"><span class=\"labelText\">Verify Registration<\/span> <img height=\"28\" width=\"103\" alt=\"CAPTCHA image\"  id=\"imgCaptcha\" /><input type=\"text\" name=\"code\" value=\"\" /><span class=\"tip\"><\/span><\/label>\n\n\t\t\t\t<button type=\"submit\" class=\"submit\">Submit<\/button>\n\t\t\t<\/div>\n\t\t<\/form>");

	var context = $('#formSignUp');
	//prikabinam
	//$('input', context).focus(error.evFocus);
	$('input', context).blur(error.evBlur);
	$(context).submit(error.evSubmit);
	if (fixPlaceholders) {
		fixPlaceholders();
	}
});
