var ns = document.layers ? true : false;
var ie = document.all && !window.opera ? true : false;;    // IEs
var dom = document.getElementById && !ie ? true : false;  // DOM-Browser
if(jQuery) $j = jQuery.noConflict();
var subheight=100;
if(typeof changeSize != "function") {
	function changeSize() {  
		if($('layout_footer') && $('layout_header')) 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($('mainBody')) {
			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 sizeToSession(width, height) {
	new Ajax.Request('ajax/sizeToSession.php?w='+width+'&h='+height, {
		method: 'get',
		asynchronous: true,
		evalScript: true	
	});	
}

function Fensterweite()
{
if (window.innerWidth) return window.innerWidth;
else if (document.body && document.body.offsetWidth) return document.body.offsetWidth;
else return 0;
}

function Fensterhoehe()
{
if (window.innerHeight) return window.innerHeight;
else if (document.body && document.body.offsetHeight) return document.body.offsetHeight;
else return 0;
}
/*
Event.observe(window, 'resize', function(){
	sizeToSession(Fensterweite(), Fensterhoehe());;	
});
Event.observe(window, 'load', function(){
	sizeToSession(Fensterweite(), Fensterhoehe());;	
});
*/
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 sameHeight(ele1,ele2){
	if(typeof $j != 'function') return false;
	var h1=$j(ele1).height();
	var h2=$j(ele2).height();
	var pad1=parseInt($j(ele1).css('padding-top'))+parseInt($j(ele1).css('padding-bottom'));
	var pad2=parseInt($j(ele2).css('padding-top'))+parseInt($j(ele2).css('padding-bottom'));
	var h=h1>h2?h1:h2;
	//alert(ele1 + ": "+$j(ele1).height() + " / " + (h-pad1) + "; "+ele2 + ": " + $j(ele2).height()+" / " + (h-pad2));
	//alert($j(ele2).width());
	$j(ele1).height(h-pad1);
	$j(ele2).height(h-pad2);
	//$j(ele2).height($j(ele2).height());
	//alert($j(ele2).width());
	
}

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 loading(){
//if(typeof displayLoading == "function") displayLoading();	
}
function unloading(){
//if(typeof hideLoading == "function") hideLoading();	
}
function request(method,url,ziel,postform,loadingani,newserialize){    
    if(jQuery('#'+loadingani).length > 0) jQuery('#'+loadingani).show();
    else loading();
    
	if(method=='post' || method=='POST'){
		if(newserialize) var pbody = jQuery('#' + postform).serialize(true);
		var pbody = jQuery('#' + postform).serialize();
	} else var pbody = "";
	
    jQuery.ajax({
        url: url,
        type: method,
        data: pbody,
        success: function(data, textStatus, XMLHttpRequest) {
            jQuery('#' + ziel).html(data); 
            if(jQuery('#'+loadingani).length > 0) jQuery('#'+loadingani).hide();
            else unloading();
        },
        error: function(XMLHttpRequest, textStatus, errorThrown) {
            jQuery('#' + ziel).html(data);
            if(jQuery('#'+loadingani).length > 0) jQuery('#'+loadingani).hide();
            else unloading();
        }    
    });
}

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];}
}

function produkte(kat){
	location.href="/bs_shop_"+kat;
}

