// Figure out what browser is being used
var userAgent = navigator.userAgent.toLowerCase();
jQuery.browser = {
	version: (userAgent.match( /.+(?:rv|it|ra|ie|me)[\/: ]([\d.]+)/ ) || [])[1],
	chrome: /chrome/.test( userAgent ),
	safari: /webkit/.test( userAgent ) && !/chrome/.test( userAgent ),
	opera: /opera/.test( userAgent ),
	msie: /msie/.test( userAgent ) && !/opera/.test( userAgent ),
	mozilla: /mozilla/.test( userAgent ) && !/(compatible|webkit)/.test( userAgent )
};

// Globale Parameter definieren
var globalVars=new Array();

$(document).ready(function() {
	
	//
	// DOM-Manipulationen
	//
	
	// Hintergrund Inhalt oben
	$('div.main').prepend('<span class="background_top"></span>');
	
	// Hintergrund Inhalt unten
	$('div.main').append('<span class="background_bottom"></span>');
	
	// Inhalt: Überschrift H1 Tags
	$('div.content h1').wrapInner('<strong></strong>');
	
	// Inhalt: Überschrift H2 Tags
	$('div.content h2').wrapInner('<strong></strong>');

	// Hintergrund Seitenleiste oben
	$('div.sidebar').prepend('<span class="background_top"></span>');
	
	// Hintergrund Seitenleiste unten
	$('div.sidebar').append('<span class="background_bottom"></span>');
	
	// Durchgestrichene Preise
	$('div.content strike').append('<img src="/assets/site/images.default/strike.png" width="52" height="16" alt="Strike">');
	
	
	// Bugfixing IE6
	if($.browser.msie && $.browser.version=='6.0')
	{
		// Inhalt: Überschrift H1 Tags
		$('div.content h1').wrap('<table class="h1"><tr><td></td></tr></table>');
		
		// Inhalt: Überschrift H2 Tags
		$('div.content h2.box').wrap('<table class="h2_box"><tr><td></td></tr></table>');
		
		// Kontakt-Liste
		$('div.content ul.contact_list li.entry').append('<br clear="all">');
	}
	
	// Bugfixing IE7
	if($.browser.msie && $.browser.version=='7.0')
	{
		// Inhalt: Überschrift H1 Tags
		$('div.main h1').wrap('<table class="h1"><tr><td></td></tr></table>');
		
		// Inhalt: Überschrift H2 Tags
		$('div.main h2.box').wrap('<table class="h2_box"><tr><td></td></tr></table>');
	}
	
	// 404-Fehlerseite: Weiterleitung zur Startseite
	if($('body').hasClass('current_404')) setTimeout(function() { window.location.href='/'; }, 4000);
	
	
	//
	// Netzbetreiber-Vorauswahl: Tarif- und Bestellseite
	//

	$('form .Netzbetreiber input:radio').click(function()
	{	
		// Bei Änderung des Netzbetreibes, Netzbetreier per AJAX an den Server zurückmelden		
		$.get('de/meta/ajax-gateway.html', { netzbetreiber_vorauswahl: $(this).val(), time: utcTimeTillNow() });
	});
	
	
	//
	//	Tooltips
	//
	
	// Tooltips vorbereiten
	$('.show_tooltip').each(function(index) {
		
		// Alle Links anpassen
		if(this.href)
		{
			// href-Attribut entfernen ...
			$(this).data('href', this.href).removeAttr('href').addClass('link');
			
			// ... und bei Klick wieder einfügen
			$(this).click(function() {
				$(this).attr('href', $(this).data('href'));
			});
		}
	});
	
	// Tooltip Initialisieren
	$('.show_tooltip').tooltip({
		tipClass: 'tooltip',
		position: 'top right',
		offset: [0, 0],
		effect: 'fade',
		predelay: 0,
		delay: 100
	});
	
		
	//
	// Slidebox-Toggler
	//
	
	// IE8-Bugfixing
	if($.browser.msie && $.browser.version=='8.0') $('form p.var_height').wrap('<div class="ie8_wrapper"></div>');

	$('a.slidebox_switch').each(function(index) {

		$(this).click(function()
		{
			// Elemente bestimmen
			var slideboxSwitch=$(this);
			var slidebox=$('#'+slideboxSwitch.attr('id').replace('_switch', ''));
			//console.log(slideboxSwitch.attr('id').replace('_switch', ''));
			
			// Slidebox ein- / ausblenden
			$(slidebox).slideToggle(function() {
				
				// IE6- und IE7-Bugfixing
				if($.browser.msie && $.browser.version=='6.0' || $.browser.version=='7.0')
				{
					if($('div.main div.content').height()>710) $('div.main').css('height', $('div.main div.content').height());
					else $('div.main').css('height', 710);
				}
				
			});
			
			// Slidebox-Switch-Text anpassen
			if(slideboxSwitch.text()=='> > Info einblenden') slideboxSwitch.text('> > Info ausblenden');
			else if(slideboxSwitch.text()=='> > Info ausblenden') slideboxSwitch.text('> > Info einblenden');
			
			if(slideboxSwitch.text()=='> > Weitere Informationen einblenden') slideboxSwitch.text('> > Weitere Informationen ausblenden');
			else if(slideboxSwitch.text()=='> > Weitere Informationen ausblenden') slideboxSwitch.text('> > Weitere Informationen einblenden');
			
			if(slideboxSwitch.text()=='> > Показать информация') slideboxSwitch.text('> > Скрыть информация');
			else if(slideboxSwitch.text()=='> > Скрыть информация') slideboxSwitch.text('> > Показать информация');
		});
		
	});
	

	//
	// Bilderwechsel-Parameter prüfen und Bilderwechsel starten: headImages
	//

	if(typeof(headImages)!='undefined') startImageChange('7000');
	
	
	//
	// E-Mails entschlüsseln
	//

	$('a[href^=mailto:]').each(function() {
		
		// Anpassung für den Weiterempfehlen-Link verhindern
		if(!$(this).parent().hasClass('box'))
		{
			this.href=this.href.split("?")[0].replace("ANTI[at]SPAMBOT", "@");
			$(this).html($(this).html().replace("TOBMAPS]ta[ITNA", "@"));
		}
	});
	
	
	//
	// Flowplayer
	//
	
	// Parameter bestimmen
	var flowplayerTriggerArray=$('div.content a.flowplayer_trigger');
	var player=new Array();

	// Overlays anlegen
	flowplayerTriggerArray.each(function(index)
	{
		// Elemente bestimmen
		var flowplayerTrigger=$(this)
		var overlayTitle=flowplayerTrigger.attr('title');
		var flashSource=flowplayerTrigger.attr('href');
		
		// Flowplayer-Key bestimmen
		var keys=new Array();
		keys['handyservice.de']='#$ac0e0fd86d07c2a9b20';
		keys['handyhandy.de']='#$b807f18492ce0006801';
		
		// Play-Parameter setzen 360°-Ansicht
		if(flowplayerTrigger.hasClass('ansicht_360_grad'))
		{
			var overlayWidth=702;
			var overlayHeight=469;
			var scaling='fit';
			var playerControls=null;
		}
		// Play-Parameter setzen Image-Film
		else
		{
			var overlayWidth=720;
			var overlayHeight=424;
			var scaling='scale';
			var playerControls=true;
		}
		
		// Overlay-Container anlegen
		$('body').append('<div id="flowplayer_overlay_'+index+'" class="video_overlay"><a id="flowplayer_'+index+'" href="'+flashSource+'"style="display: block; width: '+overlayWidth+'px; height: '+overlayHeight+'px;" >&nbsp;</a><div class="info"><p class="caption">'+overlayTitle+'</p></div></div>');
		
		// Player initialisieren
		player[index]=flowplayer('flowplayer_'+index, '/assets/media/flowplayer/flowplayer.commercial-3.2.7.swf', 
		{
			key: keys[site],
			clip:
			{
				scaling: scaling,
				onBegin: function()
				{
		        // Play-Again-Button deaktivieren
		        this.getPlugin("play").css({opacity: 0});
		      }
			},
			plugins:
			{
				controls: playerControls
			}
		});
		
		// Standard-Klick-Aktion verhindern
		flowplayerTrigger.removeAttr('href');
		
		// IE-Bugfixing: blank.gif einfügen
		flowplayerTrigger.append('<img src="/assets/site/images.default/blank.gif" alt="'+overlayTitle+'">');
		
		// Overlay aktivieren
		flowplayerTrigger.overlay({
			target: '#flowplayer_overlay_'+index,
			mask: {
				color: 'black',
				loadSpeed: 200,
				opacity: 0.7
			},
			speed: 200,
			closeOnClick: true,
			onLoad: function() {
				player[index].load();
				_gaq.push(['_trackEvent', 'Produktvideo', 'Overlay', overlayTitle]);
			},
			onClose: function() {
				player[index].unload();
			}
		});
	});

});


