var ie5 = (document.getElementById && document.all); 
var ns6 = (document.getElementById && !document.all); 

function checkBrowserSuck(){
if(!document.getElementById){
window.open('a_problem.htm','problem','width=500,height=100,status=0,scrollbars=0');
}
}

checkBrowserSuck();

var divname;
var mouseDn=0;
//_________________________________________________________________________________________________mouseposition
var winX=0;
var winY=0;
var scrolling=0;
function trackMouse(e){
    winX= (ie5)?event.x:(ns6)?clientX=e.clientX:false;
    winY= (ie5)?event.y+document.body.scrollTop:(ns6)?clientY=e.clientY:false;
}

document.onmousemove= trackMouse;
//document.onmousedown=sayDown;
//document.onmouseup=sayUp;


function sayDown(){mouseDn=1;}
function sayUp(){mouseDn=0;}

//_________________________________________________________________________________________________windowproperties

function getWinWidth() {
  	width = (ie5)?document.body.clientWidth:(ns6)?window.innerWidth:false;
	return(width);
}

function getWinHeight() {
  	height = (ie5)?document.body.clientHeight:(ns6)?window.innerHeight:false;
	return(height);
}

function getScrolloffset(){
if(ie5) return (document.body.scrollTop);
if(ns6) return (0);
}

//_________________________________________________________________________________________________layerquery
function getDivLeft(divname){
	return parseInt(document.getElementById(divname).style.left);
}

function getDivTop(divname){
	return parseInt(document.getElementById(divname).style.top);
}

function getHeight(div) { 
return document.getElementById(div).offsetHeight;
} 

function getWidth(div) { 
return document.getElementById(div).offsetWidth;
} 



//_________________________________________________________________________________________________divmanipulation

function moveDivTo(divname,x,y){
	document.getElementById(divname).style.left=x+'px';
	document.getElementById(divname).style.top=y+'px';
}

function moveDivBy(divname,x,y){
	document.getElementById(divname).style.left=getDivLeft(divname)+x+'px';
	document.getElementById(divname).style.top=getDivTop(divname)+y+'px';
}

function showDiv(divname){
document.getElementById(divname).style.visibility='visible';
}

function hideDiv(divname){
document.getElementById(divname).style.visibility='hidden';
}

function replaceContent(divname,content) { 
document.getElementById(divname).innerHTML = content; 
} 

function clipDiv(name, clipleft, cliptop, clipright, clipbottom) {
  	var layer = document.getElementById(name).style;
	layer.clip = 'rect(' + cliptop + ' ' +  clipright + ' ' + clipbottom + ' ' + clipleft +')';
}


//_________________________________________________________________________________________________sliding

function makeArray(a) {

  var temp;

  if (!a.join) {
    temp = a;
    a = new Array();
    a[0] = temp;
  }
  return a;
}

var animRate = 20;    // Update rate for animations.

function slideLayer(name, x, y, speed, code) {

  var layer = document.getElementById(name).style;

 if (layer.slideID && layer.slideID != null)
    clearTimeout(layer.slideID);

  if (!code)
    code = "";

  x     = makeArray(x);
  y     = makeArray(y);
  speed = makeArray(speed);
  code  = makeArray(code);

  var max = Math.max(x.length, Math.max(y.length, Math.max(speed.length, code.length)));
  while (x.length < max)
    x[x.length] = x[x.length - 1];
  while (y.length < max)
    y[y.length] = y[y.length - 1];
  while (speed.length < max)
    speed[speed.length] = speed[speed.length - 1];
  while (code.length < max)
    code[code.length] = code[code.length - 1];

  goSlide(name, x, y, speed, code);
}

function goSlide(name, x, y, speed, code) {

var layer = document.getElementById(name).style;
  var hrzn, vert, left, top, steps;

    hrzn = x[0] - parseInt(layer.left);
    vert = y[0] - parseInt(layer.top);
    left = parseInt(layer.left);
    top  = parseInt(layer.top);

  steps = (Math.max(Math.abs(hrzn), Math.abs(vert)) / speed[0]) * (1000 / animRate);

  if (steps <= 0)
    return;

  layer.slideX     = x.slice(1, x.length);
  layer.slideY     = y.slice(1, y.length);
  layer.slideSpeed = speed.slice(1, speed.length);
  layer.slideCode  = code.slice(1, code.length);
  layer.slideLeft   = left;
  layer.slideTop    = top;
  layer.slideDx     = hrzn / steps;
  layer.slideDy     = vert / steps;
  layer.slideFinalX = x[0];
  layer.slideFinalY = y[0];
  layer.slideSteps  = Math.floor(steps);
  layer.slideAction = code[0];
  slideStep(name);
}

