﻿function changeBGImage(whichImage)
   {var backImage =[];
    backImage[1] = "background/grid_black.gif";
    backImage[3] = "none";
    backImage[4] = "background/grid_grey.gif";
    document.body.background = backImage[whichImage];
   }
function changeBGColor(whichColor)
   {var backColor =[];
    backColor[1] = "#000000";
    backColor[2] = "#FFFFFF";
    backColor[3] = "#999999";
    document.bgColor = backColor[whichColor];
   }
function signatur(whichImage)
   {var signaturImage =[];
    signaturImage[1] = "url('background/signatur.gif')";
    signaturImage[2] = "url('background/signatur2.gif')";
    document.getElementById('signatur').style.backgroundImage = signaturImage[whichImage];
   }
function mountain(whichImage)
   {var mountainImage =[];
    mountainImage[1] = "url('background/mountain_grey.gif')";
    mountainImage[2] = "url('background/mountain_black.gif')";
    mountainImage[3] = "none";
    document.getElementById('mountain').style.backgroundImage = mountainImage[whichImage];
   }
function selected(whichImage)
   {var selectedImage =[];
    selectedImage[2] = "url('navigation/background/grid_black.gif')";
    selectedImage[3] = "url('navigation/background/grid_grey.gif')";
    selectedImage[4] = "url('navigation/background/black.gif')";
    selectedImage[5] = "url('navigation/background/white.gif')";
    selectedImage[6] = "url('navigation/background/grey.gif')";
    selectedImage[8] = "url('navigation/background/tree_white.gif')";
    selectedImage[9] = "url('navigation/background/tree_grey.gif')";
    selectedImage[10] = "url('navigation/background/mountain_grey.gif')";
    selectedImage[11] = "url('navigation/background/mountain_black.gif')";
    document.getElementById('selected').style.backgroundImage = selectedImage[whichImage];
   }
function tree(whichImage)
   {var treeImage =[];
    treeImage[2] = "url('background/tree_white.gif')";
    treeImage[3] = "url('background/tree_grey.gif')";
    treeImage[4] = "none";
    document.getElementById('tree').style.backgroundImage = treeImage[whichImage];
   }
function randombg()
   {var ran_unrounded = Math.random() * 8;
    var ran_number = Math.round(ran_unrounded);
    switch (ran_number)
       {case 0: 
            signatur('1');
            selected('2');
            changeBGImage('1');
            break;
        case 1: 
            signatur('1');
            selected('3');
            changeBGImage('4');
            break;
        case 2: 
            signatur('1');
            selected('4');
            changeBGColor('1');
            break;
        case 3: 
            signatur('2');
            selected('5');
            changeBGColor('2');
            break;
        case 4: 
            signatur('1');
            selected('6');
            changeBGColor('3');
            break;
        case 5: 
            signatur('2');
            selected('8');
            tree('2');
            changeBGColor('2');
            break;
        case 6: 
            signatur('1');
            selected('9');
            tree('3');
            changeBGColor('3');
            break;
        case 7: 
            signatur('1');
            selected('10');
            mountain('1');
            changeBGColor('3');
            break;
        case 8: 
            signatur('1');
            selected('11');
            mountain('2');
            changeBGColor('1');
            break;
       }
   }
var preloadImages =[];
function preLoad()
   {var x;
    for (x = 0;x < arguments.length;x++)
       {preloadImages[x] = new Image();
        preloadImages[x].src = arguments[x];
       }
   }
function moveIn(what)
   {document.getElementById(what).style.left = '50%';
   }
function moveOut(what)
   {document.getElementById(what).style.left = '-1000px';
   }
var zVar = 3;
function up(what)
   {   if (document.getElementById(what).style.zIndex < zVar)
       {       zVar++;
        document.getElementById(what).style.zIndex = zVar;
       }
   }
function resetzIndex(what)
   {document.getElementById(what).style.zIndex = 3;
   }
function loadImage(div, IMAGE)
   {document.getElementById(div).style.backgroundImage = 'url(' + IMAGE +')';
   }
function unloadImage(div)
   {document.getElementById(div).style.backgroundImage = 'none';
   }
function showHide(id)
   {var obj;
    obj = document.getElementsByTagName("div");
    if (obj[id].style.visibility == 'visible')
       {obj[id].style.visibility = 'hidden';
       }
    else 
       {obj[id].style.visibility = 'visible';
       }
   }
function show(id)
   {var obj;
    obj = document.getElementsByTagName("div");
    obj[id].style.visibility = 'visible';
   }
function hide(id)
   {var obj;
    obj = document.getElementsByTagName("div");
    obj[id].style.visibility = 'hidden';
   }
function out(IMAGE)
   {if (window[IMAGE] == 1)
       {document.getElementById(IMAGE).style.backgroundImage = 'url(navigation/' + IMAGE + '2.gif)';
       }
    else 
       {document.getElementById(IMAGE).style.backgroundImage = 'url(navigation/' + IMAGE +'.gif)';
       }
   }
function over(IMAGE)
   {document.getElementById(IMAGE).style.backgroundImage = 'url(navigation/' + IMAGE + '2.gif)';
   }
function about()
   {document.getElementById('aboutmenu').style.visibility = 'visible';
    if (document.getElementById('contact1').style.visibility == 'visible')
       {document.getElementById('contactmenu').style.visibility = 'visible';
       }
    if (document.getElementById('lifemap1').style.visibility == 'visible')
       {document.getElementById('lifemapmenu').style.visibility = 'visible';
       }
   }
