Ext.apply(Ext.lib.Ajax.defaultHeaders,'Content-Type: application/json; charset=utf-8;');
/*******************************************************************************************
* GLOBAL TOOLS
*******************************************************************************************/
// return format: "18.03.2010"
function dateFormatCompact(dateString) {
	//2010-03-18 00:00:00 (gophe) oder nur 2010-03-18 (spiegel)
	return dateString.substring(8,10) + '.' + dateString.substring(5,7) + '.' + dateString.substring(0,4);
}

// return format: "18.03.2010 00:00"
function dateFormatComplete(dateString) {
	//2010-03-18 00:00:00
	return dateString.substring(8,10) + '.' + dateString.substring(5,7) + '.' + dateString.substring(0,4) + ' ' + dateString.substring(11,16);
}

// truncate a given string - always considering the last full word
function  truncateContent(contentString, len){
  var trunc = contentString;
  if (trunc.length > len) {
    trunc = trunc.substring(0, len);
    trunc = trunc.replace(/\w+$/, '');
    //trunc = trunc.replace(/.&+.\w+.$/, '');\s+.+&+.+.$
    trunc = trunc.replace(/\s\w(&\w+;\w+|&\w+|&)$/, '');
   }
   return trunc;
}


function utf8_decoder(utftext) {
	var string = "";
	var i = 0;
	var c = c1 = c2 = 0;

	while ( i < utftext.length ) {

		c = utftext.charCodeAt(i);

		if (c < 128) {
			string += String.fromCharCode(c);
			i++;
		}
		else if((c > 191) && (c < 224)) {
			c2 = utftext.charCodeAt(i+1);
			string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
			i += 2;
		}
		else {
			c2 = utftext.charCodeAt(i+1);
			c3 = utftext.charCodeAt(i+2);
			string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
			i += 3;
		}

	}

	return string;
}
/*******************************************************************************************
* /GLOBAL TOOLS
*******************************************************************************************/


/*******************************************************************************************
* myLTO HOME
*******************************************************************************************/
function showRow(elemName, spanName) {
	var actualElement = Ext.get(elemName);
	Ext.fly(actualElement).highlight("F2F1EC", {
							attr: "background-color",
							easing: 'easeOut',
							duration: .9
					});
	document.getElementById(spanName).style.color = '#a21a08';
}

function showRowHref(elemName, spanName, hrefName) {
	var actualElement = Ext.get(elemName);
	Ext.fly(actualElement).highlight("F2F1EC", {
							attr: "background-color",
							easing: 'easeOut',
							duration: .9
					});
	document.getElementById(spanName).style.color = '#a21a08';
	document.getElementById(hrefName).className = 'active';
}

function normalizeRowHref(spanName, hrefName) {
	document.getElementById(spanName).style.color = '#222';
	document.getElementById(hrefName).className = '';
}

function normalizeRow(spanName) {
	document.getElementById(spanName).style.color = '#222';
}

/*******************************************************************************************
* /myLTO HOME
*******************************************************************************************/

/*******************************************************************************************
* Ext AJAX CALLS
*******************************************************************************************/
/*
Ext.Ajax.on('requestcomplete', function (conn, response, options) {
		if (options.maskEl) Ext.Ajax.FindEl(options.maskEl).unmask();
	});

KEEP IN MIND THAT Ext.Ajax is a Singleton - you cannot add event listeners to
it, 'cause it is not instanciated when called

// COMMON EVENTS AND HANDLERS //
// beforerequest
// requestcomplete
// requestexception

Ext.Ajax.on('beforerequest', function (conn, response, options);
Ext.Ajax.on('requestcomplete', function (conn, response, options);
Ext.Ajax.on('requestexception', function (conn, response, options);
*/

// To be used in all Ajax Calls that return JSon.
function doJSON(stringData) {
	try {
		var jsonData = Ext.util.JSON.decode(stringData);
		return jsonData;
		//Ext.MessageBox.alert('Success', 'Decode of stringData OK');
	}
	catch (err) {
		// @TODO: map this to global LTO Messages 
		//Ext.MessageBox.alert('ERROR', 'Could not decode ' + stringData);
		
		// or 
		
		//return some data for the error message b
	}
}

// still testing this:

function flyAndFadeIn(elemName) {
	var actualElement = Ext.get(elemName);
	Ext.fly(actualElement).fadeIn({
							easing:'easeIn',
							duration: .4,
							useDisplay: true,
							block:true
					});
}

// easing:'easeIn', duration: .4, useDisplay: true;


function flyAndFadeOut(elemName) {
	var actualElement = Ext.get(elemName);
	Ext.fly(actualElement).fadeOut({
							easing:'easeIn',
							duration: .4,
							useDisplay: true,
							block: true
					});
}



// AJAX CALLS //



