/**
 * Extension: Background-Position-Animation
 * @author Alexander Farkas
 * v. 1.21
 */
    

(function($) {
	if(!document.defaultView || !document.defaultView.getComputedStyle){ // IE6-IE8
		var oldCurCSS = jQuery.curCSS;
		jQuery.curCSS = function(elem, name, force){
			if(name === 'background-position'){
				name = 'backgroundPosition';
			}
			if(name !== 'backgroundPosition' || !elem.currentStyle || elem.currentStyle[ name ]){
				return oldCurCSS.apply(this, arguments);
			}
			var style = elem.style;
			if ( !force && style && style[ name ] ){
				return style[ name ];
			}
			return oldCurCSS(elem, 'backgroundPositionX', force) +' '+ oldCurCSS(elem, 'backgroundPositionY', force);
		};
	}
	
	var oldAnim = $.fn.animate;
	$.fn.animate = function(prop){
		if('background-position' in prop){
			prop.backgroundPosition = prop['background-position'];
			delete prop['background-position'];
		}
		if('backgroundPosition' in prop){
			prop.backgroundPosition = '('+ prop.backgroundPosition;
		}
		return oldAnim.apply(this, arguments);
	};
	
	function toArray(strg){
		strg = strg.replace(/left|top/g,'0px');
		strg = strg.replace(/right|bottom/g,'100%');
		strg = strg.replace(/([0-9\.]+)(\s|\)|$)/g,"$1px$2");
		var res = strg.match(/(-?[0-9\.]+)(px|\%|em|pt)\s(-?[0-9\.]+)(px|\%|em|pt)/);
		return [parseFloat(res[1],10),res[2],parseFloat(res[3],10),res[4]];
	}
	
	$.fx.step.backgroundPosition = function(fx) {
		if (!fx.bgPosReady) {
			var start = $.curCSS(fx.elem,'backgroundPosition');
			
			if(!start){//FF2 no inline-style fallback
				start = '0px 0px';
			}
			
			start = toArray(start);
			
			fx.start = [start[0],start[2]];
			
			var end = toArray(fx.options.curAnim.backgroundPosition);
			fx.end = [end[0],end[2]];
			
			fx.unit = [end[1],end[3]];
			fx.bgPosReady = true;
		}
		//return;
		var nowPosX = [];
		nowPosX[0] = ((fx.end[0] - fx.start[0]) * fx.pos) + fx.start[0] + fx.unit[0];
		nowPosX[1] = ((fx.end[1] - fx.start[1]) * fx.pos) + fx.start[1] + fx.unit[1];           
		fx.elem.style.backgroundPosition = nowPosX[0]+' '+nowPosX[1];

	};
})(jQuery);     
               





















/**
*
*	DOCUMENT READY
*
**/

