/**
* 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= $w(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.getChargerMoisData= function(year, month){
alert(_TR("mot.adm_js_calendrier_erreur_implantation" ,"Vous devez implémenter une version spécifique au site de chargerMois..."));
return"";}

YAHOO.webtitan.calendrier.chargerMois= function(year, month){
if(YAHOO.webtitan.calendrier.working){} else{
YAHOO.webtitan.calendrier.working= true;
var sUrl= YAHOO.webtitan.calendrier.chargerMoisUrl;
var callback={
success: calendrierMonthReceived,
failure: echecAction,
argument:[]};
var postData= this.getChargerMoisData(year, month);
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);}}
