/*
 *
 *	@titre: form-global.
 *	@description: javascript formulaire - Moniteur Archizz.
 *	@auteur: neov - http://www.neov.net.
 *	@creation: 20090612.
 *	@modification: -.
 *	@required: jquery 1.3.2
 *
*/

// creation html element.
var dc = function(el) { return document.createElement(el); };

var p =  function() { return $(dc('p')); }
var div =  function() { return $(dc('div')); }
var label =  function() { return $(dc('label')); }
var input =  function() { return $(dc('input')); }
var select =  function() { return $(dc('select')); }
var option =  function() { return $(dc('option')); }
var link =  function() { return $(dc('a')); }

// valeur initiale des attributs.
var imageValue = {
	image:			'image_',
	legende: 		'legende-image_',
	copyright:		'copy-image_'
}

var videoValue = {
	video:			'video_',
	legende: 		'legende-video_',
	copyright:		'copy-video_'
}

// valeur initiale des libellés.
var imageLabel = {
	image:			'Image ',
	legende: 		'Légende image',
	copyright:		'Copyright / Société - Auteur'
}

var videoLabel = {
	video:			'Video ',
	legende: 		'Légende vidéo',
	copyright:		'Copyright / Société - Auteur'
}

// constructor.
var $supprbtn = function (slabel)
{
	var $suppr = $(document.createElement('a'));
	
	$suppr
		.addClass('suppression')
		.attr({href: '#', title: 'Supprimer'})
		.text(slabel ? slabel : 'Supprimer');

	return $suppr;
}

var $supprbtnCollab = function (slabel)
{
	var $suppr = $(document.createElement('a'));
	
	$suppr
		.addClass('suppression-collab')
		.attr({href: '#', title: 'Supprimer'})
		.text(slabel ? slabel : 'Supprimer');

	return $suppr;
}

var $supprbtnCotraitant = function (slabel)
{
	var $suppr = $(document.createElement('a'));
	
	$suppr
		.addClass('suppression-cotraitant')
		.attr({href: '#', title: 'Supprimer'})
		.text(slabel ? slabel : 'Supprimer');

	return $suppr;
}

var $sep = function()
{
	return $(document.createElement('p')).addClass('separateur');
}

$.fn.notReadOnly =  function()
{
	$(this).find('input').each(
		function()
		{
			$(this).removeAttr('readonly');
		}
	);

	$(this).find('select').each(
		function()
		{
			$(this).removeAttr('readonly');
			$(this).removeAttr('disabled');
		}
	);

	$(this).find('textarea').each(
		function()
		{
			$(this).removeAttr('readonly');
		}
	);


}

// fn rename.
$.fn.rename = function(o)
{
	// options.
	o = $.extend ({
				  
		inputs: 	false,
		labels:		false,
		flabels:	false
		
	}, o || {});
	
	return this.each(
		function(index)
		{
			index++;
			
			// renommage des elements du formulaire.
			if(o.inputs) {
				$(this).find(':input').each(
					function()
					{
						var attrVal = $(this).attr('name').split('_')[0];
						var nAttrVal = attrVal +'_'+ index;
						$(this).attr({name: nAttrVal, id: nAttrVal});
					}
				);
			}
			
			// renommage des labels.
			if(o.labels) {
				$(this).find('label').each(
					function()
					{
						var attrVal = $(this).attr('for').split('_')[0];
						var nAttrVal = attrVal +'_'+ index;
						$(this).attr({'for': nAttrVal});
					}
				);
			}
			
			// renommage des faux labels.
			if(o.flabels) {
				$(this).find('.label').each(
					function()
					{
						var text = $(this).text().split(' ')[0];
						$(this).text(text+' '+index);
					}
				);
			}
		}
	);
}


$.fn.renameAgence = function()
{	
	return this.each(
		function(index)
		{
			index++;
			
			// renommage des elements du formulaire.
			$(this).find(':input').each(
				function()
				{
					var attrVal = $(this).attr('name').split('_')[0];
					var attrib = '';

					if ($(this).attr('name').split('_')[2]) {
						attrib = '_' + $(this).attr('name').split('_')[2];
					}

					var nAttrVal = attrVal +'_'+ index + attrib;
					
					$(this).attr({name: nAttrVal, id: nAttrVal});
				}
			);

			// renommage des labels.
			$(this).find('label').each(
				function()
				{
					var attrVal = $(this).attr('for').split('_')[0];
					var attrib = '';

					if ($(this).attr('for').split('_')[2]) {
						attrib = '_' + $(this).attr('for').split('_')[2];
					}

					var nAttrVal = attrVal +'_'+ index + attrib;
					
					$(this).attr({'for': nAttrVal});
				}
			);
		}
	);
}

$.fn.renameCollab = function()
{	
	return this.each(
		function(index)
		{
			index++;
			
			// renommage des elements du formulaire.
			$(this).find(':input').each(
				function()
				{
					var attrVal = $(this).attr('name').split('_')[0]+'_'+$(this).attr('name').split('_')[1];
					var nAttrVal = attrVal +'_'+ index;
					
					$(this).attr({name: nAttrVal, id: nAttrVal});
				}
			);

			// renommage des labels.
			$(this).find('label').each(
				function()
				{
					var attrVal = $(this).attr('for').split('_')[0]+'_'+$(this).attr('for').split('_')[1];
					var nAttrVal = attrVal +'_'+ index;
					
					$(this).attr({'for': nAttrVal});
				}
			);
		}
	);
}

// fn ajout.
$.fn.ajout = function(o)
{
	
	// options.
	o = $.extend ({
		onLoad:			false,
		
		parent:			false,
		child:			false,
		
		duplicate:		false,
		className:		false,
		
		target:			false,
		
		fauxLabel:		false,
		fauxLabelHtml:	false,
		fauxLabelRepos:	false,
		
		vraiLabel:		false,
		
		suppression:	false,
		supprLabel:		false,
		
		onComplete:		false
		
	}, o || {});
	
	return this.each(
		function()
		{
			if(o.onLoad) {
				o.onLoad = o.onLoad.call();
			} else {
				o.onLoad = true;
			}
			
			if(o.onLoad && o.duplicate) {
		
				// duplication de l'élement.
				var $el = o.duplicate;
				var $nel = $el.clone();

				$nel.notReadOnly();

				$nel.css('padding-top', '20px');

				// bouton de suppression
				if(o.suppression) {
					$nel.find('.suppression').parent().remove();

					var $suppr = new $supprbtn(o.supprLabel);
					
					var $para = $(this).parent().clone();
					
					$para
						.empty()
						.append($suppr);
											
					$nel.append($para);
				}
				
				// ajout class.
				if(o.className)
					$nel.addClass(o.className);
				
				// suppression des labels.
				if(!o.vraiLabel)
					$nel.find('label').remove();
					
				// initialisation des valeurs.
				$nel.find(':input').each(
					function()
					{
						if($(this).is('select')) {
							$(this).val(0);
						} else {
							$(this).val('');
						}
					}
				);
				
				// affichage nouvel element.
				if(o.target) {
					$(o.target).after($nel);
				} else {
					$el.after($nel);
				}
				
				// creation faux label.
				if(o.fauxLabel) {
					if (o.fauxLabelHtml)
						$nel.find('.label').html(o.fauxLabelHtml);
						
					if (o.fauxLabelRepos)
						$nel.find('.label').css({paddingTop: 4});
				} else {
					$nel.find('.label').empty();
				}
				
				// onComplete
				if(o.onComplete)
					o.onComplete.call();
					
			
			}
			
		}
	);
}

