Object.prototype.extend = function(object) {
  for (var prop in object) {
    if (!(prop in this)) {
      this[prop] = object[prop];
    }
  }
}
// Ajouter au type Object une methode donnant l'etat de l'objet
Object.prototype.getState = function() {
  var s = "", value;
  for (var prop in this) {
    value = (typeof(this[prop]) == "function") ? "[function ...]" : this[prop];
    s += prop + " : " + value + "\n";
  }
  //s += "constructor=" + this.constructor;
  return s;
}

Log = {
  error: function(msg) {
    alert("Error : \n" + msg);
  }
}

/*-------------------------------------------------------*/
// Extension des objets DOMElement
// On stocke toutes les methodes dans un objet Element
if (!window.Element) {
  Element = new Object();
}

/** Renvoie le tableau des elements de type tagName enfants de element
 * Si tagName vaut *, renvoie tous les elements enfants */
Element.getChildElements = function(element, tagName) {
  var result = new Array();
  var name = tagName.toLowerCase();
  for (var i=0 ; i<element.childNodes.length ; i++) {
    var child = element.childNodes[i];
    if (child.nodeType == 1) { // C'est un element
      if (name == "*" || child.nodeName.toLowerCase() == name) {
        result.push(child);
      }
    }
  }
  return result;
}

/** Enleve les noeuds texte vides enfants de l'element */
Element.cleanWhiteSpace = function(element) {
  for (var i = 0; i < element.childNodes.length; i++) {
    var node = element.childNodes[i];
    if (node.nodeType == 3 && !/\S/.test(node.nodeValue)) {
      element.removeChild(node);
    }
  }
}

/** Applique a element le style specifie.
 * style est un objet dont les proprietes sont des directives CSS
 * telles qu'utilisees en javascript (ex: fontStyle et non font-style)
 */
Element.setStyle = function(element, style) {
  for (directive in style) {
    element.style[directive] = style[directive];
  }
}

/** Deplace un noeud ou plusieurs d'un parent a un autre 
 * @param children noeud ou tableau de noeuds a deplacer
 * @newParent nouveau parent a donner au noeud
 */
Element.move = function(children, newParent) {
  if (!(children instanceof Array)) {
    children = [children];
  }
  for (var i=0 ; i<children.length ; i++) {
    child = children[i];
    newParent.appendChild(child.parentNode.removeChild(child));
  }
}

/** (inutilise)
 * Applique a l'element HTML element le style specifie
 * style est un objet dont les proprietes sont des directives CSS
 * telles qu'utilisees en javascript (ex: fontStyle et non font-style)
 * Si defaultStyle (optionnel) est present, applique ses directives
 * non presentes dans style.
 */
Element.setStyleOrDefaultStyle = function(element, style, defaultStyle) {
  // Appliquer le style
  for (directive in style) {
    element.style[directive] = style[directive];
  }
  if (defaultStyle) {
    // Appliquer les directives de defaultStyle absentes de style
    for (directive in defaultStyle) {
      element.style[directive] = element.style[directive] 
        || defaultStyle[directive];
    }
  }
}

/** Coordonnee left de l'element */
Element.getLeft = function(element) {
  var offsetLeft = 0;
  // On cumule les offset de tous les elements englobants
  while (element != null) {
    offsetLeft += element.offsetLeft;
    element = element.offsetParent;
  }
  return offsetLeft;
}

/** Coordonnee top de l'element */
Element.getTop = function(element) {
  var offsetTop = 0;
  // On cumule les offset de tous les elements englobants
  while (element != null) {
    offsetTop += element.offsetTop;
    element = element.offsetParent;
  }
  return offsetTop;
}


/*-------------------------------------------------------*/
/** Unicode */
Keys = {
  TAB:      9,
  ENTER:    13,
  ESCAPE:   27,
  PAGE_UP:   33,
  PAGE_DOWN:34,
  END:       35,
  HOME:      36,
  LEFT:     37,
  UP:       38,
  RIGHT:    39,
  DOWN:     40
};


/*-------------------------------------------------------*/
/** DOM event */
if (!window.Event) {
  Event = new Object();
}

Event.event = function(event) {
  // W3C ou alors IE
  return (event || window.event);
}

Event.target = function(event) {
  return (event) ? event.target : window.event.srcElement ;
}

Event.preventDefault = function(event) {
  var event = event || window.event;
  if (event.preventDefault) { // W3C
    event.preventDefault();
  }
  else { // IE
    event.returnValue = false;
  }
}

Event.stopPropagation = function(event) {
  var event = event || window.event;
  if (event.stopPropagation) {
    event.stopPropagation();
  }
  else {
    event.cancelBubble = true;
  }
}

//la fameuse fonction dollar
function $() {
	var elements = new Array();
	for (var i = 0; i < arguments.length; i++) {
		var element = arguments[i];
		if (typeof element == 'string')
			element = document.getElementById(element);
		if (arguments.length == 1)
			return element;
		elements.push(element);
	}
	return elements;
}

function addEvent(elm, evType, fn, useCapture) {
	if (elm.addEventListener) {
		elm.addEventListener(evType, fn, useCapture);
		return true;
	}
	else if (elm.attachEvent) {
		var r = elm.attachEvent('on' + evType, fn);
		return r;
	}
	else {
		elm['on' + evType] = fn;
	}
}
function toggle(obj) {
	var el = $(obj);
	if ( el.style.display != 'none' ) {
		el.style.display = 'none';
	}
	else {
		el.style.display = '';
	}
}

/**
 * tous les éléments du DOM (ou de l'arbo de node) de class searchClass
 * @param {Object} searchClass
 * @param {Object} node
 * @param {Object} tag
 */
function getElementsByClass(searchClass,node,tag) {
	var classElements = new Array();
	if ( node == null )
		node = document;
	if ( tag == null )
		tag = '*';
	var els = node.getElementsByTagName(tag);
	var elsLen = els.length;
	var pattern = new RegExp('(^|\\s)'+searchClass+'(\\s|$)');
	for (i = 0, j = 0; i < elsLen; i++) {
		if ( pattern.test(els[i].className) ) {
			classElements[j] = els[i];
			j++;
		}
	}
	return classElements;
}

Array.prototype.contains = function (element) 
  {
          for (var i = 0; i < this.length; i++) 
       {
              if (this[i] == element) 
          {
                      return true;
              }
          }
          return false;
  };
  
function FieldJumper(idFirstField,idSecondField, idThirdField)
{
	if (!$(idFirstField) || !$(idSecondField)) {
	 alert('one of the fields doesn\'t exist in this document');
	 return;
	}
	
	this.firstfield=$(idFirstField);
	this.secondfield=$(idSecondField);
	this.thirdfield=$(idThirdField);
	this.propagate=true;
	if (this.firstfield.getAttribute("maxlength")) {
		this.firstmaxlength=this.firstfield.getAttribute("maxlength");
		}
		else {
		alert('the first field has no maxlength');
		return;
		}
	if (this.secondfield.getAttribute("maxlength")) {
		this.secondmaxlength=this.secondfield.getAttribute("maxlength");
		}
		else {
		alert('the second field has no maxlength');
		return;
		}
	this.setBehaviour();

}