function out_about(IMAGE)
   {if (window[IMAGE] == 1)
       {document.getElementById(IMAGE).style.backgroundImage = 'url(navigation/about/' + IMAGE + '2.gif)';
       }
    else 
       {document.getElementById(IMAGE).style.backgroundImage = 'url(navigation/about/' + IMAGE +'.gif)';
       }
   }
function over_about(IMAGE)
   {document.getElementById(IMAGE).style.backgroundImage = 'url(navigation/about/' + IMAGE + '2.gif)';
   }
function var1(IMAGE)
   {window[IMAGE] = 1;
   }
function openWindow(div, path)
   {moveIn(div + '1');
    var1(div);
    up(div + '1');
    show(div + '1');
    loadImage(div + 'image', 'workfolder/' + path);
   }
function closeWindow(div)
   {moveOut(div + '1');
	hide(div + '1');
    loadImage('close' + div, 'navigation/close.gif');
    unloadImage(div + 'image');
    resetzIndex(div + '1');
   }
function workfolder()
   {document.getElementById('typefaces').style.backgroundImage = 'url(navigation/typefaces.gif)';
    document.getElementById('cdcovers').style.backgroundImage = 'url(navigation/cdcovers.gif)';
    document.getElementById('posters').style.backgroundImage = 'url(navigation/posters.gif)';
    document.getElementById('editorial').style.backgroundImage = 'url(navigation/editorial.gif)';
    document.getElementById('identity').style.backgroundImage = 'url(navigation/identity.gif)';
   }
function typefacesmenu()
   {document.getElementById('cdcovers2').style.backgroundImage = 'url(navigation/cdcovers.gif)';
    document.getElementById('posters2').style.backgroundImage = 'url(navigation/posters.gif)';
    document.getElementById('editorial2').style.backgroundImage = 'url(navigation/editorial.gif)';
    document.getElementById('identity2').style.backgroundImage = 'url(navigation/identity.gif)';
   }
function cdcoversmenu()
   {document.getElementById('typefaces3').style.backgroundImage = 'url(navigation/typefaces.gif)';
    document.getElementById('posters3').style.backgroundImage = 'url(navigation/posters.gif)';
    document.getElementById('editorial3').style.backgroundImage = 'url(navigation/editorial.gif)';
    document.getElementById('identity3').style.backgroundImage = 'url(navigation/identity.gif)';
   }
function postersmenu()
   {document.getElementById('typefaces4').style.backgroundImage = 'url(navigation/typefaces.gif)';
    document.getElementById('cdcovers4').style.backgroundImage = 'url(navigation/cdcovers.gif)';
    document.getElementById('editorial4').style.backgroundImage = 'url(navigation/editorial.gif)';
    document.getElementById('identity4').style.backgroundImage = 'url(navigation/identity.gif)';
   }
function editorialmenu()
   {document.getElementById('typefaces5').style.backgroundImage = 'url(navigation/typefaces.gif)';
    document.getElementById('cdcovers5').style.backgroundImage = 'url(navigation/cdcovers.gif)';
    document.getElementById('posters5').style.backgroundImage = 'url(navigation/posters.gif)';
    document.getElementById('identity5').style.backgroundImage = 'url(navigation/identity.gif)';
   }
function identitymenu()
   {document.getElementById('typefaces6').style.backgroundImage = 'url(navigation/typefaces.gif)';
    document.getElementById('cdcovers6').style.backgroundImage = 'url(navigation/cdcovers.gif)';
    document.getElementById('posters6').style.backgroundImage = 'url(navigation/posters.gif)';
    document.getElementById('editorial6').style.backgroundImage = 'url(navigation/editorial.gif)';
   }
var inputvar = "0";
function createForm()
   {if (document.getElementById('contactframe').innerHTML == "")
       {document.getElementById('contactframe').innerHTML = "<iframe name=\"contactiframe\"></iframe>";
       }
    document.getElementById('contactcontent').innerHTML = 
       "<form action=\"contact/contact.php\" target=\"contactiframe\" method=\"post\" name=\"contactform\" enctype=\"Standard\">\
	  		<div id=\"mail\"></div>\
	  		<div id=\"mailbox\">\
		  		<input type=\"text\" name=\"email\" id=\"email\" onMouseDown=\"inputvar='1'\" onblur=\"inputvar='0'\">\
	  		</div>\
	  		<div id=\"message\"></div>\
	  		<div id=\"messagebox\">\
		  		<textarea name=\"text\" id=\"text\" cols=\"0\" rows=\"0\" onMouseDown=\"inputvar='1'\" onblur=\"inputvar='0'\"></textarea>\
	  		</div>\
			<div id=\"send\" onclick=\"ValidateForm()\" onMouseOver=\"loadImage('send','contact/send2.gif')\" onMouseOut=\"loadImage('send','contact/send.gif')\"></div>\
	  		<input type=\"hidden\" name=\"subject\" value=\"contact beekhuis.ch\"><input type=\"hidden\" name=\"counter\" value=\"0\">\
	  	</form>\
	  	<div id=\"adresse\"></div>";
    if (window.devicePixelRatio)
       {document.getElementById('text').style.width = "276px";
        document.getElementById('text').style.paddingLeft = "1px";
        document.getElementById('text').style.paddingRight = "1px";
        document.getElementById('text').style.resize = "none";
        document.getElementById('messagebox').style.top = "62px";
       }
   }