function showBusinessCard(bs_route, author_type, author_id) {


	if (typeof(author_id) === 'undefined') {
		author_id = '';
	}
	
	Ext.Ajax.request({
		url: bs_route,
		method: 'POST',
		headers: '',
		params: {},
		success: function(responseObject) {

			/*
				{if $template.userSettings.public.profession == 'on'}
				{if $template.userSettings.public.ort == 'on'}
				{if $template.userSettings.public.email == 'on'}
				{if $template.userSettings.public.homepage == 'on'}
				{if $template.userSettings.public.interests == 'on'}
				{$ro->getBaseHref()}{if $template.logopath != ''}{$template.logopath}{else}images/mylto-default-profile.jpg{/if}
				
				BC:
				
				{"id":"XX",
				"user_id":"XXX",
				"interest_areas":"Markenrecht\/Geschmacksmusterrecht\/Wettbewerbsrecht\r\nau\u00dfergerichtliche Beratung und gerichtliche Vertretung im Markenrecht\/Geschmacksmusterrecht\/UWG\r\n\r\nAbmahnung, Unterlassungserkl\u00e4rung, einstweilige Verf\u00fcgung, Klageverfahren..",
				"profession":"Fachanwalt f\u00fcr Arbeitsrecht.",
				"homepage":"http:\/\/www.alexandergrundmann.de\/",
				"profil_foto":"profil_bild_ac_1268847007.jpg",
				"public":"a:5:{s:5:\"email\";s:2:\"on\";s:9:\"interests\";s:2:\"on\";s:8:\"homepage\";s:2:\"on\";s:10:\"profession\";s:2:\"on\";s:3:\"ort\";s:2:\"on\";}",
				"cams_id":"XXXXXX",
				"created_at":"2010-03-17 15:59:58",
				"updated_at":"2010-03-17 18:30:07",
				"userInfo":{"pwd":"",
							"acceptsAgb":true,
							"acceptsNewsletter":false,
							"accountNumber":null,
							"accountOwner":null,
							"bankId":null,
							"bankName":null,
							"camsId":"XXXXXX",
							"deliveryAddress":{"anrede":1,
											"firma1":"adON Werbeagentur von WKD",
											"firma2":null,
											"firma3":null,
											"laendercode":"D",
											"nachname":"Schneider",
											"ort":"K\u00f6ln",
											"plz":"51063",
											"strasse":"Schanzenstr. 7a",
											"titel":"005",
											"vorname":"Dieter"},
							"email":"hallo@adon-line.de",
							"faxNumber":null,
							"faxPrefix":null,
							"hasKluwercard":false,
							"interestedInNewProducts":false,
							"willMeinKonto":false,
							"invoiceAddress":{"anrede":1,
											"firma1":"adON Werbeagentur von WKD",
											"firma2":null,
											"firma3":null,
											"laendercode":"D",
											"nachname":"Schneider",
											"ort":"K\u00f6ln",
											"plz":"51063",
											"strasse":"Schanzenstr. 7a",
											"titel":"005",
											"vorname":"Dieter"},
							"kdnr":null,
							"mobileNumber":null,
							"mobilePrefix":null,
							"phoneNumber":null,
							"phonePrefix":null,
							"username":"xxx@xxx-xxx.de"
							}
								}
			alert(responseObject.responseText);
			*/
			
			
			var titlesArray = new Array();
			
			titlesArray["005"] = "&nbsp;"; 
			titlesArray["010"] = "Ass. jur.";
			titlesArray["020"] = "Dipl.-Arch.";
			titlesArray["030"] = "Dipl.-Bau.-Ing.";
			titlesArray["040"] = "Dipl.-Betrw.";
			titlesArray["050"] = "Dipl.-Chem.";
			titlesArray["060"] = "Dipl.-Finw.";
			titlesArray["070"] = "Dipl.-Inf.";
			titlesArray["080"] = "Dipl.-Ing.";
			titlesArray["085"] = "Dipl.-Jur.";
			titlesArray["090"] = "Dipl.-Kffr.";
			titlesArray["100"] = "Dipl.-Kfm.";
			titlesArray["110"] = "Dipl.-Math.";
			titlesArray["120"] = "Dipl.-Med.";
			titlesArray["130"] = "Dipl.-&Ouml;k.";
			titlesArray["140"] = "Dipl.-P&auml;d.";
			titlesArray["150"] = "Dipl.-Phys.";
			titlesArray["160"] = "Dipl.-Psych.";
			titlesArray["170"] = "Dipl.-Soz.";
			titlesArray["180"] = "Dipl.-Soz.P&auml;d.";
			titlesArray["190"] = "Dipl.-Sozw.";
			titlesArray["200"] = "Dipl.-Volksw.";
			titlesArray["210"] = "Dipl.-Wirt.-Ing.";
			titlesArray["220"] = "Dr.";
			titlesArray["230"] = "Dr. Dr.";
			titlesArray["240"] = "Dr. jur.";
			titlesArray["250"] = "Dr. med.";
			titlesArray["260"] = "Dr. Ing.";
			titlesArray["270"] = "Mag.";
			titlesArray["280"] = "Prof.";
			titlesArray["290"] = "Prof. Dipl.-Ing.";
			titlesArray["300"] = "Prof. Dr.";
			titlesArray["310"] = "Prof. Dr. Dr.";
			titlesArray["320"]= "Prof. Dr. Ing.";


			var businessCardData = Ext.decode( responseObject.responseText );
			var showOnLoad = true;
			
			if (document.getElementById('author_div'+author_id)) {
				if (author_type  == 'newsAuthor') {
					if (businessCardData['userInfo']['invoiceAddress']['titel'] != '005') {
						document.getElementById('author_div'+author_id).innerHTML = titlesArray[businessCardData['userInfo']['invoiceAddress']['titel']] + ' ' + businessCardData['userInfo']['invoiceAddress']['vorname']+' '+businessCardData['userInfo']['invoiceAddress']['nachname'];
					} else {
						document.getElementById('author_div'+author_id).innerHTML = businessCardData['userInfo']['invoiceAddress']['vorname']+' '+businessCardData['userInfo']['invoiceAddress']['nachname'];
					}
					showOnLoad = false;
				}
			}
			
			renderedResponse = '<div class=\"cleardiv\"><\/div>';
			renderedResponse += '<div class=\"panel-rounded\">';
			renderedResponse += '<div class=\"top\"><\/div>';
			renderedResponse += '<div class=\"center\">';
			renderedResponse += '<div class=\"inner\">';
			renderedResponse += '<table class=\"formtable\" style=\"margin:10px;\">';
			renderedResponse += '<tr>';
			renderedResponse += '<td><img src=\"'+businessCardData['profil_foto']+'\" style=\"width:110px;\" alt=\"Profil Bild\" \/><\/td>';
			renderedResponse += '<td width=\"270\"><div style=\"overflow:hidden;width:270px\">';
			if (businessCardData['userInfo']) {
				if (businessCardData['userInfo']['invoiceAddress']['titel'] != '005') {
					renderedResponse += '<p><b>'+ titlesArray[businessCardData['userInfo']['invoiceAddress']['titel']] + ' ' + businessCardData['userInfo']['invoiceAddress']['vorname']+' '+businessCardData['userInfo']['invoiceAddress']['nachname']+'<\/b><br \/>';
				} else {
					renderedResponse += '<p><b>'+businessCardData['userInfo']['invoiceAddress']['vorname']+' '+businessCardData['userInfo']['invoiceAddress']['nachname']+'<\/b><br \/>';
				}
			}
			renderedResponse += '<\/p>';
			
			if (businessCardData['public']) {
				var publicStates= PHP_Unserialize(businessCardData['public']);
				
				if (publicStates['profession'] == 'on') { 
					renderedResponse += businessCardData['profession'];
				} else {
					renderedResponse += '&nbsp;';
				}
				// "public":"a:5:{s:5:\"email\";s:2:\"on\";s:9:\"interests\";s:2:\"on\";s:8:\"company\";s:2:\"on\";s:10:\"profession\";s:2:\"on\";s:3:\"ort\";s:2:\"on\";}",
				
				/*
				if (businessCardData['userInfo']['invoiceAddress']['firma1']) {
					renderedResponse += '<p>'+businessCardData['userInfo']['invoiceAddress']['firma1']+'<br \/>';
				}
				if (businessCardData['userInfo']['invoiceAddress']['strasse']) {
					renderedResponse += ''+businessCardData['userInfo']['invoiceAddress']['strasse']+'<br \/>';
				}
				if (businessCardData['userInfo']['invoiceAddress']['plz']) {
					renderedResponse += businessCardData['userInfo']['invoiceAddress']['plz']+'';
				}
				if (businessCardData['userInfo']['invoiceAddress']['ort']) {
					renderedResponse += businessCardData['userInfo']['invoiceAddress']['ort'];
				}
				*/
				if (businessCardData['userInfo']) {
					if (publicStates['company'] == 'on') { 
						renderedResponse += '<p>'+businessCardData['userInfo']['invoiceAddress']['firma1']+'<br \/>';
						renderedResponse += '<p>'+businessCardData['userInfo']['invoiceAddress']['firma2']+'<br \/>';
						renderedResponse += '<p>'+businessCardData['userInfo']['invoiceAddress']['firma3']+'<br \/>';
					} else {
						renderedResponse += '<p>&nbsp;<br />';
					}
					if (publicStates['ort'] == 'on') { 
						renderedResponse += ''+businessCardData['userInfo']['invoiceAddress']['strasse']+'<br \/>';
						renderedResponse += businessCardData['userInfo']['invoiceAddress']['plz']+' ';
						renderedResponse += businessCardData['userInfo']['invoiceAddress']['ort'];
					} else {
						renderedResponse += '&nbsp;<br />';
					}
				}
				renderedResponse += '<\/p>';
				if (businessCardData['userInfo'] && publicStates['email'] == 'on') {
					renderedResponse += '<p><a href=\"mailto:'+businessCardData['userInfo']['email']+'\">'+businessCardData['userInfo']['email']+'<\/a><\/p>';
				} else {
					renderedResponse += '<p>&nbsp;</p>';
				}
			/*
				if (businessCardData['homepage'] != '') {
					renderedResponse += '<p><a href=\"'+businessCardData['homepage']+'\" onclick="window.open(this.href, \'\', \'\'); return false;">'+businessCardData['homepage'].replace('http:\/\/','')+'<\/a><\/p>';
				}
				*/
				if (businessCardData['interest_areas']!= '' && publicStates['interests'] == 'on') {
					renderedResponse += '<p><b>T&auml;tigkeitschwerpunkte:<\/b><br \/>';
					renderedResponse += businessCardData['interest_areas'];
				} else {
					renderedResponse += '<p>&nbsp;<br />';
				}
			} else {
				//renderedResponse += '<p>GANZ JWU;<br />';
			}
			renderedResponse += '<\/p><\/div><\/td><\/tr>';
			renderedResponse += '<\/table>';
			if (showOnLoad) {
				renderedResponse += '<a href=\"#\" class=\"formbutton\" style=\"float:right;\" onclick=\"hidePreviewVisitenkarte(); return false;\">Schlie&szlig;en<\/a>';
			} else {
				renderedResponse += '<a href=\"#\" class=\"formbutton\" style=\"float:right;\" onclick=\"hidePreviewVisitenkarteAuthor(\''+author_id+'\'); return false;\">Schlie&szlig;en<\/a>';
			}
			renderedResponse += '<\/div>';
			renderedResponse += '<\/div>';
			renderedResponse += '<div class=\"bottom\"><\/div>';
			renderedResponse += '<\/div>';
			renderedResponse += '<div class=\"cleardiv\"><\/div>';
			
			
			
			if (showOnLoad) {
				if(document.getElementById('previewVisitenkarte')) {
					document.getElementById('previewVisitenkarte').innerHTML = renderedResponse;
					showPreviewVisitenkarte();
				}
			} else {
				if(document.getElementById('previewVisitenkarteAuthor'+author_id)) {
					document.getElementById('previewVisitenkarteAuthor'+author_id).innerHTML = renderedResponse;
				}
			}
			
		},
		failure: function() {
			// @TODO: if visitenkarte fails ... show what?
		}
	});
}

function showPreviewVisitenkarte(){
	flyAndFadeIn('previewVisitenkarte');
}

function hidePreviewVisitenkarte(){
	document.getElementById('previewVisitenkarte').style.display = 'none';
	
}

function showPreviewVisitenkarteAuthors(pos){
	Ext.get('previewVisitenkarteAuthor'+pos).pause(0.2).fadeIn({easing:'easeIn', duration: .4, useDisplay: true});
}

function showPreviewVisitenkarteAuthor(){
	Ext.get('previewVisitenkarteAuthor').pause(0.2).fadeIn({easing:'easeIn', duration: .4, useDisplay: true});
}

function hidePreviewVisitenkarteAuthor(author_id){
	var previewVisitenkarte = document.getElementById('previewVisitenkarteAuthor'+author_id);
	previewVisitenkarte.style.display = 'none';
	
}




/*   



*/




