//GLOBALS
_NORMALCOLOR = "#ffffff"
_HOVERCOLOR = "#ff3366";
_SELECTEDCOLOR = "#ff3366";

_NORMALTHUMBS = "#000000";
_HOVERTHUMBS = "#333333";

_DURATION_FIRSTANIMATION = (window.ff) ? 1500 : 1500;

var elCenter = null;
var fxWrapper;
var cPreload = new Chain;
var aPreLoad;

function preLoadImages() {

	var img = new Asset.images( [
		'/assets/images/common/scroll-btn-vert-hover.gif',
		'/assets/images/common/scroll-btn-vert.gif'
	]);

}

/* SWFObject */
function initSWFObject(loc){
	var header_logo_top = new SWFObject("/assets/project/flash/reflex_logo_topnavigation.swf", "header_logo_top", "100%", "100px", "8");
	header_logo_top.addParam("wmode", "transparent");
	header_logo_top.addVariable("currentLocation", loc);
	$("header-title").setStyle("z-index", 9999);
	header_logo_top.write("header-title"); 

}

/*
 * SUBMENU BEHAVIOUR
 */
var elCur = null;
function submenu_tween(){
	
	elCur = setupFirstActive();

	if($$(".right .nav-link").length > 0){
		$$(".right .nav-link").each(function(el){
		
			el.addEvent('click', function(e){
				//alert(elCur);
				if(elCur != null) { 
					elCur.setStyle("color", "#ffffff");
					elCur.removeClass("active");
				}
				elCur = el;
				el.addClass("active");
				e = new Event(e).stop();
				getPage(el);
				
			});
		});
	}

	$$("#submenu-wrapper .nav-link").each(function(el, i){

		var fxBlock = new Fx.Styles(el, {duration:400, transition:Fx.Transitions.Sine.easeInOut});

		el.addEvent('mouseenter', function(){
			fxBlock.stop().start({'color' : _HOVERCOLOR});
		});
		
		el.addEvent('mouseleave', function(){
			if(el.hasClass("active")) fxBlock.stop().start({'color' : '#b8d4e9'});
			else fxBlock.stop().start({'color' : '#fff'});
		});

	});
	

}
//quick setupFirstActive menu item
function setupFirstActive(pItems){
	var sItems = "";
	var sQS = $get('action',window.location.href);
	
	if(sQS != "" & sQS != null) {
		sItems = (sQS == 'solo' ) ? 'shots' : sQS;
	} else {
		sItems = 'exhibition','book';
	}
	var aItems = new Array(sItems);
	
	var item = null;
	var sTmp = "";
	
	aItems.each(function(el){
		sTmp = '#submenu-extend .'+el+' .nav-link';		
		item = $$(sTmp);
		if(item != null && item != "" && item.length > 0) { 
			item.addClass("active"); 
			elCur = item;
		}
	});
	return elCur;	
}

function getPage(el){
	sAction = "get-" + el.getProperty("title");

	new Ajax("index.php", {
		async: true,
		method: 'GET', 
		postBody: "action="+sAction,
		evalScripts: true,
		onComplete: function(response) {	        
			sContent = response;

			$$(".content").setHTML(sContent);
			if($("publication-flashbook")) loadPublicationSWF();
			if($$(".impression-info")) vertical_scroller();
			if($defined($$("#artist .artist-name"))) kickInSIFR();
			if($defined($$(".scroll-overflow"))) initArtistsHorScroller("scroll-overflow", "scroll-block");
			if($defined(".thumbs-block .thumb")) {
				thumbs_hover(); initGallerieSlider();
			}
			
		},
		onFailure: function(response) {	        
			alert(response);
		}
	}).request();

}

function addHoverEffect(el, type){
	var fxBlock = new Fx.Styles(el, {duration:400, transition:Fx.Transitions.Sine.easeInOut});
		
		if(type == "enter" || type == "all"){
			el.addEvent('mouseenter', function(){
				if(!el.hasClass("active")) fxBlock.stop().start({'color' : _HOVERCOLOR});
			});
		}
		if(type == "leave" || type == "all"){
			el.addEvent('mouseleave', function(){
				if(!el.hasClass("active")) fxBlock.stop().start({'color' : '#fff'});
			});
		}
}

