//----------------------------------
// Helper for preload images
//----------------------------------
var images = {};

function getImage(strName)
{
 if (images[strName] == null)
 {
  var img = new Image();
  img.src = strName;
  images[strName] = img;
 }
 
 return(images[strName].src);
}
//----------------------------------
// JScript source code for Calendar
//----------------------------------
var day2ms = 3600000 * 24;
var clLastYear = 65461; // initlized with an unexist date

var num2month = new Array('JANVIER', 'FEVRIER', 'MARS', 'AVRIL', 'MAI', 'JUIN', 'JUILLET', 'AOUT', 'SEPTEMBRE', 'OCTOBRE', 'NOVEMBRE', 'DECEMBRE');
var num2day = new Array('D', 'L', 'M', 'M', 'J', 'V', 'S', 'D');
var holidays = new Array(366);
var specialdays = new Array(366);
var schoolHolidays = {}; // school vacations tables
var schoolHolidaysOn = false;
numWeeksOn = true;

initSchoolHolidays();


var monthName = new Array(
 // janvier
 new Array(
  'JOUR de l\'AN', 'Basile', 'Geneviève', 'Odilon', 'Edouard', 'Mélainie', 'Raymond',
  'Lucien', 'Alix', 'Guillaume', 'Paulin', 'Tatiana', 'Yvette', 'Nina',
  'Rémi', 'Marcel', 'Roseline', 'Prisca', 'Marius', 'Sébastien', 'Agnès',
  'Vincent', 'Barnard', 'Fr. de Sales', 'Conv. S. Paul', 'Paul', 'Angèle', 'Th. d\'Aquin',
  'Gildas', 'Martine', 'Marcelle'
 ),
 // fevrier
 new Array(
  'Ella', 'Présentation', 'Blaise', 'Véronique', 'Agathe', 'Gaston', 'Eugénie', 'Jacqueline', 'Appoline', 'Arnaud',
  'N.-D. Lourdes', 'Félix', 'Béatrice', 'Valentin', 'Claude', 'Julienne', 'Alexis',
  'Bernadette', 'Gabin', 'Aimée', 'P. Damien', 'Isabelle', 'Lazare', 'Modeste',
  'Roméo', 'Nestor', 'Honorine', 'Romain', 'Auguste'
 ),
 // mars
 new Array(
  'Aubin', 'Charles le B.', 'Guénolé', 'Casimir', 'Olive', 'Colette', 'Félicité',
  'Jean de Dieu', 'Françoise', 'Vivien', 'Rosine', 'Justine', 'Rodrigue', 'Mathilde',
  'Louise', 'Bénédicte', 'Patrice', 'Cyrille', 'Joseph', 'PRINTEMPS', 'Clémence',
  'Léa', 'Victorien', 'Cath. de Suè.', 'Humbert', 'Larissa', 'Habib', 'Gontran',
  'Gwladys', 'Amédée', 'Benjamin'
 ),
 
 // avril
 new Array(
  'Hugues', 'Sandrine', 'Richard', 'Isidore', 'Irène', 'Marcellin', 'J.-B. de la S.',
  'Julie', 'Gauthier', 'Fulbert', 'Stanislas', 'Jules', 'Ida', 'Maxime',
  'Paterne', 'Benoît-J.', 'Anicet', 'Parfait', 'Emma', 'Odette', 'Anselme',
  'Alexandre', 'Georges', 'Fidèle', 'Marc', 'Alida', 'Zita', 'Jour du Souv.',
  'Cath. de Si.', 'Robert'
 ),
 
 // mai
 new Array(
  'F. du TRAVAIL', 'Boris', 'Phil., Jacq.', 'Sylvain', 'Judith', 'Prudence', 'Gisèle',
  'Victoire 45', 'Pacôme', 'Solange', 'Estelle', 'Jean.-d\'Arc', 'Rolande', 'Matthias',
  'Denise', 'Honoré', 'Pascal', 'Eric', 'Yves', 'Bernardin', 'Constantin',
  'Emile', 'Didier', 'Donatien', 'Sophie', 'Bérenger', 'Augustin', 'Germain',
  'Aymar', 'Ferdinand', 'Visitation'
 ),
 // juin
 new Array(
  'Justin', 'Blandine', 'Kévin', 'Clotilde', 'Igor', 'Norbert', 'Gilbert',
  'Médard', 'Diane', 'Landry', 'Barnabé', 'Guy', 'Antoine de P.', 'Elisée',
  'Germaine', 'J.-Fr. Régis', 'Hervé', 'Léonce', 'Romuald', 'Silvère', 'ETE',
  'Alban', 'Audrey', 'Jean-Bapt.', 'Prosper', 'Anthelme', 'Fernand', 'Irénée',
  'Pierre, Paul', 'Martial'
 ),
 // juillet
 new Array(
  'Thierry', 'Martinien', 'Thomas', 'Florent', 'Antoine', 'Mariette', 'Raoul',
  'Thibault', 'Amandine', 'Ulrich', 'Benoît', 'Olivier', 'Henri, Joël', 'FETE NATION.',
  'Donald', 'N-D Mt-Carmel', 'Charlotte', 'Frédéric', 'Arsène', 'Marina', 'Victor',
  'Marie-Mad.', 'Brigitte', 'Christine', 'Jacques', 'Anne, Joach.', 'Nathalie', 'Samson',
  'Marthe', 'Juliette', 'Ignace de L.'
 ),
 // Aout
 new Array(
  'Alphonse', 'Julien-Eym.', 'Lydie', 'J.-M. Vianney', 'Abel', 'Transfiguration', 'Gaétan',
  'Dominique', 'Amour', 'Laurent', 'Claire', 'Clarisse', 'Hippolyte', 'Evrard',
  'ASSOMPTION', 'Armel', 'Hyacinthe', 'Hélène', 'Jean-Eudes', 'Bernard', 'Christophe',
  'Fabrice', 'Rose de L.', 'Barthélemy', 'Louis', 'Natacha', 'Monique', 'Augustin',
  'Sabine', 'Fiacre', 'Aristide'
 ),
 // Septembre
 new Array(
  'Gilles', 'Ingrid', 'Grégoire', 'Rosalie', 'Raïssa', 'Bertrand', 'Reine',
  'Nativité N.-D.', 'Alain', 'Inès', 'Adelphe', 'Apollinaire', 'Aimé', 'La Ste Croix',
  'Roland', 'Edith', 'Renaud', 'Nadège', 'Emilie', 'Davy', 'Matthieu',
  'Maurice', 'AUTOMNE', 'Thècle', 'Hermann', 'Côme, Dam.', 'Vinc. de P.', 'Venceslas',
  'Michel', 'Jérôme'
 ),
 // Octobre
 new Array(
  'Thér. de l\'E.', 'Léger', 'Gérard', 'Fr. d\'Assise', 'Fleur', 'Bruno', 'Serge',
  'Pélagie', 'Denis', 'Ghislain', 'Firmin', 'Wilfried', 'Géraud', 'Juste',
  'Thér. d\'Avila', 'Edwige', 'Baudoin', 'Luc', 'René', 'Adeline', 'Céline',
  'Elodie', 'Jean de C.', 'Florentin', 'Crépin', 'Dimitri', 'Emeline', 'Simon, Jude',
  'Narcisse', 'Bienvenue', 'Quentin'
 ),
 
 // Novembre
 new Array(
  'TOUSSAINT', 'Défunt', 'Hubert', 'Charles', 'Sylvie', 'Bertille', 'Carine',
  'Geoffroy', 'Théodore', 'Léon', 'ARMISTICE', 'Christian', 'Brice', 'Sidoine',
  'Albert', 'Marguerite', 'Elisabeth', 'Aude', 'Tanguy', 'Edmond', 'Prés. Marie',
  'Cécile', 'Clément', 'Flora', 'Cath. L.', 'Delphine', 'Séverin', 'Jacq. de la M.',
  'Saturnin', 'André'
 ),
 // Décembre
 new Array(
  'Florence', 'Viviane', 'Xavier', 'Barbara', 'Gérald', 'Nicolas', 'Ambroise',
  'Im. Concept.', 'Pierre Fourier', 'Romaric', 'Daniel', 'Jean. Fr.-Ch.', 'Lucie', 'Odile',
  'Ninon', 'Alice', 'Gaël', 'Gatien', 'Urbain', 'Abraham', 'Pierre C.',
  'HIVER', 'Armand', 'Adèle', 'NOËL', 'Etienne', 'Jean', 'Innocents',
  'David', 'Roger', 'Sylvestre'
 )
);
//----------------------------
//----------------------------
//----------------------------
//----------------------------
function getQuantieme(year, month, day)
{
 return(Math.round( (new Date(year, month, day, 8) - new Date(year, 0, 1, 8) )  / day2ms ));
}
//----------------------------
function dateToQuantieme(d)
{
 var year = d.getFullYear();

 return(Math.round( (d - new Date(year, 0, 1, d.getHours()) )  / day2ms ));
}
//----------------------------
function dateAddDay(d, x)
{
 return(new Date(d.getFullYear(), d.getMonth(), d.getDate() + x));
}
//----------------------------
function getWeekNum(quantieme, weekday)
{
 var x = Math.round((quantieme + weekday + 6) / 7);
 if (weekday > 4)
  x--;

 if (x == 53)
  if (quantieme > 361)
   x = 1;
 return(x);
}
//----------------------------
function getPaques(year)
{
 var date_paques = null;
 var b = year - 1900;
 var c = year % 19;
 var d = Math.floor((7 * c + 1) / 19);
 var e = (11 * c + 4 - d) % 29;
 var f = Math.floor(b / 4);
 var g = (b + f + 31 - e) % 7; 
 var avril = 25 - e - g;
 if (avril > 0)
  return(new Date(year, 3, avril));
 else
  return(new Date(year, 2, avril + 31));
}
//----------------------------
function getPaques_legacy(year)
{
 var G, C, H, I, J, L;
 var month, day;
 year = 1 * year;
 G = year % 19
 C = Math.floor(year / 100);
 H = (C - Math.floor(C / 4) - Math.floor((8 * C + 13) / 25) + (19 * G) + 15) % 30;
 I = H - Math.floor(H / 28)*(1 - Math.floor(H / 28) * Math.floor(29 / (H + 1)) * Math.floor((21 - G) / 11));
 J = (year + Math.floor(year / 4) + I + 2 - C + Math.floor(C / 4) ) % 7;

 L = I - J;

 month = 3 + Math.floor((L + 40) / 44);
 day = L + 28 - 31 * Math.floor(month / 4);

 return(new Date(year, month - 1, day));   
}
//----------------------------
// Christ Roi, la dimanche qui précède le 1er dimanche de l'avent
function getChristKingDay(year)
{
 var d = new Date(year, 10, 20);
 var i = d.getDay();
 if (i == 0)
  return(d)
 else
  return(new Date(year, 10, 27 - i));
}

