
function showDiv(id)
{
    document.getElementById(id).style.display = "block";
}
    
function hideDiv(id)
{
    document.getElementById(id).style.display = "none";
}
        

function toggleNews(id, hide)
{
    if (hide)
    {
		showDiv('divShort' + id);
		hideDiv('divFull' + id);
    }
    else
    {
		hideDiv('divShort' + id);
		showDiv('divFull' + id);
    }

}




// snipped from http://www.jswelt.de/showsource.php?id=982963675
	function SetCookie(name, value) { 
		var argv = SetCookie.arguments; 
		var argc = SetCookie.arguments.length; 
		var expires = (argc > 2) ? argv[2] : null; 
		var path = (argc > 3) ? argv[3] : null; 
		var domain = (argc > 4) ? argv[4] : null; 
		var secure = (argc > 5) ? argv[5] : false; 
		document.cookie = name + "=" + escape (value) + 
							((expires == null) ? "" : ("; expires=" + expires.toGMTString())) + 
							((path == null) ? "" : ("; path=" + path)) + 
							((domain == null) ? "" : ("; domain=" + domain)) + 
							((secure == true) ? "; secure" : "");
		//alert('name='+name+' - value='+value);
	}
	function getCookieVal(offset) { 
		var endstr = document.cookie.indexOf (";", offset); 
		if (endstr == -1) 
		endstr = document.cookie.length; 
		return unescape(document.cookie.substring(offset, endstr));
	}
	function GetCookie(name) { 
		var arg = name + "="; 
		var alen = arg.length; 
		var clen = document.cookie.length; 
		var i = 0; 
		//alert(name);
		while (i < clen) { 
			var j = i + alen; 
			if (document.cookie.substring(i, j) == arg) return getCookieVal(j); 
			i = document.cookie.indexOf(" ", i) + 1; 
			if (i == 0) break; 
		} 
		return null;
	}
	
	
// decodiert verschlüsselte email-adressen  (in kombinatino mit encode_email.php)
	function DecodeProtected(domn, suffix, obj) {
		obj.href="mailto:"+obj.title+"@"+suffix+"."+domn;
		obj.innerHTML=obj.title+"@"+suffix+"."+domn;
	}
	
	

/* HILFSFUNKTION zur Umwandlung eines Strings zu CRC16 */	
var Crc16Tab = new Array(
	0x0000,0x1021,0x2042,0x3063,0x4084,0x50A5,0x60C6,0x70E7,0x8108,0x9129,0xA14A,0xB16B,0xC18C,
	0xD1AD,0xE1CE,0xF1EF,0x1231,0x0210,0x3273,0x2252,0x52B5,0x4294,0x72F7,0x62D6,0x9339,0x8318,
	0xB37B,0xA35A,0xD3BD,0xC39C,0xF3FF,0xE3DE,0x2462,0x3443,0x0420,0x1401,0x64E6,0x74C7,0x44A4,
	0x5485,0xA56A,0xB54B,0x8528,0x9509,0xE5EE,0xF5CF,0xC5AC,0xD58D,0x3653,0x2672,0x1611,0x0630,
	0x76D7,0x66F6,0x5695,0x46B4,0xB75B,0xA77A,0x9719,0x8738,0xF7DF,0xE7FE,0xD79D,0xC7BC,0x48C4,
	0x58E5,0x6886,0x78A7,0x0840,0x1861,0x2802,0x3823,0xC9CC,0xD9ED,0xE98E,0xF9AF,0x8948,0x9969,
	0xA90A,0xB92B,0x5AF5,0x4AD4,0x7AB7,0x6A96,0x1A71,0x0A50,0x3A33,0x2A12,0xDBFD,0xCBDC,0xFBBF,
	0xEB9E,0x9B79,0x8B58,0xBB3B,0xAB1A,0x6CA6,0x7C87,0x4CE4,0x5CC5,0x2C22,0x3C03,0x0C60,0x1C41,
	0xEDAE,0xFD8F,0xCDEC,0xDDCD,0xAD2A,0xBD0B,0x8D68,0x9D49,0x7E97,0x6EB6,0x5ED5,0x4EF4,0x3E13,
	0x2E32,0x1E51,0x0E70,0xFF9F,0xEFBE,0xDFDD,0xCFFC,0xBF1B,0xAF3A,0x9F59,0x8F78,0x9188,0x81A9,
	0xB1CA,0xA1EB,0xD10C,0xC12D,0xF14E,0xE16F,0x1080,0x00A1,0x30C2,0x20E3,0x5004,0x4025,0x7046,
	0x6067,0x83B9,0x9398,0xA3FB,0xB3DA,0xC33D,0xD31C,0xE37F,0xF35E,0x02B1,0x1290,0x22F3,0x32D2,
	0x4235,0x5214,0x6277,0x7256,0xB5EA,0xA5CB,0x95A8,0x8589,0xF56E,0xE54F,0xD52C,0xC50D,0x34E2,
	0x24C3,0x14A0,0x0481,0x7466,0x6447,0x5424,0x4405,0xA7DB,0xB7FA,0x8799,0x97B8,0xE75F,0xF77E,
	0xC71D,0xD73C,0x26D3,0x36F2,0x0691,0x16B0,0x6657,0x7676,0x4615,0x5634,0xD94C,0xC96D,0xF90E,
	0xE92F,0x99C8,0x89E9,0xB98A,0xA9AB,0x5844,0x4865,0x7806,0x6827,0x18C0,0x08E1,0x3882,0x28A3,
	0xCB7D,0xDB5C,0xEB3F,0xFB1E,0x8BF9,0x9BD8,0xABBB,0xBB9A,0x4A75,0x5A54,0x6A37,0x7A16,0x0AF1,
	0x1AD0,0x2AB3,0x3A92,0xFD2E,0xED0F,0xDD6C,0xCD4D,0xBDAA,0xAD8B,0x9DE8,0x8DC9,0x7C26,0x6C07,
	0x5C64,0x4C45,0x3CA2,0x2C83,0x1CE0,0x0CC1,0xEF1F,0xFF3E,0xCF5D,0xDF7C,0xAF9B,0xBFBA,0x8FD9,
	0x9FF8,0x6E17,0x7E36,0x4E55,0x5E74,0x2E93,0x3EB2,0x0ED1,0x1EF0);
