/**
 * SMS scroller, utilizes LoopScroller. <3
 */
var Tooltips = null;
window.addEvent('domready', function() {
	
	var smsbar = new LoopScroller('smsbar', {
		delay: 4000,
		fxOptions: {
			duration: 1000
		}
	});
	
	if ($('selectall')) {
		$('selectall').addEvent('click', function(e) {
			new Event(e).stop();
			this.set('checked', (this.get('checked') ? false : true));
			$$('.checkbox').each(function(el) {
				el.set('checked', (el.get('checked') ? false : true));
			});
		});
	}
	
	if ($$('.prive_selectall').length) {
		$$('.prive_selectall').each(function(el) {
			var select = el.getProperty('id');
			el.addEvent('click', function(e) {
				new Event(e).stop();
				var items = $('content').getElements('input[name^='+select+']');
				items.each(function(el) {
					el.set('checked', (el.get('checked') ? false : true));
				});
			});
		});
	}
	
	var elementsWithTips = $$('.ytTips,.pbTips,.helpTips');
	if (elementsWithTips.length) {
		Tooltips = new Tips(elementsWithTips);
	} else {
		Tooltips = new Tips();
	}
	Tooltips.addEvents({
		'show': function(tip) { tip.fade(0.9);   },
		'hide': function(tip) { tip.fade('out'); }
	});
	
});
/**
 * Add roar queue.
 */
var queue = null;
window.addEvent('domready', function() {
	queue = new Roar({'position': 'bottomRight'});
});
/**
 * Reload or redirect to url.
 */
function reload(value) {
	if ($type(value) == 'string') {
		window.location.href = value;
	}	else {
		if (value) {
			window.location.reload(true);
		} else {
			window.location.reload(false);
		}
	}
}
/**
 * Change calendar month displayed.
 */
function change_month(month) {
	var array = month.split("-");
	Cookie.write('calendar_month', array[0]);
	Cookie.write('calendar_year', array[1]);
	reload(true);
}
/**
 * Which birthdays to show.
 */
function birthday_option(type) {
	Cookie.write('birthday_type', type);
	reload(true);
}
/**
 * Silly confirmation dialog with redirect.
 */
function zekerweten(text, url) {
	if (confirm(text)) {
		reload(url);
	}
}
/**
 * Generate text preview (with UBB).
 */
function preview(txtarea, target, context) {
	var $text = escape($(txtarea).getProperty('value'));
	var $target = $(target);
	var $context = $(context);
	var ajax = new Request.HTML({
		'url': '/ajax/ajaxMain.php',
		'encoding': 'iso-8859-1',
		'data': 'sPage=preview&text='+$text,
		'update': $target,
		'onSuccess': function() {
			$context.setStyle('display', 'block');
		}
	}).send();
}
/**
 * Hide first el and show second.
 */
function showhide(hide, show) {
	$(hide).setStyle('display', 'none');
	$(show).setStyle('display', 'block');
}
/**
 * Add an identical field to a form.
 */
function addField(target, inject) {
	if ($(target) && $(inject)) {
		var $copy = $(target).clone();
		$copy.erase('display');
		$copy.setProperty('id', 'new_el');
		$copy.inject($(inject), 'before');
	}
}
/**
 * Display block level element.
 */
function display_el(el) {
	$(el).setStyle('display', 'block');
}
function hide_el(el) {
	$(el).setStyle('display', 'none');
}
function toggle_el(el, other_el) {
	var el = $(el);
	if (el) {
		var el2 = $(other_el);
		if (el.getStyle('display') == 'none') {
			if (el2) hide_el(el2);
			display_el(el);
		} else {
			if (el2) show_el(el2);
			hide_el(el);
		}
	}
}
/**
 * Hide block items which have associative cookie set.
 */
window.addEvent('domready', function() {
	var cookieNames = [];
	var $$toggleImages = $('container').getElements('a[id^=a_] img');
	if ($$toggleImages.length) {
		$$toggleImages.each(function($img) {
			if ($img.getParent('a').getParent('div').getParent('div').hasClass('adminBar')) return;
			var shortname = $img.getParent('a').getProperty('id').substring(1);
			var $div = $('d'+shortname);
			if ($div) {
				cookieNames.push(shortname);
				$img.addEvent('click', function(e) {
					new Event(e).stop();
					$('d'+shortname).slide('quick').fireEvent('onToggle');
				});
				$div.addEvent('onToggle', function(e) {
					var display = this.retrieve('slide:flag');
					if (!display) {
						$img.setProperties({'alt': 'Uitklappen', 'src': templateImages+'icons/bullet_toggle_plus.png'});
						Cookie.write(shortname, 1, {'duration': 365, path: '/'});
					} else {
						$img.setProperties({'alt': 'Inklappen', 'src': templateImages+'icons/bullet_toggle_minus.png'});
						if (Cookie.read(shortname)) {
							Cookie.dispose(shortname);
						}
					}
				});
			}
		});
	}
	if (cookieNames.length) {
		cookieNames.each(function(name) {
			if (Cookie.read(name)) {
				$('d'+name).slide('quick').fireEvent('onToggle');
			}
		});
	}
	$('container').getElements('img[class=resize_this_image]').each(function(img) {
		var IE = new Number(Browser.Engines.trident());
		var parent = img.getParent('div');
		var isQuote = img.getParents('fieldset[class=quote]');
		if (isQuote.length) var minus = isQuote.length * 12;
		else if (IE == 4) var minus = isQuote.length * 12;
		else if ($defined($('profilemid'))) var minus = -10;
		else var minus = 5;
		var sizeImage = img.getCoordinates();
		if (IE == 4) img.setStyle('display', 'none');
		var sizeParent = parent.getCoordinates();
		if (sizeImage.width > sizeParent.width) {
			img.setProperty('width', sizeParent.width - 10 - minus);
			img.setProperty('height', Math.ceil((sizeParent.width - 10 - minus) * (sizeImage.height / sizeImage.width)));
		}
		if (IE == 4) img.setStyle('display', 'inline');
	});
});
/**
 * Youtube profiel meuk
 */
