/*
	PR-Property-Search
	Version 10.04.08
	
	- Full-Text-Search included
	- JS Client Interface + Server-Side Search combined
*/

var fps = 20;
var anitime = 10;

var framerate = 1000 / fps;
var TOP = 350;
var t;

var ft_interval = false;
var ft_lastTerm = '';
var ft_allowed = -1;

var layer = -1;

var anims = new Array();

function orderElements()
{
	/*  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  
	 * HANDLING FÜR DEN FALL, DASS DIE SEITE MIT
	 *  PARAMETERN AUFGERUFEN WIRD
	 *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */
	 
	var reloaded = false;
	
	if (nr != null && nr != ''){
		reloaded = true;
		e = document.getElementById('objnr');
		e.value = nr;
		show_nr = nr;
	}
	
	if (art != null && art != ''){
		es = document.getElementById('dropdown_objart').getElementsByTagName('a'); 
		for (var i = 0; i < es.length; i++)
		{
			func = es[i].getAttribute('onclick').toString(); 
			if(func.indexOf("'"+art+"'") != -1)
			{
				elemHighlight(es[i]);
				show_art = es[i].innerHTML;
				reloaded = true;
			}
		}		
	}
	
	if (ort != null && ort != ''){
		es = document.getElementById('dropdown_objort').getElementsByTagName('a'); 
		for (var i = 0; i < es.length; i++)
		{
			func = es[i].getAttribute('onclick').toString(); 
			if(func.indexOf("'"+ort+"'") != -1)
			{
				elemHighlight(es[i]);
				show_ort = es[i].innerHTML;
				reloaded = true;
			}
		}
	}
	
	if (preise != null && preise != ''){
		es = document.getElementById('dropdown_preis').getElementsByTagName('a'); 
		for (var i = 0; i < es.length; i++)
		{
			func = es[i].getAttribute('onclick').toString(); 
			if(func.indexOf("'"+preise+"'") != -1)
			{
				elemHighlight(es[i]);
				show_preis = es[i].innerHTML;
				reloaded = true;
			}
		}
	}
	
	if (ft_term != null && ft_term != '' && ft_term != ft_label){
		document.getElementById('filter_fulltext').value = ft_term;
		reloaded = true;
	}
	
	if (reloaded == true){
		filter_pr(true);
	}
	else positionCopyright(true);
}

function pushIntoAnims(elem, gif)
{
	// Function removed
}

function animator()
{
	// Function removed
}

function elemHighlight(elem)
{
	var atags = elem.parentNode.parentNode.getElementsByTagName('a');
	for(var i = 0; i < atags.length; i++)
	{
		var index = atags[i].className.indexOf('active');
		
		if (index != -1)
		{
			atags[i].className = atags[i].className.substring(0, index-1);
		}
	}
	elem.className = elem.className + ' active';
}

function filter_volltext(elem)
{
	try {
		clearTimeout(ft_interval);
	}catch(e){};
	
	ft_term = elem.value;
	
	try {
		ft_interval = setTimeout('filter_pr();', 1500);
	}catch(e){};
}

function filter_nr(elem)
{
	try {
		clearTimeout(ft_interval);
	}catch(e){};
	
	nr = elem.value;
	nr = nr.toUpperCase();
	show_nr = nr;
	
	try {
		ft_interval = setTimeout('filter_pr();', 1500);
	}catch(e){};
}

function filter_art(str, elem)
{
	elemHighlight(elem);
	art = str;
	show_art = elem.innerHTML;
	
	filter_pr();
	elem.blur();
}

function filter_ort(str, elem)
{
	elemHighlight(elem);
	ort = str;
	show_ort = elem.innerHTML;
	
	filter_pr();
	elem.blur();
}

function filter_preis(str, elem, showZ)
{
	if (typeof(showZ) == 'undefined') {
		show_z = 0;
	} else show_z = 1;
	
	elemHighlight(elem);
	preise = str;
	show_preis = elem.innerHTML;
	
	filter_pr();
	elem.blur();
}

// Neue Volltextsuche
function fulltextFocus(e)
{
	if (e.value == ft_label) e.value = '';
}

