
function lib_bwcheck(){ //Browsercheck (needed)
	this.ver=navigator.appVersion
	this.agent=navigator.userAgent
	this.dom=document.getElementById?1:0
	this.opera5=(navigator.userAgent.indexOf("Opera")>-1 && document.getElementById)?1:0
	this.ie5=(this.ver.indexOf("MSIE 5")>-1 && this.dom && !this.opera5)?1:0; 
	this.ie6=(this.ver.indexOf("MSIE 6")>-1 && this.dom && !this.opera5)?1:0;
	this.ie4=(document.all && !this.dom && !this.opera5)?1:0;
	this.ie=this.ie4||this.ie5||this.ie6
	this.mac=this.agent.indexOf("Mac")>-1
	this.ns6=(this.dom && parseInt(this.ver) >= 5) ?1:0; 
	this.ns4=(document.layers && !this.dom)?1:0;
	this.bw=(this.ie6 || this.ie5 || this.ie4 || this.ns4 || this.ns6 || this.opera5)
	return this
}
var bw=new lib_bwcheck()
//The speed of the timeout between each scroll.
timSpeed = 50

//The height of the container (change this when it scrolls to much or to little)
contHeight = 100

/*********************************************************************************
This is the object constructor function, which applies 
methods and properties to the Cross-browser layer object
*********************************************************************************/
function makeScrollObj(obj,nest){
	nest=(!nest) ? "":'document.'+nest+'.'		
	this.el=bw.dom?document.getElementById(obj):bw.ie4?document.all[obj]:bw.ns4?eval(nest+'document.'+obj):0;
  	this.css=bw.dom?document.getElementById(obj).style:bw.ie4?document.all[obj].style:bw.ns4?eval(nest+'document.'+obj):0;		
	this.height=bw.ns4?this.css.document.height:this.el.offsetHeight
	this.top=b_gettop										
	return this
}

// A unit of measure that will be added when setting the position of a layer.
var px = bw.ns4||window.opera?"":"px";

//Getting the top for the top method
function b_gettop(){
	var gleft=(bw.ns4 || bw.ns6)?parseInt(this.css.top):eval(this.css.pixelTop);
	return gleft;
}
//Variables
var scrollTim = 1;
var active = 'ting1';

/*********************************************************************************
The scroll function. Checks what way to scroll and checks if the
layer is not already on top or bottom.
*********************************************************************************/
function scroll(speed){
	clearTimeout(scrollTim)
	way = speed>0?1:0
	if ((!way && oScroll[active].top()>-oScroll[active].height+contHeight) || (oScroll[active].top()<0 && way)){
		oScroll[active].css.top = (oScroll[active].top()+speed)+px
		scrollTim = setTimeout("scroll("+speed+")",timSpeed)
	}
}
//Clears the timeout so the scroll stops, this is called onmouseout.
function noScroll(){
	clearTimeout(scrollTim)
}
/*********************************************************************************
Changes the active layer. Hides the one that's visible and
shows the "new" one. Also set's the new layers top to
0 so it starts at top.
*********************************************************************************/
function changeActive(section,num){
if (opened == true){
	MM_showHideLayers('divControl','',eval(lang) [section] ['show' + num ]);
	}
	oScroll[active].css.visibility = "hidden"
	active = section + num
	oScroll[active].css.top = 0+px
	//show current page #
		switch (num)
		{
		case 1:
		MM_swapImage('numOn','','../images/1.gif',1);
		break;
		case 2:
		MM_swapImage('numOn','','../images/2.gif',1);
		break;
		case 3:
		MM_swapImage('numOn','','../images/3.gif',1);
		break;
		case 4:
		MM_swapImage('numOn','','../images/4.gif',1);
		break;
		case 5:
		MM_swapImage('numOn','','../images/5.gif',1);
		break;
		case 6:
		MM_swapImage('numOn','','../images/6.gif',1);
		break;
		case 7:
		MM_swapImage('numOn','','../images/7.gif',1);
		break;
		case 8:
		MM_swapImage('numOn','','../images/8.gif',1);
		break;
		case 9:
		MM_swapImage('numOn','','../images/9.gif',1);
		break;
		case 10:
		MM_swapImage('numOn','','../images/10.gif',1);
		break;
		}
	MM_swapImage('_1','', eval(lang) [section] ['image' + num ] ,1)
	imagenext= new Image();
	num1 = num + 1;
	imagenext.src = eval(lang) [section] ['image3' + num1 ];
	if (opened == true){
	oScroll[active].css.visibility = "visible"
	}
}

function pgFor(){

	if(currentPg  < ofNum){
		currentPg = currentPg + 1
      changeActive(section, currentPg);
   }
 if (currentPg < ofNum){  
MM_swapImage('forth','','../images/forth.gif','back','','../images/back.gif',1);
	}else{
	MM_swapImage('forth','','../images/clearDot.gif','back','','../images/back.gif',1);
	//changeActive(section, currentPg);
   }
}
function pgBk(){

if (currentPg > 1){
currentPg = currentPg - 1;
changeActive(section, currentPg);
	}
	
if(currentPg == 1)	{
	MM_swapImage('forth','','../images/forth.gif','back','','../images/clearDot.gif',1);
	}else{
	MM_swapImage('forth','','../images/forth.gif','back','','../images/back.gif',1);
	}
	
}