FieldJumper.prototype.constructor=FieldJumper;

FieldJumper.prototype.extend({
		setBehaviour:function() {
		var current=this;
		this.firstfield.onfocus = function(e) {
			current.firstfield.select();
		}
		this.firstfield.onkeyup = function(e) {
			if (!e) var e = window.event;
			if (current.firstfield.value.length>=current.firstmaxlength
			&& e.KeyCode != 8
			&& e.keyCode != 16
			&& e.keyCode != 9)
			{
			current.propagate=false;
			current.secondfield.focus();
			current.secondfield.select();
			
			}
				
		}
		this.secondfield.onkeyup = function(e) {
			if (!e) var e = window.event;
			if ((current.secondfield.value.length>=current.secondmaxlength)
			&& e.KeyCode != 8
			&& e.keyCode != 16
			&& e.keyCode != 9)
			{
			current.thirdfield.focus();
			current.thirdfield.select();
			}
				
		}
	}
});

/** 
 * Returns array with x,y page scroll values.
 * Core code from - quirksmode.org
 */
function getPageScroll(){

	var yScroll;

	if (self.pageYOffset) {
		yScroll = self.pageYOffset;
	} else if (document.documentElement && document.documentElement.scrollTop){	 // Explorer 6 Strict
		yScroll = document.documentElement.scrollTop;
	} else if (document.body) {// all other Explorers
		yScroll = document.body.scrollTop;
	}

	arrayPageScroll = new Array('',yScroll) 
	return arrayPageScroll;
}




/** Returns array with page width, height and window width, height
* Core code from - quirksmode.org
* Edit for Firefox by pHaez
*/
function getPageSize(){
	
	var xScroll, yScroll;
	
	if (window.innerHeight && window.scrollMaxY) {	
		xScroll = document.body.scrollWidth;
		yScroll = window.innerHeight + window.scrollMaxY;
	} else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
		xScroll = document.body.scrollWidth;
		yScroll = document.body.scrollHeight;
	} else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
		xScroll = document.body.offsetWidth;
		yScroll = document.body.offsetHeight;
	}
	
	var windowWidth, windowHeight;
	if (self.innerHeight) {	// all except Explorer
		windowWidth = self.innerWidth;
		windowHeight = self.innerHeight;
	} else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
		windowWidth = document.documentElement.clientWidth;
		windowHeight = document.documentElement.clientHeight;
	} else if (document.body) { // other Explorers
		windowWidth = document.body.clientWidth;
		windowHeight = document.body.clientHeight;
	}	
	
	// for small pages with total height less then height of the viewport
	if(yScroll < windowHeight){
		pageHeight = windowHeight;
	} else { 
		pageHeight = yScroll;
	}

	// for small pages with total width less then width of the viewport
	if(xScroll < windowWidth){	
		pageWidth = windowWidth;
	} else {
		pageWidth = xScroll;
	}


	arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight) 
	return arrayPageSize;
}

/**
 * masque la div d'attente
 * @author gusau
 * 
 */
function hideActivity() {
	
	if ($('activity')) {
		$('activity').style.display='none';
	}	
}

function showActivity() {
	
	var arrayPageSize = getPageSize();
	var arrayPageScroll = getPageScroll();
	
	if ($('activity')) {
		$('activity').style.position = 'absolute';
		$('activity').style.zIndex = 1500;
		$('activity').style.top = (arrayPageScroll[1] + ((arrayPageSize[3] - 35 - 128) / 2) + 'px');
		$('activity').style.left = (((arrayPageSize[0] - 20 - 128) / 2) + 'px');
		$('activity').style.display='block';
		//alert(arrayPageSize[0] + '-' + $('activity').style.left + '-' + $('activity').style.top);
	}	
}
  
 /**
 * composant qui met en place un système "tout cocher / tout décocher" sur un ensemble de cases à cocher
 * contenues dans un élément xhtml
 * @param {Object} idRoot id de l'élement dans lequel sont contenues les cases à cocher
 * @param {Object} bouton élément qui déclenche le "cochage/décochage"
 */
function CheckList(idRoot,bouton)
	{
	this.id=idRoot;
	// la racine
	this.root=document.getElementById(idRoot);
	// rec
	this.checkBoxes=null;
	this.idBouton=bouton;
	this.bouton=document.getElementById(bouton);	
	this.setListe();
	// spécifier les réactions aux clics
	this.setBehaviour();
	}
	
CheckList.prototype.constructor=CheckList;

CheckList.prototype.extend({
setListe:function() {
	Element.cleanWhiteSpace(this.root);
	this.checkBoxes=this.root.getElementsByTagName("input");
	},
setBehaviour:function()	{
	var checkList=this;
	if (this.bouton.parentNode.style)
		{
			this.bouton.parentNode.style.display="block";
		}
	else if(this.bouton.style)
		{
			this.bouton.style.display="block";
		}
	if (this.bouton.type=="checkbox")
		{
			this.bouton.checked=false;
		}
	this.bouton.onclick=function(){
	for (i=0;i<checkList.checkBoxes.length;i++)
				{
		//TODO il ne faut pas cocher des éléments masqués
		// tester si checkList.checkboxes[i].style.display!='none'
					if ((checkList.checkBoxes[i].getAttribute("type")=="checkbox")
					&&(checkList.checkBoxes[i].id!=checkList.idBouton)
					&&(checkList.checkBoxes[i].parentNode.style.display!='none')
					)
					{
						checkList.checkBoxes[i].checked=(checkList.bouton.checked)?true:false;
					}			
	}	
	};
}
});
function init() {


	// cas "recherche publication"
	 if ($('checkAll'))
	{

		var checkList=new CheckList("div_chck","checkAll");
	}
	if ($('checkZone'))
	{
		var checkList=new CheckList("div_chckZone","checkZone");
		var elm=$('checkZone');
		addEvent(elm,'click',changeZone);
		displayStation();
	}
	if ($('checkTypo'))
	{
		var checkList=new CheckList("div_chckTypo","checkTypo");
		var elm=$('checkTypo');
		addEvent(elm,'click',changeTypo);

	}
	if ($('checkStation'))
	{
		var checkList=new CheckList("div_chckStation","checkStation");
	}

	if ($('div_chckZone'))
	{
		getCheckBox();
		//changeZone();
		$('listeChampsPeriode').onchange=changeDateSelonPeriode;
		$('rech_detail').onclick=toggleBlocRecherche;
	}

	// les dates du formulaire mesure, du formulaire indice, des cartes de prévisions
	if (($('j')) && ($('m')) && ($('a'))) {
		var un = new FieldJumper('j','m','a');
	}
	
	// les dates du formulaire de recherche publication
	if (($('date_publicajour')) && ($('date_publicamois')) && ($('date_publicaannee'))) {
		var un = new FieldJumper('date_publicajour','date_publicamois','date_publicaannee');
	}
	
	// ajout du 
	var activityStart = getElementsByClass('activityStart');
	for (k=0;k<activityStart.length;k++){
		addEvent(activityStart[k],'click',showActivity);
	}
	if ($('div_chckZone'))
	{
		displayStation();
		}
	hideActivity();
};

