/**
 * experience.js
 */
var block 			= null;
var container 		= null;
var blockHeight 	= null;
var containerHeight = null;
var maxPad			= null;

if (!params) {
	var params = {};
}

jQuery(document).ready(function(){
	if (!jQuery('.experience_about').length) {
		var currentUri = window.location.href.split('?');
		
		paramNames = [
			'for_who',
			'price_min',
			'price_max',
			'hit',
			'status',
			'city',
			'gal',
			'url',
			'history',
		];
		var replaceFilter = false;
		
		if (currentUri[1]) {
			
			jQuery.each(currentUri[1].split('&'), function(index, e){ 
				
				var pare = e.split('=');
				
				if ((jQuery.inArray(pare[0], paramNames)+1)) {
					params[pare[0]] = pare[1];	
					replaceFilter = true;
				}
			});					
		}
		
		/*if (History.enabled && (replaceFilter || params['for_who']) && !(currentUri[1] && !replaceFilter)) {

			if (!(window.location.href.indexOf('#')+1)) {
				History.replaceState({params: params}, null, null);
			} else {
				ShowIndicator(jQuery('#filters'), 'Загрузка...');
				ShowIndicator(jQuery('#result'), 'Загрузка...');
						
				sendRequest();			
			}			
		}*/
	}		
});


function initExperienceView(){

}

function initFilter(){
	jQuery('#city-select div.option_selected').each(function() {
		
		var trigger = jQuery(this);
		var list 	= trigger.find('.options');
		var field 	= trigger.prev();
		var print 	= trigger.find('span');
		
		trigger.click(function() {
			if (list.is(':visible')) {
				list.slideUp('fast');
			} else {
				list.slideDown('fast');
			}
		});
		
		list.find('ul li').click(function() {
			if (jQuery(this).hasClass('selected')) {
				return false;
			} else {
				field.val(jQuery(this).attr('option'));
				print.text(jQuery(this).text());
				list.find('ul li').removeClass('selected');
				jQuery(this).addClass('selected');
				list.hide('fast');
				
				params = {'city': jQuery(this).attr('option'), 'gal': params['gal'], 'url': params['url']};
				sendRequestAndChangeUrl();		
						
				window.scroll(0, 0); 	
			}
		});
			
		block 			= jQuery('#scroll-gift');
		container 		= jQuery('#custom-gift-v4');
		blockHeight 	= block.outerHeight();
		containerHeight = container.outerHeight();
		
		maxPad = containerHeight - blockHeight;
	
		if (containerHeight > 500) {
			ScrollGift(maxPad);
			jQuery(window).scroll(function(){ ScrollGift(maxPad);});
		}
		
	});
	
	jQuery('#city-select').click(function(event){
		jQuery('.filter_options').slideUp();
		event.stopImmediatePropagation();
	});
	
	jQuery('body').click(function(event){
		jQuery('#city-select div.options').each(function() {
			if (jQuery(this).is(':visible'))
				jQuery(this).hide();
		});
	});	
	
	jQuery('#filters a').click(function(){
        if (params['status']=='new') {
            params['status'] = {};
        }    
    });
	
	jQuery('a.filter-ajax').click(function(){
		var href = jQuery(this).attr('href');
				
		var uri = href.split('?');		
        
		jQuery.each(uri[1].split('&'), function(index, e){ var pare = e.split('='); params['history'] = {}; params[pare[0]] = pare[1];});		
				
		sendRequestAndChangeUrl();
		jQuery(document).scrollTo('0px', 500);
		return false;
	});
	
	jQuery('a.filter-new').click(function(){
		var href = jQuery(this).attr('href');

		var uri = href.split('?');	

        params = {'gal': params['gal'], 'url': params['url']};
		jQuery.each(uri[1].split('&'), function(index, e){ var pare = e.split('='); params[pare[0]] = pare[1]; });
				
		sendRequestAndChangeUrl();
		jQuery(document).scrollTo('0px', 500);
		return false;
	});
	
	jQuery('a.all_items').click(function(){
		var href = jQuery(this).attr('href');
				
		params = {'gal': params['gal'], 'url': params['url']};
		var uri = href.split('?');
		jQuery.each(uri[1].split('&'), function(index, e){ var pare = e.split('='); params[pare[0]] = pare[1];});
				
		sendRequestAndChangeUrl();
		return false;
	});

	jQuery('a.filter-views').click(function(){
		var href = jQuery(this).attr('href');
				
		params = {'gal': params['gal'], 'url': params['url']};
		var uri = href.split('?');
		
		jQuery.each(uri[1].split('&'), function(index, e){ var pare = e.split('='); params[pare[0]] = pare[1];});
				
		sendRequestAndChangeUrl();
		return false;
	});	
	
	if (params['price_min']>0) {
		
		nextPriceElem = jQuery('.filter_options .var-selected').parent().next().find('a');
		nextPrice = nextPriceElem.text();
		
		if (parseInt(nextPrice)) {
			jQuery('#experiences-list-box ul li:last-child').append('<div class="experience"><div class="name"></div><div class="place next-price" onClick="nextPriceElem.click();"><div class="nex-prev-title">Здесь еще больше идей!</div><div>Посмотри подарки <br>за <span id="nex-prev-price">'+nextPrice+'</span> грн.</div></div><div class="next-price-view-button"></div></div>');	
		}			
				
		prevPriceElem = jQuery('.filter_options .var-selected').parent().prev().find('a');
		prevPrice = prevPriceElem.text();

		if (parseInt(prevPrice)) {
			jQuery('#experiences-list-box ul li:last-child').append('<div class="experience"><div class="name"></div><div class="place next-price" onClick="prevPriceElem.click();"><div class="nex-prev-title">Здесь еще больше идей!</div><div>Посмотри подарки <br>за <span id="nex-prev-price">'+prevPrice+'</span> грн.</div></div><div class="next-price-view-button"></div></div>');	
		}		
	}
	
	jQuery('#experiences-list-box ul li:last-child').append('<div class="experience">'+jQuery('.eight-reasons').parents('.experience').html()+'</div>');	
	
	nextPrice = jQuery('[class="place next-price how-to-win-present-exper-link"]').parents('.experience').html();
	if (nextPrice) {
		jQuery('#experiences-list-box ul li:last-child').append('<div class="experience">'+nextPrice+'</div>');			
	}
}