//RSS FEEDS
//
function showRssFeed(route, rssdiv, newsname, limit) {
	Ext.apply(Ext.lib.Ajax.defaultHeaders,'Content-Type: application/json; charset=utf-8;');
	//alert(limit);
	if (limit < 10) {
		document.getElementById(rssdiv).innerHTML = '<div class="ajax-loader">"'+newsname+'" wird geladen ... </div>';
	}
	Ext.Ajax.request({
	   url: route,
	   method: 'POST',
	   params: { limit : limit },
	   success: function(responseObject) {
		   var rssArray = doJSON( responseObject.responseText );
		   //console.log( ('rssArray = ' + typeof (rssArray)));
		   renderedResponse = '<table cellspacing="0" cellpadding="0" border="0">';
		   for (var i = 0; i  < rssArray.length; i++) {
			   renderedResponse += '<tr>';
			   if (rssArray[i]['image'] != '') {
				   renderedResponse += '<td width="70" style="width:70px !important;"><a href="'+rssArray[i]['guid']+'" onclick="void(window.open(this.href,\'\' ,\'\' )); return false;"><img src="'+rssArray[i]['image']+'" width="70" alt="'+rssArray[i]['title']+'" /></a></td>';
				   renderedResponse += '<td width="370" style="font-size:11px;line-height:13px;padding-bottom:10px;">';
			   } else {
				   renderedResponse += '<td colspan="2" style="font-size:11px;line-height:13px;padding-bottom:10px;">';
			   }
			   renderedResponse += '<a href="'+rssArray[i]['guid']+'" style="font-weight:bold;" onclick="void(window.open(this.href,\'\' ,\'\' )); return false;">'+rssArray[i]['title']+'</a>&nbsp;'+rssArray[i]['description']+ ' <a href="'+rssArray[i]['guid']+'" onclick="void(window.open(this.href,\'\' ,\'\' )); return false;">mehr</a></td>';
		   }
		   renderedResponse += '</table>';
			document.getElementById(rssdiv).innerHTML = renderedResponse;
		},
		failure: function() { 
			document.getElementById(rssdiv).innerHTML = 'RSS-Feed kann nicht angezeigt werden. ';
		}
	});
}


//RSS FEEDS OVERVIEW PAGES
//
function showRssFeedOverview(category_route, category, route, rssdiv, newsname, limit, main_category) {
	Ext.apply(Ext.lib.Ajax.defaultHeaders,'Content-Type: application/json; charset=utf-8;');
	
	if (limit < 10) {
		document.getElementById(rssdiv).innerHTML = '<div class="ajax-loader">"'+newsname+'" wird geladen ... </div>';
	}
	Ext.Ajax.request({
	   url: route,
	   method: 'POST',
	   params: { limit : limit },
	   success: function(responseObject) {
		   var rssArray = doJSON( responseObject.responseText );
		   renderedResponse = '';
		   for (var i = 0; i  < rssArray.length; i++) {
		   
					var fullTitle = rssArray[i]['title'].split(':');
		   
			   if (i == 0) {
					renderedResponse += '<div class="overview-headline">';
					if (main_category == 'nachrichten') {
						renderedResponse += '<div class="headline"><div class="icon-arrow"></div><h2><a href="'+category_route+'" title="'+category+'">'+category+'</a></h2></div>';
					} else {
						renderedResponse += '<div class="headline" style="width:100%;"><div style="float:left"><div class="icon-arrow"></div><h2><a href="'+category_route+'" title="Branche">'+category+'</a></h2></div><div style="font-size:9px;padding-right:10px;float:right">Nachrichten von SPIEGEL ONLINE</div><div style="clear:both"></div></div></div>';
					}
					renderedResponse += '</div>';
					
					renderedResponse += '<span style="color:#5C5C5C;font-weight:bold">'+fullTitle[0]+'</span><h1><a href="'+rssArray[i]['guid']+'" style="font-weight:bold;" onclick="void(window.open(this.href,\'\' ,\'\' )); return false;">'+fullTitle[1]+'</a></h1>';
					if (rssArray[i]['image'] != '') {
						renderedResponse += '<p><a href="'+rssArray[i]['guid']+'" onclick="void(window.open(this.href,\'\' ,\'\' )); return false;"><img src="'+rssArray[i]['image']+'" width="110" alt="'+rssArray[i]['title']+'" /></a>';
					}
					renderedResponse += rssArray[i]['description']+ ' <a href="'+rssArray[i]['guid']+'" onclick="void(window.open(this.href,\'\' ,\'\' )); return false;">mehr&hellip;</a>';
				} else { 
					if (i == 1) {
						renderedResponse += '<ul class="list01">';
					}
					renderedResponse += '<li><span>&nbsp;</span><a href="'+rssArray[i]['guid']+'" onclick="void(window.open(this.href,\'\' ,\'\' )); return false;"><div style="color:#222222; display:inline;">'+fullTitle[0]+':&nbsp;</div>'+fullTitle[1]+'</a></li>';
				}
		   }
		   if (i >= 1) {
					renderedResponse += '</ul>';
				}
			document.getElementById(rssdiv).innerHTML = renderedResponse;
		},
		failure: function() { 
			document.getElementById(rssdiv).innerHTML = 'RSS-Feed kann nicht angezeigt werden. ';
		}
	});
}

//RSS FEEDS ZRD OVERVIEW PAGES
//
function showRssZrdOverview(category_route, category, route, rssdiv, newsname, limit, main_category) {
	Ext.apply(Ext.lib.Ajax.defaultHeaders,'Content-Type: application/json; charset=utf-8;');
	document.getElementById(rssdiv).innerHTML = '<div class="ajax-loader">"'+newsname+'" wird geladen ... </div>';
	Ext.Ajax.request({
	   url: route,
	   method: 'POST',
	   params: { limit : limit },
	   success: function(responseObject) {
		   var rssArray = doJSON( responseObject.responseText );
		   var renderedResponse = '';
		   for (var i = 0; i  < rssArray.length; i++) {
		   
		   			//alert(rssArray[i]['description']);
		   	
		   
					var fullTitle = rssArray[i]['title'].split(':');
		   
					renderedResponse += '<h2 class="subtitle">'+fullTitle[0]+'</h2>';
					renderedResponse += '<a href='+rssArray[i]['guid']+' onclick="void(window.open(this.href,\'\' ,\'\' )); return false"><h1>'+fullTitle[1]+'</h1></a>';
					renderedResponse += '<p>';
					if (rssArray[i]['image'] != '') {
						renderedResponse += '<a href="'+rssArray[i]['guid']+'" onclick="void(window.open(this.href,\'\' ,\'\' )); return false;"><img src="'+rssArray[i]['image']+'" width="90" alt="'+fullTitle[1]+'" /></a>';
						renderedResponse += rssArray[i]['description'];
					} else {
						renderedResponse += rssArray[i]['description'];
					}
					
					renderedResponse += '&nbsp;<a href="'+rssArray[i]['guid']+'"onclick="void(window.open(this.href,\'\' ,\'\' )); return false;" title="mehr" class="mehr">mehr&hellip;</a></p>';
					renderedResponse += '<div class="cleardiv">&nbsp;</div>';
					renderedResponse += '<div class="trenner-m20"></div>';
					renderedResponse += '<div class="cleardiv">&nbsp;</div>';
		   }
			document.getElementById(rssdiv).innerHTML = renderedResponse;
		},
		failure: function() { 
			document.getElementById(rssdiv).innerHTML = 'RSS-Feed kann nicht angezeigt werden. ';
		}
	});
}

//JURION HOTPIPES
function showJurionHotpipeList(route, juriondiv, lawsector, lenght, slot_title) {
	Ext.apply(Ext.lib.Ajax.defaultHeaders,'Content-Type: application/json; charset=utf-8;');
	document.getElementById(juriondiv).innerHTML = '<div class="ajax-loader">"'+lawsector+'" wird geladen ... </div>';
	//alert(lenght);
	Ext.Ajax.request({
		url: route,
		method: 'POST',
		headers: '',
		params: {rechtsgebiet : lawsector, lenght : lenght, slot_title : slot_title},
		success: function(responseObject) {
			var hotpipeArray = doJSON( responseObject.responseText );
			var renderedResponse = '';
			if (hotpipeArray && hotpipeArray.length > 0) {
				renderedResponse = '<table cellspacing="0" cellpadding="0" border="0" width="100%">';
				for (var i = 0; i  < hotpipeArray.length; i++) {
					renderedResponse += '<tr><td>';
					renderedResponse += hotpipeArray[i]['title']+':<br />';
					renderedResponse += '<a href="'+hotpipeArray[i]['cmsroute']+'" title="Details f&uuml;r '+hotpipeArray[i]['title']+' anzeigen"><strong>'+hotpipeArray[i]['sub_title']+'</strong></a>';
					renderedResponse += '</td></tr>';
					if (i < (hotpipeArray.length - 1)) {
						renderedResponse += '<tr><td style="height:10px"><div style="position:relative; height:5px; border-bottom:1px dotted #d1d1d1;">&nbsp;</div></td></tr>';
					}
				}
				renderedResponse += '</table>';
				renderedResponse += '<div class="trenner-m10"></div>';
			} else {
				renderedResponse = '<div style="padding:20px;">Keine Eintr&auml;ge f&uuml;r '+lawsector+' vorhanden.</div>';
			}

			document.getElementById(juriondiv).innerHTML = renderedResponse;
		},
		failure: function() {
			document.getElementById(juriondiv).innerHTML = 'Die Jurion-Rechtsprechungen konnten nicht angezeigt werden. ';
		}
	});
}

function historyShowJurionHotpipeList(selectEl) {
	var hm = getHistoryManager();
	hm.set('jurionhl', selectEl.value);
}

function registerJurionHotpipeList(route, juriondiv, lenght, slot_title, selectEl, defaultSelected) {
	var hm = getHistoryManager();

	var updateSelect = function (selectEl, newValue) {
		for (var i = selectEl.length - 1; i >= 0; --i) {
			var e = selectEl[i];
			if (e.value == newValue) {
				selectEl.value = newValue;
				return;
			}
		}
	};
	
	hm.addListener('jurionhl-changed', function (newValue) {
		if (selectEl.value != newValue) {
			updateSelect(selectEl, newValue);
		}
		showJurionHotpipeList(route, juriondiv, newValue, lenght, slot_title);
	});

	hm.addListener('jurionhl-removed', function () {
		if (selectEl.value != 'Arbeitsrecht') {
			updateSelect(selectEl, 'Arbeitsrecht');
		}
		showJurionHotpipeList(route, juriondiv, 'Arbeitsrecht', lenght, slot_title);
	});

	if(defaultSelected) {
		hm.addListener('started', function () {
			var hm = getHistoryManager();
			if(!hm.hasKey('jurionhl')) {
				hm.set('jurionhl', defaultSelected);
			}
		});
	}
}

