var ie6 = ( $.browser.msie && $.browser.version < 7 ) ? true : false;


$(document).ready(function () {
			
		// NAVIGATION
		$("#nav li").bgIframe(); //Makes menu appear on top of select boxes in IE6
    $(".nav_1 li").hover(function() { $(".nav_2", this).hide().slideDown("fast"); }, function() {});
    if (document.all) { $(".nav_1 li").hoverClass("sfHover"); }
		
		// CLEAR INPUT FIELDS ON FOCUS
		$('input.focusField').clearFieldOnFocus();
		
		// FTG METER
		$('.ftg-meter ul').ftgMeter();
		
		// ROLLOVER CRITERIA BANNERS HOMEPAGE
		$('.rollout-banner').rolloutBanner();
		
		// NEWS SCROLLER HOMEPAGE
		$('.news-scroller').carousel();
		
		// TOGGLE CONTENT
		$('.toggleList li').toggleContent();
		
		// ACCORDION
		$('.accordion').accordion();
		
		// PHOTO SLIDER
		$('.photoSlider').photoSlider();
		
		// STYLED SELECTBOXES
		$('select.selectMenu').styleSelect({styleClass:'select-menu', optionsTop:20, optionsWidth:0 });
		
		// INIT CART
		cart_init();
		
});






/**
 * CART FUNCTIONS
 * 
 */

function cart_init() {
	
	$('.cart_addToBasket').click(function() {
		
		// get item
			var rel = $(this).attr('rel');
			var item = $('#'+rel);
		
		// get item values
			if(item) {
				
				// set vars
					var title = item.attr('rel');
					var value = parseFloat(item.attr('value'));
				
				// add to table
					var html = '<tr><th>'+title+'</th><td class="align-r color3">'+value+'</td><td class="align-r"><a href="#" class="cart_deleteItem" style="display:none;"> [delete]</a></td></tr>';
					$('#cart_items').append(html);
					$('#cart_data, #cart_button').show();
					$('#cart_empty, #cart_thanks').hide();
				
				// update price
					var newPrice = 0;
					$('#cart_price').html(newPrice);
				
				// add action
					$('#cart_items tr').hover(function() {
						$(this).children('td').children('.cart_deleteItem').show();
					}, function() {
						$(this).children('td').children('.cart_deleteItem').hide();
					});
				
			}
		
		// prevent default link action
			return false;
		
	});
	
	$('.cart_deleteItem').live('click', function() {
		$(this).parent('td').parent('tr').remove();
		if($('#cart_items tr').size() == 0) {
			$('#cart_data, #cart_form, #cart_button').hide();
			$('#cart_empty').show();
		}
		return false;
	});
	
	$('.cart_submit').live('click', function() {
		if($('#cart_form').css('display') == 'none') {
			$('#cart_form').slideDown(800);
		} else {
			
			// reset form
				$('#cart_name, #cart_email, #cart_town, #cart_phone').removeClass('error');
			
			// validation
				if($('#cart_name').attr('value') == '') {
					$('#cart_name').addClass('error');
					return false;
				}
				if($('#cart_street').attr('value') == '') {
					$('#cart_street').addClass('error');
					return false;
				}
				if($('#cart_streetnr').attr('value') == '') {
					$('#cart_streetnr').addClass('error');
					return false;
				}
				if($('#cart_postal').attr('value') == '') {
					$('#cart_postal').addClass('error');
					return false;
				}
				if($('#cart_town').attr('value') == '') {
					$('#cart_town').addClass('error');
					return false;
				}
				if($('#cart_phone').attr('value') == '') {
					$('#cart_phone').addClass('error');
					return false;
				}
				if(!isEmail($('#cart_email').attr('value'))) {
					$('#cart_email').addClass('error');
					return false;
				}
			
			// make ajax call
				var url = '/lib/ajax/sendMail.php';
				$('.cart_deleteItem').remove();
				var post = { "name": $('#cart_name').attr('value'), "function": $('#cart_function').attr('value'), "organisation": $('#cart_organisation').attr('value'), "btw": $('#cart_btw').attr('value'), "street": $('#cart_street').attr('value'), "streetnr": $('#cart_streetnr').attr('value'), "postal": $('#cart_postal').attr('value'), "town": $('#cart_town').attr('value'), "phone": $('#cart_phone').attr('value'), "email": $('#cart_email').attr('value'), "data": $.toJSON($('#cart_items').html()) };
				$.post(url, post, function(resp) {
					$('#cart_thanks').html('<hr />'+resp.resp).show();
					if(resp.success) {
						$('#cart_empty').show();
						$('#cart_items').empty();
						$('#cart_data, #cart_form, #cart_button').hide();
					}
				}, 'json');
			
		}
		return false;
	});
	
}

