var animate_event = navigator.appVersion.match(/msie[ ]?6/i) ? "load" : "domready";

window.addEvent(animate_event,function () 
{
	// initialization settings
		var num_of_images = 6;
		var num_of_messages = 3;
		var	animation_length = 750;
		var animation_length2 = 1000;
		var	animation_delay = 2500;
		var	fade_out_length = 1500;
		var	cycle_delay = 250;

		var end_pos = 130;

		Browser.Engine.chrome = Browser.Engine.webkit && navigator.userAgent.match(/chrome/i);

		//document.title = Browser.Engine.version + ", " + navigator.userAgent;

	// dynamic settings/storage vars
		var images = [], messages = [], image_titles = [], message_links = [], message_titles = [];

		var current_image = 0;
		var current_message = 0;

		var fx_img = [], fx_message = [];

		var k;

	// set titles
		k = 0;
		image_titles[k++] = "Glove box Security Latch, developed for the new Vauxhall Astra (15 working days lead time)";
		image_titles[k++] = "Electrical Monitoring Case";
		image_titles[k++] = "Switch Assembly";
		image_titles[k++] = "Hand Held Unit";
		image_titles[k++] = "6 Way Base";
		image_titles[k++] = "Adaptor Frame";

		k = 0;
		message_titles[k++] = "Rapid Turnaround: plastic parts in as little as 5 working days with no compromise on quality";//...";
		message_titles[k++] = "Quality Tooling: we can join forces with you at any stage of the project from component design to moulded parts";//...";
		message_titles[k++] = "The part you want: multi component projects can be processed in 10 working days deep rib, sharp corners, spark finishes, inserts";//...";


	// function to cache all the images we'll need
		var CacheImages = function () 
		{
			for (var i = 0; i < num_of_images || i < num_of_messages; i++)
			{
				if (i < num_of_images)
				{
					images[i] = new Image();
					images[i].src = "images/animation/image" + (i + 1) + ".png";
				}

				if (i < num_of_messages)
				{
					messages[i] = new Image();
					messages[i].src = "images/animation/msg" + (i + 1) + ".png";

					// set link
						message_links[i] = "?go=" + (i + 1);
				}		
			}		

		}

	// function to actually do the animation
		var DoAnimation = function () 
		{
			if (images[current_image] && messages[current_message])
			{
				// add message

					// get or create new DIV
						var wrapper_animate_msg = $("wrapper_animate_msg" + current_message);

						if (!wrapper_animate_msg)
						{
							wrapper_animate_msg = new Element("div", { "id" : "wrapper_animate_msg" + current_message, "class" : "animate_msg" } );
							wrapper_animate_msg.inject($("wrapper_banner"));
						}

					// clear div
						wrapper_animate_msg.innerHTML = "";

					// add image
						if (!Browser.Engine.trident)
							var img = new Element("img", { "src" : messages[current_message].src, "width" : "350", "height" : "200", "title" : message_titles[current_message] } );
						else
						{
							var img = new Element("img", { "src" : "images/b.gif", "width" : "350", "height" : "200", "title" : message_titles[current_message] } );
							img.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + messages[current_message].src + "', sizingMethod='crop')";
						}

img.setStyle("cursor", "default");

						img.addEvent("click",function (e) 
						{
e.stop();return;
							window.location.href = message_links[current_message];
						});

						img.inject(wrapper_animate_msg);

				// add image

					// get or create new DIV
						var wrapper_animate_image = $("wrapper_animate_image" + current_image);

						if (!wrapper_animate_image)
						{
							wrapper_animate_image = new Element("div", { "id" : "wrapper_animate_image" + current_image, "class" : "animate_image" } );
							wrapper_animate_image.inject($("wrapper_banner"));
						}

					// clear div
						wrapper_animate_image.innerHTML = "";

					// add image
						if (!Browser.Engine.trident)
							var img = new Element("img", { "src" : images[current_image].src, "width" : "350", "height" : "200", "title" : image_titles[current_image] } );
						else
						{
							var img = new Element("img", { "src" : "images/b.gif", "width" : "350", "height" : "200", "title" : image_titles[current_image] } );
							img.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + images[current_image].src + "', sizingMethod='crop')";
						}

						img.inject(wrapper_animate_image);


				// style image/message containers
					var banner_style = {
						"visibility"	: "visible",
						"opacity"		: 0
					};
		
					if (!Browser.Engine.chrome)
					{
						wrapper_animate_msg.setStyles(banner_style);	
						wrapper_animate_image.setStyles(banner_style);
					}
					else
					{
						wrapper_animate_msg.setStyle("visibility", "visible");	
						wrapper_animate_image.setStyle("visibility", "visible");	
					}

					wrapper_animate_msg.setStyle("left", "-350px");
					wrapper_animate_image.setStyle("right", "-350px");

				// create animations

					// create functions to do the secondary animations - the
					// ones that happen after the primary ones have finished

						var fade_style_message = {
							"opacity" : 0						
						};
						
						var fade_style_image = fade_style_message;
					

						if (Browser.Engine.chrome)
						{
							var fade_style_message = {
								"left" : "-400px"						
							};

							var fade_style_image = {
								"right" : "-400px"						
							};

							fade_out_length = 500;
						}
						

						// fade out message animation (secondary animation)
							var message_fade_out = function (obj) 
							{
								var fx_message = new Fx.Morph(
							
									obj,
									{
										duration: fade_out_length,
										transition: Fx.Transitions.Sine.easeOut,
										onComplete: function (obj)
										{
											// if we have more than one image and message then go through them
												current_message = (current_message + 1) % num_of_messages;
												current_image = (current_image + 1) % num_of_images;
												DoAnimation.delay(cycle_delay);

												if (Browser.Engine.trident) obj.destroy();
										}
									}

								).start(fade_style_message);							
							}
							
						
						// fade out image animation (secondary animation)
							var image_fade_out = function (obj) 
							{
								var fx_image = new Fx.Morph(
							
									obj,
									{
										duration: fade_out_length,
										transition: Fx.Transitions.Sine.easeOut,
										onComplete: function (obj)
										{
											// ^^ assume the other animation will always start another one off ^^

											if (Browser.Engine.trident) obj.destroy();
										}
									}

								).start(fade_style_image);							
							}


					// create primary animations
						var fx_message = new Fx.Morph(
							
							wrapper_animate_msg,

							{
								duration: animation_length,
								transition: Fx.Transitions.Sine.easeOut,
								onComplete: function (obj)
								{
									new Fx.Morph(
										
										obj,

										{
											duration: animation_length2,
											transition: Fx.Transitions.Sine.easeOut,
											onComplete: function (obj)
											{
												if (num_of_messages > 1 && num_of_images > 1) message_fade_out.delay(animation_delay, this, obj);
											}
										}

									).start({"left" : (end_pos + 20) + "px"});
								}
							}

						);

						var fx_img = new Fx.Morph(
							
							wrapper_animate_image,

							{
								duration: animation_length,
								transition: Fx.Transitions.Sine.easeOut,
								onComplete: function (obj)
								{
									new Fx.Morph(
										
										obj,
										{
											duration: animation_length2,
											transition: Fx.Transitions.Sine.easeOut,
											onComplete: function (obj)
											{
												if (num_of_messages > 1 && num_of_images > 1) image_fade_out.delay(animation_delay, this, obj);								
											}
										}

									).start({"right" : (end_pos + 20) + "px"});
								}
							}

						);


				// animate baby yeah (primary animations)!
					fx_message.start(
					{
						"opacity"		: 1,
						"left"			: end_pos + "px"
					});

					fx_img.start(
					{
						"opacity"		: 1,
						"right"			: end_pos + "px"
					});

			}
	
			else
				DoAnimation.delay(500); // try again quick in case its cached by now
		}



	// set container to visible
		$("wrapper_banner").setStyle("display", "block");
		
	// reveal container

		// firefox on the mac doesn't work with the bounce down
			if (Browser.Engine.gecko && !Browser.Platform.win)
			{
				$("wrapper_banner").setStyle("height", "212px");
				CacheImages.delay(1);
				DoAnimation();
			}
		// else animate container div dropping down and then fire off main animation script
			else
			{
				var fx = new Fx.Morph($("wrapper_banner"),
					{
						duration: 800,
						transition: Fx.Transitions.Sine.easeOut,
						onComplete: function (obj)
						{
							CacheImages.delay(1);
							DoAnimation();
						}
					}
				).start(
				{
					'height' : "212px"
				});
			}
});
