mywrap=false;  // place month and year on separate lines

if (mywrap) {
	breakchr="<br/>";
}
//tracks classnames for special events
evtClassName="evtDay";
//switch to stop at first special event found for date
evtFlag=false; 
// Tracks current date being written in calendar
thisDate=1;
// Date object to store current date
today=new Date();
// Stores current day number 1-7
todaysDay=today.getDay()+1;
// Stores current numeric date within month
todaysDate=today.getDate();
// Stores current month 1-12
todaysMonth=today.getUTCMonth()+1;
// Stores current year
todaysYear=today.getFullYear();
// Tracks current month being displayed
monthNum=todaysMonth;
// Tracks current year being displayed
yearNum=todaysYear;
dayNum=todaysDate;
firstDate=new Date(String(monthNum)+"/1/"+String(yearNum));
// Object Storing the first day of the current month
firstDay=firstDate.getUTCDay();
// Tracks the day number 1-7 of first day of current month
lastDate=new Date(String(monthNum+1)+"/0/"+String(yearNum));
// Tracks the last date of the current month
numbDays=0;
calendarString="";
eastermonth=0;
easterday=0;

/************* changeDatefromEvent(day,month,year,lgn) **************/
function changeDatefromEvent(day,month,year,lgn){
	monthNum = month;
	todaysMonth = month;
	yearNum = year;
	todaysYear = year;
	lng = lgn;	
	createCalendarThreeday();
	return;
}
/************* changeCalendarThreeday(buttonpressed) **************/
function changeCalendarThreeday(lng,buttonpressed,day,month,year){	

	var objNameWord = new CalendarNameWord(lng);

	if(buttonpressed==objNameWord.NextDay){
		dayNum = parseInt(dayNum)+3;		
	}
	else if(buttonpressed==objNameWord.PrevDay){
		dayNum=parseInt(dayNum)-3;
	}
	else if(buttonpressed==objNameWord.Return){
		if(day && month && year){
			dayNum = day;
			monthNum = month;
			yearNum = year;
		}else {					
			monthNum = todaysMonth;
			yearNum = todaysYear;
			dayNum = todaysDate;
		}
	}
	
	lastDate=new Date(yearNum, monthNum, 0);
	if(dayNum<=0){				
		daySub = dayNum;
		monthNum--;	
		if(monthNum <= 0){					
			monthNum = 12;
			yearNum --;
			lastDate=new Date(yearNum, monthNum, 0);
			dayNum = parseInt(lastDate.getDate())+daySub;			
		}else{
			lastDate=new Date(yearNum, monthNum, 0);
			dayNum=parseInt(lastDate.getDate())+daySub;			
		}
	}	
	
	else if(dayNum>lastDate.getDate()){			
		dayAdd = dayNum - lastDate.getDate()-1;
		monthNum++;
		if(monthNum >=13){					
			monthNum = 1;
			yearNum++;
			firstDate=new Date(yearNum, monthNum, 1);
			dayNum = firstDate.getDate()+dayAdd;
		}else{	 
			firstDate=new Date(yearNum, monthNum, 1);
			dayNum = firstDate.getDate()+dayAdd;				
		}
	}		
	else if(monthNum <=0){		
		monthNum=12;
		yearNum--;
		lastDate = new Date(yearNum, monthNum+1, 0);
		dayNum = parseInt(lastDate.getDate())+dayNum;
	}
	else if(monthNum >=13){		
		monthNum=1;
		yearNum++;
		firstDate=new Date(yearNum, monthNum, 1);
		dayNum = firstDate.getDate();
	}
	var url = document.URL;
	var page = parseInt(url.indexOf('page='));
	url = url.substring(page + 'page='.length , url.length);	
	var title = parseInt(url.indexOf('&title='));
	url = url.substring(0, title);
	if(url!="")
		document.location = url;
	else
		document.location = "calendrier3jours."+lng+".html?day="+dayNum+"&mois="+monthNum+"&year="+yearNum;				

}
//
function threeDayInit(lng,day,month,year){
    
	var objNameWord = new CalendarNameWord(lng);	
	if(day && month && year){
		dayNum = day;
		monthNum = month;
		yearNum = year;
	}else {					
		monthNum = todaysMonth;
		yearNum = todaysYear;
		dayNum = todaysDate;
	}
		
	lastDate=new Date(yearNum, monthNum, 0);			
	numbDays=lastDate.getDate();	
	firstDate=new Date(yearNum, monthNum, 1);	
	firstDay=firstDate.getDay()+1;
	createCalendarThreeday(lng);
}
/************* easter **************/
function easter(year){
	/* feed in the year it returns the month and day of Easter
   	using two GLOBAL variables:eastermonth and easterday */
	a=year%19;
	b=Math.floor(year/100);
	c=year%100;
	d=Math.floor(b/4);
	e=b%4;
	f=Math.floor((b+8)/25);
	g=Math.floor((b-f+1)/3);
	h=(19*a+b-d-g+15)%30;
	i=Math.floor(c/4);
	j=c%4;
	k=(32+2*e+2*i-h-j)%7;
	m=Math.floor((a+11*h+22*k)/451);
	month=Math.floor((h+k-7*m+114)/31);
	day=((h+k-7*m +114)%31)+1;
	eastermonth=month;
	easterday=day;
}
/************* createCalendar **************/
function createCalendarThreeday(lng){	

	var obj = new CalendarNameWord(lng);
	calendarString='';
	daycounter=0;
	calendarString+='<table cellpadding=0 cellspacing=0 align="left" border="0" width="100%" class="threeDayContain"><tr><td>';
	calendarString+='<table cellpadding=0 cellspacing=0 class="tablethreeday" style="border-bottom:2px solid #b8056d; padding-bottom:5px;"><tr>' ; 		
	calendarString+='<td align="left"  width="2%" ><a href="#">' ; 
	calendarString+='<img valign="middle" name="PrevDay" onClick="changeCalendarThreeday(\''+ lng +'\',\'PrevDay\');"  ' +
					'title="' + obj.previous3days + '" src="/images/20i/3dayprevious.png" alt="'+ obj.previous3days +'" \/><\/a><\/td>';
	calendarString+='<td align="left" width="20%">' + 
					'<a href="#" class="navigate" onClick="changeCalendarThreeday(\''+ lng +'\',\'PrevDay\');">'+ obj.previous3days +'<\/a><\/td>';
	calendarString+='<td class="monthTittle" colspan="3">' + 
					obj.getIWordMonth(monthNum-1) + obj.Breakchr + yearNum + '<\/td>';
	calendarString+='<td align="right" width="15%">'+
					'<a href="#" class="navigate" onClick="changeCalendarThreeday(\''+ lng +'\',\'NextDay\');" ' +
					'>' + obj.next3days + '<\/a><\/td>';
	calendarString+='<td align="right" width="2%" ><a href="#">' +
					'<img valign="middle" name="NextDay" onClick="changeCalendarThreeday(\''+ lng +'\',\'NextDay\');" '+
					'title="' +	obj.next3days+ '" src="/images/20i/3daynext.png" alt="'+ obj.next3days +'" \/><\/a><\/td><\/tr><\/table>';					
	thisDate=0;

	end = parseInt(dayNum) + 2;
	var string=[];	
	calendarString+='<table cellpadding="0" cellspacing="0" border="0" style="margin:0px 5px; _padding:0px 1px; border-spacing:2px 0px;">';		
	count=3;	
			
	for(j=dayNum;j<=end;j++){		
				
		if(j<=numbDays){			
			count--;
			calendarString+='<td align="center" valign="top" class="column">'
			
			// TBA edit 24/07/2007 
			// added gray title bars
			calendarString+='<table cellpadding="5" cellspacing="0" width="100%" style="background-color:#bfbfbf; color:#000; font-weight:bold;"><tr><td align="center">';
			calendarString+= j + obj.Breakchr  + obj.getIWordMonth(monthNum-1) + obj.Breakchr  + yearNum ;						
			calendarString+='</td></tr></table>';

			for (i=0;i<eventsOther.length;i++){
				if(eventsOther[i][0]===""){
					if((eventsOther[i][2]==j)&&(eventsOther[i][1]==monthNum)&&(eventsOther[i][3]==yearNum)){						
						var tableString = createEventable(lng,i);						
						calendarString += tableString;
					}					
				}
			}
			calendarString+='<\/td>'; 	
		}	
		else {			
			month = parseInt(monthNum)+1;			
			if(month == 13){
				month=1;
				year = parseInt(yearNum) + 1;				
				day = new Date(String(month)+"/1/"+String(year));
				k = day.getDate();
			}else{
				day =new Date(String(month)+"/1/"+String(yearNum));
				k = day.getDate();
				year = yearNum;
			}			
			for( ;k<=count;k++)
			{	
				calendarString+='<td class="column" align="center" valign="top">'
				calendarString+='<table cellpadding="5" cellspacing="0" width="100%" style="background-color:#bfbfbf; color:#000; font-weight:bold;"><tr><td align="center">';
				calendarString+= k + obj.Breakchr + obj.getIWordMonth(monthNum) + obj.Breakchr + year ;						
				calendarString+='</td></tr></table>';
				
				for (i=0;i<eventsOther.length;i++){
					if(eventsOther[i][0]===""){ 
						if((eventsOther[i][2]==k)&&(eventsOther[i][1]==month)&&(eventsOther[i][3]==year)){										
							var tableString = createEventable(lng,i);						
							calendarString += tableString;						
						}					
					}
				}
				calendarString+='<\/td>';				
			}			
			break;
		}
	}	
	calendarString+='<\/table>';		
	calendarString+='<\/td><\/tr><\/table>';
	object=document.getElementById('calendar_threeday');
	object.innerHTML=calendarString;
	document.innerHTML=calendarString;
	thisDate=1;
	document.PrevDay.src="/images/20i/3dayprevious.png";
	document.NextDay.src="/images/20i/3daynext.png";		
}
function createEventable(lng,iventItem) {			
	var  tableString = "";
	var moreInfo=(lng=="fr")?"En savoir plus":"Learn more";
	var obj = new CalendarNameWord(lng);
	tableString+='<table class="tableday" >'+
		'<tr>';
	//if(eventsOther[iventItem][4] != "" || eventsOther[iventItem][13] != ""){
			columnString = createEventColumn(lng,iventItem,2);
			tableString += columnString; 
			
/*	}else {
		columnString = createEventColumn(lng,iventItem,1);
		tableString += columnString;
	}*/
	tableString +='<\/tr>'+							
		'<td class="bottom">'+
			'<a href="/pda-evenement/'+ eventsOther[iventItem][8] + '/'+ eventsOther[iventItem][18]+ '.' +lng +'.html#">'+																				
				'<img  title="'+moreInfo+'"  src="../images/'+ lng +'/btn_savoirplus.gif" \/>'+
			'<\/a>'+
		'<\/td>';	
		if(lng=="fr"){
			if(eventsOther[iventItem][19]!=-1){
				tableString +='<td class="bottom">'+
				'<a href="#">' +
					'<img title="R\u00e9server"  src="../images/'+ lng +'/btn_reserve_disable.gif" style="cursor: default" \/>'+
				'<\/a>' +
			'<\/td>';
			}else{
			tableString +='<td class="bottom">'+
				'<a href="' + eventsOther[iventItem][obj.urlIndex]+'" target="_blank">' +
					'<img title="R\u00e9server"  src="../images/'+ lng +'/btn_reserve.gif" \/>'+
				'<\/a>' +
			'<\/td>';
			}
		}else{
			if(eventsOther[iventItem][19]!=-1){
				tableString +='<td class="bottom">'+
				'<a href="#">' +
					'<img title="R\u00e9server"  src="../images/'+ lng +'/btn_reserve_disable.gif" style="cursor: default" \/>'+
				'<\/a>' +
			'<\/td>';
			}else{
			tableString +='<td class="bottom">'+
				'<a href="' + eventsOther[iventItem][obj.urlIndex]+'" target="_blank">' +
					'<img title="Buy tickets"  src="../images/'+ lng +'/btn_reserve.gif" \/>'+
				'<\/a>' +
			'<\/td>';
			}
		}
	tableString +='<\/table>';	
	return tableString;
}
//
function createEventColumn(lng, iventItem, columnNum){
	var hour=(lng=="fr")?eventsOther[iventItem][5]:eventsOther[iventItem][20];
	var obj = new CalendarNameWord(lng);
	var familyTitle = eventsOther[iventItem][obj.familyTitleIndex];
	var eventTitle = eventsOther[iventItem][obj.eventTitleIndex];
	//var eventTitle = (eventsOther[iventItem][obj.eventTitleIndex]!="")?eventsOther[iventItem][obj.eventTitleIndex]:eventsOther[iventItem][obj.familyTitleIndex];
	var eventImage = (eventsOther[iventItem][4]!="")?eventsOther[iventItem][4]:'images/fiche-thumb-02.jpg';		
	var columnString;
	//if(columnNum == 2){
		columnString = '<td valign="top">'+
				'<img width="100px" height="100px" src="/'+ 
					eventImage + '" \/>'+
			'<\/td>' +	
			'<td valign="top" class="dayEvent">' +
			'<a href="/pda-evenement/'+ eventsOther[iventItem][8] + '/'+ eventsOther[iventItem][18]+ '.' + lng +'.html#" class="navigate">'+
				'<span class="tittle">'+
					breakLongWord(familyTitle,15)+'<\/span></a><br\/>' +
					breakLongWord(eventTitle,15) + '<br\/><br\/>' +
					hour+ '<br\/>' +										
			'<\/td>';
	/*}else if(columnNum == 1){
		columnString = '<td colspan="2" valign="top" class="dayEvent">'+
				'<a href="/pda-evenement/'+ eventsOther[iventItem][8] + '/'+ eventsOther[iventItem][18]+ '.' + lng +'.html#" class="navigate">'+
				'<span class="tittle">'+
					breakLongWord(familyTitle,35)+'<\/span></a><br\/>' +
					breakLongWord(eventTitle,35) + '<br\/><br\/>' +
					hour+ '<br\/>' +										
			'<\/td>';
	}*/
	return columnString;
}

/**
 * 
**/
	String.prototype.unescapeHtml = function () {
    var tempo = document.createElement("div");
    tempo.innerHTML = this;
    var result = tempo.childNodes[0].nodeValue;
    tempo.removeChild(tempo.firstChild);
    return result;
} 

function breakLongWord(longword,lenght){
	var temp = longword;
	if (longword.length >0)
		temp = longword.unescapeHtml();
	var result = "";
	var lenght = parseInt(lenght);
	while(temp.length > lenght){		
		if(temp.charAt(0) == " ") // remove begin space
		{			
			temp = temp.substr(1);				
		}		
		pos = temp.substr(0,lenght-1);		
		if(pos.lastIndexOf(" ") === -1){
			result += pos;
			temp = temp.substr(lenght-1);
		}else {
			result += pos.substr(0, pos.lastIndexOf(" ")+1);
			temp = temp.substr(pos.lastIndexOf(" ")+1);
		}
		result += "<br>";
	}
	if(temp.length>0){
		result += temp;		
	}
	return result;
}