//--------------------
// fete des meres : dernier dimanche du mois mai sauf si cé deja ferié
function getMumDay(year)
{
 var d = new Date(year, 5, 0);
 return(new Date(year, 5, 0 - d.getDay()));
}
//--------------------
// fetes des peres : 3eme dimanche du mois de juin
function getDadDay(year)
{
 var d = new Date(year, 5, 1);
 var i = d.getDay();
 i = ((7 - i) % 7) + 15;
 return(new Date(year, 5, i ));
}
//--------------------
function getAnnonciation(year)
{
 var d = new Date(year, 2, 25);
 return(d);
}
//--------------------
function fillHolidays(year)
{
 var i, j;
   
 if (clLastYear == year)
  return;
 
 for (i = 0; i < 366; i++)
 {
  holidays[i] = null;
  specialdays[i] = null;
 }

 // Holidays fixes
 holidays[getQuantieme(year, 0, 1)] = 'JOUR del\'AN';
 holidays[getQuantieme(year, 4, 1)] = 'F. du TRAVAIL';
 holidays[getQuantieme(year, 4, 8)] = 'VICTOIRE 45';
 holidays[getQuantieme(year, 6, 14)] = 'FÊTE NAT.';
 holidays[getQuantieme(year, 7, 15)] = 'ASSOMPTION';
 holidays[getQuantieme(year, 10, 1)] = 'TOUSSAINT';
 holidays[getQuantieme(year, 10, 11)] = 'ARMISTICE 18';
 holidays[getQuantieme(year, 11, 25)] = 'NOËL';

 // Holidays variables religion
 specialdays[5] = 'Epiphanie';

 var datePaques = getPaques(year);
 i = dateToQuantieme(datePaques);
 specialdays[i - 2] = 'Vendredi Saint';
 specialdays[i] = 'PAQUES';
 holidays[i + 1] = 'L. de PAQUES';
 specialdays[i - 47] = 'Mardi-Gras';
 specialdays[i - 46] = 'Cendres';
 specialdays[i - 7] = 'Rameaux';
 holidays[i + 39] = 'ASCENSION';
 specialdays[i + 49] = 'PENTECOTE';

 if (year < 2005)
  holidays[i + 50] = 'L. de PENTEC.';

 // Fetes des peres
 i = dateToQuantieme(getDadDay(year));
 specialdays[i] = 'F. des Pères';
 // Fetes des mères : dernier dimanche de mois de juin ou 3 semaines avant la fetes des peres, sauf si cé est férié
 i -= 21;
 if (specialdays[i] != null)
  i += 7;
 specialdays[i] = 'F. des Mères';

 // Annonciation
 var dateAnnonciation = getAnnonciation(year);
 i = dateToQuantieme(dateAnnonciation);
 j = dateToQuantieme(datePaques);
 if ((j >= i) && (j - i < 8))
  specialdays[j + 8] = 'Annonciation';
 else
  if (dateAnnonciation.getDay() == 0)
   specialdays[i + 1] = 'Annonciation';
  else
   specialdays[i] = 'Annonciation';
    
 // Christ Roi
 i = dateToQuantieme(getChristKingDay(year));
 specialdays[i] = 'Christ Roi';
 // Avent, 1 semaine apres Christ Roi
 specialdays[i + 7] = 'Avent';
}

