
function lib_bwcheck(){ 
  this.ver=navigator.appVersion
  this.agent=navigator.userAgent
  this.dom=document.getElementById?1:0
  this.opera5=this.agent.indexOf("Opera 5")>-1
  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.ie7=(this.ver.indexOf("MSIE 7")>-1 && this.dom && !this.opera5)?1:0;
this.ie8=(this.ver.indexOf("MSIE 8")>-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.ie7||this.ie8
  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.ie8||this.ie7||this.ie6||this.ie5||this.ie4||this.ns4||this.ns6||this.ns7||this.opera5)

  return this
}
bw=new lib_bwcheck() //Browsercheck object
//Debug function ******************
function lib_message(txt){
	alert(txt); 
	return false
}

//Lib objects  ********************
function g_obj(obj,nest){ 

	  if(!bw.bw) return lib_message('Old browser')
	  nest=(!nest) ? "":'document.'+nest+'.'
	  this.evnt=bw.dom? document.getElementById(obj):bw.ie4?document.all[obj]:bw.ns4?eval(nest+"document.layers." +obj):0;	
	  //this.evnt=document.getElementById(obj)
	  
	  if(!this.evnt)  return lib_message('The layer does not exist ('+obj+')' 	+'- \nIf your using Netscape please check the nesting of your tags!')
	  this.css=bw.dom||bw.ie4?this.evnt.style:this.evnt; 
	  this.ref=bw.dom||bw.ie4?document:this.css.document;
	  this.x=parseInt(this.css.left)||this.css.pixelLeft||this.evnt.offsetLeft||0;
	  this.y=parseInt(this.css.top)||this.css.pixelTop||this.evnt.offsetTop||0
	  this.w=this.evnt.offsetWidth||this.css.clip.width||this.ref.width||this.css.pixelWidth||0; 
	  this.h=this.evnt.offsetHeight||this.css.clip.height||this.ref.height||this.css.pixelHeight||0
	  this.c=0 //Clip values
	  if((bw.dom || bw.ie4) && this.css.clip) {
		  this.c=this.css.clip; this.c=this.c.slice(5,this.c.length-1); 
		  this.c=this.c.split(' ');
		  for(var i=0;i<4;i++){this.c[i]=parseInt(this.c[i])}
	  }
	  this.ct=this.css.clip.top||this.c[0]||0; 
	  this.cr=this.css.clip.right||this.c[1]||this.w||0
	  this.cb=this.css.clip.bottom||this.c[2]||this.h||0; 
	  this.cl=this.css.clip.left||this.c[3]||0
	  this.obj = obj + "Object"; eval(this.obj + "=this")
	  return this
}

g_obj.prototype.moveIt = function(x,y){
  this.x=x;this.y=y; this.css.left=x;this.css.top=y
}
//moving browser window
g_obj.prototype.moveBy = function(x,y){
  this.css.left=this.x+=x; this.css.top=this.y+=y
}

g_obj.prototype.showIt = function(){this.css.visibility="visible"}

g_obj.prototype.hideIt = function(){this.css.visibility="hidden";}
//-----------------------------------------
//if extras param passed will switch images with 0 or 1 included in file name
g_obj.prototype.displayInvert = function(extras,extraID){ 
	if(this.css.display=='block') {this.css.display='none'}
	else if(this.css.display=='none') {this.css.display='block';}
	if (extras=='img') switchImage(extraID)
}
//-----------------------------------------
function switchImage(imgName) 
{
  if (document.images) {
    if (document.images[imgName].src != "none"){
		var src=document.images[imgName].src
		if (src.indexOf('1')!=-1){document.images[imgName].src=replaceChars(src,'1','0')}
		if (src.indexOf('0')!=-1){document.images[imgName].src=replaceChars(src,'0','1')}
	}
  }
}
//-------------------------------------------
function replaceChars(conversionString,inChar,outChar)
{
  var convertedString = conversionString.split(inChar);
  convertedString = convertedString.join(outChar);
  return convertedString;
}
//-----------------------------------------

g_obj.prototype.bg = function(color){ 
	if(bw.opera) this.css.background=color
	else if(bw.dom || bw.ie4) this.css.backgroundColor=color
	else if(bw.ns4) this.css.bgColor=color  
}

g_obj.prototype.writeIt = function(text,startHTML,endHTML){
	if(bw.ns4){
    if(!startHTML){startHTML=""; endHTML=""}
	  this.ref.open("text/html"); 
    this.ref.write(startHTML+text+endHTML); 
    this.ref.close()
	}else this.evnt.innerHTML=text
}