function slideStep(name) {
  var layer = document.getElementById(name).style;
  layer.slideLeft += layer.slideDx;
  layer.slideTop  += layer.slideDy;
  layer.left = layer.slideLeft;
  layer.top  = layer.slideTop;

  if (layer.slideSteps-- > 0)
    layer.slideID = setTimeout('slideStep("' + name + '")', animRate);

  else {
      layer.left = layer.slideFinalX;
      layer.top  = layer.slideFinalY;
  
    layer.slideID = null;
    if (layer.slideAction != "")
      eval(layer.slideAction);

    if (layer.slideX.length > 0)
      goSlide(name, layer.slideX, layer.slideY, layer.slideSpeed, layer.slideCode);
    else
      layer.slideID = null;
  }
}


//_________________________________________________________________________________________________FX
function positionTimer(){
moveDivTo('loading',getWinWidth()/2,getWinHeight()/2);
}


function enterIndex(){
setTimeout('pageinit()',50);
setTimeout('togglethumbs()',500);
}

function pageinit(){
moveDivTo('detail',getWinWidth()/2-getWidth('detail')/2,getWinHeight()/2-getHeight('detail')/2+getScrolloffset());
}

var bartop;
var barheight;
var displayheight=544;
var contheight;
var doscroll=0;

//_________________________________________________________________________________________________cleaners


window.onresize=pageinit;

//_________________________________________________________________________________________________texturetiler

function tiler(image){
clipDiv('detail', 0,0,getWinWidth()+15,2048)
moveDivTo('detail',0,0+getScrolloffset());
document.body.style.overflow='hidden';
replaceContent('detail','<div style="font-weight:bold;padding-left:100px;background-color:#D4D0C8;height:17px;border-bottom, border-right:1px solid black;border-top, border-left:1px solid white"> &nbsp; tile harbor, darling. <span style=font-weight:normal;font-size:10px>you\'ll see black while tiling image loads... push finger on left mousebutton to close tiler. (you have two mousebuttons, yes? :p)</span></div>')
document.getElementById('detail').style.width=4000;
document.getElementById('detail').style.height=4000;
document.getElementById('detail').style.backgroundColor="black";
document.getElementById('detail').style.backgroundImage="url(" + image + ")";
document.getElementById('detail').style.visibility='visible';
}


//_________________________________________________________________________________________________detailopening

var detLeft;
var detTop;
var TLxstep;
var TLystep;
var TLx;
var TLy;
var TRxstep;
var TRystep;
var TRx;
var TRy;
var BRxstep;
var BRystep;
var BRx;
var BRy;
var BLxstep;
var BLystep;
var BLx;
var BLy;


var sizeX=500;
var sizeY=500;
var detailimage;
var tableheight;
var tablewidth;

var zoomsteps=15;
var zoomPos=0;
var detborder=15;

function IEyoffset(){
alert(IE5+' '+NS6);
}

function detailer(image,sizeX,sizeY){
tracking=0;
tablewidth=sizeX+detborder*2;
tableheight=sizeY+detborder*2;
document.getElementById('detail').style.visibility='hidden';
clipDiv('detail',0,0,sizeX+detborder*2,sizeY+detborder*2);
detailimage=image;
detLeft=getWinWidth()/2-sizeX/2-detborder;
detTop=getWinHeight()/2-sizeY/2-detborder+getScrolloffset();
detRight=getWinWidth()/2+sizeX/2+detborder-12;
detBottom=getWinHeight()/2+sizeY/2+detborder-12+getScrolloffset();


moveDivTo('detTL',winX-6,winY-6);
moveDivTo('detTR',winX-6,winY-6);
moveDivTo('detBL',winX-6,winY-6);
moveDivTo('detBR',winX-6,winY-6);

TLxstep=(detLeft-getDivLeft('detTL'))/zoomsteps;
TLystep=(detTop-getDivTop('detTL'))/zoomsteps;
TRxstep=(detRight-getDivLeft('detTR'))/zoomsteps;
TRystep=(detTop-getDivTop('detTR'))/zoomsteps;

BLxstep=TLxstep;
BLystep=(detBottom-getDivTop('detBL'))/zoomsteps;
BRxstep=TRxstep;
BRystep=(detBottom-getDivTop('detBR'))/zoomsteps;

TLx=getDivLeft('detTL');
TLy=getDivTop('detTL');
TRx=getDivLeft('detTR');
TRy=getDivTop('detTR');
BLx=getDivLeft('detTL');
BLy=getDivTop('detTL');
BRx=getDivLeft('detTR');
BRy=getDivTop('detTR');
document.getElementById('detTL').style.visibility='visible';
document.getElementById('detTR').style.visibility='visible';
document.getElementById('detBL').style.visibility='visible';
document.getElementById('detBR').style.visibility='visible';

zoomPos=0;
zoomer();
}

