function flipDisplay(ele,text,slides,scn,show){
ele.showText = function(){
		if (this.inframe) setClassName(this); else if (this.display.classbox) swapTextBox(this.texto,this.display.classbox);
		var heading = xGetElementById('heading');
		if (!this.display.closefilmframe && this.heading) {
				xDisplay(heading.firstChild,'none');//home heading
				heading.lastChild.innerHTML = "&#8212;&nbsp;"+this.heading+'...';//section heading
				xDisplay(heading.lastChild,'block');
				} else if (!this.display.closefilmframe && !AD.highlights) {xDisplay(heading.lastChild,'none');xDisplay(heading.firstChild,'block');}
		if (AD.highlights) {
				xDisplay('tourbrowser',"block");//when displaying tours
				if(AD.tournavig) xDisplay('tournavig','block');//false when landing on a tour page
				} else xDisplay('tournavig','none');
		//activateScroller(this);
		if(this.display.hidescreen) hideScreen();
		if (AD.showtourlistmenu) xDisplay('tourlistmenu','block'); 
		clearTimeout(AD.textotimer);
		clearTimeout(AD.frametimer);
		flipText(this,true);
		if (AD.clicked && this.tours) xDisplay('destinationtours','block');
		}
ele.activateSlides = function(){
		if (!slides) return;
		clearTimeout(AD.randomimagestimer);
		if (!this.display.no_mouseover) {preloadScreenImages(this); activateMouseOverSlides(this);}
		if (this.rotatePics) {AD.pauseslideshow=false;rotateHomePics(0);}//Home Menu
		}
ele.showSlides = function(){
		clearTimeout(AD.frametimer);
		clearTimeout(AD.randomimagestimer);
		clearTimeout(AD.slidestimer);
		swapSlidePics(this.slideImages);
		flipSlides(this,true);
		}
ele.changeSlides = function(){
	if (!slides) {clearTimeout(AD.frametimer);flipFilmFrame(this);return;}//otherwise will be called after flipSlides()
	clearTimeout(AD.randomimagestimer);
	clearTimeout(AD.slidestimer);
	flipSlides(this,show);
	}
ele.changeScreenPic = function(){
	if(!scn) return;
	clearTimeout(AD.screentimer);
	swapScreenPics(this.screenImage,this.screenformat);
	flipScreen(this,false);
	}
if (text) {clearTimeout(AD.textotimer); flipText(ele,show);}//will activate changeSlides() upon completion
if (!text && slides) ele.changeSlides();//otherwise will be called after flipText
if (!text && scn) ele.changeScreenPic();//otherwise will be called after flipText
}

function setClassName(ele){
xGetElementById(ele.display.displaybox).className = ele.display.classbox;
}

function swapScreenPics(pic,format){
clearTimeout(AD.screentimer);
var pic2 = xGetElementById('screen_pic2');
var pic1 = xGetElementById('screen_pic');
if (format) xOpacity('screencut',1); else xOpacity('screencut',0);
pic2.className = format;
pic1.className = format;
pic2.src = pic1.src;
xOpacity(pic2, 1);
xOpacity(pic1, 0);
pic1.src = pic.src;
AD.screencounter =100;
}

function hideScreen(){
clearTimeout(AD.randomimagestimer);
var pic2 = xGetElementById('screen_pic2');
var pic1 = xGetElementById('screen_pic');
pic2.className = null;
pic1.className = null;
xOpacity('screencut',1);	
}
function showScreen(){
var pic2 = xGetElementById('screen_pic2');
var pic1 = xGetElementById('screen_pic');
pic2.className = null;
pic1.className = null;
xOpacity(pic1,1);
xOpacity('screencut',0);
}

function swapTextBox(text,classbox){
var box = xGetElementById('TextBox');
box.scrollTop = 0;//in case text has been scrolled
xHeight(box,xHeight('control')-xTop('control'));//in case of changes in main_frame Height
var testbox = xGetElementById('TestBox');//test box is only used to check text height
box.className = classbox;
testbox.className = classbox;
testbox.innerHTML = text;
box.innerHTML = text;
box.style.overflowY = (xHeight(testbox)<=xHeight('control')-xTop('control')+50)?'hidden':'scroll'; 
if (window.opera) box.style.overflow = (xHeight(testbox)<=xHeight('control')-xTop('control')+50)?'hidden':'scroll';//overflowY not supported by opera
}

