var map, lieu;
var activite = null;
var secteur = null;
var page = 1;
var page_back = null;
var chaine = null;
var pos = 0;
var request = null;
var s_request = null;

$(document).ready( function() {

	lieu = $('#ret_loc').val() != 'null' ? $('#ret_loc').val() : null;
	page_back = $('#ret_page').val() != 'null' ? $('#ret_page').val() : null;

	if(GBrowserIsCompatible()) {
		map = new GMap2(document.getElementById("r_gmap"));
		map.setCenter(new GLatLng(45.5720613, -73.6576508), 11);
		map.setUIToDefault();
	}

	$('body').unload( function() {
		GUnload();
	})

	if($('#ret_back').val() > 0) {
		$('#search').val($('#ret_search').val());
		if($('#ret_search').val() != '') {
			$("#cr_clear").show();
		}
		secteur = $('#ret_sect').val() != 'null' ? $('#ret_sect').val() : null;
		activite = $('#ret_act').val() != 'null' ? $('#ret_act').val() : null;
		if(activite) {
			if(secteur) {
				update_m_a(activite, false);
				update_m_s(secteur);
			} else {
				update_m_a(activite, true);
			}
		}
		if(lieu) {
			update_m_l(lieu);
		}
		if(!activite && !lieu) {
			reset_activite();
		}
		page_back = null;
	} else if($('#ret_act').val() > 0) {
		if($('#ret_sect').val() > 0) {
			go_suggest($('#ret_act').val(), $('#ret_sect').val())
		} else {
			go_suggest(0, $('#ret_act').val())
		}
	} else if($('#ret_search').val() != '') {
		$('#search').val($('#ret_search').val());
		$("#cr_clear").show();
		display_result();
	} else { //Affichage par défaut
		reset_activite();
	}

	$('#remove_filters').click( function() {
		activite = null;
		secteur = null;
		lieu = null;
		page = 1;
		update_activite();
		update_lieu();
		ax_resultats(page);
		espace();
	});

	$('#search').keyup( function(e) {
		var chaine = $('#search').val();
		$.trim(chaine);
		if(chaine.length) {
			$("#cr_clear").show();
		} else {
			$("#cr_clear").hide();
		}
		if(e.which == 27) {
			$('#c_suggest').slideUp('fast');
			$('#search').focus();
		} else if(e.which == 13) {
			display_result();
		} else {
			display_suggestions();
		}
	});

	$('#s_fermer span').click( function() {
		$('#c_suggest').slideUp('fast');
		$('#search').focus();
	});

	$('#search').focus();
});

function update_m_a(id, update) {
	activite = id;
	$.getJSON(url+"/ajax/get_act/"+id,
		function(json) {
			var inner = json.activite+'&nbsp;<img src="'+url+'/public/images/btn/remove.jpg" alt="x" onclick="reset_activite()" class="c_p" />';
			$("#act_cont").html(inner);
			$("#mf_activite").html(inner);
		}
	);
	if(update) {
		ax_secteur('short');
	}
	load_lieu();
	if(pos) {
		retour_default(1);
	}
	page = page_back != null ? page_back : 1;
	ax_resultats(page);
	espace();
}

function update_m_s(id) {
	secteur = id;
	$.getJSON(url+"/ajax/get_sect/"+id,
		function(json) {
			var inner = json.secteur+'&nbsp;<img src="'+url+'/public/images/btn/remove.jpg" alt="x" onclick="reset_secteur()" class="c_p" />';
			$("#sect_cont").html(inner);
			$("#mf_secteur").html(inner);
		}
	);
	load_lieu();
	if(pos) {
		retour_default(2);
	}
	page = page_back != null ? page_back : 1;
	ax_resultats(page);
	espace();
}

function update_m_l(id) {
	lieu = id;
	$.getJSON(url+"/ajax/get_city/"+id,
		function(json) {
			var inner = json.city+'&nbsp;<img src="'+url+'/public/images/btn/remove.jpg" alt="x" onclick="reset_lieu()" class="c_p" />';
			$("#lieu_cont").html(inner);
			$("#mf_lieu").html(inner);
		}
	);
//	var inner = $(obj).html()+'&nbsp;<img src="'+url+'/public/images/btn/remove.jpg" alt="x" onclick="reset_lieu()" class="c_p" />';
//	$("#lieu_cont").html(inner);
//	$("#mf_lieu").html(inner);
	if(!activite) {
		update_activite();
	}
	if(activite && !secteur) {
		update_secteur();
	}
	if(pos) {
		retour_default(3);
	}
	page = page_back != null ? page_back : 1;
	ax_resultats(page);
	espace();
}

function dislplay_all_activites() {
	display_size(1);
	ax_activite('all');
}

function dislplay_all_secteurs() {
	display_size(2);
	ax_secteur('all');
}

function dislplay_all_villes() {
	display_size(3);
	ax_lieu('all');
}