//JURION HOTPIPES SLOT
function showJurionHotpipeSlotList(route, juriondiv, lawsector, lenght, slot_title) {
	Ext.apply(Ext.lib.Ajax.defaultHeaders,'Content-Type: application/json; charset=utf-8;');
	document.getElementById(juriondiv).innerHTML = '<div class="ajax-loader-jurion">"'+lawsector+'"<br />wird geladen</div>';
	//alert(lenght);
	var hotpipeArray = new Array();
	Ext.Ajax.request({
		url: route,
		method: 'POST',
		headers: '',
		params: {rechtsgebiet : lawsector, lenght : lenght, slot_title : slot_title},
		success: function(responseObject) {
				hotpipeArray = doJSON( responseObject.responseText );
				if (hotpipeArray.length > 0) {
					renderedResponse = '<table cellspacing="0" cellpadding="0" border="0" width="100%" style="margin-top:10px;">';
					for (var i = 0; i  < hotpipeArray.length; i++) {
						renderedResponse += '<tr><td align="left" style="font-size:11px;">';
						if (slot_title == 'Rechtsprechung') {
							renderedResponse += '<div style="font-size:10px;color:#5c5c5c">'+hotpipeArray[i]['fulltitle'].replace('[Jurion]', '')+'</div><a href="'+hotpipeArray[i]['cmsroute']+'" title="Details f&uuml;r '+hotpipeArray[i]['fulltitle']+' anzeigen" style="font-weight:normal">'+hotpipeArray[i]['sub_title']+'</a>';
						} else {
							renderedResponse += '<div style="font-size:10px;color:#5c5c5c">'+hotpipeArray[i]['title']+'</div><a href="'+hotpipeArray[i]['cmsroute']+'" title="Details f&uuml;r '+hotpipeArray[i]['title']+' anzeigen" style="font-weight:normal">'+hotpipeArray[i]['sub_title']+'</a>';
						}
						renderedResponse += '</td></tr>';
			
			   }
					renderedResponse += '</table>';
				} else {
					renderedResponse = '<div style="padding:20px;">Keine Eintr&auml;ge f&uuml;r '+lawsector+' vorhanden.</div>';
				}
		document.getElementById(juriondiv).innerHTML = renderedResponse;
		},
		failure: function() { 
			document.getElementById(juriondiv).innerHTML = 'Die Jurion-Rechtsprechungen konnten nicht angezeigt werden. ';
		}
	});
}




//TEASER
function orderNewsletter(route, emailadress, newsdiv) {
	Ext.Ajax.request({
		url: route,
		method: 'POST',
		params: { email : emailadress},
		headers: '',
		success: function(responseObject) {
			//alert(responseObject.responseText)
			if (responseObject.responseText == 'error') {
				document.getElementById(newsdiv).innerHTML = '<br /><span style="color:darkred"><strong>Bitte geben Sie eine g&uuml;ltige E-Mail-Adresse an.</strong></span><br />';
			} else if (responseObject.responseText == '4031044191') {
				document.getElementById(newsdiv).innerHTML = '<br /><span style="color:#444"><strong>Sch&ouml;n, dass wir Ihr Interesse an der Legal Tribune ONLINE geweckt haben.<br />Rechtzeitig zum Starttermin von LTO.de senden wir Ihnen eine kurze Info-Mail.</strong></span><br />';
				document.getElementById('startdiv').style.display = "none";
			} else if (responseObject.responseText == '4031044194') {
				document.getElementById(newsdiv).innerHTML = '<br /><span style="color:#444"><strong>Sch&ouml;n, dass wir Ihr Interesse an der Legal Tribune ONLINE geweckt haben.<br />In K&uuml;rze erhalten Sie weitere Informationen und eine digitale Pressemappe zu LTO.de.</strong></span><br />';
				document.getElementById('pressediv').style.display = "none";
			} else {
				document.getElementById(newsdiv).innerHTML = '<br /><span style="color:darkred">Das Formular konnte nicht versendet werden.<br /> Bitte versuchen Sie es erneut.</span><br />';
			}
		},
		failure: function() { 
			//alert(responseObject.responseText)
			document.getElementById(newsdiv).innerHTML = responseObject.responseText;
		}
	});
}
///







//Send To Friend 
function showSendForm(stfurl, pageurl, subtitle) {
	Ext.apply(Ext.lib.Ajax.defaultHeaders,'Content-Type: application/json; charset=utf-8;');
	Ext.Ajax.request({
		url: stfurl,
		method: 'GET',
		params: {link : pageurl, subTitle: subtitle},
		success: function(responseObject) {
			document.getElementById('senderDiv').innerHTML =  responseObject.responseText;
			if (document.getElementById('subTitleH')){
					document.getElementById('subTitleH').innerHTML = document.getElementById('subTitle').value;
			}
		},
		failure: function() { 
			document.getElementById('senderDiv').innerHTML =  'Das Formular konnte nicht geladen werden';
		}
	});
}

function sendPageToFriend(stfurl) {
	Ext.apply(Ext.lib.Ajax.defaultHeaders,'Content-Type: application/json; charset=utf-8;');
	Ext.Ajax.request({
		url: stfurl,
		method: 'POST',
		params: { receiverMail : document.getElementById('receiverMail').value,  senderMail : document.getElementById('senderMail').value,  message : document.getElementById('message').value,  link : document.getElementById('link').value,  subTitle : document.getElementById('subTitle').value},
		success: function(responseObject) {
			document.getElementById('senderDiv').innerHTML =  responseObject.responseText;
			if (document.getElementById('subTitleH')){
				/* @BUG: is this a typo/bug? '=' vs. '==' */
				document.getElementById('subTitleH').innerHTML == document.getElementById('subTitle').value;
				
			} else {
			
				setTimeout("flyAndFadeOut('senderDiv');",3000);
				
				setTimeout("showFormAfterSent();",4000);
				
				
				//Ext.get('senderDiv').pause(5.2).fadeOut('t', {easing:'easeOut', duration: .4, useDisplay: true});
			}
		},
		failure: function() {
			document.getElementById('senderDiv').innerHTML =  'Das Formular konnte nicht versendet werden';
		}
	});
}
///



// Comments in News 
function showComments(commenturl, pageurl) {
	// json here:
	Ext.apply(Ext.lib.Ajax.defaultHeaders,'Content-Type: application/json; charset=utf-8;');
	Ext.Ajax.request({
		url: commenturl,
		method: 'POST',
		headers: '',
		params: { moduleName : 'News', item_id : pageurl },
		success: function(responseObject) {
			var commentArray = doJSON(responseObject.responseText);
			renderedResponse = '';
			renderedResponse += '<div class="comment-box">';
			renderedResponse += '<div class="icon-news" style="float:left; margin-right:10px;"></div><h1 style="float:left">Kommentare</h1>';
			renderedResponse += '<div class="relevant-button" style="float:right;">';
			renderedResponse += '<div class="main"><a href="#commentWrite" id="showform" onclick="document.getElementById(\'writecommentcontainer\').style.display = \'block\';">Kommentar schreiben</a></div>';
			renderedResponse += '<div class="end"></div>';
			renderedResponse += '</div>';
			renderedResponse += '<div class="underline-m-7-dotted"></div>';
			for (var i = 0; i < commentArray.length; i++) {
				renderedResponse += '<div class="comment">';
				renderedResponse += '<h3>'+commentArray[i].data.title+'</h3>';
				renderedResponse += '<p>'+commentArray[i].data.text.replace('\n', '<br />')+'</p>';
				renderedResponse += '<a href="#" onclick="showBusinessCard(\''+commentArray[i].data.businesscard_route+'\'); return false;" title="'+commentArray[i].data.author+'">'+commentArray[i].data.author+'</a><span class="date">'+dateFormatComplete(commentArray[i].data.created_at)+' Uhr</span>';
				renderedResponse += '</div>';
			}
			renderedResponse += '</div>';
			document.getElementById("commentcontainer").innerHTML = renderedResponse;
		},
		failure: function() { 
			document.getElementById("commentcontainer").innerHTML =  'Die Kommentare konnten nicht geladen werden';
		}
	});
}

function saveComment(commenturlb, pageurlb, routelist) {
	document.getElementById("commentcontainer").innerHTML =  '<div class="adon-loader">Die Kommentare werden geladen, bitte warten ...<br /><br /><img src="/images/default/loading.gif" alt="loading..." /></div>';
	Ext.Ajax.request({
		url: commenturlb,
		method: 'POST',
		params: { moduleName : 'News', item_id : pageurlb, title : document.getElementById('commenttitle').value, text : document.getElementById('commentcontent').value, extraContent : document.getElementById('extracontent').value},
		success: function(responseObject) {
			showComments(routelist, pageurlb);
		},
		failure: function() {
			document.getElementById("commentcontainer").innerHTML =  'Der Kommentar konnte nicht gespeichert werden';
		}
		
	});
}


