// JavaScript Document

/////////// MAIN /////////////////
function sbSetup(){
	sbLinkIcon_Main();
	sbStyleAbbrForIE();
	//init_google();
}



////////// Google Analytics: Track Filelinks //////////////////
function getFileName(url) {
	var strFilename;
	var strHref = url;
	strHref = strHref.replace(/\//g,"\\");
	var index = strHref.lastIndexOf("\\");
	if (-1<index) {
		strFilename = strHref.substring(index+1);
	} else {
		strFilename = strHref;
	}
	var isDoc = strFilename.match(/\.(?:doc|eps|jpg|png|svg|xls|ppt|pdf|xls|zip|txt|vsd|vxd|js|css|rar|exe|wma|mov|avi|wmv|mp3)($|\&|\?)/);
	if (isDoc) {
		//startListening(hrefs[l],"click",trackExternalLinks);
		pageTracker._trackPageview("downloads/" + strFilename);
		//alert(strFilename);
		//alert(url);

		oWin = window.open(url);
		if( oWin ){
			oWin.focus();
			return false;
		} else {
			return true;
		}
	}
	return true;
	//return strFilename;
}
///////////////////////////////////////////////////////////////




function blurLink(oElement){}

function fnOpenNewWindow(oLink) {
	oWin = window.open(oLink.href);
	if( oWin ){
		oWin.focus();
		return false;
	} else {
		return true;
	}
}

function ffnValidateLogin(oForm, iLangId){

	if( oForm.redirect_url.value.length == 0 ){
		oForm.redirect_url.value = document.referrer;
	}

	asMsg  = new Array();
	asText = new Array();
	asText[0] = "Bitte geben Sie \n- Ihren Benutzernamen und \n- Ihr Passwort ein.";
	asText[1] = "Bitte geben Sie \n- Ihren Benutzernamen ein.";
	asText[2] = "Bitte geben Sie \n- Ihr Passwort ein.";
	asMsg[0] = asText;

	if( oForm.inputUser.value.length == 0 && oForm.inputPass.value.length == 0 ){
		alert(asMsg[iLangId][0]);
		return false;
	} else if( oForm.inputUser.value.length == 0 && oForm.inputPass.value.length > 0 ){
		alert(asMsg[iLangId][1]);
		return false;
	} else if( oForm.inputUser.value.length > 0 && oForm.inputPass.value.length == 0 ){
		alert(asMsg[iLangId][2]);
		return false;
	}
	return true;
}

function sbStyleAbbrForIE() {
	var sBodyTextOld, sBodyTextNew, sRegEx;
	var fIsIE = (document.all) ? true:false;

	if( fIsIE ){
		sBodyTextOld = document.body.innerHTML;
		sRegEx = /<abbr([^>]*)>([^<]*)<\/abbr>/gi;
		sBodyTextNew = sBodyTextOld.replace(sRegEx, '<abbr $1><span class=\"abbr\" $1>$2</span></abbr>');
		document.body.innerHTML = sBodyTextNew;
	}
}







/****************************************************/
var LINKICON_FILE_TYPES = "pdf,doc,txt,xls,ppt,zip";
var LINKICON_TITLE_TEXT_PART1 = "Der nachfolgende Link verweist auf eine ";
var LINKICON_TILTE_TEXT_PART2 = "-Datei";
var LINKICON_MAILTO_ISTRUE = false;
var LINKICON_MAILTO_TITLE = "Der nachfolgende Link verweist auf eine eMail-Adresse";
var LINKICON_MAILTO_CSS_CLASS = "MailIcon";
var LINKICON_SRC_PART1 = "http://" + window.location.hostname + "/fileadmin/medias/images/fileicons/file-";
var LINKICON_SRC_PART2 = ".gif";
var LINKICON_CSS_CLASS = "LinkIcon";
var LINKICON_ALT_TEXT ="Icon";
var LINKICON_IDX_EXT = 0;
var LINKICON_IDX_SRC = 1;
var LINKICON_IDX_ALT = 2;
var LINKICON_IDX_TIT = 3;
var LINKICON_IDX_CSS = 4;
var g_saFileIcons = new Array();
var g_sDebug = "";

if( document.getElementsByTagName ){ var fIsDOMBrowser = true; }else{ fIsDOMBrowser = false; }
if( navigator.appVersion.indexOf("MSIE 4")   > 0 && document.all ){	var fIsIE40 = true; }else{ var fIsIE40 = false; }
if( navigator.appVersion.indexOf("MSIE 5.0") > 0 && document.all ){	var fIsIE50 = true; }else{ var fIsIE50 = false; }

sbLinkIcon_Setup();

function sbLinkIcon_Setup(){
	if( fIsDOMBrowser == false ){ return false; }

	var saTemp = LINKICON_FILE_TYPES.split(",");
	for( var i=0; i<saTemp.length; i++ ){
		sbLinkIcon_BuildIconsList(saTemp[i]);
	}
	if( LINKICON_MAILTO_ISTRUE == true ){
		sbLinkIcon_BuildIconsList("mailto:");
		var saTemp = new Array();
		saTemp[LINKICON_IDX_EXT] = "mailto:";
		saTemp[LINKICON_IDX_SRC] = LINKICON_SRC_PART1 + "mailto" + LINKICON_SRC_PART2;
		saTemp[LINKICON_IDX_ALT] = "eMAIL-" + LINKICON_ALT_TEXT;
		saTemp[LINKICON_IDX_TIT] = LINKICON_MAILTO_TITLE;
		//g_saFileIcons.unshift(saTemp);
		g_saFileIcons[g_saFileIcons.length] = saTemp;
	}
}

function sbLinkIcon_BuildIconsList(sExtender){
	var saTemp = new Array();

	saTemp[LINKICON_IDX_EXT] = "." + sExtender;
	saTemp[LINKICON_IDX_SRC] = LINKICON_SRC_PART1 + sExtender.toLowerCase() + LINKICON_SRC_PART2;
	saTemp[LINKICON_IDX_ALT] = sExtender.toUpperCase() + "-" + LINKICON_ALT_TEXT;
	saTemp[LINKICON_IDX_TIT] = LINKICON_TITLE_TEXT_PART1 + sExtender.toUpperCase() + LINKICON_TILTE_TEXT_PART2;
	//g_saFileIcons.unshift(saTemp);
	g_saFileIcons[g_saFileIcons.length] = saTemp;
}

function sbLinkIcon_Main(){
	if( fIsDOMBrowser == false ){ return false; }

	var links = document.getElementsByTagName("a");
	for(var i=0; i<links.length; i++ ){
		var images = links[i].getElementsByTagName("img");
		// Keine verlinkten Bilder zus�tzlich mit Icon versehen.
		if( images.length == 0 ){
			var linkHref = links[i].href;

			for( var j=0; j<g_saFileIcons.length; j++ ) {
				var sSearchExt = g_saFileIcons[j][LINKICON_IDX_EXT];
				// sSearchExt = "." + sSearchExt;
				// alert(sSearchExt);
				// if( linkHref.match("\."+g_saFileIcons[j][LINKICON_IDX_EXT]) ){
				if( linkHref.indexOf(sSearchExt) != -1 ){
					// alert(g_saFileIcons[j][LINKICON_IDX_EXT]);
  					sbLinkIcon_AddIcon( links[i],
										g_saFileIcons[j][LINKICON_IDX_EXT],
										g_saFileIcons[j][LINKICON_IDX_SRC],
										g_saFileIcons[j][LINKICON_IDX_ALT],
										g_saFileIcons[j][LINKICON_IDX_TIT]
									   );
				}
			}
		}
	}
}
function sbLinkIcon_AddIcon(selLink, ext, src, alt, title){
	var img = document.createElement("img");
	img.src = src;
	img.alt = alt;
	// Icon NACH dem Link.
	// selLink.parentNode.insertBefore(img, selLink.nextSibling);
	// Icon VOR dem Link.
	// var myImg = selLink.parentNode.insertBefore(img, selLink);
	// Icon IM Link VOR dem Link-Text.
	if( selLink.hasChildNodes() ){
		var myImg = selLink.insertBefore(img, selLink.firstChild);
	}else{
	 	var myImg = selLink.parentNode.insertBefore(img, selLink);
	}

	if( fIsIE40 == false && fIsIE50 == false ){
		var myClass = document.createAttribute("class");
		myClass.nodeValue = LINKICON_CSS_CLASS;
		myImg.setAttributeNode(myClass);

		var myTitle = document.createAttribute("title");
		myTitle.nodeValue = title;
		myImg.setAttributeNode(myTitle);
	}else if( fIsIE40 == true || fIsIE50 == true ){
		myImg.setAttribute("title", title);
		// myImg.setAttribute("class", LINKICON_CSS_CLASS);
		// Alternative zur Class da IE4/5.0 dies nicht unterst�tzt.
		myImg.setAttribute("hspace", 2);
	}
}

















//
// google.js
// Google Highlighter
//
// Copyright(C)2001 - 2003
// Cal Henderson <cal@iamcal.com>
//
// Thanks to Ian Beveridge for bugfixes
//
// This code may be freely redistributed,
// providing this message remains intact.
//

var google_text_color = '#000000';

var google_link_colors = new Array('#ffff66','#a0ffff','#99ff99','#ff9999','#ff66ff');

var google_msg = '';

function init_google(){
	if( fIsDOMBrowser == false ){ return false; }

	var pattern = /google\./i;
	if (pattern.exec(document.referrer) != null){
		var url_parts = document.referrer.split('?');
		if (url_parts[1]){
			var url_args = url_parts[1].split('&');
			for(var i=0; i<url_args.length; i++){
				var keyval = url_args[i].split('=');
				if (keyval[0] == 'q'){
					go_google(decode_url(keyval[1]));
					return;
				}
			}
		}
	}
}

function decode_url(url){
	return unescape(url.replace(/\+/g,' '));
}

function go_google(terms){
	terms = terms.replace(/\"/g,"");

	create_google_msg(terms);

	var terms_split = terms.split(' ');
	var c = 0;
	for(var i=0; i<terms_split.length; i++){
		highlight_goolge(terms_split[i], document.body,google_link_colors[c]);
		c = (c == google_link_colors.length-1)?0:c+1;
	}
}

function highlight_goolge(term, container, color){
	var term_low = term.toLowerCase();

	for(var i=0; i<container.childNodes.length; i++){
		var node = container.childNodes[i];

		if (node.nodeType == 3){
			var data = node.data;
			var data_low = data.toLowerCase();
			if (data_low.indexOf(term_low) != -1){
				//term found!
				var new_node = document.createElement('SPAN');
				node.parentNode.replaceChild(new_node,node);
				var result;
				while((result = data_low.indexOf(term_low)) != -1){
					new_node.appendChild(document.createTextNode(data.substr(0,result)));
					new_node.appendChild(create_node_google(document.createTextNode(data.substr(result,term.length)),color));
					data = data.substr(result + term.length);
					data_low = data_low.substr(result + term.length);
				}
				new_node.appendChild(document.createTextNode(data));
			}
		}else{
			//recurse
			highlight_goolge(term, node, color);
		}
	}
}

function create_node_google(child, color){
	var node = document.createElement('SPAN');
	node.style.backgroundColor = color;
	node.style.color = google_text_color;
	node.appendChild(child);
	return node;
}

function create_google_msg(terms){
	terms = terms.replace(/ /g,"; ");
	google_msg = 'Sie suchten bei Google: ' + terms + '.';
	//alert(google_msg);
}