function f_clientWidth() {
	return f_filterResults (
		window.innerWidth ? window.innerWidth : 0,
		document.documentElement ? document.documentElement.clientWidth : 0,
		document.body ? document.body.clientWidth : 0
	);
}
function f_clientHeight() {
	return f_filterResults (
		window.innerHeight ? window.innerHeight : 0,
		document.documentElement ? document.documentElement.clientHeight : 0,
		document.body ? document.body.clientHeight : 0
	);
}
function f_scrollLeft() {
	return f_filterResults (
		window.pageXOffset ? window.pageXOffset : 0,
		document.documentElement ? document.documentElement.scrollLeft : 0,
		document.body ? document.body.scrollLeft : 0
	);
}
function f_scrollTop() {
	return f_filterResults (
		window.pageYOffset ? window.pageYOffset : 0,
		document.documentElement ? document.documentElement.scrollTop : 0,
		document.body ? document.body.scrollTop : 0
	);
}
function f_filterResults(n_win, n_docel, n_body) {
	var n_result = n_win ? n_win : 0;
	if (n_docel && (!n_result || (n_result > n_docel)))
		n_result = n_docel;
	return n_body && (!n_result || (n_result > n_body)) ? n_body : n_result;
}

jQuery.fn.center = function() 
{
  	myWidth = f_clientWidth() + f_scrollLeft();
  	myHeight = f_clientHeight() + f_scrollTop();  	  	
	$(this).css({
		"z-index":"5000",
		"position" : "absolute",
		"left" : (Math.round(myWidth / 2 - $(this).width() / 2)) + "px",
		"top" : (Math.round(myHeight /2 - $(this).height() / 2)) + "px"
	});	
	return this;
}
/**
 * when dom-document is ready
 */
$(document).ready(function() {
	if ($('#hasLoginMsg').val() == 1 && $('#isLogged').val() == 0) {		
		loginWindowOpen();
	}		
	$.ajaxSetup({
		global: true,
  		beforeSend: function () {
  			$('#ajaxSpinnerImg').center();
  			$('#ajaxSpinnerImg').show();
  		},
  		complete: function() {
  			$('#ajaxSpinnerImg').hide();
  		}
	});	
}
);
/**
 * opens modal login window
 */
function loginWindowOpen() {
	$('#loginWindow').modal();
	$('#loginWindowContainer').show();
	$('#loginWindowContainer2').hide();
}
/**
 * close modal login window
 */
function loginWindowClose() {	
	$.modal.close();
}
/**
 * chack if user is logged
 */
function isLoggedCheck() {
	if ($('#isLogged').val() == 1) {
		return true;
	} else {
		$('#loginWindow').modal();
		return false;
	}
}
/**
 * password recovery
 */
function passRecovery(step) {
	switch (step) {
		case 1 :
			var ajax_url = '/passrecovery/getemail';
			$.ajax({
		  		url: ajax_url,
		  		cache: false,
		  		success: function(html){			    		
		    		$('#loginWindowContainer').hide();
		    		$('#loginWindowContainer2').html(html);
		    		$('#loginWindowContainer2').show();
		  		}
			});
		break;
		case 2 :
			if ($.trim($('#emailForRecovery').val()) != '') {
				var ajax_url = '/passrecovery/searchuser';
				$.ajax({
			  		url: ajax_url,
			  		cache: false,
			  		type: "POST",
			  		data: "email="+$('#emailForRecovery').val(),
			  		success: function(html){		  			
			    		$('#loginWindowContainer').hide();
			    		$('#loginWindowContainer2').html(html);
			    		$('#loginWindowContainer2').show();
			  		}
				});
			} else {
				alert ('Введите логин или email.');
			}
		break;		
	}
}
/**
 * back step history for recovery cards(forms)
 */
function passRecoveryBack(step) {
	switch (step) {
		case 1 :    		
		    $('#loginWindowContainer').show();
		    $('#loginWindowContainer2').hide();		    
		break;
		case 2 :			
			var ajax_url = '/passrecovery/getemail';
			$.ajax({
		  		url: ajax_url,
		  		cache: false,
		  		success: function(html){			    		
		    		$('#loginWindowContainer').hide();
		    		$('#loginWindowContainer2').html(html);
		    		$('#loginWindowContainer2').show();
		  		}
			});
		break;		
	}
}

function checkContacts() {	
	var ret = true;
	var errorClassName = "error";
	var inputs = [
		{'id':'name', 'type':'input', 'errorMgs':'Введите имя'},
		{'id':'email', 'type':'email', 'errorMgs':'Email не введен или введен неверно'},		
		{'id':'msg', 'type':'input', 'errorMgs':'Введите описание'},
		{'id':'captcha-input', 'type':'input', 'errorMgs':'Введите код на катринке'}
	];		
	var cnt = inputs.length;
	for (var i=0; i<cnt; i++) {
		var selector = '#'+inputs[i]['id'];
		$(selector).parent().removeClass(errorClassName);
		$(selector).parent().find("b").html('');
		
		if (inputs[i]['type'] == 'input') {
			if($.trim($(selector).val()) == '') {			
				$(selector).parent().addClass(errorClassName);
				$(selector).parent().find("b").html(inputs[i]['errorMgs']);
				ret = false;
			}
		} else if (inputs[i]['type'] == 'email') {			
			var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/ ;
			var email = $.trim($(selector).val());
			if(!email.match(filter)) {
				$(selector).parent().addClass(errorClassName);
				$(selector).parent().find("b").html(inputs[i]['errorMgs']);
				ret = false;
			}
		}
	}
	var selector = '#pwd';
	$(selector).parent().removeClass(errorClassName);
	$(selector).parent().find("b").html('');
	
	return ret;
}

