window.addEvent('domready', function(){
	$$('.text').setStyle('color','#a9a9a9');
	$$('.take_label').each(function(el){
		var label_name = el.getProperty('id');
		var label_text = '';
		$$('label').each(function(el2){
			if(el2.getProperty('for') == label_name)
				label_text = el2.get('text');
		});
		el.setProperties({'value':label_text, 'title':label_text});
	});
	$$('.text').addEvents({
		'focus':function(){
		  this.setStyle('color','#333');
		  if(this.getProperty('value') == this.getProperty('title'))
		  	this.setProperty('value', '');
		},
		'blur':function(){
		  this.setStyle('color','#a9a9a9');
		  if(this.getProperty('value') == '')
		  	this.setProperty('value', this.getProperty('title'));
		}
	});
	$$('.external').setProperty('target', '_blank');
	
	
	var nav_width = 960;
	/*$$('#nav>ul>li').each(function(el){
		//nav_width += el.getSize().x;
		el.setStyle('width', el.getSize().x);
	});*/
	$$('#nav>ul>li:last-child').addClass('last');
	
	//sub nav
	var shadow_offset = 0;
	var subnav_box_width = 340;
	var sub_nav_box_x = -9999;
	
	$$('#nav>ul>li').addEvents({
		'mouseenter':function(){
			//if there is a subnav for that mainnav item
			var subnav_box = this.getElements('.subnav_box')[0];
			if(subnav_box){
				subnav_box.setStyle('marginLeft', 0);
				var nav_item_x = this.getPosition(this.getParents('ul')[0]).x;
				var nav_item_w = this.getSize().x;
				//if subnav goes off screen to right
				if (nav_item_x+subnav_box_width > nav_width)
					sub_nav_box_x = nav_item_x-subnav_box_width+nav_item_w+shadow_offset;
				else
					sub_nav_box_x = nav_item_x-shadow_offset;
				subnav_box.setStyle('left', sub_nav_box_x);
				this.getElement('a').addClass('over');
			}

		},
		'mouseleave':function(){
			var subnav_box = this.getElements('.subnav_box')[0];
			if(subnav_box){
				subnav_box.setStyle('left', -9999);
			}
			this.getElement('a').removeClass('over');

				
		}
	});
	
	//for keyboard navigation
	$$('#nav>ul>li>a').addEvents({
		'focus':function(){
			//if there is a subnav for that mainnav item
			var subnav_box = this.getNext();
			if(subnav_box){
				var nav_item_x = this.getPosition(this.getParents('ul')[0]).x;
				var nav_item_w = this.getSize().x;
				//if subnav goes off screen to right
				if (nav_item_x+subnav_box_width > nav_width)
					sub_nav_box_x = nav_item_x-subnav_box_width+nav_item_w+shadow_offset;
				else
					sub_nav_box_x = nav_item_x-shadow_offset;
				subnav_box.setStyle('left', sub_nav_box_x);				
				this.addClass('over');
			}
		},
		'blur':function(){
			var subnav_box = this.getNext();
			if(subnav_box){
				subnav_box.setStyle('left', -9999);
			}
			this.removeClass('over');

				
		}
	});
	
	$$('#nav ul li div a').addEvents({
		'focus':function(){
			var nav_item_x = this.getParents('li')[1].getPosition(this.getParents('ul')[1]).x;
			var nav_item_w = this.getParents('li')[1].getSize().x;
			//if subnav goes off screen to right
			if (nav_item_x+subnav_box_width > nav_width)
				sub_nav_box_x = nav_item_x-subnav_box_width+nav_item_w+shadow_offset;
			else
				sub_nav_box_x = nav_item_x-shadow_offset;
			this.getParents('.subnav_box')[0].setStyle('left', sub_nav_box_x);
			var nav_a = this.getParents('li')[1].getElements('a')[0];
			nav_a.addClass('over');

		},
		'blur':function(){
			this.getParents('.subnav_box')[0].setStyle('left', -9999);
			var nav_a = this.getParents('li')[1].getElements('a')[0];
			nav_a.removeClass('over');
		}
	});
	
	$$('h2').each(function(el){
		new Element('div', {'class':'h2'}).wraps(el);
	});
	
	//center vertically
	wrapperHeight = $('wrapper').getSize().y;
	function repositionWrapper(){
		if (window.getSize().y < wrapperHeight){
			$('wrapper').setStyles({'top': 0, 'marginTop': 20});
			$(document.body).setStyles({'height': wrapperHeight+40});
		}else{
			var offset = -(wrapperHeight/2);
			$('wrapper').setStyles({'top': '50%', 'marginTop': offset});
		}
	};
	repositionWrapper();
	window.addEvent('resize', repositionWrapper);
	if(Browser.Plugins.Flash.version>6 && (window.location.href.indexOf('home=true') != -1 || window.location.href == 'http://www.nancyvanostren.com/')){
		var flash_container = new Element('div', {'id':'flash_container'}).inject($('wrapper'));
		var swiff_obj = new Swiff('/flash/nancy_van_ostren.swf', {
			width: 843, 
			height: 570,
			container: flash_container,
			params: { quality:'best', scale:'exactfit', allowFullScreen:'true', salign:'TL', wmode:'transparent' }
		});
	}
});

