/*
 * Date Format 1.2.3
 * (c) 2007-2009 Steven Levithan <stevenlevithan.com>
 * MIT license
 *
 * Includes enhancements by Scott Trenda <scott.trenda.net>
 * and Kris Kowal <cixar.com/~kris.kowal/>
 *
 * Accepts a date, a mask, or a date and a mask.
 * Returns a formatted version of the given date.
 * The date defaults to the current date/time.
 * The mask defaults to dateFormat.masks.default.
 */
var dateFormat = function () {
	var	token = /d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g,
		timezone = /\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,
		timezoneClip = /[^-+\dA-Z]/g,
		pad = function (val, len) {
			val = String(val);
			len = len || 2;
			while (val.length < len) val = "0" + val;
			return val;
		};

	// Regexes and supporting functions are cached through closure
	return function (date, mask, utc) {
		var dF = dateFormat;

		// You can't provide utc if you skip other args (use the "UTC:" mask prefix)
		if (arguments.length == 1 && Object.prototype.toString.call(date) == "[object String]" && !/\d/.test(date)) {
			mask = date;
			date = undefined;
		}

		// Passing date through Date applies Date.parse, if necessary
		date = date ? new Date(date) : new Date;
		if (isNaN(date)) throw SyntaxError("invalid date");

		mask = String(dF.masks[mask] || mask || dF.masks["default"]);

		// Allow setting the utc argument via the mask
		if (mask.slice(0, 4) == "UTC:") {
			mask = mask.slice(4);
			utc = true;
		}

		var	_ = utc ? "getUTC" : "get",
			d = date[_ + "Date"](),
			D = date[_ + "Day"](),
			m = date[_ + "Month"](),
			y = date[_ + "FullYear"](),
			H = date[_ + "Hours"](),
			M = date[_ + "Minutes"](),
			s = date[_ + "Seconds"](),
			L = date[_ + "Milliseconds"](),
			o = utc ? 0 : date.getTimezoneOffset(),
			flags = {
				d:    d,
				dd:   pad(d),
				ddd:  dF.i18n.dayNames[D],
				dddd: dF.i18n.dayNames[D + 7],
				m:    m + 1,
				mm:   pad(m + 1),
				mmm:  dF.i18n.monthNames[m],
				mmmm: dF.i18n.monthNames[m + 12],
				yy:   String(y).slice(2),
				yyyy: y,
				h:    H % 12 || 12,
				hh:   pad(H % 12 || 12),
				H:    H,
				HH:   pad(H),
				M:    M,
				MM:   pad(M),
				s:    s,
				ss:   pad(s),
				l:    pad(L, 3),
				L:    pad(L > 99 ? Math.round(L / 10) : L),
				t:    H < 12 ? "a"  : "p",
				tt:   H < 12 ? "am" : "pm",
				T:    H < 12 ? "A"  : "P",
				TT:   H < 12 ? "AM" : "PM",
				Z:    utc ? "UTC" : (String(date).match(timezone) || [""]).pop().replace(timezoneClip, ""),
				o:    (o > 0 ? "-" : "+") + pad(Math.floor(Math.abs(o) / 60) * 100 + Math.abs(o) % 60, 4),
				S:    ["th", "st", "nd", "rd"][d % 10 > 3 ? 0 : (d % 100 - d % 10 != 10) * d % 10]
			};

		return mask.replace(token, function ($0) {
			return $0 in flags ? flags[$0] : $0.slice(1, $0.length - 1);
		});
	};
}();

// Some common format strings
dateFormat.masks = {
	"default":      "ddd mmm dd yyyy HH:MM:ss",
	shortDate:      "m/d/yy",
	mediumDate:     "mmm d, yyyy",
	longDate:       "mmmm d, yyyy",
	fullDate:       "dddd, mmmm d, yyyy",
	shortTime:      "h:MM TT",
	mediumTime:     "h:MM:ss TT",
	longTime:       "h:MM:ss TT Z",
	isoDate:        "yyyy-mm-dd",
	isoTime:        "HH:MM:ss",
	isoDateTime:    "yyyy-mm-dd'T'HH:MM:ss",
	isoUtcDateTime: "UTC:yyyy-mm-dd'T'HH:MM:ss'Z'"
};

// Internationalization strings
dateFormat.i18n = {
	dayNames: [
		"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat",
		"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"
	],
	monthNames: [
		"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec",
		"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"
	]
};

