// hide the body until everything has loaded
document.write('<style type="text/css">body{visibility: hidden;}</style>');

// apply sifr fonts to headings
var trump = { src: '/fonts/trump.swf' };
sIFR.activate(trump);
sIFR.replace(trump, {
  selector: 'span.fontreplace',
  wmode: 'transparent',
  forceSingleLine: true,
  modifyContent: applyCaps,
  css: [
    '.sIFR-root { text-transform: uppercase; color: #856f43; padding: 20px; margin: 20px; letter-spacing: 4; }',
    '.letter {font-size: 20px;}'
  ]
});
sIFR.replace(trump, {
  selector: '#mainContent h2',
  wmode: 'transparent',
  forceSingleLine: true,
  modifyContent: applyCaps,
  css: [
    '.sIFR-root { text-transform: uppercase; color: #BE9E56; letter-spacing: 3; }',
    '.letter {font-size: 14px;}'
  ]
});
sIFR.replace(trump, {
  selector: '#bookNowLink',
  wmode: 'transparent',
  forceSingleLine: true,
  onRelease: function(){$('#moreText').show(); return false; },
  css: '.sIFR-root { text-transform: uppercase; color: #948460; font-size: 13px; cursor: pointer; }'
});

sIFR.replace(trump, {
  selector: '#navPanels p.readMoreLink',
  wmode: 'transparent',
  forceSingleLine: true,
  css: [
    '.sIFR-root { text-transform: uppercase; color: #856F43; font-size: 10px; cursor: pointer; letter-spacing: 1; }',
    '.sIFR-root a { text-transform: uppercase; color: #856F43; font-size: 10px; cursor: pointer; letter-spacing: 1; text-decoration: none; }',
    '.sIFR-root a:hover { color: #856F43; }',
    '.letter {font-size: 14px;}'
  ]
});
sIFR.replace(trump, {
  selector: '#enquiryLinks ul li',
  wmode: 'transparent',
  forceSingleLine: true,
  css: [
    '.sIFR-root { text-transform: uppercase; color: #BE9E56; letter-spacing: 3; cursor: pointer; text-decoration: none; }',
    '.letter {font-size: 18px;}',
    'a {color: #BE9E56; text-decoration: none;}',
    'a:hover {color: #867044;}'
  ]
});

function applyCaps(contentNode, selector)
{
  var heading = '';
  var words = $(contentNode).html().split(' ');
  $.each(words, function() 
  {
    var first_letter = this.substr(0,1);
    if ( /[a-zA-Z]/.test(first_letter) ) 
    {    
      heading += '<span class="letter">' + first_letter + '</span>' + this.slice(1) + ' ';
    } 
    else
    {
      heading += this + ' ';
    }
  });
  $(contentNode).html(heading);

}

function setHeaderText(title, content)
{
  $('#heading h3 .fontreplace').text(title);
  $('#contentCopyL2').html('<p>' + content + '</p>');
}

var uri={
  get:function(id){
  return unescape(location.search.match('(?:\\?|\&)' + id + '=([^\&]*)')[1].replace(/\+/g, " "))}
}

