$(document).ready(function(){
	print_document();
	change_typo();
	field_search();
	red_hover();
	features_picks();
	valid_subscribe();
	if($('.list_slide').length){
		$('.list_slide').jcarousel({
			scroll: 1,
			auto: 5,
			wrap: 'last',
			animation: 'slow',
			itemFirstOutCallback: {
				onBeforeAnimation: fadeOutItem,
				onAfterAnimation: fadeInItem
			},
			itemLoadCallback: {
				onBeforeAnimation: fadeOutItem,
				onAfterAnimation: fadeInItem
			},
			initCallback: mycarousel_initCallback
		});
	}
	LimiterTextArea('text_message', 255, 'remaining_char');
})

function fadeOutItem() {
	$('.block_text').fadeOut('slow');
	//$('.jcarousel-prev, .jcarousel-next').fadeOut();
}
function fadeInItem() {
	$('.block_text').fadeIn('slow');
	//$('.jcarousel-prev, .jcarousel-next').fadeIn('slow');
}

	/*	l'input text Search	*/
function field_search(){
	$('#field_search').click(function(){
		if($(this).val()=='Search')
			$(this).val('');
	});
	$('#field_search_feature').click(function(){
		if($(this).val()=='Travel services')
			$(this).val('');
	});
}

	/*	imprimer le document	*/
function print_document(){
	
	$(".link_print").bind("click", function(){
		window.print();
		return false;
	});
}
	/*	augmenter & diminuer le typo	*/
function change_typo(){
	$('.tools .link_typo').each(function(i,obj){
		$(obj).unbind();
		$(obj).bind('click',function(){
			var currentClass=$('body').attr('class');
			if(currentClass){
			var currentNb=parseInt(currentClass.split('size_')[1]);
			if($(obj).attr('id')=='text_plus'){
			currentNb++;
			if(currentNb<3)
			var newClass=currentNb.toString();
			}else if($(obj).attr('id')=='text_moins'){
			currentNb--;
			if(currentNb>-1)
			var newClass=currentNb.toString();
			}
			if(newClass){
			$('body').removeClass(currentClass);
			$('body').addClass('size_'+newClass);
			}
			}
			return false;
		});
	});
}
	/*	hover rouge au boutton OK */
function red_hover(){
	$('.red_hover').hover(function(){
		$(this).addClass('hover_active');
	}, function(){
		$(this).removeClass('hover_active');
	});
}
	/*	basculer de [ More features] � [ Editor's picks] et inversement	*/
function features_picks(){
	if($('.news_features .box_item').length){
		$('.news_features .box_item a').bind('click', function(){
			var box_item = $(this).parent();
			if(!box_item.hasClass('active')){
				$('.news_features .box_item').removeClass('active');
				$(this).parent().addClass('active');
				var index_onglet = $('.news_features .box_item').index($(this).parent());
				$('.news_features_content > li').hide();
				$('.news_features_content > li').eq(index_onglet).show();
			}
			return false;
		});
	}
}
function mycarousel_initCallback(carousel)
{
    // Disable autoscrolling if the user clicks the prev or next button.
    carousel.buttonNext.bind('click', function() {
        carousel.startAuto(6);
    });

    carousel.buttonPrev.bind('click', function() {
        carousel.startAuto(6);
    });
};
	/*	v�rification de la formule de l'email	*/
function verfierEmail(email){
	var reg = new RegExp('^[a-z0-9]+([_|\.|-]{1}[a-z0-9]+)*@[a-z0-9]+([_|\.|-]-{1}[a-z0-9]+)*([\.]{1}[a-z]{2,6}){1,2}$', 'i');
	if(reg.test(email))
		return true;
	else
		return false;
}
	/*	validation du formulaire d'inscription	*/
