var ns = document.layers ? true : false;
var ie = document.all && !window.opera ? true : false;;    // IEs
var dom = document.getElementById && !ie ? true : false;  // DOM-Browser

var subheight=100;

function changeSize() {  
	subheight=26+$('layout_footer').getHeight()+$('layout_header').getHeight();
	if($('navigation_top')) subheight+=$('navigation_top').getHeight();
	
	var finheight=document.viewport.getHeight()-subheight;
	leftheight=0;
	if($('navigation_links')) leftheight+=$('navigation_links').getHeight();
	if($('navigation_block')) leftheight+=$('navigation_block').getHeight();
	if($('teaser_links')) leftheight+=$('teaser_links').getHeight();
	if(finheight<leftheight){
		finheight=leftheight;
		$('mainBody').setStyle({overflow:'auto'});
	}else $('mainBody').setStyle({overflow:'hidden'});
	if($('main_frame')) $('main_frame').setStyle({height: finheight +'px'});
	if($('content_left_table')) $('content_left_table').setStyle({height: finheight+'px'});
	if($('maincontent')) $('maincontent').setStyle({height: finheight+'px'});
	if(ie){
		finheight-=2;
		if($('maincontent')) $('maincontent').setStyle({height: finheight+'px'});
	
		if($('content_left')) $('content_left').setStyle({height: finheight+'px'});
		if($('content_middle')) $('content_middle').setStyle({height: finheight+'px'});
		if($('content_right')) $('content_right').setStyle({height: finheight+'px'});
	}
	if($('page_iframe')) {
		$('page_iframe').setStyle({height: finheight-40+'px'});
	}
	
	if($('scalebg')){
		$('scalebg').setStyle({'height':$('center_div').getHeight()+'px','width':$('center_div').getWidth()+'px'});	
	}
	
	sizeToSession(document.viewport.getWidth(), document.viewport.getHeight());
	
	if(activeboxes > 0) {		
		if($('gb_'+activeid)) centerElementAndOverlay('gb_'+activeid);
	}
}

function onLoadFunctions() {
	changeSize();
}

function onResizeFunctions() {
	changeSize();
}

Event.observe(window, 'load', function() {
	onLoadFunctions();
});

Event.observe(window, 'resize', function() {
	onResizeFunctions();
});

function sizeToSession(width, height) {
	new Ajax.Request('ajax/sizeToSession.php?w='+width+'&h='+height, {
		method: 'get',
		asynchronous: true,
		evalScript: true	
	});	
}

function displayImg(img,id) {
	
	var gbid = showGrayBox();
	displayLoading();	
	
	new Ajax.Request('ajax/displayImage.php?img='+img+'&gbid='+gbid+'&id='+id,
	{
		method: 'get',
		asynchronous: true,
		evalScript: true,
		onComplete: function(t) {
			$('gb_temp').update(t.responseText);	
			smoothCenter(gbid);
		},
		// Handle other errors
		onFailure: function(t) {
			alert('Error ' + t.status + ' -- ' + t.statusText);
		}		
	}
	);
}


function changeImg(img,id,gbid) {
	displayLoading();
	new Ajax.Request('ajax/displayImage.php?img='+img+'&gbid='+gbid+'&id='+id,
	{
		method: 'get',
		asynchronous: true,
		evalScript: true,
		onComplete: function(t) {		
			$('gb_text_'+gbid).innerHTML = "";
		   	$('gb_temp').update(t.responseText);
			smoothCenter(gbid);
		},
		// Handle other errors
		onFailure: function(t) {
			alert('Error ' + t.status + ' -- ' + t.statusText);
		}		
	}
	);
}

function getPageScroll(){

	var yScroll;

	if (self.pageYOffset) {
		yScroll = self.pageYOffset;
	} else if (document.documentElement && document.documentElement.scrollTop){	 // Explorer 6 Strict
		yScroll = document.documentElement.scrollTop;
	} else if (document.body) {// all other Explorers
		yScroll = document.body.scrollTop;
	}

	arrayPageScroll = new Array('',yScroll) 
	return arrayPageScroll;
}

function getPageSize(){
	
	var xScroll, yScroll;
	
	if (window.innerHeight && window.scrollMaxY) {	
		xScroll = document.body.scrollWidth;
		yScroll = window.innerHeight + window.scrollMaxY;
	} else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
		xScroll = document.body.scrollWidth;
		yScroll = document.body.scrollHeight;
	} else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
		xScroll = document.body.offsetWidth;
		yScroll = document.body.offsetHeight;
	}
	
	var windowWidth, windowHeight;
	if (self.innerHeight) {	// all except Explorer
		windowWidth = self.innerWidth;
		windowHeight = self.innerHeight;
	} else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
		windowWidth = document.documentElement.clientWidth;
		windowHeight = document.documentElement.clientHeight;
	} else if (document.body) { // other Explorers
		windowWidth = document.body.clientWidth;
		windowHeight = document.body.clientHeight;
	}	
	
	// for small pages with total height less then height of the viewport
	if(yScroll < windowHeight){
		pageHeight = windowHeight;
	} else { 
		pageHeight =  yScroll;
	}

	// for small pages with total width less then width of the viewport
	if(xScroll < windowWidth){	
		pageWidth = windowWidth;
	} else {
		pageWidth = xScroll;
	}


	arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight) 
	return arrayPageSize;
}

function request(method,url,ziel,postform,loadingani,newserialize){
	if($(loadingani)) $(loadingani).show();
	else loading(); //$(ziel).update("<img src='images/loading_sitemap.gif' />");
	//alert(loadingani);
	if(method=='post' || method=='POST'){
		//alert(postform);
		if(newserialize) var pbody=$(postform).serialize(true);
		var pbody=$(postform).serialize();
	}else var pbody="";
	new Ajax.Request(url, {
		method: method,
		postBody: pbody,
		onSuccess: function(t) {
			$(ziel).update(t.responseText);
			if($(loadingani)) $(loadingani).hide();
			else unloading();
		},
		onFailure: function(t) {
			$(ziel).update('Error ' + t.status + ' -- ' + t.statusText);
			if($(loadingani)) $(loadingani).hide();
			else unloading();
		},
		evalScript: true,
		asynchronous: true
		}
	);
}

function doAjax(method,url,ziel,postform,loadingani,newserialize) {	
	request(method,url,ziel,postform,loadingani,newserialize);
}


function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.01
  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=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}