function espace() {
	if(pos) {
		retour_default();
	}
	if(activite != null && (secteur != null || lieu != null)) {
		$('#mf_1').show();
		$('#remove_filters').show();
	} else {
		$('#mf_1').hide();
		$('#remove_filters').hide();
	}
	if(secteur != null && lieu != null) {
		$('#mf_2').show();

	} else {
		$('#mf_2').hide();
	}
}

function display_size(div) {
	switch(div) {
		case 1:
			$('#f_activite').animate({ width: "930px" }, 800).add($('#f_secteur').hide('slow')).add($('#f_lieu').hide('slow'));
			break;
		case 2:
			$('#f_activite').hide('slow').add($('#f_secteur').animate({ width: "930px" }, 800)).add($('#f_lieu').hide('slow'));
			break;
		case 3:
			$('#f_activite').hide('slow').add($('#f_secteur').hide('slow')).add($('#f_lieu').animate({ width: "930px" }, 800));
			break;
	}
	pos = div;
}

function retour_default() {
	switch(pos) {
		case 1:
			if(!activite)
				ax_activite('short');
			$('#f_activite').animate({ width: "296px" }, 500).add($('#f_secteur').show('slow')).add($('#f_lieu').show('slow'));
			break;
		case 2:
			if(!secteur)
				ax_secteur('short');
			$('#f_activite').show('slow').add($('#f_secteur').animate({ width: "298px" }, 500)).add($('#f_lieu').show('slow'));
			break;
		case 3:
			if(!lieu)
				ax_lieu('short');
			$('#f_activite').show('slow').add($('#f_secteur').show('slow')).add($('#f_lieu').animate({ width: "296px" }, 300));
			break;
	}
	pos = 0;
}

function load_lieu() {
	if(lieu == 'null' || lieu == null) {
		ax_lieu('short');
	}
}

function reset_activite() {
	update_activite();
	ax_resultats(page);
	espace();
}

function reset_secteur() {
	update_secteur();
	ax_resultats(1);
	espace();
}

function reset_lieu() {
	update_lieu();
	ax_resultats(1);
	espace();
}

function update_activite() {
	var inner = "Choisissez un secteur pour conna&icirc;tre ses sous-secteurs.";
	$('#sect_cont').html(inner);
	$("#mf_activite").html('');
	$("#mf_secteur").html('');
	ax_activite('short');
	activite = null;
	secteur = null;
	load_lieu();
}

function update_secteur() {
	$("#mf_secteur").html('');
	ax_secteur('short');
	secteur = null;
	load_lieu();
}

function update_lieu() {
	$("#mf_lieu").html('');
	lieu = null;
	load_lieu();
	if(!activite) {
		update_activite();
	}
	if(activite && !secteur) {
		update_secteur();
	}
}

function ax_activite(all) {
	chaine = $('#search').val();
	$.trim(chaine);
	$.ajax({
		type: "POST",
		url: url+"/ajax/get_activites/",
		data: 'lieu='+lieu+'&display='+all+'&chaine='+chaine,
		beforeSend: function() {
			$('#act_cont').html('');
		},
		success: function(msg){
			$('#act_cont').html(msg);
		}
	});
}

function ax_secteur(all) {
	chaine = $('#search').val();
	$.trim(chaine);
	$.ajax({
		type: "POST",
		url: url+"/ajax/get_secteurs/",
		data: 'activite='+activite+'&lieu='+lieu+'&display='+all+'&chaine='+chaine,
		beforeSend: function() {
			$('#sect_cont').html('');
		},
		success: function(msg){
			$('#sect_cont').html(msg);
		}
	});
}

function ax_lieu(all) {
	chaine = $('#search').val();
	$.trim(chaine);
	$.ajax({
		type: "POST",
		url: url+"/ajax/get_lieux/",
		data: 'activite='+activite+'&secteur='+secteur+'&display='+all+'&chaine='+chaine,
		beforeSend: function() {
			$('#lieu_cont').html('');
		},
		success: function(msg){
			$('#lieu_cont').html(msg);
		}
	});
}