function unloadcontent(div)
   {document.getElementById(div).innerHTML = "";
   }
function checkEmail(email)
   {var proto = "(mailto:)?";
    var usr = "([a-zA-Z0-9][a-zA-Z0-9_.-]*|\"([^\\\\\x80-\xff\015\012\"]|\\\\[^\x80-\xff])+\")";
    var domain = "([a-zA-Z0-9][a-zA-Z0-9._-]*\\.)*[a-zA-Z0-9][a-zA-Z0-9._-]*\\.[a-zA-Z]{2,5}";
    var regex = "^" + proto + "?" + usr + "\@" + domain + "$";
    var rgx = new RegExp(regex);
    return rgx.exec(email) ? true: false;
   }
function ValidateForm()
   {var emailID = document.contactform.email;
    if ((emailID.value == null) || (emailID.value == ""))
       {emailID.focus();
        return false;
       }
    if (checkEmail(emailID.value) == false)
       {emailID.value = "";
        emailID.focus();
        return false;
       }
    if (document.contactform.text.value == "")
       {document.contactform.text.focus();
        return false;
       }
    var counter_id = document.contactform.counter.value;
    counter_id++;
    document.contactform.counter.value = counter_id;
    if (counter_id == "1")
       {document.contactform.submit();
       }
    else 
       {return false;
       }
   }
function sent()
   {document.getElementById('contactcontent').innerHTML = "<div id=\"sent\"></div><div id=\"adresse\"></div>";
    setTimeout("createForm()", 3500);
   }
var skipVar =[];
function skipImage(Anzahl, IMAGE, Location, SKIP)
   {if (skipVar[SKIP] === null)
       {skipVar[SKIP] = 1;
       }
    if (skipVar[SKIP] < Anzahl)
       {skipVar[SKIP] = skipVar[SKIP] + 1;
        if (skipVar[SKIP] == Anzahl)
           {document.getElementById(SKIP).style.backgroundImage = 'url(navigation/skipback.gif)';
           }
       }
    else 
       {skipVar[SKIP] = 1;
        document.getElementById(SKIP).style.backgroundImage = 'url(navigation/skip.gif)';
       }
    document.getElementById(IMAGE).style.backgroundImage = 'url(' + Location + '' + skipVar[SKIP] +'.jpg)';
   }
function skipOver(Anzahl, SKIP)
   {if (skipVar[SKIP] == Anzahl)
       {document.getElementById(SKIP).style.backgroundImage = 'url(navigation/skipback2.gif)';
       }
    else 
       {document.getElementById(SKIP).style.backgroundImage = 'url(navigation/skip2.gif)';
       }
   }
function skipOut(Anzahl, SKIP)
   {if (skipVar[SKIP] == Anzahl)
       {document.getElementById(SKIP).style.backgroundImage = 'url(navigation/skipback.gif)';
       }
    else 
       {document.getElementById(SKIP).style.backgroundImage = 'url(navigation/skip.gif)';
       }
   }
function skipVar1(SKIP)
   {skipVar[SKIP] = 1;
    document.getElementById(SKIP).style.backgroundImage = 'url(navigation/skip.gif)';
   }
var Event = {add: function(obj, etype, fp, cap)
   {cap = cap || false;
    if (obj.addEventListener) obj.addEventListener(etype, fp, cap);
    else if (obj.attachEvent) obj.attachEvent("on" + etype, fp);
   }
, remove: function(obj, etype, fp, cap)
   {cap = cap || false;
    if (obj.removeEventListener) obj.removeEventListener(etype, fp, cap);
    else if (obj.detachEvent) obj.detachEvent("on" + etype, fp);
   }
, DOMit: function(e)
   {e = e ? e: window.event;
    if ( ! e.target) e.target = e.srcElement;
    if ( ! e.preventDefault) e.preventDefault = function()
       {e.returnValue = false;
        return false;
       };
    if ( ! e.stopPropagation) e.stopPropagation = function()
       {e.cancelBubble = true;
       };
    return e;
   }
, getTarget: function(e)
   {e = Event.DOMit(e);
    var tgt = e.target;
    if (tgt.nodeType != 1) tgt = tgt.parentNode;
    return tgt;
   }
};
function addLoadEvent(func)
   {var oldQueue = window.onload ? window.onload: function(){};
    window.onload = function()
       {oldQueue();
        func();
       };
   }
function scrollObj(wndoId, lyrId, horizId)
   {var wn = document.getElementById(wndoId);
    this.id = wndoId;
    scrollObj.col[this.id] = this;
    this.animString = "scrollObj.col." + this.id;
    this.load(lyrId, horizId);
    if (wn.addEventListener)
       {wn.addEventListener('DOMMouseScroll', scrollObj.doOnMouseWheel, false);
       }
    wn.onmousewheel = scrollObj.doOnMouseWheel;
   }
scrollObj.printEnabled = false;
scrollObj.defaultSpeed = scrollObj.prototype.speed = 200;
scrollObj.defaultSlideDur = scrollObj.prototype.slideDur = 500;
scrollObj.isSupported = function()
   {if (document.getElementById && document.getElementsByTagName && document.addEventListener || document.attachEvent)
       {return true;
       }
    return false;
   };
