var SERVER_NAME = null;
var SERVER_IMAGE = null;
var SERVER_PHOTO = null;

/**************************************************************************************/

/**
 * compte.js
 */

window.addEvent('domready', function(){	
	// -- Récupération du serveur
	var out = new RegExp(/http:\/\/www\.([^\.]+)\.([^\/]+)/i).exec(document.location);
	SERVER_NAME = 'http://www.' + out[1] + '.' + out[2];
	SERVER_IMAGE = 'http://image.' + out[1] + '.' + out[2];
	SERVER_PHOTO = 'http://photo.' + out[1] + '.' + out[2];
});

/**************************************************************************************/

/**
 * article.js
 */

var JSON_OBJECT;
var JSON_OBJECT_STOCK;
var JSON_OBJECT_SUBVENTION;
var MODE_TEMPLATE;
var SAVE_PHOTO_ARTICLE = null;

window.addEvent('domready', function(){
	
	SAVE_PHOTO_ARTICLE = $chk($('article-image-main')) ? $('article-image-main').src : null;
	$$('.article-image-more a').each(function(a){
		a.addEvents({
			'mouseover': function(){
				var x = new String(a.getFirst().src);
				var regexp = new RegExp(/([0-9])0(\.jpg)/);
				var x = x.replace(regexp, '$1$2');
				$('article-image-main').src = x;
			},
			'mouseout': function(){
				$('article-image-main').src = SAVE_PHOTO_ARTICLE;
			}
		});
	});

});

function printFiche(){
	window.print();
}

function redirectOnSelectSegment( _src, _url ){
	
	if( $defined(JSON_OBJECT) ){
	
		var currentTaille = $chk($('select_taille')) 
			? $('select_taille').value 
			: ( $chk($('just_taille')) ? $('just_taille').get('html') : '');
			
		var currentCouleur = $chk($('select_couleur')) 
			? $('select_couleur').value 
			: ( $chk($('just_couleur')) ? $('just_couleur').get('html') : '');
			
		var redirect = null;
		
		$each(JSON_OBJECT, function(el){
			if( el.taille == currentTaille && el.couleur == currentCouleur ){
				redirect = new String(el.redirect);
				redirect = redirect.replace(/&amp;/g, '&');
				return;
			}
		});
		
		if( redirect == null ){
			// On n'a pas trouvé l'association taille / couleur
			// on reparcourt
			if( _src == 'taille' ){
				$each(JSON_OBJECT, function(el){
					if( el.taille == currentTaille ){
						redirect = new String(el.redirect);
						redirect = redirect.replace(/&amp;/g, '&');
						return;
					}
				});
			}else if( _src == 'couleur' ){
				$each(JSON_OBJECT, function(el){
					if( el.couleur == currentCouleur ){
						redirect = new String(el.redirect);
						redirect = redirect.replace(/&amp;/g, '&');
						return;
					}
				});
			}
		}
	}
	document.location.replace(redirect);
}

//-- Mise à jour du Stock en fonction de l'article sélectionné
function updateDispo( _stock ){
	$$('.yoo-tooltip').each(function(el){ el.destroy(); });
	new YOOtooltip('trigger-dispo', 
		_stock, { 
		mode: 'cursor', 
		width: 300, 
		style: 'default'
	});
}

function getForfait(){
	var forfait = null;
	$each($$('input[type=radio][id^=forfait_chk_]'), function(el){
		var infos = new RegExp(/forfait_chk_([a-zA-Z]{3}[0-9]{3})/).exec(el.id);
		if( el.checked && $defined(infos) && $defined(infos[1]) ){
			forfait = infos[1];
			return;
		}
	});
	return forfait;
}

