/*
 * Extension de Function pour permettre des paramètres par défaut
 */
Function.prototype.defaults = function()
{
  var _f = this;
  var _a = Array(_f.length-arguments.length).concat(
    Array.prototype.slice.apply(arguments));
  return function()
  {
    return _f.apply(_f, Array.prototype.slice.apply(arguments).concat(
      _a.slice(arguments.length, _a.length)));
  };
}

/*
+-------------------------------------+
Number.prototype.nombreFormate
+-------------------------------------+
Params (facultatifs):
- Int decimales: nombre de decimales (exemple: 2)
- String signe: le signe precedent les decimales (exemple: "," ou ".")
- String separateurMilliers: comme son nom l'indique
Returns:
- String chaine formatee
*/
Number.prototype.nombreFormate = function (decimales, signe, separateurMilliers) {
	var _sNombre = String(this), i, _sRetour = "", _sDecimales = "";
	if (decimales == undefined) decimales = 2;
	if (signe == undefined) signe = '.';
	if (separateurMilliers == undefined) separateurMilliers = ' ';

	function separeMilliers (sNombre) {
		var sRetour = "";
		while (sNombre.length % 3 != 0) {
			sNombre = "0"+sNombre;
		}
		for (i = 0; i < sNombre.length; i += 3) {
			if (i == sNombre.length-1) separateurMilliers = '';
			sRetour += sNombre.substr(i, 3)+separateurMilliers;
		}
		while (sRetour.substr(0, 1) == "0") {
			sRetour = sRetour.substr(1);
		}
		return sRetour.substr(0, sRetour.lastIndexOf(separateurMilliers));
	}
	
	if (_sNombre.indexOf('.') == -1) {
		for (i = 0; i < decimales; i++) {
			_sDecimales += "0";
		}
		_sRetour = separeMilliers(_sNombre);
		if(decimales > 0) _sRetour = _sRetour+signe+_sDecimales;
	} else {
		var sDecimalesTmp = (_sNombre.substr(_sNombre.indexOf('.')+1));
		//alert(sDecimalesTmp+" / "+ decimales);
		if (sDecimalesTmp.length > decimales) {
			var nDecimalesManquantes = sDecimalesTmp.length - decimales;
			_sDecimales = Math.round(Number(sDecimalesTmp) / Math.pow(10, nDecimalesManquantes));
		} else {
			_sDecimales = sDecimalesTmp;
			for (i = 0; i < decimales-sDecimalesTmp.length; i++) {
				_sDecimales += "0";
			}
		}
		_sRetour = separeMilliers(_sNombre.substr(0, _sNombre.indexOf('.')));
		if(decimales > 0) _sRetour = _sRetour+String(signe)+_sDecimales;
	}
	return _sRetour;
}

/**
 * Dans une classe d'éléments HTML donnée, cache tous les éléments à l'exception d'un.
 * Param item : l'élément à afficher
 * Param list : la classe à traiter. Défaut 'infoItem'
 */
var view = function (item, list){
	var listClass = '.'+list; 
	$(listClass).each(function(){
		$(this).hide();
	});
	var id = '#'+list+'-'+item;
	$(id).show();
}.defaults('infoItem');

/**
 * Valide et enregistre le mail dans la base de prospects
 */
function vsMail(mail){
	var dt = {
		'action':'validmail',
		'string':mail
	};
	$.ajax({
			url: '/mods/ajax.php',
			data: dt,
			dataType: 'xml',
			success: function(xml){
				var pResp = $(xml).find('response');
				var result = pResp.find('status').text();
				if(result == '1'){
					subscribe(mail);
				} else if(result == '2') {
					alert("L'adresse "+mail+" est incorrecte");
				} else {
					alert("Une erreur est survenue lors de l'enregistrement.");
				}
			}
	});
}

function subscribe(mail){
	var dt = {
		'action':'subscribe',
		'string': mail
	};
	$.ajax({
		url: '/mods/ajax.php',
		data: dt,
		dataType: 'xml',
		success: function(xml){
			var pResp = $(xml).find('response');
			var result = pResp.find('status').text();
			if(result == '1'){
				alert('Votre adresse '+mail+' a bien été enregistrée.');
			} else {
				alert("Une erreur est survenue lors de l'enregistrement.");
			}
		}
	});
}
