/* 
Calendrier en popup

Site  : www.phassler.com
Date  : 15/03/2002

*/

var DaysList;
var MonthsList;
var MonthLength = new Array("Mois_longueur_vide",31,29,31,30,31,30,31,31,30,31,30,31);

/* Definition des style du calendrier */
/* Couleur */

/* var contour_tableau='black'; */
var contour_tableau='#006176';

/*var fond_tableau='#FFFFFF';*/
var fond_tableau='#37A4BC';

/*var fond_semaine='white';*/
var fond_semaine='#006176';

/*var lettre_semaine='black';*/
var lettre_semaine='#FFFFFF';

var lettre_jours='black';
/*var lettre_jours='#FFFFFF';  */

var lettre_moisan='black';
/*var lettre_moisan='#006176'; */

var jours_selectionne='#bbbbbb';

/*var jours_actif='RED';*/
var jours_actif='#b74208';

/*var jours_contours='#bbbbbb';*/
var jours_contours='#006176';

/*var lettre_button='black';*/
var lettre_button='#37A4BC';


calStyle = '<style type="text/css">';
calStyle += ".caltable1 {";
calStyle += " background-color: "+contour_tableau;
calStyle += "}";
calStyle += ".caltable2 {";
calStyle += " background-color:"+fond_tableau;
calStyle += "}";
calStyle += ".calcolHeader {";
calStyle += " background:"+fond_semaine+";";
calStyle += " font-family: Verdana, Arial, Helvetica, sans-serif;";
calStyle += " font-size: 9px;";
calStyle += " font-weight: bold;";
calStyle += " border:0.5pt solid "+ contour_tableau+";";
calStyle += " color: "+lettre_semaine;
calStyle += "}";
calStyle += ".calAction {";
calStyle += " font-family: Verdana, Arial, Helvetica, sans-serif;";
calStyle += " font-size: 9px;";
calStyle += " font-weight: bold;";
calStyle += " color: "+lettre_jours;
calStyle += "}";
calStyle += ".calTdAction {";
/*calStyle += "   background-color: #eeeeee;"; */
calStyle += "   background-color: #000000;";

/*calStyle += "   background-color: "+ fond_tableau + ";";*/

calStyle += " font-family: Verdana, Arial, Helvetica, sans-serif;";
calStyle += " font-size: 9px;";
calStyle += " font-weight: bold;";
calStyle += " color: "+lettre_moisan+";";
calStyle += " border:0.5pt solid "+ jours_contours +";";
calStyle += " text-align:center";
calStyle += "}";
calStyle += ".calButton {";
calStyle += " font-family: Verdana, Arial, Helvetica, sans-serif;";
calStyle += " font-size: 9px;";
calStyle += " font-weight: bold;";
calStyle += " color: "+lettre_button;
calStyle += "}";
calStyle += "</style>";
document.write(calStyle); 

//Get dimensions:
function getDims() {
  if (typeof(window.innerHeight) == "number") {
     /* Netscape */
    height = window.innerHeight;
    width = window.innerWidth;
    //alert('window.innerHeight');
  }
  else if (document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight )) {
    height = document.documentElement.clientHeight;
    width = document.documentElement.clientWidth;
    //alert('document.documentElement.clientHeight');
  }
  else if (document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
       /* Internet Explorer */
    height = document.body.clientHeight;
    width = document.body.clientWidth;
    //alert('document.body.clientHeight');
  }
  else {
    //alert('probleme getDims');
  }
  
} //getDims

var xp=0;
var yp=0;
var width = 0;

/* 30/09/2005 - Carine NGUYEN (PROJIPE */
//var Height = 0;
var height = 0;

getDims();

/* Ecriture des DIV */
calhtml = '<div onMouseOver="javascript:kill();" id="caleck1" style="position:absolute;z-index:99;visibility:hidden;top:0px;left:0px;width:' + width + 'px;height:' + height + 'px;">';
//calhtml = "<DIV onMouseOver=\"javascript:kill();\" id=caleck1 style=\"position:absolute;z-index:99;visibility:hidden;top:0px;left:0px;width:100%;height:200%;\"";
calhtml += '<table width="100%" height="200%" border="0"><tr><td></td></tr></table>';
calhtml += '</div>';
calhtml += '<div id="caleck" style="position:absolute;z-index:100;VISIBILITY:hidden;left:0px;top:0px;"></div>';

