var nbLignes;
var ElmtCol, ElmtColInfos, ElmtTypeInfos, ElmtColType, ElmtColNull, ElmtColMaxNumber, ElmtNewEnum, ElmtColEnum, ElmtAddLine, ElmtDeleteLine, ElmtNbLine;

function disableButton(buttonId) {
	buttonId.disabled = true;
	buttonId.style.color = "#AAAAAA";
}

function enableButton(buttonId) {
	buttonId.disabled = false;
	buttonId.style.color = "#FFFFFF";
}

function ajouterEnum(line) {
	ElmtNewEnum = document.getElementById("new_enum[" + line + "]");
	ElmtColEnum = document.getElementById("col_enum[" + line + "][]");

	// On vérifie que les valeurs soient non vide et inexistantes
	if(ElmtNewEnum.value == '')
		return;

	for(i = 0; i < ElmtColEnum.options.length; i++) {
		if(ElmtColEnum.options[i].value == ElmtNewEnum.value) {
			alert('La valeur "' + ElmtNewEnum.value + '" est déjà présente dans l\'énumération');
			return;
		}
	}

	ElmtColEnum.options[ElmtColEnum.options.length] = new Option(ElmtNewEnum.value, ElmtNewEnum.value);
	ElmtNewEnum.value = '';
}

function ajouterLigne() {
	if(nbLignes < MAX_LINES) {
		document.getElementById("col" + nbLignes).style.display = "block";
		nbLignes++;

		ElmtNbLine.value = nbLignes;

		enableButton(ElmtDeleteLine);
		if(nbLignes == MAX_LINES) disableButton(ElmtAddLine);
	}
}

function supprimerEnum(line) {
	ElmtNewEnum = document.getElementById("new_enum[" + line + "]");
	ElmtColEnum = document.getElementById("col_enum[" + line + "][]");

	var resteEncore = false;
	for(i = 0; i < ElmtColEnum.options.length; i++) {
		if(ElmtColEnum.options[i].selected) {
			ElmtColEnum.options[i] = null;
			resteEncore = true;
		}
	}

	if(resteEncore) supprimerEnum(line);
}

function supprimerLigne() {
	if(nbLignes > 1) {
		document.getElementById("col" + (nbLignes - 1)).style.display = "none";
		nbLignes--;

		ElmtNbLine.value = nbLignes;

		enableButton(ElmtAddLine);
		if(nbLignes == 1) disableButton(ElmtDeleteLine);
	}
}

function updateColType(line) {
	var type = document.getElementById("col_type[" + line + "]").value;
	if(type != "0") {
		document.getElementById("colinfos" + line).style.display = "inline";
		showTypeInfos(line, type);
	}
	else
		document.getElementById("colinfos" + line).style.display = "none";
}

function updateColConstraint(line) {
	// Clé primaire, on décoche le null
	if(document.getElementById("col_constraint[" + line + "]").value == 1) {
		ElmtColNull = document.getElementById("col_null[" + line + "]");
		ElmtColNull.checked = false;
	}
}

function updateColSigned(line) {
	if(document.getElementById("col_signed[" + line + "]").value != 1)
		document.getElementById("auto_increment" + line).style.display = "inline";
	else
		document.getElementById("auto_increment" + line).style.display = "none";
}

function updateColSize(line) {
	var txt = "";
	var txt2 = "";

	// Partie gauche du chiffre
	if(document.getElementById("col_size[" + line + "]").value > 0) {
		if(document.getElementById("col_max_type[" + line + "]").value == "min_value") {
			txt += "1";
	
			for(i = 1; i < Math.min(document.getElementById("col_size[" + line + "]").value, MAX_NUMBER_SIZE); i++)
				txt += "0";
		} else {
			for(i = 0; i < Math.min(document.getElementById("col_size[" + line + "]").value, MAX_NUMBER_SIZE); i++)
				txt += "9";
		}
	}

	// Partie suivant la virgule
	if(document.getElementById("col_size_comma[" + line + "]").value > 0) {
		if(document.getElementById("col_max_type[" + line + "]").value == "min_value") {
			for(i = 0; i < Math.min(document.getElementById("col_size_comma[" + line + "]").value - 1, MAX_NUMBER_SIZE); i++)
				txt2 += "0";

			txt2 += "1";
		} else {
			for(i = 0; i < Math.min(document.getElementById("col_size_comma[" + line + "]").value, MAX_NUMBER_SIZE); i++)
				txt2 += "9";
		}
	}
	
	document.getElementById("col_max_number[" + line + "]").value = txt;
	document.getElementById("col_max_number_comma[" + line + "]").value = txt2;
}

function updateColMaxNumber(line) {
	var max_number = parseInt(document.getElementById("col_max_number[" + line + "]").value);
	var max_number_comma = rtrim(document.getElementById("col_max_number_comma[" + line + "]").value, '0');

	document.getElementById("col_size[" + line + "]").value = (max_number > 0) ? max_number.toString().length : 0;	
	document.getElementById("col_size_comma[" + line + "]").value = (max_number_comma > 0) ? max_number_comma.length : 0;	
}

function showTypeInfos(line, type) {
	var i = 1;
	while(document.getElementById("typeinfos" + line + i) != undefined) {
		if(i == type)
			document.getElementById("typeinfos" + line + i).style.display = "inline";
		else
			document.getElementById("typeinfos" + line + i).style.display = "none";

		i++;
	}
}

function submitForm() {
	for(i = 0; i < MAX_LINES; i++) {
		ElmtColType = document.getElementById("col_type[" + i + "]");

		// Gerer les enumerations
		if(ElmtColType.value == 3) {
			ElmtColEnum = document.getElementById("col_enum[" + i + "][]");
			for(j = 0; j < ElmtColEnum.options.length; j++) {
				ElmtColEnum.options[j].selected = true;
			}
		}
	}
	return false;
}

$(document).ready(function() {
	// Si on est bien dans la page outils
	if(document.getElementById("add_line"))
	{
		ElmtAddLine = document.getElementById("add_line");
		ElmtDeleteLine = document.getElementById("delete_line");
		ElmtNbLine = document.getElementById("nb_line");
	
		nbLignes = parseInt(ElmtNbLine.value);
	
		for(i = 0; i < MAX_LINES; i++) {
			ElmtCol = document.getElementById("col" + i);
			ElmtColType = document.getElementById("col_type[" + i + "]");
			ElmtColInfos = document.getElementById("colinfos" + i);
	
			if(i < nbLignes)
				ElmtCol.style.display = "inline";
	
			ElmtTypeInfos = document.getElementById("typeinfos" + i + ElmtColType.value);
			if(ElmtColType.value == "0")
				ElmtColInfos.style.display = "none";
			else
				ElmtTypeInfos.style.display = "inline";

			if(ElmtColType.value == 1 && document.getElementById("col_signed[" + i + "]").value != 1)
				document.getElementById("auto_increment" + i).style.display = "inline";
		}
	
		if(nbLignes == 1)
			disableButton(ElmtDeleteLine);
		else if(nbLignes == MAX_LINES)
			disableButton(ElmtAddLine);
	}
});