/* HOR SCROLLER artist overview and gallery thumbs */
function initArtistsHorScroller(sWrapper, sBlock){

	var elWrapper	= $$("." + sWrapper)[0];
	var arBlocks	= $$("." + sWrapper + " ." + sBlock);
	
	if(elWrapper != null && elWrapper != "" ){

		var iBlockCount	= arBlocks.length;
		var iBlockWidth = arBlocks[0].getSize()["size"]["x"];

		if(iBlockCount > 1){
			iNewWrapperWidth =  iBlockWidth * iBlockCount;
			elWrapper.setStyles({"width": iNewWrapperWidth, position:"absolute" });
			
			var elScrollArea = $("scroller-hor");
			var iScrollerWidth = (iBlockWidth / iBlockCount).toInt();
			var elScrolHandle = $("scroll-handle");
			elScrolHandle.setStyles({"width":iScrollerWidth+"px" });

			makeScrollbar( elWrapper, $("scroller-hor"), $("scroll-handle"), true, false, {"i":iBlockCount,"x":iBlockWidth, "y":0}, true );
		}
		if($("fake-bg") != null || $("fake-bg")) $("fake-bg").setStyle('opacity', "0.7");

		//if(iBlockCount => 0) animateFirstTime.delay(_DURATION_FIRSTANIMATION);
		/* HOVER ELEMENT 
		var elHover = new Element("div", {id: "scroll-hover"});
		var	iHoverHeight = 10;
		elHover.setStyles({ width: iScrollerWidth, height:iHoverHeight, top:-iHoverHeight, left:0 });
		
		elScrolHandle.addEvent("mouseenter", function(){
			elHover.injectInside(elScrolHandle);
		});
		elScrolHandle.addEvent("mouseleave", function(){
			$("scroll-hover").remove();
		});
		*/
	}
}


/*
 * SCROLLER VERTICAL
 */

function vertical_scroller(){
		
	var elLeftCol = $$(".left-col")[0];
	var elContentWrapper = $("scroll-content-wrapper");
	var elContent = $("scroll-content");

	//if((elContentWrapper != null && elContent != null) && ($("biography") != null || $("publication") != null) ){
	if(elContentWrapper != null && elContent != null){

		elLeftCol.setStyle('overflow-y','hidden');
		//elContentWrapper.setStyle('overflow','hidden'); //bottom overflow doesnt work in FF
		elContentWrapper.setStyle('overflow','auto'); 
		elContent.setStyle("margin",'0 25px 0 0');

		if(elContentWrapper.getSize()["size"]["y"] >= 441) {
			var elScrolArea = new Element("div", { id:"scroll-area-vert"});
			var elScrolHandle = new Element("div", { id:"scroll-handle-vert"});
			elScrolHandle.injectInside(elScrolArea);
			elScrolArea.injectInside(elLeftCol).setStyles({
				position: "absolute", top: "0",	right: "0", height:"460px"
			});
	
			makeScrollbar( elContent, elScrolArea, elScrolHandle, false, false, {"x":0, "y":400}, true );

			elScrolHandle.addEvent("mouseenter",function(){
				this.setStyles({"background-image":"url(/assets/project/img/common/scroll-btn-vert-hover.gif)"});
			});
			elScrolHandle.addEvent("mouseleave",function(){
				this.setStyles({"background-image":"url(/assets/project/img/common/scroll-btn-vert.gif)"});
			});
		}
	}
}

function vertical_scroller_artist_dd(){
		
	var elDDWrapper = $("dropdown-other-artist");
	var elArtistWrapper = $("dropdown-artist-wrapper");
	var elArtistContent = $("dropdown-artist-content");
	//var elContent = $("scroll-content");

	if(elArtistWrapper != null && elDDWrapper != null){

		elDDWrapper.setStyles({overflow:"hidden"});
		if(window.ie7) elDDWrapper.setStyles({position:"relative"});

		elArtistWrapper.setStyles({overflow:"hidden", height:"480px", position:"relative"});
		elArtistContent.setStyles({position:"absolute", left:"0", top:"0"});

		if(elArtistContent.getSize()["size"]["y"] > 480) {
			
			var elScrolArea2 = new Element("div", { id:"scroll-area-vert2"});
			var elScrolHandle2 = new Element("div", { id:"scroll-handle-vert2"});
			elScrolHandle2.injectInside(elScrolArea2);
			elScrolArea2.injectInside(elArtistWrapper).setStyles({
				position: "absolute", top: "0",	right: "3px", height:"480px"
			});
			
			//arrControls = new Array();
			//arrControls["hitbox"] = elArtistWrapper;
			//arrControls["left"] = true;

			makeScrollbar( elArtistContent, elScrolArea2, elScrolHandle2, false, false, {"x":0, "y":480}, false );

			elScrolHandle2.addEvent("mouseenter",function(){
				this.setStyles({"background-image":"url(/assets/project/img/common/scroll-btn-vert-hover.gif)"});
				
			});
			elScrolHandle2.addEvent("mouseleave",function(){
				this.setStyles({"background-image":"url(/assets/project/img/common/scroll-btn-vert.gif)"});
			});
		}
	}
}