// on ajoute les handlers javascript
addEvent(window,'load',init,false);var z=[];
z=['173', '176', '180', '181', '182', '183', '184', '185', '187', '188', '189', '190', '191', '192'];
var p=[];
p['NX-composite']=['oxydes d\'azote (NX-composite)', 'NX-composite'];
p['AS']=['arsenic particulaire (AS)', 'AS'];
p['CD']=['cadmium particulaire (CD)', 'CD'];
p['NI']=['nickel particulaire (NI)', 'NI'];
p['PB']=['plomb particulaire (PB)', 'PB'];
p['CO']=['monoxyde de carbone (CO)', 'CO'];
p['BZ']=['benz\350ne (BZ)', 'BZ'];
p['EB-AUTO']=['\351thyl benz\350ne (EB-AUTO)', 'EB-AUTO'];
p['TO-AUTO']=['tolu\350ne (TO-AUTO)', 'TO-AUTO'];
p['OX-AUTO']=['o-xyl\350ne (OX-AUTO)', 'OX-AUTO'];
p['XY-AUTO']=['m.p-xyl\350ne (XY-AUTO)', 'XY-AUTO'];
p['N2']=['dioxyde d\'azote (N2)', 'N2'];
p['S2']=['dioxyde de soufre (S2)', 'S2'];
p['NO']=['monoxyde d\'azote (NO)', 'NO'];
p['PS']=['poussi\350res fines PM10 (PS)', 'PS'];
p['O3']=['ozone (O3)', 'O3'];
p['P2']=['poussi\350res tr\350s fines PM2,5 (P2)', 'P2'];
p['B(a)P_part']=['benzo(a)pyr\350ne particulaire (B(a)P_part)', 'B(a)P_part'];
p['B(j)F_part']=['benzo(j)fluoranth\350ne particulaire (B(j)F_part)', 'B(j)F_part'];
p['B(b)F_part']=['benzo(b)fluoranth\350ne particulaire (B(b)F_part)', 'B(b)F_part'];
p['DB(ah)A_part']=['dibenzo(a,h)anthrac\350ne particulaire (DB(ah)A_part)', 'DB(ah)A_part'];
p['ID_part']=['indeno(1,2,3-cd)pyr\350ne particulaire (ID_part)', 'ID_part'];
p['B(k)F_part']=['benzo(k)fluoranth\350ne particulaire (B(k)F_part)', 'B(k)F_part'];
p['B(a)A_part']=['benzo(a)anthrac\350ne particulaire (B(a)A_part)', 'B(a)A_part'];
p['BZ-AUTO']=['benz\350ne (BZ-AUTO)', 'BZ-AUTO'];
var pm=['AS','CD','NI','PB','B(a)P_part','B(j)F_part','B(b)F_part','DB(ah)A_part','ID_part','B(k)F_part','B(a)A_part']
var t=[];
t=['3', '0', '1', '4', '2'];
var s=[];
s=['MEGR', 'PAST', 'TGRA', 'MICH', 'BOSS', 'TREV', 'TAIL', 'BELL', 'EAUX', 'SLUC', 'STRA', 'PROV', 'VELO', 'FROS', 'SAVE', 'SETI', 'VIGN', 'SAUT', 'VERN', 'JAPL', 'CUTU', 'VICT', 'BAIR', 'GAUL', 'PSEC', 'EURO', 'RONC', 'RENE', 'ALAR', 'BAST', 'LAEN', 'VIGO', 'CHAU', 'AUVI', 'BLUM', 'LESS', 'GIRO', 'LAR2', 'LARO', 'MONC', 'MONP', 'BART', 'FOLI', 'RICA', 'LACM', 'EMIL', 'JPER', 'VEGA', 'CORB', 'HOUS', 'VHUG', 'CREB', 'GOUG', 'REPU', 'MARR', 'GAU2', 'NATI', 'CUT2', 'APPE', 'CLEM', 'DELA', 'BONN', 'PHAR', 'EPIN', 'BERG', 'FILL', 'GUED', 'BEAU', 'JOFF', 'SADE', 'PLES', 'BALI', 'SOUR', 'BELA', 'CLAI', 'PAYS', 'AMPE', 'MAZA', 'EXUP', 'BOUT', '23193', 'LAFA', 'ORIE', 'AUFF', 'MEN2', 'LOUI', 'GASP', 'FORG'];
var zt = [];
zt['173']=[''];
zt['176']=['3', '0', '1', '4'];
zt['180']=['3'];
zt['181']=['0', '1', '4', '3'];
zt['182']=['0', '1', '4'];
zt['183']=['2', '4', '0'];
zt['184']=['4', '0'];
zt['185']=['0', '4', '1'];
zt['187']=['0', '4', '1'];
zt['188']=['4', '0'];
zt['189']=['0', '4', '1'];
zt['190']=['0', '4', '1'];
zt['191']=['2', '0', '4'];
zt['192']=['0', '4'];
var zs = [];
zs['173']=[];
zs['176']=['MEGR', 'PAST', 'BOSS', 'TREV', 'TAIL', 'FROS', 'SAVE', 'SETI', 'VIGN', 'VERN', 'CUTU', 'CUT2', 'BONN', 'PLES', 'AMPE', 'TGRA', 'MICH', 'BELL', 'EAUX', 'SLUC', 'STRA', 'PROV', 'VELO', 'SAUT', 'JAPL', 'BAST', 'VIGO', 'CHAU', 'AUVI', 'GIRO', 'MONC', 'RICA', 'JPER', 'CORB', 'VHUG', 'CREB', 'MARR', 'EPIN', 'JOFF', 'BALI', 'BELA', 'CLAI', 'BOUT', 'ORIE', 'FORG', 'BLUM', 'LESS', 'EMIL', 'REPU', 'PAYS', 'AUFF', 'GASP'];
zs['180']=['MEGR', 'PAST', 'BOSS', 'TREV', 'TAIL', 'FROS', 'SAVE', 'SETI', 'VIGN', 'VERN', 'CUTU', 'CUT2', 'BONN', 'PLES', 'AMPE'];
zs['181']=['TGRA', 'MICH', 'BELL', 'EAUX', 'SLUC', 'STRA', 'PROV', 'VELO', 'SAUT', 'JAPL', 'BAST', 'VIGO', 'CHAU', 'AUVI', 'GIRO', 'MONC', 'RICA', 'JPER', 'CORB', 'VHUG', 'CREB', 'MARR', 'EPIN', 'JOFF', 'BALI', 'BELA', 'CLAI', 'BOUT', 'ORIE', 'FORG'];
zs['182']=['BLUM', 'LESS', 'EMIL', 'REPU', 'PAYS', 'AUFF', 'GASP'];
zs['183']=['SADE', 'GAU2', 'MAZA', 'LOUI'];
zs['184']=['GAU2', 'MAZA', 'LOUI'];
zs['185']=['EURO', 'RONC', 'RENE', 'ALAR', 'LAR2', 'LARO', 'MONP', 'BART', 'LACM', 'APPE', 'BERG', 'BEAU', '23193', 'NATI', 'EXUP'];
zs['187']=['EURO', 'RONC', 'RENE', 'ALAR', 'LAR2', 'LARO', 'MONP', 'BART', 'LACM', 'APPE', 'BERG', 'BEAU', '23193'];
zs['188']=['NATI', 'EXUP'];
zs['189']=['VICT', 'BAIR', 'GAUL', 'PSEC', 'VEGA', 'HOUS', 'GOUG', 'FILL', 'GUED', 'SOUR', 'MEN2'];
zs['190']=['VICT', 'BAIR', 'GAUL', 'PSEC', 'VEGA', 'HOUS', 'GOUG', 'FILL', 'GUED', 'SOUR', 'MEN2'];
zs['191']=['FOLI', 'PHAR', 'LAEN', 'CLEM', 'DELA', 'LAFA'];
zs['192']=['LAEN', 'CLEM', 'DELA', 'LAFA'];
var zp = [];
zp['173']=[];
zp['176']=['N2', 'S2', 'NO', 'NX-composite', 'AS', 'CD', 'NI', 'PB', 'PS', 'CO', 'O3', 'P2', 'BZ', 'EB-AUTO', 'XY-AUTO', 'OX-AUTO', 'TO-AUTO'];
zp['180']=['N2', 'S2', 'NO', 'NX-composite', 'AS', 'CD', 'NI', 'PB', 'PS'];
zp['181']=['N2', 'S2', 'CO', 'NO', 'O3', 'NX-composite', 'AS', 'CD', 'NI', 'PB', 'PS', 'P2', 'BZ', 'EB-AUTO', 'XY-AUTO', 'OX-AUTO', 'TO-AUTO'];
zp['182']=['AS', 'CD', 'N2', 'S2', 'NO', 'NI', 'NX-composite', 'O3', 'PB', 'PS', 'P2', 'BZ', 'EB-AUTO', 'XY-AUTO', 'OX-AUTO', 'TO-AUTO', 'CO'];
zp['183']=['O3', 'PS', 'P2', 'BZ', 'EB-AUTO', 'XY-AUTO', 'OX-AUTO', 'TO-AUTO', 'AS', 'CD', 'N2', 'S2', 'NO', 'NI', 'NX-composite', 'PB', 'BZ-AUTO', 'CO'];
zp['184']=['BZ', 'EB-AUTO', 'XY-AUTO', 'OX-AUTO', 'TO-AUTO', 'AS', 'CD', 'N2', 'S2', 'NO', 'NI', 'NX-composite', 'O3', 'PB', 'PS', 'P2', 'BZ-AUTO', 'CO'];
zp['185']=['N2', 'S2', 'NO', 'NX-composite', 'O3', 'CO', 'BZ', 'EB-AUTO', 'XY-AUTO', 'OX-AUTO', 'TO-AUTO', 'PS', 'P2', 'AS', 'CD', 'NI', 'PB'];
zp['187']=['N2', 'S2', 'NO', 'NX-composite', 'O3', 'CO', 'BZ', 'EB-AUTO', 'XY-AUTO', 'OX-AUTO', 'TO-AUTO', 'PS', 'P2', 'AS', 'CD', 'NI', 'PB'];
zp['188']=['BZ', 'N2', 'EB-AUTO', 'XY-AUTO', 'NO', 'CO', 'OX-AUTO', 'NX-composite', 'PS', 'TO-AUTO', 'AS', 'CD', 'S2', 'NI', 'O3', 'PB', 'P2'];
zp['189']=['BZ', 'N2', 'S2', 'EB-AUTO', 'XY-AUTO', 'NO', 'OX-AUTO', 'NX-composite', 'O3', 'TO-AUTO', 'CO', 'P2', 'AS', 'CD', 'NI', 'PB', 'PS'];
zp['190']=['BZ', 'N2', 'S2', 'EB-AUTO', 'XY-AUTO', 'NO', 'OX-AUTO', 'NX-composite', 'O3', 'TO-AUTO', 'CO', 'P2', 'AS', 'CD', 'NI', 'PB', 'PS'];
zp['191']=['N2', 'NO', 'NX-composite', 'O3', 'PS', 'P2', 'BZ', 'S2', 'EB-AUTO', 'XY-AUTO', 'OX-AUTO', 'TO-AUTO', 'AS', 'CD', 'NI', 'PB', 'CO'];
zp['192']=['BZ', 'N2', 'S2', 'EB-AUTO', 'XY-AUTO', 'NO', 'OX-AUTO', 'NX-composite', 'O3', 'TO-AUTO', 'AS', 'CD', 'NI', 'PB', 'PS', 'P2', 'CO'];
var pt = [];
pt['N2']=['3', '0', '1', '4', '2'];
pt['S2']=['3', '0', '4'];
pt['NO']=['3', '0', '1', '4', '2'];
pt['NX-composite']=['3', '0', '1', '4', '2'];
pt['AS']=['3', '0', '4'];
pt['CD']=['3', '0'];
pt['NI']=['3', '0'];
pt['PB']=['3', '0'];
pt['CO']=['0', '4'];
pt['O3']=['0', '1', '3', '2', '4'];
pt['PS']=['3', '0', '2', '4'];
pt['BZ']=['0', '4'];
pt['EB-AUTO']=['0', '4'];
pt['XY-AUTO']=['0', '4'];
pt['OX-AUTO']=['0', '4'];
pt['TO-AUTO']=['0', '4'];
pt['P2']=['0', '2', '4', '3'];
pt['BZ-AUTO']=['4'];
var ps = [];
ps['N2']=['MEGR', 'TGRA', 'MICH', 'BOSS', 'TREV', 'BELL', 'EAUX', 'SLUC', 'STRA', 'PROV', 'VELO', 'FROS', 'SETI', 'VERN', 'JAPL', 'VICT', 'BAIR', 'GAUL', 'PSEC', 'EURO', 'RONC', 'RENE', 'ALAR', 'BAST', 'LAEN', 'VIGO', 'CHAU', 'AUVI', 'BLUM', 'LESS', 'GIRO', 'LARO', 'MONC', 'MONP', 'BART', 'FOLI', 'RICA', 'JPER', 'VEGA', 'CORB', 'VHUG', 'CREB', 'REPU', 'NATI', 'APPE', 'DELA', 'BONN', 'PHAR', 'BERG', 'GUED', 'JOFF', 'SOUR', 'BELA', 'PAYS', 'AMPE', 'MAZA', 'EXUP', 'BOUT', 'LAFA', 'ORIE', 'LOUI', 'FORG'];
ps['S2']=['MEGR', 'PAST', 'TGRA', 'MICH', 'TREV', 'TAIL', 'BELL', 'EAUX', 'STRA', 'PROV', 'VELO', 'FROS', 'SAVE', 'SETI', 'VIGN', 'SAUT', 'JAPL', 'CUTU', 'VICT', 'BAIR', 'GAUL', 'PSEC', 'EURO', 'RONC', 'RENE', 'ALAR', 'LAEN', 'VIGO', 'CHAU', 'AUVI', 'BLUM', 'LESS', 'GIRO', 'LARO', 'MONC', 'MONP', 'JPER', 'VEGA', 'CUT2', 'APPE', 'BONN', 'PLES', 'PAYS', 'AMPE', 'MAZA', 'EXUP'];
ps['NO']=['MEGR', 'TGRA', 'MICH', 'BOSS', 'TREV', 'BELL', 'EAUX', 'SLUC', 'STRA', 'PROV', 'VELO', 'FROS', 'SETI', 'VERN', 'JAPL', 'VICT', 'BAIR', 'GAUL', 'PSEC', 'EURO', 'RONC', 'RENE', 'ALAR', 'BAST', 'LAEN', 'VIGO', 'CHAU', 'AUVI', 'BLUM', 'LESS', 'GIRO', 'LARO', 'MONP', 'BART', 'FOLI', 'RICA', 'JPER', 'VEGA', 'CORB', 'VHUG', 'CREB', 'REPU', 'NATI', 'APPE', 'DELA', 'BONN', 'PHAR', 'BERG', 'GUED', 'JOFF', 'SOUR', 'BELA', 'PAYS', 'AMPE', 'MAZA', 'EXUP', 'BOUT', 'LAFA', 'ORIE', 'LOUI', 'FORG'];
ps['NX-composite']=['MEGR', 'BOSS', 'TREV', 'EAUX', 'SLUC', 'STRA', 'PROV', 'VELO', 'FROS', 'SETI', 'VERN', 'JAPL', 'VICT', 'BAIR', 'GAUL', 'PSEC', 'EURO', 'RONC', 'RENE', 'ALAR', 'BAST', 'LAEN', 'VIGO', 'CHAU', 'AUVI', 'BLUM', 'LESS', 'GIRO', 'LARO', 'MONP', 'BART', 'FOLI', 'RICA', 'JPER', 'VEGA', 'CORB', 'VHUG', 'CREB', 'REPU', 'NATI', 'APPE', 'DELA', 'BONN', 'PHAR', 'BERG', 'GUED', 'JOFF', 'SOUR', 'BELA', 'PAYS', 'AMPE', 'MAZA', 'EXUP', 'BOUT', 'LAFA', 'LOUI', 'FORG'];
ps['AS']=['PAST', 'SETI', 'JAPL', 'BLUM', 'BART', 'DELA', 'GUED', 'MAZA', 'EXUP', 'BOUT', 'MEN2'];
ps['CD']=['PAST', 'SETI', 'JAPL', 'BLUM', 'BART', 'DELA', 'GUED', 'MAZA', 'EXUP', 'BOUT'];
ps['NI']=['PAST', 'SETI', 'JAPL', 'BLUM', 'BART', 'DELA', 'GUED', 'MAZA', 'EXUP', 'BOUT'];
ps['PB']=['PAST', 'SETI', 'JAPL', 'BLUM', 'BART', 'DELA', 'GUED', 'MAZA', 'EXUP', 'BOUT'];
ps['CO']=['TGRA', 'MICH', 'STRA', 'GAUL', 'RENE', 'VIGO', 'AUVI', 'LARO', 'VHUG', 'CREB', 'REPU', 'NATI', 'BERG', 'JOFF', 'BELA', 'LAFA', 'ORIE', 'LOUI', 'FORG'];
ps['O3']=['TGRA', 'BELL', 'SLUC', 'PROV', 'VELO', 'JAPL', 'VICT', 'BAIR', 'EURO', 'RONC', 'ALAR', 'BAST', 'LAEN', 'CHAU', 'BLUM', 'LESS', 'GIRO', 'MONC', 'MONP', 'BART', 'FOLI', 'RICA', 'LACM', 'EMIL', 'JPER', 'VEGA', 'CORB', 'HOUS', 'APPE', 'DELA', 'PHAR', 'EPIN', 'FILL', 'GUED', 'BEAU', 'SADE', 'SOUR', 'CLAI', 'MAZA', 'EXUP', 'BOUT', 'LOUI', 'GASP'];
ps['PS']=['FROS', 'SETI', 'CHAU', 'BLUM', 'GIRO', 'MONP', 'BART', 'FOLI', 'VHUG', 'REPU', 'NATI', 'APPE', 'DELA', 'GUED', 'SADE', 'PLES', 'SOUR', 'BELA', 'MAZA', 'EXUP', 'BOUT', 'LAFA', 'ORIE', 'LOUI', 'FORG'];
ps['BZ']=['VICT', 'LAEN', 'LESS', 'GIRO', 'LAR2', 'LARO', 'BART', 'VHUG', 'CREB', 'GOUG', 'REPU', 'GAU2', 'NATI', 'CLEM', 'DELA', 'GUED', 'JOFF', 'BELA', 'PAYS', 'MAZA', 'EXUP', '23193', 'LAFA', 'AUFF'];
ps['EB-AUTO']=['VICT', 'LAEN', 'LESS', 'GIRO', 'LAR2', 'LARO', 'BART', 'VHUG', 'CREB', 'GOUG', 'REPU', 'GAU2', 'NATI', 'CLEM', 'DELA', 'GUED', 'JOFF', 'BELA', 'PAYS', 'MAZA', 'EXUP', '23193', 'LAFA', 'LOUI'];
ps['XY-AUTO']=['VICT', 'LAEN', 'LESS', 'GIRO', 'LAR2', 'LARO', 'BART', 'VHUG', 'CREB', 'GOUG', 'REPU', 'GAU2', 'NATI', 'CLEM', 'DELA', 'GUED', 'JOFF', 'BELA', 'PAYS', 'MAZA', 'EXUP', '23193', 'LAFA', 'LOUI'];
ps['OX-AUTO']=['VICT', 'LAEN', 'LESS', 'GIRO', 'LAR2', 'LARO', 'BART', 'VHUG', 'CREB', 'GOUG', 'REPU', 'GAU2', 'NATI', 'CLEM', 'DELA', 'GUED', 'JOFF', 'BELA', 'PAYS', 'MAZA', 'EXUP', '23193', 'LAFA', 'LOUI'];
ps['TO-AUTO']=['VICT', 'LAEN', 'LESS', 'GIRO', 'LAR2', 'LARO', 'BART', 'VHUG', 'CREB', 'GOUG', 'REPU', 'GAU2', 'NATI', 'CLEM', 'DELA', 'GUED', 'JOFF', 'BALI', 'BELA', 'PAYS', 'MAZA', 'EXUP', '23193', 'LAFA', 'LOUI'];
ps['P2']=['CHAU', 'BLUM', 'GIRO', 'MONP', 'BART', 'FOLI', 'VEGA', 'CORB', 'VHUG', 'MARR', 'DELA', 'GUED', 'SADE', 'SOUR', 'MAZA', 'EXUP', 'BOUT'];
ps['BZ-AUTO']=['LOUI'];
var ts = [];
ts['3']=['MEGR', 'PAST', 'BOSS', 'TREV', 'TAIL', 'VELO', 'FROS', 'SAVE', 'SETI', 'VIGN', 'SAUT', 'VERN', 'CUTU', 'MARR', 'CUT2', 'BONN', 'PLES', 'AMPE'];
ts['0']=['TGRA', 'MICH', 'BELL', 'EAUX', 'PROV', 'JAPL', 'VICT', 'BAIR', 'PSEC', 'EURO', 'RONC', 'ALAR', 'LAEN', 'CHAU', 'BLUM', 'LESS', 'GIRO', 'MONC', 'MONP', 'BART', 'JPER', 'VEGA', 'CORB', 'APPE', 'DELA', 'GUED', 'BALI', 'SOUR', 'PAYS', 'MAZA', 'EXUP', 'BOUT'];
ts['1']=['SLUC', 'BAST', 'RICA', 'LACM', 'EMIL', 'HOUS', 'EPIN', 'FILL', 'BEAU', 'CLAI', 'GASP'];
ts['4']=['STRA', 'GAUL', 'RENE', 'VIGO', 'AUVI', 'LAR2', 'LARO', 'VHUG', 'CREB', 'GOUG', 'REPU', 'GAU2', 'NATI', 'CLEM', 'BERG', 'JOFF', 'BELA', '23193', 'LAFA', 'ORIE', 'AUFF', 'MEN2', 'LOUI', 'FORG'];
ts['2']=['FOLI', 'PHAR', 'SADE'];
// on ajoute les gestionnaire d'évenements là où il faut

