var preload = [
  'loader.gif',
  'wallbg.jpg',
  'framebg.jpg',
  'logo.png',
  'logoGlow.png',
  'parchment.png',
  'contact.png',
  'directions.png',
  'mainTop.png',
  'mainbg.png',
  'mainBottom.png',
  'facebookbutton.png',
  'twitterbutton.png',
  'emailopenbutton.png',
  'emailbg.png',
  'emailGlow.png',
  'emailinputbg.png',
  'twitterbird.png',
  'triviaPoster.png',
  'window.png',
  'rollerbg.jpg',
  'rollerlightandshade.png',
  'shadebg.jpg',
  'shadeshadow.png',
  'menubutton.png',
  'new_menubutton.png',
  'menubuttonshadow.png',
  'gallery/_myboys.jpg',
  'beerRing.png',
  'happymeal.png',
  'menuItemSelector.png',
  'tooltipbg.jpg',
  'tooltippointerbg.png',
  'prevArrow.gif',
  'nextArrow.gif',
  'loading.gif',
  'beerbox.png',
  'keg.png',
  'beerboxGlow.png',
  'kegGlow.png',
  'beerThumbs.jpg',
  'emptypixel.png'
];
var preloadCount = 0;

for(i=0;i<preload.length;i++){
  var img = new Image();
  img.onload = increment;
  img.src = 'images/' + preload[i];
}

function increment(){
  preloadCount++;
  if(preloadCount == preload.length + 1){
    delete preload;
    delete preloadCount;
    delete img;
    firstRun();
  } 
}

function firstRun(){
  setupGallery();
  menuBlink(1);
  $('#menuFrame').load('menu.html');
  $('body').fadeIn('slow',function (){
    $('#advert').load('advert.html',function (){
      if($('#advert').html().length) $('#advert').delay(3000).animate({width:470});
    });
  });
}

$(document).ready(function(){
  if(!ua.isGood) $('#menuNav a span').css('font-size',12);
  if(ua.isWebKit() && ($(document).width())%2) $('#frame').css('background-position','1px 0px'); 
  $(document).click(closeSliders);
  checkTwitter();
  setPosterTitles();
  $('#rotator').load('rotator.php');
  $('#menuNav a').click(selectMenu);
  $('#draughtStage').load('draught.html');
  $('#bottleStage').load('bottles.html');
  $('.glower').each(function (){
    var dup = $(this).clone();
    $(dup).empty();
    $(dup).addClass('glow');
    $(dup).css('background-Image','url(images/'+$(dup).attr('id')+'Glow.png)');
    $(this).before(dup);
  });
  $('.glower').hover(glowerOver,glowerOut);
  $('#logoClick').hover(
    function (){
      $('#logoGlow, #directions').fadeIn(100);
    }, function (){
      $('#logoGlow, #directions').fadeOut(100);
  });
  $('#emailBox').hover(
    function (){
      if($(this).hasClass('open')) return;
      $(this).css('background-image','url(images/emailGlow.png)');
    },
    function (){
      $(this).css('background-image','url(images/emailbg.png)');
    }
  );
  // $('.event').click(function (){
  //   alert('Details for all our events will be enabled soon - keep checking!');
  // });
  $('#overlay').css({opacity:0});
  $('#micetype').css({opacity:.7}).hover(
    function (){
      $(this).css({background:'#222'});
    },
    function (){
      $(this).css({background:'transparent'});
    }
  );
  generateScroller('draught');
	
  // all setup before increment()
  
  increment();
});

function showContact(){
  $('#contact').fadeIn().addClass('open');
  $('#overlay').css({display:'block'}).animate({opacity:.8},function (){
    $('#parchmentLeft').animate({width:644});
    $('#parchmentRight').animate({left:783},function (){
      $('#contactContent').fadeIn();
    });
  });
}

function hideContact(){
  $('#contact').fadeOut(function (){
    $('#parchmentLeft').css({width:50});
    $('#parchmentRight').css({left:190});
    $('#contactContent').css({display:'none'});
  }).removeClass('open');
  $('#overlay').animate({opacity:0},function(){$(this).css({display:'none'})});
}