function checkComment() {	
	var ret = true;
	var errorClassName = "error";
	var inputs = [
		{'id':'name', 'type':'input', 'errorMgs':'Введите имя'},
		{'id':'email', 'type':'email', 'errorMgs':'Email не введен или введен неверно'},		
		{'id':'msg', 'type':'input', 'errorMgs':'Введите описание'},
		{'id':'captcha-input', 'type':'input', 'errorMgs':'Введите код на катринке'}
	];		
	var cnt = inputs.length;
	for (var i=0; i<cnt; i++) {
		var selector = '#'+inputs[i]['id'];
		$(selector).parent().removeClass(errorClassName);
		$(selector).parent().find("b").html('');
		
		if (inputs[i]['type'] == 'input') {
			if($.trim($(selector).val()) == '') {			
				$(selector).parent().addClass(errorClassName);
				$(selector).parent().find("b").html(inputs[i]['errorMgs']);
				ret = false;
			}
		} else if (inputs[i]['type'] == 'email') {			
			var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/ ;
			var email = $.trim($(selector).val());
			if(!email.match(filter)) {
				$(selector).parent().addClass(errorClassName);
				$(selector).parent().find("b").html(inputs[i]['errorMgs']);
				ret = false;
			}
		}
	}
	var selector = '#pwd';
	$(selector).parent().removeClass(errorClassName);
	$(selector).parent().find("b").html('');
	
	return ret;
}

function checkReg() {	
	var ret = true;
	var errorClassName = "error";
	var inputs = [
		{'id':'fio', 'type':'input', 'errorMgs':'Введите ФИО'},
		{'id':'email', 'type':'email', 'errorMgs':'Email не введен или введен неверно'},		
		{'id':'phone', 'type':'input', 'errorMgs':'Введите телефон'},
		{'id':'captcha-input', 'type':'input', 'errorMgs':'Введите код на катринке'}
	];		
	var cnt = inputs.length;
	for (var i=0; i<cnt; i++) {
		var selector = '#'+inputs[i]['id'];
		$(selector).parent().removeClass(errorClassName);
		$(selector).parent().find("b").html('');
		
		if (inputs[i]['type'] == 'input') {
			if($.trim($(selector).val()) == '') {			
				$(selector).parent().addClass(errorClassName);
				$(selector).parent().find("b").html(inputs[i]['errorMgs']);
				ret = false;
			}
		} else if (inputs[i]['type'] == 'email') {			
			var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/ ;
			var email = $.trim($(selector).val());
			if(!email.match(filter)) {
				$(selector).parent().addClass(errorClassName);
				$(selector).parent().find("b").html(inputs[i]['errorMgs']);
				ret = false;
			}
		}
	}
	var selector = '#pwd';
	$(selector).parent().removeClass(errorClassName);
	$(selector).parent().find("b").html('');
	
	return ret;
}

function checkCab() {	
	var ret = true;
	var errorClassName = "error";
	var inputs = [
		{'id':'fio', 'type':'input', 'errorMgs':'Введите ФИО'},
		{'id':'email', 'type':'email', 'errorMgs':'Email не введен или введен неверно'}		
	];		
	var cnt = inputs.length;
	for (var i=0; i<cnt; i++) {
		var selector = '#'+inputs[i]['id'];
		$(selector).parent().removeClass(errorClassName);
		$(selector).parent().find("b").html('');
		
		if (inputs[i]['type'] == 'input') {
			if($.trim($(selector).val()) == '') {			
				$(selector).parent().addClass(errorClassName);
				$(selector).parent().find("b").html(inputs[i]['errorMgs']);
				ret = false;
			}
		} else if (inputs[i]['type'] == 'email') {			
			var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/ ;
			var email = $.trim($(selector).val());
			if(!email.match(filter)) {
				$(selector).parent().addClass(errorClassName);
				$(selector).parent().find("b").html(inputs[i]['errorMgs']);
				ret = false;
			}
		}
	}
	var selector = '#pwd';
	$(selector).parent().removeClass(errorClassName);
	$(selector).parent().find("b").html('');
	
	return ret;
}

/**
 * check password in cabinet
 */
function checkPass() {
	if ($('#pass1') && $('#pass2')) {
		if ($('#pass1').val() != $('#pass2').val()) {
			$("#pa1").text('Парольи должны совпаддать.');
			return false;			
		}		
		if ($('#pass1').val().length < 6) {
			$("#pa1").text('Пароль должен содержать минимум 6 знаков.');
			return false;			
		}
	}
	return true;
}