function isEmail(v) {
	return /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/.test(v);
}













/*
 *  ACCORDION
 */
$.fn.accordion = function() {
		
		var contentClass = 'body';
		var handleClass = 'head';

		return this.each(function(i) {
  	
			//var $items = $('li',$(this));
		 	var $items =$(this).children('li');
			
			$items.each(function(i) {

				var $item = $(this);
				var $handle = $('.'+handleClass,$item);
				var $content = $('.'+contentClass,$item);
				
				if ( !$item.hasClass('open')) {
					$item.addClass('closed');
					$content.hide();
				}
				$handle.click(function(e) {
					toggleAccordionItem(i);
					e.preventDefault();
				});	
				$handle.mouseover( function() {$(this).addClass('hover');} ).mouseout( function() {$(this).removeClass('hover');} );
				
			});
			
			function toggleAccordionItem(i) {
				var $item = $($items[i]);
				var $content = $('.'+contentClass,$item);
				if ( $item.hasClass('open')) {
					$item.removeClass('open').addClass('closed');		
					$content.slideUp();
				} else {
					$item.removeClass('closed').addClass('open');		
					$content.slideDown();
					//$content.slideDown({duration:800, easing: 'easeOutSine' });
				}				
			};

		});

};

$.fn.toggleContent = function(options) {
		var toggleSettings = jQuery.extend({
			toggleContent: 'toggleContent',
			toggleLink:  'toggleLink',
			openText: cfg.readmore,
			closeText: cfg.readless
 		}, options);
		
		return this.each(function(i) {
  			
			var $li = $(this);
			var $content = $('.'+toggleSettings.toggleContent,$li);
			var $handle = $('.'+toggleSettings.toggleLink,$li);
			
			$handle.html('<a href="#">'+toggleSettings.openText+'</a>');
			$content.hide();
			
			$('a',$handle).click( function(e) { toggleMe(); e.preventDefault(); });
			
			
			 
			function toggleMe() {
				if ($li.hasClass('open')) {
					$li.removeClass('open');	
					$('a',$handle).html(toggleSettings.openText);	
					$content.slideUp();
				} else {
					$li.addClass('open');
					$('a',$handle).text(toggleSettings.closeText);	
					$content.slideDown();
				}
			};
	 		if (i==0) { toggleMe(); }
			 

		});

};



$.fn.carousel = function() {
		
		var visibleItems = 3;
		var nextButton = 'next';
		var prevButton = 'prev';
		var intrval = 3;
	
		return this.each(function() {
 			  
			  var $container = $(this);
			  var $scroller = $('ul',$(this));
			  var $items = $('li',$(this)); 
		    var $next = $('.'+nextButton,$(this)); 
			  var $prev = $('.'+prevButton,$(this)); 
			  
				var pos = 0;
				var singleW = $($items[0]).width() + px($($items[0]).css('paddingLeft')) + px($($items[0]).css('paddingRight')) + px($($items[0]).css('marginLeft')) + px($($items[0]).css('marginRight'));
			  var nrItems = $items.size();
				
				//console.log("news scroller " + nrItems );
				
			  if ( nrItems <= visibleItems ) {
						$next.hide(); $prev.hide();
			  } else {
					  $next.click( function(e) { next(); e.preventDefault(); });
						$prev.click( function(e) { prev(); e.preventDefault(); });
			  }
				function next() {
					pos = pos + intrval;
					if (pos>nrItems-visibleItems) { pos = nrItems-visibleItems; }
					move();
				}
				function prev() {
					pos = pos - intrval;
					if (pos<0) { pos = 0; }
					move();
				}
				function disable($o) {
					$o.addClass('disabled');
					$o.click( function() { });
				}
				function enable($o) {
					$o.removeClass('disabled');
				}
			  function move() {
					if (pos==0) { disable($prev); } else { enable($prev); };
					if (pos==nrItems-visibleItems) { disable($next); } else { enable($next); };
			 	  $scroller.animate({'marginLeft':-1*pos*singleW+'px'},{duration:1000, easing: 'easeInOutQuad'});
			  }
				
			  move();
			 
		});
		
};