// @TODO: use below method to show messages for all Ajax calls

function saveToWatchlist(watchlistUrl, newsId, showWatchlistUrl, showWatchlistUrlReal) {  
	//showMessage('merkenLayer', 'merkenLayerInner', '<div class="ajax-loader">Ihre Merkliste wird aktualisiert ... </div>');
	Ext.Ajax.request({
		url: watchlistUrl,
		method: 'POST',
		params: { itemId : newsId},
		success: function(responseObject) {
			var message = '<p>Der Beitrag wurde in Ihrer pers&ouml;nlichen Merkliste gespeichert.</p>';
			message += '<a href="'+showWatchlistUrlReal+'"><b>Meine Merkliste &ouml;ffnen</b></a>';
			message += '<br /><br />';
			message += '<a href="#" class="formbutton" onclick="closeMessage(\'merkenLayer\'); return false;">Schlie&szlig;en</a>';
			showMessage('merkenLayer', 'merkenLayerInner', message);
		},
		failure: function() {
			showMessage('merkenLayer', 'merkenLayerInner', '<p>Fehler:<br />Ihre Merkliste konnte nicht aktualisiert werden, bitte versuchen Sie es in ein paar Minuten erneut.</p>');
		}
		
	});
}

//Comments in Poll 
function showPollComments(commenturl, pageurl) {
	Ext.Ajax.request({
		url: commenturl,
		method: 'POST',
		headers: '',
		params: { moduleName : 'Poll', item_id : pageurl },
		success: function(responseObject) {
			document.getElementById("commentcontainer").innerHTML = unescape(responseObject.responseText);
		},
		failure: function() { 
			document.getElementById("commentcontainer").innerHTML =  'Die Kommentare konnten nicht geladen werden';
		}
	});
}
function savePollComment(commenturlb, pageurlb, routelist) {
	document.getElementById("commentcontainer").innerHTML =  '<div class="adon-loader">Kommentare werden geladen, bitte warten ...<br /><br /><img src="../images/default/loading.gif" alt="loading..." /></div>';
	Ext.Ajax.request({
		url: commenturlb,
		method: 'POST',
		params: { moduleName : 'Poll', item_id : pageurlb, title : document.getElementById('commenttitle').value, text : document.getElementById('commentcontent').value, extraContent : document.getElementById('extracontent').value},
		success: function(responseObject) {
			showPollComments(routelist, pageurlb);
		},
		failure: function() {
			document.getElementById("commentcontainer").innerHTML =  'Das Kommentar konnte nicht gespeichert werden';
		}
		
	});
}



/* AJAX CALLS MESSAGES*/

function send(){
	flyAndFadeIn('senderDiv');
	//Ext.get('senderDiv').pause(0.2).fadeIn({easing:'easeIn', duration:  .4, useDisplay: true});
	
}

/*  MESSAGES watchlist */
function showMessage(divid, dividinner, message){
	if (message != 'nomessage') {
		document.getElementById(dividinner).innerHTML = message;
	}
	Ext.get(divid).pause(0.2).fadeIn({easing:'easeIn', duration: .4, useDisplay: true}).pause(10).fadeOut({easing:'easeOut', duration: .4, useDisplay: true});
}

function showMessageFail(divid, dividinner){
	document.getElementById(dividinner).innerHTML = '<p>Bitte loggen Sie sich ein, um diesen Artikel Ihrer Merkliste hinzuzuf&uuml;gen.<br /><br /><a href="/de/html/mein_lto/login" class="formbutton" title="ZumLogin">Zum Login</a><a href="#" class="formbutton" onclick="closeMessage(\'merkenLayer\'); return false">Schlie&szlig;en</a>';
	Ext.get(divid).pause(0.2).fadeIn({easing:'easeIn', duration: .4, useDisplay: true}).pause(2).fadeOut({easing:'easeOut', duration: .4, useDisplay: true});
}

function sendclose(){
	Ext.get('senderDiv').pause(0.2).fadeOut({easing:'easeOut', duration: .4, useDisplay: true});
	return false;
}



	
/*  MESSAGES generic */
function showMessageGeneric(content, divid, dividinner){
	document.getElementById(dividinner).innerHTML = '<p><strong>'+content+'</strong></p><a href="#" class="formbutton" onclick="closeMessage(\''+divid+'\'); return false">Schlie&szlig;en</a>';
	Ext.get(divid).pause(0.3).fadeIn({easing:'easeIn', duration: .3, useDisplay: true}).pause(3).fadeOut({easing:'easeOut', duration: .4, useDisplay: true});
	
}

function closeMessage(divid){
	var messageObject = document.getElementById(divid);
	if (messageObject.style.display != 'none') {
		messageObject.style.display = 'none';
	}
}

/*/ MESSAGES */


function commentreply(){
	var ccurtain = document.getElementById('commentCurtain');
	var cLayer = document.getElementById('commentLayer');
	ccurtain.style.display = 'block';
	Ext.get('commentLayer').pause(0.2).fadeIn({easing:'easeIn', duration: .4, useDisplay: true});
	return false;
}

function commentclose(){
	var ccurtain = document.getElementById('commentCurtain');
	var cLayer = document.getElementById('commentLayer');
	
	ccurtain.style.display = 'none';
	cLayer.style.display = 'none';
	return false;
	}

function commentSuccess(){
	var ccurtain = document.getElementById('commentCurtain');
	var cLayer = document.getElementById('commentLayer');
	var commentInner = document.getElementById('commentInner');
	commentInner.innerHTML = '<h1>Vielen Dank f&uuml;r Ihr Kommentar!</h1><p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu.</p><br /><a class="formbutton" href="#" onclick="commentclose();return false;">schlie&szlig;en</a><br />';
	ccurtain.style.display = 'none'
	Ext.get('commentLayer').pause(5).fadeOut({easing:'easeOut', duration: .4, useDisplay: true});
	return false;
	}







/*******************************************************************************************
* /Ext AJAX CALLS
*******************************************************************************************/

/*
 Formulare WKD-Modul
*/
function triggerEvents() {
	// Registrierung
	var inputNodes = document.getElementsByTagName("input");
	for (var i = 0; i < inputNodes.length; i++) {
		if (inputNodes[i].className == 'adon-form-input-normal') {
			inputNodes[i].onfocus = function() {
				this.className = 'adon-form-input-normal-focus';
			}
			inputNodes[i].onblur = function() {
				this.className = 'adon-form-input-normal';
			}
		}
		if (inputNodes[i].className == 'adon-form-input-small') {
			inputNodes[i].onfocus = function() {
				this.className = 'adon-form-input-small-focus';
			}
			inputNodes[i].onblur = function() {
				this.className = 'adon-form-input-small';
			}
		}
		if (inputNodes[i].className == 'adon-form-input-medium') {
			inputNodes[i].onfocus = function() {
				this.className = 'adon-form-input-medium-focus';
			}
			inputNodes[i].onblur = function() {
				this.className = 'adon-form-input-medium';
			}
		}
	}
	var selectNodes = document.getElementsByTagName("select");
	for (var i = 0; i < selectNodes.length; i++) {
		if (selectNodes[i].className == 'adon-form-select') {
			selectNodes[i].onfocus = function() {
				this.className = 'adon-form-select-focus';
			}
			selectNodes[i].onblur = function() {
				this.className = 'adon-form-select';
			}
		} else {
			selectNodes[i].className = 'adon-form-select';
			selectNodes[i].onfocus = function() {
				this.className = 'adon-form-select-focus';
			}
			selectNodes[i].onblur = function() {
				this.className = 'adon-form-select';
			}
		}
	}
	if (document.getElementById('terms_agb')) {
		document.getElementById('terms_agb').onmouseover = function() {
			this.className = 'adon-form-terms-hover';
		}
		document.getElementById('terms_agb').onmouseout = function() {
			this.className = 'adon-form-terms';
		}
	}
	if (document.getElementById('terms_kluwer_account')) {
		document.getElementById('terms_kluwer_account').onmouseover = function() {
			this.className = 'adon-form-terms-hover';
		}
		document.getElementById('terms_kluwer_account').onmouseout = function() {
			this.className = 'adon-form-terms';
		}
	}
	if (document.getElementById('terms_info')) {
		document.getElementById('terms_info').onmouseover = function() {
			this.className = 'adon-form-terms-hover';
		}
		document.getElementById('terms_info').onmouseout = function() {
			this.className = 'adon-form-terms';
		}
	}
	// search box
	if (document.getElementById('search_container') && document.getElementById('search_term')) {
	
		var isFocused=false;
	
		document.getElementById('search_term').onfocus =  function() {
			isFocused=true;
			document.getElementById('search_container').className = 'header-search-container-focused';
			this.className = 'adon-input-box-header-search-focused';
			if (this.value == 'Suche') {
				this.value = "";
			}
		}
		document.getElementById('search_term').onblur =  function() {
			isFocused=false;
			document.getElementById('search_container').className = 'header-search-container';
			this.className = 'adon-input-box-header-search';
			if (this.value == '') {
				this.value = "Suche";
			}
		}
		document.getElementById('form_search_hover').onmouseover =  function() {
			document.getElementById('search_container').className = 'header-search-container-hover';
		}
		document.getElementById('form_search_hover').onmouseout =  function() {
			if (isFocused) {
				document.getElementById('search_container').className = 'header-search-container-focused';
			} else {
				document.getElementById('search_container').className = 'header-search-container';
			}
			
		}
	}
}

