// = Remove empty block in article
$(document).ready(function(){
	$('.article').parent('.container').parent('#text-page').parent('#container').find('.footerto_bottom_place').css('height','20px');
});


/*******************SHOW INDICATOR******************************/
function ShowIndicator(ob, name) {
	var obWidth = ob.outerWidth();
	var obHeight = ob.outerHeight();
	//alert(obWidth+'-'+obHeight);
	ob.append('<div id="indicator-transparent" style="width: '+obWidth+'px; height: '+obHeight+'px;"></div><div id="indicator-text">'+name+'</div>');
	$('#indicator-transparent').css('width', obWidth+'px').css('height', obHeight+'px');
}

/*******************REMOVE INDICATOR******************************/
function RemoveIndicator(ob) {
	$('#indicator-transparent, #indicator-text', ob).remove();
}


/*******************ADD TO CART******************************/
function AddDelete_v3s(id, getParam, openMyOrder, REQUEST_URI) {
	if(getParam == 'ADD' && $('#jcarousel-order li').length >= 10) {
		alert('Подарок может иметь не более 10 впечатлений');
		return false;
	} else {
		if(getParam == 'ADD')
			$('#listexp-'+id).addClass('experience-selected');
		
		var obList = $('#my-order');
		var openMyOrder = $('#open-my-order');
		
		if(typeof(openMyOrder) == 'undefined')
			obList.css('margin-top', '0');
		
		var params = {};
		params["rand"] = Math.random();
		params[getParam] = id;
		params["mode"] = 'ajax';
		params["REQUEST_URI"] = REQUEST_URI;
		//params["open_my_order"] = openMyOrder;
		
		obList.find('.inner').append('<div class="transparent"></div><div class="indicator"></div>');
		ShowIndicator($('#tabs-inpresent-result div.wrap'), 'Загрузка...');
		
		//iScrollHeight = document.getElementById('my-order');
		
		jQuery.ajax({
			url: '/?r=basket/basket/add',
			data: params,
			dataType: 'json',
			success: function(data) {

				//$(document).scrollTo('90px', 500);
				jQuery('#tabs-price-result div.price').html(data.sum);
				jQuery('#tabs-price-result').addClass('visible');
				
				jQuery('#tabs-inpresent-result .empty, #tabs-noprice-result, #detail-inpresent-result .empty').hide();
				jQuery('#tabs-price-result, #tabs-inpresent-result .count').show();
				
				jQuery('#tabs-inpresent-result .gallery_area').html(data.carousel);
				jQuery('.detail-inpresent-result').html(data.carousel);
				jQuery('#expiriences-num').html(data.count);
				jQuery('.price_block .price').html(data.sum);
				jQuery('.buying_block').find('.basket_sum').find('span').html(data.sum);
				jQuery('#experience-counter').html(data.count);
				
				if (document.getElementById('my-order')) {
					jQuery('.basket_top').find('.buying_block').show();
					if (document.getElementById('basket-top-content')) {
						jQuery('body').append('<div id="temp-top-banners" style="display:none;">' + jQuery('div.experiences_info').html() + '</div>');				
						jQuery('div.experiences_info').html(jQuery('#basket-top-content').html());
						jQuery('#basket-top-content').remove();					
					}
					
					jQuery('#my-order').html(data.menu);

					if(jQuery('.basket_top .basket_carousel').length) {
						initBasketTopCarousel();
					} else {
						jQuery('.basket_carousel ul').jcarousel({scroll: 1, initCallback: basket_initCallback});				
					}
									
					
					if(!$('#open-my-order').hasClass('not-empty')) {
						$('#open-my-order').addClass('not-empty');
					}					
					iniTopBasket();
				}
			
				function inpresent_initCallback(carousel) {
					$('#jcarousel-inpresent').bind('mousewheel', function(event, delta) {
						if (delta < 0) {
							carousel.next();
						}
						else if (delta > 0) {
							carousel.prev();
						}
						return false;
					});
				};
				$(function(){
					$('#jcarousel-inpresent').jcarousel({scroll: 1, vertical: true, initCallback: inpresent_initCallback});
					
				});	
				experienceLinkReplace();
			}
		});
	}
}
/*******************Replace experience link******************************/
function experienceLinkReplace() {
	if (typeof experiencezGalery != 'undefined') {
		jQuery('.basket_top .basket_carousel a').each(function(){
			jQuery(this).attr('href', jQuery(this).attr('href').split('/experiences/').join('/experiencez/'));
		});	
	}	
}