function swapSlidePics(album){
var slideroot = xGetElementById('slidenav');
var spacer = xGetElementsByClassName('slidespacer',slideroot,'div');
var tr = xGetElementsByClassName('picSlide',slideroot,'img');
var DivWidth=0;
//var DivHeight=0;
for (i=0; i<tr.length; i++){
	if (i<album.length) {
		tr[i].src = album[i].src;
		tr[i].width = album[i].width;
		//if(album[i].height<=100 && album[i].height>DivHeight) DivHeight = album[i].height;
		//tr[i].height = DivHeight;
		xDisplay(tr[i].parentNode,"block");
		DivWidth += tr[i].width + 14;
		xWidth(spacer[i],tr[i].width+2);
		//xHeight(spacer[i],tr[i].height);
		//tr[i].style.filter = (!album.no_mouseover)?'gray':'none';
		}
		else xDisplay(tr[i].parentNode,"none");
	}
xWidth('slidenav',DivWidth);
//xHeight('slidenav',DivHeight+4);
}

function flipScreen(ele,show){
var dir = (show)?1:-1;//show is always set to false cause both pics change simultaneously!
var end = (dir==1)?100:0;
var X,Y;
if (AD.screencounter*dir<end*dir){	
	AD.screencounter += dir*(1+Math.abs(end-AD.screencounter)/20);
	if(AD.screencounter*dir>=end*dir) AD.screencounter = end;
	Y = AD.screencounter/100;
	X = (100-AD.screencounter)/100;
	xOpacity('screen_pic', X);
	xOpacity('screen_pic2', Y);
	AD.screentimer = setTimeout(function(){flipScreen(ele,show)},AD.counterspeed);
	} else ele.activateSlides();
}

function flipFilmFrame(ele){
var dis = ele.display;
var dir = (dis.closefilmframe)?-1:1;
if (dir==1) xTop('control',31); else xTop('control',3);
var end = (dir==1)?100:0;
var Y,T;
if (AD.framecounter*dir<end*dir){
	AD.framecounter += dir*(1+Math.abs(end-AD.framecounter)/4);
	if(AD.framecounter*dir>=end*dir) AD.framecounter = end;
	Y = Math.round(128*AD.framecounter/100);
	T = Math.round(30*AD.framecounter/100);
	xHeight('main_frame',AD.heightmain+128-Y);
	xTop('heading',T-30);
	xHeight('control',xHeight('main_frame'));
	AD.frametimer = setTimeout(function(){flipFilmFrame(ele)},AD.counterspeed);
	} else ele.showText();
}

function flipText(ele,show){
var dir = (show)?-1:1;
var end = (dir==1)?100:0;
var Y;
var displaybox = (show)?ele.display.displaybox:AD.activebox.display.displaybox;
if (show || !AD.activebox) AD.activebox = ele;
H = xHeight(displaybox)/2;
if (AD.textocounter*dir<end*dir){
	xShow(displaybox);//necessary with Netscape
	AD.textocounter += dir*(1+Math.abs(end-AD.textocounter)/6);
	if(AD.textocounter*dir>=end*dir) AD.textocounter = end;
	Y = Math.round(H*AD.textocounter/100);
	xClip(displaybox,Y,xWidth(displaybox),xHeight(displaybox)-Y,0);
	xDisplay(displaybox,"block");	
	AD.textotimer = setTimeout(function(){flipText(ele,show)},AD.counterspeed);
	} else if (!show) {	xHide(displaybox);
						if(ele.rst) ele.rst(); else ele.changeSlides();
						} else ele.changeScreenPic();
}

function flipSlides(ele,show){
var slideroot = xGetElementById('slidenav');
var slides = xGetElementsByClassName('picSlide',slideroot,'img');
var dir = (show)?1:-1;
var end = (dir==1)?100:0;
var L,R,counter;
if (AD.slidecounter*dir<end*dir){	
	AD.slidecounter += dir*(1+Math.abs(end-AD.slidecounter)/4);
	if(AD.slidecounter*dir>=end*dir) AD.slidecounter = end;
	counter=(show)?AD.slidecounter:100-AD.slidecounter;
	for(i=0;i<slides.length;i++) {
		R = (show)?Math.round(slides[i].width*counter/100):slides[i].width;
		L = (show)?0:Math.round(slides[i].width*counter/100);
		xClip(slides[i],0,R,xHeight(slides[i]),L);
		}
	AD.slidestimer = setTimeout(function(){flipSlides(ele,show)},AD.counterspeed);
	} else if (!show) ele.showSlides(); else flipFilmFrame(ele);
}