function toggleDeliveryAdress() {
	if (document.getElementById('deliveryAddress').style.display == 'none') {
		document.getElementById('deliveryAddress').style.display = "block";
	} else {
		document.getElementById('deliveryAddress').style.display = "none";
	}
}

function checkInfoboxes() {
	if (document.getElementById('infooffer').checked === true) { 
		document.getElementById('infooffer_email').disabled = false;
		document.getElementById('infooffer_phone').disabled = false;
		document.getElementById('infooffer_smsmms').disabled = false;
		document.getElementById('infooffer_mail').disabled = false;
		document.getElementById('infooffer_fax').disabled = false;
		document.getElementById('infooffer_email').checked = true;
		document.getElementById('infooffer_phone').checked = true;
		document.getElementById('infooffer_smsmms').checked = true;
		document.getElementById('infooffer_mail').checked = true;
		document.getElementById('infooffer_fax').checked = true;
	} else {
		document.getElementById('infooffer_email').checked = false;
		document.getElementById('infooffer_phone').checked = false;
		document.getElementById('infooffer_smsmms').checked = false;
		document.getElementById('infooffer_mail').checked = false;
		document.getElementById('infooffer_fax').checked = false;
		document.getElementById('infooffer_email').disabled = true;
		document.getElementById('infooffer_phone').disabled = true;
		document.getElementById('infooffer_smsmms').disabled = true;
		document.getElementById('infooffer_mail').disabled = true;
		document.getElementById('infooffer_fax').disabled = true;
	}
}
/*
End Formulare WKD-Modul
*/


function validateComment(commenturlb, pageurlb, routelist) {
	var validatetitle = false;
	var validatecontent = false;
	if (document.getElementById("commenttitle").value != ''){
		validatetitle = true;
	} 
	if(document.commentWriteForm.commentcontent.value != '') {
		validatecontent = true;
	}
	if (validatetitle == true && validatecontent == true){
	saveComment(commenturlb, pageurlb, routelist);
	document.getElementById('writecommentcontainer').style.display = 'none';
	document.commentWriteForm.commentcontent.value = '';
	document.getElementById("commenttitle").value = '';
	} else {
		document.getElementById('validate-error').innerHTML = '';
		if (validatetitle == false){
			document.getElementById('validate-error').innerHTML += 'Bitte geben Sie einen Titel ein!<br />';
			document.getElementById('writecommentcontainer').style.display = 'block';
		}
		if (validatecontent == false){
			document.getElementById('validate-error').innerHTML += 'Bitte geben Sie ein Kommentar ein!<br />';
			document.getElementById('writecommentcontainer').style.display = 'block';
		}
		
	}
}

// Search inputs
function searchfeld() {
	if (document.getElementById('searchinput01')) {
		var changeclass = document.getElementById('searchinput01');
		if (changeclass.className == 'searchstring') {
			changeclass.onfocus = function() {
				this.className = 'searchstring2';
				document.getElementById("optios-box").style.display = 'none';
				if(changeclass.value == 'Suche') {
					this.value = '';
				}
			}
			changeclass.onblur = function() {
				changeclass.className = 'searchstring';
				if(changeclass.value == '') {
					this.value = 'Suche';
				}
			}
		}
	}
}

function searchfeld2() {
	if (document.getElementById('searchinput02')) {
	var changeclass = document.getElementById('searchinput02');
	if (changeclass.className == 'searchstring') {
		changeclass.onfocus = function() {
			this.className = 'searchstring2';
			if(changeclass.value == 'Suche') {
				this.value = '';
			}
		}
		changeclass.onblur = function() {
			changeclass.className = 'searchstring';
			if(changeclass.value == '') {
				this.value = 'Suche';
			}
		}
	}
	}
}

function searchfeld3() {
	if (document.getElementById('searchinput03')){
		var changeclass = document.getElementById('searchinput03');
		if (changeclass.className == 'searchstring') {
			changeclass.onfocus = function() {
				this.className = 'searchstring2';
				if(changeclass.value == 'Suche') {
					this.value = '';
				}
			}
			changeclass.onblur = function() {
				changeclass.className = 'searchstring';
				if(changeclass.value == '') {
					this.value = 'Suche';
				}
			}
		}
	}
}



function searchoption() {
	if (document.getElementById("optios-box").style.display == 'none'){
		document.getElementById("optios-box").style.display = 'block';
		//Ext.get('optios-box').slideIn('t', {easing:'easeOut', duration: .4, useDisplay: true});
	} else {
		document.getElementById("optios-box").style.display = 'none';
	}	
}

function clearPage() {
	// suchfeld
	if (document.getElementById('optios-box')) {
		if (document.getElementById('optios-box').style.display != 'none') {
			document.getElementById('optios-box').style.display = 'none';
		}
	} 
}

// called onload
function tabbox(){
	var tab01 = document.getElementById('tab01');
	var tab02 = document.getElementById('tab02');
	var tab03 = document.getElementById('tab03');
	var tab04 = document.getElementById('tab04');
	
	var tabinner01 = document.getElementById('tab-inner01');
	var tabinner02 = document.getElementById('tab-inner02');
	var tabinner03 = document.getElementById('tab-inner03');
	var tabinner04 = document.getElementById('tab-inner04');
	
	var tabbutton01 = document.getElementById('tab-button01');
	var tabbutton02 = document.getElementById('tab-button02');
	var tabbutton03 = document.getElementById('tab-button03');
	var tabbutton04 = document.getElementById('tab-button04');
		
	tab01.onmouseover = function(){
		if (tabinner01.style.display == 'none'){
			tab01.className = 'tab-normal2';	
		}
	}
	tab01.onmouseout = function(){
		if (tabinner01.style.display == 'none'){
			tab01.className = 'tab-normal';	
		}
	}

	tab02.onmouseover = function(){
		if (tabinner02.style.display == 'none'){
			tab02.className = 'tab-normal2';	
		}
	}
	tab02.onmouseout = function(){
		if (tabinner02.style.display == 'none'){
			tab02.className = 'tab-normal';
		}
	}


	tab03.onmouseover = function(){
		if (tabinner03.style.display == 'none'){
			tab03.className = 'tab-normal2';	
		}
	}
	tab03.onmouseout = function(){
		if (tabinner03.style.display == 'none'){
			tab03.className = 'tab-normal';	
		}
	}

	tab04.onmouseover = function(){
		if (tabinner04.style.display == 'none'){
			tab04.className = 'tab-normal2';	
		}
	}
	tab04.onmouseout = function(){
		if (tabinner04.style.display == 'none'){
			tab04.className = 'tab-normal';
		}
	}
}

//onclick home spiegel tabs

function activateTab(tab_element) {
	document.getElementById('tab-inner01').style.display = "none";
	document.getElementById('tab-inner02').style.display = "none";
	document.getElementById('tab-inner03').style.display = "none";
	document.getElementById('tab-inner04').style.display = "none";
	
	document.getElementById('tab01').className = "tab-normal";
	document.getElementById('tab02').className = "tab-normal";
	document.getElementById('tab03').className = "tab-normal";
	document.getElementById('tab04').className = "tab-normal";
	
	document.getElementById('tab-button01').style.display = "none";
	document.getElementById('tab-button02').style.display = "none";
	document.getElementById('tab-button03').style.display = "none";
	document.getElementById('tab-button04').style.display = "none";
	
	document.getElementById('tab'+tab_element).className = 'tab-active';
	document.getElementById('tab-inner'+tab_element).style.display = 'block';
	document.getElementById('tab-button'+tab_element).style.display = 'block';
}



// Kalendar Slot 
function changeContent(element, dayofmonth) {
	if (element.id == 'todayhref') {
		element.className = 'slot-cal-selected';
		document.getElementById('tomorrowhref').className = 'slot-cal';
		document.getElementById('tomorrowdiv').style.display = 'none';
		document.getElementById('weekhref').className = 'slot-cal';
		document.getElementById('weekdiv').style.display = 'none';
		Ext.get('todaydiv').fadeIn('t', {easing:'easeOut', duration: .4, useDisplay: true});
		//document.getElementById('todaydiv').style.display = 'block';
	} else if (element.id == 'tomorrowhref') {
		element.className = 'slot-cal-selected';
		document.getElementById('weekhref').className = 'slot-cal';
		document.getElementById('weekdiv').style.display = 'none';
		document.getElementById('todayhref').className = 'slot-cal';
		document.getElementById('todaydiv').style.display = 'none';
		Ext.get('tomorrowdiv').fadeIn('t', {easing:'easeOut', duration: .4, useDisplay: true});
		//document.getElementById('tomorrowdiv').style.display = 'block';
	} else if (element.id == 'weekhref') {
		element.className = 'slot-cal-selected';
		document.getElementById('tomorrowhref').className = 'slot-cal';
		document.getElementById('tomorrowdiv').style.display = 'none';
		document.getElementById('todayhref').className = 'slot-cal';
		document.getElementById('todaydiv').style.display = 'none';
		Ext.get('weekdiv').fadeIn('t', {easing:'easeOut', duration: .4, useDisplay: true});
		//document.getElementById('weekdiv').style.display = 'block';
	}
}