// For convenience...
Date.prototype.format = function (mask, utc) {
	return dateFormat(this, mask, utc);
};

/*
 * ConvertDate
 */
var DateConverter = Class.create();
//------------------------------------------------------------------------------
//ConvertDate Instance
//------------------------------------------------------------------------------
DateConverter.prototype = {
		//----------------------------------------------------------------------------
		// Initialize
		//----------------------------------------------------------------------------
		initialize: function()
		{
		},
		//----------------------------------------------------------------------------
		// parseToJSDate
		//----------------------------------------------------------------------------
		parseToJSDate: function(strDate)
		{
			if ((strDate == undefined) || (strDate == '')) return new Date();
			// wait for yyyy-mm-dd
			var tmpArrDate = strDate.split('-');
			if (tmpArrDate.length != 3) return new Date();
			
			// Js month: January is 0
			var parsedDate = new Date(tmpArrDate[0], parseInt(tmpArrDate[1], 10) - 1, tmpArrDate[2]);
			return parsedDate;
		}
}

/**
 * ShowHide
 */
function showHide(shID) {
	if ($(shID)) {
		if ($(shID).visible()) {
			$(shID+'-deplier').show();
			$(shID).hide();
		} else {
			$(shID+'-deplier').hide();
			$(shID).show();
		}
	}
}

/**
 * Manage center forms
 */
