/*<![CDATA[*/
/**
 * functions.js - Bibliothek mit uebergreifenden JavaScript Funktionen
 *
 * Copyright (c) 2007    die.interaktiven
 *                       Gesellschaft für interaktive Medien
 *                       Eisenmarkt 1
 *                       35578 Wetzlar
 *                       Germany
 *
 *                       Fon: +49 (0)64 41 / 30 97 89 - 1
 *                       Fax: +49 (0)64 41 / 30 97 89 - 6
 *                       Web: www.die.interaktiven.de
 *
 * Alle Rechte vorbehalten. Unberechtigte Kopie und Weiter-
 * verwendung nicht gestattet.
 *
 */


var arrMouseOffset = [20,-90]; //image x,y offsets from cursor position in pixels. Enter 0,0 for no offset
var arrWindowOffset = [30,45]; //collision x,y offsets from window border in pixels. Enter 0,0 for no offset
var arrCollisionArea = [250,200]; //collition area size in pixels
var arrBoxSize = [220,150]; //box size in pixels
var boolW3c = (document.getElementById);
var strBoxId = 'tooltip';
var strContentId = 't-content';
var strCatalogListId = 'catalog-list';

catalogInit = function()
{
	document.writeln('<div id="' + strBoxId + '" style="visibility:hidden;"><div id="' + strContentId  + '"></div></div>');

	document.writeln('<style type="text/css">#' + strCatalogListId + ' { display: none; }</style>');
}

catalogGetBoxObject = function()
{
	if (boolW3c)
	{
		return document.getElementById(strBoxId);
	}
	else
	{
		return document.all[strBoxId];
	}
}

catalogGetBody = function()
{
	return (!window.opera && document.compatMode && document.compatMode != 'BackCompat') ? document.documentElement : document.body;
}

catalogHideBox = function()
{
	catalogGetBoxObject().style.visibility = 'hidden';
	
	document.onmousemove = '';

	catalogGetBoxObject().style.left = '-1000px';
	
	catalogGetBoxObject().style.top = '-1000px';
}

catalogShowBox = function(strContentId)
{
	var intBoxWidth = arrBoxSize[0];
	var intBoxHeight = arrBoxSize[1];
	
	if(typeof strContentId != 'undefined' && document.getElementById(strContentId))
	{
		catalogGetBoxObject().firstChild.innerHTML = document.getElementById(strContentId).innerHTML;

		document.onmousemove = catalogMouseMove;
	
		catalogGetBoxObject().style.visibility = 'visible';
	
		catalogGetBoxObject().style.width = intBoxWidth + 'px';
	
		//catalogGetBoxObject().style.width = intBoxHeight + 'px';
	}
	else
	{
		catalogGetBoxObject().firstChild.innerHTML = '';
	}
}


catalogMouseMove = function(e)
{
	var intMouseOffsetX = arrMouseOffset[0];
	var intMouseOffsetY = arrMouseOffset[1];
	
	var intWindowOffsetX = arrWindowOffset[0];
	var intWindowOffsetY = arrWindowOffset[1];
	
	var intCollisionAreaX = arrCollisionArea[0];
	var intCollisionAreaY = arrCollisionArea[1];
	
	var intDocumentWidth = (boolW3c) ? window.innerWidth - 15 : catalogGetBody().scrollLeft + catalogGetBody().clientWidth;
	
	var intDocumentHeight = (boolW3c) ? Math.max(document.body.offsetHeight, window.innerHeight) : Math.max(catalogGetBody().scrollHeight, catalogGetBody().clientHeight);

	if (typeof e != 'undefined')
	{
		if (intDocumentWidth - e.pageX < (intCollisionAreaX + intWindowOffsetX))
		{
			intMouseOffsetX = e.pageX - intMouseOffsetX - intCollisionAreaX; // Move to the left side of the cursor
		}
		else
		{
			intMouseOffsetX += e.pageX;
		}
		
		if (intDocumentHeight - e.pageY < (intCollisionAreaY + intWindowOffsetY))
		{
			intMouseOffsetY += e.pageY - Math.max(0,(intWindowOffsetY + intCollisionAreaY + e.pageY - intDocumentHeight - catalogGetBody().scrollTop));
		}
		else
		{
			intMouseOffsetY += e.pageY;
		}
	}
	else if (typeof window.event != 'undefined')
	{
		if (intDocumentWidth - event.clientX < (intCollisionAreaX + intWindowOffsetX))
		{
			intMouseOffsetX = event.clientX + catalogGetBody().scrollLeft - intMouseOffsetX - intCollisionAreaX; // Move to the left side of the cursor
		}
		else
		{
			intMouseOffsetX += catalogGetBody().scrollLeft + event.clientX;
		}
		if (intDocumentHeight - event.clientY < (intCollisionAreaY + intWindowOffsetY))
		{
			intMouseOffsetY += event.clientY + catalogGetBody().scrollTop - Math.max(0,(intWindowOffsetY + intCollisionAreaY + event.clientY - intDocumentHeight));
		}
		else
		{
			intMouseOffsetY += catalogGetBody().scrollTop + event.clientY;
		}
	}

	catalogGetBoxObject().style.left = intMouseOffsetX + 'px';
	
	catalogGetBoxObject().style.top = intMouseOffsetY + 'px';
}








