$(document).ready(function() {
	
	// View  Larger Image overlay on product detail page
	if ($("div.image-product").length) {
		
		if ($.browser.msie && $.browser.version == 6) {
			var overlayOption = {
				expose: '#000',
				onLoad: function(event) {
					$('select').css('visibility','hidden');
				},
				onClose: function(event) {
					$('select').css('visibility','');
				}
			}
		}else{
			var overlayOption = { expose: '#000' }
		}
        $("div.image-product a.enlarge").overlay(overlayOption);
    }

    // Product listing page Pattern Gallery
    if ($("ul.patterns-listing").length) {
		
		if ($.browser.msie && $.browser.version == 6) {
			var overlayOption = {
				target: '#gallery', 
				expose: '#000',
				onLoad: function(event) {
					$('select').css('visibility','hidden');
				},
				onClose: function(event) {
					$('select').css('visibility','');
				}
			}
		}else{
			var overlayOption = { 
				target: '#gallery', 
				expose: '#000'
			}
		}
		
        $("ul.patterns-listing a")
			.overlay(overlayOption)
			.gallery({ 
				speed: 800 
			});
    }
    
    // Product detail change type by select
    if ($("div.detail-product").length) {
        $("div.detail-product form select").bind('change', function() {
            var id = '#product-type-' + $(this).val();
            var product = $(id);
            if (product.length) {
                
                var price = $('div.detail-product p.price');
                
                // Change price
                price.find('span').text(product.find('.price').text()); 
                
                // Change on/out of stock icon
                if (product.find('.stock').text() == 'yes') {
                    price.addClass('on-stock');
                    price.removeClass('out-of-stock');
                } else {
                    price.removeClass('on-stock');
                    price.addClass('out-of-stock');
                }
                
                // Change SKU number
                $('#sku').text(product.find('.sku').text());
            }
        });
    }

	// Tabs
	$('#content div.accommodation-tabs, #content div.info-product, #content div.accommodation-tabs-property ').tabs();
	
	// View all leading brands
	var leading_brands_toggle = $('div.find-us a.view-all, div.find-us-visit a.view-all');
	leading_brands_toggle.bind('click', function() {
	    $('div.find-us ul.all, div.find-us-visit ul.all').slideToggle("normal", function() {
    	    if (leading_brands_toggle.text() == 'View all') {
                leading_brands_toggle.text('Hide');
            } else {
                leading_brands_toggle.text('View all');
            }	    
	    });
	    return false;
	});
	
	// Product list carousel on home page
	$('#content ul.selfcatering-list').jcarousel({
        scroll: 1,
        initCallback: custom_carousel_nav,
        buttonNextHTML: null,
        buttonPrevHTML: null
    });
    
    // Related product list carousel on product detail page
	$('#content ul.related-product').jcarousel({
        scroll: 1,
        initCallback: custom_carousel_nav,
        buttonNextHTML: null,
        buttonPrevHTML: null,
		itemLastInCallback: function(carousel){
			if(carousel.options.size == carousel.last){
				$('.hotel-nav .btn-next').addClass('btn-next-disabled');
				carousel.inTail = true;
			}
		}
    });    
	
	function custom_carousel_nav(carousel) {
		
		var setActivePaged = function(n){
			n++;
			var current = Math.ceil(n/perPage);
			$('.hotel-nav a.paged').removeClass('current');
			$('.hotel-nav a.paged-'+current).addClass('current');
		}
		var setArrowState = function(){
           $('.hotel-nav .btn-next,.hotel-nav .btn-prev').removeClass('btn-prev-disabled btn-next-disabled');
		   if(carousel.inTail)
               $('.hotel-nav .btn-next').addClass('btn-next-disabled');
           
           if(carousel.first == 1)
               $('.hotel-nav .btn-prev').addClass('btn-prev-disabled');   
		}
		
		$('.hotel-nav .btn-next').bind('click', function() {
			carousel.next();
			setArrowState();
			setActivePaged(carousel.first);
			return false;
		});
		
		$('.hotel-nav .btn-prev').bind('click', function() {
			carousel.prev();
			setArrowState();
			setActivePaged(carousel.first);
			return false;
		});
		
		// carousel custom paging
		var itemWidth = carousel.list.find(':first').innerWidth();
		var clipWidth = carousel.clip.width();
		var perPage = Math.floor(clipWidth/itemWidth);
		var totalPage = Math.ceil(carousel.options.size/perPage);
		
		for(var i=1; i< totalPage + 1; i++ ){
			var pagedTemplate;
			pagedTemplate  = '<a class="paged paged-'+i+'';
			pagedTemplate += (i==1) ? ' current' : '';
			pagedTemplate += '" href="#page-'+i+'">'+i+'<span></span></a>';
			
			$('.hotel-nav').append(pagedTemplate);
		}
		$('.hotel-nav a.paged').bind('click', function() {
			var itemToScroll = (Number($(this).text()) - 1) * perPage + 1;
			if(totalPage == $(this).text() && !carousel.inTail){
				var lastPos = (carousel.pos(itemToScroll));
				lastPos -= carousel.tail;
				carousel.animate(lastPos);
				carousel.inTail = true;
			}else{
        		carousel.scroll(jQuery.jcarousel.intval(itemToScroll));
			}
			$('.hotel-nav a.paged').removeClass('current');
			$(this).addClass('current');
			setArrowState();
        	return false;
    	});
		
	};
	
	if ($.browser.msie && $.browser.version == 6) {
		
		// this is for hover on button
		$(".search .button").hover(
			function () {
				$(this).addClass("button-hover");
			},
			function () {
				$(this).removeClass("button-hover");
			}
		);
		
	}
	
});

// DD_belatedPNG fix for IE6
if ($.browser.msie && $.browser.version == 6) {
    DD_belatedPNG.fix('.simple-overlay .close');
}
  