function changemovie(id) {
	var ajax = new Request({
		url: '/ajax/ajaxMain.php',
		data: 'sPage=youtubeMovie&movieID='+id,
		onSuccess: function(responseText, responseXML) {
			var el = $('youtube_view');
			el.set('html', responseText);
		},
		onFailure: function(xhr) {
			queue.alert(
				'Error',
				'Youtube filmpje niet gevonden.'
			);
		}
	}).send();
}
function youtubeUp() {
	if ($('profilemovies')) {
		var el_to_show = false;
		var el_to_hide = false;
		var find_first = false;
		var terug = 1;
		var movies = $('profilemovies').getElements('img[id^=youtube]');
		movies.each(function(item) {
			if (item.style.display != 'none') {
				find_first = true;
				el_to_hide = item.id;
			} else if (!find_first)	{
				el_to_show = item.id;
			}
			if (item.id == 'youtube_0' && item.style.display != 'none') {
				queue.alert(
					'Error',
					'Begin van lijst bereikt.'
				);
				terug = 0;
			}
		});
		if (terug == 1) {
			$(el_to_show).style.display = 'inline';
			$(el_to_hide).style.display = 'none';
		}
	}
}
function youtubeDown() {
	if ($('profilemovies')) {
		var el_to_show = false;
		var el_to_hide = false;
		var find_first = false;
		var verder = false;
		var movies = $('profilemovies').getElements('img[id^=youtube]');
		movies.each(function(item) {
			var split = item.id.split('_');
			if (item.style.display != 'none' && !el_to_hide) {
				el_to_hide = item.id;
				find_first = true;
			}
			if (item.id == movies.getLast().id && item.style.display != 'none') {
				queue.alert(
					'Error',
					'Einde van lijst bereikt.'
				);
				verder = 0;
			} else {
				if (item.style.display == 'none' && !el_to_show && find_first) el_to_show = item.id;
				verder = 1;
			}
		});
		if (verder == 1) {
			$(el_to_show).style.display = 'inline';
			$(el_to_hide).style.display = 'none';
		}
	}
}
function createNewFormElement(inputForm, elementName, elementValue) {
	var newElement = new Element('input', {
		type: 'hidden',
		name: elementName,
		value: elementValue
	});
	inputForm.appendChild(newElement);
	return newElement;
}
function textareaCounter(field, cntfield, maxlimit) {
	if (field.value.length > maxlimit) {
		if ($defined(cntfield)) {
			field.value = field.value.substring(0, maxlimit);
		} else {
			field.value = field.value.substring(0, maxlimit);
			alert('Maximale lengte bereikt.');
		}
	} else {
		if ($defined(cntfield)) {
			$(cntfield).set('text', maxlimit - field.value.length);
		}
	}
}
/**
 * Faq functions
 */
function faq_change_sub(id) {
	var ajax = new Request({
		url: '/ajax/ajaxMain.php',
		data: 'sPage=changeFaq&action=sub&to_id='+id,
		onSuccess: function(responseText, responseXML) {
			$('hoofd_faq').getElements('li').each(function(el){el.setStyle('font-weight', 'normal')});
			$('sub_faq').set('html', responseText);
		}
	}).send();
}
function faq_change_question(id) {
	var ajax = new Request({
		url: '/ajax/ajaxMain.php',
		data: 'sPage=changeFaq&action=question&to_id='+id,
		onSuccess: function(responseText, responseXML) {
			$('sub_faq').getElements('li').each(function(el){el.setStyle('font-weight', 'normal')});
			$('question_'+id).setStyle('font-weight', 'bold');
			$('faq_answer').set('html', responseText);
		}
	}).send();
}
/**
 * Andere meuk
 */
function entsub(myform) {
	if (window.event && window.event.keyCode == 13) myform.submit();
	else return true;
}
function photoalbumChangePage(page) {
	reload('/photos?pageNr='+page);
}
function createNewFormElement(form, ename, value) {
	return new Element('input', {'type': 'hidden', 'name': ename, 'value': value}).inject(form);
}