var cart_hover = true,
show_cart_hover = true;

// Отображение экрана загрузки AJAX.
function ShowLoadingScreen()
{
	var fade_div = document.getElementById('id_admin_forms_fade');

	if (fade_div == null)
	{
		// Создаем div
		fade_div = document.createElement("div");
		var body = document.getElementsByTagName("body")[0];
		body.appendChild(fade_div);

		fade_div.id = "id_admin_forms_fade";

		fade_div.style.zIndex = 999;

		fade_div.className = "shadowed";

		fade_div.style.position = 'absolute';
		fade_div.style.left = '50%';
		fade_div.style.top = '50%';

		var fade_div_img = document.createElement("img");
		fade_div_img.id = 'id_fade_div_img';
		fade_div_img.src = '/hostcmsfiles/images/ajax_loader.gif';
		fade_div.appendChild(fade_div_img);

		var shadowed_tl = document .createElement("div");
		shadowed_tl.className = "tl";
		fade_div.appendChild(shadowed_tl);

		var shadowed_t = document.createElement("div");
		shadowed_t.className = "t";
		fade_div.appendChild(shadowed_t);

		var shadowed_tr = document.createElement("div");
		shadowed_tr.className = "tr";
		fade_div.appendChild(shadowed_tr);

		var shadowed_l = document.createElement("div");
		shadowed_l.className = "l";
		fade_div.appendChild(shadowed_l);

		var shadowed_r = document.createElement("div");
		shadowed_r.className = "r";
		fade_div.appendChild(shadowed_r);

		var shadowed_bl = document.createElement("div");
		shadowed_bl.className = "bl";
		fade_div.appendChild(shadowed_bl);

		var shadowed_b = document.createElement("div");
		shadowed_b.className = "b";
		fade_div.appendChild(shadowed_b);

		var shadowed_br = document.createElement("div");
		shadowed_br.className = "br";
		fade_div.appendChild(shadowed_br);

		// получаем ширину выпадающего блока и устанавливаем её для верхней и нижней границы
		groupChildElements = fade_div.children;

		if (groupChildElements != undefined)
		{
			for (i = 0; i < groupChildElements.length; i++)
			{
				if(groupChildElements[i].className == 'b' | groupChildElements[i].className == 't')
				{
					groupChildElements[i].style.width = fade_div.clientWidth + 'px';
				}

				if(groupChildElements[i].className == 'r' | groupChildElements[i].className == 'l')
				{
					groupChildElements[i].style.height = fade_div.clientHeight + 'px';
				}
			}
		}

		fade_div.style.display = 'none';
	}

	// Отображаем div
	fade_div.style.display = 'block';

	// 0 - pageWidth, 1 - pageHeight, 2 - windowWidth, 3 - windowHeight
	var arrayPageSize = getPageSize();

	// 0 - scrOfX, 1 - scrOfY
	var arrayScrollXY = getScrollXY();

	// Отображаем до определения размеров div-а
	var clientHeight = fade_div.clientHeight;
	fade_div.style.top = ((arrayPageSize[3] - clientHeight) / 2 + arrayScrollXY[1]) + 'px';

	var clientWidth = fade_div.clientWidth;
	fade_div.style.left = ((arrayPageSize[2] - clientWidth) / 2 + arrayScrollXY[0]) + 'px';
}

// Скрытие экрана загрузки AJAX.
function HideLoadingScreen()
{
	// Убераем затемнение.
	fade_div = document.getElementById('id_admin_forms_fade');

	if (typeof fade_div != 'undefined')
	{
		fade_div.style.display = "none";
	}
}