jQuery(function($){ 

  // IE6 - transparent png fix and hacks for layout issues
  if($.browser.msie && parseInt($.browser.version) == 6)
  {
    $(document).pngFix();
    $('#contentCopy').hide();
    setTimeout(function(){$('#contentCopy').show();}, 500);
  }
  
  // gui flavouring - dropshadows, rotating images and dropdown menus
	$("#fader").innerfade({ speed: 3000, timeout: 5000, type: 'sequence', containerheight: '355px' });   
	$("#fader1").innerfade({ speed: 3000, timeout: 5000, type: 'sequence', containerheight: '355px' });   
	$("#fader-narrow").innerfade({ speed: 3000, timeout: 5000, type: 'sequence', containerheight: '340px' });   
  
	$("ul.sf-menu").supersubs({ 
		minWidth:    12,
		maxWidth:    27,
		extraWidth:  1
	}).superfish();
	
  // show and hide the animated availability panel
  $('#check').toggle(function(){
    $('#availabilityBox').slideDown();
    var targetOffset = $('#availabilityBox').offset().top;
    $('html,body').animate({scrollTop: targetOffset}, 1000);
  },function(){
    $('#availabilityBox').slideUp();
  });
  
  // if this is a page with media download images, we store all the lightbox
  // window content in an array (yes it's messy, but it works
  if($('#gallery .item.download').is('*'))
  {
    $('#gallery .item.download').each(function(i){
      $(this).data('html', $('.imageDownload', this).html());
    });
  }
  
  // if this is a page in the secure media section, append the media menu to the header
  if(document.location.href.indexOf('MediaSection') > 0)
  {
    var submenu = '';
    submenu += '<div id="secondaryNavWrap">';
    submenu += '<ul id="secondaryNav">';
    submenu += '  <li><a style="width: 50%;" href="/index.php?mact=MediaSection,m1,releaselist,0&page=82">Media Release Archive &raquo;</a></li>';
    submenu += '  <li><a style="width: 50%;" href="/index.php?mact=MediaSection,m1,imagescatlist,0&page=82">Media Image Library &raquo;</a></li>';
    submenu += '  <li><a style="width: 50%;" href="/index.php?mact=MediaSection,m1,logopage,0&page=82">Logo &raquo;</a></li>';
    submenu += '</ul>';
    submenu += '</div>';
    $('#mainContent h1:eq(0)').after(submenu);
  }
  
  // show and hide panels on enquiry page
  $('#checkTravelAgents, #checkWorldwideAgents').toggle(function(){
    var container_id = $(this).attr('id').replace('check', '');
    $('#' + container_id).slideDown();
    var targetOffset = $('#' + container_id).offset().top;
    $('html,body').animate({scrollTop: targetOffset}, 1000);
  },function(){
    var container_id = $(this).attr('id').replace('check', '');
    $('#' + container_id).slideUp();
  });
  
  // if the worldwide agents panel exists, do some snazzy stuff to turn the table into a dropdown
  if($('#WorldwideAgents').is('*'))
  {
    var select = $('<select></select>');
    $(select).append('<option value="">Select Country:</option>');
    $('tr:not(:eq(0))', this).each(function(){
      $(select).append('<option value="' + $('td:eq(1)', this).text() + '">' + $('td:eq(0)', this).text() + '</option>');
    });
    $('#WorldwideAgents').html('');
    select.css({display: 'block', margin: 'auto' });
    select.change(function(){
      $('#ww_phone').text($(this).val());
    });
    $('#WorldwideAgents').append(select).append('<div id="ww_phone" style="margin: 20px auto; font-size: 20px; text-align: center;"></div>');
  }
  
  // if this is the image gallery index, hide the subnav (only need it on subsequent gallery pages)
  var gallery_url_match = document.location.href.match(/[\/|\\]([^\\\/]+)$/);
  if(gallery_url_match && gallery_url_match[1] == 'image-gallery')
  {
    $('#secondaryNavWrap').remove();
  }
  
  // show the Read More section
  $('#readMoreLink').click(function(){
    $('#moreText').show();
    $('#readMoreLink').css('visibility', 'hidden');
    return false;
  });
  
  //add the datepicker to the availability selector
  $('#availability_arrive, #availability_depart, input.datepicker').datepicker({
    changeMonth: true,
    changeYear: true,
    dateFormat: 'dd-mm-yy',
    yearRange: '+00:+02',
    defaultDate: '+30d'
  }).focus(function(){ $(this).blur()});
  
  // special datepickers for relais booking form (which sends a us format date)
  $('input#arrive-select.datepickerus').datepicker({
    changeMonth: true,
    changeYear: true,
    altFormat: 'mm/dd/yy',
    altField: '#Arrive',
    dateFormat: 'dd-mm-yy',
    yearRange: '+00:+02',
    defaultDate: '+30d',
    onSelect: function(dateText, inst) {
      var depart_date = $.datepicker.parseDate('dd-mm-yy', dateText);
      depart_date.setDate(depart_date.getDate() + 1);
      $('input#depart-select.datepickerus').datepicker( 'setDate' , depart_date );
    }
  }).focus(function(){ $(this).blur()});
  
  $('input#depart-select.datepickerus').datepicker({
    changeMonth: true,
    changeYear: true,
    altFormat: 'mm/dd/yy',
    altField: '#Depart',
    dateFormat: 'dd-mm-yy',
    yearRange: '+00:+02',
    defaultDate: '+32d'
  }).focus(function(){ $(this).blur()});  
  
  setTimeout(function(){$("#content").dropShadow({ color: "#5f5233" });}, 200);
  setTimeout(function(){$('body').css('visibility', 'visible');}, 350);

  // Handle enquiry form validation and submission
  $('#enquire_form').validate({
    submitHandler: function(form) {
      var post_vars = $(form).serialize();
      $('#enquire_form').html('<p style="text-align: center; margin-top: 100px;"><img src="/images/ajax-loader.gif" /></p>');
      $.post($(form).attr('action'), post_vars, function(data){
        $('#enquire_form').html(data);
      });
      return false;
    },
		rules: {
			name: "required",
			email: {
				required: true,
				email: true
			}
		},
		messages: {
			name: "Please enter your name",
			email: "Please enter a valid email address"
		}
	});
  
  // if this is the enquire page, load the jQuery Datepicker and integrate
  if($('#m4moduleform_1').is('form'))
  {
    var arrival_container = $('label:contains("Arrival")').parent();
    var depart_container = $('label:contains("Departure")').parent();
    $('select', arrival_container).hide().parent().append('<input type="text" />').find('input').datepicker({ 
      changeMonth: true, 
      changeYear: true, 
      dateFormat: 'dd-mm-yy',
      yearRange: '+00:+02',
      defaultDate: '+30d',
      onSelect: function(dateText, inst) {
        var date = $.datepicker.parseDate('dd-mm-yy', dateText);
        var depart_date = $.datepicker.parseDate('dd-mm-yy', dateText);
        depart_date.setDate(depart_date.getDate()+1);
        d_day = depart_date.getDate();
        if(d_day.toString().length == 1)
        {
          d_day = '0' + d_day;
        }
        d_month = depart_date.getMonth() + 1;
        if(d_month.toString().length == 1)
        {
          d_month = '0' + d_month;
        }
        $('select:eq(0)', arrival_container).val(date.getDate());
        $('select:eq(1)', arrival_container).val(date.getMonth()+1);
        $('select:eq(2)', arrival_container).val(date.getFullYear());
        $('select:eq(0)', depart_container).val(d_day);
        $('select:eq(1)', depart_container).val(d_month);
        $('select:eq(2)', depart_container).val(depart_date.getFullYear());
        $('input.hasDatepicker', depart_container).val(d_day + '-' + d_month + '-' + depart_date.getFullYear());
      }
    });
    $('select', depart_container).hide().parent().append('<input type="text" />').find('input').datepicker({ 
      changeMonth: true, 
      changeYear: true, 
      dateFormat: 'dd-mm-yy',
      yearRange: '+00:+02',
      defaultDate: '+37d',
      onSelect: function(dateText, inst) {
        var date = dateText.split('-');
        $('select:eq(0)', depart_container).val(parseInt(date[0]));
        $('select:eq(1)', depart_container).val(parseFloat(date[1]));
        $('select:eq(2)', depart_container).val(parseInt(date[2]));
      }
    });
  };
  
  // prepopulate values in forms
  if($('div.room-enquiry-form').is('div'))
  {
    var room = uri.get('room');
    if(room)
    {
      $('#m4fbrp__64').val(room);
    }
  }
  if($('div.corp-enquiry').is('div'))
  {
    var event = uri.get('event');
    if(event)
    {
      $('#m4fbrp__48 option:contains("' + event + '")').each(function(){
        this.selected = true;
      });
    }
  }
  
  // load the driving map in a pop-up window
  $('#moreText a.driving-map').click(function (){
    window.open ($(this).attr('href'), "driving","location=0,status=1,scrollbars=0,menubar=0,width=1031,height=700"); 
    return false;
  });
  
}); 

jQuery.backclick = function(el){
  var this_id = $(el).parents('div.imgDetailedBox').attr('id').replace('img_', '');
  var current_node_container = $('#imgDetailed' + this_id).parents('.item.download:eq(0)');
  if(current_node_container.prev().length > 0)
  {
    $('#TB_ajaxContent').html(current_node_container.prev().data('html'));
  }
  else
  {
    $('#TB_ajaxContent').html($('#gallery div').filter(':last').prev().data('html'));
  }
}

jQuery.nextclick = function(el){
  var this_id = $(el).parents('div.imgDetailedBox').attr('id').replace('img_', '');
  var current_node_container = $('#imgDetailed' + this_id).parents('.item.download:eq(0)');
  if(current_node_container.next().length > 0 && current_node_container.next().is('.item.download'))
  {
    $('#TB_ajaxContent').html(current_node_container.next().data('html'));
  }
  else
  {
    $('#TB_ajaxContent').html($('div.item.download:first-child').data('html'));
  }
}

jQuery.preloadImages = function()
{
  for(var i = 0; i<arguments.length; i++)
  {
    jQuery("<img>").attr("src", arguments[i]);
  }
}
 