scrollObj.col = {};
scrollObj.prototype.on_load = function(){};
scrollObj.prototype.on_scroll = function(){};
scrollObj.prototype.on_scroll_start = function(){};
scrollObj.prototype.on_scroll_stop = function(){};
scrollObj.prototype.on_scroll_end = function(){};
scrollObj.prototype.on_update = function(){};
scrollObj.prototype.on_glidescroll = function(){};
scrollObj.prototype.on_glidescroll_start = function(){};
scrollObj.prototype.on_glidescroll_stop = function(){};
scrollObj.prototype.on_glidescroll_end = function(){};
scrollObj.prototype.load = function(lyrId, horizId)
   {var wndo, lyr;
    if (this.lyrId)
       {lyr = document.getElementById(this.lyrId);
        lyr.style.visibility = "hidden";
       }
    this.lyr = lyr = document.getElementById(lyrId);
    if ( ! scrollObj.printEnabled)
       {this.lyr.style.position = 'absolute';
       }
    this.lyrId = lyrId;
    this.horizId = horizId || null;
    wndo = document.getElementById(this.id);
    this.y = 0;
    this.x = 0;
    this.shiftTo(0, 0);
    this.getDims(wndo, lyr);
    lyr.style.visibility = "visible";
    this.ready = true;
    this.on_load();
   };
scrollObj.prototype.shiftTo = function(x, y)
   {if (this.lyr)
       {this.lyr.style.left = (this.x = x) + "px";
        this.lyr.style.top = (this.y = y) + "px";
       }
   };
scrollObj.prototype.getX = function()
   {return this.x;
   };
scrollObj.prototype.getY = function()
   {return this.y;
   };
scrollObj.prototype.getDims = function(wndo, lyr)
   {this.wd = this.horizId ? document.getElementById(this.horizId).offsetWidth: lyr.offsetWidth;
    this.maxX = (this.wd - wndo.offsetWidth > 0) ? this.wd - wndo.offsetWidth: 0;
    this.maxY = (lyr.offsetHeight - wndo.offsetHeight > 0) ? lyr.offsetHeight - wndo.offsetHeight: 0;
   };
scrollObj.prototype.updateDims = function()
   {var wndo = document.getElementById(this.id);
    var lyr = document.getElementById(this.lyrId);
    this.getDims(wndo, lyr);
    this.on_update();
   };
scrollObj.prototype.initScrollVals = function(deg, speed)
   {if ( ! this.ready) return;
    if (this.timerId)
       {clearInterval(this.timerId);
        this.timerId = 0;
       }
    this.speed = speed || scrollObj.defaultSpeed;
    this.fx = (deg == 0) ? - 1: (deg == 180) ? 1: 0;
    this.fy = (deg == 90) ? 1: (deg == 270) ? - 1: 0;
    this.endX = (deg == 90 || deg == 270) ? this.x: (deg == 0) ? - this.maxX: 0;
    this.endY = (deg == 0 || deg == 180) ? this.y: (deg == 90) ? 0: - this.maxY;
    this.lyr = document.getElementById(this.lyrId);
    this.lastTime = new Date().getTime();
    this.on_scroll_start(this.x, this.y);
    this.timerId = setInterval(this.animString +".scroll()", 10);
   };
scrollObj.prototype.scroll = function()
   {var now = new Date().getTime();
    var d = (now - this.lastTime) / 1000 * this.speed;
    if (d > 0)
       {var x = this.x + Math.round(this.fx * d);
        var y = this.y + Math.round(this.fy * d);
        if ((this.fx == - 1 && x > - this.maxX) || (this.fx == 1 && x < 0) || (this.fy == - 1 && y > - this.maxY) || (this.fy == 
          1 && y < 0))
           {this.lastTime = now;
            this.shiftTo(x, y);
            this.on_scroll(x, y);
           }
        else 
           {clearInterval(this.timerId);
            this.timerId = 0;
            this.shiftTo(this.endX, this.endY);
            this.on_scroll(this.endX, this.endY);
            this.on_scroll_end(this.endX, this.endY);
           }
       }
   };
scrollObj.prototype.ceaseScroll = function()
   {if ( ! this.ready) return;
    if (this.timerId)
       {clearInterval(this.timerId);
        this.timerId = 0;
       }
    this.on_scroll_stop(this.x, this.y);
   };
scrollObj.prototype.initScrollByVals = function(dx, dy, dur)
   {if ( ! this.ready || this.sliding) return;
    this.startX = this.x;
    this.startY = this.y;
    this.destX = this.destY = this.distX = this.distY = 0;
    if (dy < 0)
       {this.distY = (this.startY + dy >= - this.maxY) ? dy: - (this.startY + this.maxY);
       }
    else if (dy > 0)
       {this.distY = (this.startY + dy <= 0) ? dy: - this.startY;
       }
    if (dx < 0)
       {this.distX = (this.startX + dx >= - this.maxX) ? dx: - (this.startX + this.maxX);
       }
    else if (dx > 0)
       {this.distX = (this.startX + dx <= 0) ? dx: - this.startX;
       }
    this.destX = this.startX + this.distX;
    this.destY = this.startY + this.distY;
    this.glideScrollPrep(this.destX, this.destY, dur);
   };
