function montreDiv(id){
  document.getElementById(id).style.display='block';
}

function cacheDiv(id){
  document.getElementById(id).style.display='none';
}

function putValue(val, i){
  document.getElementById('inputvaleur'+i).value=val;
}

function cacheTout(i){
  cacheDiv('moismenu'+i);
  cacheDiv('semainemenu'+i);
  cacheDiv('jourmenu'+i);
}

function estBissextile(annee){
  if(annee%4 == 0){
    if(annee%100 == 0){
      if(annee%400 == 0){
        return true;
      }else{
        return false;
      }
    }else{
      return true;
    }
  }else{
    return false;
  }
}

function getNbDayInMonth(mois, annee){
  if(mois == 1 | mois == 3 | mois == 5 | mois == 7 | mois == 8 | mois == 10 | mois == 12){
    return 31;
  }else if(mois == 4 | mois == 6 | mois == 9 | mois == 11){
    return 30;
  }else{
    if(estBissextile(annee)){
      return 29;
    }else{
      return 28;
    }
  }
}

function transformeDateEnLundiAvant(date){
  jour = date.getDay();
  if(jour == 0){
    jour = -6;
  }else{
    jour = 1 - jour;
  }
  date.setDate(date.getDate() + jour);
  return date;
}

function getAnnee(date){
  if(navigator.appName == "Microsoft Internet Explorer"){
    annee = date.getYear();
  }else{
    annee = date.getYear() + 1900;
  }
  return annee;
}

function verif2num(val){
 if(val <= 9){
    val = "0"+val;
  }
  return val;
}

function getJourString(date){
  moi = date.getMonth() +1;
  annee = getAnnee(date);
  nbjours = getNbDayInMonth(moi, annee);
  moi2 = moi;
  date2 = date.getDate();
  if(date.getDate() == nbjours){
    date2 = 1;
    if(moi == 12){
      moi = 1;
      annee2 = annee +1;
    }else{
      moi2 = moi + 1;
      annee2 = annee;
    }
  }else{
    date2 = date.getDate()+1;
    moi2 = moi;
    annee2 = annee;
  }
  jourString = ""+annee + verif2num(moi) + verif2num(date.getDate())+ "#"+ annee2 + verif2num(moi2) + verif2num(date2);
  return jourString;
}

function getSemaineString(date){
  date = transformeDateEnLundiAvant(date);
  moi = date.getMonth() +1;
  annee = getAnnee(date);
  jourString = ""+ annee + verif2num(moi) + verif2num(date.getDate())+ "#";
  date.setDate(date.getDate()+7);
  annee = getAnnee(date);
  moi = date.getMonth() +1;
  jourString = jourString + annee + verif2num(moi) + verif2num(date.getDate());
  return jourString;
}

function getMoisString(date){
  moi = date.getMonth() +1;
  annee = getAnnee(date);
  if(moi == 12){
    mois2 = 1;
    annee2 = annee+1;
  }else{
    annee2 = annee;
    mois2 = moi+1;
  }
  jourString = ""+ annee + verif2num(moi) + "01" + "#"+ annee2 + verif2num(mois2) + "01";
  return jourString;
}

function putTout(i){
 document.getElementById("valeur"+i).value='';
}

function putAujourdhui(i){
 today = new Date();
  aujourdhui = getJourString(today) + "#Aujourd'hui";
  document.getElementById("valeur"+i).value=aujourdhui;
}

function putDemain(i){
 today = new Date();
 today.setDate(today.getDate()+1);
 demain = getJourString(today) + "#Demain";
 document.getElementById("valeur"+i).value=demain;
}

function putHier(i){
 today = new Date();
 today.setDate(today.getDate()-1);
 hier = getJourString(today) + "#Hier";
 document.getElementById("valeur"+i).value=hier;
}

function putMoisCourant(i){
  today = new Date();
  mois = getMoisString(today) + "#Mois en cours";
  document.getElementById("valeur"+i).value=mois;
}

function putMoisSuivant(i){
  today = new Date();
  today.setDate(15);
  today.setMonth(today.getMonth()+1);
  mois = getMoisString(today) + "#Mois prochain";
  document.getElementById("valeur"+i).value=mois;
}

function putMoisPrecedent(i){
  today = new Date();
  today.setDate(15);
  today.setMonth(today.getMonth()-1);
  mois = getMoisString(today)  + "#Mois précédent";
  document.getElementById("valeur"+i).value=mois;
}

function putSemaineCourante(i){
  today = new Date();
  semaine = getSemaineString(today) + "#Semaine en cours";
  document.getElementById("valeur"+i).value=semaine;
}

function putSemaineSuivante(i){
  today = new Date();
  today.setDate(today.getDate()+7);
  semaine = getSemaineString(today) + "#Semaine prochaine";
  document.getElementById("valeur"+i).value=semaine;
}