function doStart()
{
	if(window.location.search.indexOf('druck') != -1)
	{
		setStyle('druck');
	}
	
	setStatus('Willkommen beim Hart-Hippoversand - Ihre Nr. 1 rund um Turnier- und Vereinsbedarf im Pferdesport');
	
	/*
	var iOffset = 0;
	
	if(document.getElementById('main-left') && document.getElementById('main-right'))
	{
		iOffset = 8;
		
		var iHeight = getBoxSize('main-left')[1] > getBoxSize('main-right')[1] ? getBoxSize('main-left')[1] : getBoxSize('main-right')[1];
		
		document.getElementById('main-left-content').style.height = (iHeight - 25 + iOffset) + 'px';
		
		document.getElementById('main-right-content').style.height = (iHeight -8) + 'px';
	}
	
	if(document.getElementById('subnav') && document.getElementById('main'))
	{
		if(navigator.appName.indexOf('Microsoft') == -1)
		{
			iOffset = 6;
		}
		
		var iHeight = getBoxSize('subnav')[1] > getBoxSize('main')[1] ? getBoxSize('subnav')[1] : getBoxSize('main')[1];
		
		document.getElementById('subnav-list').style.height = (iHeight - 105 + iOffset) + 'px';
		
		document.getElementById('main-content').style.height = (iHeight - 6) + 'px';
	}
	*/
}

function setStatus(sText)
{
	if(!sText) sText = '';
	window.status = sText;
	return true;
}

function showPopup(sUrl, sName, iBreite, iHoehe, sFeatures, iPosx, iPosy)
{
	var oWin = window.open(sUrl, sName,"width=" + iBreite + ",height=" + iHoehe + "," + sFeatures + "");
	
	if(!iPosx)
	{
		x = (screen.width-iBreite)/2;
	}
	else
	{
		x = iPosx;
	}
	
	if(!iPosy)
	{
		y=(screen.height-iHoehe)/2;
	}
	else
	{
		y = iPosy;
	}
	
	oWin.moveTo(x,y);
	
	oWin.focus();
}

function setStyle(sTyp)
{
	switch (sTyp)
	{
		case 'druck':	setActiveStyleSheet('Druckversion');
						setTimeout('print()', 1000);
						break;
		case 'invers':	if(getActiveStyleSheet() != 'Invertiert')
						{
							setActiveStyleSheet('Invertiert');
							document.getElementById('logo').src = 'images/bkk-bvm-logo-sw.gif';
							document.getElementById('slogan').src = 'images/header-schriftzug-bestens-versichert-sw.gif';
							document.getElementById('schrift-invers').src = 'images/header-icon-font-large.gif';
						}
						else
						{
							document.getElementById('logo').src = 'images/bkk-bvm-logo.gif';
							document.getElementById('slogan').src = 'images/header-schriftzug-bestens-versichert.gif';
							document.getElementById('schrift-invers').src = 'images/header-icon-font-invers.gif';
							setActiveStyleSheet('Bildschirm');
						}
						break;
		case 'screen':
		default:		setActiveStyleSheet('Bildschirm');
	}
}

