$(document).ready(function (){
	
	// carte GoogleMap et autre fancybox
	$('.fancyhref').fancybox({
		'type':'iframe',
		'width':'90%',
		'height':'90%'
	});
	// pré chargement
	preloadCssHoverImg();
	
	//wysiwyg
	//myWysiwyg();
	
	
	// effacement auto des champs avec label incorporé
	$('input[value$="..."]').each(function(){
		this.orgVal = this.value;
		if (!$.browser.msie && $(this).attr('type')=='password'){ 
			this.orgType = $(this).attr('type');
			this.setAttribute('type','text');
		}
	}).focus(function(){
		if(this.value == this.orgVal){
			this.value='';
		}
		if (!$.browser.msie && this.orgType) this.setAttribute('type',this.orgType);
	}).blur(function(){
		if(this.value == ''){
			if (!$.browser.msie && this.orgType) this.setAttribute('type','text');
			this.value=this.orgVal;
		}
	});
	
	
	// onglets recherche
	$('.ongletRecherche').click(function(){
		$('#objectif').val(this.href.split('#')[1]);
		$('.ongletRecherche').removeClass('active');
		$(this).addClass('active');
		return false;
	});
	
	// menu déroulant
	$('.deployHover').hover(function(){
		$('.deploy', this).show('fast');
	},function(){
		$('.deploy', this).hide('fast');
	});
	$('.deploy').show().hide();
	
	// carroussel
	carousselEtatStable();
	//myCaroussel();
	
	//autocompletion ville
	$("#ville").autocomplete({
		source: "ajax.php?action=autoCompVille",
		focus: function(event, ui) {if(ui.item) this.value = ui.item.value.split('<strong>').join('').split('</strong>').join('');return false;},
		select: function(event, ui) {if(ui.item) this.value = ui.item.value.split('<strong>').join('').split('</strong>').join('');return false;}
	});
	
	//selecteur d'images sur les pages fiche
	$('.mini_bien_fiche').hover(function(){
		$('.image_bien_fiche img:first').attr('src',
			$('img:first',this).attr('src')
		);
	});
	
	//rewriting recherche
	$('#formSearch').submit(function(){
		var recherche = $(this).serializeArray();
		var url = $('base').attr('href')+'cherche/';
		$.each(recherche,function(i,champ){
			if(champ.value) url+=champ.name+'/'+champ.value+'/';
		});
		window.location = url;
		return false;
	});
	
	// alerte Email
	$('.alertEmail-loader').click(function (){
		$(this).wrap('<span id="alertEmail-starter"/>');
		$('#alertEmail-email').fadeIn(1000);
		$('#alertEmail-sender').fadeIn(1000);
		$('.alertEmail-loader').fadeOut(1000);
		$('.bouton_recherche').fadeOut(1000);
		$('#alertEmail-starter').effect("transfer", { to: "#alertEmail-email" }, 1000);
		return false;
	});
	
	// calculette
	$('#calculatrice_fiche').submit(function(){
		calculerMensualite();
		return false;
	});
/*
	var d=new Date();
	var fin=d.getTime();
	alert(((fin-debut)/1000)+' s');
*/
});

/*function myCaroussel(){
	$(".bloc_coupdecoeur"):carouFredSel();

	$(".bloc_coupdecoeur").carouFredSel({
	    direction: "up",
	    items: {
	        visible: "variable",
	        start: "random"
	    },
	    auto: false,
	    next: {
	        button: ".suivant",
	        key: "right"
	    }
	});
}*/


/*function myWysiwyg(){
		tinyMCE.init({
	        mode : "textareas",
	        theme : "advanced",
	        plugins : "spellchecker,advhr,insertdatetime,preview", 
	                
	        // Theme options - button# indicated the row# only
	        theme_advanced_buttons1 : "newdocument,|,bold,italic,underline,|,justifyleft,justifycenter,justifyright,fontselect,fontsizeselect,formatselect",
	        theme_advanced_buttons2 : "cut,copy,paste,|,bullist,numlist,|,outdent,indent,|,undo,redo,|,link,unlink,anchor,image,|,code,preview,|,forecolor,backcolor",
	        theme_advanced_buttons3 : "insertdate,inserttime,|,spellchecker,advhr,,removeformat,|,sub,sup,|,charmap,emotions",      
	        theme_advanced_toolbar_location : "top",
	        theme_advanced_toolbar_align : "left",
	        theme_advanced_statusbar_location : "bottom",
	        theme_advanced_resizing : true
		});
}*/