function submitForm(){
	var code_article = $('fab_article').value;
	MSGBOX.close(function(){
		MSGBOX.setTitle('Votre article est en cours d\'ajout au panier');
		MSGBOX.showWaiting(function(){
			var q = new Request.JSON({
				'url'	: '/action_ajouter_article.html',
				'onRequest' : function(){},
				'onSuccess' : function(_json, _text){
					// -- Mise à jour du nombre de produit dans le panier
					var status = _json.status;
					var message = _json.message;
					if( status == 1 ){
						if( $chk($('nombre-articles-panier')) ){
							$('nombre-articles-panier').set('html', _json.panier + ' article' + (_json.panier > 1 ? 's' : '') );
						}
						MSGBOX.setTitle('Votre article a bien &eacute;t&eacute; ajout&eacute; au panier');
					}
					MSGBOX.showContinueOrGoBasket(message);
					if( status != 1 )
						MSGBOX.hideButtons();
				},
				'onFailure' : function(){
					MSGBOX.setContent('<p id="msgbox-infos-error">Une erreur est survenue. Veuillez r&eacute;essayer ult&eacute;rieurement !</p>');
					MSGBOX.hideButtons();
				}
			}).post($('fab'));
		});
	});	
}

function submitMe( _form ){
	MSGBOX.close(function(){
		MSGBOX.setTitle('Votre article est en cours d\'ajout au panier');
		MSGBOX.showWaiting(function(){
			var q = new Request.JSON({
				'url'	: '/action_ajouter_article.html',
				'onRequest' : function(){},
				'onSuccess' : function(_json, _text){
					// -- Mise à jour du nombre de produit dans le panier
					var status = _json.status;
					var message = _json.message;
					if( status == 1 ){
						if( $chk($('nombre-articles-panier')) ){
							$('nombre-articles-panier').set('html', _json.panier + ' article' + (_json.panier > 1 ? 's' : '') );
						}
						MSGBOX.setTitle('Votre article a bien &eacute;t&eacute; ajout&eacute; au panier');
					}
					MSGBOX.showContinueOrGoBasket(message);
					if( status != 1 )
						MSGBOX.hideButtons();
				},
				'onFailure' : function(){
					MSGBOX.setContent('<p id="msgbox-infos-error">Une erreur est survenue. Veuillez r&eacute;essayer ult&eacute;rieurement !</p>');
					MSGBOX.hideButtons();
				}
			}).post(_form);
		});
	});	
}

/**************************************************************************************/

/**
 * menu.js
 */

window.addEvent('domready', function(){
	if( new RegExp(/msie [6|7]/).test(navigator.userAgent.toLowerCase()) ){
		if( $chk($('navmenu')) ){
			$$('#navmenu li').each(function(li){
				li.addEvents({
					'mouseover': function(event){
						$$('#navmenu li').removeClass('sfhover');
						this.addClass('sfhover');
					},
					'mouseout': function(event){
						$$('#navmenu li').removeClass('sfhover');
					}
				});
			});
		}
	}
});

/**************************************************************************************/

/**
 * slideshow.js
 */

var nbImages = 0;

window.addEvent('domready', function(){
	if( $chk($('slideshow')) ){
		nbImages = $('slideshow').getChildren().length;
		for(var i = 1 ;  i < nbImages ; i++ ){ 
			if( $chk($('slideshow_image_' + i)) ){
				if( $chk($('slideshow_image_' + i)) )
					$('slideshow_image_' + i).fade(0);
			}
		}
		updateSlideShow.periodical(5000, Images); 
	}
});

var Images = { counter: 0 };
var updateSlideShow = function(){ 
	if( $chk($('slideshow_image_' + this.counter)) )
		$('slideshow_image_' + this.counter).fade(0);
	this.counter = (this.counter + 1) % nbImages;
	if( $chk($('slideshow_image_' + this.counter)) )
		$('slideshow_image_' + this.counter).fade(1);
};

/**************************************************************************************/

var DEFAULT_SEARCH_VALUE = 'Tapez votre recherche ici...';
var LAST_SEARCH_VALUE = null;