/**
 *
 * @param {Object} id id du div où chercher
 */


function getCheckBox()
{
	var element=$('div_chckZone');
	var checkboxes=element.getElementsByTagName('input');
	var z=[];
	var nbCheckedZones = 0;
	for (i=0;i<checkboxes.length;i++)
	{
		//alert(checkboxes[i].id);
		if (checkboxes[i].id.match(/^zone_.*$/))
		{
		checkboxes[i].onclick=changeZone;
		z.push(checkboxes[i].id);
		if (checkboxes[i].checked) {
			nbCheckedZones++
		}
		//checkboxes[i].disabled=false;

		}
	}
	$('checkZone').checked=(nbCheckedZones==z.length)?true:false;

	element=$('div_chckTypo');
	checkboxes=element.getElementsByTagName('input');
	var t=[];
	var nbCheckedTypo = 0;
	for (i=0;i<checkboxes.length;i++)
	{
		if (checkboxes[i].id.match(/^typo_.*$/))
		{
		t.push(checkboxes[i].id);
		checkboxes[i].onclick=changeTypo;
		if (checkboxes[i].checked) {
			nbCheckedTypo++;
		}
		//checkboxes[i].parentNode.style.display="none";
		}
	}
//	alert("nombre de typologies : "+t.length);
	$('checkTypo').checked=(nbCheckedTypo==t.length)?true:false;

	element=$('listeChampsPolluant');
	element.onchange=changePolluant;

	element=$('div_chckStation');
	checkboxes=element.getElementsByTagName('input');
	var s = [];
	var nbCheckedStations = 0;
	for (i=0;i<checkboxes.length;i++)
	{
		if (checkboxes[i].id.match(/^station_.*$/))
		{
		s.push(checkboxes[i].id);
		//checkboxes[i].onclick=changeTypo;
		}
	}

	//TODO compter les stations affichées ou bien ?
	$('checkStation').checked=(nbCheckedStations==s.length)?true:false;

}

