/***************************************************************************************************
 * Global Vars
 ***************************************************************************************************/

	var globalInterval = 0;
	var introIsRunning = false;
	var naviFirstLevel = '';
	var naviSecondLevel = '';
	var isResizing;
	var scrollPane;
	var shortTimeout = 0;
	var $obj = [];
	
	var isIE6 = ($.browser.msie && parseInt($.browser.version)==6);
	var isIE7 = ($.browser.msie && parseInt($.browser.version)==7);
	var isIE8 = ($.browser.msie && parseInt($.browser.version)==8);
	var isSafari = $.browser.safari;
	var isMozilla = $.browser.mozilla;
	var isMobile = (navigator.userAgent.match(/iPhone/i)) || (navigator.userAgent.match(/iPod/i)) || (navigator.userAgent.match(/iPad/i))||(navigator.userAgent.match(/Android/i));



/***************************************************************************************************
 * DOM-Ready
 ***************************************************************************************************/
 
	$(function(){
		$obj['window'] = $(window);
		$obj['content-area'] = $('#content-area');
		$obj['fixed-area'] = $obj['content-area'].children('#fixed-area');
		$obj['scroll-area'] = $obj['content-area'].children('#scroll-area');
		$obj['content'] = $obj['scroll-area'].children('#content');
		$obj['navi'] = $('#navi');
		$obj['award'] = $('#award');
		
		//$obj['iscroll'] = new iScroll('content', {desktopCompatibility:true});
		//document.addEventListener('touchmove', function (e) { e.preventDefault(); }, false);

		$obj['window'].bind('resize.resizeHandler', resizeHandler);
		scrollHandler();
		
		if(SWFAddress.getPath()!='/') {
			$('#navi').css({left:0});
			$('#subnavi').css({left:222});
		}
		$('#skin-switch').css({bottom:-70});
		replaceCufon();
	});
	

/****************************************************************************************************************************************
 * Event Handler
 ***************************************************************************************************************************************/
 
	function handleChange(event) {
		trace('@event handleChange ***********************************************************************');
			
		//Reset Content Area ----------------------------------------------------------------------------------------------
			resetContentArea();
			
		//Set Title -------------------------------------------------------------------------------------------------------
			SWFAddress.setTitle(formatTitle());
			
		//Intro -----------------------------------------------------------------------------------------------------------				
			if(SWFAddress.getPath()=='/') {
				$obj['scroll-area'].css({overflow:'hidden'});
				intro(event);
				initSlideShow();	
			}
		//Übersicht: Menschen, Agentur, Kreation
			else{
				$obj['scroll-area'].css({overflow:'auto'});
				$obj['content'].html('<img id="hundertgrad-loader" src="/wp-content/themes/hundertgrad/media/loader_small.gif" alt="Loading" />');
				handleNavigation(event);
			}
	}

	SWFAddress.addEventListener(SWFAddressEvent.CHANGE, handleChange);



/************************************************************************************************************************************
 * Reset Content Area
 ************************************************************************************************************************************/
	
	function resetContentArea(){
		trace('.  @function resetContentArea');
		if(globalInterval) clearInterval(globalInterval);
		$obj['navi'].find("a").unbind('mouseenter mouseleave');
		$('#subnavi-thumbs').html('');
		$obj['content'].css('marginTop',0);
		if($obj['award'].length) $obj['award'].css({marginRight:0});
		//resizeHandler();
	}
	
	
/************************************************************************************************************************************
 * Intro Animation
 ************************************************************************************************************************************/
	
	function intro(event){
		trace('.  .  @function intro');
		introIsRunning = true;
		$('#hundertgrad-visual').hide();
		$obj['comp-slideshow'] = $('#comp-slideshow');
		
		initIntroNavi();
		
		$obj['navi'].css({left:-242}).delay(1000).animate({left: 0}, 1500,null,'easeOutExpo');
		$('#subnavi').css({left:-120}).delay(1800).animate({left: 222}, 900,function(){
			introIsRunning = false;
			$obj['comp-slideshow'].startSlideShow();
			$obj['comp-slideshow'].nextSlide();
		});
	}
	
	function initIntroNavi(){
		trace('initIntroNavi');
		if($obj['navi'].hasClass('navi-intro')) return;
		$obj['navi'].find('a.level-1').bind({
			mouseover:handlerOverIntroNavi,
			mouseout:handlerOutIntroNavi,
			click:removeHandlerIntroNavi
		});
		handlerOutIntroNavi();
	}
	
	function handlerOverIntroNavi(){
		$obj['navi'].removeClass('navi-intro');
		cufonRefreshNavi();
	}
	
	function handlerOutIntroNavi(){
		$obj['navi'].addClass('navi-intro');
		cufonRefreshNavi();
	}
	
	function removeHandlerIntroNavi(){
		$obj['navi'].find('a.level-1').unbind({
			mouseover:handlerOverIntroNavi,
			mouseout:handlerOutIntroNavi,
			click:removeHandlerIntroNavi
		});
		handlerOverIntroNavi();
	}
 

