selectedCalendarDays = [];

klandeface = {
	'appId': _KLANDELIB_FACEBOOK_APPID_,
	'onLoaded': function() {
		$('.facebookconnect').click(function() {
			FB.login(function(response) {
			}, {
				perms: 'friends_birthday'
			});
		});
	},
	'onLogin': function(r) {
		fetchFacebookData();
		fetchCalendarEvents()
	},
	'onLogout': function(r) {
	}
};

function fetchFacebookData() {
	FB.getLoginStatus(function(response) {
		if (response.session) {
			if (response.perms) {
				response.perms = eval('(' + response.perms + ')');
				if (response.perms.friends) {
					for (var i in response.perms.friends) {
						perm = response.perms.friends[i];

						if (perm == 'friends_birthday') {
							var query = FB.Data.query('SELECT uid, birthday_date FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me())')
							query.wait(function(rows) {
							});
						}

					}
				}
			}
		}
	});
}

function fetchCalendarEvents() {
	$.ajax({
		async: true,
		data: {
			'action': 'calendarEvents',
			'month' : month,
			'year': year
		},
		dataType: 'json',
		success: function(data) {
			if (data.error == '') {
				calendarEvents = data;
				renderCalendarContent();
			}
		},
		error: function(data) {
			setTimeout("fetchCalendarEvents()", 2000);
		},
		type: 'POST',
		url: '/klajax.php'

	});
	$.ajax({
		async: true,
		data: {
			'action': 'loadSelectedCalendarDays'
		},
		dataType: 'json',
		success: function(data) {
			selectedCalendarDays = data.days
		},
		error: function(data) {
		},
		type: 'POST',
		url: '/klajax.php'

	});
}

function populateDay(year, month, day, element) {

	if ((todayyear > year) || ((todayyear == year) && (todaymonth > month)) || ((todayyear == year) && (todaymonth == month) && (todayday > day))) {
		$(element).fadeTo(0, 0.25);
	} else {
		$(element).fadeTo(0, 1);
	}
	if ((todayyear == year) && (todaymonth == month) && (todayday == day)) {
		$('div.today', element).css('display', 'block');
	} else {
		$('div.today', element).css('display', 'none');
	}

	bg = '';
	$events = $('div.events', element);
	$events.html('<ul><li class="notice"><input type="checkbox" id="day-' + year + '-' + month + '-' + day + '" /> Påminn mig!</li></ul>');

	$ul = $('ul', $events);
	if (calendarEvents[month]) {
		if (calendarEvents[month][day]) {
			for (var i in calendarEvents[month][day]) {
				e = calendarEvents[month][day][i];
				if (e.type) {
					if (e.type == 'holiday') {
						$ul.append('<li><div><img src="' + e.icon + '" /></div><span>' + e.copy + '</span><span class="link"><a href="' + e.link + '" target="_blank">' + e.linkcopy + '</a></span><input type="checkbox" /></li>');
						if (e.hogtid == 1) {
							if (bg == '') bg = '/images/calendarday-holiday-bg.png';
						} else {
							if (bg == '') bg = '/images/calendarday-other-bg.png';
						}
					} else if (e.type == 'birthday') {
						var name = e.copy.split(' ')[0];
						var extracopy = '';
						if (name.charAt(name.length - 1) != 's') {
							extracopy = 's';
						}
						extracopy = extracopy + ' födelsedag';
						$ul.append('<li><div><img src="' + e.icon + '" /></div><span>' + name + '<span class="extracopy">' + extracopy + '</span></span><span class="link"><a href="http://www.posten.se/m/riktigavykort" target="_blank">Skicka grattiskort</a></span><input type="checkbox" /></li>');
						if (bg == '') bg = '/images/calendarday-birthday-bg.png';
					} else if (e.type == 'namnsdag') {
						var name = e.copy.split(' ')[0];
						var extracopy = '';
						if (name.charAt(name.length - 1) != 's') {
							extracopy = 's';
						}
						extracopy = extracopy + ' namnsdag';
						$ul.append('<li><div><img src="' + e.icon + '" /></div><span>' + name + '<span class="extracopy">' + extracopy + '</span></span><span class="link"><a href="http://www.posten.se/m/riktigavykort" target="_blank">Skicka grattiskort</a></span><input type="checkbox" /></li>');
						if (bg == '') bg = '/images/calendarday-namnsdag-bg.png';
					}
				}
			}
		}
	}
	counter = 0;
	$('li', $ul).each(function() {
		if (!$(this).hasClass('notice')) {
			if (counter > 1) $(this).css('display', 'none');
			counter++;
		}
	});
	if (bg == '') bg = '/images/calendarday-bg.png';
	$(element).css('background-image', 'url("' + bg + '")');

}

