$(document).ready(function() {
    pageStructure();
    ageVerification();
    makeTabs();
    if ($('.gallery').size()==1) buildGallery();
	
  var currentPosition = 0;
  var slideWidth = 840;
  var slides = $('.slide');
  var numberOfSlides = slides.length;
 
  // Remove scrollbar in JS
  $('#slidesContainer').css('overflow', 'hidden');
 
  // Wrap all .slides with #slideInner div
  slides
    .wrapAll('<div id="slideInner"></div>')
    // Float left to display horizontally, readjust .slides width
	.css({
      'float' : 'left',
      'width' : slideWidth
    });
 
  // Set #slideInner width equal to total width of all slides
  $('#slideInner').css('width', slideWidth * numberOfSlides);
 
  // Insert controls in the DOM
  $('#slideshow')
    .prepend('<span class="control" id="leftControl">Clicking moves left</span>')
    .append('<span class="control" id="rightControl">Clicking moves right</span>');
 
  // Hide left arrow control on first load
  manageControls(currentPosition);
 
  // Create event listeners for .controls clicks
  $('.control')
    .bind('click', function(){
    // Determine new position
	currentPosition = ($(this).attr('id')=='rightControl') ? currentPosition+1 : currentPosition-1;
    
	// Hide / show controls
    manageControls(currentPosition);
    // Move slideInner using margin-left
    $('#slideInner').animate({
      'marginLeft' : slideWidth*(-currentPosition)
    });
  });
 
  // manageControls: Hides and Shows controls depending on currentPosition
  function manageControls(position){
    // Hide left arrow if position is first slide
	if(position==0){ $('#leftControl').hide() } else{ $('#leftControl').show() }
	// Hide right arrow if position is last slide
    if(position==numberOfSlides-1){ $('#rightControl').hide() } else{ $('#rightControl').show() }
  }	
});
function trace(value){
	if (!window.console || !console.firebug) {
		alert(value);
	} else {
		console.log(value);
	}
}
function buildNav(deepLink, xmlFile, cmsid) {
	    globalDeepLink = deepLink;
		globalcmsid=cmsid;
		var deepLink = (deepLink=='/' && checkCookie()) ? '/home/' : deepLink;
		var flashvars = {};
		flashvars.cubesize ='0';
		flashvars.lowres ='0';
		flashvars.deeplink = deepLink;
		flashvars.configpath = xmlFile;
		var params = {};
		params.menu = 'false';
		params.wmode = 'opaque';
		params.bgcolor = '#001e01';
		params.quality = 'best';
		params.id = 'base';
		params.name = 'base';
		params.base = '/flash/';
		params.scale = 'noscale';
		params.align = 'left';
		params.salign = 'tl';
		params.allowScriptAccess = 'always';
		var attributes = {};
		attributes.id = 'base';
		attributes.name = 'base';
		swfobject.embedSWF('/flash/base.swf', 'menu-placeholder', '1000', '603', '9.0.0','/flash/expressInstall.swf', flashvars, params, attributes);

			if(cmsid=='virttualdistillerytour'){
				$(document).ready(function() {
					$('#menu').removeClass('opened');
					$('#menu').next().show();
				});	
				var flashvars = {};
				flashvars.videoURL = '/flash/flv/';
				var params = {};
				params.menu = 'false';
				params.wmode = 'opaque';
				params.bgcolor = '#000000';
				params.quality = 'high';
				params.id = 'tour';
				params.name = 'tour';
				params.base = '/flash/';
				params.scale = 'noscale';
				params.align = 'left';
				params.salign = 'tl';
				var attributes = {};
				attributes.id = 'tour';
				attributes.name = 'tour';
				swfobject.embedSWF('/flash/page-virtual_tour.swf', 'wrapper', '1000', '492', '9.0.0','/flash/expressInstall.swf', flashvars, params, attributes);
		}
		
		if(cmsid=='perfectlybalancedgame'){
				$(document).ready(function() {
					$('#menu').removeClass('opened');
					$('#menu').next().show();
				});	
		}
		
		if(cmsid=='visitorcentres'){
			$(document).ready(function() {
					$('.mainnav li:first').addClass('left');
					$('.mainnav li:last').addClass('right');
				});	
		}	
		
		if(cmsid=='jamesongame'){
			$(document).ready(function() {
					$('#menu').removeClass('opened');
					$('#menu').next().show();
				});	
		}	
	if(cmsid=='empireawards'){

var flashvars = {};
var params = {};

params.wmode = 'transparent';
params.bgcolor = '#000000';
params.quality = 'high';	
				
var attributes = {};
attributes.id = 'maguire';
attributes.name = 'maguire';

swfobject.embedSWF('/flash/jm-movie.swf', 'flash-wrapper', '268', '126', '9.0.0','/flash/expressInstall.swf', flashvars, params, attributes);
}

}