// PHOTO ALBUM

/*$.fn.photoAlbum = function( ) {
		
		//var paSettings = jQuery.extend({
 		//}, options);
	
		return this.each(function() {
 
			var $album = $(this);
			var $menu  = $('.thumbs ul');
			var $thumbs = $('img',$menu);
			var $photo1 = $('img:eq(0)','.photo'); 
			var $photo2 = $('img:eq(0)','.photo');
      
			var current = -1;
			var menuPos = 0;
			
			var menuItemW = px($('li',$menu).css('width'));
		  
			
			// init
		  $album.prepend('<div class="photo"><img src="'+$('img:eq(0)',$menu).attr('src')+'" alt="" /><img src="'+$('img:eq(1)',$menu).attr('src')+'" alt="" /></div>')
			$album.append('<a href="#" class="prev"></a><a href="#" class="next"></a>'); 
			
			// menu
			$('img',$menu).each( function() {
					$(this).hover( 
							function(e) {
								 $(this).animate({'width':'45px','height':'45px','marginTop':'0','marginLeft':'0','marginRight':'0','marginBottom':'0'})						  				
							},
							function(e) {
								 $(this).animate({'width':'33px','height':'33px','margin':'6px'})	
								 //$(this).css({'width':'33px','height':'33px','margin':'6px'})	
							}
					);
			});												
			$('img',$menu).each( function(i) {
					$(this).click( function(e) {
																	
							e.preventDefault();								
					});													
			});
			
			// next/prev
		  $('.prev',$album).click( function(e) { 
																
					var L = px($menu.css('left'))-menuItemW; 
				 
				
					$menu.css('left',L+'px');
					e.preventDefault(); 
			});
		  $('.next',$album).click( function(e) { 
																					
					var L = px($menu.css('left'))-menuItemW;
					var limit = (menuItemW*($thumbs.size()-5))-$thumbs.parent().width();
			 
				
					$menu.css('left',L+'px');
					e.preventDefault(); 
			});			
			
			function positionMenu() {
						
			};
			
			function showPhoto(nr) {
					
					//if (nr==0) { disable($('.prev')); }
					//else if (nr==$thumbs.size()) { disable($('.prev')); }
			};
			showPhoto(0);
			
			 
		});
		
};*/



/*
 * PX 
 * Converts pixel value to number
 */
function px(val) {
	val = Number(val.replace('px',''));
	return val;
};


/*
 * CLEAR FIELD ON FOCUS
 * Used for input fields without label, title text is displayed as initial value and clear on focus
 */
(function($){
	jQuery.fn.clearFieldOnFocus = function() {
			return this.each(function() {
					var $o = $(this);
					if($o.attr('title')!=undefined&&$o.attr('value')=='') $o.attr('value',$o.attr('title')); 
					$o.focus(function() { if($o.attr('value') == $o.attr('title')) $(this).attr('value',''); });
					$o.blur(function()  { if($o.attr('value') == '') $o.attr('value', $o.attr('title')); });
			});
	};
})(jQuery);


/*
 * FTG METER
 */
(function($){ 
$.fn.ftgMeter = function() {
		return this.each(function() {
			var $indicator = $('li span',$(this));
			$indicator.css('left','-250px');
			$indicator.each( function(i) {
				var $i = $(this);
				var pos = 0;
				if ( $i.hasClass('status-0') ) { pos = '-108px'; }
				else if ( $i.hasClass('status-1') ) { pos = '-213px'; }
				$i.delay(i*100).animate({'left':pos});
			});
		});
};
})(jQuery);

/*
 * ROLLOUT BANNER
 */