//----------------------------
function fillVacations(year, month, startDay, endDay, tag)
{
 var monthArray;
 
 var yearMonthKey = year + 'a' + month;
 monthArray = schoolHolidays[yearMonthKey];
 if (monthArray == null)
 {
  monthArray = new Array(31);
  for (var i=0; i < 31; i++)
   monthArray[i] = null;
 }
 
 for (var i=startDay; i <= endDay; i++)
  monthArray[i] = tag;
 
 schoolHolidays[yearMonthKey] = monthArray;
}
//----------------------------
function getMonthPanel(year, month)
{
 var i, nbDays, day, quantieme;
 var strHTML = '';
 var strClass, strDayLabel;
 var d;

 var today = new Date();
 var todayQuantieme = dateToQuantieme(today);
 var todayYear = today.getFullYear();
 var monthArray = schoolHolidays[year + 'a' + month]; // monthArray for school holidays
 
 quantieme = getQuantieme(year, month, 1);

 // find the last day of the month
 d = new Date(year, month + 1, 0);
 nbDays = d.getDate();

 d.setDate(1);
 d.setMonth(month);   
 day = d.getDay();

 strHTML += '<td>\n';
 strHTML += '<table border="0" cellspacing="0" cellspadding="0" class="monthPanel">';
  
 strHTML += '<tr>\n';
 strHTML += '<td class="monthTitle" colspan="4">' + num2month[month] + '</td>';
 strHTML += '</tr>';

 for (i = 0; i < nbDays; i++)
 {  
  strDayLabel = holidays[quantieme];
  
  if (strDayLabel == null)
  {
   strDayLabel = specialdays[quantieme];
   if (strDayLabel == null)
    strDayLabel = monthName[month][i];

   // Week End or day of week
   if (day == 0) // Sunday (day = 0) 
    strClass = 'daySunday';
   else
    if (day == 6) // Saturday
     strClass = 'daySaturday';
    else
     strClass = 'day';
  }
  else
   strClass = 'dayHoliday';

  // today
  if ((year == todayYear) && (quantieme == todayQuantieme))
   strClass = 'dayToday';

  strHTML += '<tr>\n';  
  strHTML += '<td class="' + strClass + '" style="width:16px;">' + (i + 1) + '</td>';
  strHTML += '<td class="' + strClass + '" style="width:11px;">' + num2day[day] + '</td>';
  strHTML += '<td class="' + strClass + '">' + strDayLabel + '</td>';
  
  // schoolHolidays tag
  // get schoolHolidays array
  strHTML += '<td class="' + strClass + '" style="width:6px;">';
  
  if ((schoolHolidaysOn == false) || (monthArray == null))
   if (day == 1)
    strHTML += '<span style="color:#aaaaaa">' + getWeekNum(quantieme, day) + '</span>';
   else
    strHTML += '&nbsp;';
  else
  {
   if (monthArray[i] == null)
    strHTML += '&nbsp;';
   else
    strHTML += '<img src="' + getImage(monthArray[i]) + '" />';;
  }
  strHTML += '</td>'

  strHTML += '</tr>\n';
  day = (day + 1) % 7;
  quantieme++;
 }

 for (i = nbDays; i < 31; i++)
 {
  strHTML += '<tr>\n';  
  strHTML += '<td class="day" colspan="4">&nbsp;</td>';
  strHTML += '</tr>\n';  
 }

 strHTML += '</table>\n'; 
 strHTML += '</td>\n';

 return(strHTML);
}
//----------------------------
function getCalendar(year, intToggle)
{
 var strHTML;

 fillHolidays(year);
 
 strHTML = '<table border="0" cellspacing="0" cellspadding="0" class="calendarPanel">\n';
 strHTML += '<tr>\n';
 
 for (var i = 0; i < 6; i++)
 {
  strHTML += getMonthPanel(year, intToggle * 6 + i);
 }   
 strHTML += '</tr>\n';
 strHTML += '</table>';
   
 clLastYear = year;
 return(strHTML);  
}
//----------------------------
function DayData()
{
 this.Name = '';
 this.Type = 0;  // 0=normal; 1=Sunday; 2=Holiday; 3=SpecialDay (not Holiday)
 this.MonthDay = 0;
 this.WeekDay = 0;
 this.Moon = 0;
}
//----------------------------
function GetMonthData(intYear, intMonth)
{
 var i, nbDays, day;
 var d;
 
 var today = new Date();
 var todayYear = today.getFullYear();
 var monthData = new Array(31);

 var quantieme = getQuantieme(year, month, 1);

 d = new Date(year, month + 1, 0);
 nbDays = d.getDate();
 d.setDate(1);
 d.setMonth(month);   
 day = d.getDay();
 
 for  (i = 0; i < 31; i++)
 {
  var dayData = new DayData();
  
  dayData.MonthDay = i;
  dayData.WeekDay = day;
  if (i < nbDays)
  {
   var intType = 0;
 
   strDayLabel = holidays[quantieme];
   
   intType = 0;
   if (strDayLabel == '')
   {
    strDayLabel = specialdays[quantieme];
    if (strDayLabel == '')
     strDayLabel = monthName[month][i];

    if (day == 0)
     intType = 1;
    else
     intType = 0;
   }
   else
    intType = 2;

   if ((year == todayYear) && (quantieme == todayQuantieme))
    intType += 128;
    
   dayData.Type = intType;
   dayData.Name = strDayLabel;
  
   day = (day + 1) % 7;
   quantieme++;
  }
  monthData[i] = dayData;
 }
 return(monthData);
}

