var BrowserDetect = {
	init: function () {
		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
		this.version = this.searchVersion(navigator.userAgent)
			|| this.searchVersion(navigator.appVersion)
			|| "an unknown version";
		this.OS = this.searchString(this.dataOS) || "an unknown OS";
	},
	searchString: function (data) {
		for (var i=0;i<data.length;i++)	{
			var dataString = data[i].string;
			var dataProp = data[i].prop;
			this.versionSearchString = data[i].versionSearch || data[i].identity;
			if (dataString) {
				if (dataString.indexOf(data[i].subString) != -1)
					return data[i].identity;
			}
			else if (dataProp)
				return data[i].identity;
		}
	},
	searchVersion: function (dataString) {
		var index = dataString.indexOf(this.versionSearchString);
		if (index == -1) return;
		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
	},
	dataBrowser: [
		{ 	string: navigator.userAgent,
			subString: "OmniWeb",
			versionSearch: "OmniWeb/",
			identity: "OmniWeb"
		},
		{
			string: navigator.vendor,
			subString: "Apple",
			identity: "Safari"
		},
		{
			prop: window.opera,
			identity: "Opera"
		},
		{
			string: navigator.vendor,
			subString: "iCab",
			identity: "iCab"
		},
		{
			string: navigator.vendor,
			subString: "KDE",
			identity: "Konqueror"
		},
		{
			string: navigator.userAgent,
			subString: "Firefox",
			identity: "Firefox"
		},
		{
			string: navigator.vendor,
			subString: "Camino",
			identity: "Camino"
		},
		{		// for newer Netscapes (6+)
			string: navigator.userAgent,
			subString: "Netscape",
			identity: "Netscape"
		},
		{
			string: navigator.userAgent,
			subString: "MSIE",
			identity: "Explorer",
			versionSearch: "MSIE"
		},
		{
			string: navigator.userAgent,
			subString: "Gecko",
			identity: "Mozilla",
			versionSearch: "rv"
		},
		{ 		// for older Netscapes (4-)
			string: navigator.userAgent,
			subString: "Mozilla",
			identity: "Netscape",
			versionSearch: "Mozilla"
		}
	],
	dataOS : [
		{
			string: navigator.platform,
			subString: "Win",
			identity: "Windows"
		},
		{
			string: navigator.platform,
			subString: "Mac",
			identity: "Mac"
		},
		{
			string: navigator.platform,
			subString: "Linux",
			identity: "Linux"
		}
	]

};
BrowserDetect.init();

function createCookie(name,value,days) 
{
	if (days) 
	{
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
		//replace expires for IE
		expires = expires.replace("UTC", "GMT");	}
	else 
	{
		var expires = "";
	}
	document.cookie = name+"="+value+expires+"; path=/";
}


function readCookie(name) 
{
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) 
	{
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}


function eraseCookie(name) 
{
	createCookie(name,"",-1);
}


if ( !projectID ) var projectID = "";
//moegliche loesung: body onload kollidiert mit window.onload

if(location.href.indexOf('cgi-bin/fts_i08search.pl')==-1){
window.onload = new Function("setWidth();setContrastLink();setFontSizeLinks('"+projectID+"');");
} else{
window.onload = new Function("setWidth();setContrastLink();setFontSizeLinks('"+projectID+"');initFtsFull();");
}

//window.onload = new Function("setWidth();setContrastLink();setFontSizeLinks('"+projectID+"');");
window.onresize = new Function("setWidth();");
eventHandlerOnKeyUp();

window.setInterval("checkFontSize()", 500);

function checkFontSize()
{
	if (!thisFontSize) var thisFontSize = 10;
	var newFontSize = getDivisor();
	
	if ( thisFontSize != newFontSize )
	{
		setWidth();
	}
	var thisFontSize = newFontSize;
}