function CRC16Add(crc,c){
	return Crc16Tab[((crc>>8)^c)&0xFF]^((crc<<8)&0xFFFF);
}

function CRC16(str)
{
  var len=str.length;
  var crc=0;
  for (var n=0; n<len; n++) {
    crc=CRC16Add(crc,str.charCodeAt(n));
  }
  return crc;
}


// ====================================================================================
// Hebe Suchbegriffe für jene User hervor, die via GOOGLE auf die website gekommen sind
// snipped von http://eriwen.com/javascript/highlight-search-results-with-js (modified)
// ====================================================================================
function runHighlighter(contentid) 
{
	// suche nach referer, bzw ob da überhaupt ein GET definiert wurde
	//if (document.referrer.indexOf('?') == -1 && window.location.search.indexOf('?') == -1) return;

	// Get search string, und stoppe den script, wenn da nichts zu suchen ist
	var searchString = getSearchString();
	if (searchString.length<=4) return;
	
	// Starting node, parent to all nodes you want to search
	var textContainerNode = document.getElementById(contentid);

	// Informational message for search
	var searchInfo = 'you\'re looking for: ';

	// Split search terms on '|' and iterate over resulting array
	var searchTerms = searchString.split('|');
	for (var i in searchTerms)  {
	  // The regex is the secret, it prevents text within tag declarations to be affected
	  var regex = new RegExp(">([^<]*)?("+searchTerms[i]+"[^\\s]*)([^>]*)?<","ig");
	  highlightTextNodes(textContainerNode, regex, i);
	  // Add to info-string
	  searchInfo += ' <span class="highlighted term'+i+'">'+searchTerms[i]+'</span> ';
	}

	// Create div describing the search
	var searchTermDiv = document.createElement('p');
	searchTermDiv.className = 'highlight_header';
	searchTermDiv.innerHTML = searchInfo;

	// Insert as very first child in searched node
	textContainerNode.insertBefore(searchTermDiv, textContainerNode.childNodes[0]);
}
 
// Pull the search string out of the URL
function getSearchString() {
	// Return sanitized search string if it exists
	// ?q= für google und bing, ?p= für yahoo, ?s= für keine ahnung...
	var rawSearchString = extractSearchString(document.location.search);
	// wenn nichts im search drin ist, könnte sich das im href verstecken:
	if (rawSearchString.length<=3)
		rawSearchString = extractSearchString(document.location.href);
	// wenn nichts im direkten query gefunden wurde, suche im referer
	if (rawSearchString.length<=3)
		rawSearchString = extractSearchString(document.referrer);
	
	// Replace '+' with '|' for regex
	// Also replace '%20' if your cms/blog uses this instead (credit to erlando for adding this)
	return rawSearchString.replace(/\"/g,"").replace(/\%20/g," ").replace(/shockvoice[\s\+]?/g,"").replace(/\+/g,"\|");
}
function extractSearchString(strg) {
	strg = strg.replace(/\%22/g,'"');
	var rawSearchString = strg.replace(/.+[\?\&][spq]\=(\w+)(\&.*)?/,"$1");
	return rawSearchString.replace(strg, '');
}
 
function highlightTextNodes(element, regex, termid) {
  var tempinnerHTML = element.innerHTML;
  // Do regex replace
  // Inject span with class of 'highlighted termX' for google style highlighting
  element.innerHTML = tempinnerHTML.replace(regex,'>$1<font class="highlighted term'+termid+'">$2</font>$3<');
}
	
	
	
	
// interaktive elemente mit jQuery
$().ready(function() {
	runHighlighter("main"); // suchbegriff-highlighter.
	
	// gib jedem Frame der webseite eine ID, generiert aus dem inhalt des titels
	$('div.frame').each(function() {
		var DOMobj = $(this).children('h2');
		var title = DOMobj.html();
		var CRC = CRC16( title );
		var cookie = GetCookie(CRC);
		var status = 'open';
		if (cookie=='closed') {
			status='closed';
			$(this).children('.frame_content').css('display','none');
		}
		$(this).attr('id',  CRC);
		DOMobj.css('cursor','s-resize');
		DOMobj.attr('class',status);
		DOMobj.append('<span>&nbsp;</span>');
		DOMobj.click(function() {
			var closed = $(this).hasClass('closed');
			if (closed) {
				$(this).parent().children('.frame_content').slideDown();
				$(this).attr('class','open');
				SetCookie($(this).parent().attr('id'), 'open');
			} else {
				$(this).parent().children('.frame_content').slideUp();
				$(this).attr('class','closed');
				SetCookie($(this).parent().attr('id'), 'closed');
			}
		});
	});
	$("table.SortTable").tablesorter(); 
});	