// Entry detail class
var tgmEntryDetailClass = Class.create({
	className:'tgmEntryDetailClass', 
	className:'tgmEntryDetailClass',
	menuEl:null,
	detailEl:null,
	topnavEl:null,
	bodyEl:null,
	entryId:null,
	currentPage:null,
	ivWPixel:null,
	baseUrl: null,
	path: "/cgi-bin/ivw/CP/",
	context: "MEDIA+Eintrag",
	ratingsCharCounter:null,
	ratingsCharCountMax:4000,
	ratingDefaultText: '',
	ratingDataCompleted: 'NO_STARS_AND_TEXT',
	currentRatingValue: 0,
	
	initialize:function(utilsObject)
	{
		utilsObject.log('tgmEntryDetail initialized');
		if ($('detailentry') == null) { 
			return;
		}
		
		// ratingform initialized
		if (typeof tgRatingFormClass != 'undefined') {
			tgRatingForm = new tgRatingFormClass();
		}
		
		this.detailEl = $('detailentry');

		var entryId = this.detailEl.down('div.detail').id;

		// Add menu events
		var menu = $$('div.menu');
		if (menu.length > 0) {
			menu        = menu[0];
			this.menuEl = menu;

			// Attach events to each menu link
			var links = menu.select('li a.menulink');
			if (links.length > 0) {
				links.each(function(link) {
					link.observe('click', this.handleMenuClick.bindAsEventListener(this));
				}.bind(this));
			}
		}
		
		// Attach events to each menu link
		var ratingWidget = $$('a.ratingWidget');
		if (ratingWidget.length > 0) {
			
			ratingWidget.each(function(widgetLink) {
				widgetLink.observe('click', this.handleRatingWidgetClick.bindAsEventListener(this));
			}.bind(this));
		}
		
		// Attach events to each menu link
		var mediaEntryHeader = $$('div.me_nearby_be');
		if (mediaEntryHeader.length > 0) {
			mediaEntryHeader[0].observe('click', this.handleMediaEntryHeaderClick.bindAsEventListener(this));
		}
		
		// Add top nav events
		var topnav = $$('div.topnavdetail');
		if (topnav.length > 0) {
			topnav        = topnav[0];
			this.topnavEl = topnav;

			// Dropmenu
			var selectors = this.detailEl.select('span.menu');
			selectors.each(function(topnavSelector) {
				if (topnavSelector != null) {
					var selector = new tgmDropmenuClass(topnav, utilsObject, topnavSelector);
				}
			}.bind(this));
		}

		// Like-Button tracking is documented in Wiki at http://wiki.telegate-media.de/wikka.php?wakka=slotLikeButton#paragraph2
		utilsObject.observeEvent('facebookLikeView', this.facebookLikeView.bindAsEventListener(this));

        // Sprint 10 Story 4 - Enable the following line to activate Story 4
		// Like-Button tracking is documented in Wiki at http://wiki.telegate-media.de/wikka.php?wakka=slotLikeButton#paragraph2
		utilsObject.observeEvent('facebookLikeClick', this.handleFacebookLikeClick.bindAsEventListener(this));

		// Detailview
		var divEl =  this.detailEl.down('div.detail');
		if (divEl != null) {
			var entryId = divEl.id.replace(/^entry_/, '');
		}
		this.entryId = entryId;

		this.updateContactLinks();
		this.updatePhoneLinks();
		this.updateFaxLinks();
		this.updateVcfLinks();
		this.updateSmsLinks();
		this.updateEmailLinks();
		this.updatePrintLinks();
		this.updatePdfLinks();
		this.updateBackLink();
		this.updateMapImageLink();
		this.updateVideoPreviewImageLink();
		this.updateReportLinks();
		this.updateAdditionalUrlLinks();

		// Slidebox for images
		this.updateSlidebox();

		// Get the body element
		this.bodyEl = $('detailcontainer');

		this.updateSubsidiaryForm(utilsObject);		
	
		if (typeof(_tag) != "undefined") {
			_tag.DCSext = {};
		}
		
		// Webtrends widget tracking
		var userAgent = navigator.userAgent.toLowerCase();
		
		if (document.location.hash == '#widget' && (typeof document.referrer != "undefined" && !document.referrer.match(/11880/) && !userAgent.match('googlebot'))) {
			if (this.isPremiumEntry()) {		
				dcsMultiTrack("WT.mc_id", '33018001');
			} else {
				dcsMultiTrack("WT.mc_id", '33018000');
			}
		}
		
	},
	
	isPremiumEntry:function()
	{
		return $('detailentry').hasClassName('premium');
	},
	
	isBaseEntry:function()
	{
		return $('detailentry').hasClassName('standard');
	},
	
	handleFacebookLikeClick:function(e)
	{
		if (typeof(_tag) != "undefined") {
			_tag.DCSext = {};
		}
		
		if (this.isPremiumEntry()) {
			dcsMultiTrack("DCSext.facebookLike", 'Click', "DCSext.facebookLikeEntryType", 'Premium');
		} else {
			dcsMultiTrack("DCSext.facebookLike", 'Click', "DCSext.facebookLikeEntryType", 'Standard');
		}
		
		new Ajax.Request('/ajax/facebookRating/', {
			parameters:{
				id:this.entryId
			}
		});
	},
	
	handleRatingWidgetClick:function()
	{
		if (typeof(_tag) != "undefined") {
			_tag.DCSext = {};
		}
		
		dcsMultiTrack("DCSext.linkForRatingEntry", 1);
	},
	
	handleMediaEntryHeaderClick:function(e)
	{
		var el = Event.element(e);

		if (!el.hasClassName('me_nearby_be')) {
			el = el.up('div.me_nearby_be');
		}
		
		var link = el.down('a.nearbymelink');
		
		if (typeof link != "undefined") {
			var newUrl   = link.href;
			var data     = {};
			data.element = el;
			tgmMain.fireEvent('onClickMediaEntryInBe', data);
			
			Event.stop(e);
			top.location.href = newUrl;
		}
	},
	
	updateVideoPreviewImageLink:function()
	{
		//Add Imagemap Event
		var videopreviewlinks = $$('div#detailentry div#detailcontainer div.subcolumns div.cl div#horizontal_carousel div.container ul li img.videopreview');
		if (videopreviewlinks.length > 0) {
			videopreviewlinks.each(function(videopreviewlink) {
				videopreviewlink.observe('click', this.handleVideoPreviewClick.bindAsEventListener(this));
			}.bind(this));
		}
	},
	
	updateMapImageLink:function()
	{
		//Add Imagemap Event
		var imagemaplinks = $$('div#detailentry div#detailcontainer p.location a.mapimage');
		if (imagemaplinks.length > 0) {
			imagemaplinks.each(function(imagemaplink) {
				imagemaplink.observe('click', this.handleLocationImagemapClick.bindAsEventListener(this));
			}.bind(this));
		}
	},

	updateSlidebox:function()
	{
		var slidebox = $('horizontal_carousel');
		if (slidebox != null) {
			var mediaSlidebox  = this.detailEl.down('div.slidebox');
			var singleSlidebox = slidebox.down('div.singlepicture');
			if (singleSlidebox == null) {
				var slidebox = new tgmSlideboxClass(slidebox, mediaSlidebox);
			}
		}
	},

	updateContactLinks:function()
	{
		var emailLinks = this.detailEl.select('img.contact:not([rel=noaction]), a.contact');
		if (emailLinks.length > 0) {
			emailLinks.each(function(emailLink) {
				if (typeof emailLink.observed == 'undefined' || emailLink.observed == 0) {
					emailLink.observe('click', this.handleContactEmailClick.bindAsEventListener(this));
					emailLink.observed = 1;
				}
			}.bind(this));
		}
	},

	updatePhoneLinks:function()
	{
		var phoneLinks = this.detailEl.select('a.phone');
		if (phoneLinks.length > 0) {
			phoneLinks.each(function(phoneLink) {
				if (typeof phoneLink.observed == 'undefined' || phoneLink.observed == 0) {
					phoneLink.observe('click', this.handleFreecallClick.bindAsEventListener(this));
					phoneLink.observed = 1;
				}
			}.bind(this));
		}
	},

	updateFaxLinks:function()
	{
		var faxLinks = this.detailEl.select('a.fax');
		if (faxLinks.length > 0) {
			faxLinks.each(function(faxLink) {
				if (typeof faxLink.observed == 'undefined' || faxLink.observed == 0) {
					faxLink.observe('click', this.handleFaxClick.bindAsEventListener(this));
					faxLink.observed = 1;
				}
			}.bind(this));
		}
	},

	updateVcfLinks:function()
	{
		var vcfLinks = this.detailEl.select('a.vcf');
		if (vcfLinks.length > 0) {
			vcfLinks.each(function(vcfLink) {
				if (!vcfLink.hasClassName('disabled') && (typeof vcfLink.observed == 'undefined' || vcfLink.observed == 0)) {
					vcfLink.observe('click', this.handleVcfClick.bindAsEventListener(this));
					vcfLink.observed = 1;
				}
			}.bind(this));
		}
	},

	updateSmsLinks:function()
	{
		var smsLinks = this.detailEl.select('a.sms');
		if (smsLinks.length > 0) {
			smsLinks.each(function(smsLink) {
				if (!smsLink.hasClassName('disabled') && (typeof smsLink.observed == 'undefined' || smsLink.observed == 0)) {
					smsLink.observe('click', this.handleSmsClick.bindAsEventListener(this));
					smsLink.observed = 1;
				}
			}.bind(this));
		}
	},

	updateEmailLinks:function()
	{
		var emailLinks = this.detailEl.select('a.email');
		if (emailLinks.length > 0) {
			emailLinks.each(function(emailLink) {
				if (!emailLink.hasClassName('disabled') && (typeof emailLink.observed == 'undefined' || emailLink.observed == 0)) {
					emailLink.observe('click', this.handleEmailClick.bindAsEventListener(this));
					emailLink.observed = 1;
				}
			}.bind(this));
		}
	},

	updatePrintLinks:function()
	{
		var printLinks = this.detailEl.select('a.printview');
		if (printLinks.length > 0) {
			printLinks.each(function(printLink) {
				if (!printLink.hasClassName('disabled') && (typeof printLink.observed == 'undefined' || printLink.observed == 0)) {
					printLink.observe('click', this.handlePrintClick.bindAsEventListener(this));
					printLink.observed = 1;
				}
			}.bind(this));
		}
	},

	updatePdfLinks:function()
	{
		var pdfLinks = this.detailEl.select('a.pdfcurrent');
		if (pdfLinks.length > 0) {
			pdfLinks.each(function(pdfLink) {
				if (!pdfLink.hasClassName('disabled') && (typeof pdfLink.observed == 'undefined' || pdfLink.observed == 0)) {
					pdfLink.observe('click', this.handlePdfClick.bindAsEventListener(this));
					pdfLink.observed = 1;
				}
			}.bind(this));
		}
	},
	
	
	updateSubsidiaryForm:function(tgmMain)
	{
		var detailForm = $('pandoraForm');
		if (detailForm != null) {
			tgmMain.fireEvent('onNewForm');

			// Selectbox
			var selectbox = $('sort');
			if (selectbox != null) {
				var sort_selectbox = new tgmSelectboxClass(tgmMain, selectbox);
				var foldoutEl      = selectbox.down('span.selectbox_options');
				if (foldoutEl != null) {
					var links = foldoutEl.select('li a, li a img');
					if (links.length > 0) {
						links.each(function(link) {
							link.observe('click', this.getSubsidiaries.bindAsEventListener(this));
						}.bind(this));
					}
				}
			}

			// Subsidiary search form
			var allSubsidiaries = detailForm.down('a.allSubsidiaries');
			if (allSubsidiaries != null) {
				allSubsidiaries.observe('click', this.getSubsidiaries.bindAsEventListener(this));
			}
			var mapView = detailForm.down('a.mapView');
			if (mapView != null) {
				mapView.observe('click', this.displayMap.bindAsEventListener(this));
			}
			var searchSubsidiaries = detailForm.down('button.searchSubsidiaries');
			if (searchSubsidiaries != null) {
				searchSubsidiaries.observe('click', this.getSubsidiaries.bindAsEventListener(this));
			}

			var dropdowns = $$('div.dropdown');
			if (dropdowns.length > 0) {
				dropdowns.each(function (dropdown) {
					if (typeof dropdown.dropdown == 'undefined') {
						var singleDropdown = new tgmUiDropdownClass(tgmMain, dropdown);
						tgmMain.objectPool.push(singleDropdown);
					}
				}.bind(this));
			}

		}

	},
	
	updateBackLink:function()
	{		
		var linkies = $$('div.backtolist');
		if (linkies.length > 0) {
			
			var backlink = linkies[0];
			
			if (history.length == 1 || history.length == 0) {
				backlink.hide();
			} else {
				backlink.show();
			}
		}
	},
	
	updateReportLinks:function()
	{	
		// Add report rating event
		var ratingList = $('ratingList');
		if (ratingList != null) {
			reportElements = ratingList.select('a.report');
			if (reportElements.size() > 0) {

				var ratingsTools              = new tgmRatingsToolsClass();
				this.reportbuttonClickHandler = ratingsTools.handleReportRatingClick.bindAsEventListener(this);
				
				
				reportElements.each(function(reportEl) {
					if (reportEl != null) {
						reportEl.observe('click', this.reportbuttonClickHandler.bindAsEventListener(this));
					}
				}.bind(this));
			}
		}
	},
	

	updateAdditionalUrlLinks:function()
	{
		// Attach events to each additional link
		var additionalUrls = $$('a.additionalUrl');
		if (additionalUrls.length > 0) {
			additionalUrls.each(function(link) {
				link.observe('click', this.handleAdditionalUrlClick.bindAsEventListener(this));
			}.bind(this));
		}
	},
	
	
	handleLocationImagemapClick:function(e)
	{
		if (pandoraData.premiumDomain == 0) {
		
			tgmMain.fireEvent('onLocationImagemapClick', e);
			var el = Event.element(e);
			
			if (el.tagName.toLowerCase() != 'a') {
				el = el.up('a');
			}
			
			if (el != null) {
				Event.stop(e);
				var url = el.href + '?ajax=1';
			}
			
			var menuElements = $$('div#detailentry div.tabs ul li');
			
			//Select map tab
			var newCurrentTab = $$('div#detailentry div.tabs ul li a.map');
			//if subsidiaries tab exist, take second list element
			if (newCurrentTab.length > 1) {
				newCurrentTab = $$('div#detailentry div.tabs ul li a.map')[1];
			}
			else {
				newCurrentTab = $$('div#detailentry div.tabs ul li a.map')[0];
			}
			newCurrentTab = newCurrentTab.up('li');
			
			if (menuElements.length > 0) {
				menuElements.each(function(menuElement){
					menuElement.removeClassName('current');
					if (menuElement === newCurrentTab) {
						menuElement.addClassName('current');
					}
				});
			}
			this.updateDetailContent(url, 'map');
		}
	},

	handleContactEmailClick:function(e)
	{
		tgmMain.fireEvent('onClickDialogContactEmail', { entryId:this.entryId });
		Event.stop(e);
	},

	handleFreecallClick:function(e)
	{
		var el = Event.element(e);
		if (el.rel != null && el.rel != "" && el.rel.substr(0, 1) == "Z") {
			//Entry id is attached to link, for example in subsidiary list			
			tgmMain.fireEvent('onClickDialogFreecall', { entryId:el.rel });
		} else {
			tgmMain.fireEvent('onClickDialogFreecall', { entryId:this.entryId });			
		}
		Event.stop(e);
	},

	handleFaxClick:function(e)
	{
		var el = Event.element(e);
	
		tgmMain.fireEvent('onClickDialogFax', { entryId:this.entryId });
			
		Event.stop(e);
	},

	handleVcfClick:function(e)
	{
		tgmMain.fireEvent('onClickVcfDownload', { entryId:this.entryId });
		// Nothing to do as real file download only via PHP!
		//Event.stop(e);
	},

	handleSmsClick:function(e)
	{
		tgmMain.fireEvent('onClickDialogSms', { entryId:this.entryId });
		Event.stop(e);
	},

	handleEmailClick:function(e)
	{
		tgmMain.fireEvent('onClickDialogEmail', { entryId:this.entryId });
		Event.stop(e);
	},

	handlePrintClick:function(e)
	{
		tgRoa.sendToServer(this.entryId, 'print');
		window.print();
		Event.stop(e);
	},

	handlePdfClick:function(e)
	{
		var newUrl = Event.element(e).href; //+'&pagetype='+this.getPageType();
		Event.stop(e);
		tgmMain.fireEvent('onClickCreatePdf', { entryId:this.entryId });
		top.location.href = newUrl;
	},
	
	handleAdditionalUrlClick:function(e)
	{
		// nothing else to do than roatracking (the rest is done directly "window.open") 
		tgRoa.sendToServer(this.entryId, 'additionalUrl');
	},
	
	
	handleVideoClick:function(e)
	{
		
		tgRoa.sendToServer(this.entryId, 'video');

		if (typeof(e) != "undefined") {
			if (typeof(_tag) != "undefined") {
				_tag.DCSext = {};
			}
			dcsMultiTrack("DCSext.mediaEntryVideo", 'video', "DCSext.mediaEntryVideoReferrer", document.location.href);		

			return "";
		}
	},
	
	handleVideoPreviewClick:function(e)
	{
		
		if (typeof(_tag) != "undefined") {
		    _tag.DCSext = {};
		}
		dcsMultiTrack("DCSext.mediaEntryVideo", 'detail', "DCSext.mediaEntryVideoReferrer", document.location.href);		
		 
		tgmMain.fireEvent('onVideoPreviewClick', e);
		var el = Event.element(e);
		
		if (el.tagName.toLowerCase() != 'img') {
			el = el.up('img');
		}
		if (el != null) {
			Event.stop(e);
		}
		
		var menuElements = $$('div#detailentry div.tabs ul li');
		
		//Select multimedia tab
		var newCurrentTab = $$('div#detailentry div.tabs ul li a.media');
		//if subsidiaries tab exist, take third list element
		if (newCurrentTab.length > 0){
			newCurrentTab = $$('div#detailentry div.tabs ul li a.media')[0];
			var url       = newCurrentTab.href + '?ajax=1&autoplay=true';
		}
		
		newCurrentTab = newCurrentTab.up('li');

		if (menuElements.length > 0) {
			menuElements.each(function(menuElement) {
				menuElement.removeClassName('current');
				if (menuElement === newCurrentTab) {
					menuElement.addClassName('current');
				}
			});
		}
		
		this.updateDetailContent(url, 'media');

	},

	handleMenuClick:function(e)
	{
		tgmMain.fireEvent('onDetailMenuClick', e);
		var el = Event.element(e);

	
		if (el.tagName.toLowerCase() != 'a') {
			el = el.up('a');
		}
		
		var currentClass = tgmMain.getClassesWithout(el, 'menulink');
		var newLi        = el.up('li');

		var listElements = el.up('ul').select('li');
		if (listElements.length > 0) {
			listElements.each(function(listElement) {
				listElement.removeClassName('current');
				if (listElement === newLi) {
					listElement.addClassName('current');
				}
			});
		}
		
		if (typeof(_tag)!="undefined"){
			_tag.DCSext = {};	
		}
		
		if (el != null) {
			Event.stop(e);
			var url = el.href+'?ajax=1';
		

			if (el.hasClassName("subsidiaries") && el.hasClassName ("menulink")) {
				if (pandoraData.premiumDomain == 0) {
					dcsMultiTrack("DCSext.tabClick", 'subsidiaries');
				}
			}
			
			if (el.hasClassName("detail") && el.hasClassName ("menulink")) {

				if (pandoraData.premiumDomain == 0) {
					dcsMultiTrack("DCSext.tabClick", 'detail');
				}
			}
			
			if (el.hasClassName("map") && el.hasClassName ("menulink") && !el.hasClassName("subsidiaries")) {
				if (pandoraData.premiumDomain == 0) {
					dcsMultiTrack("DCSext.tabClick", 'map');
				}
			}
			
			if (el.hasClassName("media") && el.hasClassName ("menulink")) {
				if (pandoraData.premiumDomain == 0) {
					dcsMultiTrack("DCSext.tabClick", 'media');
				}
			}
			
			
			if (el.hasClassName("subsidiaries") && el.hasClassName ("menulink")) {
				if(!tgmMain.isPreview()) {
					this.displayMap(e);
				} else {
					this.updateDetailContent(url, "subsidiaries");
				}
				return;
			}
						
			var rating = el.href.match(/\,(rating)\.html$/);
			
			if(rating){
				
				if (typeof(_tag)!="undefined"){
					_tag.DCSext = {};	
				}
				
				if (pandoraData.premiumDomain == 0) {
					dcsMultiTrack("DCSext.ratingClick", '1');
					dcsMultiTrack("DCSext.tabClick", 'rating');
				}
			}
			
			var matches = el.href.match(/\/(filialen|karte|multimedia|mypage-1|bewertungen)\.html$/);
			
			if (matches || el.href.match(/\/$/)) {
				
				// Premium domain call, must be rewritten
				if (el.href.match(/\/$/)) {
					var urlName = 'detail';
				} else {
					var urlName = matches[1];
				}
				var pageType = 'detail';

				switch(urlName)
				{
					case 'filialen':
						pageType = 'subsidiaries';
					break;
					case 'karte':
						pageType = 'map';
					break;
					case 'multimedia':
						pageType = 'media';
					break;
					case 'mypage-1':
						pageType = 'mypage-1';
					break;
					case 'bewertungen':
						pageType = 'rating';
					break;
				}
			
				url = '/ajax/premiumDomain?id='+this.entryId+'&pagetype='+pageType;
				
			}
			
			
			if (pandoraData.premiumDomain != 1) {
				
				if(pageType != 'map'){
					
					this.ivWPixel                  = document.createElement("img");
					this.ivWPixel.style.width      = "1px";
					this.ivWPixel.style.height     = "1px";
					this.ivWPixel.style.visibility = "hidden";
					
					if ($("klicktel")){
						$("klicktel").appendChild (this.ivWPixel);
					} else if ($("telegate")){
						$("telegate").appendChild (this.ivWPixel);						
					}
					this.baseUrl = "http://klicktel.ivwbox.de";
					
					if (($("klicktel") != null && typeof($("klicktel")) != "undefined") ||
					($("telegate") != null && typeof($("telegate")) != "undefined")) {
						this.ivWPixel.src = this.baseUrl + this.path + this.context + ";/?r=" + document.referrer + "&d=" + (Math.random() * 100000);
					}
					
					if (typeof(_tag)!="undefined"){
						_tag.DCSext = {};
						_tag.dcsCollect();
					}

				}
			}
			
			this.updateDetailContent(url, currentClass);
			
			if (pageType == 'detail') {
				this.updateEmailLinks();
				this.updateAdditionalUrlLinks();
			}
			
		}
	},

	updateDetailContent:function(url, page)
	{
			tgmMain.fireEvent('beforeUpdateDetailContent');
			if (tgmMain.tgUserRatings != null) {
				tgmMain.tgUserRatings.unsetLinkObservers();
			}
			
			
			this.bodyEl.setStyle({
				height:'auto'
			});
			var indicatorHTML = '<div class="ajaxloader"><img src="/global/img/ajaxloader.gif" alt=""></div>';
			this.bodyEl.update(indicatorHTML);
			this.bodyEl.show();
								
			new Ajax.Request(url, {
				method: 'get',
				evalScripts:true,
					onComplete: function(transport) {
				
						if (page == 'mypage') {
							$$('a.pdfcurrent')[0].hide();
						} else {
							$$('a.pdfcurrent')[0].show();
						}
						$('detailcontainer').update(transport.responseText);
						this.currentPage = page;
												
						this.updateEmailLinks();
						this.updateSlidebox();
						this.updateSubsidiaryForm(tgmMain);
						this.updateMapImageLink();
						this.updateVideoPreviewImageLink();
						this.updateReportLinks();
						this.updateAdditionalUrlLinks();
						this.updateContactLinks();
						
						tgRatingForm.updateRatingStars(); 
						tgRatingForm.updateTextCounterElement();

						tgmMain.fireEvent('updateDetailContent');
						
						if (tgmMain.tgUserRatings != null) {
							tgmMain.tgUserRatings.setLinkObservers();
						}
						
						tgmMain.handleFacebookButton();
						
						var currentPdfEl  = this.topnavEl.down('a.pdfcurrent');
						currentHref       = currentPdfEl.href;
						var matches       = currentHref.match(/pdf\/([0-9A-Z]+)-([a-z]+)-(.*)$/);
						var newHref       = '/pdf/'+matches[1]+'-'+page+'-'+matches[3];
						currentPdfEl.href = newHref;

						$(this.bodyEl).show();

						this.updatePhoneLinks();
						this.updateFaxLinks();
						if (page == 'media') {
							window.location.hash = 'video_clip';							
						} else {
							window.location.hash = '';
						}
					}.bind(this)
			});
	},

	getSubsidiaries:function(e)
	{
		var el = Event.element(e);
		
		if (el.hasClassName('searchSubsidiaries')) { //
			
			var searchterm = $F('searchterm');
			var street     = $F('street');
			var zipcity    = $F('zipcity');
			url            = '/ajax/premiumDomain/getSubsidiaries?id='+this.entryId+'&searchterm='+searchterm+'&street='+street+'&zipcity='+zipcity;
		
		} else if (el.hasClassName('selectbox_option')) { // Selectbox option links
			
			var searchterm = $('searchterm').value;
			var street     = $('street').value;
			var zipcity    = $('zipcity').value;
			var sort       = el.id;
			url            = '/ajax/premiumDomain/getSubsidiaries?id='+this.entryId+'&searchterm='+searchterm+'&street='+street+'&zipcity='+zipcity+'&sort='+sort;
		
		} else {
			
			$('searchterm').value = $('searchterm').getAttribute('alt');
			$('street').value     = $('street').getAttribute('alt');
			$('zipcity').value    = $('zipcity').getAttribute('alt');
			url                   = '/ajax/premiumDomain/getSubsidiaries?id='+this.entryId+'&returnAll=1';
		}

		this.updateSubsidiaryList(url);
		Event.stop(e);
	},

	displayMap:function(e)
	{
		url = '/ajax/premiumDomain/displayMap?id='+this.entryId+'&pagetype=subsidiaries';
		this.updateDetailContent(url, "subsidiaries");
		Event.stop(e);
	},
	
	
	displayList: function() {
		url = '/homepage/detail?id='+this.entryId+'&pagetype=subsidiaries&ajax=1';
		this.updateDetailContent(url, "subsidiaries");

		if(tgmMain.isPreview()) {
			return;
		}

		this.ivWPixel                  = document.createElement("img");
		this.ivWPixel.style.width      = "1px";
		this.ivWPixel.style.height     = "1px";
		this.ivWPixel.style.visibility = "hidden";
		
		// mogr(07.01.2012): added condition
		if ($("klicktel")){
			$("klicktel").appendChild (this.ivWPixel);
		} else if ($("telegate")){
			$("telegate").appendChild (this.ivWPixel);						
		}
		
		this.baseUrl = "http://klicktel.ivwbox.de";
		
		if (($("klicktel") != null && typeof($("klicktel")) != "undefined") ||
		($("telegate") != null && typeof($("telegate")) != "undefined")) {
			this.ivWPixel.src = this.baseUrl + this.path + this.context + ";/?r=" + document.referrer + "&d=" + (Math.random() * 100000);
		}
		if (typeof(_tag)!="undefined"){
			_tag.DCSext = {};
			_tag.dcsCollect();
		}
	},

	updateSubsidiaryList:function(url)
	{
		var resultBox     = this.bodyEl.down('div.resultbox');
		var currentHeight = resultBox.getHeight();
		
		$("pandoraForm").style.display = "block";
		
		resultBox.setStyle({
			height:currentHeight+'px'
		});

		var indicatorHTML = '<div class="ajaxloader"><img src="/global/img/ajaxloader.gif"></div>';
		$(resultBox).update(indicatorHTML);

		new Ajax.Request(url, {
			method: 'get',
			evalScripts:true,
				onSuccess: function(transport) {
					$(resultBox).update(transport.responseText);

					// Display page content
					$(resultBox).show();

					this.updateEmailLinks();
					this.updateSlidebox();
				}.bind(this)
		});
	},

	getPageType:function()
	{
		if (pageTypes = location.href.match(/#(.*)/)) {
			return pageTypes[1];
		}
		return 'detail';
	},
	
	facebookLikeView:function(e)
	{
		if (typeof(_tag) != "undefined") {
			_tag.DCSext = {};
		}

		if (this.isPremiumEntry()) {
			dcsMultiTrack("DCSext.facebookLike", 'View', "DCSext.facebookLikeEntryType", 'Premium');
		} else {
			dcsMultiTrack("DCSext.facebookLike", 'View', "DCSext.facebookLikeEntryType", 'Standard');
		}
	},
	
	handleGooglePlusClick:function(jsonParam)
	{
		if (jsonParam.state == 'on') {
			new Ajax.Request('/ajax/googleRating/save',
				{ 
					onComplete: function() {
						window.location.reload();
					},
					parameters:{
						id:this.entryId
					}
				});
		}
	}
});

var tgmEntryDetail;

function callbackGooglePlus(jsonParam)
{
	tgmEntryDetail.handleGooglePlusClick(jsonParam);
}

