// Event Calendar
// copyright Stephen Chapman, 10th June 2006, 22nd January 2010

var tb = 't'; // top or bottom (t or b)
//var headbg = '#e8e7e0'; // table heading background colour
//var todaybg = '#99cccc'; // current selected date background colour
//var textclr = '#000000'; // text colour
//var linkclr = '#ff9999'; // link text colour

var headbg = '#e8e7e0'; // table heading background colour
var todaybg = '#e8e7e0'; // current selected date background colour
var textclr = '#000000'; // text colour
//var linkclr = '#ff9999'; // link text colour
var linkclr = '#000000'; // link text colour
var bgimage = '';
var noMessage = 'No event messages to display for today'; // message to
															// display when no
															// entry in array
//language
var usedLanguage = 'fr';

// for test purpose
var dA = new Array();
//
//dA[x++] = "00000101 New Year";
//dA[x++] = "20100314 Valentine's day";
dA[x++] = "00000215 Valentine's day";
//dA[x++] = "20110215 Valentine's day";
//dA[x++] = "00000709 Steve's Birthday";
//dA[x++] = "00000919 Site Anniversary";
//dA[x++] = "00001206 St Nicholas' Day";

var x = 0;


//var dow = [];

var  dow = new Array();
var moy = new Array;


    var today = new Date();
    var selDate = today.getFullYear()
    		+ getmmdd(today.getMonth() + 1, today.getDate());
// first 8 characters in ccyymmdd format for single date events
// first 8 characters in 0000mmdd format for every year events


// dA[x++] = "20060610 New Event Calendar Started today";

// permission is granted to use this javascript provided that the below code is
// not altered
var pageLoaded = 0;
window.onload = function() {
	pageLoaded = 1;
}
//function loaded(i, f, language) {
//	if (document.getElementById && document.getElementById(i) != null){
//		alert(language);
//		init(language);
////		f();
//		start(year,month);
//	}else if (!pageLoaded){
//		alert(2);
//		setTimeout('loaded(\'' + i + '\',' + f + '\',' + language +')', 100);
//	}
//}

function loaded(i, year, month, language, color,image) {
	if (document.getElementById && document.getElementById(i) != null){
		usedLanguage = language;
		init(language);
		bgimage = image;
//		linkclr = color;
//		alert(linkclr);
//		alert(''+year + '--' + month);
		start(year,month);
	} else {
		alert('You should add an div tag with the id calendar');
	}
	
//	if (document.getElementById && document.getElementById(i) != null){
////		alert(1);
//		init(language);
//		f();
////		start(year,month);
//	}else if (!pageLoaded){
////		alert(2);
//		setTimeout('loaded(\'' + i + '\',' + f + ')', 100);
//	}
}



function init(language){
	var dowEn = [ 'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat' ];
	var dowFr = [ 'Dim', 'Lun', 'Mar', 'Mer', 'Jeu', 'Ven', 'Sam' ];
	var dowDe = [ 'Son', 'Mon', 'Die', 'Mit', 'Don', 'Fre', 'Sam' ];


	var moyEn = [ 'January', 'February', 'March', 'April', 'May', 'June', 'July',
	    		'August', 'September', 'October', 'November', 'December' ];
	var moyFr = [ 'janvier', 'février', 'mars', 'avril', 'Mai', 'Juin', 'Juillet',
	    		'aout', 'septembre', 'octobre', 'novembre', 'décembre' ];
	var moyDe = [ 'Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli',
	    		'August', 'September', 'Oktober', 'November', 'Dezember' ];
	
	switch(language){
		case 'fr':
//			alert('---');
			dow = dowFr;
			moy = moyFr;
			break;
		case 'de':
			 dow = dowDe;
			 moy = moyDe;			 
			break;
		case 'en':
			dow = dowEn;
			moy = moyEn;
			break;	
		default:
			dow = dowFr;
			moy = moyFr;			
			break
	}
}

function start(year,month) {

	var x = '<div id="calDate" style="border:0pt solid #cccccc;width:220px"><\/div>';
	var y = '';
	if (tb == 't'){
//		y = x + dispCal(0, 0);
		y = x + dispCal(year, month); //top

	}else{
//		y = dispCal(0, 0) + x;
		y = dispCal(year, month) + x;
	}
	document.getElementById('calendar').innerHTML = y;

//	ev();
}


function monthlength(month, year) {
	var dd = new Date(year, month, 0);
	return dd.getDate();
}

