/* <![CDATA[ */
window.addEvent('domready',function(){									
	imgstore = new Array();			
	var allBumps = $$('.bumpbox');	
	i=0;
	allBumps.each(function(e){
	var content = e.get('href');
		
		if(content.indexOf(".jpg") != -1 || content.indexOf(".gif") != -1 || content.indexOf(".png") != -1){
			var img = new Element('img');
			img.src = content;	
			img.setStyle('display','none');
			//img.inject(document.body);
		}						   
						   
		if(e.get('href').indexOf('^') == 0){
			var id = e.get('href').replace("^",'');
			$(id).setStyle('display','none');
		}
		e.set('id',i);
		i++;
})

var f = "";
i = 0;

$$('.bumpbox').addEvent('click',function(e){
	e = new Event(e).stop();
	if($('grow') != null){
		$('grow').dispose();
	}
	if(this.get('rev') != null){
		var rev = this.get('rev')
	}
	var content = this.get('href');
	var actualID = this.get('id');
	maxw = 0;
	maxh = 0;
	var title = "";
	
	if(this.get('rel')!= null){
		var tmp = this.get('rel').split("-");	
		maxw = tmp[0];
		maxh = tmp[1];
	}
	
	if(this.get('title') != null){
		title = this.get('title');
	}
	
	if(this.get('href') != null){
		hr = this.get('href');
	}
	
	if(maxw == 0){	maxw = 640;	}
	if(maxh == 0){	maxh = 480;	}
	
		
	if(content.indexOf(".jpg") != -1 || content.indexOf(".gif") != -1 || content.indexOf(".png") != -1){

		img = new Image();
		img.src = content;

                if (!img.complete) {
                    var anch = this;
                    img.onload = function() {
                        anch.fireEvent("click");
                    }
                    return;
                }

		maxw = img.width;
		maxh = img.height;
				
	}
	
	w = window.getSize().x.toInt();
	h = window.getSize().y.toInt();
	s = window.getScrollTop();
	var middleH = (w) / 2;
	var middleV = (h) / 2;
	var endleft = (w-maxw) / 2;
	var endtop = ((h - maxh) / 2) + s;

	var el = new Element('div', {
		 'styles':{
			 width: '1px',
			 height: '1px',
			 position:'absolute',
			 border:'2px solid #fff',
			 padding:'4px',
			 background:'#fff url(ajax-loader.gif) no-repeat center center',
			 left:middleH ,
			 top:middleV,
			 cursor:'pointer',
			 display:'block',
			 'z-index':'100000'
		},
		'id': 'grow'
	})

	$(el).setStyles({
			'-moz-border-radius':'10px',
			'-webkit-border-radius':'10px',
			'border-radius':'10px'
			 });

	var t = window.getScrollTop();
	
	bg = new Element('div',{
	'styles':{
		background:'#3a0b20',
		width:'100%',
		height:'100%',
		opacity:'0.9',
		position:'absolute',
		top: t,
		left: 0
	},
	'id':'bg'
	})
	
	/* bg ie 6 fix */
	if(Browser.Engine.name == 'trident' && Browser.Engine.version == 4){
		var bh = window.getHeight();
		$(bg).setStyle('height',bh);
	}
	
	
	var cl = new Element('img',{
		'styles':{
			width:'24px',
			height:'24px',
			position:'absolute',
			top:'-16px',
			right:'-16px',
			'z-index':'100000'
		},
		'src':'public/closed.png',
		'id':'nycloser'
	})	
	
	cl.addEvent('click',function(e){
		
			bg.dispose();
			
			$(el).getChildren().dispose();
			eff2.start({
			  'width':[maxw,1],
			  'height':[maxh,1],
			  'left': [endleft,middleH],
			  'top':  [endtop, middleV+s]
			 })
	})	
	
	if(Browser.Engine.name != 'trident'){
		window.addEvent('keyup',function(e){
			  
			   if(e.key == 'esc'){
					bg.dispose();
					$(el).getChildren().dispose();
					eff2.start({
					  'width':[maxw,1],
					  'height':[maxh,1],
					  'left': [endleft,middleH],
					  'top':  [endtop, middleV+s]
					 })
			   }
		})
		
	}else{
		document.addEvent('keyup',function(e){
			   if(e.key == 'esc'){
				   bg.dispose();
					$(el).getChildren().dispose();
					eff2.start({
					  'width':[maxw,1],
					  'height':[maxh,1],
					  'left': [endleft,middleH],
					  'top':  [endtop, middleV+s]
					 })
			   }
			  
		})
	}
	
	bg.inject(document.body);
	el.injectInside(document.body);
	cl.injectInside(el);
	
	window.addEvent('scroll',function(){
		$(bg).setStyle('top',window.getScrollTop());
	})	
	
	var eff3 = new Fx.Morph($('grow'), { transition: Fx.Transitions.linear, duration: 1200, wait:'link',onComplete:function(){
		el.dispose();
  	}});
	
	var eff2 = new Fx.Morph($('grow'), { transition: Fx.Transitions.Bounce.easeOut, duration: 1200, wait:'link', onComplete:function(){
		el.dispose();
	}});
		
	var eff = new Fx.Morph($('grow'), { transition: Fx.Transitions.Bounce.easeOut, duration: 1200, wait:'link', onComplete:function(){
		$(el).setStyle('background','#fff');
		
		if($('prev') != null){
			$('prev').setStyle('display','block');
		}
		
		if($('next') != null){
			$('next').setStyle('display','block');
		}
		
		$('grow').setStyle('-moz-box-shadow','3px 3px #fff');
	
		
					  
	if(content.indexOf(".jpg") != -1 || content.indexOf(".gif") != -1 || content.indexOf(".png") != -1){
		 var img = new Element('img');
		 img.src = content;
		 maxw = img.width;
		 maxh = img.height;
		 $(img).inject(el);
	}	
		

		
		else if(content.indexOf('.flv') == -1 && content.indexOf('.mp3') == -1 && content.indexOf(".pdf") == -1 && content.indexOf(".swf") == -1 && content.indexOf(".jpg") == -1 && content.indexOf(".gif") == -1 && content.indexOf(".png") == -1 && content.indexOf("^") == -1){
			
				var p = new Element('div');
				p.setStyle('display','block');
				p.setStyle('overflow','hidden');
				p.setStyle('padding','20px');
				p.setStyle('height',maxh-40);
				p.setStyle('width',maxw-40);
				p.setAttribute('id','htmlframe');
				p.inject(el);
				
				var x = new IFrame();
				x.setStyle('overflow','auto');
				x.set('frameborder','0');
				x.setStyle('width',maxw-40);
				x.setStyle('height',maxh-40);
				x.src = content;
				x.inject(p);
		}
		
		else if(content.indexOf(".pdf") != -1){
		
		var div = new Element('div',{
				'styles':{
					padding:'20px',
					height: maxh-40,
					width:maxw-40
				}
			})
			
			div.inject(el);
			var x = new IFrame();
			x.src = content;
			x.setStyle('width',maxw-40);
			x.setStyle('height',maxh-40);
			x.inject(div);
			
		}
		
		else if(content.indexOf(".swf") != -1){
			var div = new Element('div',{
				'styles':{
					padding:'20px',
					height: maxh-40,
					width:maxw-40
				},
				id: 'swf'
			})
			
		div.inject(el);
			
			var obj = new Swiff(content, {
				id: 'video',
				width: maxw-40,
				height: maxh-40,
				container: div
			})	
		}
		
		else if(content.indexOf(".flv") != -1){
			
			var div = new Element('div',{
				'styles':{
					padding:'20px',
					height: maxh-40,
					width:maxw-40
				}
			})
			
			div.inject(el);
		
			var f =flowplayer(div, "flowplayer.swf", { 
   			 buffering : true,      
			 autoplay: true,
			 clip: content,
			 wmode: 'transparent',
			 id: 'player'
    		});
		}
		
		else if(content.indexOf(".mp3") != -1){
			
			var div = new Element('div',{
				'styles':{
					padding:'20px',
					height: maxh-50,
					width:maxw-40,
					'z-index':'1',
					id:'flowplay'
					
				}
			})
			
			div.inject(el);
		
			 f =flowplayer(div, "flowplayer.swf", { 
			 buffering : true,      
			 autoplay: true,
			 clip: content,
			 wmode: 'transparent',
			 plugins: { 
 	   		 myContent: { 
		 
				url: 'flowplayer.content.swf', 
		 
				bottom: 0, 
				width: maxw-20, 
				left:0,
				borderRadius: 10, 
				html: title, 
				onClick: function() { 
					this.hide(); 
				} 
			 }
			},
			 
			 playlist:[{url:content,autoPlay:true}]
			 
    		});
		}
		
		else if(content.indexOf("^") == 0){
		
			content = content.replace("^","");
			
			var div = new Element('div',{
				'styles':{
					padding:'20px',
					height: 'auto',
					width:'auto',
					color:'#fff',
					overflow:'hidden'
				}
			})
			var c = $(content).get('html');
			div.set('html',c);
			div.inject(el);
		}
		
		if(title != ""){
			var t = new Element('div',{
			'styles':{
				'height':'20px',
				
				'position':'absolute',
				'top':'-41px',
				'left':'20px',
				'color':'#eee',
				'opacity':'0.9',
				'z-index':'10000',
				'background':'#000',
				'-webkit-border-radius':'5px',
				'-moz-border-radius':'5px',
				'-border-radius':'5px',
				'display':'block',
				'padding':'10px',
				'border-top':'2px solid #303132',
				'border-left':'2px solid #303132',
				'border-right':'2px solid #303132'

			}
		})
			t.set('html',title);			
			t.inject(el);
			t.set('id','maindesc');
		}
		
	if(rev != null){

			var x1 = new Element('div',{
			'styles':{
			'width':'auto',
			'height':'20px',
			'position':'absolute',
			'left': '20px',
			'bottom': '-41px',
			'color':'#eee',
			'text-decoration':'none',
			'background':'#000',
			'-webkit-border-radius':'5px',
			'-moz-border-radius':'5px',
			'-border-radius':'5px',
			'display':'block',
			'padding':'10px',
			'border-bottom':'2px solid #303132',
			'border-left':'2px solid #303132',
			'border-right':'2px solid #303132'
			}})
			x1.inject(el);
			x1.set('html', rev);
			x1.set('id','addondesc');
		
	}
	}});

	$(bg).addEvent('click',function(e){
		bg.dispose();
		$(el).getChildren().dispose();									
		eff2.start({
				   
					  'width':[maxw,1],
					  'height':[maxh,1],
					  'left': [endleft,middleH],
					  'top':  [endtop, middleV+s]

					 })
	})
	
	
	var nextID = this.get('id').toInt() +1;
	
	if(allBumps[nextID] != null){
		var middle = (maxh - 30) / 2;
		var nx = new Element('a',{
		  'styles':{
					width:'30px',
					height:'30px',
					background:'url(public/next.png) no-repeat center center',
					position:'absolute',
					right:'-20px',
					bottom: middle,
					'display':'none'
		  },
		  
			  id:'next'
		  
		})
			
		nx.addEvent('click',function(e){
		
		if(Browser.Engine.trident){
			if($('video') != null){
					$('video').stop();
			}
		
			 
			 if($('swf') != null){
				 $('swf').dispose();
		 	 }	
		 }
		 
		 $('bg').dispose();										 
		 $('grow').dispose();
		 
		
		 
		 var nextID = actualID.toInt();
		 nextID+=1;
		 nextID = nextID.toString();
		 $(nextID).fireEvent('click',this);
   	    })
			
				nx.inject(el);
		}
		
		var prevID = this.get('id').toInt() -1;
		
		if(allBumps[prevID] != null){
			var middle = (maxh - 30) / 2;
			var nx2 = new Element('a',{
			  'styles':{
						width:'30px',
						height:'30px',
						background:'url(public/prev.png) no-repeat center center',
						position:'absolute',
						left:'-20px',
						bottom:middle,
						'display':'none'
			  },
				  id:'prev'
			})
			
			nx2.addEvent('click',function(e){
										  
			if(Browser.Engine.trident){
				if($('video') != null){
						$('video').stop();
				}
			
				 
				 if($('swf') != null){
					 $('swf').dispose();
				 }	
		 	}					  
										  
			 $('bg').dispose();										 
			 $('grow').dispose();
			 
			
			 var nextID = actualID.toInt();
			 nextID-=1;
			 nextID = nextID.toString();
			 $(nextID).fireEvent('click',this);
   		    })
			
			nx2.inject(el);
	
		}
	
	eff.start({
		  'width':[1,maxw],
		  'height':[1,maxh],
		  'left': [middleH,endleft],
		  'top':  [middleV+s, endtop]		  
		 })
 	});


});