$.fn.ajoutCotraitant = function(o)
{
	
	// options.
	o = $.extend ({
		onLoad:			false,
		
		parent:			false,
		child:			false,
		
		duplicate:		false,
		className:		false,
		
		target:			false,
		
		fauxLabel:		false,
		fauxLabelHtml:	false,
		fauxLabelRepos:	false,
		
		vraiLabel:		false,
		
		suppression:	false,
		supprLabel:		false,
		
		onComplete:		false
		
	}, o || {});
	
	return this.each(
		function()
		{
			if(o.onLoad) {
				o.onLoad = o.onLoad.call();
			} else {
				o.onLoad = true;
			}
			
			if(o.onLoad && o.duplicate) {
		
				// duplication de l'élement.
				var $el = o.duplicate;
				var $nel = $el.clone();

				$nel.notReadOnly();

				$nel.css('padding-top', '20px');

				// bouton de suppression
				if(o.suppression) {
					$nel.find('.suppression-cotraitant').parent().remove();

					var $suppr = new $supprbtnCotraitant(o.supprLabel);
					
					var $para = $(this).parent().clone();
					
					$para
						.empty()
						.append($suppr);
											
					$nel.append($para);
				}
				
				// ajout class.
				if(o.className)
					$nel.addClass(o.className);
				
				// suppression des labels.
				if(!o.vraiLabel)
					$nel.find('label').remove();
					
				// initialisation des valeurs.
				$nel.find(':input').each(
					function()
					{
						if($(this).is('select')) {
							$(this).val(0);
						} else {
							$(this).val('');
						}
					}
				);
				
				// affichage nouvel element.
				if(o.target) {
					$(o.target).after($nel);
				} else {
					$el.after($nel);
				}
				
				// creation faux label.
				if(o.fauxLabel) {
					if (o.fauxLabelHtml)
						$nel.find('.label').html(o.fauxLabelHtml);
						
					if (o.fauxLabelRepos)
						$nel.find('.label').css({paddingTop: 4});
				} else {
					$nel.find('.label').empty();
				}
				
				// onComplete
				if(o.onComplete)
					o.onComplete.call();
					
			
			}
			
		}
	);
}

// fn ajout.
$.fn.ajoutCollaborateur = function(o)
{
	
	// options.
	o = $.extend ({
		onLoad:			false,
		
		parent:			false,
		child:			false,
		
		duplicate:		false,
		className:		false,
		
		target:			false,
		
		fauxLabel:		false,
		fauxLabelHtml:	false,
		fauxLabelRepos:	false,
		
		vraiLabel:		false,
		
		suppression:	false,
		supprLabel:		false,
		
		onComplete:		false
		
	}, o || {});
	
	return this.each(
		function()
		{
			if(o.onLoad) {
				o.onLoad = o.onLoad.call();
			} else {
				o.onLoad = true;
			}
			
			if(o.onLoad && o.duplicate) {
		
				// duplication de l'élement.
				var $el = o.duplicate;
				var $nel = $el.clone();

				$nel.notReadOnly();

				$nel.css('padding-top', '20px');

				// bouton de suppression
				if(o.suppression) {
					$nel.find('.suppression-collab').parent().remove();

					var $suppr = new $supprbtnCollab(o.supprLabel);
					
					var $para = $(this).parent().clone();
					
					$para
						.empty()
						.append($suppr);
											
					$nel.append($para);
				}
				
				// ajout class.
				if(o.className)
					$nel.addClass(o.className);
				
				// suppression des labels.
				if(!o.vraiLabel)
					$nel.find('label').remove();
					
				// initialisation des valeurs.
				$nel.find(':input').each(
					function()
					{
						if($(this).is('select')) {
							$(this).val(0);
						} else {
							$(this).val('');
						}
					}
				);
				
				// affichage nouvel element.
				if(o.target) {
					$(o.target).after($nel);
				} else {
					$el.after($nel);
				}
				
				// creation faux label.
				if(o.fauxLabel) {
					if (o.fauxLabelHtml)
						$nel.find('.label').html(o.fauxLabelHtml);
						
					if (o.fauxLabelRepos)
						$nel.find('.label').css({paddingTop: 4});
				} else {
					$nel.find('.label').empty();
				}
				
				// onComplete
				if(o.onComplete)
					o.onComplete.call();
					
			
			}
			
		}
	);
}

// fn suppression.
$.fn.supprimer = function($nel, $elem)
{
	// suppresion de l'element.
	$nel.remove();
	
	// renommage des elements.
	$elem.rename({inputs: true, labels: true});
}

$.fn.supprimerCotraitant = function($nel, $elem)
{
	if ($elem.length == 0) {
		$(this).remove();
		var $initElem = $nel.clone();
		$initElem.find(':input').val('');
		$initElem.find(':input').removeAttr('readonly');
		$initElem.find('.label').text('Co-traitants de la MOE')
		$nel.after($initElem);
		$initElem.checkItem();
	} else {
		$elem.eq(0).find('.label').text('Co-traitants de la MOE')
	}
	// suppresion de l'element.
	$nel.remove();
	
	// renommage des elements.
	$elem.rename({inputs: true, labels: true});
}

$.fn.supprimerCollab = function($nel, $elem)
{
	// suppresion de l'element.
	$nel.remove();
	
	// renommage des elements.
	$elem.renameCollab();
}

// fn suppression.
$.fn.supprimer2 = function($nel, $elem)
{
	// suppresion de l'element.
	$nel.remove();
	
	// renommage des elements.
	$elem.rename({inputs: true, labels: true, flabels: true});
}

// fn checkItem
$.fn.checkItem = function()
{
	if (this.length ==1) {
		var hasSupp = $('.suppression-cotraitant', this).length?true:false;
		if (!hasSupp) {
			$('.col1 input', this).one(
				'blur',
				function()
				{
					if ($(this).val() != '') {
						$(this).parent().parent().append(
							$(new p)
								.addClass('clearfix btn-ajout')
								.append(
									$(new link)
										.attr({href: '#', title: 'Supprimer'})
										.addClass('suppression-cotraitant')
										.text('Supprimer')
								)
						);
					}
				}
			);
		}
	}
}

