/**
 * comparaison de dates format dd/mm/yyyy
 * renvoie 0		si date1 = date2
 * renvoie negatif	si date1 < date2
 * renvoie positif	si date1 > date2
 */
function dateComp(date1, date2){
	var date1Array = date1.split('/');
	var date2Array = date2.split('/');
	if(date1Array[2] != date2Array[2]) return (Number(date1Array[2]) - Number(date2Array[2]));
	if(date1Array[1] != date2Array[1]) return (Number(date1Array[1]) - Number(date2Array[1]));
	if(date1Array[0] != date2Array[0]) return (Number(date1Array[0]) - Number(date2Array[0]));
	return 0;
}

function keypressaction(event){
	//console.log(event.keyCode);
	if(event.keyCode == 27) $('.block_dates_travel:visible').hide();
	if(event.keyCode == 13) $('.block_dates_travel:visible .bt_form:visible:first').trigger('click');
}

//Gestion des evenements.
$(function(){
	var categorydelapage = $('#category').val();

	//permet de fermer les pop-up en appuyant sur ESC
	//permet de valider une pop-up en appuyant sur ENTER
	$(document).bind('keypress', keypressaction);

	$('textarea').live('click', function(){
		$(document).unbind('keypress');
	});

	$('textarea').live('blur', function(){
		$(document).bind('keypress', keypressaction);
	});

	//initialisation du datePicker (jquery)
	$('.date-pick').datePicker();

	//ouverture de la fenêtre d'aide pour le carnet de route.
	$('#aide_travel').click(function(){
		$('#block_travel_aide').show();
	});
	
	//fermeture de la fenêtre d'aide pour le carnet de route.
	$('#block_travel_aide_close').click(function(){
		$('#block_travel_aide').hide();
	});


	////////////////// AJOUT/SUPPRESSION D'ETABS DANS LA COLONNE DE DROITE //////////////////
	//ajout d'un etab dans le panier.
    $('.ajouter').live('click', function() {
		if(!$(this).hasClass('planning')) {
			$.getJSON("travel/addetab-" + this.id.substring(4) + ".html", function(data){
				$('#block_etab_container').html(data['data']);
				//if(data['error'] != '') alert(data['error']);
			});
		}
    });

	//suppression d'un etab (colonne de droite).
    $('.detail_etape_bt_close').live('click', function (){
		$.getJSON("travel/deletab-" + this.id.substring(7) + ".html",{ajaxFromTravelPlanning:true}, function(data){
			$('#block_etab_container').html(data['data']);
			//if(data['error'] != '') alert(data['error']);
        });
    });


	////////////////// CHOIX DEBUT/FIN DE SEJOUR //////////////////
	//Ouverture du formulaire de debut-fin de sejour.
	$('#travel_etape2_bt').click(function(){
		$('#block_dates_travel_day').show();
	});

	//Fermeture du formulaire de debut-fin du sejour.
	$('#chooseDateForm_close').click(function(){
		$('#block_dates_travel_day').hide();
	});

	//Validation du formulaire pour le choix des dates de debut et de fin du sejour.
	$('#date_form_ok').click(function(){
		if($('#date_form_log').is(':visible')) $('#date_form_log').hide();
		if(dateComp($('#date2').val(), $('#date1').val()) < 0){
			$('#date2').val($('#date1').val());
			$('#date_form_log').show();
		}
		else{
			$.post("travel/settraveldates.html",
				{
					date1 : $('#date1').val(),
					date2 : $('#date2').val()
				},
				function(data){
					//si on n'est dans la page travel/start.html (alors l'élément $('#block_travel_planner_centre_container') existe)
					if($('#block_travel_planner_centre_container') != null) $('#block_travel_planner_centre_container').html(data['data']);
					$('#block_dates_travel_day').hide();
					$('#block_etab_container').html(data['dataCol']);

					var b = document.getElementsByTagName("base");
					var loc="";
					if (b && b[0] && b[0].href) {
						if (b[0].href.substr(b[0].href.length-1) == "/" && loc.charAt(0) == "/") loc = loc.substr(1);
						loc = b[0].href + loc;
					}
					window.location.href = loc+"travel/start.html";
				},'json'
			);
		}
	});

	//Changement de la date de debut de sejour.
//	$('#date1').blur(function(){
//		if(dateComp($('#date2').val(), $('#date1').val()) < 0)
//			$('#date2').val($('#date1').val());
//	});

	//Changement de la date de fin de sejour.
//	$('#date2').blur(function(){
//		if(dateComp($('#date2').val(), $('#date1').val()) < 0)
//			$('#date1').val($('#date2').val());
//	});
	

	////////////////// CONNECTION //////////////////
	//Affichage de la fenetre de connection.   , #connect_button1, #connect_button2, #connect_button3, #connect_button4
	$('.connect_button').click(function(){
		$('#block_connection2').hide();
		$('#block_connection1').show();
		$('#block_connection').show();
	});

	//Fermeture de la fenetre de connection.
	$('#block_connection_close').click(function(){
		$('#block_connection').hide();
	});

        //Mot de passe perdu
        $('#lost_pwd_form_ok').click(function(){
            var email = $('#email2').val();
            var ok = true;
            if(email == null || email == '') {
                $('#email2').parent().addClass('error');
                ok = false;
            }
            else $('#email2').parent().removeClass('error');

            if(ok) {
                $.post('auth/lostpassword.html',
                {
                    email:$('#email2').val(),
                    ajax:'ok'
                }, function (data){
                    if(data['error'] != null && data['error'] != '' && data['error'] != 'query')
                        $('#'+data['error']).parent().addClass('error');
                    else {
                        //if(data['success'] != null && data['success'] != '') $('#block_account_header').html('ok'+data['success']);
                        //$('#block_connection').hide();
                        window.location = window.location;
                    }
                },'json');
            }
        });


        
	//Connection à un compte.
	$('#connect_form_ok').click(function(){
		var email = $('#email').val();
		var pwd = $('#pwd').val();
		var ok = true;

		if(email == null || email == '') {
			$('#email').parent().addClass('error');
			ok = false;
		}
		else $('#email').parent().removeClass('error');
		
		if(pwd == null || pwd == ''){
			$('#pwd').parent().addClass('error');
			ok = false;
		}
		else $('#pwd').parent().removeClass('error');

		if(ok == true)
			$.post('auth/connect.html',
				{email:$('#email').val(),pwd:$('#pwd').val(), ajax:'ok'},
				function(data){
					//console.log(data);
					if(data['error'] != null && data['error'] != '' && data['error'] != 'query') $('#'+data['error']).parent().addClass('error');
					else {
						//if(data['success'] != null && data['success'] != '') $('#block_account_header').html('ok'+data['success']);
						//$('#block_connection').hide();
						//window.location = window.location;
						window.location.href = 'auth/account.html';
					}
				},'json'
			);
	});

	//Ouverture du formulaire de perte de mot de passe.
	$('#lost_pwd').click(function(){
		$('#block_connection1').slideUp(200, function(){
			$('#block_connection2').slideDown(400);
		});
	});

	$('#lostpwd_access').click(function(){
		$('#block_connection1').hide();
		$('#block_connection2').show();
		$('#block_connection').show();
	});

	//Retour au formulaire de connection.
	$('#back_to_connection').click(function(){
		$('#block_connection2').slideUp(200, function(){
			$('#block_connection1').slideDown(400);
		});
	});

	//Déconnection.
	$('#disconnect').live('click', function(){
		$.post('auth/disconnect.html', function(data){
			//$('#block_account_header').html(data);
			window.location = window.location;
		});
	});


	////////////////// FENETRE D'AIDE //////////////////
	//Ouverture de la fenêtre d'aide pour le filtre de région.
	$('#block_region_aide_bt').click(function(){
		$('#block_region_aide').show();
	});

	//Fermeture de la fenêtre d'aide pour le filtre de région.
	$('#block_region_aide_close').click(function(){
		$('#block_region_aide').hide();
	});

	
	////////////////// FILTRE REGION //////////////////
	//Activation du filtre Région.
	$('.filtre_nav_bt').click(function(){
		var idRegion = parseInt($(this).attr('id').substr(3));
		$.post('category/setregionfilter.html', {idregion : idRegion}, function(data){
			//si tout s'est bien passé, on recharge la page.
			if(data == 'success') location.reload(); //window.location = window.location; //window.location.search = '';
		});
	});
	

	////////////////// ACCES CARTE //////////////////
	//Ouverture du formulaire d'accès à la carte avec menu appelation de la colonne de gauche.
	$('#menuDeroulantApp1').change(function(){
		if($(this).val()!=0){
			$('#select_metier_w').parent().show();
			$('#block_carte_titre_suite').html(' ' + $('#menuDeroulantApp1 option:selected').html());
			var regapp = $(this).val().split("|");
			$('#select_region_w').val(regapp[0]);
			$('#select_region_w').parent().hide();
			$('#appellation').val(regapp[1]);
			$('#select_metier_w').load(
				"category/changeregion.html",
				{
					window : true,
					'region' : regapp[0],
					'category' : $('#category').val()
				},
				function(){
					//On vérifie si on peut afficher le bouton OK.
					if(($('#select_metier_w').val()!='' || $('#fixed_metier').val()!='') && $('#select_region_w').val()!='')
						$('#carte_form_ok').show();
					else $('#carte_form_ok').hide();
					
					//Enfin, on affiche la fenetre.
					$('#block_carte').show();
				}
			);
		}
		else
			window.location.search = '';
	});
        var liencarte = "";
	//ouverture du block carte
	$('.carteLink').click(function(){
		$('#select_metier_w').parent().show();
		$('#select_region_w').parent().show();
		$('#block_carte').show();
		$('#block_carte_titre_suite').html('');
		
		//On initialise les inputs cachés.
		$('#appellation').val('');
		$('#fixed_metier').val('');
		$('#category').val(categorydelapage);

		//on récupère l'id du bouton. (contient region et/ou metier et/ou category).
		var info = $(this).attr('id');
                liencarte = $(this).attr('id');

		//si les infos commence par un métier. (lien métier col de gauche ou boutons noirs page etab)
		if(info.substr(0,3)=="met") {
			$('#block_carte_titre_suite').html(' ' + $(this).html());
			$('#select_metier_w').parent().hide();
			var rubmet = info.substr(3).split("|");
			$('#category').val(rubmet[0]);
			$('#fixed_metier').val(info.substr(3));

			//on charge le select de régions.
			$('#select_region_w').hide();
			$('#select_region_w').parent().append('<div id="loading_select_w"></div>');
			$('#select_region_w').load(
				"category/changemetier.html",
				{job : rubmet[1]},
				function(data){
					$('#loading_select_w').remove();
					$('#select_region_w').show();

					//On vérifie si on peut afficher le bouton OK.
					if(($('#select_metier_w').val()!='' || $('#fixed_metier').val()!='') && $('#select_region_w').val()!='')
						$('#carte_form_ok').show();
					else $('#carte_form_ok').hide();
				}
			);
		}
		//sinon infos commence par rub (lien carte dans menu déroulant) ou rien (lien carte col de droite).
		else {
			//si info commence par rub (lien carte dans menu déroulant), on récupère la category.
			if(info.substr(0,3)=="rub") $('#category').val(info.substr(3));
			
			//on charge le select de régions.
			$('#select_region_w').hide();
			$('#select_region_w').parent().append('<div id="loading_select_w"></div>');
			$('#select_region_w').load(
				"category/changemetier.html",
				function(data){
					$('#loading_select_w').remove();
					$('#select_region_w').show();

					//on charge le select des métiers.
					$('#select_metier_w').hide();
					$('#select_metier_w').parent().append('<div id="loading_select_w"></div>');
					$('#select_metier_w').load(
						"category/changeregion.html",
						{
							window : true,
							region : $('#select_region_w').val(),
							category : info.substr(3)
						},
						function(data){
							$('#loading_select_w').remove();
							$('#select_metier_w').show();

							//On vérifie si on peut afficher le bouton OK.
							if(($('#select_metier_w').val()!='' || $('#fixed_metier').val()!='') && $('#select_region_w').val()!='')
								$('#carte_form_ok').show();
							else $('#carte_form_ok').hide();
						}
					);
				}
			);
		}
	});

	//fermeture du block carte.
	$('#block_carte_close').click(function(){
		$('#block_carte').hide();
	});

	//chargement du select de metier au changement de la région.
	$('#select_region_w').change(function(){
		//si le metier n'est pas fixé
                var cat = $('#category').val();
                
                if(liencarte.substr(0,3)=="")
                {
                    cat = "";
                }

		if($('#fixed_metier').val()==''){
			$('#select_metier_w').hide();
			$('#select_metier_w').parent().append('<div id="loading_select_w"></div>');
			$('#select_metier_w').load(
				"category/changeregion.html",
				{window : true, category : cat, region : $('#select_region_w').val()},
				function(data){
					$('#loading_select_w').remove();
					$('#select_metier_w').show();
				}
			);
		}
		else{
			//On vérifie si on peut afficher le bouton OK.
			if(($('#select_metier_w').val()!='' || $('#fixed_metier').val()!='') && $('#select_region_w').val()!='')
				$('#carte_form_ok').show();
			else $('#carte_form_ok').hide();
		}
	});

	//Changement de choix de métier.
	$('#select_metier_w').change(function(){
		if($('#select_metier_w').val()!='' && $('#select_region_w').val()!='')
			$('#carte_form_ok').show();
		else $('#carte_form_ok').hide();
	});

	//validation du formulaire d'accès à la carte.
	$('#carte_form_ok').click(function(){
		if(($('#select_metier_w').val()!='' || $('#fixed_metier').val()!='') && $('#select_region_w').val()!=''){
			//on récupère le thème et le métier (soit dans le select, soit dans le input).
			var rubmetstring = ($('#fixed_metier').val() == '') ? $('#select_metier_w').val() : $('#fixed_metier').val();
			var rubmet = rubmetstring.split("|");
			var rub = rubmet[0];
			var met = rubmet[1];
			var app = $('#appellation').val();
			var reg = $('#select_region_w').val();
			var b = document.getElementsByTagName("base");
			var loc="";
			if (b && b[0] && b[0].href) {
				if (b[0].href.substr(b[0].href.length-1) == "/" && loc.charAt(0) == "/") loc = loc.substr(1);
				loc = b[0].href + loc;
			}
			window.location.href = loc+rub+"/carte/"+reg+"/"+met+".html"+((app!='' && app!=null) ? "?appellation="+app : '');
		}
	});


	////////////////// NEWSLETTER //////////////////
	//inscription à la newsletter
	$('#bt_newsletter').click(function(){
		var email = $('#newsletter_email').val();
		if(email == ""){
			$('#newsletter_email').val("Entrer votre email");
		}
		else{
			var syntaxe = new RegExp(/^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,6}$/);
			if(!syntaxe.test(email)) $('#newsletter_email').val("Email non-valide.");
			else $.post('auth/newsletter.html', {'email' : email}, function(data){
				if(data['error']!='') $('#newsletter_email').val(data['error']);
				if(data['success']!='') $('#newsletter_email').val(data['success']);
			}, 'json');
		}
	});
});