window.addEvent('domready', function(){
	// -- On mouseover sur les items d'articles (hack ie6)
	var appAgent = navigator.userAgent;
	if( $chk($('selection')) && new RegExp(/msie 6/).test(appAgent.toLowerCase()) ){
		$each( $$('#selection .item'), function(el){
			el.addEvent('mouseover', function(){
				var classname = $(el).get('class');
				if( new RegExp(/incontournable/).test(classname) )
					$(el).set('class', classname + ' hoverinc');
				else
					$(el).set('class', classname + ' hovernouv');
			});
			el.addEvent('mouseout', function(){
				$(el).set('class', $(el).get('class').replace('hovernouv', ''));
				$(el).set('class', $(el).get('class').replace('hoverinc', ''));
			});
		});
	}
	// -- Recherche
	if( $chk($('recherche')) ){
		
		$('recherche').set('autocomplete', 'off');
		
		switchPictoDSC(true, false, false);
		$('recherche').addEvents({
			'focus': function(){
				if( this.value == DEFAULT_SEARCH_VALUE ){
					this.value = '';
				}
			},
			'click': function(){
				if( this.value == DEFAULT_SEARCH_VALUE ){
					this.value = '';
				}
				$('recherche').fireEvent('keyup');
			},
			'blur': function(){
				if( this.value.trim() == '' ){
					this.value = DEFAULT_SEARCH_VALUE;
					hideSearchResults();
				}
			}
		});
	}
	
	// -- Completion à activer uniquement sur navigateur <> ie 6 pour l'instant
	if( ! new RegExp(/msie [6|7]/).test(navigator.appVersion.toLowerCase()) ){
		if( $chk($('search-picto-clear')) ){
			// -- Evenement sur clic sur la croix
			$('search-picto-clear').addEvent('click', function(){
				// -- Vidage du champs de recherche
				$('recherche').value = '';
				// -- On cache la liste de résultats de recherche
				hideSearchResults();
				$('recherche').focus();
			});
			$('search-list-results-container').fade(0);
			$('search-list-results-container').empty();
			$('recherche').addEvent('keyup', function(event){
				if( event != null && event.key == 'esc' ){
					SEARCH_TIMER = $clear(SEARCH_TIMER);
					$('search-picto-clear').fireEvent('click');
				}else if( event != null && event.key == 'down' ){
					selectNextResultItem();
				}else if( event != null && event.key == 'up' ){
					selectPreviousResultItem();	
				}else if( LAST_SEARCH_VALUE != $('recherche').value.trim() || $('recherche').value.trim() == '' ){
					LAST_SEARCH_VALUE = $('recherche').value.trim();
					SEARCH_TIMER = $clear(SEARCH_TIMER);
					SEARCH_TIMER = launchSearch.delay(100);
				}
			});
			
			$('search-list-results-container').addEvent('mouseout', function(event){
				SELECTED_RESULT_ITEM = null;
				selectResultItem();
			});
			
		}
	}
		
	// -- Evènements pour le champ newsletter / ajout mail
	if( $chk($('newsletter_email')) ){
		$('newsletter_email').addEvents({
			'focus': function(){
				if( this.value == 'entrez votre email ici' ){
					this.value = '';
				}
			},
			'click': function(){
				if( this.value == 'entrez votre email ici' ){
					this.value = '';
				}
			},
			'blur': function(){
				if( this.value.trim() == '' )
					this.value = 'entrez votre email ici';
				$('newsletter_email').removeProperty('class');
			}
		});
	
		$('fam').addEvent('submit', function(){
			var fc = new FormCheck();
			var email = $chk($('newsletter_email')) ? $('newsletter_email').value.trim() : '';
			if( new RegExp(fc.options.regexp.f_email).test(email) ){
				MSGBOX.showConfirmInscriptionNewsletter(email);
			}else{
				$('newsletter_email').set('class', 'error');
			}
			return false;
		});
		
	}
});

/**************************************************************************************/

var SELECTED_RESULT_ITEM = null;
var SEARCH_TIMER = null;

/**
 * Fonction exécutée sur l'event onsubmit du formulaire de recherche
 * 
 * @return void
 */