var Slider = new Class({

	Implements: [Events, Options],

	options: {/*
		onChange: $empty,
		onComplete: $empty,*/
		onTick: function(position){
			if(this.options.snap) position = this.toPosition(this.step);
			this.knob.setStyle(this.property, position);
		},
		snap: false,
		offset: 0,
		range: false,
		wheel: false,
		steps: 100,
		mode: 'horizontal'
	},

	initialize: function(element, knob, options){
		this.setOptions(options);
		this.element = $(element);
		this.knob = $(knob);
		this.previousChange = this.previousEnd = this.step = -1;
		this.element.addEvent('mousedown', this.clickedElement.bind(this));
		if (this.options.wheel) this.element.addEvent('mousewheel', this.scrolledElement.bindWithEvent(this));
		var offset, limit = {}, modifiers = {'x': false, 'y': false};
		switch (this.options.mode){
			case 'vertical':
				this.axis = 'y';
				this.property = 'top';
				offset = 'offsetHeight';
				break;
			case 'horizontal':
				this.axis = 'x';
				this.property = 'left';
				offset = 'offsetWidth';
		}
		this.half = this.knob[offset] / 2;
		this.full = this.element[offset] - this.knob[offset] + (this.options.offset * 2);
		this.min = $chk(this.options.range[0]) ? this.options.range[0] : 0;
		this.max = $chk(this.options.range[1]) ? this.options.range[1] : this.options.steps;
		this.range = this.max - this.min;
		this.steps = this.options.steps || this.full;
		this.stepSize = Math.abs(this.range) / this.steps;
		this.stepWidth = this.stepSize * this.full / Math.abs(this.range) ;

		this.knob.setStyle('position', 'relative').setStyle(this.property, - this.options.offset);
		modifiers[this.axis] = this.property;
		limit[this.axis] = [- this.options.offset, this.full - this.options.offset];
		this.drag = new Drag(this.knob, {
			snap: 0,
			limit: limit,
			modifiers: modifiers,
			onDrag: this.draggedKnob.bind(this),
			onStart: this.draggedKnob.bind(this),
			onComplete: function(){
				this.draggedKnob();
				this.end();
			}.bind(this)
		});
		if (this.options.snap) {
			this.drag.options.grid = Math.ceil(this.stepWidth);
			this.drag.options.limit[this.axis][1] = this.full;
		}
	},

	set: function(step){
		if (!((this.range > 0) ^ (step < this.min))) step = this.min;
		if (!((this.range > 0) ^ (step > this.max))) step = this.max;

		this.step = Math.round(step);
		this.checkStep();
		this.end();
		this.fireEvent('onTick', this.toPosition(this.step));
		return this;
	},

	clickedElement: function(event){
		var dir = this.range < 0 ? -1 : 1;
		var position = event.page[this.axis] - this.element.getRelativePosition()[this.axis] - this.half;
		position = position.limit(-this.options.offset, this.full -this.options.offset);

		this.step = Math.round(this.min + dir * this.toStep(position));
		this.checkStep();
		this.end();
		this.fireEvent('onTick', position);
	},

	scrolledElement: function(event){
		var mode = (this.options.mode == 'horizontal') ? (event.wheel < 0) : (event.wheel > 0);
		this.set(mode ? this.step - this.stepSize : this.step + this.stepSize);
		event.stop();
	},

	draggedKnob: function(){
		var dir = this.range < 0 ? -1 : 1;
		var position = this.drag.value.now[this.axis];
		position = position.limit(-this.options.offset, this.full -this.options.offset);
		this.step = Math.round(this.min + dir * this.toStep(position));
		this.checkStep();
	},

	checkStep: function(){
		if (this.previousChange != this.step){
			this.previousChange = this.step;
			this.fireEvent('onChange', this.step);
		}
	},

	end: function(){
		if (this.previousEnd !== this.step){
			this.previousEnd = this.step;
			this.fireEvent('onComplete', this.step + '');
		}
	},

	toStep: function(position){
		var step = (position + this.options.offset) * this.stepSize / this.full * this.steps;
		return this.options.steps ? Math.round(step -= step % this.stepSize) : step;
	},

	toPosition: function(step){
		return (this.full * Math.abs(this.min - step)) / (this.steps * this.stepSize) - this.options.offset;
	}

});
var Drag = new Class({

	Implements: [Events, Options],

	options: {/*
		onBeforeStart: $empty,
		onStart: $empty,
		onDrag: $empty,
		onCancel: $empty,
		onComplete: $empty,*/
		snap: 6,
		unit: 'px',
		grid: false,
		limit: false,
		handle: false,
		modifiers: {x: 'left', y: 'top'}
	},

	initialize: function(){
		var params = Array.link(arguments, {'options': Object.type, 'element': $defined});
		this.element = $(params.element);
		this.document = this.element.getDocument();
		this.setOptions(params.options || {});
		var htype = $type(this.options.handle);
		this.handles = (htype == 'array' || htype == 'collection') ? $$(this.options.handle) : $(this.options.handle) || this.element;
		this.mouse = {'now': {}, 'pos': {}};
		this.value = {'start': {}, 'now': {}};

		this.selection = (Browser.Engine.trident) ? 'selectstart' : 'mousedown';

		this.bound = {
			start: this.start.bind(this),
			check: this.check.bind(this),
			drag: this.drag.bind(this),
			stop: this.stop.bind(this),
			cancel: this.cancel.bind(this),
			eventStop: $lambda(false)
		};
		this.attach();
	},

	attach: function(){
		this.handles.addEvent('mousedown', this.bound.start);
		return this;
	},

	detach: function(){
		this.handles.removeEvent('mousedown', this.bound.start);
		return this;
	},

	start: function(event){
		this.fireEvent('onBeforeStart', this.element);
		this.mouse.start = event.page;
		var limit = this.options.limit;
		this.limit = {'x': [], 'y': []};
		for (var z in this.options.modifiers){
			if (!this.options.modifiers[z]) continue;
			this.value.now[z] = this.element.getStyle(this.options.modifiers[z]).toInt();
			this.mouse.pos[z] = event.page[z] - this.value.now[z];
			if (limit && limit[z]){
				for (var i = 2; i--; i){
					if ($chk(limit[z][i])) this.limit[z][i] = $lambda(limit[z][i])();
				}
			}
		}
		if ($type(this.options.grid) == 'number') this.options.grid = {'x': this.options.grid, 'y': this.options.grid};
		this.document.addEvents({mousemove: this.bound.check, mouseup: this.bound.cancel});
		this.document.addEvent(this.selection, this.bound.eventStop);
	},

	check: function(event){
		var distance = Math.round(Math.sqrt(Math.pow(event.page.x - this.mouse.start.x, 2) + Math.pow(event.page.y - this.mouse.start.y, 2)));
		if (distance > this.options.snap){
			this.cancel();
			this.document.addEvents({
				mousemove: this.bound.drag,
				mouseup: this.bound.stop
			});
			this.fireEvent('onStart', this.element).fireEvent('onSnap', this.element);
		}
	},

	drag: function(event){
		this.mouse.now = event.page;
		for (var z in this.options.modifiers){
			if (!this.options.modifiers[z]) continue;
			this.value.now[z] = this.mouse.now[z] - this.mouse.pos[z];
			if (this.options.limit && this.limit[z]){
				if ($chk(this.limit[z][1]) && (this.value.now[z] > this.limit[z][1])){
					this.value.now[z] = this.limit[z][1];
				} else if ($chk(this.limit[z][0]) && (this.value.now[z] < this.limit[z][0])){
					this.value.now[z] = this.limit[z][0];
				}
			}
			if (this.options.grid[z]) this.value.now[z] -= (this.value.now[z] % this.options.grid[z]);
			this.element.setStyle(this.options.modifiers[z], this.value.now[z] + this.options.unit);
		}
		this.fireEvent('onDrag', this.element);
	},

	cancel: function(event){
		this.document.removeEvent('mousemove', this.bound.check);
		this.document.removeEvent('mouseup', this.bound.cancel);
		if (event){
			this.document.removeEvent(this.selection, this.bound.eventStop);
			this.fireEvent('onCancel', this.element);
		}
	},

	stop: function(event){
		this.document.removeEvent(this.selection, this.bound.eventStop);
		this.document.removeEvent('mousemove', this.bound.drag);
		this.document.removeEvent('mouseup', this.bound.stop);
		if (event) this.fireEvent('onComplete', this.element);
	}

});
/* ]]> */