function checkCookie() {
	var isCookieDone = $.cookie('JamesonCookie');
	if (Boolean(isCookieDone)) {
		return true;
	} else {
		$.cookie('JamesonCookie', 'true');
		return false;
	}
}
function overlayOpen(oTitle,oUrl) {
	if(!oUrl){
		if(regionvar=='us') {oUrl = '/Overlay_Advertising_Online_US.aspx?TB_iframe=true&height=500&width=900&modal=true';
		}
		else oUrl = '/Overlay_Advertising_Online.aspx?TB_iframe=true&height=500&width=900&modal=true';
		}
	tb_show(oTitle,oUrl);
}
function overlayClose() {
	self.parent.tb_remove();
};
function pageStructure() {	
    $('#menu.opened').next().hide();		
};
function makeTabs() {
    try {
        $(".tabs > ul").tabs();
    } catch (err) { }
};
function ageVerification() {
	var aElement = $('#wrapper.av input:text');
	var aPattern = new RegExp('[^0-9]+', 'g');
	var aPressed = new Array();
	$(aElement).click(function () {
		$(this).select();
	}).focus(function () {
		$(this).select();
	}).keydown(function () {
		aPressed.push('1');
	}).keyup(function () {
		aPressed.shift();
		var aVal = this.value;
		aVal = aVal.replace(aPattern, '');
		if (aVal != this.value) this.value = aVal;
		if (this.value.length >= Number($(this).attr('maxlength')) && aPressed.length==0) {
			$(this).next().focus();
		}
	}).eq(0).focus();
};
function menuGrow() {
    $('#menu').addClass('opened');
};
function menuShrink() {
    $('#menu').removeClass('opened');
};
function buildGallery() {
	var gContainer = $('.gallery');
	var gAutoWidth = $(gContainer).hasClass("autowidth");
	var gUpSlide = $(gContainer).hasClass("upslide");
	var gFadeTime = 300;
	var gFadeType = 'linear';
	var gTitle = $(gContainer).children(':first:not(ul)').addClass('g-title');
	var gList = $(gContainer).find('ul');
	var gProjector = $('<div>').addClass('g-projector').addClass('loading').insertBefore(gList);
	var gMask = $('<div>').addClass('g-mask').append(gList);
	var gSlider = (gUpSlide) ? $('<div>').addClass('g-slider').insertBefore(gProjector).append(gMask) : $('<div>').addClass('g-slider').insertAfter(gProjector).append(gMask);
	var gArrowL = $('<a>').addClass('g-arrowl').attr('href','#').insertBefore(gMask);
	var gArrowR = $('<a>').addClass('g-arrowr').attr('href','#').insertAfter(gMask);
	var gLink = $(gList).find('li a');

	var gNumImage = $(gLink).size();
	
	var gCssArrow = $(gArrowL).outerWidth(true);
	var gCssThumb = $(gLink).eq(0).parent().outerWidth(true);
	var gCssThumbMargin = gCssThumb-$(gLink).eq(0).parent().outerWidth();
	var gCssList = gNumImage*gCssThumb;
	var gCurrentStep = 0;
	
	var gCssWidth;
	var gCssMask;
	var gNumImageStep;
	var gMaxStep;
	var gWidthStep;
	
	var imgWidth;
	var imgHeight;

	init();
	
	function init() {

		$(gList).width(gCssList);
		
		doTransition();
		buildLink();
		buildArrows();
		showImage(0);
		if (gNumImage<=1) $(gSlider).remove();
	}
	
	function buildVariables(galleryWidth) {
		gNumImageStep = Math.ceil((galleryWidth-2*gCssArrow+gCssThumbMargin)/gCssThumb);
		gCssWidth = gNumImageStep*gCssThumb+2*gCssArrow-gCssThumbMargin;
		gCssMask = Number(gCssWidth-2*gCssArrow);
		gMaxStep = Math.ceil(gNumImage/gNumImageStep)-1;
		gWidthStep = gCssThumb*gNumImageStep;
	}
	
	function moveImages() {
		$(gList).animate({
			left: -(gCurrentStep*gWidthStep)
		}, 500 );
	}
	
	function getListWidth(list) {
		var gLinkWidth = 0;
		$(list).each(function() {
			gLinkWidth += $(this).parent().outerWidth(true);
		});
		return gLinkWidth;
	}
	
	function buildArrows() {
		$(gArrowL).click(function() {
			if (gCurrentStep>0) {
				gCurrentStep--;
				moveImages();
			}
			return false;
		});
		$(gArrowR).click(function() {
			if (gCurrentStep<gMaxStep) {
				gCurrentStep++;
				moveImages();
			}
			return false;
		});
	}
	
	function buildLink() {
		$(gLink).click(function() {
			$(gProjector).empty().addClass('loading');
			showImage($(gLink).index(this));
			return false;
		});
	}
	
	function showImage(index) {
		var imageUrl = $(gLink).eq(index).attr('href');
		var imageExt = imageUrl.toLowerCase().split(".").pop();
		
		if(imageExt=="flv") {
			var gVideoplayer = $('<div>').attr('id','g-videoplayer').appendTo(gProjector);
			imgWidth = 400;
			imgHeight = 300;
			
			doTransition();
			$(gProjector).animate({
				height: imgHeight
				}, gFadeTime, gFadeType, function() {
						$(this).removeClass('loading');
						
						var flashvars = {};
							flashvars.videofile = imageUrl;
						var params = {};
							params.base = 'flash';
						var attributes = {};
						swfobject.embedSWF('/flash/videoplayer.swf', 'g-videoplayer', imgWidth, imgHeight, '9.0.0','/flash/expressInstall.swf', flashvars, params, attributes);
					}
			);
		
		}else{
			var img = new Image();
					
			$(img).load(function () {
				$(this).hide();
				$(gProjector).append(this);
				imgHeight = $(this).innerHeight();
				imgWidth = $(this).innerWidth();
				doTransition();
				$(gProjector).animate({
					height: imgHeight
					}, gFadeTime, gFadeType, function() {
							$(img).fadeIn();
							$(this).removeClass('loading');
						}
				);
			}).error(function () {
				trace('error');
			}).attr('src', imageUrl);
		}
	}
	
	function doTransition() {
		
		var newWidth = gAutoWidth && !isNaN(imgWidth) ? imgWidth : $(gContainer).width();
		
		buildVariables(newWidth);
		
		$(gMask).animate({
			width: gCssMask
			}, gFadeTime, gFadeType
		);
		$(gContainer).animate({
			width: gCssWidth
			}, gFadeTime, gFadeType
		);
	}
	
	
	
}