function ax_resultats(n_page) {
	page = n_page;
	chaine = $('#search').val();
	$.trim(chaine);
	if(request) {
		request.abort();
	}
	request = $.ajax({
		type: "POST",
		url: url+"/ajax/get_result/",
		data: 'activite='+activite+'&secteur='+secteur+'&lieu='+lieu+'&page='+page+'&chaine='+chaine,
		beforeSend: function() {
			$('#c_gauche').html('');
			map.clearOverlays();
		},
		success: function(msg){
			$('#c_gauche').html(msg);
			var tab = new Array();
			for(i=1; i<6; i++) {
				tab[i] = '';
			}
			for(i=1; i<6; i++) {
				if($('#lat'+i).val() != undefined) {
					var pos = $('#pos'+i).val();
					if(tab[pos] == '') {
						tab[pos] = '<span class="g_link" onclick="window.location=\''+url+'/entreprise/'+$('#id'+i).val()+'/'+$('#url'+i).val()+'/\'">'+$('#nom'+i).val()+'</span>';
					} else {
						tab[pos] = tab[pos]+'<hr style="margin: 5px 0px;"/><span class="g_link" onclick="window.location=\''+url+'/entreprise/'+$('#id'+i).val()+'/'+$('#url'+i).val()+'/\'">'+$('#nom'+i).val()+'</span>';
					}
				}
			}
			for(i=1; i<6; i++) {
				if(tab[i] != '') {
					var point = new GLatLng($('#lat'+i).val(), $('#lng'+i).val());
					var Icon = new GIcon();
					Icon.image = url+"/public/images/map/puce"+i+".png";
					Icon.shadow = url+"/public/images/map/shadow.png";
					Icon.iconSize = new GSize(20, 34);
					Icon.shadowSize = new GSize(37, 34);
					Icon.iconAnchor = new GPoint(9, 34);
					Icon.infoWindowAnchor = new GPoint(9, 2);
					Icon.infoShadowAnchor = new GPoint(18, 25);
					Icon.transparent = "http://www.google.com/intl/en_ALL/mapfiles/markerTransparent.png";
					Icon.printImage = url+"/public/images/map/puce"+i+".png";
					Icon.mozPrintImage = url+"/public/images/map/puce"+i+".png";
					var marker = new GMarker(point, Icon);
					marker.bindInfoWindowHtml(tab[i]);
					map.addOverlay(marker);
				}
			}
			map.setCenter(new GLatLng(45.5720613, -73.6576508), 11);
			request = null;
		}
	});
}

function move_map(i) {
	if($('#lat'+i).val() != undefined) {
		map.setCenter(new GLatLng($('#lat'+i).val(), $('#lng'+i).val()), 15);
	}
}

function display_suggestions() {
	var chaine = $('#search').val();
	$.trim(chaine);
	if(chaine.length > 2) {
		if(s_request) {
			s_request.abort();
		}
		s_request = $.ajax({
			type: "POST",
			url: url+"/ajax/get_suggest/",
			data : 'string='+$('#search').val(),
			beforeSend: function() {

			},
			success: function(msg){
				if(msg != '') {
					$('div#s_suggest').html(msg);
					if($('#c_suggest').css('display') != 'block') {
						var position = $('#search').position();
						$('#c_suggest').css('top', (position.top + 29));
						$('#c_suggest').css('left', position.left);
						$('#c_suggest').slideDown('slow');
					}
				} else {
					$('#c_suggest').slideUp('fast');
					$('div#s_suggest').html('');
				}
			}
		});
	} else {
		$('#c_suggest').slideUp('fast');
		$('div#s_suggest').html('');
	}
}

function open_modal() {
	for(i=1; i<5; i++) {
		$('#exp'+i).hide();
	}
	$('#exp1').show();
	$('ul#d_menu li').each( function() {
		$(this).removeClass('active');
	});
	$('ul#d_menu li:first').addClass('active');
	modal_dialog();
	$('#dialog').dialog('open');
}

function modal_dialog() {
	$('#dialog').dialog({
		width: 900,
		bgiframe: true,
		resizable: false,
		modal: true,
		autoOpen: false,
		overlay: {
			opacity: 0.5
		},
		title : 'Trouvez une entreprise d’économie sociale à Montréal',
		buttons: {
			'Fermer' : function() {
				$(this).dialog('destroy');
			}
		}
	});
}

function display_exp(id, elmt) {
	var pos = true;
	var t = $(elmt).html();
	$('#ui-dialog-title-dialog').html(t);
	for(i=1; i<5; i++) {
		if($('#exp'+i).css('display') == 'block' && pos) {
			$('#exp'+i).fadeOut('medium', function() {
				$('#exp'+id).fadeIn();
			})
			$('ul#d_menu li').each( function() {
				$(this).removeClass('active');
			});
			$(elmt).addClass('active');
			pos = false;
		}
	}
}

function go_suggest(act, sect) {
	$('#c_suggest').slideUp('fast');
	$('div#s_suggest').html('');
	$('#search').val('');
	$("#cr_clear").hide();
	$('#search').focus();
	if(act) {
		update_m_a(act, false);
		update_m_s(sect);
	} else {
		update_m_a(sect, true);
	}
}

function display_result(){
	ax_resultats(page);
	$('#c_suggest').slideUp('fast');
	$('#search').focus();
	load_lieu();
	if(!activite) {
		update_activite();
	}
	if(activite && !secteur) {
		update_secteur();
	}
}

function clear_search() {
	$('#search').val('');
	$("#cr_clear").hide();
	load_lieu();
	if(!activite) {
		update_activite();
	}
	if(activite && !secteur) {
		update_secteur();
	}
	$('#search').focus();
	ax_resultats(1);
}

function save_param(urltogo) {
	s_request = $.ajax({
		type: "POST",
		url: url+"/ajax/save_param_rep/",
		data : 'string='+$('#search').val()+'&activite='+activite+'&secteur='+secteur+'&lieu='+lieu+'&page='+page,
		success: function(){
			window.location = urltogo;
		}
	});
}