/* Author: 

*/


$("#btn-open-chrono").click(function() {
	$('#bio-top2').animate({
	    height: '905px'
	  }, 500, function() {
	    // Animation complete.
	    $.scrollTo( '515px', 500 );
	});
	$("#chrono-small").fadeOut("slow", function() {
	    $(this).show().css({visibility: "hidden"});
	});
	$("#chrono-big").hide().css({visibility: "visible"}).fadeIn("slow");
});


$('#btn-video-hover').css({opacity:'0'});

$("#btn-video").hover(function() {
	$('#btn-video-hover').stop().animate({opacity:'1'}, 500);},
	function(){$('#btn-video-hover').stop().animate({opacity:'0'}, 500);
});

$("#btn-video").click(function() {window.location = "/gallery"});

// Business Page
$(".bmenu").hover(function() {
	$(this).stop().animate({
	    backgroundColor: "#f2f1ed"
	  }, 500 );},
	function(){$(this).stop().animate({
	    backgroundColor: "#fff"
	  }, 500 );
});

// Menu Sidebar
$("#bmenu1").click(function() {window.location = "medias.php"});
$("#bmenu2").click(function() {window.location = "interventions-entreprise.php"});
$("#bmenu3").click(function() {window.location = "conseil-coaching.php"});
$("#bmenu4").click(function() {window.location = "ambassadeur.php"});

// FancyBox

$(document).ready(function() {

	/* This is basic - uses default settings */
	
	$("a#single_image").fancybox();
	
	/* Using custom settings */
	
	$("a#inline").fancybox({
		'hideOnContentClick': true
	});

	/* Apply fancybox to multiple items */
	
	$("a.mini-gallery").fancybox({
		'transitionIn'	:	'elastic',
		'transitionOut'	:	'elastic',
		'speedIn'		:	600, 
		'speedOut'		:	200, 
		'overlayShow'	:	false
	});
	
});

$('#btn-bio').click(function() {
	$('#bio-more').toggle('slow', function() {
	    // Animation complete.
	    $.scrollTo( '#bio-more', 500 );
	  });
});

$('#btn-temoignages').click(function() {
	$('#temoignages').toggle('slow', function() {
	    // Animation complete.
	    $.scrollTo( '#temoignages', 500 );
	  });
});

$('.vicons').css({opacity:'0.5'});

$("#valeur-1").hover(function() {
	$('#valeur-1 .vicons').stop().animate({opacity:'01'}, 500);},
	function(){$('#valeur-1 .vicons').stop().animate({opacity:'0.5'}, 500);
});
$("#valeur-2").hover(function() {
	$('#valeur-2 .vicons').stop().animate({opacity:'01'}, 500);},
	function(){$('#valeur-2 .vicons').stop().animate({opacity:'0.5'}, 500);
});
$("#valeur-3").hover(function() {
	$('#valeur-3 .vicons').stop().animate({opacity:'01'}, 500);},
	function(){$('#valeur-3 .vicons').stop().animate({opacity:'0.5'}, 500);
});
$("#valeur-4").hover(function() {
	$('#valeur-4 .vicons').stop().animate({opacity:'01'}, 500);},
	function(){$('#valeur-4 .vicons').stop().animate({opacity:'0.5'}, 500);
});
$("#valeur-5").hover(function() {
	$('#valeur-5 .vicons').stop().animate({opacity:'01'}, 500);},
	function(){$('#valeur-5 .vicons').stop().animate({opacity:'0.5'}, 500);
});


// Offres

$("#offre1").hover(function() {
	$('#offre1-img').stop().css({backgroundPosition: "-190px"}).fadeIn("slow");},
	function(){$('#offre1-img').stop().css({backgroundPosition: "0"}).fadeIn("slow");
});

$("#offre2").hover(function() {
	$('#offre2-img').stop().css({backgroundPosition: "-190px"}).fadeIn("slow");},
	function(){$('#offre2-img').stop().css({backgroundPosition: "0"}).fadeIn("slow");
});

$("#offre3").hover(function() {
	$('#offre3-img').stop().css({backgroundPosition: "-190px"}).fadeIn("slow");},
	function(){$('#offre3-img').stop().css({backgroundPosition: "0"}).fadeIn("slow");
});

$("#offre4").hover(function() {
	$('#offre4-img').stop().css({backgroundPosition: "-190px"}).fadeIn("slow");},
	function(){$('#offre4-img').stop().css({backgroundPosition: "0"}).fadeIn("slow");
});



