function init()	{
	if ( getURLParam('hotspot') == 'true' )	{ show_block();	}
}

function show_songs() {//v0.1 jere
	var obj; 
	obj=MM_findObj('esiintyjat'); 
	obj=obj?obj.style:obj;
	if ( obj.display == 'none' )
		{ 
		obj.display='block'; 
		}else
			{ 
			obj.display = 'none'; 
			}
}
function show_block() {//v0.4 jere
	var obj; obj=MM_findObj('imagemaps'); obj=obj?obj.style:obj;
	var obj2; obj2=MM_findObj('showhide');
	if ( obj.display == 'none' ){ obj.display='block'; obj2.innerHTML = 'Piilota kohdealueet';
		}else{ obj.display = 'none'; obj2.innerHTML = 'N&auml;yt&auml; kohdealueet' }
}
function P7_Snap() { //v2.67 by PVII
 var g,x,y,ox,bx,oy,p,tx,a,b,k,d,da,e,el,tw,q0,xx,yy,w1,pa='px',args=P7_Snap.arguments;a=parseInt(a);
 if(document.layers||window.opera){pa='';}for(k=0;k<(args.length);k+=4){
 if((g=MM_findObj(args[k]))!=null){if((el=MM_findObj(args[k+1]))!=null){
 a=parseInt(args[k+2]);b=parseInt(args[k+3]);x=0;y=0;ox=0;oy=0;p="";tx=1;
 da="document.all['"+args[k]+"']";if(document.getElementById){
 d="document.getElementsByName('"+args[k]+"')[0]";if(!eval(d)){
 d="document.getElementById('"+args[k]+"')";if(!eval(d)){d=da;}}
 }else if(document.all){d=da;}if(document.all||document.getElementById){while(tx==1){
 p+=".offsetParent";if(eval(d+p)){x+=parseInt(eval(d+p+".offsetLeft"));y+=parseInt(eval(d+p+".offsetTop"));
 }else{tx=0;}}ox=parseInt(g.offsetLeft);oy=parseInt(g.offsetTop);tw=x+ox+y+oy;
 if(tw==0||(navigator.appVersion.indexOf("MSIE 4")>-1&&navigator.appVersion.indexOf("Mac")>-1)){
  ox=0;oy=0;if(g.style.left){x=parseInt(g.style.left);y=parseInt(g.style.top);}else{
  w1=parseInt(el.style.width);bx=(a<0)?-5-w1:-10;a=(Math.abs(a)<1000)?0:a;b=(Math.abs(b)<1000)?0:b;
  x=document.body.scrollLeft+event.clientX+bx;y=document.body.scrollTop+event.clientY;}}
 }else if(document.layers){x=g.x;y=g.y;q0=document.layers,dd="";for(var s=0;s<q0.length;s++){
  dd='document.'+q0[s].name;if(eval(dd+'.document.'+args[k])){x+=eval(dd+'.left');y+=eval(dd+'.top');
  break;}}}e=(document.layers)?el:el.style;xx=parseInt(x+ox+a),yy=parseInt(y+oy+b);
 if(navigator.appVersion.indexOf("MSIE 5")>-1 && navigator.appVersion.indexOf("Mac")>-1){
  xx+=parseInt(document.body.leftMargin);yy+=parseInt(document.body.topMargin);}
 e.left=xx+pa;e.top=yy+pa;}}}
}
function getURLParam(strParamName){
  var strReturn = "";
  var strHref = window.location.href;
  if ( strHref.indexOf("&") > -1 ){
    var strQueryString = strHref.substr(strHref.indexOf("&")).toLowerCase();
    var aQueryString = strQueryString.split("&");
    for ( var iParam = 0; iParam < aQueryString.length; iParam++ ){
      if (
aQueryString[iParam].indexOf(strParamName + "=") > -1 ){
        var aParam = aQueryString[iParam].split("=");
        strReturn = aParam[1];
        break;
      }
    }
  }
  return strReturn;
}
function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function show_scrollbar(show) {//v0.4 jere
	var obj; obj=MM_findObj('scrollArea'); obj=obj?obj.style:obj;
	if ( !show ){ obj.display='block';}
}
//We wrap all the code in an object so that it doesn't interfere with any other code
function scroller() {

    //collect the variables
    scroller.docH = document.getElementById("infoTeksti").offsetHeight;
    scroller.contH = document.getElementById("infoTekstiContainer").offsetHeight;
    scroller.scrollAreaH = document.getElementById("scrollArea").offsetHeight;
	if ( scroller.docH > scroller.contH ) {
    //calculate height of scroller and resize the scroller div
    //(however, we make sure that it isn't to small for long pages)
    scroller.scrollH = (scroller.contH * scroller.scrollAreaH) / scroller.docH;
    //if(scroller.scrollH < 15) scroller.scrollH = 15;
    document.getElementById("dragBar").style.height = Math.round(scroller.scrollH) + "px";
    
    //what is the effective scroll distance once the scoller's height has been taken into account
    scroller.scrollDist = Math.round(scroller.scrollAreaH-scroller.scrollH);
    
    //make the scroller div draggable
    Drag.init(document.getElementById("dragBar"),null,0,0,-1,scroller.scrollDist);
    
    //add ondrag function
    document.getElementById("dragBar").onDrag = function (x,y) {
      var scrollY = parseInt(document.getElementById("dragBar").style.top);
      var docY = 0 - (scrollY * (scroller.docH - scroller.contH) / scroller.scrollDist);
      document.getElementById("infoTeksti").style.top = docY + "px";
    }
  }else
  	{
	var obj; obj=MM_findObj('scrollArea'); obj=obj?obj.style:obj;
	obj.display='none';
	}
}