function preventSearchSubmit(){
	var retour = true;
	var max = $$('div[class^=search-list-results-item]').length;
	if( SELECTED_RESULT_ITEM != null && SELECTED_RESULT_ITEM + 1 <= max ){
		$each($$('div[class^=search-list-results-item]'), function(el, ind){
			if( ind == SELECTED_RESULT_ITEM ){
				el.getElement('a').fireEvent('click');
				retour = false;
			}
		});
	}
	return retour && $('recherche').value.trim() != '' && $('recherche').value.trim() != DEFAULT_SEARCH_VALUE;
}

/**
 * Lance la recherche
 * 
 * @return void
 */
function launchSearch(){
	if( ! $empty(SEARCH_TIMER) ){
		doSearch();
	}
}

/**
 * Gère l'affichage du picto à gauche du champs de recherche
 * 
 * @param _default	boolean pour afficher la loupe
 * @param _search	boolean pour afficher le spinner
 * @param _clear	boolean pour afficher la croix
 * @return void
 */
function switchPictoDSC( _default, _search, _clear ){
	$('search-picto-default').setStyle('visibility', _default ? 'visible' : 'hidden');
	$('search-picto-search').setStyle('visibility', _search ? 'visible' : 'hidden');
	$('search-picto-clear').setStyle('visibility', _clear ? 'visible' : 'hidden');
}

/**
 * Recherche
 * 
 * @return void
 */
function doSearch(){
	
	var ts = Math.floor((new Date()).getTime() / 1000);
	var search = $('recherche').value.trim();
	if( search.length >= 3 && search != DEFAULT_SEARCH_VALUE ){
		var q = new Request.JSON({
			'url'		: '/Search',
			'onRequest'	: function(){
				switchPictoDSC(false, true, false);
				SELECTED_RESULT_ITEM = -1;
			},
			'onSuccess'	: function( _results ){				
				(function(){
					// -- si le champs de recherche n'est pas vide
					if( $('recherche').value.trim().length > 0 ){
						// -- On affiche la croix
						switchPictoDSC(false, false, true);
					}else{
						// -- Sinon on affiche la loupe
						switchPictoDSC(true, false, false);
					}
				}).delay(1000);
				$('search-list-results-container').setStyle('display', 'block');
				var fx = new Fx.Morph('search-list-results-container', {duration: 'short', transition: Fx.Transitions.Sine.easeOut});
				fx.start({'opacity': 1});
				if( _results != null && _results.nb > 0 ){
					buildResultsList(_results);
					SELECTED_RESULT_ITEM = -1;
					selectResultItem();
				}else{
					showNoneResult();
					SELECTED_RESULT_ITEM = null;
					selectResultItem();
				}
			},
			'onFailure'	: function(){
				SELECTED_RESULT_ITEM = null;
				selectResultItem();
			}
		}).get({'search':search, 'timestamp':ts});
	}else{
		SEARCH_TIMER = $clear(SEARCH_TIMER);
		hideSearchResults();
		if( search.length > 0 ){
			switchPictoDSC(false, false, true);
		}else{
			switchPictoDSC(true, false, false);
		}
	}
}

/**
 * Affiche le laïus sur "aucun résultat"
 * 
 * @return void
 */
function showNoneResult(){
	var ret = '<div class="search-list-no-result-container">';
	ret += '<p><b>Aucun résultat pour cette recherche.</b></p>';
	ret += '<br />';
	ret += '<p>Suggestions:</p>';
	ret += '<ul>';
	ret += '<li>Vérifiez l\'orthographe des termes de recherche.</li>';
	ret += '<li>Essayez d\'autres mots.</li>';
	ret += '<li>Utilisez des mots plus génériques.</li>';
	ret += '</ul>';
	ret += '</div>';
	$('search-list-results-container').set('html', ret);
}

/**
 * Cache le champs des résultats de recherche
 * 
 * @return
 */
function hideSearchResults(){
	resetSearch();
}

/**
 * Remet à zéro les infos de recherche
 * 
 * @return
 */
function resetSearch(){
	switchPictoDSC(true, false, false);
	$('search-list-results-container').setStyle('display', 'none');
	SELECTED_RESULT_ITEM = null;
}

/**
 * Action sur touche keyup du  clavier : sélectionne le résultat précédent
 * 
 * @return void
 */