function fulltextBlur(e)
{
	if (e.value == '') e.value = ft_label;
}

function fulltext_showHelp(show)
{
	document.getElementById('ft_helpText').style.display = (show) ? 'block' : 'none';
}

function showFilterInfo()
{
	if (nr == '') show_nr = show_nr_root;
	
	document.getElementById('filter_art').innerHTML = limitString(show_art, 20);
	document.getElementById('filter_ort').innerHTML = limitString(show_ort, 20);
	document.getElementById('filter_preis').innerHTML = limitString(show_preis, 20);
	document.getElementById('filter_objnr').innerHTML = limitString(show_nr, 20);
		
	if (ft_term != '') document.getElementById('filter_fulltext').value = ft_term;
}

function filter_pr(dontSearch)
{
	try {
		clearTimeout(ft_interval);
	}catch(e){};
	//document.getElementById('logo').innerHTML = "filtered " + new Date().toString();
	
	/* function reduced */
	preis = preise;
	
	showFilterInfo();
	
	shows = 0;
	
	if (preis != '') {
		preis = preise.split('-');
		von_preis = parseFloat(preis[0]);
		bis_preis = parseFloat(preis[1]);
	} else {
		von_preis = 0;
		bis_preis = 0;
	}
	
	// Werte in Formular übertragen
	if (typeof(show_art) != 'undefined') document.getElementById('suchErgebnisse').objektart.value = art;
	if (typeof(show_ort) != 'undefined') document.getElementById('suchErgebnisse').ort.value = ort;
	if (typeof(preis) != 'undefined')	 document.getElementById('suchErgebnisse').von_preis.value = von_preis;
	if (typeof(preis) != 'undefined')	 document.getElementById('suchErgebnisse').bis_preis.value = bis_preis;
	if (typeof(show_nr) != 'undefined')  document.getElementById('suchErgebnisse').objektnummer.value = nr;
	if (typeof(ft_term) != 'undefined')	 document.getElementById('suchErgebnisse').fulltext.value = ft_term;
	if (typeof(show_z) != 'undefined')	 document.getElementById('suchErgebnisse').show_z.value = show_z;
	
	// Suche ausführen, wenn nicht anders übergeben
	if (typeof(dontSearch) == 'undefined' || !dontSearch) {
		resetPage();
		document.getElementById('suchErgebnisse').submit();
	}
}

function resetPage() {
	document.getElementById('suchErgebnisse').page.value = 1;
}

function positionCopyright(startUp)
{
	// Placeholder, function removed
}


// Folgende Funktionen geben die tatsächliche Position eines Elementes zurück
function absLeft(el) {
 return (el.offsetParent)? 
 el.offsetLeft+absLeft(el.offsetParent) : el.offsetLeft;
}

function absTop(el) {
 return (el.offsetParent)? 
 el.offsetTop+absTop(el.offsetParent) : el.offsetTop;
}

//Einfache Info funktion
function info(elem)
{
	alert(elem.offsetWidth + ' x ' + elem.offsetHeight
		+ '/' + absLeft(elem) + ' x ' + absTop(elem));
}

function limitString(str, len)
{
	if (str.length > len) return str.substr(0, len)+"...";
	return str;
}

function unfocusObjnr(e)
{
	try	{
	document.getElementById('objnr').blur();
	document.getElementById('dropdown_objnr').style.display = '';
	}
	catch(e){};
}

function focusObjnr(e)
{
	try	{
	document.getElementById('dropdown_objnr').style.display = 'block';
	document.getElementById('objnr').focus();
	}
	catch(e){};
}

/* Unterhalb die Scripte für an den Mauszeiger */

var layer = -1;