function resetFontsizeImage()
{
	var sImgname = '';
	var sImgpath = '';
	
	sImgname = 'schrift-klein';
	sImgpath = 'images/header-icon-font-small.gif';
	document.getElementById(sImgname).src = sImgpath;

	sImgname = 'schrift-mittel';
	sImgpath = 'images/header-icon-font-normal.gif';
	document.getElementById(sImgname).src = sImgpath;

	sImgname = 'schrift-gross';
	sImgpath = 'images/header-icon-font-large.gif';
	document.getElementById(sImgname).src = sImgpath;
	
	if(getActiveStyleSheet() == 'Invertiert')
	{
		document.getElementById('logo').src = 'images/bkk-bvm-logo-sw.gif';
		document.getElementById('slogan').src = 'images/header-schriftzug-bestens-versichert-sw.gif';
		document.getElementById('schrift-invers').src = 'images/header-icon-font-large.gif';
	}
	else
	{
		document.getElementById('schrift-invers').src = 'images/header-icon-font-invers.gif';
	}
}

function setFontsizeImage(sSize)
{
	resetFontsizeImage();

	var sImgname = '';
	var sImgpath = '';

	if(!sSize)
	{
		var iSize = efa_fontSize.getPref();

		if(iSize <= 100)
		{
			sSize = 'small';
		}
		else if(iSize >= 130)
		{
			sSize = 'large';
		}
		else if(iSize > 100 && iSize < 130)
		{
			sSize = 'normal';
		}
		else
		{
			sSize = 'small';
		}
	}

	switch(sSize)
	{
		case 'small':	sImgname = 'schrift-klein';
						sImgpath = 'images/header-icon-font-small-active.gif';
						break;
		case 'normal':	sImgname = 'schrift-mittel';
						sImgpath = 'images/header-icon-font-normal-active.gif';
						break;
		case 'large':	sImgname = 'schrift-gross';
						sImgpath = 'images/header-icon-font-large-active.gif';
						break;
	}

	document.getElementById(sImgname).src = sImgpath;
}

function getBoxSize(id)
{
	var boxWidth = document.getElementById(id).offsetWidth;

	var boxHeight = document.getElementById(id).offsetHeight;

	aBoxSize = new Array(boxWidth,boxHeight);

	return aBoxSize;
}

function highlightText(node,text)
{
	if (node.hasChildNodes)
	{
		var hi_cn;
		
		for (hi_cn=0;hi_cn<node.childNodes.length;hi_cn++)
		{
			highlightText(node.childNodes[hi_cn],text);
		}
	}

	if (node.nodeType == 3) // text node
	{ 
		tempNodeVal = node.nodeValue.toLowerCase();
		
		tempWordVal = text.toLowerCase();
		
		if (tempNodeVal.indexOf(tempWordVal) != -1)
		{
			pn = node.parentNode;
			
			if (pn.className != "searchword")
			{
				nv = node.nodeValue;
				
				ni = tempNodeVal.indexOf(tempWordVal);
				
				before = document.createTextNode(nv.substr(0,ni));
				
				docWordVal = nv.substr(ni,text.length);
				
				after = document.createTextNode(nv.substr(ni+text.length));
				
				hiwordtext = document.createTextNode(docWordVal);
				
				hiword = document.createElement("span");
				
				hiword.className = "searchword";
				
				hiword.appendChild(hiwordtext);
				
				pn.insertBefore(before,node);
				
				pn.insertBefore(hiword,node);
				
				pn.insertBefore(after,node);
				
				pn.removeChild(node);
			}
		}
	}
}

function searchHighlight()
{
	if (!document.createElement) return;
	
	ref = window.location+''; // convert to string
	
	if (ref.indexOf('?') == -1) return;
	
	qs = ref.substr(ref.indexOf('?')+1);
	
	qsa = qs.split('&');
	
	for (i=0;i<qsa.length;i++)
	{
		qsip = qsa[i].split('=');
		
	    if (qsip.length == 1) continue;
	    
        if (qsip[0] == 'q')
        {
			words = unescape(qsip[1].replace(/\+/g,' ')).split(/\s+/);
			
	        for (w=0;w<words.length;w++)
	        {
				//highlightText(document.getElementsByTagName("body")[0],words[w]);
				highlightText(document.getElementById("content"),words[w]);
				
            }
	    }
	}
}


window.onload = doStart;
/*]]>*/