function selectPreviousResultItem(){
	var max = $$('div[class^=search-list-results-item]').length;
	if( SELECTED_RESULT_ITEM != null && SELECTED_RESULT_ITEM > -1 ){
		SELECTED_RESULT_ITEM--;
	}
	selectResultItem();
}

/**
 * Action sur touche keydown du  clavier : sélectionne le résultat suivant
 * 
 * @return void
 */
function selectNextResultItem(){
	var max = $$('div[class^=search-list-results-item]').length;
	if( SELECTED_RESULT_ITEM != null && SELECTED_RESULT_ITEM + 1 < max ){
		SELECTED_RESULT_ITEM++;
	}
	selectResultItem();
}

/**
 * Affiche le détourage vert autour du résultat sélectionné
 * 
 * @return void
 */
function selectResultItem(){
	$each($$('div[class^=search-list-results-item]'), function(el, ind){
		if( ind != SELECTED_RESULT_ITEM ){
			el.removeClass('active');
		}else{
			el.addClass('active');
		}
	});
}

/**
 * Construit la liste des résultats
 * 
 * @return void
 */
function buildResultsList( _results ){
	var retour = '';
	nbCategories = _results.nb.toInt() - 1;
	if( nbCategories == -1 ){
		showNoneResults();
	}else{
		$each(_results.c, function(item, ind){
			retour += buildResultsListItem(item, ind == nbCategories);
		});
		$('search-list-results-container').set('html', retour);
		$each($$('div[class^=search-list-results-item]'), function(el, ind){
			el.addEvent('mouseover', function(){
				$each($$('div[class^=search-list-results-item]'), function(el2){
					el2.removeClass('active');					
				});
				SELECTED_RESULT_ITEM = ind;
				selectResultItem();
			});
			$each(el.getElements('a'), function(al){
				al.addEvent('click', function(){
					var oc = al.get('onclick');
					var re = new RegExp(/trackMe\('([^)]+)'\)/).exec(oc);
					trackMe(re[1], function(){
						document.location.replace(el.getElement('a').get('href'));
					});					
				});
			});
		});
	}
}

/**
 * Construit un élément de la liste des résultats
 * 
 * @return void
 */
function buildResultsListItem( _item, _is_last){
	var search_value = $('recherche').value.trim();
	var n = new String(_item.n).replace(/(@)/g, '<b>').replace(/(£)/g, '</b>');
	var retour = '<div class="search-list-results-item">';
	retour += '<table cellspacing="0" width="100%">';
	retour += '<tr>';
	retour += '<td width="50" align="center">';
	retour += '<a id="link-' + _item.t + '" onclick="javascript:trackMe(\'/tck/completion/' + search_value + '/' + _item.u + '\')" ';
	retour += 'title="' + _item.cn + '" href="' + SERVER_NAME + '/' + _item.u  + '">';
	retour += '<img title="' + _item.cn + '" alt="' + _item.cn + '" src="' + SERVER_PHOTO + '/' + _item.p + '-5.jpg" ';
	retour += 'width="50" height="50" /></a></td>';
	retour += '<td align="left" valign="middle" class="search-list-results-item-name">';
	retour += '<a onclick="javascript:trackMe(\'/tck/completion/' + search_value + '/' + _item.u + '\')" ';
	retour += 'title="' + _item.cn + '" href="' + SERVER_NAME + '/' + _item.u  + '" class="invli">' + n + '</a></td>';
	retour += '</tr>';
	retour += '</table>';
	retour += '</div>';
	if( ! _is_last ){
		retour += '<div class="search-list-item-separator"></div>';
	}
	return retour;
}

/**************************************************************************************/

function ucfirst( _string ){
	if( !$defined(_string) )
		return null;
	if( _string.length == 1 )
		return _string.toUpperCase();
	return _string.charAt(0).toUpperCase() + _string.substring(1).toLowerCase();
}

function isCodeArticle( _code_article ){
	return new RegExp(/^[a-zA-Z]{3}[0-9]{3}$/).test(_code_article);	
}

