/*
 *	Banner Views
 */
function ToggleMapEnlarge(){
	var BannerWrapFx = new Fx.Morph( $('banner-wrapper'), {'duration': 750, 'link': 'cancel', 'transition': Fx.Transitions.Quart.easeInOut});
	var BannerFx = new Fx.Morph( $('banner'), {'duration': 750, 'link': 'cancel', 'transition': Fx.Transitions.Quart.easeInOut});

	var mapViewHeight;
	var bannerHeight;
	var bannerwrapHeight;
	
	if (document.getElementById('mapView').height == 358){
		mapViewHeight = 500;
		bannerHeight = 500;
		bannerwrapHeight = 520;
	} else {
		mapViewHeight = 358;
		bannerHeight = 358;
		bannerwrapHeight = 378;
	}
	
	BannerFx.start({
		height: bannerHeight
	});
	
	BannerWrapFx.start({
		height: bannerwrapHeight
	});
	
	(function() {
		document.getElementById('mapView').height = mapViewHeight;
	}).delay(750);
}

function ToggleVideoEnlarge(){
	var BannerWrapFx = new Fx.Morph( $('banner-wrapper'), {'duration': 750, 'link': 'cancel', 'transition': Fx.Transitions.Quart.easeInOut});
	var BannerFx = new Fx.Morph( $('banner'), {'duration': 750, 'link': 'cancel', 'transition': Fx.Transitions.Quart.easeInOut});

	var videoViewHeight;
	var bannerHeight;
	var bannerwrapHeight;
	
	
	if ($$('.content .videos')[0].getSize().y == 358){
		videoViewHeight = 500;
		bannerHeight = 500;
		bannerwrapHeight = 520;
	} else {
		videoViewHeight = 358;
		bannerHeight = 358;
		bannerwrapHeight = 378;
	}
	
	BannerFx.start({
		height: bannerHeight
	});
	
	BannerWrapFx.start({
		height: bannerwrapHeight
	});
	
	(function() {
		$$('.content .videos')[0].setStyle('height', videoViewHeight);
	}).delay(750);
}

function map() {
	if ($$('object#mapViewOpen')[0]) {
		return $$('object#mapViewOpen')[0];
	}
	else {
		return $$('object#mapView')[0];
	}
}

function MapInject(points, town){
	var flashVars = {};
		flashVars.lang = lang;
		flashVars.site = site;
	
	if(points){
		flashVars.points = points;
	}
	
	if(town) {
		flashVars.town = town;
	}
	
	(function(){
		swfobject.embedSWF("http://visiticeland.com/map/VisitMapNew.swf", "mapView", "710", "358", "9.0.0", "http://visiticeland.com/map/expressInstall.swf", flashVars, {wmode: 'transparent', AllowScriptAccess: 'always'});
		
		
		if($$('#mapView .noflash')[0]) {
			$$('#mapView .noflash')[0].setStyle('display', 'block');
		}
		
	}).delay(500);
}

function ChangeView(view) {
	$$('ul.views li').removeClass('selected');
	$$('ul.views li.'+view).addClass('selected');
	
	$$('#banner .view').fade('0');
	
	$$('#banner .view.'+view).fade('in');
}

function $get(key,url){
	if(arguments.length < 2) url =location.href;
	if(arguments.length > 0 && key != ""){
		if(key == "#"){
			var regex = new RegExp("[#]([^$]*)");
		} else if(key == "?"){
			var regex = new RegExp("[?]([^#$]*)");
		} else {
			var regex = new RegExp("[?&]"+key+"=([^&#]*)");
		}
		var results = regex.exec(url);
		return (results == null )? "" : results[1];
	} else {
		url = url.split("?");
		var results = {};
			if(url.length > 1){
				url = url[1].split("#");
				if(url.length > 1) results["hash"] = url[1];
				url[0].split("&").each(function(item,index){
					item = item.split("=");
					results[item[0]] = item[1];
				});
			}
		return results;
	}
}