// Contact Form

$(function(){

	//set global variables and cache DOM elements for reuse later
	var form = $('#contact-form').find('form'),
		formElements = form.find('input[type!="submit"],textarea'),
		formSubmitButton = form.find('[type="submit"]'),
		errorNotice = $('#errors'),
		successNotice = $('#success'),
		loading = $('#loading'),
		errorMessages = {
			required: ' is a required field',
			email: 'You have not entered a valid email address for the field: ',
			minlength: ' must be greater than '
		}
	
	//feature detection + polyfills
	formElements.each(function(){

		//if HTML5 input placeholder attribute is not supported
		if(!Modernizr.input.placeholder){
			var placeholderText = this.getAttribute('placeholder');
			if(placeholderText){
				$(this)
					.addClass('placeholder-text')
					.val(placeholderText)
					.bind('focus',function(){
						if(this.value == placeholderText){
							$(this)
								.val('')
								.removeClass('placeholder-text');
						}
					})
					.bind('blur',function(){
						if(this.value == ''){
							$(this)
								.val(placeholderText)
								.addClass('placeholder-text');
						}
					});
			}
		}
		
		//if HTML5 input autofocus attribute is not supported
		if(!Modernizr.input.autofocus){
			if(this.getAttribute('autofocus')) this.focus();
		}
		
	});
	
	//to ensure compatibility with HTML5 forms, we have to validate the form on submit button click event rather than form submit event. 
	//An invalid html5 form element will not trigger a form submit.
	formSubmitButton.bind('click',function(){
		var formok = true,
			errors = [];
			
			
		formElements.each(function(){
			var name = this.name,
				nameUC = name.ucfirst(),
				value = this.value,
				placeholderText = this.getAttribute('placeholder'),
				type = this.getAttribute('type'), //get type old school way
				isRequired = this.getAttribute('required'),
				minLength = this.getAttribute('data-minlength');
			
			//if HTML5 formfields are supported			
			if( (this.validity) && !this.validity.valid ){
				formok = false;
				
				console.log(this.validity);
				
				//if there is a value missing
				if(this.validity.valueMissing){
					errors.push(nameUC + errorMessages.required);	
				}
				//if this is an email input and it is not valid
				else if(this.validity.typeMismatch && type == 'email'){
					errors.push(errorMessages.email + nameUC);
				}
				
				this.focus(); //safari does not focus element an invalid element
				return false;
			}
			
			//if this is a required element
			if(isRequired){	
				//if HTML5 input required attribute is not supported
				if(!Modernizr.input.required){
					if(value == placeholderText){
						this.focus();
						formok = false;
						errors.push(nameUC + errorMessages.required);
						return false;
					}
				}
			}

			//if HTML5 input email input is not supported
			if(type == 'email'){ 	
				if(!Modernizr.inputtypes.email){ 
					var emailRegEx = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/; 
				 	if( !emailRegEx.test(value) ){	
						this.focus();
						formok = false;
						errors.push(errorMessages.email + nameUC);
						return false;
					}
				}
			}
			
			//check minimum lengths
			if(minLength){
				if( value.length < parseInt(minLength) ){
					this.focus();
					formok = false;
					errors.push(nameUC + errorMessages.minlength + minLength + ' charcters');
					return false;
				}
			}
		});
		
		//if form is not valid
		if(!formok){
			
			//animate required field notice
			$('#req-field-desc')
				.stop()
				.animate({
					marginLeft: '+=' + 5
				},150,function(){
					$(this).animate({
						marginLeft: '-=' + 5
					},150);
				});
			
			//show error message 
			showNotice('error',errors);
			
		}
		//if form is valid
		else {
			
			loading.show();
			$.ajax({
				url: form.attr('action'),
				type: form.attr('method'),
				data: form.serialize(),
				success: function(){
					showNotice('success');
					
					form.get(0).reset();
					loading.hide();
				}
			});
		}
		
		return false; //this stops submission off the form and also stops browsers showing default error messages
		
	});

	//other misc functions
	function showNotice(type,data)
	{
		if(type == 'error'){
			successNotice.hide();
			errorNotice.find("li[id!='info']").remove();
			for(x in data){
				errorNotice.append('<li>'+data[x]+'</li>');	
			}
			errorNotice.show();
		}
		else {
			errorNotice.hide();
			successNotice.show();	
		}
	}
	
	String.prototype.ucfirst = function() {
		return this.charAt(0).toUpperCase() + this.slice(1);
	}
	
});