/**************************************************************************************/

function handleURI(){
	var uri = new URI(document.location);
	var fragment = uri.get('fragment');
	if( new RegExp(/^page=[0-9]+$/).test(fragment) ){
		var page = fragment.split('=')[1];
		if( $$('a[class^=redirect_page_' + page + ']').length > 0 ){
			setActivePage(page);
		}else{
			document.location.replace('#page=1');
			setActivePage(1);
		}
	}else{
		document.location.replace('#page=1');
		setActivePage(1);
	}
}

function setActivePage( _page ){
	var nb_pagination_bars = $$('div[class^=pagination]').length;
	if( nb_pagination_bars > 0 ){
		var nb_pages = (($$('a[class^=redirect_page_]').length) / nb_pagination_bars) - 2;
		var nblinks = $$('a[class^=redirect_page_]').length;
		var old_page = getActivePage();
		$each($$('a[class^=redirect_page_]'), function(el, ind){
			if( ind == _page.toInt() || ind - 2 - nb_pages == _page.toInt() ){
				$(el).addClass('active');
			}else if( ind == old_page || ind - 2 - nb_pages == old_page ){
				$(el).removeClass('active');
				$(el).set('href', '#page=' + old_page);
			}
		});
	
		$each($$('a[class=redirect_page_precedent]'), function(el){
			var previousPage = _page.toInt() - 1;
			$(el).setStyle('visibility', _page == 1 ? 'hidden' : 'visible');
			$(el).set('href', '#page=' + previousPage);
		});
	
		$each($$('a[class=redirect_page_suivant]'), function(el){
			var nextPage = _page.toInt() + 1;
			$(el).setStyle('visibility', _page == nb_pages ? 'hidden' : 'visible');
			$(el).set('href', '#page=' + nextPage);
		});
	
		document.location.replace('#page=' + _page);
	
		if( $chk($('pagination_page_num' + old_page)) )
			$('pagination_page_num' + old_page).setStyle('display', 'none');
		if( $chk($('pagination_page_num' + _page)) )
			$('pagination_page_num' + _page).setStyle('display', 'block');
	}
}

function getActivePage(){
	var page = null;
	$each($$('div[class^=pagination] a[class*=active]'), function(el, ind){
		if( ind == 0 ){ 
			page = el.get('html');
			return;
		}
	});
	return page != null ? page : 1;
}

/**************************************************************************************/

function reset( _filter, _keep ){
	$$(_filter).each(function(el, ind){
		if( !$defined(_keep) || ($defined(_keep) && ind != _keep) )
			el.value = '';
	});
}

/**************************************************************************************/

function execShowBrand( _brand_name ){
	reset('.form_param_hidden'); 
	$('form_marque').value = _brand_name;	
	formSubmit('form_filtres');
}

function execShowPrice( _price ){
	reset('.form_param_hidden'); 
	$('form_prix').value = _price;
	formSubmit('form_filtres');
}

function execShowType( _type ){
	reset('.form_param_hidden'); 
	$('form_type').value = _type;
	formSubmit('form_filtres');
}

function execShowPage( _page ){
	$('form_page').value = _page; 
	formSubmit('form_filtres');
}

function resetFilters(){
	reset('.form_param_hidden'); 
	formSubmit('form_filtres');
}

function formSubmit( _id_form ){
	$(_id_form).submit();
}

/**************************************************************************************/

function onAjaxRequest(){
	$('newsletter-subtitle').set('class', 'subtitle newssubtitle encours');
	$('newsletter-subtitle').set('html', 'Inscription en cours ...');
}

function onAjaxResponse( _status ){
	var EMPTY_POST = -1;
	var EMAIL_INVALID = 0;
	var MAIL_AJOUTE = 1;
	var message = 'Votre email a bien &eacute;t&eacute; ajout&eacute; !';
	var classname = 'subtitle message-ok'; 
	$('newsletter-subtitle').set('class', classname);
	$('newsletter-subtitle').set('html', message);
	$('newsletter-subtitle').fade(1);
}