var videoLib;

window.addEvent('domready', function(){
	var banner = $$('#banner')[0];
	
	if($$('#wrap.region').length > 0 && banner){
		var scr = new Fx.Scroll(window).toElement(banner);
	}
	
	$$('#banner-wrapper ul.views').each(function(element){
		var Views = element.getChildren('li');
		
		Views.each(function(view){
			$$('#banner .view').setStyle('opacity','0');
			$$('#banner .view:first-child').setStyle('opacity','1');
			
			view.addEvent('click', function(){
				var selected = this.get('rel');
				var target = $$('#banner .view.'+selected);
				
				Views.removeClass('selected');
				this.addClass('selected');
				
				if ((selected == 'map') && ( target[0].getChildren('object').length == 0))
				{
					MapInject();
				}
				else if ((selected == 'videos') && (videoLib != null) && $$('.content .videos')[0].getSize().y == 358)
				{
					ToggleVideoEnlarge();
				}
				else if ((selected == 'videos') && (videoLib == null))
				{
					ToggleVideoEnlarge();
					videoLib = new VideoLibrary({container: $$('.video-library')[0]});
				}
				else if (document.getElementById('mapView').height == 500)
				{
					ToggleMapEnlarge();
				}
				
				else if ($$('.content .videos')[0].getSize().y == 500 && (selected != 'videos'))
				{
					ToggleVideoEnlarge();
				}
				
				
				var views = $$('#banner .view');
				views.fade('0');
				
				(function() {
					var targetFx = new Fx.Morph( target[0], {'duration': 750, 'link': 'cancel', 'transition': Fx.Transitions.Quart.easeInOut});
					views.addClass('hidden');
					target.removeClass('hidden');
					var hiddenViews = $$('#banner .view.hidden');
					views.setStyle('z-index', '200');
					hiddenViews.setStyle('z-index', '190');
					//target.fade('in');
					targetFx.start({
						'opacity':'1'
					});
				}).delay(500);
			});
			
		});
		
		//var mapSwfFile = Asset.image('http://visiticeland.com/map/VisitMap.swf');
		
	});
	
	
	/*
	 *	Language Switch
	 */
	
	$$('.head-language').each(function(element){
		var Dropdown = element.getChildren('.dropdown');
		
		Dropdown.dispose();
		Dropdown.inject($(document.body));
		
		var DropdownEffect = new Fx.Morph( Dropdown[0], { duration: 350, link: 'cancel', transition: Fx.Transitions.Sine.easeInOut } );
		
		Dropdown.setStyles({
			'opacity': 0
		});
		
		$$(element.getElement('.current'),Dropdown).addEvents({
			'click': function(){
				var pos = element.getPosition();
				var eleSize = element.getSize();
				var dropSize = Dropdown[0].getSize();
				
				DropdownEffect.start({
					opacity: 1
				});
				
				Dropdown.setStyles({
					'top': pos.y+40,
					'left': pos.x-dropSize.x+eleSize.x+5
				});
			},
			'mouseleave': function(){
				
				DropdownEffect.start({
					opacity: 0
				});
				
			}
		});
		
		Dropdown.addEvent('mouseenter', function(){
			DropdownEffect.start({
				opacity: 1
			});
		});
		
	});
	
	/*
	 *	SubNav Dropdown
	 */
	
	$$('#sub-nav > ul > li').each(function(li){
		var sub = [];
		var sub = li.getChildren('ul').setStyle('display','block');
		
		if( sub.length != 0 )
		{
			var sub = sub[0];
			var subSize = sub.getSize();
			var subStartFX = new Fx.Morph(sub, { 'duration': 250, 'link': 'cancel' });
			
			sub.setStyles({
				'position': 'absolute',
				'width': subSize.x,
				'height': 0,
				'opacity': 0
			});
			
			sub.dispose();
			
			li.addEvents({
				'mouseenter': function(){
					sub.inject( li );
					subStartFX.start({
						'height': subSize.y,
						'opacity': 1
					});
					
				},
				'mouseleave': function(){
					
					subStartFX.start({
						'height': 0,
						'opacity': 0
					});
					
				}
			});
		}
		
	});
	
	/*
	 *	Banner Tabs
	 */
	
	$$('#banner ul.tabs').each(function(element){
		var tabs = element.getChildren('li');
		var tabareas = $$('#banner .tab-area');
		
		
		var tabselected = element.getChildren('li.selected')[0];
		
		$$('#banner .tab-area').setStyle('opacity', 0);
		$( tabselected.get('rel') ).setStyle('opacity', 1);
		
		tabs.addEvent('click', function(){
			var self = this;
			tabs.removeClass('selected');
			this.addClass('selected');
			
			tabareas.fade('out');
			(function(){
				$(self.get('rel')).fade('in');
			}).delay(250);
		});
		
	});
	
	
	/*
	 *	Banner Collapse
	 */
	
	if( $('collapse-banner') ) {
		var wrap_banner = $('banner-wrapper');

		var WrapBannerFx = new Fx.Morph( $('banner-wrapper'), {'duration': 750, 'link': 'cancel', 'transition': Fx.Transitions.Quart.easeInOut});
		var BannerFx = new Fx.Morph( $('banner'), {'duration': 750, 'link': 'cancel', 'transition': Fx.Transitions.Quart.easeInOut});
		var Btn = new Fx.Morph( $('collapse-banner'), {'duration': 750, 'link': 'cancel', 'transition': Fx.Transitions.Quart.easeInOut});
		var ViewsFx = new Fx.Morph( $('banner-wrapper').getElement('.views'), {'duration': 750, 'link': 'cancel', 'transition': Fx.Transitions.Quart.easeInOut});
		
		var bannerWrap = $('banner-wrapper');
		
		$('collapse-banner').addEvent('click', function(){
			var btn = this;
			if( bannerWrap.hasClass('false') )
			{
				wrap_banner.getElement('ul.views').setStyle('opacity',0);
				
				WrapBannerFx.start({
					//opacity: 0,
					height: 31,
					'padding' :0
				});
				BannerFx.start({
					opacity:0,
					height:0
				});
				ViewsFx.start({
					opacity:0
				}).addEvent('complete',function(){
					bannerWrap.removeClass('false');
				});
					Btn.start({
						'margin-top':-20
					});
				
				$('collapse-banner').addClass('closed');
			}
			

			if( this.hasClass('closed') )
			{
			
				var bh = 358;
				var bwh = 378;
			
			
				WrapBannerFx.start({
					opacity: 1,
					height: bwh
				});
				BannerFx.start({
					opacity:1,
					height:bh,
					'padding-top':10,
					'padding-bottom':10
				});
				ViewsFx.start({
					opacity:1
				})
				
		
					Btn.start({
						'margin-top':0
					});
			
				btn.removeClass('closed');
			}
			else
			{
				WrapBannerFx.start({
					height: 31
				});
				BannerFx.start({
					opacity:0,
					height:0,
					'padding-top':0,
					'padding-bottom':0
				});
				ViewsFx.start({
					opacity:0
				})
					Btn.start({
						'margin-top':-20
					});
				
				
				btn.addClass('closed');
				
			}
			
		});
		$$('.collapsed-views .pictures').addEvent('click',function(){
			$('collapse-banner').fireEvent('click');
			$('banner-wrapper').getElement('ul.views .pictures').fireEvent("click");
		});
		
		$$('.collapsed-views .map').addEvent('click',function(){
			$('collapse-banner').fireEvent('click');
			$('banner-wrapper').getElement('ul.views .map').fireEvent("click");
		});
		
		$$('.collapsed-views .videos').addEvent('click',function(){
			$('banner-wrapper').getElement('ul.views .videos').fireEvent("click");
			$('collapse-banner').fireEvent('click');
			ToggleVideoEnlarge();
		});
		
		$$('.collapsed-tabs .banner-tab-1').addEvent('click',function(){
			$('collapse-banner').fireEvent('click');
			$$('.search .tabs').getElement('[rel=banner-tab-1]').fireEvent("click");
		});
		
		$$('.collapsed-tabs .banner-tab-2').addEvent('click',function(){
			$('collapse-banner').fireEvent('click');
			$$('.search .tabs').getElement('[rel=banner-tab-2]').fireEvent("click");
		});
	}
	
	/*
	 *	Faq
	 */
	
	var Faq = new Fx.Accordion($$('.question'), $$('.answer'), {
		duration: 250,
		display: 0,
		alwaysHide: true,
		onActive: function(toggler, element){
			toggler.addClass('selected');
		},
		onBackground: function(toggler, element){
			toggler.removeClass('selected');
		}
	});
	
	
	/*
	 *	Landshluta Kort
	 */
	
	$$('#close-site-map').addEvent('click', function(){
		
		if(Browser.Engine.trident === true)
			$('site-map').setStyle('opacity', 0);
		else
			$('site-map').fade('out');
		
	});
	
	$$('.head-map').addEvent('click', function(){
		
		$('site-map').setStyles({
			'display': 'block',
			'opacity': 0,
			'left': (window.getSize().x/2) - 300
		});
		
		if( Browser.Engine.trident === true )
			$('site-map').setStyle('opacity', 1);
		else
			$('site-map').fade('in');
		
	});
	
});

