
var fade = {
	elements: [],
	current: 0,
	fx: null,
	periodical: null,
	options: {
		fx: {duration: 750, wait: false},
		periodical: 5000
	}
};
var classifieds = {};
var timeline = null;
var timelineUrl = '';

window.addEvent('domready', function() {
	if ($('forum_body')) {
		$ES('.forum_post_body', 'forum_body').each(function(el) {
			el.getPrevious().addEvent('click', function(e) {
				e = new Event(e).stop();
				el.toggleClass('hide');
			});
		});
	}
	
	var body = $E('body');
	if (Cookie.get('fontSize')) {
		body.setStyle('font-size', Cookie.get('fontSize') + 'px');
	}
	$('fontSmall').addEvent('click', function(e) {
		e = new Event(e).stop();
		body.setStyle('font-size', '12px');
		Cookie.set('fontSize', '12', {path: '/'});
	});
	$('fontMed').addEvent('click', function(e) {
		e = new Event(e).stop();
		body.setStyle('font-size', '14px');
		Cookie.set('fontSize', '14', {path: '/'});
	});
	$('fontBig').addEvent('click', function(e) {
		e = new Event(e).stop();
		body.setStyle('font-size', '16px');
		Cookie.set('fontSize', '16', {path: '/'});
	});
	
	if ($('field')) {
		fade.elements = $ES('.field', 'field');
		fade.elements.each(function(el, index) {
			var styles = {
				display: 'block',
				opacity: 1
			};
			if (index) { styles.opacity = 0 }
			el.setStyles(styles);
			var containerHeight = $('field').getCoordinates().height;
			var elementHeight = el.getCoordinates().height;
			if (elementHeight > containerHeight) {
				$('field').setStyle('height', elementHeight + 'px');
			}
		});
		if (fade.elements[1]) {
			fade.periodical = function() {
				var next = fade.current + 1;
				if (!fade.elements[next]) { next = 0; }
				if (!fade.fx) { fade.fx = new Fx.Style(fade.elements[fade.current], 'opacity', fade.options.fx); }
				fade.fx.start(0);
				fade.fx = new Fx.Style(fade.elements[next], 'opacity', fade.options.fx).start(1);
				fade.current = next;
			}.periodical(fade.options.periodical);
		}
	}
	if ($('classifiedsBrowse')) {
		classifieds = {
			offset: 0,
			xhr: new Json.Remote(
				'/modules/Jobs/action.ajax.php?action=browse',
				{
					method: 'get',
					autoCancel: true,
					onComplete: function(response) {
						if (!response.length) { classifieds.offset -= 2; }
						else {
							$('classifieds0').empty();
							$('classifieds1').empty();
							response.each(function(obj, index) {
								var td = $('classifieds' + index);
								html = '<a href="' + obj.url + '">' + obj.title + '</a><br />';
								html += '<p>' + obj.summary + '</p>';
								td.setHTML(html);
							});
						}
					}	
				}
			),
			browse: function(method) {
				switch (method) {
					case 'prev':
					if (classifieds.offset) { classifieds.offset -= 2; }
					break;
					
					case 'next':
					classifieds.offset += 2;
					break;
					
					default:
					classifieds.offset = 0;
				}
				$('classifieds0').setHTML('טוען...');
				$('classifieds1').empty();
				classifieds.xhr.send({to: 'prev', offset: classifieds.offset});
			}
		}
		$('classifiedsPrev').addEvent('click', classifieds.browse.pass('prev'));
		$('classifiedsNext').addEvent('click', classifieds.browse.pass('next'));
		classifieds.browse();
	}
	
	if ($('timeline')) {
	    var eventSource = new Timeline.DefaultEventSource();
	    var bandInfos = createBandInfos(eventSource);
	    timeline = Timeline.create($('timeline'), bandInfos);
	    Timeline.loadXML("/sadot/events.php?cat="+timelineUrl, function(xml, url) { eventSource.loadXML(xml, url); });
	}
	
	if ($('prof_select')) {
		var prof_select = $('prof_select');
		var exp_select = $('exp_select');
		var selectedOptions = $ES('option', exp_select).filter(function(option) { return option.selected; });
		var selectedExps = selectedOptions.map(function(option) { return option.getProperty('value'); });
		exp_select.empty();
		prof_select.addEvent('change', function() {
			exp_select.setProperty('disabled', 'disabled');
			var selectedOptions = $ES('option', this).filter(function(option) { return option.selected; });
			var selectedProfs = selectedOptions.map(function(option) { return option.getProperty('value'); });
			var xhr = new Json.Remote(
				'/modules/FrontEndUsers/action.ajax.php?action=getexp',
				{
					autoCancel: true,
					onComplete: function(response) {
						exp_select.empty();
						response.exps.each(function(exp) {
							var attributes = {value: exp.exp_id}
							if (selectedExps && selectedExps.indexOf(exp.exp_id) != -1) { attributes.selected = 'selected'; }
							var option = new Element('option', attributes).setText(exp.name).inject(exp_select);
						});
						selectedExps = null;
						exp_select.removeProperty('disabled');
					}
				}
			).send({profs: selectedProfs});
		});
		prof_select.fireEvent('change');
	}
});