/**
* Tommy Brière
* 2007-11-05
* Utilitaire de gestion de calendrier
**/
YAHOO.namespace("webtitan.calendrier");
YAHOO.webtitan.calendrier.maxYear=0;
YAHOO.webtitan.calendrier.maxMonth=0;
YAHOO.webtitan.calendrier.minYear=0;
YAHOO.webtitan.calendrier.minMonth=0;
YAHOO.webtitan.calendrier.filtre_cato=null;
YAHOO.webtitan.calendrier.filtre_categorie=null;
YAHOO.webtitan.calendrier.setPrevNextBtnState= function(prev, next){
var calendrier= document.getElementById(YAHOO.webtitan.calendrier.instance.id );
var div= calendrier.getElementsByTagName("div")[0];
var aprev= div.getElementsByTagName("a")[0];
var anext= div.getElementsByTagName("a")[1];
if(prev){} else{
div.removeChild(aprev);}
if(next){} else{
div.removeChild(anext);}}
YAHOO.webtitan.calendrier.updatePrevNextBtnState= function(){
if(YAHOO.webtitan.calendrier.maxYear>0){
var date= YAHOO.webtitan.calendrier.getCurPage();
var month= date[1];
var year= date[0];
var prev=(!((year==YAHOO.webtitan.calendrier.minYear)&&(month==YAHOO.webtitan.calendrier.minMonth)));
var next=(!((year==YAHOO.webtitan.calendrier.maxYear)&&(month==YAHOO.webtitan.calendrier.maxMonth)));
YAHOO.webtitan.calendrier.setPrevNextBtnState(prev, next);}}
var changePageHandler= function(type, args, obj){
if(YAHOO.webtitan.calendrier.maxYear>0){
var date= YAHOO.webtitan.calendrier.getCurPage();
var month= date[1];
var year= date[0];
if((year==YAHOO.webtitan.calendrier.maxYear)&&(month>YAHOO.webtitan.calendrier.maxMonth)){
YAHOO.webtitan.calendrier.instance.previousMonth();
return;} else if((year==YAHOO.webtitan.calendrier.minYear)&&(month<YAHOO.webtitan.calendrier.minMonth)){
YAHOO.webtitan.calendrier.instance.nextMonth();
return;} else if(year<YAHOO.webtitan.calendrier.minYear){
YAHOO.webtitan.calendrier.instance.nextMonth();
return;} else if(year>YAHOO.webtitan.calendrier.maxYear){
YAHOO.webtitan.calendrier.instance.previousMonth();
return;}
YAHOO.webtitan.calendrier.updatePrevNextBtnState();}
YAHOO.webtitan.calendrier.validerQueAJour();}
function echecAction(){}
function calendrierEvenementRender(workingDate, cell){
var annee= YAHOO.webtitan.calendrier.pageData[workingDate.getFullYear()];
if(annee){
var mois= annee[workingDate.getMonth()+1];
if(mois){
if((mois[workingDate.getDate()-1])&&(mois[workingDate.getDate()-1]==1)){
YAHOO.util.Dom.addClass(cell, "cal_event");} else{
YAHOO.util.Dom.addClass(cell, "cal_no_event");}}}}
YAHOO.webtitan.calendrier.pageData= new Array();
YAHOO.webtitan.calendrier.getCurPage= function(){
var date= YAHOO.webtitan.calendrier.instance.cellDates[7];
return date;}
function calendrierMonthReceived(o){
if(o.responseXML){
YAHOO.webtitan.calendrier.working=false;
var xml= o.responseXML.documentElement;
var year= xml.getAttribute("year");
var month= xml.getAttribute("month");
var jours= new Array();
for(var i=0; i< xml.childNodes.length; i++){
var jour= xml.childNodes[i];
jours[i]= jour.getAttribute("hasEvent");}
YAHOO.webtitan.calendrier.pageData[year][month]= jours;
YAHOO.webtitan.calendrier.instance.render();
YAHOO.webtitan.calendrier.updatePrevNextBtnState();
YAHOO.webtitan.calendrier.validerQueAJour();} else{
alert(o.responseText);
YAHOO.webtitan.calendrier.working=false;}}
YAHOO.webtitan.calendrier.chargerMois= function(year, month){
if(YAHOO.webtitan.calendrier.working){} else{
YAHOO.webtitan.calendrier.working= true;
var sUrl= "/plugin";
var callback={ success: calendrierMonthReceived, failure: echecAction, argument:[]};
var postData= "plugin=calendrier&action=getMonth&month="+month+"&year="+year+"&langue="+curlangue;
if(YAHOO.webtitan.calendrier.filtre_cato){
postData+="&cato="+YAHOO.webtitan.calendrier.filtre_cato;}
if(YAHOO.webtitan.calendrier.filtre_categorie){
postData+="&categorie="+YAHOO.webtitan.calendrier.filtre_categorie;}
YAHOO.util.Connect.asyncRequest('POST', sUrl, callback, postData);}}
YAHOO.webtitan.calendrier.validerQueAJour= function(){
if(YAHOO.webtitan.calendrier.working){} else{
var date= YAHOO.webtitan.calendrier.getCurPage();
var month= date[1];
var year= date[0];
if(YAHOO.webtitan.calendrier.pageData[year]){} else{
YAHOO.webtitan.calendrier.pageData[year]= new Array();}
if((YAHOO.webtitan.calendrier.pageData[year][month])&&(YAHOO.webtitan.calendrier.pageData[year][month]!=null)){} else{
YAHOO.webtitan.calendrier.chargerMois(year, month);}}}
YAHOO.webtitan.calendrier.updateMonth= function(jour){
var year= jour.getFullYear();
var month= jour.getMonth()+1;
if(YAHOO.webtitan.calendrier.pageData[year]){
YAHOO.webtitan.calendrier.pageData[year][month]=null;}
this.validerQueAJour();}
YAHOO.webtitan.calendrier.updateAllMonth= function(){
YAHOO.webtitan.calendrier.pageData= new Array();
this.validerQueAJour();}
YAHOO.webtitan.calendrier.localize= function(cal1){
cal1.cfg.setProperty("DATE_FIELD_DELIMITER", "-");
cal1.cfg.setProperty("MDY_DAY_POSITION", 3);
cal1.cfg.setProperty("MDY_MONTH_POSITION", 2);
cal1.cfg.setProperty("MDY_YEAR_POSITION", 1);
cal1.cfg.setProperty("MD_DAY_POSITION", 2);
cal1.cfg.setProperty("MD_MONTH_POSITION", 1);
cal1.cfg.setProperty("MY_DAY_POSITION", 2);
cal1.cfg.setProperty("MY_MONTH_POSITION", 1);
cal1.cfg.setProperty("MONTHS_SHORT",["Ja", "Fe", "Mr", "Al", "Ma", "Jn", "Jl", "Au", "Se", "Oc", "No", "De"]);
cal1.cfg.setProperty("MONTHS_LONG",["Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre"]);
cal1.cfg.setProperty("WEEKDAYS_1CHAR",["Di", "Lu", "Ma", "Me", "Je", "Ve", "Sa"]);
cal1.cfg.setProperty("WEEKDAYS_SHORT",["Di", "Lu", "Ma", "Me", "Je", "Ve", "Sa"]);
cal1.cfg.setProperty("WEEKDAYS_MEDIUM",["Dim", "Lun", "Mar", "Mer", "Jeu", "Ven", "Sam"]);
cal1.cfg.setProperty("WEEKDAYS_LONG",["Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi"]);}
YAHOO.webtitan.calendrier.commonInit= function(){
YAHOO.webtitan.calendrier.localize(YAHOO.webtitan.calendrier.instance);
YAHOO.webtitan.calendrier.instance.changePageEvent.subscribe(changePageHandler, YAHOO.webtitan.calendrier.instance, true);
for(var i=1; i<= 12; i++){
YAHOO.webtitan.calendrier.instance.addMonthRenderer(i, calendrierEvenementRender);}}
