/////////////////////////////////////////////////////////////////////////////

// initfunction for the submenu-rollover (...this is mainly neede for ie)

//alert('loaded...');

var uagent=navigator.userAgent.toLowerCase();
var isIE = uagent.match('msie') && !uagent.match('opera') && (!uagent.match('msie 5.5')||!uagent.match('msie 6.'));

function initSubMenus(){
		var allElems = document.getElementsByTagName('*');
		//alert(allElems.length);
		for (var i = 0; i < allElems.length; i++) {
			var thisElem = allElems[i];
			if (thisElem.className && thisElem.className == 'ddmenu') {
			thisElem.style.backgroundColor = '#fff';
			}
		}		
	}

// variables

// resolution variables

var x,y;
var resolution = 2;

//slideshow variables 
var running;
var current; 

// cookie variables
var today = new Date();
var zero_date = new Date(0,0,0);
//today.setTime(today.getTime() - zero_date.getTime());

var todays_date = new Date(today.getYear(),today.getMonth(),today.getDate(),0,0,0);
var expires_date = new Date(todays_date.getTime() + (8 * 7 * 86400000));
//var expires_date = new Date(zero_date);

// scroll variables
var zero,zero2,zero3,poscon,maxscroll,zerozero,poscon_scr,zerozero_scr, softscroll, scrollcount=0;
var mouseOverContent; // seperate application scrollbar from browser scrollbar in ff

// browserweiche
ie = ((document.all) && (window.offscreenBuffering)) ? true : false;
nn = ((document.captureEvents) && (!document.getElementById)) ? true : false;
mz = ((document.getElementById) && (!document.all) && (document.documentElement)) ? true : false;
op = ((document.getElementById) && (navigator.userAgent.indexOf('Opera') != -1)) ? true : false
sf = (navigator.vendor.indexOf('Apple') > -1);
ff3 = (navigator.userAgent.indexOf('Firefox/3') > -1);

//if(ff3) document.body.onselectstart = null; 

/////////////////////////////////////////////////////////////////////////////
// code to execute directly 


/////////////////////////////////////////////////////////////////////////////
// functions

// menu
function showMenu(name) {
   showLayer(name);
}

function hideMenu(name) {
   hideLayer(name);
}

// turn layers on and off
function showLayer(name) {
   eval(document.getElementById(name)).style.visibility = 'visible';
}
function hideLayer(name) {
   eval(document.getElementById(name)).style.visibility = 'hidden';
}

function activateImg(num_elements, active_id) {
   for (x=0;x<num_elements;x++) {
      hideLayer("collectionpic" + x); //img_element);
   }
   showLayer("collectionpic" + active_id); //img_element);
}

// project picture viewer
function activateProjectMedium(num_elements, active_id) {
   for (x=0;x<num_elements;x++) {
//      navi_element = ;
//      hideLayer("projectpicnavi" + x); //navi_element);
      hideLayer("projectpic" + x); //img_element);
      if(x>0 && document.getElementById("imagedescription" + x) != null)
	 hideLayer("imagedescription" + x); 
      eval(document.getElementById("flippernavi" + x)).style.color = 'black';
//      eval(document.getElementById("projectpicnavi" + x)).style.color = '#2b841d';
//      eval(document.getElementById("projectpicnavi" + x)).src = 'img/scheibe.png';
   }
//   showLayer("projectpicnavi" + active_id); //navi_element);
   showLayer("projectpic" + active_id); //img_element);
   hideLayer("projectdescription");
   eval(document.getElementById("flippernavi" + active_id)).style.color = '#ee1c24';
   if(active_id > 0 && document.getElementById("imagedescription" + active_id) != null)
      showLayer("imagedescription" + active_id); 
   else if(active_id == 0) 
      showLayer("projectdescription"); 
//   eval(document.getElementById("projectpicnavi" + active_id)).style.color = '#003f06';
//   eval(document.getElementById("projectpicnavi" + active_id)).src = 'img/_scheibe.png';
//   eval(document.getElementById("initial")).src = 'img/scheibe.png';
   document.getElementById("dummy").focus();
}

function activateNewsMedium(num_elements, active_id) {
   for (x=0;x<num_elements;x++) {
      hideLayer("newsimage_cont" + x);
      //eval(document.getElementById("projectpicnavi" + x)).src = 'img/scheibe.png';
   }
   showLayer("newsimage_cont" + active_id);
   showLayer("back_button");
   hideLayer("textfield");
   hideLayer("scrollbar");
   //eval(document.getElementById("projectpicnavi" + active_id)).src = 'img/_scheibe.png';
   //eval(document.getElementById("initial")).src = 'img/scheibe.png';
   //document.getElementById("dummy").focus();
}