function changeZone()
{

	// le tableau qui va contenir les typologies à cocher
	var typoToCheck=[];
	var polluantToCheck=[];
	var stationToCheck=[];
	var polluantToCreate=[];
	var nbZones=z.length;
	var nbTypo=t.length;
	var nbStations=s.length;
	var nbStationsAffichees = nbStations;
	var nbZonesSelectionnees=0;

	for (var i=0;i<nbZones;i++)
		{
			//alert(z[i]);
			if ($('zone_'+z[i])&&$('zone_'+z[i]).checked)
			{
				// si la zone est sélectionnée
				nbZonesSelectionnees++;
				// on ajoute la liste des typologies de ces zones à typoToCheck
				// une par une
				// s'il n'y est pas déjà
				for (var j=0,nbTypoZone=zt[z[i]].length;j<nbTypoZone;j++)
				{
					if (!typoToCheck.contains(zt[z[i]][j]))
					{
						typoToCheck.push(zt[z[i]][j]);
					}
				}
				// on ajoute la liste des stations de ces zones
				for (var j=0,nbStationZone=zs[z[i]].length;j<nbStationZone;j++)
				{
					if (!stationToCheck.contains(zs[z[i]][j]))
					{
						stationToCheck.push(zs[z[i]][j]);
					}
				}
				// on ajoute la liste des polluants disponibles dans les zones sélectionnés
				for (var j=0,nbPolluantZone=zp[z[i]].length;j<nbPolluantZone;j++)
				{
					if (!polluantToCreate.contains(zp[z[i]][j]))
					{
						//alert('polluant : '+zp[z[i]][j]);
						if (zp[z[i]][j]!='') {
							polluantToCreate.push(zp[z[i]][j]);
						}
					}
				}
			}
		}

		// on parcourt t et on check
		for (i=0;i<nbTypo;i++)
		{
			if (typoToCheck.contains(t[i]))
			{
				//$('typo_'+t[i]).disabled=false;
				$('typo_'+t[i]).checked=true;
			}
			else
			{
				$('typo_'+t[i]).checked=false;
				//$('typo_'+t[i]).disabled=true;
			}
		}
		// on parcourt t et on check
		for (i=0;i<nbStations;i++)
			{
				if (stationToCheck.contains(s[i]))
				{
					$('station_'+s[i]).parentNode.style.display="block";
					if (zr.contains(s[i])) {
						$('station_'+s[i]).checked=true;
					}

				}
				else
				{
					if ($('station_'+s[i])){
						$('station_'+s[i]).checked=false;
						$('station_'+s[i]).parentNode.style.display="none";
						nbStationsAffichees--;

					}
				}
			}
		// les polluants
		// on stocke le polluant sélectionné s'il y en a un
		if (($('listeChampsPolluant').options.length!=0)&&($('listeChampsPolluant').selectedIndex)&&($('listeChampsPolluant').selectedIndex)!='')
			{
				var polluantSelected=$('listeChampsPolluant')[$('listeChampsPolluant').selectedIndex].value;
			}
		// on vide le select
		while ($('listeChampsPolluant').options.length>0)
		{
			$('listeChampsPolluant').options[0]=null;
		}
		for (i=0,nbPolluantsActifs=polluantToCreate.length;i<nbPolluantsActifs;i++)
		{
			//alert('polluant à ajouter :'+polluantToCreate[i]);
			var selected=(polluantToCreate[i]==polluantSelected)?true:false;
			$('listeChampsPolluant').options[i] = new Option(p[polluantToCreate[i]][0],polluantToCreate[i],selected);
		}
		// on met au bon état les "check all"
		$('checkTypo').checked=(countCheckedItems(t,'typo')==nbTypo)?true:false;
		$('checkStation').checked=(countCheckedItems(stationToCheck,'station')==nbStationsAffichees)?true:false;
		$('checkZone').checked=(nbZonesSelectionnees==z.length-1)?true:false;
}

