

window.addEvent('domready', function () {
	$(document.body).addEvent('contextmenu', function () {
		alert('All content ' + unescape('%A9') + ' Geyser Ltd.');
		return false;
	});

	if ($('sort-results')) {
		$('sort-results').addEvent('change', function () {
			window.location = this.value;
		});
	}

	if ($('banner')) {
		new CarouselImages($('banner'));
	}

	new CartMenu($('cart-full'), document.getElement('#cart .cart-toggle a'));

	$$('#heatRail li a').each(function (el) {
		el.addEvent('mouseenter', function () {
			$(this).getParent().toggleClass('hover');
		});
		el.addEvent('mouseleave', function () {
			$(this).getParent().toggleClass('hover');
		});
	});

	new RollOverImages();
});

var RollOverImages = new Class({
	initialize: function () {
		var els = [];
		// get all the button images
		els.extend(document.getElements('img[src^=includes/languages/english/images/buttons/button]'));
		els.extend(document.getElements('input[src^=includes/languages/english/images/buttons/button]'));
		els.extend(document.getElements('input[src^=skin/images/addtocart]'));
		els.extend(document.getElements('input[src^=skin/images/print_button]'));
		this.els = els;

		this.preload();
		this.addRollOvers();
	},
	evtOver: function (evt, el) {
		el.set('src', el.retrieve('over'));
	},
	evtOut: function (evt, el) {
		el.set('src', el.retrieve('out'));
	},
	addRollOvers: function () {
		this.els.each(function (el) {
			el.addEvent('mouseenter', this.evtOver.bindWithEvent(this, el));
			el.addEvent('mouseleave', this.evtOut.bindWithEvent(this, el));
		}.bind(this));
	},
	preload: function() {
		this.els.each(function (el) {
			var img = new Image();
			img.src = this.getOverSrc(el.src);
			el.store('over', img.src);
			el.store('out', el.src);
		}.bind(this));
	},
	getOverSrc: function (src) {
		var str = new String(src);
		// remove the last 4 characters (.jpg) and replace with _over.jpg;
		return src.substr(0, src.length - 4) + '_over.jpg';
	}
});

var CartMenu = new Class({
	element: null,
	toggle: null,
	initialize: function (element, toggle) {
		if (!element || !toggle) {
			return
		}
		this.element = element;
		this.toggle = toggle;
		this.initshadows();

		this.toggle.addEvent('click', this.clicked.bind(this));
	},
	hide: function () {
		this.toggle.toggleClass('on');
		this.element.setStyle('display', '');
	},
	show: function (menu) {
		this.toggle.toggleClass('on');
		this.element.setStyle('display', 'block');
	},
	clicked: function (evt) {
		if (evt) {
			evt.stop();
		}
		if (this.element.getStyle('display') == 'block') {
			this.hide();
		}
		else {
			this.show();
		}
	},
	initshadows: function () {
		this.shadows = ['nn', 'ne', 'ee', 'see', 'se', 'ss', 'sw', 'ww'];

		this.isIE6 = /MSIE\s6/.test(navigator.userAgent);
		this.isIE = /MSIE/.test(navigator.userAgent);

		// set the menu to be in position but hidden so that the sizes will be calculated correctly
		this.element.setStyles({
			display: 'block',
			visibility: 'hidden'
		});

		// do the setup required for all browsers
		var s = {};

		this.shadows.each(function (shadow) {
			var e = $(document.createElement('div'));
			e.addClass(shadow.toString());
			this.element.appendChild(e);
			e.size = e.getSize();
			s[shadow] = e;
		}, this);

		var size = this.element.getSize();
		//var offset = {x: 3, y: 4};
		var offset = {x: 2, y: 3};

		s.ee.setStyles({
			height: size.y - s.se.size.y - offset.y
		})
		s.nn.setStyles({
			width: size.x - s.ne.size.x - offset.x
		})
		s.ss.setStyles({
			width: size.x - s.se.size.x - offset.x
		})
		s.ww.setStyles({
			height: size.y - s.sw.size.y
		})

		if (this.isIE6) {
			this.prepForIE6();
		}

		// hide the menu again
		this.element.setStyles({
			display: '',
			visibility: ''
		});
	},
	prepForIE6: function () {
		var regex = /url\(['"](.*)['"]\)/;
		var size = this.element.getSize();

		this.shadows.each(function (shadow) {
			var e = this.element.getElement('.' + shadow);
			if (shadow.substr(0, 1) == 's') {
				e.setStyles({
					bottom: 'auto',
					top: size.y - e.getSize().y - parseInt(e.getStyle('bottom'))
				})
			}
			if (shadow.substr(1, 1) == 'e') {
				e.setStyles({
					right: 'auto',
					left: size.x - e.getSize().x - parseInt(e.getStyle('right'))
				})
			}

			var matches = regex.exec(e.getStyle('backgroundImage'));
			if (matches) {
				e.setStyles({
					background: 'none',
					filter: 'progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod="crop", src="' + matches[1] + '")'
				})
			}
		}, this);
	}
});


var CarouselImages = new Class({
	current: 0,
	images: [],
	links: [],
	options: {
		fadein: 1000,
		fadeout: 250,
		hold: 3000
	},
	animating: false,
	timer: null,
	Implements: Options,
	initialize: function(container, options) {
		this.setOptions(options);

		// get all the images
		this.images = container.getElements('img[id^=carousel-img-]');
		this.links = container.getElements('a[id^=carousel-link-]');

		this.images.each(function (el, i) {
			if (i > 0) {
				el.setStyle('visibility', 'hidden');
			}
		});

		if (this.images.length > 1) {
			window.addEvent('load', function () {
				this.nextImage.delay(this.options.hold, this);
			}.bind(this));
		}

//		this.links.each(function(e, i){
//			e.addEvent('click', function (evt) {
//				Event.stop(evt);
//				this.showImage(i);
//			}.bind(this));
//		}, this);
	},
	nextImage: function () {
		var next = this.current + 1;
		if (next >= this.images.length) {
			next = 0;
		}

		this.showImage(next);
	},
	showImage: function (num) {
		if (this.animating) {
			return;
		}
		$clear(this.timer);
		this.animating = true;
		var fx = new Fx.Tween(this.images[this.current], {
			duration: 'short',
			onComplete: function() {
				var fx2 = new Fx.Tween(this.images[num], {
					duration: 'long',
					onComplete: function () {
						this.current = num;
						this.animating = false;
						this.timer = this.nextImage.delay(this.options.hold, this);
					}.bind(this)
				});
				fx2.start('opacity', 0, 1);
			}.bind(this)
		});
		fx.start('opacity', 1, 0);
	}
})

function popupWindow(url) {
  window.open(url,'popupWindow','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,copyhistory=no,width=650,height=500,screenX=150,screenY=150,top=150,left=150')
}


var selected;

function selectRowEffect(object, buttonSelect) {
  if (!selected) {
    if (document.getElementById) {
      selected = document.getElementById('defaultSelected');
    } else {
      selected = document.all['defaultSelected'];
    }
  }

  if (selected) selected.className = 'moduleRow';
  object.className = 'moduleRowSelected';
  selected = object;

// one button is not an array
  if (document.checkout_payment.payment[0]) {
    document.checkout_payment.payment[buttonSelect].checked=true;
  } else {
    document.checkout_payment.payment.checked=true;
  }
}

function rowOverEffect(object) {
  if (object.className == 'moduleRow') object.className = 'moduleRowOver';
}

function rowOutEffect(object) {
  if (object.className == 'moduleRowOver') object.className = 'moduleRow';
}







//-->
