var emailPattern = /^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i;

document.observe('dom:loaded', function(e) {
		if ($('font-size-small') && $('font-size-medium') && $('font-size-large')) {
			$('font-size-small').observe('click', changeFontSize);
			$('font-size-medium').observe('click', changeFontSize);
			$('font-size-large').observe('click', changeFontSize);
		}
		
		var lbr_select = $$('.tx-lbrselect-pi1 .content-header')[0];
		var lbr_select_list = $('lbr-select-list');
		
		if (lbr_select && lbr_select_list) {
			if (readCookie('lbr_list') == 'on') {
				lbr_select_list.show();
			} else {
				lbr_select_list.hide();
			}

			lbr_select.observe('click', function(e) {
					if ($('lbr-select-list').visible()) {
						eraseCookie('lbr_list');
					} else {
						createCookie('lbr_list', 'on');
					}
					
					Effect.toggle('lbr-select-list', 'blind', {duration: 0.2});
				}
			);
		}

		// Clear login form fields when clicked
		var login_email = $('login-email');
		var login_password = $('login-password');
		
		if (login_email && login_password) {
			login_email.observe('focus', function(e) {
					var element = e.element();

					element.value = '';
					element.stopObserving();
				}
			);
			
			login_password.observe('focus', function(e) {
					var element = e.element();

					element.value = '';
					element.stopObserving();
				}
			);
		}
		
		var searchInput = $('search-input');
		
		if (searchInput) {
			searchInput.observe('focus', function(e) {
					var element = e.element();

					element.value = '';
					element.stopObserving();
				}
			);
		}
		
		var typeOne = $('tx-hsslcalendar-type-1');	// One-day activity
		var typeTwo = $('tx-hsslcalendar-type-2');	// Multiple-days activity

		if (typeOne && typeTwo) {
			typeOne.observe('click', function(e) {
					var activityStop = $$('.tx-hsslcalendar-stop')[0].hide();
				}
			);

			typeTwo.observe('click', function(e) {
					var activityStop = $$('.tx-hsslcalendar-stop')[0].show();
				}
			);
		}
		
		var commentform = $('commentform');

		if (commentform) {
			commentform.observe('submit', function(e) {
					var author = $('author');
					var email = $('email');
					var comment = $('comment');

					if (!author.value || !email.value || comment.value.length < 3) {
						alert('Du måste fylla i alla fälten!');
						e.stop();
						return;
					}

					if (!emailPattern.test(email.value)) {
						alert('E-postadressen är inte giltig!');
						e.stop();
						return;
					}
				}
			);
		}
		
		var printLinks = $$('a[name = "print-link"]');
		
		if (printLinks) {
			printLinks.each(function(s) {
					s.observe('click', function(e) {
							var link = e.findElement('a');

							window.open(link, "HSSLPrint", "status = 1, height = 600, width = 510, scrollbars = 1");
							e.stop();
						}
					);
				}
			);
		}
		
		var firstSearchTabSwitch = $$('#search-tab-first a[rel = "switch-tab"]')[0];
		var secondSearchTabSwitch = $$('#search-tab-second a[rel = "switch-tab"]')[0];
		var thirdSearchTabSwitch = $$('#search-tab-third a[rel = "switch-tab"]')[0];
		
		if (firstSearchTabSwitch && secondSearchTabSwitch && thirdSearchTabSwitch) {
			firstSearchTabSwitch.observe('click', function(e) {
					$('search-results-first').show();
					$('search-results-second').hide();
					$('search-results-third').hide();

					$('search-tab-first').addClassName('active');
					$('search-tab-second').removeClassName('active');
					$('search-tab-third').removeClassName('active');
					e.stop();
				}
			);
			
			secondSearchTabSwitch.observe('click', function(e) {
					$('search-results-first').hide();
					$('search-results-second').show();
					$('search-results-third').hide();

					$('search-tab-first').removeClassName('active');
					$('search-tab-second').addClassName('active');
					$('search-tab-third').removeClassName('active');
					e.stop();
				}
			);
			
			thirdSearchTabSwitch.observe('click', function(e) {
					$('search-results-first').hide();
					$('search-results-second').hide();
					$('search-results-third').show();

					$('search-tab-first').removeClassName('active');
					$('search-tab-second').removeClassName('active');
					$('search-tab-third').addClassName('active');
					e.stop();
				}
			);
		}
	}
);

function changeFontSize(e) {
	var element = e.element();
	
	switch (element.id) {
		case 'font-size-small':
			$('body').setStyle('font-size: 1.0em;');

			var headers = $$('.header-black, .header-yellow, .header-red');
			
			headers.each(function(s) {
					s.addClassName('header-small');
					s.removeClassName('header-medium');
					s.removeClassName('header-large');
				}
			);
			break;
		case 'font-size-medium':
			$('body').setStyle('font-size: 1.25em;');
			
			var headers = $$('.header-black, .header-yellow, .header-red');
			
			headers.each(function(s) {
					s.removeClassName('header-small');
					s.addClassName('header-medium');
					s.removeClassName('header-large');
				}
			);
			break;
		case 'font-size-large':
			$('body').setStyle('font-size: 1.40em;');
			
			var headers = $$('.header-black, .header-yellow, .header-red');
			
			headers.each(function(s) {
					s.removeClassName('header-small');
					s.removeClassName('header-medium');
					s.addClassName('header-large');
				}
			);
			break;
	}
	
	e.stop();
}

function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}
