application.display.template = {

	table_drawTable: function(columnList) {
		var result = "<table cellspacing='0' cellpadding='0'>";
		
		//data
		for (var i=0; i<application.result.rowList.length; i++) {
			var classValue = (application.result.rowList[i].isEdited) ? " class='rowModified'" : "";
			result += "<tr" + classValue + ">" + application.display.template.table_drawColumnsValue(i,columnList) + "</tr>";
		}
		
		result += "</table>";
		return result;
	},
	
	table_drawTableLabels: function(columnList) {
		var result = "<table cellspacing='0' cellpadding='0' >";
		var groupList = []; 
		for (var i=0; i<columnList.length; i++) {
			var column = application.display.table.columnList[columnList[i]];
			if (column) {
				result += "<th id=\""+ column.id +"\"><div style='width:" + column.width + "px' title=\""+ column.infoBulle +"\""+
						"onMouseOver='application.display.showHelpImage(" + columnList[i] + ")' " +
						"onMouseOut='application.display.hideHelpImage()'" +
						"onClick='application.display.aideHelpPage(" + columnList[i] + ")'" +
						">" + column.label + "</div></th>";
			}
		}
		result += "</table>";
		return result;
	},
	
	table_drawColumnsValue: function(rank, columnList) {
		var row = application.getRow(rank);
		var result = "";
		for (var i=0; i<columnList.length; i++) {
			var value = "";
			var column = application.display.table.columnList[columnList[i]];
			if (column) {
				if (column.attributeName == 'state') {
					value = row.getValue('state');
					var originValue = row.getValue('importSourceType');
					var titleVal = "";
					if (originValue == 'HARVEST_OAIPMH')
						titleVal = " title='Donn&eacute;e provenant d\'une moisson'";
					
					result += "<td onClick='application.display.showStateChooser("
						+ rank 
						+ ")' id='value_"
						+ columnList[i] + "_" + rank
						+ "'>"
						+ "<div class='cell stateCell' style='width:" + column.width + "px'" + titleVal + ">"
						+ "<div class='value'>"
						+ application.display.template.widget_drawStateValue(value,originValue)
						+ "</div>"
						+ "</div>"
						+ "</td>"; 
				} else {
					var toEval = "application.result.rowList[rank].data." + column.attributeName
					if (column.attributeName == 'groupAttribute')
						toEval = "application.result.rowList[rank]." + column.groupAttributeFunction + "()";
					
					var attributeObj = eval(toEval);
					
					var widget = new application.Widget(column.widget, columnList[i]);
					value = widget.getSmallValue(rank);
			
					if (column.isNotEditable || !row.isEditable) {
						result += "<td";
					} else {
						result += "<td onMouseOver='application.display.showShowBoxOpener(" 
							+ columnList[i] + "," + rank 
							+ ")' onMouseOut='application.display.hideShowBoxOpener(" 
							+ columnList[i] + "," + rank 
							+ ")'"; 
					}
					result += " id='value_"
						+ columnList[i] + "_" + rank
						+ "'";
					
					if ((column.isNotEditable 
						|| !row.isEditable)
						&& (column.widget == "SimpleText"
						|| column.widget == "MultiLineText")) {
						result += " title='" + value.replace("'","\'") + "'";
					}
					
					result += ">";
		
		
					var classValue = "value";
					if (attributeObj.isDefaultValue)
						classValue = "value_default";
		
					result += "<div class='cell " + column.attributeName + "' style='width:" + column.width + "px'>"
						+ "<div class='" + classValue + "'>" 
						+ value
						+ "</div>";
						
					if (!column.isNotEditable && row.isEditable) {
						result += "<div class='showBoxOpener' id='showBoxOpener_" 
							+ columnList[i] + "_" + rank 
							+ "' onClick='application.display.openShowBox("
							+ columnList[i] + "," + rank
							+ ")'>&nbsp;</div>"
					}
					result += "</div>"
						+ "</td>";
				}
			}
		}
		return result;
	},
	
	table_drawToolsLabel: function() {
		var result = "<table cellspacing='0' cellpadding='0'>"
			+ "<th id='th_check' " +
					"title=\"Les ressources coch&eacute;es sont s&eacute;lectionn&eacute;es pour effectuer un traitement par lot : menu 'Action' ci-dessus\"" +
					"><input type='checkBox' onChange='application.result.switchAllSelect(this)' ></th>"
			+ "<th id='th_Action'><div title=\"Actions de l'adh&eacute;rent sur les m&eacute;tadonn&eacute;es\"" +
					">Actions</div></th>"
			+ "</table>" ;
		
		return result;
	},
	
	table_drawToolsTable: function() {
		var result = "<table cellspacing='0' cellpadding='0'>";
		
		for (var i=0; i<application.result.rowList.length; i++) {
			var classValue = (application.result.rowList[i].isEdited) ? " class='rowModified'" : "";
			result += "<tr" + classValue + "><td>";
			result += "<input type='checkBox' id='tableCheck_" + i +"' onChange='application.result.switchSelect(this,\"" + i + "\")'>";
			
			result += "</td><td class='actionList'>" 
				+ application.display.template.table_makeRankAction(i) 
				+ "</td></tr>";
		}
		
		result += "</table>";
		
		return result;		
	},
	
	table_makeRankAction: function(rank) {
		var result = "<select id='individualActions_" + rank + "'>";
		
		var row = application.getRow(rank);
			
		for (var i=0; i<application.action.individualActions.length; i++) {
			var disableText = "";
			
			if (!row.isEditable && !application.action.individualActions[i].isShowWhenNotEditable)
				disableText = " disabled='disabled'";
			if (row.data.id.length == 0 && !application.action.individualActions[i].isShowWhenIsNew)
				disableText = " disabled='disabled'";
			
			result += "<option" + disableText + ">"
				+ application.action.individualActions[i].name
				+ "</option>";
		}
		
		result += "</select>";
		return result;
	},
	
	table_drawColumnManagerLine: function(label, checked) {
		var result = "<input type='checkBox'";
		if (checked == "true")
			result += " checked='checked'";
		result += "><span>" + label + "</span>";
			
		return result;
	},

	pager_drawPage: function(pageNumber, isCurrent) {
		var result = "<div";
		
		if (isCurrent) {
			result += " class='current'"
		} else {
			result += "><a href='javascript:application.search.goToPage(" + pageNumber + ")'";
		}
		
		result += ">" + pageNumber;
		
		if (!isCurrent)
			result += "</a>";
		
		result += "</div>";
		return result;
	},

	zapette_drawFilteredGroups: function(groups) {
		result = "";
		if (groups.length > 0) {
			result = "<div class='zapetteFilteredTitle'>Vos affinages</div>"
				+ "<div class='zapetteFilteredContent'>";
				
			for (var i=0; i<groups.length; i++) {
				result += application.display.template.zapette_drawFilteredGroup(groups[i]);
			}
			
			result += "</div>";
		};
		return result;
	},

	zapette_drawFilteredGroup: function(group) {
		if (group.categories) {
			var title = group.title.substr(group.title.lastIndexOf('.')+1);

			var displayTitle = title;
			for (var i=0; i<application.display.zappetteLabels.length; i++) {
				if (application.display.zappetteLabels[i].key == title) {
					displayTitle = application.display.zappetteLabels[i].label;
					break;
				}
			}

			var result = "<div class='zapetteItemGroup'>" + displayTitle + "</div>";
			
			var category = group.categories[0];
			var parentCategory = [];
			while (category.categories && category.categories.length > 0 && category.categories[0].resetHref) {
				parentCategory.push(category.display);
				category = category.categories[0];
			}
			
			var parentLabel = "";
			
			for (var i=0; i<parentCategory.length; i++) {
				var current = parentCategory[i];
				//test if it's a place;
				if ("Place" == title) {
					var currentPlaceLabel = application.getPlaceLabel(current.replace(/-/g,'/'));
					if (currentPlaceLabel != '') {
						current = currentPlaceLabel;
					}
				}
				parentLabel += current + " - ";
			}
			
			var label = category.display;
			if (!label)
				label = category.names;
			
			//test if it's a place;
			if ("Place" == title) {
				var placeLabel = application.getPlaceLabel(label.replace(/-/g,'/'))
				if (placeLabel != '') {
					label = placeLabel;
				}
			}
			
			result += "<div class='zapetteItem'><div class='zapetteItemDel' onClick='application.search.refineSearch(\""
				+ group.resetHref
				+ "\")'>&nbsp;</div>" + parentLabel + label + "</div>";
			
			return result;
		} else
			return "";
		
	},
	
	zapette_drawNormalGroup: function(group) {
		var title = group.title.replace('answergroup.', '');
	
		var isPlace = (title == "Place");
		
		var isAdhName = (title == "AdhName");
		
		if (isAdhName && application.isAdmin || !isAdhName) {
			var displayTitle = title;
			var info="";
			for (var i=0; i<application.display.zappetteLabels.length; i++) {
				if (application.display.zappetteLabels[i].key == title) {
					displayTitle = application.display.zappetteLabels[i].label;
					info = application.display.zappetteLabels[i].infobulle;
					break;
				}
			}
	
			var result = "<h3><a href='#' title=\""+info+"\">" + displayTitle + "</a></h3><div>";
			
			if (group.categories) {
				result += application.display.template.zapette_drawCategories(group.categories, isPlace, '')
			}
			
			result += "</div>";
			
			return result;
		} else
			return "";
		
	},
	
	zapette_drawCategories: function(categories, isPlace, placeFather) {
		var result = "<ul>";
		
		for (var i=0; i<categories.length; i++) {
			var category = categories[i];
			var display = category.display;
			if (!display)
				display = category.names;
			
			var newPlaceFather = placeFather;
			
			if (isPlace) {
				display = placeFather + display;
				newPlaceFather = display + "/";
				display = application.getPlaceLabel(display);
			}
			
			var refineHref = category.refineHref;
			if (refineHref.indexOf("/") > -1) {
				refineHref = refineHref.substr(refineHref.lastIndexOf('/')+1);
			}
			
			if (!display)
				display = 'non défini';
			
			//result += "<li><a href='javascript:application.search.refineSearch(\""+ refineHref + "\")'>"+ display + "</a>&nbsp;<span>(" + category.count + ")</li>";
			result += "<li><a href=\"javascript:;\"  onclick=\"application.search.refineSearch(\'"+ refineHref + "\');\">"+ display + "</a>(" + category.count + ")</li>";
			
			if (category.categories) {
				result += application.display.template.zapette_drawCategories(category.categories, isPlace, newPlaceFather);
			}
		}
		
		result += "</ul>";
		
		return result;
	},
	
	testUrl_drawResult: function (nb) {
		var result = "<div>"
			+ "<span>Test effectu&eacute;. " + nb + " lien(s) testé(s)</span>"
			+ "</div>";
		
		return result;
	},
	
	widget_drawStateValue: function(stateValue, originValue) {
		var result = "<div class='";
		if (stateValue == -1)
			result += "brouillon";
		else if (stateValue == 0)
			result += "masque";
		else if (stateValue == 1)
			result += "publie";
		
		if (originValue == "HARVEST_OAIPMH") {
			if (stateValue == -1)
				result += " brouillonHarvest";
			else if (stateValue == 0)
				result += " masqueHarvest";
			else if (stateValue == 1)
				result += " publieHarvest";
		}
		
		result += "'>&nbsp;</div>";
		
		return result;
	},
	
	widget_drawValideValue: function(isValide) {
		var className = (isValide == "1") ? "isUrlValid" : "isNotUrlValid";
	
		var result = "<div class='" + className + "'>&nbsp;</div>";
		
		return result;
	},
	
	widget_drawImageValue: function(thumbUrl) {
		var result = "<div class='thumbTable'><img width='20' height='20' src='" + thumbUrl + "'></div>";
		
		return result;
	},
	
	widget_drawTextView: function(value) {
		var valueToDisplay = (value) ? value : "&nbsp;";
		var result = "<span>" + valueToDisplay + "</span>";
		
		return result;
	},
	
	widget_drawMultiValueView: function(values) {
		var result = "<ul>";
		if (values && values != "&nbsp;") {
			for (var i=0; i<values.length; i++) {
				result += "<li>" + values[i] + "</li>";
			}
		}
		result += "</ul>";
		
		return result;
	},
	
	display_drawStateView: function(rowId) {
	
		var row = application.result.rowList[rowId];
		var stateValue = row.getValue('state');
		var importValue = row.getValue('importSourceType');
		
		var result = "<div class='brouillon";
		if (stateValue == -1)
			result += " actualState";
		if (importValue == 'HARVEST_OAIPMH')
			result += " brouillonHarvest"
		result += "' onClick='application.result.changeState(" + rowId + ",-1)'>&nbsp;</div><div class='masque";
		if (stateValue == 0)
			result += " actualState";
		if (importValue == 'HARVEST_OAIPMH')
			result += " masqueHarvest"
		result += "' onClick='application.result.changeState(" + rowId + ",0)'>&nbsp;</div><div class='publie";
		if (stateValue == 1)
			result += " actualState";
		if (importValue == 'HARVEST_OAIPMH')
			result += " publieHarvest"
		result += "' onClick='application.result.changeState(" + rowId + ",1)'>&nbsp;</div>";
		
		return result;
	},
	
	widget_drawDateView: function(date) {
		
		
		var dateValue = date.value;
		if(dateValue!=""){
		var month = (dateValue.getMonth()+1);
		if (month < 10) month = "0" + month;
		var displayDate = dateValue.getDate() + "/" + month + "/" + dateValue.getFullYear();
		var result = "<span>" + displayDate + "</span><span>(" + date.lexiqueKey + ")</span>";
		return result;}
		else return "";
	},
	
	widget_drawContactView: function(contact) {
		var result = "<span>" + contact.value + "</span><span>(" + contact.viewValue + ")</span>";
		return result;
	},
	
	widget_drawImageView: function(thumbUrl) {
		var result = "<div class='thumbView'><img src='" + thumbUrl + "'></div>";
		
		return result;
	},
	
	widget_drawSimpleTextEditor: function(value) {
		var result = "<textarea rows='3' cols='50' id='editorValue'>";
		if (value && value != "&nbsp;")
			result += value;
		result += "</textarea>";
		
		return result;
	},
	
	widget_drawMultiValuedSimpleTextEditor: function(values) {
		var result = "<div class='multipleTextEditor'>";
		if (!values || values == "&nbsp;" || values.length == 0) {
			result += application.display.template.widget_drawMultiValuedSimpleTextEditorRank(0,"");
		} else {
			for (var i=0; i<values.length; i++) {
				result += application.display.template.widget_drawMultiValuedSimpleTextEditorRank(i,values[i])
			}
			
		}
		result += "</div>"
			+ "<div onClick='application.display.addTextValueInEditor()' class='addRow'>Ajouter</div>";
		return result;
	},
	
	
	widget_drawMultiValuedSimpleTextEditorRank: function(rank, value) {
		var result = "<div class='textContainer'>"
					+ "<input type='text' id='editorValue_" + rank + "' value=\""
					+ value
					+ "\">"
					+ "</div>"
					+ "<div onClick='application.display.removeTextValueInEditor(\"" + rank + "\")' class='removeRow'>&nbsp;</div>";
		
		return result;
	},
	
	widget_drawMultiLineTextEditor: function(value) {
		var result = "<textarea rows='20' cols='50' id='editorValue'>";
		if (value && value != "&nbsp;")
			result += value;
		result += "</textarea>";
		
		return result;
	},
	
	widget_drawLexiqueEditor: function(values, lexiqueValues) {
		var result = "";
		if (lexiqueValues) {
			for (var i=0; i<lexiqueValues.length; i++) {
				result += "<input type='checkbox' value='" + lexiqueValues[i].key + "'";
				for (var v=0;v<values.length; v++) {
					if (values[v] == lexiqueValues[i].value) {
						result += " checked='checked'";
						break;
					}
				}
				result += " id='editorValue_" + i + "'>" + lexiqueValues[i].value + "</br>";
			}
		}
		return result;
	},
	
	widget_drawExclusiveLexiqueEditor: function(value, lexiqueValues) {
		var result = "";
		if (lexiqueValues) {
			result += "<select id='editorValue'>"
			for (var i=0; i<lexiqueValues.length; i++) {
				result += "<option value='"+ lexiqueValues[i].key + "'";
				if (value == lexiqueValues[i].key)
					result += " selected";
				result += ">" + lexiqueValues[i].value + "</option>";
			}
			result += "</select>";
		}
		return result;
	},
	
	widget_drawDateEditor: function(date,typeValues) {
		var result = "<div id='dateEditor'></div>"
			+ "<div><select id='dateTypeEditor'>";
		for (var i=0; i<typeValues.length; i++) {
			result += "<option value='" + typeValues[i].key + "'";
			if (date.lexiqueKey == typeValues[i].key)
				result += " selected";
			result += ">" + typeValues[i].value + "</option>";
		}
		result += "</select></div>";
		return result;
	},
	
	widget_drawContactEditor: function(contact,lexiqueValues) {
		var result = "<p>"
			+ "<input type='text' size='50' id='editorValue' value=\"" + contact.value + "\">"
			+ "<br>"
			+ "<select id='editorType'>";
		for (var i=0; i<lexiqueValues.length; i++) {
			result += "<option value='" + lexiqueValues[i].key + "'";
			if (contact.lexiqueKey == lexiqueValues[i].key)
				result += " selected";
			result += ">" + lexiqueValues[i].value + "</option>";
		}
		result += "</select>"
			+ "</p>";
		
		return result;
	},
	
	widget_drawPlaceTreeEditor: function(values, placeTree) {
		var result = "<div id='treeEditor'><ul>";
		
		result+= application.display.template.widget_drawPlaceTreeEditorTemplate(values, placeTree);
		
		return result;
	},
	
	widget_drawPlaceTreeEditorTemplate: function(values, placeTree) {
		var result = "";
		if (!values) {
			values = [];
		}
		
		//sans objet
		result += "<li id='no_geog' place='Sans objet'";
			for (var t=0; t<values.length; t++) {
				if (values[t] == "no_geog") {
					result += " class='jstree-checked'";
					break;
				}
			}
		result += "><a>Sans objet</a></li>";
		
		for (var place in placeTree) {
			var placeLabel = application.getPlaceLabel(place);
			result += "<li";
			for (var t=0; t<values.length; t++) {
				if (values[t] == place) {
					result += " class='jstree-checked'";
					break;
				}
			}
			result += " id='" + place + "' place=\"" + placeLabel + "\"><a>" + placeLabel + "</a>";
			
			result += "<ul>";
			for (var ssPlace in placeTree[place]) {
				var ssPlaceLabel =  application.getPlaceLabel(place + '/' + ssPlace);
				result += "<li";
				for (var t=0; t<values.length; t++) {
					if (values[t] == place + "/" + ssPlace) {
						result += " class='jstree-checked'";
						break;
					}
				}
				result += " id='" + place + "/" + ssPlace + "' place=\""+ssPlaceLabel+"\"><a>" + ssPlaceLabel + "</a>";
				
				result += "<ul>";
				for (var i=0; i<placeTree[place][ssPlace].length; i++) {
					result += "<li";
					
					var sssPlace = placeTree[place][ssPlace][i];
					var sssPlaceLabel = application.getPlaceLabel(place + '/' + ssPlace + "/" + sssPlace);
					
					var totalPath = place + "/" + ssPlace + "/" + sssPlace;
					for (var t=0; t<values.length; t++) {
						if (values[t] == totalPath) {
							result += " class='jstree-checked'";
							break;
						}
					}
					
					result += " id='" + totalPath + "' place=\"" + sssPlaceLabel + "\" ";
					
					result += "><a>" + sssPlaceLabel + "</a></li>";
				}
				result += "</ul>"
					+ "</li>";
			}
			result += "</ul>"
				+"</li>";
		}
		
		result += "</ul></div>";
		
		return result;
	},
	
	widget_drawThemeTreeEditor: function(values, themeTree) {
		var result = "<div id='treeEditor'><ul>";
		
		result+= application.display.template.widget_drawThemeTreeEditorTemplate(values, themeTree);
		
		return result;
	},
	
	widget_drawThemeTreeEditorTemplate: function(values, themeTree) {
		var result = "";
		
		for (var theme in themeTree) {
			var themeLabel = application.getThemeLabel(theme);
			result += "<li ";

			for (var t=0; t<values.length; t++) {
				if (values[t] == themeLabel) {
					result += " class='jstree-checked'";
					break;
				}
			}
			
			result +="id='" + theme + "' theme=\"" + themeLabel + "\" compare='" + themeLabel + "' search=\"" + theme.charAt(0).toUpperCase() + theme.substring(1).toLowerCase() + "\"><a>" + themeLabel + "</a>";
			
			result += "<ul>";
			for (var ssTheme in themeTree[theme]) {
				var ssThemeLabel =  application.getThemeLabel(theme+"."+ssTheme);
				result += "<li ";
				
				var interPath = themeLabel + "/" + ssThemeLabel
				for (var t=0; t<values.length; t++) {
					if (values[t] == interPath) {
						result += " class='jstree-checked'";
						break;
					}
				}
				result +="id='" + theme + "." + ssThemeLabel + "' theme=\"" + ssThemeLabel + "\" compare='" + interPath + "' search=\"" + theme.charAt(0).toUpperCase() + theme.substring(1).toLowerCase() + "/" + ssThemeLabel + "\"><a>" + ssThemeLabel + "</a>";
				
				result += "<ul>";
				for (var i=0; i<themeTree[theme][ssTheme].length; i++) {
					result += "<li";
					
					var sssTheme = themeTree[theme][ssTheme][i];
					var sssThemeLabel = application.getThemeLabel(theme+"."+ssTheme+"."+sssTheme);
					
					var totalPath = themeLabel + "/" + ssThemeLabel + "/" + sssThemeLabel;
					for (var t=0; t<values.length; t++) {
						if (values[t] == totalPath) {
							result += " class='jstree-checked'";
							break;
						}
					}
					
					result += " id='" + theme+"."+ssTheme+"."+sssTheme + "' theme=\"" + sssThemeLabel + "\" compare='" + totalPath + "' search='" + theme.charAt(0).toUpperCase() + theme.substring(1).toLowerCase() + "/" + ssThemeLabel + "/" + sssThemeLabel+"'";
					
					result += "><a>" + sssThemeLabel + "</a></li>";
				}
				result += "</ul>"
					+ "</li>";
			}
			result += "</ul>"
				+"</li>";
		}
		
		result += "</ul></div>";
		
		return result;
	},
	
	widget_drawImageEditor: function(metaId) {
		var result = "<form action='" + application.baseUrl + "/updatePreview.do' target='valideIFrame' id='thumbForm' method='POST' enctype='multipart/form-data' name='UpdateImageBean'>"
			+ "<input type='hidden' name='id' value='" + metaId + "'>"
			+ "<input type='file' name='imageFile' size='60px'>"
			+ "</form>";
		return result;
	},
	
	widget_drawCommuneEditor: function(comName, comCode, columnId, rowId) {
		var value = (comName && comName.length > 0) ? comName + " - " + comCode: "";
		var result = "<div id='communeEditor'>"
			+ "<table border='0' cellspacing='0' cellpadding='0'>"
			+ "<tr>"
			+ "<td colspan='2' class='communeStep'>"
			+ "1. Merci de saisir la commune recherch&eacute;e :"
			+ "</td>"
			+ "</tr>"
			+ "<tr id='communeSearchLine'>"
			+ "<td><input type='text' id='communeSearch'></td>"
			+ "<td><div class='bouton' onClick='application.searchCommune()'>Chercher</div></td>"
			+ "</tr>"
			+ "<tr>"
			+ "<tr>"
			+ "<td colspan='2' class='communeStep'>"
			+ "2. S&eacute;lectionner une commune :"
			+ "</td>"
			+ "</tr>"
			+ "<td colspan='2'>"
			+ "<select id='communeChoice' onChange='application.display.showSelectedCommune(" + columnId + ","  + rowId + ")'></select>"
			+ "</td>"
			+ "</tr>"
			+ "<tr>"
			+ "<td colspan='2' class='communeStep'>"
			+ "3. Commune choisie :"
			+ "</td>"
			+ "</tr>"
			+ "<tr>"
			+ "<td colspan='2' id='communeSelected'>"
			+ value
			+ "</td>"
			+ "</tr>"
			+ "</table>" 
			+ "</div>";
			
		return result;
	},
	
	display_makeForm: function() {
		var result = "";
		
		for (var i=0; i<application.display.table.columnList.length; i++) {
			var column = application.display.table.columnList[i];
			if (column.isInForm) {
				var widget = new application.Widget(column.widget, i);
				
				var value = widget.getSmallValue(-1);

				if (!value) value = "";
				var classeName = "value";
				if(column.hasDefaultValue==true){
					//test if it's the default value
					var row = application.getRow(-1);
					
					if (column.attributeName != 'groupAttribute') {
						if (row.isDefaultValue(column.attributeName)) 
							classeName += " value_italic";
					} else {
						if (column.id == 'TabAuteur') {
							if (row.isDefaultValue("owner"))
								classeName += " value_italic";
							else if (row.isDefaultValue("originator"))
								classeName += " value_italic";
							else if (row.isDefaultValue("publisher"))
								classeName += " value_italic";
							else if (row.isDefaultValue("contributor"))
								classeName += " value_italic";
							else if (row.isDefaultValue("contact"))
								classeName += " value_italic";
							else if (row.isDefaultValue("pointOfContact"))
								classeName += " value_italic";
						}
					}
					
				}
				
				var toAppend = "";
				
				if (column.id == 'TabTitre' || column.id == 'TabTitrealter' || column.id == 'TabDroits') {
					toAppend = '<tr><td class="FisrtColonneForm">' + column.label + '</td>'
					+ '<td class="valueTd">'
					+ '<input type="text" id="value_'+i+'_-1" class="'+classeName+'" value="" onKeyUp="application.display.table.updateFormValue(this,' + i + ')">'
					+ '</td>'
					+ '</tr>';
				} else {
					toAppend = "<tr><td class='FisrtColonneForm'>" + column.label + "</td>"
						+ "<td class='valueTd'><div id='value_"+i+"_-1' class='"+classeName+"'>"
						+ value
						+ "<div class='showBoxOpener' id='showBoxOpener_"+i+"_-1'"
						+ " onClick='application.display.openShowBox(" + i + ",-1)'>&nbsp;</div>"
						+ "</div>"
						+ "<div class='help' title=\"" + column.infoBulle + "\"" 
						+ " onClick='application.display.aideHelpPage(" + i + ")'"
						+ ">&nbsp;</div>"
						+ "</div>"
						+ "</td></tr>";
				}
				
				if (toAppend != "") {
					$('#formTable').append(toAppend);
					if (column.id == 'TabTitre' || column.id == 'TabTitrealter' || column.id == 'TabDroits') {
						$("#value_"+i+"_-1").val(value);
					}
				}
			}
		}
		
	},
	
	display_makeDefaultValuesForm: function() {
		var result = "";
		
		for (var i=0; i<application.display.table.columnList.length; i++) {
			var column = application.display.table.columnList[i];
			if (column.hasDefaultValue) {
				var widget = new application.Widget(column.widget, i);
				
				var value = widget.getSmallValue(-2);
				
				result += "<tr><td class='FisrtColonneForm'>" + column.label + "</td>"
					+ "<td class='valueTd'><div onMouseOver='application.display.showShowBoxOpener(" + i + ",-2)'"
					+ " onMouseOut='application.display.hideShowBoxOpener(" + i + ",-2)'"
					+ " id='value_"+i+"_-2' class='value'>"
					+ value
					+ "<div class='showBoxOpener' id='showBoxOpener_"+i+"_-2'"
					+ " onClick='application.display.openShowBox(" + i + ",-2)'>&nbsp;</div>"
					+ "</div>"
					+ "<div class='help'  title=\"" + application.display.table.columnList[i].infoBulle + "\""
					+ " onClick='application.display.aideHelpPage(" + i + ")'"
					+ ">&nbsp;</div>"
					+ "</div>"
					+ "</td></tr>";
			}
		}
		
		return result;
	},
	
	display_makeMapping: function() {
		var result = "";
		
		for (var i=0; i<application.mapping.mappingEntries.length; i++) {
			var keyword = application.mapping.mappingEntries[i].keyword;
			var theme = application.mapping.mappingEntries[i].theme;

			result += application.display.template.display_makeMappingLine(i,keyword,theme);
		}
				
		return result;
	},
	
	display_makeMappingLine: function(rank, keyword, theme) {
		var result = "<tr>"
				//+ "<td class='FisrtColonneForm'><input type='text' id='mapping_kw_" + rank + "' size='30' value=\"" + keyword + "\" onKeyUp='application.mapping.setMappingKey(" + rank + ")' onFocus='application.display.hideDialogs()'></td>"
				//+ "<td><input type='text' id='mapping_th_" + rank + "' size='30' value=\"" + theme + "\" onKeyUp='application.display.openMappingHelp(" + rank + ")' onFocus='application.display.hideDialogs()'></td>"
				+ "<td class='FisrtColonneForm'><input type='text' id='mapping_kw_" + rank + "' size='30' value=\"" + keyword + "\" onKeyUp='application.mapping.setMappingKey(" + rank + ")' onFocus='application.display.hideMappingHelp()'></td>"
				+ "<td><input type='text' id='mapping_th_" + rank + "' size='30' value=\"" + theme + "\" onKeyUp='application.display.openMappingHelp(" + rank + ")' onFocus='application.display.hideMappingHelp()'></td>"
				+ "<td onClick='application.mapping.deleteEntry("+ rank + ")'><div class='removeRow'>&nbsp;</div></td>"
				+ "</tr>";
				
		return result;
	},
	
	display_makeMappingHelp: function(themeList, mappingEntryRank) {
		var result = "";
		
		if (themeList.length == 0)
			result += "Aucun th&egrave;me correspondant.";
		else {
			for (var i=0;i<themeList.length; i++) {
				var themeLabel = themeList[i];
				
				if (themeLabel.indexOf("/") != themeLabel.lastIndexOf("/")) {
					themeLabel = themeLabel.substr(themeLabel.indexOf("/")+1);
				}
				 
				result += "<span onClick=\"application.mapping.setMappingValue('" + themeList[i].replace("'","\\'") + "'," + mappingEntryRank + ")\" >"
					+ themeLabel
					+ "</span>";
				if (i<themeList.length-1)
					result += "<br>";
			}
		}
		
		return result;
	},
	
	display_makeCriteriaList: function() {
		var result = "<table border='0' cellpadding='0' cellspacing='0' class='criteriaListTable'>";
		
		for (var i_critere=0; i_critere<application.search.criteriaList.length; i_critere++) {
			var trClass = (i_critere == 0) ? " class='firstRow'" : "";
			result += "<tr" + trClass + ">";
			
			result += "<td class='linkTd'>";
			if (i_critere>0) {
				result += "<select id='criteriaLink_" + i_critere + "'>";
				var selected = (application.search.criteriaList[i_critere].linkOperator == 'AND') ? " selected" : "";
				result += "<option" + selected + " value='AND'>ET</option>";
				selected = (application.search.criteriaList[i_critere].linkOperator == 'OR') ? " selected" : "";
				result += "<option" + selected + " value='OR'>OU</option>";
				result += "</select>";
			} else
				result += "&nbsp;";
			
			result += "</td>"
				+ "<td class='labelTd'>"
				+ application.search.criteriaList[i_critere].column.label
				+ "</td>"
				+ "<td class='operatorTd'>"
				+ "<select id='criteriaOperator_" + i_critere + "'>";
				
			var operatorList = application.search.criteriaList[i_critere].getOperatorList();
			var boucle=0;
			while(boucle<operatorList.length) {
				if(operatorList[boucle]!=undefined){
				var selected = (operatorList[boucle].operator == application.search.criteriaList[i_critere].selectedOperator) ? " selected" : "";
				result += "<option" + selected + " value='" + operatorList[boucle].operator + "'>" + operatorList[boucle].label + "</option>";
				}
				boucle++;
			}
			result += "</select>"
				+ "</td>"
				+ "<td class='valueTd'>";
				
			if (application.search.criteriaList[i_critere].column.lexiqueName) {
				var lexiqueValues = application.getLexique(application.search.criteriaList[i_critere].column.lexiqueName);
				result += "<select id='criteriaValues_" + i_critere + "'>";
				result += "<option value=''>Choisir une valeur</option>"
				for (var l=0; l<lexiqueValues.length; l++) {
					result += "<option value='" + lexiqueValues[l].key + "'";
					if (application.search.criteriaList[i_critere].searchValue == lexiqueValues[l].key)
						result += " selected";
					result += ">" + lexiqueValues[l].value + "</option>";
				}
				result += "</select>";
				
			}
			else{
			
				if(application.search.criteriaList[i_critere].column.attributeName=="geographie" || application.search.criteriaList[i_critere].column.attributeName=="themes"){
					
					if(application.search.criteriaList[i_critere].column.attributeName=="geographie"){
					result += "<input type='text' id='criteriaValue_" + i_critere 
					+ "' onClick='application.display.template.searchCriteriaGeoValue("+i_critere+")' value=\"";
					
					}
					
					if(application.search.criteriaList[i_critere].column.attributeName=="themes"){
						result += "<input type='text' id='criteriaValue_" + i_critere 
						+ "' onClick ='application.display.template.searchCriteriaThemeValue("+i_critere+")'' value=\"";
					}
					
						if(application.search.criteriaList[i_critere].viewValue!=undefined){
							result += application.search.criteriaList[i_critere].viewValue;
						}
					
					
					
					result += "\"></input>";
					result += "<div class='TreeBox' id='TreeBox"+ i_critere+"' style='display: none'>";
					result += "<div class='TreeBoxContent' id='TreeBoxContent"+ i_critere+"' >&nbsp;</div></div>";
					
				}
			else {
				result += "<input type='text' id='criteriaValue_" + i_critere 
					+ "' onKeyUp='application.search.setCriteriaValue("+i_critere+")' value=\""
					+ application.search.criteriaList[i_critere].searchValue
					+ "\"></input>";
			}
			}
			
			
			var libelle = application.search.criteriaList[i_critere].column.id;
			result += "<div class='help' title=\"" + application.search.criteriaList[i_critere].column.infoBulle + "\" onClick ='application.display.aideHelpPageDiv("+libelle+")'>&nbsp;</div>";
			result += "</td>";
			
			result += "<td class='removeTd'><div class='bouton' onClick='application.search.removeCriteria(" + i_critere + ")'>&nbsp;</div></td>";
			
			result += "</tr>";
		}
		
		result += "</table>";
		return result;
	},
	
	searchCriteriaGeoValue: function(iCritereTree) {
		
		if($("#treeEditorCriteria" + iCritereTree).is(':visible')){
			$("#treeEditorCriteria" + iCritereTree).hide();
		}
		else{
		
		var result="";
		
		var placeTree = application.getPlaceTree();
		var values =[];
		var value = application.search.criteriaList[iCritereTree].searchValue;
		values.push(value);
		result += "<div class='treeEditorCriteria' id='treeEditorCriteria" + iCritereTree + "'><ul>";

		result+= application.display.template.widget_drawPlaceTreeEditorTemplate(values, placeTree);
		
		$("#TreeBoxContent"+iCritereTree).html(result);
		$("#TreeBox"+iCritereTree).show();
		$("#treeEditorCriteria" + iCritereTree).jstree({"plugins" : ["html_data","ui","checkbox"]})
		.bind("check_node.jstree", function (event, data) {
			$("#criteriaValue_" + iCritereTree).val(data.rslt.obj.attr("place"));
			application.search.criteriaList[iCritereTree].searchValue = data.rslt.obj.attr("id");
			application.search.criteriaList[iCritereTree].viewValue = data.rslt.obj.attr("place");
			$("#TreeBox"+iCritereTree).hide();
	        
	        });
		}
		
	},
	
	
	searchCriteriaThemeValue: function(iCritereTree) {
		
		if($("#treeEditorCriteria" + iCritereTree).is(':visible')){
			$("#treeEditorCriteria" + iCritereTree).hide();
		}
		else{
		var result="";
		
		var themeTree = application.getThemeTree();
		var values =[];
		var value = application.search.criteriaList[iCritereTree].compareValue;
		values.push(value);
		result += "<div class='treeEditorCriteria' id='treeEditorCriteria" + iCritereTree + "'><ul>";

		result+= application.display.template.widget_drawThemeTreeEditorTemplate(values, themeTree);
		
		$("#TreeBoxContent"+iCritereTree).html(result);
		$("#TreeBox"+iCritereTree).show();
		$("#treeEditorCriteria" + iCritereTree).jstree({"plugins" : ["html_data","ui","checkbox"]})
		.bind("check_node.jstree", function (event, data) {
			$("#criteriaValue_" + iCritereTree).val(data.rslt.obj.attr("theme"));
			application.search.criteriaList[iCritereTree].searchValue = data.rslt.obj.attr("search");
			application.search.criteriaList[iCritereTree].viewValue = data.rslt.obj.attr("theme");
			application.search.criteriaList[iCritereTree].compareValue = data.rslt.obj.attr("compare");
			$("#TreeBox"+iCritereTree).hide();
	        
	        });
		}
	},
	
	display_makeHarvestTable: function(type) {
		var list = [];
		if (type == "OAIPMH")
			list = application.harvest.list.OAIPMH;
		else
			list = application.harvest.list.CSW;
			
		var result = "<table border='0' cellspacing='0' cellpadding='0'>"
			+ "<tr>"
			+ "<th>Nom</th>"
			+ "<th>Url</th>"
			+ "<th>Utilisateur</th>"
			+ "<th>Mot de passe</th>"
			+ "<th>Fr&eacute;quence</th>"
			+ "<th>Actions</th>"
			+ "</tr>";
		
		for (var i=0; i<list.length; i++) {
			var hp = list[i];
			
			result += "<tr>"
				+ "<td><input type='text' size='20' value=\"" + hp.name + "\" id='" + type + "_name_" + i + "'></td>"
				+ "<td><input type='text' size='20' value=\"" + hp.url + "\" id='" + type + "_url_" + i + "'></td>"
				+ "<td><input type='text' size='20' value=\"" + hp.login + "\" id='" + type + "_login_" + i + "'></td>"
				+ "<td><input type='text' size='20' value=\"" + hp.pwd + "\" id='" + type + "_pwd_" + i + "'></td>"
				+ "<td>" + application.display.template._display_makeHarvestFrequency(hp.frequency,i,type) + "</td>"
				+ "<td class='actionContainer'>"
				+ "<div onClick='application.harvest.update(\"" + i + "\",\"" + type + "\")' class='updateHarvest' title='Mettre &agrave; jour'>&nbsp;</div>"
				+ "<div onClick='application.harvest.launch(\"" + hp.id + "\")' class='launchHarvest' title='Lancer'>&nbsp;</div>"
				+ "<div onClick='application.harvest.deleteHarvest(\"" + hp.id + "\")' class='deleteHarvest' title='Supprimer'>&nbsp;</div>"
				+ "<input type='hidden' value=\"" + hp.id + "\" id='" + type + "_id_" + i + "'>"
				+ "</td>"
				+ "</tr>";
			
		}
		
		result += "</table>"
			+ "<div onClick='application.display.addNewHarvest(\"" + type + "\")' class='addHarvest'>Ajouter</div>";
		
		return result;
	},
	
	_display_makeHarvestFrequency: function(selectedFreq, rank, type) {
		var result = "<select id='" + type + "_frequency_" + rank + "'>";
		
		for (var i=0; i<application.harvest.frequencyList.length; i++) {
			var selectVal = (selectedFreq == application.harvest.frequencyList[i].value) ? " selected" : "";
			
			result += "<option value='" + application.harvest.frequencyList[i].value + "'" + selectVal + ">"
				+ application.harvest.frequencyList[i].label
				+ "</option>";
		}
		
		result += "</select>";
		
		return result;
	}
};