/* Thumbs behaviour */
function thumbs_hover(){
	$$(".thumbs-block .thumb a").each(function(el){
		//1.1
		//alert('e');
		var fxBlock = new Fx.Styles(el, {duration:500, transition:Fx.Transitions.Sine.easeInOut});
		
		if(el.getProperty("title") != "" && el.getProperty("title") != null){
			el.addEvent('click', function(e){
				e = new Event(e).stop();
				getPage(el);
				window.setHash($get("#", el.getProperty("href")));
			});
		}
		el.addEvent('mouseenter', function(){
			fxBlock.stop().start({'background-color' : _HOVERTHUMBS});
			
			//alert('f');
		});
		el.addEvent('mouseleave', function(){
			fxBlock.stop().start({'background-color' : _NORMALTHUMBS});
		});
	});

}



/* LANDING PAGE */

function initShowShows(){

	var elWrapperShows = $("wrapper-shows");
	if(elWrapperShows){
		//var iHeight = elWrapperShows.getSize()["size"]["y"];
		var iHeight = 215;
		//elWrapperShows.setStyle("height", 0);
		var fxShowShows = new Fx.Styles(elWrapperShows, {duration:1000, transition:Fx.Transitions.Sine.easeInOut});
		fxShowShows.stop().start({'height' : iHeight});
	}
}
function initScrollerShows(){

	var elWrapperShows = $("wrapper-shows");
	var elOverflow = $("shows-overflow");
	

    
    var iPrevious = $$("a.previous").length;
    var iCurrent = $$("a.current").length;
    var iUpcomming = $$("a.upcomming").length;
    var iStartPos = iPrevious;

    
    //alert('start: ' + iStartPos);

    //no current and no upcomming, so only previous
    if( iUpcomming == 0 && iCurrent == 0) { 
        //alert('no current and no upcomming, so only previous');
		iStartPos = iStartPos -2;
	}
    //checks when current show is available
    else if (iCurrent > 0) {

        /*if( (iCurrent >= 2) || (iCurrent == 1 && iUpcomming > 1) ){
            //keep everything as is.
        } 
        else*/ 
        if(iCurrent == 1 && iUpcomming < 1){
            //alert('1 current and no upcomming');
            iStartPos = iStartPos - 1;
        }

    } else if (iUpcomming <= 1) {
           iStartPos = iStartPos - 1;
    }
    
    else {
       //alert('einde');
    }
    
    /*else { iStartPos = 0; } */
	
	if($('wrapper-shows')){
		var oGallerySlider = new GallerySlider('shows','show','next','prev',{iImageWidthCorrection : 10, iImageLeftMaxCorrection: 2, iStartingImage: iStartPos}); 
	}
	(function(){ initShowShows(); }).delay(300);
}



/* ARTIST */
function initGallerieSlider(){

	if($$('#gallery-wrapper-image #solo-image-1').length > 0 ){
		var oGallerySlider = new GallerySlider('gallery-wrapper-image','image-solo','next','prev',{onSlideComplete:showCredit }); 
		$("fake-bg").setStyle('opacity', 0.7);
		creditsAnimation();
	}
}

