

// ############################## PAGE FUNCTIONALITY ############################## //

var pageFunctions = {
  
  // HOME
  home: function() {
    // Create Network slider
	  pixelfusion_Slider('#network-slider', 'ul#panels', 'li');
	  $('#network-slider ul#panels').fitHeight();
		// add the link in
		$('.slider #slide-previous').show();
		$('.slider #slide-next').show();
	  // Add link-click to whole square for quick-links
  	$('#quick-links li').click(function() { window.location=$(this).find('a').attr('href'); return false; });
	  // Even Heights on Columns
  	$('.column').evenHeight();
	  // Network Flicker full height of parent
  	$('#network-slider').fillHeight();
  },

  // PUBLISHERS
  publishers: function() {
    // Even Heights on Columns
//  	$('.column').evenHeight();
  },

  // ADVERTISERS
  advertisers: function() {
    // Even Heights on Columns
//  	$('.column').evenHeight();
  },

  // STATISTICS
  statistics: function() {
    // Add charts.js
    var charts = document.createElement('script');
      charts.setAttribute('src', '/skin/js/charts.js');
      charts.setAttribute('type', 'text/javascript');
    document.getElementsByTagName('head')[0].appendChild(charts);
    $('div.chart').flashChart();
  },

  // CONTACT
  contact: function() {
    // Contact Form Validation
    $('#contact-form').submit(function(){
      if ($('#contact-email').val() == '' || $('#contact-fullname').val() == '' || $('#contact-message').val() == '') {
        alert('Please make sure that all three boxes are filled-in before sending your message.'); return false;
      }
      if (!($('#contact-email').val().indexOf('.') > 2) || !($('#contact-email').val().indexOf('@') > 0)) {
        alert('Please enter a valid email address so that we can reply to you.'); return false;
      }
    });
    // Fade In Message
    $('.message').hide().fadeIn(1500);
  },

  // INVENTORY
  inventory: function() {
    // Create Network slider
	pixelfusion_Slider('#inventory-slider', 'ul#panels', 'li');
	$('#inventory-slider ul#panels').fitHeight();
    $('#inventory-slider').fillHeight();
    $('a.lightbox').each( function() {
      $(this).lightBox({
        imageLoading:  '/skin/img/lightbox/loading.gif',
        imageBtnPrev:  '/skin/img/lightbox/previous.gif',
        imageBtnNext:  '/skin/img/lightbox/next.gif',
        imageBtnClose: '/skin/img/lightbox/close.gif',
        imageBlank:    '/skin/img/lightbox/blank.gif'
      });
    });
    $('p.example a').each( function() {
	    var href = $(this).attr('href');
	    if (href.substr(-3) == 'jpg') {
	      $(this).lightBox({
	        imageLoading:  '/skin/img/lightbox/loading.gif',
	        imageBtnPrev:  '/skin/img/lightbox/previous.gif',
	        imageBtnNext:  '/skin/img/lightbox/next.gif',
	        imageBtnClose: '/skin/img/lightbox/close.gif',
	        imageBlank:    '/skin/img/lightbox/blank.gif'
	      });
      }
    });
    if($('#inventory-slider').height() < 629) $('#inventory-slider').height(640);
  }

}

// ############################## ON LOAD ############################## //

$(document).ready(function(){

  // Add Stylesheet for JavaScript
  $('head').append('<link rel="stylesheet" type="text/css" href="/skin/css/behaviour.css" media="screen, projection" />');
  $('head').append('<link rel="stylesheet" type="text/css" href="/skin/css/behaviour.lightbox.css" media="screen, projection" />');

	// Add 'open in a new window' to external links
	$('a[rel=external]').click(function() { window.open($(this).attr('href')); return false; });

  // Make contact link into email link
	//$('a.contact-link').text('enquiries@adhub.co.nz').attr('href', 'mailto:enquiries@adhub.co.nz');

  // Execute page-specific functions
  for (thisPage in pageFunctions) {
    if ($('body').hasClass(thisPage))
      pageFunctions[thisPage]();
  }
	// Hide Google Charts images if flash is supported
	if (jQuery.fn.flash.hasFlash())
	  $('head').append('<style type="text/css">.chart img { left: -99999px; position: absolute; top: -99999px; }</style>');

});

// ############################## FUNCTIONS ############################## //

// FUNCTION: Even Element Heights
(function($) {
  $.fn.evenHeight = function(children) {
    var maxHeight = 0;
    this.each(
 	    function(i) {
 	      if($(this).height() > maxHeight) maxHeight = $(this).height();
 	    }
    ).children('.wrapper').height(maxHeight - 10);
  }
})(jQuery);

// FUNCTION: Set element height to fill space
(function($) {
  $.fn.fillHeight = function(element) {
    var parent = $(this).parent();
    $(this).height(parent.height() - (parent.children('h3').height() + 10));
  }
})(jQuery);

// FUNCTION: Biggest Child's Height
(function($) {
  $.fn.fitHeight = function(element) {
    var maxHeight = 0;
    this.children().each(
 	    function(i) { if ($(this).height() > maxHeight) maxHeight = $(this).height(); }
    );
    $(this).height(maxHeight + 40);
  }
})(jQuery);