/*********************************************************************************
Initilizes the page, makes a oScroll Array and calls the object constructor.
Here you can add as many scrollObjects as you want
*********************************************************************************/
function startPage(){
	oScroll = new Array()
	
	// You can add and remove scrollObjects here.
	oScroll['ting1'] =  new makeScrollObj('ting1','divCont')
	oScroll['ting2'] =  new makeScrollObj('ting2','divCont')
	oScroll['ting3'] =  new makeScrollObj('ting3','divCont')
	//oScroll['ting4'] =  new makeScrollObj('ting4','divCont')
	//oScroll['ting5'] =  new makeScrollObj('ting5','divCont')
	//oScroll['ting6'] =  new makeScrollObj('ting6','divCont')
	//oScroll['ting7'] =  new makeScrollObj('ting7','divCont')
	//oScroll['ting8'] =  new makeScrollObj('ting8','divCont')
	
	oScroll['entrance1'] =   new makeScrollObj('entrance1','divCont')
	oScroll['entrance2'] =   new makeScrollObj('entrance2','divCont')
	oScroll['entrance3'] =   new makeScrollObj('entrance3','divCont')
	oScroll['entrance4'] =   new makeScrollObj('entrance4','divCont')
	/*oScroll['entrance5'] =   new makeScrollObj('entrance5','divCont')
	oScroll['entrance6'] =   new makeScrollObj('entrance6','divCont')
	oScroll['entrance7'] =   new makeScrollObj('entrance7','divCont')
	oScroll['entrance8'] =   new makeScrollObj('entrance8','divCont')
	oScroll['entrance9'] =   new makeScrollObj('entrance9','divCont')
	oScroll['entrance10'] =   new makeScrollObj('entrance10','divCont')
	oScroll['entrance11'] =   new makeScrollObj('entrance11','divCont')
	oScroll['entrance12'] =   new makeScrollObj('entrance12','divCont')*/
	
	oScroll['courtyard1'] =   new makeScrollObj('courtyard1','divCont')
	oScroll['courtyard2'] =   new makeScrollObj('courtyard2','divCont')
	oScroll['courtyard3'] =   new makeScrollObj('courtyard3','divCont')
	oScroll['courtyard4'] =   new makeScrollObj('courtyard4','divCont')
	/*oScroll['courtyard5'] =   new makeScrollObj('courtyard5','divCont')
	oScroll['courtyard6'] =   new makeScrollObj('courtyard6','divCont')
	oScroll['courtyard7'] =   new makeScrollObj('courtyard7','divCont')
	oScroll['courtyard8'] =   new makeScrollObj('courtyard8','divCont')
	oScroll['courtyard9'] =   new makeScrollObj('courtyard9','divCont')
	oScroll['courtyard10'] =   new makeScrollObj('courtyard10','divCont')*/
	
	oScroll['maple1'] =   new makeScrollObj('maple1','divCont')
	oScroll['maple2'] =   new makeScrollObj('maple2','divCont')
	oScroll['maple3'] =   new makeScrollObj('maple3','divCont')
	oScroll['maple4'] =   new makeScrollObj('maple4','divCont')
	oScroll['maple5'] =   new makeScrollObj('maple5','divCont')
	oScroll['maple6'] =   new makeScrollObj('maple6','divCont')
	//oScroll['maple7'] =   new makeScrollObj('maple7','divCont')
	//oScroll['maple8'] =   new makeScrollObj('maple8','divCont')
	
	oScroll['dbl1'] =   new makeScrollObj('dbl1','divCont')
	oScroll['dbl2'] =   new makeScrollObj('dbl2','divCont')
	oScroll['dbl3'] =   new makeScrollObj('dbl3','divCont')
	oScroll['dbl4'] =   new makeScrollObj('dbl4','divCont')
	/*oScroll['dbl5'] =   new makeScrollObj('dbl5','divCont')
	oScroll['dbl6'] =   new makeScrollObj('dbl6','divCont')
	oScroll['dbl7'] =   new makeScrollObj('dbl7','divCont')
	oScroll['dbl8'] =   new makeScrollObj('dbl8','divCont')*/
	
	oScroll['water1'] =   new makeScrollObj('water1','divCont')
	oScroll['water2'] =   new makeScrollObj('water2','divCont')
	oScroll['water3'] =   new makeScrollObj('water3','divCont')
	oScroll['water4'] =   new makeScrollObj('water4','divCont')
	oScroll['water5'] =   new makeScrollObj('water5','divCont')
	/*oScroll['water6'] =   new makeScrollObj('water6','divCont')
	oScroll['water7'] =   new makeScrollObj('water7','divCont')
	oScroll['water8'] =   new makeScrollObj('water8','divCont')*/
	
	oScroll['lookout1'] =   new makeScrollObj('lookout1','divCont')
	oScroll['lookout2'] =   new makeScrollObj('lookout2','divCont')
	//oScroll['lookout3'] =   new makeScrollObj('lookout3','divCont')
	//oScroll['lookout4'] =   new makeScrollObj('lookout4','divCont')
	//oScroll['lookout5'] =   new makeScrollObj('lookout5','divCont')
	//oScroll['lookout6'] =   new makeScrollObj('lookout6','divCont')
	//oScroll['lookout7'] =   new makeScrollObj('lookout7','divCont')
	//oScroll['lookout8'] =   new makeScrollObj('lookout8','divCont')
	
	oScroll['scholar1'] =   new makeScrollObj('scholar1','divCont')
	oScroll['scholar2'] =   new makeScrollObj('scholar2','divCont')
	oScroll['scholar3'] =   new makeScrollObj('scholar3','divCont')
	oScroll['scholar4'] =   new makeScrollObj('scholar4','divCont')
	oScroll['scholar5'] =   new makeScrollObj('scholar5','divCont')
	//oScroll['scholar6'] =   new makeScrollObj('scholar6','divCont')
	//oScroll['scholar7'] =   new makeScrollObj('scholar7','divCont')
	//oScroll['scholar8'] =   new makeScrollObj('scholar8','divCont')
	
	
	
	oScroll['ting1'].css.left = 0+px
	oScroll['ting1'].css.top = 0+px
	oScroll['ting1'].css.visibility = "hidden"
	oControl = new makeScrollObj('divControl')
	oControl.css.visibility = "hidden"
	
	preLoad('images/map.jpg','../images/bgBottom.gif','images/textbg.gif','images/imageBg.gif','images/' + lang + '/marker_red_TING.gif','images/' + lang + '/marker_red_entrance.gif','images/' + lang + '/marker_red_courtyard.gif','images/' + lang + '/marker_red_maple.gif','images/' + lang + '/marker_red_dbl.gif','images/' + lang + '/marker_red_water.gif','images/' + lang + '/marker_red_lookout.gif','images/' + lang + '/marker_red_scholar.gif','images/' + lang + '/marker.gif','images/imageBg.gif','images/'+lang+'/ting.gif','../images/buttons/print.gif','../images/'+lang+'/close_blk.gif','../images/buttons/scroll_up.gif','../images/buttons/scroll_down.gif','../images/clearDot.gif','../images/1.gif','../images/forth.gif','../images/1.gif','../images/2.gif','../images/3.gif','../images/4.gif','../images/5.gif','images/qt_'+ lang + '_01-over.gif', 'images/post_'+lang+'_01-over.gif','images/back.gif');
	var sections = new Array('ting','scholar','lookout','water','dbl','maple','courtyard','entrance');
	preloadFirstImg(sections);
	
}