function renderCalendarContent() {

	$.ajax({
		async: true,
		data: {
			'action': 'datesInfo',
			'month' : month,
			'year': year
		},
		dataType: 'json',
		success: function(data) {

			nextmonth = data.nextmonth;
			nextyear = data.nextyear;
			prevmonth = data.prevmonth;
			prevyear = data.prevyear;

			todayyear = data.todayyear;
			todaymonth = data.todaymonth;
			todayday = data.todayday;

			$('#calendarmonth h2').html(data.monthcopy + ' ' + data.year);
			$('#calendarprevmonth').html(data.prevmonthcopy);
			$('#calendarnextmonth').html(data.nextmonthcopy);

			var dow = 1;
			var week = 1;
			for (var day = data.daysprevmonth - (data.firstdaysweekday - 2); day <= data.daysprevmonth; day++) {
				$('div.week' + week + '.day' + dow).each(function() {
					$('span.number', this).html(day);
					populateDay(prevyear, prevmonth, day, this);

				});

				dow++;
			}
			for (var day = 1; day <= data.daysthismonth; day++) {

				$('div.week' + week + '.day' + dow).each(function() {
					$('span.number', this).html(day);
					populateDay(data.year, data.month, day, this);

				});

				dow++;
				if (dow == 8) {
					dow = 1;
					week++;
				}

			}
			day = 1;
			while (week < 6) {
				
				$('div.week' + week + '.day' + dow).each(function() {
					$('span.number', this).html(day);
					populateDay(nextyear, nextmonth, day, this);
				});

				day++;
				dow++;
				if (dow == 8) {
					dow = 1;
					week++;
				}
			}
		},
		error: function(data) {
			setTimeout("renderCalendarContent()", 2000);
		},
		type: 'POST',
		url: '/klajax.php'

	});
}

function trackFlashEvent(event, label) {
	_gaq.push(['_trackEvent', 'Monogram', event, label]);
}

function calendarHover() {
	calendarHoverActive = true;
	calendarActiveHoverDay = calendarHoverDay;
	$('#calendarhover').fadeOut(100, function() {
		$('#calendarhovercontent').html($('div.events', calendarHoverDay).html());

		$('input', $('#calendarhovercontent')).each(function() {
				
			for (i in selectedCalendarDays) {
				if (selectedCalendarDays[i] == $(this).attr('id')) $(this).attr('checked', true);
			}

		}).change(function() {
			if ($(this).is(':checked')) {
				selectedCalendarDays.push($(this).attr('id'));
			} else {
				tmpSCD = selectedCalendarDays;
				selectedCalendarDays = [];
				for (i in tmpSCD) {
					if (tmpSCD[i] != $(this).attr('id')) selectedCalendarDays.push(tmpSCD[i]);
				}
			}
			$.ajax({
				async: true,
				data: {
					'action': 'saveSelectedCalendarDays',
					'days': selectedCalendarDays,
					'email': $('#calendaremail').val()
				},
				dataType: 'html',
				success: function(data) {
				},
				error: function(data) {
				},
				type: 'POST',
				url: '/klajax.php'

			});
		});


		if ($('li', $('#calendarhovercontent')).css('display', 'block').length > 1) {
			$(this).css({
				'margin': (parseInt($(calendarHoverDay).css('margin-top')) + 130) + 'px 0px 0px ' + (parseInt($(calendarHoverDay).css('margin-left')) + 23) + 'px'
			}).fadeIn(100);
		} else {
			calendarHoverActive = false;
		}
	});
}

function loadCampaign(campaign) {
	var getvars = '';
	$('#firstpage').each(function() {
		// Skicka med en GET-variabel om detta är förstasidan.
		getvars = '?firstpage=';
	});
	$('div#bigcampaignarea .campaignareacontent').html('<iframe src="/campaigns/' + campaign + '.php' + getvars + '#' + encodeURIComponent(document.location.href) + '" />');
}