/*******************Send Request******************************/
function sendRequest() {
	jQuery.get('/?widgetName=experience&actionName=indexajax', params, function(data){
		if (data == null){
			RemoveIndicator();
			jQuery('.filter_noresults').show();
			jQuery('div#filters').html(data.filter);
		} else {
		
			jQuery('div#experiences-list-box').replaceWith(data.items);
			RemoveIndicator();
			jQuery('div#filters').html(data.filter);
			
			jQuery('.filter_noresults').hide();
			jQuery('.all_items').parent().removeClass('var-selected');

			initFilter();
			experienceListInit();
			
			var getCurPrice = jQuery('.filter_sum .var-selected').text();
			if ( jQuery('.filter_sum div').hasClass('var-selected') ) {
				jQuery('.filter_sum .current_price').html(getCurPrice+'грн. ');
				jQuery('.filter_sum span').html('Другая цена');
			}
			
		}
		
	}, 'json');
}

function sendRequestAll(p) {
	jQuery.post('/?widgetName=experience&actionName=indexajax', p, function(data){
			jQuery('div#result').html(data.items);
			jQuery('div#filters').html(data.filter);
			jQuery('.filter_noresults').hide();	
			jQuery('.all_items').parent().addClass('var-selected');
			
			initFilter();
			experienceListInit();
		
	}, 'json');
}

if (containerHeight > 500){
	ScrollGift(maxPad);
	jQuery(window).scroll(function(){ ScrollGift(maxPad); });
}