scrollObj.prototype.initScrollToVals = function(destX, destY, dur)
   {if ( ! this.ready || this.sliding) return;
    this.startX = this.x;
    this.startY = this.y;
    this.destX = - Math.max(Math.min(destX, this.maxX), 0);
    this.destY = - Math.max(Math.min(destY, this.maxY), 0);
    this.distY = this.destY - this.startY;
    this.distX = this.destX - this.startX;
    this.glideScrollPrep(this.destX, this.destY, dur);
   };
scrollObj.prototype.glideScrollPrep = function(destX, destY, dur)
   {this.slideDur = (typeof dur == 'number') ? dur: scrollObj.defaultSlideDur;
    this.per = Math.PI / (2 * this.slideDur);
    this.sliding = true;
    this.lyr = document.getElementById(this.lyrId);
    this.startTime = new Date().getTime();
    this.timerId = setInterval(this.animString +".doGlideScroll()", 10);
    this.on_glidescroll_start(this.startX, this.startY);
   };
scrollObj.prototype.doGlideScroll = function()
   {var elapsed = new Date().getTime() - this.startTime;
    if (elapsed < this.slideDur)
       {var x = this.startX + Math.round(this.distX * Math.sin(this.per * elapsed));
        var y = this.startY + Math.round(this.distY * Math.sin(this.per * elapsed));
        this.shiftTo(x, y);
        this.on_glidescroll(x, y);
       }
    else 
       {clearInterval(this.timerId);
        this.timerId = 0;
        this.sliding = false;
        this.shiftTo(this.destX, this.destY);
        this.on_glidescroll(this.destX, this.destY);
        this.on_glidescroll_stop(this.destX, this.destY);
        if (this.distX && (this.destX == 0 || this.destX == - this.maxX) || this.distY && (this.destY == 0 || this.destY == 
          - this.maxY))
           {this.on_glidescroll_end(this.destX, this.destY);
           }
       }
   };
scrollObj.handleMouseWheel_y = function(id, delta)
   {var wndo = scrollObj.col[id];
    var x = wndo.x;
    var y = wndo.y;
    wndo.on_scroll_start(x, y);
    var ny;
    ny = 12 * delta + y;
    ny = (ny < 0 && ny >= - wndo.maxY) ? ny: (ny < - wndo.maxY) ? - wndo.maxY: 0;
    wndo.shiftTo(x, ny);
    wndo.on_scroll(x, ny);
   };
scrollObj.handleMouseWheel_x = function(id, delta)
   {var wndo = scrollObj.col[id];
    var x = wndo.x;
    var y = wndo.y;
    wndo.on_scroll_start(x, y);
    var nx;
    nx = 12 * delta + x;
    nx = (nx < 0 && nx >= - wndo.maxX) ? nx: (nx < - wndo.maxX) ? - wndo.maxX: 0;
    wndo.shiftTo(nx, y);
    wndo.on_scroll(nx, y);
   };
scrollObj.doOnMouseWheel = function(e)
   {var delta = 0;
    if ( ! e) e = window.event;
    if (e.wheelDelta)
       {delta = e.wheelDelta / 120;
        if (window.opera) delta = - delta;
       }
    else if (e.detail)
       {delta = - e.detail / 3;
       }
    if (delta)
       {if (e.wheelDeltaY || e.detail && e.axis == e.VERTICAL_AXIS)
           {scrollObj.handleMouseWheel_y(this.id, delta);
           }
        else if (e.wheelDeltaX || e.detail && e.axis == e.HORIZONTAL_AXIS)
           {scrollObj.handleMouseWheel_x(this.id, delta);
           }
        else 
           {scrollObj.handleMouseWheel_y(this.id, delta);
           }
       }
    if (e.preventDefault) e.preventDefault();
    e.returnValue = false;
   };
function getLayerOffset(el, oCont, sOff)
   {var off = "offset" + sOff.charAt(0).toUpperCase() + sOff.slice(1);
    var val = el[off];
    while ((el = el.offsetParent) != oCont) val += el[off];
    var clientOff = off.replace("offset", "client");
    if (el[clientOff]) val += el[clientOff];
    return val;
   }
function Slidebar(barId, trackId, axis, x, y)
   {var bar = document.getElementById(barId);
    var track = document.getElementById(trackId);
    this.barId = barId;
    this.trackId = trackId;
    this.axis = axis;
    this.x = x || 0;
    this.y = y || 0;
    Slidebar.col[this.barId] = this;
    this.bar = bar;
    this.shiftTo(x, y);
    this.trkHt = track.offsetHeight;
    this.trkWd = track.offsetWidth;
    if (axis == 'v')
       {this.maxY = this.trkHt - bar.offsetHeight - y;
        this.maxX = x;
        this.minX = x;
        this.minY = y;
       }
    else 
       {this.maxX = this.trkWd - bar.offsetWidth - x;
        this.minX = x;
        this.maxY = y;
        this.minY = y;
       }
    this.on_drag_start = this.on_drag = this.on_drag_end = this.on_slide_start = this.on_slide = this.on_slide_end = 
      function(){};
    bar.onmousedown = Slidebar.prepDrag;
    track.onmousedown = function(e)
       {Slidebar.prepSlide(barId, e);
       };
    this.bar = bar = null;
    track = null;
   }