function dispCal(yy, mm) {

	if (mm < 0 || mm > 12) {
		alert('month must be between 1 and 12');
		return false;
	}
	if (yy != 0 && (yy < 1901 || yy > 2100)) {
		alert('year must be after 1900 and before 2101');
		return false;
	}
	
	var calendar = new Date();

	var today = calendar.getDate();
	
	calendar.setDate(1);
	if (yy > 1900)
		calendar.setFullYear(yy);
	if (mm > 0)
		calendar.setMonth(mm - 1);
	var yy = year = calendar.getFullYear();
	var month = calendar.getMonth();
	
	calendar.setDate(today);
	var weekday = calendar.getDay();
	var daysInMonth = monthlength(month + 1, year);
	var hilite_start = '<td width="30" height="30" style="background:' + todaybg + '" align="center"><b>';
	var td_start = '<td width="25" height="25" align="center">';
//	var cal = '';
//	var headerMonth = '<div id="cal"><div style="border:1pt solid #cccccc;width:220px"><table border="0" cellspacing="0" cellpadding="2" align="center"><tr><td colspan="7" style="background:'
//		+ headbg
//		+ '" align="center"><b>'
//		+ moy[month]
//		+ ' '
//		+ year
//		+ '<\/b><\/td><\/tr><tr></table></div>';
//	var cal += '<div id="cal">';	
//	var cal += '<div style="border:1pt solid #cccccc;width:220px">';
	var calHeaderTop = '<div style="border:0pt solid #cccccc;width:220px"><table border="0" cellspacing="0" cellpadding="2" align="center"><tr>';
	var calHeaderMiddle = '<td colspan="7" style="width:100%;background:'
		+ headbg
		+ '" align="center"><b>'
		+ moy[month]
		+ ' '
		+ year
		+ '<\/b><\/td>';
	var calHeaderBottom ='<\/tr></table></div>';
//	var calHeader  = '<div style="border:1pt solid #cccccc;width:220px">'
//		+ '<table border="0" cellspacing="0" cellpadding="2" align="center"><tr>'
//			+ '<td colspan="7" style="background:'
//			+ headbg
//			+ '" align="center"><b>'
//			+ moy[month]
//			+ ' '
//			+ year
//			+ '<\/b><\/td>'
//			+ '<\/tr></table></div>';
	
	var calMain  = '<div style="border:0pt solid #cccccc;width:220px"><table border="0" cellspacing="0" cellpadding="2" align="center"><tr>';
	
	for (dex = 0; dex < 7; dex++) {
		calMain += td_start + dow[dex] + '</td>';
	}
	calMain += '<\/tr><tr>';
	var day2 = today;
	for (dex = today; dex > 6; dex -= 7)
		day2 = dex;
	weekday -= day2 - 1;
	while (weekday < 0)
		weekday += 7;
	for (dex = 0; dex < weekday; dex++)
		calMain += td_start + ' <\/td>';
	for (dex = 1; dex <= daysInMonth; dex++) {
		if (weekday == 7) {
			calMain += '</tr><tr width="25">';
			weekday = 0;
		}
		
//		style="width:25px;background: url(/upload/logos/cal_11.gif) no-repeat ;"
		if (selDate == year + getmmdd(month + 1, dex))
			calMain += hilite_start + '<div ' + clickDate(dex, month, year) + '>'
					+ dex + '<\/div><\/b><\/td>';
		else
			calMain += td_start + '<div ' + clickDate(dex, month, year) + '>'
					+ dex + '<\/div><\/td>';
		weekday += 1;
	}
	for (dex = weekday; dex < 7; dex++)
		calMain += td_start + ' <\/td>';
	calMain += '<\/tr><\/table><\/div>';
	
	
//	cal += calMain;
//	cal += '<\/div>';
	
//	alert(cal);
	
	if (document.getElementById) {
		var mmb = month;
		mm = month + 1;
		var yya = yyb = yy;
		if (mmb < 1) {
			mmb += 12;
			yyb--;
		}
		var mma = month + 2;
		if (mma > 12) {
			mma -= 12;
			yya++;
		}
		var yb = yy - 1;
		var ya = yy + 1;
		
		//step per month and year
		
//		calTemp = '<table border="0" cellspacing="0" cellpadding="2" width="210"><tr><td><a href="#" onclick="if (cala = dispCal('
//				+ yb
//				+ ','
//				+ mm
//				+ ')) {document.getElementById(\'cal\').innerHTML = cala; return false;}"><<</a></td><td><a href="#" onclick="if (cala = dispCal('
//				+ yyb
//				+ ','
//				+ mmb
//				+ ')) {document.getElementById(\'cal\').innerHTML = cala; return false;}"><</a></td><td align="right"><a href="#" onclick="if (cala = dispCal('
//				+ yya
//				+ ','
//				+ mma
//				+ ')) {document.getElementById(\'cal\').innerHTML = cala; return false;}">></a></td><td align="right"><a href="#" onclick="if (cala = dispCal('
//				+ ya
//				+ ','
//				+ mm
//				+ ')) {document.getElementById(\'cal\').innerHTML = cala; return false;}">>></a></td></tr></table>';
		
		//step per month
//		calTemp = '<table border="0" cellspacing="0" cellpadding="2" width="210"><tr><td><a href="#" onclick="if (cala = dispCal('
//			+ yyb
//			+ ','
//			+ mmb
//			+ ')) {document.getElementById(\'cal\').innerHTML = cala; return false;}"><</a></td><td align="right"><a href="#" onclick="if (cala = dispCal('
//			+ yya
//			+ ','
//			+ mma
//			+ ')) {document.getElementById(\'cal\').innerHTML = cala; return false;}">></a></td></tr></table>';		
		
		var calHeaderBack = '<td ><a href="#" onclick="if (cala = dispCal('
			+ yyb
			+ ','
			+ mmb
			+ ')) {document.getElementById(\'cal\').innerHTML = cala; return false;}"><img border="0" src="/images/back.jpg"></a></td>';		
		
		var calHeaderForward = '<td align="right"><a href="#" onclick="if (cala = dispCal('
			+ yya
			+ ','
			+ mma
			+ ')) {document.getElementById(\'cal\').innerHTML = cala; return false;}"><img border="0" src="/images/forward.jpg"></a></td>';
		
//		cal += calTemp;

	} else {
//		cal += '<div> </div>';
	}
	
	
//	cal += '</div>';
	
	var calHeader = calHeaderTop
	+ calHeaderBack
	+ calHeaderMiddle
	+ calHeaderForward
	+ calHeaderBottom;	
	
	var cal = '<div id="cal">'
	 + calHeader
	 + calMain	
	 + '</div>';

	return cal;
}