g_obj.prototype.clipTo = function(t,r,b,l,setwidth){ 
  this.ct=t; this.cr=r; this.cb=b; this.cl=l
  if(bw.ns4){
    this.css.clip.top=t;this.css.clip.right=r
    this.css.clip.bottom=b;this.css.clip.left=l
  }else{
    if(t<0)t=0;if(r<0)r=0;if(b<0)b=0;if(b<0)b=0
    this.css.clip="rect("+t+","+r+","+b+","+l+")";
    if(setwidth){this.css.pixelWidth=this.css.width=r; 
    this.css.pixelHeight=this.css.height=b}
  }
}

g_obj.prototype.clipBy = function(t,r,b,l,setwidth){ 
  this.clipTo(this.ct+t,this.cr+r,this.cb+b,this.cl+l,setwidth)
}

g_obj.prototype.clipIt = function(t,r,b,l,step,fn,wh){

  tstep=Math.max(Math.max(Math.abs((t-this.ct)/step),Math.abs((r-this.cr)/step)),
    Math.max(Math.abs((b-this.cb)/step),Math.abs((l-this.cl)/step)))
  if(!this.clipactive){
    this.clipactive=true; if(!wh) wh=0; if(!fn) fn=0
    this.clip(t,r,b,l,(t-this.ct)/tstep,(r-this.cr)/tstep,
      (b-this.cb)/tstep,(l-this.cl)/tstep,tstep,0, fn,wh)
  }
}
g_obj.prototype.clip = function(t,r,b,l,ts,rs,bs,ls,tstep,astep,fn,wh){
  if(astep<tstep){
    if(wh) eval(wh); 
    astep++
    this.clipBy(ts,rs,bs,ls,1);
    setTimeout(this.obj+".clip("+t+","+r+","+b+","+l+","+ts+","+rs+","
      +bs+","+ls+","+tstep+","+astep+",'"+fn+"','"+wh+"')",50)
  }else{
    this.clipactive=false; this.clipTo(t,r,b,l,1);
    if(fn) eval(fn)
  }
}

g_obj.prototype.slideIt = function(endx,endy,inc,speed,fn,wh){
  if(!this.slideactive){
    var distx = endx - this.x;
    var disty = endy - this.y
    var num = Math.sqrt(Math.pow(distx,2)+Math.pow(disty,2))/inc
    var dx = distx/num; var dy = disty/num
    this.slideactive = 1; 
    if(!wh) wh=0; if(!fn) fn=0
    this.slide(dx,dy,endx,endy,speed,fn,wh)
    }
}
g_obj.prototype.slide = function(dx,dy,endx,endy,speed,fn,wh) {
  if(this.slideactive&&
  (Math.floor(Math.abs(dx))<Math.floor(Math.abs(endx-this.x))|| 
    Math.floor(Math.abs(dy))<Math.floor(Math.abs(endy-this.y)))){
    this.moveBy(dx,dy); 
    if(wh) eval(wh)
    setTimeout(this.obj+".slide("+dx+","+dy+","+endx+","+endy+","+speed+",'"
    +fn+"','"+wh+"')",speed)
  }else{
    this.slideactive = 0; 
    this.moveIt(endx,endy);
    if(fn) eval(fn)
  }
}

g_obj.prototype.circleIt = function(rad,ainc,a,enda,xc,yc,speed,fn) {
  if((Math.abs(ainc)<Math.abs(enda-a))) {
    a += ainc
    var x = xc + rad*Math.cos(a*Math.PI/180)
    var y = yc - rad*Math.sin(a*Math.PI/180)
    this.moveIt(x,y)
    setTimeout(this.obj+".circleIt("+rad+","+ainc+","+a+","+enda+","
      +xc+","+yc+","+speed+",'"+fn+"')",speed)
  }else if(fn&&fn!="undefined") eval(fn)
}

function body_size(){ 
  this.x=0;this.x2=bw.ie && document.body.offsetWidth-20||innerWidth||0;
  this.y=0;this.y2=bw.ie && document.body.offsetHeight-5||innerHeight||0;
  if(!this.x2||!this.y2) return message('Document has no width or height') 
  this.x50=this.x2/2;this.y50=this.y2/2;
  return this;
}

dd_is_active=0; dd_obj=0; dd_mobj=0
function lib_dd(){
  dd_is_active=1
  if(bw.ns4){
    document.captureEvents(Event.MOUSEMOVE|Event.MOUSEDOWN|Event.MOUSEUP)
  }
  document.onmousemove=lib_dd_move;
  document.onmousedown=lib_dd_down
  document.onmouseup=lib_dd_up
}
g_obj.prototype.dragdrop = function(obj){
  if(!dd_is_active) lib_dd()
  this.evnt.onmouseover=new Function("lib_dd_over("+this.obj+")")
  this.evnt.onmouseout=new Function("dd_mobj=0")
  if(obj) this.ddobj=obj
}
g_obj.prototype.nodragdrop = function(){
  this.evnt.onmouseover=""; this.evnt.onmouseout=""
  dd_obj=0; dd_mobj=0
}