function activateProjectDescription(num_elements) {
   for (x=0;x<num_elements;x++) {
      hideLayer("projectpic" + x); //img_element);
      eval(document.getElementById("projectpicnavi" + x)).src = 'img/scheibe.png';
   }
   showLayer("projectdescription"); 
   document.getElementById("initial").src = 'img/_scheibe.png';
   document.getElementById("dummy").focus();
}

function activateNewsList(num_elements) {
   for (x=0;x<num_elements;x++) {
      hideLayer("newsimage_cont" + x);
      //eval(document.getElementById("projectpicnavi" + x)).src = 'img/scheibe.png';
   }
   hideLayer("back_button");
   showLayer("textfield");
   showLayer("scrollbar");
   //document.getElementById("initial").src = 'img/_scheibe.png';
   //document.getElementById("dummy").focus();
}

// picture viewer
function hidePic(medium_id) {
   if(ie) document.all('collection_'+medium_id).style.visibility='hidden';
   else document.getElementById('collection_'+medium_id).style.visibility='hidden';
}
function showPic(medium_id) {
   if(ie) document.all('collection_'+medium_id).style.visibility='visible';
   else document.getElementById('collection_'+medium_id).style.visibility='visible';
}

// resolution
function checkResolution(threshold, threshold_y) {
   // borrowed from: http://www.quirksmode.org/viewport/compatibility.html
   // thanks a lot
   var x, y;
   if (self.innerHeight) // all except Explorer
   {
      x = self.innerWidth;
      y = self.innerHeight;
   }
   else if (document.documentElement && document.documentElement.clientHeight)
      // Explorer 6 Strict Mode
   {
      x = document.documentElement.clientWidth;
      y = document.documentElement.clientHeight;
   }
   else if (document.body) // other Explorers
   {
      x = document.body.clientWidth;
      y = document.body.clientHeight;
   }

   if (src_loaded) {
      //alert(x+" "+threshold);
      storeMasterCookie();
      var oldres = getIntelligentCookie("res");
      if (x < threshold || y < threshold_y) resolution=2;
      else resolution=1;
      storeIntelligentCookie("res", resolution);
      //alert(x+" "+threshold+" -- "+y+" "+threshold_y);
      //alert(oldres+" "+resolution);
      if (oldres != resolution) {
	    // firefox developers obviously have disabled the reload function inside
	    // "onresize". https://bugzilla.mozilla.org/show_bug.cgi?id=285439
	    // workaround: set new location for firefox
	    tmep = window.location.href;
	    if(mz)
	       window.location.href=tmep;
	    else
	       window.location.reload(true);
      }
   }
}

// slideshow

// preload slideshow images, execute immediatly
function preload_slideshow_images() {
   if(document.images && slideshow_images) {
   var preload = new Array();
      for(x=0;x<slideshow_images.length;x++) {
	 preload[x] = new Image();
	 preload[x].src = slideshow_images[x];
      }
   }
}

function slide(image_o, image_a, time) {
  // pr0tect against textbrowsers
  if (document.images) {
    image_array = image_a;
    image_object = image_o;
    if (running) clearInterval(running);
    running = setInterval("shiftpix()",time);
  }
}

function stopslide() {
   clearInterval(running);
}

function shiftpix () {
  if (current < image_array.length-1) current++;
  else current = 0;
  image_object.src = image_array[current];
}

// scrollbar

function retY()
   {maxY=document.getElementById('txsc').offsetHeight-document.getElementById('txsc1').offsetHeight;
   if(ie) return maxY+4;
   else return maxY;}

function chegga_ie(e)
   {if(!document.all) zero3=e.layerY;
   else zero3=window.event.offsetY; return zero3;}
   
function chegga_fox(e)
   {e=e? e: window.event;
   zero3=(!e.layer)? e.layerY: e.offsetY; return zero3;}
;
function posit(e) {
   e=e?e:window.event;
   if(!document.all) {
     zero=e.pageY-document.getElementById('txsc').offsetTop-document.getElementById('textfield').offsetTop-document.getElementById('content').offsetTop-document.getElementById('area').offsetTop-0;
   } else {
     zero=e.clientY-document.getElementById('txsc').offsetTop-document.getElementById('textfield').offsetTop-document.getElementById('content').offsetTop-document.getElementById('area').offsetTop-2;
   }
   zerozero=zero-zero2;
   //alert(zerozero);
   poscon=parseInt(zerozero*((maxscroll+5)/retY()));
   //softscroll = setInterval('sscroll();', 20);
   document.getElementById('txsc1').style.top=Math.min(Math.max(zerozero,0),retY()) + "px";
   //alert(Math.min(Math.max(zerozero,0),retY()) + "px");
   document.getElementById('text_cont').style.top=Math.max(Math.min(0-poscon,0),0-maxscroll-5) + "px";
}