/**
 * Set the clickable dates
 */
function clickDate(day, month, year) {
	
	var ct = nextDate(year + getmmdd(month + 1, day));
	
	if (ct == '')
		ct = nextDate('0000' + getmmdd(month + 1, day));
	if (ct == '')
		return 'style="color:' + textclr + '"';
	else{
//		return 'style="cursor:pointer;color:' + linkclr
//				+ '" onclick="selDate = ' + year + getmmdd(month + 1, day)
//				+ '; isDate(' + day + ',' + month + ',' + year
//				+ ');return false;"';
//		style="width:25px;background: url(/upload/logos/cal_11.gif) no-repeat ;"
//		return 'style="cursor:pointer;color:' + linkclr + '"' +  'onclick="location.href=\'/concerts/\'" ';
		return 'style="margin-top:4px;padding-top:4px;width:25px;height:25px; background: url('+bgimage+') no-repeat ;cursor:pointer;color:' + linkclr + '"' +  'onclick="location.href=\'/'+usedLanguage+'/concerts/'+year+'/'+(month + 1)+'/'+day+'/1/	\'" ';
//	return 'style="cursor:pointer;color:' + linkclr + '"' +  'onclick="location.href=\'/concerts/'+year+'/'+month+'/'+day.'\'" ';
	}
		
		
}

///**
// * Display the selected date  
// */
//function isDate(dayVal, monthVal, yearVal) {
//	var ct = nextDate(yearVal + getmmdd(monthVal + 1, dayVal));
//	if (ct == '')
//		ct = nextDate('0000' + getmmdd(monthVal + 1, dayVal));
//	if (ct == '')
//		ct = noMessage;
//	document.getElementById('calDate').innerHTML = selDate + ':<br \/>' + ct;
//	return false;
//}

function nextDate(yymmdd) {
	
	var x = dA.length;
	
	for ( var i = 0; i < x; i++) {
		if (dA[i].substr(0, 8) == yymmdd){
//			alert( dA[i].substr(0, 8) + '/' + yymmdd );
			return dA[i].substr(8);
		}
		
		
	}
	return '';
}
function getmmdd(mm, dd) {
	return (mm > 9 ? '' + mm : '0' + mm) + (dd > 9 ? dd : '0' + dd);
}

/**
 * Display the selected date
 */  
function ev() {
	var ct = nextDate(selDate);
	var ct = nextDate(selDate);
	if (ct == '')
		ct = nextDate('0000' + selDate.substr(4));
	if (ct == '')
		ct = noMessage;
	document.getElementById('calDate').innerHTML = selDate + ':<br \/> ' + ct;
}
