/*!
 * Documenter 2.0
 * http://rxa.li/documenter
 *
 * Copyright 2011, Xaver Birsak
 * http://revaxarts.com
 *
 */

 $(document).ready(function(){
  // Add smooth scrolling to all links
  $("a").on('click', function(event) {

  	$('a').removeClass('current');
  	$(this).addClass('current');

    // Make sure this.hash has a value before overriding default behavior
    if (this.hash !== "") {
      // Prevent default anchor click behavior
      event.preventDefault();

      // Store hash
      var hash = this.hash;

      // Using jQuery's animate() method to add smooth page scroll
      // The optional number (800) specifies the number of milliseconds it takes to scroll to the specified area
      $('html, body').animate({
        scrollTop: $(hash).offset().top
      }, 800, function(){
   
        // Add hash (#) to URL when done scrolling (default click behavior)
        window.location.hash = hash;
      });
    } // End if
  });
});

 
// $(document).ready(function() {
// 	var timeout,
// 		sections = new Array(),
// 		sectionscount = 0,
// 		win = $(window),
// 		sidebar = $('#documenter_sidebar'),
// 		nav = $('#documenter_nav'),
// 		logo = $('#documenter_logo'),
// 		navanchors = nav.find('a'),
// 		timeoffset = 50,
// 		hash = location.hash || null;
// 		iDeviceNotOS4 = (navigator.userAgent.match(/iphone|ipod|ipad/i) && !navigator.userAgent.match(/OS 5/i)) || false,
// 		badIE = $('html').prop('class').match(/ie(6|7|8)/)|| false;
		
// 	//handle external links (new window)
// 	$('a[href^=http]').bind('click',function(){
// 		window.open($(this).attr('href'));
// 		return false;
// 	});
	
// 	//IE 8 and lower doesn't like the smooth pagescroll
// 	if(!badIE){
// 		window.scroll(0,0);
		
// 		$('a[href^=#]').on('click touchstart',function(){
// 			hash = $(this).attr('href');
// 			$.scrollTo.window().queue([]).stop();
// 			setTimeout(function(){
				
// 				goTo(hash);
// 			}, 500);
			
// 			return false;
// 		});
		
// 		//if a hash is set => go to it
// 		if(hash){
// 			setTimeout(function(){

// 				goTo(hash);
// 			},500);
// 		}
// 	}
	
	
// 	//We need the position of each section until the full page with all images is loaded
// 	win.bind('load',function(){
		
// 		var sectionselector = 'section';
		
// 		//Documentation has subcategories		
// 		if(nav.find('ol').length){
// 			sectionselector = 'section, h4';
// 		}
// 		//saving some information
// 		$(sectionselector).each(function(i,e){
// 			var _this = $(this);
// 			var p = {
// 				id: this.id,
// 				pos: _this.offset().top
// 			};
// 			sections.push(p);
// 		});
		
		
// 		//iPhone, iPod and iPad don't trigger the scroll event
// 		if(iDeviceNotOS4){
// 			nav.find('a').bind('click',function(){
// 				setTimeout(function(){
// 					win.trigger('scroll');				
// 				},duration);
				
// 			});
// 			//scroll to top
// 			window.scroll(0,0);
// 		}

// 		//how many sections
// 		sectionscount = sections.length;
		
// 		//bind the handler to the scroll event
// 		win.bind('scroll',function(event){
// 			clearInterval(timeout);
// 			//should occur with a delay
// 			timeout = setTimeout(function(){
// 				//get the position from the very top in all browsers
// 				pos = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop;
				
// 				//iDeviceNotOS4s don't know the fixed property so we fake it
// 				if(iDeviceNotOS4){
// 					sidebar.css({height:document.height});
// 					logo.css({'margin-top':pos});
// 				}
// 				//activate Nav element at the current position
// 				activateNav(pos);
// 			},timeoffset);
// 		}).trigger('scroll');

// 	});
	
// 	//the function is called when the hash changes
// 	function hashchange(){
// 		goTo(location.hash, false);
// 	}
	
// 	//scroll to a section and set the hash
// 	function goTo(hash,changehash){
// 		win.unbind('hashchange', hashchange);
// 		hash = hash.replace(/!\//,'');
// 		win.stop().scrollTo(hash,duration,{
// 			easing:easing,
// 			axis:'y'			
// 		});
// 		if(changehash !== false){
// 			var l = location;
// 			location.href = (l.protocol+'//'+l.host+l.pathname+'#'+hash.substr(1));
// 		}
// 		win.bind('hashchange', hashchange);
// 	}
	
	
// 	//activate current nav element
// 	function activateNav(pos){
// 		var offset = 100,
// 		current, next, parent, isSub, hasSub;
// 		win.unbind('hashchange', hashchange);
// 		for(var i=sectionscount;i>0;i--){
// 			if(sections[i-1].pos <= pos+offset){
// 				navanchors.removeClass('current');
// 				current = navanchors.eq(i-1);
// 				current.addClass('current');
				
// 				parent = current.parent().parent();
// 				next = current.next();
				
// 				hasSub = next.is('ul');
// 				isSub = !parent.is('#documenter_nav');
				
// 				nav.find('ol:visible').not(parent).slideUp('fast');
// 				if(isSub){
// 					parent.prev().addClass('current');
// 					parent.stop().slideDown('fast');
// 				}else if(hasSub){
// 					next.stop().slideDown('fast');
// 				}
// 				win.bind('hashchange', hashchange);
// 				break;
// 			};
// 		}	
// 	}
	
//     // make code pretty
//     window.prettyPrint && prettyPrint();
	
// });