function verifActions(actions) {

	var str = $("#nation option:selected").attr("value");
	var optgroup = $("#nation option:selected").parents("optgroup").attr("label");
	
	if(settings['gender'] == 'male') {
		$("#GenderF").removeAttr("checked");
		$("#GenderM").attr("checked", "checked");
	} else {
		$("#GenderM").removeAttr("checked");
		$("#GenderF").attr("checked", "checked");
	}
	
	if(settings['complex'] != 1) {
		$("#complex").removeAttr("checked");
	} 
	
	if(optgroup == "Spécial") {
		$("#GenderM").fadeOut(1000);
		$("label[for='GenderM']").fadeOut(1000);
		$("#GenderF").fadeOut(1000);
		$("label[for='GenderF']").fadeOut(1000);
		$("#complex").fadeOut(1000);
	} else {
	
		if(actions[str].sm == 1) {
			$("#GenderM").removeAttr("disabled");
			if($("#GenderM").css('display') == "none") {
				$("#GenderM").fadeIn(1000);
				$("label[for='GenderM']").fadeIn(1000);
			}
		} else {
			$("#GenderM").attr("disabled", "disabled");
			if($("#GenderM").css('display') != "none") {
				$("#GenderM").fadeOut(1000);
				$("label[for='GenderM']").fadeOut(1000);
			}
		}	
		
		if(actions[str].sf == 1) {
			$("#GenderF").removeAttr("disabled");
			if($("#GenderF").css('display') == "none") {
				$("#GenderF").fadeIn(1000);
				$("label[for='GenderF']").fadeIn(1000);
			}
		} else {
			$("#GenderF").attr("disabled", "disabled");
			if($("#GenderF").css('display') != "none") {
				$("#GenderF").fadeOut(1000);
				$("label[for='GenderF']").fadeOut(1000);
			}
		}	

		if(actions[str].cm == 1) {
			$("#complex").removeAttr("disabled");
			if($("#complex").css('display') == "none") $("#complex").fadeIn(1000);
		} else {
			$("#complex").attr("disabled", "disabled");
			if($("#complex").css('display') != "none") $("#complex").fadeOut(1000);
		}
	} 
}