/*******************INIT TOP BASKET CAROUSEL******************************/
function initBasketTopCarousel () {
	
	experienceLinkReplace();
	
	function basket_initCallback(carousel) {
		jQuery('.basket_carousel ul').bind('mousewheel', function(event, delta) {
			if (delta < 0) {
				carousel.next();
			} else if (delta > 0) {
				carousel.prev();
			}
			return false;
		});
	};
	function trigger(carousel) {
		var countSelected = jQuery('.basket_top .basket_carousel li').length;
		if (countSelected>5) {
			var allExperiences = jQuery('.basket_top .jcarousel-container li.jcarousel-item').length-4;

			jQuery('.basket_top').find('.basket_carousel').find('.jcarousel-prev').show();
			jQuery('.basket_top').find('.basket_carousel').find('.jcarousel-next').show();

			if (carousel.first==1) {
				jQuery('.basket_top').find('.basket_carousel').find('.jcarousel-prev').hide();
			} else if (carousel.first==allExperiences) {
				jQuery('.basket_top .basket_carousel .jcarousel-next').hide();
			}
		} else {
			jQuery('.basket_top .basket_carousel .jcarousel-prev, .basket_top .basket_carousel .jcarousel-next').hide();
		}
	};
	jQuery('.basket_carousel ul').jcarousel({
		scroll: 1,
		initCallback: basket_initCallback,
		itemLoadCallback: trigger
	});		
}
/*******************INIT TOP BASKET******************************/
function iniTopBasket() {
	hideTopBasket();
	carouselButtonTopBasket();
	carouselInfoBlockTopBasket();
}
/*******************HIDE TOP BASKET******************************/
function hideTopBasket() {
	if (!jQuery('.basket_top .basket_carousel li').length && jQuery('#temp-top-banners').length && !jQuery('.experience_about').length) {

		jQuery('body').append('<div id="basket-top-content" style="display:none;">' + jQuery('div.experiences_info').html() + '</div>');				
		jQuery('div.experiences_info').html(jQuery('#temp-top-banners').html());
		jQuery('#temp-top-banners').remove();					
	}		
}

/*******************SHOW CAROUSEL IN TOP BASKET******************************/
function carouselButtonTopBasket() {
	if (jQuery('.basket_top .basket_carousel').length) {
		var countSelected = jQuery('.basket_top .basket_carousel li').length;
		
		if (countSelected<=5) {
			jQuery('.basket_top .basket_carousel .jcarousel-prev, .basket_top .basket_carousel .jcarousel-next').hide();
		} else {
			jQuery('.basket_top .basket_carousel .jcarousel-next').show();
		}						
	}		
}

/*******************SHOW CAROUSEL INFO BLOCK IN TOP BASKET******************************/
function carouselInfoBlockTopBasket() {

	if (jQuery('.basket_top .basket_carousel').length) {
		
		viewTextBlockInTopCarousel();
		
		var countSelected = jQuery('.basket_top .basket_carousel li').length;
		//view experiensez
		if (jQuery('.experience_about').length) {
			jQuery('.experience_about .container_picture .container > div').hide();
			if (!countSelected || countSelected==1) {
				jQuery('.experience_about .container_picture .container div:nth-child(' + (countSelected+1) + ')').show();				
			} else if (countSelected>1 && countSelected<10) {
				jQuery('.experience_about .container_picture .container div:nth-child(3)').show();				
				jQuery('#white-container-count-experiencez').text(countSelected);
				jQuery('span.word-cases').hide();
				if (countSelected<5) {
					jQuery('span.word-cases.first').show();	
				} else {
					jQuery('span.word-cases.second').show();	
				}
			} else if (countSelected==10) {
				jQuery('.experience_about .container_picture .container div:nth-child(4)').show();				
			}
		}
							
	}		
}