function valid_subscribe(){
	$('#bt_send').bind('click', function(){
		var flag = true;
		$('.error').removeClass('error');
		$('.valid').removeClass('valid');
		$('.field_oblig').each(function(){					// obligation des input
			if(!$(this).val()){
				$(this).parents('p').addClass('error');
				flag = false;
			}else $(this).parents('p').addClass('valid');
		});
		
		$('.email_oblig').each(function(){					// format de l'email
			if(!verfierEmail($(this).val())){
				$(this).parents('p').addClass('error');
				flag = false;
			}else $(this).parents('p').addClass('valid');
		});
		
		$('.select_oblig').each(function(){					// obligation des select
			if($(this).attr("selectedIndex")==0){
				$(this).parents('p').addClass('error');
				flag = false;
			}else $(this).parents('p').addClass('valid');
		});
		if($('.check_oblig').attr('checked')==false){		// obligation de coher la case
			flag = false;
			$('.check_oblig').parents('p').addClass('error');
		}
		if(!flag){											// affichage du msg d'erreur en haut
			$('.error_msg').slideDown('slow');
			return false;
		}
	});
}
	/*********************************************	Limiter le nombre des caract�res saisis au TextArea	***********************************************/
function LimiterTextArea(nom_controletexte, nbcar, nom_controledecompte) {	// contr�le du nombre de caract�res saisis dans textarea
	var moncontroletexte = document.getElementById(nom_controletexte);
	var moncontroledecompte = document.getElementById(nom_controledecompte);
	if (moncontroletexte && moncontroledecompte) {
		moncontroletexte.onclick = function(){TextAreaEstRempli(moncontroletexte, nbcar, moncontroledecompte)};
		moncontroletexte.onblur = function(){TextAreaEstRempli(moncontroletexte, nbcar, moncontroledecompte)};
		moncontroletexte.onkeyup = function(){TextAreaEstRempli(moncontroletexte, nbcar, moncontroledecompte)};
		moncontroletexte.onkeypress = function(){TextAreaEstRempli(moncontroletexte, nbcar, moncontroledecompte)};

		// *** Affichage du nombre de caract?res restant
		if(moncontroledecompte.type) {
			moncontroledecompte.value = NbCarRestant(moncontroletexte, nbcar); // Pour un input de formulaire
		} else {
		moncontroledecompte.innerHTML = NbCarRestant(moncontroletexte, nbcar); // Pour un ?l?ment HTML
		}
	}
}

// TextAreaEstRempli
// args : textarea moncontroletexte, int nbcar, element_HTML moncontroledecompte
// return : bool
// Renvoie vrai si le nombre de caract?res maximum du textarea n'est pas atteint
function TextAreaEstRempli(moncontroletexte, nbcar, moncontroledecompte) {
	if (moncontroletexte) {
		if (moncontroletexte.value.length <= nbcar) {
			//alert("pas rempli");
			// mes actions ...
			// *** Affichage du nombre de caract?res restant
			if(moncontroledecompte.type) {
				moncontroledecompte.value = NbCarRestant(moncontroletexte, nbcar);
			} else {
				moncontroledecompte.innerHTML = NbCarRestant(moncontroletexte, nbcar);
			}
			return true;
		} else {
			//alert("rempli");
			// mes actions ...
			// Affichage du nombre de caract�res restant
			moncontroletexte.value = moncontroletexte.value.substr(0, nbcar);

			// *** Affichage du nombre de caract�res restant
			if(moncontroledecompte.type) {
				moncontroledecompte.value = NbCarRestant(moncontroletexte, nbcar);
			} else {
				moncontroledecompte.innerHTML = NbCarRestant(moncontroletexte, nbcar);
			}
			return false;
		}
	}
}

// NbCarRestant
// args : textarea moncontroletexte, int nbcar
// return : int
// Renvoie le nombre de caract?re ? saisir
function NbCarRestant(moncontroletexte, nbcar) {
	if (moncontroletexte.value.length) {
		return new Number(nbcar - moncontroletexte.value.length);
	} else {
		return new Number(nbcar);
	}
}

