﻿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' ? 'span.label' : '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(el.name == 'toc' ? 'span.label' : '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' : "Please tick the check box to accept the Terms and Conditions.",
'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)
{
	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\')));" title="Close"><span class="a11y">Close</span></a>';
	div += '</div>';
	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();
			return(!($(this).parent().siblings().removeClass('expanded') && $(this).parent().toggleClass('expanded')));
		}
	});
	if (id.indexOf('createAccount')) {
        $('a', li).click(function() {
			var i = $('img#imgCaptcha');
			if (!i.attr('src')) {
				i.attr('src', 'captcha.php?t=1329092830');
			}
		});
	}
}
$(document).ready(function (){
	signupInsertDropdown('#topLinks > li.signIn', "<form action=\"/users-signup/\" method=\"post\">\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<input type=\"hidden\" name=\"event\" value=\"users.signup#login\" />\n\t\t\t\t\t\t<label><span class=\"a11y\">Username <\/span><input type=\"text\" name=\"nick\" value=\"\" class=\"altStyle hasPlaceholder\" title=\"Username\" /><\/label>\n\t\t\t\t\t\t<label><span class=\"a11y\">Password <\/span><input type=\"password\"  name=\"password\"  value=\"\" class=\"altStyle hasPlaceholder\" title=\"Password\" /><span class=\"tip\">Login and password are case sensitive<\/span><\/label>\n\t\t\t\t\t\t<label class=\"rememberMe fl checkbox\"><input type=\"checkbox\" name=\"remember\" value=\"1\" /> Remember me<\/label>\n\t\t\t\t\t\t<a class=\"lostPassword fr\" href=\"/forgot-password/\" id=\"urlForgot\">Forgot your password?<\/a>\n\t\t\t\t\t\t<div class=\"cb tal\"><button type=\"submit\" class=\"submit\">Sign in<\/button><\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/form>");
	signupInsertDropdown('#topLinks > li.createAccount', "<form method=\"post\" action=\"/users-signup/\" id=\"formSignUp\">\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<input type=\"hidden\" name=\"event\" value=\"users.signup#create\" />\n\t\t\t\t\t\t<label><span class=\"labelText\">Username <\/span><input type=\"text\" class=\"altStyle\" name=\"nick\" value=\"\" maxlength=\"15\" /><span class=\"tip\"><\/span><\/label>\n\t\t\t\t\t\t<label><span class=\"labelText\">E-mail <\/span><input type=\"text\" class=\"altStyle\" name=\"email\" value=\"\" maxlength=\"50\" /><span class=\"tip\"><\/span><\/label>\n\t\t\t\t\t\t<label><span class=\"labelText\">Password <\/span><input type=\"password\" class=\"altStyle\" name=\"password\" value=\"\" /><\/label>\n\t\t\t\t\t\t<label><span class=\"labelText\">Re-type Password <\/span><input type=\"password\" class=\"altStyle\" name=\"password2\" value=\"\" /><span class=\"tip\">Login and password are case sensitive<\/span><\/label>\n\n\t\t\t\t\t\t<label class=\"subscribe checkbox\"><input type=\"checkbox\"  name=\"subscribe\" value=\"1\" checked=\"checked\" /> I\'d like to recieve regular updates, freerolls, and other special events.<\/label>\n\t\t\t\t\t\t<span class=\"label checkbox\"><input type=\"checkbox\"  name=\"toc\" value=\"1\" id=\"acceptTOC\" /> <label for=\"acceptTOC\">You must accept the <a href=\"/terms-conditions.htm\" class=\"popup\" target=\"_blank\" id=\"terms-conditions\">Terms and conditions<\/a> to continue signing up<\/label><span class=\"tip\" style=\"padding-left: 0px; text-indent: 0\"><\/span><\/span>\n\t\t\t\t\t\t<label class=\"captcha\"><span class=\"labelText\">Verify Registration<\/span> <img height=\"28\" width=\"103\" alt=\"CAPTCHA image\"  id=\"imgCaptcha\"/> <span class=\"tal captchaFieldContainer\"><input type=\"text\" class=\"captchaField\" name=\"code\" value=\"\" id=\"captcha\" /><\/span><span class=\"tip\"><\/span><\/label>\n\n\t\t\t\t\t\t<button type=\"submit\" class=\"submit\">Submit<\/button>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/form>");

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