var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-9003889-4']);
_gaq.push(['_setDomainName', '.agencenomad.com']);
_gaq.push(['_trackPageview']);

(function() {
	var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
	ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
	var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();

jQuery(function($){

	/****************** Global ******************/
	/********************************************/
	
	$('body').removeClass('nojs');
	
	/*********** alert badBrowser **********/
		
	if ($.badBrowser() && $.cookie('browserWarning') != 'seen' )
		$.showBadBrowser();
	
	/*********** audreymorant.com redirection **********/
		
	$.redirected();

	/*********** fade body **********/
	
	if ($.support.opacity)
	{ 
		$('#header h1 a, #header h2 a').click(function()
		{
				var target = $(this).attr('href');
				$("body").fadeOut(500, function(){ window.location = target; });
				return false;
		});
	}

	/*********** links fadeHover **********/
	
	$('#header h2 a, #social a').fadeHover();
	$('#social a').animBubbles();


	/*********** links blur **********/
	
	$('a[href^=#], .blur').live('click', function()
	{
		this.blur();
	});

	/*********** links external **********/
	
	$('a.external').live('click', function()
	{
		this.blur();
		var href = $(this).attr('href');
		window.open(href);
		return false;
	});

	/******** tooltips ********/
	
	$('#social a').slice(0,2).tooltip({
		opacity: 0.9,
		effect: 'fade',
		position: "top center",
		offset: [-4,0]
	});
	
	$('#social a').slice(2,4).tooltip({
		opacity: 0.9,
		effect: 'fade',
		position: "bottom center",
		offset: [4,0]
	});
	
	/********* insertSwf : Home + Photo *********/
	/********************************************/

	if (page == 'home' || page == 'studio_photo')
	{
		var swfobject_params = {
			'menu': false,
			'wmode': 'transparent',
			'allowfullscreen': false,
			'allowscriptaccess': 'always'
		};
		var flashversion = swfobject.getFlashPlayerVersion();
			
		if (page == 'home')
		{
			if (flashversion.major >= 10)
			{
				var id = 'swf_home';
				var path = $('#' + id).data('options').path;
				var params = $.extend({}, swfobject_params, {'bgcolor': '#FFFFFF', flashvars: 'home_path=' + path});
				//swfobject.embedSWF(path + 'nomad_3d.swf', id, 860, 400, '10', null, null, params, null, null);
				var attributes = { data: path + 'nomad_3d.swf', width: '860', height: '400' };
				swfobject.createSWF(attributes, params, id);
			}
			else $('.slider').initSlider();
			
			$(".intro").css({'opacity': 0});
			setTimeout(function(){$(".intro").animate({'opacity': 1}, 1000)}, 1000);
		}
	
		if (page == 'studio_photo')
		{
			if (flashversion.major >= 8)
			{
				var id = 'swf_photo';
				var path = $('#' + id).data('options').path;
				var params = $.extend({}, swfobject_params, {'bgcolor': '#000000', flashvars: 'photo_path=' + path});
				//swfobject.embedSWF(path + 'index_photo.swf', id, 880, 600, '8', null, flashvars, params, null, null);
				var attributes = { data: path + 'index_photo.swf', width: '880', height: '600' };
        swfobject.createSWF(attributes, params, id);
			}
			else 
			{
				var versionoutput;
				if (flashversion.major > 0)
					versionoutput = 'Votre version de Flash Player étant trop ancienne ('+flashversion.major+"."+flashversion.minor+"."+flashversion.release+'), nous vous conseillons d\'installer la dernière version du plugin afin de visualiser correctement son contenu.';
				else
					versionoutput = 'Si votre navigateur le permet, vous devez installer Adobe® Flash® Player pour accéder à son contenu.';
				$('.warning .flashversion').html(versionoutput);
				$('.warning .updateflash').show();
				$('.warning .activate').hide();
			}
		}
	}

	/**************** Références ****************/
	/********************************************/
	
	if (page == 'studio_web' || page == 'studio_graphique')
	{
		$('.thumbs_wrapper').initThumbsPager();
		$('.thumbs').initRefs();
		$('.slider').initSlider();
	
		/******** tooltips ********/
	
		$('.pictos li').tooltip({
			opacity: 0.7,
			effect: 'fade',
			position: "bottom center",
			offset: [7,0]
		});

		/*********** links fadeHover **************/
		
		$('.thumb a').fadeHover();
	}

	/**************** Contact *******************/
	/********************************************/

	if (page == 'contact')
	{
		$('#contactForm').initContactForm();
		$('.contact_link').launchForm();
		
		$('#contact .metas li a').tooltip({
			opacity: 0.5,
			effect: 'fade',
			position: "bottom center",
			offset: [8,0]
		});
	}

	/****************** Blog ********************/
	/********************************************/

	if (page == 'blog')
	{
		$('#commentform').initCommentForm();
		$('.comment-body a, a[rel~="external"]').addExternal();
	
		/******** tooltips ********/
		$('a.sidebar_rss').tooltip({
			opacity: 0.7,
			effect: 'fade',
			position: "top center",
			offset: [-6,0]
		});
		
		$('.sociable_icons a').tooltip({
			opacity: 0.8,
			effect: 'fade',
			position: "bottom center",
			offset: [6,0]
		});

		/******** links haut de page ********/
		$('a.up').click(function(){
			$('html, body').animate({scrollTop: '0'}, 'fast');
			this.blur();
			return false;
		});

	}
	
});


(function($){

	$.extend({
	
		createAltSwfContent: function()
		{
			var alt_swf_content = "<div class=\"warning\">";
			alt_swf_content += "<p>Cette partie du site requiert Flash Player version 8 ou supérieure.</p>";
			alt_swf_content += "<p>Afin de visualiser correctement son contenu, nous vous conseillons d'installer la dernière version du plugin ";
			alt_swf_content += "<a class=\"flash external blur\" href=\"http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash\">";
			alt_swf_content += "Adobe® Flash® Player</a> sur votre ordinateur.</p>";
			alt_swf_content += "<p><a class=\"flash external blur\" href=\"http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash\">";
			alt_swf_content += "Cliquez ici pour télécharger l'application sur le site Web du fabriquant.</a></p>";
			alt_swf_content += "</div>";
			return alt_swf_content;
		}
		
		,badBrowser: function()
		{
			if ($.browser.msie && parseInt($.browser.version) <= 7)
				return true;
			return false;
		}
	
		,showBadBrowser: function()
		{
			$('head').append('<link rel="stylesheet" type="text/css" href="' + root + '/assets/badbrowser.css" />');
			var badBrowser_content = '<div class="wrapper">';
			badBrowser_content += "<h2>Saviez-vous que votre version d'Internet Explorer est périmée ?</h2>";
			badBrowser_content += "<p>Pour obtenir la meilleure expérience de navigation possible, ";
			badBrowser_content += "nous vous recommandons de mettre à jour votre navigateur ou d'en choisir un autre parmi la liste ci-dessous.</p>";
			badBrowser_content += "<p>Il vous suffit de cliquer sur l'icône du navigateur correspondant pour vous rendre sur sa page de téléchargement.</p>";
			badBrowser_content += '<div class="links">';
			badBrowser_content += '<a class="external ie" href="http://www.microsoft.com/windows/Internet-explorer/default.aspx">Internet Exporer</a>';
			badBrowser_content += '<a class="external fx" href="http://www.mozilla.com/firefox/">Mozilla Firefox</a>';
			badBrowser_content += '<a class="external sf" href="http://www.apple.com/safari/download/">Safari</a>';
			badBrowser_content += '<a class="external op" href="http://www.opera.com/download/">Opera</a>';
			badBrowser_content += '<a class="external ch" href="http://www.google.com/chrome">Google Chrome</a>';
			badBrowser_content += "</div>";
			badBrowser_content += "<a id=\"close_alert\" href=\"#\">Non merci !</a>";
			badBrowser_content += "</div>";
			var $alert = $('<div/>').attr('id', 'browser_alert').html(badBrowser_content).prependTo($('#wrapper'));
			$('#close_alert', $alert).click(function()
			{
				$.cookie('browserWarning','seen');
				$alert.hide();
				return false;
			});
			setTimeout(function(){ $alert.slideDown('slow') }, 1500);
		}

		,cookie: function (key, value, options)
		{
			/* set cookie */
			if (arguments.length > 1 && String(value) !== "[object Object]")
			{
					options = $.extend({}, options);
					if (value === null || value === undefined)
							options.expires = -1;
					if (typeof options.expires === 'number') {
							var days = options.expires, t = options.expires = new Date();
							t.setDate(t.getDate() + days);
					}
					value = String(value);
					
					return (document.cookie = [
							encodeURIComponent(key), '=', encodeURIComponent(value),
							options.expires ? '; expires=' + options.expires.toUTCString() : '',
							options.path ? '; path=' + options.path : '',
							options.domain ? '; domain=' + options.domain : '',
							options.secure ? '; secure' : ''
					].join(''));
			}
			/* get cookie */
			var result;
			return (result = new RegExp('(?:^|; )' + encodeURIComponent(key) + '=([^;]*)').exec(document.cookie)) ? decodeURIComponent(result[1]) : null;
		}
	
		,createRedirectContent: function()
		{
			var content = "<div class=\"warning redirect\">";
			content += "<p>Vous avez été redirigé sur le nouveau site d'<strong>Audrey Morant</strong>.</p>";
			content += "<p>Bonne visite !";
			content += "</div>";
			return content;
		}

		,redirected: function ()
		{
			if (redirected == '1')
			{
				$('<a id="redirect" href="#"></a>')
					.css('display', 'none')
					.appendTo('body')
					.fancybox({
						'overlayShow': true,
						'overlayOpacity': 0.8,
						'overlayColor': '#000',
						'centerOnScroll': true,
						'hideOnContentClick': true,
						'scrolling': 'no',
						'padding': 20,
						'content': $.createRedirectContent()
				});
				$('#redirect').trigger('click');
			}
		}
		
	});
	
	$.fn.extend({
		
		/********* scrollTo **********/
		
		scrollTo: function(speed)
		{
			return this.each(function() {
				var targetOffset = $(this).offset().top;
				$('html,body').animate({scrollTop: targetOffset}, speed, 'easeOutExpo');
			});
		}
			
		/*********** fadeHover ***********/
		
		,fadeHover: function(png)
		{
			var png = (typeof png == "undefined") ? false : true;
			var $wrapper = this;
			var $span = $('<span>').addClass('hover');

			return this.each(function() {
				
				if (!$.support.opacity && png)
				{
					$(this)
						.prepend($span.clone().css('display', 'none'))
						.hover(function() {
								$('.hover', $wrapper).css('display', 'none');
								$('.hover', this).css('display', 'block');
						},function() {
								$('.hover', this).css('display', 'none');
						});
				} 
				else
				{
					$(this)
						.prepend($span.clone().css({'opacity': 0}))
						.hover(function() {
								$('.hover', $wrapper).stop().animate({'opacity': 0}, 600);
								$('.hover', this).stop().animate({'opacity': 1}, 500);
						},function() {
								$('.hover', this).stop().animate({'opacity': 0}, 600);
						});
				}
				
			});
		}
			
		/*********** animBubbles ***********/
		
		,animBubbles: function()
		{
			if (!$.support.opacity) return this;
			
			return this.each(function() {

				var $wrapper = $(this),
						$hover = $('.hover', $wrapper),
						$bubbles = $('<span/>').addClass('bubbles'),
						$strip = $('<span/>').addClass('strip');
				
				$strip.appendTo($bubbles);
				$bubbles.appendTo($hover);

				var bgPosition = 0;
		
				$wrapper.hover(function() {
						//console.log();
					bubblingInterval = setInterval(function() {
						bgPosition -= 200;
						$strip.css({'top': bgPosition + 'px'});
					}, 90);
						
				},function() {
						clearInterval(bubblingInterval);
						bgPosition = 0;
						$strip.css({'top': bgPosition});
				});
				
			});
		}
	
		/************** submit hover **************/
/*			
		,animCssda: function()
		{			
			var $elem = this,
					elemH = parseInt($elem.css('height'));
			return $elem
				.hover(function(){
					$(this).stop().animate({'height': '60px'}, 300, 'easeOutBack');
				}, function(){
					$(this).stop().animate({'height': elemH + 'px'}, 500, 'easeOutBack');
				})
				.click(function(){ 
					$(this).stop().animate({'height': elemH + 'px'}, 500, 'easeOutBack');
				});
		}
*/		
		/*********** Slider **********/
		
		,initSlider: function()
		{
			return this.nivoSlider({
					effect: 'fade', // sliceDown sliceDownLeft sliceUp sliceUpLeft sliceUpDown sliceUpDownLeft fold fade random slideInRight slideInLeft
					slices: 1,
					animSpeed: 400,
					pauseTime: 5000,
					directionNav: true,
					directionNavHide: true,
					controlNav: true,
					keyboardNav: true,
					pauseOnHover: true,
					manualAdvance: false,
					captionOpacity: 0.8
			})
		}
	
		/********** Références Pager **********/
		
		,initThumbsPager: function()
		{
			var pagerOptions = {
				callback: pagerCallback,
				items_per_page: 6,
				prev_text: '',
				next_text: ''
			};
			
			function pagerCallback(index, pager)
			{
				var $thumbs = pager.data('thumbs'),
						num_entries = pager.data('num_entries'),
						ipp = pagerOptions.items_per_page,
						max_elem = Math.min((index+1)*ipp, num_entries),
						$sliced = $thumbs.slice(index*ipp, max_elem);
						
				if (pager.data('init'))
				{
					pager.data({init: false});
					$sliced.css({display: 'block'});
					var $ul = $thumbs.closest('.thumbs');
					$ul.css({height: $ul.height()});
				}
				else
				{
					$thumbs.filter(':visible').hide();
					if($.support.opacity) $sliced.fadeIn(400);
					else $sliced.show();
				}
				return false;
			}
		
			return this.each( function(){ 
				var $pager = $('.pager', this);
				var $thumbs = $('.thumbs', this).children().hide();
				var num_entries = $thumbs.length;
				$pager.data({thumbs: $thumbs, num_entries: num_entries, init: true}).pagination(num_entries, pagerOptions);
			});
		}
		
		/*********** Références Fancybox ***********/
		
		,initRefs: function()
		{
			var fancyOpts = {
						'overlayShow': true,
						'overlayOpacity': 0.5,
						'overlayColor': '#000',
						'centerOnScroll': true,
						'hideOnContentClick': false,
						'scrolling': 'no',
						'padding': 20
			};
			
			return this.click(function(e){
				var $target = $(e.target);
				if ($target.is('.thumb *'))
				{
						var Opts, $link = $target.closest('.thumb').find('a');
								
						if ($(this).closest('.thumbs_wrapper').hasClass('anims'))
						{
							if (swfobject.hasFlashPlayerVersion('10.0.00'))
								Opts = {
									'href': $link.attr('href'),
									'width': $link.data('options').width,
									'height': $link.data('options').height,
									'swf': {wmode: 'opaque', scale: 'noscale', bgcolor: $link.data('options').bgcolor},
									'autoScale': false
								};
							else 
								Opts = {'content': $.createAltSwfContent()};
						}
						else
						{
							Opts = {
								'href': $link.attr('href') + '&ajax=1',
								'autoDimensions': true,
								'onComplete':	function(){$('.slider').initSlider()}
							};
						}
						$.fancybox($.extend({}, fancyOpts, Opts));
						e.preventDefault();
				}
			});
		}
		
	});


	/************** contact_links **************/
	
	$.fn.launchForm = function()
	{
		return this.each(function()
		{
			$(this).click(function()
			{
				var index = $(this).attr('rel'),
						href = $(this).attr('href');
				$('#contactForm .selectWrapper ul a').eq(index).click();
				$(href).scrollTo('slow');
				this.blur();
				return false;
			});
		});
	}

	/************** initFormVal **************/
	
	$.fn.initFormVal = function(value)
	{
		return this.each(function()
		{
			$(this).val(value)
				.focus(function() { if ($(this).val() == value) $(this).val(''); })
				.blur(function() { if ($(this).val() == '')  $(this).val(value); });
		});
	}
	
	/************** submit hover **************/
		
	$.fn.initAnimShadow = function()
	{			
		return this.each(function()
		{
			if (!$('.shadow', this).length)
				$('<span class="shadow"></span>').prependTo($(this));
			
			var $wrapper = $(this),
					$elem = $('#submit', $wrapper),
					$shadow = $('.shadow', $wrapper),
					elemH = parseInt($elem.css('height')),
					shadowPos = parseInt($shadow.css('bottom')),
					shadowDefault = .70,
					shadowHover = .40;

			$shadow.css({'opacity': shadowDefault});

			$elem
				.hover(function()
				{
					$(this).stop().css({'cursor': 'pointer'}).animate({'height': elemH + 10 + 'px'}, 500, 'easeOutBack');
					$shadow.stop().animate({'bottom': shadowPos-4 + 'px','opacity': shadowHover}, 500, 'easeOutExpo');
				}, function()
				{
					$(this).stop().animate({'height': elemH + 'px'}, 500, 'easeOutBack');
					$shadow.stop().animate({'bottom': shadowPos + 'px', 'opacity': shadowDefault}, 500, 'easeOutExpo');
				})
				.click(function(){ 
					$(this).blur().stop().animate({'height': elemH + 'px'}, 500, 'easeOutBack');
					$shadow.stop().animate({'bottom': shadowPos + 'px', 'opacity': shadowDefault}, 500, 'easeOutExpo');
				});

		});
	}

	/************** class Form **************/

	$.animFormError = function($elem)
	{
		$elem.stop();
		var elemW = $elem.outerWidth();
		if ($elem.is(':visible'))
			$elem.animate({'right': -elemW+6}, 400, 'easeInBack');
		else
		{
			$elem	
				.css({display: 'block', right: -elemW})
				.animate(
					{right: -elemW+6}, 
					{duration: 400, specialEasing: {right: 'easeOutBack'}}
				);
		}
	}	
	
	function Form($form)
	{
			this.form = $form;
			this.ajax_loading = $('<span/>').addClass('ajax_loading').css('display', 'none');
			this.success = $('<p/>').addClass('form_success').hide();
			this.errorUl = $('<ul/>').addClass('form_error').hide();
			this.errorSpan = $('<span class="error"><span class="right"></span><span class="left"></span></span>').css('display', 'none');
			this.required = $('.required', this.form);
			this.submitWrapper = $('.form-submit', this.form).initAnimShadow();
			this.email_regex = /^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/;
	}


	$.fn.initContactForm = function()
	{
		var formObj = new Form($(this));
		
		var $form = $(this),
				$ajax_loading = formObj.ajax_loading.insertBefore($form),
				$success = formObj.success.html('Merci, votre message a bien été envoyé<span></span> !').insertAfter($ajax_loading),
				$errorUl = formObj.errorUl.insertAfter($ajax_loading),
				$errorSpan = formObj.errorSpan,
				$required = formObj.required.after($errorSpan),
				$submitWrapper = formObj.submitWrapper;

		$form.jqTransform();
	
		$form.submit(function(e)
		{
			$success.add($errorUl).stop().hide();
		
			var fields = {name: 'nom', email: 'email', comment: 'message'};
			var dests = new Array('la Dream Team', 'Estelle', 'Audrey');
			var error_count = 0;
			
			$required.each(function()
			{
					var nameAttr = $(this).attr('name'),
							val = $.trim($(this).val()),
							$error = $(this).next('.error'),
							$errorText = $('.left', $error);

					if (val == '')
					{
						error_count += 1;
						$errorText.html('Entrez votre '+ eval('fields.' + nameAttr));
						$.animFormError($error);
					}
					else if (nameAttr == 'email' && !formObj.email_regex.test(val))
					{
						error_count += 1;
						$errorText.html('Adresse invalide');
						$.animFormError($error);
					}
					else $error.stop().fadeOut('fast', function(){$errorText.empty() });
			});
				
			if (error_count == 0)
			{
				$ajax_loading.ajaxStart(function(){ 		$(this).css('display', 'block'); $submitWrapper.hide(); });
				$ajax_loading.ajaxComplete(function(){ 	$(this).hide(); });
							
				$.ajax({
						type: "post",
						url: "includes/form-mailer-processor.php",
						data: $form.serialize() + '&ajax=1',
						error: function()
						{
								$errorUl.html("<li>Une erreur s'est produite lors de la transmission des données.</li>").stop().slideDown('slow');
								$submitWrapper.show();
						},
						success: function(data)
						{
								if (parseInt(data) !== 1)
								{
									$errorUl.html('<li>' + data + '</li>').stop().slideDown('slow');
									$submitWrapper.show();
								}
								else
								{
									$form.css('visibility', 'hidden');
									$('span.error', $form).stop().fadeOut('fast', function(){ $('.left', this).empty() });
									var destIndex = $('option:selected', $form).index();
									$success.find('span').html(' à ' + dests[destIndex]).end().stop().slideDown('slow');
								}
						}
				});
			}
			e.preventDefault();

		}); /* $form.submit */
			
	}
		
	/************** initCommentForm **************/

	$.fn.initCommentForm = function()
	{
		var formObj = new Form($(this));
		
		var $form = $(this),
				$wrapper = $form.closest('#respond'),
				$ajax_loading = formObj.ajax_loading.insertBefore($form),
				$errorUl = formObj.errorUl.insertAfter($ajax_loading),
				$required = formObj.required,
				$submitWrapper = formObj.submitWrapper;
		
		$form.submit(function(e)
		{
			$errorUl.stop().slideUp('fast');				

			var error_empty = false,
					error_email = false,
					error_text = '';
					
			$required.each(function()
			{
				var val = $.trim($(this).val());
				if (val == '')
					error_empty = true;
				else if ($(this).attr('name') == 'email' && !formObj.email_regex.test(val))
					error_email = true;
			});
				
			if (error_empty || error_email)
			{
				if (error_empty) error_text += "<li>Vous n'avez pas rempli tous les champs.</li>";
				if (error_email) error_text += "<li>Le format de l'adresse email semble invalide.</li>";
				
				$ajax_loading.css('display', 'none');
				$errorUl.html(error_text).slideDown('slow');
				e.preventDefault();
			}
			else 
			{	
				$errorUl.stop().slideUp('fast');				
				$ajax_loading.css('display', 'block');
				$submitWrapper.css('visibility', 'hidden');
			}
			
		}); /* $form.submit */
	},
		
	/************** initCommentForm **************/

	$.fn.addExternal = function()
	{
		return $(this).addClass('external');
	}

})(jQuery);