Slidebar.col = {};
Slidebar.current = null;
Slidebar.prototype.slideDur = 500;
Slidebar.prepSlide = function(barId, e)
   {var _this = Slidebar.col[barId];
    Slidebar.current = _this;
    var bar = _this.bar = document.getElementById(barId);
    if (_this.timer)
       {clearInterval(_this.timer);
        _this.timer = 0;
       }
    e = e ? e: window.event;
    e.offX = (typeof e.layerX != "undefined") ? e.layerX: e.offsetX;
    e.offY = (typeof e.layerY != "undefined") ? e.layerY: e.offsetY;
    _this.startX = parseInt(bar.style.left);
    _this.startY = parseInt(bar.style.top);
    if (_this.axis == "v")
       {_this.destX = _this.startX;
        _this.destY = (e.offY < _this.startY) ? e.offY: e.offY - bar.offsetHeight;
        _this.destY = Math.min(Math.max(_this.destY, _this.minY), _this.maxY);
       }
    else 
       {_this.destX = (e.offX < _this.startX) ? e.offX: e.offX - bar.offsetWidth;
        _this.destX = Math.min(Math.max(_this.destX, _this.minX), _this.maxX);
        _this.destY = _this.startY;
       }
    _this.distX = _this.destX - _this.startX;
    _this.distY = _this.destY - _this.startY;
    _this.per = Math.PI / (2 * _this.slideDur);
    _this.slideStartTime = new Date().getTime();
    _this.on_slide_start(_this.startX, _this.startY);
    _this.timer = setInterval("Slidebar.doSlide()", 10);
   };
Slidebar.doSlide = function()
   {var _this = Slidebar.current;
    var elapsed = new Date().getTime() - _this.slideStartTime;
    if (elapsed < _this.slideDur)
       {var x = _this.startX + _this.distX * Math.sin(_this.per * elapsed);
        var y = _this.startY + _this.distY * Math.sin(_this.per * elapsed);
        _this.shiftTo(x, y);
        _this.on_slide(x, y);
       }
    else 
       {clearInterval(_this.timer);
        _this.shiftTo(_this.destX, _this.destY);
        _this.on_slide(_this.destX, _this.destY);
        _this.on_slide_end(_this.destX, _this.destY);
        Slidebar.current = null;
       }
   };
Slidebar.prepDrag = function(e)
   {var bar = this;
    var barId = this.id;
    var _this = Slidebar.col[barId];
    Slidebar.current = _this;
    _this.bar = bar;
    e = Event.DOMit(e);
    if (_this.timer)
       {clearInterval(_this.timer);
        _this.timer = 0;
       }
    _this.downX = e.clientX;
    _this.downY = e.clientY;
    _this.startX = parseInt(bar.style.left);
    _this.startY = parseInt(bar.style.top);
    _this.on_drag_start(_this.startX, _this.startY);
    Event.add(document, "mousemove", Slidebar.doDrag, true);
    Event.add(document, "mouseup", Slidebar.endDrag, true);
    e.stopPropagation();
    e.preventDefault();
   };
Slidebar.doDrag = function(e)
   {if ( ! Slidebar.current) return;
    var _this = Slidebar.current;
    var bar = _this.bar;
    e = Event.DOMit(e);
    var nx = _this.startX + e.clientX - _this.downX;
    var ny = _this.startY + e.clientY - _this.downY;
    nx = Math.min(Math.max(_this.minX, nx), _this.maxX);
    ny = Math.min(Math.max(_this.minY, ny), _this.maxY);
    _this.shiftTo(nx, ny);
    _this.on_drag(nx, ny);
    e.preventDefault();
    e.stopPropagation();
   };
Slidebar.endDrag = function()
   {if ( ! Slidebar.current) return;
    var _this = Slidebar.current;
    var bar = _this.bar;
    Event.remove(document, "mousemove", Slidebar.doDrag, true);
    Event.remove(document, "mouseup", Slidebar.endDrag, true);
    _this.on_drag_end(parseInt(bar.style.left), parseInt(bar.style.top));
    Slidebar.current = null;
   };
Slidebar.prototype.shiftTo = function(x, y)
   {if (this.bar)
       {this.bar.style.left = x + "px";
        this.bar.style.top = y + "px";
       }
   };
scrollObj.prototype.setUpScrollbar = function(barId, trkId, axis, offx, offy, bSize)
   {var scrollbar = new Slidebar(barId, trkId, axis, offx, offy);
    if (axis == "v")
       {this.vBarId = barId;
       }
    else 
       {this.hBarId = barId;
       }
    scrollbar.wndoId = this.id;
    scrollbar.bSizeDragBar = (bSize === false) ? false: true;
    if (scrollbar.bSizeDragBar)
       {Scrollbar_Co.setBarSize(this, scrollbar);
       }
    Scrollbar_Co.setEvents(this, scrollbar);
   };