function setWidth() 
{

	// set Widths for PortalTeaser Block
	if(document.getElementById('teaserBlockA')) 
	{
		setWidthPortalTeaser();
	}
	
}
//neu 08-06-18
function setWidthPortalTeaser()
{
	var maxPortalTeaserWidth = 71.2; // defined for 1024 Resolution
	var roundedPortalTeaserWidth = Number( Math.round(getWidthPortalTeaser() *10 ) /10);
	
	if (BrowserDetect.browser=="Explorer" && BrowserDetect.version=="7") var roundedPortalTeaserWidth = roundedPortalTeaserWidth + 0.105;
	
	//if ( clientWidth < Number(document.getElementById('container').offsetWidth + 18 ) )
	if ( maxPortalTeaserWidth > roundedPortalTeaserWidth )
	{
		var realPortalTeaserWidth = getWidthPortalTeaser();
		var teaserWidth = Number(realPortalTeaserWidth/2 - 0.05);

		// set container width for PortalTeaser | only at homepage
		if (BrowserDetect.browser=="Explorer") // && BrowserDetect.version=="6"
		{
			document.getElementById('teaserBlockA').style.width = realPortalTeaserWidth + "em";
			document.getElementById('teaserBlockB').style.width = realPortalTeaserWidth + "em";
			//if ( doument.getElementById('teaserBlockD') ) document.getElementById('teaserBlockD').style.width = realPortalTeaserWidth + "em";
			
			document.getElementById('colorA').style.width = teaserWidth + "em";
			document.getElementById('colorB').style.width = teaserWidth + "em";
			document.getElementById('colorC').style.width = teaserWidth + "em";
			document.getElementById('colorD').style.width = teaserWidth + "em";
		} 
		else
		{
			document.getElementById('teaserBlockA').style.width = "100%";
			document.getElementById('teaserBlockB').style.width = "100%";
			//if ( document.getElementById('teaserBlockD') ) document.getElementById('teaserBlockD').style.width = "100%";
		}
	}
	else
	{
		// set container width for PortalTeaser | only at homepage
		if (BrowserDetect.browser=="Explorer") // && BrowserDetect.version=="6"
		{
			document.getElementById('teaserBlockA').style.width = "35.6em";
			document.getElementById('teaserBlockB').style.width = "35.6em";
			//if ( document.getElementById('teaserBlockD') ) document.getElementById('teaserBlockD').style.width = "35.6em";
			
			document.getElementById('colorA').style.width = "17.785em";
			document.getElementById('colorB').style.width = "17.785em";
			document.getElementById('colorC').style.width = "17.785em";
			document.getElementById('colorD').style.width = "17.785em";
		}
		else
		{
			document.getElementById('teaserBlockA').style.width = "50%";
			document.getElementById('teaserBlockB').style.width = "50%";
			//if ( document.getElementById('teaserBlockD') ) document.getElementById('teaserBlockD').style.width = "50%";
		}
	}
}

function getWidthPortalTeaser( )
{
	//Groeen erfassen
	var container = document.getElementById('container').offsetWidth;
	
	var divisor = getDivisor();
	var conainerAbzug = Number(253 * (divisor/10));
	var containerCenter = Number(container - conainerAbzug);
	
	// Neue Breite fr TeaserElemente in Relation zur akutellen Textgre
	var width = Number(containerCenter/divisor);
	
	//Zurckgeben
	return width;
}


//neu 08-06-18
function getDivisor()
{
	var fontSize = getStyle(document.getElementById("container"), "font-size");
	
	//if(!fontSize) // IE6
	if( BrowserDetect.browser=="Explorer" )
	{		
		fontSize = getStyleIE();
		var divisor = fontSize;
		return divisor;
	}
	else
	{
		fontSize = fontSize.replace('px','');
		var divisor = Number(fontSize);
		return divisor;
	}
}
function getStyleIE()
{
	var containerMarginalB = document.getElementById('containerMarginalB').offsetWidth;
	var x = ((containerMarginalB/224) * 10);
	return x;	
}


function getStyle(oElm, strCssRule){
	var strValue = "";
	if(document.defaultView && document.defaultView.getComputedStyle){
		strValue = document.defaultView.getComputedStyle(oElm, "").getPropertyValue(strCssRule);
	}
	else if(oElm.currentStyle){
		strCssRule = strCssRule.replace(/-(w)/g, function (strMatch, p1){
			return p1.toUpperCase();
		});
		strValue = oElm.currentStyle[strCssRule];
	}
	return strValue;
}