/* Solo image credits animation */
function creditsAnimation(){

	var elWrapper = $("credit-wrapper");
	if($defined(elWrapper)){
		var timerHideCredits;
		var elHitArea = $("credit-hitarea");
		var fxToggleCredit = new Fx.Styles(elWrapper, {duration:400, transition:Fx.Transitions.Sine.easeInOut, wait:true});
		
		elHitArea.addEvent("mouseenter", function(){
			showCredit(fxToggleCredit);
			timerHideCredits = $clear(timerHideCredits);
		});
		elHitArea.addEvent("mouseleave", function(){
			timerHideCredits = hideCredit.delay(1000, this, fxToggleCredit);
		});
		showCredit(fxToggleCredit);
		elHitArea.fireEvent("mouseleave", this, 1250);
	}
}
function showCredit(fxToggleCredit){ fxToggleCredit.stop().start({'bottom' : 0}); }
function hideCredit(fxToggleCredit){ fxToggleCredit.stop().start({'bottom' : -20}); }
/* END OF Solo image credits animation */

function animateArtistName(){
	if(slider != null && $("artist-name") != null)
	{ slider.set(1); }
}

function animateFirstTime(){
	if(slider != null && $$(".artists-thumbs")[0] != null){
		var cAnimate = new Chain;
		var step1 = function(){ slider.set(1); }
		var step2 = function(){ slider.set(0); }

		cAnimate.chain(step1);
		cAnimate.chain(step2);
		cAnimate.callChain.delay(_DURATION_FIRSTANIMATION, cAnimate);
		cAnimate.callChain();
	}
}

function _imageSlider(aImages, sFx){
	var mySlide = new Slideshow("slideshow-wrapper", {hu: "", images: aImages, height: 460, width: 453});
}
function imageSlider(aImages, sFx){
	var duration = [2000, 4000];
	var arrImg = aImages;
	var arrLen = arrImg.length;
	var curImg = 0;
	var arrFx = [];
	if(arrLen > 1){
		arrImg.each(function(el, i){
			fx = new Fx.Style(el, 'opacity', {duration: duration[0]});
			arrFx.push(fx);
			el.setStyle("z-index",arrLen-i);
		});

		var periodical;
		 
		var next = function() {

			arrFx[curImg].start(1,0);	
			if(curImg < arrLen-1 ) { 
				curImg++;
			}
			else { curImg = 0; }
			arrFx[curImg].start(0,1);
	;

			/*effect.start('#6684a0').chain(function() {
				effect.start('#bcd965');
			});*/
		}
		 
		next();
		periodical = next.periodical(duration[1]);
	}
}


/*function togglePublication(sOn, sOff){
	var eOn = $(sOn);
	var eOff = $(sOff);
	eOff.setStyle("display", "none");
	eOn.setStyle("display", "block");
}*/

function centerContent(){

	elCenter = ( $("content-wrapper") ) ? $("content-wrapper") : $("landing-wrapper");
	//if(bFade) elCenter.setStyle("opacity","0");
	elCenter.setStyle("opacity","0");
	var el = (elCenter) ? elCenter : false;
				
		if(el){
			//var iHeaderHeight = ($("header-wrapper")) ? $("header-wrapper").getSize()["size"]["y"] : 95;
			var iHeaderHeight = 95;
			
			var iTop, iLeft, iH, iW;
			var bCenter = false;

			iW = el.getSize()["size"]["x"];
			iH = el.getSize()["size"]["y"];
			iH2 = iH + iHeaderHeight;
			iTop = 0;
			iLeft = 0;

			if(window.getSize()["size"]["y"] > iH2 ){
				bCenter = true;
				iTop = (window.getSize()["size"]["y"] / 2) - ( (iH-iHeaderHeight) / 2);
				iLeft = (window.getSize()["size"]["x"] / 2) - ( iW / 2);
				
				el.setStyles({ "position" : "absolute", "top" : iTop, "left" : iLeft });
			} else {
				iTop = el.getTop();
				iLeft = el.getLeft();
				
			}
			//if(bFade) preloaderShow(el, {"left":iLeft, "top":iTop, "h":iH, "w":iW }); //sFade is global
			preloaderShow(el, {"left":iLeft, "top":iTop, "h":iH, "w":iW }); //sFade is global
		}
}