$(document).ready(function() {

	// IFRAME CROSS-COMMUNICATION
			
	$.receiveMessage(function(e){
		var h = Number(e.data.replace(/.*height=(\d+).*/, '$1'));
		var w = Number(e.data.replace(/.*width=(\d+).*/, '$1'));
		if ((!isNaN(h)) && (!isNaN(w))) {
			if (!isNaN(h)) $('div#bigcampaignarea .campaignareacontent iframe').height(h);
			if (!isNaN(w)) $('div#bigcampaignarea .campaignareacontent iframe').width(w);
			$('div#bigcampaignarea').css('display', 'block');
		}
	});


	// INITIALIZE FACEBOOK STUFF

	window.fbAsyncInit = function() {
		FB.init({
			appId: 0,
			session: 0, // don't refetch the session when PHP already has it
			status: true, // check login status
			cookie: true, // enable cookies to allow the server to access the session
			xfbml: true // parse XFBML
		});
	};
	$('#fb-root').append($('<script src="http://connect.facebook.net/en_US/all.js"></' + 'script>'));


	// TABS

	$('.tab').hover(function() {
		$(this).addClass('active').siblings('.tab').removeClass('active');
	});

	// TOPMENU

	$('#topmenu ul li').hover(function() {
		$(this).addClass('active');
	}, function() {
		$(this).removeClass('active');
	});
	$('#topmenudropdown select').change(function() {
		if ($(this).val() != '') document.location.href = $(this).val();
	});

	// CALENDAR

	month = 0;
	year = 0;
	prevmonth = 0;
	prevyear = 0;
	nextmonth = 0;
	nextyear = 0;

	$('#calendar').each(function() {
		fetchCalendarEvents();
		renderCalendarContent();
		$('.calendarprevmonth').click(function() {
			month = prevmonth;
			year = prevyear;
			$('#calendarhover').hide();
			renderCalendarContent();
		});
		$('.calendarnextmonth').click(function() {
			month = nextmonth;
			year = nextyear;
			$('#calendarhover').hide();
			renderCalendarContent();
		});

		calendarHoverTimeout = setTimeout("dummy0 = 0;", 1);
		calendarHoverActive = false;
		$('.calendarday').hover(function() {
			if (calendarHoverActive == false) {
				calendarHoverDay = this;
				clearTimeout(calendarHoverTimeout);
				calendarHoverTimeout = setTimeout("calendarHover();", 250);
			} else {
				if (this != calendarActiveHoverDay) {
					calendarHoverDay = this;
					clearTimeout(calendarHoverTimeout);
					calendarHoverTimeout = setTimeout("calendarHover();", 250);
				}
			}
		}, function() {
			clearTimeout(calendarHoverTimeout);
		}).click(function() {
			calendarHoverDay = this;
			clearTimeout(calendarHoverTimeout);
			calendarHover();
		});

		$('div#calendarinstructions div.closebutton input').click(function() {
				$('#calendarinstructionswrapper').hide();
		});

		defaultInputTxt = 'Din e-postadress';
		if ($('#calendaremail').val() == '') $('#calendaremail').val(defaultInputTxt);
		$('#calendaremail').focus(function() {
			if ($(this).val() == defaultInputTxt) {
				$('#calendaremail').val('');
			}
		}).blur(function() {
			if ($(this).val() == '') {
				$('#calendaremail').val(defaultInputTxt);
			}
		});
		$('#calendaremailsave').click(function() {
			$.ajax({
				async: true,
				data: {
					'action': 'saveEmail',
					'email': $('#calendaremail').val()
				},
				dataType: 'html',
				success: function(data) {
				},
				error: function(data) {
				},
				type: 'POST',
				url: '/klajax.php'

			});
		});

		$('div.dontshow input').click(function() {
			if ($(this).is(':checked')) {
				$.cookie('dontshowcalendarinfobox', 1);
			} else {
				$.cookie('dontshowcalendarinfobox', 0);
			}
		});

	});

	if ($.cookie('dontshowcalendarinfobox') != 1) {
		$('#calendarinstructionswrapper').show();
	}

	// TOPMENU CALENDAR

	function setCalendarPuffBild() {
		$('#descriptionimage').each(function() {

			/*
			var d = threeDaysDay;
			var m = threeDaysMonth;
			*/
			var d = oneDaysDay;
			var m = oneDaysMonth;
			var p = [];
			var tested = 0;
			while ((p.length < 2) && (tested < 365)) {

				if (typeof(calendarEvents[m][d]) != 'undefined') {
					for (i in calendarEvents[m][d]) {
						if (calendarEvents[m][d][i].type == 'birthday') {
							p.push(calendarEvents[m][d][i]);
						}
					}
				}
				
				tested++;
				d++;
				if (typeof(calendarEvents[m][d]) == 'undefined') {
					d = 1;
					m++;
				}
				if (typeof(calendarEvents[m]) == 'undefined') {
					d = 1;
					m = 1;
				}
			}

			if (p.length < 2) {
				$('img', this).attr('src', $('#topmenucalendar span.active img').attr('src'));
			} else {
				$('img', this).css('display', 'none');
				$('#description-calendarpuff', this).css('display', 'inline-block');
				$('#description-calendarpuff img', this).css('display', 'block');
				$('#description-calendarpuff img.first', this).attr('src', p[0]['icon']);
				$('#description-calendarpuff img.second', this).attr('src', p[1]['icon']);
				for (i = 0; i <= 1; i++) {
					if (p[i].type == 'birthday') {
						var copy = p[i].copy;
						if (copy.charAt(copy.length - 1) != 's') {
							copy = copy + 's';
						}
						copy = copy + ' födelsedag';
						var link = 'Skicka grattiskort';
						var linkhref = 'http://www.posten.se/m/riktigavykort';
					}
					if (i == 0) {
						$('#description-calendarpuff span.first.copy').html(copy);
						$('#description-calendarpuff span.first.link').html('<a href="' + linkhref+ '">' + link + '</a>');
					}
					if (i == 1) {
						$('#description-calendarpuff span.second.copy').html(copy);
						$('#description-calendarpuff span.second.link').html('<a href="' + linkhref+ '">' + link + '</a>');
					}
				}
			}

		});
	}
	$('#description-calendarpuff').click(function() {
		document.location.href="/kalender/";
	});
	setCalendarPuffBild();

	$('#topmenuarrowleft').css('cursor', 'pointer').click(function() {
		$prev = $('#topmenucalendar span.active').prev('span');
		if ($prev.length == 1) {
			$('#topmenucalendar span.active').removeClass('active');
			$prev.addClass('active');
		}
		setCalendarPuffBild();
	});
	$('#topmenuarrowright').css('cursor', 'pointer').click(function() {
		$next = $('#topmenucalendar span.active').next('span');
		if ($next.length == 1) {
			$('#topmenucalendar span.active').removeClass('active');
			$next.addClass('active');
		}
		setCalendarPuffBild();
	});

	// FIRSTPAGE

	$('#firstpage').each(function() {
		$('#hemmenu').addClass('current');
		loadCampaign('kartkort');
	});

	// PYSSELLIST

	$('#pufflist').each(function() {

		if ($(this).hasClass('skrivtips')) {
			$('#skrivtipsmenu').addClass('current');
		} else {
			$('#pysselmenu').addClass('current');
		}

		$('#pufflist ul ul li').hover(function() {
			$('img.hover', this).css('display', 'inline').siblings().css('display', 'none');
		}, function() {
			$('img.hover', this).css('display', 'none').siblings().css('display', 'inline');
		});
		$('#pysselcategory').change(function() {
			document.location.href = '/pyssel/' + $(this).val();
		});

	});

	// PYSSEL

	pysselPage = 0;
	$('#pyssel').each(function() {

		$('#pysselmenu').addClass('current');

		if ($('div#pysselimage img').length > 1) {
			$('div#pysselimage img').css('cursor', 'pointer').click(function() {
				$('#pyssel .page' + pysselPage).hide();
				pysselPage++;
				if ($(this).siblings('.page' + pysselPage).length == 0) {
					pysselPage = 0;
				}
				$('#pyssel .page' + pysselPage).show();
			});
		}

		$('#pysselsocialbox li.comment').css('cursor', 'pointer').click(function() {
			$('#pysselcomments').show();
		});
		$('#pysselsocialbox li.share').css('cursor', 'pointer').click(function() {

			FB.login(function(r) {

				FB.ui({
					method: 'stream.publish',
					message: "",
					attachment: {
						name: "Glädjespridaren",
						caption: '',
						description: "Glädjespridaren.",
						href: document.location.href,
						media: [{
							type: 'image', 
							src: $($('#pysselimage img')[0]).attr('src'),
							href: 'http://www.facebook.com/SCA?sk=app_108960425850536'
						}]
					}
				},
				function(response) {
				});


			}, {
				'perms': 'publish_stream'
			});

		});
	});

	// SKRIVTIPS

	$('#skrivpuffcategory').change(function() {
		document.location.href = '/skrivtips/' + $(this).val();
	});
	$('#skrivtips').each(function() {
		$('#skrivtipsmenu').addClass('current');

		$('ul li', this).css('cursor', 'pointer').hover(function() {
			$(this).addClass('active');
		}, function() {
			$(this).removeClass('active');
		}).click(function() {
			var index = $(this).index();
			$(this).addClass('current').siblings('li').removeClass('current');
			$($('#skrivtipsrightpanel div')[index]).addClass('current').siblings('div').removeClass('current');
		});

	});

	// KAMPANJER

	$('#kampanjlist').each(function() {
		$('#nyskapandehalsningarmenu').addClass('current');
		$('#kampanjer').change(function() {
			document.location.href = '/kampanj/' + $(this).val();
		});
	});

});



