
var activeid;
Date.prototype.getWeek = function() {
	var week = new Date(this.getFullYear(),0,1);
	return Math.ceil((((this - week) / 86400000) + week.getDay())/7);
}
function checkForDate(year,month,date,hashmark) {
	var myregexp = /(\d{4})-(\d{2})-(\d{2})/;
	var match;
	var checkpoint = 0;
	for(var x in dates) {
		if((x.match(/id/))) {
			match = myregexp.exec(dates[x].datum);
			if (match != null) {
				if(year == match[1] && month == match[2] && date == match[3]) {
					if(hashmark == "#0") {
							checkpoint = 1;
					} else {
						if (hashmark.substring(1, hashmark.length) == dates[x].category) {
							checkpoint = 1;
						}
					}
				}
			}
		}
	}
	if(checkpoint == 1)
		{ return "true"; }
		else
		{ return "false"; }
}
function returnDailyData(year,month,date,hashmark) {
	if(date < 10) {
		date = '0' + date;
	}
	var myregexp = /(\d{4})-(\d{2})-(\d{2})/;
	var match;
	var dataReturn = '';
	for(var x in dates) {
		if((x.match(/id/))) {
			match = myregexp.exec(dates[x].datum);
			if (match != null) {
				var dstring = year + '-' + month + '-' + date;
				if(match[0] == dstring) {
				var className = "dummy";
				switch(dates[x].category) {
					case "1":
						className = 'redLink';
					break;
					case "2":
						className = 'orangeLink';
					break;
					case "3":
						className = 'yellowLink';
					break;
					case "4":
						className = 'greenLink';
					break;
					case "5":
						className = 'lightblueLink';
					break;
					case "6":
						className = 'blueLink';
					break;
					case "7":
						className = 'blackLink';
					break;
					}
				if(hashmark == "#0") {
					dataReturn += '<p class="' + className + '" rel="'+ dates[x].id +'">' + dates[x].title + '</p>';
					} else {
					if(hashmark.substring(1, hashmark.length) == dates[x].category) {
						dataReturn += '<p class="' + className + '" rel="'+ dates[x].id +'">' + dates[x].title + '</p>';
						}
					}
				}
			}
		}
	}
	return dataReturn;
}
function MonthList(year, month, hashmark)
	{
	 var columns = new Array;
	 var date = 1;
	 var date_start	= (new Date(year, month, 1).getDay() == 0) ? 7 : new Date(year, month, 1).getDay();
	 var date_end	= new Date(year, month+1, 0).getDate();
	 
		 var days = Array('MÅNDAG','TISDAG', 'ONSDAG', 'TORSDAG', 'FREDAG', 'LÖRDAG', 'SÖNDAG');
		 var months = Array('JANUARI', 'FEBRUARI', 'MARS', 'APRIL', 'MAJ', 'JUNI', 'JULI', 'AUGUSTI', 'SEPTEMBER', 'OKTOBER', 'NOVEMBER', 'DECEMBER')
	 
	 var monthsnr = Array('01','02','03','04','05','06','07','08','09','10','11','12');
	 dataBlock = '<table border="0" cellpadding="0" cellspacing="0" align="center">\n'
	 dataBlock += '<thead>\n';
	 dataBlock += '<tr>\n';
	 dataBlock += '<td colspan="7" class="navContainer">';
	 dataBlock += '<table class="navigation" border="0" cellpadding="0" cellspacing="0"><tr>';
	 dataBlock += '<td valign="top" align="left"><div class="goPrev"><a href="#prev">&lt;&laquo;</a></div></td>';
	 dataBlock += '<td valign="top" align="left"><div class="titleBox">' + months[month].toLowerCase() + ' ' + year + '</div></td>';
	 dataBlock += '<td valign="top" align="left"><div class="goNext"><a href="#next">&raquo;&gt;</a></div></td>';
	 dataBlock += '</tr></table>';
	 dataBlock += '<table class="days">\n';
	 dataBlock += '<tr>\n';

	 for (i = 0; i < 7; i++)
	 	dataBlock	+= '<td valign="top" align="left"> ' + days[i].substr(0, 7) + '</td>\n';

	 dataBlock += '</tr>\n';
	 dataBlock += '</table>\n';
	 dataBlock += '</thead>\n';
	 dataBlock += '<tbody>\n';

	 for(var i = 1; i <= 42; i++)
	 {
	 var extras = '';
	 if(i % 7 == 0) { extras = ' boxEnd'; }
	 	if (i >= date_start && date <= date_end)
	 	{
		dateString	= year + '-' + month + '-' + date;
			if(checkForDate(year,monthsnr[month],date,hashmark) == "true") {
				columns.push('<td class="dateBox active' + extras + '" valign="top" align=left" style="background-color: white; background-image: url(\'/bilder/dates/active/' + date + '.gif\'); background-position: top left;"><div class="text">' + returnDailyData(year,monthsnr[month],date,hashmark) + '</div></td>\n');
			} else {
				columns.push('<td class="dateBox' + extras + '" valign="top" align=left" style="background-color: white; background-image: url(\'/bilder/dates/off/' + date + '.gif\'); background-position: top left;"><div class="text">&nbsp;</div></td>\n');
			}
		date++;
	 	} else {
		columns.push('<td class="' + extras + '" style="background: white;"><div class="text">&nbsp;</div></td>\n');
	 	}

	 	if (columns.length == 7)
	 	{
			dataBlock += '<tr>' + columns.join('') + '</tr>\n';
			columns  = new Array();
	 	}
	 }
	 dataBlock += '</tbody>\n';
	 dataBlock += '</table>\n';
	 return dataBlock;
	}
