/*	--------------------
	Fonctions Javascript pour le site Packagio SEO
	Gestion de Google maps
	2009-03-04,	Marc Brillault
	2009-04-01	Modification : la carte ne doit plus être visible sur les pages villes => on cible #contenu_pages.pays au lieu de #contenu_pages uniquement
	--------------------	*/

function google_map() {
	//	On affiche une Google Map
	var rep_templates = get_templates();

	if (GBrowserIsCompatible()) {
		//	On ajoute la div sur la home
		if($('.home').length) {
			$('.home').prepend('<h2>Le monde à portée de main</h2><div id="GoogleMap"></div>');
			map = new GMap2(document.getElementById("GoogleMap"));
			map.setCenter(new GLatLng(20, 0), 1);
			//map.enableScrollWheelZoom();
			map.addControl(new GSmallMapControl());
			//map.addControl(new GSmallMapControl());
			
			//	On liste les pays de la page
			$('.gmap_liste li a').each(function() {
				affiche_geo($(this).text(), $(this).attr('href'), map, count_label);
			});
		}
		
		//	On ajoute la div sur la page pays
		if($('#contenu_pages.pays').length) {
			//	On récupère l'URL de la page
			var pageurl = location.href;
			var regurlpage = /\/([a-z0-9-]+)-page[0-9]+\.html/;
			var regurl = /\/([a-z0-9-]+)\.html/;
			if(regurlpage.test(pageurl))
				regurlpage.exec(pageurl);
			else
				regurl.exec(pageurl);
			var pays = RegExp.$1;
			$.get(
				rep_templates+'/lib/AJAX/cities.php',
				{pays: pays},
				function(data) {
					var tab_info = data.split(';');
					var pays = tab_info[0];
					
					//	On vérifie les données concernant la bouding box
					$.get(
						rep_templates+'/lib/AJAX/geo.php5',
						{
							url:	pays
						},
						function(data) {
							if(data) {
								//	On affiche le div
								$('#contenu_pages #header').after('<div id="GoogleMap"></div>');
								map = new GMap2(document.getElementById("GoogleMap"));
								map.setMapType(G_HYBRID_MAP);
								map.addControl(new GMapTypeControl());
								map.addControl(new GSmallMapControl());
								//map.enableScrollWheelZoom();
								//map.disableDragging();
								
								//	On centre la vue sur le pays
								var geo = data.split('|');
								var ll_point = new GLatLng(geo[0], geo[1]);
								var ll_bounds = new GLatLngBounds(
									new GLatLng(geo[2], geo[5]), 
									new GLatLng(geo[4], geo[3])
								);
								map.setCenter(ll_point, map.getBoundsZoomLevel(ll_bounds));
								
								//	On affiche chacune des villes
								for(i = 1; i < tab_info.length; i++) {
									var tab_ville = tab_info[i].split('|');
									var ville = tab_ville[0];
									var url = tab_ville[1];
									affiche_geo(ville, url+'.html', map, count_label);
								}
							}
						}
					);
				}
			);
		}
	}

}

function affiche_geo(nom, url, map, count_label) {
	var rep_templates = get_templates();
	$.get(
		rep_templates+'/lib/AJAX/geo.php5',
		{
			url:	url
		},
		function(data) {
			if(data) {
				var tab_geo = data.split('|');
				var label = new ELabel(new GLatLng(tab_geo[0], tab_geo[1]), '<a href="'+url+'">'+nom+'</a>', 'g_label label_'+count_label);
				map.addOverlay(label);
				$('.label_'+count_label).each(function() {
					var width = $(this).width();
					var height = $(this).height();
					var dec_w = Math.round(width/2);
					var dec_h = Math.round(height/2);
					$(this).css({
						'position': 'relative',
						'left':		'-'+dec_w+'px'
					});
				});
				count_label++;
			}
		}
	);
}