function sscroll() {
   scrollsoft(document.getElementById('txsc1').offsetTop,
	       Math.min(Math.max(zerozero,0),retY()),
	       document.getElementById('text_cont').offsetTop,
	       Math.max(Math.min(0-poscon,0),0-maxscroll-5));
}

function scrollsoft(txsc1_from, txsc1_to, tc_from, tc_to) {
   if(scrollcount>10) {
      scrollcount=0;
      clearInterval(softscroll);
   } else {
      scrollcount++
      //alert(txsc1_from + ((txsc1_to - txsc1_to) / 10 * scrollcount));
      alert(txsc1_from );
      document.getElementById('txsc1').style.top= txsc1_from + ((txsc1_to - txsc1_to) / 10 * scrollcount) + "px";
      document.getElementById('text_cont').style.top= tc_from + ((tc_to - tc_to) / 10 * scrollcount) + "px";
   }
}

function selecthelp_ff() {
	//if (typeof event.preventDefault != 'undefined') {
	//	event.preventDefault();
	//}
	document.getElementById('bdy').style.MozUserSelect="none";
}
function selecthelp_stop_ff(){
	//event.stopPropagation();
	document.getElementById('bdy').style.MozUserSelect="";
}

function selecthelp_ie() {
	return false;
}

function doer(a) {
	//document.getElementById('logo').innerHTML = "eins: " + a;
  if(document.getElementById('text_cont').offsetHeight>document.getElementById('textfield').offsetHeight-0) {
// rauf
   if(a==1) {
// ff, op, sf
      if (document.addEventListener) {
	 document.addEventListener('mousemove', posit, true);
	 document.getElementById('bdy').style.MozUserSelect="none";
	 document.test.txt.value="";
   	 //document.getElementById('bdy').addEventListener('mousedown', selecthelp_ff, true);
	 //document.getElementById('bdy').removeEventListener('mousedown', selecthelp_stop_ff, true);
   }
// ie
   else 
   	if (document.attachEvent) {
   		document.getElementById('bdy').attachEvent('onselectstart', selecthelp_ie);
   		document.attachEvent('onmousemove', posit);
		_original_onselectstart = document.onselectstart;
		document.onselectstart = function() { return false; }
   	}
    zero2=zero3;}
// runter
   else {
// ff, op, sf
      if (document.removeEventListener) {
	 document.removeEventListener('mousemove', posit, true);
	 document.getElementById('bdy').style.MozUserSelect="";
	 document.test.txt.value="up";
	 //document.getElementById('bdy').removeEventListener('mousedown', selecthelp_ff, true);
	 //document.getElementById('bdy').addEventListener('mousedown', selecthelp_stop_ff, true);
   }
// ie
   else 
   	if (document.detachEvent) {
   		document.getElementById('bdy').detachEvent('onselectstart', selecthelp_ie);
   		document.detachEvent('onmousemove', posit);
		document.onselectstart = _original_onselectstart;
   	}
	}
  }
}
      
function jumpscroll(scr1) {
  if(document.getElementById('text_cont').offsetHeight>document.getElementById('textfield').offsetHeight-0) {
   poscon_scr=Math.abs(document.getElementById('text_cont').offsetTop+2);
   //(scr1==0)? poscon_scr-=maxscroll/5 : poscon_scr+=maxscroll/5;
   (scr1==0) ? poscon_scr-=20 : poscon_scr+=20;
   document.getElementById('text_cont').style.top=Math.max(Math.min(0-poscon_scr,0),0-maxscroll-5) + "px";
   zerozero_scr=(Math.abs(document.getElementById('text_cont').offsetTop+0)-0)/((maxscroll-0)/retY());
   document.getElementById('txsc1').style.top=Math.min(Math.max(zerozero_scr,0),retY()) + "px";
   //softscroll = setInterval('sscroll();', 20);
  }
}

// ie6+ mousewheel
wheelhelp=0;
function mwheel_tx() {
   wheelhelp+=event.wheelDelta;
   (wheelhelp>0) ? jumpscroll(0) : jumpscroll(1);
   wheelhelp=0;
}

function ffMwheel(e) {
// prevent browser-scrollbar inside content/header area
   if(mouseOverContent) {
   	e.preventDefault();
   	jumpscroll(e.detail > 0 ? 1 : 0);
   }
} 

function scrollselect() {
alert(ff3);
   if (ff3) return false;
}

