// JavaScript Document
$.fn.reverse = [].reverse;

$(document).ready(function() {

	var agent = navigator.userAgent.toLowerCase(); 

	if ($.browser.msie) {

		$('body').addClass('ie ie'+$.browser.version.substr(0,1));

	} else if (agent.match(/chrome/i)) {

		$('body').addClass('chrome');

	} else if (agent.match(/safari/i)) {

		$('body').addClass('safari');

	}

	if (agent.match(/iphone/i)) {

		$('body').addClass('iphone');

	}

	$('#scrollcontent').html('<div id="scrollcontentinner">'+$('#scrollcontent').html()+'</div>');

	$('#content').prepend('<div id="contenttop"></div><div id="contentbase"></div>');

	$('#topMenu ul li').hover(function() { $(this).addClass('hover'); }, function() { $(this).removeClass('hover'); });

	$('.hoverImage').hover(
		function(e) { $(this).find('.default').first().css('display', 'none'); $(this).find('.hover').first().css('display', 'block'); },
		function(e) { $(this).find('.hover').first().css('display', 'none'); $(this).find('.default').first().css('display', 'block'); }
	);

	$('.galleryimage').click(

		function() {

			var $small = $(this).find('img').first();
			var $large = $('#largeimage img');

			$large.fadeOut('fast', function() {

				$('#largeimage img').removeAttr('width');
				$('#largeimage img').removeAttr('height');

				$('#largeimage img').attr({ src    : $small.attr('src').replace('/small/', '/large/'),
											alt    : $small.attr('alt'),
											title  : $small.attr('title')
										  });

				$('#largeimage img').attr({ width  : $large.width(),
											height : $large.height()
										  });

				$('#largeimage img').css('marginTop', ((496 - $large.height()) / 2) + "px");

			}).fadeIn();

		});

	$('.icecream-product').click(

		function() {

			var flavour = $(this).find('h2').html().replace(/&amp;/gi, 'and');
			var imgname = flavour.toLowerCase().replace(/ /g, '');

			$('#largeimage img').attr({ src   : 'images/products/'+imgname+'.jpg',
										alt   : flavour,
										title : ''
									  });

			$('#largeimage img').attr({ width  : $('#largeimage img').width(),
										height : $('#largeimage img').height()
									  });

			$('#largeimage img').fadeIn();

			$('#largeimage #imageoverlay').html('Retail and catering sizes available');

		});

	$('.sorbet-product').click(

		function() {

			var flavour = $(this).find('h2').html().replace(/&amp;/gi, 'and');

			$('#largeimage img').attr({ src   : 'images/products/sorbet.jpg',
										alt   : flavour,
										title : '',
										width  : '545',
										height : '500'
									  });

			$('#largeimage img').fadeIn();

			$('#largeimage #imageoverlay').html('Catering sizes only');

		});

	$('#scrollup, #scrolldown').hover(function() { $(this).addClass('hover'); }, function() { $(this).removeClass('hover'); });

	$('#scrollup, #scrolldown').click(function() {

		var dir = $(this).attr('id').replace('scroll', '');

		var outerheight = $('#scrollcontent').height();
		var outerpos = $('#scrollcontent').offset();
		var outertop = outerpos.top;
		var outerbase = outertop + outerheight;

		var innerheight = $('#scrollcontentinner').height();
		var inneroffset = $('#scrollcontentinner').offset();
		var innertop = inneroffset.top;
		var innerbase = innertop + innerheight;
		var innerposition = $('#scrollcontentinner').position();
		var innercsstop = innerposition.top;

		var maxscroll = outerheight - 40;

		if (innerheight > outerheight
			&& ((dir == 'up' && innertop < outertop)
				|| (dir == 'down' && innerbase > outerbase))) {

			var scrolldiff = dir == 'up' ? outertop - innertop : innerbase - outerbase;
			var scrollamount = Math.min(maxscroll, scrolldiff);

			if (dir == 'up') {

				var newtop = innercsstop + scrollamount;

			} else {

				var newtop = innercsstop - scrollamount;

			}

			$('#scrollcontentinner').stop().animate({top:newtop+"px"},{duration:500});

		}

	});

});

(function($) {
  var cache = [];
  // Arguments are image paths relative to the current page.
  $.preLoadImages = function() {
    var args_len = arguments.length;
    for (var i = args_len; i--;) {
      var cacheImage = document.createElement('img');
      cacheImage.src = arguments[i];
      cache.push(cacheImage);
    }
  }
})(jQuery)