//-----------------------
function initSchoolHolidays()
{
    // fill school Holidays Array
    // 24/10/2004 à 03/11/2004
    fillVacations(2004, 9, 23, 30, 'images/holiday_abc.gif');
    fillVacations(2004, 10, 0, 2, 'images/holiday_abc.gif');

    // 19/12/2004 à 02/01/2005
    fillVacations(2004, 11, 18, 30, 'images/holiday_abc.gif');
    fillVacations(2005, 0, 0, 1, 'images/holiday_abc.gif');

    // 06/02/2005   06/03/2005
    fillVacations(2005, 1, 5, 11, 'images/holiday_b.gif');
    fillVacations(2005, 1, 12, 18, 'images/holiday_ab.gif');
    fillVacations(2005, 1, 19, 19, 'images/holiday_abc.gif');
    fillVacations(2005, 1, 20, 26, 'images/holiday_ac.gif');
    fillVacations(2005, 1, 27, 27, 'images/holiday_c.gif');
    fillVacations(2005, 2, 0, 5, 'images/holiday_c.gif');

    // 10/04/2005   08/05/2005
    fillVacations(2005, 3, 9, 15, 'images/holiday_b.gif');
    fillVacations(2005, 3, 16, 22, 'images/holiday_ab.gif');
    fillVacations(2005, 3, 23, 23, 'images/holiday_abc.gif');
    fillVacations(2005, 3, 24, 29, 'images/holiday_ac.gif');
    fillVacations(2005, 4, 0, 0, 'images/holiday_ac.gif');
    fillVacations(2005, 4, 1, 7, 'images/holiday_c.gif');

    // 03/07/2005   31/08/2005
    fillVacations(2005, 6, 2, 30, 'images/holiday_abc.gif');
    fillVacations(2005, 7, 0, 30, 'images/holiday_abc.gif');

    fillVacations(2005, 8, 0, 0, 'images/holiday_abc.gif');

    fillVacations(2005, 9, 22, 30, 'images/holiday_abc.gif');
    fillVacations(2005, 10, 0, 1, 'images/holiday_abc.gif');

    fillVacations(2005, 11, 17, 30, 'images/holiday_abc.gif');
    fillVacations(2006, 0, 0, 1, 'images/holiday_abc.gif');

    // 02/2006
    fillVacations(2006, 1, 4, 10, 'images/holiday_c.gif');
    fillVacations(2006, 1, 11, 17, 'images/holiday_bc.gif');
    fillVacations(2006, 1, 18, 18, 'images/holiday_abc.gif');
    fillVacations(2006, 1, 19, 25, 'images/holiday_ab.gif');
    fillVacations(2006, 1, 26, 27, 'images/holiday_a.gif');


    // 03/2006
    fillVacations(2006, 2, 0, 4, 'images/holiday_a.gif');

    fillVacations(2006, 3, 8, 14, 'images/holiday_c.gif');
    fillVacations(2006, 3, 15, 21, 'images/holiday_bc.gif');
    fillVacations(2006, 3, 22, 22, 'images/holiday_abc.gif');
    fillVacations(2006, 3, 23, 29, 'images/holiday_ab.gif');

    fillVacations(2006, 4, 0, 0, 'images/holiday_ab.gif');
    fillVacations(2006, 4, 1, 7, 'images/holiday_a.gif');

    // 07-2006
    fillVacations(2006, 6, 4, 30, 'images/holiday_abc.gif');
    // 08-2006
    fillVacations(2006, 7, 0, 30, 'images/holiday_abc.gif');


    // 09-2006
    fillVacations(2006, 8, 0, 2, 'images/holiday_abc.gif');

    fillVacations(2006, 9, 25, 30, 'images/holiday_abc.gif');
    fillVacations(2006, 10, 0, 4, 'images/holiday_abc.gif');

    fillVacations(2006, 11, 23, 30, 'images/holiday_abc.gif');
    
    // 01-2007
    fillVacations(2007, 0, 0, 6, 'images/holiday_abc.gif');
    
    // 02-2007
    fillVacations(2007, 1, 10, 16, 'images/holiday_a.gif');
    fillVacations(2007, 1, 17, 23, 'images/holiday_ac.gif');
    fillVacations(2007, 1, 24, 24, 'images/holiday_abc.gif');
    fillVacations(2007, 1, 25, 27, 'images/holiday_bc.gif');
    
    // 03-2007
    fillVacations(2007, 2, 0, 3, 'images/holiday_bc.gif');
    fillVacations(2007, 2, 4, 10, 'images/holiday_b.gif');
    fillVacations(2007, 2, 30, 30, 'images/holiday_a.gif');
    
    // 04-2007
    fillVacations(2007, 3, 0, 6, 'images/holiday_a.gif');
    fillVacations(2007, 3, 7, 13, 'images/holiday_ac.gif');
    fillVacations(2007, 3, 14, 14, 'images/holiday_abc.gif');
    fillVacations(2007, 3, 15, 21, 'images/holiday_bc.gif');
    fillVacations(2007, 3, 22, 29, 'images/holiday_b.gif');
    
    // 05-2007
    fillVacations(2007, 4, 0, 0, 'images/holiday_b.gif');
    
    // 07-2007
    fillVacations(2007, 6, 4, 30, 'images/holiday_abc.gif');
    
    // 08-2007
    fillVacations(2007, 7, 0, 30, 'images/holiday_abc.gif');
    
    // 09-2007
    fillVacations(2007, 8, 0, 1, 'images/holiday_abc.gif');
    
    // 10-2007
    fillVacations(2007, 9, 24, 30, 'images/holiday_abc.gif');
    
    // 11-2007
    fillVacations(2007, 10, 0, 3, 'images/holiday_abc.gif');
    
    // 08-2007
    fillVacations(2007, 11, 22, 30, 'images/holiday_abc.gif');
}