function changePolluant()
{
	// le choix du polluant conditionne le choix des typologies et le choix des stations
	// il prend en compte le choix des zones

	// le tableau qui va contenir les typologies à cocher
	var typoToCheck_1=[];
	var typoToCheck=[];
	var stationToCheck_1=[];
	var stationToCheck=[];
	var nbTypo=t.length;
	var nbTypoAffichees=nbTypo;
	var nbStations=s.length;
	var nbStationsAffichees = nbStations;

	if ($('listeChampsPolluant').options.length>0)
	{
		polluant=$('listeChampsPolluant').options[$('listeChampsPolluant').selectedIndex].value;
		//alert($('listeChampsPolluant').options[$('listeChampsPolluant').selectedIndex].value);
		// les données manuelles ont droit à un traitement spécial
		if (pm.contains(polluant))
		{
			var periode=$('listeChampsPeriode').value;
			if ((periode=="_2")||(periode=="_7")||(periode=="_60"))
			{
				alert('p\351riode non compatible avec ce polluant');
				$('listeChampsPeriode').selectedIndex=3;
				changeDateSelonPeriode();
			}
		}
	}

	for (var j=0,nbTypoPolluant=pt[polluant].length;j<nbTypoPolluant;j++)
				{
					if (!typoToCheck_1.contains(pt[polluant][j]))
					{
						typoToCheck_1.push(pt[polluant][j]);
					}
				}



	// on ajoute la liste des stations mesurant ce polluant

	for (var j=0,nbStationPolluant=ps[polluant].length;j<nbStationPolluant;j++)
		{
		if (!stationToCheck_1.contains(ps[polluant][j]))
			{
				stationToCheck_1.push(ps[polluant][j]);
			}
		}

	// on filtre les stations et les typologies obtenues selon les zones
	// il faut que la station soit au moins dans une zone sélectionnée
	for (var i=0;i<z.length;i++)
		{
			//alert(z[i]);
			if ($('zone_'+z[i])&&$('zone_'+z[i]).checked)
			{

				// on ajoute la liste des stations de ces zones
				for (var j=0,nbStationToCheck_1=stationToCheck_1.length;j<nbStationToCheck_1;j++)
				{
					if ((zs[z[i]].contains(stationToCheck_1[j]))&&(!stationToCheck.contains(stationToCheck_1[j])))
					{
						stationToCheck.push(stationToCheck_1[j]);
					}
				}

				// on filtre la liste des typologies de ces zones
				for (var j=0,nbTypoToCheck_1=typoToCheck_1.length;j<nbTypoToCheck_1;j++)
				{
					if ((zt[z[i]].contains(typoToCheck_1[j]))&&(!typoToCheck.contains(typoToCheck_1[j])))
					{
						typoToCheck.push(typoToCheck_1[j]);
					}
				}


			}
		}

		// on parcourt t et on check
		for (i=0;i<nbTypo;i++)
		{
			if (typoToCheck.contains(t[i]))
			{
				$('typo_'+t[i]).checked=true;
			}
			else
			{
				$('typo_'+t[i]).checked=false;
			}
		}

		// on parcourt les stations, on déchecke et on masque

		for (i=0;i<nbStations;i++)
			{
				if (stationToCheck.contains(s[i]))
				{
					//$('station_'+s[i]).parentNode.style.visibility="visible";
					if (zr.contains(s[i]) && $('station_'+s[i]).parentNode.style.display!="block") {
						$('station_'+s[i]).checked=true;
					}
					$('station_'+s[i]).parentNode.style.display="block";
				}
				else
				{
					$('station_'+s[i]).checked=false;
					//$('station_'+s[i]).parentNode.style.visibility="hidden";
					$('station_'+s[i]).parentNode.style.display="none";
					// on masque une station, donc on décrément le nombre de stations affichées
					nbStationsAffichees--;
				}
			}
		// on met au bon état les "check all"
		$('checkTypo').checked=(countCheckedItems(t,'typo')==t)?true:false;
		$('checkStation').checked=(countCheckedItems(stationToCheck,'station')==nbStationsAffichees)?true:false;

}

