var IE = (navigator.appName=="Microsoft Internet Explorer")? true:false;
var OPERA = (window.opera)? true:false;
var LeftScreen,TopScreen,clipX, clipY;

var LeftBg;
var timerloading,timermenu,loadtimer;
Landing = new Object;
AD = new Object;
Theme = new Array();
Destination = new Array();
GALLERY = new Array();
TOURS = new Array();
HomePic = new Image();
HomeSlidePics = new Array();


activateHome = function(){
xDisplay('preload','none');xDisplay('animation','none');
HomePic.src = xGetElementById('screen_pic').src;
xGetElementById('screen_pic2').src = HomePic.src;
getHomeSlidePics();
LeftBg = xGetComputedStyle('page_setup', "left",true);
xOpacity('screencut',0);
xClip('control',0,xWidth('control'),0,0);
xClip('home',0,0,0,0);
xClip('thankyou',0,0,0,0);
xClip('longbox',0,xWidth('longbox'),0,0);
xClip('framebox',0,xWidth('framebox'),0,0);
xDisplay("framebox","block");
xShow('highlights');xShow('heading');xShow('logo');
xOpacity('navigation',0.2);

removeBlankNodes('browser');//remove blank spaces (which are taken as nodes by FireFox) through the all tree of the element
removeBlankNodes('tourbrowser');
removeBlankNodes('heading');
removeBlankNodes('tournavig');
removeBlankNodes('topnav');
removeBlankNodes('AboutUs');
removeBlankNodes('loadingbar');
removeBlankNodes('gallery');
removeBlankNodes('framebox');
loadPackages();
activateMenus();
}

function activateMenus(){
AD  = new activeDisplay(10);//counterspeed
AD.homemenu = setMainMenu('topnav');
setGalleryMenu();
AD.activebox.display = new menuDisplay('','home','','','');

Theme = undefined;
Destination = undefined;
GALLERY = undefined;
xGetElementById('googlemap').firstChild.src='';

var name = testFormRedirect('form');//test form redirect
if (!name) Landing = testLandingPage('D');//Destination
if (!name && !Landing.page) Landing = testLandingPage('C');//Tour
if (!name && !Landing.page) Landing = testLandingPage('Q');//About us
if (!name && !Landing.page) Landing = testLandingPage('G');//Gallery
if (name || !Landing) {
	if (name) {
		var thanks = xGetElementById('thankyou');
		thanks.innerHTML = formThankYou(name);
		AD.activebox = thanks;
		AD.activebox.display = new menuDisplay('','thankyou','','','');	
		AD.display = false;
		}
	} else {
		AD.display = false;//so that back button doesnt show
		AD.activebox.display = new menuDisplay('','','','','');
		}

xShow('navigation');
activateMainMenu();
positionne(true);//true means no clipping
xShow('top_frame');xShow('film_frame');xShow('screen_pic');xShow('screen_pic2');
flipMenu(true);
AD.activebox.changeScreenPic = preloadHomePics;
xHeight('page_setup',xHeight('page_setup'));//this is to fix the page height to allow collapsing film_frame when expanding main_frame
if (Landing.page) {
	if (Landing.page!='C') {
		var selection;
		if (Landing.page == 'D') selection = xGetElementById('DestinationMenu').lastChild;
			else if (Landing.page == 'Q') selection = xGetElementById('AboutUs').lastChild;
				else if (Landing.page == 'G') selection = xGetElementById('gallery').lastChild;
					else return;
		Landing.index += getfirstNode(selection,0);//to insure empty nodes are not counted!
		selection = selection.childNodes[Landing.index];
		selection.activate = mouseDownMenu;
		selection.activate();
		} else displayTour(Landing.index);
	} else flipText(AD.activebox,true);//dont preload if landing on secondary pages
}

function getfirstNode(e,node){
while (e.childNodes[node].tagName != "LI") node++;
return node;
}

function displayTour(index){
ele = new Array();
ele.activate = function(){loadTour(index);};
ele[0] = index;
var tour = TOURS[index];
getTourList(ele,0);
preloadTour(tour); 
}

function getHomeSlidePics(){
slideroot=xGetElementById('slidenav');
var spacer = xGetElementsByClassName('slidespacer',slideroot,'div');
var DivWidth=0;
var tr = xGetElementsByClassName('picSlide',slideroot,'img');
for (i=0; i<tr.length; i++) {
	var img = tr[i].src.split('.jpg');
	if (img.length!=1) {
		DivWidth += tr[i].width+14;
		HomeSlidePics.push(new Image());
		HomeSlidePics[HomeSlidePics.length-1].src = tr[i].src;
		xWidth(spacer[i],tr[i].width+2);
		} else xDisplay(tr[i].parentNode,"none");
	}
xWidth('slidenav',DivWidth);
}

function activeDisplay(counterspeed) {
this.counterspeed = 20+counterspeed;
this.screencounter=100;
this.menucounter=1;
this.slidecounter = 100;
this.framecounter = 100;
this.mapcounter = 100;
this.heightmain = xGetComputedStyle('main_frame',"height",true);
this.textocounter=100;//home showing
this.activebox = xGetElementById('HomeMenu');//this set the home layer as showing on the home page
this.refmainmenu = new Object();//active buttons reference
this.reftourmenu = new Object();//active buttons reference
this.display = xGetElementById('HomeMenu');
}