function putSemainePrecedante(i){
  today = new Date();
  today.setDate(today.getDate()-7);
  semaine = getSemaineString(today) + "#Semaine dernière";
  document.getElementById("valeur"+i).value=semaine;
}

function putAnneeCourante(i){
  today = new Date();
  annee = getAnnee(today) + "#periode.anneeencours";
  document.getElementById("valeur"+i).value=annee;
}
function putAnneeSuivante(i){
  today = new Date();
  today.setDate(today.getDate()+7);
  annee = getAnnee(today) + "#periode.anneeprochaine";
  document.getElementById("valeur"+i).value=annee;
}
function putAnneePrecedante(i){
  today = new Date();
  today.setDate(today.getDate()-7);
  annee = getAnnee(today) + "#periode.anneederniere";
  document.getElementById("valeur"+i).value=annee;
}

function putAnterieure(i){
  today = new Date();
  moi = today.getMonth() +1;
  annee = getAnnee(today);
  date = "19710101#"+ annee + verif2num(moi) + verif2num(today.getDate()) + "#Antérieure à la date du jour";
  document.getElementById("valeur"+i).value=date;
}

function putSuperieure(i){
	today = new Date();
	moi = today.getMonth() +1;
	annee = getAnnee(today);
	date = "19710101#"+ annee + verif2num(moi) + verif2num(today.getDate()) + "#periode.apresdatedujour";
	document.getElementById("valeur"+i).value=date;
}
function putinfX(i, val){
  chiffres = "-0123456789";
  good = true;
  for(j=0; j<val.length; j++){
    if(chiffres.indexOf(val.charAt(j)) == -1){
	  good = false;
	  break;
	}
  }
  if(good){
  date = val+"#Inférieur à X jours";
  document.getElementById("valeur"+i).value=date;
  }else{
  alert("Valeur Saisie non valide !");
  }
}

function putsupX(i, val){
chiffres = "-0123456789";
  good = true;
  for(j=0; j<val.length; j++){
    if(chiffres.indexOf(val.charAt(j)) == -1){
	  good = false;
	  break;
	}
  }
  if(good){
  date = val+"#Supérieur à X jours";
  document.getElementById("valeur"+i).value=date;
  }else{
  alert("Valeur Saisie non valide !");
  }
}

function putegalxjour(i,val){
	chiffres = "-0123456789";
	  good = true;
	  for(j=0; j<val.length; j++){
	    if(chiffres.indexOf(val.charAt(j)) == -1){
		  good = false;
		  break;
		}
	  }
	  if(good){
	  date = val+"#periode.egaldateplusxjour";
	  document.getElementById("valeur"+i).value=date;
	  }else{
	  alert("Valeur Saisie non valide !");
	  }
}

function putEgalvide(i){
  today = new Date();
  moi = today.getMonth() +1;
  annee = getAnnee(today);
  date = "19710101#"+ annee + verif2num(moi) + verif2num(today.getDate()) + "#periode.egalvide";
  document.getElementById("valeur"+i).value=date;
}

function  putDifferentvide(i){
  today = new Date();
  moi = today.getMonth() +1;
  annee = getAnnee(today);
  date = "19710101#"+ annee + verif2num(moi) + verif2num(today.getDate()) + "#periode.differentdevide";
  document.getElementById("valeur"+i).value=date;
}


function cachePeriode(i){
if(document.getElementById("dateperiode"+i)){
  document.getElementById("dateperiode"+i).style.position='absolute';
  document.getElementById("dateperiode"+i).style.display='none';
  }
  if(document.getElementById("valeurdate"+i)){
  document.getElementById("valeurdate"+i).value='';
  }
  if(document.getElementById("valeurdate0"+i)){
  document.getElementById("valeurdate0"+i).value='';
  }
}

function montrePeriode(i){
if(document.getElementById("dateperiode"+i)){
  document.getElementById("dateperiode"+i).style.position='relative';
  document.getElementById("dateperiode"+i).style.display='block';
  }

}

function montreinfX(i){
if(document.getElementById("infX"+i)){
  document.getElementById("infX"+i).style.position='relative';
  document.getElementById("infX"+i).style.display='block';
  }
}

function cacheinfX(i){
if(document.getElementById("infX"+i)){
  document.getElementById("infX"+i).style.position='absolute';
  document.getElementById("infX"+i).style.display='none';
  }
}


function montresupX(i){
if(document.getElementById("supX"+i)){
  document.getElementById("supX"+i).style.position='relative';
  document.getElementById("supX"+i).style.display='block';
  }
}

function cachesupX(i){
if(document.getElementById("supX"+i)){
  document.getElementById("supX"+i).style.position='absolute';
  document.getElementById("supX"+i).style.display='none';
  }
}

function montreegalxjour(i){
if(document.getElementById("egalxjour"+i)){
document.getElementById("egalxjour"+i).style.position='relative';
document.getElementById("egalxjour"+i).style.display='block';
}
}

