/*
	Copyright © 2006, JFG Networks, All rights reserved
*/

// JavaScript Document

if (!OB)
{
	var OB = {};
}
// Variables settées dans les templates
OB.vars = {};
OB.vars.lang;
// methode pour réécrire les url en prod
OB.rewriteHost = function(url)
{
	return url.replace(
		/^(http:\/\/)(.*?)(\/.*?)$/,
		'$1' + window.location.host + '$3'
	);
};

// On DOM ready events
YAHOO.util.Event.onDOMReady(
	function()
	{
		var dialogs = YAHOO.util.Dom.getElementsByClassName(
			'linkAddComment',
			'a'
		);
		var recommands = YAHOO.util.Dom.getElementsByClassName(
			'linkRecommend',
			'a'
		);
		
		// on affiche les liens recommander
		YAHOO.util.Dom.setStyle(
			recommands, 'visibility', 'visible'
		);
		
		dialogs.push(
			recommands
		);
		
		// Add comment onclick event
		YAHOO.util.Event.addListener(
			dialogs,
			'click',
			function(e)
			{
				YAHOO.util.Event.preventDefault(e);
				
				var isComment = YAHOO.util.Dom.hasClass(
					this,
					'linkAddComment'
				);
				
				var d = new OB.Diablog(
					{
						width: 540/*isComment ?
							540 : 900*/,
						noButton: true,
						noEnter: true,
						nocache: true
					}
				);
				
				d.isComment = isComment;
				
				d.setTitle(
					this.innerHTML.replace(/\s{2}/gi, '').substr(0,1).toUpperCase() +
					this.innerHTML.replace(/\s{2}/gi, '').substr(1).toLowerCase()
				);
				d.setContentFromAjax(
					OB.rewriteHost(this.href) + '&ajax=1',
					function(a)
					{
						if (this.getEl().getElementsByTagName('h2').length == 0)
						{
							// Comments are disabled
							this.addButton(
								OB.Diablog.LABEL_CLOSE,
								{
									click: function()
									{
										this.close();
									},
									scope: this
								}
							);
							return;
						}
						// Get and set title from legend
						var legend = this.getEl().getElementsByTagName('h2')[0];
						this.setTitle(
							legend.innerHTML
						);
						legend.parentNode.removeChild(
							legend
						);
						
						// Get the hidden inputs names
						var f = this.getEl().getElementsByTagName('form')[0];
						var inputs;
						try
						{
							if (!f.ajaxkeys)
							{
								throw 'no ajaxkey';
							}
							eval('inputs = ' + f.ajaxkeys.value);
						}
						catch (e)
						{
							inputs = {};
						}
						f.keys = {};
						for (i in inputs)
						{
							var key;
							if (key = i.match(/^_(.*)$/))
							{
								f.keys[key[1]] = f[inputs[i]];
							}
						}
						
						// Find the reset and submt button
						var defaultForm = YAHOO.util.Dom.getElementsByClassName(
							'default',
							'form',
							this.getEl()
						);
						if (defaultForm.length == 0)
						{
							defaultForm = this.getEl().getElementsByTagName('form');
						}
						var reset = false;
						var submit = false;
						
						if (defaultForm.length != 0)
						{
							defaultForm = defaultForm[0];
							
							var ipts = defaultForm.getElementsByTagName('input');
							for (var i = 0; ipts[i]; i++)
							{
								if (ipts[i].getAttribute('type') == 'reset')
								{
									reset = ipts[i];
								}
								if (ipts[i].getAttribute('type') == 'submit')
								{
									submit = ipts[i];
									// Replacing submit input into form as hidden
									var hiddenSubmit = document.createElement('input');
									hiddenSubmit.name = submit.name;
									hiddenSubmit.value = submit.value;
									hiddenSubmit.type = 'hidden';
									defaultForm.appendChild(
										hiddenSubmit
									);
								}
							}
						}
						// Close button
						if (reset)
						{
							reset.parentNode.removeChild(
								reset
							);
							this.addButton(
								reset.value,
								{
									click: function()
									{
										this.close();
									},
									scope: this
								}
							);
						}
						
						if (this.isComment)
						{
							// Check OB_Editor
							f.editor = YAHOO.util.Dom.hasClass(
								f.keys.comment,
								'OB_Editor'
							);
							if (f.editor)
							{
								f.keys.comment.style.visibility = 'hidden';
								if (OB_Editors[0])
								{
									OB_Editors[0].destroy();
								}
								f.editor = new OB_Editor(
									f.keys.comment,
									{
										toolbar: OB_Editor.TOOLBAR_COMMENTS,
										width: 495,
										bodyClass: 'comment',
										lang: OB.vars.lang
									}
								);
							}
							
							// Submit dialog
							if (submit)
							{
								submit.parentNode.removeChild(
									submit
								);
								this.addButton(
									submit.value,
									{
										click: function()
										{
											f = this.dialog.getEl().getElementsByTagName('form')[0];
										
											// Getting tiny mce input
											if (f.editor)
											{
												f.editor.putValueInElmt();
											}
										
											YAHOO.util.Connect.setForm(f);
											var fok = true;
										
											// Testing inputs
											// Comment
											if (f.keys.comment.value == '')
											{
												fok = false;
												if (f.editor)
												{
													YAHOO.util.Dom.setStyle(
														[YAHOO.util.Dom.getElementsByClassName(
															'mceLayout',
															'table',
															f
														)[0],
														YAHOO.util.Dom.getElementsByClassName(
															'mceToolbar',
															'td',
															f
														)[0],
														YAHOO.util.Dom.getElementsByClassName(
															'mceIframeContainer',
															'td',
															f
														)[0]],
														'border-color', 'red'
													);
												}
												else
												{
													YAHOO.util.Dom.addClass(
														f.keys.comment,
														'error'
													);
												}
											}
											else
											{
												if (f.editor)
												{
													YAHOO.util.Dom.setStyle(
														[YAHOO.util.Dom.getElementsByClassName(
															'mceLayout',
															'table',
															f
														)[0],
														YAHOO.util.Dom.getElementsByClassName(
															'mceToolbar',
															'td',
															f
														)[0],
														YAHOO.util.Dom.getElementsByClassName(
															'mceIframeContainer',
															'td',
															f
														)[0]],
														'border-color', '#ccc'
													);
												}
												else
												{
													YAHOO.util.Dom.removeClass(
														f.editor ?
															f.keys.comment.parentNode.getElementsByTagName('iframe')[0] :
															f.keys.comment,
														'error'
													);
												}
											}
											// mail
											if ((f.keys.sendmail &&
												f.keys.sendmail.checked &&
												f.keys.mail.value == '') ||
												(f.keys.mail.value != '' &&
												!f.keys.mail.value.match(
													/^((([a-z]|[0-9]|!|#|$|%|&|'|\*|\+|\-|\/|=|\?|\^|_|`|\{|\||\}|~)+(\.([a-z]|[0-9]|!|#|$|%|&|'|\*|\+|\-|\/|=|\?|\^|_|`|\{|\||\}|~)+)*)@((((([a-z]|[0-9])([a-z]|[0-9]|\-){0,61}([a-z]|[0-9])\.))*([a-z]|[0-9])([a-z]|[0-9]|\-){0,61}([a-z]|[0-9])\.)[\w]{2,4}|(((([0-9]){1,3}\.){3}([0-9]){1,3}))|(\[((([0-9]){1,3}\.){3}([0-9]){1,3})\])))$/
												)))
											{
												fok = false;
												YAHOO.util.Dom.addClass(
													f.keys.mail,
													'error'
												);
											}
											else
											{
												YAHOO.util.Dom.removeClass(
													f.keys.mail,
													'error'
												);
											}
											// name
											if (f.keys.name.value == '')
											{
												fok = false;
												YAHOO.util.Dom.addClass(
													f.keys.name,
													'error'
												);
											}
											else
											{
												YAHOO.util.Dom.removeClass(
													f.keys.name,
													'error'
												);
											}
											// Site
											if (f.keys.site.value != '' &&
												!f.keys.site.value.match(
													/^(([\w]+:)?\/\/)?(([\d\w]|%[a-fA-f\d]{2,2})+(:([\d\w]|%[a-fA-f\d]{2,2})+)?@)?([\d\w][-\d\w]{0,253}[\d\w]*\.)+[\w]{2,4}(:[\d]+)?(\/([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)*(\?(&?([-+_~.\d\w]|%[a-fA-f\d]{2,2})=?)*)?(#([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)?$/
												))
											{
												fok = false;
												YAHOO.util.Dom.addClass(
													f.keys.site,
													'error'
												);
											}
											else
											{
												YAHOO.util.Dom.removeClass(
													f.keys.site,
													'error'
												);
											}
										
											if (fok)
											{
												// Enlevage du texte nok
												YAHOO.util.Dom.setStyle(
													YAHOO.util.Dom.getElementsByClassName(
														'infonok',
														'p',
														f
													)[0],
													'visibility', 'hidden'
												);
												
												// Button label : wait
												this.deactivate();
												YAHOO.util.Connect.asyncRequest(
													f.method,
													OB.rewriteHost(f.action) + '&ajax=1',
													{
														success: function(o)
														{
															try
															{
																eval('var output = ' + o.responseText);
																
																if (!output.errors)
																{
																	this.dialog.close(
																		output.ok,
																		{
																			type: OB.Diablog.TYPE_OK,
																			fn: function()
																			{
																				// Adding into the comments list
																				var comsList = YAHOO.util.Dom.getElementsByClassName(
																					'commentsList',
																					'div'
																				);
																				if (comsList[0])
																				{
																					var lastComs = YAHOO.util.Dom.getElementsByClassName(
																						'commentContainer',
																						'div',
																						comsList[0]
																					);
																					
																					var f = this.getEl().getElementsByTagName('form')[0];
																				
																					// We are on a comments list
																					if (YAHOO.util.Dom.hasClass(
																							comsList[0],
																							'addEnding'
																						))
																					{
																						// We add comments end of list
																						var newCom = lastComs[lastComs.length - 1].cloneNode(true);
																						newCom.id = 'comment' + output.comment_ref;
																						
																						newCom.getElementsByTagName('div')[1].innerHTML =
																							output.text.replace(
																								'__NB__',
																								parseInt(
																									newCom.getElementsByTagName('a')[0].innerHTML
																								) + 1
																							);
																					
																						// Adding new com in DOM
																						comsList[0].appendChild(newCom);
																					}
																				
																					else if (YAHOO.util.Dom.hasClass(
																							comsList[0],
																							'addBeggining'
																						))
																					{
																						// We add comments beggining of list
																						var newCom = lastComs[0].cloneNode(true);
																						newCom.id = 'comment' + output.comment_ref;
																					
																						newCom.getElementsByTagName('div')[1].innerHTML =
																							output.text.replace(
																								'__NB__',
																								1
																							);
																					
																						for (var i = 0; lastComs[i]; i++)
																						{
																							lastComs[i].getElementsByTagName('div')[1].getElementsByTagName('a')[0].innerHTML =
																								lastComs[i].getElementsByTagName('div')[1].getElementsByTagName('a')[0].innerHTML.replace(
																									/[0-9]+/,
																									i+2
																								);
																						}
																					
																						// Adding new com in DOM
																						comsList[0].insertBefore(
																							newCom,
																							lastComs[0]
																						);
																					}
																					else
																					{
																						return;
																					}
																					
																					if (OB.reloadAd)
																					{
																						// Reloading ads
																						OB.reloadAd();
																					}
																					
																					// Removing response if needed
																					var resp = YAHOO.util.Dom.getElementsByClassName(
																						'responseMessage',
																						'div',
																						newCom
																					)[0];
																					var respO = YAHOO.util.Dom.getElementsByClassName(
																						'responseOption',
																						'div',
																						newCom
																					)[0]
																					if (resp)
																					{
																						resp.parentNode.removeChild(resp);
																						respO.parentNode.removeChild(respO)
																					}
																					
																					if (!f.editor)
																					{
																						f.keys.comment.value = f.keys.comment.value.replace(/<.*?>/gi,'');
																						f.keys.comment.value = f.keys.comment.value.replace(/\n/gi,'<br />');
																					}
																					newCom.getElementsByTagName('div')[0].innerHTML = f.keys.comment.value;
																				
																					// Scrolling to this com
																					window.scrollTo(0, YAHOO.util.Dom.getRegion(
																						newCom
																					).top);
																				
																					// Increment the total counter
																					YAHOO.util.Dom.getElementsByClassName(
																						'linkComment',
																						'a',
																						null,
																						function()
																						{
																							if (this.innerHTML.match(/[0-9]+/))
																							{
																								this.innerHTML = this.innerHTML.replace(
																									this.innerHTML.match(/[0-9]+/)[0],
																									parseInt(this.innerHTML.match(/[0-9]+/)[0]) + 1
																								);
																							}
																						}
																					);
																				}
																				else if (output.url)
																				{
																					window.location = output.url;
																				}
																			}
																		}
																	);
																}
																else
																{
																	// removing error classes
																	for (i in f.keys)
																	{
																		YAHOO.util.Dom.removeClass(
																			f[i],
																			'error'
																		);
																	}
																	if (output.errors.crypto ||
																		output.errors.antispam)
																	{
																		// Displaying captcha panel
																		this.dialog.captchakey = output.crypto.key;
																		
																		var panel = document.createElement('div');
																		YAHOO.util.Dom.addClass(
																			panel,
																			'ob_form'
																		);
																		panel.p = document.createElement('p');
																		panel.p.appendChild(
																			document.createTextNode(output.crypto.text)
																		);
																		YAHOO.util.Dom.setStyle(
																			panel.p, 'font-size', '14px'
																		);
																		panel.captcha = new Image();
																		panel.captcha.src = output.crypto.image;
																		YAHOO.util.Dom.setStyle(
																			panel.captcha, 'margin', '5px'
																		);
																		panel.input = document.createElement('input');
																		panel.input.setAttribute('type', 'text');
																		panel.input.name = 'captcha';
																		YAHOO.util.Dom.setStyle(
																			panel.input, 'font-size', '12px'
																		);
																		YAHOO.util.Dom.setStyle(
																			panel.input, 'width', '50px'
																		);
																		YAHOO.util.Dom.addClass(
																			panel.input,
																			'text'
																		);
																		panel.submit = new OB.Blutton(
																			'Ok',
																			{
																				className: 'orange'
																			}
																		);
																		YAHOO.util.Dom.setStyle(
																			[panel.captcha,
																			panel.input,
																			panel.submit.getEl()], 'vertical-align', 'middle'
																		);
																		
																		panel.appendChild(panel.p);
																		panel.appendChild(panel.captcha);
																		panel.appendChild(panel.input);
																		panel.appendChild(panel.submit.getEl());
																		
																		this.dialog.displayMessage(
																			panel,
																			{
																				type: OB.Diablog.TYPE_ERROR,
																				close: panel.submit.getEl(),
																				onClose: function()
																				{
																					var inputs = this.getEl().getElementsByTagName('input');
																					for (var i = 0; inputs[i]; i++)
																					{
																						if (inputs[i].name == 'captcha')
																						{
																							this.captcha = inputs[i].value;
																							
																							this.getDefaultButton().click();
																							
																							return;
																						}
																					}
																				}
																			}
																		);
																		
																		panel.input.focus();
																		YAHOO.util.Event.addListener(
																			panel.input,
																			'keydown',
																			function(e, dialog)
																			{
																				if (e.keyCode == 13)
																				{
																					this.submit.click();
																				}
																			},
																			panel,
																			true
																		);
																	}
																	else
																	{
																		// adding error class
																		for (i in output.errors)
																		{
																			if (f.keys[i])
																			{
																				YAHOO.util.Dom.addClass(
																					f.keys[i],
																					'error'
																				);
																			}
																		}
																	}
																}
															}
															catch (e) {}
														
															// retreiving original button label
															this.reactivate();
														},
														failure: function(o)
														{
															this.reactivate()
														},
														scope: this
													},
													(this.dialog.captchakey ?
														'spmk=' + this.dialog.captchakey + '&SpamKeyU=' + this.dialog.captcha :
														'')
												);
											}
											else
											{
												// Affichage du texte nok
												YAHOO.util.Dom.setStyle(
													YAHOO.util.Dom.getElementsByClassName(
														'infonok',
														'p',
														f
													)[0],
													'visibility', 'visible'
												);
											}
										},
										className: 'orange',
										isDefault: true
									}
								);
							}
						}
						// Recommand form
						else
						{
							// Add list add item event
							var f3 = this.getEl().getElementsByTagName('form')[0];
							
							var list = YAHOO.util.Dom.getElementsByClassName(
								'list',
								'div',
								f3
							)[0];
							list.dialog = this;
							list.ul = document.createElement('ul');
							list.appendChild(
								list.ul
							);
							list.addItem = function(item)
							{
								// Open list if it's closed
								if (YAHOO.util.Dom.getStyle(
										YAHOO.util.Dom.getAncestorByTagName(
											list,
											'form'
										),
										'display'
									) == 'none')
								{
									list.parentForm = YAHOO.util.Dom.getAncestorByTagName(
										list,
										'form'
									);
									var diablogEl = YAHOO.util.Dom.getAncestorByClassName(
										list.parentForm,
										'diablog'
									);
									// Positionning list form in absolute
									var reg = YAHOO.util.Dom.getRegion(
										diablogEl
									);
									YAHOO.util.Dom.setStyle(
										list.parentForm,
										'left',
										reg.right - reg.left + 'px'
									);
									reg = YAHOO.util.Dom.getRegion(
										YAHOO.util.Dom.getElementsByClassName(
											'title',
											'div',
											diablogEl
										)[0]
									);
									YAHOO.util.Dom.setStyle(
										list.parentForm,
										'top',
										(reg.bottom - reg.top) + 'px'
									);
									YAHOO.util.Dom.setStyle(
										list.parentForm,
										'position',
										'absolute'
									);
									
									// Display the list
									
									// Upsize the list
									YAHOO.util.Dom.setStyle(
										list,
										'height',
										0
									);
									(new YAHOO.util.Anim(
										list,
										{
											height: {
												from: 0,
												to: 290
											}
										},
										0.25,
										YAHOO.util.Easing.easeOut
									)).animate();
									
									YAHOO.util.Dom.setStyle(
										list.parentForm,
										'display',
										'block'
									);
									
									// Upsize the dialog
									reg = YAHOO.util.Dom.getRegion(
										list.parentForm
									);
									(new YAHOO.util.Anim(
										diablogEl,
										{
											width: {
												by: reg.right - reg.left + 15
											}
										},
										0.25,
										YAHOO.util.Easing.easeOut
									)).animate();
									(new YAHOO.util.Anim(
										diablogEl,
										{
											left: {
												by: -(reg.right - reg.left + 15) / 2
											}
										},
										0.25,
										YAHOO.util.Easing.easeOut
									)).animate();
								}
								
								// Adding line
								var line = document.createElement('li');
								
								if (this.getElementsByTagName('li').length > 0 &&
									!YAHOO.util.Dom.hasClass(
										this.getElementsByTagName('li')[
											this.getElementsByTagName('li').length - 1
										],
										'alt'
									))
								{
									line.className = 'alt';
								}
								
								// Checkbox
								line.span = document.createElement('span');
								
								line.checkbox = document.createElement('input');
								line.checkbox.setAttribute(
									'type',
									'checkbox'
								);
								line.checkbox.className = 'checkbox';
								line.checkbox.value = item.email;
								line.checkbox.checked = item.checked;
								
								YAHOO.util.Dom.generateId(
									line.checkbox
								);
								line.span.appendChild(
									line.checkbox
								);
								line.appendChild(
									line.span
								);
								
								// Label
								line.label = document.createElement('label');
								line.label.setAttribute(
									'for',
									line.checkbox.id
								);
								line.label.setAttribute(
									'title',
									item.email
								);
								line.label.appendChild(
									document.createTextNode(
										item.name != '' ?
										item.name :
										item.email
									)
								);
								line.appendChild(
									line.label
								);
								
								this.ul.appendChild(
									line
								);
								
								// We check it at the end because of IE
								line.checkbox.checked = item.checked;
								
								YAHOO.util.Event.addListener(
									line.checkbox,
									'click',
									function(e, obj)
									{
										var nbMails = 0;
										var inputs = this.parentNode.parentNode.parentNode.getElementsByTagName('input');
										for (var i = 0; inputs[i]; i++)
										{
											if (inputs[i].checked)
											{
												nbMails++;
											}
										}
										
										if (nbMails > 19)
										{
											obj.list.disableUncheckedItems(obj.dialog);
										}
										else
										{
											obj.list.enableUncheckedItems();
										}
									},
									{
										dialog: this.dialog,
										list: this
									}
								);
								if (item.checked)
								{
									var ev = YAHOO.util.Event.getListeners(
										line.checkbox,
										'click'
									)[0];
								
									ev.fn.apply(this, [ev, ev.obj]);
								}
							}
							list.disableUncheckedItems = function(dial)
							{
								YAHOO.util.Dom.setStyle(
									YAHOO.util.Dom.getElementsByClassName(
										'maxitems',
										'span'
									)[0],
									'color', 'red'
								);
								
								var items = this.getElementsByTagName('li');
								for (var i = 0; items[i]; i++)
								{
									// removing class
									YAHOO.util.Dom.removeClass(
										items[i],
										'disabled'
									);
									if (!items[i].getElementsByTagName('input')[0].checked)
									{
										YAHOO.util.Dom.addClass(
											items[i],
											'disabled'
										);
										items[i].getElementsByTagName('input')[0].setAttribute(
											'disabled',
											'disabled'
										);
										
										if (dial &&
											locales &&
											locales.recommand_20max)
										{
											YAHOO.util.Event.addListener(
												items[i],
												'click',
												function()
												{
													dial.displayMessage(
														locales.recommand_20max,
														{
															type: OB.Diablog.TYPE_ERROR,
															closeicon: true
														}
													);
												}
											);
										}
									}
								}
								
							};
							list.enableUncheckedItems = function()
							{
								YAHOO.util.Dom.setStyle(
									YAHOO.util.Dom.getElementsByClassName(
										'maxitems',
										'span'
									)[0],
									'color', 'white'
								);
								var items = this.getElementsByTagName('li');
								for (var i = 0; items[i]; i++)
								{
									// removing class
									YAHOO.util.Dom.removeClass(
										items[i],
										'disabled'
									);
									items[i].getElementsByTagName('input')[0].removeAttribute(
										'disabled'
									);
									YAHOO.util.Event.removeListener(
										items[i],
										'click'
									);
								}
							};
							
							// event on import form
							var f2 = this.getEl().getElementsByTagName('form')[2];
							YAHOO.util.Event.addListener(
								f2,
								'submit',
								function(e)
								{
									YAHOO.util.Event.preventDefault(e);
									
									var fok = true;
									
									if (this.email.value == '')
									{
										YAHOO.util.Dom.addClass(
											this.email,
											'error'
										);
										fok = false;
									}
									else
									{
										YAHOO.util.Dom.removeClass(
											this.email,
											'error'
										);
									}
									
									if (this.password.value == '')
									{
										YAHOO.util.Dom.addClass(
											this.password,
											'error'
										);
										fok = false;
									}
									else
									{
										YAHOO.util.Dom.removeClass(
											this.password,
											'error'
										);
									}
									
									if (fok &&
										!this.importbtn.oldLabel)
									{
										// Displaying wait button
										this.importbtn.oldLabel = this.importbtn.value;
										this.importbtn.value = '…';
										YAHOO.util.Dom.addClass(
											this.importbtn.parentNode.parentNode,
											'active'
										);
									
										YAHOO.util.Connect.setForm(f2);
										YAHOO.util.Connect.asyncRequest(
											this.method,
											OB.rewriteHost(this.action),
											{
												success: function(o)
												{
													if (o.responseText == '')
													{
														// TODO afficher erreur
														return;
													}
													eval('var output = ' + o.responseText);
												
													// Add to the list
													this.contacts = [];
												
													for (var i in output)
													{
														var isIn = false;
														for (var j in this.contacts)
														{
															if (this.contacts[j].email ==
																	output[i].email)
															{
																isIn = true;
															}
														}
													
														if (!isIn)
														{
															this.contacts.push(
																output[i]
															);
														}
													}
												
													// Complete the table and add events
													var f3 = this.parentNode.getElementsByTagName('form')[0];
												
													var list = YAHOO.util.Dom.getElementsByClassName(
														'list',
														'div',
														f3
													)[0];
												
													for (i in this.contacts)
													{
														list.addItem(this.contacts[i])
													}
												
													// Displayin normal button
													this.importbtn.value = this.importbtn.oldLabel;
													YAHOO.util.Dom.removeClass(
														this.importbtn.parentNode.parentNode,
														'active'
													);
													this.importbtn.oldLabel = false;
												},
												scope: this
											}
										);
									}
								}
							);
							
							var f3 = this.getEl().getElementsByTagName('form')[3];
							
							// event on import form
							YAHOO.util.Event.addListener(
								f3,
								'submit',
								function(e)
								{
									YAHOO.util.Event.preventDefault(e);
									
									if (!this.addemail.value.match(
											/^((([a-z]|[0-9]|!|#|$|%|&|'|\*|\+|\-|\/|=|\?|\^|_|`|\{|\||\}|~)+(\.([a-z]|[0-9]|!|#|$|%|&|'|\*|\+|\-|\/|=|\?|\^|_|`|\{|\||\}|~)+)*)@((((([a-z]|[0-9])([a-z]|[0-9]|\-){0,61}([a-z]|[0-9])\.))*([a-z]|[0-9])([a-z]|[0-9]|\-){0,61}([a-z]|[0-9])\.)[\w]{2,4}|(((([0-9]){1,3}\.){3}([0-9]){1,3}))|(\[((([0-9]){1,3}\.){3}([0-9]){1,3})\])))$/
										))
									{
										YAHOO.util.Dom.addClass(
											this.addemail,
											'error'
										);
									}
									else
									{
										YAHOO.util.Dom.removeClass(
											this.addemail,
											'error'
										);
										
										// Adding item in list
										var list = YAHOO.util.Dom.getElementsByClassName(
											'list',
											'div',
											this.parentNode
										)[0];
										list.addItem(
											{
												name: this.addemail.value,
												email: this.addemail.value,
												checked: true
											}
										);
										(new YAHOO.util.Scroll(
											list,
											{ 
												scroll: {
													to: [0, list.ul.scrollHeight]
												}
											},
											0.25,
											YAHOO.util.Easing.easeOut
										)).animate();
										
										// Reset form
										this.addemail.value = '';
									}
									
								}
							);
							
							// Event on Destinataires click
							YAHOO.util.Event.addListener(
								YAHOO.util.Dom.getElementsByClassName(
									'uplist',
									'a',
									this.getEl()
								)[0],
								'click',
								function(e)
								{
									YAHOO.util.Event.preventDefault(e);
									
									(new YAHOO.util.Scroll(
										this.parentNode.parentNode.getElementsByTagName('div')[0],
										{ 
											scroll: {
												to: [0, 0]
											}
										},
										0.25,
										YAHOO.util.Easing.easeOut
									)).animate();
									
								}
							);
							
							// Event on custom message checkbox
							var customCheckbox = this.getEl().getElementsByTagName('form')[0].keys.custom;
							YAHOO.util.Event.addListener(
								customCheckbox,
								'click',
								function(o)
								{
									if (this.checked)
									{
										// Opening textarea
										// upsize textarea
										YAHOO.util.Dom.setStyle(
											this.parentNode.getElementsByTagName('textarea')[0],
											'visibility', 'visible'
										);
										var a = new YAHOO.util.Anim(
											this.parentNode.getElementsByTagName('textarea')[0],
											{
												height: {
													to: 100
												}
											},
											0.25,
											YAHOO.util.Easing.easeOut
										);
										a.onComplete.subscribe(
											function()
											{
												this.getEl().focus();
											}
										);
										a.animate();
										
										// Downsize list
										(new YAHOO.util.Anim(
											YAHOO.util.Dom.getElementsByClassName(
												'list',
												'div',
												this.parentNode.parentNode
											)[0],
											{
												height: {
													to: 190
												}
											},
											0.25,
											YAHOO.util.Easing.easeOut
										)).animate();
									}
									else
									{
										// Closing textarea
										// downsize textarea
										var a = new YAHOO.util.Anim(
											this.parentNode.getElementsByTagName('textarea')[0],
											{
												height: {
													to: 0
												}
											},
											0.25,
											YAHOO.util.Easing.easeOut
										);
										a.onComplete.subscribe(
											function(e)
											{
												YAHOO.util.Dom.setStyle(
													this,
													'visibility', 'hidden'
												);
											},
											this.parentNode.getElementsByTagName('textarea')[0],
											true
										);
										a.animate();
										
										// Downsize list
										(new YAHOO.util.Anim(
											YAHOO.util.Dom.getElementsByClassName(
												'list',
												'div',
												this.parentNode.parentNode
											)[0],
											{
												height: {
													to: 290
												}
											},
											0.25,
											YAHOO.util.Easing.easeOut
										)).animate();
									}
								}
							)
							
							
							if (submit)
							{
								submit.parentNode.removeChild(
									submit
								);
								this.addButton(
									submit.value,
									{
										click: function()
										{
											f = this.dialog.getEl().getElementsByTagName('form')[0];
											
											// Button label : wait
											this.deactivate();
											var checkboxes = YAHOO.util.Dom.getElementsByClassName(
												'list',
												'div',
												f
											)[0].getElementsByTagName('input');
											
											f.keys.emails.value = '';
											for (var i = 0; checkboxes[i]; i++)
											{
												if (checkboxes[i].type == 'checkbox' &&
													checkboxes[i].checked)
												{
													f.keys.emails.value += checkboxes[i].value + ',';
												}
											}
											if (f.keys.emails.value == '')
											{
												this.reactivate();
												return;
											}
											YAHOO.util.Connect.setForm(f);
											
											YAHOO.util.Connect.asyncRequest(
												f.method,
												OB.rewriteHost(f.action) + '&ajax=1',
												{
													success: function(o)
													{
														eval('var output = ' + o.responseText);
														
														if (output.ok)
														{
															if (OB.reloadAd)
															{
																// Reloading ads
																OB.reloadAd();
															}
															
															this.dialog.close(
																output.ok,
																{
																	type: OB.Diablog.TYPE_OK
																}
															);
															return;
														}
														if (output.error)
														{
															this.dialog.close(
																output.error,
																{
																	type: OB.Diablog.TYPE_ERROR
																}
															);
															return;
														}
														
														if (output.errors == 'antispam')
														{
															// Displaying captcha panel
															this.dialog.captchakey = output.crypto.key;
															
															var panel = document.createElement('div');
															YAHOO.util.Dom.addClass(
																panel,
																'ob_form'
															);
															panel.p = document.createElement('p');
															panel.p.appendChild(
																document.createTextNode(output.crypto.text)
															);
															YAHOO.util.Dom.setStyle(
																panel.p, 'font-size', '14px'
															);
															panel.captcha = new Image();
															panel.captcha.src = output.crypto.image;
															YAHOO.util.Dom.setStyle(
																panel.captcha, 'margin', '5px'
															);
															panel.input = document.createElement('input');
															panel.input.setAttribute('type', 'text');
															panel.input.name = 'captcha';
															YAHOO.util.Dom.setStyle(
																panel.input, 'font-size', '12px'
															);
															YAHOO.util.Dom.setStyle(
																panel.input, 'width', '50px'
															);
															YAHOO.util.Dom.addClass(
																panel.input,
																'text'
															);
															panel.submit = new OB.Blutton(
																'Ok',
																{
																	className: 'orange'
																}
															);
															YAHOO.util.Dom.setStyle(
																[panel.captcha,
																panel.input,
																panel.submit.getEl()], 'vertical-align', 'middle'
															);
															
															panel.appendChild(panel.p);
															panel.appendChild(panel.captcha);
															panel.appendChild(panel.input);
															panel.appendChild(panel.submit.getEl());
															this.dialog.displayMessage(
																panel,
																{
																	type: OB.Diablog.TYPE_ERROR,
																	close: panel.submit.getEl(),
																	onClose: function()
																	{
																		var inputs = this.getEl().getElementsByTagName('input');
																		for (var i = 0; inputs[i]; i++)
																		{
																			if (inputs[i].name == 'captcha')
																			{
																				this.captcha = inputs[i].value;
																				
																				this.getDefaultButton().click();
																				
																				return;
																			}
																		}
																	}
																}
															);
															
															panel.input.focus();
															YAHOO.util.Event.addListener(
																panel.input,
																'keydown',
																function(e, dialog)
																{
																	if (e.keyCode == 13)
																	{
																		this.submit.click();
																	}
																},
																panel,
																true
															);
														}
														else
														{
															this.dialog.close();
														}
														
														this.reactivate();
													},
													failure: function()
													{
														this.reactivate();
													},
													scope: this
												},
												'email=' + f.parentNode.getElementsByTagName('form')[2].email.value +
													(this.dialog.captcha ?
														'&captcha=' + this.dialog.captcha + '&captchakey=' + this.dialog.captchakey :
														'')
											);
										},
										className: 'orange',
										isDefault: true
									}
								);
							}
						}
					}
				);
			}
		);
	}
);

// Enhancement des liens par leur classe
YAHOO.util.Event.onDOMReady(
	function()
	{
		var elmts = document.body.getElementsByTagName('*');
		for (var i = 0; elmts[i]; i++) {
			var className = elmts[i].getAttribute('class')?elmts[i].getAttribute('class'):elmts[i].getAttribute('className');

			if(typeof(className) == 'string'){
				var classNames = className.split(' ');
				for (var j = 0; classNames[j]; j++) {


					if (classNames[j] == 'newWindow') {
						elmts[i].onclick = function() {
							window.open(this);
							return false;
						}
					}

					if (classNames[j] == 'closeWindow') {
						elmts[i].onclick = function() {
							window.close();
						}
					}

				}
			}
		}
	}
);

// Event on video and audio tags
YAHOO.util.Event.onDOMReady(
	function()
	{
		YAHOO.util.Dom.batch(
			YAHOO.util.Selector.query('.obMedia'),
			function(el)
			{
				el.hide = function()
				{
					this.parentNode.insertBefore(
						this.getElementsByTagName('span')[0],
						this
					);
					this.parentNode.removeChild(this);
				}
				if (el.error)
				{
					el.hide();
				}
				else
				{
					YAHOO.util.Event.on(
						el,
						'error',
						function(e)
						{
							this.hide();
						}
					);
				}
				if (el.nodeName.toLowerCase() === 'audio')
				{
					el.setAttribute('controls', true);
				}
				else
				{
					YAHOO.util.Event.on(
						el,
						'click',
						function(e)
						{
							if (this.paused)
							{
								this.play();
							}
							else
							{
								this.pause();
							}
						}
					);
				}
			}
		);
	}
);

//------------------------------------------------------------------------------
// C'est moche et obsolète
// -----------------------------------------------------------------------------
function quitte(){
	if(window.opener){
		window.close();
		RetParam = false;
	}else{
		RetParam = true;
	}
}


function addOnloadEvent(func) {
	var onld= window.onload;
	if (onld) {
		window.onload = function() {
			onld();
			func();
		}
	} else {
		window.onload = func;
	}
}
