
function showSearchOptions() {
	if (!inited) return;
	headnav.cut();
	searchoptions.paste();
	searchbox.setOverflow('visible');
	mousemoveObject(searchbox);

	
}
function hideSearchOptions() {
	if (!inited) return;
	searchoptions.cut();
	searchbox.setHeight(searchboxHeight);
	searchbox.setOverflow('hidden');
	headnav.paste();
	mmObj = false;
}

function showStartlink() {
	if (!inited) return;
	startlink.paste();
}
function hideStartlink() {
	if (!inited) return;
	startlink.cut();
}

var categoryoffset = '';
var categorys_open  = '[<a href="javascript:toggleFullCategoryList(\'open\');">alle anzeigen</a>]';
var categorys_close = '[<a href="javascript:toggleFullCategoryList(\'close\');">einklappen</a>]';

function toggleFullCategoryList(direction) {
	var toolTop    = new LayerObject('ResizeBoxTop');
	var toolBottom = new LayerObject('ResizeBoxBottom');
	var t  = new LayerObject('body');
	if (direction=='open' && t.d.scrollHeight) {
		if (!categoryoffset) categoryoffset = t.height-20;
		t.setHeight((t.d.scrollHeight)+'px');
		toolTop.rewrite(categorys_close);
		toolBottom.rewrite(categorys_close);
	} 
	if (direction=='close') {
		t.setHeight(categoryoffset+'px');
		toolTop.rewrite(categorys_open);
		toolBottom.rewrite('');
	}
}

function setCategoryResizer() {
	var toolTop = new LayerObject('ResizeBoxTop');
	var t  = new LayerObject('body');
	if (t.d.scrollHeight > t.height) {
		toolTop.rewrite(categorys_open);
	}
}

var inited        = false;
var startlink     = '';

var searchbox     = '';
var searchform    = '';
var searchoptions = '';
var suchepreis    = '';
var suchewo       = '';

var searchboxMarginLeft  = "";
var searchboxMarginTop   = "";
var searchformWidth   = "";
var searchboxHeight  = "";
var searchboxWidth  = "";
var searchboxContent = "";

var headnav = "";

var mouse = new Array("x","y");
var scrollTopOffset = false;
var mousecontrol_timer = 50;
var mousecontrol_interval = false;


function init () {
	
	headnav  = new LayerObject('Headnav');
	startlink = new LayerObject('Startlink');
	searchbox  = new LayerObject('Searchbox');
	searchform = new LayerObject('Searchform');
	searchoptions = new LayerObject('SearchOptions');
	suchepreis = new LayerObject('SuchePreis');
	suchewo    = new LayerObject('SucheWo');

	searchboxContent = searchbox.innerHTML;
	searchboxWidth  = searchbox.getWidth(); 
	searchboxHeight = searchbox.getHeight(); 

	searchformMarginLeft = searchform.css.marginLeft;
	searchformMarginTop  = searchform.css.marginTop;
	
	Event_init();
	
	if (document.getElementById('ResizeBoxTop')) {
		setCategoryResizer();
	}
	
	inited = true;
}

window.onload = init;

var mmObj = false;
function mousemoveObject(which) {
	if (!inited) return;
	if (!mmObj) {
		mmObj = searchbox;
		mmObj.leftEdge   = mmObj.getLeft();
		mmObj.rightEdge  = mmObj.getLeft() + mmObj.getWidth();
		mmObj.bottomEdge = mmObj.getTop()  + mmObj.getHeight();
		mmObj.topEdge    = mmObj.getTop();
		if (document.all) {
			var diff =(getWindowWidth()-970)/2;	
			mmObj.leftEdge   += diff;
			mmObj.rightEdge  += diff;
			
		}
	}
//	if (!mmObj) mmObj = new LayerObject(which);
}

function handleMouseMove(e) {
	mouse["x"] = (!document.all)? e.pageX : window.event.clientX;
	mouse["y"] = (!document.all)? e.pageY : (window.event.clientY);
	if (document.all) {
		if (document.documentElement.scrollTop) {
			scrollTopOffset = document.documentElement.scrollTop;
		}
		else {
			scrollTopOffset = window.document.body.scrollTop;
		}
	}
	mouse["y"] += scrollTopOffset;

	// infolayer verschieben
	if (mmObj) {

		var offset = 10;
//		var moveLeft = mouse["x"];
//		var moveTop  = mouse["y"];

//		windowstatus = 'Suche Optionen sind eingeblendet!';
//		windowstatus = mmObj.id +': '+ mouse["x"] +' / '+mouse["y"];
//		windowstatus += ' :: box :: ' + mmObj.topEdge +' / '+ mmObj.rightEdge + ' / '+ mmObj.bottomEdge + ' / ' + mmObj.leftEdge;
//		window.status = windowstatus;

		if (mouse["x"] < (mmObj.leftEdge-offset)) {
			hideSearchOptions();
		}
		else if (mouse["x"] > (mmObj.rightEdge+offset)) {
			hideSearchOptions();
		}
		if (mouse["y"] < (mmObj.topEdge-offset)) {
			hideSearchOptions();
		}
		else if (mouse["y"] > (mmObj.bottomEdge+(offset*2))) {
			hideSearchOptions();
		}
	}

}

function Event_init() {
	if (document.layers){
		window.captureEvents (Event.MOUSEMOVE);
	    window.onmousemove = handleMouseMove;
	}
	else {  document.onmousemove=handleMouseMove; }
}


// ------------------  Anfang Fensterfunktionen siehe auch windowObject.js

function getWindowXpos() {
	if (window.screenLeft) return window.screenLeft;
	else if (window.screenX ) return window.screenX;
}
function getWindowYpos() {
	if (window.screenTop) return window.screenTop;
	else if (window.screenY ) return window.screenY;
}
function getWindowWidth(innerouter) {
	if (!innerouter) return getWindowInnerWidth();
	else if (innerouter == "outer")  return getWindowOuterWidth();
	else if (innerouter == "inner")  return getWindowInnerWidth();
}
function getWindowHeight(innerouter) {
	if (!innerouter) return getWindowInnerHeight();
	else if (innerouter == "outer") return getWindowOuterHeight();
	else if (innerouter == "inner") return getWindowInnerHeight();
}

function getWindowOuterWidth() {
	if (window.outerWidth) return window.outerWidth;
	else if (document.body && document.body.offsetWidth) return document.body.offsetWidth;
	else return 0;
}

function getWindowOuterHeight() {
	if (window.outerHeight) return window.outerHeight;
	else if (document.body && document.body.offsetHeight) return document.body.offsetHeight;
	else return 0;
}

function getWindowInnerWidth() {
	if (window.innerWidth) return window.innerWidth;
	else if (document.body && document.body.clientWidth) return document.body.clientWidth;
	else return 0;
}

function getWindowInnerHeight() {
	if (window.innerHeight) return window.innerHeight;
	else if (document.body && document.body.clientHeight) return document.body.clientHeight;
	else return 0;
}