function changeTypo()
{

	var polluantToCheck=[];
	var stationToCheck_1=[];
	var stationToCheck=[];
	var polluantToCreate=[];
	var nbZones=z.length;
	var nbTypo=t.length;
	var nbStations=s.length;
	var nbStationsAffichees = nbStations;

	for (var i=0;i<nbTypo;i++)
		{
			if ($('typo_'+t[i])&&$('typo_'+t[i]).checked)
			{
				// si la typologie est sélectionnée

				// on ajoute la liste des stations de ces zones
				for (var j=0,nbStationTypo=ts[t[i]].length;j<nbStationTypo;j++)
				{
					if (!stationToCheck_1.contains(ts[t[i]][j]))
					{
						stationToCheck_1.push(ts[t[i]][j]);
					}
				}
			}
		}

	// on filtre les stations obtenues selon les zones
	// il faut que la station soit au moins dans une zone sélectionnée
	for (var i=0;i<z.length;i++)
		{
			//alert(z[i]);
			if ($('zone_'+z[i])&&$('zone_'+z[i]).checked)
			{

				// on filtre la liste des stations de ces zones
				for (var j=0,nbStationToCheck_1=stationToCheck_1.length;j<nbStationToCheck_1;j++)
				{
					if ((zs[z[i]].contains(stationToCheck_1[j]))&&(!stationToCheck.contains(stationToCheck_1[j])))
					{
						stationToCheck.push(stationToCheck_1[j]);
					}
				}
			}
		}



		// on parcourt s et on check
		for (i=0;i<nbStations;i++)
			{
				if (stationToCheck.contains(s[i]))
				{
					$('station_'+s[i]).parentNode.style.display="block";
				}
				else
				{
					$('station_'+s[i]).checked=false;
					$('station_'+s[i]).parentNode.style.display="none";
					nbStationsAffichees--;
				}
			}
		// on met au bon état les "check all"
		// pour cela, il faut qu'on compte les stations checkées
		$('checkStation').checked=(countCheckedItems(stationToCheck,'station')==nbStationsAffichees)?true:false;
		$('checkTypo').checked=(countCheckedItems(t,'typo')==nbTypo)?true:false;
}

/**;
 * renvoie le nombre d'éléments cochés
 * @param {Array} aItems
 */
function countCheckedItems(aItems, itemType)
{

	var nbItems = aItems.length;
	var nbCheckedItems = 0;
	//alert(nbStations);
	for (var i=0;i<nbItems;i++) {
		if ($(itemType+'_'+aItems[i]).checked) {
			nbCheckedItems++;
		}
	}
	return nbCheckedItems;
}
/**
 * change la date selon la période choisie
 * @author gusau
 *
 */