function get_templates() {
	var rep_templates = getCookie('rep_templates');
	if(!rep_templates)
		rep_templates = 'templates';
	return rep_templates;
}

function getCookieVal(offset) {
	var endstr=document.cookie.indexOf (";", offset);
	if (endstr==-1)
		endstr=document.cookie.length;
	return unescape(document.cookie.substring(offset, endstr));
}

function getCookie (name) {
	var arg=name+"=";
	var alen=arg.length;
	var clen=document.cookie.length;
	var i=0;
	while (i<clen) {
		var j=i+alen;
		if (document.cookie.substring(i, j)==arg)
			return getCookieVal (j);
		i=document.cookie.indexOf(" ",i)+1;
		if (i==0)
			break;
	}
	return null;
}

function result_liens() {
	var rep_templates = getCookie('rep_templates');
	if(!rep_templates)
		rep_templates = 'templates';
	//	utilise le lien du h3 de chaque bloc de resultats pour les placer dans les endroits appropriés
	$('#results .offre').each(function () {
		var href = $(this).find('h3 a').attr('href');
		//	On rend le picto et le texte cliquables
		$(this).find('.picto').wrap('<a href="'+href+'"></a>');
		$(this).find('.description').wrapInner('<a href="'+href+'"></a>');
		//	On ajoute le lien "sélectionner"
		$(this).find('.cofinoga').before('<div class="selection"><a href="'+href+'">Détail du séjour</a></div>');
	});
	
	//	On génère le clic en AJAX sur les liens des multipages
	$('#results .pagination a').click(function() {
		var href = $(this).attr('href');
		var reg = /([a-z-]+)-page([0-9]+)\.html/;
		var test = reg.test(href);
		if(!test) {
			var reg = /([a-z-]+)\.html/;
			reg.exec(href);
			var url = RegExp.$1;
			var page = 1;
		}
		else {
			reg.exec(href);
			var url = RegExp.$1;
			var page = RegExp.$2;
		}
		//	On commence par vider le conteneur
		$('#results').addClass('loading');
		$('#results').empty();
		$.get(
			rep_templates+'/results.php5',
			{
				AJAX:	'true',
				url:	url,
				page:	page
			},
			function(data) {
				$('#results').removeClass('loading');
				$('#results').append(data);
				result_liens();
			}
		);
		pageTracker._trackPageview(href);
		omniture(href);
		return false;
	});
	
}

function dp() {
	//	Désactive le lien d'origine sur les vols DP, et affiche un formulaire
	$('.dp').click(function() {
		var rep_templates = get_templates();
		if($('#form_dp').length)
			$('#form_dp').remove();
		else {
			var href = $(this).attr('href');
			$.get(
				rep_templates+'/lib/AJAX/dp_form.php5',
				{
					url: encodeURIComponent(href)
				},
				function(data) {
					$('.dp').after(data);
					$('#form_dp').submit(function() {
						$('#D_DATE').val($('#D_MONTH').val()+$('#D_DAY').val());
						$('#R_DATE').val($('#R_MONTH').val()+$('#R_DAY').val());
						return true;
					});
				}
			);
		}
		return false;
	});
}

function omniture(url) {
	var s_account	=	'opodofrprod';
	s.pageName		=	'Op:FR:SEO:voyages.opodo.fr';
	s.eVar39		=	'fr-seo-Packagio-'+url;
	s.prop39		=	'fr-seo-Packagio-'+url;
	s.eVar45		=	'seo-Packagio.opodo.fr';
	s.prop45		=	'seo-Packagio.opodo.fr';
	s.server		=	'';
	s.channel		=	'SEO';
	s.pageType		=	'';
	s.eVar47		=	s.getQueryParam('OMNI_EVAR47');
	
	var s_code=s.t();
	if(s_code)
		document.write(s_code);
}

$(document).ready(function() {
	count_label = 0;
	google_map();
	
	if($('#results').length) {
		result_liens();
	}
	
	dp();
});