menuZ=100;
function urlencode (str) {
    str = (str + '').toString();
    return encodeURIComponent(str).replace(/!/g, '%21').replace(/'/g, '%27').replace(/\(/g, '%28').
    replace(/\)/g, '%29').replace(/\*/g, '%2A').replace(/%20/g, '+');
}


Carousel=new Class({
	Implements:Options,
	options:{
		cssProperty:'opacity',
		cssPropertyStart:1,
		cssPropertyFinish:0,
		transitionDuration:1000,
		transitionDelay:5000
	},
	initialize:function(elements, options){
		this.setOptions(options);
		this.elements=elements;
		this.numSlides=elements.length;
		this.reorder();
		return this;
	},
	start:function(){
		this.step.delay(this.options.transitionDelay, this);
	},
	reorder:function(){
		for(var i=0; i<this.elements.length; i++){
			el=this.elements[i];
			el.setStyle('z-index', this.numSlides-i);
			el.setStyle(this.options.cssProperty, this.options.cssPropertyStart);
		}
	},
	step:function(){
		this.reorder();
		new Fx.Tween(this.elements[0], {
				carousel:this,
				duration:this.options.transitionDuration,
				onComplete:function(){
					var c=this.options.carousel;
					var deadElement=c.elements.shift();
					//console.log("remove "+deadElement.id+" and push to bottom");
					c.elements.push(deadElement);
					//console.log("bottom element is now "+c.elements[c.elements.length-1].id+", top element is "+c.elements[0].id);
					c.step.delay(c.options.transitionDelay, c);
				}
			}).start(this.options.cssProperty, [this.options.cssPropertyStart, this.options.cssPropertyFinish]);
	}
});
window.printable=false;
window.addEvent('keydown', function(e){
	e=new Event(e);
	if(e.shift){
		window.printable=true;
	}
});
window.addEvent('keyup', function(e){
	e=new Event(e);
	window.printable=false;
});


window.addEvent('load', function(){
	$$('ul#main-menu li, div#sub-menu ul li').each(function(el){
		el.addEvent('mouseenter', function(){
			this.addClass('hover');
			if(this.getElement('ul')){
				$$('ul#main-menu li').each(function(element){
					element.setStyle('z-index', 0);
				});
				menuZ++;
				this.getElement('ul').setStyles({
					display: 'block',
					zIndex:menuZ
				});
			}
		});
		el.addEvent('mouseleave', function(){
			this.removeClass('hover');
			if(this.getElements('ul')){
				this.getElements('ul').each(function(el){
					el.setStyle('display', 'none');
				});
			}
		});
	});
	$$('.gallery-link').each(function(el){
		el.store('image', el.get('href'));
		el.store('caption', el.get('title')?el.get('title'):'');
		el.set('href', 'javascript:void(0)');
		
		el.addEvent('click', function(){
			cover=new Element('DIV');
			cover.setStyles({
				position:'absolute',
				left:0,
				top:0,
				width:'100%',
				height:$(document.body).getScrollHeight(),
				opacity:.8,
				backgroundColor:'#01472b',
				zIndex:900
			})
			cover.addEvent('click', function(){
				closeImage();
			});
			cover.injectInside(document.body);
			th=$(this);
			imageHolder=new Element('DIV');
			imageHolder.setStyles({
				position:'absolute',
				left:'50%',
				width:50,
				height:50,
				marginLeft:-30,
				backgroundColor:'#FFFFFF',
				border:'solid 1px #999999',
				padding:10,
				paddingBottom:20,
				top:20,
				zIndex:99999,
				backgroundImage:'url(/static/images/framework/loader.gif)',
				backgroundRepeat:'no-repeat',
				backgroundPosition:'center'
			});
			imageHolder.morph=new Fx.Morph(imageHolder, {onComplete:function(){
				new Fx.Tween(galleryImage).start('opacity', 1);
			}});
			imageHolder.set('html', '<div style="background-color:#FFF; padding-top:5px; padding-bottom:5px; color:#333; font-family:arial; font-weight:bold; position:absolute; width:100%; left:0px; bottom:0px; text-align:center">'+this.retrieve('caption')+'</div><a href="javascript:closeImage()" style="font-size:14px; font-family:arial,helvetica;position:absolute;right:20px;top:20px">Close</a>');
			imageHolder.injectInside(document.body);
			galleryImage=new Element('IMG');
			galleryImage.setStyle('opacity', 0);
			galleryImage.src=th.retrieve('image');
			galleryImage.onload=function(){
				var e=$(this);
				var w=e.getWidth();
				var m=0-parseInt(w/2);
				imageHolder.morph.start({
					width:w,
					height:e.getHeight(),
					marginLeft:m
				});
			}
			galleryImage.inject(imageHolder, 'top');
		});
	});

	if($$('.carousel-pic').length>0){
		carousel=new Carousel($$('.carousel-pic'));
		carousel.start();
		$$('#flash-container a').each(function(el){
			el.store('slider', new Fx.Tween(el.getElement('img.slider'), {link:'cancel'}));
			el.addEvent('mouseover', function(){
				$(this).retrieve('slider').start('top', -325);
			});
			el.addEvent('mouseout', function(){
				$(this).retrieve('slider').start('top', 0);
			});

		});
	}

	$$('table.printable-table').each(function(el){
		el.addEvent('mouseenter', function(e){
			if(window.printable){
				var t=$(this);
				t.setStyles({
					border:'solid 1px #CCC',
					margin:'-1px',
					backgroundColor:'#EEEEEE',
					backgroundColor:'rgba(240,240,240,.5)'
				});
				t.store('print', new Element('INPUT'));
				var pr=t.retrieve('print');
				pr.type='button';
				pr.value='Print';
				pr.set('id', 'print-button');
				pr.injectInside(t);
				pr.setStyles({
					position:'absolute',
					width:50,
					right:10,
					top:t.getPosition().y-$('body').getPosition().y+10
				});
				pr.addEvent('click', function(){
					pr.dispose();
					content="<table cellpadding=\"10\" cellspacing=\"0\" style=\"width:100%\">"+t.get('html')+"</table>";
					window.location.href="/print-list?content="+urlencode(content);
				});
			}
		});

		el.addEvent('mouseleave', function(){
			var t=$(this);
			t.setStyles({
				border:'0px',
				margin:'0px',
				backgroundColor:'transparent'
			});
			var pr=t.retrieve('print');
			$(pr).dispose();
		});
	});
});

function closeImage(){
	new Fx.Tween(imageHolder, {onComplete:function(){
		galleryImage.dispose();
		imageHolder.dispose();
		cover.dispose();
	}}).start('opacity', 0);
}

function cleanPrintTable(){
	alert("HI");
}