// News/Eent Image apadtor
function resizeImg(elemArray){
	for (i = 0; i < elemArray.length; i++) {
		
		if (document.getElementById('thumbnail'+elemArray[i])) {
		
			imgElem = document.getElementById('thumbnail'+elemArray[i]);
			if (imgElem.offsetWidth >= imgElem.offsetHeight) {
				imgElem.className = "";
				imgElem.style.height = "110px";
				imgElem.style.width = "auto";
				margin = (imgElem.offsetWidth - 110) / 2;
				imgElem.style.marginLeft = "-" + margin + "px";
				Ext.get('divar' + elemArray[i]).fadeIn({endOpacity: 1, easing    : 'easeOut',duration  : .5});
			}
			if (imgElem.offsetWidth <= imgElem.offsetHeight) {
				imgElem.className = "";
				imgElem.style.width = "110px";
				imgElem.style.height = "auto";
				margin = (imgElem.offsetHeight - 110) / 2;
				imgElem.style.marginTop = "-" + margin + "px";
				Ext.get('divar' + elemArray[i]).fadeIn({endOpacity: 1, easing    : 'easeOut',duration  : .5});
			}
		}
		
	}
}

function showNaviTitle(){
	if (document.getElementById('activeHeadline')){
		var elem = document.getElementById('mainNavi');
		var inputElements = elem.getElementsByTagName('a');
		for (var i = 0; i < inputElements.length; i++) {
			if (inputElements[i].className) {
				if (inputElements[i].className.indexOf('active') > -1) {
					document.getElementById('activeHeadline').innerHTML = inputElements[i].innerHTML;
					break;
				}
			}
		}
	}
}

function toggleLogin() {
	if (document.getElementById('lto_login')) {
		if (document.getElementById('lto_login').style.display != 'none') {
			Ext.get('lto_login').slideOut('t', {easing:'easeOut', duration: .4, useDisplay: true});
		}else {
			Ext.get('lto_login').slideIn('t', {easing:'easeOut', duration: .4, useDisplay: true});
		}
	}
}

function kuselitShowMagazinList(lawgroupId){
	var tableDisplyId = 'fachgebiet' + lawgroupId;
	var listSelectId = 'innerFachgebiet' + lawgroupId;
	var elem = document.getElementById('outerdiv');
	var magazinesGroups = elem.getElementsByTagName('table');
	for (var i = 0; i < magazinesGroups.length; i++) {
		magazinesGroups[i].style.display = "none";
		if (document.getElementById(tableDisplyId)){
			document.getElementById(tableDisplyId).style.display = "block";
			var listHeadline = document.getElementById(listSelectId).innerHTML;
			document.getElementById('listHeadline').innerHTML = listHeadline;
		}
	}
}

function myLtoShowCommentText(commentId){
	var divId = 'commentText' + commentId;
	var iconId = 'iconId' + commentId;
	if (document.getElementById(divId).style.display == 'none'){
		Ext.get(divId).slideIn('t', {easing:'easeOut', duration: .4, useDisplay: true});
		document.getElementById(iconId).className = 'minus-search-icon';
	} else {
		document.getElementById(divId).style.display = 'none';
		document.getElementById(iconId).className = 'plus-search-icon';
	}
}

function spiegelAdvertisment(belegugungseinheit){
	OAS_url = 'http://adserv.quality-channel.de/RealMedia/ads/';
	OAS_listpos = 'Bottom,Bottom1,Middle,Middle1,Middle2,Middle3,Right,Right1,Top1,TopRight';
	OAS_query = '';
	if (belegugungseinheit != 'homepage' && belegugungseinheit != 'recht_aktuell/center' && belegugungseinheit != 'recht_aktuell/artikel' && belegugungseinheit != 'nachrichten/center' && belegugungseinheit != 'nachrichten/artikel' && belegugungseinheit != 'hintergruende/center' && belegugungseinheit != 'hintergruende/artikel' && belegugungseinheit != 'job_karriere/center' && belegugungseinheit != 'job_karriere/artikel' && belegugungseinheit != 'leben/center' && belegugungseinheit != 'leben/artikel' && belegugungseinheit != 'feuilleton/center' && belegugungseinheit != 'feuilleton/artikel' && belegugungseinheit != 'nuetzliches/center' && belegugungseinheit != 'nuetzliches/artikel' && belegugungseinheit != 'service/center' && belegugungseinheit != 'service/artikel'){
		OAS_sitepage = 'www.lto.de/service/artikel';
	} else {
		OAS_sitepage = 'www.lto.de/'+belegugungseinheit;
	}
	OAS_rn = '001234567890'; OAS_rns = '1234567890';
	OAS_rn = new String (Math.random()); OAS_rns = OAS_rn.substring (2, 11);
	var spHashParams=spGetHashParams();
	if (spHashParams["oas.belegung"] != null)
	{
		OAS_belegung = spHashParams["oas.belegung"];
		OAS_sitepage = 'www.lto.de/' + spHashParams["oas.belegung"];
	}
	OAS_mjxscripturl = OAS_url + 'adstream_mjx.ads/' + OAS_sitepage + '/1' + OAS_rns + '@' + OAS_listpos + OAS_query;

	function OAS_RICH(pos)
	{
		document.write('<a href="' + OAS_url + 'click_nx.ads/' + OAS_sitepage + '/1' + OAS_rns + '@' + OAS_listpos + '!' + pos + OAS_query + '" target="_blank" ><img src="' + OAS_url + 'adstream_nx.ads/' + OAS_sitepage + '/1' + OAS_rns + '@' + OAS_listpos + '!' + pos + OAS_query + '" border="0" alt=""><\/a>');
	}
	
	if (spHashParams["oas.showpos"] == '1')
	{
		OAS_showpos = 1;
		function OAS_RICH(pos)
		{
			spShowOASPos(pos);
		}
	} else {
		if (navigator.userAgent.indexOf('Mozilla/3') == -1) {
			document.write('<scr' + 'ipt type="text/javascript" language="JavaScript1.1" src="' + OAS_mjxscripturl + '"><\/scr' + 'ipt' + '>');
		}
	}
	
	function spGetHashParams()
	{
		var loc=(document.location+"");
		var pos=loc.indexOf("#");
		if (pos == -1)
			return [];
		var hashQs=loc.substring(pos+1, loc.length);
		return spSplitParams(hashQs);
	}
	function spShowOASPos(pos)
	{
		return false;
	}
	function spSplitParams(params)
	{
		var result=[];
		var pairs=params.split("&");
		for (var i=0; i < pairs.length; i++)
		{
			var kv=pairs[i].split("=");
			if (kv.length == 2)
				result[kv[0]]=kv[1];
		}
		return result;
	}
}

function sitestat(ns_l){
	ns_l+='&amp;ns__t='+(new Date()).getTime();ns_pixelUrl=ns_l;
	ns_0=document.referrer;
	ns_0=(ns_0.lastIndexOf('/')==ns_0.length-1)?ns_0.substring(ns_0.lastIndexOf('/'),0):ns_0;
	if(ns_0.length>0)ns_l+='&amp;ns_referrer='+escape(ns_0);
	if(document.images){
		ns_1=new Image();ns_1.src=ns_l;
	} else document.write('<img src="'+ns_l+'" width="1" height="1" alt="">');
}

function loadpage(){
	searchfeld();
	searchfeld2();
	searchfeld3();
	showNaviTitle();
}

/**
 * get the Ext.HistoryManager sigelton
 */ 
function getHistoryManager() {
	
	if (!this.hm) {
		var hm = this.hm = new Ext.ux.HistoryManager({
			'delimiter': '!', // '#!' is somehow the google standard
			'blank_page': 'js/blank.html' // the path to the blank xhtml page, used for IE
		});
		Ext.onReady(function () {
			hm.start();		
		});
	}
	return this.hm;
}

/**
* Unserializes a PHP serialized data type. Currently handles:
*  o Strings
*  o Integers
*  o Doubles
*  o Arrays
*  o Booleans
*  o NULL
*  o Objects
* 
* alert()s will be thrown if the function is passed something it
* can't handle or incorrect data.
*
* @param  string input The serialized PHP data
* @return mixed        The resulting datatype
*/
function PHP_Unserialize(input)
{
	var result = PHP_Unserialize_(input);
	return result[0];
}


/**
* Function which performs the actual unserializing
*
* @param string input Input to parse
*/
function PHP_Unserialize_(input)
{
	var length = 0;
	
	switch (input.charAt(0)) {
		/**
		* Array
		*/
		case 'a':
			length = PHP_Unserialize_GetLength(input);
			input  = input.substr(String(length).length + 4);

			var arr   = new Array();
			var key   = null;
			var value = null;

			for (var i=0; i<length; ++i) {
				key   = PHP_Unserialize_(input);
				input = key[1];

				value = PHP_Unserialize_(input);
				input = value[1];

				arr[key[0]] = value[0];
			}

			input = input.substr(1);
			return [arr, input];
			break;
		
		/**
		* Objects
		*/
		case 'O':
			length = PHP_Unserialize_GetLength(input);
			var classname = String(input.substr(String(length).length + 4, length));
			
			input  = input.substr(String(length).length + 6 + length);
			var numProperties = Number(input.substring(0, input.indexOf(':')))
			input = input.substr(String(numProperties).length + 2);

			var obj      = new Object();
			var property = null;
			var value    = null;

			for (var i=0; i<numProperties; ++i) {
				key   = PHP_Unserialize_(input);
				input = key[1];
				
				// Handle private/protected
				key[0] = key[0].replace(new RegExp('^\x00' + classname + '\x00'), '');
				key[0] = key[0].replace(new RegExp('^\x00\\*\x00'), '');

				value = PHP_Unserialize_(input);
				input = value[1];

				obj[key[0]] = value[0];
			}

			input = input.substr(1);
			return [obj, input];
			break;

		/**
		* Strings
		*/
		case 's':
			length = PHP_Unserialize_GetLength(input);
			return [String(input.substr(String(length).length + 4, length)), input.substr(String(length).length + 6 + length)];
			break;

		/**
		* Integers and doubles
		*/
		case 'i':
		case 'd':
			var num = Number(input.substring(2, input.indexOf(';')));
			return [num, input.substr(String(num).length + 3)];
			break;
		
		/**
		* Booleans
		*/
		case 'b':
			var bool = (input.substr(2, 1) == 1);
			return [bool, input.substr(4)];
			break;
		
		/**
		* Null
		*/
		case 'N':
			return [null, input.substr(2)];
			break;

		/**
		* Unsupported
		*/
		case 'o':
		case 'r':
		case 'C':
		case 'R':
		case 'U':
			alert('Error: Unsupported PHP data type found!');

		/**
		* Error
		*/
		default:
			return [null, null];
			break;
	}
}