function initCartPanel()
{
	// 0 - pageWidth, 1 - pageHeight, 2 - windowWidth, 3 - windowHeight
	var arrayPageSize = getPageSize();

	// 0 - scrOfX, 1 - scrOfY
	var arrayScrollXY = getScrollXY();
	var bgHeight = document.getElementsByTagName('html')[0].scrollHeight;

	jQuery('#cart_block_popup').css('height', bgHeight);
	var clientWidth = jQuery('#cart_block').width();

	jQuery('#cart_form').css({
		'top'	: arrayScrollXY[1] + 'px',
		'left'	: ((arrayPageSize[2] - clientWidth) / 2 + arrayScrollXY[0]) + 'px'
	});
	jQuery('#user_info').css({
		'top'	: arrayScrollXY[1] + 'px',
		'left'	: ((arrayPageSize[2] - clientWidth) / 2 + arrayScrollXY[0]) + 'px'
	});
	jQuery('#order_data').css({
		'top'	: arrayScrollXY[1] + 'px',
		'left'	: ((arrayPageSize[2] - clientWidth) / 2 + arrayScrollXY[0]) + 'px'
	});
	function cartForm(){
		var cart_url = jQuery('#cart_form').attr('action');
		var form_data = jQuery('#cart_form').serialize()+'&recount=1';
		jQuery.ajax({
			'url'		: cart_url,
			'data'		: form_data,
			'async'		: false,
			'type'		: 'get',
			'dataType'	: 'html',
			'beforeSend'	: ShowLoadingScreen,
			'complete'	: function () {
				clearEvents();
				initialisation();
				HideLoadingScreen();
			},
			'success'		: function (data) {
				if (data != '') {
					jQuery('#cart_panel').html(data);
				}
			},
			'error'		: function (xhr) {
				alert(xhr);
			}
		});
		jQuery.ajax({
			'url'		: cart_url,
			'data'		: 'step_1=1',
			'async'		: false,
			'type'		: 'post',
			'dataType'	: 'html',
			'beforeSend'	: ShowLoadingScreen,
			'complete'	: function () {
				clearEvents();
				initCartPanel();
				initialisation();
				HideLoadingScreen();
			},
			'success'		: function (data) {
				if (data != '') {
					jQuery('#cart_panel').html(data);
				}
			},
			'error'		: function (xhr) {
				alert(xhr);
			}
		});
	}
	jQuery('#cart_form').find('input:submit').click(function(){
		cartForm();
		return false;
	});
	jQuery('#cart_form').find('#cart_form_submit').click(function(){
		cartForm();
		return false;
	});
	jQuery('#user_info').find('#cart_form_init').click(function(){
		showOrderPanel(jQuery('#user_info').attr('action'));
		return false;
	});
	function submitOrder(){
		var cart_url = jQuery('#user_info').attr('action');
		var form_data = jQuery('#user_info').serialize();
		jQuery.ajax({
			'url'		: cart_url,
			'data'		: form_data,
			'async'		: false,
			'type'		: 'post',
			'dataType'	: 'html',
			'beforeSend'	: ShowLoadingScreen,
			'complete'	: function () {
				clearEvents();
				initialisation();
				initCartPanel();
				HideLoadingScreen();
			},
			'success'		: function (data) {
				if (data != '') {
					jQuery('#cart_panel').html(data);
				}
			},
			'error'		: function (xhr) {
				alert(xhr);
			}
		});
	}
	jQuery('#user_info').find('#order_form_submit').click(function(){
		submitOrder();
		return false;
	});
	jQuery('#user_info').find('input:submit').click(function(){
		submitOrder();
		return false;
	});
}
function changeCount (id, num)
{
	var count = jQuery(id).val();
	if (parseInt(count, 10) > 0)
		jQuery(id).attr('value', parseInt(count, 10) + parseInt(num, 10)).change();
	else if (parseInt(count, 10) == 0 && parseInt(num, 10) > 0)
		jQuery(id).attr('value', parseInt(count, 10) + parseInt(num, 10)).change();
	return false;
}
function recountCart ()
{
	var cart_url = jQuery('#cart_form').attr('action');
	var recount = jQuery('#cart_form').serialize()+'&recount=1';
	jQuery.ajax({
		'url'		: cart_url,
		'data'		: recount,
		'type'		: 'get',
		'dataType'	: 'html',
		'beforeSend'	: ShowLoadingScreen,
		'complete'	: function () {
			clearEvents();
			initialisation();
			HideLoadingScreen();
		},
		'success'		: function (data) {
			if (data != '') {
				jQuery('#cart_panel').html(data);
				initCartPanel();
			} else {
				jQuery('#cart_panel').remove();
				jQuery('#cart_little').html('<div id="cart_frame_empty"><a class="link"></a></div>');
			}
		},
		'error'		: function (xhr) {
			if (confsole != undefined) console.error(xhr);
		}
	});
}
function deleteFromCart (id)
{
	if(confirm('Вы уверены, что хотите удалить?')){
		var url_data = jQuery(id).attr('href').split('?');
		jQuery.ajax({
			'url'		: url_data[0],
			'data'		: url_data[1],
			'type'		: 'get',
			'dataType'	: 'html',
			'beforeSend'	: ShowLoadingScreen,
			'complete'	: function () {
				clearEvents();
				initialisation();
				HideLoadingScreen();
			},
			'success'		: function (data) {
				if (data != '') {
					jQuery('#cart_panel').html(data);
					initCartPanel();
				} else {
					jQuery('#cart_panel').remove();
					jQuery('#cart_little').html('<div id="cart_frame_empty"><a class="link"></a></div>');
				}
				return false;
			},
			'error'		: function (xhr) {
				if (confsole != undefined) console.error(xhr);
			}
		});
	}
	return false;
}
function clearCart(id){
	if (confirm('Вы уверены, что хотите удалить все товары из корзины?')) {
		var url_data = jQuery(id).attr('href').split('?');
		jQuery.ajax({
			'url'		: url_data[0],
			'data'		: url_data[1],
			'type'		: 'post',
			'beforeSend'	: ShowLoadingScreen,
			'dataType'	: 'html',
			'complete'	: function () {
				clearEvents();
				initialisation();
				HideLoadingScreen();
			},
			'success'		: function () {
				jQuery('#cart_little').html('<div id="cart_frame_empty"><a class="link"></a></div>');
				jQuery('#cart_panel').html('');
			},
			'error'		: function (xhr) {
				if (confsole != undefined) console.error(xhr);
			}
		});
	}
	return false;
}
function showOrderPanel (id_object) {
	var cart_url = id_object;
	jQuery.ajax({
		'url'		: cart_url,
		'data'		: 'ajax_cart=1',
		'async'		: false,
		'type'		: 'post',
		'dataType'	: 'html',
		'beforeSend'	: ShowLoadingScreen,
		'complete'	: function () {
			clearEvents();
			initialisation();
			HideLoadingScreen();
		},
		'success'		: function (data) {
			if (data != '') {
				jQuery('#cart_panel').html(data);
				jQuery('.popup_images').each( function () {
					jQuery(this).click(function () {
						var interval = setInterval(function () {
							var ves = jQuery(this).children('img').length;
							if (ves > 0) {
								clearInterval(interval);
								jQuery(this).find('img').toggle();
							}
						}, 100);
					});
				});
				initCartPanel();
			}
		},
		'error'		: function (xhr) {
			alert(xhr);
		}
	});
	return false;
}
function closeOrderPanel()
{
	jQuery('#cart_block_popup').remove();
	jQuery('#cart_form').remove();
	jQuery('#user_info').remove();
	jQuery('#order_data').remove();
}
function initialisation (){
	jQuery('#cart_form table th:eq(0)').text('№');
	jQuery('#order_data table th:eq(0)').text('№');
	jQuery('.hover_cart_item_img').hover(
		function(){
			var image = jQuery(this).find('img');
			image.css('display', 'block').stop().animate({
				'opacity' : 1
			},200);
		},
		function(){
			var image = jQuery(this).find('img');
			image.css('display', 'none').stop().animate({
				'opacity' : 0
			},100);
		}
		);
	var cart_url = '';
	jQuery('ul.products-list').click(function () {
		var current = jQuery(this);
		var scroll_top = current.offset().top - jQuery('.col-main').offset().top + 20;
		jQuery('#cart_little').stop().animate({
			'top' : scroll_top
		}, 500);
	});

jQuery('a[id^=submit_]').click(function () {
		var current = jQuery(this);

var dedushka = jQuery(this).parent().parent(); //дедушка <div class="product-image-wrapper">

var isKarto4ka = false;
if (jQuery('.divider').size()==0)
{
  isKarto4ka=true;
}

var karusel = dedushka.find('.jcarousel-container').length; //0 = нету каруселек

var position_selector = ' :first';
if (karusel) 
{
var lefta = dedushka.find('ul').css('left').split('px')[0];
var avgwidth = 143; //ширина одной картинге
var posi = -Math.floor(lefta/avgwidth); //номер картинки, которая придвинулась
  position_selector = ':eq('+posi+')';
}


var dyadka = dedushka.find('.thumb :first').parent();
var vnuk;
//var vnuk =  dedushka.find ('.thumb img'+position_selector);
if (karusel)
{vnuk =  dedushka.find ('.thumb img'+position_selector);}
else {vnuk =  dedushka.find ('.thumb img');}

//alert (position_selector);
//alert (dedushka.find ('.thumb img:eq(2)').parent().html())
  
//alert (vnuk.html());
//print_r (vnuk)
//alert(dyadka.html());
//print_r (dyadka); 
//alert(dedushka.html());
//print_r (dedushka);
var leftp=38+Math.floor((143-vnuk.width())/2);
var topp = 4;
if (isKarto4ka)
{
  leftp = leftp + 18;
  if (!karusel)
  {
    leftp = leftp - 18;
	topp = 24;
  }
}
//alert(Math.floor(vnuk.width()/2));

		var item_id = current.attr('id').substr(7);
		var count = jQuery('#count'+item_id).val();
		cart_url = current.attr('href').split('?')[0];
		jQuery('[id^=img_clone]').remove();
		//var img = current.parent().parent().find('.thumb img').clone().attr('id', 'img_clone');
var img = vnuk.clone().attr('id', 'img_clone');
		if (img.length == 0){
			img = jQuery('<div/>', {
				'id'	: 'img_clone'
			}).css({
				'width'	: '125px',
				'height'	: '85px',
				'background-color'	: '#FFFFFF'
			});
		}
		img.css({
			'position'	: 'absolute',
			'left'		: leftp+'px',
			'padding-top':topp+'px'
		});
//		current.parent().parent().parent().parent().find('.thumb').append(img);
dedushka.parent().append(img);
//return false;
		cart_hover = true;
		var data = {
			'ajax_add_item_id'	: item_id,
			'count'			: count
		};

		current.parent().parent().parent().parent().click();
		setTimeout(function () {
			var offset = (jQuery('#cart_little').offset().left - jQuery('.col-main').offset().left);
			img.animate({
				'left'	: offset,
				//'width'	: 50,
				//'top'	: 30,
				'opacity'	: 0
			}, 500, "linear", function() {
				jQuery(this).remove();
				jQuery('#cart_little').html('<div id="cart_frame_full"><a class="link" href="'+cart_url+'"/></div>');
			});
			jQuery.ajax({
				'url'		: cart_url,
				'data'		: data,
				'type'		: 'get',
				'dataType'	: 'html',
				'success'		: function () {
					jQuery('div[id^=cart_frame]').attr('id', 'cart_frame_full');
				}
			});
		}, 500);
		return false;
	});

	
	
	jQuery('#cart_frame_close').click(function(e){
		jQuery('#frame_block').fadeOut(200);
		var current = jQuery('#cart_little a.link'),
		cart_offset = current.offset(),
		cart_offset_left = cart_offset.left,
		cart_offset_top = cart_offset.top,
		width = current.width(),
		height = current.height(),
		cart_offset_right = cart_offset.left + width,
		cart_offset_bottom = cart_offset.top + height,
		cursor_x = e.pageX,
		cursor_y = e.pageY;
		if ((cursor_x < cart_offset_left || cursor_x > cart_offset_right) && (cursor_y < cart_offset_top || cursor_y > cart_offset_bottom)){
			if (jQuery('#cart_frame').length > 0 && jQuery('#frame_block').css('display') == 'none') {
				cart_url = jQuery('#cart_little .link').attr('href');
				jQuery('#cart_little').html('<div id="cart_frame_full"><a class="link" href="'+cart_url+'"/></div>');
				cart_hover = true;
				initialisation ();
			}
		}
		return false;
	});

	var x=false;
	jQuery('#cart_little').click(function(){
		x=true;
		return false;
	});
	jQuery('#cart_little').hover(
		function(){
			x=false;
			var current = jQuery('#cart_little'),
			css_top = jQuery('[id^=cart_frame]').css('top'),
			cart_type = jQuery('[id^=cart_frame]').attr('id').split('cart_frame_')[1],
			cart_url = current.find('.link').attr('href');
			if (cart_hover && cart_type == 'full') {
				show_cart_hover = true;
				jQuery.ajax({
					'url'		: cart_url,
					'data'		: 'ajax_get_items=1',
					'type'		: 'get',
					'asynch'	: false,
					'dataType'	: 'html',
					//'beforeSend'	: ShowLoadingScreen,
					'complete'	: function () {
						if(x) jQuery('#cart_little').unbind();
						clearEvents();
						initialisation();
						if(x) {
							x=false;
							jQuery('#cart_little #cart_frame_show').trigger('click');
						}
						x=false;
						//HideLoadingScreen();
					},
					'success'	: function (data) {
						if (data != '' && show_cart_hover) {
							jQuery('#cart_little').html(data).find('#cart_frame').css('top', css_top);
							cart_hover = false;
						}
					}
				});
			}
		},
		function(){
			show_cart_hover = false;
			cart_hover = true;
			if (jQuery('#frame_block').css('display') == 'none'){
				var current = jQuery(this);
				cart_url = current.find('.link').attr('href');
				jQuery('#cart_little').html('<div id="cart_frame_full"><a class="link" href="'+cart_url+'"/></div>');
			}
		}
	);
	if (jQuery(window).width()<1180) {
		$('div[id^=cart_frame]').css('right', '0');
	}
}
function clearEvents () {
	jQuery('#cart_little').unbind();
	jQuery('ul.products-list').unbind();
	jQuery('a[id^=submit_]').unbind();
	jQuery('.hover_cart_item_img').unbind();
}
jQuery(document).ready(function(){
	initialisation ();
	jQuery('select[id^=count]').change(function () {
		if (jQuery(this).val() == 11) {
			var next = jQuery(this).next();
			var name = jQuery(this).attr('name');
			var id = jQuery(this).attr('id');
			var classes = jQuery(this).attr('class');

			jQuery(this).remove();
			next.before('<input name="'+name+'" id="'+id+'" class="'+classes+'"/>');
			next.parent().find('input').focus();
		}
	});
});
