// JavaScript Document

var UserEvents = new Class({
	initialize: function(){
    },
	addImageMouseOver: function(el, imagesrc) {
		el = $(el);
		if ($defined(el)) {
			var originalImageSrc = el.getElement('img').getProperty('src');
			var newImageSrc = imagesrc;
			new Asset.image(imagesrc, {onload: function() {
				el.addEvent('mouseover', function() {
					this.getElement('img').setProperty('src', newImageSrc);
				});
				el.addEvent('mouseout', function() {
					this.getElement('img').setProperty('src', originalImageSrc);
				});
			}});
		}
	}
});

var MenuList = new Class({
	initialize: function(el, delay, dissolve, offsetTop, offsetLeft, zindex) {
		el = $(el);
		if (!$defined(delay)) delay=200;
		if (!$defined(dissolve)) dissolve=500;
		if (!$defined(offsetTop)) offsetTop=20;
		if (!$defined(offsetLeft)) offsetLeft=5;
		if (!$defined(zindex)) zindex=100;
		if ($defined(el)) {
			el.getElements('ul').each(function(sublist) {
				var id = sublist.getProperty('id');
				if (id.contains('-list')) {
					id = id.substring(0, id.lastIndexOf('-'));
					if ($defined($(id))) {
						var list = $(id);
						var fn;
						// Set events - list
						list.addEvent('mouseover', function() {
							fn = $clear(fn);
							var top = this.getTop().toInt() + offsetTop;
							var left = this.getLeft().toInt() + offsetLeft;
							sublist.setStyles({
								display: 'block',
								position: 'absolute',
								'z-index': zindex,
								top: top,
								left: left,
								opacity: 0
							});
							sublist.effect('opacity',{duration: dissolve}).start(1);
						});
						list.addEvent('mouseout', function() {
							fn = function(){sublist.setStyle('display', 'none');}.delay(delay);
						});
						// Set events - sublist
						sublist.addEvent('mouseover', function() {
							fn = $clear(fn);
							sublist.setStyle('display', 'block');
						});
						sublist.addEvent('mouseout', function() {
							fn = function(){sublist.setStyle('display', 'none');}.delay(delay);
						});
					}
				}
			});
		}
	}
});

var PhotoRotator = new Class({
	initialize: function(el, filepath, delay, duration) {
		if (!$defined(delay)) delay = 5000;
		if (!$defined(duration)) duration = 1000;
		var elID = el;
		el = $(el);
		if ($defined(el)) {
			new XHR({
				method: 'get',
				onSuccess: function(resp, respXML) {
					var masterlist = [];
					$A(respXML.documentElement.childNodes).each(function(child) {
						if (child.nodeType == 1) {
							masterlist.include(child.getAttribute('path'));
						}
					});
					var list = masterlist.copy();
					var init = true;
					var imagesrc; var fn2; var opacity;
					var fn = function() {
						opacity = 0;
						if (init) opacity = 1;
						if (list.length == 0) list = masterlist.copy();
						imagesrc = list.getRandom();
						list.remove(imagesrc);
						new Asset.image(imagesrc,{
							onload: function(image) {
								this.setStyles({
									position: 'absolute',
									top:1, left:1,
									opacity: opacity
								});
								this.injectInside(el);
								if (!init) {
									this.effect('opacity', {duration:duration}).start(1)
								}
								fn2 = function() {
									$ES('img', elID).each(function(img) {
										if (img.getNext() != null) {
											img.remove();
										}
									});
								}.delay(duration);
							}
						});
						init = false;
					};
					fn.delay(0);
					var fnPeriodical = fn.periodical(delay);
					var clearfn = function() {fnPeriodical = $clear(fnPeriodical); }.delay(900000);
				}
			}).send(filepath, null);
		}
	}
});		  