/**************************************************************************************/

var active_tab = 0;

function initializeTabs(){
	$each($$('.tabs .headers .tab'), function(el){
		el.addEvent('click', function(){
			id = el.id.split('_')[1];
			hideContent(active_tab);
			active_tab = id;
			showContent(active_tab);
		});
	});
}

function hideContent( _tab ){
	var classname = $('tab_' + _tab).get('class'); 
	$('tab_' + _tab).set('class', classname.replace(/active/, '').trim() );
	$('content_' + _tab).setStyle('display', 'none');
}

function showContent( _tab ){
	var classname = $('tab_' + _tab).get('class'); 
	$('tab_' + _tab).set('class', classname + ' active');
	$('content_' + _tab).setStyle('display', 'block');
	
	if( $defined($('content_' + _tab).get('name')) ){
		document.location.replace('#' + $('content_' + _tab).get('name'));
	}
	
	if( $defined($('content_' + _tab).get('focus')) ){
		if( $chk($($('content_' + _tab).get('focus')))){
			$($('content_' + _tab).get('focus')).focus();
		}
	}
}

function getActiveTab(){
	return active_tab; 	
}

/**************************************************************************************/

function validateVille(){
	$$('input[type=radio][name=ville_correcte]').each(function(el){
		if( el.checked ){
			$('fc_ville').removeClass('error');
			$('fc_ville').value = el.value;
			$('error-message').destroy();
			$('suggestions-villes').destroy();
			$('fc_ville').focus();
		}
	});
}

/**
 * Evalue la force d'un mot de passe
 * 
 * @param _password
 * @return
 */
function passwordStrengthEvaluator( _password ){
	var nbNumbers = $defined(_password.match(new RegExp(/[0-9]/g))) ? _password.match(new RegExp(/[0-9]/g)).length : 0;
	var nbLetters = $defined(_password.match(new RegExp(/[a-z]/i))) ? _password.match(new RegExp(/[a-z]/i)).length : 0;
	var nbUppers = $defined(_password.match(new RegExp(/[A-Z]/g))) ? _password.match(new RegExp(/[A-Z]/g)).length : 0;
	var nbLowers = $defined(_password.match(new RegExp(/[a-z]/g))) ? _password.match(new RegExp(/[a-z]/g)).length : 0;
	var score = 1;
	if( _password.trim().length < 4 ){
		return false;
	}
	score += _password.trim().length * 4;
	if( nbNumbers >= 3 ){
		score += 5;
	}
	if( nbUppers > 0 && nbLowers > 0 ){
		score += 10;
	}
	if( nbNumbers > 0 && nbLetters > 0 ){
		score += 15;
	}
	if( nbNumbers == 0 ){
		score -= 10;
	}
	if( nbLetters == 0 ){
		score -= 10;
	}
	if( score < 25 )
		return 0;
	if( score < 50 )
		return 1;
	return 2;
}

/**************************************************************************************/

/**
 * Gestion de l'affichage des étoiles actives ou non pour un avis 
 * 
 */

function NotationSystem() {

	for (i=1;i<NbStar+1;i++) {
		var img =document.getElementById('Star'+i);
		img.onclick =function() {StarOver(this.id);};

	 	//img.src =StarOutUrl;
		//img.onmouseover =function() {StarOver(this.id);};
		//img.onmouseout =function() {StarOut(this.id);};			
	}
}

function StarOver(Star) {
	StarNb=Name2Nb(Star);
	
	for (i=1;i<(StarNb*1)+1;i++) {
		document.getElementById('Star'+i).src=StarOverUrl;
		document.getElementById('fac-note').value=i;
	}
	for (i=5;i>(StarNb*1);i--) {
		 document.getElementById('Star'+i).src=StarOutUrl;  	 						
	} 						
} 										
//Le survol d'une étoile ne nous permet pas de connaître directement son numéro
//Cette fonction extrait donc ce numéro à partir de l'Id
 function Name2Nb(Star) {
	 StarNb=Star.slice(LgtStarBaseId);
	 return(StarNb);
} 		

