/* jqEasy drop down sign in form
 * Examples and documentation at: http://www.jqeasy.com/
 * Version: 1.0 (22/03/2010)
 * No license. Use it however you want. Just keep this notice included.
 * Requires: jQuery v1.3+
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
 * OTHER DEALINGS IN THE SOFTWARE.
 */
$(document).ready(function() {
	$('.btnregister').click(function(e) {
		e.preventDefault();
		$("#frmsignin").hide();
		$("#frmpassrecovery").hide();
		$("#frmregister").toggle('fast',function() {
				$('#email').focus();
			});
		$(this).toggleClass("btnsigninon");
		$('#msg_signin').empty();
	});
	$('.btnsignin').click(function(e) {
		e.preventDefault();
		$("#frmregister").hide();
		$("#frmpassrecovery").hide();
		$("#frmsignin").toggle('fast',function() {
				$('#username').focus();
			});
		$(this).toggleClass("btnsigninon");
		$('#msg_signin').empty();
	});
	
	$('.btnsignin').mouseup(function() {
		return false;
	});
	$('.btnregister').mouseup(function() {
		return false;
	});
	$(document).mouseup(function(e) {
		if($(e.target).parents('#frmsignin').length==0) {
			$('.btnsignin').removeClass('btnsigninon');
			$('#frmsignin').hide('fast');
		};
		if($(e.target).parents('#frmregister').length==0) {
			$('.btnregister').removeClass('btnsigninon');
			$('#frmregister').hide('fast');
		};
	});
	
	$('#signin').ajaxForm({
		beforeSubmit: validateSignin,
		success: function(data) {
			if (data !== 'error') {
				$('#widget_user').remove();
				$('.l-right').prepend(data);
			} else {
				$('#msg_signin').html('Не вірний логін або пароль!');
				$('#username').focus();
			}
		}
	});
	$('#register').ajaxForm({
		beforeSubmit: validateRegister,
		success: function(data) {
			if (data=='OK') {
				$.get('/widget/user/show', null, function(data, status){
					if(status=='success' && !($('#register_form_reload').val() == '1')){
						$('#widget_user').remove();;
						$('.l-right').prepend(data);
					}else{
						window.location.reload();
					}
				});
				
			} else {
				$('#msg_reg').html(data);
				$('#email').focus();
			}
		}
	});
});

function validateSignin(formData, jqForm, options) { 
	var form = jqForm[0];
	var un = $.trim(form.username.value);
	var pw = $.trim(form.password.value);
	var unReg = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	var pwReg = /^[A-Za-z0-9!@#$%&*()_]{5,20}$/;
	var hasError = false;
	var errmsg = '';
	
	if (!un) { 
		errmsg = '<p>Введіть свій E-mail</p>';
		hasError = true;
	} else if(!unReg.test(un)) {
		errmsg = '<p>Вы маєте ввести коректний E-mail.</p>';
		hasError = true;
	}
	
	if (!pw) { 
		errmsg += '<p>Введіть пароль</p>';
		hasError = true;
	} else if(!pwReg.test(pw)) {
		errmsg += '<p>Пароль повинен бути 5 - 20 символів (a-z, 0-9, !, @, #, $, %, &, *, (, ), _).</p>';
		hasError = true;
	}
	
	if (!hasError) {
		$('#msg_signin').html('<p><img src="images/icons/loading.gif" alt="зачекайте..." /> зачекайте...</p>');
	} else {
		$('#msg_signin').html(errmsg);
	return false;
	}
}
function validateRegister(formData, jqForm, options) { 
	var form = jqForm[0];
	var email = $.trim(form.email.value);
	var pw = $.trim(form.reg_password.value);
	var cpw = $.trim(form.confirm_reg_password.value);
	var emailReg = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	var pwReg = /^[A-Za-z0-9!@#$%&*()_]{5,20}$/;
	var hasError = false;
	var errmsg = '';
	
	if (!email) { 
		errmsg = '<p>Введіть свій E-mail</p>';
		hasError = true;
	} else if(!emailReg.test(email)) {
		errmsg = '<p>Вы маєте ввести коректний E-mail.</p>';
		hasError = true;
	}
	
	if (!pw) { 
		errmsg += '<p>Введіть пароль</p>';
		hasError = true;
	} else if(!pwReg.test(pw)) {
		errmsg += '<p>Пароль має бути 5 - 20 символів (a-z, 0-9, !, @, #, $, %, &, *, (, ), _).</p>';
		hasError = true;
	}
	if (!cpw) { 
		errmsg += '<p>Підтвердіть пароль</p>';
		hasError = true;
	} else if(pw != cpw) {
		errmsg += '<p>Пароль не співпадає</p>';
		hasError = true;
	}
	
	if (!hasError) {
		$('#msg_reg').html('<p><img src="images/icons/loading.gif" alt="зачекайте..." /> зачекайте...</p>');
	} else {
		$('#msg_reg').html(errmsg);
	return false;
	}
}