function escapeQuotes(str) {
	str = str.replace(/\"/g, "\\\"");
	str = str.replace(/\'/g, "\\\'");
	alert(str);
	
	return str;
}

function saveSelectionAjax(name, root, callback) {
	
	var url = root + "names/saveSelectionAjax";
	var obj = { selectedName: name };
	$.post(url, obj, function(data) {
		$("#selection").empty();
		$("#selection").append('<h3>Sélection de noms</h3>');
		$("#selection").append('<img src="' + root + 'app/webroot/img/design_beige/clear_selection.png" id="clearSelection" alt="Vider la sélection" title="Vider la sélection" />');
		$("#selection").append('<a href="' + root + 'names/downloadSelection"><img src="' + root + 'app/webroot/img/design_beige/save.png" alt="Sauvegarder" title="Télécharger la sélection dans un fichier" style="border: none;"/></a>');
		displayList("selection", eval(data));
		callback(data);
		
	});
}

function clearSelectionAjax(root, callback) {
	var url = root + "names/clearSelection";
	$.post(url, function(data) {;
		callback(data);
		$("#selection").html('<h3>Sélection de noms</h3>');
		$("#selection").append('<p>Votre sélection de noms est vide.</p>');
	});
}

function genereAjax(root, display, callback) {
	
	$("#results_content").empty(); // On vide la div de résultats
	var msg = "<div style=\"text-align: center;\"><img src=\"" + root + "img/ajax-loader.gif\" alt=\"Chargement\" />";
	msg += "<p>Génération des noms en cours...</p></div>";
	$("#results_content").append(msg);
	var url = root + "names/generateAjax";
	$.post(url, $("#options_form").serialize(), 
	function(data) {
		$("#results_content").empty();
		displayPub("results_content");
		switch(display) {
			case "table":
			displayTable("results_content", data.names);	
			break;
			case "list":
			displayList("results_content", data.names);
			break;
			case "textarea":
			displayTextarea("results_content", data.names);
			break;
		}
		$('#results_content').append('<p class="lien_en_dur"><a href="' + root + data.nationInfos.url + '">Lien direct vers la nation "' + data.nationInfos.nation + '"</a></p>');
		callback(data);
	}, "json");
	
}

function displayTable(div, data) {
	var nbCols = 3;
	var table = "<table>";
	var rows = 0;
	for (i=0; i < data.length; i++) {
					
		if(i%nbCols == 0) {
			if(rows%2 == 0) {
				table += "<tr class=\"darker\">";
			} else {
				table += "<tr>";
			}
			rows++;
		}
		
		table += "<td class='result' id='" + data[i] + "'>" + data[i] + "</td>";
		
		if((i%nbCols) == nbCols-1) {
			table += "</tr>";
		}
			
	}
	table += "</table>";
	$("#"+div).append(table);
}

function displayList(div, data) {
	$("#"+div).append("<ul></ul>");
	for (i=0; i < data.length; i++) {
		$("#"+div+" ul").append("<li id='select_"+ i + "'>" + data[i] + "<img src=\"" + root + "app/webroot/img/exit.png\" alt=\"suppr\" class=\"suppr_selection\" /></li>");			
	}
}

function displayTextarea(div, data) {
	$("#"+div).append("<textarea rows='"+ (data.length -1) +"' style='width: 300px; margin: auto; font-size:small;'></textarea>");
	for (i=0; i < data.length; i++) {
		if(i != data.length -1) {
			$("#"+div+" textarea").append(data[i] + "\n");		
		} else {
			$("#"+div+" textarea").append(data[i]);
		}
	}
}

function outOfSelection(id, $td) {
	var url = root + "names/outOfSelection";
	var obj = { name: id };
	$.post(url, obj, function(data) {
		$td.removeAttr("class");
		$td.attr("class", "result");
		$("#selection").html('<h3>Sélection de noms</h3>');
		$("#selection").append('<img src="' + root + 'app/webroot/img/design_beige/clear_selection.png" id="clearSelection" alt="Vider la sélection" title="Vider la sélection" />');
		$("#selection").append('<a href="' + root + 'names/downloadSelection"><img src="' + root + 'app/webroot/img/design_beige/save.png" alt="Sauvegarder" title="Télécharger la sélection dans un fichier" style="border: none;"/></a>');
		displayList("selection", eval(data));
	}, "json");
}

$(document).ready(function() {

	if(newVisitor == false) {
		window.location.href = window.location.href + "#generateur";
	}
	
	partenairesInit();
	$(".alertJavascript").remove();
	$("#results_content .info").remove();
	$("#GenderM").removeAttr("disabled");
	
	$("#nation").change(function() {
		verifActions(actions);
	}).change();
	
	$("#GenderM").click(function() {
		if(actions[str].cm == 1) {
			$("#complex").removeAttr("disabled");
			if($("#complex").css('opacity') < 1) $("#complex").fadeIn(1000);
		} else {
			$("#complex").attr("disabled", "disabled");
			if($("#complex").css('opacity') == 1) $("#complex").fadeOut(1000);
		}	
	})
	
	$("#GenderF").click(function() {
		if(actions[str].cf == 1) {
			$("#complex").removeAttr("disabled");
			if($("#complex").css('opacity') < 1) $("#complex").fadeIn(1000);
		} else {
			$("#complex").attr("disabled", "disabled");
			if($("#complex").css('opacity') == 1) $("#complex").fadeOut(1000);
		}
	})
	
	$("#generate_button").click( function() {
		if(newVisitor == false) {
			/*nbGenerations++;
			if(nbGenerations < 11) {
				genereAjax(root, "table", function(data) {
					names = data;
				});
				return false;
			}*/
		}
	});
	
	$("#mode_table").click( function() {
		if(names != null) displayTable("results_content",names);
		return false;
	});


	$("#mode_list").click( function() {
		if(names != null) displayList("results_content",names);
		return false;
	});

	$("#mode_textarea").click( function() {
		if(names != null) displayTextarea("results_content",names);
		return false;
	});

	$(".result").livequery("click", function(e) {
		$selected = $(this);
		$("#name_options").css("top", e.pageY - 40 + "px");
		$("#name_options").css("left", e.pageX - 40 + "px");
		$("#name_options").fadeIn("slow");
	});
	
	// Edtion du nom cliqué
	$("#edit_name").livequery("click", function() {
		$("#name_options").fadeOut("normal");
		var value = $selected.text();
		var width = ($selected.css("width").slice(0, -2)) -30 + "px";
		$selected.empty();
		$selected.removeAttr("class");
		$selected.append("<input class='selected' type='text' name='truc' style='font-size: small; width:" + width + "; margin: 0px;' />");
		$selected.children(".selected").attr("value", value);
		$(".selected").focus();
	});
	
	// On quitte le petit menu d'édition
	$("#exit_menu").livequery("click", function() {
		$("#name_options").fadeOut("normal");
		$selected = null;	
	});
	
	// Ajoute un nom au panier
	$("#add_name").livequery("click", function() {
		$("#name_options").fadeOut("normal");
		saveSelectionAjax($selected.text(), root, function(data) {
			//alert("Le nom a été sauvergardé dans votre sélection");
			if($selected.parent().attr("class") == "darker") {
				$selected.attr("class", "added_darker");
			} else {
				$selected.attr("class", "added");
			}
		});
	});
	
	// Déselectionne l'input d'édition
	$(".selected").livequery("blur", function() {
		var inputValue = $(this).attr("value");
		var $td = $(this).parent();
		$td.empty();
		$td.append(inputValue);
		$td.attr("class", "result");
	});
	
	$(".added, .added_darker").livequery("click", function() {
		var $td = $(this);
		var id = $(this).text();
		outOfSelection(id, $td);
	});
	
	$(".suppr_selection").livequery("click", function() {
		var id = $(this).parent().text();
		var $td = $("#" + id);
		outOfSelection(id, $td);
	});

	$("#clearSelection").livequery("click", function() {
		clearSelectionAjax(root, function(data) {
			$(".added, .added_darker").removeAttr("class");
		});
	});
});