function flipGoogleMap(show){
var dir = (show)?-1:1;
var end = (dir==1)?100:0;
var L;
var map = xGetElementById('googlemap');
var W = xWidth(map)+30;
if (AD.mapcounter*dir<end*dir){
	AD.mapcounter += dir*(1+Math.abs(end-AD.mapcounter)/6);
	if(AD.mapcounter*dir>=end*dir) AD.mapcounter = end;
	L = -Math.round(W*AD.mapcounter/100);
	map.style.marginRight = L;
	AD.maptimer = setTimeout(function(){flipGoogleMap(show)},AD.counterspeed);
	}	
}

function flipMenu(show){
if (show) {clearTimeout(timerloading);resetLoading();xDisplay("animation","none");}
var dir = (show)?1:-1;
var end = (dir==1)?9.8:1;
var X;
if (AD.menucounter*dir<end*dir){
	AD.menucounter+=dir;
	if(AD.menucounter*dir>=end*dir) AD.menucounter = end;
	X = 0.2 + Math.log(AD.menucounter)/Math.LN10;
	xOpacity('navigation', X);
	timermenu = setTimeout(function(){flipMenu(show)},AD.counterspeed);
	} else if (show&&IE) xGetElementById('navigation').style.filter = null;//for IE with mouseover!
}

function activateMouseOverSlides(ele){
var slideroot = xGetElementById('slidenav');
var tr = xGetElementsByClassName('picSlide',slideroot,'img');
getRandomImageNumber(ele);
for (i=0; i<tr.length; i++) {
	tr[i].indexnumber = i;
	tr[i].style.cursor="pointer";
	tr[i].onmousedown = function(){
		AD.pauseslideshow = false;
		if (this.indexnumber == AD.ImageNumber) return;
		clearTimeout(AD.randomimagestimer);
		AD.ImageNumber = this.indexnumber;	
		swapImagesRandomly(ele);
		}
	}
AD.randomimagestimer = setTimeout(function(){swapImagesRandomly(ele)},10000);
}

function swapImagesRandomly(ele){
var slideroot = xGetElementById('slidenav');
var tr = xGetElementsByClassName('picSlide',slideroot,'img');
if (!AD.pauseslideshow){
	ele.screenImage.src = ele.screenImageLoaded[AD.ImageNumber].src;
	displaySelection(ele);
	} 
AD.randomimagestimer = setTimeout(function(){
		if(!AD.pauseslideshow){
			AD.ImageNumber++;
			if (AD.ImageNumber>=ele.slideImages.length) AD.ImageNumber=0;	
			}
		swapImagesRandomly(ele);
	},10000);
}

function getRandomImageNumber(ele){
AD.ImageNumber = 0;
ele.screenImage = new Image();
}

function preloadScreenImages(ele){
var album = ele.slideImages;
ele.screenImageLoaded = new Array();
var image,path;
for (i=0; i<album.length; i++) {
		ele.screenImageLoaded[i] = new Image();
		path = album[i].src.split('/');
		image="";
		for (j=0;j<path.length-1;j++) image += path[j]+"/";
		image +="full_size/"+path[path.length-1];
		ele.screenImageLoaded[i].src = image;
	}
}

function rotateHomePics(index){
ele = new Object();
ele.screenImage = new Image();
var image = readHomePics(index);
if (image == 'end') {index=-1; image = HomePic.src;}
ele.screenImage.src = image;
AD.randomimagestimer = setTimeout(function(){
		if(!AD.pauseslideshow && image) {displaySelection(ele);index++;}
		rotateHomePics(index);
	},4000);
}

function readHomePics(index){
var iframe = xGetElementById('homepics_iframe');
//if(!iframe.loaded) return false;
var framecontent;
if (iframe.contentDocument) framecontent = iframe.contentDocument; else if (iframe.contentWindow) framecontent=iframe.contentWindow.document;
var ele=xGetElementsByTagName("img",framecontent);
if (index>=ele.length) return 'end';	
return trimPath(ele[index].src);
}
