// Site functionality
// Requires: prototype.js + tuksi.js
// Author: Andreas Mailand, ama@dwarf.dk



Tuksi.prototype.sifrLoad = function (){
	/*if(typeof sIFR == "function"){
		sIFR.setup();
	}*/
}

// aktiver javascript - inden indhold er loadet ind
Tuksi.prototype.preInit = function(){
}

// aktiver javascript - efter indhold er loadet ind
Tuksi.prototype.postInit = function(){
//tuksi.sifrLoad();
}

/* function slideShow(bAutorun){
	var oFrame = $("mediaFrameShow");
	var aImages = oFrame.childElements();
	
	for (var i=0,aImagesMax=aImages.length;i<aImagesMax;i++){
		if (aImages[i].getStyle("display") != "none"){
			Effect.Fade(aImages[i], {duration: 2});
			Effect.Appear(aImages[i+1], {delay:1, duration: 2});
			
			break; // break out of the for loop, as we don't need it, since we have already found what we were looking for
		}
	}
	
	
	
	
	// run the slideshow automatically - starting from the currently active image
}
*/
var slideShow = {
	running:false,
	slidesRotate:Array(),
	thumbList:Array(),
	wait:2000,
	fadeTime:1.0,
	slideIndex:0,
	fading:false,
	maxSlidesInList:4,
	middleSlideIndex:0,
	startSlideIndex:0,
	init:function(wait) {
		if(!isNaN(wait)) {
			this.wait = wait;
		}
		var slideContainer = $('imageRotater');
		if (slideContainer){
			var slides = Element.immediateDescendants(slideContainer);
			if (slides){
				slides.each(function(s,index) {
					var slideId = s.id;
					if(index > 0) {
						Element.setStyle(s,{opacity:0});
					}
					this.middleSlideIndex = (this.maxSlidesInList/2);
					Event.observe($('thumb_'+index),'click',function(){
						slideShow.show(index,0.4);
					});
					slideShow.slidesRotate.push(s);
					slideShow.thumbList.push($("thumb_"+index));
				});
				setInterval('slideShow.show()', this.wait);
				slideShow.updateThumb();
				slideShow.updateCounter();
			}
		}
	},
	show:function(newSlideId,fadeTimer) {
		if(this.running || !isNaN(newSlideId) && !this.fading){
			if(!isNaN(newSlideId) && newSlideId == this.slideIndex) {
				return false;
			}
			var currentFadeTimer = this.fadeTime;
			if(!isNaN(fadeTimer)){
				currentFadeTimer = fadeTimer;
			}
			this.fading = true;
			Effect.Fade($(this.slidesRotate[this.slideIndex]),{
				duration:currentFadeTimer, 
				from:1.0, 
				to:0.0
			});
			this.slideIndex++;
			
			if(!isNaN(newSlideId)) {
				this.slideIndex = newSlideId;
				this.running = false;
			} else if (this.slideIndex >= this.slidesRotate.length) { 
				this.slideIndex = 0;
			}
			
			Effect.Appear(this.slidesRotate[this.slideIndex], { 
				duration:currentFadeTimer, 
				from:0.0, 
				to:1.0,
				afterFinish: function(){
					slideShow.fading=false;
				}
			});
			this.updateCounter();
			this.updateThumb();
			this.balanceList();
		}
	},
	updateThumb: function(){
		var allMedia = $("mediaList").getElementsByTagName("ul")[0];
		allMedia = Element.childElements(allMedia);
		var activeThumb = $("thumb_"+this.slideIndex);

		for (var i=0,allMediaMax=allMedia.length;i<allMediaMax;i++){
			Element.setStyle(allMedia[i],{
  			opacity: 0.5,
  			filter: "alpha(opacity:50)",
				cursor: "pointer"
  		})
		}
		Element.setStyle(activeThumb,{
			opacity: 1,
			filter: "alpha(opacity:100)"
		})
	},
	showNext: function(){
		var next;
		if (this.slideIndex >= (this.slidesRotate.length - 1)) { 
			next = 0;
		} else {
			next = this.slideIndex+1;
		}
		this.show(next,0.4);
	},
	showPrev: function(){
		var prev;
		if (this.slideIndex == 0) { 
			prev = this.slidesRotate.length - 1;
		} else {
			prev = this.slideIndex-1;
		}
		this.show(prev,0.4);
	},
	play:function(){
		this.running = true;
	},
	stop:function(){
		this.running = false;
	},
	updateCounter:function(){
		var sCounter = $("mediaGalleryCounter");
		var iCurrent = this.slideIndex+1;
		var iTotal = this.slidesRotate.length;
	
		sCounter.innerHTML = "Billede " + iCurrent + " af " + iTotal;
	},
	balanceList:function(){
		var visibleThumbs;
		if (this.slideIndex < 1) visibleThumbs = [this.thumbList[this.slideIndex],this.thumbList[this.slideIndex+1],this.thumbList[this.slideIndex+2],this.thumbList[this.slideIndex+3]];
		else if (this.slideIndex < 2) visibleThumbs = [this.thumbList[this.slideIndex-1],this.thumbList[this.slideIndex],this.thumbList[this.slideIndex+1],this.thumbList[this.slideIndex+2]];
		else if (this.slideIndex > this.slidesRotate.length-2) visibleThumbs = [this.thumbList[this.slideIndex-3],this.thumbList[this.slideIndex-2],this.thumbList[this.slideIndex-1],this.thumbList[this.slideIndex]];
		else visibleThumbs = [this.thumbList[this.slideIndex-2],this.thumbList[this.slideIndex-1],this.thumbList[this.slideIndex],this.thumbList[this.slideIndex+1]];

		this.thumbList.without(visibleThumbs).invoke("hide");
		visibleThumbs.invoke("show");		
	}
}