(function($){ 
	$.fn.rolloutBanner = function(options) {
		
		var rolloutClass = 'rollout';
		var initHeight = 65;
		var	hoverClass = 'hover';
	
		return this.each(function() {
 			
			var $box = $(this);
			var $rollout = $('.'+rolloutClass,$box);
			
			var t = $rollout.height()-initHeight;
			var t0 = px($rollout.css('top'));
			
			$box.mouseenter( function(e) {
				$rollout.addClass(hoverClass).animate({'top':t0-t+'px'},{'duration':300, easing: 'easeOutQuad'});
			});
			$box.mouseleave( function(e) {
				$rollout.animate({'top':t0+'px'},{'duration':600, easing: 'easeOutQuad'}).removeClass(hoverClass);
			});
			// TO DO: use trigger();
			$box.click( function(e) {
			  location.href=$('a:eq(0)',$rollout).attr('href');	
			});
		});
		
};
})(jQuery);








/*
 * 	 styleSelect - apply style to a select box
 *   (http://www.8stream.com)
 *
 * 	 Copyright (c) 2009 Siim Sindonen, 8STREAM <siim@8stream.com>
 *   Dual licensed under the MIT and GPL licenses:
 *   http://www.opensource.org/licenses/mit-license.php
 *   http://www.gnu.org/licenses/gpl.html
 * 
 *   Requires jQuery version: >= 1.3.2
 * 	 $Version: 1.2.1 | 22.09.2009
 */
 
(function($){

	$.fn.styleSelect = function(options){
		
		var tabindex = 1;
		
		var opts = $.extend({}, $.fn.styleSelect.defaults , options);
		
		//set tabindex		
		$('input,select,textarea,button').each(function() {
			
			var input = $(this);
				
			if (!input.attr('tabindex')){
				
				input.attr('tabindex', tabindex);
				tabindex++;
				
			} 
		});
		
		return this.each(function(){
	
			mainSelect = $(this);
			var mainId = mainSelect.attr('name');
			
			var styledTabIndex = mainSelect.attr('tabindex');
			
			var date = new Date;
			var selectId = 'selectbox_'+mainId+date.getTime();
			
			//Hidde select box
			mainSelect.hide();
	
			//Main container 
			var mainContainer = $('<div tabindex="'+styledTabIndex+'"></div>').css({position : 'relative'})
					.addClass(opts.styleClass)
					.attr('id', selectId)
					.insertBefore(mainSelect);
					
			
			//Options container
			var subContainer = $('<ul></ul>').css({'position' : 'absolute', 'z-index' : '100', 'top' : opts.optionsTop, 'left' : opts.optionsLeft})
					.appendTo($(mainContainer))
					.hide();
				
			//Generate options list
			var optionsList = "";
			
			mainSelect.find('option').each(function(){
			
				optionsList += '<li id="'+$(this).val()+'"';
				if($(this).attr('class')) optionsList += ' class="'+$(this).attr('class')+'" ';
				optionsList += '>';
				optionsList += '<span style="display: block;"';
				if ($(this).attr('selected')) optionsList += ' class="selected" ';
				optionsList += '>';
				optionsList += $(this).text();
				optionsList += '</span>';
				optionsList += '</li>';
				
			});

				subContainer.append(optionsList);
				
				checkSelected(opts.styleClass,opts.optionsWidth);
				
			//Show otions
			$('#'+selectId).click(function(){
				$(this).find('ul').slideToggle(opts.speed);
			});
			
			//On click
			$('#'+selectId+' li').click(function(){
				
				doSelection($(this));

			});
			
			//Keyboard support
			$('#'+selectId).keydown(function(event){
				
				var active = $(this).find('.selected').parent();
				
				if (event.keyCode == 40 || event.keyCode == 39 ){ doSelection(active.next()); }
				if (event.keyCode == 37 || event.keyCode == 38 ){ doSelection(active.prev()); }
				
				if (event.keyCode == 13 || event.keyCode == 0){ $(this).find('ul').slideToggle(opts.speed); }
				if (event.keyCode == 9){ $(this).find('ul').hide(opts.speed); }
				
				event.preventDefault();
				
			});
			
			//Do selection
			var doSelection = function(item){
				
				item.siblings().find("span").removeClass('selected');
				item.find("span").addClass('selected');
		
				var selectedItem = item.attr('id');

				var realSelector = $('select[name="'+mainId+'"]');
				realSelector.siblings().selected = false;
				realSelector.find('option[value="'+selectedItem+'"]').attr('selected','selected');
				realSelector.trigger(opts.selectTrigger);
		
				checkSelected(opts.styleClass,opts.optionsWidth);
			
			}
			
			$('#'+selectId).click(function(e) {
				e.stopPropagation();
			});
			
			$(document).click(function() {
				$('#'+selectId+' ul').hide();
			});
			
			});	
		}
		
		//Selected items check
		function checkSelected(mainClass,mainWidth){
				
				$('.'+mainClass).each(function(){
				
					var elementList = $(this).find('ul');
					
					$(this).find('span').each(function(){
					
						var spanClass = $(this).attr("class");
						if (spanClass == "passiveSelect" || spanClass == "activeSelect") $(this).remove();
					
					});
					
					var selectedName = $(this).find('.selected');
					
					$('<span></span>').text(selectedName.text())
							.attr('id', selectedName.parent().attr('id'))
							.addClass('passiveSelect')
							.appendTo($(this));
					
					if (mainWidth === 0){
						$(this).css({'width' :  elementList.width()});
					}
					
				});
				
				$('.'+mainClass+' span').each(function(){
					if ($(this).attr('id')){
						$(this).removeClass();
						$(this).addClass('activeSelect');
					}
				});
		}	
	
		$.fn.styleSelect.defaults = {
		
			optionsTop: '26px',
			optionsLeft: '0px',
			optionsWidth: 0,
			styleClass: 'selectMenu',
			speed: 0,
			selectTrigger: 'change'
			
		};
	
})(jQuery);


















