var initGalleryScroll = function() {
	var list = $('maincontrolimg');

	var moveScroll = new Fx.Scroll(list, {
		wait: false,
		duration: 3000,
		transition: Fx.Transitions.Quad.easeInOut
	});
      
	$E('a', 'leftcontrolimg').addEvents({
		'click': function(e) {
	            	new Event(e).stop();
	            },
	    'mousedown': function(e) {
	            	new Event(e).stop();
	            	moveScroll.toLeft();
	            },
	    'mouseup': function(e) {
	            	new Event(e).stop();
	            	moveScroll.stop();
	            }
	});
      
	$E('a', 'rightcontrolimg').addEvents({
		'click': function(e) {
	            	new Event(e).stop();
	            },
	    'mousedown': function(e) {
	            	new Event(e).stop();
	            	moveScroll.toRight();
	            },
	    'mouseup': function(e) {
	            	new Event(e).stop();
	            	moveScroll.stop();
	            }
	});
}
            
var initAdvancedBlock = function() {
	if($$('.aToggler a').length > 0) {
		$$('.aToggler a').each(function(link) {
			link.addEvent('click', function(e) {
				new Event(e).stop();
			});
		});
	
		new Accordion('.aToggler a', '.aContainer', {
			opacity: true,
			onActive: function(toggler, element){
				toggler.blur();
			},
			
			onBackground: function(toggler, element){
				toggler.blur();
			}
		});
	}
}

var toggleEvent = function(toHide, toShow) {
	toHide.setStyle('display', 'none');
	toHide.setStyle('visibility', 'hidden');

	toShow.setStyle('visibility', 'visible');
	toShow.setStyle('display', '');
		
	return toShow;
}

var toggleEditDelete = function(evt) {
	if($('delEvent')) {
		$$('#delEvent', '#modEvent').setStyle('display', 'none');
		$$('#delEvent', '#modEvent').setStyle('visibility', 'hidden');
		
		var evtId = evt.getProperty('class').split(' ')[1];
		
		if(evtId && evtId.length > 0) {
			$('delEvent').href = $('delEvent').href.replace(/(\/)(\d+)$/g, '$1') + evtId;
			$('modEvent').href = $('modEvent').href.replace(/(\/)(\d+)$/g, '$1') + evtId;
	
			$$('#delEvent', '#modEvent').setStyle('visibility', 'visible');
			$$('#delEvent', '#modEvent').setStyle('display', '');
		}
		else {
			$('delEvent').href = $('delEvent').href.replace(/(\/)(\d+)$/g, '/');
			$('modEvent').href = $('modEvent').href.replace(/(\/)(\d+)$/g, '/');
		}
	}
}

var initEventList = function() {
	if($$('.navEvent').length > 0) {
		var prevEvent = false;
		var totalCount = 0;
		
		if($('delEvent')) {
			$$('#delEvent', '#modEvent').addEvent('click', function(e) {
				new Event(e).stop();
				
				new Ajax(this.href, {
					method: 'get',
					update: 'eventList',
					onComplete: function(resp) {
						$('selectSmiley').addEvent('click', function(e) {
							new Event(e).stop();
							MOOdalBox.open(this.href, '', '930 570');
						});
						
						$('eventSubmit').addEvent('click', function(e) {
							new Event(e).stop();
							
							$('editEvent').send({
								update: 'eventList',
								onComplete: function(resp) { 
									initEventList();
									initEventForm();
								} 
							});
						});
					} 
				}).request();
			});
		}
		
		$$('.eventInfo').each(function(infoElem, i) {
			if(i != 0) {
				infoElem.setStyle('display', 'none');
				infoElem.setStyle('visibility', 'hidden');
			}
			else {
				prevEvent = infoElem;
				$('eventStatus').setText(infoElem.getProperty('title'));
				toggleEditDelete(infoElem);
			}
			totalCount++;
		});
	
		$('eventCount').setText('1/' + totalCount);
	
		$$('.navEvent').each(function(eventNav) {
			eventNav.addEvent('click', function(e) {
				new Event(e).stop();
				
				var id = eventNav.getProperty('id');
				
				var cPos = $$('.eventInfo').indexOf($('info_' + id)) + 1;							
				$('eventCount').setText(cPos + '/' + totalCount);
				$('eventStatus').setText($('info_' + id).getProperty('title'));
				
				prevEvent = toggleEvent(prevEvent, $('info_' + id));
				toggleEditDelete($('info_' + id));
				
				if(eventNav.hasClass('back')) {
					if(pEvent = $('info_' + id).getPrevious()) {
						if(pEvent.hasClass('eventInfo')) {
							eventNav.setProperty('id', pEvent.getProperty('id').replace("info_", "", "gi"));
						}
					}
				
					if(nEvent = $('info_' + id).getNext()) {
						if(nEvent.hasClass('eventInfo')) {
							eventNav.getNext().setProperty('id', nEvent.getProperty('id').replace("info_", "", "gi"));
						}
					}		
				}
					
				if(eventNav.hasClass('forward')) {
					if(nEvent = $('info_' + id).getNext()) {
						if(nEvent.hasClass('eventInfo')) {
							eventNav.setProperty('id', nEvent.getProperty('id').replace("info_", "", "gi"));
						}
					}
				
					if(pEvent = $('info_' + id).getPrevious()) {
						if(pEvent.hasClass('eventInfo')) {
							eventNav.getPrevious().setProperty('id', pEvent.getProperty('id').replace("info_", "", "gi"));
						}
					}
				}
			});
		});
	}
}

var initEventForm = function() {
	if($('newEvent')) {
		$('newEvent').addEvent('click', function(e) {
			new Event(e).stop();
			
			var formClone = $('addEvent').clone();
			
			$('eventList').empty();
			$('eventList').adopt(formClone);
			
			formClone.setStyle('visibility', 'visible');
			formClone.setStyle('display', '');
			
			$('selectSmiley').addEvent('click', function(e) {
				new Event(e).stop();
				MOOdalBox.open(this.href, '', '930 570');
			});
			
			$('eventSubmit').addEvent('click', function(e) {
				new Event(e).stop();
				
				formClone.send({
					update: 'eventList',
					onComplete: function(resp) { 
						initEventList();
						initEventForm();
					} 
				});
			});
		});
	}
}

var getDayEvents = function(days) {
	days.each(function(day) {
		day.addEvent('click', function(e) {
			new Event(e).stop();

			days.each(function(d) { d.removeClass('today'); });
			day.addClass('today');

			new Ajax(day.getProperty('ref'), {
				update: 'eventList',
				data: 'day=' + day.getProperty('date'),
				onComplete: function(resp) {
					initEventList();
					initEventForm();
				}
			}).request();
		});
	});
}

var changeWeek = function(links) {
	links.each(function(link) {
		link.addEvent('click', function(e) {
			new Event(e).stop();
			
			new Ajax(link.href, {
				update: 'events',
				onComplete: function(resp) {
					changeWeek($$('.navCalendar'));
					getDayEvents($$('.eventHead ul li'));
					initEventList();
					initEventForm();
				}
			}).request();
		});
	});
}
