var vc_cart = '.vc_cart';
var vc_cart_right = 'vc_right_side';
var vc_cart_header = '.vc_header';
var vc_cart_body = '.vc_body';
var vc_cart_form = '.vc_form';
var default_counter = '.cart-header__desc';

function initialize() {
	var loc = $(location).attr('hostname');
	if(loc == 'officemaps.ru'){
		if(getCookie('lat') == null || getCookie('lng') == null){
			if (navigator.geolocation) {
				navigator.geolocation.getCurrentPosition(onSuccess);
			}
		}
	}
}

function ishelp() {
	if(getCookie('nohelp') == null){
		var all_height = $(document).outerHeight();
		$('.bg-dark').height(all_height);
		var toppoint = $('.o-vars tbody').offset().top;
		var leftpointwidth = $('.o-vars').offset().left;
		var cellwidth = $('.o-vars').width();
		var cellheight = $('.o-vars tbody tr:first td').outerHeight();
		$('.bg-dark .central-row td:first').width(leftpointwidth);
		$('.bg-dark td:first').height(toppoint);
		$('.bg-dark .active-block').attr('style', 'width:'+cellwidth+'px; height:'+cellheight+'px');
		$('.bg-dark').fadeIn('fast');
		var sscroll = toppoint - 100
		$('html,body').animate({ scrollTop: sscroll}, 'fast');
	}
	$('.bg-dark').on('click', function(){
		$('.bg-dark').fadeOut();
		createCookie('nohelp', 1, 30, '.officemaps.ru');
	})
}

function onSuccess(position) {
	$.post('/realty/realty/getDetailAddress', {'lat':position.coords.latitude, 'lng':position.coords.longitude}, function(res){
		if(res > 0){
			createCookie('district', res, 367);
		}
	})
}

function recountCart(){
	var cookies = getCookies();
	var ids = [];
	$.each(cookies, function(key, val){
		if(key.indexOf('product_') != -1){
			var id = key.split('_');
			ids.push(id[1]);
		}
	})
	if(ids.length > 0){
		$.post('/realty/realty/get_cart_products', {ids : JSON.stringify(ids)}, function($res){
			var data = $.parseJSON($res);
			if (data !== false && data != null){
				var box = $(vc_cart_body).find('tbody');
				$(box).empty();
				var cartdata = '';
				var total_count = 0;
				var p_order_data = [];
				$.each(data, function(key, val){
					var count = getCookie('product_'+val.id);
					var iprice = (val.price > 1) ? 'от '+val.price+' руб./м<sup>2</sup>' : '';
					cartdata+= '<tr><td style="width:70px"><img style="width:65px" src="/uploads/market/small/'+val.image+'"></td><td><a href="https://'+val.url+'.officemaps.ru" target="_blank">'+val.name+'</a></td><td>'+iprice+'</td><td><span onclick="removefromvbcart('+val.id+', this); return false;" class="delete_it">&times;</span></td></tr>';
					$('[data-id="'+val.id+'"]').addClass('buyed');
					p_order_data.push(val.id);
					total_count++;
				})
				var order_data = {'products':JSON.stringify(p_order_data)}
				$('.order_data').empty().val(JSON.stringify(order_data));
				$(box).html(cartdata);
				$(vc_cart_header).find('i').empty().text(total_count);
				$('.h-list .o-amount').empty().text(total_count);
				$('.tlb_list i').empty().text(total_count);
				$(vc_cart).fadeIn('fast');
				$('.toolbar_mb').addClass('hidden');
			} else {
				$(vc_cart).hide();
				$('.toolbar_mb').removeClass('hidden');
				$(vc_cart_form).hide();
				$('.order_data').empty()
			}
		})
	} else {
		$(vc_cart_header).find('i').empty().text('0');
		$('.h-list .o-amount').empty().text('0');
		$('.tlb_list i').empty().text('0');
	}
}

function subme_filter(el){
	var data = $(el).serialize();
	$(el).parent().find('.error').hide();
	$.post('/realty/realty/subme_filter', data, function(res){
		if(res == 1){
			$(el).hide();
			$(el).parent().find('.success').fadeIn('fast');
			createCookie('nosubb', 1, 1);
			setTimeout(function(){
				$(el).parent().fadeOut();
			}, 3000)
		} else {
			$(el).parent().find('.error').fadeIn('fast');
		}
	})
}

function addreview(el){
	var data = $(el).serialize();
	$(el).parent().find('.error').hide();
	$.post('/realty/realty/addreview', data, function(res){
		if(res == 1){
			$(el).hide();
			$(el).parent().find('.success').fadeIn('fast');
			setTimeout(function(){
				$(el).parent().fadeOut();
			}, 3000)
		} else {
			$(el).parent().find('.error').fadeIn('fast');
		}
	})
}

function nosubb(el){
	createCookie('nosubb', 1, 1);
	$(el).parent().parent().fadeOut();
}

function request_product(obj){
	var data = $(obj).serialize();
	$.ajax({
		url: '/realty/realty/create_order',
		data: data,
		type: 'POST',
		success: function (res) {
			if(res != 0){ 
	//			var data = $.parseJSON(res);
				$(obj).hide();
				$(obj).parent().find('.success').fadeIn('fast');
				intrumSend(data);
			}
		}
	})
}