Scrollbar_Co = {setBarSize: function(scrollObj, barObj)
   {var lyr = document.getElementById(scrollObj.lyrId);
    var wn = document.getElementById(scrollObj.id);
    if (barObj.axis == 'v')
       {var bar = document.getElementById(scrollObj.vBarId);
        bar.style.height = (lyr.offsetHeight > wn.offsetHeight) ? barObj.trkHt / (lyr.offsetHeight / wn.offsetHeight) + "px": barObj.trkHt - (2 * barObj.minY) + 
          "px";
        barObj.maxY = barObj.trkHt - bar.offsetHeight - barObj.minY;
       }
    else if (barObj.axis == 'h')
       {var bar = document.getElementById(scrollObj.hBarId);
        bar.style.width = (scrollObj.wd > wn.offsetWidth) ? barObj.trkWd / (scrollObj.wd / wn.offsetWidth) + "px": barObj.trkWd - 
          (2 * barObj.minX) + "px";
        barObj.maxX = barObj.trkWd - bar.offsetWidth - barObj.minX;
       }
   }
, resetBars: function(scrollObj)
   {var barObj, bar;
    if (scrollObj.vBarId)
       {barObj = Slidebar.col[scrollObj.vBarId];
        bar = document.getElementById(scrollObj.vBarId);
        bar.style.left = barObj.minX + "px";
        bar.style.top = barObj.minY + "px";
        if (barObj.bSizeDragBar)
           {Scrollbar_Co.setBarSize(scrollObj, barObj);
           }
       }
    if (scrollObj.hBarId)
       {barObj = Slidebar.col[scrollObj.hBarId];
        bar = document.getElementById(scrollObj.hBarId);
        bar.style.left = barObj.minX + "px";
        bar.style.top = barObj.minY + "px";
        if (barObj.bSizeDragBar)
           {Scrollbar_Co.setBarSize(scrollObj, barObj);
           }
       }
   }
, setEvents: function(scrollObj, barObj)
   {this.addEvent(scrollObj, 'on_load', function()
       {Scrollbar_Co.resetBars(scrollObj);
       });
    this.addEvent(scrollObj, 'on_scroll_start', function()
       {Scrollbar_Co.getBarRefs(scrollObj);
       });
    this.addEvent(scrollObj, 'on_glidescroll_start', function()
       {Scrollbar_Co.getBarRefs(scrollObj);
       });
    this.addEvent(scrollObj, 'on_scroll', function(x, y)
       {Scrollbar_Co.updateScrollbar(scrollObj, x, y);
       });
    this.addEvent(scrollObj, 'on_glidescroll', function(x, y)
       {Scrollbar_Co.updateScrollbar(scrollObj, x, y);
       });
    this.addEvent(scrollObj, 'on_scroll_stop', function(x, y)
       {Scrollbar_Co.updateScrollbar(scrollObj, x, y);
       });
    this.addEvent(scrollObj, 'on_glidescroll_stop', function(x, y)
       {Scrollbar_Co.updateScrollbar(scrollObj, x, y);
       });
    this.addEvent(scrollObj, 'on_scroll_end', function(x, y)
       {Scrollbar_Co.updateScrollbar(scrollObj, x, y);
       });
    this.addEvent(scrollObj, 'on_glidescroll_end', function(x, y)
       {Scrollbar_Co.updateScrollbar(scrollObj, x, y);
       });
    this.addEvent(barObj, 'on_slide_start', function()
       {Scrollbar_Co.getWndoLyrRef(barObj);
       });
    this.addEvent(barObj, 'on_drag_start', function()
       {Scrollbar_Co.getWndoLyrRef(barObj);
       });
    this.addEvent(barObj, 'on_slide', function(x, y)
       {Scrollbar_Co.updateScrollPosition(barObj, x, y);
       });
    this.addEvent(barObj, 'on_drag', function(x, y)
       {Scrollbar_Co.updateScrollPosition(barObj, x, y);
       });
    this.addEvent(barObj, 'on_slide_end', function(x, y)
       {Scrollbar_Co.updateScrollPosition(barObj, x, y);
       });
    this.addEvent(barObj, 'on_drag_end', function(x, y)
       {Scrollbar_Co.updateScrollPosition(barObj, x, y);
       });
   }
, addEvent: function(o, ev, fp)
   {var oldEv = o[ev];
    if (typeof oldEv != 'function')
       {o[ev] = function(x, y)
           {fp(x, y);
           };
       }
    else 
       {o[ev] = function(x, y)
           {oldEv(x, y);
            fp(x, y);
           };
       }
   }
, updateScrollbar: function(scrollObj, x, y)
   {var nx, ny;
    if (scrollObj.vBar && scrollObj.maxY)
       {var vBar = scrollObj.vBar;
        ny = - (y * ((vBar.maxY - vBar.minY) / scrollObj.maxY) - vBar.minY);
        ny = Math.min(Math.max(ny, vBar.minY), vBar.maxY);
        if (vBar.bar)
           {nx = parseInt(vBar.bar.style.left);
            vBar.shiftTo(nx, ny);
           }
       }
    if (scrollObj.hBar && scrollObj.maxX)
       {var hBar = scrollObj.hBar;
        nx = - (x * ((hBar.maxX - hBar.minX) / scrollObj.maxX) - hBar.minX);
        nx = Math.min(Math.max(nx, hBar.minX), hBar.maxX);
        if (hBar.bar)
           {ny = parseInt(hBar.bar.style.top);
            hBar.shiftTo(nx, ny);
           }
       }
   }
, updateScrollPosition: function(barObj, x, y)
   {var nx, ny;
    var wndo = barObj.wndo;
    if ( ! wndo.lyr)
       {wndo.lyr = document.getElementById(wndo.lyrId);
       }
    if (barObj.axis == "v")
       {nx = wndo.x;
        ny = - (y - barObj.minY) * (wndo.maxY / (barObj.maxY - barObj.minY)) || 0;
       }
    else 
       {ny = wndo.y;
        nx = - (x - barObj.minX) * (wndo.maxX / (barObj.maxX - barObj.minX)) || 0;
       }
    wndo.shiftTo(nx, ny);
   }
, getBarRefs: function(scrollObj)
   {if (scrollObj.vBarId)
       {scrollObj.vBar = Slidebar.col[scrollObj.vBarId];
        scrollObj.vBar.bar = document.getElementById(scrollObj.vBarId);
       }
    if (scrollObj.hBarId)
       {scrollObj.hBar = Slidebar.col[scrollObj.hBarId];
        scrollObj.hBar.bar = document.getElementById(scrollObj.hBarId);
       }
   }
, getWndoLyrRef: function(barObj)
   {var wndo = barObj.wndo = scrollObj.col[barObj.wndoId];
    if (wndo && ! wndo.lyr)
       {wndo.lyr = document.getElementById(wndo.lyrId);
       }
   }
};
scrollObj.loadLayer = function(wndoId, lyrId, horizId)
   {if (scrollObj.col[wndoId]) scrollObj.col[wndoId].load(lyrId, horizId);
   };