function manageCenterForms() {
	$('centre').select('form').each(function(cform) {
		cform.observe('submit', function(event) {
			// Inhibe l'enregistrement par la touche "enter"
			event.stop();
		})
		cform.select('.phoneinput').each(function(pphone) {
			pphone.observe('change', function(event) {
				var pinput = event.target;
				if (pinput.value != "") {
					if (!Verifier_Numero_Telephone(pinput.value)) {
						alert('[' + pinput.value + '] n\'est pas un numéro de téléphone/fax valide. Veuillez ressaisir le numéro.');
						pinput.value = '';
					}
				}
			});
		});
		cform.select('.mailinput').each(function(pphone) {
			pphone.observe('change', function(event) {
				var pinput = event.target;
				if (pinput.value != "") {
					if (!Verifier_Adresse_Mail(pinput.value)) {
						alert('[' + pinput.value + '] n\'est pas une adresse e-mail valide. Veuillez ressaisir l\'adresse.');
						pinput.value = '';
					}
				}
			});
		});
		cform.select('.fileImage').each(function(cformimg) {
			if (cformimg.next('.fileImageData') != undefined) {
				var pimgdata = cformimg.next('.fileImageData');
				
				// Gestion de la mise à jour
				cformimg.observe('change', function(event) {
					if (cformimg.testclick != undefined) {
						eval('var validclick = cformimg.testclick();');
						if (validclick !== true) return;
					}
					
					var pform = event.target.up('form');
					if ( (pform.action == "") || (pform.action == undefined) ) pform.action = document.location.href;
					
					var pdata = new Object();
					// backup form target
					pdata.backuptarget = pform.target;
					// backup form action
					pdata.backupaction = pform.action;
					// backup form method
					pdata.backupmethod = pform.method;
					
					if (pform.down('_upload_frame') !== undefined) pform.down('_upload_frame').remove();
					var piframe = new Element('iframe', { name : '_upload_frame' }).hide();
					pform.appendChild(piframe);
					
					pform.target = piframe.name;
					pform.action += '/formName/' + pform.name + '/formAction/enregistrerimage/formInput/' + event.target.identify();
					pform.method = 'POST';
					
					var waitingLogo = new Element('img', {'src': baseFullUrl + 'media/picto/wait.gif', 'height': '30px', 'width': '30px'});
					var waitingMessage = new Element('div', { 'style': 'position: absolute;', 'id': 'waiting' + pform.name + event.target.identify()});
					waitingMessage.insert(waitingLogo);
					waitingMessage.clonePosition(event.target, {setWidth: false, setHeight: false});
					event.target.insert({after: waitingMessage});
					var pleftpos = Number(waitingMessage.positionedOffset()[0]) + Number(event.target.getWidth());
					waitingMessage.setStyle({left: pleftpos + 'px'});
					
					pform.submit();
					Form_Restore_After_Submit.defer(pform, pdata);
				});
				
				// Gestion de la suppression
				if (pimgdata.down('.fileImageActionDelete')) {
					pimgdata.down('.fileImageActionDelete').observe('click', function(event) {
						event.stop();
						var pimage = event.target.up('.fileImageData').previous('.fileImage');
						if (pimage != undefined) {
							var pform = pimage.up('form');
							var url = document.location.href;
							pform.request({
								method: 'POST',
								parameters: {formName: pform.identify(), formAction: 'supprimerimage', image: pimage.identify(), formInput: pimage.identify()},
								onSuccess: function(transport) {
									var ptform = $(transport.request.parameters.formName);
									var ptimage = ptform.down('#' + transport.request.parameters.image);
									
									Manage_FormImage_Component(ptimage, '');
								}
							});
						}
					});
				}
				
				Manage_FormImage_Component(cformimg);
			}
		});
		cform.select('.fileDocument').each(function(cformimg) {
			if (cformimg.next('.fileDocumentData') != undefined) {
				var pimgdata = cformimg.next('.fileDocumentData');
				
				// Gestion de la mise à jour
				cformimg.observe('change', function(event) {
					var pform = event.target.up('form');
					if ( (pform.action == "") || (pform.action == undefined) ) pform.action = document.location.href;
					
					var pdata = new Object();
					// backup form target
					pdata.backuptarget = pform.target;
					// backup form action
					pdata.backupaction = pform.action;
					// backup form method
					pdata.backupmethod = pform.method;
					
					if (pform.down('_upload_frame') !== undefined) pform.down('_upload_frame').remove();
					var piframe = new Element('iframe', { name : '_upload_frame' }).hide();
					pform.appendChild(piframe);
					
					pform.target = piframe.name;
					pform.action += '/formName/' + pform.name + '/formAction/enregistrerdocument/formInput/' + event.target.identify();
					pform.method = 'POST';
					
					var waitingLogo = new Element('img', {'src': baseFullUrl + 'media/picto/wait.gif', 'height': '30px', 'width': '30px'});
					var waitingMessage = new Element('div', { 'style': 'position: absolute;', 'id': 'waiting' + pform.name + event.target.identify()});
					waitingMessage.insert(waitingLogo);
					waitingMessage.clonePosition(event.target, {setWidth: false, setHeight: false});
					event.target.insert({after: waitingMessage});
					var pleftpos = Number(waitingMessage.positionedOffset()[0]) + Number(event.target.getWidth());
					waitingMessage.setStyle({left: pleftpos + 'px'});
					
					pform.submit();
					Form_Restore_After_Submit.defer(pform, pdata);
				});
				
				// Gestion de la suppression
				if (pimgdata.down('.fileDocumentActionDelete')) {
					pimgdata.down('.fileDocumentActionDelete').observe('click', function(event) {
						event.stop();
						var pimage = event.target.up('.fileDocumentData').previous('.fileDocument');
						if (pimage != undefined) {
							var pform = pimage.up('form');
							var url = document.location.href;
							pform.request({
								method: 'POST',
								parameters: {formName: pform.identify(), formAction: 'supprimerdocument', formInput: pimage.identify()},
								onSuccess: function(transport) {
									var ptform = $(transport.request.parameters.formName);
									var ptimage = ptform.down('#' + transport.request.parameters.formInput);
									
									Manage_FormDocument_Component(ptimage, '');
								}
							});
						}
					});
				}
				
				Manage_FormDocument_Component(cformimg);
			}
		});		
		cform.select('#enregistrer,#supprimer').each(function(cformbut) {
			cformbut.observe('click', function(event) {
				if (cformbut.testclick != undefined) {
					eval('var validclick = cformbut.testclick();');
					if (validclick !== true) return;
				}
				if (typeof(tinyMCE) != 'undefined') {
					tinyMCE.triggerSave();
				}
				var pbut = event.target;
				var pform = pbut.up('form');
				var pdiv = pform.up('div');
				var peff = new Effect.Highlight(pform.identify(), {startcolor: '#ffff99', endcolor: '#ffffff' });
				pform.request({
					method: 'POST',
					parameters: {formName: pform.identify(), formAction: pbut.identify()},
					onSuccess: function(transport) {
						var ptform = $(transport.request.parameters.formName);
						if (ptform) {
							// Gestion de l'affichage sur mise à jour
							var ptbut = ptform.down('#' + transport.request.parameters.formAction);
							if (ptbut) {
								var rDiv = ptform.down('.result' + ptbut.identify());
								if (rDiv == undefined) {
									var dataHtml = '<div class="result' + pbut.identify() + '"><span></span></div>';
									ptbut.insert({after: dataHtml});
									var rDiv = ptform.down('.result' + ptbut.identify());
								}
								if (rDiv) {
									if (transport.responseJSON.message != undefined) {
										rDiv.down().innerHTML = '';
										rDiv.down().insert(transport.responseJSON.message);
										Effect.SlideDown(rDiv); 
										Effect.SlideUp(rDiv, {queue: 'end', delay: 3});
									}
								}
							}
							// Gestion des actions
							if (transport.responseJSON.jsActions != undefined) {
								if (!Object.isString(transport.responseJSON.jsActions)) {
									for (var i = 0; i < transport.responseJSON.jsActions.length; i++) {
										eval(transport.responseJSON.jsActions[i]);
									}
								} else {
									// alert(transport.responseJSON.jsActions);
								}
							}
						}
					}
				});
			});
		});
	});
}

