var listeDepartement = ["1","2","3","4","5","6","7","8","9","01","02","03","04","05","06","07","08","09","10","11","12","13","14","15","16","17","18","19","2A","2B","21","22","23","24","25","26","27","28","29","30","31","32","33","34","35","36","37","38","39","40","41","42","43","44","45","46","47","48","49","50","51","52","53","54","55","56","57","58","59","60","61","62","63","64","65","66","67","68","69","70","71","72","73","74","75","76","77","78","79","80","81","82","83","84","85","86","87","88","89","90","91","92","93","94","95","971","972","973","974","975","976","977","978","979"];
var listeSituation = ["mar","union","autre"];
var listeZone = ["idf","agglo","prov","dom"];
var listeMenage= ["mar","veuf","seul","cel"];
var listeZone2 = ["zoneA","zoneB","zoneC"];
function parseNonVide(objet)
{
	if (objet.value==undefined)
		str=objet;
	else
		str=objet.value;
	if (str="")
		return null;
	return str;
}


function diffAnnee(date1,date2)
{
	parseDate = new Array(3);
	parseDate = date1.split("/");
	d1=new Date(parseDate[2],parseDate[1],parseDate[0]);
	parseDate = date2.split("/");
	d2=new Date(parseDate[2],parseDate[1],parseDate[0]);
	diff=d2.getFullYear()- d1.getFullYear()-1;
	if ((d2.getMonth() - d1.getMonth()) >0)
		diff++;
	else
	if ((d2.getMonth() - d1.getMonth()) == 0)
	{
		//alert(d2.getDate());
		//alert(d1.getDate());
		if ((d2.getDate() - d1.getDate()) >=0)
			diff++;
	}
	return diff;
}

function isDate(dateStr) 
{
	parsedate = new Array(3);
	parsedate = dateStr.split("/");
	if (parsedate.length<3)
		return false;
	if(parsedate[2].length != 4) return false;
	if(parsedate[1].length != 2) return false;
	if(parsedate[0].length != 2) return false;
	if(parsedate[2] < 1800 || parsedate[2] > 2200) return false;
	if(parsedate[1] < 1 || 12 < parsedate[1]) return false;
	if(parsedate[0] < 1 || 31 < parsedate[0]) return false;
	return true;
}// Teste une date
function parseDate(objet)
{
	if (objet.value==undefined)
		i=objet;
	else
		i=objet.value;
	if (!isDate(i))
		return null;
	else
		return i;
}


// Teste un entier
function parseEntier(objet)
{
	if (objet.value==undefined)
		i=parseInt(objet);
	else
		i=parseInt(objet.value);
	if (isNaN(i))
		return null;
	else
	{
		if (objet.value!=undefined)
			objet.value=i;
		return i;
	}
	return i;
}
// Teste un entier
function parseEntierVide(objet)
{
	if (objet.value==undefined)
		str=objet;
	else
		str=objet.value;
	i=parseInt(str);
	if (str=="")
	{
		if (objet.value!=undefined)
			objet.value="0";
		i=0;	
		return i;
	}
	if (isNaN(i))
		return null;
	else
	{
		if (objet.value!=undefined)
			objet.value=i;
		return i;
	}
}
// Teste un entier
function parseEntierVideVide(objet)
{
	if (objet.value==undefined)
		str=objet;
	else
		str=objet.value;
	i=parseInt(str);
	if (str=="")
	{
		if (objet.value!=undefined)
			objet.value="";
		i=0;	
		return i;
	}
	if (isNaN(i))
		return null;
	else
	{
		if (objet.value!=undefined)
			objet.value=i;
		return i;
	}
}
// Teste un flottant
function parseFlottant(objet)
{
	if (objet.value==undefined)
		i=parseFloat(objet);
	else
		i=parseFloat(objet.value);
	if (isNaN(i))
		return null;
	else
		return i;
}
function parseFlottantVide(objet)
{
	if (objet.value==undefined)
		str=objet;
	else
		str=objet.value;
	i=parseFloat(str);
	if (str=="")
	{
		if (objet.value!=undefined)
			objet.value="0";	
		i=0;	
		return i;
	}
	if (isNaN(i))
		return null;
	else
		return i;
}
// Teste un oui /non
function parseOuiNon(objet)
{
	var str=null;
	try
	{
		for (var i=0; i < objet.length; i++)
		{
			if (objet[i].checked)
			{
				str = objet[i].value;
			}
		}
	}
	catch (e) {}
	if (str==null)
		str=objet;
	if ((str.toUpperCase()=="OUI") || (str.toUpperCase()=="NON"))
		return str;
	else
		return null;
}
function parseOuiNonVide(objet)
{
	var str=null;
	try
	{
		for (var i=0; i < objet.length; i++)
		{
			if (objet[i].checked)
			{
				str = objet[i].value;
			}
		}
	}
	catch (e) {}
	if (str==null)
		str=objet;
	if ((str.toUpperCase()=="OUI") || (str.toUpperCase()=="NON") || (str.toUpperCase()==""))
		return str;
	else
		return null;
}