// document ready.
$(
	function()
	{
		

		// suppression global.
		$('.btn-ajout .suppression').live(
			'click',
			function()
			{

				$(this).supprimer($(this).parent().parent(), $(this).parent().parent().parent().find('> div').not($(this).parent().parent()));

				return false;
			}
		);

		$('.btn-ajout .suppression-cotraitant').live(
			'click',
			function()
			{

				$(this).supprimerCotraitant($(this).parent().parent(), $(this).parent().parent().parent().find('> div').not($(this).parent().parent()));
				return false;
			}
		);

		// suppresion agence.
		$('.supprimer-agence').live(
			'click',
			function()
			{
				var $elem = $(this).parent().parent().parent().parent().find('> div.agence-wrapper').not($(this).parent().parent().parent());
				$(this).parent().parent().parent().remove();
				$elem.renameAgence();
				
				return false;
			}
		);

		// suppresion agence collab.
		$('.suppression-collab').live(
			'click',
			function()
			{
				$(this).supprimerCollab($(this).parent().parent(), $(this).parent().parent().parent().find('> div').not($(this).parent().parent()));
				return false;
			}
		)

		// suppression produit.
		$('.btn-ajout-produit .suppression').live(
			'click',
			function()
			{
				$(this).supprimer2($(this).parent().parent(), $(this).parent().parent().parent().find('> div').not($(this).parent().parent()));

				return false;
			}
		);

		// suppression entreprise.
		$('.btn-ajout-entreprise .suppression').live(
			'click',
			function()
			{
				$(this).supprimer2($(this).parent().parent(), $(this).parent().parent().parent().find('> div').not($(this).parent().parent()));

				return false;
			}
		);

		// suppression matériau.
		$('.btn-ajout-materiau .suppression').live(
			'click',
			function()
			{
				var $elem = $(this).parent().parent().parent().find('> div').not($(this).parent().parent());
				$(this).parent().parent().remove();

				$elem.rename({inputs: true, labels: true});

				for(i=0; i<$elem.length; i++) {
					$elem.eq(i).find('p:first').find('label').text('Matériau '+(i+1));
				}

				return false;
			}
		);

		// suppression media image.
		$('.media-image .suppression').live(
			'click',
			function()
			{
				var zUrl = $(this).attr("urlDelete");
				
				// suppression separateur.
				$(this).parent().parent().parent().find('.separateur').remove();
				
				// parent.
				var $parent = $(this).parent().parent().parent();
							
				// suppression de l'element.
				$(this).parent().parent().remove();

				var nid = $(this).parent().parent().find('p').eq(0).find('label').attr('for');
				
				// renomage des elements.
				var $elem = $parent.find('> div');

				$elem.rename({inputs: true, labels: true});
				
				// renommage des faux labels
				$elem.each(
					function(index)
					{
						var $pl = $(this).find('p').eq(0).find('label');
						var txt = $pl.text().split(' ');			
						$pl.text(txt[0]+' '+(index+1));
					}
				);
				
				// creation nouveau separateur.
				var lchild = $elem.length;

				for(i=0; i<lchild-1; i++) {
					$elem.eq(i).after(new $sep);
				}
				
				// suppression du bouton de suppression si necessaire.
				if(lchild==1) {
					$elem.find('.suppression').remove();

					/*
					if($elem.find('.file').length == 0 && $elem.find('.ajout').length == 0) {
						$elem.find('.btn-ajout-media').append(
							$(dc('a'))
								.addClass('ajout')
								.attr({href: '#', title: 'Ajouter une image'})
								.text('Ajouter une image')
						);
					}
					*/
				}

				var elngth = $elem.length;

				if($elem.eq(elngth-1).find('.file').length == 0 && $elem.eq(elngth-1).find('.ajout').length == 0) {
					$elem.eq(elngth-1).find('.btn-ajout-media').append(
						$(dc('a'))
							.addClass('ajout')
							.attr({href: '#', title: 'Ajouter une image'})
							.text('Ajouter une image')
					);
				}

				$.ajax({
					 type:"POST",
					 url:zUrl+"?nid="+nid,
					 dataType:"json",
					 async:false
							
				});
				return false;
			}
		);

		// suppression media video.
		$('.media-video .suppression').live(
			'click',
			function()
			{
				var zUrl = $(this).attr("urlDelete");
				
				// suppression separateur.
				$(this).parent().parent().parent().find('.separateur').remove();
				
				// parent.
				var $parent = $(this).parent().parent().parent();
							
				// suppression de l'element.
				$(this).parent().parent().remove();

				var nid = $(this).parent().parent().find('p').eq(0).find('label').attr('for');
				
				// renomage des elements.
				var $elem = $parent.find('> div');

				$elem.rename({inputs: true, labels: true});
				
				// renommage des faux labels
				$elem.each(
					function(index)
					{
						var $pl = $(this).find('p').eq(0).find('label');
						var txt = $pl.text().split(' ');			
						$pl.text(txt[0]+' '+(index+1));
					}
				);
				
				// creation nouveau separateur.
				var lchild = $elem.length;

				for(i=0; i<lchild-1; i++) {
					$elem.eq(i).after(new $sep);
				}
				
				// suppression du bouton de suppression si necessaire.
				if(lchild==1) {
					$elem.find('.suppression').remove();

					if($elem.find('.file').length == 0 && $elem.find('.ajout').length == 0) {
						$elem.find('.btn-ajout-media').append(
							$(dc('a'))
								.addClass('ajout')
								.attr({href: '#', title: 'Ajouter une vidéo'})
								.text('Ajouter une vidéo')
						);
					}
				}

				$.ajax({
					 type:"POST",
					 url:zUrl+"?nid="+nid,
					 dataType:"json",
					 async:false
							
				});
				return false;
			}
		);

		// ajout media image.
		$('.media-image .btn-ajout-media .ajout').live(
			'click',
			function()
			{
				var zUrl = $(this).attr("url");
				// var main conteneur.
				var $mainConteneur = $(this).parent().parent().parent();
					
				// nombre d'image.
				var nbrImage = $mainConteneur.find('.media-wrapper').length;
				nbrImage ++;

				// suppression du bouton d'ajout et ajout bouton suppression.
				$(this).parent()
					.empty()
					.append(
						$(dc('a'))
							.addClass('suppression')
							.attr({href: '#', title: 'Supprimer'})
							.text('Supprimer')
					);

				//creation des nouveaux éléments.
				var $conteneur = $(dc('div')).addClass('medias-wrapper');
				
				var $img = $(dc('p')).addClass('clearfix').addClass('small');
				$img.append(
					$(dc('label'))
						.attr('for', imageValue.image + nbrImage)
						.text(imageLabel.image + nbrImage),
					$(dc('input'))
						.addClass('file')
						.attr({ type: 'file', name: imageValue.image + nbrImage, id: imageValue.image + nbrImage, size: 25 })
						.attr({url:$("#filesUrl").val()})
						.each(
							function(){
								/*************/
									var cname = $(this).attr('name');
									var zUrlImage = $(this).attr('url');
									var index = cname.split('_')[1];
									var nAjxImage = new Ajax_upload (
										$(this),
										{
											action:	zUrlImage,
											name:		cname,
											data:		{
												inputName:	cname
											},
											onChange: function (oFile, zExtension) {
												// reset data.
												nAjxImage.setData(
													{
														inputName: cname
													}
												);
											},
											onSubmit:	function (oFile, zExtension) {
												if (! (zExtension && /^(jpg)$/.test(zExtension))){
													alert('Error: Format de fichier incorrect');
													return false;
												}
												$(this._button).attr('disabled','disabled');
											},
											onComplete:	function (oFile, _zRespData) {
												$('input[name='+cname+']').remove();
												$(".media-image")
													.empty()
													.append($(_zRespData)) ;
												nAjxImage.destroy();
											}
										}
									) ;

								/*************/
							}
						)
						
				);
				
				var $legende = $(dc('p')).addClass('clearfix').addClass('small');
				$legende.append(
					$(dc('label'))
						.attr('for', imageValue.legende + nbrImage)
						.text(imageLabel.legende)
						.append(
							$(dc('span')).text('*')
						),
					$(dc('input'))
						.addClass('text legende')
						.attr({ type: 'text', name: imageValue.legende + nbrImage, id: imageValue.legende + nbrImage })
						.attr({url:$("#legendeUrl").val()})
						.attr({"tmt:required":"true"})
						.attr({"tmt:errorclass":"error"})
						.blur(
							function()
							{
								var Iname = $(this).attr('name');
								var index = Iname.split('_')[1];

								var zLegende = $(this).val();
								var zUrl = $(this).attr("url");

								$.getJSON(
									zUrl, 
									{zLegende: zLegende, iIndex: index},
									function(datas){
										if(datas.length>0){
											for(i=0; i<datas.length; i++){
												$('input[name='+Iname+']').val((datas[index-1]["zLegende"]));	
											}
										}
									}
								);
							}
						)
				);
				
				var $copyright = $(dc('p')).addClass('clearfix').addClass('small');
				$copyright.append(
					$(dc('label'))
						.attr('for', imageValue.copyright + nbrImage)
						.text(imageLabel.copyright)
						.append(
							$(dc('span')).text('*')
						),
					$(dc('input'))
						.addClass('text copyright')
						.attr({ type: 'text', name: imageValue.copyright + nbrImage, id: imageValue.copyright + nbrImage })
						.attr({url:$("#copyrightUrl").val()})
						.attr({"tmt:required":"true"})
						.attr({"tmt:errorclass":"error"})
						.blur(
							function()
							{
								var Iname = $(this).attr('name');
								var index = Iname.split('_')[1];

								var zCopyright = $(this).val();
								var zUrl = $(this).attr("url");

								$.getJSON(
									zUrl, 
									{zCopyright: zCopyright, iIndex: index},
									function(datas){
										if(datas.length>0){
											for(i=0; i<datas.length; i++){
												$('input[name='+Iname+']').val((datas[index-1]["zCopyright"]));	
											}
										}
									}
								);
							}
						)
				);
				
				var $btnsuppr =  $(dc('p')).addClass('btn-ajout-media');
				
				$btnsuppr.append(
					$(dc('a'))
						.addClass('suppression')
						.attr({href: '#', title: 'Supprimer'})
						.text('Supprimer')
				);

				var $separateur = $(dc('p')).addClass('separateur');
				
				$conteneur.append(
					$img,
					$legende,
					$copyright,
					$btnsuppr
				);

				$mainConteneur.append($separateur, $conteneur);

				
				return false;
			}
		);

		// ajout media video.
		$('.media-video .btn-ajout-media .ajout').live(
			'click',
			function()
			{
				
				// var main conteneur.
				var $mainConteneur = $(this).parent().parent().parent();
					
				// nombre de video.
				var nbrVideo = $mainConteneur.find('.media-wrapper').length;
				nbrVideo ++;

				// suppression du bouton d'ajout et ajout bouton suppression.
				$(this).parent()
					.empty()
					.append(
						$(dc('a'))
							.addClass('suppression')
							.attr({href: '#', title: 'Supprimer'})
							.text('Supprimer')
					);

				//creation des nouveaux éléments.
				var $conteneur = $(dc('div')).addClass('medias-wrapper');
				
				var $video = $( dc('p') ).addClass('clearfix').addClass('small');
				$video.append(
					$( dc('label') )
						.attr('for', videoValue.video + nbrVideo )
						.text(videoLabel.video + nbrVideo + ' '),
					$( dc('input') )
						.addClass('file')
						.attr({ type: 'file', name: videoValue.video + nbrVideo, id: videoValue.video + nbrVideo, size: 25 })
						.attr({url:$("#filesVideoUrl").val()})
						.each(
							function(){
								/****************/
									var cname = $(this).attr('name');
									var zUrlVideo = $(this).attr('url');
									var index = cname.split('_')[1];
									var nAjxVideo = new Ajax_upload (
										$(this),
										{
											action:		zUrlVideo,
											name:		cname,
											data:		{
												inputName:	cname
											},
											onChange: function (oFile, zExtension) {
												// reset data.
												nAjxVideo.setData(
													{
														inputName: cname
													}
												);
											},
											onSubmit:	function (oFile, zExtension) {
												if (! (zExtension && /^(flv|avi)$/.test(zExtension))){
													alert('Error: Format de fichier incorrect');
													return false;
												}
												$(this._button).attr('disabled','disabled');
											},
											onComplete:	function (oFile, _zRespData) {
												$('input[name='+cname+']').remove();
												$(".media-video")
													.empty()
													.append($(_zRespData)) ;

												nAjxVideo.destroy();
											}
										}
									) ;
								/****************/
							}
						)

				);
				
				var $legende = $( dc('p') ).addClass('clearfix').addClass('small');
				$legende.append(
					$( dc('label') )
						.attr('for', videoValue.legende + nbrVideo )
						.text(videoLabel.legende)
						.append(
							$( dc('span') ).text()
						),
					$( dc('input') )
						.addClass('text legendeVideo')
						.attr({ type: 'text', name: videoValue.legende + nbrVideo, id: videoValue.legende + nbrVideo })
						.attr({urlVideo:$("#legendeVideoUrl").val()})
						.attr({"tmt:required":"true"})
						.attr({"tmt:errorclass":"error"})
						.blur(
							function()
							{
								var Iname = $(this).attr('name');
								var index = Iname.split('_')[1];
								var zLegendeVideo = $(this).val();
								var zUrlVideo = $(this).attr("urlVideo");
								$.getJSON(
									zUrlVideo, 
									{zLegendeVideo: zLegendeVideo, iIndexVideo: index},
									function(datas){
										if(datas.length>0){
											for(i=0; i<datas.length; i++){
												$('input[name='+Iname+']').val((datas[index-1]["zLegendeVideo"]));	
											}
										}
									}
								);
							}
						)
				);
				
				var $copyright = $( dc('p') ).addClass('clearfix').addClass('small');
				$copyright.append(
					$( dc('label') )
						.attr('for', videoValue.copyright + nbrVideo )
						.text(videoLabel.copyright)
						.append(
							$( dc('span') ).text()
						),
					$( dc('input') )
						.addClass('text copyrightVideo')
						.attr({ type: 'text', name: videoValue.copyright + nbrVideo, id: videoValue.copyright + nbrVideo })
						.attr({urlVideo:$("#copyrightVideoUrl").val()})
						.attr({"tmt:required":"true"})
						.attr({"tmt:errorclass":"error"})
						.blur(
							function()
							{
								var Iname = $(this).attr('name');
								var index = Iname.split('_')[1];

								var zCopyrightVideo = $(this).val();
								var zUrlVideo = $(this).attr("urlVideo");
								$.getJSON(
									zUrlVideo, 
									{zCopyrightVideo: zCopyrightVideo, iIndexVideo: index},
									function(datas){
										if(datas.length>0){
											for(i=0; i<datas.length; i++){
												$('input[name='+Iname+']').val((datas[index-1]["zCopyrightVideo"]));	
											}
										}
									}
								);
							}
						)
				);
				
				var $btnsuppr =  $(dc('p')).addClass('btn-ajout-media');
				
				$btnsuppr.append(
					$(dc('a'))
						.addClass('suppression')
						.attr({href: '#', title: 'Supprimer'})
						.text('Supprimer')
				);

				var $separateur = $(dc('p')).addClass('separateur');
				
				$conteneur.append(
					$video,
					$legende,
					$copyright,
					$btnsuppr
				);

				$mainConteneur.append($separateur, $conteneur);

				return false;
			}
		);

		// ajout agence.
		$('.ajout-agence').live(
			'click',
			function()
			{
				var agenceLength = $('.agence-wrapper').length;
				agenceLength++;
				collAgenceLength = 1;

				var $agence = new div;
				$agence.addClass('clearfix cols cols3 agence-wrapper');

				var $label = new p;
				$label
					.addClass('label')
					.html('Agence associée<br /> à la MOE');

				var $srchList = new p;
				$srchList
						.addClass('clearfix listeAgence')
						.append( 
							$(new select)
								.attr({id: 'agence-liste_'+agenceLength, name: 'agence-liste_'+agenceLength, size: 5})
								.change(
										function()
										{
											$(this).parent().prev().find('input').val($(this).val());
											$(this).parent().parent().parent().next().show();
											$(this).parent().slideUp();
											var choix = $(this).val();
											if (choix != "")
											{
												var agenceMoe= choix.split('@&@_&@');	
												var agenceMoeId = agenceMoe[0];
												var agenceMoeLib = agenceMoe[1];
												var agenceMoeRoleActivite = agenceMoe[2];
												var agenceMoeVille = agenceMoe[3];
												var agenceMoeDecoupageNiv2 = agenceMoe[4];
												var agenceMoeDecoupageNiv1 = agenceMoe[5];
												if(agenceMoeId == 0){
													$('#agence-societe-id_'+agenceLength).val(0);
													$('#agence-rs-srch_'+agenceLength)
														.val(agenceMoeLib)
														.removeAttr("readonly","readonly");
													$('#agence-rs_'+agenceLength)
														.val(agenceMoeLib)
														.removeAttr("readonly","readonly");
													$('#agence-role_'+agenceLength)
														.val('')
														.attr("tmt:required","true")
														.attr("tmt:errorclass","error");
													$('#agence-ville_'+agenceLength)
														.val('')
														.attr("tmt:required","true")
														.attr("tmt:errorclass","error");

													$('#agence-localisation_'+agenceLength)
														.val(0)
														.removeAttr("disabled")
														.attr("tmt:required","true")
														.attr("tmt:errorclass","error")
														.attr("tmt:invalidIndex","0");

													$('#agence-localisation-autre_'+agenceLength)
														.val(0)
														.removeAttr("disabled")
														.attr("tmt:required","true")
														.attr("tmt:errorclass","error")
														.attr("tmt:invalidIndex","0");

													tmt_validatorInit();
												}else{
													$('#agence-societe-id_'+agenceLength).val(agenceMoeId);
													$('#agence-rs-srch_'+agenceLength).val(agenceMoeLib);
													$('#agence-rs_'+agenceLength).val(agenceMoeLib);
													$('#agence-role_'+agenceLength).val(agenceMoeRoleActivite);
													$('#agence-ville_'+agenceLength).val(agenceMoeVille);
													$('#agence-localisation_'+agenceLength).val(agenceMoeDecoupageNiv1);
													chargeListeFilsAgence(agenceMoeDecoupageNiv1, agenceMoeDecoupageNiv2, $('#urlChargementAgence').val(), agenceLength);
													$('#agence-localisation-autre_'+agenceLength).val(agenceMoeDecoupageNiv2);
													tmt_validatorInit();
													$('#agence-societe-id_'+agenceLength).attr("readonly","readonly");
													$('#agence-rs-srch_'+agenceLength).removeAttr("readonly","readonly");
													$('#agence-rs_'+agenceLength).attr("readonly","readonly");
													$('#agence-role_'+agenceLength)
														.val('')
														.attr("tmt:required","true")
														.attr("tmt:errorclass","error");
													$('#agence-ville_'+agenceLength).attr("readonly","readonly");
													$('#agence-localisation_'+agenceLength).attr("disabled","disabled");
												}
											};
										}
								)
						)

				var $srch = new p;
				$srch
					.addClass('colRsAgence mdrs clearfix')
					.append(
						$(new label)
							.attr({'for': 'agence-rs-srch_'+agenceLength})
							.text('Raison sociale'),
						$(new input)
							.attr({id: 'agence-societe-id_'+agenceLength, name: 'agence-societe-id_'+agenceLength, type: 'hidden', value:'0'}),
						$(new input)
							.attr({id: 'agence-rs-srch_'+agenceLength, name: 'agence-rs-srch_'+agenceLength, type: 'text'})
							.addClass('text  ch-rs'),
						$(new link)
							.attr({title: 'Valider', href: '#', url: $('#urlRechercheAgence').val()})
							.addClass('agence-valider')
							.text('Valider')
							.click(
								function()
								{
									var zUrl = $('#urlRechercheAgence').val();
									var _zParam = addslashes($('#agence-rs-srch_'+agenceLength).val());

									$.getJSON(zUrl, {raisonSociale:_zParam, iTypeIntervenant:1},
										function(datas){
											if(datas.length>0){
												//var html = "<option value='0@&@_&@"+_zParam+"'>Ma société n'est pas dans la liste</option>";
												var html = '<option value="0@&@_&@'+_zParam+'">Ma société n\'est pas dans la liste</option>';
												for(i=0; i<datas.length; i++){
													html += '<option value="' + datas[i]["id"] +"@&@_&@"+ datas[i]["raisonSociale"] +"@&@_&@"+"@&@_&@"+datas[i]["ville"] +"@&@_&@"+datas[i]["decoupageId"]+"@&@_&@"+datas[i]["decoupagePereId"]+'">' + datas[i]["raisonSociale"] + '</option>';
												}
												$('#agence-liste_'+agenceLength)
												.attr({url: $("#urlChargementAgence").val()})
												.html(html);
											}else{
												var html = '';
												html += '<option value="">Aucune agence MOE</option>';
												$('#agence-liste_'+agenceLength).html(html);
												$('.listeAgence').slideUp();
												$('.agence-contenu').slideDown();
												$('#agence-rs_'+agenceLength)
													.val(_zParam)
													.removeAttr("readonly")
													.attr("tmt:required","true")
													.attr("tmt:errorclass","error");

												$('#agence-societe-id_'+agenceLength)
													.val(0)
													.attr("tmt:required","true")
													.attr("tmt:errorclass","error");

												$('#agence-rs-srch_'+agenceLength)
													.val(_zParam)
													.removeAttr("readonly")
													.attr("tmt:required","true")
													.attr("tmt:errorclass","error");

												$('#agence-role_'+agenceLength)
													.val('')
													.removeAttr("readonly")
													.attr("tmt:required","true")
													.attr("tmt:errorclass","error");

												$('#agence-ville_'+agenceLength)
													.val('')
													.removeAttr("readonly")
													.attr("tmt:required","true")
													.attr("tmt:errorclass","error");

												$('#agence-localisation_'+agenceLength)
													.val(0)
													.removeAttr("disabled")
													.attr("tmt:required", "true")
													.attr("tmt:invalidindex", "0")
													.attr("tmt:errorclass", "error");

												$('#agence-localisation-autre_'+agenceLength)
													.val(0)
													.removeAttr("disabled")
													.attr("tmt:required", "true")
													.attr("tmt:invalidindex", "0")
													.attr("tmt:errorclass", "error");
											}	
										}
									);

									$(this).parent().next().slideDown();
									return false;
								}
							)
					);				

				var $rsSrch = new div;
				$rsSrch
					.addClass('form-content clearfix')
					.append(
						$(new div)
							.addClass('left')
							.append(
								$label,
								$srch,
								$srchList
							),
						$(new div)
							.addClass('right')
					);
				
				
				var $rs = new p;
				$rs
					.addClass('col1 ind')
					.append(
						$(new label)
							.attr({'for': 'agence-rs_'+agenceLength })
							.text('Raison sociale'),
						$(new input)
							.attr({id: 'agence-rs_'+agenceLength , name: 'agence-rs_'+agenceLength , type: 'text'})
							.addClass('text')
					);

				var $role = new p;
				$role
					.addClass('col2')
					.append(
						$(new label)
							.attr({'for': 'agence-role_'+agenceLength })
							.text('Rôle / Activité'),
						$(new input)
							.attr({id: 'agence-role_'+agenceLength , name: 'agence-role_'+agenceLength , type: 'text'})
							.addClass('text')
					);

				var $ville = new p;
				$ville
					.addClass('col3')
					.append(
						$(new label)
							.attr({'for': 'agence-ville_'+agenceLength })
							.text('Ville'),
						$(new input)
							.attr({id: 'agence-ville_'+agenceLength , name: 'agence-ville_'+agenceLength , type: 'text'})
							.addClass('text')
					);
				var $selectOpt = $(new select);
				$selectOpt.attr({id: 'agence-localisation_'+agenceLength , name: 'agence-localisation_'+agenceLength });

				var zUrl = $(this).attr("url");
				var zUrlFils = $(this).attr("urlFils");

				$.getJSON(zUrl, function(datas){
					if(datas.length>0) {
						var $opt = new option;
							$opt
								.val(0)
								.text('------------Sélectionnez------------');

							$selectOpt.append($opt);

						for(i=0;i<datas.length;i++) {
							var $opt = new option;
							$opt
								.val(datas[i].decoupage_id)
								.text(datas[i].decoupage_libelle);

							$selectOpt.append($opt);
						}
					}
				});

				var $loc = new p;
				$loc
					.addClass('col1 ind')
					.append(
						$(new label)
							.attr({'for': 'agence-localisation_'+agenceLength })
							.text('Localisation'),
						$selectOpt
					);

				var $selectOptAutres = $(new select);
				$selectOptAutres.attr({id: 'agence-localisation-autre_'+agenceLength , name: 'agence-localisation-autre_'+agenceLength });
				$selectOptAutres.append($(new option).text(''));

				$selectOpt.change(			
					function()
					{
						if($(this).val()!=0){
							$.getJSON(zUrlFils, {iP:$(this).val()}, function(datas){
								if(datas.length>0) {
									$selectOptAutres.empty();
									var $opt = new option;
										$opt
											.val(0)
											.text('------------Sélectionnez------------');
											$selectOptAutres.append($opt);
									for(i=0;i<datas.length;i++) {
										var $opt = new option;
										$opt
											.val(datas[i].decoupage_id)
											.text(datas[i].decoupage_libelle);
										$selectOptAutres.append($opt);
									}
								}
							});
						}else{
							$selectOptAutres.empty();
						}
					}
				);

				var $aloc = new p;
				$aloc
					.addClass('col2')
					.append(
						$(new label)
							.attr({'for': 'agence-localisation-autre_'+agenceLength })
							.html('&nbsp;'),
						$selectOptAutres
					);
				
				var $suppr = new p;
				$suppr
					.addClass('clearfix')
					.addClass('btn-ajout')
					.append(
						$(new link)
							.addClass('supprimer-agence')
							.attr({title: 'Supprimer'})
							.text('Supprimer')
					);

				$agence.css('padding-top', '20px');

				if (collAgenceLength != 1){
					var collAgenceLength = $('.collaborateur-wrapper-agence').length;
					collAgenceLength++;
				}	

				var $collaborateurAgence = new div;
				$collaborateurAgence
					.addClass('collaborateur-wrapper-agence clearfix')
					.attr({'style':'padding-top: 20px;'});

				var $collaborateurAgenceLabel = new p;
				$collaborateurAgenceLabel
					.addClass('label')
					.html("Collaborateurs de l'agence");

				var $collaborateurNomPrenom = new p;
				$collaborateurNomPrenom
					.addClass('col1')
					.append(
						$(new label)
							.attr({'for': 'collab-rs'})
							.text('Prénom et nom'),
						$(new input)
							.attr({id: 'collab-rs-'+agenceLength+"_"+collAgenceLength, name: 'collab-rs-'+agenceLength+"_"+collAgenceLength, type: 'text'})
							.addClass('text')
					);


				var $collaborateurFonction = new p;
				$collaborateurFonction
					.addClass('coll')
					.append(
						$(new label)
							.attr({'for': 'collab-fonction'})
							.text('Fonction'),
						$(new input)
							.attr({id: 'collab-fonction-'+agenceLength+"_"+collAgenceLength, name: 'collab-fonction-'+agenceLength+"_"+collAgenceLength, type: 'text'})
							.addClass('text')
					);

				$collaborateurAgence.append(
					$collaborateurAgenceLabel,
					$collaborateurNomPrenom,
					$collaborateurFonction
				);

				var $collaborateurBttnAjout = new p;
					$collaborateurBttnAjout
						.addClass('clearfix btn-ajout')
						.append(
							$(new link)
								.addClass('ajout ajoutCollaborateurAgence')
								.attr({'title': 'Ajouter un collaborateur', 'href':'#'})
								.text('Ajouter un collaborateur')
						);				

				$collaborateurBttnAjout.append();

				$agence.append(
					$rsSrch,
					$(new div)
						.addClass('agence-contenu')
						.css({display: 'none'})
						.append(
							$rs,
							$role,
							$ville,
							$loc,
							$aloc,
							$suppr

						),
					$(new div)
						.addClass('collaborateur-agence-contenu')
						.append(
								$(new input)
									.attr({id: 'collab-nb', name: 'collab-nb_'+agenceLength, type: 'hidden', value:'1'})
									.addClass('text'),
								$collaborateurAgence,
								$collaborateurBttnAjout
						)

				);

				$(this).parent().prev().after($agence);

				return false;
			}
		);

		// ajout materiau.
		$('.btn-ajout-materiau > .ajout').click(
			function()
			{
				var $el = $(this).parent().prev();
				
				$(this).ajout({
					duplicate:		$el,
					vraiLabel:		true,
					suppression:	true,
					supprLabel:		'Supprimer',
					onComplete:		function()
									{
										var $elem = $el.parent().find('.materiau-wrapper');
										var nbr = $elem.length;
										
										$elem.rename({inputs: true});
										
										for(i=0; i<nbr; i++) {
											$el.parent().find('.materiau-wrapper').eq(i).find('p:first').find('label').text('Matériau '+(i+1));
											//MAJ 17/11/2009
											if($el.parent().find('.materiau-wrapper').eq(i).find('p:first').next().find('input').val()!=""){
												$el.parent().find('.materiau-wrapper').eq(i).find('p:first').next().css('display','block');
											}else{
												$el.parent().find('.materiau-wrapper').eq(i).find('p:first').next().css('display','none');
											}
											$el.parent().find('.materiau-wrapper').eq(i).find('p:nth-child(2)').removeClass();
											$el.parent().find('.materiau-wrapper').eq(i).find('p:nth-child(2)').addClass('clearfix').addClass('small').addClass('mater-autre_'+(i+1));

											if($el.parent().find('.materiau-wrapper').eq(i).find('p:last').prev().find('input').val()!=""){
												$el.parent().find('.materiau-wrapper').eq(i).find('p:last').prev().css('display','block');
											}else{
												$el.parent().find('.materiau-wrapper').eq(i).find('p:last').prev().css('display','none');
											}
											$el.parent().find('.materiau-wrapper').eq(i).find('p:nth-child(4)').removeClass();
											$el.parent().find('.materiau-wrapper').eq(i).find('p:nth-child(4)').addClass('clearfix').addClass('small').addClass('mater-autre-prec_'+(i+1));
											//FIN MAJ 17/11/2009
											
										}
									}
				});
				
				return false;
			}
		);
		
		// ajout intervenant.
		$('.ajoutIntervenant').click(
			function()
			{
				var $this = $(this);
				var $el = $this.parent().prev();

				$(this).ajout({
					parent:			$this.parent().parent(),
					child:			'.intervenant-wrapper',
					duplicate:		$el,
					vraiLabel:		true,
					suppression: 	true,
					onComplete:		function()
									{
										var $elem = $this.parent().parent().find('.intervenant-wrapper');
										var test = $elem.rename({inputs: true, labels: true});
									}
				});
				
				return false;
			}
		);
		
		// ajout collaborateur.
		$('.ajoutCollaborateur').click(
			function()
			{
				var $this = $(this);
				var $el = $this.parent().prev();
				$(this).ajout({
					parent:			$this.parent().parent(),
					child:			'.collaborateur-wrapper',
					duplicate:		$el,
					vraiLabel:		false,
					suppression: 	true,
					supprLabel:		'x',
					onComplete:		function()
									{
										var $elem = $this.parent().parent().find('.collaborateur-wrapper');
										$elem.rename({inputs: true, labels: true});
									}
				});
				
				return false;
			}
		);

		// ajout collaborateurAgence
		$('.ajoutCollaborateurAgence').live('click',
			function()
			{
				var $this = $(this);
				var $el = $this.parent().prev();

				$(this).ajoutCollaborateur({
					parent:			$this.parent().parent(),
					child:			'.collaborateur-wrapper-agence',
					duplicate:		$el,
					vraiLabel:		false,
					suppression: 	true,
					supprLabel:		'x',
					onComplete:		function()
									{
										var $elem = $this.parent().parent().find('.collaborateur-wrapper-agence');
										$elem.renameCollab({inputs: true});
									}
				});
				return false;
			}
		);
		
		// ajout cotraitant.
		$('.cotraitant-wrapper').checkItem();
		
		$('.ajoutCotraitant').click(
			function()
			{
				var $this = $(this);
				var $el = $this.parent().prev();
				
				$(this).ajoutCotraitant({
					parent:			$this.parent().parent(),
					child:			'.cotraitant-wrapper',
					duplicate:		$el,
					vraiLabel:		true,
					suppression:	true,
					onComplete:		function()
									{
										var $elem = $this.parent().parent().find('.cotraitant-wrapper');
										$elem.rename({inputs:true, labels:true});
									}
				});
				
				return false;
			}
		);
		
		// ajout entreprise.
		$('.ajoutEntreprise').click(
			function()
			{
				var $this = $(this);
				var $el = $this.parent().prev();

				$(this).ajout({
					parent:			$this.parent().parent(),
					child:			'.entreprise-wrapper',
					onLoad:			function()
									{
										// exemple test sur les champs.
										var test = false;
										var el = $('.entreprise-wrapper ').length;
										var cnt = 0;
										
										$('.entreprise-wrapper ').each(
											function(index)
											{
												var value = $(this).find('p').eq(1).find('input').val();
												
												if(value) {
													cnt++;
												} else {
													alert('Veuillez remplir le champ ' + (index+1));
												}
											}
										);
										
										if(cnt==el) test = true;
										
										return test;
									},
					duplicate:		$el,
					vraiLabel:		true,
					fauxLabel:		true,
					fauxLabelRepos:	true,
					suppression:	true,
					supprLabel:		'Supprimer',
					onComplete:		function()
									{
										var $elem = $this.parent().parent().find('.entreprise-wrapper');
										$elem.rename({inputs: true, flabels:true});
									}
				});
				
				return false;
			}
		);
		
		// ajout produit.
		$('.ajoutProduit').click(
			function()
			{
				var $this = $(this);
				var $el = $this.parent().prev();
				
				$(this).ajout({
					duplicate:		$el,
					vraiLabel:		true,
					fauxLabel:		true,
					fauxLabelRepos:	true,
					suppression:	true,
					supprLabel:		'Supprimer',
					onComplete:		function()
									{
										var $elem = $this.parent().parent().find('.produit-wrapper');
										$elem.rename({inputs: true, flabels:true});
									}
				});
				
				return false;
			}
		);
		
		//toutes surface.
		$('.toutes-surfaces').click(
			function()
			{
				$(this).hide();
				$(this).parent().find('small').hide();
				$(this).parent().parent().find('p').show();
				
				return false;
				
			}
		);
		
		// deplier/replier.
		$('.btn-depli a').click(
			function()
			{
				$(this).parent().parent().find('p').show();
				$(this).parent().hide();
				
				return false;
				
			}
		);
		
		$('.btn-repli a').click(
			function()
			{
				$(this).parent().hide();
				$(this).parent().parent().find('p').not(':first').hide();
				if($(this).parent().prev('.btn-depli').length != 0) {
					$(this).parent().prev('.btn-depli').show()
				} else {
					$(this).parent().parent().find('.toutes-surfaces').show();
					$(this).parent().parent().find('small').show();
				}
				
				return false;
			}
		);
		
		
		
		// auto clearing.
		$('input.autoclear').each(
			function() {
				$(this)
					.focus(
						function()
						{
							if ($(this).attr('type') != 'password') {
								var valeur = $(this).val();
								var vars = $(this).attr('title').toLowerCase();
								var regexp = new RegExp ('(?:^|^\\s+)' + vars + '(?:$|\\s+$)' , 'gi');
								var check = regexp.test(valeur);
							}
							if (check) $(this).val('');
						}
					)
					
					.blur(
						function()
						{
							var valeur = $(this).val();
							var vars = $(this).attr('title').toLowerCase();
							var regexp = new RegExp ('(?:^|^\\s+)' + vars + '(?:$|\\s+$)' , 'gi');
							var check = regexp.test(valeur);
							
							if ($(this).val().length == 0 || check)
								$(this).val($(this).attr('title'));
						}
					);
			}
		);
		
		// affichage liste rs.
		$('.rs-valider').click(
			function()
			{	
				var zUrl = $(this).attr("url");

				$(this).parent().next('.listeRs').slideDown();
				var _zParam = addslashes($('#moa-rs-srch').val());
				$.getJSON(zUrl, {raisonSociale:_zParam, iTypeIntervenant:2}, function(datas){
					if(datas.length>0){
						//var html = "<option value='0@&@_&@"+_zParam+"'>Ma société n'est pas dans la liste</option>";
						var html = '<option value="0@&@_&@'+_zParam+'">Ma société n\'est pas dans la liste</option>';
						for(i=0; i<datas.length; i++){
							html += '<option value="' + datas[i]["id"] +"@&@_&@"+ datas[i]["raisonSociale"] +"@&@_&@"+datas[i]["ville"] +"@&@_&@"+datas[i]["decoupageId"]+"@&@_&@"+datas[i]["decoupagePereId"]+'">' + datas[i]["raisonSociale"] + '</option>';
						}
						$('[name=rs-liste]').html(html);
						$('.rsMoa-wrapper').hide();
					}else{
						var html = '';
						html += '<option value="">Aucun MOA</option>';
						$('[name=rs-liste]').html(html);

						$('.listeRs').slideUp();
						$('.rsMoa-wrapper').show();
						$('#moa-rs-srch')
							.val(_zParam)
							.removeAttr("readonly");
						$('#rs-id').val(0);
						$('#moa-rs')
							.val(_zParam)
							.attr("tmt:required","true")
							.attr("tmt:errorclass", "error")
							.removeAttr("readonly");
						$('#moa-ville')
							.val('')
							.attr("tmt:required","true")
							.attr("tmt:errorclass", "error")
							.removeAttr("readonly");
						
						$.getJSON($('#urlChargementDecoupageNiveau1').val(), function(datas){
							if(datas.length > 0){
								var html1 = '<option value="0">------------S&eacute;lectionnez------------</option>';
								for(i=0; i<datas.length; i++){
									html1 += '<option value="'+datas[i]['decoupage_id']+'">' + datas[i]['decoupage_libelle'] + '</option>';
								}
								$('#moa-localisation').html(html1);
							}
						});
						$('#moa-localisation')
							.val(0)
							.attr("tmt:required","true")
							.attr("tmt:errorclass","error")
							.attr("tmt:invalidIndex","0")
							.removeAttr('disabled');
						$('#moa-localisation2')
							.html('')
							.attr("tmt:required","true")
							.attr("tmt:errorclass","error")
							.attr("tmt:invalidIndex","0")
							.attr('disabled', 'disabled');
					}
				});
				return false;
			}
		);
		
		$('#moa-localisation').change(
			function(){
				var choix = $(this).val();
				var zUrlChargementDecoupageNiveau2 = $('#urlChargementDecoupageNiveau2').val();
				$.getJSON(zUrlChargementDecoupageNiveau2, {iP:choix}, function(datas){
					if(datas.length > 0){
						var html1 = '<option value="0">------------S&eacute;lectionnez------------</option>';
						for(i=0; i<datas.length; i++){
							html1 += '<option value="'+datas[i]['decoupage_id']+'">' + datas[i]['decoupage_libelle'] + '</option>';
						}
						$('#moa-localisation2')
							.html(html1)
							.val(0)
							.removeAttr('disabled')
							.attr("tmt:required","true")
							.attr("tmt:errorclass","error")
							.attr("tmt:invalidIndex","0");
					}
				});
			}
		);		

		$('#rs-liste').change(
			function()
			{
				$('.rsMoa-wrapper').show();
				var choix = $(this).val();
				var rs= choix.split('@&@_&@');	
				var rsId = rs[0];
				var rsLib = rs[1];
				var rsVille = rs[2];
				var rsDecoupageId = rs[3];
				var rsDecoupagePereId = rs[4];

				if (rsId != 0){
					$('#rs-id').val(rsId);
					$('#moa-rs')
						.val(rsLib)
						.attr('readonly', 'readonly');	
					$('#moa-rs-srch')
						.val(rsLib)
					$('#moa-ville')
						.val(rsVille)
						.attr('readonly', 'readonly');	
					chargeListeFilsMoa(rsDecoupagePereId, rsDecoupageId, $('#urlChargementMoa').val(), $('#urlChargementDecoupageNiveau1').val());
					tmt_validatorInit();
				}else{
					$('#rs-id').val(0);
					$('#moa-rs')
						.val(rsLib)
						.attr("tmt:required","true")
						.attr("tmt:errorclass","error")
						.removeAttr('readonly');	
					$('#moa-rs-srch')
						.val(rsLib)
						.removeAttr('readonly');	
					$('#moa-ville')
						.val('')
						.attr("tmt:required","true")
						.attr("tmt:errorclass","error")
						.removeAttr('readonly');	
					$('#moa-localisation')
						.removeAttr('disabled')
						.attr("tmt:required","true")
						.attr("tmt:errorclass","error")
						.attr("tmt:invalidIndex","0");
					$('#moa-localisation2')
						.removeAttr('disabled')
						.attr("tmt:required","true")
						.attr("tmt:errorclass","error")
						.attr("tmt:invalidIndex","0");

					chargeListeFilsMoa(rsDecoupagePereId, rsDecoupageId, $('#urlChargementMoa').val(), $('#urlChargementDecoupageNiveau1').val());
					tmt_validatorInit();
				}
				$('.listeRs').slideUp();
			}
		);
		
		// affichage liste mandataire.
		$('.mandataire-valider').click(
			function()
			{	
				var zUrl = $(this).attr("url");
				$(this).parent().next('.listeMandataire').slideDown();
				var _zParam = addslashes($('#moe-rs-srch').val());
				$.getJSON(zUrl, {raisonSociale:_zParam, iTypeIntervenant:1}, function(datas){
					if(datas.length>0){
						var html = '<option value="0@&@_&@'+_zParam+'">Ma société n\'est pas dans la liste</option>';
						for(i=0; i<datas.length; i++){
							html += '<option value="' + datas[i]["id"] +"@&@_&@"+ datas[i]["raisonSociale"] +"@&@_&@"+"@&@_&@"+datas[i]["ville"] +"@&@_&@"+datas[i]["decoupageId"]+"@&@_&@"+datas[i]["decoupagePereId"]+'">' + datas[i]["raisonSociale"] + '</option>';
						}
						$('[name=mandataire-liste]').html(html);
					}else{
						var html = '';
						html += '<option value="">Aucun MOE</option>';
						$('[name=mandataire-liste]').html(html);
						$('#moe-rs-srch-id').val(0);

						// temporaire affichage autres champ.
						$('.mandataire').slideDown();
						$('.listeMandataire').slideUp();
						
						$('#moe-rs-srch')
							.val(_zParam)
							.removeAttr("readonly");
						
						$('#moe-rs')
							.val(_zParam)
							.removeAttr("readonly")
							.attr("tmt:required","true")
							.attr("tmt:errorclass","error");

						$('#moe-rs-srch-id').val(0);
						$('#moe-ville')
							.val('')
							.removeAttr("readonly")
							.attr("tmt:required","true")
							.attr("tmt:errorclass","error");

						$('#moe-localisation').val(0);
						
						$('#moe-localisation2').val(0);

						$('#moe-localisation')
							.removeAttr("disabled")
							.attr("tmt:required","true")
							.attr("tmt:errorclass","error")
							.attr("tmt:invalidIndex","0");
						$('#moe-localisation2')
							.html("")
							.attr("disabled", "disabled")
							.attr("tmt:required","true")
							.attr("tmt:errorclass","error")
							.attr("tmt:invalidIndex","0");
					}
				});
				return false;
			}
		);
		
		$('.listeMandataire select').change(
			function()
			{
				var zUrl = $(this).attr("url");

				// temporaire changement valeur.
				var choix = $(this).val();
				var moe= choix.split('@&@_&@');	
				var moeId = moe[0];
				var moeLib = moe[1];
				var moeRoleActivite = moe[2];
				var moeVille = moe[3];
				var moeDecoupageNiv2 = moe[4];
				var moeDecoupageNiv1 = moe[5];
				if (moeId == 0){
					$('#moe-rs-srch').val(moeLib);
					$('#moe-rs').val(moeLib);
					$('#moe-rs-srch-id').val();
					$('#moe-role')						
						.val('')
						.attr("tmt:required","true")
						.attr("tmt:errorclass","error");
					$('#moe-ville')
						.removeAttr("readonly")
						.val('')
						.attr("tmt:required","true")
						.attr("tmt:errorclass","error");
					$('#moe-localisation').val(0);
					$('.mandataire').slideDown();
					$('.listeMandataire').slideUp();
					$('#moe-rs').removeAttr("readonly","readonly");
					$('#moe-localisation')
						.attr("tmt:required","true")
						.attr("tmt:errorclass","error")
						.attr("tmt:invalidIndex","0")
						.removeAttr("disabled");
					$('#moe-localisation2')
						.removeAttr("disabled")
						.val(0)
						.html('')
						.attr("tmt:required","true")
						.attr("tmt:errorclass","error")
						.attr("tmt:invalidIndex","0");
					tmt_validatorInit();
				}else{
					$('#moe-rs-srch').val(moeLib);
					$('#moe-rs').val(moeLib);
					$('#moe-rs-srch-id').val(moeId);
					$('#moe-role').val(moeRoleActivite);
					$('#moe-ville').val(moeVille);
					$('#moe-localisation').val(moeDecoupageNiv1);
					//On charge les niveau 2
					chargeListeFils(moeDecoupageNiv1, moeDecoupageNiv2,zUrl);
					$('#moe-localisation2').val(moeDecoupageNiv2);
					// temporaire affichage autres champ.
					$('.mandataire').slideDown();
					$('.listeMandataire').slideUp();

					$('#moe-rs').attr("readonly","readonly");
					$('#moe-role')
						.val('')
						.attr("tmt:required","true")
						.attr("tmt:errorclass","error");
					$('#moe-ville').attr("readonly","readonly");
					$('#moe-localisation').attr("disabled","disabled");
					tmt_validatorInit();
				}				
			}
		);

		// ajax upload image.
		$('.media-image .media-wrapper').find(':file').each(
			function()
			{

				var Iname = $(this).attr('name');
				var zUrlImage = $(this).attr('url');
				var index = Iname.split('_')[1];

				var ajxImage = new Ajax_upload (
					Iname,
					{
						//action:		j_basepath + "index.php?module=projet&action=projetFo:asyncUploadProjetImage",
						action:	zUrlImage,
						name:		'upload-image_'+index,
						data:		{
							inputName:	'upload-image_'+index
						},
						onChange: function (oFile, zExtension) {
							// reset data.
							ajxImage.setData(
								{
									inputName: 'upload-image_'+index
								}
							);
						},
						onSubmit:	function (oFile, zExtension) {
							if (! (zExtension && /^(jpg)$/.test(zExtension))){
								alert('Error: Format de fichier incorrect');
								return false;
							}
							$(this._button).attr('disabled','disabled');
						},
						onComplete:	function (oFile, _zRespData) {
							$('input[name='+Iname+']').remove();
							$(".media-image")
								.empty()
								.append($(_zRespData)) ;
							ajxImage.destroy();
						}
					}
				) ;

				
			}
		);

		// ajax upload video.
		$('.media-video .media-wrapper').find(':file').each(
			function()
			{
				var Iname = $(this).attr('name');
				var index = Iname.split('_')[1];
				var zUrlVideo = $(this).attr('urlVideo');

				var ajxVideo = new Ajax_upload (
					Iname,
					{
						action:		zUrlVideo,
						name:		'upload-video_'+index,
						data:		{
							inputName:	'upload-video_'+index
						},
						onChange: function (oFile, zExtension) {
							// reset data.
							ajxVideo.setData(
								{
									inputName: 'upload-video_'+index
								}
							);
						},
						onSubmit:	function (oFile, zExtension) {
							if (! (zExtension && /^(flv|avi)$/.test(zExtension))){
								alert('Error: Format de fichier incorrect');
								return false;
							}
							$(this._button).attr('disabled','disabled');
						},
						onComplete:	function (oFile, _zRespData) {
							$('input[name='+Iname+']').remove();
							$(".media-video")
								.empty()
								.append($(_zRespData)) ;
							ajxVideo.destroy();
						}
					}
				);
			}
		);

		// test legende et copyright
		function testLegendeCopyright(legende, copyright, ch) {
			if (legende == '' || copyright == '')
			{
				alert('Veuillez renseigner d\'abord la Légende et Copyright / Société - Auteur de l\''+ch);
				return false;
			}

			return true;
		}

		function addslashes (str) {
			//var newStr = (str+'').replace(/([\\"'])/g, "\\$1").replace(/\u0000/g, "\\0");
			return str.replace('"', "'");
		}
		// chare liste fils.
		function chargeListeFils(selectPere, selectFils, zUrl)
		{
			$.getJSON(zUrl, {iP:selectPere}, function(datas){
				if(datas.length>0)
				{
					$('#moe-role').attr("tmt:required","true");
					$('#moe-role').attr("tmt:errorclass","error");

					$('#moe-localisation').val(selectPere);

					$('#moe-localisation2').attr("tmt:required","true");
					$('#moe-localisation2').attr("tmt:errorclass","error");
					$('#moe-localisation2').attr("tmt:invalidIndex","0");

					$('#moe-localisation2').removeAttr("disabled");
					$('#ligne_none').show();
					var html = '<option value="0" selected="selected">'+'------------S&eacute;lectionnez------------'+'</option>';
					for(i=0; i< datas.length; i++)
					{
						html += '<option value="' + datas[i]["decoupage_id"]+'"  >' + datas[i]["decoupage_libelle"] + '</option>';
					}
					$('#moe-localisation2').html(html);
					$('#moe-localisation2').val(selectFils);
					$('#moe-localisation2').attr('disabled','disabled');
					$('#ligne_none').hide();
				}
			});
		};

		// chare liste fils.
		function chargeListeFilsMoa(selectPere, selectFils, zUrl1, zUrl2)
		{
			$.getJSON(zUrl2, function(datas){
				if(datas.length > 0){
					var html1 = '<option value="0" selected="selected">'+'------------S&eacute;lectionnez------------'+'</option>';;
					for(i=0; i<datas.length; i++){
						html1 += '<option value="'+datas[i]['decoupage_id']+'">' + datas[i]['decoupage_libelle'] + '</option>';
					}
					$('#moa-localisation').html(html1);
				}
			});

			$.getJSON(zUrl1, {iP:selectPere}, function(datas){
				if(datas.length>0)
				{
					$('#moa-localisation').val(selectPere);
					$('#moa-localisation').attr('disabled','disabled');
					$('#moa-localisation2').attr("tmt:required","true");
					$('#moa-localisation2').attr("tmt:errorclass","error");
					$('#moa-localisation2').attr("tmt:invalidIndex","0");

					var html = '<option value="0" selected="selected">'+'------------S&eacute;lectionnez------------'+'</option>';
					for(i=0; i< datas.length; i++)
					{
						html += '<option value="' + datas[i]["decoupage_id"]+'"  >' + datas[i]["decoupage_libelle"] + '</option>';
					}
					$('#moa-localisation2').html(html);
					$('#moa-localisation2').val(selectFils);
					$('#moa-localisation2').attr('disabled','disabled');
					//$('#ligne_none').hide();
				}
			});
		};

		// chare liste fils.
		function chargeListeFilsAgence(selectPere, selectFils, zUrl, iIndice)
		{
			$.getJSON(zUrl, {iP:selectPere}, function(datas){
				if(datas.length>0)
				{
					$('#agence-role_'+iIndice).attr("tmt:required","true");
					$('#agence-role_'+iIndice).attr("tmt:errorclass","error");

					$('#agence-localisation_'+iIndice).val(selectPere);
	
					$('#agence-localisation-autre_'+iIndice).removeAttr("disabled");
					$('#agence-localisation-autre_'+iIndice).attr("tmt:required","true");
					$('#agence-localisation-autre_'+iIndice).attr("tmt:errorclass","error");
					$('#agence-localisation-autre_'+iIndice).attr("tmt:invalidIndex","0");

					$('#agence-localisation-autre_'+iIndice).removeAttr("disabled");
					
					var html = '<option value="0" selected="selected">'+'------------S&eacute;lectionnez------------'+'</option>';
					for(i=0; i< datas.length; i++)
					{
						html += '<option value="' + datas[i]["decoupage_id"]+'"  >' + datas[i]["decoupage_libelle"] + '</option>';
					}
					$('#agence-localisation-autre_'+iIndice).html(html);
					$('#agence-localisation-autre_'+iIndice).val(selectFils);
					$('#agence-localisation-autre_'+iIndice).attr('disabled','disabled');
				}
			});
		};
	}
);