function Form_Restore_After_Submit(pform, pdata) {
	// restore form target
	pform.target = pdata.backuptarget;
	// restore form action
	if (!pdata.backupaction) pform.action = document.location.href;
	else pform.action = pdata.backupaction;
	// restore form method
	pform.method = pdata.backupmethod;	
}

function Verifier_Numero_Telephone(num_tel) {
	return true;
	// Motif français
	var regex = new RegExp(/^(01|02|03|04|05|06|08)[0-9]{8}/gi);
	
	if(regex.test(num_tel)) return true;
	else return false;
}

function Verifier_Adresse_Mail(mail) {
	// Motif français
	var regex = new RegExp('^[a-z0-9]+([_|\.|-]{1}[a-z0-9]+)*@[a-z0-9]+([_|\.|-]{1}[a-z0-9]+)*[\.]{1}[a-z]{2,6}$', 'i');
	
	if(regex.test(mail)) return true;
	else return false;
}

function Manage_FormImage_Endwaiting(formName, imgInputId) {
	var pwaiting = $('waiting' + formName + imgInputId);
	if (pwaiting) {
		pwaiting.remove();
	}
}

function Manage_FormImage_Submitback(formName, imgInputId, imgInputNewValue) {
	var cform = $(formName);
	
	Manage_FormImage_Endwaiting(formName, imgInputId);
	
	cform.select('.fileImage').each(function(cformimg) {
		if (cformimg.id == imgInputId) {
			Manage_FormImage_Component(cformimg, imgInputNewValue);
		}
	})
}

function Manage_FormImage_Component(cpt) {
	// Reset form content
	cpt.value = '';
	// arguments[1] = newvalue
	var pimgdata = cpt.next('.fileImageData');
	if (pimgdata == undefined) return;

	var pnewvalue = null;
	if (arguments.length == 2) pnewvalue = arguments[1];
	
	if (pnewvalue !== null) {
		pimgdata.down('.fileImageSrc').update(pnewvalue);
	}
	
	var pimgsrc = pimgdata.down('.fileImageSrc').innerHTML;
	var pimgheight = null;
	var pimgwidth = null;
	
	if (pimgdata.down('.fileImageHeight')) {
		if (!isNaN(pimgdata.down('.fileImageHeight').innerHTML))
			pimgheight = pimgdata.down('.fileImageHeight').innerHTML;
	}
	
	if (pimgdata.down('.fileImageWidth')) {
		if (!isNaN(pimgdata.down('.fileImageWidth').innerHTML))
			pimgwidth = pimgdata.down('.fileImageWidth').innerHTML;
	}
	
	if (pimgsrc == '') {
		pimgdata.hide();
	} else {
		var img = new Element('img', {src:pimgsrc});
		if (pimgheight != null) img.setStyle({height: pimgheight + 'px'});
		if (pimgwidth != null) img.setStyle({width: pimgwidth + 'px'});
		pimgdata.down('.fileImageActionView').down('span').update(img);
		pimgdata.show();
	}
}

function Manage_FormDocument_Submitback(formName, docInputId, docInputNewValue) {
	var cform = $(formName);
	
	var pwaiting = $('waiting' + formName + docInputId);
	if (pwaiting) {
		pwaiting.remove();
	}	
	
	cform.select('.fileDocument').each(function(cformdoc) {
		if (cformdoc.id == docInputId) {
			Manage_FormDocument_Component(cformdoc, docInputNewValue);
		}
	})
}