/************************************************************************************************************************************
 * Navigation
 ************************************************************************************************************************************/
 	
	function getPathNames(){
		var fullPath = [];
		var host = document.location.host;
		var href = document.location.href;
		var pos = href.indexOf(host);
		var path = href.substr(pos+host.length);
			path = path.replace(/\/\//g,'/');
			path = path.replace(/^\//,'');
			path = path.replace(/\/$/,'');
			if(path!='') fullPath = path.split('/');
			fullPath.unshift(host);
			return fullPath;
	}
	
	function handleNavigation(event){
		trace('.  .  @function handleNavigation');
		
		if($('#superbgimage').length>0) removeSlideShow();
		$('#hundertgrad-visual').show();
		
		var currentPath = SWFAddress.getPathNames();
		var isOpen = $('#navi .open');
		var currentLevel1 = $('a[rel$="'+currentPath[0]+'"]').parent();
		var isActive = $('#navi .active');
		var hasOver = $('#navi .over');
		
		if(isOpen.attr('id')!=currentLevel1.attr('id')){
			if(isOpen.length>0){
				isOpen.removeClass('open').find('.navi-wrap').slideUp(300);
			}
			currentLevel1.addClass('open').find('.navi-wrap').delay(300).slideDown(700);
			
			$('#subnavi').animate({left: '110'}, 300).animate({left: '220'}, 700);
		}
		
		if(isActive.length>0) isActive.removeClass('active');
		if(hasOver.length>0) hasOver.removeClass('over');
		
		if(currentPath[1]){
			var cp = (currentPath[2]) ? currentPath[2] : currentPath[1];
			var currentLevel2 = $('a[rel$="'+cp+'"]');
			currentLevel2.addClass('active');
		}
		
		
		ajaxRequest(event);
		
		if(currentPath[0]=='kontakt' || currentPath[0]=='impressum'|| currentPath[0]=='berichtswesen'){
			initIntroNavi();
			return;
		};
		
		
		cufonRefreshNavi();
	}
	
	
/************************************************************************************************************************************
 * AJAX Request
 ************************************************************************************************************************************/

	function ajaxRequest(event){
		
		//if($('#content').hasClass('ajax')){
			var parameters = '';
			for (var p in event.parameters) {
				parameters += '&' + p + '=' + event.parameters[p];
			}
			
			$.ajax({ url: '/wp-content/plugins/hundertgrad/ajax.php?swfaddress=' + event.path + parameters,
				success: function(data, textStatus, XMLHttpRequest){
					if(textStatus=='success'){
						$obj['content'].html(XMLHttpRequest.responseText);
						var visualClass = $('#hundertgrad-visual-gen').attr('class');
						$('#hundertgrad-visual').removeClass().addClass(visualClass);
						
						cufonReplaceContent();
						interface();
					}
					else{
						$obj['content'].html('<div class="error">Es gab einen Fehler beim XMLHttpRequest.</div>');
					}
				},
				error: function(XMLHttpRequest, textStatus, errorThrown){
					
					//404 Seite per ajax nachladen
					$.ajax({ url: '/wp-content/plugins/hundertgrad/ajax.php?swfaddress=/seite-nicht-gefunden',
						success: function(data, textStatus, XMLHttpRequest){
							if(textStatus=='success'){
								$obj['content'].html(XMLHttpRequest.responseText);
								
								var visualClass = $('#hundertgrad-visual-gen').attr('class');
								$('#hundertgrad-visual').removeClass().addClass(visualClass);
								
								cufonReplaceContent();
								interface();
							}
						}
					});

				}
			});

	}

	
/***********************************************************************************************************************************
 * Build interface after dom and images are loaded
 ***********************************************************************************************************************************/
	
	function interface(){
		trace('.  .  .  .  @func interface');
		
		if($('#menschen').length) 				createOverviewHumans();
		else if($('.comp-overview').length)		createOverview();
		
		if($('.comp-coda-slide').length) 		createCodaSlide();
		if($('.comp-flv-player').length) 		createFLVPlayer();
		if($('#gmap').length) 					initGMap();
		if($('.feeds').length) 					loadFeeds();
		if($('.project').length) 				createThumbs();
		if($('#florian-inger').length) 			loadXMLFlorianInger();
		
		
				//$obj['florian-inger'] = $('#florian-inger');
		
		var prettyPhotoNodes = $("#content a[rel^='prettyPhoto']");
        if (prettyPhotoNodes.length) {
    	   prettyPhotoNodes.prettyPhoto();
        }

        resizeHandler();
	}


/***********************************************************************************************************************************
 * Special: Florian Inger
 ***********************************************************************************************************************************/
	
	function loadXMLFlorianInger(){
		var baseURL = '/wp-content/themes/hundertgrad/media/special/f_inger/';
		//trace(SWFAddress.getPath());
		//trace(getPathNames()[3]);
		var fiuid = getPathNames()[3];
		$('#florian-inger').hide().unwrap();
		
		$.ajax({
			url:baseURL+'user.xml?2',
			success:function(data,status,xhr){
				var $user = 0;
				$(xhr.responseText).find('User').each(function(i,el){
					if($(el).children('ID').text()==fiuid) $user = $(el);
				});
				initFlorianInger($user,baseURL,fiuid);
			}
		});
	}
	
	function initFlorianInger($user,baseURL,fiuid){

		var user = {
			anrede:		'meine Damen und Herren',
			titel:		'',
			vorname: 	'',
			nachname:	'',
			anredeSound:'anrede/anrede_625.mp3'
		}
		if($user.length){
			user.anrede = $user.children('Anrede').text()+' ';
			if($user.children('Titel').text().length) 		user.titel = $user.children('Titel').text()+' ';
			if($user.children('Vorname').text().length) 	user.vorname = $user.children('Vorname').text()+' ';
			if($user.children('Nachname').text().length) 	user.nachname = $user.children('Nachname').text();
			user.anredeSound = 'anrede/anrede_'+fiuid+'.mp3';
		}
		var flashvars = {
			baseURL:	baseURL,
			soundFile:	user.anredeSound,
			soundFile2: "begruessung.mp3",
			userName:	'Hallo '+user.anrede+user.titel+user.nachname+","
		};
		var params = {
			wmode:'transparent'
		};
		var attributes = {
			wmode:'transparent'
		};		
		
		if(swfobject.hasFlashPlayerVersion('9')){
			swfobject.embedSWF(baseURL+"main.swf", "florian-inger", "100%", "670", "9.0.0", "expressInstall.swf", flashvars, params, attributes);
			if(!$('#florian-inger-restart').length){
				$('#content').prepend('<div id="florian-inger-restart"></div>');	
				$('#florian-inger-restart').click(function(e){
					swfobject.embedSWF(baseURL+"main.swf", "florian-inger", "100%", "670", "9.0.0", "expressInstall.swf", flashvars, params, attributes);
					$obj['#florian-inger'] = $('#florian-inger');
					resizeHandler();
				});
			}
		}
		else{
			$('#florian-inger').find('#florian-inger-text h3').text('Hallo '+user.anrede+user.titel+user.nachname+",");
			Cufon.replace('h3');
		}
		$('#content').prepend('<div id="florian-inger-visitenkarte"><a href="javascript://" onclick="$(this).parent().fadeOut()" class="florian-v-close"></a><a href="mailto:f.inger@hundertgrad.de" class="florian-v-email"></a><a href="http://www.hundertgrad.de" class="florian-v-website"></a></div>');	
		$obj['#florian-inger'] = $('#florian-inger').show().prependTo('#content');
		resizeHandler();
	}
	
	function showContactFlorianInger(){
		//SWFAddress.setValue('kontakt');
		//trace(showContact);
		$('#florian-inger-visitenkarte').fadeIn();
	}


/***********************************************************************************************************************************
 * Create Thumbs
 ***********************************************************************************************************************************/
 
	function createThumbs(){
		//trace('.  .  .  .  .  @func createThumbs');
		$obj['subnavi-thumbs'] = $('#subnavi-thumbs');
		var wrap = $('#subnavi-thumbs-generated .wrap');
		var items = $('.subnavi-thumbs-item');
		
		$obj['subnavi-thumbs'].html('');
		wrap.prependTo($obj['subnavi-thumbs']);
		wrap.hide().delay(500).show();
		
		items.each(function(index,el){
			$(el).bind({
				mouseover: function(){
					$(this).find('img').stop().animate({marginLeft:0},300); 
					if(isMobile) $(this).trigger('click'); //iPad Bug: Click Event is not triggerd by default
				},
				mouseout: function(){
					if(!$(this).hasClass('show')) $(this).find('img').stop().animate({marginLeft:-70},300);
				},
				click: function(){
					scrollToProject(el,index);
				}		   
			});
		});
		
	}
	
	
	function scrollToProject(el,index){

		$obj['subnavi-thumbs'].find('.show').removeClass('show').children('img').stop().animate({marginLeft:-70},300);
		$(el).addClass('show');
		var scrollTop = index*700;
		
		$obj['scroll-area'].scrollTo(scrollTop,300,{easing:'easeOutExpo'});
	}


/***********************************************************************************************************************************
 * ImageWall > Overview
 * Fancy Hover Effects for modern browsern
 * Hover Effects are disabled for mobile browsers  with touchpad
 ***********************************************************************************************************************************/
	
	function createOverview(){
		
		var holder = ('#comp-resize-overlay');
		var jumper = $('#comp-resize-overlay-jumper');
		var imageWidth = parseInt(jumper.attr('data-image-width'));
		var imageHeight = parseInt(jumper.attr('data-image-height'));
		var lineNum = parseInt(jumper.attr('data-line-num'));
		
		$('.comp-overview a').each(function(index){	
			
			if(isMobile) {
				$(this).bind({
					mouseover: function () {
						$(this).trigger('click')
					}
				})
			}
			else
			{
				$(this).hover(
				  function () {
					  
					//Brower Switch --------------------------------------------------------------------------------
					if(isIE6){
						$(this).addClass('hover');
					}
					else {
						//Show title --------------------------------------------------------------------------------
						var title =  $(this).attr('data-title');			
						if(title){
							var subtitle =  $(this).attr('data-subtitle');
							if($(this).attr('data-extra')) subtitle += ' / ' + $(this).attr('data-extra');
							if($('.item-name').length>0) $('.item-name').text(title).css('visibility','visible');
							if($('.item-desc').length>0)$('.item-desc').text(subtitle).css('visibility','visible');
							
								jumper.prependTo(this).css({display:'block',background:'#fff',width:(imageWidth*2),height:imageHeight,position:'absolute',marginLeft:imageWidth});
								if(index%lineNum==3 || index%lineNum==4 ||index%lineNum==5) jumper.css({marginLeft:-(imageWidth*2)});
							
						}
					
						//Menu linking --------------------------------------------------------------------------------
						$('#navi a[href*="'+$(this).attr('linking')+'"]').addClass('over');
						$('#navi a[href*="'+$(this).attr('media')+'"]').addClass('over');
					
						//Cufon --------------------------------------------------------------------------------
						Cufon.replace('.item-name');
						Cufon.replace('.item-desc');
						Cufon.replace('.level-2', {hover: true,fontFamily:'DAX-Medium'});
					}
					
					if(isMobile) $(this).trigger('click');
					
				  }, 
				  function () {
					
					//Brower Switch --------------------------------------------------------------------------------
					if(isIE6) {
						$(this).removeClass('hover');
					}
					else {
						$('.item-name').text('').css('visibility','hidden');
						$('.item-desc').text('').css('visibility','hidden');
						jumper.css({display:'none'});
						
						//Menu linking --------------------------------------------------------------------------------
						$('#navi a[href*="'+$(this).attr('linking')+'"]').removeClass('over');
						$('#navi a[href*="'+$(this).attr('media')+'"]').removeClass('over');
						
						//Cufon --------------------------------------------------------------------------------
						Cufon.replace('.level-2', {hover: true,fontFamily:'DAX-Medium'});
					}
				  }
				);
			}
			
		});
		
		jumper.mouseover(function(){
			$(this).css('display','none');						  
		});
		
		$('#navi a.level-2').each(function(){
			$(this).hover(
			  function () {
			  	var rel = $(this).attr('rel');
			  	var a_rel = rel.split('/');
				var media = a_rel[a_rel.length-1];
				
				var img;
				if($(this).hasClass('medien')){ img = $('.comp-overview a[media="' + media + '"]'); }
				else img = $('.comp-overview a[href*="'+$(this).attr('href')+'"]');
				img.addClass('hover');
				if(isMobile) $(this).trigger('click');
			  }, 
			  function () {
			  	var rel = $(this).attr('rel');
			  	var a_rel = rel.split('/');
				var media = a_rel[a_rel.length-1];
					
				var img;
				if($(this).hasClass('medien')) img = $('.comp-overview a[media="' + media + '"]');
				else img = $('.comp-overview a[href*="'+$(this).attr('href')+'"]');
				img.removeClass('hover');
			  }
			);									
		});
	}
	
	
/***********************************************************************************************************************************
 * ImageWall > Overview > Menschen
 ***********************************************************************************************************************************/
	
	function createOverviewHumans(){
		
		var holder = ('#comp-resize-overlay');
		var jumper = $('#comp-resize-overlay-jumper');
		var jumperName = jumper.find('.item-name');
		var jumperDesc = jumper.find('.item-desc');
		var jumperImg = jumper.children('img');
		var imageWidth = parseInt(jumper.attr('data-image-width'));
		var imageHeight = parseInt(jumper.attr('data-image-height'));
		var lineNum = parseInt(jumper.attr('data-line-num'));
		
		$('.comp-overview a').each(function(index,el){	
			
			
			$(this).hover(
			  function () {
				  
				  $this = $(this);

				//Brower Switch --------------------------------------------------------------------------------
				if(isIE6){
					$this.addClass('hover');
				}
				else {
					//Show title --------------------------------------------------------------------------------
					var title =  $this.attr('data-title');			
					if(title){
						var subtitle =  $this.attr('data-subtitle');
						if($this.attr('data-extra')) subtitle += ' / ' + $this.attr('data-extra');
						if(jumperName.length>0) jumperName.text(title).css('visibility','visible');
						if(jumperDesc.length>0) jumperDesc.text(subtitle).css('visibility','visible');
						jumperImg.attr('src',$this.attr('data-image')).css({width:100,height:100});
						
						jumper.prependTo(this).css({display:'block'}).removeClass('right-side');
						if(index%lineNum==3 || index%lineNum==4 ||index%lineNum==5) jumper.addClass('right-side');
						
					}
					$this.removeClass('clicked');
				
					//Menu linking --------------------------------------------------------------------------------
					$('#navi a[href*="'+$this.attr('linking')+'"]').addClass('over');
					$('#navi a[href*="'+$this.attr('media')+'"]').addClass('over');
				
					//Cufon --------------------------------------------------------------------------------
					Cufon.replace('.item-name');
					Cufon.replace('.item-desc');
					Cufon.replace('.level-2', {hover: true,fontFamily:'DAX-Medium'});
				}
				
			  }, 
			  function () {
				 $this = $(this);
				 
				//Brower Switch --------------------------------------------------------------------------------
				if(isIE6) {
					$this.removeClass('hover');
				}
				else {
					$('.item-name').text('').css('visibility','hidden');
					$('.item-desc').text('').css('visibility','hidden');
					jumper.css({display:'none'});
					
					//Menu linking --------------------------------------------------------------------------------
					$('#navi a[href*="'+$this.attr('linking')+'"]').removeClass('over');
					$('#navi a[href*="'+$this.attr('media')+'"]').removeClass('over');
					
					//Cufon --------------------------------------------------------------------------------
					Cufon.replace('.level-2', {hover: true,fontFamily:'DAX-Medium'});
				}
			  }
			);
			
			if($(this).hasClass('worker')){
				$(this).click(function(){
					if($(this).hasClass('clicked')){
						$(this).removeClass('clicked');
						jumperImg.attr('src',$(this).attr('data-image')).css({width:100,height:100});
					} else {
						$(this).addClass('clicked');
						jumperImg.attr('src',$(this).attr('data-image')).css({width:200,height:200});
					}
				});
			}
			
		});
		
		
		
		jumper.children('.item-box').mouseover(function(){
			jumper.css('display','none');						  
		});
		
		$('#navi a.level-2').each(function(){
			$(this).hover(
			  function () {
				var rel = $(this).attr('rel');
			  	var a_rel = rel.split('/');
				var media = a_rel[a_rel.length-1];
				$('.comp-overview a[linking="'+media+'"]').addClass('hover');
			  }, 
			  function () {
				var rel = $(this).attr('rel');
			  	var a_rel = rel.split('/');
				var media = a_rel[a_rel.length-1];
				$('.comp-overview a[linking="'+media+'"]').removeClass('hover');
			  }
			);									
		});
	
	}
	
	
/***********************************************************************************************************************************
 * Kreation > Media Modul > Coda Slider
 ***********************************************************************************************************************************/
 
	function createCodaSlide(){
		trace('.  .  .  .  @func createCodaSlide');
		$('.comp-coda-slide').each(function(index,el){
											
			$this = $(this);
			$this.slide({
				count:$this.attr('data-count'),
				width:600,
				height:424
			});	
			
			$this.find('.comp-coda-slide li img').each(function(){
				if($(this).attr('height')<400)$(this).css({marginTop:(400-$(this).attr('height'))/2});
			});
			
			var buttons = $this.parent().find('.neosmart-slide-thumbs li');			
			var newWidth = Math.floor(600/buttons.length);
			var restWidth = 600 - newWidth*buttons.length;
			
			buttons.css({width:newWidth,margin:0,padding:0});
			$(buttons[0]).css('width',newWidth+restWidth);
		});
	}
	
	
/***********************************************************************************************************************************
 * Kreation > Media Modul > Coda Slider
 ***********************************************************************************************************************************/
	
	function createFLVPlayer(){
		trace('@func  .  createFLVPlayer');
		var skinColor = $('#current-skin').text();
		$('.comp-flv-player').each(function(index,el){			
			$(this).flash({
				id: 'movie'+index,
				swf: '/wp-content/themes/hundertgrad/media/flash/neosmartPlayer.swf',
				width: 600,
				height: 336,
				flashvars: { domain:SWFAddress.getBaseURL(), id:index, video: $('img',this).attr('rel'), skin: '/wp-content/themes/hundertgrad/media/flash/skin-'+skinColor+'.swf', thumbnail: $('img',this).attr('src'), fullscreen: true },
				allowFullScreen:true 
			});
		});
	}
	
	
	function markVideo(id,playing){
		//trace('@func markVideo '+id+' '+playing);
		
		$('.videoIsPlaying[id!="movie'+id+'"]').each(function(index,el){
			$(el).removeClass('videoIsPlaying');
			try{el.stopVideoExternal();}
			catch(e){}
		});
		
		(playing=='true') ? $('#movie'+id).addClass('videoIsPlaying') : $('#movie'+id).removeClass('videoIsPlaying');
	}
	
	
/***************************************************************************************************
 * Google Map
 ***************************************************************************************************/

	function initGMap(){
		trace('@func  .  initGMap');
		if (GBrowserIsCompatible()) {
			//var address = 'Westerbachstraße 47, Haus 6, 60489 Frankfurt';
			var point = new GLatLng(50.1214, 8.60160);
			//var center = new GLatLng(50.1227, 8.6);
			/*var geocoder = new GClientGeocoder();
			geocoder.getLatLng(address, function(point){
				trace(point);		
			});*/
			
			var map = new GMap2(document.getElementById("gmap"));
				map.setCenter(point, 15);
				map.addControl(new GSmallMapControl());
				map.addControl(new GMapTypeControl());

			var customIcon = new GIcon(G_DEFAULT_ICON);
				customIcon.image = "/wp-content/themes/hundertgrad/media/hundertgrad_google_marker.png";
				customIcon.iconSize = new GSize(121, 83);
				customIcon.iconAnchor = new GPoint(36, 83);

			var marker = new GMarker(point,{icon:customIcon});
				GEvent.addListener(marker, "click", function() {
			});
			map.addOverlay(marker);
		}	
	}
	

/***********************************************************************************************************************************
 * Intro > Slideshow
 ***********************************************************************************************************************************/
 
	function initSlideShow(){
		trace('.  .  .  .  .  @func initSlideShow');		
		resizeSlideShow();
		$obj['comp-slideshow'].find('img').hide();
		$obj['comp-slideshow'].find('img:eq(0)').fadeIn();
		globalInterval = setInterval( "slideSwitch()", 7000 );
	}
	
	function resizeSlideShow(){
		var win = $(window);
		var w = win.width();
		var h = win.height()
		var winRatio = w/h;
		$obj['comp-slideshow'].hide();
		var images = $obj['comp-slideshow'].find('img');
	
		images.each(function(){
			var imgW = 1280;
			var imgH = 1024;
			var imgRatio = imgW/imgH;
			var factor = 1;
			var vDiff  = 0;
			var hDiff = 0;
			
			if(imgRatio>winRatio){
				factor = h/imgH;
				$(this).width(imgW*factor);
				$(this).height(imgH*factor);
				hDiff = (imgW*factor-w)/2;
				$(this).css({left:-(hDiff),top:0});
			}else{
				factor = w/imgW;
				$(this).width(imgW*factor);
				$(this).height(imgH*factor);
				vDiff = (imgH*factor-h)/2;
				$(this).css({top:-(vDiff),left:0});
			}
			$obj['comp-slideshow'].show();
		});
		isResizing = false;
	}
	
	function slideSwitch() {
		$obj['comp-slideshow'].find(':first-child').fadeOut('slow').next('img').fadeIn('slow').end().appendTo($obj['comp-slideshow']);
	}



/***************************************************************************************************
 * Font replacing by Cufon
 ***************************************************************************************************/
	
	function replaceCufon(){
		Cufon.replace('#hundertgrad',{fontFamily:'DAX-Light'});
		Cufon.replace('#subnavi-bottom-links a',{fontFamily:'DAX-Medium',hover:true});
		Cufon.replace('h1', {fontFamily:'DAX-Light'});
		Cufon.replace('h3');
		Cufon.replace('h4');
		Cufon.replace('.level-1', {hover: true,fontFamily:'DAX-Medium'});
		Cufon.replace('.level-2', {hover: true,fontFamily:'DAX-Medium'});
	}
	
	function cufonRefreshNavi(){
		Cufon.refresh('.level-1');
		Cufon.refresh('.level-2');
	}
	
	function cufonReplaceContent(){
		Cufon.replace('h1', {fontFamily:'DAX-Light'});
		Cufon.replace('h2',{fontFamily:'DAX-Medium'});
		Cufon.replace('h3');
		Cufon.replace('.dax-medium',{fontFamily:'DAX-Medium'});
	}
	

/***************************************************************************************************
 * Create Mouseover for Social Links
 ***************************************************************************************************/ 
 
	function socialLinks(id,state){
		var obj = $('#social-link-'+id);
		(state) ? obj.addClass('hover') : obj.removeClass('hover');
	}


/****************************************************************************************************************************************
 * Utility functions
 ***************************************************************************************************************************************/   
	
	function formatTitle() {
		var path = SWFAddress.getPathNames();
		var title = ' ';
		for(var i=0;i<path.length;i++){
			title += ' / ' + path[i].substr(0,1).toUpperCase() +  path[i].substr(1);	
		}
		return 'Hundert Grad Kommunikation' + title;
	}
	
	
/***************************************************************************************************
 * Switch Skin
 ***************************************************************************************************/
	
	function toggleSkinSwitch(){
		var obj = $('#skin-switch');
		(parseInt(obj.css('bottom'))<0) ? obj.animate({bottom:0},500) : obj.animate({bottom:-70},400);
	}
	
	function switchSkin(id){
		$('#skin-switch').animate({bottom:-70});

		location.replace('/wp-content/plugins/hundertgrad/skinchanger.php?skin=' + id + '&swfaddress=' + SWFAddress.getValue());											  
	}
	
/***************************************************************************************************
 * Trace function (Wrapper for Firebug console)
 ***************************************************************************************************/
			
	function trace(msg){
		try{
			console.log(msg);
		} catch(e){
			//alert(msg);	
		}
	}
	
	
/***************************************************************************************************
 * Save I Like
 ***************************************************************************************************/	
	
	function saveILike(id,btn){
		$.post('/wp-content/plugins/hundertgrad/ilikehandler.php',{post_id:id},function(data){
			$(btn).hide();
			var person = (parseInt(data)==1) ? 'Person' : 'Personen';
			$('#I_like_'+id).html('<strong>'+data+'</strong> '+person+ ' gefällt das!');								  
		});		
	}
	
	
/***************************************************************************************************
 * Load Twitter Feeds
 ***************************************************************************************************/
	
	function loadFeeds(){
		$(".tweet").tweet({
          join_text: "",
          username: "100grad",
          avatar_size: 60,
          count: 2,
          auto_join_text_default: "", 
          auto_join_text_ed: "",
          auto_join_text_ing: "",
          auto_join_text_reply: "",
          auto_join_text_url: "",
          loading_text: "Lade Tweets..."
        });
		$('.fw-wall').facebookWall({
			id:		373043094870,
			max:	4,
			avatar:	'/wp-content/themes/hundertgrad/media/avatar_facebook.jpg'
		});
	}
	
	
/***************************************************************************************************
 * ResizeHandler
 ***************************************************************************************************/ 	
	
	var resizeHandler = function(){
		if (!isResizing) {
			//trace('resize');
			isResizing = true;
			
			var paddingLeft = 320;
			var width = $obj['window'].width()-paddingLeft;
			var height = $obj['window'].height();				
			
			//Set height and width -------------------------------------------------------------
			$obj['content-area'].css({width:width+'px',height:height+'px','paddingLeft':paddingLeft});
			$obj['scroll-area'].css({width:width+'px',height:height+'px'});
			$obj['fixed-area'].css({width:width+'px',height:height+'px'});

			if($('#creation').length) 			(width>900) ? $obj['content'].find('.content-center').addClass('wide') :  $obj['content'].find('.content-center').removeClass('wide'); 
			if($('#comp-slideshow').length) 	resizeSlideShow();	
			if($obj['#florian-inger'] && $obj['#florian-inger'].length){
				if(height<700){
					$obj['#florian-inger'].css({position:'relative'}).height(700);
				}else{
					$obj['#florian-inger'].css({position:'relative'}).height(height-3);
				}
			}

			//ScrollTo yes/no  --------------------------------------------------------------
			if(height<=$obj['content-area'].height()){
				if(SWFAddress.getParameter('scroll')){
					$obj['scroll-area'].scrollTo('.anchor-'+SWFAddress.getParameter('scroll'),300,{easing:'easeOutExpo'});
				}
			} else {
					var verDiff = height-$obj['content'].height();
					if(verDiff>0)$obj['content'].css('marginTop',verDiff/2);
			}
			
			//Has Scrollbar?
			if($obj['award'].length){
				if($obj['scroll-area'].children('#content').height()>$obj['window'].height()){
					$obj['award'].css({marginRight:16});	
				} else{
					$obj['award'].css({marginRight:0});
				}
			}
			
			//Arrows for Subnavi
			handleOverflow();
			
			//Resize Slideshow -----------------------------------------------------------------
			isResizing = false;
		}
	}
	
	function scrollHandler(){
		
		// Mobile Scrolling -------------------------------------------------------------------
		if(isMobile) {
			$obj['scroll-area'].bind('touchstart', function(e){					
				e = e.originalEvent.touches[0];
				var diffY=tmp=lastChange=currentY=0,
					startY=e.pageY,
					move=false,
					mt=$obj['scroll-area'].scrollTop(),
					endMax=parseInt($obj['content'].height()-parseInt($obj['window'].height()));
					if(endMax<0)endMax=0;

				$obj['scroll-area'].bind('touchmove',function(ev){
					ev.preventDefault();
					ev = ev.originalEvent.touches[0];
					move=true;
					lastChange = ev.pageY-currentY;
					currentY = ev.pageY;			
					diffY = ev.pageY-startY;
					tmp = mt-diffY;
					if(tmp<0)tmp=diffY=0;
					if(tmp>endMax) tmp=endMax;
					$obj['scroll-area'].stop().scrollTo(tmp,0,{easing:'linear'});
					observeScrollPane();
				});
				$obj['scroll-area'].bind('touchend',function(ev){
					tmp -= lastChange;
					if(tmp<0) tmp=diffY=0;
					if(tmp>endMax) tmp=endMax;
					if(move) $obj['scroll-area'].stop().scrollTo(tmp,300,{easing:'easeOutExpo'});
					$obj['scroll-area'].unbind('touchmove touchend');
				});
			});	
		}
		else{
			$obj['scroll-area'].bind('scroll', function(e){
				observeScrollPane();
			});
			
		}
		
		// Subnavi Thumbs -------------------------------------------------------------------
		var lastThumb = 0;
		var newThumb = 0;
		
		function observeScrollPane(){
			
			if(!$obj['subnavi-thumbs'] || !$obj['subnavi-thumbs'].children().length) return;
			
			var newThumb = Math.floor((parseInt($obj['scroll-area'].scrollTop())+150)/700);
			if(isNaN(newThumb)||newThumb<0) newThumb=0;
			
			if(newThumb!=lastThumb){
				var lastObj = $obj['subnavi-thumbs'].find('.show');
					lastObj.removeClass('show').children('img').stop().animate({marginLeft:-70},300);
					
				var newObj = $('.subnavi-thumbs-item:eq('+newThumb+')');
					newObj.addClass('show').children('img').stop().animate({marginLeft:0},300);
					
				lastThumb = newThumb;
			}
		}
		
	}
	
	/*function scrollToAnchor(id){
		trace('@func scrollToAnchor -> ' + id);
		$('#scroll-area')[0].scrollTo('.anchor-'+id);
	}*/

/***************************************************************************************************
 * Handle Overflow for Sub-Navigation
 ***************************************************************************************************/
	
	var globalUpButton = null;
	var globalDownButton = null;
	
	function initOverflowSubnavi($st){
		globalUpButton = $('#subnavi-thumbs-up');
		globalDownButton = $('#subnavi-thumbs-down');
		
		var mt = 0;
		
		globalUpButton.unbind('click').click(function(){
			mt = parseInt($st.css('marginTop'));											  
			$st.css('marginTop',parseInt(mt+40));
			($st.height()+parseInt($st.css('marginTop'))<$st.parent().height()) ? globalDownButton.hide() : globalDownButton.show();
			(parseInt($st.css('marginTop')) >= 0) ? globalUpButton.hide() : globalUpButton.show();
		});
		
		globalDownButton.unbind('click').click(function(){
			mt = parseInt($st.css('marginTop'));											  
			$st.css('marginTop',parseInt(mt-40));
			($st.height()+parseInt($st.css('marginTop'))<$st.parent().height()) ? globalDownButton.hide() : globalDownButton.show();
			(parseInt($st.css('marginTop')) >= 0) ? globalUpButton.hide() : globalUpButton.show();
		});
	}
		
	function handleOverflow(){
		var $st = $('#subnavi-thumbs').css('marginTop',0);
		var $stw = $('#subnavi-thumbs-wrap');
		if(globalUpButton==null) initOverflowSubnavi($st);
		var hDiff = $obj['window'].height()-$st.height();
		if(hDiff<240){
			$stw.height($obj['window'].height()-240);
			globalUpButton.hide();
			globalDownButton.show();
		}
		else{
			$stw.height($st.height());
			globalUpButton.hide();
			globalDownButton.hide();
		}
	}


/***************************************************************************************************
 * Shorthand for linking
 ***************************************************************************************************/
	
	function linkTo(rel){
		SWFAddress.setValue(rel);
		this.blur();
		return false;
	}
	
/***************************************************************************************************
 * Shorthand for linking
 ***************************************************************************************************/
 	
	function toggleDisplay(id){
		var obj = $('#'+id);
		(obj.css('display')=='block') ? obj.css('display','none') : obj.css('display','block');
	}
	
	function forwardOptions($this){
		$($this).addClass('dn').next().removeClass('dn');
	}
	
	
/***************************************************************************************************
 * Check Form (Forward E-Mail)
 ***************************************************************************************************/
 
	function checkForm(form){
		
		var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
		var $form = $(form);
		var id = $form.find('input[name=post-id]').val();
		
		var lfn = $form.find('label[for=forwarder_name]');
		var lfe = $form.find('label[for=forwarder_email]');
		var lrn = $form.find('label[for=recipient_name]');
		var lre = $form.find('label[for=recipient_email]');
		
		var fn = $form.find('input[name=forwarder_name]');
		var fe = $form.find('input[name=forwarder_email]');
		var rn = $form.find('input[name=recipient_name]');
		var re = $form.find('input[name=recipient_email]');
		
		(fn.val()=='') ? lfn.addClass('error-label') : lfn.removeClass('error-label');
		(reg.test(fe.val())=='') ? lfe.addClass('error-label') : lfe.removeClass('error-label');
		(rn.val()=='') ? lrn.addClass('error-label') : lrn.removeClass('error-label');
		(reg.test(re.val())=='') ? lre.addClass('error-label') : lre.removeClass('error-label');
		
		if(lfn.hasClass('error-label') || lfe.hasClass('error-label') || lrn.hasClass('error-label') || lre.hasClass('error-label')){
			//Fehler	
		} else {
			//E-Mail senden
			$.ajax({
				url: '/TODO/' + id + '?action=forwardEmail' + '&fn=' + fn.val() + '&fe=' + fe.val() + '&rn=' + rn.val() + '&re=' + re.val(),
				typeString: 'POST',
				success: function(data, textStatus, XMLHttpRequest){
					toggleDisplay('#forward-email-'+id);
				}
			});
		}
		
	}


/***************************************************************************************************
 * Personen hinzufügen
 ***************************************************************************************************/
	
	function addPerson(){
		var $person1 = $('#add-person-1');
		var $person2 = $('#add-person-2');
		var $person3 = $('#add-person-3');
		var $person4 = $('#add-person-4');
		var $person5 = $('#add-person-5');
		var $add = $('#add-person-button');
		var $remove = $('#remove-person-button');
		var $count = $('#count-persons');
		var $invitations = $('input[name=invitations]');

		if($person1.hasClass('dn')){
			$person1.fadeIn(300).removeClass('dn');
			$count.text('Ich bringe 1 Person mit:');
			$add.css({marginTop:0});
			$remove.show();
			$invitations.val(1);
		} else if($person2.hasClass('dn')){
			$person2.fadeIn(300).removeClass('dn');
			$count.text('Ich bringe 2 Personen mit:');
			$invitations.val(2);
		} else if($person3.hasClass('dn')){
			$person3.fadeIn(300).removeClass('dn');
			$count.text('Ich bringe 3 Personen mit:');
			$invitations.val(3);
		} else if($person4.hasClass('dn')){
			$person4.fadeIn(300).removeClass('dn');
			$count.text('Ich bringe 4 Personen mit:');
			$invitations.val(4);
		} else if($person5.hasClass('dn')){
			$person5.fadeIn(300).removeClass('dn');
			$count.text('Ich bringe 5 Personen mit:');
			$invitations.val(5);
			$add.hide();
		}
		
		resizeHandler();
	}
	
	function removePerson(){
		var $person1 = $('#add-person-1');
		var $person2 = $('#add-person-2');
		var $person3 = $('#add-person-3');
		var $person4 = $('#add-person-4');
		var $person5 = $('#add-person-5');
		var $add = $('#add-person-button');
		var $remove = $('#remove-person-button');
		var $count = $('#count-persons');
		var $invitations = $('input[name=invitations]');

		if($invitations.val()==5){
			$person5.slideUp(300).addClass('dn');
			$count.text('Ich bringe 4 Personen mit:');
			$invitations.val(4);
			$add.show();
		} else if($invitations.val()==4){
			$person4.slideUp(300).addClass('dn');
			$count.text('Ich bringe 3 Personen mit:');
			$invitations.val(3);
		} else if($invitations.val()==3){
			$person3.slideUp(300).addClass('dn');
			$count.text('Ich bringe 2 Personen mit:');
			$invitations.val(2);
		} else if($invitations.val()==2){
			$person2.slideUp(300).addClass('dn');
			$count.text('Ich bringe 1 Person mit:');
			$invitations.val(1);
		} else if($invitations.val()==1){
			$person1.slideUp(300).addClass('dn');
			$count.text('Ich bringe keine Person mit.');
			$invitations.val(0);
			$remove.hide();
			$add.css({marginTop:'-25px'});
		}
		
		resizeHandler();
	}
	
	function checkEventForm(){
		var $form = $('.form-events');
		$form.find('.input-error').removeClass('input-error');
		var invitationsNum = $('input[name=invitations]').val();
		var $participation = $form.find('input[name=participation]');
		
		if (invitationsNum == false) {
			invitationsNum = "0";
		}
		
		var sendData = {
			gender : checkRadio($form.find('input[name=gender]')),
			name : checkField($form.find('input[name=name]')),
			email : validateEmail($form.find('input[name=email]')),
			company : checkField($form.find('input[name=company]')),
			street : $form.find('input[name=street]').val(),
			street_number : $form.find('input[name=street_number]').val(),
			city : $form.find('input[name=city]').val(),
			zipcode : $form.find('input[name=zipcode]').val(),
			position : checkField($form.find('input[name=position]')),
			department : $form.find('input[name=department]').val(),
			participation : checkRadio($participation)
		};

		for(var k=1;k-1<invitationsNum;k++){
			sendData['gender'+k] = checkRadio($form.find('input[name=gender'+k+']'));
			sendData['name'+k] = checkField($form.find('input[name=name'+k+']'));
			sendData['position'+k] = checkField($form.find('input[name=position'+k+']'));
			sendData['department'+k] = $form.find('input[name=department'+k+']').val();
			sendData['company'+k] = $form.find('input[name=company'+k+']').val();
		}
		
		// Fehler vorhanden?
		if($form.find('.input-error').length){
			return false;
		}
		
		sendData['invitationsNum'] = invitationsNum;

		$.ajax({
			url: '/wp-content/plugins/hundertgrad/eventSendMail.php',
			data: sendData,
			success: function(data, textStatus, XMLHttpRequest){
				if (data != 'OK') {
					alert('Es ist ein Fehler bei der Speicherung aufgetreten!');
					return;
				}
				
				//Erfolg > XMLHttpRequest.responseText
				$('#event-page-1').hide();
				
				if(checkRadio($participation)=='yes'){
					$('#event-page-2').fadeIn(300);
				} else {
					$('#event-page-3').fadeIn(300);	
				}
				
				resizeHandler();
			},
			error: function(XMLHttpRequest, textStatus, errorThrown){
				alert('Es ist ein Fehler bei der Speicherung aufgetreten!');
				//Fehler 
			}
		});
	}
	
	function checkField($obj){
		var val = $obj.val();		
		if(val.length>0){
			return val;	
		} else {
			$obj.parent().children('label').addClass('input-error');
			return false;	
		}
	}
	
	function checkRadio($obj){	
		var val = ''
		for(var k=0;k<$obj.length;k++){
			if($obj[k].checked){ val = $obj[k].value;}	
		}
		if(val.length>0){
			return val;	
		} else {
			$obj.parent().children('label').addClass('input-error');
			return false;	
		}
	}
	
	function onlyNumbers(el){
		var $el = $(el);
		var val = $el.val();
		var numbers = ''
		for(var k=0;k<val.length;k++){
			if(!isNaN(val.substr(k,1))) numbers+=val.substr(k,1);
		}
		$el.val(numbers);
	}
	
	function validateEmail($obj) {
		var email = $obj.val();
		var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
		var domain = email.substr(email.indexOf('@'));
		if(reg.test(email) == false || domain.indexOf('..')!=-1) {
			$obj.parent().children('label').addClass('input-error');
			return false;
		}else {
			return email;
		}
	}	






