//************image preloading*****************

function preLoad(images)
{
   var allImages = new Array(images);
   preloadImages(allImages);
}

function preloadImages(the_images_array) {
   for(var loop = 0; loop < the_images_array.length; loop++)
   {
 	var an_image = new Image();
	an_image.src = the_images_array[loop];
   }
}

function preloadFirstImg(sections){
	for (var loop = 0; loop < sections.length; loop++)
	{
		var an_image = new Image();
		an_image.src = eval(lang) [sections[loop]] ['image1'];
		}
}

/*********************************************
Executes the scrollInit function on pageload.*/
onload = startPage;


//cookie stuff:
var the_info = new Array();
function getCookie(NameOfCookie){
    if (document.cookie.length > 0) {              
    begin = document.cookie.indexOf(NameOfCookie+"=");       
    if (begin != -1) {           
      begin += NameOfCookie.length+1;       
      end = document.cookie.indexOf(";", begin);
      if (end == -1) end = document.cookie.length;
        return unescape(document.cookie.substring(begin, end));
    } 
  }
  return null;
}


function splitCookie(cookie_info)
{
	var separated_values = cookie_info.split("/");
	var property_value = "";
	for (var loop = 0; loop < separated_values.length; loop++)
	{
		property_value = separated_values[loop];
		var broken_info = property_value.split(":");
		var the_property = broken_info[0];
		var the_value = broken_info[1];
		the_info[the_property] = the_value;
	}

}

//change cookie Language:
var flash = the_info['flash'];
var qt = the_info['qt'];
var space = the_info['space'];

function setLang(lang){
//leave a preferences cookie.
setCookie('garden', '/space:'+ space + '/flash:' + flash + '/qt:' + qt + '/lang:' + lang, 2);
	}

function setCookie(NameOfCookie, value, expiredays) {
var ExpireDate = new Date ();
ExpireDate.setTime(ExpireDate.getTime() + (expiredays * 24 * 3600 * 1000));

  document.cookie = NameOfCookie + "=" + escape(value) + 
  ((expiredays == null) ? "" : "; expires=" + ExpireDate.toGMTString());
}

