/*
	Author:		Nick Harris, Pixel Envy Ltd. http://www.pixelenvy.co.uk
	Site:		Pixel Envy Ltd. - http://www.pixelenvy.co.uk
----------------------------------------------- */

/*	Global Configuration
----------------------------------------------- */
// jQuery.noConflict();
var $j = jQuery;
var isIE6 = false;
var isSafari = false;

/*	Global Literal Object: Site-wide functions
----------------------------------------------- */
var Global = {

	/* Configuration, Flags and Messages */

	/* jQuery Object References  */
	$Body: null,
	$Aside: null,
	$AsideTrigger: null,

	/* Utility: Browser Tests / Specific Fixes/Hooks */
	utilBrowserTests : function() {
		// Class Context
		var cc = this;

		if (typeof document.body.style.maxHeight == 'undefined') { isIE6 = true; try { document.execCommand('BackgroundImageCache', false, true); } catch(e) { } }

		if ($j.browser.safari && !cc.$Body.hasClass('isSafari')) { isSafari = true; cc.$Body.addClass('isSafari'); }

	},

	// Utility: External Links
	utilExternalLinks : function() {
		$j('a[href^="http"]:not(.noNewWindow)').each(function() {
			var $self = $j(this);
			$self.unbind('click');
			$self.click(function() {
				// Track Click
				var section = $self.parents('section').attr('id');
				var eventLabel = $self.text();
				_gaq.push(['_trackEvent', 'Outbound',section,eventLabel]);
				// Open Link in New Window
				return !window.open($self.attr('href'));
			});
		});
	},

	// Utility: Open asides in a tooltip, uses jQuery.Tools
	utilAsideToolTips : function(){
		// Class Context
		var cc = this;

		// jQuery Object References
		cc.$Aside = $j('aside');
		cc.$AsideTrigger = $j('a.aside');

		// If there are any aside triggers
		if(cc.$AsideTrigger.length){
			cc.$AsideTrigger.each(function(){
				var $self = $j(this);

				var target = $self.attr('href');
				$self.tooltip({
					delay: 200,
					effect: 'slide',
					offset: [15,0],
					relative: true,
					tip: target,
					onShow: function(){
						// Track Event
						var section = $self.parents('section').attr('id');
						var eventLabel = $j(target + ' h2').text();
						_gaq.push(['_trackEvent', 'Tooltip',section,eventLabel]);
					}
				}).dynamic();
			}).click(function(){
				return false;
			});
		}
	},

	tracking : function(){
		// Class Context
		var cc = this;

		$j('#Navigation li#N6 a').click(function(){
			_gaq.push(['_trackEvent', 'Buy Now','Click','Main Navigation']);
		});

		if (cc.jEOBody.hasClass('search-results')) {

			var eventLabel = $j('h1 strong').text();
			_gaq.push(['_trackEvent', 'Search','Results',eventLabel]);

		} else if (cc.jEOBody.hasClass('search-results')) {

			var eventLabel = $j('#Content p strong').text();
			_gaq.push(['_trackEvent', 'Search','No Results',eventLabel]);

		} else if (cc.jEOBody.hasClass('collections-product')) {

			$j('.c-product-details .action a').click(function(){
				var eventLabel = $j('h1').text();
				_gaq.push(['_trackEvent', 'Buy Now','Click',eventLabel]);
			});

		}
	},

	/* Initialise */ 
	init : function() {

		/* Class Context */
		var cc = this;

		cc.$Body = $j('body');

		cc.utilBrowserTests();
		cc.utilExternalLinks();
		cc.utilAsideToolTips();

		// if ie6 - 8
		if (!$j.support.leadingWhitespace) {

			// Apply class to 3rd testimonial
			$j('#testimonials blockquote:eq(2)').addClass('nth-child-3');

		}
	}

};

/*	Preload
----------------------------------------------- */
var Preloader = {

	/* jQuery Object References to the Elements this speeds up the DOM */
	$Container:null,
	$Loader:null,

	Prepare : function() {
		var cc = this;
		$j('#Throbber', cc.$Loader).remove();
		cc.$Loader.append('<div id="LoadBar"><div id="LoadBarProgress"></div></div>');
		cc.$Container.removeClass('NotLoaded').addClass('Preloading');
		$j.preloadCssImages({statusBarEl: '#LoadBarProgress'});
	},

	/* modified preload plugin in plugins.js - onImgComplete
	if (loaded == imgUrls.length) { Preloader.removeOverlay(); return; } */
	Loaded : function() {
		var cc = this;
		cc.$Loader.remove();
		cc.$Container.removeClass('Preloading').addClass('Loaded');
	},

	/* Initialise */ 
	init : function() {
		var cc = this;
		cc.$Container = $j('#Container');
		cc.$Loader = $j('#Loader');

		cc.Prepare();
	}

};

/*	DOM Ready events
----------------------------------------------- */
$j(function() {

	Global.init();

});

/*	Window Unload
----------------------------------------------- */
$j(window).unload(function() {

	

});