/**
 * DELAY plugin inspired by learningjquery.com/2007/01/effect-delay-trick
 * @author : Jp Siffert
 * @param :  delay interval, if not given default to 1000ms
 * @return : jquery chain object
 */
$.fn.delay = function(delay){
	if(typeof delay==="undefined")  delay = 1000;
	return this.animate({'void':0}, delay);
}


/*
 * NAVIGATION - jQuery Suckerfish dropdown menu
 * http://be.twixt.us/jquery/suckerFish.php
 */
$.fn.hoverClass = function(c) {
    return this.each(function(){
        $(this).hover( 
            function() { $(this).addClass(c);  },
            function() { $(this).removeClass(c); }
        );
    });
}; 


/* 
 * HOVERINTENT: Used for navigation
 * http://cherne.net/brian/resources/jquery.hoverIntent.html
 */
(function($){$.fn.hoverIntent=function(f,g){var cfg={sensitivity:7,interval:100,timeout:0};cfg=$.extend(cfg,g?{over:f,out:g}:f);var cX,cY,pX,pY;var track=function(ev){cX=ev.pageX;cY=ev.pageY};var compare=function(ev,ob){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);if((Math.abs(pX-cX)+Math.abs(pY-cY))<cfg.sensitivity){$(ob).unbind("mousemove",track);ob.hoverIntent_s=1;return cfg.over.apply(ob,[ev])}else{pX=cX;pY=cY;ob.hoverIntent_t=setTimeout(function(){compare(ev,ob)},cfg.interval)}};var delay=function(ev,ob){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);ob.hoverIntent_s=0;return cfg.out.apply(ob,[ev])};var handleHover=function(e){var p=(e.type=="mouseover"?e.fromElement:e.toElement)||e.relatedTarget;while(p&&p!=this){try{p=p.parentNode}catch(e){p=this}}if(p==this){return false}var ev=jQuery.extend({},e);var ob=this;if(ob.hoverIntent_t){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t)}if(e.type=="mouseover"){pX=ev.pageX;pY=ev.pageY;$(ob).bind("mousemove",track);if(ob.hoverIntent_s!=1){ob.hoverIntent_t=setTimeout(function(){compare(ev,ob)},cfg.interval)}}else{$(ob).unbind("mousemove",track);if(ob.hoverIntent_s==1){ob.hoverIntent_t=setTimeout(function(){delay(ev,ob)},cfg.timeout)}}};return this.mouseover(handleHover).mouseout(handleHover)}})(jQuery);