function getClientWidth()
{
	var clientWidth = window.innerWidth;
	if ( !clientWidth )
	{
		var clientWidth = document.body.clientWidth;
	}
	return clientWidth;
}



function functionOnKeyUp ( KeyEvent ) // NetscapeFunction
{
	
	var keyCode = KeyEvent.which;
	if ( keyCode == "61" || keyCode == "109") 
	{
		alert("Taste2: " + Key); 
	}
	
}


function eventHandlerOnKeyUp()
{
	if (window.document.layers) // Netscape 
	{
		document.onkeyup = functionOnKeyUp;
	}
	else
	{
		document.onkeyup = new Function("setWidth();");
	}
}

function setContrastLink() 
{
	//setJSLink
	document.getElementById('contrastLink').href = "javascript:switchContrast('High');"
	 
}


function switchContrast( value )
{
	var loc_str = (isolang =="de")? 'Niedriger Kontrast' : 'Low contrast';
	var hic_str = (isolang =="de")? 'Hoher Kontrast' : 'High contrast';
	
	// CHANGE: Stylesheet einbinden / rausschmeissen
	
	if ( value == "High" )
	{
		//showContrastCSS
		document.getElementById('container').className = "highContrast";
		//setJSLink
		document.getElementById('contrastLink').href = "javascript:switchContrast('Low');";
		document.getElementById('contrastLink').innerHTML = loc_str;
	}
	else if ( value == "Low" )
	{
		//hideContrastCSS
		document.getElementById('container').className = "lowContrast";
		//setJSLink
		document.getElementById('contrastLink').href = "javascript:switchContrast('High');";
		document.getElementById('contrastLink').innerHTML = hic_str;
	}
}

function setFontSizeLinks( projectID )
{
	var cookieName = "InWEntFontSize";
	var fsCookie = readCookie(cookieName);
	if (fsCookie) {
		var fs = fsCookie;
	} else {
		var fs = 10;
	}
	
	//setJSLinks
	document.getElementById('fs9').href = "javascript:setFontSize(9,'"+projectID+"');";
	document.getElementById('fs10').href = "javascript:setFontSize(10,'"+projectID+"');";
	document.getElementById('fs11').href = "javascript:setFontSize(11,'"+projectID+"');";
	document.getElementById('fs12').href = "javascript:setFontSize(12,'"+projectID+"');";
	document.getElementById('fs13').href = "javascript:setFontSize(13,'"+projectID+"');";
	
	setFontSize( fs, projectID );

}


function setFontSize( fs, projectID ) 
{
	//set Cookie!
	var cookieName = "InWEntFontSize";
	var cookieValue = fs;
	createCookie(cookieName,cookieValue,365);
	
	// set +/- Links
	//var nextFs = fs + 1;
	//changed imperia / ma 08-09-05
	var nextFs = parseInt(fs) + 1;
	if (nextFs > 13) nextFs = 13;
	var prevFs = parseInt(fs) - 1;
	if (prevFs < 9) prevFs = 9;
	
	document.getElementById('fsMinus').href = "javascript:setFontSize("+ prevFs +",'"+projectID+"');";
	document.getElementById('fsPlus').href = "javascript:setFontSize("+ nextFs +",'"+projectID+"');";
	
	// set activeLink Icon
	for (var i=9; i < 14; i++)
	{
		if ( fs == i )
		{
			if (projectID != "") {
				document.getElementById('fsImg'+i).src = "/cms01/res/images/icon_fs" + i + "" + projectID + "_act.gif";
			} else {
				document.getElementById('fsImg'+i).src = "/cms01/res/images/icon_fs" + i + "_act.gif";
			}
		} else {
			if (projectID != "") {
				document.getElementById('fsImg'+i).src = "/cms01/res/images/icon_fs" + i + "" + projectID + ".gif";
			} else {
				document.getElementById('fsImg'+i).src = "/cms01/res/images/icon_fs" + i + ".gif";
			}
		}
	}
	// set FontSize
	document.getElementById('container').style.fontSize = fs/16 +"em";
	
	var thisFontSize = fs;
}

