
$('document').ready(function()
{

	$(".top.widget li:not(:last-child)").slideShow();

	var $main = $('.main');
	var facebook_code_button = '<div id="fb-root"></div><script async defer type="text/javascript">(function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) return; js = d.createElement(s); js.id = id; js.src = "//connect.facebook.net/fr_FR/sdk.js#xfbml=1&version=v2.9"; fjs.parentNode.insertBefore(js, fjs);}(document, "script", "facebook-jssdk"));</script>';
	var twitter_code_button  = '<script>window.twttr = (function(d, s, id) {var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {};if (d.getElementById(id)) return t;js = d.createElement(s);js.id = id;js.src = "https://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js, fjs);t._e = [];t.ready = function(f) {t._e.push(f);};return t;}(document, "script", "twitter-wjs"));</script>';
	$main.prepend(facebook_code_button);
	$main.prepend(twitter_code_button);

	$('.middle.pane > .menu.widget').append('<div class="social_links"></div>');
	addFacebookElement('.social_links', {layout: 'button_count', size: 'small'});
	$('.social_links').append('<div class="social_links_item g-plusone"></div>');
	addFacebookElement('.item_social_link', {layout: 'box_count', size: 'small'});

	$('#payment_selected').on('click', function ()
	{
		// Check if the checkbox for the general conditions is checked.
		var checked = $("input[id=order-sellsconditions]:checked").length;
		if (!checked) {
			alert(
				"Vous devez accepter les conditions générales de vente et de reprise"
				+ " avant d'effectuer votre paiement."
			);
			return false;
		}

		var is_check_payment = $("input[id=payment-check]:checked").length;
		if (is_check_payment) {
			window.location = '/panier/confirmation-de-paiement';
			return false;
		}

		var is_4xcb = $("input[id=payment-card-4xcb]:checked").length;
		if (is_4xcb) {
			window.location = '/panier/paiement-en-4-fois';
			return false;
		}

	});

	// Hamburger and user icon management for smartphone design
	$('#header_icon').on('click', function (e) {
		e.preventDefault();
		$('body').toggleClass('with--sidebar');
	});
	$('#site-cache').on('click', function () {
		$('body').removeClass('with--sidebar');
	})

	$('#user_icon').on('click', function (e) {
		e.preventDefault();
		$('body').toggleClass('with--userbar');
	});

	$('.la-poste input[type=radio]').click(function()
	{
		$('.dpd-pick-up-point').css('display', 'none');
		$('.dpd-predict-phone').css('display', 'none');
		$('.dpd-pick-up-phone').css('display', 'none');
	});

	$('.dpd-classic input[type=radio]').click(function()
	{
		$('.dpd-pick-up-point').css('display', 'none');
		$('.dpd-predict-phone').css('display', 'none');
		$('.dpd-pick-up-phone').css('display', 'none');
	});

	$('.dpd-predict input[type=radio]').click(function()
	{
		$('.dpd-pick-up-point').css('display', 'none');
		$('.dpd-predict-phone').css('display', 'block');
		$('.dpd-pick-up-phone').css('display', 'none');
		$('#predict-phone-number').focus();
	});

	$('.dpd-pick-up input[type=radio]').click(function()
	{
		$('.dpd-pick-up-point').css('display', 'grid');
		$('.dpd-predict-phone').css('display', 'none');
		$('.dpd-pick-up-phone').css('display', 'block');
		if (!$('.dpd-pick-up-point.selected').length) {
			$('.dpd-pick-up-point:first').click();
		}
		$('.dpd-pick-up-point.selected input').focus();
	});

	$('.dpd-pick-up-point').click(function()
	{
		var $this = $(this);
		if ($this.hasClass('selected')) return;
		$this.parent().children('.dpd-pick-up-point').removeClass('selected');
		$this.addClass('selected');
		$this.find('input[type=radio]').click();
		$('.dpd-pick-up input').click();
		$('.dpd-pick-up-point.selected input').focus();
	});

	var $pick_up = $('input[name=shipping_mode][value=dpd-point-relais]:checked');
	if ($pick_up.length) {
		$pick_up.click();
	}
	var $predict = $('input[name=shipping_mode][value=dpd-predict]:checked');
	if ($predict.length) {
		$predict.click();
	}

	//---------------------------------------------------------------- submitIfValidMobilePhoneNumber
	/**
	 * @param event
	 * @return boolean
	 */
	var submitIfValidMobilePhoneNumber = function(event)
	{
		var $phone_number
		if ($('#predict-phone-number').is(':visible')) {
			$phone_number = $('#predict-phone-number');
		}
		if ($('#dpd-pick-up-point-phone-number').is(':visible')) {
			$phone_number = $('#dpd-pick-up-point-phone-number');
		}

		if (
			$phone_number.is(':visible')
			&& !validateMobilePhoneNumber.call($phone_number)
		) {
			console.log('not valid');
			event.preventDefault();
			event.stopImmediatePropagation();
			$phone_number.focus();
			$phone_number.css('background-color', 'red');
			$phone_number.animate({ backgroundColor: 'white' }, 1000);
			return false;
		}
		return true;
	}

	//--------------------------------------------------------------------- validateMobilePhoneNumber
	/**
	 * @return boolean
	 */
	var validateMobilePhoneNumber = function()
	{
		var $input  = $(this);
		// fr
		var regex   = new RegExp(/^((\+33|0)[67])(?:[ _.-]?(\d{2})){4}$/);
		var number  = $input.val().substr(-8);
		var pattern = [
			'00000000', '11111111', '22222222', '33333333', '44444444', '55555555', '66666666',
			'77777777', '88888888', '99999999', '12345678', '23456789', '98765432', '87654321'
		];
		// be
		var regex_be   = new RegExp(/^((\+32|0)4[56789])\d{7}$/);
		var number_be  = $input.val().substr(-7);
		var pattern_be = [
			'0000000', '1111111', '2222222', '3333333', '4444444', '5555555', '6666666',
			'7777777', '8888888', '9999999', '1234567', '2345678', '9876543', '8765432'
		];
		// validate
		var $target = $input.closest('div').children('.bad-phone-number');
		if (
			!$input.val().length
			|| (regex.test($input.val()) && (pattern.indexOf(number) < 0))
			|| (regex_be.test($input.val()) && (pattern_be.indexOf(number_be) < 0))
		) {
			$target.hide();
			return true;
		}
		else {
			$target.show();
			return false;
		}
	}

	$('#predict-phone-number')
		.blur(validateMobilePhoneNumber)
		.change(validateMobilePhoneNumber)
		.keyup(validateMobilePhoneNumber)
		.on('compositionend', validateMobilePhoneNumber)
		.on('cut', validateMobilePhoneNumber)
		.on('paste', validateMobilePhoneNumber)
		.closest('form').submit(submitIfValidMobilePhoneNumber);
});

//----------------------------------------------------------------------------- addFacebookElement
/**
 * Allows you to add the button like code to the item.
 *
 * @param element string
 * @param params Parameters object button (e. {layout: 'button_count', size: 'small'})
 */
var addFacebookElement = function (element, params)
{
	var $element = $(element);
	if ($element.length) {
		$element.append('<div class="social_links_item fb-like" data-href="" data-layout="'+ params.layout +'" data-action="like" data-size="'+ params.size +'" data-show-faces="true" data-share="false"></div>');
	}
};