/* 
 * BGIFRAME: Makes menu appear in front of select boxes
 * Copyright (c) 2006 Brandon Aaron (http://brandonaaron.net)
 * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) 
 * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
 *
 * $LastChangedDate: 2007-06-19 20:25:28 -0500 (Tue, 19 Jun 2007) $
 * $Rev: 2111 $
 *
 * Version 2.1
 */
(function($){$.fn.bgIframe=$.fn.bgiframe=function(s){if($.browser.msie&&parseInt($.browser.version)<=6){s=$.extend({top:'auto',left:'auto',width:'auto',height:'auto',opacity:true,src:'javascript:false;'},s||{});var prop=function(n){return n&&n.constructor==Number?n+'px':n;},html='<iframe class="bgiframe"frameborder="0"tabindex="-1"src="'+s.src+'"'+'style="display:block;position:absolute;z-index:-1;'+(s.opacity!==false?'filter:Alpha(Opacity=\'0\');':'')+'top:'+(s.top=='auto'?'expression(((parseInt(this.parentNode.currentStyle.borderTopWidth)||0)*-1)+\'px\')':prop(s.top))+';'+'left:'+(s.left=='auto'?'expression(((parseInt(this.parentNode.currentStyle.borderLeftWidth)||0)*-1)+\'px\')':prop(s.left))+';'+'width:'+(s.width=='auto'?'expression(this.parentNode.offsetWidth+\'px\')':prop(s.width))+';'+'height:'+(s.height=='auto'?'expression(this.parentNode.offsetHeight+\'px\')':prop(s.height))+';'+'"/>';return this.each(function(){if($('> iframe.bgiframe',this).length==0)this.insertBefore(document.createElement(html),this.firstChild);});}return this;};if(!$.browser.version)$.browser.version=navigator.userAgent.toLowerCase().match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/)[1];})(jQuery);


/* 
 * EASING PLUGIN
 * http://gsgd.co.uk/sandbox/jquery/easing/
 *
 * Version 1.3
 */