function truebody(){
	return (!window.opera && document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body;
}

function iebody(){
	try
	{
		if (document.documentElement.clientHeight) return document.documentElement;
	}
	catch(e) {};
	
	return document.body;
}

function hideLayer(src){
	layer.style.display='none';
	layer = -1;
	
	try
	{
		delete document.onmousemove;
	}
	catch(e)
	{
		document.onmousemove = null;
	}
}

function showLayer(src)
{
	if (src.style.visibility != 'hidden')
	{
		n = src.id.substr(src.id.indexOf('_')+1);
		
		layer = document.getElementById('lay_'+n);
		
		// Erweiterung für Suche
		/*if (layer.parentNode.className.search('shadedPicture') != -1) {
			layer = layer.parentNode;
		}*/
		
		layer.style.display='block';
		layer.style.zIndex=40;
		document.onmousemove=followmouse;
		
		followmouse(null);
	}
}

function showLayer_ext(src)
{
	if (src.style.visibility != 'hidden')
	{
		n = src.id.substr(src.id.indexOf('_')+1);
		
		layer = document.getElementById('lay_currency_'+n);
		layer.style.display='block';
		layer.style.zIndex=40;
	}
}

function showLayer_search(src, showToRight) {
	if (typeof(showToRight) == 'undefined') {
		showToRight = false;
	}
	
	showLayer(src);
	
	if (showToRight) {
		mouseoffset = [ 20, - layer.offsetHeight / 2];
	} else {
		mouseoffset = [ -20 - layer.offsetWidth, - layer.offsetHeight / 2];
	}
}

// Neue Funktion für Groupstartseite
function showLayer_group(src)
{
	if (src.style.visibility != 'hidden')
	{
		n = src.id.substr(src.id.indexOf('_')+1);
		
		layer = document.getElementById('lay_'+n);
		layer.style.display='block';
		layer.style.zIndex=40;
		document.onmousemove=followmouse;
		
		switch (src.parentNode.id)
		{
			case 'zuerichnews': mouseoffset=[20,0]; break;
			case 'kitznews': mouseoffset=[-20-layer.offsetWidth,0]; break;
			case 'mallorcanews': mouseoffset=[-20-layer.offsetWidth,0]; break;
			default: mouseoffset=[20,0]; break;
		}
		
		followmouse(null);
	}
}


var ns6=document.getElementById&&!document.all?1:0

agent = navigator.userAgent;
var safari=(agent.search(/safari/i) != -1) ? true : false;


function setFlyoutPosition(mouseX, mouseY)
{
	try{ layer.style.left=x+'px'; }catch(e){};
	try{ layer.style.top=y+'px';  }catch(e){};
}



if (document.layers || ns6 || safari == true)		//KOMPATIBLE FIREFOX VERSION
{
	var mouseoffset=[20,0];
	var x = 0;
	var y = 0;
		
	var followmouse = function (e){
		try{ x = (document.layers || ns6) ? e.pageX : document.body.scrollLeft+event.clientX; }catch(e){};
		try{ y = (document.layers || ns6) ? e.pageY : document.body.scrollTop+event.clientY;  }catch(e){};
		
		// Wenn Layer zu weit unten im sichtbaren Bereich => oberhalb des Zeigers anzeigen, sonst unterhalb		
		if (y+layer.offsetHeight > window.pageYOffset + (window.innerHeight))
		{
			x+=mouseoffset[0];
			y-=layer.offsetHeight;
		}
		else
		{
			x+=mouseoffset[0];
			y+=mouseoffset[1];
		}
		
		
		try{ layer.style.left=x+'px'; }catch(e){};
		try{ layer.style.top=y+'px';  }catch(e){};
	}
}
else		// IE VERSION
{
	var mouseoffset=[20,0];

	var followmouse = function (e){
		var xcoord=truebody().scrollLeft+event.clientX;
		var ycoord=truebody().scrollTop+event.clientY;

		// Wenn Layer zu weit unten im sichtbaren Bereich => oberhalb des Zeigers anzeigen, sonst unterhalb
		if (ycoord+layer.offsetHeight > truebody().scrollTop + iebody().clientHeight)
		{
			xcoord+=mouseoffset[0];
			ycoord-=layer.offsetHeight;
		}
		else
		{
			xcoord+=mouseoffset[0];
			ycoord+=mouseoffset[1];
		}
		
		try{ layer.style.left=xcoord+"px"; }catch(e){};
		try{ layer.style.top=ycoord+"px" ; }catch(e){};
	}
}