function glowerOver(e){
  $(e.target).prev().fadeIn(100);
}

function glowerOut(e){
  $(e.target).prev().fadeOut(100);
}

function generateScroller(type){
  if(!$('.'+type).length){
    setTimeout('generateScroller("'+type+'")',100);
    return;
  }
  if(type == 'draught'){
    $('#scrollPane').css({width:$('.draught').length * 113})
    $('.draught').each(function(i){
      var img = (($(this).attr('type')).replace(/\s/g,'')).toLowerCase();
      var output = '<a class="draughtLink'+( $(this).attr('status') == 'true' ? '' : ' waiting') +
                   '" id="draught'+i+'" href="javascript:;" onclick="toggleToolTip(this)" title="'+ $(this).attr('name') +
                   '" style="background-image:url(images/draught/'+img+'.png)"><span>'+$(this).attr('name')+'</span></a>';
      $('#scrollPaneLinks').append(output);
    });
  } else {
    $('#scrollPane').css({width:$('.bottle').length * 113})
    $('.bottle').each(function(i){
      var output = '<a class="listLink" id="bottle'+i+'" href="javascript:;" onclick="toggleToolTip(this)" title="'+
                   $(this).attr('name') + '" style="background-position:-'+(i*112)+'px top;"><span style="background-position:-'+
                   (i*112)+'px bottom;"></span></a>';
      $('#scrollPaneLinks').append(output);
    });
  }
  $('.waiting').css('opacity',.3);
  increment();
}

function amuse(e){
  var leftPad = 60;  // actual pad is 20
  var pos = e.pageX ? e.pageX : e.clientX; // ie kludge
  var mouseLeft = pos - $('#scrollContent').offset().left - leftPad;
  var viewPortWidth = 604;
  var activeWidth = 478; // actual usable width is 558, but we give 40px each side for better usability
  if(mouseLeft < 0 || mouseLeft > activeWidth || $('#toolTip').css('display') == 'block') return;

  $('#scrollPane').stop();

  var unseenWidth = $('#scrollPane').width() - viewPortWidth;
  var newLeft = -(unseenWidth * (mouseLeft / activeWidth));
  
  $('#scrollPane').animate({left:newLeft}, 1600,'easeOutExpo');
}

function toggleBeerType(type){
  $('.glow').fadeOut(100);
  $('#scrollPane').stop();
  $('#scrollPaneLinks').empty();
  generateScroller(type);
  $('#scrollPane').animate({left:0},600,'easeOutExpo');
}

function closeSliders(e){
  var sliders = ['emailBox','shade','toolTip','contact'];
  var index = $.inArray(e.target.id,sliders);
  if(index != -1) sliders.splice(index,1);
  $(e.target).parents().each(function (){
    var index = $.inArray(this.id,sliders);
    if(index != -1) sliders.splice(index,1);
  });
  $.each(sliders,function (i,v){
    switch(v){
      case 'emailBox':
        if($('#emailBox').hasClass('open')){
          $('#emailBox').stop();
          toggleEmail();
        }
        break;
      case 'shade':
        if($('#menu').hasClass('open')){
          $('#menu').stop();
          $('#shadeshadow').stop();
          $('#rollerbg').stop();
          toggleMenu();
        }
        break;
      case 'toolTip':
        if(!$(e.target).hasClass('listLink') && !$(e.target).parent().hasClass('draughtLink')){
          if ($('#toolTip').css('display') == 'block') closeTastingNotes();
        }
        break;
      case 'contact':
        if($('#contact').hasClass('open')){
          $('#contact').stop();
          hideContact();
        }
        break;
    }
  })
}

function openEmail(){
  if($('#emailBox').hasClass('open')) return;
  toggleEmail();
}

