// JavaScript Document
function CheckInteger(str,couldBeEmpty,minValue,maxValue)
{
	value = NumericValue(str);
	if (str === "") return couldBeEmpty;
	if (isNaN(value)) return false;
	if ((minValue != -1) && (value < minValue)) return false;
	if ((maxValue != -1) && (value > maxValue)) return false;
	return true;
}
function CheckName(Str,inCouldBeEmpty,withSpace,inMinLength,inMaxLength)
{
	if (Str === "") return inCouldBeEmpty;
	if (Str.length < inMinLength) return false;
	if (Str.length > inMaxLength) return false;
	var regExp = new RegExp("^[0-9A-Z" + ((withSpace) ? " " : "") + "]{" + inMinLength + "," + inMaxLength + "}$");
	return regExp.test(Str.toUpperCase());
}
function CheckExtendName(Str,inCouldBeEmpty,inMinLength,inMaxLength)
{
	if (Str === "") return inCouldBeEmpty;
	if (Str.length < inMinLength) return false;
	if (Str.length > inMaxLength) return false;
	var regExp = new RegExp("^[0-9A-Z&@#$*%=+-_()<> ]{" + inMinLength + "," + inMaxLength + "}$");
	return regExp.test(Str.toUpperCase());
}
function CheckNoSpace(Str,inCouldBeEmpty,inMinLength,inMaxLength)
{
	if (Str === "") return inCouldBeEmpty;
	if (Str.length < inMinLength) return false;
	if (Str.length > inMaxLength) return false;
	var regExp = new RegExp("^[^ ]{" + inMinLength + "," + inMaxLength + "}$");
	return regExp.test(Str.toUpperCase());
}
function CheckString(Str,inCouldBeEmpty,inMinLength,inMaxLength)
{
	if (Str === "") return inCouldBeEmpty;
	if (Str.length < inMinLength) return false;
	if (Str.length > inMaxLength) return false;
	return true;
}
function ConvertPhone(Str)
{
	var indicatifs = [
			[1,7],
			[11,27,20,39,36,34,33,32,31,30,49,48,47,46,45,44,43,41,40,58,57,56,55,54,53,52,51,66,65,64,63,62,61,60,86,84,82,81,98,95,94,93,92,91,90],
			[299,298,297,291,290,269,268,267,266,265,264,263,262,262,261,260,258,257,256,255,254,253,252,251,250,249,248,247,246,245,244,243,242,241,240,239,238,237,236,235,234,233,232,231,230,229,228,227,226,225,224,223,222,221,220,218,216,213,212,389,387,386,385,382,381,380,379,378,377,376,375,374,373,372,371,370,359,358,357,356,355,354,353,352,351,350,423,421,420,599,598,597,596,595,594,593,592,591,590,509,508,507,506,505,504,503,502,501,500,692,691,690,689,688,687,686,685,683,682,681,680,679,678,677,676,675,674,673,672,670,886,881,880,856,855,853,852,850,998,996,995,994,993,992,977,976,975,974,973,972,971,970,968,967,966,965,964,963,962,961,960]
		];
	if (Str === '') return '';
	if (Str.substr(0,1) == '0') Str = '+33' + Str.substr(1);
	if (Str.substr(0,1) != '+') Str = '+' + Str;
	var phone = Str.substr(0,1) + Str.substr(1).replace(/[^0-9]/gi,'');
	var dotPos = 0;
	for (var i = 2; i >= 0; i--) {
		var prefix = Number(phone.substr(1,i + 1));
		var ind = indicatifs[i];
		var indLen = ind.length;
		for (var j = 0; j < indLen; j++) {
			if (prefix == ind[j]) {
				dotPos = i + 2;
				break;
			}
		}
		if (dotPos != 0) break;
	}
	if (dotPos == 0) return '';
	phone = phone.substr(0,dotPos) + '.' + phone.substr(dotPos);
	return phone;
}
function CheckPhone(Str,inCouldBeEmpty,inFixedPhone,inGSMPhone,franceOnly)
{
	if (Str === '') return inCouldBeEmpty;
	var regExp;
	if (franceOnly) regExp = new RegExp(/^\+33\.[1-9][0-9]{8}$/);
	else regExp = new RegExp(/^\+[0-9]{1,3}\.[0-9]{8,}$/);
	Str = ConvertPhone(Str);
	if (Str == '') return false;
	if (!Str.match(regExp)) return false;
	if (!franceOnly) return true;
	var prefix = Number(Str.substr(4,1));
	if ((prefix == 6) || (prefix == 7)) return inGSMPhone;
	if (((prefix >= 1) && (prefix <= 5)) || (prefix == 9)) return inFixedPhone;
	if (prefix == 8) {
		prefix = Number(Str.substr(4,3));
		if ((prefix >= 870) && (prefix <= 879)) return inFixedPhone;
	}
	return false;
}
function PriceValue(Str)
{
	return NumericValue(Str);
}
function ConvertPrice(Str,maxlength)
{
	return ConvertNumeric(Str,maxlength);
}
function NumericValue(Str) {
	var regExp = new RegExp(/^([0-9]{1,3})((\.| )?[0-9]{3})*/gi);
	if (!regExp.test(Str)) return Str;
	var numeric = Str.replace(/[^0-9]/gi,'');
	return Math.floor(numeric);
}
function ConvertNumeric(Str,maxlength)
{
	var regExp = new RegExp(/^([0-9]{1,3})((\.| )?[0-9]{3})*/gi);
	if (!regExp.test(Str)) return Str;
	var numeric = Str.replace(/[^0-9]/gi,'');
	var result = '';
	var strlen = numeric.length;
	var nbdot = Math.ceil(strlen / 3) - 1;
	if (maxlength > 0) {
		while ((strlen + nbdot) > maxlength) {
			strlen--;
			nbdot = Math.ceil(strlen / 3) - 1;
			numeric = numeric.substr(0,strlen);
		}
	}
	var j = 0;
	for (var i = strlen - 1; i >= 0; i--) {
		result = numeric.substr(i,1) + result;
		j++;
		if (((j % 3) == 0) && (i > 0)) result = '.' + result;
	}
	return result;
}
function CheckDigit(Str,inCouldBeEmpty)
{
	if (Str === "") return inCouldBeEmpty;
	var regExp = new RegExp("^[0-9]*$");
	return regExp.test(Str);
}
function CheckZIP(Str,inCouldBeEmpty)
{
	if (Str === "") return inCouldBeEmpty;
	var regExp = new RegExp("^[0-9]{5}$");
	return regExp.test(Str);
}
function CheckFQDN(Str,inCouldBeEmpty)
{
	if (Str === "") return inCouldBeEmpty;
	var regExpDNS = new RegExp("^[0-9a-zA-Z][_0-9a-zA-Z-]*(\\.[0-9a-zA-Z][_0-9a-zA-Z-]*)*$");
	if (!regExpDNS.test(Str)) return false;
	return true;
}
function CheckDate(Str,inCouldBeEmpty)
{
	if (Str === "") return inCouldBeEmpty;
	Str = ConvertDate(Str);
	if (Str == null) return false;
	var regExpDNS = new RegExp("^[0-9]{2}/[0-9]{2}/[0-9]{4}$");
	if (!regExpDNS.test(Str)) return false;
	return true;
}
function CheckFileType(Str,fileTypes)
{
	var dotPos = Str.lastIndexOf(".");
	if (dotPos == -1) return false;
	var fType = Str.substr(dotPos + 1).toLowerCase();
	for (var i = 0; i < fileTypes.length; i++) if (fileTypes[i] == fType) return true;
	return false;
}
function IsFQDN(inHostname)
{
	var Str = inHostname.toUpperCase();
	var regExpDNS = new RegExp("^[0-9a-zA-Z][_0-9a-zA-Z-]*(\\.[0-9a-zA-Z][_0-9a-zA-Z-]*)*$");
	return (regExpDNS.test(Str));
}
function IsHostName(inHostname)
{
	var Str = inHostname.toUpperCase();
	var regExpDNS = new RegExp("^[0-9a-zA-Z][_0-9a-zA-Z-]*$");
	return (regExpDNS.test(Str));
}
function IsBuggyFF()
{
	var index = navigator.userAgent.indexOf("Firefox");
	if (index == -1) return false;
	var vers = parseInt(navigator.userAgent.charAt(index + 8));
	return ((vers == 4) || (vers == 5));
}
function BuggyFFMailRegExp(mail,exp)
{
	var components = mail.split('@');
	var regexpcpt = exp.split('@');
	var regExp;
	if (components.length != 2) return false;
	if (regexpcpt.length != 2) return false;
	regExp = new RegExp(regexpcpt[0] + '$');
	if (!regExp.test(components[0])) return false;
	regExp = new RegExp('^' + regexpcpt[1]);
	if (!regExp.test(components[1])) return false;
	return true;
}
function CheckMail(Str,inCouldBeEmpty)
{
	if (Str == "") return inCouldBeEmpty;
	if (IsBuggyFF()) return BuggyFFMailRegExp(Str,"^([_a-zA-Z0-9]+([\\._a-zA-Z0-9+-]+)*)@([_a-zA-Z0-9-]{1,}(\\.[a-zA-Z0-9-]{2,})*\\.[a-zA-Z]{2,4})$");
	var regExp = new RegExp("^([_a-zA-Z0-9]+([\\._a-zA-Z0-9+-]+)*)@([_a-zA-Z0-9-]{1,}(\\.[a-zA-Z0-9-]{2,})*\\.[a-zA-Z]{2,4})$");
	return regExp.test(Str);
}
function ConvertDate(inputDate)
{
	if (inputDate === "") return null;
	
	var dateComponents = inputDate.split("/");
	
	if (dateComponents.length != 3) {
		dateComponents = inputDate.split("-");
		if (dateComponents.length != 3) {
			dateComponents = inputDate.split(".");
			if (dateComponents.length != 3) return null;
		}
	}
	if ((isNaN(dateComponents[0])) || (isNaN(dateComponents[1])) || (isNaN(dateComponents[2]))) return null;
	if (dateComponents[2].length < 4) {
		if (Math.floor(dateComponents[2]) < 20) dateComponents[2] = 2000 + (Math.floor(dateComponents[2]));
		else dateComponents[2] = 1900 + (Math.floor(dateComponents[2]));
	}
	
	var builtDate = new Date(Math.floor(dateComponents[2]),Math.floor(dateComponents[1]) - 1,Math.floor(dateComponents[0]));
	var annee = builtDate.getYear();
	
	if ((Math.abs(annee) + "").length < 4) annee += 1900;
	if ((builtDate.getDate() != dateComponents[0]) || ((builtDate.getMonth() + 1) != dateComponents[1]) || (annee != dateComponents[2])) return null;
	
	var resultDate = "";
	
	if (builtDate.getDate() < 10) resultDate += "0" + builtDate.getDate();
	else resultDate += builtDate.getDate();
	resultDate += "/";
	if (builtDate.getMonth() < 9) resultDate += "0" + Math.floor(builtDate.getMonth() + 1);
	else resultDate += Math.floor(builtDate.getMonth() + 1);
	resultDate += "/";
	resultDate += Math.floor(annee);
	return resultDate;
}
function CompareDate(inDate1,inDate2)
{
	var date1Components = inDate1.split("/");
	var date2Components = inDate2.split("/");
	var numDate1 = 0;
	var numDate2 = 0;
	
	numDate1 = Math.floor(date1Components[2]) * 10000;
	numDate1 += Math.floor(date1Components[1]) * 100;
	numDate1 += Math.floor(date1Components[0]) * 1;
	numDate2 = Math.floor(date2Components[2]) * 10000;
	numDate2 += Math.floor(date2Components[1]) * 100;
	numDate2 += Math.floor(date2Components[0]) * 1;
	if (numDate1 == numDate2) return 0;
	else if (numDate1 < numDate2) return -1;
	else return 1;
}
function IsToday(inputDate)
{
	var currentDate = new Date();
	var annee = currentDate.getYear();
	var todayDate = "";

	if ((Math.abs(annee) + "").length < 4) annee += 1900;
	if (currentDate.getDate() < 10) todayDate += "0" + currentDate.getDate();
	else todayDate += currentDate.getDate();
	todayDate += "/";
	if (currentDate.getMonth() < 9) todayDate += "0" + Math.floor(currentDate.getMonth() + 1);
	else todayDate += Math.floor(currentDate.getMonth() + 1);
	todayDate += "/";
	todayDate += Math.floor(annee);
	return (CompareDate(todayDate,inputDate) == 0);
}
function IsFutureDate(inputDate)
{
	var currentDate = new Date();
	var annee = currentDate.getYear();
	var todayDate = "";

	if ((Math.abs(annee) + "").length < 4) annee += 1900;
	if (currentDate.getDate() < 10) todayDate += "0" + currentDate.getDate();
	else todayDate += currentDate.getDate();
	todayDate += "/";
	if (currentDate.getMonth() < 9) todayDate += "0" + Math.floor(currentDate.getMonth() + 1);
	else todayDate += Math.floor(currentDate.getMonth() + 1);
	todayDate += "/";
	todayDate += Math.floor(annee);
	return (CompareDate(todayDate,inputDate) < 0);
}
function IsLongFutureDate(inputDate)
{
	var currentDate = new Date();
	var annee = currentDate.getYear();
	var todayDate = "";

	if ((Math.abs(annee) + "").length < 4) annee += 1900;
	annee++;
	if (currentDate.getDate() < 10) todayDate += "0" + currentDate.getDate();
	else todayDate += currentDate.getDate();
	todayDate += "/";
	if (currentDate.getMonth() < 9) todayDate += "0" + Math.floor(currentDate.getMonth() + 1);
	else todayDate += Math.floor(currentDate.getMonth() + 1);
	todayDate += "/";
	todayDate += Math.floor(annee);
	return (CompareDate(todayDate,inputDate) < 0);
}
function ShowHide(obj,visible)
{
	if (visible) $(obj).removeClassName('masque');
	else $(obj).addClassName('masque');
}
function EnableDisableRadio(rdoGroup,enabled)
{
	var objCount = rdoGroup.length;
	for (var i = 0; i < objCount; i++) rdoGroup[i].disabled = !enabled;
}
function EnableDisableCheckbox(checkGroup,enabled)
{
	var objCount = checkGroup.length;
	if (isNaN(objCount)) checkGroup.disabled = !enabled;
	else for (var i = 0; i < objCount; i++) checkGroup[i].disabled = !enabled;
}
function EnableDisable(obj,enabled)
{
	obj.disabled = !enabled;
}
function ComputeValue(inValue)
{
	outValue = '';
	if (inValue.indexOf(',') < 0) outValue = inValue;
	else {
		var values = inValue.split(',');
		values.sort();
		outValue = values.join(',');
	}
	return outValue;
}
function setSelectValue(selectObj,inValue)
{
	if (selectObj.type == 'select-one') {
		var ItemFound = 0;
		var objCount = selectObj.length;
		inValue = ComputeValue("" + inValue);
		for (var Item = 0; Item < objCount; Item++) {
			if (ComputeValue(selectObj[Item].value) == inValue) {
				ItemFound = Item;
				break;
			}
			else if ((inValue == "") && (selectObj[Item].value.substring(0,3) == "...")) {
				ItemFound = Item;
				break;
			}
		}
		selectObj.selectedIndex = ItemFound;
	}
	else {
		var objCount = selectObj.length;
		var values = inValue.split(',');
		var txtField = $('TXT_' + selectObj.id);
		for (var i = 0; i < objCount; i++) {
			var obj = $('MS_' + selectObj.id + '_' + i);
			if (obj != null) obj.checked = false;
			selectObj[i].selected = false;
		}
		if (txtField != null) txtField.value = '';
		for (var i = 0; i < objCount; i++) {
			var obj = $('MS_' + selectObj.id + '_' + i);
			for (var j = 0; j < values.length; j++) {
				if (values[j] == selectObj[i].value) {
					if (obj != null) obj.checked = true;
					if (txtField != null) {
						if (txtField.value != '') txtField.value += ',';
						txtField.value += selectObj[i].text;
					}
					selectObj[i].selected = true;
					break;
				}
			}
		}
	}
}
function getSelectValue(selectObj)
{
	var values = '';
	if (selectObj.type == 'select-one') {
		var selection = selectObj.selectedIndex;
		if (selection != -1) values = (selectObj[selection].value.substring(0,3) == "...") ? "" : ComputeValue(selectObj[selection].value);
	}
	else {
		var selection = Array();
		for (var i = 0; i < selectObj.length; i++) if (selectObj[i].selected) selection[selection.length] = selectObj[i].value;
		if (selection.length > 1) selection.sort();
		for (var i = 0; i < selection.length; i++) {
			if (values != '') values += ',';
			values += selection[i];
		}
	}
	return values;
}
function setRadioValue(rdoGroup,inValue)
{
	var objCount = rdoGroup.length;
	inValue = ComputeValue("" + inValue);
	for (var i = 0; i < objCount; i++) rdoGroup[i].checked = (ComputeValue(rdoGroup[i].value) == inValue);
}
function getRadioValue(rdoGroup)
{
	var objCount = rdoGroup.length;
	for (var i = 0; i < objCount; i++) if (rdoGroup[i].checked) return ComputeValue(rdoGroup[i].value);
	return "";
}
function setCheckValue(checkGroup,inValue)
{
	var objCount = checkGroup.length;
	if (isNaN(objCount)) {
		checkGroup.checked = (checkGroup.value == inValue);
	}
	else {
		var values = inValue.split(',');
		var valCount = values.length;
		for (var j = 0; j < objCount; j++) checkGroup[j].checked = false;
		for (var i = 0; i < valCount; i++) {
			for (var j = 0; j < objCount; j++) {
				if (checkGroup[j].value == values[i]) {
					checkGroup[j].checked = true;
					break;
				}
			}
		}
	}
}
function getCheckValue(checkGroup)
{
	var objCount = checkGroup.length;
	var value = '';
	if (isNaN(objCount)) {
		if (checkGroup.checked) value += checkGroup.value;
	}
	else {
		for (var i = 0; i < objCount; i++) {
			if (checkGroup[i].checked) {
				if (value != '') value += ',';
				value += checkGroup[i].value;
			}
		}
	}
	return value;
}
function resetChildNodes(element)
{
	var child = (element == null) ? null : element.childNodes;
	if (element != null) while (element.hasChildNodes()) element.removeChild(child.item(0));
}
function InArray(value,array)
{
	var arrayLen = array.length;
	for (var i = 0; i < arrayLen; i++) if (value == array[i]) return true;
	return false;
}
function MultiSelectShow(obj)
{
	obj.removeClassName('masque');
	try {
		if (window.select_fix_show != null) select_fix_show(obj);
	}
	catch(e) {
	}
	return true;
}
function MultiSelectHide(obj)
{
	try {
		if (window.select_fix_hide != null) select_fix_hide(obj);
	}
	catch(e) {
	}
	obj.addClassName('masque');
	return true;
}
function MultiSelectToggle(obj)
{
	if (obj.hasClassName('masque')) MultiSelectShow(obj);
	else MultiSelectHide(obj);
	return true;
}
function MultiSelectBeforeSubmit()
{
	var multiselectvisible = false;
	$$('div.multiselect').each(function(obj){
		if (!obj.hasClassName('masque')) {
			MultiSelectHide(obj);
			multiselectvisible = true;
		}
	});
	return multiselectvisible;
}
function InitMultiSelect()
{
	document.onkeypress = function(event) {
		if (event == null) event = window.event;
		if (event.keyCode == 13) if (MultiSelectBeforeSubmit(event)) Event.stop(event);
		return true; 
	};
	$$('select[multiple="multiple"]').each(function(obj) {
		var id = obj.id;
		var parent = $(obj.parentNode);
		var titleObj = parent.select('label').first();
		var mainDivClass = 'normal';
		obj.addClassName('masque');
		if (titleObj.hasClassName('xxxxnarrow')) mainDivClass = 'xxxxnarrow';
		else if (titleObj.hasClassName('xxxnarrow')) mainDivClass = 'xxxnarrow';
		else if (titleObj.hasClassName('xxnarrow')) mainDivClass = 'xxnarrow';
		else if (titleObj.hasClassName('xnarrow')) mainDivClass = 'xnarrow';
		else if (titleObj.hasClassName('narrow')) mainDivClass = 'narrow';
		else if (titleObj.hasClassName('large')) mainDivClass = 'large';
		else if (titleObj.hasClassName('xlarge')) mainDivClass = 'xlarge';
		else if (titleObj.hasClassName('xxlarge')) mainDivClass = 'xxlarge';
		else if (titleObj.hasClassName('xxxlarge')) mainDivClass = 'xxxlarge';
		else if (titleObj.hasClassName('xxxxlarge')) mainDivClass = 'xxxxlarge';
    // <input type="text" readonly="readonly" id="TXT_id" name="TXT_id" class="multiselect ignoredocclick" value="" />
		var text = new Element('input',{id: 'TXT_' + id, name: 'TXT_' + id, type:'text', readonly:'readonly', 'class': 'multiselect ignoredocclick' });
		text.onclick = function() { this.focus(); return MultiSelectToggle($('MS_' + this.id.substr(4))); };
		text.onfocus = function() { this.blur(); return false;};
		if (mainDivClass == 'xxxxnarrow') text.addClassName('narrow');
		parent.appendChild(text);
		//	Cree l'image associee (DP_id)
		//	<img src="/styles/images/empty.gif" alt="" id="DP_CH_Situation" class="multiselect ignoredocclick" />
		var img = new Element('img',{id: 'DP_' + id, src:'/styles/images/empty.gif', alt:'', 'class': 'multiselect ignoredocclick' });
		img.onclick = function() { this.focus(); return MultiSelectToggle($('MS_' + this.id.substr(3))); };
		parent.appendChild(img);
		//	Cree le div d'affichage (MS_id)
		//	<div id="MS_id" class="masque multiselect hideondocclick">
		var mainDiv = new Element('div',{id:'MS_' + obj.id, 'class':'masque multiselect hideondocclick'});
		parent.insert({after:mainDiv});
		//	Cree le div de contenu
		//	<div class="multiselectpopup normal">
		if (obj.length > 20) mainDivClass += ' heightlimited';
		var div = new Element('div',{'class':'multiselectpopup ' + mainDivClass});
		mainDiv.appendChild(div);
		//	Cree la liste ul - li - input checkbox (MS_id_index) - label
		var ul = new Element('ul');
		div.appendChild(ul);
		//	Cree les elements de la liste
		//	<li><input type="checkbox" name="MS_id" id="MS_id_X" value="xxxx" [class="reset"]/><label for="MS_id_X">xxxx</label></li>
		for (var i = 0; i < obj.length; i++) {
			var optionReset = $(obj[i]).hasClassName('reset');
			var li = new Element('li');
			li.onmouseover = function() { this.addClassName('highlight'); return true;};
			li.onmouseout = function() { this.removeClassName('highlight'); return true;};
			li.onclick = function(event) {
				if (event == null) event = window.event;
				var target = (event.target) ? event.target : event.srcElement;
				var input = $(this).select('input').first();
				if ((input == null) || (input == "undefined")) return false;
				if (target.tagName == 'LI') input.checked = !input.checked;
				if (input.onclick == null) return true;
				input.onclick();
				return true;
			};
			ul.appendChild(li);
			var checkbox = new Element('input',{type:'checkbox' ,name:'MS_' + obj.id, id:'MS_' + obj.id + '_' + i, value:obj[i].text});
			if (optionReset) {
				checkbox.addClassName('reset');
				checkbox.onclick = function(event) {
					var thisbox = $(this);
					var idcomponents = thisbox.id.split('_');
					var index = parseInt(idcomponents[idcomponents.length - 1]);
					var basename = thisbox.name.substr(3);
					var selectObj = $(basename);
					var txtField = $('TXT_' + basename);
					var optionDiv = $('Opt_' + basename);
					if (thisbox.checked) {
						thisbox.parentNode.parentNode.select('input').each(function(obj) { obj.checked = false; });
						for (var i = 0; i < selectObj.length; i++) selectObj[i].selected = false;
						thisbox.checked = true;
						selectObj[index].selected = true;
						txtField.value = thisbox.value;
						if (optionDiv != null) ShowHide(optionDiv,false);
					}
				};
			}
			else {
				checkbox.onclick = function(event) {
					var thisbox = $(this);
					var idcomponents = thisbox.id.split('_');
					var index = parseInt(idcomponents[idcomponents.length - 1]);
					var basename = thisbox.name.substr(3);
					var selectObj = $(basename);
					var txtField = $('TXT_' + basename);
					var optionDiv = $('Opt_' + basename);
					selectObj[index].selected = this.checked;
					thisbox.parentNode.parentNode.select('input.reset').each(function(obj) {
						var iditems = obj.id.split('_');
						var resetIndex = parseInt(iditems[iditems.length - 1]);
						var selectOption = $(obj.name.substr(3))[resetIndex];
						obj.checked = false;
						selectOption.selected = false;
					});
					if (optionDiv != null) ShowHide(optionDiv,true);
					if (txtField != null) {
						txtField.value = '';
						for (var i = 0; i < selectObj.length; i++) {
							if (selectObj[i].selected) {
								if (txtField.value != '') txtField.value += ',';
								txtField.value += selectObj[i].text;
							}
						}
					}
				};
			}
			li.appendChild(checkbox);
			var label = new Element('label',{ 'for':'MS_' + obj.id + '_' + i }).update(obj[i].text);
			li.appendChild(label);
		}
		var appendDiv = new Element('div',{'class' : 'txtRight stdMargin'});
		div.appendChild(appendDiv);
		var a = new Element('a', { 'class': 'grey medium', href: '#' }).update("Fermer");			
		a.onclick = function() { MultiSelectBeforeSubmit(); return false; };
		appendDiv.appendChild(a);
	});
}
function InitHelp(form)
{
	var types = ['input','select'];
	var items;
	var itemCount;
	for (var t = 0; t < types.length; t++) {
		items = form.select(types[t]);
		itemCount = (items == null) ? 0 : items.length;
		for (var i = 0; i < itemCount; i++) {
			if (($('Help_' + items[i].name) != null) && ($('MK_' + items[i].name) != null)) $('MK_' + items[i].name).onmouseover = function() { $('assistante').innerHTML = $('Help_' + this.id.substr(3)).innerHTML; };
		}
	}
}
function ResetErrors()
{
	var errframed = $$('.errframed');
	var errframedCount = (errframed == null) ? 0 : errframed.length;
	for (var i = 0; i < errframedCount; i++) {
		errframed[i].title = '';
		errframed[i].removeClassName('errframed');
	}
	var errors = $('errors');
	if (errors == null) alert("No errors div");
	if (errors != null) {
		errors.style.display = 'none';
		errors.innerHTML = '';
	}
	return true;
}
function SignalError(fieldName,errorMsg)
{
	var	errFieldName = 'MK_' + ((SignalError.arguments.length <= 2) ? fieldName : SignalError.arguments[2]);
	var obj = $(errFieldName);
	if (obj != null) {
		obj.title = errorMsg;
		obj.addClassName('errframed');
	}
	var errors = $('errors');
	if ((errors != null) && (errorMsg != '')) {
		var htmlCode = errors.innerHTML;
		if (htmlCode == '') {
			errors.style.display = 'block';
			htmlCode = '<img src="/styles/images/alert.png" align="left" /><strong>Veuillez corriger les erreurs suivantes :</strong><br />';
		}
		htmlCode += '<br />' + errorMsg;
		errors.innerHTML = htmlCode;
	}
	return 1;
}