function cacheegalxjour(i){
if(document.getElementById("egalxjour"+i)){
document.getElementById("egalxjour"+i).style.position='absolute';
document.getElementById("egalxjour"+i).style.display='none';
}	
}

function putPeriode(){
  document.getElementById("valeur").value=date;
}


function changeTypePeriode(num, type){
	// Cache tout
    cachePeriode(num);
    cacheinfX(num);
    cachesupX(num);
    cacheegalxjour(num);
  if(type == 'a'){//periode.aujourdhui
    putAujourdhui(num);
  }else if(type == 'b'){//periode.demain
    putDemain(num);
  }else if(type == 'c'){//periode.hier
    putHier(num);
  }else if(type == 'd'){//periode.moisencours
    putMoisCourant(num);
  }else if(type == 'e'){//periode.moisprochain
    putMoisSuivant(num);
  }else if(type == 'f'){//periode.moisprecedent
    putMoisPrecedent(num);
  }else if(type == 'g'){//periode.semaineencours
    putSemaineCourante(num);
  }else if(type == 'h'){//periode.semaineprochaine
    putSemaineSuivante(num);
  }else if(type == 'i'){//periode.semainederniere
    putSemainePrecedante(num);
  }else if(type == 'j'){//periode.avantdatedujour
    putAnterieure(num);
  }else if(type == 'k'){//periode.definir
    montrePeriode(num);
  }else if(type == 'l'){//periode.tout
    putTout(num);
  }else if(type == 'm'){//periode.inferieurxjour
    montreinfX(num);
  }else if(type == 'n'){//periode.superieurxjour
	  montresupX(num);
  }else if(type == 'o'){//periode.egalvide
    putEgalvide(num);
  }else if(type == 'p'){//periode.differentdevide
    putDifferentvide(num);
  }else if(type == 'q'){//periode.anneeencours
	putAnneeCourante(num);
  }else if(type == 'r'){//periode.anneeprochaine
	putAnneeSuivante(num);
  }else if(type == 's'){//periode.anneederniere
	putAnneePrecedante(num);
  }else if(type == 't'){//periode.apresdatedujour
    putSuperieure(num);
  }else if(type == 'u'){//periode.danslesxderniermois

  }else if(type == 'v'){//periode.danslesxprochainmois
	  
  }else if(type == 'w'){//periode.egaldateplusxjour
    montreegalxjour(num);
  }else if(type == 'x'){//periode.danslesxdernierjour

  }else if(type == 'y'){//periode.danslesxprochainjour
	  
  }
}

function getValperiode(val){
  jour = val.substring(0, val.indexOf("/"));
  val = val.substring(val.indexOf("/")+1, val.length);
  mois = val.substring(0, val.indexOf("/"));
  val = val.substring(val.indexOf("/")+1, val.length);
  annee = val;
  val = annee + mois + jour;
  return val;
}

function getValperiode2(val){
  jour = val.substring(0, val.indexOf("/"));
  val = val.substring(val.indexOf("/")+1, val.length);
  mois = val.substring(0, val.indexOf("/"));
  val = val.substring(val.indexOf("/")+1, val.length);
  annee = val;
  var myDate=new Date();
  myDate.setYear(annee);
  mois = mois-1;
  myDate.setMonth(mois);
  myDate.setDate(jour);
  myDate.setDate(myDate.getDate()+1);
  mois = myDate.getMonth()+1;
  val = myDate.getFullYear()+"" + verif2num(mois) + verif2num(myDate.getDate());
  return val;
}

function fusionCalendar(index){
  if(document.getElementById('inputvaleur'+index)){
  if(document.getElementById('inputvaleur'+index).value == 'k'){
    val = getValperiode(document.getElementById('valeurdate'+index).value)+ "#";
    val = val + getValperiode2(document.getElementById('valeurdate0'+index).value)+ "#Définir période";
    document.getElementById('valeur'+index).value = val;
    document.getElementById("divvaleur"+index).style.position = 'relative';
    document.getElementById("divvaleur"+index).style.display='block';
  }else if(document.getElementById('inputvaleur'+index).value == "Aujourd'hui" |
    document.getElementById('inputvaleur'+index).value == "Demain" |
    document.getElementById('inputvaleur'+index).value == "Hier" |
    document.getElementById('inputvaleur'+index).value == "Mois en cours" |
    document.getElementById('inputvaleur'+index).value == "Mois prochain" |
    document.getElementById('inputvaleur'+index).value == "Mois précédent" |
    document.getElementById('inputvaleur'+index).value == "Semaine en cours" |
    document.getElementById('inputvaleur'+index).value == "Semaine prochaine" |
    document.getElementById('inputvaleur'+index).value == "Semaine dernière" |
    document.getElementById('inputvaleur'+index).value == "Antérieure à la date du jour"){}
  }
}

function validFiltresPeriode(val){
  if(val != '-1' && val != 'k'){
    document.getElementById('execfiltre').click();
  }
}

