(function($) {
	$(document).ready( function() {

		/*
		 * Detect language and set dictionary
		 */
		var documentLanguage = $('meta[name=Language]').attr('content');
		var searchKeywordInvitation = ["Mot(s) clé(s)...","Keyword(s)..."];

		// Language index
		if (documentLanguage == 'en') {
			var lang = 1;
		} else {
			var lang = 0;
		}

		/*
		 * Reset search cookies
		 */
		function resetCookies() {
			$.cookie('keyword', null);
			$.cookie('metier', null);
			$.cookie('territoire', null);
		}

		/*
		 * Refresh categories markers form
		 */
		function refreshMarkersForm() {
			var cookieMetier = $.cookie('metier');
			if (cookieMetier) {
				$('#xajax_cat input:checkbox').attr('checked', false);
				$('#xajax_cat input:checkbox[value=' + cookieMetier + ']').attr('checked','checked');
			}
		}

		/*
		 * Xajax search for map mode
		 */
		function rgXajaxSearch() {
			if( $.inArray($("#rggm-search-name").val(), searchKeywordInvitation) != -1) {
				$("#rggm-search-name").val('');
			}
			tx_rggooglemap_pi1search(xajax.getFormValues('rggmsearch'));
			refreshMarkersForm();
			if( $("#rggm-search-name").val() == '' ) {
				$("#rggm-search-name").val(searchKeywordInvitation[lang]);
			}
		}

		/*
		 * Default form value processing
		 */

		// Mode map
		if($('#rggmsearch').length) {
			var cookieKeyword = $.cookie('keyword');
			if ( cookieKeyword ) {
				$("#rggm-search-name").val(cookieKeyword);
			}
		}

		// Mode list
		if($('#wtdsearch').length) {
			var cookieKeyword = $.cookie('keyword');
			if ( cookieKeyword ) {
				$("#company").val(cookieKeyword);
			} else  {
				$("#company").val(searchKeywordInvitation[lang]);
			}
		}

		var cookieMetier = $.cookie('metier');
		if ( cookieMetier ) {
			$("#metier").val(cookieMetier);
		}
		var cookieTerritoire = $.cookie('territoire');
		if ( cookieTerritoire ) {
			$("#territoire").val(cookieTerritoire);
		}

		// Autoload search results for map, if cookie defined
		if($('#rggmsearch').length) {
			if ( cookieKeyword || cookieMetier || cookieTerritoire ) {
				rgXajaxSearch();
			}
		}

		// Show crosslinks
		if ( cookieKeyword || cookieMetier || cookieTerritoire ) {
			$('div.crossLinks').show();
		}


		/*
		 * Search form submit processsing
		 */

		// Mode map
		$("#rggmsearch").submit(function() {

			if( $("#rggm-search-name").val() == searchKeywordInvitation[lang] ) {
				$("#rggm-search-name").val('');
			}

			// Get values from the form
			var keyword = $("#rggm-search-name").val();
			var metier = $("#metier").val();
			var territoire = $("#territoire").val();

			// Save to cookie !!!
			$.cookie('keyword', keyword);
			$.cookie('metier', metier);
			$.cookie('territoire', territoire);

			rgXajaxSearch();

			$('div.crossLinks').show();

			return false;
		});

		// Mode list
		$("#wtdsearch").submit(function() {

			if( $.inArray($("#company").val(), searchKeywordInvitation) != -1 ) {
				$("#company").val('');
			}

			// Get values from the form
			var keyword = $("#company").val();
			var metier = $("#metier").val();
			var territoire = $("#territoire").val();

			// Save to cookie !!!
			$.cookie('keyword', keyword);
			$.cookie('metier', metier);
			$.cookie('territoire', territoire);
		});

		/*
		 * Form clear
		*/
		$('a#clearForm').bind('click', function(){
			resetCookies();
			if (lang == 0){
				$('.mots-cles').val("Mot(s) clé(s)...");
				$('.jqTransformSelectWrapper div span').empty();
				$('.jqTransformSelectWrapper:last div span').text("Territoire...");
				$('.jqTransformSelectWrapper:first div span').text("Métier...");
				$('.jqTransformSelectWrapper ul li a').removeAttr("class");
				$('.jqTransformSelectWrapper ul li a:first').addClass("selected");
				$('#metier option:first').attr("selected","selected");
				$('#territoire option:first').attr("selected","selected");
			}else{
				$('.mots-cles').val("Keyword(s)...");
				$('.jqTransformSelectWrapper div span').empty();
				$('.jqTransformSelectWrapper:last div span').text("Territory...");
				$('.jqTransformSelectWrapper:first div span').text("Trade...");
				$('.jqTransformSelectWrapper ul li a').removeAttr("class");
				$('.jqTransformSelectWrapper ul li a:first').addClass("selected");
				$('#metier option:first').attr("selected","selected");
				$('#territoire option:first').attr("selected","selected");
			}
			return false;
		});

		/*
		 * Category search
		 */
		$('#xajax_cat input:checkbox').bind('click', function(){
			// resetCookies();
			map.clearOverlays();
			var xajaxCategories = xajax.getFormValues('xajax_cat');
			tx_rggooglemap_pi1processCat(xajaxCategories);
			clearCat();
		});

	});
})(jQuery);