function viewTextBlockInTopCarousel() {
	if (jQuery('.basket_top .basket_carousel').length) {
		var countSelected = jQuery('.basket_top .basket_carousel li').length;
				
		if (countSelected<5) {
			jQuery('.basket-top-carousel-info').show();
			jQuery('.basket-top-carousel-info').find('div').hide();
			jQuery('.basket-top-carousel-info #top-carousel-info-' + countSelected).show();			
				
			if (countSelected==0) {
				jQuery('.basket-top-carousel-info').css('width', 399);				
				jQuery('.basket-top-carousel-info #top-carousel-info-' + countSelected).css('width', 340);
			
				jQuery('.experiences_info .basket_top .container').append('<div id="temp-basket-top-carousel-info"><div class="basket-top-carousel-info"></div><div class="basket-top-carousel-info"></div></div>');
			} else {
				blockWidth = (5 - countSelected) * jQuery('.basket_top .basket_carousel li').width() - 13;
				jQuery('.basket-top-carousel-info').css('width', blockWidth);				
				
				childWidth = blockWidth-30*(6 - countSelected*2)-5;
				jQuery('.basket-top-carousel-info #top-carousel-info-' + countSelected).css('width', childWidth);
				
				if (countSelected==4) {
					jQuery('.basket-top-carousel-info div').hide();
				}				
				
				if (jQuery('#temp-basket-top-carousel-info').length) {
					jQuery('#temp-basket-top-carousel-info').remove();
				}				
			}
			
		} else {
			jQuery('.basket-top-carousel-info').hide();
		}	
	}
}

/*******************REMOVE FROM CART ONE ITEM******************************/
function removeExperience(e, data) {
	var id = data.experienceId;
		
	$('#listexp-'+id).removeClass('experience-selected');
	$('a.add-2-present[rel="'+id+'"]').removeClass('in-present').find('span.text').text('Добавить в подарок');
	
	if (document.getElementById('full-img-top')) {
		product = jQuery('#listexp-' + id);
		if (product.length) {
			grayscale.reset(product);	
		}
	}	
	
	ShowIndicator($('#tabs-inpresent-result div.wrap, .detail-inpresent-result div.wrap'), 'Загрузка...');
	$('#my-order').find('.inner').append('<div class="transparent"></div><div class="indicator"></div>');
	
	jQuery.post('?widgetName=basket&actionName=removeexperiencefromformatter', data, function(result){ 
		jQuery('div.gallery_area').html(result.carousel);
		
		if (document.getElementById('my-order')) {		
			jQuery('#my-order').html(result.menu);
			
			if(jQuery('.basket_top .basket_carousel').length) {
				initBasketTopCarousel();
			} else {
				jQuery('.basket_carousel ul').jcarousel({scroll: 1, initCallback: basket_initCallback});				
			}
		}
		
		jQuery('.price_block').find('.price').html(result.base_price);
		jQuery('.buying_block').find('.basket_sum span').html(result.base_price);
		jQuery('.basket_inmenu').find('#expiriences-num').html(result.count);
		jQuery('#experience-counter').html(result.count);
		jQuery('.detail-inpresent-result').find('.empty').hide();
		jQuery('.detail-inpresent-result').html(result.carousel);
			if (result.count == 0) {
				jQuery('#tabs-inpresent-result').find('.count').hide();
			}
			if (result.menu == '') {
				jQuery('.basket_inmenu, #experiences-inpresent, #tabs-price-result').hide();
				jQuery('.basket_top').find('.buying_block').hide();
				jQuery('#tabs-noprice-result').show();
			}
			else {jQuery('.detail-inpresent-result').find('.empty').hide();}
			iniTopBasket();			
	}, 'json');
}
	
/*******************REMOVE FROM CART ALL ITEMS******************************/
function removeAllExperience(data) {	
	jQuery('div.experience-selected', '#gallery-result').removeClass('experience-selected');
	jQuery('#tabs-price-result').hide();
	
	ShowIndicator($('#tabs-inpresent-result div.wrap'), 'Загрузка...');
	$('#my-order').find('.inner').append('<div class="transparent"></div><div class="indicator"></div>');
	
	jQuery.post('?widgetName=basket&actionName=clear', function(){ 
		jQuery('.basket_inmenu, #experiences-inpresent').hide();
		
		jQuery('.basket_top .buying_block').hide();
		
		jQuery('#tabs-noprice-result, .detail-inpresent-result .empty, #tabs-inpresent-result .empty').show();

		
		$('a.add-2-present').removeClass('in-present').find('span.text').text('Добавить в подарок');
		$('.detail-inpresent-result').append('<div class="empty">Здесь будут добавленные Вами впечатления.</div>')
		iniTopBasket();						
	}, 'json');
}


