/*
 *
 *	@titre: layout.
 *	@description: javascript global.
 *	@auteur: neov - http://www.neov.net.
 *	@creation: 20091005.
 *	@modification: - .
 *
*/

// creation html.
var dc = function(el) { return document.createElement(el); }

// test email.
function isEmail(str) {
	var supported = 0;
	
	if (window.RegExp) {
		var tempStr = "a";
		var tempReg = new RegExp(tempStr);
		if (tempReg.test(tempStr)) supported = 1;
	}
	
	if (!supported)
		return (str.indexOf(".") > 2) && (str.indexOf("@") > 0);
	
	var r1 = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)");
	var r2 = new RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$");
	
	return (!r1.test(str) && r2.test(str));
}

function changeURL(url) {
	window.location = url;
}

$(
	function()
	{
		// simulation target blank.
		$('.target-blank').each(
			function()
			{
				$(this).click(
					function()
					{
						window.open($(this).attr('href'));
						return false;
					}
				);
			}
		);
		
		// autoclear formulaire.
		$('.autoclear').each(
			function()
			{
				$(this)
					.focus(
						function()
						{
							if($(this).val() == 'Saisir le poste recherché' ||
							   $(this).val() == 'Saisir votre login' ||
							   $(this).val() == 'Saisir votre mot de passe' ||
							   $(this).val() == 'Saisir votre adresse e-mail' ||
							   $(this).val() == 'Saisir le ou les mots-clés')
							{
								$(this).val('');
							}
						}
					)
					.blur(
						function()
						{
							if($(this).val()=='')
							{
								$(this).val($(this).attr('title'));
							}
						}
					)
			}
		);
		
		// carte home mini site.
		var posx = 0, posy = 0;
		
		$('.carte-region-link').find('area').each(
			function(index)
			{
				$(this)
					.mouseover(
						function(e)
						{
							if (!e) var e = window.event;
							
							if (e.pageX || e.pageY) 	{
								posx = e.pageX;
								posy = e.pageY;
							} else if (e.clientX || e.clientY) 	{
								posx = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
								posy = e.clientY + document.body.scrollTop + document.documentElement.scrollTop;
							}
							
							$('.carte-region-hover p').eq(index).show();
							$('#pop-region-offre').find('p').hide();
							$('#pop-region-offre').find('p').eq(index).show();
							
							posx = posx - $('#pop-region-offre').width();
							posy = posy - 50;
							
							$('#pop-region-offre')
								.show()
								.css({top: posy, left: posx});

						}
					)
					.mousemove(
						function(e)
						{	
							if (!e) var e = window.event;
							
							if (e.pageX || e.pageY) 	{
								posx = e.pageX;
								posy = e.pageY;
							} else if (e.clientX || e.clientY) 	{
								posx = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
								posy = e.clientY + document.body.scrollTop + document.documentElement.scrollTop;
							}
							
							posx = posx - $('#pop-region-offre').width();
							posy = posy - 50;
							
							$('#pop-region-offre')
								.css({top: posy, left: posx});
						}
					)
					.mouseout(
						function()
						{
							$('.carte-region-hover p').eq(index).hide();
							$('#pop-region-offre').find('p').hide();
							$('#pop-region-offre').hide();
						}
					)
					.click(
						function()
						{
							return false;
						}
					);
			}
		);
		
		// identification candidats / recruteurs.
		$('.indentification-candidat-recruteur > ul li a').each(
			function(index)
			{
				// cache le formulaire de l'onglet inactive au chargement.
				if ($(this).parent().hasClass('active')) {
					$('.indentification-candidat-recruteur').find('form').not( $('.indentification-candidat-recruteur form').eq(index)).hide();
				}
				
				$(this).click(
					function()
					{
						if (! $(this).parent().hasClass('active')) {
							$('.indentification-candidat-recruteur > ul li a').parent().toggleClass('active');
							$('.indentification-candidat-recruteur form').toggle();
						}
						
						return false;
					}
				);
			}
		);
		
		// -- ACTUALITE -- envoi ami / impression / pointer vers.
		$('.actu-col-gauche .bouton-action a').not('.impression').each(
			function()
			{
				$(this).click(
					function()
					{
						$('.actu-col-gauche .bouton-action a').not(this).removeClass('active');
						$(this).toggleClass('active');
						
						if($(this).hasClass('envoi')) {
							if($('.pointer-vers').is(':visible')) $('.pointer-vers').hide();
							$('.formulaire-envoi-ami').toggle();
						} else {
							if($('.formulaire-envoi-ami').is(':visible')) $('.formulaire-envoi-ami').hide();
							$('.pointer-vers').toggle();
						}
						
						return false;
					}
				);
			}
		);
		
		$('.actu-col-gauche a.impression').click(
			function()
			{
				window.print();
				return false;
			}
		);
		
		$('.print-page').click(
			function()
			{
				window.print();
				return false;
			}
		);
		
		// valider envoi ami.
		$('.envoi-form-ami').click(
			function()
			{
				// test du formulaire.
				var test =  false;
				var destinataire = isEmail($('#envoi-destinataire').val())
				var expediteur = isEmail($('#envoi-expediteur').val())
				
				if (destinataire && expediteur) test = true;
				
				// affichage du message si le formulaire est valide.
				if (test== true) {
					var $form = $('.formulaire-envoi-ami').children(0);
					$form.hide();
					var $message = $(dc('div'));
					$message.addClass('envoi-confirm');
					
					$('.formulaire-envoi-ami').append(
						$message
							.append(
								$(dc('p'))
									.html('Cet article vient d’être envoyé à l’adresse ' + $('#envoi-destinataire').val() + '.<br /><br /> Vous avez reçu une copie de cet envoi à l’adresse ' + $('#envoi-expediteur').val() + '.<br /><br /> Merci' ),
								$(dc('a'))
									.attr({title: 'Fermer', href: '#'})
									.addClass('envoi-fermer')
									.html('<strong>Fermer</strong>')
									.click(
										function()
										{
											$message.remove();
											$('.actu-col-gauche a.envoi').removeClass('active');
											$('.formulaire-envoi-ami').hide();
											$form.show();
											
											return false;
										}
									)
							)
					);
				}
				
				return false;
			}
		);
		
		// fermer message apres envoi.
		$('.pointer-fermer').click(
			function()
			{
				$('.pointer-vers').hide();
			}
		);
		
		
				// -- INDICATEURS -- envoi ami / impression / pointer vers.
		$('.indic-col-gauche .bouton-action-indic a').not('.impression').each(
			function()
			{
				$(this).click(
					function()
					{
						$('.indic-col-gauche .bouton-action-indic a').not(this).removeClass('active');
						$(this).toggleClass('active');
						
						if($(this).hasClass('envoi')) {
							if($('.pointer-vers-indic').is(':visible')) $('.pointer-vers-indic').hide();
							$('.formulaire-envoi-ami-indic').toggle();
						} else {
							if($('.formulaire-envoi-ami-indic').is(':visible')) $('.formulaire-envoi-ami-indic').hide();
							$('.pointer-vers-indic').toggle();
						}
						
						return false;
					}
				);
			}
		);
		
		/*
		$('.indic-col-gauche a.impression').click(
			function()
			{
				window.print();
				return false;
			}
		);
		
		$('.print-page').click(
			function()
			{
				window.print();
				return false;
			}
		);
		*/
		
		// valider envoi ami.
		$('.envoi-form-ami').click(
			function()
			{
				// test du formulaire.
				var test =  false;
				var destinataire = isEmail($('#envoi-destinataire').val())
				var expediteur = isEmail($('#envoi-expediteur').val())
				
				if (destinataire && expediteur) test = true;
				
				// affichage du message si le formulaire est valide.
				if (test== true) {
					var $form = $('.formulaire-envoi-ami-indic').children(0);
					$form.hide();
					var $message = $(dc('div'));
					$message.addClass('envoi-confirm');
					
					$('.formulaire-envoi-ami-indic').append(
						$message
							.append(
								$(dc('p'))
									.html('Cet article vient d’être envoyé à l’adresse ' + $('#envoi-destinataire').val() + '.<br /><br /> Vous avez reçu une copie de cet envoi à l’adresse ' + $('#envoi-expediteur').val() + '.<br /><br /> Merci' ),
								$(dc('a'))
									.attr({title: 'Fermer', href: '#'})
									.addClass('envoi-fermer')
									.html('<strong>Fermer</strong>')
									.click(
										function()
										{
											$message.remove();
											$('.indic-col-gauche a.envoi').removeClass('active');
											$('.formulaire-envoi-ami-indic').hide();
											$form.show();
											
											return false;
										}
									)
							)
					);
				}
				
				return false;
			}
		);
		
		// fermer message apres envoi.
		$('.pointer-fermer').click(
			function()
			{
				$('.pointer-vers-indic').hide();
			}
		);
		
		// recherche avancee
		var formLength = $('#recherche-avance .formulaire').find('form').length;
		$('#recherche-avance .formulaire').find('form').hide();
		$('#recherche-avance .formulaire').find('form').eq(0).show();
		
		$('#recherche-avance .recherche-contenu li a').each(
			function(index)
			{
				$(this).click(
					function()
					{
						$('#recherche-avance .recherche-contenu li a').removeClass('active');
						$(this).addClass('active');
						
						$('#recherche-avance .formulaire').find('form').hide();
						$('#recherche-avance .formulaire').find('form').eq(index).show();
						
						return false;
					}
				);
			}
		);

		$('#formInscription').submit(function(){
			var hasErrors = false;
			
			$('#error_for_login').css('display', 'none');
			$('#error_for_password').css('display', 'none');

			if($('#ident-login').val() == 'Saisir votre login')
			{
				$('#error_for_login').text(' ↓ Votre login est requis  ↓');
				$('#error_for_login').css('display', 'block');
				hasErrors = true;
			}
				
			if($('#password').val() == 'Saisir votre mot de passe')
			{
				$('#error_for_password').text(' ↓ Votre mot de passe est requis  ↓');
				$('#error_for_password').css('display', 'block');
				hasErrors = true;
			}
			
			if(hasErrors)
				return false;
			return true;
		});
		
		$('#password_request_form').submit(function(){
			$('#error_for_mail').css('display', 'none');
			
			if($('#mail').val() == 'Saisir votre adresse e-mail')
			{
				$('#error_for_mail').text(' ↓ Votre adresse e-mail est requise ↓');
				$('#error_for_mail').css('display', 'block');
				return false;
			}
			return true;
		})
	}
);