function preloaderHide(el){

	elContent = el;
	elPreloader = $("preloader");
	elBackground = $("bgimagewrapper");
	iDuration = 500;

	var fxPreloader = new Fx.Style(elPreloader, 'opacity', {duration:iDuration, transition:Fx.Transitions.Sine.easeInOut, wait:true});
	var fxContent = new Fx.Style(elContent, 'opacity', {duration:iDuration, transition:Fx.Transitions.Sine.easeInOut, wait:true});
	var fxBackground = new Fx.Style(elBackground, 'opacity', {duration:iDuration, transition:Fx.Transitions.Sine.easeInOut, wait:true});

	
	var fPreloaderHide = function(){ fxPreloader.stop().start(0); }
	var fShowContent = function(){ fxContent.start(1); }
	var fShowBackBg = function(){ fxBackground.start(1); }
	var fAnimateFirstTime = function(){ animateArtistName(); }

	addToLoadingSequence(fPreloaderHide,100);
	addToLoadingSequence(fShowBackBg, 0);
	addToLoadingSequence(fShowContent, 100);
	
	addToLoadingSequence(fAnimateFirstTime, 2500);
}

function preloaderShow(el, arrMeas){
				
	var el = el;
	if(el != null){
		
		var iLeft, iTop, iW, iH;
		iTop = arrMeas["top"];
		iLeft = arrMeas["left"];
		iH = arrMeas["h"];
		iW = arrMeas["w"];
				
		var elPreloader = ($defined($("preloader"))) ? $("preloader") : new Element("div", {id:"preloader"});

		elPreloader.setStyles({"z-index":9999,opacity: 0.5, visibility:"visible", height: iH, width: iW, position: "absolute", left:iLeft, top:iTop });
		elPreloader.injectInside($("wrapper"));

	}

	window.addEvent("domready", function() {
		if(el) preloaderHide(el);
		callPreloaderChain.delay(1000);
	});
}

function addToLoadingSequence(fFunction, iDelay){
//	aPreLoad[aPreLoad.length + 1] = {"function": fFunction, "delay": iDelay};
	//var step = fFunction;
	cPreload.chain(fFunction);
}
function callPreloaderChain(){
	//alert('1');
	cPreload.callChain.delay(100, cPreload);
	//alert('2');
	cPreload.callChain.delay(200, cPreload);
	//alert('3');
	cPreload.callChain();
	//alert('4');
	cPreload.callChain.delay(2500, cPreload);
	//alert('5 end');
}

function commonStuff(){
	if($$(".left-col")[0] != null) $$(".left-col")[0].setStyle('overflow-y','hidden');
	if($('publication') != null && $("fake-bg") != null){
		$('fake-bg').setStyle('opacity',0.7);
	}
}

function initDomReady(){
	
	centerContent()
	/* landing */
	if($('landing-wrapper') != null){
		initScrollerShows();
		$('wrapper').setStyle('opacity',1);
	}

	if($('content-wrapper') != null){
		/* general */
		submenu_tween();
		init_dropdown_menu();
		vertical_scroller();
		vertical_scroller_artist_dd();
		initArtistsHorScroller("scroll-overflow", "scroll-block");
		thumbs_hover();
		$('wrapper').setStyle('opacity',1);
	}

	//if($$('#gallery-wrapper-image #solo-image-1').length > 0 ){
	if($$('#gallery-wrapper-image').length > 0 ){
		/* solo image */
		initGallerieSlider();
	}
	/* other */
	if($defined($("slideshow-wrapper"))) imageSlider($$('.right-col img'), 'alpha');
	animateFirstTime.delay(_DURATION_FIRSTANIMATION);
	commonStuff();
}

function initLoad(){
	callPreloaderChain();
}

window.addEvent("load", function() {
	initDomReady();	//initLoad();
});

window.addEvent('domready', function() {
	if($("header-menu") != null) $("header-menu").setStyle("visibility", "hidden");
	if($("header-name") != null) $("header-name").setStyle("visibility", "hidden");
	var currentLocation = "";
	if(window.location.href.indexOf("/artists/") > -1){
		currentLocation = "artists";
	}
	else if(window.location.href.indexOf("/agenda/") > -1){
		currentLocation = "agenda";
	}
	else if(window.location.href.indexOf("/publications/") > -1){
		currentLocation = "publications";
	}
	else if(window.location.href.indexOf("/limited_editions/") > -1){
		currentLocation = "limited_editions";
	}
	else if(window.location.href.indexOf("/miniature_museum/") > -1){
		currentLocation = "miniature_museum";
	}
	else if(window.location.href.indexOf("/about_us/") > -1){
		currentLocation = "about_us";
	}
	else if(window.location.href.indexOf("/contact/") > -1){
		currentLocation = "contact";
	}else{
		currentLocation = "";	
	}
	initSWFObject(currentLocation);
	
});


var slider = null;