function parseNeufAncien(objet)
{
	if (objet.value==undefined)
		str=objet;
	else
		str=objet.value;
	if ((str.toUpperCase()=="NEUF") || (str.toUpperCase()=="ANCIEN"))
		return str;
	else
		return null;
}
function parseNeufExistant(objet)
{
	if (objet.value==undefined)
		str=objet;
	else
		str=objet.value;
	if ((str.toUpperCase()=="NEUF") || (str.toUpperCase()=="EXISTANT"))
		return str;
	else
		return null;
}
// Teste le mois
function parseMois(objet)
{
	var i=parseEntier(objet)
	if (i==null)
		return null;
	if (i<1 || i>12)
{
		return null;
}
	return i;
}
function parseMoisVide(objet)
{
	var i=parseEntierVide(objet)
	if (i==null)
		return null;
	if ((i<1 || i>12) && i!=0)

	{
		return null;
	}
	return i;
}// Teste l'année
function parseAnnee(objet)
{
	var i=parseEntier(objet);
	if (i==null)
		return null;
	if (i<1900 || i>2100)
		return null;
	return i;
}
function parseAnneeVide(objet)
{
	var i=parseEntierVide(objet)
	if (i==null)
		return null;
	if ((i<1900 || i>2100) && i!=0)
		return null;
	return i;
}
function parseAnneeVide1976(objet)
{
	var i=parseEntierVide(objet)
	if (i==null)
		return null;
	if ((i<1976 || i>2100) && i!=0)
		return null;
	return i;
}

// renvoie un paramètre
function getParameter ( queryString, parameterName ) 
{
	queryString=decodeURIComponent(queryString);
	parameterName = parameterName + "=";
	if ( queryString.length > 0 ) 
	{
	// Find the beginning of the string
		begin = queryString.indexOf ( parameterName );
		// If the parameter name is not found, skip it, otherwise return the value
		if ( begin != -1 ) 
		{
			// Add the length (integer) to the beginning
			begin += parameterName.length;
			// Multiple parameters are separated by the "&" sign
			end = queryString.indexOf ( "&");
			end = queryString.indexOf ( "&" , begin );
			if ( end == -1 ) 
			{
				end = queryString.length
			}
			// Return the string
			return unescape ( queryString.substring ( begin, end ) );
		}
		// Return "null" if no parameter has been found
		return null;
	}
}

function locale(decimalPoint, thousandSep, fracDigits) 
{
  this.decimalPoint = new String(decimalPoint);
  this.thousandSep = new String(thousandSep);
  this.fracDigits = fracDigits;
}
function roundFloat(num, fracDigits) 
{
  var factor = Math.pow(10, fracDigits);
  return(Math.round(num*factor)/factor);
}     
function toLcString(num, lc) 
{
  var str = new String(num);
  var aParts = str.split(".");
  s=aParts[0];
  for (i=aParts[0].length-3;i>0;i=i-3)
	s=s.substring(0,i)+lc.thousandSep+s.substring(i,s.length);
  aParts[0]=s;
  return (aParts.join(lc.decimalPoint));
}
function formatNumLocale(num, lc) 
{
  var sNum = new String(roundFloat(num, lc.fracDigits));
  if(lc.fracDigits>0) {
    if(sNum.indexOf(".")<0)
      sNum = sNum+".";
    while(sNum.length < 1+sNum.indexOf(".")+lc.fracDigits)
      sNum = sNum+"0";
	  }
  return(toLcString(sNum, lc));
  }
