/* This script and many more are available free online at
The JavaScript Source :: http://javascript.internet.com
Created by: Philip Myers :: http://virtualipod.tripod.com/bookmark.html */

function bookmark(url,title){
  if ((navigator.appName == "Microsoft Internet Explorer") && (parseInt(navigator.appVersion) >= 4)) {
  window.external.AddFavorite(url,title);
  } else if (navigator.appName == "Netscape") {
    window.sidebar.addPanel(title,url,"");
  } else {
    alert("Press CTRL-D (Netscape) or CTRL-T (Opera) to bookmark");
  }
}



/*	---------------------------------------------------------------------------
	CLASS:		Menu();
	AUTHOR:		Ryan J. Salva
	REVISED:	December 2007

	Creates a drop-down menu for navigation. Also Corrects Windows IE support 
	for LI:hover and adds an <IFRAME> behind drop-down menus to keep the 
	menu above <select> elements.
*/

var Menu = new Class({
	Implements: Options,
	options: {
		iframe: true,
		onComplete: Class.empty,
		onStart: Class.empty
	},
	initialize: function(el,options){
		this.el = $(el);
		if (!$defined(this.el)) return false;
		this.setOptions(options);
		
		this.el.getElements('li').each(function(li,index) {
			li.setStyle('zIndex',1000-index);
			li.addEvent('mouseenter',function() {
				this.addClass('hover');
			});
			li.addEvent('mouseleave',function() {
				this.removeClass('hover');
			});
		});
		if (this.options.iframe) this.addIframe();
	},
	addIframe: function() {
		this.el.getElements('ul').each(function(ul,index) {
			var coord = ul.getCoordinates();
			var iframe = new Element('iframe',{'src':'about:blank','styles':{
				'overflow':'hidden',
				'border':0,
				'width': coord.width,
				'height': coord.height,
				'left': 0,
				'top': 0,
				'zIndex': -10,
				'opacity': 0,
				'position':'absolute'
			}});
			iframe.inject(ul);
			ul.setStyle('z-index',99);
		});
	}
});



/*	---------------------------------------------------------------------------
	CLASS:		Marquee()
	OPTIONS:	speed			the speed of the animation in milliseconds (default:20)
				pauseOnOver		boolean value to stop animation on mouse over (default:true)
	AUTHOR:		Ryan J. Salva, ryan@capitolmedia.com

	ABOUT:		Creates a single line marquee for scrolling text
*/

var Marquee = new Class({
	Implements: [Events, Options],
	options: {
		speed: 25,
		pauseOnOver: true,
		onStart: $empty,
		onUpdate: $empty
	},
	initialize: function(element, options) {
		this.container = $(element);
		this.el = this.container.clone({'contents':'true'});
		this.el.erase('style');
		this.el.erase('class');
		this.el.setStyles({
			'position':'absolute',
			'top':0,
			'left':this.pos,
			'white-space':'nowrap'
		});
		this.container.setStyle('position','relative');
		this.container.empty();
		this.pos = this.container.getSize().x;
		this.container.adopt(this.el);

		if (this.options.pauseOnOver) {
			this.container.addEvents({
				'mouseenter' : function(e){
					this.stop();
				}.bind(this),
				'mouseleave' : function(e){
					this.start();
				}.bind(this)
			});
		}
		this.start();

	},
	start: function() {
		this.timer = this.update.periodical(this.options.speed, this);
	},
	stop: function(){
		$clear(this.timer);
	},
	update: function(){
		this.pos--;
		
		if (-this.pos > this.el.getCoordinates().width) this.pos = this.container.getSize().x;
		this.el.setStyle('left',this.pos);
	}
});