document.observe('dom:loaded', function() {
	if ($('newsletter')) {
		$('newsletter').observe('focus', function(e) {
			var el = e.element();
			if (el.defaultValue == el.value)
				el.value = '';
		});
		$('newsletter').observe('blur', function(e) {
			var el = e.element();
			if (el.value == '')
				el.value = el.defaultValue;
		});
	}

	if ($F('current_page') == 'schema') {
		//$('current_page').value = 'schema-' + $F('weeks_of_month');
		scheduleSetup();
	}

	$$('a[rel=external]').each(function (e, index) {
		e.onclick = function() {
			window.open($(e).readAttribute('href'));
			return false;
		}
	});
	$$('a[rel=booking]').each(function (e, index) {
		e.onclick = function() {
			return confirm('Är du säker på att du vill avanmäla?\nFör att anmäla dig igen går du till schemasidan.');
		}
	});
});

function checkJs() {
	return 2;
}

function updateEventInfo(event_id) {
	$('eventinfo').hide();
	$('redananmald').hide();

	var params = { id: event_id, ajax: 1 };

	new Ajax.Request('/eventinfo', {
		method: 'post',
		parameters: params,
		onComplete: function (transport) {
			var obj = transport.responseJSON;

			if (obj.id) {

				$('highlighted_event').value = obj.id;

				var timespan = obj.whendate + ' - ' + obj.whenend;
				var bookingspan = $('theinfo').down('.bookings');

				if (obj.bookings >= obj.max_bookings) {
					$(bookingspan).removeClassName('green');
					$(bookingspan).addClassName('red');
					$('eventbook').hide();
				} else {
					$(bookingspan).removeClassName('red');
					$(bookingspan).addClassName('green');
					$('eventbook').show();
				}
				
				if(!obj.bookable) {
					$('eventbook').hide();
				}

				// visa om man är anmäld, ta reda på om, via json
				if (obj.anmald) {
					$('redananmald').show();
					$('eventbook').hide();
				}

				$('theinfo').down('h4').update(obj.name);
				$('theinfo').down('abbr').update(timespan);
				$('theinfo').down('p').update(obj.description+'<br>'+obj.meddelande);
				$('theinfo').down('.bookings').update(obj.bookings);
				$('theinfo').down('.maxbookings').update(obj.max_bookings);
				
				if(obj.bookings == 0 && obj.max_bookings == 0)
					$('theinfo').down('div').hide();
				else
					$('theinfo').down('div').show();
				
				$('eventinfo').show();
			}

		}
	});

}

function getContent(page) {
	if ($F('current_page') != page) {
		var params = { ajax: 1 };
		new Ajax.Request('/' + page, {
			method: 'post',
			parameters: params,
			onComplete: function (transport) {
				//var i = new Image('/img/top-' + page + '.jpg');
				$('yoga').setStyle({ backgroundImage: 'url(/img/top-' + page + '.jpg)' });
				$('content').innerHTML = transport.responseText;
				//$('yoga').morph('background-image: url(/img/top-' + page + '.jpg);');
				$('current_page').value = page;

				if (page == 'schema') {
					scheduleSetup();
				}
			}
		});
	}
}

function scheduleSetup() {
	$('schema').select('td').each(function (e, index) {
		if (!$(e).hasClassName('empty'))
			$(e).observe('mouseover', scheduleInfo);
	});

	$('closeinfo') && $('closeinfo').observe('click', function(e) { $('eventinfo').hide(); });
	$('eventbook') && $('eventbook').observe('click', function(e) {
		var num_bookings = parseInt($('theinfo').down('.bookings').innerHTML);
		var max_bookings = parseInt($('theinfo').down('.maxbookings').innerHTML);

		if (num_bookings < max_bookings) {
			// registrera anmälan

			var params = {
				event_id: $('highlighted_event').value,
				ajax: 1
			};
			
			new Ajax.Request('/anmal', {
				method: 'post',
				parameters: params,
				onComplete: function (transport) {
					var obj = transport.responseJSON;

					if (obj.notmember) {
						document.location.href = '/registrera';
					} else {
						if (obj.error) {
							alert(obj.error);
						} else {
							updateEventInfo($('highlighted_event').value);
						}
					}
				}
			});
		}
	});

	$('schema').select('a').each(function (e, index) {
		e.onclick = function() {
			var event_id = $(e).readAttribute('id').split(/_/)[1];

			var offset = $(e).positionedOffset();
			var x = offset.left + 10;
			var y = offset.top - 75;

			$('eventinfo').setStyle({top: y + 'px', left: x + 'px'});

			updateEventInfo(event_id);

			return false;
		}

	});
}

function scheduleInfo(event) {
	return;

	var el = event.element();

	if (!$(el).down('span'))
		return;

	var day = $(el).down('span').innerHTML;
	var params = { date: day, ajax: 1 };

	new Ajax.Request('/dayinfo', {
		method: 'post',
		parameters: params,
		onComplete: function (transport) {
			var obj = transport.responseJSON;

			$('schedinfo').update('');

			if (obj.length > 0) {
				$('schedinfo').insert(new Element('h3').update(obj[0].whendate.split(/ /)[0]));
				
				for (i = 0; i < obj.length; i++) {
					//$('schedinfo').update(obj[i].name);
					var timespan = obj[i].whendate.split(/ /)[1] + " - " + obj[i].whenend.split(/ /)[1];
					$('schedinfo').insert(new Element('p').update(obj[i].name));
					$('schedinfo').insert(new Element('span').update(timespan));
				}
			}
		}
	});
}

// funktion för att sätta "default-texter" i inputs och textareas...
function setDefault(element, text) {
	element.className = 'defaulttext';
	element.value = text;
	
	element.onfocus = function() {
		if (element.value == text) {
			element.className = 'unset-defaulttext'
			element.value = '';
		}
	};
	
	element.onblur = function() {
		if (element.value == '') {
			element.className = 'defaulttext'
			element.value = text;
		}
	};
}