function Manage_FormDocument_Component(cpt) {
	// Reset form content
	cpt.value = '';
	// arguments[1] = newvalue
	var pdocdata = cpt.next('.fileDocumentData');
	if (pdocdata == undefined) return;

	var pnewvalue = null;
	if (arguments.length == 2) pnewvalue = arguments[1];
	
	if (pnewvalue !== null) {
		pdocdata.down('.fileDocumentSrc').update(pnewvalue);
	}
	
	var pdocsrc = pdocdata.down('.fileDocumentSrc').innerHTML;
	
	if (pdocsrc == '') {
		pdocdata.hide();
	} else {
		var doca = new Element('a', {href:pdocsrc, target:'_blank'});
		doca.insert('Ouvrir le document');
		pdocdata.down('.fileDocumentActionView').update(doca);
		pdocdata.show();
	}
}

function Manage_Request_ResponseJSON(presponse, pform) {
	  for (var key in presponse) {
		  // Gestion des actions
		  if (key == 'jsActions') {
			  if (!Object.isString(presponse[key])) {
				  for (var i = 0; i < presponse[key].length; i++) {
					  eval(presponse[key][i]);
				  }				  
			  }
		  } else {
			  var pelem = pform.down('#' + key);
			  if (pelem) {
				  switch(pelem.type) {
					  case 'select-one':
						  pelem.selectedIndex = 0;
						  pelem.childElements().each(function(elem) {
							  if (elem.value == presponse[key]) {
								  pelem.selectedIndex = elem.index;
							  }
						  });
						  break;
					  case 'checkbox':
						  if (presponse[key] == 1) {
							  pelem.setValue(1);
						  } else {
							  pelem.setValue(0);
						  }
						  break;
					  case 'select-multiple':
						  var eData = [];
						  if (Object.isString(presponse[key]))
							  eData = [presponse[key]];
						  else if (Object.isArray(presponse[key])) {
							  eData = presponse[key];
						  }
							  
						  pelem.childElements().each(function(elem) {
							  eData.each(function(value) {
								  if (elem.value == value) {
									  elem.selected = true;
								  }
							  });
						  });										  
						  break;
					  case 'file':
						  if (pelem.hasClassName('fileImage')) {
							  Manage_FormImage_Component(pelem, presponse[key]);
						  }
						  if (pelem.hasClassName('fileDocument')) {
							  Manage_FormDocument_Component(pelem, presponse[key]);
						  }
						  break;
					  default:
						  pelem.value = presponse[key];
						  break;
				  }
				  if (pelem.hasClassName('mceEditor')) {
					  tinyMCE.get(pelem.identify()).load();
				  }
			  } else {
				  pform.getInputs('radio',key).each(function(pradio) {
					  if (pradio.value == presponse[key]) {
						  pradio.checked = true;
					  }
				  });
			  }
		  }
	  }
	  
	  pform.select('.fileImage').each(function(elem) {
		  Manage_FormImage_Component(elem);
	  });
	  pform.select('.fileDocument').each(function(elem) {
		  Manage_FormDocument_Component(elem);
	  });
}

function genchangeId(rurl, pgenid, pformname) {
	genchange(rurl, pgenid, pformname, 'id');
}

function genchange(rurl, pgenid, pformname, iref) {
	var pselect = $(pformname).down('#' + iref);
	var pid = null;
	if (pselect.selectedIndex != 0) pid = pselect.getValue();
	$(pformname).reset();
	$(pformname).select('.fileImage').each(function(cformimg) {
		Manage_FormImage_Component(cformimg, '');
	});
	$(pformname).select('.fileDocument').each(function(cformdoc) {
		Manage_FormDocument_Component(cformdoc, '');
	});
	
	rurl = rurl.sub('_gen_', pgenid.toLowerCase());
	
	if (pid != null) {
		new Ajax.Request(rurl + '/' + iref + '/' + pid, {
			  parameters: {formName: pformname},
			  onSuccess: function(transport) {
				  var ptform = $(transport.request.parameters.formName);
				  if (transport.responseJSON.formdata) {
					  Manage_Request_ResponseJSON(transport.responseJSON.formdata, ptform);
				  }
				// Gestion des actions
				if (transport.responseJSON.jsActions != undefined) {
					if (!Object.isString(transport.responseJSON.jsActions)) {
						for (var i = 0; i < transport.responseJSON.jsActions.length; i++) {
							eval(transport.responseJSON.jsActions[i]);
						}
					} else {
						// alert(transport.responseJSON.jsActions);
					}
				}				  
			  }
		});
	}
	
	return pid;
}