function lib_dd_over(obj){dd_mobj=obj}
function lib_dd_up(e){dd_obj=0}
function lib_dd_down(e){ //Mousedown
  if(dd_mobj){
    x=(bw.ns4 || bw.ns6)?e.pageX:event.x||event.clientX
    y=(bw.ns4 || bw.ns6)?e.pageY:event.y||event.clientY
    dd_obj=dd_mobj
    dd_obj.clX=x-dd_obj.x; 
    dd_obj.clY=y-dd_obj.y
  }
}
function lib_dd_move(e,y,rresize){ //Mousemove
  x=(bw.ns4 || bw.ns6)?e.pageX:event.x||event.clientX
  y=(bw.ns4 || bw.ns6)?e.pageY:event.y||event.clientY
  if(dd_obj){
    nx=x-dd_obj.clX; ny=y-dd_obj.clY
    if(dd_obj.ddobj) dd_obj.ddobj.moveIt(nx,ny)
    else dd_obj.moveIt(nx,ny)
  }
  if(!bw.ns4) return false      
}
//Drag drop functions end *************

//------------------------------------------------------------------

function openwin(url,w,h,scrl) 
{
    popwin = window.open(url, 'pic', "toolbar=0,location=no,directories=no,status=no,menubar=no,scrollbars="+scrl+",resizable=no,width="+w+",height="+h+"")
}


//------------------common routines for all pages--------------------------------------------------------
var leftDivWidth
var oDivLeft
var otblContainer

function libinit(){


	page=new body_size()
	
	oDivLeft=new g_obj('divLeft')
	oMnHome=new g_obj('mnHome')
	oMnFandorin=new g_obj('mnFandorin')
	oMnMenu=new g_obj('mnMenu')
	oMnMusic=new g_obj('mnMusic')
	oMnBar=new g_obj('mnBar')
	oMnGrotto=new g_obj('mnGrotto')
	//oMnContact=new g_obj('mnContact')	
	oShowP=new g_obj('showP')
	oStopPlay=new g_obj('StopPlay')
	oShowPbot=new g_obj('showPbot') //bottom slice of photo frame
	//oFrameFan=new g_obj('frameFan') // it was  picture frame for slides 
	//otblContainer=new g_obj('tblContainer')
	oF=new g_obj('f')
	oPair=new g_obj('pair')

	
	//alert(otblContainer.h)
	wW=page.x2
	wH=page.y2
	oF.css.left=30
	oF.css.top =300
	oPair.css.top=wH-238
	oPair.css.left=wW-205
	//alert("scrollHeight from common =" + window.document.body.scrollHeight)
	//alert("wH=" + wH)
	//alert(oDivLeft.css.height)
	bd=new g_obj('mainFan')
	bd.css.display='block'	
	//oDivLeft.h=window.document.body.scrollHeight
}

function ssGO(){
	
	oShowPbot.showIt();
	SLIDES.next();
	SLIDES.play();
	setTimeout("oShowP.showIt();",1100)
    //setTimeout("oFrameFan.showIt();oStopPlay.showIt();",1100)
	setTimeout("oStopPlay.showIt();",1100)
	setTimeout("oMnHome.showIt()",1000);
	setTimeout("oMnFandorin.showIt()",1400);
	setTimeout("oMnMenu.showIt()",1800);
	setTimeout("oMnMusic.showIt()",2200);
	setTimeout("oMnBar.showIt()",2600);
	setTimeout("oMnGrotto.showIt()",3000);
	//setTimeout("oMnContact.showIt()",3400);
	
	
}

//title start--------------------------------
window.onerror = new Function("return true")
document.onselectstart = new Function("return false")
window.screen.bufferDepth = 16

var O = ""
var nx=ny=xm=ym=0

function resize(){
	nx = document.body.clientWidth-100
	ny = document.body.clientHeight
}

function titleShade(N,HTML,O){
	document.body.insertAdjacentHTML("afterBegin",HTML)
	this.N   = N
	this.O   = O
	this.obj = document.body.firstChild.style
	this.zOOm = 1.01 + (N/500)
	this.obj.zoom = this.zOOm
	a =  11 * N
	b = 4 * N
	c =  1 * N
	//if(N>0)this.obj.color = "RGB("+(c)+","+(c)+","+(c)+")";
	if(N>0)this.obj.color = "RGB("+(a)+","+(b)+","+(c)+")";
	this.obj.visibility = "visible"
	this.SCR = function(){
		with(this){
			obj.left = xm - zOOm * xm
			obj.top = ym - zOOm * ym
			obj.width = nx
			obj.height = ny
			if(O)O.SCR()
		}
	}
}
function twilight(){
	resize()
	xm = nx / 2
	ym = ny / 2
	html = SRC.outerHTML
	for(i=0;i<25;i++)O = new titleShade(i,html,O)
	O.SCR()
	document.onmousemove = function (){
		xm = window.event.clientX
		ym = window.event.clientY
		O.SCR()
	}
}


