var isSliderLoaded = false;

$(document).ready(function() {

	// ie 6 fix png
	$('div').pngFix( );
	
	// scroller in product page
	$('#circleCarousel').circleCarousel({
		margin: 28,
		currentImageDistraction: 3
		// currentImageDistraction: 13
	});
	
	// carousel debug 
	// $('#content, #wrapper, #circleCarousel').css('overflow', 'visible');
	// $('#circleCarouselRight, #circleCarouselLeft').css('margin-top', '120px');
	
	// if ie 7 
	$('#circleCarouselRight').hover(function() {
		$(this).css('background-image', 'url("/themes/psychic_bazaar/images/next_hover.png")');
	}, function() {
		$(this).css('background-image', 'url("/themes/psychic_bazaar/images/next.png")');
	});
	
	// if ie 7 
	$('#circleCarouselLeft').hover(function() {
		$(this).css('background-image', 'url("/themes/psychic_bazaar/images/prev_hover.png")');
	}, function() {
		$(this).css('background-image', 'url("/themes/psychic_bazaar/images/prev.png")');
	});
	
	
	// preloading some images
	$(['/themes/psychic_bazaar/images/next_hover.png', '/themes/psychic_bazaar/images/prev_hover.png', '/themes/psychic_bazaar/images/large-button-hover.jpg']).preload();
	
	var counter = 0;
	var counterError = 0;
	var imagesLength = $('#flip li').length;
	
	if (! $('#select-box-search-trigger').length > 0)  { 
		$('.select-box select').selectbox({
			onChange: function (val, inst) {
			if ($(this).parents('.products-options-table').length > 0 && ! $(this).parents('.select-box').attr('disable_submit')) {
				var redirectUrl = '';
				$(this).parents('.products-options-table').find('select').each(function() {
					redirectUrl = redirectUrl + '/' + $(this).attr('name') + '/' + $(this).find('option:selected').val();  					
				});
				
				redirectUrl = $('#currentURL').val() + redirectUrl;
				
				window.location.href = redirectUrl;
				
				// alert(redirectUrl);
				// $(this).parents('form').submit();
			}

		} 
		}); 
	}
        
        // piwik cart summary
        // add product - cart up!
        $('.cart_quantity_up').click(function() {
            var href = $(this).attr('href');
            
            var tr_name = $(this).parents('tr').attr('id');
            tr_name = tr_name.replace('product_', '');
            
            tr_name_arr = tr_name.split("_");
            product_id = tr_name_arr[0];
            
           $.getScript('/getCurrentCart.php?action=add&id=' + product_id, function() {
               window.location.href = href;
           });
           return false;            
        });
        
        // add product - cart up!
        $('.cart_quantity_down').click(function() {
            var href = $(this).attr('href');
            
            var tr_name = $(this).parents('tr').attr('id');
            tr_name = tr_name.replace('product_', '');
            
            tr_name_arr = tr_name.split("_");
            product_id = tr_name_arr[0];
            
           $.getScript('/getCurrentCart.php?action=remove&id=' + product_id, function() {
               window.location.href = href;
           });
           return false;            
        });
        
        $('.ajax_cart_block_remove_link').click(function() {
            var href = $(this).attr('href');
            
            var tr_name = $(this).parents('.cart-element').attr('id');
            tr_name = tr_name.replace('cart_block_product_', '');
            
            tr_name_arr = tr_name.split("_");
            product_id = tr_name_arr[0];
                                    
            currentPath = window.location.pathname;      
                                    
            if (window.location.pathname == '/order' || currentPath.match('/blog/')) {
                $.getScript('/getCurrentCart.php?action=remove_pernamently&id=' + product_id, function() {
                    window.location.href = href;
                });
                return false;
            }
        });
        
	
	$('.products-shelf-home .products-add-cart a img').click(function() {
		// google monitoring		
		var idTemp = ($(this).parent().attr('rel')).replace('ajax_id_product_', '');		
		_gaq.push(['_trackEvent','Add-to-basket', 'Add-to-basket-home', idTemp]);
	});
	
	$('.category-catalog .products-add-cart img').click(function() {
		var idTemp = ($(this).parent().attr('rel')).replace('ajax_id_product_', '');		
		_gaq.push(['_trackEvent','Add-to-basket', 'Add-to-basket-catalogue', idTemp]);
	});
	
	$('.search-category-block .products-add-cart img').click(function() {
		var idTemp = ($(this).parent().attr('rel')).replace('ajax_id_product_', '');
		alert(idTemp);
		_gaq.push(['_trackEvent','Add-to-basket', 'Add-to-basket-catalogue', idTemp]);
	});
	
	$('#cart_summary .cart_quantity_up').click(function() {
		var idTemp = $(this).parent().attr('rel');		
		_gaq.push(['_trackEvent','Add-to-basket', 'Add-to-basket-checkout', idTemp]);		
	});
	
	$('#cart_summary .cart_quantity_down').click(function() {
		var idTemp = $(this).parent().attr('rel');						
		_gaq.push(['_trackEvent','Remove-from-basket', 'Remove-from-basket-cart', idTemp]);		
	});
	
	$('#id_state').selectbox();
	
	$('#id_country').selectbox({
		onChange: function (val, inst) {
		
		
		if (! $(this).attr('no_ajax')) { 
		$.ajax({
			type: "GET",
			url: ajaxurl+"vatnumber/ajax.php?id_country="+val,
			success: function(isApplicable){
			if(isApplicable == "1")
			{
				$('#vat_area').show();
				$('#vat_number').show();
			}
			else
			{
				$('#vat_area').hide();
			}
			
		    }
		});
		}
		
		$("#id_state").selectbox("detach");
		
		updateState();
		
		$('#id_state').selectbox();
		$("#id_state").selectbox("attach");
				

	}  
	}); 
	

	$('#id_address_invoice').selectbox({
		onChange: function (val, inst) {
		    updateAddressesDisplay();
	    } 
	});
	$('#id_address_delivery').selectbox({
		onChange: function (val, inst) {
			updateAddressesDisplay();
		    
	    } 
	});
	
	
	
	$("div").live(
							'click',
							function(e) {
								e.stopPropagation();
								if ( !$(this).hasClass('sbHolder')
										&& !$(this).hasClass('sbToggle')
										&& !$(this).hasClass('sbSelector')
										&& !$(this).hasClass('sbOptions') 
 
                                        && !$(this).hasClass('sbHolderTiny')
										&& !$(this).hasClass('sbToggleTiny')
										&& !$(this).hasClass('sbSelectorTiny')
										&& !$(this).hasClass('sbOptionsTiny')										
								
								) {
									$("select").selectbox('close');
								}
							});

	
	$('.select-box-small select').selectbox({
		classHolder: 'sbHolderSmall', 
		classSelector: 'sbSelectorSmall',
		classOptions: 'sbOptionsSmall'
	});
	
	
	$('.select-box-tiny select').selectbox({
		classHolder: 'sbHolderTiny', 
		classSelector: 'sbSelectorTiny',
		classOptions: 'sbOptionsTiny',
		onChange: function (val, inst) {
	    if ($(this).parents('.products-options-table').length > 0) {
	    	$(this).parents('form').submit();
	    }
	    
    } 
		
	});
		
	
		
	
	$('#search-box-submit input').click(function() {
		$('#searchbox').submit();
	});
	
	// appear flags
	$('#language-change').click(function() {
		$('#language-selection-options').slideToggle('slow');
	});
	
	
	// hide block if numbers of errors equal the same as numbers of photos 
	
	// pirobox
	$().piroBox({
		
		my_speed: 400, //animation speed
		bg_alpha: 0.3, //background opacity
		slideShow : false, // true == slideshow on, false == slideshow off
		slideSpeed : 4, //slideshow duration in seconds(3 to 6 Recommended)
		close_all : '.piro_close,.piro_overlay'// add class .piro_overlay(with comma)if you want overlay click close piroBox
     });
	 
	 
	 $('#main .products-item-image-pack a').each(function() {
		 var anchor = $(this);
		 
		 var img = new Image();
		 img.onload = function() {
  		   $(anchor).css('width', this.width);
		   $(anchor).css('height', this.height);
		   $(anchor).css('display', 'block');
		   
		 }
		 img.src = $(this).find('img.glow').attr('src');
		 
		 if ($(this).attr('pendula')) {
			 $(this).find('img.glow').css('width', 135);
		 } else {
			 $(this).find('img.glow').css('width', 165);
		 }
		 
		 
		 
		 // $(this).find('img.glow').css('width', $(this).find('img.glow').width() + ($(this).find('img.glow').width() * 0.03));
		 
	 });
	 
	 $('.products-item-image-pack a, .special-product-image a').hover(function() {
		 img = $(this).find('img');
		 src = $(img).attr('src');

		 
		 $(this).find('.normal').toggle();
		 $(this).find('.glow').toggle();
		 
		 
	 }, function() {


		 $(this).find('.normal').toggle();
		 $(this).find('.glow').toggle();
		 
		 
	 });
	 
	 $('.products-details-image-click').click(function() {
		 $('#circleCarousel li:first a').click();

	 });
	 
	 // ajax submit in blog


	 $('#commentform').submit(function() {
		$(this).ajaxSubmit(function(msg) {
                     if (msg != 'success') {
                         if (! $('#respond').find('.error').length > 0) {
                             var box = '<div class="error"><p>An error occurred :</p><ol><li>' + msg + '</li></ol></div>';
                             $('#respond').find('#menu-outer-bg').after(box);
                         } else {
                             $('#respond').find('.error li').text(msg);
                         }

                     } else {
                         window.location.reload(true);
                     }
                 });
                return false;
	 });
	 
	 
    // google chrome fix
	 // if pendula
/* 
	 setInterval( function() {
		 if ($('#is_pendula').length > 0) {			 
			 $('.jcarousel-item-4').hide();
		 }		 
	 }, 100); */
	 
	 
	 
	// jQuery('#flip').jcoverflip({current: 1});
	 
     // $('.ui-jcoverflip').append($('#products-details-slider-images').html());
});