function remove_movie(){
	$('flash_container').fade('out');
}
window.addEvent('load', function(){
	$$('.scroll_content').each(function(el){
		var scroll_bar = new Element('div', { 'class':'scrollbar' });
		var handle = new Element('div', { 'class':'handle' });
		handle.inject(scroll_bar);
		scroll_bar.inject(el.getParent(), 'top');
		makeScrollbar(el, scroll_bar, handle);
		el.getParents('.slidey_container')[0].addEvents({'mouseenter': function() { this.getElements('.handle')[0].addClass('over'); }, 'mouseleave': function() { this.getElements('.handle')[0].removeClass('over'); } });
	});
	if($$('#latest_collection img')[0])
		new CustomSlidey({cs: $('latest_collection'), duration:1000, fader:true, auto:true, items:$$('#latest_collection img')});
	if($$('#gallery_large img')[0]){
		if($$('.press')[0])
			var captions = true;
		else
			var captions = false;
			
		$$('#gallery_thumbs li').addEvents({
			'mouseenter':function(){
				$$('#gallery_thumbs li').each(function(el){ if(!el.hasClass('current')) el.setStyle('opacity', 0.4); });
				this.setStyle('opacity', 1);
			},
			'mouseleave':function(){
				if(!this.hasClass('current'))
					this.setStyle('opacity', 0.4);
			}
		}).setStyle('opacity', 0.4);
		$$('#gallery_thumbs li')[0].setStyle('opacity', 1);
		new CustomSlidey({cs: $('gallery_large'), duration:1000, next_prev:true, handles:$$('#gallery_thumbs a'), captions:captions, move_in_px:740});
	}
	if($$('#gallery_thumbs img')[0])
		new CustomSlidey({cs: $('gallery_thumbs'), duration:600, next_prev:true, move_in_px:180});
});


function makeScrollbar(content,scrollbar,handle,horizontal,ignoreMouse){
	if (content.getChildren('.content_container_sleeve').length > 0){
		if (content.getChildren('.content_container_sleeve')[0].getSize().y<content.getSize().y)
			scrollbar.setStyle('display','none');
	}	
	var steps = horizontal?(content.getScrollSize().x - content.getSize().x):(content.getScrollSize().y - content.getSize().y);
	var slider = new Slider(scrollbar, handle, {	
		steps: steps,
		mode: (horizontal?'horizontal':'vertical'),
		onChange: function(step){
			// Scrolls the content element in x or y direction.
			var x = horizontal?step:0;
			var y = horizontal?0:step;
			content.scrollTo(x,y);
		}
	});
	if(!(ignoreMouse)){
		// Scroll the content element when the mousewheel is used within the 
		// content or the scrollbar element.
		$$(content, scrollbar).addEvent('mousewheel', function(e){	
			e = new Event(e).stop();
			var step = slider.step - e.wheel * 30;	
			slider.set(step);
		});
	}
	// Stops the handle dragging process when the mouse leaves the document body.
	$(document.body).addEvent('mouseleave',function(){slider.drag.stop()});
}