function decorate ( id, action )
{
	if (action == "over")
	{
		document.getElementById('portalTeaser'+id+'1').style.textDecoration = "underline";
		document.getElementById('portalTeaser'+id+'2').style.textDecoration = "underline";
	}
	else if (action == "out")
	{
		document.getElementById('portalTeaser'+id+'1').style.textDecoration = "none";
		document.getElementById('portalTeaser'+id+'2').style.textDecoration = "none";
	}
}


//########################################
// start functions for imperia logic  
//########################################

//########################################
// form validation
//########################################
function validateForm(formtype , lang){
	//if(formtype.indexOf('kontakt') != -1){//contactform
		var myform = eval("document."+formtype);
		var formflag=true;
		var hint=(lang=='de')?"Mit * markierte Felder sind Pflichtfelder\n":"Fields marked with * are mandatory\n";
		var error=hint;
		for(i=0; i < myform.elements.length; i++){
			if(myform.elements[i].type!="hidden" && myform.elements[i].type!="submit"  ){
			var is_required = checkRequired(myform.required.value, myform.elements[i].name);
				if(is_required==true){
					if(myform.elements[i].type=="checkbox"){
						if(myform.elements[i].checked==false){
							error+=collect_msg(myform.elements[i].type, myform.elements[i].name, lang);
							formflag=false;
						}	
					}
					if(myform.elements[i].type=="text" || myform.elements[i].type=="textarea" ){
						var trimmedValue=myform.elements[i].value.replace(/^\s/g,'');
						trimmedValue=trimmedValue.replace(/\s$/g,'');
						if(trimmedValue==''){
							error+=collect_msg(myform.elements[i].type, myform.elements[i].name , lang);
							formflag=false;
						}	
					}
				}
			}
		}
	//}
	error+="\n\n";
	if(!formflag)alert(error);
	return formflag;
	
}
function checkRequired(required, el){
	var reqFlag=false;
	myrequired = required.split(',');
	for(j=0; j < myrequired.length; j++){
		if(el==myrequired[j]){
			reqFlag=true;
			break;
		}
	}
	return reqFlag;
}
function collect_msg(type, field, lang){
	mylist = new Array();
	msg_de = new Array("Bitte best\xE4tigen Sie die Checkbox ", "Bitte f\xFCllen Sie das Feld "," aus");
	msg_en = new Array("Please tick the box ", "Please fill in the field ","");
	mylist = mylist.concat(eval("msg_"+lang));
	field=field.substring(0,1).toUpperCase() + field.substring(1);
	var termi=".\n";
	var error_msg="";
	switch(type){
		case 'checkbox':
			error_msg+=mylist[0]+field+termi;
		break;
		case 'text':
		case 'textarea':
			error_msg+=mylist[1]+field+mylist[2]+termi;
		break;
	}
	return error_msg;
}

function printPage(myself){
	self.print();
}

function showGmap(href){
	var gmap = open(href, 'gmap', 'width=800,height=600,location=no,menubar=no,toolbar=no,resizable=yes,scrollbars=yes');
}

function jump2network(){
	var selectedURI=document.portalbox.network.options[document.portalbox.network.selectedIndex].value;
	if(selectedURI.length > 2)location.href=selectedURI;
}
	
function initFtsFull(){
	if(location.search && location.search.indexOf("network") != -1){ //call from searchbox
			var mySearchterm = location.search.substring(location.search.indexOf("SEARCH=")+7, location.search.length);
			mySearchterm = mySearchterm.substring(0, mySearchterm.indexOf('&'));
			mySearchterm = mySearchterm.replace(/\+/g,' ');
			document.i08full.IEXTRA_ALL.value = mySearchterm;
	}
}	

function check4Search(tnumber){
	if(location.href.indexOf("/cgi-bin/fts_i08") != -1){
		document.portalbox.elements['HTML-NR'].value = tnumber;
	}
}
		