function formatNum(num) 
{
 	var lc=new locale(","," ",0);
  	var sNum = new String(roundFloat(num, lc.fracDigits));
  	if(lc.fracDigits>0) 
	{
    	if(sNum.indexOf(".")<0)
			sNum = sNum+".";
    	while (sNum.length < 1+sNum.indexOf(".")+lc.fracDigits)
			sNum = sNum+"0";
	}
 	return (toLcString(sNum, lc));
}
function formatNum2(num,decimale) 
{
 	var lc=new locale(","," ",decimale);
  	var sNum = new String(roundFloat(num, lc.fracDigits));
  	if(lc.fracDigits>0) 
	{
    	if(sNum.indexOf(".")<0)
			sNum = sNum+".";
    	while (sNum.length < 1+sNum.indexOf(".")+lc.fracDigits)
			sNum = sNum+"0";
	}
 	return (toLcString(sNum, lc));
}


function parseLcNum(str, lc) 
{
  var sNum = new String(str);
  var aParts = sNum.split(lc.thousandSep);
  sNum = aParts.join("");
  aParts = sNum.split(lc.decimalPoint);
  return(parseFloat(aParts.join(".")));
}
function espacer(num)
{
	return formatNum(num);
}
function espacer2(num,decimale)
{
	return formatNum2(num,decimale);
}

function erreurPage(message)
{
	loc=document.location;
	page=loc.pathname.toString();

	src=loc.search.toString();
//	document.location="http://www.generale-de-promotion.fr/";
	alert(message);
}
function erreurNum(x)
{
	if (!isFinite(x))
		erreurPage("variable infinie");
	return;
	if (isNaN(x))
		erreurPage("variable NaN");
}


function parseDepartement(objet)
{
	if (objet.value==undefined)
		str=objet;
	else
		str=objet.value;
	for (i=0;i<listeDepartement.length;i++)
		if (str==listeDepartement[i])
			return str;
	return null;
}	
function parseDepartementVide(objet)
{
	if (objet.value==undefined)
		str=objet;
	else
		str=objet.value;
	if (str="")
		return str;
	for (i=0;i<listeDepartement.length;i++)
		if (str==listeDepartement[i])
			return str;
	return null;
}
function parseSituation(objet)
{
	if (objet.value==undefined)
		str=objet;
	else
		str=objet.value;
	for (i=0;i<listeSituation.length;i++)
		if (str==listeSituation[i])
			return str;
	return null;
}	
function parseSituationVide(objet)
{
	if (objet.value==undefined)
		str=objet;
	else
		str=objet.value;
	if (str="")
		return str;
	for (i=0;i<listeSituation.length;i++)
		if (str==listeSituation[i])
			return str;
	return null;
}		
function parseZone(objet)
{
	if (objet.value==undefined)
		str=objet;
	else
	{
		str=objet.value;
	}
	for (i=0;i<listeZone.length;i++)
		if (str==listeZone[i])
			return str;
	return null;
}
function parseZoneVide(objet)
{
	if (objet.value==undefined)
		str=objet;
	else
		str=objet.value;
	if (str="")
		return str;
	for (i=0;i<listeZone.length;i++)
		if (str==listeZone[i])
			return str;
	return null;
}
function parseZone2(objet)
{
	if (objet.value==undefined)
		str=objet;
	else
	{
		str=objet.value;
	}
	for (i=0;i<listeZone2.length;i++)
		if (str==listeZone2[i])
			return str;
	return null;
}		
function parseMenage(objet)
{
	if (objet.value==undefined)
		str=objet;
	else
		str=objet.value;
	for (i=0;i<listeMenage.length;i++)
		if (str==listeMenage[i])
			return str;
	return null;
}