if (document.all) {
	calhtml += '<iframe id="hackie" frameborder="0" scrolling="no" marginwidth="0" src="" marginheight="0" style="position:absolute;display:none;visibility:hidden;top:0px;left:0px;width:' + width + 'px;height:' + height + 'px;"></iframe>';
}

document.write(calhtml);  

var calflag=0;
var calchamp; /* nom du champ date a modifie dans la page */
var calskn = document.getElementById("caleck").style;
var calskn1 = document.getElementById("caleck1").style;
if(document.all) {
    calhackie = document.getElementById("hackie").style;
}
var calcontent = "";
var calHTML = "";
var FirstDay = 0;
var CalToday = new Date();
var CalDay = CalToday.getDate();
var CalYear = CalToday.getFullYear();
var CalMonth = CalToday.getMonth() + 1;
    
//document.onmousemove = mouseMove;
//document.onmousedown = mouseCheck; 

/* Function principale appellee par la page HTML*/       
/* Parametre : calchamp = le champ date a mettre jour */
/* Parametre : callangue = la langue */
function pop(lechamp,callangue,event){

/* Liste des jours et mois dans la langue demandee francais par defaut */
if (callangue == 'en'){
  DaysList = new Array("Jour_Vide", "Mo", "Tu", "We", "Th", "Fr", "Sa", "Su");
  MonthsList = new Array("Mois_Vide", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");  
} else {
  DaysList = new Array("Jour_Vide", "Lun", "Mar", "Mer", "Jeu", "Ven", "Sam", "Dim");
  MonthsList = new Array("Mois_Vide", "Janvier", "Fevrier", "Mars", "Avril", "Mai", "Juin", "Juillet", "Aout", "Septembre", "Octobre", "Novembre", "Decembre"); 
}
    calchamp = lechamp;
    try {    
      var ladate = document.getElementById(calchamp).value;
      
      if (ladate.length == 10){
        
            if (ladate.substring(0,1) == 0)
            CalDay = ladate.substring(1,2);
            else
            CalDay = ladate.substring(0,2);         

            if (ladate.substring(3,4) == 0)
            CalMonth = ladate.substring(4,5);
            else          
            CalMonth = ladate.substring(3,5);                   
          
        CalYear = ladate.substr(6,4);
   
        } else {
          
        CalDay = CalDay;
        CalMonth = CalMonth;
        CalYear = CalYear;
        
        }

    } catch(exception) {
        
        CalDay = CalDay;
      CalMonth = CalMonth;
      CalYear = CalYear;
        
    }

    getScroll();
    locate(event);
    
    maxX = width + scrollX;
    maxY = height + scrollY;

  //alert('xp = '+xp+' ; yp = '+yp+' ; maxX = '+maxX+' ; maxY = '+maxY);
    
        calskn1.left = scrollX+"px";
    if (document.all) calhackie.left = scrollX+"px";
    
    if ((xp+170) > maxX) {        
        calskn.left = (maxX-180)+"px";
    } else {     
        calskn.left = (xp-10)+"px";
    }
  
    calskn1.top = scrollY+"px";
    if (document.all) calhackie.top = scrollY+"px";
    
    if ((yp+140) > maxY) {
      calskn.top  = (maxY-153)+"px";
    } else {
      calskn.top  = (yp-13)+"px";
    }
        
    CalAffiche();
    
    //hideSelect();
    calskn1.visibility = "visible";     
    calskn.visibility = "visible";    
    if(document.all) {
        calhackie.visibility = "hidden";
        calhackie.display = "";
    }   
}

//Get scroll positions:
function getScroll() {
  
  if (typeof(window.pageYOffset) == "number") {
    scrollY = window.pageYOffset;
    scrollX = window.pageXOffset;
    //alert('window.pageYOffset');
  }
  else if (document.body && typeof(document.body.scrollTop) == "number") {
    scrollY = document.body.scrollTop;
    scrollX = document.body.scrollLeft;
    //alert('document.body.scrollTop');
  }
  else if (document.documentElement && document.documentElement.scrollTop) {
    scrollY = document.documentElement.scrollTop;
    scrollX = document.documentElement.scrollLeft;
    //alert('document.documentElement.scrollTop');
  } else {
    //alert('probleme getScroll');
  }
  
}

function locate(event) {
    
    getScroll();
    
    if (event.x) {
        xp = event.x;
        yp = event.y;
        //alert('event.x = ' + event.x);
    } else if (event.pageX) {
        xp = event.pageX;
        yp = event.pageY;
        //alert('event.pageX');
    } else {
      //alert('probleme locate(event);');
    }
    
    xp += scrollX;
    yp += scrollY;
    
}


/* Mouvement de la souris */
function mouseMove(event) {
  // AVOIR pour le scroll  
  locate(event);
}

/* Récupère les coordonnées du click souris */
function mouseCheck(event) {
    locate(event);
}

/* Récupère les dimensions max du <div> affiché à un instant 't'*/
function windowCheck(e) {
  if (navigator.userAgent.indexOf("MSIE") >= 0){
    currentMaxDivX = document.body.scrollLeft + document.body.clientWidth;
    currentMaxDivY = document.body.scrollTop  + document.body.clientHeight ;
  }else{  
    // AVOIR pour le scroll
    currentMaxDivX = window.innerWidth;
    currentMaxDivY = window.innerHeight;
  }
}


/* Teste une annee pour determiner si elle est bissextile ou pas*/
function CalBissextile(yy){
    if (((yy % 4 == 0) && (yy % 100 != 0)) || (yy % 400 == 0)){ return 29; }
        else { return 28; } 
}

/* Retour de la date selectionnee */
function CalSelecteur(obj){
calvaleur = document.getElementById("caltd"+obj).value;
if (calvaleur > 0) {
  if (calvaleur < 10 )
    retjrs = "0"+calvaleur;
  else
    retjrs = calvaleur;
    
  if (document.getElementById('Month').value.length < 2)
    retmoi = "0"+document.getElementById('Month').value;
  else
    retmoi = document.getElementById('Month').value;  
   
  document.getElementById(calchamp).value=retjrs + "/" + retmoi + "/" + document.getElementById('Year').value;
  kill();
}
}


/* Produit le code HTML qui formera le calendrier */
function CalAffiche(){
  /* Recherche si l'annee est bissextile */
  if (CalMonth == 2)
    MonthLength[2] = CalBissextile(CalYear);
    
	calHTML = '<table border="0" class="caltable1" cellspacing="0" cellspading="0"><tr><td>' + "\n";
	calHTML += '<table border="0" class="caltable2"><tr><td align="center" valign="middle">' + "\n";
	calHTML += '<input type="hidden" id="Month" value="' + CalMonth + '" />' + "\n";
	calHTML += '<input class="calAction" type="text" size="11" id="MonthLib" style="text-align:center;cursor:default" value="' + MonthsList[CalMonth] + '" readonly="readonly" />' + "\n";
	calHTML += '<input class="button2" type="button" value="&lt;" class="calButton" onmouseover="style.cursor=\'hand\'" onClick="Change(0)" />' + "\n";
	calHTML += '<input class="button2" type="button" value="&gt;" class="calButton" onmouseover="style.cursor=\'hand\'" onClick="Change(1)" />' + "\n";
	calHTML += '<input class="calAction" type="text" id="Year" size="6" style="text-align:center;cursor:\'default\'" value="' + CalYear + '" readonly="readonly" />' + "\n";
	calHTML += '<input class="button" type="button" value="&lt;" class="calButton" onmouseover="style.cursor=\'hand\'" onClick="ChangeY(0)" />' + "\n";
	calHTML += '<input class="button2" type="button" value="&gt;" class="calButton" onmouseover="style.cursor=\'hand\'" onClick="ChangeY(1)" /></td></tr>' + "\n";
	calHTML += '<tr><td bgcolor="' + fond_tableau + '" align="center">' + "\n";
	calHTML += '<table cellspacing="0" cellpadding="0" border="0" style="border:0.5pt solid ' + contour_tableau + '; border-collapse:collapse">' + "\n";
	calHTML += '<tr align="center">' + "\n";

	for (s=1; s<8; s++)
		calHTML += '<td class="calcolHeader" width="23" style="cursor: default">' + DaysList[s] + '</td>' + "\n";   

	calHTML += '</tr>' + "\n";
    
  a = 0;
  b = 1;
  // Calcul du premier jour du mois
  var caldefjour = CalDefDateDay(CalYear,CalMonth,1);
  for (i=(1-caldefjour); i<MonthLength[CalMonth]; i++){ 
		calHTML += '<tr id="calTR' + (a+1) + '" align="center">' + "\n";
		for (j=1; j<8; j++){
			calHTML += '<td width="23" class="calAction" onClick="CalSelecteur(' + b + ')">' + "\n";       
	if ((i+j) <= 0) {
      calHTML += '<input class="calTdAction" size="1" type="text" id="caltd' + b + '" style="border-color:' + fond_tableau + ';background-color: #37a4bc; cursor:default" value="" readonly="readonly" onmouseover="mousesur(' + b + ')" onmouseout="mousepassur(' + b + ')" />' + "\n";       
    }else if ((i+j) > MonthLength[CalMonth]) {
      calHTML += '<input class="calTdAction" size="1" type="text" id="caltd' + b + '" style="border-color:' + fond_tableau + ';background-color: #37a4bc; cursor:default" value="" readonly="readonly" onmouseover="mousesur(' + b + ')" onmouseout="mousepassur(' + b + ')" />' + "\n";               
    } else { 
      if ((i+j) == CalDay )
        calHTML += '<input class="calTdAction" style="background:RED;cursor:hand" size="1" type="text" id="caltd' + b + '" value="' + (i+j) + '" readonly="readonly" onmouseover="mousesur(' + b + ')" onmouseout="mousepassur(' + b + ')" />' + "\n";                                
      else  
        calHTML += '<input class="calTdAction" size="1" type="text" id="caltd' + b + '" value=' + (i+j) + ' style="background-color: #37a4bc; cursor:hand" readonly="readonly" onmouseover="mousesur(' + b + ')" onmouseout="mousepassur(' + b + ')" />' + "\n";                                
    }
    calHTML += '</td>' + "\n";   
    b++;
        }
  calHTML += '</tr>' + "\n";
  a++;
  i = i + 6;
  }

  for (aa=a+1;aa<=6;aa++){
		calHTML += '<tr id="calTR' + aa + '" align="center" style="display:none">' + "\n";
  for (j=1; j<8; j++){
    calHTML += '<td class="calAction" onClick="CalSelecteur(' + b + ')">' + "\n";        
    calHTML += '<input class="calTdAction" size="1" type="text" id="caltd' + b + '" value="" readonly="readonly" onmouseover="mousesur(' + b + ')" onmouseout="mousepassur(' + b + ')"></td>' + "\n";                               
    b++;    
        }
	calHTML += '</tr>' + "\n";
   }
   
  calHTML += '</table>' + "\n";
  calHTML += '</td></tr></table>' + "\n";
  calHTML += '</td></tr></table>' + "\n";
    
  document.getElementById("caleck").innerHTML = calHTML;
}

function kill() {
  //unhideSelect();
  calskn.visibility = "hidden"; 
  calskn1.visibility = "hidden";
  if(document.all) {
    calhackie.visibility = "hidden"; 
    calhackie.display = "none";
  }  
}

function Change(typ){
  var moi=document.getElementById('Month').value;
  var an=document.getElementById('Year').value;
  if (typ == 1){
    if ( moi == 12){
      an++;
      CalMonth =1;
      CalYear=an;
    }else{  
      moi++;
      CalMonth = moi;
    }     
  }else{
    if ( moi == 1){
      an--;
      CalMonth =12;
      CalYear=an;
    }else{  
      moi--;
      CalMonth = moi;
    }     
  }

CalAffiche2();
}

function ChangeY(typ){
  var an=document.getElementById('Year').value;

  if (typ == 1){
    an++;
    CalYear=an;
  }else{
    an--;
    CalYear=an;
  }     
  

CalAffiche2();
}

/* Renvoie le numero du jour de la semaine correspondant a la date requise */
function CalDefDateDay(yy,mm,dd){
  return Math.floor((CalDate2Days(yy,mm,dd)-2) % 7) + 1;
}

/* Transforme la date en nb de jours theoriques */
function CalDate2Days(yy,mm,dd){
  if (mm > 2){
    var bis = Math.floor(yy/4) - Math.floor(yy/100) + Math.floor(yy/400);
    var zy = Math.floor(yy * 365 + bis);
    var zm = (mm-1) * 31 - Math.floor(mm * 0.4 + 2.3);
    return (zy + zm + dd);
  }else{
        var bis = Math.floor((yy-1)/4) - Math.floor((yy-1)/100) + Math.floor((yy-1)/400);
    var zy = Math.floor(yy * 365 + bis);
    return (zy + (mm-1) * 31 + dd);
  }
}


function mousesur(lid){
  if (document.getElementById("caltd"+lid).value != "" ){
    document.getElementById("caltd"+lid).style.background = jours_selectionne;  
    document.getElementById("caltd"+lid).style.borderColor= jours_contours;   
  }else{
    document.getElementById("caltd"+lid).style.background='';   
    document.getElementById("caltd"+lid).style.borderColor=fond_tableau;        
  }
}
function mousepassur(lid){
  if (document.getElementById("caltd"+lid).value == CalDay ){
    document.getElementById("caltd"+lid).style.background=jours_actif;
  }else if (document.getElementById("caltd"+lid).value != "" ){
    document.getElementById("caltd"+lid).style.background=fond_tableau; 
    document.getElementById("caltd"+lid).style.borderColor=jours_contours;
  }else{
    document.getElementById("caltd"+lid).style.background=fond_tableau;   
    document.getElementById("caltd"+lid).style.borderColor=fond_tableau;            
   }
}

/* Produit le code HTML qui formera le calendrier */
function CalAffiche2(){
  if (CalMonth == 2)
    MonthLength[2] = CalBissextile(CalYear);
    
  document.getElementById("Month").value=CalMonth;
  document.getElementById("MonthLib").value=MonthsList[CalMonth];
  document.getElementById("Year").value=CalYear;

  if (CalDay > MonthLength[CalMonth])
    CalDay = MonthLength[CalMonth];
      
  a = 0;
  b = 1;
  // Calcul du premier jour du mois
  caldefjour = CalDefDateDay(CalYear,CalMonth,1);
  for (i=(1-caldefjour); i<MonthLength[CalMonth]; i++){ 
  for (j=1; j<8; j++){
    if ((i+j) <= 0){
       document.getElementById("caltd"+b).style.borderColor=fond_tableau;        
       document.getElementById("caltd"+b).value="";     
       document.getElementById("caltd"+b).style.background=fond_tableau;
       document.getElementById("caltd"+b).style.cursor='default';            
    } else if ((i+j) > MonthLength[CalMonth]){
       document.getElementById("caltd"+b).style.borderColor=fond_tableau;        
       document.getElementById("caltd"+b).value="";     
       document.getElementById("caltd"+b).style.background=fond_tableau;       
       document.getElementById("caltd"+b).style.cursor='default';                  
    }else{ 
       document.getElementById("caltd"+b).style.borderColor= jours_contours;        
       document.getElementById("caltd"+b).value=(i+j);      
       document.getElementById("caltd"+b).style.cursor='hand';       
       document.getElementById("caltd"+b).style.background=fond_tableau;             
    }
    
    if ((i+j) == CalDay )
       document.getElementById("caltd"+b).style.background=jours_actif;   

  b++;    
  }
  a++;
  i = i + 6;
  }

  if ( b > 29)
      document.getElementById("calTR5").style.display='';
  else
    document.getElementById("calTR5").style.display='none';  
          
 if ( b > 36)
    document.getElementById("calTR6").style.display='';
  else
    document.getElementById("calTR6").style.display='none';  
  
  for (i=b;i<=42;i++){
  document.getElementById("caltd"+i).style.background=fond_tableau;
  document.getElementById("caltd"+i).value="";      
  }
}