//
// Funktionen Bildwechsel
//

// Funktion zum Start des Bildwechsels
function startImageChange(intervalTime)
{
	// Parameter bestimmen
	var container='p.head_image';
	var type='head';

	// Anzahl der Bilder feststellen
	var headImagesTotal=0;
	$.each(headImages, function() { headImagesTotal++; });

	// Bildwechselfunktion mit Intervall aufrufen
	setInterval('imageChange("'+type+'", "'+container+'", "'+headImagesTotal+'")', intervalTime);
}

// Funktion für den Bildwechsel
function imageChange(type, container, imagesTotal)
{
	// Parameter bestimmen
	if(type=='head')
	{
		var imagesArray=headImages;
		var imagePath=headImagePath;
	}
	
	// Neues Bild bestimmen
	var imageNo;		
	if(!globalVars['imageNo']) imageNo=2;
	else if(globalVars['imageNo']==imagesTotal) imageNo=1
	else imageNo=globalVars['imageNo']+1;
	
	var imageID='gallery_image_'+imageNo;
	globalVars['imageNo']=imageNo;

	// Neues Bild einfügen
	var newImage='<img src="'+imagePath+imagesArray[imageNo-1]+'" alt="" class="fade" id="'+imageID+'">';
	$(container).append(newImage);
	
	// Neues Bild einblenden	
	$('#'+imageID).load(function () {
		$('#'+imageID).fadeIn(1000, function() {
			
			// Altes Bild löschen und neues Bild merken
			$('#'+globalVars['imageChange']).remove();
			globalVars['imageChange']=imageID;
		});
	});
}


//
// Funktionen Divers
//

function scrollTop()
{
	// duration in ms
	var duration=1000;

	// easing values: swing | linear
	var easing='swing';

	// get / set parameters
	var target=$('#top').offset().top;

	// animate to target and set the hash to the window.location after the animation
	$('html:not(:animated),body:not(:animated)').animate({ scrollTop: target }, duration, easing);
}

// Zufallswert ermitteln
function rnd(max)
{
	var rndNum = max * Math.random();
	rndNum = Math.ceil (rndNum);
	return rndNum;
}

// Tag-Name ermitteln
$.fn.tagName=function() {
    return this.get(0).tagName.toLowerCase();
}

// Millisekunen seit dem 01.01.1970 bis jetzt ermitteln
function utcTimeTillNow()
{
	var time=new Date();
	var year=time.getFullYear();
	var month=time.getMonth();
	var day=time.getDate();
	var hours=time.getHours();
	var minutes=time.getMinutes();
	var seconds=time.getSeconds();

	return Date.UTC(year, month, day, hours, minutes, seconds);
}