scrollObj.initScroll = function(wndoId, dir, speed)
   {var deg = dir == 'up' ? 90: dir == 'down' ? 270: dir == 'left' ? 180: dir == 'right' ? 0: dir;
    if (deg !== null && scrollObj.col[wndoId])
       {scrollObj.col[wndoId].initScrollVals(deg, speed);
       }
   };
scrollObj.stopScroll = function(wndoId)
   {if (scrollObj.col[wndoId]) scrollObj.col[wndoId].ceaseScroll();
   };
scrollObj.doubleSpeed = function(wndoId)
   {if (scrollObj.col[wndoId]) scrollObj.col[wndoId].speed *= 2;
   };
scrollObj.resetSpeed = function(wndoId)
   {if (scrollObj.col[wndoId]) scrollObj.col[wndoId].speed /= 2;
   };
scrollObj.scrollBy = function(wndoId, x, y, dur)
   {if (scrollObj.col[wndoId]) scrollObj.col[wndoId].initScrollByVals(x, y, dur);
   };
scrollObj.scrollTo = function(wndoId, x, y, dur)
   {if (scrollObj.col[wndoId]) scrollObj.col[wndoId].initScrollToVals(x, y, dur);
   };
var dragObj = {};
function dragGo(event)
   {var x, y;
    if (window.event)
       {x = window.event.clientX + document.documentElement.scrollLeft + document.body.scrollLeft;
        y = window.event.clientY + document.documentElement.scrollTop + document.body.scrollTop;
       }
    else 
       {x = event.clientX + window.scrollX;
        y = event.clientY + window.scrollY;
       }
    dragObj.elNode.style.left = (dragObj.elStartLeft + x - dragObj.cursorStartX) + "px";
    dragObj.elNode.style.top = (dragObj.elStartTop + y - dragObj.cursorStartY) + "px";
    if (window.event)
       {window.event.cancelBubble = true;
        window.event.returnValue = false;
       }
    else 
       {event.preventDefault();
       }
   }
function dragStop(event)
   {if (document.detachEvent)
       {document.detachEvent("onmousemove", dragGo);
        document.detachEvent("onmouseup", dragStop);
       }
    else 
       {document.removeEventListener("mousemove", dragGo, true);
        document.removeEventListener("mouseup", dragStop, true);
       }
   }
function dragStart(event, id)
   {var x, y;
    if (id)
       {dragObj.elNode = document.getElementById(id);
       }
    else 
       {if (window.event)
           {dragObj.elNode = window.event.srcElement;
           }
        else 
           {dragObj.elNode = event.target;
           }
        if (dragObj.elNode.nodeType == 3)
           {dragObj.elNode = dragObj.elNode.parentNode;
           }
       }
    if (window.event)
       {x = window.event.clientX + document.documentElement.scrollLeft + document.body.scrollLeft;
        y = window.event.clientY + document.documentElement.scrollTop + document.body.scrollTop;
       }
    else 
       {x = event.clientX + window.scrollX;
        y = event.clientY + window.scrollY;
       }
    dragObj.cursorStartX = x;
    dragObj.cursorStartY = y;
    dragObj.elStartLeft = parseInt(dragObj.elNode.style.left, 10);
    dragObj.elStartTop = parseInt(dragObj.elNode.style.top, 10);
    if (isNaN(dragObj.elStartLeft))
       {dragObj.elStartLeft = 0;
       }
    if (isNaN(dragObj.elStartTop))
       {dragObj.elStartTop = 0;
       }
    if (document.attachEvent)
       {document.attachEvent("onmousemove", dragGo);
        document.attachEvent("onmouseup", dragStop);
        window.event.cancelBubble = true;
        window.event.returnValue = false;
       }
    else 
       {document.addEventListener("mousemove", dragGo, true);
        document.addEventListener("mouseup", dragStop, true);
        event.preventDefault();
       }
   }
function captureEvents()
   {if (inputvar == "0")
       {return false;
       }
   }
document.onselectstart = captureEvents;
document.onselect = captureEvents;
document.ondblclick = captureEvents;
document.onmousedown = captureEvents;