function scrollinit() {


	//alert(eval(null));
	//alert(eval(document.getElementById('text_cont')));
  //if (eval(document.getElementById('text_cont')) != eval(null)) {
  	//alert(document.getElementById('text_cont').offsetHeight);
			wheelhelp = 0;
			if (document.addEventListener) { 
				window.addEventListener('DOMMouseScroll', ffMwheel, false); 
				document.addEventListener('mousemove', chegga_fox, true);
			} else 
				if (document.attachEvent) 
					document.attachEvent('onmousemove', chegga_ie);
			if (document.getElementById('text_cont').offsetHeight > document.getElementById('textfield').offsetHeight - 0) {
				document.getElementById('scrollbar').style.visibility = 'visible';
				document.getElementById('txsc1').style.height = ((document.getElementById('textfield').offsetHeight - 0) / document.getElementById('text_cont').offsetHeight) * (document.getElementById('txsc').offsetHeight) + "px";
				maxscroll = document.getElementById('text_cont').offsetHeight - document.getElementById('textfield').offsetHeight + 0;
				document.getElementById('txup').style.cursor = 'pointer';
				document.getElementById('txdn').style.cursor = 'pointer';
				document.getElementById('txsc1').style.cursor = 'pointer';
				scrollbar_visible = 1;
			}
			else {
				document.getElementById('scrollbar').style.visibility = 'hidden';
				document.getElementById('textfield').style.backgroundColor = '#f0f0f0';
				//document.getElementById('txsc1').style.height=50;
				document.getElementById('txsc1').style.top = "0px";
				document.getElementById('text_cont').style.top = "0px";
				maxscroll = document.getElementById('text_cont').offsetHeight - document.getElementById('textfield').offsetHeight + 0;
				document.getElementById('txup').style.cursor = 'default';
				document.getElementById('txdn').style.cursor = 'default';
				document.getElementById('txsc1').style.cursor = 'default';
			}
  //}
}

function show_scrollbar(a) {
	if(scrollbar_visible==1) alert ("there it is: "+ a);
}

// newsfader
function news() {
   var cf = new Crossfader( new Array('newswin'), 3300, 1000, 70 );
   if(document.addEventListener) document.addEventListener('mousemove',chegga_fox,true);
   else if(document.attachEvent) document.attachEvent('onmousemove',chegga_ie);
   scrollinit();
}

// intelligent cookie script, borrowed from irt.org
// http://www.irt.org/articles/js064/index.htm
var todays_date = new Date(today.getYear(),today.getMonth(),today.getDate(),0,0,0);
var expires_date = new Date(todays_date.getTime() + (8 * 7 * 86400000));

function Get_Cookie(name) {
    var start = document.cookie.indexOf(name+"=");
    var len = start+name.length+1;
    if ((!start) && (name != document.cookie.substring(0,name.length))) return null;
    if (start == -1) return null;
    var end = document.cookie.indexOf(";",len);
    if (end == -1) end = document.cookie.length;
    return unescape(document.cookie.substring(len,end));
}

function Set_Cookie(name,value,expires,path,domain,secure) {
    document.cookie = name + "=" +escape(value) +
        ( (expires) ? ";expires=" + expires.toGMTString() : "") +
        ( (path) ? ";path=" + path : "") +
        ( (domain) ? ";domain=" + domain : "") +
        ( (secure) ? ";secure" : "");
}

function Delete_Cookie(name,path,domain) {
    if (Get_Cookie(name)) document.cookie = name + "=" +
       ( (path) ? ";path=" + path : "") +
       ( (domain) ? ";domain=" + domain : "") +
       ";expires=Thu, 01-Jan-70 00:00:01 GMT";
}


function storeMasterCookie() {
    if (!Get_Cookie('MasterCookie'))
        Set_Cookie('MasterCookie','MasterCookie');
}

function storeIntelligentCookie(name,value) {
    if (Get_Cookie('MasterCookie')) {
        var IntelligentCookie = Get_Cookie(name);
        if ((!IntelligentCookie) || (IntelligentCookie != value)) {
          if (mz) Set_Cookie(name,value);
          else Set_Cookie(name,value,expires_date);
          var IntelligentCookie = Get_Cookie(name);
          if ((!IntelligentCookie) || (IntelligentCookie != value))
            Delete_Cookie('MasterCookie');
        }
    }
}

function getIntelligentCookie(cname) {
  return Get_Cookie(cname);
}

var src_loaded = true;

layoutpics=["../img/scheibe.png",
"../img/pfeil_links.jpg",
"../img/scroll_down.jpg",
"../img/scroll_up.jpg",
"../img/pfeil_submenu.gif",
"../img/pfeil_runter.gif",
"../img/pfeil_rechts.gif",
"../img/pfeil_hauptmenue.gif",
"../img/_scheibe.png",
"../img/nix.gif",
"../img/menushadow_bottom.png",
"../img/menushadow_bottom_white.png",
"../img/menushadow_main.png",
"../img/menushadow_top.png",
"../img/topmenu_shadow.png"];
layoutpix=[];
function layoutinit() {
  if(layoutpics.length>0) {
    for(i in layoutpics)
      {layoutpix[i]=new Image();
      layoutpix[i].src=layoutpics[i];
    }
  }
}