var CustomSlidey = new Class({
	initialize: function(params){
		this.cs = params.cs;
		this.handles = params.handles;
		this.captions = params.captions;
		this.fader = params.fader || false;
		this.cs_sleeve_inner = this.cs.getElements('.cs_sleeve_inner')[0];
		this.cs_window = this.cs.getElements('.cs_window')[0];
		if(this.captions){
			this.caption_container = new Element('div', {'class':'caption_container'}).inject(this.cs);
		}
		
		this.slidey = params.cs.getElements('.slidey')[0];
		this.vertical = params.vertical || false;
		this.items = params.items || this.cs.getElements('li');
		this.items.getLast().addClass('last');
		//this.items[this.items.length-2].addClass('last_but_one');
		this.auto = params.auto || false;
		this.move_in_px = params.move_in_px || 80;
		this.duration = params.duration || 500;
		this.moving = false;
		this.slidey_size = 0;
		this.next_prev = params.next_prev || false;
		
		if(this.fader){
			this.items.each(function(el){
				var fadey = new Fx.Tween(el, {transition:'sine:out', duration:this.duration, onComplete:function(){this.moving = false;}.bind(this)});
				el.store('fadey', fadey);
				el.set('opacity', 0);
			}.bind(this));
		}
		else{
			if(this.vertical){
				this.window_size = this.cs_window.getSize().y;
				this.slidey_size = this.cs.getElements('ul')[0].getSize().y;
				this.slidey.setStyle('height', this.slidey_size);
			}
			else{
				this.window_size = this.cs_window.getSize().x;
				this.items.each(function(li){ this.slidey_size += li.getSize().x; }.bind(this));
				this.slidey.setStyle('width', this.slidey_size);
			}
			this.fx_slidey = new Fx.Tween(this.slidey, {transition:'sine:out', link:'cancel', duration:this.duration, onComplete:function(){this.moving = false;}.bind(this)});
		}
		
		this.extent = this.slidey_size-this.window_size;
		this.index = 0;
		this.slidey_go_to = 0;
		this.end_reached = false;
		if(this.auto){
			this.go_to(0, null, true);
			var auto_move = function(){ 
				if(this.index+1>=this.items.length){
					this.go_to(0);
				}else{
					this.go_to(this.index+1);
				}
			};
			auto_move.periodical(3000, this);
		}
		if(this.next_prev){
			if(this.slidey_size>this.window_size || this.fader){
				this.scroll_prev = new Element('a', {'href':'#', 'class':'scroll_prev controls'}).set('text', 'Scroll back').inject(this.cs_sleeve_inner,'top').setStyle('opacity', 0.3);
				this.scroll_next = new Element('a', {'href':'#', 'class':'scroll_next controls'}).set('text', 'Scroll forward').inject(this.cs_sleeve_inner);
				this.cs.getElements('.scroll_next')[0].addEvent('click', this.next.bind(this));
				this.cs.getElements('.scroll_prev')[0].addEvent('click', this.previous.bind(this));
			}
		}
		if(this.handles){
			var instnce = this;
			this.handles.each(function(el, i){
				el.addEvent('click', function(){
					instnce.go_to(i, instnce.handles[i], false);
					//.bind(this, [i, el]));
					return false;
				});
			}.bind(this));
			this.go_to(0, this.handles[0], true);
			//this.handles[0].getParent().addClass('current');
		}
	},
	go_to: function (i, el, init){
		if(this.next_prev){
			this.end_reached = false;
			if(i == 0)
				this.scroll_prev.setStyle('opacity', 0.3);
			else
				this.scroll_prev.setStyle('opacity', 1);
				
			if(i == this.items.length-1 && this.next_prev)
				this.scroll_next.setStyle('opacity', 0.3);
			else
				this.scroll_next.setStyle('opacity', 1);
		}
			
			
		if (!this.moving && (this.index != i || init || this.fader)){
			this.moving = true;
			this.prev_index = this.index;
			this.index = i;
			if (this.handles && !this.fader){//&& !this.fader = quick fix
				//console.log(el);
				el.getParent().getParent().getChildren().removeClass('current');
				el.getParent().addClass('current');
			}
				
			
			$$('#gallery_thumbs li').each(function(el){ if(!el.hasClass('current')) el.setStyle('opacity', 0.4); });	
			
			if(this.fader){
				this.items[this.prev_index].setStyle('zIndex',1);
				this.items[this.index].setStyles({'zIndex':0, 'opacity':1});
				if(init)
					this.items[this.index].retrieve('fadey').start('opacity', 1);
				else
					this.items[this.prev_index].retrieve('fadey').start('opacity', 0);
			}
			else{
				this.slidey_go_to = this.index*-this.move_in_px;
				if(this.vertical)
					this.fx_slidey.start('top', this.slidey_go_to);
				else
					this.fx_slidey.start('left', this.slidey_go_to);
			}
			if(this.captions)
				this.caption_container.set('text', this.cs.getElements('img')[i].getProperty('alt'));
		}
		return false;
	},
	next: function (){
		if(this.fader){
			this.index++;
			this.go_to(this.index);
		}
		if (this.slidey_size>this.window_size){
	
			if (!this.end_reached && !this.moving){
				this.index++;
				
				if ((this.move_in_px*this.index)>=this.extent){
					this.slidey_go_to = -this.extent;
					//if(!this.auto)
						this.end_reached = true;
				}
				else {
					this.slidey_go_to = this.index*-this.move_in_px;
				}
				this.moving = true;
				
				
				if(this.end_reached){
					this.scroll_next.setStyle('opacity', 0.3);
					this.scroll_prev.setStyle('opacity', 1);
				}
				else{
					this.scroll_next.setStyle('opacity', 1);
					this.scroll_prev.setStyle('opacity', 1);
				}
				
				
				if(this.vertical)
					this.fx_slidey.start('top', this.slidey_go_to);
				else
					this.fx_slidey.start('left', this.slidey_go_to);
			}
		}
		if(this.captions)
			this.caption_container.set('text', this.cs.getElements('img')[this.index].getProperty('alt'));
		return false;
	},
	previous: function (){
		if (this.slidey_size>this.window_size){
	
			if (this.index!=0 && !this.moving){
				this.index--;
				if (this.index == 0){
					this.slidey_go_to = 0;
					if(this.auto)
						this.end_reached = false;
					this.scroll_next.setStyle('opacity', 1);
					this.scroll_prev.setStyle('opacity', 0.3);
				}
				else{
					this.slidey_go_to = this.index*-this.move_in_px;
					this.scroll_next.setStyle('opacity', 1);
					this.scroll_prev.setStyle('opacity', 1);
				}
				if(!this.auto)
					this.end_reached = false;
				this.moving = true;
				if(this.vertical)
					this.fx_slidey.start('top', this.slidey_go_to);
				else
					this.fx_slidey.start('left', this.slidey_go_to);
			}
		}
		if(this.captions)
			this.caption_container.set('text', this.cs.getElements('img')[this.index].getProperty('alt'));
		return false;
	}
});