/*******************SCROLL FUNCTION******************************/
function StartScroll(target, elementsInPanel, autoHeight, REQUEST_URI) {
	if(autoHeight) {
		var listHeight = $(target).find('ul.items').height();
		$(target).css('height', listHeight);
	}
	var navNext = target + '-next';
	var navPrev = target + '-prev';
	
	var elementsTotal = $(target + ' .scroll-item').length;
	
	$(navPrev).addClass('next-prev-disabled');
	if(elementsTotal < elementsInPanel+1)
		$(navNext).addClass('next-prev-disabled');
	
	$(target).scrollable();
	var api = $(target).data("scrollable");
	api.getConf().keyboard = false;
	
	if(elementsTotal > 1) {
		api.onBeforeSeek(function() {
			$(target).unbind('mousewheel');
		}).onSeek(function() {
			$(target).bind('mousewheel', function(event, delta) {
				if (delta < 0) {
					$(navNext).trigger('click');
				}
				else if (delta > 0) {
					$(navPrev).trigger('click');
				}
				return false;
			});
		});
	}
	
	$(navNext).click(function() {
		if(api.getIndex() >= elementsTotal - elementsInPanel) {
			return false;
		} else {
			api.next();
		}
		
		if(api.getIndex() == elementsTotal - elementsInPanel && !$(navNext).hasClass('next-prev-disabled'))
			$(navNext).addClass('next-prev-disabled');
		
		if($(navPrev).hasClass('next-prev-disabled'))
			$(navPrev).removeClass('next-prev-disabled');
		
		
		return false;
	});
	$(navPrev).click(function() {
		if(api.getIndex() == 0) {
			return false;
		} else {
			api.prev();
		}
		
		if(api.getIndex() == 0 && !$(navPrev).hasClass('next-prev-disabled'))
			$(navPrev).addClass('next-prev-disabled');
		
		if($(navNext).hasClass('next-prev-disabled'))
			$(navNext).removeClass('next-prev-disabled');
		
		
		return false;
	});
	
	if(elementsTotal > 1) {
		$(target).parent().bind('mousewheel', function(event, delta) {
			return false;
		});
		
		$(target).bind('mousewheel', function(event, delta) {
			if (delta < 0) {
				$(navNext).trigger('click');
			}
			else if (delta > 0) {
				$(navPrev).trigger('click');
			}
			return false;
		});
	}
}



