/* Author: 
	Eystein Mack Alnaes
	http://thatNorwegianGuy.com/
*/

$(document).ready(function() {

/* ######################################################## */	
/*	 			Slideshow with automatic start 				*/

	$('.slideshow.auto ul').bxSlider({
		mode: 'horizontal',						
		infiniteLoop: false,					
		hideControlOnEnd: false,				
		controls: true,							
		speed: 500,								
		easing: 'swing',                    	
		pager: true,							
		pagerSelector: '#slide-counter',		
		pagerType: 'full',						
		pagerLocation: 'bottom',				
		pagerActiveClass: 'pager-active',		
		nextText: 'next',						
		nextSelector: '#slide-direction',		
		prevText: 'prev',						
		prevSelector: '#slide-direction',		
		auto: true,
		autoControls: true,					
		autoControlsSelector: '#slide-on-off',
		autoStart: true,						
		autoHover: false,						
		autoDelay: 0,                       	
		pause: 10000,							
		startText: 'START',						
		startImage: '',							
		stopText: 'STOP',						
		stopImage: '',							
		wrapperClass: 'bx-wrapper',				
		startingSlide: 0 						
	});
	
/* ######################################################## */	
/*	 		Slideshow with (not so) manual start 			*/	
	
	var slider = $('.slideshow.manual ul').bxSlider({
		mode: 'horizontal',						
		infiniteLoop: false,					
		hideControlOnEnd: false,				
		controls: true,							
		speed: 500,								
		easing: 'swing',                    	
		pager: true,							
		pagerSelector: '#slide-counter',		
		pagerType: 'short',						
		pagerLocation: 'bottom',
		pagerShortSeparator: '/',
		pagerActiveClass: 'pager-active',		
		nextText: 'next',						
		nextSelector: '#slide-direction',		
		prevText: 'prev',						
		prevSelector: '#slide-direction',		
		auto: true,							
		autoControls: true,					
		autoControlsSelector: '#slide-on-off',	
		autoStart: true,						
		autoHover: false,						
		autoDelay: 0,                       	
		pause: 5500,							
		startText: 'START',						
		startImage: '',							
		stopText: 'STOP',						
		stopImage: '',							
		wrapperClass: 'bx-wrapper',
		startingSlide: 0,
		onLastSlide: function(currentSlide, totalSlides){
        	slider.stopShow();
        }  
	});
	


	

/* ######################################################## */	
/*	 					Accordion 							*/

	//Set default open/close settings
	$('.acc_container').hide(); //Hide/close all containers
	$('.acc_trigger:first').addClass('active').next().show(); //Add "active" class to first trigger, then show/open the immediate next container
	
	//On Click
	$('.acc_trigger').click(function(){
		if( $(this).next().is(':hidden') ) { //If immediate next container is closed...
			$('.acc_trigger').removeClass('active').next().slideUp(); //Remove all "active" state and slide up the immediate next container
			$(this).toggleClass('active').next().slideDown(); //Add "active" state to clicked trigger and slide down the immediate next container
		}
		return false; //Prevent the browser jump to the link anchor
	});

/* ######################################################## */	
/*	 			Accordion image lightbox 					*/
	$(".accordion a.acc_img").colorbox({maxWidth	:"80%", maxHeight:"80%", scalePhotos: true});
	
/* ######################################################## */	
/*	 				Show/hide captcha help	 				*/
	
	$('form .whats-this').hide();
	$('form .toggle').click(function() {
		$(this).next().slideToggle('fast', function() {
		});
		return false; 
	});

/* ######################################################## */	
/*	 		          Recaptcha stuff	        	    	*/ 

function show_recaptcha(element) {
Recaptcha.create("6Ldtpb8SAAAAAA0jIMiBO1U7Xdkw57J0PHHNiInp",
  element,
  {
    theme: "white"
  }
);
};

show_recaptcha("captcha-contact");


/* ######################################################## */	
/*	 					Share lightbox			 			*/
	$(".lightbox").hide();
	$("a.share").colorbox({width:"588px",inline:true, href:"#share-wrapper"});

  // Share with a friend lightbox
	$(".lightbox").hide();
	$("#share-email a").colorbox({
	      width:"604px",
	      inline:true, 
	      href:"#share-wrapper",
	      iframe:false,
	      onOpen: function() {show_recaptcha('captcha-share');},
	      onClosed: function() {show_recaptcha('captcha-contact');}
	});
	
	// Share page lightbox
	$("#casestudy-email a").colorbox({
	      width:"604px",
	      inline:true, 
	      href:"#case-wrapper",
	      iframe:false,
	      onOpen: function() {show_recaptcha('captcha-page');},
	      onClosed: function() {show_recaptcha('captcha-contact');}
	});


/* ######################################################## */	
/*	 					overlabel 							*/

jQuery(document).ready(function() {
    $("label.overlabel").overlabel();
});
  
    
/* ######################################################## */	
/*	 				Contact form validation			 		*/	

	
	
	$.validator.addMethod("greaterThanZero", function(value, element) {
		return $('input[type=checkbox]:checked').length > 0;
	}, "Please check at least one of the above.");	
	
	$("#contact-wrapper form").validate({		
	    errorClass: "error",
	    validClass: "valid",
	    highlight: function(element, errorClass, validClass) {
	      $(element).closest('.validate').addClass(errorClass).removeClass(validClass);
	    },
	    unhighlight: function(element, errorClass, validClass) {
	          $(element).closest('.validate').addClass(validClass).removeClass(errorClass);
	    },
	    rules: {
	      'contact_name': "required",
	      'contact_email': {
	        required: true,
	        email: true
	      },
	      'email_repeat': {
	        equalTo: "#contact-email"
	      },
	      'contact_number': {
	      	required: true,
	      	number: true
	      },
	      'about_general' : { 
	      	greaterThanZero : true 
	      }
 
	    },
	    messages: {
	      'contact_name': "Please fill in your name.",
	      'contact_email': {
	        required: "We need your email address to contact you",
	        email: "Your email address must be in the format of name@domain.com"
	      },
	      'email_repeat': {
	        equalTo: "This email must be equal to the one entered above."
	      },
	      'contact_number': "Please enter your phone number using decimals.",
	      'about_general' : "Please choose at least one issue to enquire about."
	    },
	    showErrors: function(errorMap, errorList) {
	      var errors = this.numberOfInvalids();
	      if (errors) {       
	        var message = errors == 1
	        ? "<p>You missed 1 field. It has been highlighted below.</p>"
	        : "<p>You missed " + errors + " fields. They have been highlighted below.</p>";
	        $("div.validation.errors").html(message); 
	        $("div.validation.errors").show();
	      } else {
	        $("div.validation.errors").hide();
	      }
	      this.defaultShowErrors(); 
	    },
	    invalidHandler: function(form, validator){
	      if ($('#contact-wrapper .validation.errors').length) {
	        $('#contact-wrapper div.validation.errors').remove();
	        $('#contact-wrapper form').before('<div class="validation errors"></div>');
	      } else {
	        $('#contact-wrapper form').before('<div class="validation errors"></div>');
	      }
	      $.scrollTo('#contact-wrapper', "slow");
	    },
	    focusInvalid:false
   });
   
   
	$("#share-wrapper form").validate({		
	    errorClass: "error",
	    validClass: "valid",
	    highlight: function(element, errorClass, validClass) {
	      $(element).closest('.validate').addClass(errorClass).removeClass(validClass);
	    },
	    unhighlight: function(element, errorClass, validClass) {
	          $(element).closest('.validate').addClass(validClass).removeClass(errorClass);
	    },
	    rules: {
	      'share_name': "required",
	      'share_email': {
	        required: true,
	        email: true
	      },
	      'friend_name': {
	      	required: true	      
	      },
	      'friend_email' : {
	        required: true,
	        email: true
	      }
 
	    },
	    messages: {
	      'share_name': "Please fill in your name.",
	      'share_email': {
	        required: "We need your email address to contact you",
	        email: "Your email address must be in the format of name@domain.com"
	      },
	      'friend_name': "Please enter your friends or colleague's name.",
	      'friend_email': {
	        required: "We need an email address for your friends or colleague",
	        email: "The email address must be in the format of name@domain.com"
	      }
	    },
	    showErrors: function(errorMap, errorList) {
	      var errors = this.numberOfInvalids();
	      if (errors) {       
	        var message = errors == 1
	        ? "<p>You missed 1 field. It has been highlighted below.</p>"
	        : "<p>You missed " + errors + " fields. They have been highlighted below.</p>";
	        $("div.validation.errors").html(message); 
	        $("div.validation.errors").show();
	      } else {
	        $("div.validation.errors").hide();
	      }
	      this.defaultShowErrors(); 
	    },
	    invalidHandler: function(form, validator){
	      if ($('#share-wrapper .validation.errors').length) {
	        $('#share-wrapper div.validation.errors').remove();
	        $('#share-wrapper form').before('<div class="validation errors"></div>');
	      } else {
	        $('#share-wrapper form').before('<div class="validation errors"></div>');
	      }
	      $.scrollTo('#share-wrapper', "slow");
	    },
	    focusInvalid:false
   });
   
});

/* ######################################################## */	
/*	 		          Clear Form Fields	        	    	*/ 

function clear_form_elements(ele) {

    $(ele).find(':input').each(function() {
        switch(this.type) {
            case 'password':
            case 'select-multiple':
            case 'select-one':
            case 'text':
            case 'textarea':
                $(this).val('');
                break;
            case 'checkbox':
            case 'radio':
                this.checked = false;
        }
    });

}