/**
* Returns length of strings/arrays etc
*
* @param string input Input to parse
*/
function PHP_Unserialize_GetLength(input)
{
	input = input.substring(2);
	var length = Number(input.substr(0, input.indexOf(':')));
	return length;
}

/*
---
description: A Class that provides a cross-browser history-management functionaility, using the browser hash to store the application's state
This is a port form the mootools' version of HashListener to work with native Ext-JS

license: MIT-style

authors:
- Robert Schulze
- Arieh Glazer
- Dave De Vos
- Digitarald

requires:
- ext-core 3.1.0

provides: [Ext.ux.HashListener]

...
*/
Ext.ns("Ext.ux");
Ext.ux.HashListener=Ext.extend(Ext.util.Observable,{options:{blank_page:"blank.html",iframe_body_id:null,start:false},iframe:null,currentHash:"",firstLoad:true,handle:false,useIframe:(Ext.isIE&&(typeof(document.documentMode)=="undefined"||document.documentMode<8)),ignoreLocationChange:false,constructor:function(a){Ext.ux.HashListener.superclass.constructor.call(this,a);
Ext.apply(this.options,a);if(!this.options.iframe_body_id){this.options.iframe_body_id="state"+(new Date()).getTime()}var b=this;
if(Ext.isOpera&&window.history.navigationMode){window.history.navigationMode="compatible"}if(("onhashchange" in window)&&(typeof(document.documentMode)=="undefined"||document.documentMode>7)){Ext.EventManager.on(window,"hashchange",function(){var c=b.getHash();
if(c==b.currentHash){return}b.fireEvent("hashChanged",c)})}else{if(this.useIframe){this.initializeHistoryIframe()}}Ext.EventManager.on(window,"unload",function(){b.firstLoad=null
});if(this.options.start){this.start()}},initializeHistoryIframe:function(){var b=this.getHash();var a;this.iframe=Ext.DomHelper.append(document.body,{tag:"iframe",src:this.options.blank_page,scrolling:"0",frameborder:"0",width:"0",height:"0",styles:{position:"absolute",top:0,left:0,border:"0px none",width:"0px",height:"0px",visibility:"hidden",display:"none"}});
this.setIframeHash(b);return},checkHash:function(){var c=this.getHash();var a;var b;if(this.ignoreLocationChange){this.ignoreLocationChange=false;
return}if(this.useIframe){b=(this.iframe.contentDocument)?this.iframe.contentDocumnet:this.iframe.contentWindow.document;
if(b.body.id!=this.options.iframe_body_id){a="";this.iframe.src=this.options.blank_page;this.setIframeHash("")}else{a=b.body.innerHTML
}if(a!=c){this.setHash(a);c=a}}if(this.currentLocation==c){return}this.currentLocation=c;this.fireEvent("hashChanged",c)},setHash:function(a){window.location.hash=this.currentLocation=a;
if(("onhashchange" in window)&&(typeof(document.documentMode)=="undefined"||document.documentMode>7)){return}this.fireEvent("hashChanged",a)
},getHash:function(){var a;if(Ext.isGecko){a=/#(.*)$/.exec(window.location.href);return a&&a[1]?a[1]:""}else{if(Ext.isWebKit){return decodeURI(window.location.hash.substr(1))
}else{return window.location.hash.substr(1)}}},setIframeHash:function(a){var b=(this.iframe.contentDocument)?this.iframe.contentDocumnet:this.iframe.contentWindow.document;
b.open();b.write('<html><body id="'+this.options.iframe_body_id+'">'+a+"</body></html>");b.close();return},updateHash:function(a){if(Ext.get(a)){throw ("Exception: History locations can not have the same value as _any_ IDs that might be in the document, due to a bug in IE; please ask the developer to choose a history location that does not match any HTML IDs in this document. The following ID is already taken and cannot be a location: `"+a+"`")
}this.ignoreLocationChange=true;if(this.useIframe){this.setIframeHash(a)}else{this.setHash(a)}},start:function(){this.handle=setInterval(this.checkHash.createDelegate(this),100);
this.fireEvent.defer(110,this,["started"])},stop:function(){clearInterval(this.handle)}});
/*
---
description: A Class that provides a cross-browser history-management functionaility, using the browser hash to store the application's state
This is a port form the mootools' version of HistoryManager to work with native Ext-JS

license: MIT-style

authors:
- Robert Schulze
- Arieh Glazer

requires:
- Ext.ux.HashListener

provides: [Ext.ux.HistoryManager, Ext.ux.HistoryManager.SimpleMap]

...
*/
Ext.ux.HistoryManager=(function(){var b=function(d,c){this.values={};this.numEntries=0;this.options={prefix:"$___"};if(d&&"object"==typeof d){for(k in d){if(d.hasOwnProperty(k)){this.put(k,d[k])
}}}if(c){Ext.apply(this.options,c)}this.prefixLength=this.options.prefix.length;this.prefixKey=function(e){return this.options.prefix+e
};this.unPrefixKey=function(e){if(0===e.indexOf(this.options.prefix)){return e.substr(this.prefixLength)}return false};this.put=function(f,g){var e=this.get(f);
this.values[this.prefixKey(f)]=g;++this.numEntries;return e};this.get=function(e){return this.values[this.prefixKey(e)]};
this.remove=function(g){var f=this.prefixKey(g);var e;if(this.values.hasOwnProperty(f)){e=this.values[f];delete this.values[f];
--this.numEntries}return e};this.clear=function(){this.values={};this.numEntries=0};this.containsKey=function(e){return this.values.hasOwnProperty(this.prefixKey(e))
};this.isEmpty=function(){return(this.numEntries===0)};this.each=function(e){for(k in this.values){if(this.values.hasOwnProperty(k)){e(this.unPrefixKey(k),this.values[k])
}}};this.clone=function(){var e=new b();for(k in this.values){if(this.values.hasOwnProperty(k)){e.put(this.unPrefixKey(k),this.values[k])
}}return e}};var a=Ext.extend(Ext.ux.HashListener,{options:{delimiter:"",serializeHash:null,deserializeHash:null},state:new b(),stateCache:new b(),constructor:function(c){Ext.ux.HistoryManager.superclass.constructor.call(this,c);
Ext.apply(this.options,c);if(null!==this.options.deserializeHash&&null!==this.options.serializeHash){this.serializeHash=this.options.serializeHash;
this.deserializeHash=this.options.deserializeHash}this.addListener("hashChanged",this.updateState,this)},serializeHash:function(c){var d={};
c.each(function(e,f){d[e]=f});return Ext.urlEncode(d)},deserializeHash:function(d){var c=new b();var e=Ext.urlDecode(d);for(k in e){if(e.hasOwnProperty(k)){c.put(k,e[k])
}}return c},updateState:function(d){var c=this;if(this.options.delimiter){d=d.substr(d.indexOf(this.options.delimiter)+this.options.delimiter.length)
}d=this.deserializeHash(d);this.state.each(function(f,g){var h,j,e,i;if(false===d.containsKey(f)){h=c.state.get(f);c.fireEvent(f+"-removed",h);
c.state.remove(f);c.stateCache.remove(f);d.remove(f);return}i=d.get(f);e=typeof i;j=(e=="string"||e=="number"||e=="boolean")?i:Ext.encode(i);
if(j!=c.stateCache.get(f)){h=d.get(f);c.state.put(f,h);c.stateCache.put(f,j);c.fireEvent(f+"-updated",h);c.fireEvent(f+"-changed",h)
}d.remove(f)});d.each(function(e,f){c.state.put(e,f);v_type=typeof f;comperable=(v_type=="string"||v_type=="number"||v_type=="boolean")?f:Ext.encode(f);
c.stateCache.put(e,comperable);c.fireEvent(e+"-added",f);c.fireEvent(e+"-changed",f)})},set:function(c,d){var e=this.state.clone();
e.put(c,d);this.updateHash(this.options.delimiter+this.serializeHash(e));return this},hasKey:function(c){return this.state.containsKey(c)
},remove:function(c){var d=this.state.clone();d.remove(c);this.updateHash(this.options.delimiter+this.serializeHash(d));return this
}});a.SimpleMap=b;return a})();




window.onload = loadpage;