function genrefreshIds(rurl, pgenid, pformname) {
	var pcurrentid = null;
	if ( (arguments.length > 3) && (Object.isNumber(arguments[3])) ) {
		pcurrentid = arguments[3];
	}

	rurl = rurl.sub('_gen_', pgenid.toLowerCase());
	
	new Ajax.Request(rurl, {
		  parameters: {formName: pformname, genId: pgenid},
		  onSuccess: function(transport) {
			  var ptform = $(transport.request.parameters.formName);
			  var pgenid = transport.request.parameters.genId;
			  var pselect = ptform.down('#id');

			  if (pselect != undefined) {
				  if (transport.responseJSON.id) {
					  // Backup current id
					  if ( (pselect.selectedIndex != 0) && (pselect.selectedIndex != -1) ) pcurrentid = pselect.options[pselect.selectedIndex].value;
					  // Refresh IDs list
					  pselect.update();
					  for (var i = 0; i<transport.responseJSON.id.length; i++) {
						  var poption = transport.responseJSON.id[i];
						  pselect.options.add(new Option(poption['option'], poption['value']));
					  }
				  }
				  if ( pcurrentid != null ) {
					  for (var i = 0; i<pselect.options.length; i++) {
						  if (pselect.options[i].value == pcurrentid) {
							  pselect.selectedIndex = i;
							  var changeFunc = "onChange" + pgenid + "Id();";
							  eval(changeFunc);
							  break;
						  }
					  }
				  } else {
					  ptform.select('.fileImage').each(function(elem) {
						  Manage_FormImage_Component(elem, '');
					  });
					  ptform.select('.fileDocument').each(function(elem) {
						  Manage_FormDocument_Component(elem, '');
					  });
				  }
			  }
		  
				// Gestion des actions
				if (transport.responseJSON.jsActions != undefined) {
					if (!Object.isString(transport.responseJSON.jsActions)) {
						for (var i = 0; i < transport.responseJSON.jsActions.length; i++) {
							eval(transport.responseJSON.jsActions[i]);
						}
					} else {
						// alert(transport.responseJSON.jsActions);
					}
				}
			  
		  }
	});
}

function onDeleteItem(elemItem) {
	var pitem = elemItem.up('.item');
	var pitemInfos = pitem.down('.itemInfos');
	var pitemInfosId = pitemInfos.down('.itemInfosId').innerHTML;
	var pitemInfosType = pitemInfos.down('.itemInfosType').innerHTML;
	
	var pform = pitem.up('form');
	pform.request({
		method: 'POST',
		parameters: {formName: pform.identify(), formAction: 'supprimer' + pitemInfosType, itempType: pitemInfosType, itemId: pitemInfosId},
		onSuccess: function(transport) {
			if (transport.responseJSON.message != undefined) {
				alert(transport.responseJSON.message);
			}
			
			// Gestion des actions
			if (transport.responseJSON.jsActions != undefined) {
				if (!Object.isString(transport.responseJSON.jsActions)) {
					for (var i = 0; i < transport.responseJSON.jsActions.length; i++) {
						eval(transport.responseJSON.jsActions[i]);
					}
				} else {
					// alert(transport.responseJSON.jsActions);
				}
			}			
			
			if (transport.responseJSON.success == 1) {
				var pform = $(transport.request.parameters.formName);
				var itemType = transport.request.parameters.itempType;
				var itemId = transport.request.parameters.itemId;
				
				var pitemslist = pform.down('.' + itemType + 'items');
				if (pitemslist) {
					var pitems = pitemslist.select('.item');
					if (pitems.any()) {
						pitems.each(function(pitem) {
							if (pitem.down('.itemInfosId') && pitem.down('.itemInfosId').innerHTML == itemId) {
								pitem.remove();
							}
						});
					}
				}
			}
		}
	});
}

function onAddItem(formName, itemType, itemId, itemText) {
	var pform = $(formName);
	var pitemslist = pform.down('.' + itemType + 'items');
	if (pitemslist) {
		var pitemSample = pitemslist.down('.itemSample');
		if (pitemSample) {
			var itemLi = new Element('li');
			itemLi.addClassName('item');
			itemLi.insert('<span class="itemInfos" style="display: none;"><span class="itemInfosId">' + itemId + '</span><span class="itemInfosType">' + itemType + '</span></span>');
			itemLi.insert(itemText);
			itemLi.insert(pitemSample.innerHTML);
			
			pitemslist.insert(itemLi);
		}
	}
}