function analyticsCategoryCatalog(obj) {
	var idTemp = ($(obj).attr('rel')).replace('ajax_id_product_', '');
	_gaq.push(['_trackEvent','Add-to-basket', 'Add-to-basket-catalogue', idTemp]);
}

function analyticsProductPage(obj) {
	var idTemp = ($(obj).attr('rel')).replace('ajax_id_product_', '');	
	_gaq.push(['_trackEvent','Add-to-basket', 'Add-to-basket-product', idTemp]);
}

function analyticsRemoveCart(obj) {
	var idTemp = new String($(obj).parents('.cart-element').attr('id'));
	idTemp = idTemp.split("_");
	
	_gaq.push(['_trackEvent','Remove-from-basket', 'Remove-from-basket-cart', idTemp]);
}

function analyticsCreateAccount(obj) {	
    _gaq.push(['_trackEvent','Create-account', 'Create-account', $('#email_create').val()]);
        
    _paq.push(['setCustomVariable', 1, "email", $('#email_create').val(), "visit"]);
    _paq.push(['trackPageView']);

        
}

function analyticsLogin(obj) {
    _gaq.push(['_trackEvent','Login', 'Login', $('#email').val()]);
    _paq.push(['setCustomVariable', 1, "email", $('#email').val(), "visit"]);
    _paq.push(['trackPageView']);
    
    // $(obj).parents('form').submit();
        
}




