var CSiteApp = function(){
	this.AjaxLoader = '/bitrix/templates/index/img/ajax-loader.gif';
	this.Params = new Object();
	
	// добавление в корзину
	this.Add2Basket = function(id, obj){
		var thisObj = this;
        //var q = parseInt($('#quant'+id).val());
        var q = $('#quant'+id).val().replace(/[^\d]/gi, "");
        if (q=='' || q<1) q=1;  
		
		$.ajax({
			type: 'post',	   
			url: '/bitrix/ajax/Add2Basket.php',
			data: 'id=' + id + '&q=' + q + '&action=ADD2BASKET',
			beforeSend: function(){
				var loader = thisObj.MakeLoader(id);
				$(obj).hide();
				$(obj).parent().append(loader);
			},
			success: function(msg){				
				$(obj).show();
				$('#loader'+id).remove();
				
				var data = eval('(' + msg + ')');

				if(data.status == "done"){	
					$('#inBasket'+id).show();
					thisObj.ShowSwimAdd(id, q);
					
					//thisObj.HidePopupBlock('.shadow_list', 'thisObj.HideSwimAdd('+id+');');
										
					
					$('#BaskEmpty').hide();
					$('#BaskCont').show();
					
					$('.basket_mini').addClass('active');
					
					$('#BasketQ').html(data.count);
					$('#BasketS').html(data.price);
					thisObj.SetDiscountInfoForBasket(data);
				}
			}
		});
	}
	
	// удаляет элемент из корзины
	this.DeleteFromBasket = function(id, obj){
		var thisObj = this;
		
		$.ajax({
			type: 'post',	   
			url: '/bitrix/ajax/Add2Basket.php',
			data: 'bid=' + id + '&action=DELETE2BASKET',
			beforeSend: function(){
				var loader = thisObj.MakeLoader(id);
				$(obj).hide();
				$(obj).parent().append(loader);
			},
			success: function(msg){		
				var data = eval('(' + msg + ')');
				
				var prodCount = $('tr[id^=basket]').length;
				
				if(prodCount > 1){				
					if(data.status == "done"){
						$('#basket'+id).remove();	
						$('#totalPrice').html(data.price);
						
						$('#totalDiscount strong').html(data.discount);
						
						$('#BasketQ').html(data.count);
						$('#BasketS').html(data.price);
					} else {
						$('#loader'+id).remove();
						$(obj).show();
					}
				} else {
					$(obj).parents('form').remove();
					$('.right_block_padding').append('<span style="color: red;">Ваша корзина пуста</span>');
				}
				thisObj.SetDiscountInfoForBasket(data);
			}
		});	
	}
	
	// обновляет количество элемента по стрелкам
	
	this.SetDiscountInfoForBasket = function(data){
		var prevdisc = parseInt(jQuery("span#salediscount_current").text());
		
		var params = new Array("salediscount_current","salediscount_current_threshold","salediscount_sumpayed","salediscount_nextpersent","salediscount_nextpersent2","salediscount_next_sum","salediscount_need_next_sum");
		for (var key in params) {
			var spankey = params[key];
			if (data[spankey]) {
				jQuery("span#"+spankey).html(data[spankey]);
			}
		}
		var nextdisc = parseInt(jQuery("span#salediscount_current").text());
		if (nextdisc > prevdisc) {
			text = "Внимание! Ваша скидка увеличилась до "+nextdisc+"%";
			jQuery("div#discount_up_popup").html(text).css("opacity","0.0").css("display","block").animate({opacity: 1.0},2000,function(){
					jQuery("div#discount_up_popup").animate({opacity: 0.0},5000,function(){
						jQuery(this).css("display:none");
					});
				});
		}
		
		var fixdiscount_container = jQuery("div#fixdiscount_container");
		if (data['salediscount_fixdiscount'] > 0) {
			fixdiscount_container.show();
			fixdiscount_container.find("span#fixdiscount_value").html(data['salediscount_fixdiscount']);
		} else {
			fixdiscount_container.hide();
		}
	}
	
	
	this.UpdateQuantity = function(id, q){
		var thisObj = this;
		
		$.ajax({
			type: 'post',	   
			url: '/bitrix/ajax/Add2Basket.php',
			data: 'bid=' + id + '&q=' + q + '&action=UPDOWNEMORE',
			success: function(msg){			
				var data = eval('(' + msg + ')');
				
				if(data.status == "done"){
					$('#totalPrice').html(data.price);
					$('#totalDiscount strong').html(data.discount);
					
					$('#basket'+id+' > td.total > em').html(data.priceOneBask);
					
					$('#BasketQ').html(data.count);
					$('#BasketS').html(data.price);
					thisObj.SetDiscountInfoForBasket(data);
				}
			}
		});	
	}
	
	// обрабатывает клик на стрелки
	this.ArrowClicker = function(direct, id, maxQuant, useQuant){
		var val = parseInt($('#quant'+id).val());
		
		if(direct == 'inc'){			
			++val
			
			if(val < maxQuant){
				$('#alertsQ'+id).hide();				
			} else {			
				val = maxQuant;
				$('#alertsQ'+id).show();	
			}						
		} else if(direct == 'dec'){
			--val;
			if(val > 1){				
				$('#alertsQ'+id).hide();
			} else {
				val = 1;				
				$('#alertsQ'+id).hide();
			}
		}
		
		$('#quant'+id).val(val);
		
		// если необходимо обновить содержимое корзины
		if(useQuant){
			this.UpdateQuantity(id, val);	
		}
	}
	
	// проверяет корректность значения
	this.CheckVQuantity = function(maxQ){
		if(direct == 'inc'){
			if(val < maxQuant){
				$('#quant'+id).val(++val);
			}
		} else if(direct == 'dec'){
			if(val > 1){
				$('#quant'+id).val(--val);
			}
		}
	}
	
	// подгружает всплывающую форму с подразделами
	this.SwimBlock = function(sid, ib, obj){		
		var coords = $(obj).offset();
	
		if(parseInt(sid) > 0){
			var thisObj = this;
			
			$.ajax({
				url: '/bitrix/ajax/SwimBlock.php',
				data: 'sid='+sid+'&ib='+ib,
				success: function(msg){		
					if(!empty(trim(msg))){
						$('#catalog_section .shadow_list_back').html(msg);
						
						var width = $('#catalog_section').width();
						var height = $('#catalog_section').height();
						
						$('#catalog_section').css({'top': (coords.top-20), 'margin-left':coords.left+100});					
						$('#catalog_section').css('visibility', 'visible');	
					} else {
						thisObj.SwimBlockHide();
					}
					thisObj.SetDiscountInfoForBasket(data);
				}
			});	
		}
	}
	
	// скрывает плавающий блок с подразделами
	this.SwimBlockHide = function(){		
		$('#catalog_section').css('visibility', 'hidden');
		$('#catalog_section table table').remove();
	}
	
	// создает загрузчик
	this.MakeLoader = function(id){
		return $('<img />').attr({'id':'loader'+id, 'src':this.AjaxLoader});
	}	
	
	// отображает всплывающий блок с информацией о добавленом товаре
	this.ShowSwimAdd = function(id, q){
		$('div[id^=swimAdd]').css('visibility','hidden');
		$('#swimAdd'+id+' #swimq').html(q+' шт.');
		$('#swimAdd'+id).css('visibility','visible');
		
		setTimeout("$('#swimAdd"+id+"').css('visibility','hidden')", 2000);
	}
	
	// скрывает всплывающий блок с информацией о добавленом товаре
	this.HideSwimAdd = function(id){
		$('#swimAdd'+id).css('visibility','hidden');
	}
	
	// скрывает блок при нажатии не в нем
	this.HidePopupBlock = function(notActive, callback){
		var thisObj = this;
		
		$('body').bind('click', function(){
			eval(callback);			
			$('body').unbind('click');
		});
		
		$('body').bind('keypress', function(e) {
			if(e.keyCode == 27){
				eval(callback);				
				$('body').unbind('keypress');
			}
		});
		
		$(notActive).click(function(e){
			even = e || window.event 				
			if (even.stopPropagation) {	
				even.stopPropagation()	
			} else {					
				even.cancelBubble = true	
			}		
		});
	}
} 

var CSite = new CSiteApp();


//Увеличение картинки в каталоге
$(document).ready(function() {
	$('a.img').hover(function() {
		var obj = $(this).find('.biger_img');
		if($(obj).is(':visible'))
			return;
		//$(obj).show();
        $(obj).attr({width:120,height:180}).css({top:0,left:0}).show().animate({width:180, height:270, top:-45, left:-30}, 200);

	},
	function() {
		$(this).find('.biger_img').stop().css({width:120, height:180, top:0,left:0}).hide();
	}
	);
});
