text: /* ===========================================================
   * jquery-onepage-scroll.js v1.3.1
   * ===========================================================
   * Copyright 2013 Pete Rojwongsuriya.
   * http://www.thepetedesign.com
   *
   * Create an Apple-like website that let user scroll
   * one page at a time
   *
   * Credit: Eike Send for the awesome swipe event
   * https://github.com/peachananr/onepage-scroll
   *
   * License: GPL v3
   *
   * ========================================================== */
  var deltaOfInterest;
  var index;
  var current;
  var next = 0;
  var prev = 0;
  var pos;
  var init_index = 0;
  var totalSections = $("section").length;
  
  
  !function($){
  
  	var defaults = {
  		sectionContainer: "section",
  		easing: "ease",
  		animationTime: 1000,
  		pagination: true,
  		updateURL: false,
  		keyboard: true,
  		beforeMove: null,
  		afterMove: null,
  		loop: true,
  		responsiveFallback: false,
  		direction : 'vertical',
  		posTop : 0 ,
  	};
  
  	/*------------------------------------------------*/
  	/*  Credit: Eike Send for the awesome swipe event */
  	/*------------------------------------------------*/
  
  	$.fn.swipeEvents = function() {
  			return this.each(function() {
  
  				var startX,
  						startY,
  						$this = $(this);
  
  				$this.bind('touchstart', touchstart);
  
  				function touchstart(event) {
  					var touches = event.originalEvent.touches;
  					if (touches && touches.length) {
  						startX = touches[0].pageX;
  						startY = touches[0].pageY;
  						$this.bind('touchmove', touchmove);
  					}
  				}
  
  				function touchmove(event) {
  					var touches = event.originalEvent.touches;
  					if (touches && touches.length) {
  						var deltaX = startX - touches[0].pageX;
  						var deltaY = startY - touches[0].pageY;
  
  						if (deltaX >= 50) {
  							$this.trigger("swipeLeft");
  						}
  						if (deltaX <= -50) {
  							$this.trigger("swipeRight");
  						}
  						if (deltaY >= 50) {
  							$this.trigger("swipeUp");
  						}
  						if (deltaY <= -50) {
  							$this.trigger("swipeDown");
  						}
  						if (Math.abs(deltaX) >= 50 || Math.abs(deltaY) >= 50) {
  							$this.unbind('touchmove', touchmove);
  						}
  					}
  				}
  
  			});
  		};
  
  
  	$.fn.onepage_scroll = function(options){
  		var settings = $.extend({}, defaults, options),
  				el = $(this),
  				sections = $(settings.sectionContainer),
  				total = sections.length,
  				status = "off",
  				topPos = 0,
  				leftPos = 0,
  				lastAnimation = 0,
  				quietPeriod = 500,
  				paginationList = "";
  
  		$.fn.transformPage = function(settings, pos, index) {
  			if (typeof settings.beforeMove == 'function') settings.beforeMove(index);
  
  			// Just a simple edit that makes use of modernizr to detect an IE8 browser and changes the transform method into
  			// an top animate so IE8 users can also use this script.
  			if($('html').hasClass('ie8')){
  
  				if (settings.direction == 'horizontal') {
  					var toppos = (el.width()/100)*pos;
  					$(this).animate({left: toppos+'px'},settings.animationTime);
  				} else {
  					var toppos = (el.height()/100)*pos;
  					$(this).animate({top: toppos+'px'},settings.animationTime);
  				}
  			} else{
  
  				if(totalSections === index ) {
  					pos += 50;
  				}
  				$(this).css({
  					"-webkit-transform": ( settings.direction == 'horizontal' ) ? "translate3d(" + pos + "%, 0, 0)" : "translate3d(0, " + pos + "%, 0)",
  				 "-webkit-transition": "all " + settings.animationTime + "ms " + settings.easing,
  				 "-moz-transform": ( settings.direction == 'horizontal' ) ? "translate3d(" + pos + "%, 0, 0)" : "translate3d(0, " + pos + "%, 0)",
  				 "-moz-transition": "all " + settings.animationTime + "ms " + settings.easing,
  				 "-ms-transform": ( settings.direction == 'horizontal' ) ? "translate3d(" + pos + "%, 0, 0)" : "translate3d(0, " + pos + "%, 0)",
  				 "-ms-transition": "all " + settings.animationTime + "ms " + settings.easing,
  				 "transform": ( settings.direction == 'horizontal' ) ? "translate3d(" + pos + "%, 0, 0)" : "translate3d(0, " + pos + "%, 0)",
  				 "transition": "all " + settings.animationTime + "ms " + settings.easing
  				});
  			}
  			// console.log("totalSections :",totalSections);
  			FBZ.control.sectionMonitor(index);
  
  			$(this).one('webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend', function(e) {
  				if (typeof settings.afterMove == 'function') settings.afterMove(index);
  			});
  		}
  		$.fn.goToSectionByName = function () { 
  
  				var sections = $('section');
  				var hash = "#"+location.hash.slice(1);
  				var sectionsAmount = sections.length;
  
  			// if we found a # in the URL we iterate trough to make it better 
  			if ( window.location.href.indexOf('#') != -1 ) {
  				
  
  			
  		//    console.log("hash detected :", hash);
  
  
  				for(var i=0 ; i < sectionsAmount ; i++ ) { 
  
  						var currentSectionDataName  = sections[i].attributes["data-name"].value;
  					//  console.log(currentSectionDataName,hash ,currentSectionDataName == hash );
  						if (currentSectionDataName == hash ) {
  								$.fn.moveTo(i+1);
  								index = i;
  								break;
  						}
  					}
  
  			}else {
  
  				var firstSection = sections[0].attributes["data-name"].value;
  				history.pushState( {}, document.title, firstSection );
  			}
  		}
  
  			$.fn.replaceHistoryAndGo = function  (settings,position,data) { 
  
  					if (history.replaceState && settings.updateURL == true) {
  				//		var href = window.location.href.substr(0,window.location.href.indexOf('#')) + "#" + (index - 1);
  
  						var sectionValue = $('section').eq(index).attr("data-name") ;
  				//		console.log(sectionValue);
  						history.pushState( {}, document.title, sectionValue );
  					}
  					 // console.log(
  					// "deltaOfInterest :", deltaOfInterest,
  					 // "index :", index,
  					// "current :", current,
  					 // "next : ", next,
  					 // "prev", prev,
  					 // "pos", pos,
  					 // "init_index", init_index
  					 // );
  
  					el.transformPage(settings, position, data);
  			}
  
  		$.fn.moveDown = function() {
  			var el = $(this)
  			index = $(settings.sectionContainer +".active").data("index");
  			current = $(settings.sectionContainer + "[data-index='" + index + "']");
  			next = $(settings.sectionContainer + "[data-index='" + (index + 1) + "']");
  			if(next.length < 1) {
  				if (settings.loop == true) {
  					pos = 0;
  					next = $(settings.sectionContainer + "[data-index='1']");
  				} else {
  					return
  				}
  
  			}else {
  				pos = (index * 100) * -1;
  			}
  			if (typeof settings.beforeMove == 'function') settings.beforeMove( next.data("index"));
  			current.removeClass("active")
  			next.addClass("active");
  			if(settings.pagination == true) {
  				$(".onepage-pagination li a" + "[data-index='" + index + "']").removeClass("active");
  				$(".onepage-pagination li a" + "[data-index='" + next.data("index") + "']").addClass("active");
  			}
  
  			$("body")[0].className = $("body")[0].className.replace(/\bviewing-page-\d.*?\b/g, '');
  			$("body").addClass("viewing-page-"+next.data("index"))
  
  			$.fn.replaceHistoryAndGo(settings, pos, next.data("index"));
  		//		console.log("moveDown",index, pos,next.data("index") );
  		}
  
   $.fn.moveUp = function() {
  			var el = $(this)
  			index = $(settings.sectionContainer +".active").data("index");
  			current = $(settings.sectionContainer + "[data-index='" + index + "']");
  			next = $(settings.sectionContainer + "[data-index='" + (index - 1) + "']");
  
  			if(next.length < 1) {
  				if (settings.loop == true) {
  					pos = ((total - 1) * 100) * -1;
  					next = $(settings.sectionContainer + "[data-index='"+total+"']");
  				}
  				else {
  					return
  				}
  			}else {
  				pos = ((next.data("index") - 1) * 100) * -1;
  			}
  			if (typeof settings.beforeMove == 'function') settings.beforeMove(next.data("index"));
  			current.removeClass("active")
  			next.addClass("active")
  			if(settings.pagination == true) {
  				$(".onepage-pagination li a" + "[data-index='" + index + "']").removeClass("active");
  				$(".onepage-pagination li a" + "[data-index='" + next.data("index") + "']").addClass("active");
  			}
  			$("body")[0].className = $("body")[0].className.replace(/\bviewing-page-\d.*?\b/g, '');
  			$("body").addClass("viewing-page-"+next.data("index"))
  
  			if (history.replaceState && settings.updateURL == true) {
  				//var href = window.location.href.substr(0,window.location.href.indexOf('#')) + "#" + (index - 1);
  				//history.pushState( {}, document.title, href );
  
  	//			console.log("moveDown",index, pos,next.data("index") );
  
  				var sectionValue = $('section').eq(index-2).attr("data-name") ;
  				history.pushState( {}, document.title, sectionValue );
  
  			}
  			el.transformPage(settings, pos, next.data("index"));
  		}
  
      $.fn.moveTo = function(page_index) {
        current = $(settings.sectionContainer + ".active")
        next = $(settings.sectionContainer + "[data-index='" + (page_index) + "']");
        if(next.length > 0) {
          if (typeof settings.beforeMove == 'function') settings.beforeMove(next.data("index"));
          current.removeClass("active")
          next.addClass("active")
          $(".onepage-pagination li a" + ".active").removeClass("active");
          $(".onepage-pagination li a" + "[data-index='" + (page_index) + "']").addClass("active");
          $("body")[0].className = $("body")[0].className.replace(/\bviewing-page-\d.*?\b/g, '');
          $("body").addClass("viewing-page-"+next.data("index"))
  
          pos = ((page_index - 1) * 100) * -1;
  
          if (history.replaceState && settings.updateURL == true) {
          //    var href = window.location.href.substr(0,window.location.href.indexOf('#')) + "#" + (page_index - 1);
            //  history.pushState( {}, document.title, href );
              var sectionValue = $('section').eq(page_index-1).attr("data-name") ;
  						history.pushState( {}, document.title, sectionValue );
  			//			console.log("moveTo",sectionValue);
  
          }
          el.transformPage(settings, pos, page_index);
        }
      }
  
  		function responsive() {
  			//start modification
  			var valForTest = false;
  			var typeOfRF = typeof settings.responsiveFallback
  
  			if(typeOfRF == "number"){
  				valForTest = $(window).width() < settings.responsiveFallback;
  			}
  			if(typeOfRF == "boolean"){
  				valForTest = settings.responsiveFallback;
  			}
  			if(typeOfRF == "function"){
  				valFunction = settings.responsiveFallback();
  				valForTest = valFunction;
  				typeOFv = typeof valForTest;
  				if(typeOFv == "number"){
  					valForTest = $(window).width() < valFunction;
  				}
  			}
  
  			//end modification
  			if (valForTest) {
  				$("body").addClass("disabled-onepage-scroll");
  				$(document).unbind('mousewheel DOMMouseScroll MozMousePixelScroll');
  				el.swipeEvents().unbind("swipeDown swipeUp");
  			} else {
  				if($("body").hasClass("disabled-onepage-scroll")) {
  					$("body").removeClass("disabled-onepage-scroll");
  					$("html, body, .wrapper").animate({ scrollTop: 0 }, "fast");
  				}
  
  
  				el.swipeEvents().bind("swipeDown",  function(event){
  					if (!$("body").hasClass("disabled-onepage-scroll")) event.preventDefault();
  					el.moveUp();
  				}).bind("swipeUp", function(event){
  					if (!$("body").hasClass("disabled-onepage-scroll")) event.preventDefault();
  					el.moveDown();
  				});
  
  				$(document).bind('mousewheel DOMMouseScroll MozMousePixelScroll', function(event) {
  					event.preventDefault();
  					var delta = event.originalEvent.wheelDelta || -event.originalEvent.detail;
  					init_scroll(event, delta);
  				});
  			}
  		}
  
  
  		function init_scroll(event, delta) {
  
  	 //   console.log(delta);
  				deltaOfInterest = delta;
  				var timeNow = new Date().getTime();
  				// Cancel scroll if currently animating or within quiet period
  				if(timeNow - lastAnimation < quietPeriod + settings.animationTime) {
  						event.preventDefault();
  						return;
  				}
  
  				if (deltaOfInterest < 0) {
  					el.moveDown()
  				} else {
  					el.moveUp()
  				}
  				lastAnimation = timeNow;
  		}
  
  		// Prepare everything before binding wheel scroll
  
  		el.addClass("onepage-wrapper").css("position","relative");
  		$.each( sections, function(i) {
  			$(this).css({
  				position: "absolute",
  				top: topPos + "%"
  			}).addClass("section").attr("data-index", i+1);
  
  
  			$(this).css({
  				position: "absolute",
  				left: ( settings.direction == 'horizontal' )
  					? leftPos + "%"
  					: 0,
  				top: ( settings.direction == 'vertical' || settings.direction != 'horizontal' )
  					? topPos + "%"
  					: 0
  			});
  
  			if (settings.direction == 'horizontal')
  				leftPos = leftPos + 100;
  			else
  				topPos = topPos + 100;
  
  
  			if(settings.pagination == true) {
  				paginationList += "<li><a data-index='"+(i+1)+"'></a></li>"
  			}
  		});
  
  		el.swipeEvents().bind("swipeDown",  function(event){
  			if (!$("body").hasClass("disabled-onepage-scroll")) event.preventDefault();
  			el.moveUp();
  		}).bind("swipeUp", function(event){
  			if (!$("body").hasClass("disabled-onepage-scroll")) event.preventDefault();
  			el.moveDown();
  		});
  
  		// Create Pagination and Display Them
  		if (settings.pagination == true) {
  			if ($('ul.onepage-pagination').length < 1) $("<ul class='onepage-pagination'></ul>").prependTo("body");
  
  			if( settings.direction == 'horizontal' ) {
  				posLeft = (el.find(".onepage-pagination").width() / 2) * -1;
  				el.find(".onepage-pagination").css("margin-left", posLeft);
  			} else {
  
  			//  console.log(FBZ.model.stageH,el.find(".onepage-pagination"));
  				var posTop = (FBZ.model.stageH / 2) * -1;
  				el.find(".onepage-pagination").css("margin-top", posTop);
  			}
  			$('ul.onepage-pagination').html(paginationList);
  		}
  
  		if(window.location.hash != "" && window.location.hash != "#home") {
  			init_index =  window.location.hash.replace("#", "home")
  
  			if (parseInt(init_index) <= total && parseInt(init_index) > 0) {
  				$(settings.sectionContainer + "[data-index='" + init_index + "']").addClass("active")
  				$("body").addClass("viewing-page-"+ init_index)
  				if(settings.pagination == true) $(".onepage-pagination li a" + "[data-index='" + init_index + "']").addClass("active");
  
  				next = $(settings.sectionContainer + "[data-index='" + (init_index) + "']");
  				if(next) {
  					next.addClass("active")
  					if(settings.pagination == true) $(".onepage-pagination li a" + "[data-index='" + (init_index) + "']").addClass("active");
  					$("body")[0].className = $("body")[0].className.replace(/\bviewing-page-\d.*?\b/g, '');
  					$("body").addClass("viewing-page-"+next.data("index"))
  					
  					$.fn.replaceHistoryAndGo(settings, pos, next.data("index"));
  
  				}
  				pos = ((init_index - 1) * 100) * -1;
  				el.transformPage(settings, pos, init_index);
  			} else {
  				$(settings.sectionContainer + "[data-index='1']").addClass("active")
  				$("body").addClass("viewing-page-1")
  				if(settings.pagination == true) $(".onepage-pagination li a" + "[data-index='1']").addClass("active");
  			}
  		}else{
  			$(settings.sectionContainer + "[data-index='1']").addClass("active")
  			$("body").addClass("viewing-page-1")
  			if(settings.pagination == true) $(".onepage-pagination li a" + "[data-index='1']").addClass("active");
  		}
  
  		if(settings.pagination == true)  {
  			$(".onepage-pagination li a").click(function (){
  				var page_index = $(this).data("index");
  		//		$.fn.replaceHistoryAndGo(settings, pos, next.data("index"));
  				el.moveTo(page_index);
  
  			});
  		}
  
  
  		$(document).bind('mousewheel DOMMouseScroll MozMousePixelScroll', function(event) {
  			event.preventDefault();
  			var delta = event.originalEvent.wheelDelta || -event.originalEvent.detail;
  			if(!$("body").hasClass("disabled-onepage-scroll")) init_scroll(event, delta);
  		});
  
  
  		if(settings.responsiveFallback != false) {
  			$(window).resize(function() {
  				responsive();
  			});
  
  			responsive();
  		}
  
  		if(settings.keyboard == true) {
  			$(document).keydown(function(e) {
  				var tag = e.target.tagName.toLowerCase();
  
  				if (!$("body").hasClass("disabled-onepage-scroll")) {
  					switch(e.which) {
  						case 38:
  							if (tag != 'input' && tag != 'textarea') el.moveUp()
  						break;
  						case 40:
  							if (tag != 'input' && tag != 'textarea') el.moveDown()
  						break;
  						case 32: //spacebar
  							if (tag != 'input' && tag != 'textarea') el.moveDown()
  						break;
  						case 33: //pageg up
  							if (tag != 'input' && tag != 'textarea') el.moveUp()
  						break;
  						case 34: //page dwn
  							if (tag != 'input' && tag != 'textarea') el.moveDown()
  						break;
  						case 36: //home
  							el.moveTo(1);
  						break;
  						case 35: //end
  							el.moveTo(total);
  						break;
  						default: return;
  					}
  				}
  
  			});
  		}
  		return false;
  	}
  
  
  }(window.jQuery);
  