Template.Pattern = /(^|.|\r|\n)(%\{(.*?)\})/;
function entryOut(id) {
}

function entryOver(id) {
	entry = setParams(id);
	if(entry.hasClassName('hover')) return true;
	if(!entry.overTA) {
		entry.overTA =
		window.setTimeout("executeOver('"+entry.id+"')",200);
		return;
	}
}

function setParams(id) {
	entry = $("entry"+id);
	if(entry.bird) return entry;
	entry.flagImage = $('flagImage'+id);
	entry.flagImage.flag = entry.flag = $("flag"+id);
	entry.bird = $('bird'+ id);
	return entry;
}

function executeOver(my_entry) {
	var oldIE = /MSIE [56]/.test(navigator.userAgent);
	my_entry = $(my_entry);
	var effects = []
	if(!my_entry.hasClassName('active')) {
		my_entry.addClassName('hover');
		if(!oldIE) {
			effects = [
				new Effect.Appear(my_entry.bird,{
						beforeStart: function(eff) {
								eff.element.setOpacity(0);
							},
						duration:0.2,
						sync: true
					}),
				new Effect.Morph(my_entry.flagImage,{
						style: 'width:545px;',
						duration: 1,
						beforeStart: function(eff) {eff.element.flag.show()},
						sync: true,
						transition: Effect.Transitions.linear
				}),
				new Effect.Fade(my_entry.bird,{
						delay:0.9,
						duration:0.1,
						queue: 'end'
				})
			];
		}
	}
	if(my_entry.dimmed) {
		effects.push(
			new Effect.Opacity(my_entry.flagImage,{
				from: 0.5,
				to: 1,
				sync: true
			})
		);
		my_entry.dimmed = false;
	}
	var entries = my_entry.siblings();
	for(var i=0; i<entries.length;i++) {
		var entry = entries[i];
		window.clearTimeout(entry.overTA);
		entry.overTA = false;
		if(entry.flagImage) {
			if(entry.hasClassName('active')) {
				if(!entry.dimmed) {
					effects.push(
						new Effect.Opacity(entry.flagImage,{
							from: 1,
							to: 0.5,
							sync: true
						})
					);
					entry.dimmed = true;
				}
			} else if(entry.hasClassName('hover')) {
				entry.removeClassName('hover');

				effects.push(
					new Effect.Morph(entry.flagImage,{
						style: 'width:0px;',
						sync: true,
						entry: entry,
						afterFinish: function(eff) {
							eff.element.setStyle({width: '0px'});
							var entry = eff.options.entry;
							entry.flag.hide();
							entry.bird.hide();
						}
					})
				);

			}
		}
	}
	if(oldIE) return;
	new Effect.Parallel(effects,{
		afterUpdate: function(eff) {
			var from,to,steps;
			if(typeof(eff.options.top) == "undefined") eff.options.top = 0;
			if(eff.currentFrame == 0) {
				eff.options.delta = 10;
				eff.options.steps = 10;
			} else if(eff.currentFrame == 20) {
				eff.options.delta = 5;
				eff.options.steps = 10;
			} else if(eff.currentFrame == 30) {
				eff.options.delta = 0;
				eff.options.steps = 10;
			} else if(eff.currentFrame == 40) {
				eff.options.delta = -5;
				eff.options.steps = 10;
			} else if(eff.currentFrame == 50) {
				eff.options.delta = -5;
				eff.options.steps = 10;
			} else if(eff.currentFrame == 60) {
				eff.options.delta = 5;
				eff.options.steps = 10;
			} else if(eff.currentFrame == 70) {
				eff.options.delta = 10;
				eff.options.steps = 10;
			} else if(eff.currentFrame == 80) {
				eff.options.delta = 5;
				eff.options.steps = 10;
			} else if(eff.currentFrame == 90) {
				eff.options.delta = 0;
				eff.options.steps = 10;
			}
			eff.options.bird.setStyle({top:eff.options.top + 'px'});
			eff.options.top = eff.options.top + eff.options.delta / eff.options.steps;
//				console.log(eff.options.top);
		},
		bird: my_entry.bird
	});
}
function animationEnd() {
	new Effect.Parallel([
		new Effect.Appear('page'),
		new Effect.Fade('pageAnimation')
		],
		{
		onFinish: function() {
			$('pageAnimation').remove();
		}
	});
}


