/* For the Imagegallery */
var iPicId = 0;
var iPageId = 1;

var oGSAsuggestionTimer;

var IS_HTTPS = false;
var SERVER_URL = '';
var SECURE_SERVER_URL = '';

if (document.location.href.indexOf("https://") > -1)
{
	IS_HTTPS = true;
	SERVER_URL = SECURE_SERVER_URL;
}

var CURRENT_LANGUAGE = '';
if('3' != '3') {
	CURRENT_LANGUAGE = 'de';
}
var URL_MAGIC = '/';
if (URL_MAGIC == "/") {
	URL_MAGIC = "";
}

var DEFAULTPAGE = 'post-startseite';

var oDefaultValues = new Object();

var Browsers = {
  Browser: {
    IE:     !!(window.attachEvent &&
      navigator.userAgent.indexOf('Opera') === -1),
    Opera:  navigator.userAgent.indexOf('Opera') > -1,
    WebKit: navigator.userAgent.indexOf('AppleWebKit/') > -1,
    Gecko:  navigator.userAgent.indexOf('Gecko') > -1 && 
      navigator.userAgent.indexOf('KHTML') === -1,
    MobileSafari: !!navigator.userAgent.match(/Apple.*Mobile.*Safari/)
  },

  BrowserFeatures: {
    XPath: !!document.evaluate,
    SelectorsAPI: !!document.querySelector,
    ElementExtensions: !!window.HTMLElement,
    SpecificElementExtensions: 
      document.createElement('div')['__proto__'] &&
      document.createElement('div')['__proto__'] !== 
        document.createElement('form')['__proto__']
  }
}

Browsers.Browser.IE6 = Browsers.Browser.IE && parseInt(navigator.userAgent.substring(navigator.userAgent.indexOf("MSIE")+5)) == 6;
Browsers.Browser.IE7 = Browsers.Browser.IE && parseInt(navigator.userAgent.substring(navigator.userAgent.indexOf("MSIE")+5)) == 7;
Browsers.Browser.IE8 = Browsers.Browser.IE && !Browsers.Browser.IE6 && !Browsers.Browser.IE7;

var Utf8 = {
 
	encode : function (string) {
		string = string.replace(/\r\n/g,"\n");
		var utftext = "";
 
		for (var n = 0; n < string.length; n++) {
 
			var c = string.charCodeAt(n);
 
			if (c < 128) {
				utftext += String.fromCharCode(c);
			}
			else if((c > 127) && (c < 2048)) {
				utftext += String.fromCharCode((c >> 6) | 192);
				utftext += String.fromCharCode((c & 63) | 128);
			}
			else {
				utftext += String.fromCharCode((c >> 12) | 224);
				utftext += String.fromCharCode(((c >> 6) & 63) | 128);
				utftext += String.fromCharCode((c & 63) | 128);
			}
 
		}
 
		return utftext;
	},
 
	decode : function (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;
	}
 
}

