/*
Scripts written by Alex Dickson for Acura Multimedia (http://www.acura.com.au)

All scripts leverage the jQuery framework (http://www.jquery.com) by John Resig (http://www.ejohn.org)

*/



// global stuff 



var GOOGLE_ANALYTICS_KEY = 'UA-693909-43';



// add this class to specify .javascript * in css for quicker css application

$('html').addClass('javascript');

// on DOM ready

$(document).ready(function(){
	$('html').addClass('dom-loaded');



	$('a[rel=external]').newWindow();

	$('#gallery-image').gallery();

	$('#header form input').inputSearch();

});



// on window loaded

$(window).load(function(){  // window load
	$('html').addClass('window-loaded');

	//google analytics

	try {
		var pageTracker = _gat._getTracker(GOOGLE_ANALYTICS_KEY);
		pageTracker._trackPageview();

	} catch(err) {}

	

});



/**
* searchInput v1 // 2009.07.09 // jQuery 1.1.2+
* <http://www.alexanderdickson.com/2009/07/jquery-plugin-inputsearch/>
* 
* @author    Alexander Dickson <http://www.alexanderdickson.com/>
*/

(function($){  
  $.fn.inputSearch = function(options) {   
    var defaults = {
		defaultText: 'Search',
		dullClass: 'dulled'		
	};	
	var options = $.extend(defaults, options);   
    return this.each(function() {  
	   var obj = $(this);	   
	   if ( ! obj.val()) {
	   		obj.addClass(options.dullClass);
			obj.val(options.defaultText);
		};		
		obj.focus(function() {
			if (obj.val() == options.defaultText) {
				obj.removeClass(options.dullClass);
				obj.val('');
			};	
		});
		obj.blur(function() {		
			if ($.trim(obj.val()) == '') {
				obj.addClass(options.dullClass);
				obj.val(options.defaultText);
			};
		});	   
	 });
  };  
 })(jQuery); 
 
 
 

// plugin to open links with new window
// author: Alex Dickson
 (function($){  
  $.fn.newWindow = function(options) {   
    var defaults = {
		titleText: 'Link opens in a new window'		
	};	
	var options = $.extend(defaults, options);   
     return this.each(function() {  
	   var obj = $(this);	   
	   if (options.titleText) {   
		   if (obj.attr('title')) {
				var newTitle = obj.attr('title') + ' (' + options.titleText + ')';
		   } else {
				var newTitle = options.titleText;   
		   };		   
		   obj.attr('title', newTitle);		   
	   };
	   obj.click(function(event) {
	   	  event.preventDefault();  
		  var newBlankWindow = window.open(obj.attr('href'), '_blank');
		  newBlankWindow.focus();
		}); 
	   });
  };  
 })(jQuery); 
 
 
 
 // plugin to cycle images and display text
// author: Alex Dickson
 (function($){  
  $.fn.gallery = function(options) {       
	var defaults = {
		imagesList: '#thumbnails ul',
		textElement: '#gallery-text',
		interval: 5000		
	};		
	var options = $.extend(defaults, options);      
	var obj = $(this);	   	    
	var $imagesList = $(options.imagesList);
	var $textElement = $(options.textElement);		
	var imagesData = [];	
	function loadImage(id) {
	
		if ( ! imagesData[id].preloaded) {				
			showLoading();	
			var image = new Image();			
			$(image).load(function() {
				imagesData[id].preloaded = true;
				hideLoading();
				showImage(id);	
			});			
			// load the image into the cache
			image.src = imagesData[id].src;
		} else {			
			showImage(id);			
		};									
	};
	
	function showImage(id) {
		
		var imageSource = imagesData[id].src;			
		obj.css('backgroundImage','url(' + imageSource  +')');		
		obj.find('img').show().fadeOut(500, function() { $(this).attr({src: imageSource}) });				
		$imagesList.find('li.active').removeClass('active');
		$imagesList.find('li').eq(id).addClass('active');		
		
		
		
		// show new text
		
		$textElement.find('h3, p').fadeOut(250, function() {
			$textElement.find('h3').html(imagesData[id].title);
			$textElement.find('p').html(imagesData[id].description);
			$textElement.find('h3, p').fadeIn(250)
		});
		

		
	};
	
	function showLoading() {	
		if ( ! $('#gallery-loading').length) {
			obj.append('<div id="gallery-loading" title="loading... please wait."></div>');
		};
		$('#gallery-loading').fadeIn(250);
	}
	
	function hideLoading() {
		$('#gallery-loading').fadeOut(250);		
		
	};
	
	return this.each(function(i) {
		
		showLoading();
		  	 			
	    $imagesList.find(' > li').each(function(i) {						
			// get all data
			imagesData[i] = {
				src: $(this).find('a').attr('href'),
				title: $(this).find('h3').html(),
				description: $(this).find('p').html(),							
				preloaded: false
			};
			
			$(this).find('a').click(function(event) {
				event.preventDefault();
				// stop the cycle of images
				clearInterval(cycle);				
				var imageIndex = $imagesList.find('a').index($(this));								
				loadImage(imageIndex);				
				$imagesList.find('li.active').removeClass('active');
				$(this).parent('li').addClass('active');								
			});	
		});				
		
		hideLoading();
		
		var currentImage = 0;		
		// start cylce
		var cycle = setInterval(function() {			
			if (currentImage == imagesData.length - 1) {			
				currentImage = 0;				
			} else {				
				currentImage ++;				
			};
			
			loadImage(currentImage);								
		}, options.interval);									  
	 });	
  };  
 })(jQuery); 