function experienceListInit(){

	jQuery('div.pagination a').click(function(){
		ShowIndicator(jQuery('#result'), 'Загрузка...');											  
		jQuery(document).scrollTo('0px', 500);
		jQuery.post(jQuery(this).attr('href'), {}, function(data){
		
			RemoveIndicator();
			jQuery('#experiences-list-box').replaceWith(data.items);
			
			experienceListInit();
			
			block 			= jQuery('#scroll-gift');
			container 		= jQuery('#custom-gift-v4');
			blockHeight 	= block.outerHeight();
			containerHeight = container.outerHeight();
			
			maxPad = containerHeight - blockHeight;
			
			if (containerHeight > 500){
				ScrollGift(maxPad);
				jQuery(window).scroll(function(){ ScrollGift(maxPad);});
			}
		}, 'json');
		return false;
	});

	if (document.getElementById('full-img-top')) {
		jQuery('#result div.experience-selected').each(function() {
			product = jQuery(this);
			grayscale(product);
			jQuery(this).find('a.button-add').hide().next().show();
			grayscale.reset(jQuery('a.experiencez-button-link'));
		});
		
		if (jQuery('.experience_about').length || (jQuery('.basket_top .basket_carousel li').length && !document.getElementById('temp-top-banners'))) {

			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('#result div.experience span.button-added').each(function() {
		jQuery(this).text('В подарке');
	});
	
	jQuery('#result div.experience span.button-add').each(function() {
		jQuery(this).text('Добавить в подарок!');
	});
	
	jQuery('#result div.experience div.t-replace-hit').each(function() {
		jQuery(this).text('Хит');
	});
	jQuery('#result div.experience div.t-replace-new').each(function() {
		jQuery(this).text('Новинка');
	});
	
	jQuery('a.button-add').click(function() {
		if(!jQuery(this).parent().parent().parent().hasClass('experience-selected')) {
			if(jQuery('#jcarousel-inpresent li').length >= 10) {
				alert('Подарок может иметь не более 10 впечатлений');
				return false;
			}
			
			jQuery('#drop-tab').click();
			
			var itemId = $(this).attr('id');
			
			AddDelete_v3s(itemId, 'ADD', 'N', '/');
			
			var product = jQuery('#listexp-' + itemId);
			var img 	= jQuery('#drop-' + itemId);
			
			if (document.getElementById('full-img-top')) {
				var target 	= jQuery('#full-img-top');	
				grayscale(product);
				grayscale.reset(jQuery('a.experiencez-button-link'));
			} else {
				var target 	= jQuery('#full-img');
			}
			
			var productX = product.offset().left;
			var productY = product.offset().top;
			
			var newPositionY = productY + 45;
			var newPositionX = productX + 8;
			
			var basketX = target.offset().left+30;
			var basketY = target.offset().top+30;
			
			var gotoX = basketX - newPositionX;
			var gotoY = basketY - newPositionY;
	
			var newImageWidth = Math.ceil(img.parent().width() / 2);
			var newImageHeight = Math.ceil(img.parent().height() / 2);
			
			img.clone().appendTo('body').css({'position' : 'absolute', 'z-index' : '100', 'top' : newPositionY+'px', 'left' : newPositionX+'px'}).animate({opacity: 0.7}, 100 ).animate({opacity: 0.2, marginLeft: gotoX, marginTop: gotoY, width: newImageWidth, height: newImageHeight}, 1500, function() {jQuery(this).remove()});
			
			jQuery(this).hide();
			jQuery(this).next().show();
		}
		
		return false;
	});
	
	jQuery('#result div.experience div.place').mouseenter(function(){
		if (!jQuery('.basket_top').is(':hidden') || (document.location.href.indexOf('/experiencez/')+1)) {
			if (!jQuery(this).parent().parent().hasClass('experience-selected')) {
				jQuery(this).find('a.button-add').show();
			} else {
				jQuery(this).find('span.button-added').show();
			}
				
			jQuery(this).find('a.button-link').show();			
		}
	}).mouseleave(function(){
		jQuery(this).find('a.button-add').hide();
		jQuery(this).find('a.button-link').hide();
	});
	
	if(jQuery('.basket_top .basket_carousel').length) {
		initBasketTopCarousel();	
		hideTopBasket();	
		viewTextBlockInTopCarousel();
	}	
	
	if (jQuery('div.experience_about').length) {
		var destination = jQuery('div.experience_about').offset().top;
		window.scroll(0,destination); 			
	} else if (jQuery('div.experiences_info').length) {
		var destination = jQuery('div.experiences_info').offset().top;
		window.scroll(0,destination); 			
	}
}

function inpresent_initCallback(carousel) {
	jQuery('#jcarousel-inpresent').bind('mousewheel', function(event, delta) {
		if (delta < 0) {
			carousel.next();
		} else if (delta > 0) {
			carousel.prev();
		}
		return false;
	});
};

jQuery(function(){
	//jQuery('#jcarousel-inpresent').jcarousel({scroll: 1, vertical: true, initCallback: inpresent_initCallback});
	if (jQuery('.experience_about').length) {
		initExperienceView();	
	} else {
		initFilter();
	}
	experienceListInit();
});