function zoomer(){
if(zoomPos<zoomsteps){
TLx+=TLxstep;
TLy+=TLystep;
TRx+=TRxstep;
TRy+=TRystep;
BLx+=BLxstep;
BLy+=BLystep;
BRx+=BRxstep;
BRy+=BRystep;

moveDivTo('detTL',TLx,TLy);
moveDivTo('detTR',TRx,TRy);
moveDivTo('detBL',BLx,BLy);
moveDivTo('detBR',BRx,BRy);

setTimeout('zoomPos++;zoomer()',animRate);
}
if(zoomPos>=zoomsteps) detEnd();
}

//.......adg variables:
//.......+FILT+ZBUF+GRND+CORR+MAGN+PICK+WIRE
//FILT - antialias
//ZBUF - ?
//GRND - ?
//CORR - Perspective Correct
//MAGN - magnifyable?
//PICK - ?
//TEXT - enable texture
//SELF - ?
//DUBL - ?


var inhoud;
function detEnd(){
inhoud='<table class=detailtable  title="click to close" style="height:'+ tableheight + ';width:'+ tablewidth + '" cellspacing="'+(detborder-2)+'"><tr><td class=detailcell><img class=loadgif src="pix/gui/loading.gif"><img class=detimage src='+detailimage+' ></td></tr></table>';
//________________________________________adg content
if(detailimage.indexOf('.adg',0)>0) {
inhoud=	'<table class=detailtable title="click to close" style="height:'+ tableheight + ';width:'+ tablewidth + '"><tr><td class=detailcell id=adgcell>'
inhoud+=	'<table class=adgcontrols><tr><td id=adgstate>drag left mousebutton to rotate, right button to zoom</td><td align=right><a href=javascript:clearDetail()>close viewer</a></td></tr></table>';
inhoud+=	'<applet id=\'ADGview\' code=\'ADGview.class\'';
inhoud+=	' width=' + (tablewidth-20)+ ' height=' + (tableheight-20)  + '>';
inhoud+=	'<param name=title value=\'whatever\'><param name=archive value=\'pix/adg/ADGview.jar\'><param name=data value=';
inhoud+=	detailimage + '><param name=Backcolor value=\'#7A7265\'><param name=infocolor value=\'#7A7265\'>';
inhoud+=	'<param name=VELX value=\'0.1\'><param name=VELY value=\'0\'><param name=rangeF  value=\'-30,30\'><param name=rangeY  value=\'0,0\'><param name=mode value=\'+FILT+ZBUF+CORR+MAGN\'></applet>';
//setTimeout('adgPoll()',100);
}
document.getElementById('detail').innerHTML=inhoud;
moveDivTo('detail',detLeft,detTop);
document.getElementById('detail').style.visibility='visible';
document.getElementById('detTL').style.visibility='hidden';
document.getElementById('detTR').style.visibility='hidden';
document.getElementById('detBL').style.visibility='hidden';
document.getElementById('detBR').style.visibility='hidden';
//tracking=1;
}

function clearDetail(){
setTimeout("document.getElementById('detail').innerHTML='';document.body.style.overflow='';",100);
//document.getElementById('detail').style.width='20';
//document.getElementById('detail').style.height='20';
document.getElementById('detail').style.visibility='hidden';
}

function adgPoll(){
if (document.getElementById('ADGview').loaded) {
document.getElementById('adgstate').innerHTML='drag left mousebutton to rotate, right button to zoom';
//document.getElementById('ADGview').Message("VELX", 2.0);
}
if (!document.getElementById('ADGview').loaded) setTimeout('adgPoll()',500);
}	

//_________________________________________________________________________________________________ieBlur
var eSrc;
function ieBlur(){
eSrc = event.srcElement
while ("A" != eSrc.tagName.toUpperCase() && "BODY" != eSrc.tagName.toUpperCase())
{
eSrc = eSrc.parentElement;
}
if("A" == eSrc.tagName.toUpperCase()){eSrc.blur();}
}

if(document.all){
document.onclick=ieBlur;
}