function changeDateSelonPeriode()
{
	var periode=$('listeChampsPeriode').value;
	var jour, mois, annee
	var date=new Date();
	//alert('periode : '+periode);

	// pour test
	/*date.setDate(1);
	date.setMonth(2);
	date.setFullYear(2007);
	alert('la date est '+date.getDate()+"/"+(date.getMonth()+1)+"/"+date.getFullYear());*/
	switch (periode)
		{
  		case "_2":
 		// 	choix = 2 jours --> date = la veille d'aujourd'hui
		date.setDate(date.getDate()-1);
		// verification du polluant
		polluant=$('listeChampsPolluant').options[$('listeChampsPolluant').selectedIndex].value;
		if (pm.contains(polluant))
		{
			alert('p\351riode non compatible avec ce polluant');
			$('listeChampsPeriode').selectedIndex=3;
			changeDateSelonPeriode();
			break;
			}
   		break;
  		case "_7":
		// 	choix = 1 semaine --> date = la date du jour moins sept jours
		//date.setTime(date.getTime() - 7 * 24 * 3600 * 1000);
		// verification du polluant
		polluant=$('listeChampsPolluant').options[$('listeChampsPolluant').selectedIndex].value;
		if (pm.contains(polluant))
		{
			alert('p\351riode non compatible avec ce polluant');
			$('listeChampsPeriode').selectedIndex=3;
			changeDateSelonPeriode();
			break;
			}
		date.setDate(date.getDate()-7);

   		break;
		case "_60":
		//  choix = 2 mois --> date = premier jour du mois précédent
		polluant=$('listeChampsPolluant').options[$('listeChampsPolluant').selectedIndex].value;
		if (pm.contains(polluant))
		{
			alert('p\351riode non compatible avec ce polluant');
			$('listeChampsPeriode').selectedIndex=3;
			changeDateSelonPeriode();
			break;
			}
		date.setMonth(date.getMonth()-1);
		date.setDate(1);
   		break;
		case "_730":
		//  choix = 2 ans --> date = premier jour de l'année précédente
		date.setFullYear(date.getFullYear()-1);
		date.setDate(1);
		date.setMonth(0);
   		break;
  		default:

   		break;

		}
		remplisChampsDate(date);

}

function remplisChampsDate(date)
{
	$('j').value=((date.getDate()<10)?'0':'')+date.getDate();
	$('m').value=((date.getMonth()+1<10)?'0':'')+(date.getMonth()+1);
	$('a').value=date.getFullYear();
}

function toggleBlocRecherche()
{
	toggle($('bloc_station'));
	toggle($('bloc_typologie'));
	$('rechercheDetaillee').value=($('rechercheDetaillee').value=="1")?"0":"1";
	$('rech_detail').value=($('rech_detail').value=="- d'options")?
	"+ d'options":"- d'options";

	getValeurBack();

	return false;

}

function setButton(echelle){


		if( $('flag_echelle').value == "" )	{

			if(echelle == "seuil")	{
				$('bt_max').style.display="none";
				$('bt_seuil').style.display="block";
			}
			else if( echelle == "max" )	{
				$('bt_max').style.display="block";
				$('bt_seuil').style.display="none";
			}
			else	{
				$('bt_max').style.display="block";
				$('bt_seuil').style.display="none";
			}

		}
}
/**
 * après une recherche, on doit masquer les stations qui ne sont pas dans
 * une zone cochée ou dans une sous-zone d'une zone cochée
 * @author gusau
 */
function displayStation() {

	var stationToDisplay_1=[];
	var stationToDisplay_2=[];
	var stationToDisplay=[];
	var nbStations=s.length;
	var nbTypo=t.length;
	var nbStationsAffichees = nbStations;
	var polluant=$('listeChampsPolluant').options[$('listeChampsPolluant').selectedIndex].value;
	// on parcourt toutes les zones

	for (var i=0;i<z.length;i++)
		{
			// si la zone est cochée
			if ($('zone_'+z[i])&&$('zone_'+z[i]).checked)
			{
				//alert ('zone '+z[i]+" checked");
				// on filtre la liste des stations de ces zones
				for (var j=0;j<nbStations;j++)
				{
					if ((zs[z[i]].contains(s[j]))&&(!stationToDisplay_1.contains(s[j])))
					{
						stationToDisplay_1.push(s[j]);
					}
				}
			}
		}

	var nbStations_1 = stationToDisplay_1.length;
	// on va maintenant filtrer cette liste selon les typologies
	for (var i=0;i<nbTypo;i++)
		{
			// si la typo est cochée
			if ($('typo_'+t[i])&&$('typo_'+t[i]).checked)
			{
				// on filtre la liste des stations de ces zones
				for (j=0;j<nbStations_1;j++)
				{
					if ((ts[t[i]].contains(stationToDisplay_1[j]))&&(!stationToDisplay_2.contains(stationToDisplay_1[j])))
					{
						stationToDisplay_2.push(stationToDisplay_1[j]);
					}
				}
			}
		}
	// on va maintenant filtrer la liste obtenue selon le polluant choisi.
	var nbStations_2 = stationToDisplay_2.length;
	for (j=0;j<nbStations_2;j++) {
		if ((ps[polluant].contains(stationToDisplay_2[j]))&&(!stationToDisplay.contains(stationToDisplay_2[j])))
					{
						stationToDisplay.push(stationToDisplay_2[j]);
					}
	}
	//alert(z.length+" "+nbStations+" "+stationToDisplay.length);
	// on parcourt le tableau des stations et si la station est dans stationToDisplay, on l'affiche, sinon, non.
		for (i=0;i<nbStations;i++)
			{
				if (stationToDisplay.contains(s[i]))
				{
					$('station_'+s[i]).parentNode.style.display="block";
				}
				else
				{
					$('station_'+s[i]).checked=false;
					$('station_'+s[i]).parentNode.style.display="none";
					nbStationsAffichees--;
				}
			}
		// on met au bon état les "check all"
		// pour cela, il faut qu'on compte les stations checkées
		//$('checkStation').checked=(countCheckedItems(stationToCheck,'station')==nbStationsAffichees)?true:false;


}


function getValeurBack()
	{
	if(document.getElementById('rech_detail').value == "+ d'options")
		{
//		alert('reloading...');
		window.location.replace("/mesures");
		}
	/*
		var ArrayValueTypo = document.getElementById('hiddenTypoListe').value;
		var ArrayValueStation = document.getElementById('hiddenStationsListe').value;

		var tableauTypo=ArrayValueTypo.split(";");
		for (var i=0; i<tableauTypo.length; i++) {
			var objTypo = document.getElementById("typo"+tableauTypo[i]);
			if(objTypo)
				{
				if(tableauTypo[i+1] == 1)
					{
					objTypo.setAttribute("checked","checked");
					}
				else
					{
					objTypo.setAttribute("checked","");
					}
				}
			i++;
			}
		var tableauStation=ArrayValueStation.split(";");
		for (var i=0; i<tableauStation.length; i++) {
			var objStation = document.getElementById("station"+tableauStation[i]);
			if(objStation)
				{
				if(tableauStation[i+1] == 1)
					{
					objStation.setAttribute("checked","checked");
					}
				else
					{
					objStation.setAttribute("checked","");
					}
				}
			i++;
			}
		document.form1.submit();
		}*/
	}