function previousPage(){
if (AD.reftourmenu.clicked) {//from tour to tourlist
	var ele = (AD.clickedselection.tours)?AD.clickedselection.tours:AD.clickedselection;
	ele.activate = displayTourList;
	ele.activate();
	return;
	}
if (AD.destinationtourlistshowing) {resetBrowsers();activateSelection(AD.clickedselection,true);return;}//from destination tourlist to destination
if (AD.previousdisplay)  {//other scenarios
		AD.previousdisplay.reloadPreviousDisplay = mouseDownMenu;
		AD.previousdisplay.reloadPreviousDisplay();
		}
}

function testLandingPage(varname){
var url = window.location.href;
var qparts = url.split("?");
if (qparts.length<=1) return (varname)?false:true;//allow to test if a secondary page is not showing on the location bar
var vars = qparts[1].split("&");
ld = new Object();
ld.page = false;
for (i=0;i<vars.length;i++){
  var parts = vars[i].split("=");
  if (parts[0] == varname){
		ld.page = varname;
		ld.index = parts[1];
		ld.index = unescape(ld.index);// Convert escape code
		ld.index.replace(/\+/g," ");// Convert "+"s to " "s
		ld.index = parseInt(ld.index);
		break;
  		}
  } 
return (ld.page)?ld:false;
}

function displayLoading(){
loading(30,1);
xDisplay("animation","block");
}

function loading(inc,dir){
var bar = xGetElementById('loadingbar');
xDisplay(bar,"block");
if(inc<xWidth(bar)){
	inc+=5*dir;
	bar.firstChild.style.marginLeft = inc + "px"; 
	timerloading = setTimeout(function(){loading(inc,dir)},200);
	} else {clearTimeout(timerloading);resetLoading();}
}

function resetLoading(){
var bar = xGetElementById('loadingbar');
bar.firstChild.style.marginLeft = 30 + "px";
xDisplay(bar,"none");
}

function removeBlankNodes(ele){
var e = xGetElementById(ele);
e.nodecounter=0;
cleanBlankNodes(e);
}

function cleanBlankNodes(ele){//3 is node type TextNode!!!
if (ele.nodeName == "SPAN") return; 
for (i=0; i<ele.childNodes.length;i++) if (ele.childNodes[i].nodeType == 3) ele.removeChild(ele.childNodes[i]); else ele.childNodes[i].nodecounter=0; 
while (ele.nodecounter<ele.childNodes.length) {
	ele.nodecounter++;	
	if(ele.childNodes[ele.nodecounter-1].lastChild) cleanBlankNodes(ele.childNodes[ele.nodecounter-1]);
	}
}

function waitFrameLoading(ele,iframe){
//if(iframe.stopped) return;
if(!iframe.loaded) iframe.timer=setTimeout(function(){waitFrameLoading(ele,iframe);},40);
	else {clearTimeout(iframe.timer);ele.readSelectedPage();}
}

function MM_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);

function positionne(noclip){
var leftbox = xGetComputedStyle('TextBox',"margin-left",true)-21;
if (xClientWidth() < xWidth('positionable_layer')+LeftBg){
	xWidth('page_setup',xClientWidth()-LeftBg);
	xLeft('page_setup',Math.round(LeftBg/2));
	xLeft('positionable_layer', xWidth('page_setup')-xWidth('positionable_layer'));
	}
	else {
		xLeft('positionable_layer',0);
		xWidth('page_setup',xWidth('positionable_layer'));
		xLeft('page_setup',Math.round((xClientWidth()-xWidth('positionable_layer'))/2));		
	}
xLeft('loadingbar', xLeft('page_setup')+150);
if (xClientHeight() > xHeight('page_setup')) xTop('page_setup',Math.round((xClientHeight()-xHeight('page_setup'))/2)); else xTop('page_setup',0);
if (!noclip) clipDisplayBox();
}

function clipDisplayBox(){
var displaybox = AD.activebox.display.displaybox;
xClip(displaybox,0,xWidth(displaybox),xHeight(displaybox),0);//used to reset displaybox to the window size
if (!AD.activebox.inframe) setTextBox(AD.activebox);//used to set the scroller bar 
}

function setTextBox(ele){//used to set the scroller bar
var dis = ele.display.displaybox;
if (dis == 'home' || dis == 'thankyou') return;
var box = (dis!='control')?xGetElementById(dis):xGetElementById('TextBox');
//box.scrollTop = 0;//in case text has been scrolled
var testbox = xGetElementById('TestBox');//test box is only used to check text height
testbox.innerHTML = box.innerHTML;
box.style.overflowY = (xHeight(testbox)<=xHeight('control')-xTop('control'))?'hidden':'scroll'; 
if (window.opera) box.style.overflow = (xHeight(testbox)<=xHeight('control')-xTop('control'))?'hidden':'scroll';//overflowY not supported by opera
}

//window.onscroll = function(){setTimeout('positionne()',100)};
window.onresize =  function(){setTimeout('positionne()',100)};