function intrumSend(form) {
    $.ajax({
        type: "POST",
        url: "/templates/roistat/form.php",
        data: form,
        cache: false,
        success: function(result){
            console.log('Success!');
        }
    });
}

function vc_order(obj){
	var data = $(obj).serialize();
	$.ajax({
		url: '/realty/realty/create_order',
		data: data,
		type: 'POST',
		success: function (res) {
			if(res != 0){
				var data = $.parseJSON(res);
				$(vc_cart_form+' form').hide();
				$(vc_cart_header).empty().text('Запрос принят');
				$(vc_cart_form).find('a').attr('href', '/realty/order/'+data).css('display', 'inline-block');
				$('.vc_success').fadeIn('fast');
				$(vc_cart_form).css('overflow', 'visible');
				var cookies = getCookies();
				$.each(cookies, function(key, val){
					if(key.indexOf('product_') != -1){
						var id = key.split('_');
						removeCookie('product_'+id[1]);
					}
				})
				$('.order_data').empty();
				$(vc_cart_body).find('tbody').empty();
				$('.o-card_add').each(function(){
					$(this).removeClass('buyed');
				})
			}
		}
	})
}

function keyupnumber(obj){
	if (/\D/g.test(obj.value)){obj.value = obj.value.replace(/\D/g, '');}
}

function clearq(obj){
	$(obj).val('');
}

function removefromvbcart(item, bt){
	removeCookie('product_'+item);
	$('[data-id="'+item+'"]').removeClass('buyed');
	$(bt).parents('tr').remove();
	if($(vc_cart_body+' tr').length >= 1){
		recountCart();
	} else {
		$(vc_cart).hide();
		$('.toolbar_mb').removeClass('hidden');
		$('.h-list .o-amount').empty().text('0');
		$('.tlb_list i').empty().text('0');
	}
}

function setCartPosition(){
	setTimeout(function(){
		if($(vc_cart).hasClass('vc_hidden')){
			createCookie('cart_position', 0, 1);
			$('.toolbar_mb').removeClass('hidden');
		} else {
			createCookie('cart_position', 1, 1);
			$('.toolbar_mb').addClass('hidden');
		}
	}, 200)
}

function checkCartPosition(){
	if(getCookie('cart_position') == null){
		createCookie('cart_position', 1, 1);
	} else {
		var cart_position = getCookie('cart_position');
		if(cart_position == 0){
			$(vc_cart).addClass('vc_hidden');
			$('.toolbar_mb').removeClass('hidden');
		}
	}
}

function addtovbcart($id){
	$.post('/realty/realty/add_action/'+$id, '');
	if(getCookie('product_'+$id) != null){
		var count = parseInt(getCookie('product_'+$id)) + 1;
		createCookie('product_'+$id, count, 1)
	} else {
		createCookie('product_'+$id, 1, 1)
	}
	recountCart(true);
	$(vc_cart).removeClass('vc_hidden');
	$(vc_cart_body).show();
	$(vc_cart_form).hide();

}

$(function(){
	initialize();



	recountCart();
	$(vc_cart_header+', '+vc_cart_body+' > p, .h-list, .tlb_list').on('click', function(){
		$(vc_cart).toggleClass('vc_hidden');
		setCartPosition();
	})

	$(vc_cart_body+' button,'+vc_cart_form+' form > p').on('click', function(){
		$(vc_cart_body+','+vc_cart_form).slideToggle('fast');
		$('input[name="message"]').addClass('outform').removeAttr('required')
	})
	checkCartPosition();
	$('[data-product-variant]').change(function(){
		var id = $(this).find('option:selected').val();
		var buyform = $(this).parents('[data-product-scope]').find('[data-product-available] form');
		$(buyform).removeAttr('action').removeAttr('onsubmit');
		$(buyform).attr('onsubmit', 'addtovbcart('+id+'); return false;').attr('action', '/shop/cart/addProductByVariantId/'+id);
	})

	if($('[data-subscribe-params]').length > 0 && getCookie('nosubb') == null){
		setTimeout(function(){
			$('[data-subscribe-params]').fadeIn();
		}, 5000)
	}
	/*
	if($('.o-vars tr').length > 0){
		setTimeout(ishelp(), 1000);
	}*/

})

/* helper functions */

function createCookie(name, value, days) {
    var expires;

    if (days) {
        var date = new Date();
        date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
        expires = "; expires=" + date.toGMTString();
    } else {
        expires = "";
    }
	var baseDomain = '.apartmaps.ru';
    document.cookie = encodeURIComponent(name) + "=" + encodeURIComponent(value) + expires + "; domain=" + baseDomain +"; path=/";
}

function getCookie(name) {
    var nameEQ = encodeURIComponent(name) + "=";
    var ca = document.cookie.split(';');
    for (var i = 0; i < ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0) === ' ') c = c.substring(1, c.length);
        if (c.indexOf(nameEQ) === 0) return decodeURIComponent(c.substring(nameEQ.length, c.length));
    }
    return null;
}

function getCookies(){
  var pairs = document.cookie.split(";");
  var cookies = {};
  for (var i=0; i<pairs.length; i++){
    var pair = pairs[i].split("=");
    cookies[pair[0]] = unescape(pair[1]);
  }
  return cookies;
}

function removeCookie(name) {
    createCookie(name, "", -1);
}