var Rules = { 
  	rules: "1.0",
	
	'a.popup:click': function(element, event) {
		var oProperties = getLinkProperties(element);		
		var sHref = oProperties.href;
		var sClasses = oProperties.cssClasses;
		var iHeight = 500;
		var iWidth = 680;
		var asParam;

		if (sClasses) {
			var oRegExp = RegExp(/dim@[0-9]*@[0-9]*@(?:yes|no)@(?:yes|no)@(?:yes|no)/i);
			var sParam = sClasses.match(oRegExp);
		
			if(sParam){
				asParam = sParam.toString().split("@");
				myLightWindow.activateWindow({
					href: sHref, 
					title: '',
					width: asParam[1],
					height: asParam[2],
					iframeEmbed : true
				});
				//window.open(sHref, '_blank', 'toolbar=no, location=yes, status=' + asParam[4] + ', menubar=no, personalbar=no, scrollbars=' + asParam[5] + ', width=' + asParam[1] + ', height=' + asParam[2] + ', resizable=yes, screenx=50, left=50, screenY=50, top=50');
				
			}
			else{
				//window.open(sHref, "_blank", 'height=' + iHeight + ',width=' + iWidth +', location=yes, toolbar=no, status=no, resizable=yes, scrollbars=yes');
			}
		}
		
		Event.stop(event);
	},
	
	'a.windowpopup:click': function(element, event) {
		var oProperties = getLinkProperties(element);		
		var sHref = oProperties.href;
		var sClasses = oProperties.cssClasses;
		var iHeight = 500;
		var iWidth = 680;
		var sParam;
		var asParam;
		var oRegExp;
		
		if(!sClasses){
			sClasses = element ? element.parentNode.className : "";
		}
				
		if (sClasses) {
			oRegExp = RegExp(/dim@[0-9]*@[0-9]*@(?:yes|no)@(?:yes|no)@(?:yes|no)/i);
			var sParam = sClasses.match(oRegExp);
			
			if (sParam)
			{
				asParam = sParam.toString().split("@");
				//alert("toolbar " + asParam[3]);
				//alert("statusbar " + asParam[4]);
				//alert("scrollbar " + asParam[5]);
				//alert("width " + asParam[1]);
				//alert("height " + asParam[2]);
				
				window.open(sHref, '_blank', 'toolbar=no, location=yes, status=' + asParam[4] + ', menubar=no, personalbar=no, scrollbars=' + asParam[5] + ', width=' + asParam[1] + ', height=' + asParam[2] + ', resizable=yes, screenx=50, left=50, screenY=50, top=50');			
			}
			else{
				window.open(sHref, "_blank", 'height=' + iHeight + ',width=' + iWidth +', location=yes, toolbar=no, status=no, resizable=yes, scrollbars=yes');	
			}
		}
		Event.stop(event);
	},
	
	
	'a.printpopup:click': function(element, event) {
		var sUrl = getHref(element);
		printPage(sUrl);
		Event.stop(event);
	},
	
	'body.printWindow:loaded':function(element, event) {
		window.print();
		Event.stop(event);
	},
	
	'a.back:click': function(element, event) {
		history.back();		
		Event.stop(event);
	},

	'a.delete:click': function(element, event) {
		if (!confirmDelete()) {
			Event.stop(event);
		}
	},
		
	'.hideonloaded:loaded' : function(element, event) {
		element.hide();
	},
	
	'a.showhidehreftarget:click' : function(element, event) {
		var oMyElement = element;

		if(element.tagName.toLowerCase() == 'img' && element.parentNode.tagName.toLowerCase() == 'a'){
			oMyElement = element.parentNode;
		}

		var href = oMyElement.getAttribute('href');
		var iContentId = href.match(/#(\w.+)/)[1];
		var oContentElement = $(iContentId);
		if(oContentElement.style.display == 'none') {
			oContentElement.style.display = 'block';
		} else {
			oContentElement.style.display = 'none';
		}
		Event.stop(event);
	},
	
	'input.replace-value:focus' : function(element, event) {

		if (!oDefaultValues[element.id]) {
		
			oDefaultValues[element.id] = element.value;
		}
		if (element.value == oDefaultValues[element.id]) {
		
			element.value = "";
		}
	},

	'input.replace-value:blur' : function(element, event) {

		if (element.value == "") {
		
			element.value = oDefaultValues[element.id];
		}
	},	

	'a.saveWebcodeAdmin:click' : function(element, event) {
		var iId = getLinkProperties(element).rel;
		var sWebcode = $('webcode-' + iId).value;
		var sPage = $('page-' + iId).value;
		var sCluster = $('cluster-' + iId).value;
		
		if (sWebcode != "" && /^[0-9]+(,[0-9]+)*$/i.test(sWebcode) == false) {
			alert(asciiToText("Bitte geben Sie ein oder mehrere Zahlen (Kommasepariert) ein."));
		}
		else {
			
			$('save-' + iId).src = 'ajax-loader.gif';
			
			var oAjax = new Ajax.Request(
				getAbsoluteUrl('teaser-ajax-manager'),
				{
					method:		'get', 
					parameters:	"method=saveWebcode&teaser=none&webcode=" + sWebcode + "&page=" + sPage + "&cluster=" + sCluster,
					onSuccess:	function(transport, json) {
						var sResponse = transport.responseText;
						
						if (sResponse != "" && sResponse != "ok") {
							alert(asciiToText("Folgende Webcodes sind bereits vorhanden:\n") + sResponse);
						}
						else if (sResponse == "ok") {
							$('webcode-' + iId).writeAttribute("value", sWebcode);
						}
						else if (sResponse == "nan") {
							alert(asciiToText("Bitte geben Sie ein oder mehrere Zahlen (Kommasepariert) ein."));
						}
						else {
							alert(asciiToText("Es ist ein Fehler aufgetreten. Bitte versuchen Sie es sp&#228;ter erneut."));
						}
						
						webcodeChanged(iId);
						
					},
					onFailure:	function(transport, json) {
						alert(asciiToText("Es ist ein Fehler aufgetreten. Bitte versuchen Sie es sp&#228;ter erneut."));
						$('save-' + iId).src = 'layout-icon-save.gif';
					}
				}
			);
		}
				
		Event.stop(event);
	},
	
	'a.scheduleShowDetails:click' : function(element, event) {
		new Effect.SlideDown($('schedule_detail'), {duration:0.5, scaleContent: false});
		$('scheduleDetailsLink').removeClassName('scheduleShowDetails');
		$('scheduleDetailsLink').addClassName('scheduleHideDetails');
		$('scheduleDetailsLink').update(asciiToText("Details ausblenden"));
		EventSelectors.assign(Rules);
		
		Event.stop(event);
	},
	
	'a.scheduleHideDetails:click' : function(element, event) {
		new Effect.SlideUp($('schedule_detail'), {duration:0.5, scaleContent: false});
		$('scheduleDetailsLink').removeClassName('scheduleHideDetails');
		$('scheduleDetailsLink').addClassName('scheduleShowDetails');
		$('scheduleDetailsLink').update(asciiToText("Details einblenden"));
		EventSelectors.assign(Rules);
		
		Event.stop(event);
	},
		
	'a.linksboxTeaserTitle:click' : function(element, event) {
		var titleDiv = $('teaserLinksBoxTitle_' + element.rel);
		var contentDiv = $('teaserLinksBoxContent_' + element.rel);
				
		if (titleDiv.hasClassName('linksBoxTitleOpened')) {
			titleDiv.removeClassName('linksBoxTitleOpened');
			titleDiv.addClassName('linksBoxTitleClosed');			
			
			new Effect.SlideUp(contentDiv, {duration:0.5});
		}
		else {
			titleDiv.removeClassName('linksBoxTitleClosed');
			titleDiv.addClassName('linksBoxTitleOpened');
									
			new Effect.SlideDown(contentDiv, {duration:0.5});
		}
	
		Event.stop(event);
	},
	
	'a.choose_continent:click' : function(element, event) {
		var oTitle = $(element.id);
		var oList = $("ccdiv" + element.id.substring(3, element.id.length));
					
		if (oTitle.hasClassName('ccListOpened')) {
			oTitle.removeClassName('ccListOpened');
			oTitle.addClassName('ccListClosed');			
			
			new Effect.SlideUp(oList, {duration:0.5});
		}
		else {
			var aOpenLists = $$('a.ccListOpened');
			var oOpenList, oContentDiv;
			
			if (aOpenLists) {
				for (var iCounter=0; iCounter<aOpenLists.length; ++iCounter) {
					oOpenList = aOpenLists[iCounter];
					oOpenList.removeClassName('ccListOpened');
					oOpenList.addClassName('ccListClosed');
					
					oContentDiv = $("ccdiv" + oOpenList.id.substring(3, oOpenList.id.length));
					new Effect.SlideUp(oContentDiv, {duration:0.5});
				}
			}
			
			oTitle.removeClassName('ccListClosed');
			oTitle.addClassName('ccListOpened');
									
			new Effect.SlideDown(oList, {duration:0.5});
		}
	
		Event.stop(event);
	},
	
	'a.galleryPaging:click' : function(element, event) {       
		var tmp = element.rel.split('_');
		var iColsPerPage = tmp[4];
		
		// Set the new page var
		if (tmp[3] == "next") {
			iPageId++;
		}
		else if (tmp[3] == "previous") {
			iPageId--;
		}
		else {
			iPageId = parseInt(tmp[3]);
		}
		
		// Show the loading picture, show every div and set the borders correctly
		
		var aPictures = $$('div.imagegallery_thumbnail');
		
		for (var e=1; e<=aPictures.length; e++) {
			$('pic_' + e).addClassName('thumbnail_loading');
			$('pic_' + e).src = 'imagegallery_load_130_86.gif';
			
			$('div_' + e).removeClassName('border_right');
			$('div_' + e).removeClassName('border_bottom');
			if (e % iColsPerPage == 0 || e == aPictures.length) {
				$('div_' + e).addClassName('border_right');
			}
			
			if ((aPictures.length - iColsPerPage) < e) {
				$('div_' + e).addClassName('border_bottom');
			}
			
			$('div_' + e).show();
		}
		
		var oAjax = new Ajax.Request(
			getAbsoluteUrl('imagegalleryajaxcontroller'),
			{
				method:		'get', 
				parameters:	"methodName=getPictures&gal=" + tmp[1] + "&page=" + iPageId + "&instanceLang=" + CURRENT_LANGUAGE,
				onSuccess:	function(transport, json) {
					if (transport.responseText != "error" && transport.responseText.length > 0) {
						var json  = eval("(" + transport.responseText + ")");
						
						// Update the paging string				
						$('imagegallery_paging').update(json.paging);
									
						var oPic;
						var qDec;
						for (var q=1; q<=json.length; q++) {
							// Set the new picture
							qDec = q-1;
							oPic = $('pic_' + q);
							oPic.src = eval("json.p" + qDec + ".src");
							oPic.title = eval("json.p" + qDec + ".desc");
							
							// Set the borders of the div correctly
							$('div_' + q).removeClassName('border_right');
							$('div_' + q).removeClassName('border_bottom');
							
							if (q % iColsPerPage == 0 || q == json.length) {
								$('div_' + q).addClassName('border_right');
							}
							
							if ((json.length - iColsPerPage) < q) {
								$('div_' + q).addClassName('border_bottom');
							}
							
							// Handle the dimension of the new picture
							var sDim = eval("json.p" + qDec + ".dim");
							$('pic_' + q).removeClassName('thumbnail_loading');
							$('pic_' + q).removeClassName('image_height');
							$('pic_' + q).removeClassName('image_width');
							$('pic_' + q).addClassName(sDim);
						}
						
						// Hide divs if we do not have to fill the whole page
						for (q; q<=aPictures.length; q++) {
							$('div_' + q).hide();
						}
					}
					else {
						imgGalleryShowError();
					}
				},
				onFailure:	function(transport, json) {
					imgGalleryShowError();
				}
			}
		);
		
		Event.stop(event);
	},
	
	'a.galleryOpenPicture:click' : function(element, event) { 
		var tmp = getLinkProperties(element); 		    	
		tmp = tmp.rel.split('_');		
		iPicId = ((iPageId-1) * parseInt(tmp[1])) + parseInt(tmp[2])-1;	
		imgGalleryLoadNewPicture(tmp[0], iPicId);					
		Event.stop(event);
	},
	
	'a.galleryClosePicture:click' : function(element, event) {  
		$('imagegallery_detailpage').setStyle({visibility: 'visible', height: 'auto', position: 'static'});     
		$('imagegalleryPicture').hide();
		Event.stop(event);
	},
	
	'a.imagegallery_previousPicture:click' : function(element, event) {       
		iPicId--;
		imgGalleryLoadNewPicture(element.parentNode.rel, iPicId);
		Event.stop(event);
	},
	
	'a.imagegallery_nextPicture:click' : function(element, event) {       
		iPicId++;
		imgGalleryLoadNewPicture(element.parentNode.rel, iPicId);
		Event.stop(event);
	},
	
	'a.remove_seminar:click' : function(element, event) {
		if (confirm("Wollen Sie dieses Seminar wirklich entfernen?"))
		{
			// check if event element is the link element itself or its inner image
			var bIsInnerClicked = element.nodeName.toLowerCase() != 'a';
			var sLinkUrl = bIsInnerClicked
				? element.parentNode.getAttribute('href')
				: element.getAttribute('href');
			var sToRemove = sLinkUrl.replace(/^[^#]*#/, '');;
			var sOldValue = ',' + $('seminars').value + ',';
			var sNewValue = sOldValue.replace(
				new RegExp("," + sToRemove + ','), ','
			);
			
			//alert(sToRemove + "\n" + $('seminars').value + "\n" + sNewValue);
			
			// remove trailing ,
			sNewValue = sNewValue.replace(/(^,)|(,$)/g, '');
			
			// set new value
			$('seminars').value = sNewValue;
			
			var oTrNode = element.parentNode.parentNode;
			if (bIsInnerClicked){
				oTrNode = oTrNode.parentNode;
			}
			var oTBodyNode = oTrNode.parentNode;
			
			// remove row
			oTrNode.remove();
			
			// no rows left
			if (oTBodyNode.immediateDescendants().length == 0){
				$('no-seminar-advice').show();
				// disable the remove buttons th column
				$$('#selected-seminars-list th.remove-seminar-enabled').each(function(el){
			 		el.removeClassName('remove-seminar-enabled');
			 		el.addClassName('remove-seminar-disabled');
				});
			}
		}
		
		Event.stop(event);
	},
	
	'select#clusterchoice:change' : function(element, event) {
		var asUrls = ["", "", "http://www.post.ch", "http://www.swisspost.com/belgium/fr", "http://www.swisspost.com/denmark/en", "http://www.swisspost.com/germany", "http://www.swisspost.com/finland", "http://www.swisspost.com/france/en", "http://www.swisspost.com/unitedkingdom", "http://www.swisspost.com/hongkong", "http://www.swisspost.com/india", "http://www.swisspost.com/italy", "http://www.swisspost.com/netherlands", "http://www.swisspost.com/austria", "http://www.swisspost.com/sweden", "http://www.swisspost.com/singapore", "http://www.swisspost.com/spain/en", "http://www.swisspost.us"];
		var sUrl = asUrls[parseInt(element.value, 10)]; 
		if (sUrl) {
			window.open(sUrl, "_blank");
		}
	},
	
	'li.ckb_pickpost:click': function(element, event) {
		var oSmsNumberMessage = $('advice-required-smsnumber');
		var oEmailMessage = $('advice-required-email');
		var oCheckBoxMessage = $('advice-validate-one-required-mail');
		var oSmsNumber = $('smsnumber');
		var oEmail = $('email');
		var oSms = $('sms');
		var oMail = $('mail');
		if(element == oSms) {
			if(oSms.checked) {
				if (oCheckBoxMessage && oCheckBoxMessage.visible()) {
					new Effect.Fade(oCheckBoxMessage, {Duration : 1});
				}
				if (!oSmsNumber.hasClassName("required")) {
					oSmsNumber.addClassName("required");
					Validation.validate(oSmsNumber);
					if(oSmsNumber.hasClassName("validation-failed") && oSmsNumberMessage && !oSmsNumberMessage.visible()) {
					 new Effect.Appear(oSmsNumberMessage, { Duration : 1 });
					}
				} 
				if (!oMail.checked && oMail.hasClassName("validate-one-required")) {
					oMail.removeClassName("validate-one-required");
				}
			} else {
				if (oSmsNumber.hasClassName("required")) {
					oSmsNumber.removeClassName("required");
				}
				if (oSmsNumberMessage) {
					new Effect.Fade(oSmsNumberMessage, {Duration : 1});
				}
				
				if (!oMail.checked) {
				
					if (!oMail.hasClassName("validate-one-required")) {
						oMail.addClassName("validate-one-required");
					}
					if (oCheckBoxMessage && !oCheckBoxMessage.visible()) {
						new Effect.Appear(oCheckBoxMessage, {Duration : 1});
					}
					Validation.validate(oMail);
				}
			}
		} else if (element == oMail) {
			if(oMail.checked) {
				if (oCheckBoxMessage && oCheckBoxMessage.visible()) {
					new Effect.Fade(oCheckBoxMessage, {Duration : 1});
				}
				if (!oEmail.hasClassName("required")) {
					oEmail.addClassName("required");
					Validation.validate(oEmail);
					if(oEmail.hasClassName("validation-failed") && oEmailMessage && !oEmailMessage.visible()) {
					 new Effect.Appear(oEmailMessage, { Duration : 1 });
					}
				} 	
				if (oMail.hasClassName("validate-one-required")) {
					oMail.removeClassName("validate-one-required");
				}
			} else {
				if (oEmail.hasClassName("required")) {
					oEmail.removeClassName("required");
				}
				if (oEmailMessage && oEmailMessage.visible()) {
					new Effect.Fade(oEmailMessage, {Duration : 1});
				}
				if (!oSms.checked) {
					if (!oMail.hasClassName("validate-one-required")) {
						oMail.addClassName("validate-one-required");
					}
					Validation.validate(oMail);
					if (oCheckBoxMessage && !oCheckBoxMessage.visible()) {
						new Effect.Appear(oCheckBoxMessage, {Duration : 1});
					}
				}
			}
		}
	},
	
	'a.sitemapTitle span.arrowlink:click' : function(element, event) {
		var contentDiv = element.next('div');
		var titleElement = element;
		if (!contentDiv) {
			contentDiv = element.up().next('div');
			titleElement = element.up();
		}
		if (contentDiv.hasClassName('sitemapOpened')) {
			contentDiv.removeClassName('sitemapOpened');
			titleElement.removeClassName('expanded');
			new Effect.SlideUp(contentDiv, {duration:0.5});
		}
		else {
			titleElement.addClassName('expanded');
			contentDiv.removeClassName('hide');
			contentDiv.addClassName('sitemapOpened'); 
			new Effect.SlideDown(contentDiv, {duration:0.5});
		}
		Event.stop(event);
	},
	
	'select.textOtherCountry:change': function(element, event) {
		var oForm = document.getElementById("spi_transportauftrag");
		var var_testo_finale = "Bitte legen Sie das Aufgabeverzeichnis zuoberst gut sichtbar zu Ihren Sendungen.<br>Vielen Dank und freundliche Gr&#252;sse.";		
		var_testo_finale = asciiToText(var_testo_finale.replace(/<br>/g, "\n"));
		oForm.otherBemerkungen.value = var_testo_finale;
		Event.stop(event);
	},
	
	'a.newstab:click' : function(element, event) {       
		var oCurrent = $$('ul.tab-navigation li.current');
		if (oCurrent.length > 0) {
			oCurrent[0].removeClassName('current');
		}
		
		var oParent = element.parentNode;
		if (oParent) {
			$(oParent.id).addClassName('current');
		}
		
		$('news-loading').removeClassName('hidden');
		$('news-entries').addClassName('hidden');
		
		var tmp = element.rel.split('$$');
		var iYear = tmp[0];
		var iConfig = tmp[1];
		var iClusterConfig = tmp[2];
		var sDebug = ($('news-entries').hasClassName('edit'))? '&debug=210': '';
		var sChecksum = tmp[3];
		var sUrl = ($(element.parentNode.parentNode.id).hasClassName('podcasts'))? 'podcasts-ajax-changeyear' : 'news-ajax-changeyear';

		var oAjax = new Ajax.Request(
			getAbsoluteUrl(sUrl),
			{
				method:		'get', 
				parameters:	"year=" + iYear + "&config=" + iConfig + "&cluster=" + iClusterConfig + "&checksum=" + sChecksum + sDebug,
				onSuccess:	function(transport, json) {
					var sResponse = transport.responseText;
					if (sResponse != "error") {
						$('news-archive').update(sResponse);
					}
					else {
						$('news-loading').addClassName('hidden');
						$('news-entries').removeClassName('hidden');
						alert(asciiToText("Es ist ein Fehler aufgetreten. Bitte versuchen Sie es sp&#228;ter erneut."));
					}
				},
				onFailure:	function(transport, json) {
					$('news-loading').addClassName('hidden');
					$('news-entries').removeClassName('hidden');
					alert(asciiToText("Es ist ein Fehler aufgetreten. Bitte versuchen Sie es sp&#228;ter erneut."));
				}
			}
		);	
		
		Event.stop(event);
	},
	
	'a#newstab-next:click' : function(element, event) {
		var aNext = $('newstab-next').rel.split('$$');
		var aPrevious = $('newstab-previous').rel.split('$$');
		
		var iCurrentYear = parseInt(aNext[0]);
		var iLastYear = parseInt(aNext[1]);
				
		if (iCurrentYear != iLastYear) {
			aNext[0] = iCurrentYear - 1;
			aPrevious[0] = iCurrentYear - 1;
			$('newstab-next').rel = aNext.join('$$');
			$('newstab-previous').rel = aPrevious.join('$$');
			
			new Effect.Move($('news-tab-navigation'), {x:-($('newstab-2009').getWidth()),y:0,duration:0.7, queue: 'end'});
		}
		
		Event.stop(event);
	},
	
	'a#newstab-previous:click' : function(element, event) {
		var aNext = $('newstab-next').rel.split('$$');
		var aPrevious = $('newstab-previous').rel.split('$$');
		
		var iCurrentYear = parseInt(aNext[0]);
		var iFirstYear = parseInt(aPrevious[1]);
				
		if (iCurrentYear != iFirstYear) {
			aNext[0] = iCurrentYear + 1;
			aPrevious[0] = iCurrentYear + 1;
			$('newstab-next').rel = aNext.join('$$');
			$('newstab-previous').rel = aPrevious.join('$$');
		
			new Effect.Move($('news-tab-navigation'), {x:($('newstab-2009').getWidth()),y:0,duration:0.7, queue: 'end'});
		}
		
		Event.stop(event);
	},
	
	'textarea#absenderadresse_gls_bestellung:focus' : function(element, event) {
		if (element.value != "") {
			element.value = "";
		}
	},
	
	'input#formattedParcelCodes:focus' : function(element, event) {       
		if(element.value == asciiToText("Sendungsnummer")) {
			element.value = "";
		}
	},
	
	'input#formattedParcelCodes:blur' : function(element, event) {       
		if(element.value == "") {
			element.value = asciiToText("Sendungsnummer");
		}
	},
	
	'input#formattedParcelCodes2:focus' : function(element, event) {       
		if(element.value == asciiToText("Sendungsnummer")) {
			element.value = "";
		}
	},
	
	'input#formattedParcelCodes2:blur' : function(element, event) {       
		if(element.value == "") {
			element.value = asciiToText("Sendungsnummer");
		}
	},
	
	'form#form_tt_pk:submit' : function(element, event) {       
		if (Validation.validate($('formattedParcelCodes')) && $('formattedParcelCodes').value != '' && $('formattedParcelCodes').value != asciiToText("Sendungsnummer")) {
			var sUrl = "http://www.post.ch/EasyTrack/submitParcelData.do?p_language=de";

			var sParam = '&VTI-GROUP=' + $('VTI-GROUP').value;
			sParam += '&directSearch=' + $('directSearch').value;
			sParam += '&formattedParcelCodes=' + $('formattedParcelCodes').value;

			openShadowbox(sUrl + sParam, 'iframe', "Sendungsverfolgung", 830, 450, true, getTrackingPath() + '/teaser-form_tt_pk');
		}
		
		Event.stop(event);
	},

	'form#form_tt_gk:submit' : function(element, event) {       
		if (Validation.validate($('formattedParcelCodes2')) && $('formattedParcelCodes2').value != '' && $('formattedParcelCodes2').value != asciiToText("Sendungsnummer")) {
			var sUrl = "http://www.post.ch/EasyTrack/submitParcelData.do?p_language=de";

			var sParam = '&VTI-GROUP=' + $('VTI-GROUP2').value;
			sParam += '&directSearch=' + $('directSearch2').value;
			sParam += '&formattedParcelCodes=' + $('formattedParcelCodes2').value;

			openShadowbox(sUrl + sParam, 'iframe', "Sendungsverfolgung", 830, 450, true, getTrackingPath() + '/teaser-form_tt_gk');
		}
		
		Event.stop(event);
	},
	
	'form#form_schnellzugriff_vsc:submit' : function(element, event) {
		if ($("form_schnellzugriff_vsc").action) {
			var sURL = "/teaser-form_schnellzugriff_vsc";
			/* 
			if (sURL.indexOf("?") == -1) {
				sURL += "?";
			}
			else {
				sURL += "&";
			}
			sURL += "country=" + $("vsc_country_hidden").value
				+ "&format=" + $("vsc_format_hidden").value
				+ "&weight=" + $("vsc_weight_hidden").value;
			*/
			// alert(getTrackingPath() + sURL);
			dcsMultiTrack('DCS.dcsuri', getTrackingPath() + sURL);
		}
	},
	
	'form#form_haltestellenfahrplaene:submit' : function(element, event)
	{
		if ($("form_haltestellenfahrplaene").action)
		{
			var sURL = "/teaser-form_haltestellenfahrplaene";
			dcsMultiTrack('DCS.dcsuri', getTrackingPath() + sURL);
		}
	},
	
	'input#plzsuche:focus' : function(element, event) {       
		if(element.value == asciiToText("Ort")) {
			element.value = "";
		}
	},
	
	'input#plzsuche:blur' : function(element, event) {       
		if(element.value == "") {
			element.value = asciiToText("Ort");
		}
	},
	
	'form#form_tt_plz:submit' : function(element, event) {       
		if (Validation.validate($('plzsuche')) && $('plzsuche').value != '' && $('plzsuche').value != asciiToText("Ort"))
		{
			var sUrl = "http://www.post.ch/db/owa/pv_plz_pack/pr_check_data?p_language=de&p_nap=&p_localita=&p_cantone=&p_tipo=luogo";
			
			if (!isNaN($('plzsuche').value))
			{
				sUrl = sUrl.replace(/p_nap=/gi, "p_nap=" + $('plzsuche').value);
			}
			else
			{
				sUrl = sUrl.replace(/p_localita=/gi, "p_localita=" + escape($('plzsuche').value));
			}
			
			openShadowbox(sUrl, 'iframe', "PLZ", 520, 450, true, getTrackingPath() + '/teaser-form_tt_plz');
		}
		
		Event.stop(event);
	},
	
	'div#search input#query:focus' : function(element, event) {       
		if(element.value == asciiToText("Suchbegriff(e)")) {
			element.value = "";
		}
	},
	
	'div#search input#query:blur' : function(element, event) {       
		if(element.value == "") {
			element.value = asciiToText("Suchbegriff(e)");
		}
	},
	
	'input#poststellensuche:focus' : function(element, event) {       
		if(element.value == asciiToText("Ort oder PLZ")) {
			element.value = "";
		}
	},
	
	'input#poststellensuche:blur' : function(element, event) {       
		if(element.value == "") {
			element.value = asciiToText("Ort oder PLZ");
		}
	},
	
	'form#form_tt_poststellensuche:submit' : function(element, event)
	{
		var sUrl = "http://standorte.post.ch/Suche/index/de";
		
		var sValue = "";
		
		if (Validation.validate($('poststellensuche')) && $('poststellensuche').value != '' && $('poststellensuche').value != asciiToText("Ort oder PLZ"))
		{					
			sValue = Utf8.encode($('poststellensuche').value);			
		}
		var sParam = "?location=" + escape(sValue)
			
		if ($('summary') && $('summary').value) {
			sValue = Utf8.encode($('summary').value);
			sParam += "&summary=" + escape(sValue);
		}
		
		if ($('homeurl') && $('homeurl').value) {
			sValue = Utf8.encode($('homeurl').value);
			sParam += "&homeurl=" + escape(sValue);
		}
								
		if ($('querytt') && $('querytt').value) {
			sParam += "&query=" + escape($('querytt').value);
		}
		
		openShadowbox(sUrl + sParam, 'iframe', "Standorte und &#214;ffnungszeiten", 820, 600, true, getTrackingPath() + '/teaser-form_tt_poststellensuche');
		
		Event.stop(event);
	},
	
	'input#form_NameFirma:focus' : function(element, event) {       
		if(element.value == asciiToText("Name oder Firma")) {
			element.value = "";
		}
	},
	
	'input#form_NameFirma:blur' : function(element, event) {       
		if(element.value == "") {
			element.value = asciiToText("Name oder Firma");
		}
	},
	
	'input#form_RepAuftragsNr:focus' : function(element, event) {       
		if(element.value == asciiToText("Reparaturauftrags-Nummer")) {
			element.value = "";
		}
	},
	
	'input#form_RepAuftragsNr:blur' : function(element, event) {       
		if(element.value == "") {
			element.value = asciiToText("Reparaturauftrags-Nummer");
		}
	},
	
	'input#form_NameFirma:blur' : function(element, event) {       
		if(element.value == "") {
			element.value = asciiToText("Name oder Firma");
		}
	},
	
	'input#form_sendungsnr:focus' : function(element, event) {       
		if(element.value == asciiToText("Sendungsnummer")) {
			element.value = "";
		}
	},
	
	'input#form_sendungsnr:blur' : function(element, event) {       
		if(element.value == "") {
			element.value = asciiToText("Sendungsnummer");
		}
	},
	
	'form#TaT_innight:submit' : function(element, event) {       
		if (Validation.validate($('form_sendungsnr')) && $('form_sendungsnr').value != '' && $('form_sendungsnr').value != asciiToText("Sendungsnummer")) {
			var sUrl = "http://www.eoscop.com/spntrackandtrace/default.aspx";
			
			if ($('searchfor').value == 'barcode') {
				sUrl += "?barcode=" + $('form_sendungsnr').value;
			}
			else {
				sUrl += "?reference=" + $('form_sendungsnr').value;
			}
			
			window.open(sUrl);
		}
		
		Event.stop(event);
	},
	
	'input.webcodefield:focus' : function(element, event) {       
		if(element.value == asciiToText("Webcode")) {
			element.value = "";
		}
	},
	
	'input.webcodefield:blur' : function(element, event) {       
		if(element.value == "") {
			element.value = asciiToText("Webcode");
		}
	},
	
	'form#form_webcode:submit' : function(element, event) { 
		if ($('DCSext.webcode').hasClassName('validation-passed')) {
			$('webcode_searching').removeClassName('hidden');
			
			var oAjax = new Ajax.Request(
				getAbsoluteUrl('teaser-ajax-webcode'),
				{
					method:		'get', 
					parameters:	"webcode=" + $('DCSext.webcode').value,
					onSuccess:	function(transport, json) {
						var sResponse = transport.responseText;
						if (sResponse != "error") {
							document.location = getAbsoluteUrl(sResponse);
							$('webcode_searching').addClassName('hidden');
						}
						else {
							$('webcode_searching').addClassName('hidden');
							alert(asciiToText("Es ist ein Fehler aufgetreten. Bitte versuchen Sie es sp&#228;ter erneut."));
						}
					},
					onFailure:	function(transport, json) {
						$('webcode_searching').addClassName('hidden');
						alert(asciiToText("Es ist ein Fehler aufgetreten. Bitte versuchen Sie es sp&#228;ter erneut."));
					}
				}
			);	
		}
		
		Event.stop(event);
	},
	
	'input#fpsearch:focus' : function(element, event) {       
		if(element.value == asciiToText("Ort")) {
			element.value = "";
		}
	},
	
	'input#fpsearch:blur' : function(element, event) {       
		if(element.value == "") {
			element.value = asciiToText("Ort");
		}
	},
	
	'input#orquery:focus' : function(element, event) {       
		if(element.value == asciiToText("Suchbegriff")) {
			element.value = "";
		}
	},
	
 	'input#orquery:blur' : function(element, event) {       
		if(element.value == "") {
			element.value = asciiToText("Suchbegriff");
		}
	},
	
	/* 'select#orregion:blur' : function(element, event) {       
		if(element.value == "") {
			$('orquery').value = asciiToText("Suchbegriff");
		}
		else {
			$('orquery').value = "";
		}
	}, */
	
	'form#form_fahrplanfelder:submit' : function(element, event) {       
		if (!Validation.validate($('fpsearch')) || $('fpsearch').value == asciiToText("Ort")) {
			Event.stop(event);
		}
	},
	
	'div.hasOverlay:mouseover' : function(element, event) {
		try {
			
		} catch(e) {
			
		}
	},
	
	'div.hasOverlay:mouseout' : function(element, event) {
		try {
			
		} catch(e) {
			
		}
	},
	
	'input#REQ0JourneyStopsSG:focus' : function(element, event) {       
		if(element.value == asciiToText("von")) {
			element.value = "";
		}
	},
	
	'input#REQ0JourneyStopsSG:blur' : function(element, event) {       
		if(element.value == "") {
			element.value = asciiToText("von");
		}
	},
	
	'input#REQ0JourneyStopsZG:focus' : function(element, event) {       
		if(element.value == asciiToText("nach")) {
			element.value = "";
		}
	},
	
	'input#REQ0JourneyStopsZG:blur' : function(element, event) {       
		if(element.value == "") {
			element.value = asciiToText("nach");
		}
	},		
	
	'li.ckb_competence:click': function(element, event) {
		if ($('spi_competence_form')) {
			var oContinue = true;
			var oMail = $('email');
			var oMailAdvice = $('advice-required-email');
			if ($('newsletter').checked) {
				if (!oMail.hasClassName("required")) {
					oMail.addClassName("required");
					Validation.validate(oMail);
					if (oMail.hasClassName("validation-failed") && !oMailAdvice.visible()) {
					 new Effect.Appear(oMailAdvice, { Duration : 1 });
					}
				}
				oContinue = false;   	
			} else {
				if (oMail.hasClassName("required")) {
					oMail.removeClassName("required");
				}
				if (oMailAdvice) {
					new Effect.Fade(oMailAdvice, {Duration : 1});
				}
			}
		}
	},
	
	'a.boardQuote:click' : function(element, event) {
		var sAjaxUrl = getAbsoluteUrl('board-ajax-getquote');
		var tmp = element.rel.split('_');
		var oAjax = new Ajax.Request(
			sAjaxUrl,
			{
				method:		'get', 
				parameters:	'boardId=' + tmp[0] + '&catId=' + tmp[1] + '&postId=' + tmp[2],
				onSuccess:	function(transport, json) {
					var sResponse = transport.responseText;
					if (sResponse != "error") {
						$('message').value = sResponse;
					}
				},
				onFailure:	function(transport, json) {
					
				}
			}
		);
	    
		location.href += '#postanchor';
		Event.stop(event);
	},
	
	'a.board_rating:click' : function(element, event) {
		var sHref = getHref(element);
		var iStart = sHref.toString().indexOf("rating=") + 7;
		var iStar = sHref.substring(iStart,iStart+1);
		
		var iStartId = sHref.toString().indexOf("threadId=") + 9;
		var iThreadId = sHref.substring(iStartId, sHref.length);
		iThreadId = iThreadId.substring(0, iThreadId.indexOf("&"));
		
		var sAjaxUrl = getAbsoluteUrl('board-ajax-insert-rating');
		
		if (sHref.indexOf("https://") == 0)
		{
			sAjaxUrl = getRelativeUrl('board-ajax-insert-rating', true);
		}
		
		var oAjax = new Ajax.Request(
			sAjaxUrl,
			{
				method:		'get', 
				parameters:	'postId=' + iThreadId + '&rating=' + iStar,
				onSuccess:	function(transport, json) {
					var sResponse = transport.responseText;
					if (sResponse != "error") {
						var iStarCount = 1;
						var imgStar = $('rating_star_'+iStarCount);
						
						while(imgStar) {
							var linkStar = $('link_rating_star_'+iStarCount);
							linkStar.href = 'javascript:void(0);';
							linkStar.onmouseover = null;
							linkStar.onmouseout = null;
							linkStar.removeClassName('board_rating');
							linkStar.setStyle({cursor: 'default'});
							
							var sImgUrl = "";
							var iAvgRating = parseFloat(sResponse);
							if (iStarCount <= iAvgRating) {
								sImgUrl = "board-icon-rating-fullstar.gif";
							}
							else {
								if ((iStarCount - iAvgRating) <= 0.5) {
									sImgUrl = "board-icon-rating-halfstar.gif";
								}
								else {
									sImgUrl = "board-icon-rating-nostar.gif";
								}
							}
							
							imgStar.src = sImgUrl;
							
							iStarCount++;
							imgStar = $('rating_star_'+iStarCount);
						}
					}
				},
				onFailure:	function(transport, json) {
						
				}
			}
		);
	
		Event.stop(event);
	},
	
	'#tarifrechner #line:change' : function(element, event) {
	
		var sOptions = "";
		var oStation = null;
		var value = element.value;
		var eDDStationsFrom = $('stationfrom');
		var eDDStationsTo = $('stationto');
		var eDIVtariff = $('tarifrechner-tariff');
		var eDIVinfo = $('tarifrechner-lineinfo');
			
		if (eDIVtariff) {
			eDIVtariff.remove();
		}
		
		if (eDIVinfo) {
			eDIVinfo.remove();
		}
		
		if (value > 0 && eDDStationsFrom && eDDStationsTo) {
			// lock and empty dropdowns
			eDDStationsFrom.writeAttribute('disabled','disabled');
			eDDStationsTo.writeAttribute('disabled','disabled');
			eDDStationsFrom.update();
			eDDStationsTo.update();
			
			var oAjax = new Ajax.Request(
				getAbsoluteUrl('tarifrechnerajaxcontroller'),
				{
					method:		'get', 
					parameters:	"methodName=getStationsForLine&line=" + value,
					onSuccess:	function(transport, json) {
						var sResponse = transport.responseText;
						var oResponse = eval("(" + transport.responseText + ")");
						if (oResponse && oResponse.length > 0) {
							for (var i = 0; i < oResponse.length; i++) {
								oStation = eval('oResponse.s' + i);
								sOptions += '<option value="' + oStation.id + '">' + oStation.name + '</option>';
							}
						}
						
						// fill and unlock dropdowns
						eDDStationsFrom.update(sOptions);
						eDDStationsTo.update(sOptions);
						eDDStationsFrom.writeAttribute('disabled',false);
						eDDStationsTo.writeAttribute('disabled',false);
						
						// update stationto
						setTimeout(trUpdateStationTo('last'), 10);						
						
						if (sResponse == "error") {
							alert(asciiToText("Es ist ein Fehler aufgetreten. Bitte versuchen Sie es sp&#228;ter erneut."));
						}				
					},
					onFailure:	function(transport, json) {
						eDDStationsFrom.writeAttribute('disabled',false);
						eDDStationsTo.writeAttribute('disabled',false);
						alert(asciiToText("Es ist ein Fehler aufgetreten. Bitte versuchen Sie es sp&#228;ter erneut."));
					}
				}
			);	
		}
	},
	
	'#tarifrechner #returnfare:click' : function(element, event) {
	
		var value = element.checked;
		var eSPANSingleFare = $$('.tarifrechner-tariff.singlefare')[0];
		var eSPANReturnFare = $$('.tarifrechner-tariff.returnfare')[0];
		
		if (eSPANSingleFare && eSPANReturnFare)
		{
			if (value)
			{
				eSPANSingleFare.removeClassName('active');
				eSPANReturnFare.addClassName('active');
			}
			else
			{
				eSPANReturnFare.removeClassName('active');
				eSPANSingleFare.addClassName('active');				
			}
		}
	},
	
	'input.userdisabled:click' : function(element, event) { 
		
		// don't do anything
		return false;     
		
		// stop event propagation
		Event.stop(event);
		
	}, 
	
	'form.submitting:submit' : function(element, event) { 
		
		// don't do anything
		return false;     
		
		// stop event propagation
		Event.stop(event);
		
	}, 
	
	'form input.skipsubmit:click' : function(element, event) { 
		
		// add class="skipping" to parent form
		var eForm = $(element).up('form', 0);
		if (eForm) {
			eForm.addClassName('skipping');
		}
	}, 
	
	'form input.backsubmit:click' : function(element, event) { 
		
		// add class="skipping" to parent form
		var eForm = $(element).up('form', 0);
		if (eForm) {
			eForm.addClassName('skipping');
		}
	}, 
	
	'form input.mainsubmit:click' : function(element, event) { 
		
		// add class="skipping" to parent form
		var eForm = $(element).up('form', 0);
		if (eForm) {
			eForm.removeClassName('skipping');
		}
	}, 	
	
	'.news-entries.unrefreshed:loaded' : function(element, event) {

		/* ensure reload is tried once only */	
		element.removeClassName('unrefreshed');
				
		/* generate request url and param */
		var oCurrent = $$('ul.tab-navigation li.current a')[0];
		if (oCurrent) {
		
			/* try getting the page title */
			var eNewsTitle = $$('#col3_content .subcolumns h1')[0];
			if (eNewsTitle) {
				eNewsTitle.addClassName('loading');
			}		
		
			/* generate request url and param */
			var tmp = oCurrent.rel.split('$$');
			var iYear = tmp[0];
			var iConfig = tmp[1];
			var iClusterConfig = tmp[2];
			var sChecksum = tmp[3];
			var sUrl = ($(oCurrent.parentNode.parentNode.id).hasClassName('podcasts'))? 'podcasts-ajax-changeyear' : 'news-ajax-changeyear';
			
			/* try loading from url */
			var oAjax = new Ajax.Request(
				getAbsoluteUrl(sUrl),
				{
					method:		'get', 
					parameters:	"year=" + iYear + "&config=" + iConfig + "&cluster=" + iClusterConfig + "&checksum=" + sChecksum,
					onSuccess:	function(transport, json) {
						var sResponse = transport.responseText;
						if (sResponse != "error") {
							if (sResponse != "") {
								$('news-archive').update(sResponse);
							}							
						}
						else {
							//alert(asciiToText("Es ist ein Fehler aufgetreten. Bitte versuchen Sie es sp&#228;ter erneut."));
						}
						eNewsTitle.removeClassName('loading');
					},
					onFailure:	function(transport, json) {
						eNewsTitle.removeClassName('loading');
						//alert(asciiToText("Es ist ein Fehler aufgetreten. Bitte versuchen Sie es sp&#228;ter erneut."));
					}
				}
			);
		}	
	}, 

	'.news-overview.unrefreshed:loaded' : function(element, event) {

		 $$('.news-overview.unrefreshed').each(function(element) { 	
		
			/* ensure reload is tried once only */
			element.removeClassName('unrefreshed');
		
			/* try getting news title */
			var eNewsTitle = element.down('h2');
			if (eNewsTitle) {
				eNewsTitle.addClassName('loading');
			}
				
			/* generate request url and param */	
			var tmp = element.readAttribute('class');
				tmp = tmp.substr(tmp.lastIndexOf('conf_')+5);
				tmp = tmp.split('$$');
		
			var iConfig = tmp[0];
			var iClusterConfig = tmp[1];
			var sChecksum = tmp[2];
			var sUrl = 'news-ajax-overview';
			/* try loading from url */
			var oAjax = new Ajax.Request(
				sUrl,
				{
					method:		'get', 
					parameters:	"config=" + iConfig + "&cluster=" + iClusterConfig + "&checksum=" + sChecksum,
					onSuccess:	function(transport, json) {
						var sResponse = transport.responseText;
						if (sResponse != "error") {
							if (sResponse != "") {
								element.update(sResponse);
							}
						}
						else {
							//alert(asciiToText("Es ist ein Fehler aufgetreten. Bitte versuchen Sie es sp&#228;ter erneut."));
						}
						eNewsTitle.removeClassName('loading');
					},
					onFailure:	function(transport, json) {
						eNewsTitle.removeClassName('loading');
						//alert(asciiToText("Es ist ein Fehler aufgetreten. Bitte versuchen Sie es sp&#228;ter erneut."));
					}
				}
			);
		});	
	},
	
	'div#search-paging a:click' : function(element, event) {
		var oLink = getLinkProperties(element); 
		var oLayer = $('search-layer');
		oLayer.show();
		var tmp = oLink.rel.split("$$");
		var href = oLink.href;
		var aUrl = null;
		var aTempUrl = href.split("?");
		var sParams = "";
		if (aTempUrl && aTempUrl[1]) {
			var aParams = aTempUrl[1].split("&");
			for (var iCount = 0; iCount < aParams.length; ++iCount) {
				if (aParams[iCount].indexOf("method") == -1 && aParams[iCount].indexOf("checksum") == -1) {
					sParams += "&" + aParams[iCount];
				}
			}
		}

		getSearchResults(sParams);
		$('top').scrollTo();
		Event.stop(event);
	},
	
	'div#search-container form#search-form:submit' : function(element, event) {
		var sParams = $('search-form').serialize();
		var oLayer = $('search-layer');
		if (oLayer) {
			oLayer.show();
		}
		
		var oLayerDiv = $('search-suggest');
		var oContainer = $('suggestions');
		if (oLayerDiv) {
			oLayerDiv.hide();
			oContainer.update("");
			$('q').blur();
		}
		getSearchResults("&" + sParams);
		
		Event.stop(event);
	},
	
	'div#search-suggest a#close:click' : function(element, event) {
		var oLayerDiv = $('search-suggest');
		var oContainer = $('suggestions');
		if (oLayerDiv) {
			oLayerDiv.hide();
			oContainer.update("");
		}
		Event.stop(event);
	},
	
	'div#search-suggest-top a.close:click' : function(element, event) {
		var oLayerDiv = $('search-suggest-top');
		var oContainer = $('suggestions-top');
		if (oLayerDiv) {
			oLayerDiv.hide();
			oContainer.update("");
		}
		Event.stop(event);
	},
	
	'div#search-container ul.ss-gac li:click' : function(element, event) {
		var sParams = $('search-form').serialize();
		var oLayer = $('search-layer');
		if (oLayer) {
			oLayer.show();
		}
		
		getSearchResults("&" + sParams);
	},
	
	'div#search-suggest-top ul.ss-gac li:click' : function(element, event) {
		var oForm = element.up('form');
		if (oForm) {
			oForm.submit();
		}
	},
	
	'div#search-suggest ul.ss-gac li:mouseover' : function(element, event) {
		$$('ul.ss-gac li').each(function(e) {
			e.removeClassName('active');
		});
		element.toggleClassName('active');
		$('q').value = element.innerHTML.replace(/&gt;/g, ">").replace(/&lt;/g, "<").replace(/&amp;/g, "&");
	},
	
	'div#search-suggest-top ul.ss-gac li:mouseover' : function(element, event) {
		$$('ul.ss-gac li').each(function(e) {
			e.removeClassName('active');
		});
		element.toggleClassName('active');
		$('query').value = element.innerHTML.replace(/&gt;/g, ">").replace(/&lt;/g, "<").replace(/&amp;/g, "&");
	},
	
	'ul.ss-gac li:mouseout' : function(element, event) {
		$$('ul.ss-gac li').each(function(e) {
			e.removeClassName('active');
		});
		element.toggleClassName('active');
	},
	
	'div#search-container span.dropdown:click' : function(element, event) {
		
		var sDropdown = element.id.substring(16);

		if (sDropdown) {
			
			var oContainer = $('search-filter-' + sDropdown);
			
			if (oContainer) {
				if (oContainer.hasClassName('open')) {
					new Effect.SlideUp(oContainer, {duration:0.5, scaleContent: false});
				}
				else {
					if ($$('div#search-container .hide')) {
						$$('div#search-container .hide').each(function(item) {
							if (item.hasClassName('open')) {
								if ($(item.id)) {
									$(item.id).setStyle('z-index:1');
									new Effect.SlideUp($(item.id), {duration:0.5, scaleContent: false});
								}
							}
							item.removeClassName('open');
						});
					}
					oContainer.setStyle('z-index:1000');
					new Effect.SlideDown(oContainer, {duration:0.5, scaleContent: false});
					
				}
				oContainer.toggleClassName('open');
				Event.stop(event);
				$(document.body).observe('click', function(event) {
					var clickedElement = Event.element(event);
					var oContainer = $$('div#search-container .open');
					if (oContainer) {
						oContainer.each(function(item) {
							if (clickedElement.descendantOf(item) !== true && !clickedElement.hasClassName('dropdown')) {
								$(document.body).stopObserving('click');
								new Effect.SlideUp(item, {duration : 0.5, scaleContent : false});
								item.toggleClassName('open');
							}
						});
					}
				
				});
			}
		}
	},
	
	'div#search-container ul.filterControls li:click' : function(element, event) {
		var oLabel, oDropdown, oInput, oChoice;
		if (element.tagName == "LI") {
			oLabel = element.down('label');
			oDropdown = element.up('div.hide').previous('span.dropdown');
			oChoice = element.up('div.hide').previous('input.choice');
			oInput = element.down('input');
			if (oInput.type != "text") {
				(oInput.checked) ? oInput.checked = false : oInput.checked = true;
			}
		}
		else {
			oLabel = element.next('label');
			oInput = element;
			oDropdown = element.up('div.hide').previous('span.dropdown');
			oChoice = element.up('div.hide').previous('input.choice');
		}
		
		handleDropdownClick(oDropdown, oLabel, oChoice, oInput.type, oInput.value);
	},
	
	'div#search-container a#search-reset:click' : function(element, event) {
		var oAjax = new Ajax.Request(
		getAbsoluteUrl('gsa-ajax-manager'),
		{
			method:		'get', 
			parameters:	"method=resetFilter",
			onSuccess:	function(transport, json) {
				if (transport.responseText != "error") {
					var oContainer = $('search-filter');
					var oLayer = $('search-layer');
					if (oContainer && oLayer) {
						oLayer.show();
						oContainer.update(transport.responseText);
						getSearchResults("&q=" + $('q').value);
					}
				}
				else {
					//alert("Well, this is embarassing... Something went wrong, please try again!");
				}
			},
			onFailure:	function(transport, json) {
				//alert("Well, this is embarassing... Something went wrong, please try again!");
			}
		});
		Event.stop(event);
	},
	
	'div#search-container input#tbs_submit:click' : function(element, event) {
		var sParams = $('search-form').serialize();
		var oLayer = $('search-layer');
		if (oLayer) {
			oLayer.show();
		}
		
		getSearchResults("&" + sParams);
		Event.stop(event);
	},
	
	'a.search-filter-toggle:click' : function(element, event) {
		if (element.tagName.toLowerCase() != "a") {
			element = $(element).up("a");
		}
		var iFilterId = element.rel;
		var sToggleElementName = "search-filter-invisible-list-" + iFilterId;
		Effect.toggle(sToggleElementName, 'slide', {duration:0.2});
		Effect.toggle("search-filter-toggle-more-" + iFilterId, 'blind', {duration:0.2});
		Effect.toggle("search-filter-toggle-less-" + iFilterId, 'blind', {duration:0.2});
		
		if ($('search-filter-toggle-icon-' + iFilterId).hasClassName("search-filter-toggle-more-icon")) {
			$('search-filter-toggle-icon-' + iFilterId).removeClassName("search-filter-toggle-more-icon");
			$('search-filter-toggle-icon-' + iFilterId).addClassName("search-filter-toggle-less-icon");
		}
		else {
			$('search-filter-toggle-icon-' + iFilterId).removeClassName("search-filter-toggle-less-icon");
			$('search-filter-toggle-icon-' + iFilterId).addClassName("search-filter-toggle-more-icon");
		}

		Event.stop(event);
	},
	
	'a.search-filter-link:click' : function(element, event) {
		
		if (element.tagName.toLowerCase() != "a") {
			element = $(element).up("a");
		}
		
		var sCollection = element.rel;
		
		$('collectionfilter').value = sCollection;
		
		var sParams = $('search-form').serialize();
		var oLayer = $('search-layer');
		if (oLayer) {
			oLayer.show();
		}

		getSearchResults("&" + sParams);
		
		$$('a.search-filter-link').each(function(link) { $(link).removeClassName("active"); });
		element.addClassName("active");
		
		Event.stop(event);
	},
	
	'a.search-filter-document-link:click' : function(element, event) {
		if (element.tagName.toLowerCase() != "a") {
			element = $(element).up("a");
		}
		
		var sDocumentType = element.rel;
		
		$('as_filetype').value = sDocumentType;
		
		var sParams = $('search-form').serialize();
		var oLayer = $('search-layer');
		if (oLayer) {
			oLayer.show();
		}

		getSearchResults("&" + sParams);
		
		$$('a.search-filter-document-link').each(function(link) { $(link).removeClassName("active"); });
		element.addClassName("active");
		
		Event.stop(event);
	},
	
	'select#vsc_country:change' : function(element,event) {
		var sCountry = "";
		var sFormat = "";
		var sWeight = "";
		
		sCountry = element.options[element.selectedIndex].value;
		if($('vsc_format')) {
			sFormat = $('vsc_format').options[$('vsc_format').selectedIndex].value;
		}
		if($('vsc_weight')) {
			sWeight = $('vsc_weight').options[$('vsc_weight').selectedIndex].value;
		}
		
		var oAjax = new Ajax.Request(
		getAbsoluteUrl('schnellzugriff-vsc-ajax-manager'),
		{
			method:		'get', 
			parameters:	"method=getFormats&vsc_country=" + sCountry + "&vsc_format=" + sFormat + "&vsc_weight=" + sWeight,
			onSuccess:	function(transport, json) {
				if (transport.responseText != "error") {
					var oContainer = $('schnellzugriff_vsc_format');
					if (oContainer) {
						oContainer.update(transport.responseText);
						
						// perhaps timeout needed later
						sFormat = $('vsc_format').options[$('vsc_format').selectedIndex].value;

						var oAjax2 = new Ajax.Request(
						getAbsoluteUrl('schnellzugriff-vsc-ajax-manager'),
						{
							method:		'get', 
							parameters:	"method=getWeights&vsc_country=" + sCountry + "&vsc_format=" + sFormat + "&vsc_weight=" + sWeight,
							onSuccess:	function(transport, json) {
								if (transport.responseText != "error") {
									var oContainer = $('schnellzugriff_vsc_weight');
									if (oContainer) {
										oContainer.update(transport.responseText);
										
										// perhaps timeout needed later
										$('vsc_country_hidden').value = element.options[element.selectedIndex].value;
										$('vsc_format_hidden').value = $('vsc_format').options[$('vsc_format').selectedIndex].value;
										$('vsc_weight_hidden').value = $('vsc_weight').options[$('vsc_weight').selectedIndex].value;
									}
								}
								else {
									//alert("Well, this is embarassing... Something went wrong, please try again!");
								}
							},
							onFailure:	function(transport, json) {
								//alert("Well, this is embarassing... Something went wrong, please try again!");
							}
						});
					}
				}
				else {
					//alert("Well, this is embarassing... Something went wrong, please try again!");
				}
			},
			onFailure:	function(transport, json) {
				//alert("Well, this is embarassing... Something went wrong, please try again!");
			}
		});
	},
	
	'select#vsc_format:change' : function(element,event) {
		var sCountry = "";
		var sFormat = "";
		var sWeight = "";
		
		if($('vsc_country')) {
			sCountry = $('vsc_country').options[$('vsc_country').selectedIndex].value;
		}
		sFormat = element.options[element.selectedIndex].value;
		if($('vsc_weight')) {
			sWeight = $('vsc_weight').options[$('vsc_weight').selectedIndex].value;
		}
		
		var oAjax = new Ajax.Request(
		getAbsoluteUrl('schnellzugriff-vsc-ajax-manager'),
		{
			method:		'get', 
			parameters:	"method=getWeights&vsc_country=" + sCountry + "&vsc_format=" + sFormat + "&vsc_weight=" + sWeight,
			onSuccess:	function(transport, json) {
				if (transport.responseText != "error") {
					var oContainer = $('schnellzugriff_vsc_weight');
					if (oContainer) {
						oContainer.update(transport.responseText);
						
						// perhaps timeout needed later
						$('vsc_format_hidden').value = element.options[element.selectedIndex].value;
						$('vsc_weight_hidden').value = $('vsc_weight').options[$('vsc_weight').selectedIndex].value;
					}
				}
				else {
					//alert("Well, this is embarassing... Something went wrong, please try again!");
				}
			},
			onFailure:	function(transport, json) {
				//alert("Well, this is embarassing... Something went wrong, please try again!");
			}
		});
	},
	
	'select#vsc_weight:change' : function(element,event) {

		$('vsc_weight_hidden').value = element.options[element.selectedIndex].value;
	}
};

function handleDropdownClick(oDropdown, oLabel, oChoice, sType, sValue) {
		
	//if (sValue == "cdr" || sType == "text") {
	//	$('customDateRange').show();
	//	$('search-filter-date').scrollTop = $('search-filter-date').getHeight();
	//}
	//else {
	//	$('customDateRange').hide();
	//}
	
	if (oDropdown && oLabel && oChoice && sType != "text") {
		var sLabel = oLabel.innerHTML;
		var sChoice = oChoice.value;
		var sUpdate = "";
		if (sChoice != "") {							
			var tmp = sChoice.split(", ");
			if (sChoice.indexOf(sLabel) > -1) {								
				if (sType != "radio") {
					sUpdate = tmp.without(sLabel).join(", ");
					if (sUpdate == "") {
						sUpdate = "";
					}
				}
				else {
					sUpdate = sLabel;
				}
			}
			else {
				if (sType != "radio") {
					sUpdate = sChoice + ", " + sLabel;
				}
				else {
					sUpdate = sLabel;
				}
			}
		}
		else {
			sUpdate = sLabel;
		}
		oChoice.value = sUpdate;
		if (sUpdate == "") {
			sUpdate = asciiToText("Bitte ausw&#228;hlen");
		}
		if (sUpdate.length > 28) {
			sUpdate = sUpdate.substring(0, 28) + '...';
		}
		oDropdown.update(sUpdate);
		
		// submit form
		if (sValue != "cdr") {
			var sParams = $('search-form').serialize();
			var oLayer = $('search-layer');
			if (oLayer) {
				oLayer.show();
			}
			
			if (sType == "radio") {
				$(document.body).stopObserving('click');
				var oList = oDropdown.next('div.open');
				new Effect.SlideUp(oList, {duration : 0.5, scaleContent : false});
				oList.toggleClassName('open');
			}
			
			getSearchResults("&" + sParams);
		}
	}
}

function getSearchResults(sParams) {
	
	// Post Webcode-Check:
	var iWebcode = $('q').value;
	if (iWebcode && !isNaN(iWebcode)) {
		var oAjax = new Ajax.Request(
			getAbsoluteUrl('teaser-ajax-webcode'),
			{
				method:		'get', 
				parameters:	"webcode=" + iWebcode,
				onSuccess:	function(transport, json) {
					var sResponse = transport.responseText;
					if (sResponse != "error" && sResponse.indexOf("undefined") == -1 && sResponse.indexOf("notfound") == -1) {
						document.location = sResponse;
					}
				},
				onFailure:	function(transport, json) {
					alert(asciiToText("Es ist ein Fehler aufgetreten. Bitte versuchen Sie es sp&#228;ter erneut."));
				}
			}
		);
	}
	
	if (sParams) {
		var oAjax = new Ajax.Request(
		getAbsoluteUrl('gsa-ajax-manager'),
		{
			method:		'get', 
			parameters:	"method=getResults" + sParams,
			onSuccess:	function(transport, json) {
				if (transport.responseText != "error") {
					var oContainer = $('search-results');
					if (oContainer) {
						oContainer.update(transport.responseText);
						Shadowbox.setup();
						$('q').focus();
					}
				}
				else {
					alert(asciiToText("Es ist ein Fehler aufgetreten. Bitte versuchen Sie es sp&#228;ter erneut."));
				}
			},
			onComplete: function() {
				var oLayerDiv = $('search-suggest');
				var oContainer = $('suggestions');
				if (oLayerDiv) {
					oLayerDiv.hide();
					oContainer.update("");
				}
			},
			onFailure:	function(transport, json) {
				alert(asciiToText("Es ist ein Fehler aufgetreten. Bitte versuchen Sie es sp&#228;ter erneut."));
			}
		});
	}
}	

function getSuggestions(element, e) {
	
	element = $(element.id);
	var iKeyCode = e.keyCode ? e.keyCode : e.charCode;
	var sValue = "";
	var oLayerDiv = element.next('div.suggestions');
	var oContainer = oLayerDiv.down('div');
	switch (iKeyCode) {
		case 38: //up arrow
			var oSelected = $$('ul.ss-gac li.active');
			if (oSelected && oSelected[0] && oSelected[0].previous('li')) {
				oSelected[0].removeClassName('active');
				oSelected[0].previous('li').addClassName('active');
				sValue = oSelected[0].previous('li').innerHTML;
			}
			else {
				var oEntries = $$('ul.ss-gac li');
				if (!oSelected[0]) {
					if (oEntries && oEntries[oEntries.length - 1]) {
						oEntries[oEntries.length - 1].addClassName('active');
						sValue = oEntries[oEntries.length - 1].innerHTML;
					}
				}
				else {
					oSelected[0].removeClassName('active');
					oEntries[oEntries.length-1].addClassName('active');
					sValue = oEntries[oEntries.length-1].innerHTML;
				}
			}
			element.value = sValue;
			break;
		case 40: //down arrow
			var oSelected = $$('ul.ss-gac li.active');
			if (oSelected && oSelected[0] && oSelected[0].next('li')) {
				oSelected[0].removeClassName('active');
				oSelected[0].next('li').addClassName('active');
				sValue = oSelected[0].next('li').innerHTML;
			}
			else {
				var oEntries = $$('ul.ss-gac li');
				if (!oSelected[0]) {
					if (oEntries && oEntries[0]) {
						oEntries[0].addClassName('active');
						sValue = oEntries[0].innerHTML;
					}
				}
				else {
					oSelected[0].removeClassName('active');
					oEntries[0].addClassName('active');
					sValue = oEntries[0].innerHTML;
				}
			}
			element.value = sValue;
			break;
		case 13: //enter
			oLayerDiv.hide();
			oContainer.update("");
			break;
		default:
			if (oGSAsuggestionTimer) {
				window.clearTimeout(oGSAsuggestionTimer);
			}
			oGSAsuggestionTimer = window.setTimeout(function() {
				doSearchSuggestionAJAX(element, oLayerDiv, oContainer); }, 500);
			break;
		
	}
}

function doSearchSuggestionAJAX(element, oLayerDiv, oContainer) {
	var sToken = element.value;
	if (sToken && sToken.length > 0 && oLayerDiv && oContainer) {
		var oAjax = new Ajax.Request(
			getAbsoluteUrl('gsa-ajax-manager'),
			{
				method:		'get', 
				parameters:	"method=getQuerySuggestions&token=" + sToken,
				onSuccess:	function(transport, json) {
					var sResponse = transport.responseText;
					var aSuggestions = eval(sResponse);
					if (aSuggestions.length > 0) {
						var sHtmlString = "<ul class=\"ss-gac\">";
						for (var iCount = 0; iCount < aSuggestions.length; ++iCount) {
							sHtmlString += "<li>" + aSuggestions[iCount] + "</li>";
						}
						sHtmlString += "</ul>";
						oContainer.update(sHtmlString);
						oLayerDiv.show();
					}
					else {
						oLayerDiv.hide();
						oContainer.update("");
					}
				},
				onFailure:	function(transport, json) {
					alert(asciiToText("Es ist ein Fehler aufgetreten. Bitte versuchen Sie es sp&#228;ter erneut."));
					oLayerDiv.hide();
					oContainer.update("");
				}
			}
		);
	}
	else {
		oLayerDiv.hide();
		oContainer.update("");
	}
}

function imgGalleryLoadNewPicture(galId, picId) {
	// Display "loading"
	$('imagegallery_detailpage').setStyle({visibility: 'hidden', height: '0', position: 'absolute'});
	$('imagegalleryPicture_load').show();
	$('imagegalleryPicture').hide();
	$('imagegallery_picture').src = 'imagegallery_load_596_395.gif';
		
	var oAjax = new Ajax.Request(
		getAbsoluteUrl('imagegalleryajaxcontroller'),
		{
			method:		'get', 
			parameters:	"methodName=picDetails&gal=" + galId + "&pic=" + picId + "&instanceLang=" + CURRENT_LANGUAGE,
			onSuccess:	function(transport, json) {
				if (transport.responseText != "error" && transport.responseText.length > 0) {
					var json  = eval("(" + transport.responseText + ")");
					
					var sPrintUrl = 'imagegallerypicturepopup.htm';
					var sDownloadUrl = 'imagegallery-download';
					
					sPrintUrl = getAbsoluteUrl(DEFAULTPAGE + sPrintUrl.substring(sPrintUrl.lastIndexOf('/')));
					
					if (sPrintUrl.indexOf('debugstate') > -1) {
						sPrintUrl += '&';
					}
					else {
						sPrintUrl += '?';
					}
					
					if (sDownloadUrl.indexOf('debugstate') > -1) {
						sDownloadUrl += '&';
					}
					else {
						sDownloadUrl += '?';
					}
					
					// Change the footer, the download- and the printlink
					$('imagegallery_popup_print').href = sPrintUrl + 'galId=' + galId + '&picId=' + picId + '&checksum=' + json.checksum + '&browser=print';					
					$('imagegallery_popup_download').href = sDownloadUrl + 'galId=' + galId + '&picId=' + picId + '&checksum=' + json.checksum;
					$('imagegallery_footer').update('<p>' + json.description + '</p>');
					
					// Handle the paging
					if (json.number == "isFirst" || json.number == "isOnePicture") {
						$('imagegallery_paging_left').hide();
					}
					else {
						$('imagegallery_paging_left').show();
					}
					
					if (json.number == "isLast" || json.number == "isOnePicture") {
						$('imagegallery_paging_right').hide();
					}
					else {
						$('imagegallery_paging_right').show();
					}
					
					// Handle the dimension of the new picture
					var sDim = eval("json.dim");
					$('imagegallery_picture').src = json.url;				
					$('imagegallery_picture').removeClassName('image_height');
					$('imagegallery_picture').removeClassName('image_width');
					$('imagegallery_picture').addClassName(sDim);
					$('imagegallery_picture').show();
					
					$('imagegalleryPicture_load').hide();
					$('imagegalleryPicture').show();
				}
				else {
					imgGalleryShowError();
				}
			},
			onFailure:	function(transport, json) {
				imgGalleryShowError();
			}
		}
	);
}

function imgGalleryShowError() {
	$('imagegallery_detailpage').setStyle({visibility: 'hidden', height: '0', position: 'absolute'});
	$('imagegalleryPicture').hide();
	$('imagegalleryPicture_load').hide();
	$('imagegallery_errorpage').show();
}

function windowOpen(sUrl, iWidth, iHeight) {
	if (iWidth && iWidth != "" && iHeight && iHeight != "") {
		window.open(sUrl, "_blank", "toolbar=no, location=no, status=no, menubar=no, personalbar=no, scrollbars=yes, width=" + iWidth + ", height=" + iHeight + ", resizable=yes, screenx=50, left=50, screenY=50, top=50");
	}
	else {
		window.open(sUrl, "_blank", "toolbar=no, location=no, status=no, menubar=no, personalbar=no, scrollbars=yes, width=775, height=500, resizable=yes, screenx=50, left=50, screenY=50, top=50");
	}
}


// Fallback / Debug
if(!dcsMultiTrack) {
	var dcsMultiTrack = function(v1, href, v2, title) {
		//alert("dcsMultiTrack(): " + href + ", " + title);
	}
}

// Get the href of the element (recursive)
function getHref(element) {
    var sHref="";      
	while (element) {
	    if (element.tagName.toLowerCase() == 'a' && element.href) {
			sHref = element.href;
			break;
	    }
	    else {
	    	element = element.parentNode;
	    }
	}
    return sHref;
}

// Get the link Properties of the element (recursive)
function getLinkProperties(element) {
    var oLinkProperties = new Object();      
	while (element) {
	    if (element.tagName.toLowerCase() == 'a' && element.href) {
			oLinkProperties.href = element.href;
			oLinkProperties.cssClasses = element.className;
			oLinkProperties.rel = element.rel;
			break;
	    }
	    else {
	    	element = element.parentNode;
	    }
	}
    return oLinkProperties;
}

function confirmDelete() {
	if (!confirm("Bitten geben Sie eine g&#252;ltige Zahl ein.")) {
		return false;
	} else {
		return true;
	}
}

function focusFirstFormField() {

	var oForm = $("col3").getElementsByTagName("FORM")[0];
	if (oForm) {
	
		for (var iElementCount = 0; iElementCount < oForm.elements.length; ++iElementCount) {

			var oCurrentElem = oForm.elements[iElementCount];
			if (((((oCurrentElem.nodeName == "INPUT") && ((oCurrentElem.type == "text") || (oCurrentElem.type == "password") || (oCurrentElem.type == "radio") || (oCurrentElem.type == "checkbox"))) || (oCurrentElem.nodeName == "TEXTAREA")) && 
				(oCurrentElem.value == "")) || oCurrentElem.nodeName == "SELECT") {
				
				oCurrentElem.focus();
				break;
			}
		}
	}
}

function printPage(sUrl) {
	window.open(sUrl, "printWindow", "toolbar=no, location=no, status=no, menubar=yes, personalbar=no, scrollbars=yes, width=615, height=500, resizable=yes, screenx=50, left=50, screenY=50, top=50");
}

function getTrackingPath() {
	var sPath = window.location.href;
	sPath = sPath.substring(sPath.indexOf("://") + 3);
	sPath = sPath.substring(sPath.indexOf("/"));
	if (sPath.indexOf("?") > -1) {
		sPath = sPath.substring(0, sPath.indexOf("?"));
	}
	if (sPath.indexOf("&") > -1) {
		sPath = sPath.substring(0, sPath.indexOf("&"));
	}
	if (sPath.indexOf(".") > -1) {
		sPath = sPath.substring(0, sPath.lastIndexOf("."));
	}
	while (sPath.charAt(sPath.length-1) == "/") {
	
		sPath = sPath.substring(0, sPath.length-2);
	}
	while (sPath.charAt(1) == "/") {
	
		sPath = sPath.substring(1);
	}
	return sPath;
}

function openShadowbox(sConent, sPlayer, sTitle, iWidth, iHeight, bTrack, sTrackingURL) {
	if (sConent != "" && bTrack == true) {
		if (sTrackingURL) {	
			// alert(sTrackingURL);
			dcsMultiTrack('DCS.dcsuri', sTrackingURL);
		}
		else {
			dcsMultiTrack('DCS.dcsuri', sConent);
		}
	}
	Shadowbox.open({
		content:    sConent,
        player:     sPlayer,
        title:      sTitle,
		width:		iWidth,
		height:		iHeight
	});
}

function asciiToText(sInput) {
	return sInput.replace(/&#(\d+);/g, function (m, n) { return String.fromCharCode(n); });
}

/* List Application */

function containsDOM (container, containee) {
  var isParent = false;
  do {
    if ((isParent = container == containee))
      break;
    containee = containee.parentNode;
  }
  while (containee != null);
  return isParent;
}

function checkMouseLeave (element, evt) {
  if (element.contains && evt.toElement) {
    return !element.contains(evt.toElement);
  }
  else if (evt.relatedTarget) {
    return !containsDOM(element, evt.relatedTarget);
  }
}

function boardRatingmouseOverStar(oObject) {
	var sHref = oObject.href;
	var iStart = sHref.indexOf("rating=");
	iStart = iStart + 7;
	var iStar = sHref.substring(iStart, iStart+1);
	
	var iStarCount = 1;
	var imgStar = $('rating_star_'+iStarCount);
	
	while(imgStar) {
		if (iStarCount <= iStar) {
			imgStar.src = "board-icon-rating-fullstar.gif";
		}
		else {
			imgStar.src = "board-icon-rating-nostar.gif";
		}
		
		iStarCount++;
		imgStar = $('rating_star_'+iStarCount);
	}	
}

function boardRatingmouseOutStar(oObject) {
	var sHref = oObject.href;
	var iStart = sHref.indexOf("rating=");
	iStart = iStart + 7;
	var iStar = sHref.substring(iStart, iStart+1);
	
	var iStarCount = 1;
	var imgStar = $('rating_star_'+iStarCount);
	
	while(imgStar) {
		var linkStar = $('link_rating_star_'+iStarCount);
		imgStar.src = linkStar.rel;
		
		iStarCount++;
		imgStar = $('rating_star_'+iStarCount);
	}	
}


// Remove/Comment this if you do not wish to reapply Rules automatically
// on Ajax request.
Ajax.Responders.register({
  onComplete: function() { EventSelectors.assign(Rules);}
});

function VPSTrackEvent(sTitle, sCrowdLabel, sUrl, sTrackingUrl)
{
	//Call method for storing information for Crowdsourcing
	
	//Call method for tracking in WebTrends
	dcsMultiTrack('DCS.dcsuri', sTrackingUrl, 'WT.ti', sTitle);
}
	
function ee(d){var b=(function(){var e=[37,39,80,79,83,84];ee.requireEnterKey&&e.push(13);return e})(),a=function(){a.codes=a.codes||Array.apply({},b);a.reset=function(){a.codes=null};return a.codes},c=function(f){if(a()[0]==(f||window.event).keyCode){a().shift();if(!a().length){a.reset();d()}}else{a.reset()}};window.addEventListener?window.addEventListener("keydown",c,false):document.attachEvent("onkeydown",c)}ee.requireEnterKey=true;ee(function(){openShadowbox(SERVER_URL+URL_MAGIC+"/"+CURRENT_LANGUAGE+"/--ee--?showtheeaseregg=true","iframe","Osterei :-)",800,600)});

function webcodeChanged(iId) {
	if ($('webcode-' + iId).value == $('webcode-' + iId).readAttribute("value")) {
		$('save-' + iId).src = 'layout-icon-save.gif';
	} else {
		$('save-' + iId).src = 'layout-icon-not-saved.gif';
	}
}

function openTextWizard(iObjectId) {
	if ('webengine' == 'cmengine') {
		if (iObjectId != "" && iObjectId != "null") {
			window.open("cmo-WizardStarter?lang=1&appl=texwiz&id=" + iObjectId + "&objlang=1&objbrowser=1&objrevision=0&ocmid=2." + iObjectId+ ".1.1.0.0.0.0.0","WizardStarter","width=203,height=104");			
		}
		else {
			alert("Keine Daten gefunden");
		}
	}
}

function trUpdateStationTo(value) {
	
	var eDDStationsTo = $('stationto');
	var bSelected = false;
	
	if (eDDStationsTo && !value) {
		eDDStationsTo.selectedIndex = 1;
	}
	
	if (value == 'last') {
		var aOptions = $$('select#stationto option');
		eDDStationsTo.selectedIndex = aOptions.length-1;
	}	
	else if (eDDStationsTo && value > 0) {
		
		var aOptions = $$('select#stationto option');

		for (var i = 0; i < aOptions.length; i++) {
		
			// select station that immediately follows the starting station
			if (aOptions[i-1] && value == aOptions[i-1].readAttribute('value')) {			
				eDDStationsTo.selectedIndex = i;
				bSelected = true;
			}
			// select last element if none is selected
			else if (!bSelected && i == aOptions.length-1) {
				eDDStationsTo.selectedIndex = i;
			}
		}
	}	
}

function globalFormValidationCallback(bValidated, eForm) {

	//alert('Classname: ' + eForm.className);
	if (eForm.hasClassName('skipping')){
			
		// allow submission
		return true;		
	}
	
	if (bValidated) {
	
		if (eForm.hasClassName('submitting')) {
			
			// abort submission
			return false;		
		}
		else {
		
			//disable forms
			eForm.addClassName('submitting');
			
			// disable all input buttons that submit the final form (main button) and
			// all buttons that are only clickable once
			aInputButtons = $$('#' + eForm.readAttribute('id') + ' input.mainsubmit, #' + eForm.readAttribute('id') + ' input.clickableonce');
			for (var i = 0; i < aInputButtons.length; i++) {
				disableButton(aInputButtons[i], true);
			}
			
			// disable all resetbuttons
			aResetButtons = $$('#' + eForm.readAttribute('id') + ' input[type=reset]');
			for (var i = 0; i < aResetButtons.length; i++) {
				disableButton(aResetButtons[i]);
			}
		}
	}
	
	// continue as planned
	return bValidated;
}

function disableButton(eButton, bChangeValue, sNewValue) {

	// disable visually
	eButton.addClassName('userdisabled');
	
	// change button value
	var	sMessage = sNewValue || asciiToText("Bitte warten ...");
	if (bChangeValue) {
		eButton.writeAttribute("value", sMessage);
	}
	
	// disable anything but submit buttons as this would change how a form behaves
	if (eButton.readAttribute('type') != 'submit') {
		eButton.writeAttribute('disabled', 'disabled');
	}
}

function getAbsoluteUrl(sUrl, bUseHttps)
{
	var sReturn = sUrl;
	
	if (sUrl.indexOf("http://") != 0 && sUrl.indexOf("https://") != 0)
	{
		if (bUseHttps)
		{
			sReturn = SECURE_SERVER_URL + URL_MAGIC;
		}
		else
		{
			sReturn = SERVER_URL + URL_MAGIC;
		}
		
		if (CURRENT_LANGUAGE && CURRENT_LANGUAGE != '')
		{
			sReturn += '/' + CURRENT_LANGUAGE;
		}
		
		sReturn += '/' + sUrl;
	}

	if ((IS_HTTPS || bUseHttps) && sReturn.indexOf("http://") == 0)
	{
		sReturn = sReturn.replace("http://", "https://");
	}
	
	return sReturn;
}

function joinObjects(obj1, obj2) 
{
	for (var elem in obj2) {
	
		obj1[elem] = obj2[elem];
	}
}