function carousselEtatStable(){
	var precedents = $('.grandCoeur:first, .petitCoeur:first, .carousselController > a:first');
	var suivants = $('.grandCoeur:last, .petitCoeur:last, .carousselController > a:last');
	var active = $('.grandCoeur:eq(1), .petitCoeur:eq(1)');
	active.addClass('active');
	precedents.click(function(){
		$('.grandCoeur, .petitCoeur, .carousselController > a').unbind();
		$('.grandCoeur, .petitCoeur').removeClass('active');

		var id = url2id($('.grandCoeur:first').attr('href'));
		$.getJSON('ajax.php?action=getCoeur&direction=before&id='+id,function(data){
			$('.petitCoeur:first').before('<a href="'+data.url+'" class="petitCoeur"><img src="'+data.img+'" alt="'+data.titre+'"/><span class="titre">'+data.titre+'</span></a>');
			$('.grandCoeur:first').before('<a href="'+data.url+'" class="grandCoeur"><img src="'+data.img+'" alt="'+data.titre+'"/><span class="titre">'+data.titre+'</span><span class="prix">'+data.prix+'</span></a>');

			$('.petitCoeur:first').parent().animate({"margin-left": "-=92px"}, 0);
			$('.petitCoeur:first').parent().animate({"margin-left": "+=92px"}, 1000, function() {
				$('.petitCoeur:last').remove();
			});
			$('.grandCoeur:first').parent().animate({"margin-left": "-=336px"}, 0);
			$('.grandCoeur:first').parent().animate({"margin-left": "+=336px"}, 1000, function() {
				$('.grandCoeur:last').remove();
				carousselEtatStable();
			});
		});
		return false;
	});
	suivants.click(function(){
		$('.grandCoeur, .petitCoeur, .carousselController > a').removeClass('active').unbind();
		
		var id = url2id($('.grandCoeur:last').attr('href'));
		$.getJSON('ajax.php?action=getCoeur&direction=after&id='+id,function(data){
			$('.petitCoeur:last').after('<a href="'+data.url+'" class="petitCoeur"><img src="'+data.img+'" alt="'+data.titre+'"/><span class="titre">'+data.titre+'</span></a>');
			$('.grandCoeur:last').after('<a href="'+data.url+'" class="grandCoeur"><img src="'+data.img+'" alt="'+data.titre+'"/><span class="titre">'+data.titre+'</span><span class="prix">'+data.prix+'</span></a>');

			$('.petitCoeur:first').parent().animate({"margin-left": "-=92px"}, 1000, function() {
				$('.petitCoeur:first').parent().animate({"margin-left": "+=92px"}, 0);
				$('.petitCoeur:first').remove();
			});
			$('.grandCoeur:first').parent().animate({"margin-left": "-=336px"}, 1000, function() {
				$('.grandCoeur:first').parent().animate({"margin-left": "+=336px"}, 0);
				$('.grandCoeur:first').remove();
				carousselEtatStable();
			});
		});
		return false;
	});
	setTimeout("$('.carousselController > a:last').click();",4000);
}

function preloadCssHoverImg(){
	// :hover preload script
	if(!$('#preload').length) $('body').append('<div id="preload" style="display:none;"></div>');
	$('link[type="text/css"]').each(function(){
		var url = $(this).attr('href');
		// récupération du chemin vers le css
		var tab = url.split('/');
		if(tab.length>1)
		{
			tab.pop();
			var subFolder = tab.join('/')+'/';
		} else var subFolder = './';
		
		// chargement du fichier css
		$.get(url, function(data) {
			var cssRules = data.split(':hover');
			if(cssRules.length>1)
			{
				cssRules.shift();
				for(i in cssRules){
					try {
						// pour chaque selecteur :hover on récupère l'url de l'image chargé s'il y en a une.
						var imgUrl = cssRules[i].split('}')[0].split('url(')[1].split(')')[0].split('"').join('');
						// si l'url est relative, on ajouter la différence de postion entre le fichier css et le fichier html
						if( imgUrl[0]!='/' && !imgUrl.match('//')) imgUrl = subFolder + imgUrl;
						$('#preload').append('<img src="'+imgUrl+'"/>');
					} catch (e) {}
				}
			}
		});
	});
}
function url2id(url){
	var id='';
	if (url.split('id=').length>1) id = parseInt(url.split('id=')[1]);

	if (url.split('?').length<2) id = parseInt(url.split('/').pop().split('-').pop());
	return id;
}


/*
 * Calculette JS
 */


//Valide le contenu d'un ï¿½lï¿½ment par son id et une regex 
//sinon affiche le message
function validerType(donnee, regex) {
	//Construction de la regex
	tester = new RegExp(regex);
	//test
	return (donnee != null && donnee != "" && tester.test(donnee));
}

//Calcul les mensualitées
function calculerMensualite() {

	//Récupération des données
	var emprunt = $('#montant_credit').val();
	var annees = $('#dureeAnnees').val();
	var mois = $('#dureeMois').val();
	var taux = $('#taux').val();

	//Regex
	var regex_integer = "^[0-9]*$";
	var regex_float = "^[0-9]*[.,]?[0-9]*$";
	var regex_mois = "^(11|10|[0-9])$";

	//Test des types
	var valide= true;
	var message = "";
	if(!validerType(emprunt, regex_integer)) {
		message += "Le montant de l'emprunt doit être un entier<br/>";
		valide = false;
	}
	if(!validerType(annees, regex_integer)) {
		message += "Le nombre d'années doit être un entier<br/>";
		valide = false;
	}
	if(!validerType(mois, regex_mois)) {
		message += "Le nombre de mois doit être un entier compris entre 0 et 11<br/>";
		valide = false;
	}
	if(!validerType(taux, regex_float)) {
		message += "Le taux doit être un nombre décimal<br/>";
		valide = false;
	}
	
	if(valide) {
		mois = (annees * 12) + parseInt(mois);
		emprunt = parseInt(emprunt);
		taux = parseFloat(taux);

		$('#montantMensualite').val(Math.round(
				(emprunt*((taux/100)/12))
				/
				(1-Math.pow(1+((taux/100)/12),-mois))
		));
	} else {
		alert(message);
	}
}