function displayGoogleMap(address, title) {	
	var gbid = showGrayBox();
	displayLoading();	
	
	new Ajax.Request('ajax/displayGoogleMap.php', {
		method: 'get',
		asynchronous: true,
		evalScript: true,
		onComplete: function(t) {
			$('gb_temp').update(t.responseText);	
			simpleCenter(gbid);			
			
			var map = new GMap2(document.getElementById("map_canvas"));
			var geocoder = new GClientGeocoder();
			
			var topRight = new GControlPosition(G_ANCHOR_TOP_RIGHT, new GSize(10,10));
       		
			map.addControl(new GMapTypeControl(), topRight);
			map.addControl(new GSmallMapControl());
			
			var myIcon = new GIcon();
			myIcon.image = 'images/designs/roehrkoenig/markers/image.png';
			myIcon.shadow = 'images/designs/roehrkoenig/markers/shadow.png';
			myIcon.iconSize = new GSize(38,28);
			myIcon.shadowSize = new GSize(52,28);
			myIcon.iconAnchor = new GPoint(19,28);
			myIcon.infoWindowAnchor = new GPoint(19,0);
			myIcon.printImage = 'images/designs/roehrkoenig/markers/printImage.gif';
			myIcon.mozPrintImage = 'images/designs/roehrkoenig/markers/mozPrintImage.gif';
			myIcon.printShadow = 'images/designs/roehrkoenig/markers/printShadow.gif';
			myIcon.transparent = 'images/designs/roehrkoenig/markers/transparent.png';
			myIcon.imageMap = [21,0,23,1,37,2,37,3,37,4,37,5,37,6,37,7,37,8,36,9,36,10,36,11,35,12,35,13,34,14,34,15,34,16,33,17,33,18,33,19,32,20,32,21,32,22,32,23,32,24,31,25,32,26,28,27,5,27,5,26,5,25,5,24,5,23,5,22,4,21,4,20,4,19,3,18,3,17,3,16,3,15,2,14,2,13,2,12,1,11,1,10,0,9,0,8,0,7,0,6,0,5,0,4,0,3,13,2,15,1,16,0];
			
			
			geocoder.getLatLng(
				address,
				function(point) {
					if (!point) {
						alert(address + " not found");
					} else {
						map.setCenter(point, 13);
						map.setZoom(16);
						var marker = new GMarker(point, myIcon)
						map.addOverlay(marker);
						marker.openInfoWindowHtml(title);
					}
				}
			);
		},
		// Handle other errors
		onFailure: function(t) {
			alert('Error ' + t.status + ' -- ' + t.statusText);
		}		
	});
}

function displayGoogleMapIframe(address, title) {
	w = screen.width;
	h = screen.height;
	
	ot = Math.round((h-500)/2);
	ol = Math.round((w-600)/2);
	window.open("ajax/displayGoogleMapIframe.php?address="+address+"&title="+title, "", "width=600, height=500, scrollbars=no, left="+ol+", top="+ot);
}

function preloadHtml(html){
	//if(jQuery('#hiddenPreloadDiv').length == 0){
		hiddenPreload = document.createElement('div', html, {
			id: 'hiddenPreloadDiv'
			
		});
		document.body.appendChild(hiddenPreload);		
	//}
	//alert(jQuery('#hiddenPreloadDiv').length);
	//return jQuery('#hiddenPreloadDiv').html(html);
	
}

function updateElementWithEscapedData(target,data){
	jQuery(target).html(unescape(data));
}

function gravatar(email){
	
	var target = false;
	if(gravatar.arguments.length > 1) target = gravatar.arguments[1];
	if(email.match(/^[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i)){
		var mail = email;
	}else{
		var mail = "";
	}
	
	jQuery.get('ajax/gravatar.php?s=50&q='+mail,function(data){
		if(target){
			if(jQuery(target)){
				//preloadHtml(data);
				//window.setTimeout("updateElementWithEscapedData('"+target+"','"+escape(data)+"');",1000);
				jQuery(target).html(data);
			}
		}
		return data;	
	});
}

function validateCommentValues(){
	
}
    
    function SelectText(element) {
        var text = document.getElementById(element);
	if(!text) return;	
        if (jQuery.browser.msie) {
		jQuery(text).show();
            var range = document.body.createTextRange();
            range.moveToElementText(text);
            range.select();
        } else if (jQuery.browser.mozilla || jQuery.browser.opera) {
            var selection = window.getSelection();
            var range = document.createRange();
            range.selectNodeContents(text);
            selection.removeAllRanges();
            selection.addRange(range);
        } else if (jQuery.browser.safari) {
            var selection = window.getSelection();
            selection.setBaseAndExtent(text, 0, text, 1);
        }
    }