function toggleEmail(){
  $('#emailBox').css('background-image','url(images/emailbg.png)');
  $('.emailContent').hide();
  if($('#emailBox').hasClass('open')){
    var h = 100;
    var r = 0;
    $('#emailBox').removeClass('open');
  } else {
    var h = 210;
    var r = -9;
    $('#emailBox').addClass('open');    
  }
  $('#emailBox').animate({height:h, right:r}, 400, 'easeOutExpo', function(){
    if(r){
      $('#emailForm').fadeIn();
    } else {
      $('#emailStart').fadeIn();
      // $('#mailFrame').src = 'mailForm.html';
    }
  });
}

function inputTextFocus(w,txt) {
	if(w.value == txt) w.value = '';
}

function inputTextBlur(w,txt) {
	if(w.value == '' || w.value == ' ') w.value = txt;
}

function checkTwitter(){
  if($('.twtr-tweet-text')){
    var tweet = $('.twtr-tweet-text > p').html();
    if(tweet){
      $('#theTweet').html(tweet);
      $('#theTweet a:first').prepend('Twitter @');
      return;
    }
  }
  setTimeout('checkTwitter()', 1000);
}

function switchPoster(){
  var front = $('#posters .on').eq(0);
  var back = $('#posters .off').eq(0);
  $(front).removeClass('on').addClass('off').animate({top:0,left:0},'fast');
  $(back).removeClass('off').addClass('on').animate({top:30,left:15},'fast');
}

function setPosterTitles(){
  var months = ['January','February','March','April','May','June','July','August','September','October','November','December'];
  var monthNum = (new Date).getMonth();
  var thisMonth = months[monthNum];
  var nextMonth = monthNum < 11 ? months[monthNum + 1] : months[0];
  var posters = $('.style1 h1');
  $(posters[0]).html(thisMonth);
  $(posters[1]).html(nextMonth);
}

function setupGallery(){
  if(!$('.rotatorImage').length){
    setTimeout('setupGallery()',10);
    return;
  }
  ($('.rotatorImage').eq(0)).addClass('on').fadeIn();
  setTimeout('rotateGallery()',5000);
}

function rotateGallery(){
  var lastImage = $('.rotatorImage').length - 1;
  var currentImage = 0;
  $('.rotatorImage').each(function (i){if($(this).hasClass('on')) currentImage = i});
  var nextImage = currentImage < lastImage ? currentImage + 1 : 0;
  $('.rotatorImage').eq(currentImage).removeClass('on').fadeOut();
  $('.rotatorImage').eq(nextImage).addClass('on').fadeIn();
  setTimeout('rotateGallery()',5000);
}

function menuBlink(phase){
  var command, delay;
  var state = phase%2 ? 'new_' : '';
  var delays = [1800,400,200,800];
  delay = delays[phase-1];
  command = 'setMenuButtonImage("' + state + '");menuBlink(' + (phase < delays.length ? phase + 1 : 1) + ')';
  if(!$('#menu').hasClass('open')) setTimeout(command,delay);
}

function setMenuButtonImage(state){
  if($('#menu').hasClass('open')) return;
  $('#shadeMenuButtonShadow').css({display:(state ? 'none' : 'block')});
  $('#shadeMenuButton').css('background-Image','url(images/' + state + 'menubutton.png)');
}

function toggleMenu(){
  $('#shadeMenuButton').css('background-Image','url(images/menubutton.png)');
  if($('#menu').hasClass('open')){
    $('#menu').hide();
    $('#menu').animate({height:22}, 600, 'easeOutBounce');
    $('#shadeshadow').animate({height:22}, 600, 'easeOutBounce');
    $('#rollerbg').animate({top:-322}, 600, 'easeOutBounce');
    $('#shadeMenuButtonShadow').delay(400).fadeIn('fast');
    $('#menu').removeClass('open');
  } else {
    $('#menu').animate({height:500}, 600, 'easeOutBounce');
    $('#shadeshadow').animate({height:500}, 600, 'easeOutBounce');
    $('#rollerbg').animate({top:-800}, 600, 'easeOutBounce');
    $('#shadeMenuButtonShadow').fadeOut('fast');
    $('#menu').addClass('open');
    $('#menu').fadeIn('',function (){
      $('#menuNav a span').eq(0).click();
    });
  }
}