$(function(){
			
			$('#slides').slides({
				preload: true,
				preloadImage: '/themes/psychic_bazaar/img/loading.gif',
				play: 0,
				pause: 2500,
				fadeSpeed: 600,
				hoverPause: true
			});
			
			(function ($) {
			$.fn.vAlign = function() {
				return this.each(function(i){
					$(this).children().wrapAll('<div class="nitinh-vAlign" style="position:relative;"></div>');
					var div = $(this).children('div.nitinh-vAlign');
					var ph = $(this).height();
					var dh = div.height();
					var mh = (ph - dh) / 2;
					div.css('top', mh);
				});
			};
			})(jQuery);
			//$('.aa').vAlign();
			/*$('.aa span').each(function(){
				var h = $(this).height(), ch = $(this).parent().outerHeight();
				$(this).css('top',(ch - h) / 2.5);
			});
			$('.aa img').each(function(){
				var h = $(this).height(), ch = $(this).parent().outerHeight();
				$(this).css('top',(ch - h) / 2.5);
				$(this).css('position','relative');
			});*/
			

	        // jQuery('#flip').jcoverflip({current: 1});
			
			
			jQuery(function(){
				jQuery('ul.sf-menu').superfish({
					delay: 500,
					pathClass:  'current'
				 
				});
			});
			
			
		});
		
		
		$.fn.preload = function() {
		    this.each(function(){
		        $('<img/>')[0].src = this;
		    });
		}
		
		$.fn.circleCarousel = function(params) {
			var speed      = params.speed ? params.speed : 300;
			var nThumbnail = params.nThumbnail ? params.nThumbnail : 'thumbnail'; 
			var hThumbnail = params.hThumbnail ? params.hThumbnail : 'thumbnail-glow';
			var margin     = params.margin ? params.margin : 0;
			var currentImageDistraction = params.currentImageDistraction ? params.currentImageDistraction : 0;
			var circleLoadingId = params.circleLoadingId ? params.circleLoadingId : "#circleCarouselLoading";
			
			var ulList         = $(this).find('ul');
			var currentElement = 0;
			var centerElement  = 0;
			var scrollStep     = 0; // do not modify!
			var imageWidth     = 113;
			
			// block
			$(ulList).data("block", false);
			
			// preload images
			var images = $(this).find('ul img'); 
			
			// set current position for start
			if (images.length % 2 != 0) {
				currentElement = ((images.length * 3) + 1) / 2;
				centerElement  = currentElement;
				
				scrollStep = ((images.length + 1) / 2) - 1; 
			} else {
				currentElement = (images.length * 3) / 2;
				centerElement = currentElement;
				
				scrollStep = ((images.length) / 2);		
			}

			$(images).each(function() {
				$('<img/>')[0].src = getHoverName(this.src);
				// copies
				cloneObj = $(this).parent().parent().clone();
				$(cloneObj).find('a').removeClass('pirobox');
				$(cloneObj).find('a').addClass('pirobox_1');
				$(cloneObj).appendTo(ulList);
			});
			
			$(images).each(function() {
				if ( $.browser.msie && $.browser.version == 7) {
					/* alert('carousel-margin-fix-ie'); */
				}
				// copies
				cloneObj = $(this).parent().parent().clone();
				$(cloneObj).find('a').removeClass('pirobox');
				$(cloneObj).find('a').addClass('pirobox_2');
				$(cloneObj).appendTo(ulList);

			});
			
			// assign numbers 
			i = 1;
			$(ulList).find('li').each(function() {
				$(this).addClass('circle-carousel-' + i);
				i = i + 1;
			});
			
			glowImage(currentElement);
			
			
		    // center
			allImagesWidth = (getAllImagesWidth(images) * 3) ;
			
			if (images.length % 2 != 0) {
				var centerPosition = ((allImagesWidth / 2) - ($(this).width() / 2));
				
				// fix for chrome / ie
				if (centerPosition > 0) {
					centerPosition = centerPosition * (-1);
				}
				
			    $(this).find('ul').css('left', centerPosition);
			} else {
				var centerPosition = ((allImagesWidth / 2) - ($(this).width() / 2) + (images.width() - margin) );
				
				// fix for chrome / ie
				if (centerPosition > 0) {
					centerPosition = centerPosition * (-1);
				}
				
				$(this).find('ul').css('left', centerPosition);
			}
			
			
			
			// navigation left and right
			$('#circleCarouselLeft').click(function() {
				scrollLeft();
			});
			
			$('#circleCarouselRight').click(function() {
				scrollRight();
			});
			

			function getHoverName(name) {
				// http://mdm.pbzstatic.com/tarot/the-llwellyn-tarot/card-1-thumbnail.png
				name = name.replace('thumbnail', 'thumbnail-glow');
				return name;
			}
			
			function getNormalName(name) {
				name = name.replace('thumbnail-glow', 'thumbnail');
				return name;
			}
			
			function getAllImagesWidth(images) {
				allImagesWidth = 0;
				addValue       = 0;
				
				$(images).each(function() {
				    allImagesWidth = allImagesWidth + imageWidth - margin;
				    
				    if ( $.browser.msie && $.browser.version == 7) {
				    	allImagesWidth = allImagesWidth + 3; // for ie
				    }
				    
				    addValue = $(this).width() - margin;
				});
				
				if (images.length % 2 == 0) {
					allImagesWidth = allImagesWidth - addValue;
				}
				
				return allImagesWidth + (currentImageDistraction) ;
			}
			
			function glowImage(element) {
				elementN = $('.circle-carousel-' + element);
				src     = new String($(elementN).find('img').attr('src')); 
				
				srcHover = getHoverName(src);
				
				$(elementN).find('img').attr("src", srcHover);
				$(elementN).find('img').addClass('circle-carousel-current');
				$(elementN).find('img').show();
			}
			
			function removeGlowes() {
				imgs = $(ulList).find('li img');
				
				$(imgs).each(function() {
					$(this).attr('src', getNormalName($(this).attr('src')));
					$(this).removeClass('circle-carousel-current');
					
				});
			}
			
			function scrollRight() {
				if (! isBlocked()) {
					$(ulList).data("block", true);
					removeGlowes();

					// get last element id 
					lastElementId = new String($(ulList).find('li:last').attr('class'));
					lastElementId = lastElementId.replace('circle-carousel-', "");
					lastElementId = parseInt(lastElementId) - scrollStep;

					if (currentElement == lastElementId) {
						moveToCenter(false);
					}

					moveValue = ($('.circle-carousel-' + (currentElement + 1) + ' img').width() ) - margin;

					if ( $.browser.msie && $.browser.version == 7) {
					    moveValue = moveValue + 3;
					}
					
					$(ulList).animate({
						left: '-=' + moveValue
					}, speed, function() {
						$(ulList).data("block", false);
					});

					currentElement = currentElement + 1;

					// use glow
					glowImage(currentElement);
				}
				
			}
			
			function scrollLeft() {
				if (! isBlocked()) {
					$(ulList).data("block", true);
					removeGlowes();

					// get first element id 
					firstElementId = new String($(ulList).find('li:first').attr('class'));
					firstElementId = firstElementId.replace('circle-carousel-', "");
					firstElementId = parseInt(firstElementId) + scrollStep ;

					if (currentElement ==  firstElementId) {
						moveToCenter(true);
					}

					moveValue = ($('.circle-carousel-' + (currentElement - 1) + ' img').width()) - margin;

					if ( $.browser.msie && $.browser.version == 7) {
					    moveValue = moveValue + 3;
					}
					
					$(ulList).animate({
						left: '+=' + moveValue
					}, speed, function() {
						$(ulList).data("block", false);
					});

					currentElement = currentElement - 1;

					// use glow
					glowImage(currentElement);

				}

			}	
			
			function isBlocked() {
				if ($(ulList).data("block")) {
					return true;
				}
				return false;
			}
			
			function moveToCenter(isLeftAction) {
				// if is left movement and is odd
				addValue   = 0;
				addElement = 0;
				if (images.length % 2 == 0 && isLeftAction) {
					addValue   = images.width() - margin;
					addElement = 1; 
				}
				
				$(ulList).css('left', centerPosition - addValue);
				currentElement = centerElement + addElement;
			}
			

			
			
		    // return $(this).addClass('changed'); 
		}