function show_hiddenimage() {//v0.4 jere
	var obj; obj=MM_findObj('hiddenkuva'); obj=obj.style?obj.style:obj;
	var obj2; obj2=MM_findObj('showhideHiddenImage');
	if ( obj.visibility == 'hidden' || obj.visibility == '' ){ obj.visibility='visible'; obj2.innerHTML = 'Piilota kohteet';
		}else{ obj.visibility = 'hidden'; obj2.innerHTML = 'Näytä kohteet'; }
}
function loadsound(sound, url)
	{
	var url_prefix = "";
	var path = ""; 
	var href = document.location.href; 
	var string = href.split( "/" ); 
	var CheckNum = parseInt(url);
	if ( isNaN(CheckNum) )
		{
		url = 0;
		}
	for ( var i = 2; i < ( string.length-(1+url) ); i++ ) { 
			path += string[ i ] +"/"; }
	if ( isNaN(CheckNum) )
		{
		play_this = "http://"+ path +"aanet/"+ sound +"|";
		} else
			{
			if ( sound != "stop" ) {
				play_this = "http://"+ path +"aanet/"+ sound; } else {
					play_this = "stop";	}
			}
	playing_path = "http://"+ path +"flash/tiny.swf?speech="+ play_this;
	//alert(path);
	parent.player.location.href = playing_path;
	}
function preloadImages()
	{
	MM_preloadImages('kuvat/valikko/kasvio_over.gif','kuvat/valikko/kasvustot_over.gif','kuvat/valikko/itiokasvit_over.gif','kuvat/valikko/siemenkasvit_over.gif','kuvat/valikko/solurakenteita_over.gif','kuvat/valikko/lisaantyminen_over.gif','kuvat/valikko/sienet_over.gif')
	}