$(document).ready(function() {




	hg = {};





	/**
	*
	*	CUFON
	*
	**/
	
	_cufon = function() {

		Cufon.now();
	    Cufon.replace('div#teaser h2 span', { fontFamily: 'Ronnia Light' });
		Cufon.replace('div.image-section h3, div.image-section ul li.image h4, div#foot h3, div.outer-column-set h3, div.outer-column-set h4, body.page-work div#head h2, body.page-work div#work-stage h3, body.page-work div#work-stage div.desc strong.h, div.blog-ad *, div#work-filters h5, div.portfolio-infos h3, div.portfolio-infos h5', { fontFamily: 'Ronnia Bold' });  
		
		Cufon.replace('div#teaser h2 a', { fontFamily: 'Ronnia Bold', hover: true });
		
	};
	_cufon();








	var _counter = $('div.portfolio-project').counter({});
	                         
	// if($('body').is('.page-work')) { hg.work_counter.init(); }









	/**
	*
	*	HOPE/GLORY: FILTER MANAGER
	*
	**/
	
	hg.filter_manager = {
	
		_filter_wrapper: $('#work-filters'),
		_effect_sliding: false,
	
		//
		//	init
		//
		init: function() {
		
			// set event handlers for filter toggling
			$('#work-filter-toggle a').click(function(event) {
				event.preventDefault();
				hg.filter_manager.open_filters();
			});
			$('#btn-close-filters').click(function(event) {
				event.preventDefault();
				hg.filter_manager.close_filters();
			});
			
			// set event handlers for applying/clearing filters
			$('#work-filters ul li a').click(function(event) {
				event.preventDefault();
				hg.filter_manager.apply_filter(this);
			});
			
			// set event handler for clearing all filters
			$('#btn-clear-all').click(function(event) {
				event.preventDefault();
				hg.filter_manager.clear_all();
			});
			
			// insert loading indicator
			$('#work-filters .inner').prepend('<div id="loading-indicator" style="display: none;"><img src="img/loading.gif" alt="" /></div>');
		    
			hg.filter_manager.bind_observers();
			                                   
		},  
		
		bind_observers: function() {  
			$('.filter-results a').click(function(event) {
				event.preventDefault();     
				var slug = $(event.currentTarget).attr('href').substr(5);                           
				hg.filter_manager.select_project( slug );
			});	
		},
		
		//
		//	open filters
		//
		open_filters: function() {
		
			if(!hg.filter_manager._effect_sliding) {
				
				hg.filter_manager._effect_sliding = true;
				
				$('#work-filter-toggle a').addClass('active');
				
				$('body').animate({
					'background-position': '0 0'
				}, { duration: 600 });
				
				$('#work-nav-prev, #work-nav-next').fadeOut();
				hg.portfolio_manager.deactivate();     
				                    
				var max_items = 0;
				$('.filter-list ul').each(function(e) {       
					max_items = Math.max( max_items, $(this).children().length );                   
				});         
				
				var results_height = $('#work-filters .filter-results').height();   
				                                                         
				$('#work-filters').height( ( 48 + 17 * max_items + 67 + results_height +58 ));
				$('#work-filters .filter-options').height( ( 49 + 17 * max_items + 10 ));  
				$('#loading-indicator').css('top', (17 + 17 * max_items) + 'px');
				                               
				
				hg.filter_manager._filter_wrapper.slideDown(500, function() {
					hg.filter_manager._effect_sliding = false;
				});    
				
				$('#work-filter-toggle a').click(function(event) {
					event.preventDefault();
					hg.filter_manager.close_filters();
				});
				
			}
		
		},
		
		//
		//	close filters
		//
		close_filters: function(slug) {
		
			if(!hg.filter_manager._effect_sliding) {
				
				hg.filter_manager._effect_sliding = true;
				
				$('#work-filter-toggle a').removeClass('active');
				
				$('body').animate({
					'background-position': '0 -264px'
				}, { duration: 400 });
				
				hg.portfolio_manager.load_project_list(hg.filter_manager.build_parameters(), slug);
				
				hg.filter_manager._filter_wrapper.slideUp(500, function() {
					hg.filter_manager._effect_sliding = false;
				});
				
			}
		
		},
		
		//
		//	build parameters
		//
		build_parameters: function() {
		
				_filter_settings = {
					'industry': [],
					'format': [],
					'year': [],
					'technology': [],
					'services': []
				};
				
				$('#work-filters ul.industry a.active').each(function(a,b) { _filter_settings.industry.push($(b).attr('href').substr(1)); });
				$('#work-filters ul.format a.active').each(function(a,b) { _filter_settings.format.push($(b).attr('href').substr(1)); });
				$('#work-filters ul.year a.active').each(function(a,b) { _filter_settings.year.push($(b).text()); });
				$('#work-filters ul.technology a.active').each(function(a,b) { _filter_settings.technology.push($(b).attr('href').substr(1)); });
				$('#work-filters ul.services a.active').each(function(a,b) { _filter_settings.services.push($(b).attr('href').substr(1)); });
				
				return 'industry='+_filter_settings.industry.join(',')+'&format='+_filter_settings.format.join(',')+'&year='+_filter_settings.year.join(',')+'&technology='+_filter_settings.technology.join(',')+'&services='+_filter_settings.services.join(',');
		
		},
		
		//
		//	apply/clear a filter
		//
		apply_filter: function(filter) {
		
			if($(filter).is('.active')) {
				$(filter).removeClass('active');
			} else {
				$(filter).addClass('active');
			}
			
			$('#loading-indicator').show();
			
			hg.filter_manager.update_filter_results(hg.filter_manager.build_parameters());
		
		},
		
		//
		//	clear all filters
		//
		clear_all: function() {
		
			$('#work-filters ul li a').removeClass('active');
			
			$('#loading-indicator').show();

			hg.filter_manager.update_filter_results(hg.filter_manager.build_parameters());
		
		},
		
		//
		//	select project from results
		//
		select_project: function(slug) {          
			hg.filter_manager.close_filters(slug);  
			$.event.trigger('selected', [slug]);      
		},
		
		//
		//	update filter results
		//
		update_filter_results: function(params) {
		
			$('#work-filters div.filter-results p').load('work/filter/', params, function() {
				
				$('#loading-indicator').hide();
				
				if($('#work-filters div.filter-results p strong').length === 0) {
					$('#btn-close-filters').fadeOut(500);
				} else {
					$('#btn-close-filters').fadeIn(500);
				}     
				  
				hg.filter_manager.bind_observers();  
				
			});   
			      
		}
		/*,
		trigger: $.extend($.Event(name), 
		        (function() {
		            var parameters = {},
		                parameterNames = $.address.parameterNames();
		            for (var i = 0, l = parameterNames.length; i < l; i++) {
		                parameters[parameterNames[i]] = hg.filter_manager.parameter(parameterNames[i]);
		            }
		            return {
		                value: $.address.value(),
		                path: $.address.path(),
		                pathNames: $.address.pathNames(),
		                parameterNames: parameterNames,
		                parameters: parameters,
		                queryString: $.address.queryString()
		            };
		        }).call($.address)
		    )
		) 
		*/
		
	
	};
	
	if($('body').is('.page-work')) { hg.filter_manager.init(); }















	/**
	*
	*	HOPE/GLORY: PORTFOLIO MANAGER
	*
	**/

	hg.portfolio_manager = {
	
		//
		//	init
		//
		init: function(slug) {
		     
		    hg.portfolio_manager.ready = false;
			hg.portfolio_manager._current = 0;
			hg.portfolio_manager._length = 0;
			hg.portfolio_manager._activated = true;
			hg.portfolio_manager._is_switching = false;
			hg.portfolio_manager._is_switching_screenshots = false;
			hg.portfolio_manager._track = $('#portfolio-container-inner-track');
			
			hg.portfolio_manager._track.css('left', 0);
		
			// get project count/length
			hg.portfolio_manager._length = $('div.portfolio-project').length;
			
			// hide all projects except first                                             
			$('div.portfolio-project:gt(0)').fadeTo(1, 0.2);
			$('div.portfolio-project:eq(0)').addClass('current');
			$('div.portfolio-project').each(function(a) { $(this).data('_index', a+1); });
			
			// wrap first project at startup
			if(hg.portfolio_manager._length > 4) {
				hg.portfolio_manager.wrap_project('beginning'); 
			}
			
			// init image preloader
			hg.portfolio_manager.init_image_preloader();
			hg.portfolio_manager.preload_images();
			
			// set event handlers for keyboard navigation
			$(document).keydown(function(event) {
				hg.portfolio_manager.navigate_via_keyboard(event);
			});
			$(document).keyup(function() {
				hg.portfolio_manager.set_keyboard_indicator('none');
			});
			$('#work-keyboard').bind('mouseenter mouseleave', function(e) {
				$('#work-keyboard-hint').toggle();
			});
			
			// build prev/next arrow navigation
			hg.portfolio_manager.build_prev_next_navigation();  
			
			// show_precentages
			hg.portfolio_manager.show_precentages();       
			
			// goto project   
			if(slug !== undefined) {                
				var index = $('.filter-results a').index( $('.filter-results a').filter('[href=work/'+ slug +']') );      
				hg.portfolio_manager.go_to(index);        
			}
		
		},

		//
		//	build prev/next navigation
		//
		build_prev_next_navigation: function() {
		
			if($('#work-nav-prev').length === 0) {

				$('body').prepend('<div id="work-nav-prev"><a href="#">&nbsp;</a></div><div id="work-nav-next"><a href="#">&nbsp;</a></div>');

				$('#work-nav-prev a').click(function(event) {
					event.preventDefault();
					hg.portfolio_manager.go_to(-1);
				});

				$('#work-nav-next a').click(function(event) {
					event.preventDefault();
					hg.portfolio_manager.go_to(1);
				});

				$('#work-nav-prev a, #work-nav-next a').each(function() {

					this._initial_top_value = $(this).css('top');

				});

				$('#work-nav-next').hide();
				$('#work-nav-prev').hide();

				$('#work-nav-prev, #work-nav-next').mousemove(function(event) {

					$(this).find('a').css({
						'top': (event.pageY-45-$(document).scrollTop())+'px'
					});

				});

				$('#work-nav-prev, #work-nav-next').mouseleave(function(event) {

					$(this).find('a').animate({
						'top': $(this).find('a')[0]._initial_top_value
					});

				});
				
			}
			
			// show prev/next
			if(hg.portfolio_manager._length >= 2) {
				$('#work-nav-next').fadeIn(1000);
			}
			if(hg.portfolio_manager._length >= 5) {
				$('#work-nav-prev').fadeIn(1000);
			}
		
		},
		
		
		show_precentages: function() {
			// portfolio percentages                           
			$('.service-list li span.track .bar').each(function() { 
				var perc = $(this).parent().parent().find('.percent').html();
				$(this).css('width', perc);                                             
		    });	
		},
		
		//
		//	go to next/prev project
		//
		go_to: function(dir) {
		
			if(hg.portfolio_manager._activated) {
			
				if(!hg.portfolio_manager._is_switching) {
                                                                      
					_next = $('div.portfolio-project.current').index() + dir;    
					
					
					// no endless carussell and no sliding at all, if there are just
					// one, two, three of four projects
					_break = false;
					if(hg.portfolio_manager._length == 2) {
					
						if(_next < 0 || _next > hg.portfolio_manager._length-1) {
							_break = true;
						}
						
						if(dir > 0) {
							$('#work-nav-next').fadeOut(500);
							$('#work-nav-prev').fadeIn(500);
						} else {
							$('#work-nav-next').fadeIn(500);
							$('#work-nav-prev').fadeOut(500);
						}
					}
					if(hg.portfolio_manager._length == 3) {
					
						if(_next < 0 || _next > hg.portfolio_manager._length-1) {
							_break = true;
						}
						
						if(_next == 1) {
							$('#work-nav-next').fadeIn(500);
							$('#work-nav-prev').fadeIn(500);
						} else {
							if(dir > 0) {
								$('#work-nav-next').fadeOut(500);
								$('#work-nav-prev').fadeIn(500);
							} else {
								$('#work-nav-next').fadeIn(500);
								$('#work-nav-prev').fadeOut(500);
							}
						}
					}
					if(hg.portfolio_manager._length == 4) {
					
						if(_next < 0 || _next > hg.portfolio_manager._length-1) {
							_break = true;
						}
						
						if(_next == 1 || _next == 2) {
							$('#work-nav-next').fadeIn(500);
							$('#work-nav-prev').fadeIn(500);
						} else {
							if(dir > 0) {
								$('#work-nav-next').fadeOut(500);
								$('#work-nav-prev').fadeIn(500);
							} else {
								$('#work-nav-next').fadeIn(500);
								$('#work-nav-prev').fadeOut(500);
							}
						}
					}
					if(hg.portfolio_manager._length == 1) {
						_break = true;
					}
					
					
					
					if(!_break) {

						// infinite carussell: at the beginning?
						if(_next < 1) {
							if(hg.portfolio_manager._length > 4) {
								hg.portfolio_manager.wrap_project('beginning');
								_next = 1;
							}
						}

						// infinite carussell: at the end?
						if(_next > hg.portfolio_manager._length-1) {
							if(hg.portfolio_manager._length > 4) {
								hg.portfolio_manager.wrap_project('end');
								_next = hg.portfolio_manager._length-1;
							}
						}  
						
						//console.log('_next'+_next);

						// slide
						hg.portfolio_manager._is_switching = true;
						hg.portfolio_manager._current = _next;

						hg.portfolio_manager._track.animate({
							left: '+='+(dir*(-1)*(944+85))
						}, { 
							duration: 500,
							complete: function() {
								hg.portfolio_manager.preload_images();
								hg.portfolio_manager._is_switching = false;
							}
						});

						hg.portfolio_manager.hide_screenshot_arrows($('div.portfolio-project.current'), false);
                                                                                    
						$('div.portfolio-project').removeClass('current');  
						//$('div.portfolio-project.current').removeClass('current');  
						$( $('div.portfolio-project')[_next] ).addClass('current').fadeTo(500, 1);   
						$('div.portfolio-project:not(.current)').fadeTo(500, 0.2);    
						
						/*
						if(dir > 0) {   
							console.log($('div.portfolio-project')[_next]);                           
							//$('div.portfolio-project.current').removeClass('current').next().addClass('current').fadeTo(500, 1);
						} else { 
							$('div.portfolio-project.current').removeClass('current');                       
							$( $('div.portfolio-project')[_next] ).addClass('current').fadeTo(500, 1); 
							//$('div.portfolio-project.current').removeClass('current').prev().addClass('current').fadeTo(500, 1);
						}
                        */
                                                                                      
						
						// hg.work_counter.set($('div.portfolio-project.current').data('_index'));
						$(hg.portfolio_manager).trigger('switch', [$('div.portfolio-project.current').data('_index')]);
					}
					
				}
				
			}
		
		},
		     
		//
		//	wrap a project to make an infinite carussell
		//
		wrap_project: function(at) {
		
			if(at == 'beginning') {
				$('#portfolio-container-inner-track').prepend($('.portfolio-project:last'));
				hg.portfolio_manager._track.css({ left: function(index, value) { return parseFloat(value)-((944+85)*1); } });
			}
			
			if(at == 'end') {
				$('#portfolio-container-inner-track').append($('.portfolio-project:eq(0)'));
				hg.portfolio_manager._track.css({ left: function(index, value) { return parseFloat(value)+((944+85)*1); } });
			}
		
		},
		
		//
		//	navigate via keyboard
		//
		navigate_via_keyboard: function(event) {
		
			// next
			if(event.which == 39) {
				event.preventDefault();        
				hg.portfolio_manager.go_to(1);
				hg.portfolio_manager.set_keyboard_indicator('right');
			}
			
			// prev 
			if(event.which == 37) {
				event.preventDefault();
				hg.portfolio_manager.go_to(-1);
				hg.portfolio_manager.set_keyboard_indicator('left');
			}
			
			// up 
			if(event.which == 38) {
				event.preventDefault();
				hg.portfolio_manager.switch_screenshot(-1);
				hg.portfolio_manager.set_keyboard_indicator('up');
			}
			
			// down 
			if(event.which == 40) {
				event.preventDefault();
				hg.portfolio_manager.switch_screenshot(1);
				hg.portfolio_manager.set_keyboard_indicator('down');
			}
		
		},
		
		//
		//	set keyboard indicator
		//
		set_keyboard_indicator: function(to) {
		
			if(hg.portfolio_manager._activated) {
		
				$('#work-keyboard')[0].className = to;
				
			}
		
		},
		
		//
		//	init image preloader
		//
		init_image_preloader: function() {
		
			$('div.portfolio-project li.image-sources').each(function() {
			
				// get image urls and temporarily save em
				_project = $(this).parents('.portfolio-project')[0];
				_project._loading_completed = false;
				_project._portfolio_images = $(this).html().split(',');
				$(this).remove();
				
				_length = _project._portfolio_images.length;
				
				// build screenshot indicator
				_screenshot_indicator = ' screenshot-indicator-small';
				if(_length > 2 && _length <= 4) _screenshot_indicator = '';
				if(_length > 4 && _length <= 6) _screenshot_indicator = ' screenshot-indicator-large';
				$(_project).find('.portfolio-infos .top').append('<div class="screenshot-indicator'+_screenshot_indicator+'">&nbsp;</div>');
				
				_project._screenshot_switching_enabled = (_length <= 2) ? false : true;
				_project._current_screenshot = 0;
				_project._screenshot_length = Math.ceil(_length/2);
				
				
				if(_project._screenshot_switching_enabled) {
				
					$(_project).find('div.portfolio-images').prepend('<div class="btn-prev-next-screenshot no-prev"><a href="#" class="btn-prev-screenshot">&nbsp;</a><a href="#" class="btn-next-screenshot">&nbsp;</a>');
					
					$(_project).find('div.portfolio-images').bind({
						mousemove: function(e) {
							hg.portfolio_manager.move_screenshot_arrows($(this).parents('div.portfolio-project'), e);
						},
						mouseenter: function(e) {
							hg.portfolio_manager.show_screenshot_arrows($(this).parents('div.portfolio-project'), e);
						},
						mouseleave: function(e) {
							hg.portfolio_manager.hide_screenshot_arrows($(this).parents('div.portfolio-project'), e);
						}
					});
					
					$(_project).find('.btn-prev-screenshot').click(function(e) {
						e.preventDefault();
						hg.portfolio_manager.switch_screenshot(-1);
					});
					
					$(_project).find('.btn-next-screenshot').click(function(e) {
						e.preventDefault();
						hg.portfolio_manager.switch_screenshot(1);
					});
					
				}
			              
				hg.portfolio_manager.ready = true;  
				$(hg.portfolio_manager).trigger('preloaderinit', [$('div.portfolio-project.current').data('_index')]);
			});
		
		},
		
		//
		//	deactivate
		//
		deactivate: function() {
		
			if(hg.portfolio_manager._activated) {
			
				$('div.portfolio-project.current').fadeTo(500, 0.2);
				hg.portfolio_manager._activated = false;
				
			}
		
		},
		
		//
		//	reactive 
		//
		reactivate: function() {
		
			if(!hg.portfolio_manager._activated) {
			
				$('div.portfolio-project.current').fadeTo(500, 1);
				hg.portfolio_manager._activated = true;
				
			}
		
		},
		
		//
		//	get current project +/- 2
		//
		get_project_neighbors: function() {
		
			_projects = $('div.portfolio-project');
			_current = $('div.portfolio-project.current').index();
			
			_index_current = _current;
			_index_prev = ((_current-1) >= 0) ? (_current-1) : (hg.portfolio_manager._length-1);
			_index_prev2 = ((_index_prev-1) >= 0) ? (_index_prev-1) : (hg.portfolio_manager._length-1);
			_index_next = ((_current+1) <= (hg.portfolio_manager._length-1)) ? (_current+1) : 0;
			_index_next2 = ((_index_next+1) <= (hg.portfolio_manager._length-1)) ? (_index_next+1) : 0;
			
			_output = [];
			
			if(_projects[_index_prev2]) _output.push(_projects[_index_prev2]);
			if(_projects[_index_prev]) _output.push(_projects[_index_prev]);
			if(_projects[_index_current]) _output.push(_projects[_index_current]);
			if(_projects[_index_next]) _output.push(_projects[_index_next]);
			if(_projects[_index_next2]) _output.push(_projects[_index_next2]);
			
			return $.unique(_output);
			
		},
		
		//
		//	preload and show images
		//
		preload_images: function() {
		
			_projects = hg.portfolio_manager.get_project_neighbors();
			$.each(_projects, function(a, b) {
				if(!b._loading_completed) {
				
					_images = b._portfolio_images;
					_output = '';
					$.each(_images, function(c, d) {
						if(c % 2 == 0) { _output += '<li>'; }
						_output += '<img src="'+d+'" alt="" />';
						if(c % 2 == 1) { _output += '</li>'; }
					});
					$(b).find('ul.portfolio-images').html(_output);
					b._loading_completed = true;
				
				}
			});
		
		},
		
		//
		//	switch screenshot
		//
		switch_screenshot: function(dir) {
		
			if(hg.portfolio_manager._activated && !hg.portfolio_manager._is_switching && !hg.portfolio_manager._is_switching_screenshots) {
					
				_project = $('div.portfolio-project.current')[0];
				if(_project._screenshot_switching_enabled) {
				
					_next = _project._current_screenshot + dir;
					if(_next >= 0 && _next <= _project._screenshot_length-1) {
					
						hg.portfolio_manager._is_switching_screenshots = true;
						
						_project._current_screenshot = _next;
						_top = 383 * _next;

						$(_project).find('ul.portfolio-images').animate({
							top: -_top+'px'
						}, {
							complete: function() {
								hg.portfolio_manager._is_switching_screenshots = false;
							}
						});
						
						_screenshot_indicator = 'state'+(_next+1);
						$(_project).find('.screenshot-indicator').removeClass('state1 state2 state3').addClass(_screenshot_indicator);
						
						_arrow_class = '';
						if(_screenshot_indicator == 'state1') { _arrow_class = 'no-prev'; }
						if(_screenshot_indicator == 'state2' && _project._screenshot_length == 2) { _arrow_class = 'no-next'; }
						if(_screenshot_indicator == 'state3') { _arrow_class = 'no-next'; }
						$(_project).find('div.btn-prev-next-screenshot').removeClass('no-next no-prev').addClass(_arrow_class);
						
					}
				
				}
				
			}
		
		},
		
		//
		//	move screenshot arrows
		//
		move_screenshot_arrows: function(project, e) {
		
			_x = e.pageX - $(project).offset().left;
			_y = e.pageY - $(project).offset().top - 27;
			
			if(_y < 53) _y = 53;
			if(_y > 306) _y = 306;
			if(_x < 41) _x = 41;
			if(_x > 903) _x = 903;

			if(_y >= 180) {
				$(project).find('div.btn-prev-next-screenshot').removeClass('show-prev').addClass('show-next');
			} else {
				$(project).find('div.btn-prev-next-screenshot').removeClass('show-next').addClass('show-prev');
			}
			
			$(project).find('div.btn-prev-next-screenshot').css({
				'top': _y,
				'left': _x
			});
		
		},
		
		//
		//	show screenshot arrows
		//
		show_screenshot_arrows: function(project, e) {
		
			if(hg.portfolio_manager._activated && $(project).is('.current')) {

				_x = e.pageX - $(project).offset().left;
				_y = e.pageY - $(project).offset().top - 27;

				if(_y >= 180) {
					$(project).find('div.btn-prev-next-screenshot').removeClass('show-prev').addClass('show-next');
				} else {
					$(project).find('div.btn-prev-next-screenshot').removeClass('show-next').addClass('show-prev');
				}

				$(project).find('div.btn-prev-next-screenshot').css({
					'top': _y,
					'left': _x
				}).show();
				
			}
		
		},
		
		//
		//	hide screenshot arrows
		//
		hide_screenshot_arrows: function(project, e) {
		
			$(project).find('div.btn-prev-next-screenshot').hide();
		
		},
		
		//
		//	load projects via ajax and reset portfolio manager
		//
		load_project_list: function(params, slug) {
		
			$('#portfolio-container-inner').prepend('<img src="img/loading-content.gif" alt="" id="loading-content" />');
		
			$('#portfolio-container-inner-track').fadeOut(500, function() {

				$('#portfolio-container-inner-track').load('work/update', params, function() {
					$('#loading-content').remove();
					hg.portfolio_manager.init(slug);          
					$(hg.portfolio_manager).trigger('reset');    
					Cufon.refresh();
					$(this).fadeIn(500);
				});
				
			});
		
		}
	
	};
                                            
	                                                               
	if($('body').is('.page-work')) {  
		                          
		$.addressmanager.init( function()
		{
			//console.log('addressmanager');
		});
		
		hg.portfolio_manager.init(); 
		
		$(hg.filter_manager).bind('selected', function(event, slug) {
			$.address.value( slug );
		});
		
		// add event listeners  
		$(hg.portfolio_manager).bind('switch', function(event, next) {                        
			//alert('switch:'+index);    
			//console.log(next);    
			/*
			var index;  
			if( next == undefined) {
				index = $('.filter-results a').length - 1;
			}    
			if( next == undefined || next > $('.filter-results a').length ) {
				index = 0;
			}else {
				index = next - 1; 
			}                                               
			*/ 
		    $.address.value( $( $('.filter-results a')[(next-1)] ).attr('href').substr(5) );                   
			_counter.set(next);    
		});                   
		
		$(hg.portfolio_manager).bind('reset', function(event) {        
			_counter.reset();                                                             
		});
		
		$($.addressmanager).bind('change', function(event, index) {          
			if(index != -1) {                     
				var _next = index - $('div.portfolio-project.current').index() +1;      
				//alert(_next);
				if(_next != 0) {             
					if(hg.portfolio_manager.ready == true) {     
						hg.portfolio_manager.go_to( _next );
					}else {  
						$(hg.portfolio_manager).bind('preloaderinit', function(event, index) { 
							hg.portfolio_manager.go_to( _next );     
						});	
					}         
				}   
			}
					                                                                                    
		});                                                  
	}    
	     


        
    /** 
	 * jQuery Clock       
	 *
	 * format: 
	 * Berlin / Apr 07 / 15:49 CET
	 */
	var options = {
		timeNotation: '12h',
		am_pm: true
	};   
	//
	$('#clock').jclock(options); 
	      
	
	
	
	
	
	/**
	 * Teaser mousover
	 */
	$(".image-section .image").hover(function() {       
		// check if contains a link        
		if( $(this).find('a').length > 0) {
			$(this).append('<div class="raster"></div>'); 
		}                                      
	}, function() {                              
		$(".image-section .image div.raster").remove();
	}); 
	                  
	
	
	
	
	
	
	/**
	 * Slideshow
	 */                              
	var slideshow = $('#teaser .teaser-image'); 
	if(slideshow.length > 0) {
		slideshow.cycle({
			fx: 'fade', 
			timeout: 6000
		});
	}   
	
	
	
	
	
	        
	/**
	 * Contact form 
	 */                                                                                                              
	
	// ajax form
	var contactFormOptions = {           
		beforeSubmit: function() {   
			if($('#contact-form').validationEngine({
				promptPosition: "topLeft",
				scroll: false,
				returnIsValid:true
			})) {  
		    	$('#contact-form').parent().find('p:first').replaceWith('<p class="message"><img src="img/loading_f9.gif" alt="Sending" /></p>');
				$('#contact-form').slideUp();    
				return true;
			}else {
				return false;
			}                             
		},                             
	    success: 	function() {       
	    	$('#contact-form').parent().find('p:first').replaceWith('<p class="message">Thanks for writing us. We will get back to you within one business day.</p>');
	    } 
	};                                                 
	$('#contact-form').ajaxForm(contactFormOptions);     

	// validation         
	$("#contact-form").validationEngine({
		promptPosition: "topLeft",
		scroll: false
	});             
	
	// label / input replacement 
	$("#contact-form label").inFieldLabels();    
	 
	// hijack autofill 
	$("#contact-form").listenForChange(); 
             
                  
	
	                                              


                 
          
	/**
	 * Apply form 
	 */                                                                          
	
	// hide "work for us form"     
	var applyButton = $('<button id="apply_button">Apply</button>');      
	applyButton.click(function() {  
		$('#apply_button').fadeOut('slow', function() {
			$('#application-form').slideDown(); 
		}); 
	});
	$('#application-form').after(applyButton);
	$('#application-form').hide();    
	               
	// ajax form  	
	var applyFormOptions = {           
		beforeSubmit: function() {   
			if($('#application-form').validationEngine({
				promptPosition: "topLeft",
				scroll: false,
				returnIsValid:true
			})) {                            
	    		$('#application-form').parent().append('<p class="message"><img src="img/loading_f9.gif" alt="Sending" /></p>');
				$('#application-form').slideUp();     
				return true;
			}else {
				return false;
			}            
		},                             
	    success: 	function() {       
	    	$('#application-form').parent().find('p:last').replaceWith('<p class="message">Thanks for writing us. We will get back to you within one business day.</p>');
	    } 
	};                  
	$('#application-form').ajaxForm(applyFormOptions);      
	
	// validation
	$("#application-form").validationEngine({
	    promptPosition: "topLeft",
	    scroll: false
	});  
	   
	// label / input replacement                                    
	$("#application-form label").inFieldLabels(); 
	
	// hijack autofill 
	$("#application-form").listenForChange();

	
	
	                 
	
	
	
    /**
	 * External links
	 */            
   	$('a.btn-visit-project, a.b-contact, a#b-blog').click(function() {
       	window.open(this.href);
       	return false;
   	});                       


    /**                       
	 * Dectivate language menu
	 */            
   	$('a#b-lang').click(function() {   
       	return false;
   	});   
	



});
