////////// scroller ///////////

function verifyCompatibleBrowser(){
    this.ver=navigator.appVersion
    this.dom=document.getElementById?1:0
    this.ie5=(this.ver.indexOf("MSIE 5")>-1 && this.dom)?1:0;
    this.ie4=(document.all && !this.dom)?1:0;
    this.ns5=(this.dom && parseInt(this.ver) >= 5) ?1:0;
    this.ns4=(document.layers && !this.dom)?1:0;
    this.bw=(this.ie5 || this.ie4 || this.ns4 || this.ns5)
    return this
}
bw=new verifyCompatibleBrowser();

var speed=25

var loop, timer

function ConstructObject(obj2,nest){
    nest=(!nest) ? '':'document.'+nest+'.'
    this.el=bw.dom ? document.getElementById(obj2):bw.ie4?document.all[obj2]:bw.ns4?eval(nest+'document.'+obj2):0;
    this.css=bw.dom?document.getElementById(obj2).style:bw.ie4 ? document.all[obj2].style:bw.ns4?eval(nest+'document.'+obj2):0;
    this.scrollHeight=bw.ns4?this.css.document.height:this.el.offsetHeight
    this.clipHeight=bw.ns4?this.css.clip.height:this.el.offsetHeight
    this.up=MoveAreaUp;this.down=MoveAreaDown;
    this.MoveArea=MoveArea; this.x; this.y;
    this.obj2 = obj2 + "Object"
    eval(this.obj2 + "=this")
    return this
}
function MoveArea(x,y){
    this.x=x;this.y=y
    this.css.left=this.x
    this.css.top=this.y
}

function MoveAreaDown(move){
	if(this.y>-this.scrollHeight+objContainer.clipHeight){
    this.MoveArea(0,this.y-move)
    if(loop) setTimeout(this.obj2+".down("+move+")",speed)
	}
}
function MoveAreaUp(move){
	if(this.y<0){
    this.MoveArea(0,this.y-move)
    if(loop) setTimeout(this.obj2+".up("+move+")",speed)
	}
}

function PerformScroll(speed){
	if(initialised){
		loop=true;
		if(speed>0) objScroller.down(speed)
		else objScroller.up(speed)
	}
}

function CeaseScroll(){
    loop=false
    if(timer) clearTimeout(timer)
}
var initialised;

function InitialiseScrollableArea(theOuterDiv,theInnerDiv){
    objContainer=new ConstructObject(theOuterDiv)
    objScroller=new ConstructObject(theInnerDiv,theOuterDiv)
    objScroller.MoveArea(0,0)
    initialised=true;
}


//////////// popup ///////////
function launchwin(winurl,winname,winfeatures)
{
	newwin = window.open(winurl,winname,winfeatures);
	newwin.focus();
}

/////////////cookies//////////////
function createCookie(name, value, days)
{
  if (days) {
    var date = new Date();
    date.setTime(date.getTime()+(days*24*60*60*1000));
    var expires = "; expires="+date.toGMTString();
    }
  else var expires = "";
  document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
  var nameEQ = name + "=";
  var ca = document.cookie.split(';');
  for(var i=0;i < ca.length;i++) {
    var c = ca[i];
    while (c.charAt(0)==' ') c = c.substring(1,c.length);
    if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
  }
  return null;
}

////////////////////// Layerswap, divdisplay ////////////////////
function swapDivs() {
  var i,p,v,obj,args=swapDivs.arguments;
  for (i=0; i<(args.length-1); i+=2) if ((obj=findeObj(args[i]))!=null) { v=args[i+1];
  if (obj.style) { obj=obj.style; v=(v=='on')?'block':(v='off')?'none':v; }
  obj.display=v; }
}

function findeObj(n, d) {
  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=findObj(n,d.layers[i].document);
  if(!x && document.getElementById) x=document.getElementById(n); return x;
}

////////////////////// preloader ////////////////////
function preloadImages() {
  var d=document; if(d.images){ if(!d.p) d.p=new Array();
  var i,j=d.p.length,a=preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.p[j]=new Image; d.p[j++].src='/img/'+a[i];}}
}

function preloadPrepareInnen() {
	preloadImages(
		'navsub/home-mo.gif',
		'navsub/idee-mo.gif',
		'navsub/profil-mo.gif',
		'navsub/leistungen-mo.gif',
		'navsub/referenzen-mo.gif',
		'navsub/presse-mo.gif',
		'navsub/kontakt-mo.gif')
}