var frontpageCampaigns = {
	running:true,
	slidesRotate:Array(),
	wait:2000,
	fadeTime:1.0,
	slideIndex: 0,
	animRunning:false,
	init:function(wait) {
	    if (!$('frontpageCampaignsCounter')) return false;
		if(!isNaN(wait)) {
			this.wait = wait;
		}
		$('frontpageCampaignsCounter').style.visibility = "visible";
		var campaignContainer = $('frontpageCampaigns')
		if (campaignContainer){
			var campaigns = Element.immediateDescendants(campaignContainer);
			
			if (campaigns){
				
				campaigns.each(function(s,index) {
					var slideId = s.id;
			  	if(index > 0) {
						Element.setStyle(s,{opacity:0, display: "none"});
			  	}
			  	
			  	frontpageCampaigns.slidesRotate.push(s);
				});
				
				setInterval('frontpageCampaigns.show()', this.wait);
			}
		this.updateCounter();
		}
	},
	show:function(newSlideId,fadeTimer) {
		if((this.running || !isNaN(newSlideId)) && !this.animRunning) {
			this.animRunning = true;
			var sifrHeader;
			if(!isNaN(newSlideId) && newSlideId == this.slideIndex) {
				return false;
			}
			var currentFadeTimer = this.fadeTime;
			if(!isNaN(fadeTimer)) {
				currentFadeTimer = fadeTimer;
			}
			sifrHeader = this.slidesRotate[this.slideIndex].select("h1.sIFR-replaced")[0];
			if (sifrHeader){ sifrHeader.setStyle({ textIndent: "-9000px" }); }
			Effect.Fade($(this.slidesRotate[this.slideIndex]),{
				duration:currentFadeTimer, 
				from:1.0, 
				to:0.0 
			});
			this.slideIndex++;
			
			if(!isNaN(newSlideId)) {
				this.slideIndex = newSlideId;
				this.running = false;
			} else if (this.slideIndex >= this.slidesRotate.length) { 
				this.slideIndex = 0;
			}
			sifrHeader = this.slidesRotate[this.slideIndex].select("h1.sIFR-replaced")[0];
			if (sifrHeader){ sifrHeader.setStyle({ textIndent: "-9000px" }); }
			Effect.Appear(this.slidesRotate[this.slideIndex], { 
				duration:currentFadeTimer, 
				from:0.0, 
				to:1.0,
				afterFinish: this.showHeader
			});
		
			this.updateCounter();
		}
	},
	showHeader: function(a){
		var sifrHeader = frontpageCampaigns.slidesRotate[frontpageCampaigns.slideIndex].select("h1.sIFR-replaced")[0];
		if (sifrHeader){ sifrHeader.setStyle({ textIndent: 0 }); }
		frontpageCampaigns.animRunning = false;
	},
	showNext: function(){
		var next;
		if (this.slideIndex >= (this.slidesRotate.length - 1)) { 
			next = 0;
		} else {
			next = this.slideIndex+1;
		}
		this.show(next,0.4);
	},
	showPrev: function(){
		var prev;
		if (this.slideIndex == 0) { 
			prev = this.slidesRotate.length - 1;
		} else {
			prev = this.slideIndex-1;
		}
		this.show(prev,0.4);
	},
	updateCounter:function(){
		var sCounter = $("frontpageCampaignsCounter");
		var iCurrent = this.slideIndex+1;
		var iTotal = this.slidesRotate.length;
		sCounter.select("span")[0].innerHTML = iCurrent;
		sCounter.select("span")[1].innerHTML = iTotal;
	},
	play:function(){
		this.running = true;
	},
	stop:function(){
		this.running = false;
	}
	
}