function LoadUp(year, month) {
	if(location.hash == '' || location.hash == undefined) { location.hash = 0; }
	$('div.calendar').html(MonthList(year, month, location.hash));
	$('.goPrev').css({ 'cursor': 'pointer' }).bind('click', function() {
		newmonth = month - 1;
		if(newmonth < 0)
			{ LoadUp(  year -1 , (11)); }
		else
			{ LoadUp( year , (newmonth)); }
		});
	$('.goNext').css({ 'cursor': 'pointer' }).bind('click', function() {
		newmonth = month + 1;
		if(newmonth > 11)
			{ LoadUp( (year + 1), (0)); }
		else
			{ LoadUp( year, (newmonth)); }
		});
	var img_checkpoint;
	$('.dateBox').bind('mouseover', function() {
			var image = $(this).css('background-image');
			if(image.match(/active/))
				{
					img_checkpoint = true;
					image = image.replace('active','on');
				}
				else
				{ image = image.replace('off','on'); }
			$(this).css({'background-image': image, 'color': 'white'});
		}).bind('mouseout', function() {
			var image = $(this).css('background-image');
			if(img_checkpoint == true)
				{
					image = image.replace('on','active');
					img_checkpoint = false;
				}
				else {
					image = image.replace('on','off');
				}
			$(this).css({'background-image': image, 'color': '#0084BD'});
		});
	$('td.active p').bind('click', function() {
			activeid = $(this).attr('rel')
			var posX = eval($(document).width() / 2 - $('#eventsBox').width() / 2) + 73;
			$('#eventsBox div.text').load('/eventLoader.asp?lid=' + activeid);
			$('#eventsBox').css({ top: '140px', left:  posX + 'px'}).show();
		}).css({ 'cursor': 'pointer' }).bind('mouseover', function() {
			$(this).css({ 'textDecoration': 'underline' });
		}).bind('mouseout', function() {
			$(this).css({ 'textDecoration': 'none' });
		});
		$('#eventsBox div.left').bind('click',function() {
			activeid = dates.previnCollection(activeid);
			$('#eventsBox div.text').load('/eventLoader.asp?lid=' + activeid);
			}).css({ 'cursor': 'pointer' });
		$('#eventsBox div.right').bind('click',function() {
			activeid = dates.nextinCollection(activeid);
			$('#eventsBox div.text').load('/eventLoader.asp?lid=' + activeid);
			}).css({ 'cursor': 'pointer' });
		
		$('#eventsBox div.close').bind('click',function() {
			$('#eventsBox').hide();
			}).css({ 'cursor': 'pointer' });
	}
$(function() {
	LoadUp((new Date().getFullYear()), (new Date().getMonth()));
	//alert(new Date().getFullYear());
	$('.showLink').bind('click', function() {
		switch($(this).attr('id')) {
			case "showAll":
				location.hash = '0';
			break;
			case "showRed":
				location.hash = '1';
			break;
			case "showOrange":
				location.hash = '2';
			break;
			case "showYellow":
				location.hash = '3';
			break;
			case "showGreen":
				location.hash = '4';
			break;
			case "showLBlue":
				location.hash = '5';
			break;
			case "showBlue":
				location.hash = '6';
			break;
			case "showBlack":
				location.hash = '7';
			break;
		}
		LoadUp((new Date().getFullYear()), (new Date().getMonth()));
		return false;
	});
});