function selectMenu(e){
  if(!$(e.target.parentNode).hasClass('selected')){
    $('#menuFrame .on').removeClass('on').fadeOut(200);
    $('#' + ((e.target.innerHTML).replace(' ','_'))).addClass('on').fadeIn(200);
    $('#menuNav .selected').removeClass('selected');
    $(e.target.parentNode).addClass('selected');
    var linkwidth = $('#menuNav .selected').width();
    var linkleft = ($('#menuNav .selected').position()).left;
    var midpoint = parseInt(linkleft + (linkwidth/2));
    var newleft = midpoint - 6;
    $('#menuNavSelector').animate({left:newleft}, 200);
  }
}

function toggleToolTip(w){
  var totalBeers = $('#scrollPaneLinks a').length;
  $('#scrollPaneLinks a').each(function (i){
    if($(this).attr('title') == w.title){
      if(i < 3){
        freezeLeft(w);
      } else if(totalBeers - i <= 3){
        freezeRight(w,i);
      } else {
        freezeMiddle(w);
      }
      $('.select').removeClass('select');
      $(w).addClass('select');
      getTastingNotes(w);
    }
  });
  $('#toolTip').fadeIn(200);
}

function freezeLeft(w){
  $('#scrollPane').stop();
  $('#scrollPane').animate({left:0},200,function (){
    var tipMiddle = Math.ceil(w.offsetLeft + (w.offsetWidth / 2)) - 80;
    $('#toolTip').animate({left:tipMiddle},200);
  });
}

function freezeRight(w,i){
  $('#scrollPane').stop();
  var rightLock = -($('#scrollPane').width()-$('#scrollContent').width());
  $('#scrollPane').animate({left:rightLock},200,function (){
    var offsets = 604 - 80 - 56; // viewport width minus tooltip offset minus half of 1 beer cell
    var tipMiddle = offsets - (($('#scrollPaneLinks a').length - (i + 1)) * 113);
    $('#toolTip').animate({left:tipMiddle},200);
  });
}

function freezeMiddle(w){
  $('#scrollPane').stop();
  var middleLeft = 246;
  var beerMiddle = -(w.offsetLeft - middleLeft);
  $('#scrollPane').animate({left:beerMiddle},200,function (){
    $('#toolTip').animate({left:middleLeft-20},200);
  });
}

function switchBeer(back){
  for(i=0;i<$('#scrollPaneLinks a').length;i++){
    if($('#scrollPaneLinks a').eq(i).hasClass('select')){
      var currentBeer = i;
      break;
    }
  }
  if(back){
    if(currentBeer == 0) currentBeer = $('#scrollPaneLinks a').length;
    toggleToolTip($('#scrollPaneLinks a').get(currentBeer - 1));
  } else {
    if(currentBeer == $('#scrollPaneLinks a').length - 1) currentBeer = -1;
    toggleToolTip($('#scrollPaneLinks a').get(currentBeer + 1));
  }
}

function getTastingNotes(w){
  var beerType = $(w).hasClass('draughtLink') ? 'draught' : 'bottle';
  $('.'+beerType).each(function (){
    if($(this).attr('name') == $(w).attr('title')){
      var output = '';
      if(beerType == 'bottle') output += '<img class="beerpic" src="images/bottles/'+
                                          ($(this).attr('name')).replace(/[^a-zA-Z0-9]/g,'').toLowerCase() +'.png">';
      output += '<h1>'+$(this).attr('name')+'</h1>'+ 
                ($(this).attr('status') == 'false' ? '<p class="upNext">* up next</p>' : '') + $(this).html();
      $('#beerInfo').html(output);
    }
  });
}

function closeTastingNotes(){
  $('.select').removeClass('select');
  $('#toolTip').fadeOut(200);
}