$(function(){
/*******************GIFT PAGE******************************/
	$('div.stack-link', '#stack-list').click(function() {
		var expId = $(this).attr('rel');
		var curI = 0;
		$('div.stack-link', '#stack-list').each(function(i) {
			if(expId == $(this).attr('rel'))
				curI = i;
		});
		
		$('div.stack-link:last', '#stack-list').parent().parent().slideDown('fast', function() {
			$(this).removeClass('hidden');
		});
		
		$('div.stack-link', '#stack-list').each(function(i) {
			if(i < curI) {
				var itemBlock = $(this).parent().parent();
				itemBlock.slideUp('fast', function() {
					itemBlock.appendTo("#stack-list").slideDown('fast');
				});
			}
			if(i == curI) {
				var itemBlock = $(this).parent().parent();
				itemBlock.slideUp('fast', function() {
					itemBlock.appendTo("#stack-list");
				});
			}
		});
	});
		

	if (/MSIE (5\.5|6).+Win/.test(navigator.userAgent)) {
		var t = $('.triangle-right');
		var h = t.parent().height()-62;
		t.css('top', h).show();
		//alert(h);
	}
	
/*******************TABS SWITCH******************************/	
	$('div.tabs-block').each(function() {
		$(this).find('div.tabs-item a').each(function(index) {
			$(this).click(function() {
				if($(this).parent().hasClass('selected'))
					return false;
				var nav = $(this).parents('div.tabs-nav');
				var block = $(nav).parent();
				$(nav).find('div.selected').removeClass('selected');
				$(this).parent().addClass('selected');
				$(block).find('div.tabs-panel:visible').hide();
				$(block).find('div.tabs-panel:eq('+index+')').show();
				return false;
			});
		});
	});
	
	// tips
	$('.tip-default').cluetip({splitTitle: '|', dropShadow: false, showTitle: false, arrows: true, width: '285px'});
	
	
/*******************MINI GALLERY FOR CHOOSE WRAP******************************/
	$('#thumb-img div').each(function(i) {
		$(this).click(function() {
			if($(this).hasClass('selected'))
				return false;
			
			//var boxId = $(this).find('img').attr('name');
			
			$(this).parent().parent().find('#full-img div:visible').fadeOut();
			$('#full-img div:eq('+i+')').fadeIn();
			$(this).parent().find('div.selected').removeClass('selected');
			$(this).addClass('selected');
		});
	});
	
	$('.open-lightbox').click(function() {
		var id = $(this).attr('id');
		jQuery.slimbox(eval(id), 0);
	});
	
	
/*******************COMMENTS FUNCTIONS******************************/
	$('#feedback-form').click(function() {
		if($(this).hasClass('selected')) {
			$('#feedback-form-content').removeClass('visible');
			$('#feedback-list-content').addClass('visible');
			$(this).removeClass('selected');
			$('#feedback-list').addClass('selected');
		} else {
			$('#feedback-form-content').addClass('visible');
			$('#feedback-list-content').removeClass('visible');
			$(this).addClass('selected');
			$('#feedback-list').removeClass('selected');
		}
	});
	$('#feedback-list').click(function() {
		if($(this).hasClass('selected')) {
			$('#feedback-form-content').addClass('visible');
			$('#feedback-list-content').removeClass('visible');
			$(this).removeClass('selected');
			$('#feedback-form').addClass('selected');
		} else {
			$('#feedback-form-content').removeClass('visible');
			$('#feedback-list-content').addClass('visible');
			$(this).addClass('selected');
			$('#feedback-form').removeClass('selected');
		}
	});


/*******************SETUP CALENDAR******************************/
	//hover states on the static widgets
	$('#dialog_link, ul#icons li').hover(
		function() { $(this).addClass('ui-state-hover'); }, 
		function() { $(this).removeClass('ui-state-hover'); }
	);
	
	$.datepicker.regional['ru'] = {clearText: 'Очистить', closeText: '<img src="/images/icon-close-navy.gif" alt="">',
		prevText: '<span>&laquo;</span>Пред', nextText: 'След<span>&raquo;</span>', currentText: 'Сегодня',
		weekHeader: 'Не', dayNames: ['Вс','Пн','Вт','Ср','Чт','Пт','Сб'],
		monthNames: ['Январь','Февраль','Март','Апрель','Май','Июнь',
		'Июль','Август','Сентябрь','Октябрь','Ноябрь','Декабрь'],
		dateFormat: 'DMY.', firstDay: 1};
	$.datepicker.setDefaults($.datepicker.regional['ru']);	
	
	var fbpls = $('.footerto_bottom').height();
	jQuery('.footerto_bottom_place').css({'height': fbpls-150+'px'});

	jQuery('.experiences_info').cycle({
		fx: 'fade',
		timeout: 10000
	}); 
	
});

/*******************Send Request And Change URL******************************/
function sendRequestAndChangeUrl() {
	if (!History.enabled || !params) {
        sendRequest();
        return false;
    }	
    
	var i = 0;
	
	for (var key in params) {
		var val = params[key];
	  
		if (val && typeof val == 'string' && key!='url') {
			if (!i) {
				url = '?'+key+'='+val;	i++;
			} else {
				url += '&'+key+'='+val;	  		
			}
		}
	  
	}    
    
    History.pushState({params: params}, null, url);
}

(function(window,undefined){
	var BackUrl = window.location.href;
	var History = window.History;
	
	History.Adapter.bind(window,'statechange',function(){
		var State = History.getState();

		if (!State.data.params) {
			return false;
		}
		
		params = State.data.params;

		if (State.url!=BackUrl) {
			BackUrl = window.location.href;			
			ShowIndicator(jQuery('#filters'), 'Загрузка...');
			ShowIndicator(jQuery('#result'), 'Загрузка...');
					
			/***********/
			window.location.href = State.url;
			//sendRequest();
			/***********/
		}
	});
})(window);