function URLEncode(plaintext)
{
	// The Javascript escape and unescape functions do not correspond
	// with what browsers actually do...
	var SAFECHARS = "0123456789" +					// Numeric
					"ABCDEFGHIJKLMNOPQRSTUVWXYZ" +	// Alphabetic
					"abcdefghijklmnopqrstuvwxyz" +
					"-_.!~*'()";					// RFC2396 Mark characters
	var HEX = "0123456789ABCDEF";

	//var plaintext = document.URLForm.F1.value;
	var encoded = "";
	for (var i = 0; i < plaintext.length; i++ ) {
		var ch = plaintext.charAt(i);
	    if (ch == " ") {
		    encoded += "+";				// x-www-urlencoded, rather than %20
		} else if (SAFECHARS.indexOf(ch) != -1) {
		    encoded += ch;
		} else {
		    var charCode = ch.charCodeAt(0);
			if (charCode > 255) {
			    alert( "Unicode Character '" 
                        + ch 
                        + "' cannot be encoded using standard URL encoding.\n" +
				          "(URL encoding only supports 8-bit characters.)\n" +
						  "A space (+) will be substituted." );
				encoded += "+";
			} else {
				encoded += "%";
				encoded += HEX.charAt((charCode >> 4) & 0xF);
				encoded += HEX.charAt(charCode & 0xF);
			}
		}
	} // for

	//document.URLForm.F2.value = encoded;
	return encoded;
};

function actFloatLayer(slideTime,layer_top,layer_height,browser, layer_name) // modded by Jere Tiihonen
	{  
	//alert(layer_name);
	switch(browser)
		{
			case (1):
				//find = document.body.clientHeight;
				find = (document.compatMode=="CSS1Compat")?document.documentElement.clientHeight:document.body.clientHeight;
				current = eval(layer_name +'.style.pixelTop');
				scrollAt = (document.compatMode=="CSS1Compat")?document.documentElement.scrollTop:document.body.scrollTop;
				break;
			case (2): 
				find = window.innerHeight;
				current = document.layer_name.top;
				scrollAt = window.pageYOffset;
				break;
			case (3): 
				find = window.innerHeight;
				current = parseInt(document.getElementById(layer_name).style.top);
				scrollAt = window.scrollY;
				break;
		}

	if (isNaN(Math.log(scrollAt-=layer_top))) scrollAt = 0;
	newTarget = scrollAt;
	if (find < layer_height)
		{
		do_this_shit = false;
		if (scrollAt - (layer_height - find) > current)
			{
			newTarget -= (layer_height - find);
			do_this_shit = true;
			}
			else if (scrollAt < current)
				{
				do_this_shit = true;
				}
		}
		else
			{
			do_this_shit = true;
			}

	if ( current != newTarget && do_this_shit == true)
		{        
		if (newTarget !=  this.target ) 
			{ 
			target = newTarget;
			now = new Date();
			Mul = target - current; // 
			Wave = Math.PI / ( 2 * slideTime );
			Pass = now.getTime();
			if (Math.abs(Mul) > find) 
				{ 
				Dis = (Mul > 0) ? target - find : target + find ;
				Mul = (Mul > 0) ? find : -find ;
				}
				else
					{
					Dis = current
					} 
			}
		now = new Date();
		newPosition = Mul * Math.sin( Wave * ( now.getTime() - Pass ) ) + Dis;
		newPosition = Math.round(newPosition);
		if (( Mul > 0 && newPosition > current+20 ) || ( Mul < 0 && newPosition < current )) 
			{ 
			switch(browser)
				{
					case (1):
						eval(layer_name +'.style.pixelTop = newPosition');
						break;
					case (2):
						document.valikko.top = newPosition;
						break;
					case (3):
						document.getElementById(layer_name).style.top = newPosition + 'px';
						break;
				}
			}       
		}
	}

function startFloatLayer(layer_name) 
	{
	var browser;
	//alert(layer_name);
	if (document.all)  //ie4
		{
		browser = 1;
		layer_height = document.all[layer_name].clientHeight;
		layer_top = document.all[layer_name].offsetTop - 10;
		}
	if (document.layers)  //ns4
		{
		browser = 2;
		layer_top = 67;
		layer_height = document.menu_base.document.menu_main.document.height
		}
	if (!document.all && document.getElementById) //ns6 
		{
		browser = 3;
		layer_height = parseInt(document.getElementById(layer_name).offsetHeight);
		layer_top = parseInt(document.getElementById(layer_name).offsetTop);
		}
	//alert(browser)
	//alert(document.getElementById(layer_name).style.top);
	setInterval("actFloatLayer(600," + layer_top + "," + layer_height +"," + browser + ",'"+ layer_name +"')",10);
	}