var atomSlider = new Class({
	Implements: [Options, Events],
	options:{
		buttonleftClass: 'btnleft',
		buttonrightClass: 'btnright',
		slideClass: 'slide',
		showCount: 4
	},
	initialize:function(slider,options){
		this.setOptions(options);
		this.Slider = document.id(slider);
		this.SliderItems = this.Slider.getElements('.'+ this.options.slideClass);
		this.SlideMargin = this.SliderItems[0].getStyle('margin-right').toInt();
		this.SlideSize = this.SliderItems[0].getSize();
		this.SlideWidth = this.SlideSize.x + this.SlideMargin;
		this.SlideHeight = this.SlideSize.y;
		this.BtnLeft = this.Slider.getElement('.'+ this.options.buttonleftClass);
		this.BtnRight = this.Slider.getElement('.'+ this.options.buttonrightClass);
		this.ViewPort = [];
		this.SliderContainer = [];
		this.View = this.options.showCount * this.SlideWidth;
		this.Pos = 0;
		this.setItems();
	},
	
	setButtons: function(){
		var slideWidth = this.SlideWidth
		var container = this.SliderContainer;
		var containersize = container.getSize();
		var containerwidth = containersize.x;
		var view = this.View;
		var pos = this.Pos;
		
		this.BtnLeft.addEvent('click',function(){
		if(pos != 0){
			container.morph({'left':pos + slideWidth});
			pos += slideWidth;
			}
		});	

		this.BtnRight.addEvent('click',function(){
			if(containerwidth + pos - slideWidth >= view){
			container.morph({'left':pos - slideWidth});
			pos -= slideWidth;
			}
		});	
	},
	
	setItems: function(){
		this.SliderItems.each(function(item){
			item.setStyle('float','left');
		});
		

		this.SliderContainer = new Element('div#slidercontainer').adopt(this.SliderItems);
		this.ViewPort = new Element('div#viewport').adopt(this.SliderContainer);
		this.ViewPort.inject(this.Slider, 'top');
		this.SliderContainer.setStyles({
			width: this.SlideWidth*this.SliderItems.length,
			position: 'absolute',
			left: '0',
			top: '0'
		});
		this.SliderContainer.set('morph',{duration:350});
		this.ViewPort.setStyles({
			overflow:'hidden',
			width:(this.options.showCount * this.SlideWidth) - this.SlideMargin,
			height:this.SlideHeight,
			position: 'relative'
		});
		this.setButtons();
	}
});