// activate when the dom has been loaded
document.observe('dom:loaded',function(){
		slideShow.init(4000);
		frontpageCampaigns.init(5000);
})

// set the tabs state when viewing the slideshow
function setSlideshowActive(bState){
	if (bState){
		$("tabImages").removeClassName("active");
		$("tabSlideshow").addClassName("active");
	}else{
		$("tabSlideshow").removeClassName("active");
		$("tabImages").addClassName("active");
	}
}

function showSubMenu(oThis){
	var oSubMenu = oThis.parentNode.getElementsByTagName('UL')[0];
	if(oSubMenu){
		if(oSubMenu.style.display == "block"){
			oSubMenu.style.display = "none";
		} else {
			oSubMenu.style.display = "block";
		}
	}
	return false;
}

//var intCurrentCampaign = 1;
//var intTotalCampaigns = 3
function slideCampaigns(){
	//if(intCurrentCampaign < intTotalCampaigns){
		var objCurrentCampaign = $("campaign" + intCurrentCampaign)
		objCurrentCampaign.style.display = "none";
	//}
}

function changeList(id){
	var obj = $("listContainer"+id);
	if (obj){
		
		obj.siblings().each(function(el){
		    if (!el.hasClassName("calenderListBottom")){
		        el.hide();
		    }
		});
        //obj.siblings().each(function(el){
            //if (el.style.display!="none"){
            
                //Effect.Fade(el,{duration:0.1});
            //}
		    
		//});
		obj.show();
		//Effect.Appear(obj);
		
	}
	var objLink = $("listContainerLink"+id);
	if (objLink){
	    objLink.addClassName("active");
	    objLink.siblings().invoke("removeClassName","active");
	}
	
}

function switchComments(){
    $('RestCommmentsContainer').toggle();
    $('HideAllCommentsLink').toggle();
    $('SeeAllCommentsLink').toggle();
}

function CreateBookmarkLink() {
		var title = "Folkeferie.dk"; 
		var url = "http://www.folkferie.dk";

		if (window.sidebar) {
			window.sidebar.addPanel(title, url,"");
		} else if( window.external ) {
			window.external.AddFavorite( url, title); 
		} else if(window.opera && window.print) { // Opera Hotlist
			return true; 
		}
		else{
		    alert('Du kan desværre ikke anvende denne funktion i din browser');
		}
	}

function SetStartPageLink() {
		var title = "Folkeferie.dk"; 
		var url = "http://www.folkferie.dk";

		if (window.sidebar) {
			window.sidebar.addPanel(title, url,"");
		} else if( window.external ) {
			window.external.AddFavorite( url, title); 
		} else if(window.opera && window.print) { // Opera Hotlist
			return true; 
		}
		else{
		    alert('Du kan desværre ikke anvende denne funktion i din browser');
		}
	}