jQuery.easing['jswing']=jQuery.easing['swing'];jQuery.extend(jQuery.easing,{def:'easeOutQuad',swing:function(x,t,b,c,d){return jQuery.easing[jQuery.easing.def](x,t,b,c,d)},easeInQuad:function(x,t,b,c,d){return c*(t/=d)*t+b},easeOutQuad:function(x,t,b,c,d){return-c*(t/=d)*(t-2)+b},easeInOutQuad:function(x,t,b,c,d){if((t/=d/2)<1)return c/2*t*t+b;return-c/2*((--t)*(t-2)-1)+b},easeInCubic:function(x,t,b,c,d){return c*(t/=d)*t*t+b},easeOutCubic:function(x,t,b,c,d){return c*((t=t/d-1)*t*t+1)+b},easeInOutCubic:function(x,t,b,c,d){if((t/=d/2)<1)return c/2*t*t*t+b;return c/2*((t-=2)*t*t+2)+b},easeInQuart:function(x,t,b,c,d){return c*(t/=d)*t*t*t+b},easeOutQuart:function(x,t,b,c,d){return-c*((t=t/d-1)*t*t*t-1)+b},easeInOutQuart:function(x,t,b,c,d){if((t/=d/2)<1)return c/2*t*t*t*t+b;return-c/2*((t-=2)*t*t*t-2)+b},easeInQuint:function(x,t,b,c,d){return c*(t/=d)*t*t*t*t+b},easeOutQuint:function(x,t,b,c,d){return c*((t=t/d-1)*t*t*t*t+1)+b},easeInOutQuint:function(x,t,b,c,d){if((t/=d/2)<1)return c/2*t*t*t*t*t+b;return c/2*((t-=2)*t*t*t*t+2)+b},easeInSine:function(x,t,b,c,d){return-c*Math.cos(t/d*(Math.PI/2))+c+b},easeOutSine:function(x,t,b,c,d){return c*Math.sin(t/d*(Math.PI/2))+b},easeInOutSine:function(x,t,b,c,d){return-c/2*(Math.cos(Math.PI*t/d)-1)+b},easeInExpo:function(x,t,b,c,d){return(t==0)?b:c*Math.pow(2,10*(t/d-1))+b},easeOutExpo:function(x,t,b,c,d){return(t==d)?b+c:c*(-Math.pow(2,-10*t/d)+1)+b},easeInOutExpo:function(x,t,b,c,d){if(t==0)return b;if(t==d)return b+c;if((t/=d/2)<1)return c/2*Math.pow(2,10*(t-1))+b;return c/2*(-Math.pow(2,-10*--t)+2)+b},easeInCirc:function(x,t,b,c,d){return-c*(Math.sqrt(1-(t/=d)*t)-1)+b},easeOutCirc:function(x,t,b,c,d){return c*Math.sqrt(1-(t=t/d-1)*t)+b},easeInOutCirc:function(x,t,b,c,d){if((t/=d/2)<1)return-c/2*(Math.sqrt(1-t*t)-1)+b;return c/2*(Math.sqrt(1-(t-=2)*t)+1)+b},easeInElastic:function(x,t,b,c,d){var s=1.70158;var p=0;var a=c;if(t==0)return b;if((t/=d)==1)return b+c;if(!p)p=d*.3;if(a<Math.abs(c)){a=c;var s=p/4}else var s=p/(2*Math.PI)*Math.asin(c/a);return-(a*Math.pow(2,10*(t-=1))*Math.sin((t*d-s)*(2*Math.PI)/p))+b},easeOutElastic:function(x,t,b,c,d){var s=1.70158;var p=0;var a=c;if(t==0)return b;if((t/=d)==1)return b+c;if(!p)p=d*.3;if(a<Math.abs(c)){a=c;var s=p/4}else var s=p/(2*Math.PI)*Math.asin(c/a);return a*Math.pow(2,-10*t)*Math.sin((t*d-s)*(2*Math.PI)/p)+c+b},easeInOutElastic:function(x,t,b,c,d){var s=1.70158;var p=0;var a=c;if(t==0)return b;if((t/=d/2)==2)return b+c;if(!p)p=d*(.3*1.5);if(a<Math.abs(c)){a=c;var s=p/4}else var s=p/(2*Math.PI)*Math.asin(c/a);if(t<1)return-.5*(a*Math.pow(2,10*(t-=1))*Math.sin((t*d-s)*(2*Math.PI)/p))+b;return a*Math.pow(2,-10*(t-=1))*Math.sin((t*d-s)*(2*Math.PI)/p)*.5+c+b},easeInBack:function(x,t,b,c,d,s){if(s==undefined)s=1.70158;return c*(t/=d)*t*((s+1)*t-s)+b},easeOutBack:function(x,t,b,c,d,s){if(s==undefined)s=1.70158;return c*((t=t/d-1)*t*((s+1)*t+s)+1)+b},easeInOutBack:function(x,t,b,c,d,s){if(s==undefined)s=1.70158;if((t/=d/2)<1)return c/2*(t*t*(((s*=(1.525))+1)*t-s))+b;return c/2*((t-=2)*t*(((s*=(1.525))+1)*t+s)+2)+b},easeInBounce:function(x,t,b,c,d){return c-jQuery.easing.easeOutBounce(x,d-t,0,c,d)+b},easeOutBounce:function(x,t,b,c,d){if((t/=d)<(1/2.75)){return c*(7.5625*t*t)+b}else if(t<(2/2.75)){return c*(7.5625*(t-=(1.5/2.75))*t+.75)+b}else if(t<(2.5/2.75)){return c*(7.5625*(t-=(2.25/2.75))*t+.9375)+b}else{return c*(7.5625*(t-=(2.625/2.75))*t+.984375)+b}},easeInOutBounce:function(x,t,b,c,d){if(t<d/2)return jQuery.easing.easeInBounce(x,t*2,0,c,d)*.5+b;return jQuery.easing.easeOutBounce(x,t*2-d,0,c,d)*.5+c*.5+b}});
