// source --> https://kkdomzale.si/wp-includes/js/thickbox/thickbox.js 
/*
 * Thickbox 3.1 - One Box To Rule Them All.
 * By Cody Lindley (http://www.codylindley.com)
 * Copyright (c) 2007 cody lindley
 * Licensed under the MIT License: http://www.opensource.org/licenses/mit-license.php
*/

if ( typeof tb_pathToImage != 'string' ) {
	var tb_pathToImage = thickboxL10n.loadingAnimation;
}

/*!!!!!!!!!!!!!!!!! edit below this line at your own risk !!!!!!!!!!!!!!!!!!!!!!!*/

//on page load call tb_init
jQuery(document).ready(function(){
	tb_init('a.thickbox, area.thickbox, input.thickbox');//pass where to apply thickbox
	imgLoader = new Image();// preload image
	imgLoader.src = tb_pathToImage;
});

/*
 * Add thickbox to href & area elements that have a class of .thickbox.
 * Remove the loading indicator when content in an iframe has loaded.
 */
function tb_init(domChunk){
	jQuery( 'body' )
		.on( 'click', domChunk, tb_click )
		.on( 'thickbox:iframe:loaded', function() {
			jQuery( '#TB_window' ).removeClass( 'thickbox-loading' );
		});
}

function tb_click(){
	var t = this.title || this.name || null;
	var a = this.href || this.alt;
	var g = this.rel || false;
	tb_show(t,a,g);
	this.blur();
	return false;
}

function tb_show(caption, url, imageGroup) {//function called when the user clicks on a thickbox link

	var $closeBtn;

	try {
		if (typeof document.body.style.maxHeight === "undefined") {//if IE 6
			jQuery("body","html").css({height: "100%", width: "100%"});
			jQuery("html").css("overflow","hidden");
			if (document.getElementById("TB_HideSelect") === null) {//iframe to hide select elements in ie6
				jQuery("body").append("<iframe id='TB_HideSelect'>"+thickboxL10n.noiframes+"</iframe><div id='TB_overlay'></div><div id='TB_window' class='thickbox-loading'></div>");
				jQuery("#TB_overlay").on( 'click', tb_remove );
			}
		}else{//all others
			if(document.getElementById("TB_overlay") === null){
				jQuery("body").append("<div id='TB_overlay'></div><div id='TB_window' class='thickbox-loading'></div>");
				jQuery("#TB_overlay").on( 'click', tb_remove );
				jQuery( 'body' ).addClass( 'modal-open' );
			}
		}

		if(tb_detectMacXFF()){
			jQuery("#TB_overlay").addClass("TB_overlayMacFFBGHack");//use png overlay so hide flash
		}else{
			jQuery("#TB_overlay").addClass("TB_overlayBG");//use background and opacity
		}

		if(caption===null){caption="";}
		jQuery("body").append("<div id='TB_load'><img src='"+imgLoader.src+"' width='208' /></div>");//add loader to the page
		jQuery('#TB_load').show();//show loader

		var baseURL;
	   if(url.indexOf("?")!==-1){ //ff there is a query string involved
			baseURL = url.substr(0, url.indexOf("?"));
	   }else{
	   		baseURL = url;
	   }

	   var urlString = /\.jpg$|\.jpeg$|\.png$|\.gif$|\.bmp$|\.webp$|\.avif$/;
	   var urlType = baseURL.toLowerCase().match(urlString);

		if(urlType == '.jpg' ||
			urlType == '.jpeg' ||
			urlType == '.png' ||
			urlType == '.gif' ||
			urlType == '.bmp' ||
			urlType == '.webp' ||
			urlType == '.avif'
		){//code to show images

			TB_PrevCaption = "";
			TB_PrevURL = "";
			TB_PrevHTML = "";
			TB_NextCaption = "";
			TB_NextURL = "";
			TB_NextHTML = "";
			TB_imageCount = "";
			TB_FoundURL = false;
			if(imageGroup){
				TB_TempArray = jQuery("a[rel="+imageGroup+"]").get();
				for (TB_Counter = 0; ((TB_Counter < TB_TempArray.length) && (TB_NextHTML === "")); TB_Counter++) {
					var urlTypeTemp = TB_TempArray[TB_Counter].href.toLowerCase().match(urlString);
						if (!(TB_TempArray[TB_Counter].href == url)) {
							if (TB_FoundURL) {
								TB_NextCaption = TB_TempArray[TB_Counter].title;
								TB_NextURL = TB_TempArray[TB_Counter].href;
								TB_NextHTML = "<span id='TB_next'>&nbsp;&nbsp;<a href='#'>"+thickboxL10n.next+"</a></span>";
							} else {
								TB_PrevCaption = TB_TempArray[TB_Counter].title;
								TB_PrevURL = TB_TempArray[TB_Counter].href;
								TB_PrevHTML = "<span id='TB_prev'>&nbsp;&nbsp;<a href='#'>"+thickboxL10n.prev+"</a></span>";
							}
						} else {
							TB_FoundURL = true;
							TB_imageCount = thickboxL10n.image + ' ' + (TB_Counter + 1) + ' ' + thickboxL10n.of + ' ' + (TB_TempArray.length);
						}
				}
			}

			imgPreloader = new Image();
			imgPreloader.onload = function(){
			imgPreloader.onload = null;

			// Resizing large images - original by Christian Montoya edited by me.
			var pagesize = tb_getPageSize();
			var x = pagesize[0] - 150;
			var y = pagesize[1] - 150;
			var imageWidth = imgPreloader.width;
			var imageHeight = imgPreloader.height;
			if (imageWidth > x) {
				imageHeight = imageHeight * (x / imageWidth);
				imageWidth = x;
				if (imageHeight > y) {
					imageWidth = imageWidth * (y / imageHeight);
					imageHeight = y;
				}
			} else if (imageHeight > y) {
				imageWidth = imageWidth * (y / imageHeight);
				imageHeight = y;
				if (imageWidth > x) {
					imageHeight = imageHeight * (x / imageWidth);
					imageWidth = x;
				}
			}
			// End Resizing

			TB_WIDTH = imageWidth + 30;
			TB_HEIGHT = imageHeight + 60;
			jQuery("#TB_window").append("<a href='' id='TB_ImageOff'><span class='screen-reader-text'>"+thickboxL10n.close+"</span><img id='TB_Image' src='"+url+"' width='"+imageWidth+"' height='"+imageHeight+"' alt='"+caption+"'/></a>" + "<div id='TB_caption'>"+caption+"<div id='TB_secondLine'>" + TB_imageCount + TB_PrevHTML + TB_NextHTML + "</div></div><div id='TB_closeWindow'><button type='button' id='TB_closeWindowButton'><span class='screen-reader-text'>"+thickboxL10n.close+"</span><span class='tb-close-icon' aria-hidden='true'></span></button></div>");

			jQuery("#TB_closeWindowButton").on( 'click', tb_remove );

			if (!(TB_PrevHTML === "")) {
				function goPrev(){
					if(jQuery(document).off("click",goPrev)){jQuery(document).off("click",goPrev);}
					jQuery("#TB_window").remove();
					jQuery("body").append("<div id='TB_window'></div>");
					tb_show(TB_PrevCaption, TB_PrevURL, imageGroup);
					return false;
				}
				jQuery("#TB_prev").on( 'click', goPrev );
			}

			if (!(TB_NextHTML === "")) {
				function goNext(){
					jQuery("#TB_window").remove();
					jQuery("body").append("<div id='TB_window'></div>");
					tb_show(TB_NextCaption, TB_NextURL, imageGroup);
					return false;
				}
				jQuery("#TB_next").on( 'click', goNext );

			}

			jQuery(document).on('keydown.thickbox', function(e){
				if ( e.which == 27 ){ // close
					tb_remove();

				} else if ( e.which == 190 ){ // display previous image
					if(!(TB_NextHTML == "")){
						jQuery(document).off('thickbox');
						goNext();
					}
				} else if ( e.which == 188 ){ // display next image
					if(!(TB_PrevHTML == "")){
						jQuery(document).off('thickbox');
						goPrev();
					}
				}
				return false;
			});

			tb_position();
			jQuery("#TB_load").remove();
			jQuery("#TB_ImageOff").on( 'click', tb_remove );
			jQuery("#TB_window").css({'visibility':'visible'}); //for safari using css instead of show
			};

			imgPreloader.src = url;
		}else{//code to show html

			var queryString = url.replace(/^[^\?]+\??/,'');
			var params = tb_parseQuery( queryString );

			TB_WIDTH = (params['width']*1) + 30 || 630; //defaults to 630 if no parameters were added to URL
			TB_HEIGHT = (params['height']*1) + 40 || 440; //defaults to 440 if no parameters were added to URL
			ajaxContentW = TB_WIDTH - 30;
			ajaxContentH = TB_HEIGHT - 45;

			if(url.indexOf('TB_iframe') != -1){// either iframe or ajax window
					urlNoQuery = url.split('TB_');
					jQuery("#TB_iframeContent").remove();
					if(params['modal'] != "true"){//iframe no modal
						jQuery("#TB_window").append("<div id='TB_title'><div id='TB_ajaxWindowTitle'>"+caption+"</div><div id='TB_closeAjaxWindow'><button type='button' id='TB_closeWindowButton'><span class='screen-reader-text'>"+thickboxL10n.close+"</span><span class='tb-close-icon' aria-hidden='true'></span></button></div></div><iframe frameborder='0' hspace='0' allowtransparency='true' src='"+urlNoQuery[0]+"' id='TB_iframeContent' name='TB_iframeContent"+Math.round(Math.random()*1000)+"' onload='tb_showIframe()' style='width:"+(ajaxContentW + 29)+"px;height:"+(ajaxContentH + 17)+"px;' >"+thickboxL10n.noiframes+"</iframe>");
					}else{//iframe modal
					jQuery("#TB_overlay").off();
						jQuery("#TB_window").append("<iframe frameborder='0' hspace='0' allowtransparency='true' src='"+urlNoQuery[0]+"' id='TB_iframeContent' name='TB_iframeContent"+Math.round(Math.random()*1000)+"' onload='tb_showIframe()' style='width:"+(ajaxContentW + 29)+"px;height:"+(ajaxContentH + 17)+"px;'>"+thickboxL10n.noiframes+"</iframe>");
					}
			}else{// not an iframe, ajax
					if(jQuery("#TB_window").css("visibility") != "visible"){
						if(params['modal'] != "true"){//ajax no modal
						jQuery("#TB_window").append("<div id='TB_title'><div id='TB_ajaxWindowTitle'>"+caption+"</div><div id='TB_closeAjaxWindow'><button type='button' id='TB_closeWindowButton'><span class='screen-reader-text'>"+thickboxL10n.close+"</span><span class='tb-close-icon' aria-hidden='true'></span></button></div></div><div id='TB_ajaxContent' style='width:"+ajaxContentW+"px;height:"+ajaxContentH+"px'></div>");
						}else{//ajax modal
						jQuery("#TB_overlay").off();
						jQuery("#TB_window").append("<div id='TB_ajaxContent' class='TB_modal' style='width:"+ajaxContentW+"px;height:"+ajaxContentH+"px;'></div>");
						}
					}else{//this means the window is already up, we are just loading new content via ajax
						jQuery("#TB_ajaxContent")[0].style.width = ajaxContentW +"px";
						jQuery("#TB_ajaxContent")[0].style.height = ajaxContentH +"px";
						jQuery("#TB_ajaxContent")[0].scrollTop = 0;
						jQuery("#TB_ajaxWindowTitle").html(caption);
					}
			}

			jQuery("#TB_closeWindowButton").on( 'click', tb_remove );

				if(url.indexOf('TB_inline') != -1){
					jQuery("#TB_ajaxContent").append(jQuery('#' + params['inlineId']).children());
					jQuery("#TB_window").on('tb_unload', function () {
						jQuery('#' + params['inlineId']).append( jQuery("#TB_ajaxContent").children() ); // move elements back when you're finished
					});
					tb_position();
					jQuery("#TB_load").remove();
					jQuery("#TB_window").css({'visibility':'visible'});
				}else if(url.indexOf('TB_iframe') != -1){
					tb_position();
					jQuery("#TB_load").remove();
					jQuery("#TB_window").css({'visibility':'visible'});
				}else{
					var load_url = url;
					load_url += -1 === url.indexOf('?') ? '?' : '&';
					jQuery("#TB_ajaxContent").load(load_url += "random=" + (new Date().getTime()),function(){//to do a post change this load method
						tb_position();
						jQuery("#TB_load").remove();
						tb_init("#TB_ajaxContent a.thickbox");
						jQuery("#TB_window").css({'visibility':'visible'});
					});
				}

		}

		if(!params['modal']){
			jQuery(document).on('keydown.thickbox', function(e){
				if ( e.which == 27 ){ // close
					tb_remove();
					return false;
				}
			});
		}

		$closeBtn = jQuery( '#TB_closeWindowButton' );
		/*
		 * If the native Close button icon is visible, move focus on the button
		 * (e.g. in the Network Admin Themes screen).
		 * In other admin screens is hidden and replaced by a different icon.
		 */
		if ( $closeBtn.find( '.tb-close-icon' ).is( ':visible' ) ) {
			$closeBtn.trigger( 'focus' );
		}

	} catch(e) {
		//nothing here
	}
}

//helper functions below
function tb_showIframe(){
	jQuery("#TB_load").remove();
	jQuery("#TB_window").css({'visibility':'visible'}).trigger( 'thickbox:iframe:loaded' );
}

function tb_remove() {
 	jQuery("#TB_imageOff").off("click");
	jQuery("#TB_closeWindowButton").off("click");
	jQuery( '#TB_window' ).fadeOut( 'fast', function() {
		jQuery( '#TB_window, #TB_overlay, #TB_HideSelect' ).trigger( 'tb_unload' ).off().remove();
		jQuery( 'body' ).trigger( 'thickbox:removed' );
	});
	jQuery( 'body' ).removeClass( 'modal-open' );
	jQuery("#TB_load").remove();
	if (typeof document.body.style.maxHeight == "undefined") {//if IE 6
		jQuery("body","html").css({height: "auto", width: "auto"});
		jQuery("html").css("overflow","");
	}
	jQuery(document).off('.thickbox');
	return false;
}

function tb_position() {
var isIE6 = typeof document.body.style.maxHeight === "undefined";
jQuery("#TB_window").css({marginLeft: '-' + parseInt((TB_WIDTH / 2),10) + 'px', width: TB_WIDTH + 'px'});
	if ( ! isIE6 ) { // take away IE6
		jQuery("#TB_window").css({marginTop: '-' + parseInt((TB_HEIGHT / 2),10) + 'px'});
	}
}

function tb_parseQuery ( query ) {
   var Params = {};
   if ( ! query ) {return Params;}// return empty object
   var Pairs = query.split(/[;&]/);
   for ( var i = 0; i < Pairs.length; i++ ) {
      var KeyVal = Pairs[i].split('=');
      if ( ! KeyVal || KeyVal.length != 2 ) {continue;}
      var key = unescape( KeyVal[0] );
      var val = unescape( KeyVal[1] );
      val = val.replace(/\+/g, ' ');
      Params[key] = val;
   }
   return Params;
}

function tb_getPageSize(){
	var de = document.documentElement;
	var w = window.innerWidth || self.innerWidth || (de&&de.clientWidth) || document.body.clientWidth;
	var h = window.innerHeight || self.innerHeight || (de&&de.clientHeight) || document.body.clientHeight;
	arrayPageSize = [w,h];
	return arrayPageSize;
}

function tb_detectMacXFF() {
  var userAgent = navigator.userAgent.toLowerCase();
  if (userAgent.indexOf('mac') != -1 && userAgent.indexOf('firefox')!=-1) {
    return true;
  }
};
// source --> https://kkdomzale.si/wp-content/plugins/leaguemanager/leaguemanager.js 
jQuery(document).ready(function($) {
	/* jQuery UI accordion list */	
	jQuery( ".jquery-ui-accordion" ).accordion({
		header: "h3.header",
		collapsible: true,
		heightStyle: "content"
	});
	
	/*
	 * Make sure that jQuery UI Tab content containers have correct IDs based on tablist links
	 */
	var i = 0;
	// get all tablist a elements
	jQuery('.jquery-ui-tabs>.tablist a').each(function() {
		// get href attribute of current link and remove leading #
		var tab_id = jQuery(this).attr('href');
		tab_id = tab_id.substring(1, tab_id.length);
		// get corresponding tab container
		var tab = jQuery('.jquery-ui-tabs .tab-content').eq(i);
		// set ID of tab container
		tab.attr('id', tab_id);
		
		// increment item count
		i = i + 1;
	});
	
	/*
	 * Acivate Tabs
	 */
	jQuery('.jquery-ui-tabs').tabs({
		collapsible: true,
	});
	jQuery(".jquery-ui-tabs>.tablist").css("display", "block");
	jQuery(".jquery-ui-tab>.header").css("display", "none");
	jQuery(".jquery-ui-tabs .tab-header").css("display", "none");
});

var Leaguemanager = new Object();

Leaguemanager.setMatchBox = function( requestURL, curr_index, operation, element, league_id, match_limit, widget_number, season, group, home_only, date_format ) {
	var ajax = new sack(requestURL);
	ajax.execute = 1;
	ajax.method = 'POST';
	ajax.setVar( "action", "leaguemanager_get_match_box" );
	ajax.setVar( "widget_number", widget_number );
	ajax.setVar( "current", curr_index );
	ajax.setVar( "season", season );
	ajax.setVar( "group", group );
	ajax.setVar( "operation", operation );
	ajax.setVar( "element", element );
	ajax.setVar( "league_id", league_id );
	ajax.setVar( "match_limit", match_limit );
	ajax.setVar( "home_only", home_only );
	ajax.setVar( "date_format", date_format );
	ajax.onError = function() { alert('Ajax error'); };
	ajax.onCompletion = function() { return true; };
	ajax.runAJAX();
};
// source --> https://kkdomzale.si/wp-content/plugins/revslider/public/assets/js/jquery.themepunch.tools.min.js 
/********************************************
	-	THEMEPUNCH TOOLS Ver. 1.0     -
	 Last Update of Tools 27.02.2015
*********************************************/


/*
* @fileOverview TouchSwipe - jQuery Plugin
* @version 1.6.9
*
* @author Matt Bryson http://www.github.com/mattbryson
* @see https://github.com/mattbryson/TouchSwipe-Jquery-Plugin
* @see http://labs.skinkers.com/touchSwipe/
* @see http://plugins.jquery.com/project/touchSwipe
*
* Copyright (c) 2010 Matt Bryson
* Dual licensed under the MIT or GPL Version 2 licenses.
*
*/



(function(a){if(typeof define==="function"&&define.amd&&define.amd.jQuery){define(["jquery"],a)}else{a(jQuery)}}(function(f){var y="1.6.9",p="left",o="right",e="up",x="down",c="in",A="out",m="none",s="auto",l="swipe",t="pinch",B="tap",j="doubletap",b="longtap",z="hold",E="horizontal",u="vertical",i="all",r=10,g="start",k="move",h="end",q="cancel",a="ontouchstart" in window,v=window.navigator.msPointerEnabled&&!window.navigator.pointerEnabled,d=window.navigator.pointerEnabled||window.navigator.msPointerEnabled,C="TouchSwipe";var n={fingers:1,threshold:75,cancelThreshold:null,pinchThreshold:20,maxTimeThreshold:null,fingerReleaseThreshold:250,longTapThreshold:500,doubleTapThreshold:200,swipe:null,swipeLeft:null,swipeRight:null,swipeUp:null,swipeDown:null,swipeStatus:null,pinchIn:null,pinchOut:null,pinchStatus:null,click:null,tap:null,doubleTap:null,longTap:null,hold:null,triggerOnTouchEnd:true,triggerOnTouchLeave:false,allowPageScroll:"auto",fallbackToMouseEvents:true,excludedElements:"label, button, input, select, textarea, a, .noSwipe",preventDefaultEvents:true};f.fn.swipetp=function(H){var G=f(this),F=G.data(C);if(F&&typeof H==="string"){if(F[H]){return F[H].apply(this,Array.prototype.slice.call(arguments,1))}else{f.error("Method "+H+" does not exist on jQuery.swipetp")}}else{if(!F&&(typeof H==="object"||!H)){return w.apply(this,arguments)}}return G};f.fn.swipetp.version=y;f.fn.swipetp.defaults=n;f.fn.swipetp.phases={PHASE_START:g,PHASE_MOVE:k,PHASE_END:h,PHASE_CANCEL:q};f.fn.swipetp.directions={LEFT:p,RIGHT:o,UP:e,DOWN:x,IN:c,OUT:A};f.fn.swipetp.pageScroll={NONE:m,HORIZONTAL:E,VERTICAL:u,AUTO:s};f.fn.swipetp.fingers={ONE:1,TWO:2,THREE:3,ALL:i};function w(F){if(F&&(F.allowPageScroll===undefined&&(F.swipe!==undefined||F.swipeStatus!==undefined))){F.allowPageScroll=m}if(F.click!==undefined&&F.tap===undefined){F.tap=F.click}if(!F){F={}}F=f.extend({},f.fn.swipetp.defaults,F);return this.each(function(){var H=f(this);var G=H.data(C);if(!G){G=new D(this,F);H.data(C,G)}})}function D(a5,aw){var aA=(a||d||!aw.fallbackToMouseEvents),K=aA?(d?(v?"MSPointerDown":"pointerdown"):"touchstart"):"mousedown",az=aA?(d?(v?"MSPointerMove":"pointermove"):"touchmove"):"mousemove",V=aA?(d?(v?"MSPointerUp":"pointerup"):"touchend"):"mouseup",T=aA?null:"mouseleave",aE=(d?(v?"MSPointerCancel":"pointercancel"):"touchcancel");var ah=0,aQ=null,ac=0,a2=0,a0=0,H=1,ar=0,aK=0,N=null;var aS=f(a5);var aa="start";var X=0;var aR=null;var U=0,a3=0,a6=0,ae=0,O=0;var aX=null,ag=null;try{aS.bind(K,aO);aS.bind(aE,ba)}catch(al){f.error("events not supported "+K+","+aE+" on jQuery.swipetp")}this.enable=function(){aS.bind(K,aO);aS.bind(aE,ba);return aS};this.disable=function(){aL();return aS};this.destroy=function(){aL();aS.data(C,null);aS=null};this.option=function(bd,bc){if(aw[bd]!==undefined){if(bc===undefined){return aw[bd]}else{aw[bd]=bc}}else{f.error("Option "+bd+" does not exist on jQuery.swipetp.options")}return null};function aO(be){if(aC()){return}if(f(be.target).closest(aw.excludedElements,aS).length>0){return}var bf=be.originalEvent?be.originalEvent:be;var bd,bg=bf.touches,bc=bg?bg[0]:bf;aa=g;if(bg){X=bg.length}else{be.preventDefault()}ah=0;aQ=null;aK=null;ac=0;a2=0;a0=0;H=1;ar=0;aR=ak();N=ab();S();if(!bg||(X===aw.fingers||aw.fingers===i)||aY()){aj(0,bc);U=au();if(X==2){aj(1,bg[1]);a2=a0=av(aR[0].start,aR[1].start)}if(aw.swipeStatus||aw.pinchStatus){bd=P(bf,aa)}}else{bd=false}if(bd===false){aa=q;P(bf,aa);return bd}else{if(aw.hold){ag=setTimeout(f.proxy(function(){aS.trigger("hold",[bf.target]);if(aw.hold){bd=aw.hold.call(aS,bf,bf.target)}},this),aw.longTapThreshold)}ap(true)}return null}function a4(bf){var bi=bf.originalEvent?bf.originalEvent:bf;if(aa===h||aa===q||an()){return}var be,bj=bi.touches,bd=bj?bj[0]:bi;var bg=aI(bd);a3=au();if(bj){X=bj.length}if(aw.hold){clearTimeout(ag)}aa=k;if(X==2){if(a2==0){aj(1,bj[1]);a2=a0=av(aR[0].start,aR[1].start)}else{aI(bj[1]);a0=av(aR[0].end,aR[1].end);aK=at(aR[0].end,aR[1].end)}H=a8(a2,a0);ar=Math.abs(a2-a0)}if((X===aw.fingers||aw.fingers===i)||!bj||aY()){aQ=aM(bg.start,bg.end);am(bf,aQ);ah=aT(bg.start,bg.end);ac=aN();aJ(aQ,ah);if(aw.swipeStatus||aw.pinchStatus){be=P(bi,aa)}if(!aw.triggerOnTouchEnd||aw.triggerOnTouchLeave){var bc=true;if(aw.triggerOnTouchLeave){var bh=aZ(this);bc=F(bg.end,bh)}if(!aw.triggerOnTouchEnd&&bc){aa=aD(k)}else{if(aw.triggerOnTouchLeave&&!bc){aa=aD(h)}}if(aa==q||aa==h){P(bi,aa)}}}else{aa=q;P(bi,aa)}if(be===false){aa=q;P(bi,aa)}}function M(bc){var bd=bc.originalEvent?bc.originalEvent:bc,be=bd.touches;if(be){if(be.length){G();return true}}if(an()){X=ae}a3=au();ac=aN();if(bb()||!ao()){aa=q;P(bd,aa)}else{if(aw.triggerOnTouchEnd||(aw.triggerOnTouchEnd==false&&aa===k)){bc.preventDefault();aa=h;P(bd,aa)}else{if(!aw.triggerOnTouchEnd&&a7()){aa=h;aG(bd,aa,B)}else{if(aa===k){aa=q;P(bd,aa)}}}}ap(false);return null}function ba(){X=0;a3=0;U=0;a2=0;a0=0;H=1;S();ap(false)}function L(bc){var bd=bc.originalEvent?bc.originalEvent:bc;if(aw.triggerOnTouchLeave){aa=aD(h);P(bd,aa)}}function aL(){aS.unbind(K,aO);aS.unbind(aE,ba);aS.unbind(az,a4);aS.unbind(V,M);if(T){aS.unbind(T,L)}ap(false)}function aD(bg){var bf=bg;var be=aB();var bd=ao();var bc=bb();if(!be||bc){bf=q}else{if(bd&&bg==k&&(!aw.triggerOnTouchEnd||aw.triggerOnTouchLeave)){bf=h}else{if(!bd&&bg==h&&aw.triggerOnTouchLeave){bf=q}}}return bf}function P(be,bc){var bd,bf=be.touches;if((J()||W())||(Q()||aY())){if(J()||W()){bd=aG(be,bc,l)}if((Q()||aY())&&bd!==false){bd=aG(be,bc,t)}}else{if(aH()&&bd!==false){bd=aG(be,bc,j)}else{if(aq()&&bd!==false){bd=aG(be,bc,b)}else{if(ai()&&bd!==false){bd=aG(be,bc,B)}}}}if(bc===q){ba(be)}if(bc===h){if(bf){if(!bf.length){ba(be)}}else{ba(be)}}return bd}function aG(bf,bc,be){var bd;if(be==l){aS.trigger("swipeStatus",[bc,aQ||null,ah||0,ac||0,X,aR]);if(aw.swipeStatus){bd=aw.swipeStatus.call(aS,bf,bc,aQ||null,ah||0,ac||0,X,aR);if(bd===false){return false}}if(bc==h&&aW()){aS.trigger("swipe",[aQ,ah,ac,X,aR]);if(aw.swipe){bd=aw.swipe.call(aS,bf,aQ,ah,ac,X,aR);if(bd===false){return false}}switch(aQ){case p:aS.trigger("swipeLeft",[aQ,ah,ac,X,aR]);if(aw.swipeLeft){bd=aw.swipeLeft.call(aS,bf,aQ,ah,ac,X,aR)}break;case o:aS.trigger("swipeRight",[aQ,ah,ac,X,aR]);if(aw.swipeRight){bd=aw.swipeRight.call(aS,bf,aQ,ah,ac,X,aR)}break;case e:aS.trigger("swipeUp",[aQ,ah,ac,X,aR]);if(aw.swipeUp){bd=aw.swipeUp.call(aS,bf,aQ,ah,ac,X,aR)}break;case x:aS.trigger("swipeDown",[aQ,ah,ac,X,aR]);if(aw.swipeDown){bd=aw.swipeDown.call(aS,bf,aQ,ah,ac,X,aR)}break}}}if(be==t){aS.trigger("pinchStatus",[bc,aK||null,ar||0,ac||0,X,H,aR]);if(aw.pinchStatus){bd=aw.pinchStatus.call(aS,bf,bc,aK||null,ar||0,ac||0,X,H,aR);if(bd===false){return false}}if(bc==h&&a9()){switch(aK){case c:aS.trigger("pinchIn",[aK||null,ar||0,ac||0,X,H,aR]);if(aw.pinchIn){bd=aw.pinchIn.call(aS,bf,aK||null,ar||0,ac||0,X,H,aR)}break;case A:aS.trigger("pinchOut",[aK||null,ar||0,ac||0,X,H,aR]);if(aw.pinchOut){bd=aw.pinchOut.call(aS,bf,aK||null,ar||0,ac||0,X,H,aR)}break}}}if(be==B){if(bc===q||bc===h){clearTimeout(aX);clearTimeout(ag);if(Z()&&!I()){O=au();aX=setTimeout(f.proxy(function(){O=null;aS.trigger("tap",[bf.target]);if(aw.tap){bd=aw.tap.call(aS,bf,bf.target)}},this),aw.doubleTapThreshold)}else{O=null;aS.trigger("tap",[bf.target]);if(aw.tap){bd=aw.tap.call(aS,bf,bf.target)}}}}else{if(be==j){if(bc===q||bc===h){clearTimeout(aX);O=null;aS.trigger("doubletap",[bf.target]);if(aw.doubleTap){bd=aw.doubleTap.call(aS,bf,bf.target)}}}else{if(be==b){if(bc===q||bc===h){clearTimeout(aX);O=null;aS.trigger("longtap",[bf.target]);if(aw.longTap){bd=aw.longTap.call(aS,bf,bf.target)}}}}}return bd}function ao(){var bc=true;if(aw.threshold!==null){bc=ah>=aw.threshold}return bc}function bb(){var bc=false;if(aw.cancelThreshold!==null&&aQ!==null){bc=(aU(aQ)-ah)>=aw.cancelThreshold}return bc}function af(){if(aw.pinchThreshold!==null){return ar>=aw.pinchThreshold}return true}function aB(){var bc;if(aw.maxTimeThreshold){if(ac>=aw.maxTimeThreshold){bc=false}else{bc=true}}else{bc=true}return bc}function am(bc,bd){if(aw.preventDefaultEvents===false){return}if(aw.allowPageScroll===m){bc.preventDefault()}else{var be=aw.allowPageScroll===s;switch(bd){case p:if((aw.swipeLeft&&be)||(!be&&aw.allowPageScroll!=E)){bc.preventDefault()}break;case o:if((aw.swipeRight&&be)||(!be&&aw.allowPageScroll!=E)){bc.preventDefault()}break;case e:if((aw.swipeUp&&be)||(!be&&aw.allowPageScroll!=u)){bc.preventDefault()}break;case x:if((aw.swipeDown&&be)||(!be&&aw.allowPageScroll!=u)){bc.preventDefault()}break}}}function a9(){var bd=aP();var bc=Y();var be=af();return bd&&bc&&be}function aY(){return !!(aw.pinchStatus||aw.pinchIn||aw.pinchOut)}function Q(){return !!(a9()&&aY())}function aW(){var bf=aB();var bh=ao();var be=aP();var bc=Y();var bd=bb();var bg=!bd&&bc&&be&&bh&&bf;return bg}function W(){return !!(aw.swipe||aw.swipeStatus||aw.swipeLeft||aw.swipeRight||aw.swipeUp||aw.swipeDown)}function J(){return !!(aW()&&W())}function aP(){return((X===aw.fingers||aw.fingers===i)||!a)}function Y(){return aR[0].end.x!==0}function a7(){return !!(aw.tap)}function Z(){return !!(aw.doubleTap)}function aV(){return !!(aw.longTap)}function R(){if(O==null){return false}var bc=au();return(Z()&&((bc-O)<=aw.doubleTapThreshold))}function I(){return R()}function ay(){return((X===1||!a)&&(isNaN(ah)||ah<aw.threshold))}function a1(){return((ac>aw.longTapThreshold)&&(ah<r))}function ai(){return !!(ay()&&a7())}function aH(){return !!(R()&&Z())}function aq(){return !!(a1()&&aV())}function G(){a6=au();ae=event.touches.length+1}function S(){a6=0;ae=0}function an(){var bc=false;if(a6){var bd=au()-a6;if(bd<=aw.fingerReleaseThreshold){bc=true}}return bc}function aC(){return !!(aS.data(C+"_intouch")===true)}function ap(bc){if(bc===true){aS.bind(az,a4);aS.bind(V,M);if(T){aS.bind(T,L)}}else{aS.unbind(az,a4,false);aS.unbind(V,M,false);if(T){aS.unbind(T,L,false)}}aS.data(C+"_intouch",bc===true)}function aj(bd,bc){var be=bc.identifier!==undefined?bc.identifier:0;aR[bd].identifier=be;aR[bd].start.x=aR[bd].end.x=bc.pageX||bc.clientX;aR[bd].start.y=aR[bd].end.y=bc.pageY||bc.clientY;return aR[bd]}function aI(bc){var be=bc.identifier!==undefined?bc.identifier:0;var bd=ad(be);bd.end.x=bc.pageX||bc.clientX;bd.end.y=bc.pageY||bc.clientY;return bd}function ad(bd){for(var bc=0;bc<aR.length;bc++){if(aR[bc].identifier==bd){return aR[bc]}}}function ak(){var bc=[];for(var bd=0;bd<=5;bd++){bc.push({start:{x:0,y:0},end:{x:0,y:0},identifier:0})}return bc}function aJ(bc,bd){bd=Math.max(bd,aU(bc));N[bc].distance=bd}function aU(bc){if(N[bc]){return N[bc].distance}return undefined}function ab(){var bc={};bc[p]=ax(p);bc[o]=ax(o);bc[e]=ax(e);bc[x]=ax(x);return bc}function ax(bc){return{direction:bc,distance:0}}function aN(){return a3-U}function av(bf,be){var bd=Math.abs(bf.x-be.x);var bc=Math.abs(bf.y-be.y);return Math.round(Math.sqrt(bd*bd+bc*bc))}function a8(bc,bd){var be=(bd/bc)*1;return be.toFixed(2)}function at(){if(H<1){return A}else{return c}}function aT(bd,bc){return Math.round(Math.sqrt(Math.pow(bc.x-bd.x,2)+Math.pow(bc.y-bd.y,2)))}function aF(bf,bd){var bc=bf.x-bd.x;var bh=bd.y-bf.y;var be=Math.atan2(bh,bc);var bg=Math.round(be*180/Math.PI);if(bg<0){bg=360-Math.abs(bg)}return bg}function aM(bd,bc){var be=aF(bd,bc);if((be<=45)&&(be>=0)){return p}else{if((be<=360)&&(be>=315)){return p}else{if((be>=135)&&(be<=225)){return o}else{if((be>45)&&(be<135)){return x}else{return e}}}}}function au(){var bc=new Date();return bc.getTime()}function aZ(bc){bc=f(bc);var be=bc.offset();var bd={left:be.left,right:be.left+bc.outerWidth(),top:be.top,bottom:be.top+bc.outerHeight()};return bd}function F(bc,bd){return(bc.x>bd.left&&bc.x<bd.right&&bc.y>bd.top&&bc.y<bd.bottom)}}}));

if(typeof(console) === 'undefined') {
    var console = {};
    console.log = console.error = console.info = console.debug = console.warn = console.trace = console.dir = console.dirxml = console.group = console.groupEnd = console.time = console.timeEnd = console.assert = console.profile = console.groupCollapsed = function() {};
}

if (window.tplogs==true)
	try {
		console.groupCollapsed("ThemePunch GreenSocks Logs");
	} catch(e) { }


var oldgs = window.GreenSockGlobals;
	oldgs_queue = window._gsQueue;
	
var punchgs = window.GreenSockGlobals = {};

if (window.tplogs==true)
	try {
		console.info("Build GreenSock SandBox for ThemePunch Plugins");
		console.info("GreenSock TweenLite Engine Initalised by ThemePunch Plugin");
	} catch(e) {}


/* TWEEN LITE */
/*!
 * VERSION: 1.18.5
 * DATE: 2016-05-24
 * UPDATES AND DOCS AT: http://greensock.com
 *
 * @license Copyright (c) 2008-2016, GreenSock. All rights reserved.
 * This work is subject to the terms at http://greensock.com/standard-license or for
 * Club GreenSock members, the software agreement that was issued with your membership.
 * 
 * @author: Jack Doyle, jack@greensock.com
 */
!function(a,b){"use strict";var c={},d=a.GreenSockGlobals=a.GreenSockGlobals||a;if(!d.TweenLite){var e,f,g,h,i,j=function(a){var b,c=a.split("."),e=d;for(b=0;b<c.length;b++)e[c[b]]=e=e[c[b]]||{};return e},k=j("com.greensock"),l=1e-10,m=function(a){var b,c=[],d=a.length;for(b=0;b!==d;c.push(a[b++]));return c},n=function(){},o=function(){var a=Object.prototype.toString,b=a.call([]);return function(c){return null!=c&&(c instanceof Array||"object"==typeof c&&!!c.push&&a.call(c)===b)}}(),p={},q=function(e,f,g,h){this.sc=p[e]?p[e].sc:[],p[e]=this,this.gsClass=null,this.func=g;var i=[];this.check=function(k){for(var l,m,n,o,r,s=f.length,t=s;--s>-1;)(l=p[f[s]]||new q(f[s],[])).gsClass?(i[s]=l.gsClass,t--):k&&l.sc.push(this);if(0===t&&g){if(m=("com.greensock."+e).split("."),n=m.pop(),o=j(m.join("."))[n]=this.gsClass=g.apply(g,i),h)if(d[n]=o,r="undefined"!=typeof module&&module.exports,!r&&"function"==typeof define&&define.amd)define((a.GreenSockAMDPath?a.GreenSockAMDPath+"/":"")+e.split(".").pop(),[],function(){return o});else if(r)if(e===b){module.exports=c[b]=o;for(s in c)o[s]=c[s]}else c[b]&&(c[b][n]=o);for(s=0;s<this.sc.length;s++)this.sc[s].check()}},this.check(!0)},r=a._gsDefine=function(a,b,c,d){return new q(a,b,c,d)},s=k._class=function(a,b,c){return b=b||function(){},r(a,[],function(){return b},c),b};r.globals=d;var t=[0,0,1,1],u=[],v=s("easing.Ease",function(a,b,c,d){this._func=a,this._type=c||0,this._power=d||0,this._params=b?t.concat(b):t},!0),w=v.map={},x=v.register=function(a,b,c,d){for(var e,f,g,h,i=b.split(","),j=i.length,l=(c||"easeIn,easeOut,easeInOut").split(",");--j>-1;)for(f=i[j],e=d?s("easing."+f,null,!0):k.easing[f]||{},g=l.length;--g>-1;)h=l[g],w[f+"."+h]=w[h+f]=e[h]=a.getRatio?a:a[h]||new a};for(g=v.prototype,g._calcEnd=!1,g.getRatio=function(a){if(this._func)return this._params[0]=a,this._func.apply(null,this._params);var b=this._type,c=this._power,d=1===b?1-a:2===b?a:.5>a?2*a:2*(1-a);return 1===c?d*=d:2===c?d*=d*d:3===c?d*=d*d*d:4===c&&(d*=d*d*d*d),1===b?1-d:2===b?d:.5>a?d/2:1-d/2},e=["Linear","Quad","Cubic","Quart","Quint,Strong"],f=e.length;--f>-1;)g=e[f]+",Power"+f,x(new v(null,null,1,f),g,"easeOut",!0),x(new v(null,null,2,f),g,"easeIn"+(0===f?",easeNone":"")),x(new v(null,null,3,f),g,"easeInOut");w.linear=k.easing.Linear.easeIn,w.swing=k.easing.Quad.easeInOut;var y=s("events.EventDispatcher",function(a){this._listeners={},this._eventTarget=a||this});g=y.prototype,g.addEventListener=function(a,b,c,d,e){e=e||0;var f,g,j=this._listeners[a],k=0;for(this!==h||i||h.wake(),null==j&&(this._listeners[a]=j=[]),g=j.length;--g>-1;)f=j[g],f.c===b&&f.s===c?j.splice(g,1):0===k&&f.pr<e&&(k=g+1);j.splice(k,0,{c:b,s:c,up:d,pr:e})},g.removeEventListener=function(a,b){var c,d=this._listeners[a];if(d)for(c=d.length;--c>-1;)if(d[c].c===b)return void d.splice(c,1)},g.dispatchEvent=function(a){var b,c,d,e=this._listeners[a];if(e)for(b=e.length,c=this._eventTarget;--b>-1;)d=e[b],d&&(d.up?d.c.call(d.s||c,{type:a,target:c}):d.c.call(d.s||c))};var z=a.requestAnimationFrame,A=a.cancelAnimationFrame,B=Date.now||function(){return(new Date).getTime()},C=B();for(e=["ms","moz","webkit","o"],f=e.length;--f>-1&&!z;)z=a[e[f]+"RequestAnimationFrame"],A=a[e[f]+"CancelAnimationFrame"]||a[e[f]+"CancelRequestAnimationFrame"];s("Ticker",function(a,b){var c,d,e,f,g,j=this,k=B(),m=b!==!1&&z?"auto":!1,o=500,p=33,q="tick",r=function(a){var b,h,i=B()-C;i>o&&(k+=i-p),C+=i,j.time=(C-k)/1e3,b=j.time-g,(!c||b>0||a===!0)&&(j.frame++,g+=b+(b>=f?.004:f-b),h=!0),a!==!0&&(e=d(r)),h&&j.dispatchEvent(q)};y.call(j),j.time=j.frame=0,j.tick=function(){r(!0)},j.lagSmoothing=function(a,b){o=a||1/l,p=Math.min(b,o,0)},j.sleep=function(){null!=e&&(m&&A?A(e):clearTimeout(e),d=n,e=null,j===h&&(i=!1))},j.wake=function(a){null!==e?j.sleep():a?k+=-C+(C=B()):j.frame>10&&(C=B()-o+5),d=0===c?n:m&&z?z:function(a){return setTimeout(a,1e3*(g-j.time)+1|0)},j===h&&(i=!0),r(2)},j.fps=function(a){return arguments.length?(c=a,f=1/(c||60),g=this.time+f,void j.wake()):c},j.useRAF=function(a){return arguments.length?(j.sleep(),m=a,void j.fps(c)):m},j.fps(a),setTimeout(function(){"auto"===m&&j.frame<5&&"hidden"!==document.visibilityState&&j.useRAF(!1)},1500)}),g=k.Ticker.prototype=new k.events.EventDispatcher,g.constructor=k.Ticker;var D=s("core.Animation",function(a,b){if(this.vars=b=b||{},this._duration=this._totalDuration=a||0,this._delay=Number(b.delay)||0,this._timeScale=1,this._active=b.immediateRender===!0,this.data=b.data,this._reversed=b.reversed===!0,W){i||h.wake();var c=this.vars.useFrames?V:W;c.add(this,c._time),this.vars.paused&&this.paused(!0)}});h=D.ticker=new k.Ticker,g=D.prototype,g._dirty=g._gc=g._initted=g._paused=!1,g._totalTime=g._time=0,g._rawPrevTime=-1,g._next=g._last=g._onUpdate=g._timeline=g.timeline=null,g._paused=!1;var E=function(){i&&B()-C>2e3&&h.wake(),setTimeout(E,2e3)};E(),g.play=function(a,b){return null!=a&&this.seek(a,b),this.reversed(!1).paused(!1)},g.pause=function(a,b){return null!=a&&this.seek(a,b),this.paused(!0)},g.resume=function(a,b){return null!=a&&this.seek(a,b),this.paused(!1)},g.seek=function(a,b){return this.totalTime(Number(a),b!==!1)},g.restart=function(a,b){return this.reversed(!1).paused(!1).totalTime(a?-this._delay:0,b!==!1,!0)},g.reverse=function(a,b){return null!=a&&this.seek(a||this.totalDuration(),b),this.reversed(!0).paused(!1)},g.render=function(a,b,c){},g.invalidate=function(){return this._time=this._totalTime=0,this._initted=this._gc=!1,this._rawPrevTime=-1,(this._gc||!this.timeline)&&this._enabled(!0),this},g.isActive=function(){var a,b=this._timeline,c=this._startTime;return!b||!this._gc&&!this._paused&&b.isActive()&&(a=b.rawTime())>=c&&a<c+this.totalDuration()/this._timeScale},g._enabled=function(a,b){return i||h.wake(),this._gc=!a,this._active=this.isActive(),b!==!0&&(a&&!this.timeline?this._timeline.add(this,this._startTime-this._delay):!a&&this.timeline&&this._timeline._remove(this,!0)),!1},g._kill=function(a,b){return this._enabled(!1,!1)},g.kill=function(a,b){return this._kill(a,b),this},g._uncache=function(a){for(var b=a?this:this.timeline;b;)b._dirty=!0,b=b.timeline;return this},g._swapSelfInParams=function(a){for(var b=a.length,c=a.concat();--b>-1;)"{self}"===a[b]&&(c[b]=this);return c},g._callback=function(a){var b=this.vars;b[a].apply(b[a+"Scope"]||b.callbackScope||this,b[a+"Params"]||u)},g.eventCallback=function(a,b,c,d){if("on"===(a||"").substr(0,2)){var e=this.vars;if(1===arguments.length)return e[a];null==b?delete e[a]:(e[a]=b,e[a+"Params"]=o(c)&&-1!==c.join("").indexOf("{self}")?this._swapSelfInParams(c):c,e[a+"Scope"]=d),"onUpdate"===a&&(this._onUpdate=b)}return this},g.delay=function(a){return arguments.length?(this._timeline.smoothChildTiming&&this.startTime(this._startTime+a-this._delay),this._delay=a,this):this._delay},g.duration=function(a){return arguments.length?(this._duration=this._totalDuration=a,this._uncache(!0),this._timeline.smoothChildTiming&&this._time>0&&this._time<this._duration&&0!==a&&this.totalTime(this._totalTime*(a/this._duration),!0),this):(this._dirty=!1,this._duration)},g.totalDuration=function(a){return this._dirty=!1,arguments.length?this.duration(a):this._totalDuration},g.time=function(a,b){return arguments.length?(this._dirty&&this.totalDuration(),this.totalTime(a>this._duration?this._duration:a,b)):this._time},g.totalTime=function(a,b,c){if(i||h.wake(),!arguments.length)return this._totalTime;if(this._timeline){if(0>a&&!c&&(a+=this.totalDuration()),this._timeline.smoothChildTiming){this._dirty&&this.totalDuration();var d=this._totalDuration,e=this._timeline;if(a>d&&!c&&(a=d),this._startTime=(this._paused?this._pauseTime:e._time)-(this._reversed?d-a:a)/this._timeScale,e._dirty||this._uncache(!1),e._timeline)for(;e._timeline;)e._timeline._time!==(e._startTime+e._totalTime)/e._timeScale&&e.totalTime(e._totalTime,!0),e=e._timeline}this._gc&&this._enabled(!0,!1),(this._totalTime!==a||0===this._duration)&&(J.length&&Y(),this.render(a,b,!1),J.length&&Y())}return this},g.progress=g.totalProgress=function(a,b){var c=this.duration();return arguments.length?this.totalTime(c*a,b):c?this._time/c:this.ratio},g.startTime=function(a){return arguments.length?(a!==this._startTime&&(this._startTime=a,this.timeline&&this.timeline._sortChildren&&this.timeline.add(this,a-this._delay)),this):this._startTime},g.endTime=function(a){return this._startTime+(0!=a?this.totalDuration():this.duration())/this._timeScale},g.timeScale=function(a){if(!arguments.length)return this._timeScale;if(a=a||l,this._timeline&&this._timeline.smoothChildTiming){var b=this._pauseTime,c=b||0===b?b:this._timeline.totalTime();this._startTime=c-(c-this._startTime)*this._timeScale/a}return this._timeScale=a,this._uncache(!1)},g.reversed=function(a){return arguments.length?(a!=this._reversed&&(this._reversed=a,this.totalTime(this._timeline&&!this._timeline.smoothChildTiming?this.totalDuration()-this._totalTime:this._totalTime,!0)),this):this._reversed},g.paused=function(a){if(!arguments.length)return this._paused;var b,c,d=this._timeline;return a!=this._paused&&d&&(i||a||h.wake(),b=d.rawTime(),c=b-this._pauseTime,!a&&d.smoothChildTiming&&(this._startTime+=c,this._uncache(!1)),this._pauseTime=a?b:null,this._paused=a,this._active=this.isActive(),!a&&0!==c&&this._initted&&this.duration()&&(b=d.smoothChildTiming?this._totalTime:(b-this._startTime)/this._timeScale,this.render(b,b===this._totalTime,!0))),this._gc&&!a&&this._enabled(!0,!1),this};var F=s("core.SimpleTimeline",function(a){D.call(this,0,a),this.autoRemoveChildren=this.smoothChildTiming=!0});g=F.prototype=new D,g.constructor=F,g.kill()._gc=!1,g._first=g._last=g._recent=null,g._sortChildren=!1,g.add=g.insert=function(a,b,c,d){var e,f;if(a._startTime=Number(b||0)+a._delay,a._paused&&this!==a._timeline&&(a._pauseTime=a._startTime+(this.rawTime()-a._startTime)/a._timeScale),a.timeline&&a.timeline._remove(a,!0),a.timeline=a._timeline=this,a._gc&&a._enabled(!0,!0),e=this._last,this._sortChildren)for(f=a._startTime;e&&e._startTime>f;)e=e._prev;return e?(a._next=e._next,e._next=a):(a._next=this._first,this._first=a),a._next?a._next._prev=a:this._last=a,a._prev=e,this._recent=a,this._timeline&&this._uncache(!0),this},g._remove=function(a,b){return a.timeline===this&&(b||a._enabled(!1,!0),a._prev?a._prev._next=a._next:this._first===a&&(this._first=a._next),a._next?a._next._prev=a._prev:this._last===a&&(this._last=a._prev),a._next=a._prev=a.timeline=null,a===this._recent&&(this._recent=this._last),this._timeline&&this._uncache(!0)),this},g.render=function(a,b,c){var d,e=this._first;for(this._totalTime=this._time=this._rawPrevTime=a;e;)d=e._next,(e._active||a>=e._startTime&&!e._paused)&&(e._reversed?e.render((e._dirty?e.totalDuration():e._totalDuration)-(a-e._startTime)*e._timeScale,b,c):e.render((a-e._startTime)*e._timeScale,b,c)),e=d},g.rawTime=function(){return i||h.wake(),this._totalTime};var G=s("TweenLite",function(b,c,d){if(D.call(this,c,d),this.render=G.prototype.render,null==b)throw"Cannot tween a null target.";this.target=b="string"!=typeof b?b:G.selector(b)||b;var e,f,g,h=b.jquery||b.length&&b!==a&&b[0]&&(b[0]===a||b[0].nodeType&&b[0].style&&!b.nodeType),i=this.vars.overwrite;if(this._overwrite=i=null==i?U[G.defaultOverwrite]:"number"==typeof i?i>>0:U[i],(h||b instanceof Array||b.push&&o(b))&&"number"!=typeof b[0])for(this._targets=g=m(b),this._propLookup=[],this._siblings=[],e=0;e<g.length;e++)f=g[e],f?"string"!=typeof f?f.length&&f!==a&&f[0]&&(f[0]===a||f[0].nodeType&&f[0].style&&!f.nodeType)?(g.splice(e--,1),this._targets=g=g.concat(m(f))):(this._siblings[e]=Z(f,this,!1),1===i&&this._siblings[e].length>1&&_(f,this,null,1,this._siblings[e])):(f=g[e--]=G.selector(f),"string"==typeof f&&g.splice(e+1,1)):g.splice(e--,1);else this._propLookup={},this._siblings=Z(b,this,!1),1===i&&this._siblings.length>1&&_(b,this,null,1,this._siblings);(this.vars.immediateRender||0===c&&0===this._delay&&this.vars.immediateRender!==!1)&&(this._time=-l,this.render(Math.min(0,-this._delay)))},!0),H=function(b){return b&&b.length&&b!==a&&b[0]&&(b[0]===a||b[0].nodeType&&b[0].style&&!b.nodeType)},I=function(a,b){var c,d={};for(c in a)T[c]||c in b&&"transform"!==c&&"x"!==c&&"y"!==c&&"width"!==c&&"height"!==c&&"className"!==c&&"border"!==c||!(!Q[c]||Q[c]&&Q[c]._autoCSS)||(d[c]=a[c],delete a[c]);a.css=d};g=G.prototype=new D,g.constructor=G,g.kill()._gc=!1,g.ratio=0,g._firstPT=g._targets=g._overwrittenProps=g._startAt=null,g._notifyPluginsOfEnabled=g._lazy=!1,G.version="1.18.5",G.defaultEase=g._ease=new v(null,null,1,1),G.defaultOverwrite="auto",G.ticker=h,G.autoSleep=120,G.lagSmoothing=function(a,b){h.lagSmoothing(a,b)},G.selector=a.$||a.jQuery||function(b){var c=a.$||a.jQuery;return c?(G.selector=c,c(b)):"undefined"==typeof document?b:document.querySelectorAll?document.querySelectorAll(b):document.getElementById("#"===b.charAt(0)?b.substr(1):b)};var J=[],K={},L=/(?:(-|-=|\+=)?\d*\.?\d*(?:e[\-+]?\d+)?)[0-9]/gi,M=function(a){for(var b,c=this._firstPT,d=1e-6;c;)b=c.blob?a?this.join(""):this.start:c.c*a+c.s,c.r?b=Math.round(b):d>b&&b>-d&&(b=0),c.f?c.fp?c.t[c.p](c.fp,b):c.t[c.p](b):c.t[c.p]=b,c=c._next},N=function(a,b,c,d){var e,f,g,h,i,j,k,l=[a,b],m=0,n="",o=0;for(l.start=a,c&&(c(l),a=l[0],b=l[1]),l.length=0,e=a.match(L)||[],f=b.match(L)||[],d&&(d._next=null,d.blob=1,l._firstPT=d),i=f.length,h=0;i>h;h++)k=f[h],j=b.substr(m,b.indexOf(k,m)-m),n+=j||!h?j:",",m+=j.length,o?o=(o+1)%5:"rgba("===j.substr(-5)&&(o=1),k===e[h]||e.length<=h?n+=k:(n&&(l.push(n),n=""),g=parseFloat(e[h]),l.push(g),l._firstPT={_next:l._firstPT,t:l,p:l.length-1,s:g,c:("="===k.charAt(1)?parseInt(k.charAt(0)+"1",10)*parseFloat(k.substr(2)):parseFloat(k)-g)||0,f:0,r:o&&4>o}),m+=k.length;return n+=b.substr(m),n&&l.push(n),l.setRatio=M,l},O=function(a,b,c,d,e,f,g,h){var i,j,k="get"===c?a[b]:c,l=typeof a[b],m="string"==typeof d&&"="===d.charAt(1),n={t:a,p:b,s:k,f:"function"===l,pg:0,n:e||b,r:f,pr:0,c:m?parseInt(d.charAt(0)+"1",10)*parseFloat(d.substr(2)):parseFloat(d)-k||0};return"number"!==l&&("function"===l&&"get"===c&&(j=b.indexOf("set")||"function"!=typeof a["get"+b.substr(3)]?b:"get"+b.substr(3),n.s=k=g?a[j](g):a[j]()),"string"==typeof k&&(g||isNaN(k))?(n.fp=g,i=N(k,d,h||G.defaultStringFilter,n),n={t:i,p:"setRatio",s:0,c:1,f:2,pg:0,n:e||b,pr:0}):m||(n.s=parseFloat(k),n.c=parseFloat(d)-n.s||0)),n.c?((n._next=this._firstPT)&&(n._next._prev=n),this._firstPT=n,n):void 0},P=G._internals={isArray:o,isSelector:H,lazyTweens:J,blobDif:N},Q=G._plugins={},R=P.tweenLookup={},S=0,T=P.reservedProps={ease:1,delay:1,overwrite:1,onComplete:1,onCompleteParams:1,onCompleteScope:1,useFrames:1,runBackwards:1,startAt:1,onUpdate:1,onUpdateParams:1,onUpdateScope:1,onStart:1,onStartParams:1,onStartScope:1,onReverseComplete:1,onReverseCompleteParams:1,onReverseCompleteScope:1,onRepeat:1,onRepeatParams:1,onRepeatScope:1,easeParams:1,yoyo:1,immediateRender:1,repeat:1,repeatDelay:1,data:1,paused:1,reversed:1,autoCSS:1,lazy:1,onOverwrite:1,callbackScope:1,stringFilter:1,id:1},U={none:0,all:1,auto:2,concurrent:3,allOnStart:4,preexisting:5,"true":1,"false":0},V=D._rootFramesTimeline=new F,W=D._rootTimeline=new F,X=30,Y=P.lazyRender=function(){var a,b=J.length;for(K={};--b>-1;)a=J[b],a&&a._lazy!==!1&&(a.render(a._lazy[0],a._lazy[1],!0),a._lazy=!1);J.length=0};W._startTime=h.time,V._startTime=h.frame,W._active=V._active=!0,setTimeout(Y,1),D._updateRoot=G.render=function(){var a,b,c;if(J.length&&Y(),W.render((h.time-W._startTime)*W._timeScale,!1,!1),V.render((h.frame-V._startTime)*V._timeScale,!1,!1),J.length&&Y(),h.frame>=X){X=h.frame+(parseInt(G.autoSleep,10)||120);for(c in R){for(b=R[c].tweens,a=b.length;--a>-1;)b[a]._gc&&b.splice(a,1);0===b.length&&delete R[c]}if(c=W._first,(!c||c._paused)&&G.autoSleep&&!V._first&&1===h._listeners.tick.length){for(;c&&c._paused;)c=c._next;c||h.sleep()}}},h.addEventListener("tick",D._updateRoot);var Z=function(a,b,c){var d,e,f=a._gsTweenID;if(R[f||(a._gsTweenID=f="t"+S++)]||(R[f]={target:a,tweens:[]}),b&&(d=R[f].tweens,d[e=d.length]=b,c))for(;--e>-1;)d[e]===b&&d.splice(e,1);return R[f].tweens},$=function(a,b,c,d){var e,f,g=a.vars.onOverwrite;return g&&(e=g(a,b,c,d)),g=G.onOverwrite,g&&(f=g(a,b,c,d)),e!==!1&&f!==!1},_=function(a,b,c,d,e){var f,g,h,i;if(1===d||d>=4){for(i=e.length,f=0;i>f;f++)if((h=e[f])!==b)h._gc||h._kill(null,a,b)&&(g=!0);else if(5===d)break;return g}var j,k=b._startTime+l,m=[],n=0,o=0===b._duration;for(f=e.length;--f>-1;)(h=e[f])===b||h._gc||h._paused||(h._timeline!==b._timeline?(j=j||aa(b,0,o),0===aa(h,j,o)&&(m[n++]=h)):h._startTime<=k&&h._startTime+h.totalDuration()/h._timeScale>k&&((o||!h._initted)&&k-h._startTime<=2e-10||(m[n++]=h)));for(f=n;--f>-1;)if(h=m[f],2===d&&h._kill(c,a,b)&&(g=!0),2!==d||!h._firstPT&&h._initted){if(2!==d&&!$(h,b))continue;h._enabled(!1,!1)&&(g=!0)}return g},aa=function(a,b,c){for(var d=a._timeline,e=d._timeScale,f=a._startTime;d._timeline;){if(f+=d._startTime,e*=d._timeScale,d._paused)return-100;d=d._timeline}return f/=e,f>b?f-b:c&&f===b||!a._initted&&2*l>f-b?l:(f+=a.totalDuration()/a._timeScale/e)>b+l?0:f-b-l};g._init=function(){var a,b,c,d,e,f=this.vars,g=this._overwrittenProps,h=this._duration,i=!!f.immediateRender,j=f.ease;if(f.startAt){this._startAt&&(this._startAt.render(-1,!0),this._startAt.kill()),e={};for(d in f.startAt)e[d]=f.startAt[d];if(e.overwrite=!1,e.immediateRender=!0,e.lazy=i&&f.lazy!==!1,e.startAt=e.delay=null,this._startAt=G.to(this.target,0,e),i)if(this._time>0)this._startAt=null;else if(0!==h)return}else if(f.runBackwards&&0!==h)if(this._startAt)this._startAt.render(-1,!0),this._startAt.kill(),this._startAt=null;else{0!==this._time&&(i=!1),c={};for(d in f)T[d]&&"autoCSS"!==d||(c[d]=f[d]);if(c.overwrite=0,c.data="isFromStart",c.lazy=i&&f.lazy!==!1,c.immediateRender=i,this._startAt=G.to(this.target,0,c),i){if(0===this._time)return}else this._startAt._init(),this._startAt._enabled(!1),this.vars.immediateRender&&(this._startAt=null)}if(this._ease=j=j?j instanceof v?j:"function"==typeof j?new v(j,f.easeParams):w[j]||G.defaultEase:G.defaultEase,f.easeParams instanceof Array&&j.config&&(this._ease=j.config.apply(j,f.easeParams)),this._easeType=this._ease._type,this._easePower=this._ease._power,this._firstPT=null,this._targets)for(a=this._targets.length;--a>-1;)this._initProps(this._targets[a],this._propLookup[a]={},this._siblings[a],g?g[a]:null)&&(b=!0);else b=this._initProps(this.target,this._propLookup,this._siblings,g);if(b&&G._onPluginEvent("_onInitAllProps",this),g&&(this._firstPT||"function"!=typeof this.target&&this._enabled(!1,!1)),f.runBackwards)for(c=this._firstPT;c;)c.s+=c.c,c.c=-c.c,c=c._next;this._onUpdate=f.onUpdate,this._initted=!0},g._initProps=function(b,c,d,e){var f,g,h,i,j,k;if(null==b)return!1;K[b._gsTweenID]&&Y(),this.vars.css||b.style&&b!==a&&b.nodeType&&Q.css&&this.vars.autoCSS!==!1&&I(this.vars,b);for(f in this.vars)if(k=this.vars[f],T[f])k&&(k instanceof Array||k.push&&o(k))&&-1!==k.join("").indexOf("{self}")&&(this.vars[f]=k=this._swapSelfInParams(k,this));else if(Q[f]&&(i=new Q[f])._onInitTween(b,this.vars[f],this)){for(this._firstPT=j={_next:this._firstPT,t:i,p:"setRatio",s:0,c:1,f:1,n:f,pg:1,pr:i._priority},g=i._overwriteProps.length;--g>-1;)c[i._overwriteProps[g]]=this._firstPT;(i._priority||i._onInitAllProps)&&(h=!0),(i._onDisable||i._onEnable)&&(this._notifyPluginsOfEnabled=!0),j._next&&(j._next._prev=j)}else c[f]=O.call(this,b,f,"get",k,f,0,null,this.vars.stringFilter);return e&&this._kill(e,b)?this._initProps(b,c,d,e):this._overwrite>1&&this._firstPT&&d.length>1&&_(b,this,c,this._overwrite,d)?(this._kill(c,b),this._initProps(b,c,d,e)):(this._firstPT&&(this.vars.lazy!==!1&&this._duration||this.vars.lazy&&!this._duration)&&(K[b._gsTweenID]=!0),h)},g.render=function(a,b,c){var d,e,f,g,h=this._time,i=this._duration,j=this._rawPrevTime;if(a>=i-1e-7)this._totalTime=this._time=i,this.ratio=this._ease._calcEnd?this._ease.getRatio(1):1,this._reversed||(d=!0,e="onComplete",c=c||this._timeline.autoRemoveChildren),0===i&&(this._initted||!this.vars.lazy||c)&&(this._startTime===this._timeline._duration&&(a=0),(0>j||0>=a&&a>=-1e-7||j===l&&"isPause"!==this.data)&&j!==a&&(c=!0,j>l&&(e="onReverseComplete")),this._rawPrevTime=g=!b||a||j===a?a:l);else if(1e-7>a)this._totalTime=this._time=0,this.ratio=this._ease._calcEnd?this._ease.getRatio(0):0,(0!==h||0===i&&j>0)&&(e="onReverseComplete",d=this._reversed),0>a&&(this._active=!1,0===i&&(this._initted||!this.vars.lazy||c)&&(j>=0&&(j!==l||"isPause"!==this.data)&&(c=!0),this._rawPrevTime=g=!b||a||j===a?a:l)),this._initted||(c=!0);else if(this._totalTime=this._time=a,this._easeType){var k=a/i,m=this._easeType,n=this._easePower;(1===m||3===m&&k>=.5)&&(k=1-k),3===m&&(k*=2),1===n?k*=k:2===n?k*=k*k:3===n?k*=k*k*k:4===n&&(k*=k*k*k*k),1===m?this.ratio=1-k:2===m?this.ratio=k:.5>a/i?this.ratio=k/2:this.ratio=1-k/2}else this.ratio=this._ease.getRatio(a/i);if(this._time!==h||c){if(!this._initted){if(this._init(),!this._initted||this._gc)return;if(!c&&this._firstPT&&(this.vars.lazy!==!1&&this._duration||this.vars.lazy&&!this._duration))return this._time=this._totalTime=h,this._rawPrevTime=j,J.push(this),void(this._lazy=[a,b]);this._time&&!d?this.ratio=this._ease.getRatio(this._time/i):d&&this._ease._calcEnd&&(this.ratio=this._ease.getRatio(0===this._time?0:1))}for(this._lazy!==!1&&(this._lazy=!1),this._active||!this._paused&&this._time!==h&&a>=0&&(this._active=!0),0===h&&(this._startAt&&(a>=0?this._startAt.render(a,b,c):e||(e="_dummyGS")),this.vars.onStart&&(0!==this._time||0===i)&&(b||this._callback("onStart"))),f=this._firstPT;f;)f.f?f.t[f.p](f.c*this.ratio+f.s):f.t[f.p]=f.c*this.ratio+f.s,f=f._next;this._onUpdate&&(0>a&&this._startAt&&a!==-1e-4&&this._startAt.render(a,b,c),b||(this._time!==h||d||c)&&this._callback("onUpdate")),e&&(!this._gc||c)&&(0>a&&this._startAt&&!this._onUpdate&&a!==-1e-4&&this._startAt.render(a,b,c),d&&(this._timeline.autoRemoveChildren&&this._enabled(!1,!1),this._active=!1),!b&&this.vars[e]&&this._callback(e),0===i&&this._rawPrevTime===l&&g!==l&&(this._rawPrevTime=0))}},g._kill=function(a,b,c){if("all"===a&&(a=null),null==a&&(null==b||b===this.target))return this._lazy=!1,this._enabled(!1,!1);b="string"!=typeof b?b||this._targets||this.target:G.selector(b)||b;var d,e,f,g,h,i,j,k,l,m=c&&this._time&&c._startTime===this._startTime&&this._timeline===c._timeline;if((o(b)||H(b))&&"number"!=typeof b[0])for(d=b.length;--d>-1;)this._kill(a,b[d],c)&&(i=!0);else{if(this._targets){for(d=this._targets.length;--d>-1;)if(b===this._targets[d]){h=this._propLookup[d]||{},this._overwrittenProps=this._overwrittenProps||[],e=this._overwrittenProps[d]=a?this._overwrittenProps[d]||{}:"all";break}}else{if(b!==this.target)return!1;h=this._propLookup,e=this._overwrittenProps=a?this._overwrittenProps||{}:"all"}if(h){if(j=a||h,k=a!==e&&"all"!==e&&a!==h&&("object"!=typeof a||!a._tempKill),c&&(G.onOverwrite||this.vars.onOverwrite)){for(f in j)h[f]&&(l||(l=[]),l.push(f));if((l||!a)&&!$(this,c,b,l))return!1}for(f in j)(g=h[f])&&(m&&(g.f?g.t[g.p](g.s):g.t[g.p]=g.s,i=!0),g.pg&&g.t._kill(j)&&(i=!0),g.pg&&0!==g.t._overwriteProps.length||(g._prev?g._prev._next=g._next:g===this._firstPT&&(this._firstPT=g._next),g._next&&(g._next._prev=g._prev),g._next=g._prev=null),delete h[f]),k&&(e[f]=1);!this._firstPT&&this._initted&&this._enabled(!1,!1)}}return i},g.invalidate=function(){return this._notifyPluginsOfEnabled&&G._onPluginEvent("_onDisable",this),this._firstPT=this._overwrittenProps=this._startAt=this._onUpdate=null,this._notifyPluginsOfEnabled=this._active=this._lazy=!1,this._propLookup=this._targets?{}:[],D.prototype.invalidate.call(this),this.vars.immediateRender&&(this._time=-l,this.render(Math.min(0,-this._delay))),this},g._enabled=function(a,b){if(i||h.wake(),a&&this._gc){var c,d=this._targets;if(d)for(c=d.length;--c>-1;)this._siblings[c]=Z(d[c],this,!0);else this._siblings=Z(this.target,this,!0)}return D.prototype._enabled.call(this,a,b),this._notifyPluginsOfEnabled&&this._firstPT?G._onPluginEvent(a?"_onEnable":"_onDisable",this):!1},G.to=function(a,b,c){return new G(a,b,c)},G.from=function(a,b,c){return c.runBackwards=!0,c.immediateRender=0!=c.immediateRender,new G(a,b,c)},G.fromTo=function(a,b,c,d){return d.startAt=c,d.immediateRender=0!=d.immediateRender&&0!=c.immediateRender,new G(a,b,d)},G.delayedCall=function(a,b,c,d,e){return new G(b,0,{delay:a,onComplete:b,onCompleteParams:c,callbackScope:d,onReverseComplete:b,onReverseCompleteParams:c,immediateRender:!1,lazy:!1,useFrames:e,overwrite:0})},G.set=function(a,b){return new G(a,0,b)},G.getTweensOf=function(a,b){if(null==a)return[];a="string"!=typeof a?a:G.selector(a)||a;var c,d,e,f;if((o(a)||H(a))&&"number"!=typeof a[0]){for(c=a.length,d=[];--c>-1;)d=d.concat(G.getTweensOf(a[c],b));for(c=d.length;--c>-1;)for(f=d[c],e=c;--e>-1;)f===d[e]&&d.splice(c,1)}else for(d=Z(a).concat(),c=d.length;--c>-1;)(d[c]._gc||b&&!d[c].isActive())&&d.splice(c,1);return d},G.killTweensOf=G.killDelayedCallsTo=function(a,b,c){"object"==typeof b&&(c=b,b=!1);for(var d=G.getTweensOf(a,b),e=d.length;--e>-1;)d[e]._kill(c,a)};var ba=s("plugins.TweenPlugin",function(a,b){this._overwriteProps=(a||"").split(","),this._propName=this._overwriteProps[0],this._priority=b||0,this._super=ba.prototype},!0);if(g=ba.prototype,ba.version="1.18.0",ba.API=2,g._firstPT=null,g._addTween=O,g.setRatio=M,g._kill=function(a){var b,c=this._overwriteProps,d=this._firstPT;if(null!=a[this._propName])this._overwriteProps=[];else for(b=c.length;--b>-1;)null!=a[c[b]]&&c.splice(b,1);for(;d;)null!=a[d.n]&&(d._next&&(d._next._prev=d._prev),d._prev?(d._prev._next=d._next,d._prev=null):this._firstPT===d&&(this._firstPT=d._next)),d=d._next;return!1},g._roundProps=function(a,b){for(var c=this._firstPT;c;)(a[this._propName]||null!=c.n&&a[c.n.split(this._propName+"_").join("")])&&(c.r=b),c=c._next},G._onPluginEvent=function(a,b){var c,d,e,f,g,h=b._firstPT;if("_onInitAllProps"===a){for(;h;){for(g=h._next,d=e;d&&d.pr>h.pr;)d=d._next;(h._prev=d?d._prev:f)?h._prev._next=h:e=h,(h._next=d)?d._prev=h:f=h,h=g}h=b._firstPT=e}for(;h;)h.pg&&"function"==typeof h.t[a]&&h.t[a]()&&(c=!0),h=h._next;return c},ba.activate=function(a){for(var b=a.length;--b>-1;)a[b].API===ba.API&&(Q[(new a[b])._propName]=a[b]);return!0},r.plugin=function(a){if(!(a&&a.propName&&a.init&&a.API))throw"illegal plugin definition.";var b,c=a.propName,d=a.priority||0,e=a.overwriteProps,f={init:"_onInitTween",set:"setRatio",kill:"_kill",round:"_roundProps",initAll:"_onInitAllProps"},g=s("plugins."+c.charAt(0).toUpperCase()+c.substr(1)+"Plugin",function(){ba.call(this,c,d),this._overwriteProps=e||[]},a.global===!0),h=g.prototype=new ba(c);h.constructor=g,g.API=a.API;for(b in f)"function"==typeof a[b]&&(h[f[b]]=a[b]);return g.version=a.version,ba.activate([g]),g},e=a._gsQueue){for(f=0;f<e.length;f++)e[f]();for(g in p)p[g].func||a.console.log("GSAP encountered missing dependency: com.greensock."+g)}i=!1}}("undefined"!=typeof module&&module.exports&&"undefined"!=typeof global?global:this||window,"TweenLite");


/* TIME LINE LITE */
/*!
 * VERSION: 1.18.5
 * DATE: 2016-05-24
 * UPDATES AND DOCS AT: http://greensock.com
 *
 * @license Copyright (c) 2008-2016, GreenSock. All rights reserved.
 * This work is subject to the terms at http://greensock.com/standard-license or for
 * Club GreenSock members, the software agreement that was issued with your membership.
 * 
 * @author: Jack Doyle, jack@greensock.com
 */
var _gsScope="undefined"!=typeof module&&module.exports&&"undefined"!=typeof global?global:this||window;(_gsScope._gsQueue||(_gsScope._gsQueue=[])).push(function(){"use strict";_gsScope._gsDefine("TimelineLite",["core.Animation","core.SimpleTimeline","TweenLite"],function(a,b,c){var d=function(a){b.call(this,a),this._labels={},this.autoRemoveChildren=this.vars.autoRemoveChildren===!0,this.smoothChildTiming=this.vars.smoothChildTiming===!0,this._sortChildren=!0,this._onUpdate=this.vars.onUpdate;var c,d,e=this.vars;for(d in e)c=e[d],i(c)&&-1!==c.join("").indexOf("{self}")&&(e[d]=this._swapSelfInParams(c));i(e.tweens)&&this.add(e.tweens,0,e.align,e.stagger)},e=1e-10,f=c._internals,g=d._internals={},h=f.isSelector,i=f.isArray,j=f.lazyTweens,k=f.lazyRender,l=_gsScope._gsDefine.globals,m=function(a){var b,c={};for(b in a)c[b]=a[b];return c},n=function(a,b,c){var d,e,f=a.cycle;for(d in f)e=f[d],a[d]="function"==typeof e?e.call(b[c],c):e[c%e.length];delete a.cycle},o=g.pauseCallback=function(){},p=function(a){var b,c=[],d=a.length;for(b=0;b!==d;c.push(a[b++]));return c},q=d.prototype=new b;return d.version="1.18.5",q.constructor=d,q.kill()._gc=q._forcingPlayhead=q._hasPause=!1,q.to=function(a,b,d,e){var f=d.repeat&&l.TweenMax||c;return b?this.add(new f(a,b,d),e):this.set(a,d,e)},q.from=function(a,b,d,e){return this.add((d.repeat&&l.TweenMax||c).from(a,b,d),e)},q.fromTo=function(a,b,d,e,f){var g=e.repeat&&l.TweenMax||c;return b?this.add(g.fromTo(a,b,d,e),f):this.set(a,e,f)},q.staggerTo=function(a,b,e,f,g,i,j,k){var l,o,q=new d({onComplete:i,onCompleteParams:j,callbackScope:k,smoothChildTiming:this.smoothChildTiming}),r=e.cycle;for("string"==typeof a&&(a=c.selector(a)||a),a=a||[],h(a)&&(a=p(a)),f=f||0,0>f&&(a=p(a),a.reverse(),f*=-1),o=0;o<a.length;o++)l=m(e),l.startAt&&(l.startAt=m(l.startAt),l.startAt.cycle&&n(l.startAt,a,o)),r&&(n(l,a,o),null!=l.duration&&(b=l.duration,delete l.duration)),q.to(a[o],b,l,o*f);return this.add(q,g)},q.staggerFrom=function(a,b,c,d,e,f,g,h){return c.immediateRender=0!=c.immediateRender,c.runBackwards=!0,this.staggerTo(a,b,c,d,e,f,g,h)},q.staggerFromTo=function(a,b,c,d,e,f,g,h,i){return d.startAt=c,d.immediateRender=0!=d.immediateRender&&0!=c.immediateRender,this.staggerTo(a,b,d,e,f,g,h,i)},q.call=function(a,b,d,e){return this.add(c.delayedCall(0,a,b,d),e)},q.set=function(a,b,d){return d=this._parseTimeOrLabel(d,0,!0),null==b.immediateRender&&(b.immediateRender=d===this._time&&!this._paused),this.add(new c(a,0,b),d)},d.exportRoot=function(a,b){a=a||{},null==a.smoothChildTiming&&(a.smoothChildTiming=!0);var e,f,g=new d(a),h=g._timeline;for(null==b&&(b=!0),h._remove(g,!0),g._startTime=0,g._rawPrevTime=g._time=g._totalTime=h._time,e=h._first;e;)f=e._next,b&&e instanceof c&&e.target===e.vars.onComplete||g.add(e,e._startTime-e._delay),e=f;return h.add(g,0),g},q.add=function(e,f,g,h){var j,k,l,m,n,o;if("number"!=typeof f&&(f=this._parseTimeOrLabel(f,0,!0,e)),!(e instanceof a)){if(e instanceof Array||e&&e.push&&i(e)){for(g=g||"normal",h=h||0,j=f,k=e.length,l=0;k>l;l++)i(m=e[l])&&(m=new d({tweens:m})),this.add(m,j),"string"!=typeof m&&"function"!=typeof m&&("sequence"===g?j=m._startTime+m.totalDuration()/m._timeScale:"start"===g&&(m._startTime-=m.delay())),j+=h;return this._uncache(!0)}if("string"==typeof e)return this.addLabel(e,f);if("function"!=typeof e)throw"Cannot add "+e+" into the timeline; it is not a tween, timeline, function, or string.";e=c.delayedCall(0,e)}if(b.prototype.add.call(this,e,f),(this._gc||this._time===this._duration)&&!this._paused&&this._duration<this.duration())for(n=this,o=n.rawTime()>e._startTime;n._timeline;)o&&n._timeline.smoothChildTiming?n.totalTime(n._totalTime,!0):n._gc&&n._enabled(!0,!1),n=n._timeline;return this},q.remove=function(b){if(b instanceof a){this._remove(b,!1);var c=b._timeline=b.vars.useFrames?a._rootFramesTimeline:a._rootTimeline;return b._startTime=(b._paused?b._pauseTime:c._time)-(b._reversed?b.totalDuration()-b._totalTime:b._totalTime)/b._timeScale,this}if(b instanceof Array||b&&b.push&&i(b)){for(var d=b.length;--d>-1;)this.remove(b[d]);return this}return"string"==typeof b?this.removeLabel(b):this.kill(null,b)},q._remove=function(a,c){b.prototype._remove.call(this,a,c);var d=this._last;return d?this._time>d._startTime+d._totalDuration/d._timeScale&&(this._time=this.duration(),this._totalTime=this._totalDuration):this._time=this._totalTime=this._duration=this._totalDuration=0,this},q.append=function(a,b){return this.add(a,this._parseTimeOrLabel(null,b,!0,a))},q.insert=q.insertMultiple=function(a,b,c,d){return this.add(a,b||0,c,d)},q.appendMultiple=function(a,b,c,d){return this.add(a,this._parseTimeOrLabel(null,b,!0,a),c,d)},q.addLabel=function(a,b){return this._labels[a]=this._parseTimeOrLabel(b),this},q.addPause=function(a,b,d,e){var f=c.delayedCall(0,o,d,e||this);return f.vars.onComplete=f.vars.onReverseComplete=b,f.data="isPause",this._hasPause=!0,this.add(f,a)},q.removeLabel=function(a){return delete this._labels[a],this},q.getLabelTime=function(a){return null!=this._labels[a]?this._labels[a]:-1},q._parseTimeOrLabel=function(b,c,d,e){var f;if(e instanceof a&&e.timeline===this)this.remove(e);else if(e&&(e instanceof Array||e.push&&i(e)))for(f=e.length;--f>-1;)e[f]instanceof a&&e[f].timeline===this&&this.remove(e[f]);if("string"==typeof c)return this._parseTimeOrLabel(c,d&&"number"==typeof b&&null==this._labels[c]?b-this.duration():0,d);if(c=c||0,"string"!=typeof b||!isNaN(b)&&null==this._labels[b])null==b&&(b=this.duration());else{if(f=b.indexOf("="),-1===f)return null==this._labels[b]?d?this._labels[b]=this.duration()+c:c:this._labels[b]+c;c=parseInt(b.charAt(f-1)+"1",10)*Number(b.substr(f+1)),b=f>1?this._parseTimeOrLabel(b.substr(0,f-1),0,d):this.duration()}return Number(b)+c},q.seek=function(a,b){return this.totalTime("number"==typeof a?a:this._parseTimeOrLabel(a),b!==!1)},q.stop=function(){return this.paused(!0)},q.gotoAndPlay=function(a,b){return this.play(a,b)},q.gotoAndStop=function(a,b){return this.pause(a,b)},q.render=function(a,b,c){this._gc&&this._enabled(!0,!1);var d,f,g,h,i,l,m,n=this._dirty?this.totalDuration():this._totalDuration,o=this._time,p=this._startTime,q=this._timeScale,r=this._paused;if(a>=n-1e-7)this._totalTime=this._time=n,this._reversed||this._hasPausedChild()||(f=!0,h="onComplete",i=!!this._timeline.autoRemoveChildren,0===this._duration&&(0>=a&&a>=-1e-7||this._rawPrevTime<0||this._rawPrevTime===e)&&this._rawPrevTime!==a&&this._first&&(i=!0,this._rawPrevTime>e&&(h="onReverseComplete"))),this._rawPrevTime=this._duration||!b||a||this._rawPrevTime===a?a:e,a=n+1e-4;else if(1e-7>a)if(this._totalTime=this._time=0,(0!==o||0===this._duration&&this._rawPrevTime!==e&&(this._rawPrevTime>0||0>a&&this._rawPrevTime>=0))&&(h="onReverseComplete",f=this._reversed),0>a)this._active=!1,this._timeline.autoRemoveChildren&&this._reversed?(i=f=!0,h="onReverseComplete"):this._rawPrevTime>=0&&this._first&&(i=!0),this._rawPrevTime=a;else{if(this._rawPrevTime=this._duration||!b||a||this._rawPrevTime===a?a:e,0===a&&f)for(d=this._first;d&&0===d._startTime;)d._duration||(f=!1),d=d._next;a=0,this._initted||(i=!0)}else{if(this._hasPause&&!this._forcingPlayhead&&!b){if(a>=o)for(d=this._first;d&&d._startTime<=a&&!l;)d._duration||"isPause"!==d.data||d.ratio||0===d._startTime&&0===this._rawPrevTime||(l=d),d=d._next;else for(d=this._last;d&&d._startTime>=a&&!l;)d._duration||"isPause"===d.data&&d._rawPrevTime>0&&(l=d),d=d._prev;l&&(this._time=a=l._startTime,this._totalTime=a+this._cycle*(this._totalDuration+this._repeatDelay))}this._totalTime=this._time=this._rawPrevTime=a}if(this._time!==o&&this._first||c||i||l){if(this._initted||(this._initted=!0),this._active||!this._paused&&this._time!==o&&a>0&&(this._active=!0),0===o&&this.vars.onStart&&(0===this._time&&this._duration||b||this._callback("onStart")),m=this._time,m>=o)for(d=this._first;d&&(g=d._next,m===this._time&&(!this._paused||r));)(d._active||d._startTime<=m&&!d._paused&&!d._gc)&&(l===d&&this.pause(),d._reversed?d.render((d._dirty?d.totalDuration():d._totalDuration)-(a-d._startTime)*d._timeScale,b,c):d.render((a-d._startTime)*d._timeScale,b,c)),d=g;else for(d=this._last;d&&(g=d._prev,m===this._time&&(!this._paused||r));){if(d._active||d._startTime<=o&&!d._paused&&!d._gc){if(l===d){for(l=d._prev;l&&l.endTime()>this._time;)l.render(l._reversed?l.totalDuration()-(a-l._startTime)*l._timeScale:(a-l._startTime)*l._timeScale,b,c),l=l._prev;l=null,this.pause()}d._reversed?d.render((d._dirty?d.totalDuration():d._totalDuration)-(a-d._startTime)*d._timeScale,b,c):d.render((a-d._startTime)*d._timeScale,b,c)}d=g}this._onUpdate&&(b||(j.length&&k(),this._callback("onUpdate"))),h&&(this._gc||(p===this._startTime||q!==this._timeScale)&&(0===this._time||n>=this.totalDuration())&&(f&&(j.length&&k(),this._timeline.autoRemoveChildren&&this._enabled(!1,!1),this._active=!1),!b&&this.vars[h]&&this._callback(h)))}},q._hasPausedChild=function(){for(var a=this._first;a;){if(a._paused||a instanceof d&&a._hasPausedChild())return!0;a=a._next}return!1},q.getChildren=function(a,b,d,e){e=e||-9999999999;for(var f=[],g=this._first,h=0;g;)g._startTime<e||(g instanceof c?b!==!1&&(f[h++]=g):(d!==!1&&(f[h++]=g),a!==!1&&(f=f.concat(g.getChildren(!0,b,d)),h=f.length))),g=g._next;return f},q.getTweensOf=function(a,b){var d,e,f=this._gc,g=[],h=0;for(f&&this._enabled(!0,!0),d=c.getTweensOf(a),e=d.length;--e>-1;)(d[e].timeline===this||b&&this._contains(d[e]))&&(g[h++]=d[e]);return f&&this._enabled(!1,!0),g},q.recent=function(){return this._recent},q._contains=function(a){for(var b=a.timeline;b;){if(b===this)return!0;b=b.timeline}return!1},q.shiftChildren=function(a,b,c){c=c||0;for(var d,e=this._first,f=this._labels;e;)e._startTime>=c&&(e._startTime+=a),e=e._next;if(b)for(d in f)f[d]>=c&&(f[d]+=a);return this._uncache(!0)},q._kill=function(a,b){if(!a&&!b)return this._enabled(!1,!1);for(var c=b?this.getTweensOf(b):this.getChildren(!0,!0,!1),d=c.length,e=!1;--d>-1;)c[d]._kill(a,b)&&(e=!0);return e},q.clear=function(a){var b=this.getChildren(!1,!0,!0),c=b.length;for(this._time=this._totalTime=0;--c>-1;)b[c]._enabled(!1,!1);return a!==!1&&(this._labels={}),this._uncache(!0)},q.invalidate=function(){for(var b=this._first;b;)b.invalidate(),b=b._next;return a.prototype.invalidate.call(this)},q._enabled=function(a,c){if(a===this._gc)for(var d=this._first;d;)d._enabled(a,!0),d=d._next;return b.prototype._enabled.call(this,a,c)},q.totalTime=function(b,c,d){this._forcingPlayhead=!0;var e=a.prototype.totalTime.apply(this,arguments);return this._forcingPlayhead=!1,e},q.duration=function(a){return arguments.length?(0!==this.duration()&&0!==a&&this.timeScale(this._duration/a),this):(this._dirty&&this.totalDuration(),this._duration)},q.totalDuration=function(a){if(!arguments.length){if(this._dirty){for(var b,c,d=0,e=this._last,f=999999999999;e;)b=e._prev,e._dirty&&e.totalDuration(),e._startTime>f&&this._sortChildren&&!e._paused?this.add(e,e._startTime-e._delay):f=e._startTime,e._startTime<0&&!e._paused&&(d-=e._startTime,this._timeline.smoothChildTiming&&(this._startTime+=e._startTime/this._timeScale),this.shiftChildren(-e._startTime,!1,-9999999999),f=0),c=e._startTime+e._totalDuration/e._timeScale,c>d&&(d=c),e=b;this._duration=this._totalDuration=d,this._dirty=!1}return this._totalDuration}return a&&this.totalDuration()?this.timeScale(this._totalDuration/a):this},q.paused=function(b){if(!b)for(var c=this._first,d=this._time;c;)c._startTime===d&&"isPause"===c.data&&(c._rawPrevTime=0),c=c._next;return a.prototype.paused.apply(this,arguments)},q.usesFrames=function(){for(var b=this._timeline;b._timeline;)b=b._timeline;return b===a._rootFramesTimeline},q.rawTime=function(){return this._paused?this._totalTime:(this._timeline.rawTime()-this._startTime)*this._timeScale},d},!0)}),_gsScope._gsDefine&&_gsScope._gsQueue.pop()(),function(a){"use strict";var b=function(){return(_gsScope.GreenSockGlobals||_gsScope)[a]};"function"==typeof define&&define.amd?define(["./TweenLite"],b):"undefined"!=typeof module&&module.exports&&(require("./TweenLite.js"),module.exports=b())}("TimelineLite");


/* EASING PLUGIN */
/*!
 * VERSION: 1.15.4
 * DATE: 2016-05-24
 * UPDATES AND DOCS AT: http://greensock.com
 *
 * @license Copyright (c) 2008-2016, GreenSock. All rights reserved.
 * This work is subject to the terms at http://greensock.com/standard-license or for
 * Club GreenSock members, the software agreement that was issued with your membership.
 * 
 * @author: Jack Doyle, jack@greensock.com
 **/
var _gsScope="undefined"!=typeof module&&module.exports&&"undefined"!=typeof global?global:this||window;(_gsScope._gsQueue||(_gsScope._gsQueue=[])).push(function(){"use strict";_gsScope._gsDefine("easing.Back",["easing.Ease"],function(a){var b,c,d,e=_gsScope.GreenSockGlobals||_gsScope,f=e.com.greensock,g=2*Math.PI,h=Math.PI/2,i=f._class,j=function(b,c){var d=i("easing."+b,function(){},!0),e=d.prototype=new a;return e.constructor=d,e.getRatio=c,d},k=a.register||function(){},l=function(a,b,c,d,e){var f=i("easing."+a,{easeOut:new b,easeIn:new c,easeInOut:new d},!0);return k(f,a),f},m=function(a,b,c){this.t=a,this.v=b,c&&(this.next=c,c.prev=this,this.c=c.v-b,this.gap=c.t-a)},n=function(b,c){var d=i("easing."+b,function(a){this._p1=a||0===a?a:1.70158,this._p2=1.525*this._p1},!0),e=d.prototype=new a;return e.constructor=d,e.getRatio=c,e.config=function(a){return new d(a)},d},o=l("Back",n("BackOut",function(a){return(a-=1)*a*((this._p1+1)*a+this._p1)+1}),n("BackIn",function(a){return a*a*((this._p1+1)*a-this._p1)}),n("BackInOut",function(a){return(a*=2)<1?.5*a*a*((this._p2+1)*a-this._p2):.5*((a-=2)*a*((this._p2+1)*a+this._p2)+2)})),p=i("easing.SlowMo",function(a,b,c){b=b||0===b?b:.7,null==a?a=.7:a>1&&(a=1),this._p=1!==a?b:0,this._p1=(1-a)/2,this._p2=a,this._p3=this._p1+this._p2,this._calcEnd=c===!0},!0),q=p.prototype=new a;return q.constructor=p,q.getRatio=function(a){var b=a+(.5-a)*this._p;return a<this._p1?this._calcEnd?1-(a=1-a/this._p1)*a:b-(a=1-a/this._p1)*a*a*a*b:a>this._p3?this._calcEnd?1-(a=(a-this._p3)/this._p1)*a:b+(a-b)*(a=(a-this._p3)/this._p1)*a*a*a:this._calcEnd?1:b},p.ease=new p(.7,.7),q.config=p.config=function(a,b,c){return new p(a,b,c)},b=i("easing.SteppedEase",function(a){a=a||1,this._p1=1/a,this._p2=a+1},!0),q=b.prototype=new a,q.constructor=b,q.getRatio=function(a){return 0>a?a=0:a>=1&&(a=.999999999),(this._p2*a>>0)*this._p1},q.config=b.config=function(a){return new b(a)},c=i("easing.RoughEase",function(b){b=b||{};for(var c,d,e,f,g,h,i=b.taper||"none",j=[],k=0,l=0|(b.points||20),n=l,o=b.randomize!==!1,p=b.clamp===!0,q=b.template instanceof a?b.template:null,r="number"==typeof b.strength?.4*b.strength:.4;--n>-1;)c=o?Math.random():1/l*n,d=q?q.getRatio(c):c,"none"===i?e=r:"out"===i?(f=1-c,e=f*f*r):"in"===i?e=c*c*r:.5>c?(f=2*c,e=f*f*.5*r):(f=2*(1-c),e=f*f*.5*r),o?d+=Math.random()*e-.5*e:n%2?d+=.5*e:d-=.5*e,p&&(d>1?d=1:0>d&&(d=0)),j[k++]={x:c,y:d};for(j.sort(function(a,b){return a.x-b.x}),h=new m(1,1,null),n=l;--n>-1;)g=j[n],h=new m(g.x,g.y,h);this._prev=new m(0,0,0!==h.t?h:h.next)},!0),q=c.prototype=new a,q.constructor=c,q.getRatio=function(a){var b=this._prev;if(a>b.t){for(;b.next&&a>=b.t;)b=b.next;b=b.prev}else for(;b.prev&&a<=b.t;)b=b.prev;return this._prev=b,b.v+(a-b.t)/b.gap*b.c},q.config=function(a){return new c(a)},c.ease=new c,l("Bounce",j("BounceOut",function(a){return 1/2.75>a?7.5625*a*a:2/2.75>a?7.5625*(a-=1.5/2.75)*a+.75:2.5/2.75>a?7.5625*(a-=2.25/2.75)*a+.9375:7.5625*(a-=2.625/2.75)*a+.984375}),j("BounceIn",function(a){return(a=1-a)<1/2.75?1-7.5625*a*a:2/2.75>a?1-(7.5625*(a-=1.5/2.75)*a+.75):2.5/2.75>a?1-(7.5625*(a-=2.25/2.75)*a+.9375):1-(7.5625*(a-=2.625/2.75)*a+.984375)}),j("BounceInOut",function(a){var b=.5>a;return a=b?1-2*a:2*a-1,a=1/2.75>a?7.5625*a*a:2/2.75>a?7.5625*(a-=1.5/2.75)*a+.75:2.5/2.75>a?7.5625*(a-=2.25/2.75)*a+.9375:7.5625*(a-=2.625/2.75)*a+.984375,b?.5*(1-a):.5*a+.5})),l("Circ",j("CircOut",function(a){return Math.sqrt(1-(a-=1)*a)}),j("CircIn",function(a){return-(Math.sqrt(1-a*a)-1)}),j("CircInOut",function(a){return(a*=2)<1?-.5*(Math.sqrt(1-a*a)-1):.5*(Math.sqrt(1-(a-=2)*a)+1)})),d=function(b,c,d){var e=i("easing."+b,function(a,b){this._p1=a>=1?a:1,this._p2=(b||d)/(1>a?a:1),this._p3=this._p2/g*(Math.asin(1/this._p1)||0),this._p2=g/this._p2},!0),f=e.prototype=new a;return f.constructor=e,f.getRatio=c,f.config=function(a,b){return new e(a,b)},e},l("Elastic",d("ElasticOut",function(a){return this._p1*Math.pow(2,-10*a)*Math.sin((a-this._p3)*this._p2)+1},.3),d("ElasticIn",function(a){return-(this._p1*Math.pow(2,10*(a-=1))*Math.sin((a-this._p3)*this._p2))},.3),d("ElasticInOut",function(a){return(a*=2)<1?-.5*(this._p1*Math.pow(2,10*(a-=1))*Math.sin((a-this._p3)*this._p2)):this._p1*Math.pow(2,-10*(a-=1))*Math.sin((a-this._p3)*this._p2)*.5+1},.45)),l("Expo",j("ExpoOut",function(a){return 1-Math.pow(2,-10*a)}),j("ExpoIn",function(a){return Math.pow(2,10*(a-1))-.001}),j("ExpoInOut",function(a){return(a*=2)<1?.5*Math.pow(2,10*(a-1)):.5*(2-Math.pow(2,-10*(a-1)))})),l("Sine",j("SineOut",function(a){return Math.sin(a*h)}),j("SineIn",function(a){return-Math.cos(a*h)+1}),j("SineInOut",function(a){return-.5*(Math.cos(Math.PI*a)-1)})),i("easing.EaseLookup",{find:function(b){return a.map[b]}},!0),k(e.SlowMo,"SlowMo","ease,"),k(c,"RoughEase","ease,"),k(b,"SteppedEase","ease,"),o},!0)}),_gsScope._gsDefine&&_gsScope._gsQueue.pop()(),function(){"use strict";var a=function(){return _gsScope.GreenSockGlobals||_gsScope};"function"==typeof define&&define.amd?define(["../TweenLite"],a):"undefined"!=typeof module&&module.exports&&(require("../TweenLite.js"),module.exports=a())}();

/* CSS PLUGIN */
/*!
 * VERSION: 1.18.5
 * DATE: 2016-05-24
 * UPDATES AND DOCS AT: http://greensock.com
 *
 * @license Copyright (c) 2008-2016, GreenSock. All rights reserved.
 * This work is subject to the terms at http://greensock.com/standard-license or for
 * Club GreenSock members, the software agreement that was issued with your membership.
 * 
 * @author: Jack Doyle, jack@greensock.com
 */
var _gsScope="undefined"!=typeof module&&module.exports&&"undefined"!=typeof global?global:this||window;(_gsScope._gsQueue||(_gsScope._gsQueue=[])).push(function(){"use strict";_gsScope._gsDefine("plugins.CSSPlugin",["plugins.TweenPlugin","TweenLite"],function(a,b){var c,d,e,f,g=function(){a.call(this,"css"),this._overwriteProps.length=0,this.setRatio=g.prototype.setRatio},h=_gsScope._gsDefine.globals,i={},j=g.prototype=new a("css");j.constructor=g,g.version="1.18.5",g.API=2,g.defaultTransformPerspective=0,g.defaultSkewType="compensated",g.defaultSmoothOrigin=!0,j="px",g.suffixMap={top:j,right:j,bottom:j,left:j,width:j,height:j,fontSize:j,padding:j,margin:j,perspective:j,lineHeight:""};var k,l,m,n,o,p,q=/(?:\-|\.|\b)(\d|\.|e\-)+/g,r=/(?:\d|\-\d|\.\d|\-\.\d|\+=\d|\-=\d|\+=.\d|\-=\.\d)+/g,s=/(?:\+=|\-=|\-|\b)[\d\-\.]+[a-zA-Z0-9]*(?:%|\b)/gi,t=/(?![+-]?\d*\.?\d+|[+-]|e[+-]\d+)[^0-9]/g,u=/(?:\d|\-|\+|=|#|\.)*/g,v=/opacity *= *([^)]*)/i,w=/opacity:([^;]*)/i,x=/alpha\(opacity *=.+?\)/i,y=/^(rgb|hsl)/,z=/([A-Z])/g,A=/-([a-z])/gi,B=/(^(?:url\(\"|url\())|(?:(\"\))$|\)$)/gi,C=function(a,b){return b.toUpperCase()},D=/(?:Left|Right|Width)/i,E=/(M11|M12|M21|M22)=[\d\-\.e]+/gi,F=/progid\:DXImageTransform\.Microsoft\.Matrix\(.+?\)/i,G=/,(?=[^\)]*(?:\(|$))/gi,H=/[\s,\(]/i,I=Math.PI/180,J=180/Math.PI,K={},L=document,M=function(a){return L.createElementNS?L.createElementNS("http://www.w3.org/1999/xhtml",a):L.createElement(a)},N=M("div"),O=M("img"),P=g._internals={_specialProps:i},Q=navigator.userAgent,R=function(){var a=Q.indexOf("Android"),b=M("a");return m=-1!==Q.indexOf("Safari")&&-1===Q.indexOf("Chrome")&&(-1===a||Number(Q.substr(a+8,1))>3),o=m&&Number(Q.substr(Q.indexOf("Version/")+8,1))<6,n=-1!==Q.indexOf("Firefox"),(/MSIE ([0-9]{1,}[\.0-9]{0,})/.exec(Q)||/Trident\/.*rv:([0-9]{1,}[\.0-9]{0,})/.exec(Q))&&(p=parseFloat(RegExp.$1)),b?(b.style.cssText="top:1px;opacity:.55;",/^0.55/.test(b.style.opacity)):!1}(),S=function(a){return v.test("string"==typeof a?a:(a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100:1},T=function(a){window.console&&console.log(a)},U="",V="",W=function(a,b){b=b||N;var c,d,e=b.style;if(void 0!==e[a])return a;for(a=a.charAt(0).toUpperCase()+a.substr(1),c=["O","Moz","ms","Ms","Webkit"],d=5;--d>-1&&void 0===e[c[d]+a];);return d>=0?(V=3===d?"ms":c[d],U="-"+V.toLowerCase()+"-",V+a):null},X=L.defaultView?L.defaultView.getComputedStyle:function(){},Y=g.getStyle=function(a,b,c,d,e){var f;return R||"opacity"!==b?(!d&&a.style[b]?f=a.style[b]:(c=c||X(a))?f=c[b]||c.getPropertyValue(b)||c.getPropertyValue(b.replace(z,"-$1").toLowerCase()):a.currentStyle&&(f=a.currentStyle[b]),null==e||f&&"none"!==f&&"auto"!==f&&"auto auto"!==f?f:e):S(a)},Z=P.convertToPixels=function(a,c,d,e,f){if("px"===e||!e)return d;if("auto"===e||!d)return 0;var h,i,j,k=D.test(c),l=a,m=N.style,n=0>d,o=1===d;if(n&&(d=-d),o&&(d*=100),"%"===e&&-1!==c.indexOf("border"))h=d/100*(k?a.clientWidth:a.clientHeight);else{if(m.cssText="border:0 solid red;position:"+Y(a,"position")+";line-height:0;","%"!==e&&l.appendChild&&"v"!==e.charAt(0)&&"rem"!==e)m[k?"borderLeftWidth":"borderTopWidth"]=d+e;else{if(l=a.parentNode||L.body,i=l._gsCache,j=b.ticker.frame,i&&k&&i.time===j)return i.width*d/100;m[k?"width":"height"]=d+e}l.appendChild(N),h=parseFloat(N[k?"offsetWidth":"offsetHeight"]),l.removeChild(N),k&&"%"===e&&g.cacheWidths!==!1&&(i=l._gsCache=l._gsCache||{},i.time=j,i.width=h/d*100),0!==h||f||(h=Z(a,c,d,e,!0))}return o&&(h/=100),n?-h:h},$=P.calculateOffset=function(a,b,c){if("absolute"!==Y(a,"position",c))return 0;var d="left"===b?"Left":"Top",e=Y(a,"margin"+d,c);return a["offset"+d]-(Z(a,b,parseFloat(e),e.replace(u,""))||0)},_=function(a,b){var c,d,e,f={};if(b=b||X(a,null))if(c=b.length)for(;--c>-1;)e=b[c],(-1===e.indexOf("-transform")||Aa===e)&&(f[e.replace(A,C)]=b.getPropertyValue(e));else for(c in b)(-1===c.indexOf("Transform")||za===c)&&(f[c]=b[c]);else if(b=a.currentStyle||a.style)for(c in b)"string"==typeof c&&void 0===f[c]&&(f[c.replace(A,C)]=b[c]);return R||(f.opacity=S(a)),d=Na(a,b,!1),f.rotation=d.rotation,f.skewX=d.skewX,f.scaleX=d.scaleX,f.scaleY=d.scaleY,f.x=d.x,f.y=d.y,Ca&&(f.z=d.z,f.rotationX=d.rotationX,f.rotationY=d.rotationY,f.scaleZ=d.scaleZ),f.filters&&delete f.filters,f},aa=function(a,b,c,d,e){var f,g,h,i={},j=a.style;for(g in c)"cssText"!==g&&"length"!==g&&isNaN(g)&&(b[g]!==(f=c[g])||e&&e[g])&&-1===g.indexOf("Origin")&&("number"==typeof f||"string"==typeof f)&&(i[g]="auto"!==f||"left"!==g&&"top"!==g?""!==f&&"auto"!==f&&"none"!==f||"string"!=typeof b[g]||""===b[g].replace(t,"")?f:0:$(a,g),void 0!==j[g]&&(h=new pa(j,g,j[g],h)));if(d)for(g in d)"className"!==g&&(i[g]=d[g]);return{difs:i,firstMPT:h}},ba={width:["Left","Right"],height:["Top","Bottom"]},ca=["marginLeft","marginRight","marginTop","marginBottom"],da=function(a,b,c){if("svg"===(a.nodeName+"").toLowerCase())return(c||X(a))[b]||0;if(a.getBBox&&Ka(a))return a.getBBox()[b]||0;var d=parseFloat("width"===b?a.offsetWidth:a.offsetHeight),e=ba[b],f=e.length;for(c=c||X(a,null);--f>-1;)d-=parseFloat(Y(a,"padding"+e[f],c,!0))||0,d-=parseFloat(Y(a,"border"+e[f]+"Width",c,!0))||0;return d},ea=function(a,b){if("contain"===a||"auto"===a||"auto auto"===a)return a+" ";(null==a||""===a)&&(a="0 0");var c,d=a.split(" "),e=-1!==a.indexOf("left")?"0%":-1!==a.indexOf("right")?"100%":d[0],f=-1!==a.indexOf("top")?"0%":-1!==a.indexOf("bottom")?"100%":d[1];if(d.length>3&&!b){for(d=a.split(", ").join(",").split(","),a=[],c=0;c<d.length;c++)a.push(ea(d[c]));return a.join(",")}return null==f?f="center"===e?"50%":"0":"center"===f&&(f="50%"),("center"===e||isNaN(parseFloat(e))&&-1===(e+"").indexOf("="))&&(e="50%"),a=e+" "+f+(d.length>2?" "+d[2]:""),b&&(b.oxp=-1!==e.indexOf("%"),b.oyp=-1!==f.indexOf("%"),b.oxr="="===e.charAt(1),b.oyr="="===f.charAt(1),b.ox=parseFloat(e.replace(t,"")),b.oy=parseFloat(f.replace(t,"")),b.v=a),b||a},fa=function(a,b){return"string"==typeof a&&"="===a.charAt(1)?parseInt(a.charAt(0)+"1",10)*parseFloat(a.substr(2)):parseFloat(a)-parseFloat(b)||0},ga=function(a,b){return null==a?b:"string"==typeof a&&"="===a.charAt(1)?parseInt(a.charAt(0)+"1",10)*parseFloat(a.substr(2))+b:parseFloat(a)||0},ha=function(a,b,c,d){var e,f,g,h,i,j=1e-6;return null==a?h=b:"number"==typeof a?h=a:(e=360,f=a.split("_"),i="="===a.charAt(1),g=(i?parseInt(a.charAt(0)+"1",10)*parseFloat(f[0].substr(2)):parseFloat(f[0]))*(-1===a.indexOf("rad")?1:J)-(i?0:b),f.length&&(d&&(d[c]=b+g),-1!==a.indexOf("short")&&(g%=e,g!==g%(e/2)&&(g=0>g?g+e:g-e)),-1!==a.indexOf("_cw")&&0>g?g=(g+9999999999*e)%e-(g/e|0)*e:-1!==a.indexOf("ccw")&&g>0&&(g=(g-9999999999*e)%e-(g/e|0)*e)),h=b+g),j>h&&h>-j&&(h=0),h},ia={aqua:[0,255,255],lime:[0,255,0],silver:[192,192,192],black:[0,0,0],maroon:[128,0,0],teal:[0,128,128],blue:[0,0,255],navy:[0,0,128],white:[255,255,255],fuchsia:[255,0,255],olive:[128,128,0],yellow:[255,255,0],orange:[255,165,0],gray:[128,128,128],purple:[128,0,128],green:[0,128,0],red:[255,0,0],pink:[255,192,203],cyan:[0,255,255],transparent:[255,255,255,0]},ja=function(a,b,c){return a=0>a?a+1:a>1?a-1:a,255*(1>6*a?b+(c-b)*a*6:.5>a?c:2>3*a?b+(c-b)*(2/3-a)*6:b)+.5|0},ka=g.parseColor=function(a,b){var c,d,e,f,g,h,i,j,k,l,m;if(a)if("number"==typeof a)c=[a>>16,a>>8&255,255&a];else{if(","===a.charAt(a.length-1)&&(a=a.substr(0,a.length-1)),ia[a])c=ia[a];else if("#"===a.charAt(0))4===a.length&&(d=a.charAt(1),e=a.charAt(2),f=a.charAt(3),a="#"+d+d+e+e+f+f),a=parseInt(a.substr(1),16),c=[a>>16,a>>8&255,255&a];else if("hsl"===a.substr(0,3))if(c=m=a.match(q),b){if(-1!==a.indexOf("="))return a.match(r)}else g=Number(c[0])%360/360,h=Number(c[1])/100,i=Number(c[2])/100,e=.5>=i?i*(h+1):i+h-i*h,d=2*i-e,c.length>3&&(c[3]=Number(a[3])),c[0]=ja(g+1/3,d,e),c[1]=ja(g,d,e),c[2]=ja(g-1/3,d,e);else c=a.match(q)||ia.transparent;c[0]=Number(c[0]),c[1]=Number(c[1]),c[2]=Number(c[2]),c.length>3&&(c[3]=Number(c[3]))}else c=ia.black;return b&&!m&&(d=c[0]/255,e=c[1]/255,f=c[2]/255,j=Math.max(d,e,f),k=Math.min(d,e,f),i=(j+k)/2,j===k?g=h=0:(l=j-k,h=i>.5?l/(2-j-k):l/(j+k),g=j===d?(e-f)/l+(f>e?6:0):j===e?(f-d)/l+2:(d-e)/l+4,g*=60),c[0]=g+.5|0,c[1]=100*h+.5|0,c[2]=100*i+.5|0),c},la=function(a,b){var c,d,e,f=a.match(ma)||[],g=0,h=f.length?"":a;for(c=0;c<f.length;c++)d=f[c],e=a.substr(g,a.indexOf(d,g)-g),g+=e.length+d.length,d=ka(d,b),3===d.length&&d.push(1),h+=e+(b?"hsla("+d[0]+","+d[1]+"%,"+d[2]+"%,"+d[3]:"rgba("+d.join(","))+")";return h+a.substr(g)},ma="(?:\\b(?:(?:rgb|rgba|hsl|hsla)\\(.+?\\))|\\B#(?:[0-9a-f]{3}){1,2}\\b";for(j in ia)ma+="|"+j+"\\b";ma=new RegExp(ma+")","gi"),g.colorStringFilter=function(a){var b,c=a[0]+a[1];ma.test(c)&&(b=-1!==c.indexOf("hsl(")||-1!==c.indexOf("hsla("),a[0]=la(a[0],b),a[1]=la(a[1],b)),ma.lastIndex=0},b.defaultStringFilter||(b.defaultStringFilter=g.colorStringFilter);var na=function(a,b,c,d){if(null==a)return function(a){return a};var e,f=b?(a.match(ma)||[""])[0]:"",g=a.split(f).join("").match(s)||[],h=a.substr(0,a.indexOf(g[0])),i=")"===a.charAt(a.length-1)?")":"",j=-1!==a.indexOf(" ")?" ":",",k=g.length,l=k>0?g[0].replace(q,""):"";return k?e=b?function(a){var b,m,n,o;if("number"==typeof a)a+=l;else if(d&&G.test(a)){for(o=a.replace(G,"|").split("|"),n=0;n<o.length;n++)o[n]=e(o[n]);return o.join(",")}if(b=(a.match(ma)||[f])[0],m=a.split(b).join("").match(s)||[],n=m.length,k>n--)for(;++n<k;)m[n]=c?m[(n-1)/2|0]:g[n];return h+m.join(j)+j+b+i+(-1!==a.indexOf("inset")?" inset":"")}:function(a){var b,f,m;if("number"==typeof a)a+=l;else if(d&&G.test(a)){for(f=a.replace(G,"|").split("|"),m=0;m<f.length;m++)f[m]=e(f[m]);return f.join(",")}if(b=a.match(s)||[],m=b.length,k>m--)for(;++m<k;)b[m]=c?b[(m-1)/2|0]:g[m];return h+b.join(j)+i}:function(a){return a}},oa=function(a){return a=a.split(","),function(b,c,d,e,f,g,h){var i,j=(c+"").split(" ");for(h={},i=0;4>i;i++)h[a[i]]=j[i]=j[i]||j[(i-1)/2>>0];return e.parse(b,h,f,g)}},pa=(P._setPluginRatio=function(a){this.plugin.setRatio(a);for(var b,c,d,e,f,g=this.data,h=g.proxy,i=g.firstMPT,j=1e-6;i;)b=h[i.v],i.r?b=Math.round(b):j>b&&b>-j&&(b=0),i.t[i.p]=b,i=i._next;if(g.autoRotate&&(g.autoRotate.rotation=h.rotation),1===a||0===a)for(i=g.firstMPT,f=1===a?"e":"b";i;){if(c=i.t,c.type){if(1===c.type){for(e=c.xs0+c.s+c.xs1,d=1;d<c.l;d++)e+=c["xn"+d]+c["xs"+(d+1)];c[f]=e}}else c[f]=c.s+c.xs0;i=i._next}},function(a,b,c,d,e){this.t=a,this.p=b,this.v=c,this.r=e,d&&(d._prev=this,this._next=d)}),qa=(P._parseToProxy=function(a,b,c,d,e,f){var g,h,i,j,k,l=d,m={},n={},o=c._transform,p=K;for(c._transform=null,K=b,d=k=c.parse(a,b,d,e),K=p,f&&(c._transform=o,l&&(l._prev=null,l._prev&&(l._prev._next=null)));d&&d!==l;){if(d.type<=1&&(h=d.p,n[h]=d.s+d.c,m[h]=d.s,f||(j=new pa(d,"s",h,j,d.r),d.c=0),1===d.type))for(g=d.l;--g>0;)i="xn"+g,h=d.p+"_"+i,n[h]=d.data[i],m[h]=d[i],f||(j=new pa(d,i,h,j,d.rxp[i]));d=d._next}return{proxy:m,end:n,firstMPT:j,pt:k}},P.CSSPropTween=function(a,b,d,e,g,h,i,j,k,l,m){this.t=a,this.p=b,this.s=d,this.c=e,this.n=i||b,a instanceof qa||f.push(this.n),this.r=j,this.type=h||0,k&&(this.pr=k,c=!0),this.b=void 0===l?d:l,this.e=void 0===m?d+e:m,g&&(this._next=g,g._prev=this)}),ra=function(a,b,c,d,e,f){var g=new qa(a,b,c,d-c,e,-1,f);return g.b=c,g.e=g.xs0=d,g},sa=g.parseComplex=function(a,b,c,d,e,f,h,i,j,l){c=c||f||"",h=new qa(a,b,0,0,h,l?2:1,null,!1,i,c,d),d+="",e&&ma.test(d+c)&&(d=[c,d],g.colorStringFilter(d),c=d[0],d=d[1]);var m,n,o,p,s,t,u,v,w,x,y,z,A,B=c.split(", ").join(",").split(" "),C=d.split(", ").join(",").split(" "),D=B.length,E=k!==!1;for((-1!==d.indexOf(",")||-1!==c.indexOf(","))&&(B=B.join(" ").replace(G,", ").split(" "),C=C.join(" ").replace(G,", ").split(" "),D=B.length),D!==C.length&&(B=(f||"").split(" "),D=B.length),h.plugin=j,h.setRatio=l,ma.lastIndex=0,m=0;D>m;m++)if(p=B[m],s=C[m],v=parseFloat(p),v||0===v)h.appendXtra("",v,fa(s,v),s.replace(r,""),E&&-1!==s.indexOf("px"),!0);else if(e&&ma.test(p))z=s.indexOf(")")+1,z=")"+(z?s.substr(z):""),A=-1!==s.indexOf("hsl")&&R,p=ka(p,A),s=ka(s,A),w=p.length+s.length>6,w&&!R&&0===s[3]?(h["xs"+h.l]+=h.l?" transparent":"transparent",h.e=h.e.split(C[m]).join("transparent")):(R||(w=!1),A?h.appendXtra(w?"hsla(":"hsl(",p[0],fa(s[0],p[0]),",",!1,!0).appendXtra("",p[1],fa(s[1],p[1]),"%,",!1).appendXtra("",p[2],fa(s[2],p[2]),w?"%,":"%"+z,!1):h.appendXtra(w?"rgba(":"rgb(",p[0],s[0]-p[0],",",!0,!0).appendXtra("",p[1],s[1]-p[1],",",!0).appendXtra("",p[2],s[2]-p[2],w?",":z,!0),w&&(p=p.length<4?1:p[3],h.appendXtra("",p,(s.length<4?1:s[3])-p,z,!1))),ma.lastIndex=0;else if(t=p.match(q)){if(u=s.match(r),!u||u.length!==t.length)return h;for(o=0,n=0;n<t.length;n++)y=t[n],x=p.indexOf(y,o),h.appendXtra(p.substr(o,x-o),Number(y),fa(u[n],y),"",E&&"px"===p.substr(x+y.length,2),0===n),o=x+y.length;h["xs"+h.l]+=p.substr(o)}else h["xs"+h.l]+=h.l||h["xs"+h.l]?" "+s:s;if(-1!==d.indexOf("=")&&h.data){for(z=h.xs0+h.data.s,m=1;m<h.l;m++)z+=h["xs"+m]+h.data["xn"+m];h.e=z+h["xs"+m]}return h.l||(h.type=-1,h.xs0=h.e),h.xfirst||h},ta=9;for(j=qa.prototype,j.l=j.pr=0;--ta>0;)j["xn"+ta]=0,j["xs"+ta]="";j.xs0="",j._next=j._prev=j.xfirst=j.data=j.plugin=j.setRatio=j.rxp=null,j.appendXtra=function(a,b,c,d,e,f){var g=this,h=g.l;return g["xs"+h]+=f&&(h||g["xs"+h])?" "+a:a||"",c||0===h||g.plugin?(g.l++,g.type=g.setRatio?2:1,g["xs"+g.l]=d||"",h>0?(g.data["xn"+h]=b+c,g.rxp["xn"+h]=e,g["xn"+h]=b,g.plugin||(g.xfirst=new qa(g,"xn"+h,b,c,g.xfirst||g,0,g.n,e,g.pr),g.xfirst.xs0=0),g):(g.data={s:b+c},g.rxp={},g.s=b,g.c=c,g.r=e,g)):(g["xs"+h]+=b+(d||""),g)};var ua=function(a,b){b=b||{},this.p=b.prefix?W(a)||a:a,i[a]=i[this.p]=this,this.format=b.formatter||na(b.defaultValue,b.color,b.collapsible,b.multi),b.parser&&(this.parse=b.parser),this.clrs=b.color,this.multi=b.multi,this.keyword=b.keyword,this.dflt=b.defaultValue,this.pr=b.priority||0},va=P._registerComplexSpecialProp=function(a,b,c){"object"!=typeof b&&(b={parser:c});var d,e,f=a.split(","),g=b.defaultValue;for(c=c||[g],d=0;d<f.length;d++)b.prefix=0===d&&b.prefix,b.defaultValue=c[d]||g,e=new ua(f[d],b)},wa=function(a){if(!i[a]){var b=a.charAt(0).toUpperCase()+a.substr(1)+"Plugin";va(a,{parser:function(a,c,d,e,f,g,j){var k=h.com.greensock.plugins[b];return k?(k._cssRegister(),i[d].parse(a,c,d,e,f,g,j)):(T("Error: "+b+" js file not loaded."),f)}})}};j=ua.prototype,j.parseComplex=function(a,b,c,d,e,f){var g,h,i,j,k,l,m=this.keyword;if(this.multi&&(G.test(c)||G.test(b)?(h=b.replace(G,"|").split("|"),i=c.replace(G,"|").split("|")):m&&(h=[b],i=[c])),i){for(j=i.length>h.length?i.length:h.length,g=0;j>g;g++)b=h[g]=h[g]||this.dflt,c=i[g]=i[g]||this.dflt,m&&(k=b.indexOf(m),l=c.indexOf(m),k!==l&&(-1===l?h[g]=h[g].split(m).join(""):-1===k&&(h[g]+=" "+m)));b=h.join(", "),c=i.join(", ")}return sa(a,this.p,b,c,this.clrs,this.dflt,d,this.pr,e,f)},j.parse=function(a,b,c,d,f,g,h){return this.parseComplex(a.style,this.format(Y(a,this.p,e,!1,this.dflt)),this.format(b),f,g)},g.registerSpecialProp=function(a,b,c){va(a,{parser:function(a,d,e,f,g,h,i){var j=new qa(a,e,0,0,g,2,e,!1,c);return j.plugin=h,j.setRatio=b(a,d,f._tween,e),j},priority:c})},g.useSVGTransformAttr=m||n;var xa,ya="scaleX,scaleY,scaleZ,x,y,z,skewX,skewY,rotation,rotationX,rotationY,perspective,xPercent,yPercent".split(","),za=W("transform"),Aa=U+"transform",Ba=W("transformOrigin"),Ca=null!==W("perspective"),Da=P.Transform=function(){this.perspective=parseFloat(g.defaultTransformPerspective)||0,this.force3D=g.defaultForce3D!==!1&&Ca?g.defaultForce3D||"auto":!1},Ea=window.SVGElement,Fa=function(a,b,c){var d,e=L.createElementNS("http://www.w3.org/2000/svg",a),f=/([a-z])([A-Z])/g;for(d in c)e.setAttributeNS(null,d.replace(f,"$1-$2").toLowerCase(),c[d]);return b.appendChild(e),e},Ga=L.documentElement,Ha=function(){var a,b,c,d=p||/Android/i.test(Q)&&!window.chrome;return L.createElementNS&&!d&&(a=Fa("svg",Ga),b=Fa("rect",a,{width:100,height:50,x:100}),c=b.getBoundingClientRect().width,b.style[Ba]="50% 50%",b.style[za]="scaleX(0.5)",d=c===b.getBoundingClientRect().width&&!(n&&Ca),Ga.removeChild(a)),d}(),Ia=function(a,b,c,d,e,f){var h,i,j,k,l,m,n,o,p,q,r,s,t,u,v=a._gsTransform,w=Ma(a,!0);v&&(t=v.xOrigin,u=v.yOrigin),(!d||(h=d.split(" ")).length<2)&&(n=a.getBBox(),b=ea(b).split(" "),h=[(-1!==b[0].indexOf("%")?parseFloat(b[0])/100*n.width:parseFloat(b[0]))+n.x,(-1!==b[1].indexOf("%")?parseFloat(b[1])/100*n.height:parseFloat(b[1]))+n.y]),c.xOrigin=k=parseFloat(h[0]),c.yOrigin=l=parseFloat(h[1]),d&&w!==La&&(m=w[0],n=w[1],o=w[2],p=w[3],q=w[4],r=w[5],s=m*p-n*o,i=k*(p/s)+l*(-o/s)+(o*r-p*q)/s,j=k*(-n/s)+l*(m/s)-(m*r-n*q)/s,k=c.xOrigin=h[0]=i,l=c.yOrigin=h[1]=j),v&&(f&&(c.xOffset=v.xOffset,c.yOffset=v.yOffset,v=c),e||e!==!1&&g.defaultSmoothOrigin!==!1?(i=k-t,j=l-u,v.xOffset+=i*w[0]+j*w[2]-i,v.yOffset+=i*w[1]+j*w[3]-j):v.xOffset=v.yOffset=0),f||a.setAttribute("data-svg-origin",h.join(" "))},Ja=function(a){try{return a.getBBox()}catch(a){}},Ka=function(a){return!!(Ea&&a.getBBox&&a.getCTM&&Ja(a)&&(!a.parentNode||a.parentNode.getBBox&&a.parentNode.getCTM))},La=[1,0,0,1,0,0],Ma=function(a,b){var c,d,e,f,g,h,i=a._gsTransform||new Da,j=1e5,k=a.style;if(za?d=Y(a,Aa,null,!0):a.currentStyle&&(d=a.currentStyle.filter.match(E),d=d&&4===d.length?[d[0].substr(4),Number(d[2].substr(4)),Number(d[1].substr(4)),d[3].substr(4),i.x||0,i.y||0].join(","):""),c=!d||"none"===d||"matrix(1, 0, 0, 1, 0, 0)"===d,c&&za&&((h="none"===X(a).display)||!a.parentNode)&&(h&&(f=k.display,k.display="block"),a.parentNode||(g=1,Ga.appendChild(a)),d=Y(a,Aa,null,!0),c=!d||"none"===d||"matrix(1, 0, 0, 1, 0, 0)"===d,f?k.display=f:h&&Ra(k,"display"),g&&Ga.removeChild(a)),(i.svg||a.getBBox&&Ka(a))&&(c&&-1!==(k[za]+"").indexOf("matrix")&&(d=k[za],c=0),e=a.getAttribute("transform"),c&&e&&(-1!==e.indexOf("matrix")?(d=e,c=0):-1!==e.indexOf("translate")&&(d="matrix(1,0,0,1,"+e.match(/(?:\-|\b)[\d\-\.e]+\b/gi).join(",")+")",c=0))),c)return La;for(e=(d||"").match(q)||[],ta=e.length;--ta>-1;)f=Number(e[ta]),e[ta]=(g=f-(f|=0))?(g*j+(0>g?-.5:.5)|0)/j+f:f;return b&&e.length>6?[e[0],e[1],e[4],e[5],e[12],e[13]]:e},Na=P.getTransform=function(a,c,d,e){if(a._gsTransform&&d&&!e)return a._gsTransform;var f,h,i,j,k,l,m=d?a._gsTransform||new Da:new Da,n=m.scaleX<0,o=2e-5,p=1e5,q=Ca?parseFloat(Y(a,Ba,c,!1,"0 0 0").split(" ")[2])||m.zOrigin||0:0,r=parseFloat(g.defaultTransformPerspective)||0;if(m.svg=!(!a.getBBox||!Ka(a)),m.svg&&(Ia(a,Y(a,Ba,c,!1,"50% 50%")+"",m,a.getAttribute("data-svg-origin")),xa=g.useSVGTransformAttr||Ha),f=Ma(a),f!==La){if(16===f.length){var s,t,u,v,w,x=f[0],y=f[1],z=f[2],A=f[3],B=f[4],C=f[5],D=f[6],E=f[7],F=f[8],G=f[9],H=f[10],I=f[12],K=f[13],L=f[14],M=f[11],N=Math.atan2(D,H);m.zOrigin&&(L=-m.zOrigin,I=F*L-f[12],K=G*L-f[13],L=H*L+m.zOrigin-f[14]),m.rotationX=N*J,N&&(v=Math.cos(-N),w=Math.sin(-N),s=B*v+F*w,t=C*v+G*w,u=D*v+H*w,F=B*-w+F*v,G=C*-w+G*v,H=D*-w+H*v,M=E*-w+M*v,B=s,C=t,D=u),N=Math.atan2(-z,H),m.rotationY=N*J,N&&(v=Math.cos(-N),w=Math.sin(-N),s=x*v-F*w,t=y*v-G*w,u=z*v-H*w,G=y*w+G*v,H=z*w+H*v,M=A*w+M*v,x=s,y=t,z=u),N=Math.atan2(y,x),m.rotation=N*J,N&&(v=Math.cos(-N),w=Math.sin(-N),x=x*v+B*w,t=y*v+C*w,C=y*-w+C*v,D=z*-w+D*v,y=t),m.rotationX&&Math.abs(m.rotationX)+Math.abs(m.rotation)>359.9&&(m.rotationX=m.rotation=0,m.rotationY=180-m.rotationY),m.scaleX=(Math.sqrt(x*x+y*y)*p+.5|0)/p,m.scaleY=(Math.sqrt(C*C+G*G)*p+.5|0)/p,m.scaleZ=(Math.sqrt(D*D+H*H)*p+.5|0)/p,m.rotationX||m.rotationY?m.skewX=0:(m.skewX=B||C?Math.atan2(B,C)*J+m.rotation:m.skewX||0,Math.abs(m.skewX)>90&&Math.abs(m.skewX)<270&&(n?(m.scaleX*=-1,m.skewX+=m.rotation<=0?180:-180,m.rotation+=m.rotation<=0?180:-180):(m.scaleY*=-1,m.skewX+=m.skewX<=0?180:-180))),m.perspective=M?1/(0>M?-M:M):0,m.x=I,m.y=K,m.z=L,m.svg&&(m.x-=m.xOrigin-(m.xOrigin*x-m.yOrigin*B),m.y-=m.yOrigin-(m.yOrigin*y-m.xOrigin*C))}else if(!Ca||e||!f.length||m.x!==f[4]||m.y!==f[5]||!m.rotationX&&!m.rotationY){var O=f.length>=6,P=O?f[0]:1,Q=f[1]||0,R=f[2]||0,S=O?f[3]:1;m.x=f[4]||0,m.y=f[5]||0,i=Math.sqrt(P*P+Q*Q),j=Math.sqrt(S*S+R*R),k=P||Q?Math.atan2(Q,P)*J:m.rotation||0,l=R||S?Math.atan2(R,S)*J+k:m.skewX||0,Math.abs(l)>90&&Math.abs(l)<270&&(n?(i*=-1,l+=0>=k?180:-180,k+=0>=k?180:-180):(j*=-1,l+=0>=l?180:-180)),m.scaleX=i,m.scaleY=j,m.rotation=k,m.skewX=l,Ca&&(m.rotationX=m.rotationY=m.z=0,m.perspective=r,m.scaleZ=1),m.svg&&(m.x-=m.xOrigin-(m.xOrigin*P+m.yOrigin*R),m.y-=m.yOrigin-(m.xOrigin*Q+m.yOrigin*S))}m.zOrigin=q;for(h in m)m[h]<o&&m[h]>-o&&(m[h]=0)}return d&&(a._gsTransform=m,m.svg&&(xa&&a.style[za]?b.delayedCall(.001,function(){Ra(a.style,za)}):!xa&&a.getAttribute("transform")&&b.delayedCall(.001,function(){a.removeAttribute("transform")}))),m},Oa=function(a){var b,c,d=this.data,e=-d.rotation*I,f=e+d.skewX*I,g=1e5,h=(Math.cos(e)*d.scaleX*g|0)/g,i=(Math.sin(e)*d.scaleX*g|0)/g,j=(Math.sin(f)*-d.scaleY*g|0)/g,k=(Math.cos(f)*d.scaleY*g|0)/g,l=this.t.style,m=this.t.currentStyle;if(m){c=i,i=-j,j=-c,b=m.filter,l.filter="";var n,o,q=this.t.offsetWidth,r=this.t.offsetHeight,s="absolute"!==m.position,t="progid:DXImageTransform.Microsoft.Matrix(M11="+h+", M12="+i+", M21="+j+", M22="+k,w=d.x+q*d.xPercent/100,x=d.y+r*d.yPercent/100;if(null!=d.ox&&(n=(d.oxp?q*d.ox*.01:d.ox)-q/2,o=(d.oyp?r*d.oy*.01:d.oy)-r/2,w+=n-(n*h+o*i),x+=o-(n*j+o*k)),s?(n=q/2,o=r/2,t+=", Dx="+(n-(n*h+o*i)+w)+", Dy="+(o-(n*j+o*k)+x)+")"):t+=", sizingMethod='auto expand')",-1!==b.indexOf("DXImageTransform.Microsoft.Matrix(")?l.filter=b.replace(F,t):l.filter=t+" "+b,(0===a||1===a)&&1===h&&0===i&&0===j&&1===k&&(s&&-1===t.indexOf("Dx=0, Dy=0")||v.test(b)&&100!==parseFloat(RegExp.$1)||-1===b.indexOf(b.indexOf("Alpha"))&&l.removeAttribute("filter")),!s){var y,z,A,B=8>p?1:-1;for(n=d.ieOffsetX||0,o=d.ieOffsetY||0,d.ieOffsetX=Math.round((q-((0>h?-h:h)*q+(0>i?-i:i)*r))/2+w),d.ieOffsetY=Math.round((r-((0>k?-k:k)*r+(0>j?-j:j)*q))/2+x),ta=0;4>ta;ta++)z=ca[ta],y=m[z],c=-1!==y.indexOf("px")?parseFloat(y):Z(this.t,z,parseFloat(y),y.replace(u,""))||0,A=c!==d[z]?2>ta?-d.ieOffsetX:-d.ieOffsetY:2>ta?n-d.ieOffsetX:o-d.ieOffsetY,l[z]=(d[z]=Math.round(c-A*(0===ta||2===ta?1:B)))+"px"}}},Pa=P.set3DTransformRatio=P.setTransformRatio=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,o,p,q,r,s,t,u,v,w,x,y,z=this.data,A=this.t.style,B=z.rotation,C=z.rotationX,D=z.rotationY,E=z.scaleX,F=z.scaleY,G=z.scaleZ,H=z.x,J=z.y,K=z.z,L=z.svg,M=z.perspective,N=z.force3D;if(((1===a||0===a)&&"auto"===N&&(this.tween._totalTime===this.tween._totalDuration||!this.tween._totalTime)||!N)&&!K&&!M&&!D&&!C&&1===G||xa&&L||!Ca)return void(B||z.skewX||L?(B*=I,x=z.skewX*I,y=1e5,b=Math.cos(B)*E,e=Math.sin(B)*E,c=Math.sin(B-x)*-F,f=Math.cos(B-x)*F,x&&"simple"===z.skewType&&(s=Math.tan(x),s=Math.sqrt(1+s*s),c*=s,f*=s,z.skewY&&(b*=s,e*=s)),L&&(H+=z.xOrigin-(z.xOrigin*b+z.yOrigin*c)+z.xOffset,J+=z.yOrigin-(z.xOrigin*e+z.yOrigin*f)+z.yOffset,xa&&(z.xPercent||z.yPercent)&&(p=this.t.getBBox(),H+=.01*z.xPercent*p.width,J+=.01*z.yPercent*p.height),p=1e-6,p>H&&H>-p&&(H=0),p>J&&J>-p&&(J=0)),u=(b*y|0)/y+","+(e*y|0)/y+","+(c*y|0)/y+","+(f*y|0)/y+","+H+","+J+")",L&&xa?this.t.setAttribute("transform","matrix("+u):A[za]=(z.xPercent||z.yPercent?"translate("+z.xPercent+"%,"+z.yPercent+"%) matrix(":"matrix(")+u):A[za]=(z.xPercent||z.yPercent?"translate("+z.xPercent+"%,"+z.yPercent+"%) matrix(":"matrix(")+E+",0,0,"+F+","+H+","+J+")");if(n&&(p=1e-4,p>E&&E>-p&&(E=G=2e-5),p>F&&F>-p&&(F=G=2e-5),!M||z.z||z.rotationX||z.rotationY||(M=0)),B||z.skewX)B*=I,q=b=Math.cos(B),r=e=Math.sin(B),z.skewX&&(B-=z.skewX*I,q=Math.cos(B),r=Math.sin(B),"simple"===z.skewType&&(s=Math.tan(z.skewX*I),s=Math.sqrt(1+s*s),q*=s,r*=s,z.skewY&&(b*=s,e*=s))),c=-r,f=q;else{if(!(D||C||1!==G||M||L))return void(A[za]=(z.xPercent||z.yPercent?"translate("+z.xPercent+"%,"+z.yPercent+"%) translate3d(":"translate3d(")+H+"px,"+J+"px,"+K+"px)"+(1!==E||1!==F?" scale("+E+","+F+")":""));b=f=1,c=e=0}j=1,d=g=h=i=k=l=0,m=M?-1/M:0,o=z.zOrigin,p=1e-6,v=",",w="0",B=D*I,B&&(q=Math.cos(B),r=Math.sin(B),h=-r,k=m*-r,d=b*r,g=e*r,j=q,m*=q,b*=q,e*=q),B=C*I,B&&(q=Math.cos(B),r=Math.sin(B),s=c*q+d*r,t=f*q+g*r,i=j*r,l=m*r,d=c*-r+d*q,g=f*-r+g*q,j*=q,m*=q,c=s,f=t),1!==G&&(d*=G,g*=G,j*=G,m*=G),1!==F&&(c*=F,f*=F,i*=F,l*=F),1!==E&&(b*=E,e*=E,h*=E,k*=E),(o||L)&&(o&&(H+=d*-o,J+=g*-o,K+=j*-o+o),L&&(H+=z.xOrigin-(z.xOrigin*b+z.yOrigin*c)+z.xOffset,J+=z.yOrigin-(z.xOrigin*e+z.yOrigin*f)+z.yOffset),p>H&&H>-p&&(H=w),p>J&&J>-p&&(J=w),p>K&&K>-p&&(K=0)),u=z.xPercent||z.yPercent?"translate("+z.xPercent+"%,"+z.yPercent+"%) matrix3d(":"matrix3d(",u+=(p>b&&b>-p?w:b)+v+(p>e&&e>-p?w:e)+v+(p>h&&h>-p?w:h),u+=v+(p>k&&k>-p?w:k)+v+(p>c&&c>-p?w:c)+v+(p>f&&f>-p?w:f),C||D||1!==G?(u+=v+(p>i&&i>-p?w:i)+v+(p>l&&l>-p?w:l)+v+(p>d&&d>-p?w:d),u+=v+(p>g&&g>-p?w:g)+v+(p>j&&j>-p?w:j)+v+(p>m&&m>-p?w:m)+v):u+=",0,0,0,0,1,0,",u+=H+v+J+v+K+v+(M?1+-K/M:1)+")",A[za]=u};j=Da.prototype,j.x=j.y=j.z=j.skewX=j.skewY=j.rotation=j.rotationX=j.rotationY=j.zOrigin=j.xPercent=j.yPercent=j.xOffset=j.yOffset=0,j.scaleX=j.scaleY=j.scaleZ=1,va("transform,scale,scaleX,scaleY,scaleZ,x,y,z,rotation,rotationX,rotationY,rotationZ,skewX,skewY,shortRotation,shortRotationX,shortRotationY,shortRotationZ,transformOrigin,svgOrigin,transformPerspective,directionalRotation,parseTransform,force3D,skewType,xPercent,yPercent,smoothOrigin",{parser:function(a,b,c,d,f,h,i){if(d._lastParsedTransform===i)return f;d._lastParsedTransform=i;var j,k,l,m,n,o,p,q,r,s=a._gsTransform,t=a.style,u=1e-6,v=ya.length,w=i,x={},y="transformOrigin",z=Na(a,e,!0,i.parseTransform);if(d._transform=z,"string"==typeof w.transform&&za)k=N.style,k[za]=w.transform,k.display="block",k.position="absolute",L.body.appendChild(N),j=Na(N,null,!1),z.svg&&(p=z.xOrigin,q=z.yOrigin,j.x-=z.xOffset,j.y-=z.yOffset,(w.transformOrigin||w.svgOrigin)&&(l={},Ia(a,ea(w.transformOrigin),l,w.svgOrigin,w.smoothOrigin,!0),p=l.xOrigin,q=l.yOrigin,j.x-=l.xOffset-z.xOffset,j.y-=l.yOffset-z.yOffset),(p||q)&&(r=Ma(N,!0),j.x-=p-(p*r[0]+q*r[2]),j.y-=q-(p*r[1]+q*r[3]))),L.body.removeChild(N),j.perspective||(j.perspective=z.perspective),null!=w.xPercent&&(j.xPercent=ga(w.xPercent,z.xPercent)),null!=w.yPercent&&(j.yPercent=ga(w.yPercent,z.yPercent));else if("object"==typeof w){if(j={scaleX:ga(null!=w.scaleX?w.scaleX:w.scale,z.scaleX),scaleY:ga(null!=w.scaleY?w.scaleY:w.scale,z.scaleY),scaleZ:ga(w.scaleZ,z.scaleZ),x:ga(w.x,z.x),y:ga(w.y,z.y),z:ga(w.z,z.z),xPercent:ga(w.xPercent,z.xPercent),yPercent:ga(w.yPercent,z.yPercent),perspective:ga(w.transformPerspective,z.perspective)},o=w.directionalRotation,null!=o)if("object"==typeof o)for(k in o)w[k]=o[k];else w.rotation=o;"string"==typeof w.x&&-1!==w.x.indexOf("%")&&(j.x=0,j.xPercent=ga(w.x,z.xPercent)),"string"==typeof w.y&&-1!==w.y.indexOf("%")&&(j.y=0,j.yPercent=ga(w.y,z.yPercent)),j.rotation=ha("rotation"in w?w.rotation:"shortRotation"in w?w.shortRotation+"_short":"rotationZ"in w?w.rotationZ:z.rotation-z.skewY,z.rotation-z.skewY,"rotation",x),Ca&&(j.rotationX=ha("rotationX"in w?w.rotationX:"shortRotationX"in w?w.shortRotationX+"_short":z.rotationX||0,z.rotationX,"rotationX",x),j.rotationY=ha("rotationY"in w?w.rotationY:"shortRotationY"in w?w.shortRotationY+"_short":z.rotationY||0,z.rotationY,"rotationY",x)),j.skewX=ha(w.skewX,z.skewX-z.skewY),(j.skewY=ha(w.skewY,z.skewY))&&(j.skewX+=j.skewY,j.rotation+=j.skewY)}for(Ca&&null!=w.force3D&&(z.force3D=w.force3D,n=!0),z.skewType=w.skewType||z.skewType||g.defaultSkewType,m=z.force3D||z.z||z.rotationX||z.rotationY||j.z||j.rotationX||j.rotationY||j.perspective,m||null==w.scale||(j.scaleZ=1);--v>-1;)c=ya[v],l=j[c]-z[c],(l>u||-u>l||null!=w[c]||null!=K[c])&&(n=!0,f=new qa(z,c,z[c],l,f),c in x&&(f.e=x[c]),f.xs0=0,f.plugin=h,d._overwriteProps.push(f.n));return l=w.transformOrigin,z.svg&&(l||w.svgOrigin)&&(p=z.xOffset,q=z.yOffset,Ia(a,ea(l),j,w.svgOrigin,w.smoothOrigin),f=ra(z,"xOrigin",(s?z:j).xOrigin,j.xOrigin,f,y),f=ra(z,"yOrigin",(s?z:j).yOrigin,j.yOrigin,f,y),(p!==z.xOffset||q!==z.yOffset)&&(f=ra(z,"xOffset",s?p:z.xOffset,z.xOffset,f,y),f=ra(z,"yOffset",s?q:z.yOffset,z.yOffset,f,y)),l=xa?null:"0px 0px"),(l||Ca&&m&&z.zOrigin)&&(za?(n=!0,c=Ba,l=(l||Y(a,c,e,!1,"50% 50%"))+"",f=new qa(t,c,0,0,f,-1,y),f.b=t[c],f.plugin=h,Ca?(k=z.zOrigin,l=l.split(" "),z.zOrigin=(l.length>2&&(0===k||"0px"!==l[2])?parseFloat(l[2]):k)||0,f.xs0=f.e=l[0]+" "+(l[1]||"50%")+" 0px",f=new qa(z,"zOrigin",0,0,f,-1,f.n),f.b=k,f.xs0=f.e=z.zOrigin):f.xs0=f.e=l):ea(l+"",z)),n&&(d._transformType=z.svg&&xa||!m&&3!==this._transformType?2:3),f},prefix:!0}),va("boxShadow",{defaultValue:"0px 0px 0px 0px #999",prefix:!0,color:!0,multi:!0,keyword:"inset"}),va("borderRadius",{defaultValue:"0px",parser:function(a,b,c,f,g,h){b=this.format(b);var i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y=["borderTopLeftRadius","borderTopRightRadius","borderBottomRightRadius","borderBottomLeftRadius"],z=a.style;for(q=parseFloat(a.offsetWidth),r=parseFloat(a.offsetHeight),i=b.split(" "),j=0;j<y.length;j++)this.p.indexOf("border")&&(y[j]=W(y[j])),m=l=Y(a,y[j],e,!1,"0px"),-1!==m.indexOf(" ")&&(l=m.split(" "),m=l[0],l=l[1]),n=k=i[j],o=parseFloat(m),t=m.substr((o+"").length),u="="===n.charAt(1),u?(p=parseInt(n.charAt(0)+"1",10),n=n.substr(2),p*=parseFloat(n),s=n.substr((p+"").length-(0>p?1:0))||""):(p=parseFloat(n),s=n.substr((p+"").length)),""===s&&(s=d[c]||t),s!==t&&(v=Z(a,"borderLeft",o,t),w=Z(a,"borderTop",o,t),"%"===s?(m=v/q*100+"%",l=w/r*100+"%"):"em"===s?(x=Z(a,"borderLeft",1,"em"),m=v/x+"em",l=w/x+"em"):(m=v+"px",l=w+"px"),u&&(n=parseFloat(m)+p+s,k=parseFloat(l)+p+s)),g=sa(z,y[j],m+" "+l,n+" "+k,!1,"0px",g);return g},prefix:!0,formatter:na("0px 0px 0px 0px",!1,!0)}),va("borderBottomLeftRadius,borderBottomRightRadius,borderTopLeftRadius,borderTopRightRadius",{defaultValue:"0px",parser:function(a,b,c,d,f,g){return sa(a.style,c,this.format(Y(a,c,e,!1,"0px 0px")),this.format(b),!1,"0px",f)},prefix:!0,formatter:na("0px 0px",!1,!0)}),va("backgroundPosition",{defaultValue:"0 0",parser:function(a,b,c,d,f,g){var h,i,j,k,l,m,n="background-position",o=e||X(a,null),q=this.format((o?p?o.getPropertyValue(n+"-x")+" "+o.getPropertyValue(n+"-y"):o.getPropertyValue(n):a.currentStyle.backgroundPositionX+" "+a.currentStyle.backgroundPositionY)||"0 0"),r=this.format(b);if(-1!==q.indexOf("%")!=(-1!==r.indexOf("%"))&&r.split(",").length<2&&(m=Y(a,"backgroundImage").replace(B,""),m&&"none"!==m)){for(h=q.split(" "),i=r.split(" "),O.setAttribute("src",m),j=2;--j>-1;)q=h[j],k=-1!==q.indexOf("%"),k!==(-1!==i[j].indexOf("%"))&&(l=0===j?a.offsetWidth-O.width:a.offsetHeight-O.height,h[j]=k?parseFloat(q)/100*l+"px":parseFloat(q)/l*100+"%");q=h.join(" ")}return this.parseComplex(a.style,q,r,f,g)},formatter:ea}),va("backgroundSize",{defaultValue:"0 0",formatter:ea}),va("perspective",{defaultValue:"0px",prefix:!0}),va("perspectiveOrigin",{defaultValue:"50% 50%",prefix:!0}),va("transformStyle",{prefix:!0}),va("backfaceVisibility",{prefix:!0}),va("userSelect",{prefix:!0}),va("margin",{parser:oa("marginTop,marginRight,marginBottom,marginLeft")}),va("padding",{parser:oa("paddingTop,paddingRight,paddingBottom,paddingLeft")}),va("clip",{defaultValue:"rect(0px,0px,0px,0px)",parser:function(a,b,c,d,f,g){var h,i,j;return 9>p?(i=a.currentStyle,j=8>p?" ":",",h="rect("+i.clipTop+j+i.clipRight+j+i.clipBottom+j+i.clipLeft+")",b=this.format(b).split(",").join(j)):(h=this.format(Y(a,this.p,e,!1,this.dflt)),b=this.format(b)),this.parseComplex(a.style,h,b,f,g)}}),va("textShadow",{defaultValue:"0px 0px 0px #999",color:!0,multi:!0}),va("autoRound,strictUnits",{parser:function(a,b,c,d,e){return e}}),va("border",{defaultValue:"0px solid #000",parser:function(a,b,c,d,f,g){var h=Y(a,"borderTopWidth",e,!1,"0px"),i=this.format(b).split(" "),j=i[0].replace(u,"");return"px"!==j&&(h=parseFloat(h)/Z(a,"borderTopWidth",1,j)+j),this.parseComplex(a.style,this.format(h+" "+Y(a,"borderTopStyle",e,!1,"solid")+" "+Y(a,"borderTopColor",e,!1,"#000")),i.join(" "),f,g)},color:!0,formatter:function(a){var b=a.split(" ");return b[0]+" "+(b[1]||"solid")+" "+(a.match(ma)||["#000"])[0]}}),va("borderWidth",{parser:oa("borderTopWidth,borderRightWidth,borderBottomWidth,borderLeftWidth")}),va("float,cssFloat,styleFloat",{parser:function(a,b,c,d,e,f){var g=a.style,h="cssFloat"in g?"cssFloat":"styleFloat";return new qa(g,h,0,0,e,-1,c,!1,0,g[h],b)}});var Qa=function(a){var b,c=this.t,d=c.filter||Y(this.data,"filter")||"",e=this.s+this.c*a|0;100===e&&(-1===d.indexOf("atrix(")&&-1===d.indexOf("radient(")&&-1===d.indexOf("oader(")?(c.removeAttribute("filter"),b=!Y(this.data,"filter")):(c.filter=d.replace(x,""),
b=!0)),b||(this.xn1&&(c.filter=d=d||"alpha(opacity="+e+")"),-1===d.indexOf("pacity")?0===e&&this.xn1||(c.filter=d+" alpha(opacity="+e+")"):c.filter=d.replace(v,"opacity="+e))};va("opacity,alpha,autoAlpha",{defaultValue:"1",parser:function(a,b,c,d,f,g){var h=parseFloat(Y(a,"opacity",e,!1,"1")),i=a.style,j="autoAlpha"===c;return"string"==typeof b&&"="===b.charAt(1)&&(b=("-"===b.charAt(0)?-1:1)*parseFloat(b.substr(2))+h),j&&1===h&&"hidden"===Y(a,"visibility",e)&&0!==b&&(h=0),R?f=new qa(i,"opacity",h,b-h,f):(f=new qa(i,"opacity",100*h,100*(b-h),f),f.xn1=j?1:0,i.zoom=1,f.type=2,f.b="alpha(opacity="+f.s+")",f.e="alpha(opacity="+(f.s+f.c)+")",f.data=a,f.plugin=g,f.setRatio=Qa),j&&(f=new qa(i,"visibility",0,0,f,-1,null,!1,0,0!==h?"inherit":"hidden",0===b?"hidden":"inherit"),f.xs0="inherit",d._overwriteProps.push(f.n),d._overwriteProps.push(c)),f}});var Ra=function(a,b){b&&(a.removeProperty?(("ms"===b.substr(0,2)||"webkit"===b.substr(0,6))&&(b="-"+b),a.removeProperty(b.replace(z,"-$1").toLowerCase())):a.removeAttribute(b))},Sa=function(a){if(this.t._gsClassPT=this,1===a||0===a){this.t.setAttribute("class",0===a?this.b:this.e);for(var b=this.data,c=this.t.style;b;)b.v?c[b.p]=b.v:Ra(c,b.p),b=b._next;1===a&&this.t._gsClassPT===this&&(this.t._gsClassPT=null)}else this.t.getAttribute("class")!==this.e&&this.t.setAttribute("class",this.e)};va("className",{parser:function(a,b,d,f,g,h,i){var j,k,l,m,n,o=a.getAttribute("class")||"",p=a.style.cssText;if(g=f._classNamePT=new qa(a,d,0,0,g,2),g.setRatio=Sa,g.pr=-11,c=!0,g.b=o,k=_(a,e),l=a._gsClassPT){for(m={},n=l.data;n;)m[n.p]=1,n=n._next;l.setRatio(1)}return a._gsClassPT=g,g.e="="!==b.charAt(1)?b:o.replace(new RegExp("(?:\\s|^)"+b.substr(2)+"(?![\\w-])"),"")+("+"===b.charAt(0)?" "+b.substr(2):""),a.setAttribute("class",g.e),j=aa(a,k,_(a),i,m),a.setAttribute("class",o),g.data=j.firstMPT,a.style.cssText=p,g=g.xfirst=f.parse(a,j.difs,g,h)}});var Ta=function(a){if((1===a||0===a)&&this.data._totalTime===this.data._totalDuration&&"isFromStart"!==this.data.data){var b,c,d,e,f,g=this.t.style,h=i.transform.parse;if("all"===this.e)g.cssText="",e=!0;else for(b=this.e.split(" ").join("").split(","),d=b.length;--d>-1;)c=b[d],i[c]&&(i[c].parse===h?e=!0:c="transformOrigin"===c?Ba:i[c].p),Ra(g,c);e&&(Ra(g,za),f=this.t._gsTransform,f&&(f.svg&&(this.t.removeAttribute("data-svg-origin"),this.t.removeAttribute("transform")),delete this.t._gsTransform))}};for(va("clearProps",{parser:function(a,b,d,e,f){return f=new qa(a,d,0,0,f,2),f.setRatio=Ta,f.e=b,f.pr=-10,f.data=e._tween,c=!0,f}}),j="bezier,throwProps,physicsProps,physics2D".split(","),ta=j.length;ta--;)wa(j[ta]);j=g.prototype,j._firstPT=j._lastParsedTransform=j._transform=null,j._onInitTween=function(a,b,h){if(!a.nodeType)return!1;this._target=a,this._tween=h,this._vars=b,k=b.autoRound,c=!1,d=b.suffixMap||g.suffixMap,e=X(a,""),f=this._overwriteProps;var j,n,p,q,r,s,t,u,v,x=a.style;if(l&&""===x.zIndex&&(j=Y(a,"zIndex",e),("auto"===j||""===j)&&this._addLazySet(x,"zIndex",0)),"string"==typeof b&&(q=x.cssText,j=_(a,e),x.cssText=q+";"+b,j=aa(a,j,_(a)).difs,!R&&w.test(b)&&(j.opacity=parseFloat(RegExp.$1)),b=j,x.cssText=q),b.className?this._firstPT=n=i.className.parse(a,b.className,"className",this,null,null,b):this._firstPT=n=this.parse(a,b,null),this._transformType){for(v=3===this._transformType,za?m&&(l=!0,""===x.zIndex&&(t=Y(a,"zIndex",e),("auto"===t||""===t)&&this._addLazySet(x,"zIndex",0)),o&&this._addLazySet(x,"WebkitBackfaceVisibility",this._vars.WebkitBackfaceVisibility||(v?"visible":"hidden"))):x.zoom=1,p=n;p&&p._next;)p=p._next;u=new qa(a,"transform",0,0,null,2),this._linkCSSP(u,null,p),u.setRatio=za?Pa:Oa,u.data=this._transform||Na(a,e,!0),u.tween=h,u.pr=-1,f.pop()}if(c){for(;n;){for(s=n._next,p=q;p&&p.pr>n.pr;)p=p._next;(n._prev=p?p._prev:r)?n._prev._next=n:q=n,(n._next=p)?p._prev=n:r=n,n=s}this._firstPT=q}return!0},j.parse=function(a,b,c,f){var g,h,j,l,m,n,o,p,q,r,s=a.style;for(g in b)n=b[g],h=i[g],h?c=h.parse(a,n,g,this,c,f,b):(m=Y(a,g,e)+"",q="string"==typeof n,"color"===g||"fill"===g||"stroke"===g||-1!==g.indexOf("Color")||q&&y.test(n)?(q||(n=ka(n),n=(n.length>3?"rgba(":"rgb(")+n.join(",")+")"),c=sa(s,g,m,n,!0,"transparent",c,0,f)):q&&H.test(n)?c=sa(s,g,m,n,!0,null,c,0,f):(j=parseFloat(m),o=j||0===j?m.substr((j+"").length):"",(""===m||"auto"===m)&&("width"===g||"height"===g?(j=da(a,g,e),o="px"):"left"===g||"top"===g?(j=$(a,g,e),o="px"):(j="opacity"!==g?0:1,o="")),r=q&&"="===n.charAt(1),r?(l=parseInt(n.charAt(0)+"1",10),n=n.substr(2),l*=parseFloat(n),p=n.replace(u,"")):(l=parseFloat(n),p=q?n.replace(u,""):""),""===p&&(p=g in d?d[g]:o),n=l||0===l?(r?l+j:l)+p:b[g],o!==p&&""!==p&&(l||0===l)&&j&&(j=Z(a,g,j,o),"%"===p?(j/=Z(a,g,100,"%")/100,b.strictUnits!==!0&&(m=j+"%")):"em"===p||"rem"===p||"vw"===p||"vh"===p?j/=Z(a,g,1,p):"px"!==p&&(l=Z(a,g,l,p),p="px"),r&&(l||0===l)&&(n=l+j+p)),r&&(l+=j),!j&&0!==j||!l&&0!==l?void 0!==s[g]&&(n||n+""!="NaN"&&null!=n)?(c=new qa(s,g,l||j||0,0,c,-1,g,!1,0,m,n),c.xs0="none"!==n||"display"!==g&&-1===g.indexOf("Style")?n:m):T("invalid "+g+" tween value: "+b[g]):(c=new qa(s,g,j,l-j,c,0,g,k!==!1&&("px"===p||"zIndex"===g),0,m,n),c.xs0=p))),f&&c&&!c.plugin&&(c.plugin=f);return c},j.setRatio=function(a){var b,c,d,e=this._firstPT,f=1e-6;if(1!==a||this._tween._time!==this._tween._duration&&0!==this._tween._time)if(a||this._tween._time!==this._tween._duration&&0!==this._tween._time||this._tween._rawPrevTime===-1e-6)for(;e;){if(b=e.c*a+e.s,e.r?b=Math.round(b):f>b&&b>-f&&(b=0),e.type)if(1===e.type)if(d=e.l,2===d)e.t[e.p]=e.xs0+b+e.xs1+e.xn1+e.xs2;else if(3===d)e.t[e.p]=e.xs0+b+e.xs1+e.xn1+e.xs2+e.xn2+e.xs3;else if(4===d)e.t[e.p]=e.xs0+b+e.xs1+e.xn1+e.xs2+e.xn2+e.xs3+e.xn3+e.xs4;else if(5===d)e.t[e.p]=e.xs0+b+e.xs1+e.xn1+e.xs2+e.xn2+e.xs3+e.xn3+e.xs4+e.xn4+e.xs5;else{for(c=e.xs0+b+e.xs1,d=1;d<e.l;d++)c+=e["xn"+d]+e["xs"+(d+1)];e.t[e.p]=c}else-1===e.type?e.t[e.p]=e.xs0:e.setRatio&&e.setRatio(a);else e.t[e.p]=b+e.xs0;e=e._next}else for(;e;)2!==e.type?e.t[e.p]=e.b:e.setRatio(a),e=e._next;else for(;e;){if(2!==e.type)if(e.r&&-1!==e.type)if(b=Math.round(e.s+e.c),e.type){if(1===e.type){for(d=e.l,c=e.xs0+b+e.xs1,d=1;d<e.l;d++)c+=e["xn"+d]+e["xs"+(d+1)];e.t[e.p]=c}}else e.t[e.p]=b+e.xs0;else e.t[e.p]=e.e;else e.setRatio(a);e=e._next}},j._enableTransforms=function(a){this._transform=this._transform||Na(this._target,e,!0),this._transformType=this._transform.svg&&xa||!a&&3!==this._transformType?2:3};var Ua=function(a){this.t[this.p]=this.e,this.data._linkCSSP(this,this._next,null,!0)};j._addLazySet=function(a,b,c){var d=this._firstPT=new qa(a,b,0,0,this._firstPT,2);d.e=c,d.setRatio=Ua,d.data=this},j._linkCSSP=function(a,b,c,d){return a&&(b&&(b._prev=a),a._next&&(a._next._prev=a._prev),a._prev?a._prev._next=a._next:this._firstPT===a&&(this._firstPT=a._next,d=!0),c?c._next=a:d||null!==this._firstPT||(this._firstPT=a),a._next=b,a._prev=c),a},j._kill=function(b){var c,d,e,f=b;if(b.autoAlpha||b.alpha){f={};for(d in b)f[d]=b[d];f.opacity=1,f.autoAlpha&&(f.visibility=1)}return b.className&&(c=this._classNamePT)&&(e=c.xfirst,e&&e._prev?this._linkCSSP(e._prev,c._next,e._prev._prev):e===this._firstPT&&(this._firstPT=c._next),c._next&&this._linkCSSP(c._next,c._next._next,e._prev),this._classNamePT=null),a.prototype._kill.call(this,f)};var Va=function(a,b,c){var d,e,f,g;if(a.slice)for(e=a.length;--e>-1;)Va(a[e],b,c);else for(d=a.childNodes,e=d.length;--e>-1;)f=d[e],g=f.type,f.style&&(b.push(_(f)),c&&c.push(f)),1!==g&&9!==g&&11!==g||!f.childNodes.length||Va(f,b,c)};return g.cascadeTo=function(a,c,d){var e,f,g,h,i=b.to(a,c,d),j=[i],k=[],l=[],m=[],n=b._internals.reservedProps;for(a=i._targets||i.target,Va(a,k,m),i.render(c,!0,!0),Va(a,l),i.render(0,!0,!0),i._enabled(!0),e=m.length;--e>-1;)if(f=aa(m[e],k[e],l[e]),f.firstMPT){f=f.difs;for(g in d)n[g]&&(f[g]=d[g]);h={};for(g in f)h[g]=k[e][g];j.push(b.fromTo(m[e],c,h,f))}return j},a.activate([g]),g},!0)}),_gsScope._gsDefine&&_gsScope._gsQueue.pop()(),function(a){"use strict";var b=function(){return(_gsScope.GreenSockGlobals||_gsScope)[a]};"function"==typeof define&&define.amd?define(["../TweenLite"],b):"undefined"!=typeof module&&module.exports&&(require("../TweenLite.js"),module.exports=b())}("CSSPlugin");

/* SPLIT TEXT UTIL */

/*!
 * VERSION: 0.3.5
 * DATE: 2016-05-24
 * UPDATES AND DOCS AT: http://greensock.com
 *
 * @license Copyright (c) 2008-2016, GreenSock. All rights reserved.
 * SplitText is a Club GreenSock membership benefit; You must have a valid membership to use
 * this code without violating the terms of use. Visit http://www.greensock.com/club/ to sign up or get more details.
 * This work is subject to the software agreement that was issued with your membership.
 * 
 * @author: Jack Doyle, jack@greensock.com
 */
var _gsScope="undefined"!=typeof module&&module.exports&&"undefined"!=typeof global?global:this||window;!function(a){"use strict";var b=a.GreenSockGlobals||a,c=function(a){var c,d=a.split("."),e=b;for(c=0;c<d.length;c++)e[d[c]]=e=e[d[c]]||{};return e},d=c("com.greensock.utils"),e=function(a){var b=a.nodeType,c="";if(1===b||9===b||11===b){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===b||4===b)return a.nodeValue;return c},f=document,g=f.defaultView?f.defaultView.getComputedStyle:function(){},h=/([A-Z])/g,i=function(a,b,c,d){var e;return(c=c||g(a,null))?(a=c.getPropertyValue(b.replace(h,"-$1").toLowerCase()),e=a||c.length?a:c[b]):a.currentStyle&&(c=a.currentStyle,e=c[b]),d?e:parseInt(e,10)||0},j=function(a){return a.length&&a[0]&&(a[0].nodeType&&a[0].style&&!a.nodeType||a[0].length&&a[0][0])?!0:!1},k=function(a){var b,c,d,e=[],f=a.length;for(b=0;f>b;b++)if(c=a[b],j(c))for(d=c.length,d=0;d<c.length;d++)e.push(c[d]);else e.push(c);return e},l=/(?:\r|\n|\s\s|\t\t)/g,m=")eefec303079ad17405c",n=/(?:<br>|<br\/>|<br \/>)/gi,o=f.all&&!f.addEventListener,p="<div style='position:relative;display:inline-block;"+(o?"*display:inline;*zoom:1;'":"'"),q=function(a){a=a||"";var b=-1!==a.indexOf("++"),c=1;return b&&(a=a.split("++").join("")),function(){return p+(a?" class='"+a+(b?c++:"")+"'>":">")}},r=d.SplitText=b.SplitText=function(a,b){if("string"==typeof a&&(a=r.selector(a)),!a)throw"cannot split a null element.";this.elements=j(a)?k(a):[a],this.chars=[],this.words=[],this.lines=[],this._originals=[],this.vars=b||{},this.split(b)},s=function(a,b,c){var d=a.nodeType;if(1===d||9===d||11===d)for(a=a.firstChild;a;a=a.nextSibling)s(a,b,c);else(3===d||4===d)&&(a.nodeValue=a.nodeValue.split(b).join(c))},t=function(a,b){for(var c=b.length;--c>-1;)a.push(b[c])},u=function(a,b,c,d,h){n.test(a.innerHTML)&&(a.innerHTML=a.innerHTML.replace(n,m));var j,k,o,p,r,u,v,w,x,y,z,A,B,C,D=e(a),E=b.type||b.split||"chars,words,lines",F=-1!==E.indexOf("lines")?[]:null,G=-1!==E.indexOf("words"),H=-1!==E.indexOf("chars"),I="absolute"===b.position||b.absolute===!0,J=I?"&#173; ":" ",K=-999,L=g(a),M=i(a,"paddingLeft",L),N=i(a,"borderBottomWidth",L)+i(a,"borderTopWidth",L),O=i(a,"borderLeftWidth",L)+i(a,"borderRightWidth",L),P=i(a,"paddingTop",L)+i(a,"paddingBottom",L),Q=i(a,"paddingLeft",L)+i(a,"paddingRight",L),R=i(a,"textAlign",L,!0),S=a.clientHeight,T=a.clientWidth,U="</div>",V=q(b.wordsClass),W=q(b.charsClass),X=-1!==(b.linesClass||"").indexOf("++"),Y=b.linesClass,Z=-1!==D.indexOf("<"),$=!0,_=[],aa=[],ba=[];for(!b.reduceWhiteSpace!=!1&&(D=D.replace(l,"")),X&&(Y=Y.split("++").join("")),Z&&(D=D.split("<").join("{{LT}}")),j=D.length,p=V(),r=0;j>r;r++)if(v=D.charAt(r),")"===v&&D.substr(r,20)===m)p+=($?U:"")+"<BR/>",$=!1,r!==j-20&&D.substr(r+20,20)!==m&&(p+=" "+V(),$=!0),r+=19;else if(" "===v&&" "!==D.charAt(r-1)&&r!==j-1&&D.substr(r-20,20)!==m){for(p+=$?U:"",$=!1;" "===D.charAt(r+1);)p+=J,r++;(")"!==D.charAt(r+1)||D.substr(r+1,20)!==m)&&(p+=J+V(),$=!0)}else"{"===v&&"{{LT}}"===D.substr(r,6)?(p+=H?W()+"{{LT}}</div>":"{{LT}}",r+=5):p+=H&&" "!==v?W()+v+"</div>":v;for(a.innerHTML=p+($?U:""),Z&&s(a,"{{LT}}","<"),u=a.getElementsByTagName("*"),j=u.length,w=[],r=0;j>r;r++)w[r]=u[r];if(F||I)for(r=0;j>r;r++)x=w[r],o=x.parentNode===a,(o||I||H&&!G)&&(y=x.offsetTop,F&&o&&y!==K&&"BR"!==x.nodeName&&(k=[],F.push(k),K=y),I&&(x._x=x.offsetLeft,x._y=y,x._w=x.offsetWidth,x._h=x.offsetHeight),F&&(G!==o&&H||(k.push(x),x._x-=M),o&&r&&(w[r-1]._wordEnd=!0),"BR"===x.nodeName&&x.nextSibling&&"BR"===x.nextSibling.nodeName&&F.push([])));for(r=0;j>r;r++)x=w[r],o=x.parentNode===a,"BR"!==x.nodeName?(I&&(A=x.style,G||o||(x._x+=x.parentNode._x,x._y+=x.parentNode._y),A.left=x._x+"px",A.top=x._y+"px",A.position="absolute",A.display="block",A.width=x._w+1+"px",A.height=x._h+"px"),G?o&&""!==x.innerHTML?aa.push(x):H&&_.push(x):o?(a.removeChild(x),w.splice(r--,1),j--):!o&&H&&(y=!F&&!I&&x.nextSibling,a.appendChild(x),y||a.appendChild(f.createTextNode(" ")),_.push(x))):F||I?(a.removeChild(x),w.splice(r--,1),j--):G||a.appendChild(x);if(F){for(I&&(z=f.createElement("div"),a.appendChild(z),B=z.offsetWidth+"px",y=z.offsetParent===a?0:a.offsetLeft,a.removeChild(z)),A=a.style.cssText,a.style.cssText="display:none;";a.firstChild;)a.removeChild(a.firstChild);for(C=!I||!G&&!H,r=0;r<F.length;r++){for(k=F[r],z=f.createElement("div"),z.style.cssText="display:block;text-align:"+R+";position:"+(I?"absolute;":"relative;"),Y&&(z.className=Y+(X?r+1:"")),ba.push(z),j=k.length,u=0;j>u;u++)"BR"!==k[u].nodeName&&(x=k[u],z.appendChild(x),C&&(x._wordEnd||G)&&z.appendChild(f.createTextNode(" ")),I&&(0===u&&(z.style.top=x._y+"px",z.style.left=M+y+"px"),x.style.top="0px",y&&(x.style.left=x._x-y+"px")));0===j&&(z.innerHTML="&nbsp;"),G||H||(z.innerHTML=e(z).split(String.fromCharCode(160)).join(" ")),I&&(z.style.width=B,z.style.height=x._h+"px"),a.appendChild(z)}a.style.cssText=A}I&&(S>a.clientHeight&&(a.style.height=S-P+"px",a.clientHeight<S&&(a.style.height=S+N+"px")),T>a.clientWidth&&(a.style.width=T-Q+"px",a.clientWidth<T&&(a.style.width=T+O+"px"))),t(c,_),t(d,aa),t(h,ba)},v=r.prototype;v.split=function(a){this.isSplit&&this.revert(),this.vars=a||this.vars,this._originals.length=this.chars.length=this.words.length=this.lines.length=0;for(var b=this.elements.length;--b>-1;)this._originals[b]=this.elements[b].innerHTML,u(this.elements[b],this.vars,this.chars,this.words,this.lines);return this.chars.reverse(),this.words.reverse(),this.lines.reverse(),this.isSplit=!0,this},v.revert=function(){if(!this._originals)throw"revert() call wasn't scoped properly.";for(var a=this._originals.length;--a>-1;)this.elements[a].innerHTML=this._originals[a];return this.chars=[],this.words=[],this.lines=[],this.isSplit=!1,this},r.selector=a.$||a.jQuery||function(b){var c=a.$||a.jQuery;return c?(r.selector=c,c(b)):"undefined"==typeof document?b:document.querySelectorAll?document.querySelectorAll(b):document.getElementById("#"===b.charAt(0)?b.substr(1):b)},r.version="0.3.5"}(_gsScope),function(a){"use strict";var b=function(){return(_gsScope.GreenSockGlobals||_gsScope)[a]};"function"==typeof define&&define.amd?define([],b):"undefined"!=typeof module&&module.exports&&(module.exports=b())}("SplitText");

try{
	window.GreenSockGlobals = null;
	window._gsQueue = null;
	window._gsDefine = null;

	delete(window.GreenSockGlobals);
	delete(window._gsQueue);
	delete(window._gsDefine);	
   } catch(e) {}

try{
	window.GreenSockGlobals = oldgs;
	window._gsQueue = oldgs_queue;
	} catch(e) {}

if (window.tplogs==true)
	try {
		console.groupEnd();
	} catch(e) {}

(function(e,t){
		e.waitForImages={hasImageProperties:["backgroundImage","listStyleImage","borderImage","borderCornerImage"]};e.expr[":"].uncached=function(t){var n=document.createElement("img");n.src=t.src;return e(t).is('img[src!=""]')&&!n.complete};e.fn.waitForImages=function(t,n,r){if(e.isPlainObject(arguments[0])){n=t.each;r=t.waitForAll;t=t.finished}t=t||e.noop;n=n||e.noop;r=!!r;if(!e.isFunction(t)||!e.isFunction(n)){throw new TypeError("An invalid callback was supplied.")}return this.each(function(){var i=e(this),s=[];if(r){var o=e.waitForImages.hasImageProperties||[],u=/url\((['"]?)(.*?)\1\)/g;i.find("*").each(function(){var t=e(this);if(t.is("img:uncached")){s.push({src:t.attr("src"),element:t[0]})}e.each(o,function(e,n){var r=t.css(n);if(!r){return true}var i;while(i=u.exec(r)){s.push({src:i[2],element:t[0]})}})})}else{i.find("img:uncached").each(function(){s.push({src:this.src,element:this})})}var f=s.length,l=0;if(f==0){t.call(i[0])}e.each(s,function(r,s){var o=new Image;e(o).bind("load error",function(e){l++;n.call(s.element,l,f,e.type=="load");if(l==f){t.call(i[0]);return false}});o.src=s.src})})};		
})(jQuery);
// source --> https://kkdomzale.si/wp-content/plugins/revslider/public/assets/js/jquery.themepunch.revolution.min.js 
/**************************************************************************
 * jquery.themepunch.revolution.js - jQuery Plugin for Revolution Slider
 * @version: 5.2.5.3 (30.05.2016)
 * @requires jQuery v1.7 or later (tested on 1.9)
 * @author ThemePunch
**************************************************************************/
!function(jQuery,undefined){"use strict";jQuery.fn.extend({revolution:function(e){var t={delay:9e3,responsiveLevels:4064,visibilityLevels:[2048,1024,778,480],gridwidth:960,gridheight:500,minHeight:0,autoHeight:"off",sliderType:"standard",sliderLayout:"auto",fullScreenAutoWidth:"off",fullScreenAlignForce:"off",fullScreenOffsetContainer:"",fullScreenOffset:"0",hideCaptionAtLimit:0,hideAllCaptionAtLimit:0,hideSliderAtLimit:0,disableProgressBar:"off",stopAtSlide:-1,stopAfterLoops:-1,shadow:0,dottedOverlay:"none",startDelay:0,lazyType:"smart",spinner:"spinner0",shuffle:"off",viewPort:{enable:!1,outof:"wait",visible_area:"60%"},fallbacks:{isJoomla:!1,panZoomDisableOnMobile:"off",simplifyAll:"on",nextSlideOnWindowFocus:"off",disableFocusListener:!0,ignoreHeightChanges:"off",ignoreHeightChangesSize:0},parallax:{type:"off",levels:[10,15,20,25,30,35,40,45,50,55,60,65,70,75,80,85],origo:"enterpoint",speed:400,bgparallax:"off",opacity:"on",disable_onmobile:"off",ddd_shadow:"on",ddd_bgfreeze:"off",ddd_overflow:"visible",ddd_layer_overflow:"visible",ddd_z_correction:65,ddd_path:"mouse"},carousel:{horizontal_align:"center",vertical_align:"center",infinity:"on",space:0,maxVisibleItems:3,stretch:"off",fadeout:"on",maxRotation:0,minScale:0,vary_fade:"off",vary_rotation:"on",vary_scale:"off",border_radius:"0px",padding_top:0,padding_bottom:0},navigation:{keyboardNavigation:"off",keyboard_direction:"horizontal",mouseScrollNavigation:"off",onHoverStop:"on",touch:{touchenabled:"off",swipe_treshold:75,swipe_min_touches:1,drag_block_vertical:!1,swipe_direction:"horizontal"},arrows:{style:"",enable:!1,hide_onmobile:!1,hide_onleave:!0,hide_delay:200,hide_delay_mobile:1200,hide_under:0,hide_over:9999,tmp:"",rtl:!1,left:{h_align:"left",v_align:"center",h_offset:20,v_offset:0,container:"slider"},right:{h_align:"right",v_align:"center",h_offset:20,v_offset:0,container:"slider"}},bullets:{container:"slider",rtl:!1,style:"",enable:!1,hide_onmobile:!1,hide_onleave:!0,hide_delay:200,hide_delay_mobile:1200,hide_under:0,hide_over:9999,direction:"horizontal",h_align:"left",v_align:"center",space:0,h_offset:20,v_offset:0,tmp:'<span class="tp-bullet-image"></span><span class="tp-bullet-title"></span>'},thumbnails:{container:"slider",rtl:!1,style:"",enable:!1,width:100,height:50,min_width:100,wrapper_padding:2,wrapper_color:"#f5f5f5",wrapper_opacity:1,tmp:'<span class="tp-thumb-image"></span><span class="tp-thumb-title"></span>',visibleAmount:5,hide_onmobile:!1,hide_onleave:!0,hide_delay:200,hide_delay_mobile:1200,hide_under:0,hide_over:9999,direction:"horizontal",span:!1,position:"inner",space:2,h_align:"left",v_align:"center",h_offset:20,v_offset:0},tabs:{container:"slider",rtl:!1,style:"",enable:!1,width:100,min_width:100,height:50,wrapper_padding:10,wrapper_color:"#f5f5f5",wrapper_opacity:1,tmp:'<span class="tp-tab-image"></span>',visibleAmount:5,hide_onmobile:!1,hide_onleave:!0,hide_delay:200,hide_delay_mobile:1200,hide_under:0,hide_over:9999,direction:"horizontal",span:!1,space:0,position:"inner",h_align:"left",v_align:"center",h_offset:20,v_offset:0}},extensions:"extensions/",extensions_suffix:".min.js",debugMode:!1};return e=jQuery.extend(!0,{},t,e),this.each(function(){var t=jQuery(this);e.minHeight=e.minHeight!=undefined?parseInt(e.minHeight,0):e.minHeight,"hero"==e.sliderType&&t.find(">ul>li").each(function(e){e>0&&jQuery(this).remove()}),e.jsFileLocation=e.jsFileLocation||getScriptLocation("themepunch.revolution.min.js"),e.jsFileLocation=e.jsFileLocation+e.extensions,e.scriptsneeded=getNeededScripts(e,t),e.curWinRange=0,e.rtl=!0,e.navigation!=undefined&&e.navigation.touch!=undefined&&(e.navigation.touch.swipe_min_touches=e.navigation.touch.swipe_min_touches>5?1:e.navigation.touch.swipe_min_touches),jQuery(this).on("scriptsloaded",function(){return e.modulesfailing?(t.html('<div style="margin:auto;line-height:40px;font-size:14px;color:#fff;padding:15px;background:#e74c3c;margin:20px 0px;">!! Error at loading Slider Revolution 5.0 Extrensions.'+e.errorm+"</div>").show(),!1):(_R.migration!=undefined&&(e=_R.migration(t,e)),punchgs.force3D=!0,"on"!==e.simplifyAll&&punchgs.TweenLite.lagSmoothing(1e3,16),prepareOptions(t,e),void initSlider(t,e))}),t.data("opt",e),waitForScripts(t,e)})},revremoveslide:function(e){return this.each(function(){var t=jQuery(this);if(t!=undefined&&t.length>0&&jQuery("body").find("#"+t.attr("id")).length>0){var i=t.parent().find(".tp-bannertimer"),n=i.data("opt");if(n&&n.li.length>0&&(e>0||e<=n.li.length)){var a=jQuery(n.li[e]),r=a.data("index"),o=!1;n.slideamount=n.slideamount-1,removeNavWithLiref(".tp-bullet",r,n),removeNavWithLiref(".tp-tab",r,n),removeNavWithLiref(".tp-thumb",r,n),a.hasClass("active-revslide")&&(o=!0),a.remove(),n.li=removeArray(n.li,e),n.carousel&&n.carousel.slides&&(n.carousel.slides=removeArray(n.carousel.slides,e)),n.thumbs=removeArray(n.thumbs,e),_R.updateNavIndexes&&_R.updateNavIndexes(n),o&&t.revnext(),punchgs.TweenLite.set(n.li,{minWidth:"99%"}),punchgs.TweenLite.set(n.li,{minWidth:"100%"})}}})},revaddcallback:function(e){return this.each(function(){var t=jQuery(this);if(t!=undefined&&t.length>0&&jQuery("body").find("#"+t.attr("id")).length>0){var i=t.parent().find(".tp-bannertimer"),n=i.data("opt");n.callBackArray===undefined&&(n.callBackArray=new Array),n.callBackArray.push(e)}})},revgetparallaxproc:function(){var e=jQuery(this);if(e!=undefined&&e.length>0&&jQuery("body").find("#"+e.attr("id")).length>0){var t=e.parent().find(".tp-bannertimer"),i=t.data("opt");return i.scrollproc}},revdebugmode:function(){return this.each(function(){var e=jQuery(this);if(e!=undefined&&e.length>0&&jQuery("body").find("#"+e.attr("id")).length>0){var t=e.parent().find(".tp-bannertimer"),i=t.data("opt");i.debugMode=!0,containerResized(e,i)}})},revscroll:function(e){return this.each(function(){var t=jQuery(this);t!=undefined&&t.length>0&&jQuery("body").find("#"+t.attr("id")).length>0&&jQuery("body,html").animate({scrollTop:t.offset().top+t.height()-e+"px"},{duration:400})})},revredraw:function(e){return this.each(function(){var e=jQuery(this);if(e!=undefined&&e.length>0&&jQuery("body").find("#"+e.attr("id")).length>0){var t=e.parent().find(".tp-bannertimer"),i=t.data("opt");containerResized(e,i)}})},revkill:function(e){var t=this,i=jQuery(this);if(punchgs.TweenLite.killDelayedCallsTo(_R.showHideNavElements),_R.endMoveCaption&&a.endtimeouts&&a.endtimeouts.length>0&&jQuery.each(a.endtimeouts,function(e,t){clearTimeout(t)}),i!=undefined&&i.length>0&&jQuery("body").find("#"+i.attr("id")).length>0){i.data("conthover",1),i.data("conthover-changed",1),i.trigger("revolution.slide.onpause");var n=i.parent().find(".tp-bannertimer"),a=n.data("opt");a.tonpause=!0,i.trigger("stoptimer"),punchgs.TweenLite.killTweensOf(i.find("*"),!1),punchgs.TweenLite.killTweensOf(i,!1),i.unbind("hover, mouseover, mouseenter,mouseleave, resize");var r="resize.revslider-"+i.attr("id");jQuery(window).off(r),i.find("*").each(function(){var e=jQuery(this);e.unbind("on, hover, mouseenter,mouseleave,mouseover, resize,restarttimer, stoptimer"),e.off("on, hover, mouseenter,mouseleave,mouseover, resize"),e.data("mySplitText",null),e.data("ctl",null),e.data("tween")!=undefined&&e.data("tween").kill(),e.data("kenburn")!=undefined&&e.data("kenburn").kill(),e.data("timeline_out")!=undefined&&e.data("timeline_out").kill(),e.data("timeline")!=undefined&&e.data("timeline").kill(),e.remove(),e.empty(),e=null}),punchgs.TweenLite.killTweensOf(i.find("*"),!1),punchgs.TweenLite.killTweensOf(i,!1),n.remove();try{i.closest(".forcefullwidth_wrapper_tp_banner").remove()}catch(o){}try{i.closest(".rev_slider_wrapper").remove()}catch(o){}try{i.remove()}catch(o){}return i.empty(),i.html(),i=null,a=null,delete t.c,delete t.opt,!0}return!1},revpause:function(){return this.each(function(){var e=jQuery(this);if(e!=undefined&&e.length>0&&jQuery("body").find("#"+e.attr("id")).length>0){e.data("conthover",1),e.data("conthover-changed",1),e.trigger("revolution.slide.onpause");var t=e.parent().find(".tp-bannertimer"),i=t.data("opt");i.tonpause=!0,e.trigger("stoptimer")}})},revresume:function(){return this.each(function(){var e=jQuery(this);if(e!=undefined&&e.length>0&&jQuery("body").find("#"+e.attr("id")).length>0){e.data("conthover",0),e.data("conthover-changed",1),e.trigger("revolution.slide.onresume");var t=e.parent().find(".tp-bannertimer"),i=t.data("opt");i.tonpause=!1,e.trigger("starttimer")}})},revstart:function(){var e=jQuery(this);return e!=undefined&&e.length>0&&jQuery("body").find("#"+e.attr("id")).length>0&&e.data("opt")?e.data("opt").sliderisrunning?(console.log("Slider Is Running Already"),!1):(runSlider(e,e.data("opt")),!0):void 0},revnext:function(){return this.each(function(){var e=jQuery(this);if(e!=undefined&&e.length>0&&jQuery("body").find("#"+e.attr("id")).length>0){var t=e.parent().find(".tp-bannertimer"),i=t.data("opt");_R.callingNewSlide(i,e,1)}})},revprev:function(){return this.each(function(){var e=jQuery(this);if(e!=undefined&&e.length>0&&jQuery("body").find("#"+e.attr("id")).length>0){var t=e.parent().find(".tp-bannertimer"),i=t.data("opt");_R.callingNewSlide(i,e,-1)}})},revmaxslide:function(){return jQuery(this).find(".tp-revslider-mainul >li").length},revcurrentslide:function(){var e=jQuery(this);if(e!=undefined&&e.length>0&&jQuery("body").find("#"+e.attr("id")).length>0){var t=e.parent().find(".tp-bannertimer"),i=t.data("opt");return parseInt(i.act,0)+1}},revlastslide:function(){return jQuery(this).find(".tp-revslider-mainul >li").length},revshowslide:function(e){return this.each(function(){var t=jQuery(this);if(t!=undefined&&t.length>0&&jQuery("body").find("#"+t.attr("id")).length>0){var i=t.parent().find(".tp-bannertimer"),n=i.data("opt");_R.callingNewSlide(n,t,"to"+(e-1))}})},revcallslidewithid:function(e){return this.each(function(){var t=jQuery(this);if(t!=undefined&&t.length>0&&jQuery("body").find("#"+t.attr("id")).length>0){var i=t.parent().find(".tp-bannertimer"),n=i.data("opt");_R.callingNewSlide(n,t,e)}})}});var _R=jQuery.fn.revolution;jQuery.extend(!0,_R,{simp:function(e,t,i){var n=Math.abs(e)-Math.floor(Math.abs(e/t))*t;return i?n:0>e?-1*n:n},iOSVersion:function(){var e=!1;return navigator.userAgent.match(/iPhone/i)||navigator.userAgent.match(/iPod/i)||navigator.userAgent.match(/iPad/i)?navigator.userAgent.match(/OS 4_\d like Mac OS X/i)&&(e=!0):e=!1,e},isIE:function(e,t){var i=jQuery('<div style="display:none;"/>').appendTo(jQuery("body"));i.html("<!--[if "+(t||"")+" IE "+(e||"")+"]><a>&nbsp;</a><![endif]-->");var n=i.find("a").length;return i.remove(),n},is_mobile:function(){var e=["android","webos","iphone","ipad","blackberry","Android","webos",,"iPod","iPhone","iPad","Blackberry","BlackBerry"],t=!1;for(var i in e)navigator.userAgent.split(e[i]).length>1&&(t=!0);return t},callBackHandling:function(e,t,i){try{e.callBackArray&&jQuery.each(e.callBackArray,function(e,n){n&&n.inmodule&&n.inmodule===t&&n.atposition&&n.atposition===i&&n.callback&&n.callback.call()})}catch(n){console.log("Call Back Failed")}},get_browser:function(){var e,t=navigator.appName,i=navigator.userAgent,n=i.match(/(opera|chrome|safari|firefox|msie)\/?\s*(\.?\d+(\.\d+)*)/i);return n&&null!=(e=i.match(/version\/([\.\d]+)/i))&&(n[2]=e[1]),n=n?[n[1],n[2]]:[t,navigator.appVersion,"-?"],n[0]},get_browser_version:function(){var e,t=navigator.appName,i=navigator.userAgent,n=i.match(/(opera|chrome|safari|firefox|msie)\/?\s*(\.?\d+(\.\d+)*)/i);return n&&null!=(e=i.match(/version\/([\.\d]+)/i))&&(n[2]=e[1]),n=n?[n[1],n[2]]:[t,navigator.appVersion,"-?"],n[1]},getHorizontalOffset:function(e,t){var i=gWiderOut(e,".outer-left"),n=gWiderOut(e,".outer-right");switch(t){case"left":return i;case"right":return n;case"both":return i+n}},callingNewSlide:function(e,t,i){var n=t.find(".next-revslide").length>0?t.find(".next-revslide").index():t.find(".processing-revslide").length>0?t.find(".processing-revslide").index():t.find(".active-revslide").index(),a=0;t.find(".next-revslide").removeClass("next-revslide"),t.find(".active-revslide").hasClass("tp-invisible-slide")&&(n=e.last_shown_slide),i&&jQuery.isNumeric(i)||i.match(/to/g)?(1===i||-1===i?(a=n+i,a=0>a?e.slideamount-1:a>=e.slideamount?0:a):(i=jQuery.isNumeric(i)?i:parseInt(i.split("to")[1],0),a=0>i?0:i>e.slideamount-1?e.slideamount-1:i),t.find(".tp-revslider-slidesli:eq("+a+")").addClass("next-revslide")):i&&t.find(".tp-revslider-slidesli").each(function(){var e=jQuery(this);e.data("index")===i&&e.addClass("next-revslide")}),a=t.find(".next-revslide").index(),t.trigger("revolution.nextslide.waiting"),n===a&&n===e.last_shown_slide||a!==n&&-1!=a?swapSlide(t,e):t.find(".next-revslide").removeClass("next-revslide")},slotSize:function(e,t){t.slotw=Math.ceil(t.width/t.slots),"fullscreen"==t.sliderLayout?t.sloth=Math.ceil(jQuery(window).height()/t.slots):t.sloth=Math.ceil(t.height/t.slots),"on"==t.autoHeight&&e!==undefined&&""!==e&&(t.sloth=Math.ceil(e.height()/t.slots))},setSize:function(e){var t=(e.top_outer||0)+(e.bottom_outer||0),i=parseInt(e.carousel.padding_top||0,0),n=parseInt(e.carousel.padding_bottom||0,0),a=e.gridheight[e.curWinRange];if(e.paddings=e.paddings===undefined?{top:parseInt(e.c.parent().css("paddingTop"),0)||0,bottom:parseInt(e.c.parent().css("paddingBottom"),0)||0}:e.paddings,a=a<e.minHeight?e.minHeight:a,"fullwidth"==e.sliderLayout&&"off"==e.autoHeight&&punchgs.TweenLite.set(e.c,{maxHeight:a+"px"}),e.c.css({marginTop:i,marginBottom:n}),e.width=e.ul.width(),e.height=e.ul.height(),setScale(e),e.height=Math.round(e.gridheight[e.curWinRange]*(e.width/e.gridwidth[e.curWinRange])),e.height>e.gridheight[e.curWinRange]&&"on"!=e.autoHeight&&(e.height=e.gridheight[e.curWinRange]),"fullscreen"==e.sliderLayout||e.infullscreenmode){e.height=e.bw*e.gridheight[e.curWinRange];var r=(e.c.parent().width(),jQuery(window).height());if(e.fullScreenOffsetContainer!=undefined){try{var o=e.fullScreenOffsetContainer.split(",");o&&jQuery.each(o,function(e,t){r=jQuery(t).length>0?r-jQuery(t).outerHeight(!0):r})}catch(s){}try{e.fullScreenOffset.split("%").length>1&&e.fullScreenOffset!=undefined&&e.fullScreenOffset.length>0?r-=jQuery(window).height()*parseInt(e.fullScreenOffset,0)/100:e.fullScreenOffset!=undefined&&e.fullScreenOffset.length>0&&(r-=parseInt(e.fullScreenOffset,0))}catch(s){}}r=r<e.minHeight?e.minHeight:r,r-=t,e.c.parent().height(r),e.c.closest(".rev_slider_wrapper").height(r),e.c.css({height:"100%"}),e.height=r,e.minHeight!=undefined&&e.height<e.minHeight&&(e.height=e.minHeight)}else e.minHeight!=undefined&&e.height<e.minHeight&&(e.height=e.minHeight),e.c.height(e.height);var d={height:i+n+t+e.height+e.paddings.top+e.paddings.bottom};e.c.closest(".forcefullwidth_wrapper_tp_banner").find(".tp-fullwidth-forcer").css(d),e.c.closest(".rev_slider_wrapper").css(d),setScale(e)},enterInViewPort:function(e){e.waitForCountDown&&(countDown(e.c,e),e.waitForCountDown=!1),e.waitForFirstSlide&&(swapSlide(e.c,e),e.waitForFirstSlide=!1),("playing"==e.sliderlaststatus||e.sliderlaststatus==undefined)&&e.c.trigger("starttimer"),e.lastplayedvideos!=undefined&&e.lastplayedvideos.length>0&&jQuery.each(e.lastplayedvideos,function(t,i){_R.playVideo(i,e)})},leaveViewPort:function(e){e.sliderlaststatus=e.sliderstatus,e.c.trigger("stoptimer"),e.playingvideos!=undefined&&e.playingvideos.length>0&&(e.lastplayedvideos=jQuery.extend(!0,[],e.playingvideos),e.playingvideos&&jQuery.each(e.playingvideos,function(t,i){e.leaveViewPortBasedStop=!0,_R.stopVideo&&_R.stopVideo(i,e)}))},unToggleState:function(e){e!=undefined&&e.length>0&&jQuery.each(e,function(e,t){t.removeClass("rs-toggle-content-active")})},toggleState:function(e){e!=undefined&&e.length>0&&jQuery.each(e,function(e,t){t.addClass("rs-toggle-content-active")})},lastToggleState:function(e){var t=0;return e!=undefined&&e.length>0&&jQuery.each(e,function(e,i){t=i.hasClass("rs-toggle-content-active")}),t}});var _ISM=_R.is_mobile(),removeArray=function(e,t){var i=[];return jQuery.each(e,function(e,n){e!=t&&i.push(n)}),i},removeNavWithLiref=function(e,t,i){i.c.find(e).each(function(){var e=jQuery(this);e.data("liref")===t&&e.remove()})},lAjax=function(e,t){return jQuery("body").data(e)?!1:t.filesystem?(t.errorm===undefined&&(t.errorm="<br>Local Filesystem Detected !<br>Put this to your header:"),console.warn("Local Filesystem detected !"),t.errorm=t.errorm+'<br>&lt;script type="text/javascript" src="'+t.jsFileLocation+e+t.extensions_suffix+'"&gt;&lt;/script&gt;',console.warn(t.jsFileLocation+e+t.extensions_suffix+" could not be loaded !"),console.warn("Please use a local Server or work online or make sure that you load all needed Libraries manually in your Document."),console.log(" "),t.modulesfailing=!0,!1):(jQuery.ajax({url:t.jsFileLocation+e+t.extensions_suffix,dataType:"script",cache:!0,error:function(i){console.warn("Slider Revolution 5.0 Error !"),console.error("Failure at Loading:"+e+t.extensions_suffix+" on Path:"+t.jsFileLocation),console.info(i)}}),void jQuery("body").data(e,!0))},getNeededScripts=function(e,t){var i=new Object,n=e.navigation;return i.kenburns=!1,i.parallax=!1,i.carousel=!1,i.navigation=!1,i.videos=!1,i.actions=!1,i.layeranim=!1,i.migration=!1,t.data("version")&&t.data("version").toString().match(/5./gi)?(t.find("img").each(function(){"on"==jQuery(this).data("kenburns")&&(i.kenburns=!0)}),("carousel"==e.sliderType||"on"==n.keyboardNavigation||"on"==n.mouseScrollNavigation||"on"==n.touch.touchenabled||n.arrows.enable||n.bullets.enable||n.thumbnails.enable||n.tabs.enable)&&(i.navigation=!0),t.find(".tp-caption, .tp-static-layer, .rs-background-video-layer").each(function(){var e=jQuery(this);(e.data("ytid")!=undefined||e.find("iframe").length>0&&e.find("iframe").attr("src").toLowerCase().indexOf("youtube")>0)&&(i.videos=!0),(e.data("vimeoid")!=undefined||e.find("iframe").length>0&&e.find("iframe").attr("src").toLowerCase().indexOf("vimeo")>0)&&(i.videos=!0),e.data("actions")!==undefined&&(i.actions=!0),i.layeranim=!0}),t.find("li").each(function(){jQuery(this).data("link")&&jQuery(this).data("link")!=undefined&&(i.layeranim=!0,i.actions=!0)}),!i.videos&&(t.find(".rs-background-video-layer").length>0||t.find(".tp-videolayer").length>0||t.find(".tp-audiolayer").length>0||t.find("iframe").length>0||t.find("video").length>0)&&(i.videos=!0),"carousel"==e.sliderType&&(i.carousel=!0),("off"!==e.parallax.type||e.viewPort.enable||"true"==e.viewPort.enable)&&(i.parallax=!0)):(i.kenburns=!0,i.parallax=!0,i.carousel=!1,i.navigation=!0,i.videos=!0,i.actions=!0,i.layeranim=!0,i.migration=!0),"hero"==e.sliderType&&(i.carousel=!1,i.navigation=!1),window.location.href.match(/file:/gi)&&(i.filesystem=!0,e.filesystem=!0),i.videos&&"undefined"==typeof _R.isVideoPlaying&&lAjax("revolution.extension.video",e),i.carousel&&"undefined"==typeof _R.prepareCarousel&&lAjax("revolution.extension.carousel",e),i.carousel||"undefined"!=typeof _R.animateSlide||lAjax("revolution.extension.slideanims",e),i.actions&&"undefined"==typeof _R.checkActions&&lAjax("revolution.extension.actions",e),i.layeranim&&"undefined"==typeof _R.handleStaticLayers&&lAjax("revolution.extension.layeranimation",e),i.kenburns&&"undefined"==typeof _R.stopKenBurn&&lAjax("revolution.extension.kenburn",e),i.navigation&&"undefined"==typeof _R.createNavigation&&lAjax("revolution.extension.navigation",e),i.migration&&"undefined"==typeof _R.migration&&lAjax("revolution.extension.migration",e),i.parallax&&"undefined"==typeof _R.checkForParallax&&lAjax("revolution.extension.parallax",e),e.addons!=undefined&&e.addons.length>0&&jQuery.each(e.addons,function(t,i){"object"==typeof i&&i.fileprefix!=undefined&&lAjax(i.fileprefix,e)}),i},waitForScripts=function(e,t){var i=!0,n=t.scriptsneeded;t.addons!=undefined&&t.addons.length>0&&jQuery.each(t.addons,function(e,t){"object"==typeof t&&t.init!=undefined&&_R[t.init]===undefined&&(i=!1)}),n.filesystem||"undefined"!=typeof punchgs&&i&&(!n.kenburns||n.kenburns&&"undefined"!=typeof _R.stopKenBurn)&&(!n.navigation||n.navigation&&"undefined"!=typeof _R.createNavigation)&&(!n.carousel||n.carousel&&"undefined"!=typeof _R.prepareCarousel)&&(!n.videos||n.videos&&"undefined"!=typeof _R.resetVideo)&&(!n.actions||n.actions&&"undefined"!=typeof _R.checkActions)&&(!n.layeranim||n.layeranim&&"undefined"!=typeof _R.handleStaticLayers)&&(!n.migration||n.migration&&"undefined"!=typeof _R.migration)&&(!n.parallax||n.parallax&&"undefined"!=typeof _R.checkForParallax)&&(n.carousel||!n.carousel&&"undefined"!=typeof _R.animateSlide)?e.trigger("scriptsloaded"):setTimeout(function(){waitForScripts(e,t)},50)},getScriptLocation=function(e){var t=new RegExp("themepunch.revolution.min.js","gi"),i="";return jQuery("script").each(function(){var e=jQuery(this).attr("src");e&&e.match(t)&&(i=e)}),i=i.replace("jquery.themepunch.revolution.min.js",""),i=i.replace("jquery.themepunch.revolution.js",""),i=i.split("?")[0]},setCurWinRange=function(e,t){var i=9999,n=0,a=0,r=0,o=jQuery(window).width(),s=t&&9999==e.responsiveLevels?e.visibilityLevels:e.responsiveLevels;s&&s.length&&jQuery.each(s,function(e,t){t>o&&(0==n||n>t)&&(i=t,r=e,n=t),o>t&&t>n&&(n=t,a=e)}),i>n&&(r=a),t?e.forcedWinRange=r:e.curWinRange=r},prepareOptions=function(e,t){t.carousel.maxVisibleItems=t.carousel.maxVisibleItems<1?999:t.carousel.maxVisibleItems,t.carousel.vertical_align="top"===t.carousel.vertical_align?"0%":"bottom"===t.carousel.vertical_align?"100%":"50%"},gWiderOut=function(e,t){var i=0;return e.find(t).each(function(){var e=jQuery(this);!e.hasClass("tp-forcenotvisible")&&i<e.outerWidth()&&(i=e.outerWidth())}),i},initSlider=function(container,opt){return container==undefined?!1:(container.data("aimg")!=undefined&&("enabled"==container.data("aie8")&&_R.isIE(8)||"enabled"==container.data("amobile")&&_ISM)&&container.html('<img class="tp-slider-alternative-image" src="'+container.data("aimg")+'">'),container.find(">ul").addClass("tp-revslider-mainul"),opt.c=container,opt.ul=container.find(".tp-revslider-mainul"),opt.ul.find(">li").each(function(e){var t=jQuery(this);"on"==t.data("hideslideonmobile")&&_ISM&&t.remove(),(t.data("invisible")||t.data("invisible")===!0)&&(t.addClass("tp-invisible-slide"),t.appendTo(opt.ul))}),opt.addons!=undefined&&opt.addons.length>0&&jQuery.each(opt.addons,function(i,obj){"object"==typeof obj&&obj.init!=undefined&&_R[obj.init](eval(obj.params))}),opt.cid=container.attr("id"),opt.ul.css({visibility:"visible"}),opt.slideamount=opt.ul.find(">li").not(".tp-invisible-slide").length,opt.slayers=container.find(".tp-static-layers"),void(1!=opt.waitForInit&&(container.data("opt",opt),runSlider(container,opt))))},onFullScreenChange=function(){jQuery("body").data("rs-fullScreenMode",!jQuery("body").data("rs-fullScreenMode")),jQuery("body").data("rs-fullScreenMode")&&setTimeout(function(){jQuery(window).trigger("resize")},200)},runSlider=function(e,t){if(t.sliderisrunning=!0,t.ul.find(">li").each(function(e){jQuery(this).data("originalindex",e)}),"on"==t.shuffle){var i=new Object,n=t.ul.find(">li:first-child");i.fstransition=n.data("fstransition"),i.fsmasterspeed=n.data("fsmasterspeed"),i.fsslotamount=n.data("fsslotamount");for(var a=0;a<t.slideamount;a++){var r=Math.round(Math.random()*t.slideamount);t.ul.find(">li:eq("+r+")").prependTo(t.ul)}var o=t.ul.find(">li:first-child");o.data("fstransition",i.fstransition),o.data("fsmasterspeed",i.fsmasterspeed),o.data("fsslotamount",i.fsslotamount),t.li=t.ul.find(">li").not(".tp-invisible-slide")}if(t.allli=t.ul.find(">li"),t.li=t.ul.find(">li").not(".tp-invisible-slide"),t.inli=t.ul.find(">li.tp-invisible-slide"),t.thumbs=new Array,t.slots=4,t.act=-1,t.firststart=1,t.loadqueue=new Array,t.syncload=0,t.conw=e.width(),t.conh=e.height(),t.responsiveLevels.length>1?t.responsiveLevels[0]=9999:t.responsiveLevels=9999,jQuery.each(t.allli,function(e,i){var i=jQuery(i),n=i.find(".rev-slidebg")||i.find("img").first(),a=0;i.addClass("tp-revslider-slidesli"),i.data("index")===undefined&&i.data("index","rs-"+Math.round(999999*Math.random()));var r=new Object;r.params=new Array,r.id=i.data("index"),r.src=i.data("thumb")!==undefined?i.data("thumb"):n.data("lazyload")!==undefined?n.data("lazyload"):n.attr("src"),i.data("title")!==undefined&&r.params.push({from:RegExp("\\{\\{title\\}\\}","g"),to:i.data("title")}),i.data("description")!==undefined&&r.params.push({from:RegExp("\\{\\{description\\}\\}","g"),to:i.data("description")});for(var a=1;10>=a;a++)i.data("param"+a)!==undefined&&r.params.push({from:RegExp("\\{\\{param"+a+"\\}\\}","g"),to:i.data("param"+a)});if(t.thumbs.push(r),i.data("origindex",i.index()),i.data("link")!=undefined){var o=i.data("link"),s=i.data("target")||"_self",d="back"===i.data("slideindex")?0:60,l=i.data("linktoslide"),u=l;l!=undefined&&"next"!=l&&"prev"!=l&&t.allli.each(function(){var e=jQuery(this);e.data("origindex")+1==u&&(l=e.data("index"))}),"slide"!=o&&(l="no");var c='<div class="tp-caption slidelink" style="cursor:pointer;width:100%;height:100%;z-index:'+d+';" data-x="center" data-y="center" data-basealign="slide" ',p="scroll_under"===l?'[{"event":"click","action":"scrollbelow","offset":"100px","delay":"0"}]':"prev"===l?'[{"event":"click","action":"jumptoslide","slide":"prev","delay":"0.2"}]':"next"===l?'[{"event":"click","action":"jumptoslide","slide":"next","delay":"0.2"}]':'[{"event":"click","action":"jumptoslide","slide":"'+l+'","delay":"0.2"}]';c="no"==l?c+' data-start="0">':c+"data-actions='"+p+'\' data-start="0">',c+='<a style="width:100%;height:100%;display:block"',c="slide"!=o?c+' target="'+s+'" href="'+o+'"':c,c+='><span style="width:100%;height:100%;display:block"></span></a></div>',i.append(c)}}),t.rle=t.responsiveLevels.length||1,t.gridwidth=cArray(t.gridwidth,t.rle),t.gridheight=cArray(t.gridheight,t.rle),"on"==t.simplifyAll&&(_R.isIE(8)||_R.iOSVersion())&&(e.find(".tp-caption").each(function(){var e=jQuery(this);e.removeClass("customin customout").addClass("fadein fadeout"),e.data("splitin",""),e.data("speed",400)}),t.allli.each(function(){var e=jQuery(this);e.data("transition","fade"),e.data("masterspeed",500),e.data("slotamount",1);var t=e.find(".rev-slidebg")||e.find(">img").first();t.data("kenburns","off")})),t.desktop=!navigator.userAgent.match(/(iPhone|iPod|iPad|Android|BlackBerry|BB10|mobi|tablet|opera mini|nexus 7)/i),t.autoHeight="fullscreen"==t.sliderLayout?"on":t.autoHeight,"fullwidth"==t.sliderLayout&&"off"==t.autoHeight&&e.css({maxHeight:t.gridheight[t.curWinRange]+"px"}),"auto"!=t.sliderLayout&&0==e.closest(".forcefullwidth_wrapper_tp_banner").length&&("fullscreen"!==t.sliderLayout||"on"!=t.fullScreenAutoWidth)){var s=e.parent(),d=s.css("marginBottom"),l=s.css("marginTop"),u=e.attr("id")+"_forcefullwidth";d=d===undefined?0:d,l=l===undefined?0:l,s.wrap('<div class="forcefullwidth_wrapper_tp_banner" id="'+u+'" style="position:relative;width:100%;height:auto;margin-top:'+l+";margin-bottom:"+d+'"></div>'),e.closest(".forcefullwidth_wrapper_tp_banner").append('<div class="tp-fullwidth-forcer" style="width:100%;height:'+e.height()+'px"></div>'),e.parent().css({marginTop:"0px",marginBottom:"0px"}),e.parent().css({position:"absolute"})}if(t.shadow!==undefined&&t.shadow>0&&(e.parent().addClass("tp-shadow"+t.shadow),e.parent().append('<div class="tp-shadowcover"></div>'),e.parent().find(".tp-shadowcover").css({backgroundColor:e.parent().css("backgroundColor"),backgroundImage:e.parent().css("backgroundImage")})),setCurWinRange(t),setCurWinRange(t,!0),!e.hasClass("revslider-initialised")){e.addClass("revslider-initialised"),e.addClass("tp-simpleresponsive"),e.attr("id")==undefined&&e.attr("id","revslider-"+Math.round(1e3*Math.random()+5)),t.firefox13=!1,t.ie=!jQuery.support.opacity,t.ie9=9==document.documentMode,t.origcd=t.delay;var c=jQuery.fn.jquery.split("."),p=parseFloat(c[0]),f=parseFloat(c[1]);parseFloat(c[2]||"0");1==p&&7>f&&e.html('<div style="text-align:center; padding:40px 0px; font-size:20px; color:#992222;"> The Current Version of jQuery:'+c+" <br>Please update your jQuery Version to min. 1.7 in Case you wish to use the Revolution Slider Plugin</div>"),p>1&&(t.ie=!1);var h=new Object;h.addedyt=0,h.addedvim=0,h.addedvid=0,e.find(".tp-caption, .rs-background-video-layer").each(function(e){var i=jQuery(this),n=i.data("autoplayonlyfirsttime"),a=i.data("autoplay"),r=i.hasClass("tp-audiolayer"),o=i.data("videoloop");i.hasClass("tp-static-layer")&&_R.handleStaticLayers&&_R.handleStaticLayers(i,t);var s=i.data("noposteronmobile")||i.data("noPosterOnMobile")||i.data("posteronmobile")||i.data("posterOnMobile")||i.data("posterOnMObile");i.data("noposteronmobile",s);var d=0;if(i.find("iframe").each(function(){punchgs.TweenLite.set(jQuery(this),{autoAlpha:0}),d++}),d>0&&i.data("iframes",!0),i.hasClass("tp-caption")){var l=i.hasClass("slidelink")?"width:100% !important;height:100% !important;":"";i.wrap('<div class="tp-parallax-wrap" style="'+l+'position:absolute;visibility:hidden"><div class="tp-loop-wrap" style="'+l+'position:absolute;"><div class="tp-mask-wrap" style="'+l+'position:absolute" ></div></div></div>');var u=["pendulum","rotate","slideloop","pulse","wave"],c=i.closest(".tp-loop-wrap");jQuery.each(u,function(e,t){var n=i.find(".rs-"+t),a=n.data()||"";""!=a&&(c.data(a),c.addClass("rs-"+t),n.children(0).unwrap(),i.data("loopanimation","on"))}),punchgs.TweenLite.set(i,{visibility:"hidden"})}var p=i.data("actions");p!==undefined&&_R.checkActions(i,t,p),checkHoverDependencies(i,t),_R.checkVideoApis&&(h=_R.checkVideoApis(i,t,h)),_ISM&&((1==n||"true"==n)&&(i.data("autoplayonlyfirsttime","false"),n=!1),(1==a||"true"==a||"on"==a||"1sttime"==a)&&(i.data("autoplay","off"),a="off")),i.data("videoloop",o),r||1!=n&&"true"!=n&&"1sttime"!=a||"loopandnoslidestop"==o||i.closest("li.tp-revslider-slidesli").addClass("rs-pause-timer-once"),r||1!=a&&"true"!=a&&"on"!=a&&"no1sttime"!=a||"loopandnoslidestop"==o||i.closest("li.tp-revslider-slidesli").addClass("rs-pause-timer-always")}),e[0].addEventListener("mouseenter",function(){e.trigger("tp-mouseenter"),t.overcontainer=!0},{passive:!0}),e[0].addEventListener("mouseover",function(){e.trigger("tp-mouseover"),t.overcontainer=!0},{passive:!0}),e[0].addEventListener("mouseleave",function(){e.trigger("tp-mouseleft"),t.overcontainer=!1},{passive:!0}),e.find(".tp-caption video").each(function(e){var t=jQuery(this);t.removeClass("video-js vjs-default-skin"),t.attr("preload",""),t.css({display:"none"})}),"standard"!==t.sliderType&&(t.lazyType="all"),loadImages(e.find(".tp-static-layers"),t,0,!0),waitForCurrentImages(e.find(".tp-static-layers"),t,function(){e.find(".tp-static-layers img").each(function(){var e=jQuery(this),i=e.data("lazyload")!=undefined?e.data("lazyload"):e.attr("src"),n=getLoadObj(t,i);e.attr("src",n.src)})}),t.allli.each(function(e){var i=jQuery(this);("all"==t.lazyType||"smart"==t.lazyType&&(0==e||1==e||e==t.slideamount||e==t.slideamount-1))&&(loadImages(i,t,e),waitForCurrentImages(i,t,function(){"carousel"==t.sliderType&&punchgs.TweenLite.to(i,1,{autoAlpha:1,ease:punchgs.Power3.easeInOut})}))});var g=getUrlVars("#")[0];if(g.length<9&&g.split("slide").length>1){var v=parseInt(g.split("slide")[1],0);1>v&&(v=1),v>t.slideamount&&(v=t.slideamount),t.startWithSlide=v-1}e.append('<div class="tp-loader '+t.spinner+'"><div class="dot1"></div><div class="dot2"></div><div class="bounce1"></div><div class="bounce2"></div><div class="bounce3"></div></div>'),0===e.find(".tp-bannertimer").length&&e.append('<div class="tp-bannertimer" style="visibility:hidden"></div>'),e.find(".tp-bannertimer").css({width:"0%"}),e.find(".tp-bannertimer").data("opt",t),t.ul.css({display:"block"}),prepareSlides(e,t),"off"!==t.parallax.type&&_R.checkForParallax&&_R.checkForParallax(e,t),_R.setSize(t),"hero"!==t.sliderType&&_R.createNavigation&&_R.createNavigation(e,t),_R.resizeThumbsTabs&&_R.resizeThumbsTabs&&_R.resizeThumbsTabs(t),contWidthManager(t);var m=t.viewPort;t.inviewport=!1,m!=undefined&&m.enable&&(jQuery.isNumeric(m.visible_area)||-1!==m.visible_area.indexOf("%")&&(m.visible_area=parseInt(m.visible_area)/100),_R.scrollTicker&&_R.scrollTicker(t,e)),setTimeout(function(){"carousel"==t.sliderType&&_R.prepareCarousel&&_R.prepareCarousel(t),
!m.enable||m.enable&&t.inviewport||m.enable&&!t.inviewport&&"wait"==!m.outof?swapSlide(e,t):t.waitForFirstSlide=!0,_R.manageNavigation&&_R.manageNavigation(t),t.slideamount>1&&(!m.enable||m.enable&&t.inviewport?countDown(e,t):t.waitForCountDown=!0),setTimeout(function(){e.trigger("revolution.slide.onloaded")},100)},t.startDelay),t.startDelay=0,jQuery("body").data("rs-fullScreenMode",!1),window.addEventListener("fullscreenchange",onFullScreenChange,{passive:!0}),window.addEventListener("mozfullscreenchange",onFullScreenChange,{passive:!0}),window.addEventListener("webkitfullscreenchange",onFullScreenChange,{passive:!0});var y="resize.revslider-"+e.attr("id");jQuery(window).on(y,function(){if(console.log("happening"),e==undefined)return!1;0!=jQuery("body").find(e)&&contWidthManager(t);var i=!1;if("fullscreen"==t.sliderLayout){var n=jQuery(window).height();"mobile"==t.fallbacks.ignoreHeightChanges&&_ISM||"always"==t.fallbacks.ignoreHeightChanges?(t.fallbacks.ignoreHeightChangesSize=t.fallbacks.ignoreHeightChangesSize==undefined?0:t.fallbacks.ignoreHeightChangesSize,i=n!=t.lastwindowheight&&Math.abs(n-t.lastwindowheight)>t.fallbacks.ignoreHeightChangesSize):i=n!=t.lastwindowheight}(e.outerWidth(!0)!=t.width||e.is(":hidden")||i)&&(t.lastwindowheight=jQuery(window).height(),containerResized(e,t))}),hideSliderUnder(e,t),contWidthManager(t),t.fallbacks.disableFocusListener||"true"==t.fallbacks.disableFocusListener||t.fallbacks.disableFocusListener===!0||tabBlurringCheck(e,t)}},cArray=function(e,t){if(!jQuery.isArray(e)){var i=e;e=new Array,e.push(i)}if(e.length<t)for(var i=e[e.length-1],n=0;n<t-e.length+2;n++)e.push(i);return e},checkHoverDependencies=function(e,t){"sliderenter"===e.data("start")&&(t.layersonhover===undefined&&(t.c.on("tp-mouseenter",function(){t.layersonhover&&jQuery.each(t.layersonhover,function(e,i){i.data("animdirection","in");var n=i.data("timeline_out"),a="carousel"===t.sliderType?0:t.width/2-t.gridwidth[t.curWinRange]*t.bw/2,r=0,o=i.closest(".tp-revslider-slidesli"),s=i.closest(".tp-static-layers");if(o.length>0&&o.hasClass("active-revslide")||o.hasClass("processing-revslide")||s.length>0){n!=undefined&&(n.pause(0),n.kill()),_R.animateSingleCaption(i,t,a,r,0,!1,!0);var d=i.data("timeline");i.data("triggerstate","on"),d.play(0)}})}),t.c.on("tp-mouseleft",function(){t.layersonhover&&jQuery.each(t.layersonhover,function(e,i){i.data("animdirection","out"),i.data("triggered",!0),i.data("triggerstate","off"),_R.stopVideo&&_R.stopVideo(i,t),_R.endMoveCaption&&_R.endMoveCaption(i,null,null,t)})}),t.layersonhover=new Array),t.layersonhover.push(e))},contWidthManager=function(e){var t=_R.getHorizontalOffset(e.c,"left");if("auto"==e.sliderLayout||"fullscreen"===e.sliderLayout&&"on"==e.fullScreenAutoWidth)"fullscreen"==e.sliderLayout&&"on"==e.fullScreenAutoWidth?punchgs.TweenLite.set(e.ul,{left:0,width:e.c.width()}):punchgs.TweenLite.set(e.ul,{left:t,width:e.c.width()-_R.getHorizontalOffset(e.c,"both")});else{var i=Math.ceil(e.c.closest(".forcefullwidth_wrapper_tp_banner").offset().left-t);punchgs.TweenLite.set(e.c.parent(),{left:0-i+"px",width:jQuery(window).width()-_R.getHorizontalOffset(e.c,"both")})}e.slayers&&"fullwidth"!=e.sliderLayout&&"fullscreen"!=e.sliderLayout&&punchgs.TweenLite.set(e.slayers,{left:t})},cv=function(e,t){return e===undefined?t:e},hideSliderUnder=function(e,t,i){var n=e.parent();jQuery(window).width()<t.hideSliderAtLimit?(e.trigger("stoptimer"),"none"!=n.css("display")&&n.data("olddisplay",n.css("display")),n.css({display:"none"})):e.is(":hidden")&&i&&(n.data("olddisplay")!=undefined&&"undefined"!=n.data("olddisplay")&&"none"!=n.data("olddisplay")?n.css({display:n.data("olddisplay")}):n.css({display:"block"}),e.trigger("restarttimer"),setTimeout(function(){containerResized(e,t)},150)),_R.hideUnHideNav&&_R.hideUnHideNav(t)},containerResized=function(e,t){if(1==t.infullscreenmode&&(t.minHeight=jQuery(window).height()),setCurWinRange(t),setCurWinRange(t,!0),!_R.resizeThumbsTabs||_R.resizeThumbsTabs(t)===!0){if(hideSliderUnder(e,t,!0),contWidthManager(t),"carousel"==t.sliderType&&_R.prepareCarousel(t,!0),e===undefined)return!1;_R.setSize(t),t.conw=t.c.width(),t.conh=t.infullscreenmode?t.minHeight:t.c.height();var i=e.find(".active-revslide .slotholder"),n=e.find(".processing-revslide .slotholder");removeSlots(e,t,e,2),"standard"===t.sliderType&&(punchgs.TweenLite.set(n.find(".defaultimg"),{opacity:0}),i.find(".defaultimg").css({opacity:1})),"carousel"==t.sliderType&&t.lastconw!=t.conw&&(clearTimeout(t.pcartimer),t.pcartimer=setTimeout(function(){_R.prepareCarousel(t,!0)},100),t.lastconw=t.conw),_R.manageNavigation&&_R.manageNavigation(t),_R.animateTheCaptions&&_R.animateTheCaptions(e.find(".active-revslide"),t,!0),"on"==n.data("kenburns")&&_R.startKenBurn(n,t,n.data("kbtl").progress()),"on"==i.data("kenburns")&&_R.startKenBurn(i,t,i.data("kbtl").progress()),_R.animateTheCaptions&&_R.animateTheCaptions(n.closest("li"),t,!0),_R.manageNavigation&&_R.manageNavigation(t)}},setScale=function(e){e.bw=e.width/e.gridwidth[e.curWinRange],e.bh=e.height/e.gridheight[e.curWinRange],e.bh>e.bw?e.bh=e.bw:e.bw=e.bh,(e.bh>1||e.bw>1)&&(e.bw=1,e.bh=1)},prepareSlides=function(e,t){if(e.find(".tp-caption").each(function(){var e=jQuery(this);e.data("transition")!==undefined&&e.addClass(e.data("transition"))}),t.ul.css({overflow:"hidden",width:"100%",height:"100%",maxHeight:e.parent().css("maxHeight")}),"on"==t.autoHeight&&(t.ul.css({overflow:"hidden",width:"100%",height:"100%",maxHeight:"none"}),e.css({maxHeight:"none"}),e.parent().css({maxHeight:"none"})),t.allli.each(function(e){var i=jQuery(this),n=i.data("originalindex");(t.startWithSlide!=undefined&&n==t.startWithSlide||t.startWithSlide===undefined&&0==e)&&i.addClass("next-revslide"),i.css({width:"100%",height:"100%",overflow:"hidden"})}),"carousel"===t.sliderType){t.ul.css({overflow:"visible"}).wrap('<div class="tp-carousel-wrapper" style="width:100%;height:100%;position:absolute;top:0px;left:0px;overflow:hidden;"></div>');var i='<div style="clear:both;display:block;width:100%;height:1px;position:relative;margin-bottom:-1px"></div>';t.c.parent().prepend(i),t.c.parent().append(i),_R.prepareCarousel(t)}e.parent().css({overflow:"visible"}),t.allli.find(">img").each(function(e){var i=jQuery(this),n=i.closest("li").find(".rs-background-video-layer");n.addClass("defaultvid").css({zIndex:30}),i.addClass("defaultimg"),"on"==t.fallbacks.panZoomDisableOnMobile&&_ISM&&(i.data("kenburns","off"),i.data("bgfit","cover")),i.wrap('<div class="slotholder" style="position:absolute; top:0px; left:0px; z-index:0;width:100%;height:100%;"></div>'),n.appendTo(i.closest("li").find(".slotholder"));var a=i.data();i.closest(".slotholder").data(a),n.length>0&&a.bgparallax!=undefined&&n.data("bgparallax",a.bgparallax),"none"!=t.dottedOverlay&&t.dottedOverlay!=undefined&&i.closest(".slotholder").append('<div class="tp-dottedoverlay '+t.dottedOverlay+'"></div>');var r=i.attr("src");a.src=r,a.bgfit=a.bgfit||"cover",a.bgrepeat=a.bgrepeat||"no-repeat",a.bgposition=a.bgposition||"center center";var o=i.closest(".slotholder");i.parent().append('<div class="tp-bgimg defaultimg" style="background-color:'+i.css("backgroundColor")+";background-repeat:"+a.bgrepeat+";background-image:url("+r+");background-size:"+a.bgfit+";background-position:"+a.bgposition+';width:100%;height:100%;"></div>');var s=document.createComment("Runtime Modification - Img tag is Still Available for SEO Goals in Source - "+i.get(0).outerHTML);i.replaceWith(s),i=o.find(".tp-bgimg"),i.data(a),i.attr("src",r),("standard"===t.sliderType||"undefined"===t.sliderType)&&i.css({opacity:0})})},removeSlots=function(e,t,i,n){t.removePrepare=t.removePrepare+n,i.find(".slot, .slot-circle-wrapper").each(function(){jQuery(this).remove()}),t.transition=0,t.removePrepare=0},cutParams=function(e){var t=e;return e!=undefined&&e.length>0&&(t=e.split("?")[0]),t},relativeRedir=function(e){return location.pathname.replace(/(.*)\/[^\/]*/,"$1/"+e)},abstorel=function(e,t){var i=e.split("/"),n=t.split("/");i.pop();for(var a=0;a<n.length;a++)"."!=n[a]&&(".."==n[a]?i.pop():i.push(n[a]));return i.join("/")},imgLoaded=function(e,t,i){t.syncload--,t.loadqueue&&jQuery.each(t.loadqueue,function(t,n){var a=n.src.replace(/\.\.\/\.\.\//gi,""),r=self.location.href,o=document.location.origin,s=r.substring(0,r.length-1)+"/"+a,d=o+"/"+a,l=abstorel(self.location.href,n.src);r=r.substring(0,r.length-1)+a,o+=a,(cutParams(o)===cutParams(decodeURIComponent(e.src))||cutParams(r)===cutParams(decodeURIComponent(e.src))||cutParams(l)===cutParams(decodeURIComponent(e.src))||cutParams(d)===cutParams(decodeURIComponent(e.src))||cutParams(s)===cutParams(decodeURIComponent(e.src))||cutParams(n.src)===cutParams(decodeURIComponent(e.src))||cutParams(n.src).replace(/^.*\/\/[^\/]+/,"")===cutParams(decodeURIComponent(e.src)).replace(/^.*\/\/[^\/]+/,"")||"file://"===window.location.origin&&cutParams(e.src).match(new RegExp(a)))&&(n.progress=i,n.width=e.width,n.height=e.height)}),progressImageLoad(t)},progressImageLoad=function(e){3!=e.syncload&&e.loadqueue&&jQuery.each(e.loadqueue,function(t,i){if(i.progress.match(/prepared/g)&&e.syncload<=3){if(e.syncload++,"img"==i.type){var n=new Image;n.onload=function(){imgLoaded(this,e,"loaded"),i.error=!1},n.onerror=function(){imgLoaded(this,e,"failed"),i.error=!0},n.src=i.src}else jQuery.get(i.src,function(t){i.innerHTML=(new XMLSerializer).serializeToString(t.documentElement),i.progress="loaded",e.syncload--,progressImageLoad(e)}).fail(function(){i.progress="failed",e.syncload--,progressImageLoad(e)});i.progress="inload"}})},addToLoadQueue=function(e,t,i,n,a){var r=!1;if(t.loadqueue&&jQuery.each(t.loadqueue,function(t,i){i.src===e&&(r=!0)}),!r){var o=new Object;o.src=e,o.starttoload=jQuery.now(),o.type=n||"img",o.prio=i,o.progress="prepared",o["static"]=a,t.loadqueue.push(o)}},loadImages=function(e,t,i,n){e.find("img,.defaultimg, .tp-svg-layer").each(function(){var e=jQuery(this),a=e.data("lazyload")!==undefined&&"undefined"!==e.data("lazyload")?e.data("lazyload"):e.data("svg_src")!=undefined?e.data("svg_src"):e.attr("src"),r=e.data("svg_src")!=undefined?"svg":"img";e.data("start-to-load",jQuery.now()),addToLoadQueue(a,t,i,r,n)}),progressImageLoad(t)},getLoadObj=function(e,t){var i=new Object;return e.loadqueue&&jQuery.each(e.loadqueue,function(e,n){n.src==t&&(i=n)}),i},waitForCurrentImages=function(e,t,i){var n=!1;e.find("img,.defaultimg, .tp-svg-layer").each(function(){var i=jQuery(this),a=i.data("lazyload")!=undefined?i.data("lazyload"):i.data("svg_src")!=undefined?i.data("svg_src"):i.attr("src"),r=getLoadObj(t,a);if(i.data("loaded")===undefined&&r!==undefined&&r.progress&&r.progress.match(/loaded/g)){if(i.attr("src",r.src),"img"==r.type)if(i.hasClass("defaultimg"))_R.isIE(8)?defimg.attr("src",r.src):i.css({backgroundImage:'url("'+r.src+'")'}),e.data("owidth",r.width),e.data("oheight",r.height),e.find(".slotholder").data("owidth",r.width),e.find(".slotholder").data("oheight",r.height);else{var o=i.data("ww"),s=i.data("hh");i.data("owidth",r.width),i.data("oheight",r.height),o=o==undefined||"auto"==o||""==o?r.width:o,s=s==undefined||"auto"==s||""==s?r.height:s,i.data("ww",o),i.data("hh",s)}else"svg"==r.type&&"loaded"==r.progress&&(i.append('<div class="tp-svg-innercontainer"></div>'),i.find(".tp-svg-innercontainer").append(r.innerHTML));i.data("loaded",!0)}if(r&&r.progress&&r.progress.match(/inprogress|inload|prepared/g)&&(!r.error&&jQuery.now()-i.data("start-to-load")<5e3?n=!0:(r.progress="failed",r.reported_img||(r.reported_img=!0,console.warn(a+"  Could not be loaded !")))),1==t.youtubeapineeded&&(!window.YT||YT.Player==undefined)&&(n=!0,jQuery.now()-t.youtubestarttime>5e3&&1!=t.youtubewarning)){t.youtubewarning=!0;var d="YouTube Api Could not be loaded !";"https:"===location.protocol&&(d+=" Please Check and Renew SSL Certificate !"),console.error(d),t.c.append('<div style="position:absolute;top:50%;width:100%;color:#e74c3c;  font-size:16px; text-align:center; padding:15px;background:#000; display:block;"><strong>'+d+"</strong></div>")}if(1==t.vimeoapineeded&&!window.Froogaloop&&(n=!0,jQuery.now()-t.vimeostarttime>5e3&&1!=t.vimeowarning)){t.vimeowarning=!0;var d="Vimeo Froogaloop Api Could not be loaded !";"https:"===location.protocol&&(d+=" Please Check and Renew SSL Certificate !"),console.error(d),t.c.append('<div style="position:absolute;top:50%;width:100%;color:#e74c3c;  font-size:16px; text-align:center; padding:15px;background:#000; display:block;"><strong>'+d+"</strong></div>")}}),!_ISM&&t.audioqueue&&t.audioqueue.length>0&&jQuery.each(t.audioqueue,function(e,t){t.status&&"prepared"===t.status&&jQuery.now()-t.start<t.waittime&&(n=!0)}),jQuery.each(t.loadqueue,function(e,t){t["static"]!==!0||"loaded"==t.progress&&"failed"!==t.progress||("failed"==t.progress?t.reported||(t.reported=!0,console.warn("Static Image "+t.src+"  Could not be loaded in time. Error Exists:"+t.error)):!t.error&&jQuery.now()-t.starttoload<5e3?n=!0:t.reported||(t.reported=!0,console.warn("Static Image "+t.src+"  Could not be loaded within 5s! Error Exists:"+t.error)))}),n?setTimeout(function(){waitForCurrentImages(e,t,i)},19):setTimeout(i,19)},swapSlide=function(e,t){if(clearTimeout(t.waitWithSwapSlide),e.find(".processing-revslide").length>0)return t.waitWithSwapSlide=setTimeout(function(){swapSlide(e,t)},150),!1;var i=e.find(".active-revslide"),n=e.find(".next-revslide"),a=n.find(".defaultimg");return n.index()===i.index()?(n.removeClass("next-revslide"),!1):(n.removeClass("next-revslide").addClass("processing-revslide"),n.data("slide_on_focus_amount",n.data("slide_on_focus_amount")+1||1),"on"==t.stopLoop&&n.index()==t.lastslidetoshow-1&&(e.find(".tp-bannertimer").css({visibility:"hidden"}),e.trigger("revolution.slide.onstop"),t.noloopanymore=1),n.index()===t.slideamount-1&&(t.looptogo=t.looptogo-1,t.looptogo<=0&&(t.stopLoop="on")),t.tonpause=!0,e.trigger("stoptimer"),t.cd=0,"off"===t.spinner?e.find(".tp-loader").css({display:"none"}):e.find(".tp-loader").css({display:"block"}),loadImages(n,t,1),_R.preLoadAudio&&_R.preLoadAudio(n,t,1),void waitForCurrentImages(n,t,function(){n.find(".rs-background-video-layer").each(function(){var e=jQuery(this);e.hasClass("HasListener")||(e.data("bgvideo",1),_R.manageVideoLayer&&_R.manageVideoLayer(e,t)),0==e.find(".rs-fullvideo-cover").length&&e.append('<div class="rs-fullvideo-cover"></div>')}),swapSlideProgress(t,a,e)}))},swapSlideProgress=function(e,t,i){var n=i.find(".active-revslide"),a=i.find(".processing-revslide"),r=n.find(".slotholder"),o=a.find(".slotholder");e.tonpause=!1,e.cd=0,i.find(".tp-loader").css({display:"none"}),_R.setSize(e),_R.slotSize(t,e),_R.manageNavigation&&_R.manageNavigation(e);var s={};s.nextslide=a,s.currentslide=n,i.trigger("revolution.slide.onbeforeswap",s),e.transition=1,e.videoplaying=!1,a.data("delay")!=undefined?(e.cd=0,e.delay=a.data("delay")):e.delay=e.origcd,"true"==a.data("ssop")||a.data("ssop")===!0?e.ssop=!0:e.ssop=!1,i.trigger("nulltimer");var d=n.index(),l=a.index();e.sdir=d>l?1:0,"arrow"==e.sc_indicator&&(0==d&&l==e.slideamount-1&&(e.sdir=1),d==e.slideamount-1&&0==l&&(e.sdir=0)),e.lsdir=e.lsdir===undefined?e.sdir:e.lsdir,e.dirc=e.lsdir!=e.sdir,e.lsdir=e.sdir,n.index()!=a.index()&&1!=e.firststart&&_R.removeTheCaptions&&_R.removeTheCaptions(n,e),a.hasClass("rs-pause-timer-once")||a.hasClass("rs-pause-timer-always")?e.videoplaying=!0:i.trigger("restarttimer"),a.removeClass("rs-pause-timer-once");var u,c;if("carousel"==e.sliderType)c=new punchgs.TimelineLite,_R.prepareCarousel(e,c),letItFree(i,e,o,r,a,n,c),e.transition=0,e.firststart=0;else{c=new punchgs.TimelineLite({onComplete:function(){letItFree(i,e,o,r,a,n,c)}}),c.add(punchgs.TweenLite.set(o.find(".defaultimg"),{opacity:0})),c.pause(),1==e.firststart&&(punchgs.TweenLite.set(n,{autoAlpha:0}),e.firststart=0),punchgs.TweenLite.set(n,{zIndex:18}),punchgs.TweenLite.set(a,{autoAlpha:0,zIndex:20}),"prepared"==a.data("differentissplayed")&&(a.data("differentissplayed","done"),a.data("transition",a.data("savedtransition")),a.data("slotamount",a.data("savedslotamount")),a.data("masterspeed",a.data("savedmasterspeed"))),a.data("fstransition")!=undefined&&"done"!=a.data("differentissplayed")&&(a.data("savedtransition",a.data("transition")),a.data("savedslotamount",a.data("slotamount")),a.data("savedmasterspeed",a.data("masterspeed")),a.data("transition",a.data("fstransition")),a.data("slotamount",a.data("fsslotamount")),a.data("masterspeed",a.data("fsmasterspeed")),a.data("differentissplayed","prepared")),a.data("transition")==undefined&&a.data("transition","random"),u=0;var p=a.data("transition")!==undefined?a.data("transition").split(","):"fade",f=a.data("nexttransid")==undefined?-1:a.data("nexttransid");"on"==a.data("randomtransition")?f=Math.round(Math.random()*p.length):f+=1,f==p.length&&(f=0),a.data("nexttransid",f);var h=p[f];e.ie&&("boxfade"==h&&(h="boxslide"),"slotfade-vertical"==h&&(h="slotzoom-vertical"),"slotfade-horizontal"==h&&(h="slotzoom-horizontal")),_R.isIE(8)&&(h=11),c=_R.animateSlide(u,h,i,e,a,n,o,r,c),"on"==o.data("kenburns")&&(_R.startKenBurn(o,e),c.add(punchgs.TweenLite.set(o,{autoAlpha:0}))),c.pause()}_R.scrollHandling&&(_R.scrollHandling(e,!0),c.eventCallback("onUpdate",function(){_R.scrollHandling(e,!0)})),"off"!=e.parallax.type&&e.parallax.firstgo==undefined&&_R.scrollHandling&&(e.parallax.firstgo=!0,e.lastscrolltop=-999,_R.scrollHandling(e,!0),setTimeout(function(){e.lastscrolltop=-999,_R.scrollHandling(e,!0)},210),setTimeout(function(){e.lastscrolltop=-999,_R.scrollHandling(e,!0)},420)),_R.animateTheCaptions?_R.animateTheCaptions(a,e,null,c):c!=undefined&&setTimeout(function(){c.resume()},30),punchgs.TweenLite.to(a,.001,{autoAlpha:1})},letItFree=function(e,t,i,n,a,r,o){"carousel"===t.sliderType||(t.removePrepare=0,punchgs.TweenLite.to(i.find(".defaultimg"),.001,{zIndex:20,autoAlpha:1,onComplete:function(){removeSlots(e,t,a,1)}}),a.index()!=r.index()&&punchgs.TweenLite.to(r,.2,{zIndex:18,autoAlpha:0,onComplete:function(){removeSlots(e,t,r,1)}})),e.find(".active-revslide").removeClass("active-revslide"),e.find(".processing-revslide").removeClass("processing-revslide").addClass("active-revslide"),t.act=a.index(),t.c.attr("data-slideactive",e.find(".active-revslide").data("index")),("scroll"==t.parallax.type||"scroll+mouse"==t.parallax.type||"mouse+scroll"==t.parallax.type)&&(t.lastscrolltop=-999,_R.scrollHandling(t)),o.clear(),n.data("kbtl")!=undefined&&(n.data("kbtl").reverse(),n.data("kbtl").timeScale(25)),"on"==i.data("kenburns")&&(i.data("kbtl")!=undefined?(i.data("kbtl").timeScale(1),i.data("kbtl").play()):_R.startKenBurn(i,t)),a.find(".rs-background-video-layer").each(function(e){if(_ISM)return!1;var i=jQuery(this);_R.resetVideo(i,t),punchgs.TweenLite.fromTo(i,1,{autoAlpha:0},{autoAlpha:1,ease:punchgs.Power3.easeInOut,delay:.2,onComplete:function(){_R.animcompleted&&_R.animcompleted(i,t)}})}),r.find(".rs-background-video-layer").each(function(e){if(_ISM)return!1;var i=jQuery(this);_R.stopVideo&&(_R.resetVideo(i,t),_R.stopVideo(i,t)),punchgs.TweenLite.to(i,1,{autoAlpha:0,ease:punchgs.Power3.easeInOut,delay:.2})});var s={};s.slideIndex=a.index()+1,s.slideLIIndex=a.index(),s.slide=a,s.currentslide=a,s.prevslide=r,t.last_shown_slide=r.index(),e.trigger("revolution.slide.onchange",s),e.trigger("revolution.slide.onafterswap",s),t.duringslidechange=!1;var d=r.data("slide_on_focus_amount"),l=r.data("hideafterloop");0!=l&&d>=l&&t.c.revremoveslide(r.index())},removeAllListeners=function(e,t){e.children().each(function(){try{jQuery(this).die("click")}catch(e){}try{jQuery(this).die("mouseenter")}catch(e){}try{jQuery(this).die("mouseleave")}catch(e){}try{jQuery(this).unbind("hover")}catch(e){}});try{e.die("click","mouseenter","mouseleave")}catch(i){}clearInterval(t.cdint),e=null},countDown=function(e,t){t.cd=0,t.loop=0,t.stopAfterLoops!=undefined&&t.stopAfterLoops>-1?t.looptogo=t.stopAfterLoops:t.looptogo=9999999,t.stopAtSlide!=undefined&&t.stopAtSlide>-1?t.lastslidetoshow=t.stopAtSlide:t.lastslidetoshow=999,t.stopLoop="off",0==t.looptogo&&(t.stopLoop="on");var i=e.find(".tp-bannertimer");e.on("stoptimer",function(){var e=jQuery(this).find(".tp-bannertimer");e.data("tween").pause(),"on"==t.disableProgressBar&&e.css({visibility:"hidden"}),t.sliderstatus="paused",_R.unToggleState(t.slidertoggledby)}),e.on("starttimer",function(){t.forcepause_viatoggle||(1!=t.conthover&&1!=t.videoplaying&&t.width>t.hideSliderAtLimit&&1!=t.tonpause&&1!=t.overnav&&1!=t.ssop&&(1===t.noloopanymore||t.viewPort.enable&&!t.inviewport||(i.css({visibility:"visible"}),i.data("tween").resume(),t.sliderstatus="playing")),"on"==t.disableProgressBar&&i.css({visibility:"hidden"}),_R.toggleState(t.slidertoggledby))}),e.on("restarttimer",function(){if(!t.forcepause_viatoggle){var e=jQuery(this).find(".tp-bannertimer");if(t.mouseoncontainer&&"on"==t.navigation.onHoverStop&&!_ISM)return!1;1===t.noloopanymore||t.viewPort.enable&&!t.inviewport||1==t.ssop||(e.css({visibility:"visible"}),e.data("tween").kill(),e.data("tween",punchgs.TweenLite.fromTo(e,t.delay/1e3,{width:"0%"},{force3D:"auto",width:"100%",ease:punchgs.Linear.easeNone,onComplete:n,delay:1})),t.sliderstatus="playing"),"on"==t.disableProgressBar&&e.css({visibility:"hidden"}),_R.toggleState(t.slidertoggledby)}}),e.on("nulltimer",function(){i.data("tween").kill(),i.data("tween",punchgs.TweenLite.fromTo(i,t.delay/1e3,{width:"0%"},{force3D:"auto",width:"100%",ease:punchgs.Linear.easeNone,onComplete:n,delay:1})),i.data("tween").pause(0),"on"==t.disableProgressBar&&i.css({visibility:"hidden"}),t.sliderstatus="paused"});var n=function(){0==jQuery("body").find(e).length&&(removeAllListeners(e,t),clearInterval(t.cdint)),e.trigger("revolution.slide.slideatend"),1==e.data("conthover-changed")&&(t.conthover=e.data("conthover"),e.data("conthover-changed",0)),_R.callingNewSlide(t,e,1)};i.data("tween",punchgs.TweenLite.fromTo(i,t.delay/1e3,{width:"0%"},{force3D:"auto",width:"100%",ease:punchgs.Linear.easeNone,onComplete:n,delay:1})),i.data("opt",t),t.slideamount>1&&(0!=t.stopAfterLoops||1!=t.stopAtSlide)?e.trigger("starttimer"):(t.noloopanymore=1,e.trigger("nulltimer")),e.on("tp-mouseenter",function(){t.mouseoncontainer=!0,"on"!=t.navigation.onHoverStop||_ISM||(e.trigger("stoptimer"),e.trigger("revolution.slide.onpause"))}),e.on("tp-mouseleft",function(){t.mouseoncontainer=!1,1!=e.data("conthover")&&"on"==t.navigation.onHoverStop&&(1==t.viewPort.enable&&t.inviewport||0==t.viewPort.enable)&&(e.trigger("revolution.slide.onresume"),e.trigger("starttimer"))})},vis=function(){var e,t,i={hidden:"visibilitychange",webkitHidden:"webkitvisibilitychange",mozHidden:"mozvisibilitychange",msHidden:"msvisibilitychange"};for(e in i)if(e in document){t=i[e];break}return function(i){return i&&document.addEventListener(t,i,{pasive:!0}),!document[e]}}(),restartOnFocus=function(e){return e==undefined||e.c==undefined?!1:void(1!=e.windowfocused&&(e.windowfocused=!0,punchgs.TweenLite.delayedCall(.3,function(){"on"==e.fallbacks.nextSlideOnWindowFocus&&e.c.revnext(),e.c.revredraw(),"playing"==e.lastsliderstatus&&e.c.revresume()})))},lastStatBlur=function(e){e.windowfocused=!1,e.lastsliderstatus=e.sliderstatus,e.c.revpause();var t=e.c.find(".active-revslide .slotholder"),i=e.c.find(".processing-revslide .slotholder");"on"==i.data("kenburns")&&_R.stopKenBurn(i,e),"on"==t.data("kenburns")&&_R.stopKenBurn(t,e)},tabBlurringCheck=function(e,t){var i=document.documentMode===undefined,n=window.chrome;i&&!n?jQuery(window).on("focusin",function(){restartOnFocus(t)}).on("focusout",function(){lastStatBlur(t)}):window.addEventListener?(window.addEventListener("focus",function(e){restartOnFocus(t)},{capture:!1,passive:!0}),window.addEventListener("blur",function(e){lastStatBlur(t)},{capture:!1,passive:!0})):(window.attachEvent("focus",function(e){restartOnFocus(t)}),window.attachEvent("blur",function(e){lastStatBlur(t)}))},getUrlVars=function(e){for(var t,i=[],n=window.location.href.slice(window.location.href.indexOf(e)+1).split("_"),a=0;a<n.length;a++)n[a]=n[a].replace("%3D","="),t=n[a].split("="),i.push(t[0]),i[t[0]]=t[1];return i}}(jQuery);
// source --> https://kkdomzale.si/wp-content/plugins/sportspress/assets/js/leaflet.js 
/* @preserve
 * Leaflet 1.9.4+v1.d15112c, a JS library for interactive maps. https://leafletjs.com
 * (c) 2010-2023 Vladimir Agafonkin, (c) 2010-2011 CloudMade
 */
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).leaflet={})}(this,function(t){"use strict";function l(t){for(var e,i,n=1,o=arguments.length;n<o;n++)for(e in i=arguments[n])t[e]=i[e];return t}var R=Object.create||function(t){return N.prototype=t,new N};function N(){}function a(t,e){var i,n=Array.prototype.slice;return t.bind?t.bind.apply(t,n.call(arguments,1)):(i=n.call(arguments,2),function(){return t.apply(e,i.length?i.concat(n.call(arguments)):arguments)})}var D=0;function h(t){return"_leaflet_id"in t||(t._leaflet_id=++D),t._leaflet_id}function j(t,e,i){var n,o,s=function(){n=!1,o&&(r.apply(i,o),o=!1)},r=function(){n?o=arguments:(t.apply(i,arguments),setTimeout(s,e),n=!0)};return r}function H(t,e,i){var n=e[1],e=e[0],o=n-e;return t===n&&i?t:((t-e)%o+o)%o+e}function u(){return!1}function i(t,e){return!1===e?t:(e=Math.pow(10,void 0===e?6:e),Math.round(t*e)/e)}function W(t){return t.trim?t.trim():t.replace(/^\s+|\s+$/g,"")}function F(t){return W(t).split(/\s+/)}function c(t,e){for(var i in Object.prototype.hasOwnProperty.call(t,"options")||(t.options=t.options?R(t.options):{}),e)t.options[i]=e[i];return t.options}function U(t,e,i){var n,o=[];for(n in t)o.push(encodeURIComponent(i?n.toUpperCase():n)+"="+encodeURIComponent(t[n]));return(e&&-1!==e.indexOf("?")?"&":"?")+o.join("&")}var V=/\{ *([\w_ -]+) *\}/g;function q(t,i){return t.replace(V,function(t,e){e=i[e];if(void 0===e)throw new Error("No value provided for variable "+t);return e="function"==typeof e?e(i):e})}var d=Array.isArray||function(t){return"[object Array]"===Object.prototype.toString.call(t)};function G(t,e){for(var i=0;i<t.length;i++)if(t[i]===e)return i;return-1}var K="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=";function Y(t){return window["webkit"+t]||window["moz"+t]||window["ms"+t]}var X=0;function J(t){var e=+new Date,i=Math.max(0,16-(e-X));return X=e+i,window.setTimeout(t,i)}var $=window.requestAnimationFrame||Y("RequestAnimationFrame")||J,Q=window.cancelAnimationFrame||Y("CancelAnimationFrame")||Y("CancelRequestAnimationFrame")||function(t){window.clearTimeout(t)};function x(t,e,i){if(!i||$!==J)return $.call(window,a(t,e));t.call(e)}function r(t){t&&Q.call(window,t)}var tt={__proto__:null,extend:l,create:R,bind:a,get lastId(){return D},stamp:h,throttle:j,wrapNum:H,falseFn:u,formatNum:i,trim:W,splitWords:F,setOptions:c,getParamString:U,template:q,isArray:d,indexOf:G,emptyImageUrl:K,requestFn:$,cancelFn:Q,requestAnimFrame:x,cancelAnimFrame:r};function et(){}et.extend=function(t){function e(){c(this),this.initialize&&this.initialize.apply(this,arguments),this.callInitHooks()}var i,n=e.__super__=this.prototype,o=R(n);for(i in(o.constructor=e).prototype=o,this)Object.prototype.hasOwnProperty.call(this,i)&&"prototype"!==i&&"__super__"!==i&&(e[i]=this[i]);if(t.statics&&l(e,t.statics),t.includes){var s=t.includes;if("undefined"!=typeof L&&L&&L.Mixin){s=d(s)?s:[s];for(var r=0;r<s.length;r++)s[r]===L.Mixin.Events&&console.warn("Deprecated include of L.Mixin.Events: this property will be removed in future releases, please inherit from L.Evented instead.",(new Error).stack)}l.apply(null,[o].concat(t.includes))}return l(o,t),delete o.statics,delete o.includes,o.options&&(o.options=n.options?R(n.options):{},l(o.options,t.options)),o._initHooks=[],o.callInitHooks=function(){if(!this._initHooksCalled){n.callInitHooks&&n.callInitHooks.call(this),this._initHooksCalled=!0;for(var t=0,e=o._initHooks.length;t<e;t++)o._initHooks[t].call(this)}},e},et.include=function(t){var e=this.prototype.options;return l(this.prototype,t),t.options&&(this.prototype.options=e,this.mergeOptions(t.options)),this},et.mergeOptions=function(t){return l(this.prototype.options,t),this},et.addInitHook=function(t){var e=Array.prototype.slice.call(arguments,1),i="function"==typeof t?t:function(){this[t].apply(this,e)};return this.prototype._initHooks=this.prototype._initHooks||[],this.prototype._initHooks.push(i),this};var e={on:function(t,e,i){if("object"==typeof t)for(var n in t)this._on(n,t[n],e);else for(var o=0,s=(t=F(t)).length;o<s;o++)this._on(t[o],e,i);return this},off:function(t,e,i){if(arguments.length)if("object"==typeof t)for(var n in t)this._off(n,t[n],e);else{t=F(t);for(var o=1===arguments.length,s=0,r=t.length;s<r;s++)o?this._off(t[s]):this._off(t[s],e,i)}else delete this._events;return this},_on:function(t,e,i,n){"function"!=typeof e?console.warn("wrong listener type: "+typeof e):!1===this._listens(t,e,i)&&(e={fn:e,ctx:i=i===this?void 0:i},n&&(e.once=!0),this._events=this._events||{},this._events[t]=this._events[t]||[],this._events[t].push(e))},_off:function(t,e,i){var n,o,s;if(this._events&&(n=this._events[t]))if(1===arguments.length){if(this._firingCount)for(o=0,s=n.length;o<s;o++)n[o].fn=u;delete this._events[t]}else"function"!=typeof e?console.warn("wrong listener type: "+typeof e):!1!==(e=this._listens(t,e,i))&&(i=n[e],this._firingCount&&(i.fn=u,this._events[t]=n=n.slice()),n.splice(e,1))},fire:function(t,e,i){if(this.listens(t,i)){var n=l({},e,{type:t,target:this,sourceTarget:e&&e.sourceTarget||this});if(this._events){var o=this._events[t];if(o){this._firingCount=this._firingCount+1||1;for(var s=0,r=o.length;s<r;s++){var a=o[s],h=a.fn;a.once&&this.off(t,h,a.ctx),h.call(a.ctx||this,n)}this._firingCount--}}i&&this._propagateEvent(n)}return this},listens:function(t,e,i,n){"string"!=typeof t&&console.warn('"string" type argument expected');var o=e,s=("function"!=typeof e&&(n=!!e,i=o=void 0),this._events&&this._events[t]);if(s&&s.length&&!1!==this._listens(t,o,i))return!0;if(n)for(var r in this._eventParents)if(this._eventParents[r].listens(t,e,i,n))return!0;return!1},_listens:function(t,e,i){if(this._events){var n=this._events[t]||[];if(!e)return!!n.length;i===this&&(i=void 0);for(var o=0,s=n.length;o<s;o++)if(n[o].fn===e&&n[o].ctx===i)return o}return!1},once:function(t,e,i){if("object"==typeof t)for(var n in t)this._on(n,t[n],e,!0);else for(var o=0,s=(t=F(t)).length;o<s;o++)this._on(t[o],e,i,!0);return this},addEventParent:function(t){return this._eventParents=this._eventParents||{},this._eventParents[h(t)]=t,this},removeEventParent:function(t){return this._eventParents&&delete this._eventParents[h(t)],this},_propagateEvent:function(t){for(var e in this._eventParents)this._eventParents[e].fire(t.type,l({layer:t.target,propagatedFrom:t.target},t),!0)}},it=(e.addEventListener=e.on,e.removeEventListener=e.clearAllEventListeners=e.off,e.addOneTimeEventListener=e.once,e.fireEvent=e.fire,e.hasEventListeners=e.listens,et.extend(e));function p(t,e,i){this.x=i?Math.round(t):t,this.y=i?Math.round(e):e}var nt=Math.trunc||function(t){return 0<t?Math.floor(t):Math.ceil(t)};function m(t,e,i){return t instanceof p?t:d(t)?new p(t[0],t[1]):null==t?t:"object"==typeof t&&"x"in t&&"y"in t?new p(t.x,t.y):new p(t,e,i)}function f(t,e){if(t)for(var i=e?[t,e]:t,n=0,o=i.length;n<o;n++)this.extend(i[n])}function _(t,e){return!t||t instanceof f?t:new f(t,e)}function s(t,e){if(t)for(var i=e?[t,e]:t,n=0,o=i.length;n<o;n++)this.extend(i[n])}function g(t,e){return t instanceof s?t:new s(t,e)}function v(t,e,i){if(isNaN(t)||isNaN(e))throw new Error("Invalid LatLng object: ("+t+", "+e+")");this.lat=+t,this.lng=+e,void 0!==i&&(this.alt=+i)}function w(t,e,i){return t instanceof v?t:d(t)&&"object"!=typeof t[0]?3===t.length?new v(t[0],t[1],t[2]):2===t.length?new v(t[0],t[1]):null:null==t?t:"object"==typeof t&&"lat"in t?new v(t.lat,"lng"in t?t.lng:t.lon,t.alt):void 0===e?null:new v(t,e,i)}p.prototype={clone:function(){return new p(this.x,this.y)},add:function(t){return this.clone()._add(m(t))},_add:function(t){return this.x+=t.x,this.y+=t.y,this},subtract:function(t){return this.clone()._subtract(m(t))},_subtract:function(t){return this.x-=t.x,this.y-=t.y,this},divideBy:function(t){return this.clone()._divideBy(t)},_divideBy:function(t){return this.x/=t,this.y/=t,this},multiplyBy:function(t){return this.clone()._multiplyBy(t)},_multiplyBy:function(t){return this.x*=t,this.y*=t,this},scaleBy:function(t){return new p(this.x*t.x,this.y*t.y)},unscaleBy:function(t){return new p(this.x/t.x,this.y/t.y)},round:function(){return this.clone()._round()},_round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this},floor:function(){return this.clone()._floor()},_floor:function(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this},ceil:function(){return this.clone()._ceil()},_ceil:function(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this},trunc:function(){return this.clone()._trunc()},_trunc:function(){return this.x=nt(this.x),this.y=nt(this.y),this},distanceTo:function(t){var e=(t=m(t)).x-this.x,t=t.y-this.y;return Math.sqrt(e*e+t*t)},equals:function(t){return(t=m(t)).x===this.x&&t.y===this.y},contains:function(t){return t=m(t),Math.abs(t.x)<=Math.abs(this.x)&&Math.abs(t.y)<=Math.abs(this.y)},toString:function(){return"Point("+i(this.x)+", "+i(this.y)+")"}},f.prototype={extend:function(t){var e,i;if(t){if(t instanceof p||"number"==typeof t[0]||"x"in t)e=i=m(t);else if(e=(t=_(t)).min,i=t.max,!e||!i)return this;this.min||this.max?(this.min.x=Math.min(e.x,this.min.x),this.max.x=Math.max(i.x,this.max.x),this.min.y=Math.min(e.y,this.min.y),this.max.y=Math.max(i.y,this.max.y)):(this.min=e.clone(),this.max=i.clone())}return this},getCenter:function(t){return m((this.min.x+this.max.x)/2,(this.min.y+this.max.y)/2,t)},getBottomLeft:function(){return m(this.min.x,this.max.y)},getTopRight:function(){return m(this.max.x,this.min.y)},getTopLeft:function(){return this.min},getBottomRight:function(){return this.max},getSize:function(){return this.max.subtract(this.min)},contains:function(t){var e,i;return(t=("number"==typeof t[0]||t instanceof p?m:_)(t))instanceof f?(e=t.min,i=t.max):e=i=t,e.x>=this.min.x&&i.x<=this.max.x&&e.y>=this.min.y&&i.y<=this.max.y},intersects:function(t){t=_(t);var e=this.min,i=this.max,n=t.min,t=t.max,o=t.x>=e.x&&n.x<=i.x,t=t.y>=e.y&&n.y<=i.y;return o&&t},overlaps:function(t){t=_(t);var e=this.min,i=this.max,n=t.min,t=t.max,o=t.x>e.x&&n.x<i.x,t=t.y>e.y&&n.y<i.y;return o&&t},isValid:function(){return!(!this.min||!this.max)},pad:function(t){var e=this.min,i=this.max,n=Math.abs(e.x-i.x)*t,t=Math.abs(e.y-i.y)*t;return _(m(e.x-n,e.y-t),m(i.x+n,i.y+t))},equals:function(t){return!!t&&(t=_(t),this.min.equals(t.getTopLeft())&&this.max.equals(t.getBottomRight()))}},s.prototype={extend:function(t){var e,i,n=this._southWest,o=this._northEast;if(t instanceof v)i=e=t;else{if(!(t instanceof s))return t?this.extend(w(t)||g(t)):this;if(e=t._southWest,i=t._northEast,!e||!i)return this}return n||o?(n.lat=Math.min(e.lat,n.lat),n.lng=Math.min(e.lng,n.lng),o.lat=Math.max(i.lat,o.lat),o.lng=Math.max(i.lng,o.lng)):(this._southWest=new v(e.lat,e.lng),this._northEast=new v(i.lat,i.lng)),this},pad:function(t){var e=this._southWest,i=this._northEast,n=Math.abs(e.lat-i.lat)*t,t=Math.abs(e.lng-i.lng)*t;return new s(new v(e.lat-n,e.lng-t),new v(i.lat+n,i.lng+t))},getCenter:function(){return new v((this._southWest.lat+this._northEast.lat)/2,(this._southWest.lng+this._northEast.lng)/2)},getSouthWest:function(){return this._southWest},getNorthEast:function(){return this._northEast},getNorthWest:function(){return new v(this.getNorth(),this.getWest())},getSouthEast:function(){return new v(this.getSouth(),this.getEast())},getWest:function(){return this._southWest.lng},getSouth:function(){return this._southWest.lat},getEast:function(){return this._northEast.lng},getNorth:function(){return this._northEast.lat},contains:function(t){t=("number"==typeof t[0]||t instanceof v||"lat"in t?w:g)(t);var e,i,n=this._southWest,o=this._northEast;return t instanceof s?(e=t.getSouthWest(),i=t.getNorthEast()):e=i=t,e.lat>=n.lat&&i.lat<=o.lat&&e.lng>=n.lng&&i.lng<=o.lng},intersects:function(t){t=g(t);var e=this._southWest,i=this._northEast,n=t.getSouthWest(),t=t.getNorthEast(),o=t.lat>=e.lat&&n.lat<=i.lat,t=t.lng>=e.lng&&n.lng<=i.lng;return o&&t},overlaps:function(t){t=g(t);var e=this._southWest,i=this._northEast,n=t.getSouthWest(),t=t.getNorthEast(),o=t.lat>e.lat&&n.lat<i.lat,t=t.lng>e.lng&&n.lng<i.lng;return o&&t},toBBoxString:function(){return[this.getWest(),this.getSouth(),this.getEast(),this.getNorth()].join(",")},equals:function(t,e){return!!t&&(t=g(t),this._southWest.equals(t.getSouthWest(),e)&&this._northEast.equals(t.getNorthEast(),e))},isValid:function(){return!(!this._southWest||!this._northEast)}};var ot={latLngToPoint:function(t,e){t=this.projection.project(t),e=this.scale(e);return this.transformation._transform(t,e)},pointToLatLng:function(t,e){e=this.scale(e),t=this.transformation.untransform(t,e);return this.projection.unproject(t)},project:function(t){return this.projection.project(t)},unproject:function(t){return this.projection.unproject(t)},scale:function(t){return 256*Math.pow(2,t)},zoom:function(t){return Math.log(t/256)/Math.LN2},getProjectedBounds:function(t){var e;return this.infinite?null:(e=this.projection.bounds,t=this.scale(t),new f(this.transformation.transform(e.min,t),this.transformation.transform(e.max,t)))},infinite:!(v.prototype={equals:function(t,e){return!!t&&(t=w(t),Math.max(Math.abs(this.lat-t.lat),Math.abs(this.lng-t.lng))<=(void 0===e?1e-9:e))},toString:function(t){return"LatLng("+i(this.lat,t)+", "+i(this.lng,t)+")"},distanceTo:function(t){return st.distance(this,w(t))},wrap:function(){return st.wrapLatLng(this)},toBounds:function(t){var t=180*t/40075017,e=t/Math.cos(Math.PI/180*this.lat);return g([this.lat-t,this.lng-e],[this.lat+t,this.lng+e])},clone:function(){return new v(this.lat,this.lng,this.alt)}}),wrapLatLng:function(t){var e=this.wrapLng?H(t.lng,this.wrapLng,!0):t.lng;return new v(this.wrapLat?H(t.lat,this.wrapLat,!0):t.lat,e,t.alt)},wrapLatLngBounds:function(t){var e=t.getCenter(),i=this.wrapLatLng(e),n=e.lat-i.lat,e=e.lng-i.lng;return 0==n&&0==e?t:(i=t.getSouthWest(),t=t.getNorthEast(),new s(new v(i.lat-n,i.lng-e),new v(t.lat-n,t.lng-e)))}},st=l({},ot,{wrapLng:[-180,180],R:6371e3,distance:function(t,e){var i=Math.PI/180,n=t.lat*i,o=e.lat*i,s=Math.sin((e.lat-t.lat)*i/2),e=Math.sin((e.lng-t.lng)*i/2),t=s*s+Math.cos(n)*Math.cos(o)*e*e,i=2*Math.atan2(Math.sqrt(t),Math.sqrt(1-t));return this.R*i}}),rt=6378137,rt={R:rt,MAX_LATITUDE:85.0511287798,project:function(t){var e=Math.PI/180,i=this.MAX_LATITUDE,i=Math.max(Math.min(i,t.lat),-i),i=Math.sin(i*e);return new p(this.R*t.lng*e,this.R*Math.log((1+i)/(1-i))/2)},unproject:function(t){var e=180/Math.PI;return new v((2*Math.atan(Math.exp(t.y/this.R))-Math.PI/2)*e,t.x*e/this.R)},bounds:new f([-(rt=rt*Math.PI),-rt],[rt,rt])};function at(t,e,i,n){d(t)?(this._a=t[0],this._b=t[1],this._c=t[2],this._d=t[3]):(this._a=t,this._b=e,this._c=i,this._d=n)}function ht(t,e,i,n){return new at(t,e,i,n)}at.prototype={transform:function(t,e){return this._transform(t.clone(),e)},_transform:function(t,e){return t.x=(e=e||1)*(this._a*t.x+this._b),t.y=e*(this._c*t.y+this._d),t},untransform:function(t,e){return new p((t.x/(e=e||1)-this._b)/this._a,(t.y/e-this._d)/this._c)}};var lt=l({},st,{code:"EPSG:3857",projection:rt,transformation:ht(lt=.5/(Math.PI*rt.R),.5,-lt,.5)}),ut=l({},lt,{code:"EPSG:900913"});function ct(t){return document.createElementNS("http://www.w3.org/2000/svg",t)}function dt(t,e){for(var i,n,o,s,r="",a=0,h=t.length;a<h;a++){for(i=0,n=(o=t[a]).length;i<n;i++)r+=(i?"L":"M")+(s=o[i]).x+" "+s.y;r+=e?b.svg?"z":"x":""}return r||"M0 0"}var _t=document.documentElement.style,pt="ActiveXObject"in window,mt=pt&&!document.addEventListener,n="msLaunchUri"in navigator&&!("documentMode"in document),ft=y("webkit"),gt=y("android"),vt=y("android 2")||y("android 3"),yt=parseInt(/WebKit\/([0-9]+)|$/.exec(navigator.userAgent)[1],10),yt=gt&&y("Google")&&yt<537&&!("AudioNode"in window),xt=!!window.opera,wt=!n&&y("chrome"),bt=y("gecko")&&!ft&&!xt&&!pt,Pt=!wt&&y("safari"),Lt=y("phantom"),o="OTransition"in _t,Tt=0===navigator.platform.indexOf("Win"),Mt=pt&&"transition"in _t,zt="WebKitCSSMatrix"in window&&"m11"in new window.WebKitCSSMatrix&&!vt,_t="MozPerspective"in _t,Ct=!window.L_DISABLE_3D&&(Mt||zt||_t)&&!o&&!Lt,Zt="undefined"!=typeof orientation||y("mobile"),St=Zt&&ft,Et=Zt&&zt,kt=!window.PointerEvent&&window.MSPointerEvent,Ot=!(!window.PointerEvent&&!kt),At="ontouchstart"in window||!!window.TouchEvent,Bt=!window.L_NO_TOUCH&&(At||Ot),It=Zt&&xt,Rt=Zt&&bt,Nt=1<(window.devicePixelRatio||window.screen.deviceXDPI/window.screen.logicalXDPI),Dt=function(){var t=!1;try{var e=Object.defineProperty({},"passive",{get:function(){t=!0}});window.addEventListener("testPassiveEventSupport",u,e),window.removeEventListener("testPassiveEventSupport",u,e)}catch(t){}return t}(),jt=!!document.createElement("canvas").getContext,Ht=!(!document.createElementNS||!ct("svg").createSVGRect),Wt=!!Ht&&((Wt=document.createElement("div")).innerHTML="<svg/>","http://www.w3.org/2000/svg"===(Wt.firstChild&&Wt.firstChild.namespaceURI));function y(t){return 0<=navigator.userAgent.toLowerCase().indexOf(t)}var b={ie:pt,ielt9:mt,edge:n,webkit:ft,android:gt,android23:vt,androidStock:yt,opera:xt,chrome:wt,gecko:bt,safari:Pt,phantom:Lt,opera12:o,win:Tt,ie3d:Mt,webkit3d:zt,gecko3d:_t,any3d:Ct,mobile:Zt,mobileWebkit:St,mobileWebkit3d:Et,msPointer:kt,pointer:Ot,touch:Bt,touchNative:At,mobileOpera:It,mobileGecko:Rt,retina:Nt,passiveEvents:Dt,canvas:jt,svg:Ht,vml:!Ht&&function(){try{var t=document.createElement("div"),e=(t.innerHTML='<v:shape adj="1"/>',t.firstChild);return e.style.behavior="url(#default#VML)",e&&"object"==typeof e.adj}catch(t){return!1}}(),inlineSvg:Wt,mac:0===navigator.platform.indexOf("Mac"),linux:0===navigator.platform.indexOf("Linux")},Ft=b.msPointer?"MSPointerDown":"pointerdown",Ut=b.msPointer?"MSPointerMove":"pointermove",Vt=b.msPointer?"MSPointerUp":"pointerup",qt=b.msPointer?"MSPointerCancel":"pointercancel",Gt={touchstart:Ft,touchmove:Ut,touchend:Vt,touchcancel:qt},Kt={touchstart:function(t,e){e.MSPOINTER_TYPE_TOUCH&&e.pointerType===e.MSPOINTER_TYPE_TOUCH&&O(e);ee(t,e)},touchmove:ee,touchend:ee,touchcancel:ee},Yt={},Xt=!1;function Jt(t,e,i){return"touchstart"!==e||Xt||(document.addEventListener(Ft,$t,!0),document.addEventListener(Ut,Qt,!0),document.addEventListener(Vt,te,!0),document.addEventListener(qt,te,!0),Xt=!0),Kt[e]?(i=Kt[e].bind(this,i),t.addEventListener(Gt[e],i,!1),i):(console.warn("wrong event specified:",e),u)}function $t(t){Yt[t.pointerId]=t}function Qt(t){Yt[t.pointerId]&&(Yt[t.pointerId]=t)}function te(t){delete Yt[t.pointerId]}function ee(t,e){if(e.pointerType!==(e.MSPOINTER_TYPE_MOUSE||"mouse")){for(var i in e.touches=[],Yt)e.touches.push(Yt[i]);e.changedTouches=[e],t(e)}}var ie=200;function ne(t,i){t.addEventListener("dblclick",i);var n,o=0;function e(t){var e;1!==t.detail?n=t.detail:"mouse"===t.pointerType||t.sourceCapabilities&&!t.sourceCapabilities.firesTouchEvents||((e=Ne(t)).some(function(t){return t instanceof HTMLLabelElement&&t.attributes.for})&&!e.some(function(t){return t instanceof HTMLInputElement||t instanceof HTMLSelectElement})||((e=Date.now())-o<=ie?2===++n&&i(function(t){var e,i,n={};for(i in t)e=t[i],n[i]=e&&e.bind?e.bind(t):e;return(t=n).type="dblclick",n.detail=2,n.isTrusted=!1,n._simulated=!0,n}(t)):n=1,o=e))}return t.addEventListener("click",e),{dblclick:i,simDblclick:e}}var oe,se,re,ae,he,le,ue=we(["transform","webkitTransform","OTransform","MozTransform","msTransform"]),ce=we(["webkitTransition","transition","OTransition","MozTransition","msTransition"]),de="webkitTransition"===ce||"OTransition"===ce?ce+"End":"transitionend";function _e(t){return"string"==typeof t?document.getElementById(t):t}function pe(t,e){var i=t.style[e]||t.currentStyle&&t.currentStyle[e];return"auto"===(i=i&&"auto"!==i||!document.defaultView?i:(t=document.defaultView.getComputedStyle(t,null))?t[e]:null)?null:i}function P(t,e,i){t=document.createElement(t);return t.className=e||"",i&&i.appendChild(t),t}function T(t){var e=t.parentNode;e&&e.removeChild(t)}function me(t){for(;t.firstChild;)t.removeChild(t.firstChild)}function fe(t){var e=t.parentNode;e&&e.lastChild!==t&&e.appendChild(t)}function ge(t){var e=t.parentNode;e&&e.firstChild!==t&&e.insertBefore(t,e.firstChild)}function ve(t,e){return void 0!==t.classList?t.classList.contains(e):0<(t=xe(t)).length&&new RegExp("(^|\\s)"+e+"(\\s|$)").test(t)}function M(t,e){var i;if(void 0!==t.classList)for(var n=F(e),o=0,s=n.length;o<s;o++)t.classList.add(n[o]);else ve(t,e)||ye(t,((i=xe(t))?i+" ":"")+e)}function z(t,e){void 0!==t.classList?t.classList.remove(e):ye(t,W((" "+xe(t)+" ").replace(" "+e+" "," ")))}function ye(t,e){void 0===t.className.baseVal?t.className=e:t.className.baseVal=e}function xe(t){return void 0===(t=t.correspondingElement?t.correspondingElement:t).className.baseVal?t.className:t.className.baseVal}function C(t,e){if("opacity"in t.style)t.style.opacity=e;else if("filter"in t.style){var i=!1,n="DXImageTransform.Microsoft.Alpha";try{i=t.filters.item(n)}catch(t){if(1===e)return}e=Math.round(100*e),i?(i.Enabled=100!==e,i.Opacity=e):t.style.filter+=" progid:"+n+"(opacity="+e+")"}}function we(t){for(var e=document.documentElement.style,i=0;i<t.length;i++)if(t[i]in e)return t[i];return!1}function be(t,e,i){e=e||new p(0,0);t.style[ue]=(b.ie3d?"translate("+e.x+"px,"+e.y+"px)":"translate3d("+e.x+"px,"+e.y+"px,0)")+(i?" scale("+i+")":"")}function Z(t,e){t._leaflet_pos=e,b.any3d?be(t,e):(t.style.left=e.x+"px",t.style.top=e.y+"px")}function Pe(t){return t._leaflet_pos||new p(0,0)}function Le(){S(window,"dragstart",O)}function Te(){k(window,"dragstart",O)}function Me(t){for(;-1===t.tabIndex;)t=t.parentNode;t.style&&(ze(),le=(he=t).style.outlineStyle,t.style.outlineStyle="none",S(window,"keydown",ze))}function ze(){he&&(he.style.outlineStyle=le,le=he=void 0,k(window,"keydown",ze))}function Ce(t){for(;!((t=t.parentNode).offsetWidth&&t.offsetHeight||t===document.body););return t}function Ze(t){var e=t.getBoundingClientRect();return{x:e.width/t.offsetWidth||1,y:e.height/t.offsetHeight||1,boundingClientRect:e}}ae="onselectstart"in document?(re=function(){S(window,"selectstart",O)},function(){k(window,"selectstart",O)}):(se=we(["userSelect","WebkitUserSelect","OUserSelect","MozUserSelect","msUserSelect"]),re=function(){var t;se&&(t=document.documentElement.style,oe=t[se],t[se]="none")},function(){se&&(document.documentElement.style[se]=oe,oe=void 0)});pt={__proto__:null,TRANSFORM:ue,TRANSITION:ce,TRANSITION_END:de,get:_e,getStyle:pe,create:P,remove:T,empty:me,toFront:fe,toBack:ge,hasClass:ve,addClass:M,removeClass:z,setClass:ye,getClass:xe,setOpacity:C,testProp:we,setTransform:be,setPosition:Z,getPosition:Pe,get disableTextSelection(){return re},get enableTextSelection(){return ae},disableImageDrag:Le,enableImageDrag:Te,preventOutline:Me,restoreOutline:ze,getSizedParentNode:Ce,getScale:Ze};function S(t,e,i,n){if(e&&"object"==typeof e)for(var o in e)ke(t,o,e[o],i);else for(var s=0,r=(e=F(e)).length;s<r;s++)ke(t,e[s],i,n);return this}var E="_leaflet_events";function k(t,e,i,n){if(1===arguments.length)Se(t),delete t[E];else if(e&&"object"==typeof e)for(var o in e)Oe(t,o,e[o],i);else if(e=F(e),2===arguments.length)Se(t,function(t){return-1!==G(e,t)});else for(var s=0,r=e.length;s<r;s++)Oe(t,e[s],i,n);return this}function Se(t,e){for(var i in t[E]){var n=i.split(/\d/)[0];e&&!e(n)||Oe(t,n,null,null,i)}}var Ee={mouseenter:"mouseover",mouseleave:"mouseout",wheel:!("onwheel"in window)&&"mousewheel"};function ke(e,t,i,n){var o,s,r=t+h(i)+(n?"_"+h(n):"");e[E]&&e[E][r]||(s=o=function(t){return i.call(n||e,t||window.event)},!b.touchNative&&b.pointer&&0===t.indexOf("touch")?o=Jt(e,t,o):b.touch&&"dblclick"===t?o=ne(e,o):"addEventListener"in e?"touchstart"===t||"touchmove"===t||"wheel"===t||"mousewheel"===t?e.addEventListener(Ee[t]||t,o,!!b.passiveEvents&&{passive:!1}):"mouseenter"===t||"mouseleave"===t?e.addEventListener(Ee[t],o=function(t){t=t||window.event,We(e,t)&&s(t)},!1):e.addEventListener(t,s,!1):e.attachEvent("on"+t,o),e[E]=e[E]||{},e[E][r]=o)}function Oe(t,e,i,n,o){o=o||e+h(i)+(n?"_"+h(n):"");var s,r,i=t[E]&&t[E][o];i&&(!b.touchNative&&b.pointer&&0===e.indexOf("touch")?(n=t,r=i,Gt[s=e]?n.removeEventListener(Gt[s],r,!1):console.warn("wrong event specified:",s)):b.touch&&"dblclick"===e?(n=i,(r=t).removeEventListener("dblclick",n.dblclick),r.removeEventListener("click",n.simDblclick)):"removeEventListener"in t?t.removeEventListener(Ee[e]||e,i,!1):t.detachEvent("on"+e,i),t[E][o]=null)}function Ae(t){return t.stopPropagation?t.stopPropagation():t.originalEvent?t.originalEvent._stopped=!0:t.cancelBubble=!0,this}function Be(t){return ke(t,"wheel",Ae),this}function Ie(t){return S(t,"mousedown touchstart dblclick contextmenu",Ae),t._leaflet_disable_click=!0,this}function O(t){return t.preventDefault?t.preventDefault():t.returnValue=!1,this}function Re(t){return O(t),Ae(t),this}function Ne(t){if(t.composedPath)return t.composedPath();for(var e=[],i=t.target;i;)e.push(i),i=i.parentNode;return e}function De(t,e){var i,n;return e?(n=(i=Ze(e)).boundingClientRect,new p((t.clientX-n.left)/i.x-e.clientLeft,(t.clientY-n.top)/i.y-e.clientTop)):new p(t.clientX,t.clientY)}var je=b.linux&&b.chrome?window.devicePixelRatio:b.mac?3*window.devicePixelRatio:0<window.devicePixelRatio?2*window.devicePixelRatio:1;function He(t){return b.edge?t.wheelDeltaY/2:t.deltaY&&0===t.deltaMode?-t.deltaY/je:t.deltaY&&1===t.deltaMode?20*-t.deltaY:t.deltaY&&2===t.deltaMode?60*-t.deltaY:t.deltaX||t.deltaZ?0:t.wheelDelta?(t.wheelDeltaY||t.wheelDelta)/2:t.detail&&Math.abs(t.detail)<32765?20*-t.detail:t.detail?t.detail/-32765*60:0}function We(t,e){var i=e.relatedTarget;if(!i)return!0;try{for(;i&&i!==t;)i=i.parentNode}catch(t){return!1}return i!==t}var mt={__proto__:null,on:S,off:k,stopPropagation:Ae,disableScrollPropagation:Be,disableClickPropagation:Ie,preventDefault:O,stop:Re,getPropagationPath:Ne,getMousePosition:De,getWheelDelta:He,isExternalTarget:We,addListener:S,removeListener:k},Fe=it.extend({run:function(t,e,i,n){this.stop(),this._el=t,this._inProgress=!0,this._duration=i||.25,this._easeOutPower=1/Math.max(n||.5,.2),this._startPos=Pe(t),this._offset=e.subtract(this._startPos),this._startTime=+new Date,this.fire("start"),this._animate()},stop:function(){this._inProgress&&(this._step(!0),this._complete())},_animate:function(){this._animId=x(this._animate,this),this._step()},_step:function(t){var e=+new Date-this._startTime,i=1e3*this._duration;e<i?this._runFrame(this._easeOut(e/i),t):(this._runFrame(1),this._complete())},_runFrame:function(t,e){t=this._startPos.add(this._offset.multiplyBy(t));e&&t._round(),Z(this._el,t),this.fire("step")},_complete:function(){r(this._animId),this._inProgress=!1,this.fire("end")},_easeOut:function(t){return 1-Math.pow(1-t,this._easeOutPower)}}),A=it.extend({options:{crs:lt,center:void 0,zoom:void 0,minZoom:void 0,maxZoom:void 0,layers:[],maxBounds:void 0,renderer:void 0,zoomAnimation:!0,zoomAnimationThreshold:4,fadeAnimation:!0,markerZoomAnimation:!0,transform3DLimit:8388608,zoomSnap:1,zoomDelta:1,trackResize:!0},initialize:function(t,e){e=c(this,e),this._handlers=[],this._layers={},this._zoomBoundLayers={},this._sizeChanged=!0,this._initContainer(t),this._initLayout(),this._onResize=a(this._onResize,this),this._initEvents(),e.maxBounds&&this.setMaxBounds(e.maxBounds),void 0!==e.zoom&&(this._zoom=this._limitZoom(e.zoom)),e.center&&void 0!==e.zoom&&this.setView(w(e.center),e.zoom,{reset:!0}),this.callInitHooks(),this._zoomAnimated=ce&&b.any3d&&!b.mobileOpera&&this.options.zoomAnimation,this._zoomAnimated&&(this._createAnimProxy(),S(this._proxy,de,this._catchTransitionEnd,this)),this._addLayers(this.options.layers)},setView:function(t,e,i){if((e=void 0===e?this._zoom:this._limitZoom(e),t=this._limitCenter(w(t),e,this.options.maxBounds),i=i||{},this._stop(),this._loaded&&!i.reset&&!0!==i)&&(void 0!==i.animate&&(i.zoom=l({animate:i.animate},i.zoom),i.pan=l({animate:i.animate,duration:i.duration},i.pan)),this._zoom!==e?this._tryAnimatedZoom&&this._tryAnimatedZoom(t,e,i.zoom):this._tryAnimatedPan(t,i.pan)))return clearTimeout(this._sizeTimer),this;return this._resetView(t,e,i.pan&&i.pan.noMoveStart),this},setZoom:function(t,e){return this._loaded?this.setView(this.getCenter(),t,{zoom:e}):(this._zoom=t,this)},zoomIn:function(t,e){return t=t||(b.any3d?this.options.zoomDelta:1),this.setZoom(this._zoom+t,e)},zoomOut:function(t,e){return t=t||(b.any3d?this.options.zoomDelta:1),this.setZoom(this._zoom-t,e)},setZoomAround:function(t,e,i){var n=this.getZoomScale(e),o=this.getSize().divideBy(2),t=(t instanceof p?t:this.latLngToContainerPoint(t)).subtract(o).multiplyBy(1-1/n),n=this.containerPointToLatLng(o.add(t));return this.setView(n,e,{zoom:i})},_getBoundsCenterZoom:function(t,e){e=e||{},t=t.getBounds?t.getBounds():g(t);var i=m(e.paddingTopLeft||e.padding||[0,0]),n=m(e.paddingBottomRight||e.padding||[0,0]),o=this.getBoundsZoom(t,!1,i.add(n));return(o="number"==typeof e.maxZoom?Math.min(e.maxZoom,o):o)===1/0?{center:t.getCenter(),zoom:o}:(e=n.subtract(i).divideBy(2),n=this.project(t.getSouthWest(),o),i=this.project(t.getNorthEast(),o),{center:this.unproject(n.add(i).divideBy(2).add(e),o),zoom:o})},fitBounds:function(t,e){if((t=g(t)).isValid())return t=this._getBoundsCenterZoom(t,e),this.setView(t.center,t.zoom,e);throw new Error("Bounds are not valid.")},fitWorld:function(t){return this.fitBounds([[-90,-180],[90,180]],t)},panTo:function(t,e){return this.setView(t,this._zoom,{pan:e})},panBy:function(t,e){var i;return e=e||{},(t=m(t).round()).x||t.y?(!0===e.animate||this.getSize().contains(t)?(this._panAnim||(this._panAnim=new Fe,this._panAnim.on({step:this._onPanTransitionStep,end:this._onPanTransitionEnd},this)),e.noMoveStart||this.fire("movestart"),!1!==e.animate?(M(this._mapPane,"leaflet-pan-anim"),i=this._getMapPanePos().subtract(t).round(),this._panAnim.run(this._mapPane,i,e.duration||.25,e.easeLinearity)):(this._rawPanBy(t),this.fire("move").fire("moveend"))):this._resetView(this.unproject(this.project(this.getCenter()).add(t)),this.getZoom()),this):this.fire("moveend")},flyTo:function(n,o,t){if(!1===(t=t||{}).animate||!b.any3d)return this.setView(n,o,t);this._stop();var s=this.project(this.getCenter()),r=this.project(n),e=this.getSize(),a=this._zoom,h=(n=w(n),o=void 0===o?a:o,Math.max(e.x,e.y)),i=h*this.getZoomScale(a,o),l=r.distanceTo(s)||1,u=1.42,c=u*u;function d(t){t=(i*i-h*h+(t?-1:1)*c*c*l*l)/(2*(t?i:h)*c*l),t=Math.sqrt(t*t+1)-t;return t<1e-9?-18:Math.log(t)}function _(t){return(Math.exp(t)-Math.exp(-t))/2}function p(t){return(Math.exp(t)+Math.exp(-t))/2}var m=d(0);function f(t){return h*(p(m)*(_(t=m+u*t)/p(t))-_(m))/c}var g=Date.now(),v=(d(1)-m)/u,y=t.duration?1e3*t.duration:1e3*v*.8;return this._moveStart(!0,t.noMoveStart),function t(){var e=(Date.now()-g)/y,i=(1-Math.pow(1-e,1.5))*v;e<=1?(this._flyToFrame=x(t,this),this._move(this.unproject(s.add(r.subtract(s).multiplyBy(f(i)/l)),a),this.getScaleZoom(h/(e=i,h*(p(m)/p(m+u*e))),a),{flyTo:!0})):this._move(n,o)._moveEnd(!0)}.call(this),this},flyToBounds:function(t,e){t=this._getBoundsCenterZoom(t,e);return this.flyTo(t.center,t.zoom,e)},setMaxBounds:function(t){return t=g(t),this.listens("moveend",this._panInsideMaxBounds)&&this.off("moveend",this._panInsideMaxBounds),t.isValid()?(this.options.maxBounds=t,this._loaded&&this._panInsideMaxBounds(),this.on("moveend",this._panInsideMaxBounds)):(this.options.maxBounds=null,this)},setMinZoom:function(t){var e=this.options.minZoom;return this.options.minZoom=t,this._loaded&&e!==t&&(this.fire("zoomlevelschange"),this.getZoom()<this.options.minZoom)?this.setZoom(t):this},setMaxZoom:function(t){var e=this.options.maxZoom;return this.options.maxZoom=t,this._loaded&&e!==t&&(this.fire("zoomlevelschange"),this.getZoom()>this.options.maxZoom)?this.setZoom(t):this},panInsideBounds:function(t,e){this._enforcingBounds=!0;var i=this.getCenter(),t=this._limitCenter(i,this._zoom,g(t));return i.equals(t)||this.panTo(t,e),this._enforcingBounds=!1,this},panInside:function(t,e){var i=m((e=e||{}).paddingTopLeft||e.padding||[0,0]),n=m(e.paddingBottomRight||e.padding||[0,0]),o=this.project(this.getCenter()),t=this.project(t),s=this.getPixelBounds(),i=_([s.min.add(i),s.max.subtract(n)]),s=i.getSize();return i.contains(t)||(this._enforcingBounds=!0,n=t.subtract(i.getCenter()),i=i.extend(t).getSize().subtract(s),o.x+=n.x<0?-i.x:i.x,o.y+=n.y<0?-i.y:i.y,this.panTo(this.unproject(o),e),this._enforcingBounds=!1),this},invalidateSize:function(t){if(!this._loaded)return this;t=l({animate:!1,pan:!0},!0===t?{animate:!0}:t);var e=this.getSize(),i=(this._sizeChanged=!0,this._lastCenter=null,this.getSize()),n=e.divideBy(2).round(),o=i.divideBy(2).round(),n=n.subtract(o);return n.x||n.y?(t.animate&&t.pan?this.panBy(n):(t.pan&&this._rawPanBy(n),this.fire("move"),t.debounceMoveend?(clearTimeout(this._sizeTimer),this._sizeTimer=setTimeout(a(this.fire,this,"moveend"),200)):this.fire("moveend")),this.fire("resize",{oldSize:e,newSize:i})):this},stop:function(){return this.setZoom(this._limitZoom(this._zoom)),this.options.zoomSnap||this.fire("viewreset"),this._stop()},locate:function(t){var e,i;return t=this._locateOptions=l({timeout:1e4,watch:!1},t),"geolocation"in navigator?(e=a(this._handleGeolocationResponse,this),i=a(this._handleGeolocationError,this),t.watch?this._locationWatchId=navigator.geolocation.watchPosition(e,i,t):navigator.geolocation.getCurrentPosition(e,i,t)):this._handleGeolocationError({code:0,message:"Geolocation not supported."}),this},stopLocate:function(){return navigator.geolocation&&navigator.geolocation.clearWatch&&navigator.geolocation.clearWatch(this._locationWatchId),this._locateOptions&&(this._locateOptions.setView=!1),this},_handleGeolocationError:function(t){var e;this._container._leaflet_id&&(e=t.code,t=t.message||(1===e?"permission denied":2===e?"position unavailable":"timeout"),this._locateOptions.setView&&!this._loaded&&this.fitWorld(),this.fire("locationerror",{code:e,message:"Geolocation error: "+t+"."}))},_handleGeolocationResponse:function(t){if(this._container._leaflet_id){var e,i,n=new v(t.coords.latitude,t.coords.longitude),o=n.toBounds(2*t.coords.accuracy),s=this._locateOptions,r=(s.setView&&(e=this.getBoundsZoom(o),this.setView(n,s.maxZoom?Math.min(e,s.maxZoom):e)),{latlng:n,bounds:o,timestamp:t.timestamp});for(i in t.coords)"number"==typeof t.coords[i]&&(r[i]=t.coords[i]);this.fire("locationfound",r)}},addHandler:function(t,e){return e&&(e=this[t]=new e(this),this._handlers.push(e),this.options[t]&&e.enable()),this},remove:function(){if(this._initEvents(!0),this.options.maxBounds&&this.off("moveend",this._panInsideMaxBounds),this._containerId!==this._container._leaflet_id)throw new Error("Map container is being reused by another instance");try{delete this._container._leaflet_id,delete this._containerId}catch(t){this._container._leaflet_id=void 0,this._containerId=void 0}for(var t in void 0!==this._locationWatchId&&this.stopLocate(),this._stop(),T(this._mapPane),this._clearControlPos&&this._clearControlPos(),this._resizeRequest&&(r(this._resizeRequest),this._resizeRequest=null),this._clearHandlers(),this._loaded&&this.fire("unload"),this._layers)this._layers[t].remove();for(t in this._panes)T(this._panes[t]);return this._layers=[],this._panes=[],delete this._mapPane,delete this._renderer,this},createPane:function(t,e){e=P("div","leaflet-pane"+(t?" leaflet-"+t.replace("Pane","")+"-pane":""),e||this._mapPane);return t&&(this._panes[t]=e),e},getCenter:function(){return this._checkIfLoaded(),this._lastCenter&&!this._moved()?this._lastCenter.clone():this.layerPointToLatLng(this._getCenterLayerPoint())},getZoom:function(){return this._zoom},getBounds:function(){var t=this.getPixelBounds();return new s(this.unproject(t.getBottomLeft()),this.unproject(t.getTopRight()))},getMinZoom:function(){return void 0===this.options.minZoom?this._layersMinZoom||0:this.options.minZoom},getMaxZoom:function(){return void 0===this.options.maxZoom?void 0===this._layersMaxZoom?1/0:this._layersMaxZoom:this.options.maxZoom},getBoundsZoom:function(t,e,i){t=g(t),i=m(i||[0,0]);var n=this.getZoom()||0,o=this.getMinZoom(),s=this.getMaxZoom(),r=t.getNorthWest(),t=t.getSouthEast(),i=this.getSize().subtract(i),t=_(this.project(t,n),this.project(r,n)).getSize(),r=b.any3d?this.options.zoomSnap:1,a=i.x/t.x,i=i.y/t.y,t=e?Math.max(a,i):Math.min(a,i),n=this.getScaleZoom(t,n);return r&&(n=Math.round(n/(r/100))*(r/100),n=e?Math.ceil(n/r)*r:Math.floor(n/r)*r),Math.max(o,Math.min(s,n))},getSize:function(){return this._size&&!this._sizeChanged||(this._size=new p(this._container.clientWidth||0,this._container.clientHeight||0),this._sizeChanged=!1),this._size.clone()},getPixelBounds:function(t,e){t=this._getTopLeftPoint(t,e);return new f(t,t.add(this.getSize()))},getPixelOrigin:function(){return this._checkIfLoaded(),this._pixelOrigin},getPixelWorldBounds:function(t){return this.options.crs.getProjectedBounds(void 0===t?this.getZoom():t)},getPane:function(t){return"string"==typeof t?this._panes[t]:t},getPanes:function(){return this._panes},getContainer:function(){return this._container},getZoomScale:function(t,e){var i=this.options.crs;return e=void 0===e?this._zoom:e,i.scale(t)/i.scale(e)},getScaleZoom:function(t,e){var i=this.options.crs,t=(e=void 0===e?this._zoom:e,i.zoom(t*i.scale(e)));return isNaN(t)?1/0:t},project:function(t,e){return e=void 0===e?this._zoom:e,this.options.crs.latLngToPoint(w(t),e)},unproject:function(t,e){return e=void 0===e?this._zoom:e,this.options.crs.pointToLatLng(m(t),e)},layerPointToLatLng:function(t){t=m(t).add(this.getPixelOrigin());return this.unproject(t)},latLngToLayerPoint:function(t){return this.project(w(t))._round()._subtract(this.getPixelOrigin())},wrapLatLng:function(t){return this.options.crs.wrapLatLng(w(t))},wrapLatLngBounds:function(t){return this.options.crs.wrapLatLngBounds(g(t))},distance:function(t,e){return this.options.crs.distance(w(t),w(e))},containerPointToLayerPoint:function(t){return m(t).subtract(this._getMapPanePos())},layerPointToContainerPoint:function(t){return m(t).add(this._getMapPanePos())},containerPointToLatLng:function(t){t=this.containerPointToLayerPoint(m(t));return this.layerPointToLatLng(t)},latLngToContainerPoint:function(t){return this.layerPointToContainerPoint(this.latLngToLayerPoint(w(t)))},mouseEventToContainerPoint:function(t){return De(t,this._container)},mouseEventToLayerPoint:function(t){return this.containerPointToLayerPoint(this.mouseEventToContainerPoint(t))},mouseEventToLatLng:function(t){return this.layerPointToLatLng(this.mouseEventToLayerPoint(t))},_initContainer:function(t){t=this._container=_e(t);if(!t)throw new Error("Map container not found.");if(t._leaflet_id)throw new Error("Map container is already initialized.");S(t,"scroll",this._onScroll,this),this._containerId=h(t)},_initLayout:function(){var t=this._container,e=(this._fadeAnimated=this.options.fadeAnimation&&b.any3d,M(t,"leaflet-container"+(b.touch?" leaflet-touch":"")+(b.retina?" leaflet-retina":"")+(b.ielt9?" leaflet-oldie":"")+(b.safari?" leaflet-safari":"")+(this._fadeAnimated?" leaflet-fade-anim":"")),pe(t,"position"));"absolute"!==e&&"relative"!==e&&"fixed"!==e&&"sticky"!==e&&(t.style.position="relative"),this._initPanes(),this._initControlPos&&this._initControlPos()},_initPanes:function(){var t=this._panes={};this._paneRenderers={},this._mapPane=this.createPane("mapPane",this._container),Z(this._mapPane,new p(0,0)),this.createPane("tilePane"),this.createPane("overlayPane"),this.createPane("shadowPane"),this.createPane("markerPane"),this.createPane("tooltipPane"),this.createPane("popupPane"),this.options.markerZoomAnimation||(M(t.markerPane,"leaflet-zoom-hide"),M(t.shadowPane,"leaflet-zoom-hide"))},_resetView:function(t,e,i){Z(this._mapPane,new p(0,0));var n=!this._loaded,o=(this._loaded=!0,e=this._limitZoom(e),this.fire("viewprereset"),this._zoom!==e);this._moveStart(o,i)._move(t,e)._moveEnd(o),this.fire("viewreset"),n&&this.fire("load")},_moveStart:function(t,e){return t&&this.fire("zoomstart"),e||this.fire("movestart"),this},_move:function(t,e,i,n){void 0===e&&(e=this._zoom);var o=this._zoom!==e;return this._zoom=e,this._lastCenter=t,this._pixelOrigin=this._getNewPixelOrigin(t),n?i&&i.pinch&&this.fire("zoom",i):((o||i&&i.pinch)&&this.fire("zoom",i),this.fire("move",i)),this},_moveEnd:function(t){return t&&this.fire("zoomend"),this.fire("moveend")},_stop:function(){return r(this._flyToFrame),this._panAnim&&this._panAnim.stop(),this},_rawPanBy:function(t){Z(this._mapPane,this._getMapPanePos().subtract(t))},_getZoomSpan:function(){return this.getMaxZoom()-this.getMinZoom()},_panInsideMaxBounds:function(){this._enforcingBounds||this.panInsideBounds(this.options.maxBounds)},_checkIfLoaded:function(){if(!this._loaded)throw new Error("Set map center and zoom first.")},_initEvents:function(t){this._targets={};var e=t?k:S;e((this._targets[h(this._container)]=this)._container,"click dblclick mousedown mouseup mouseover mouseout mousemove contextmenu keypress keydown keyup",this._handleDOMEvent,this),this.options.trackResize&&e(window,"resize",this._onResize,this),b.any3d&&this.options.transform3DLimit&&(t?this.off:this.on).call(this,"moveend",this._onMoveEnd)},_onResize:function(){r(this._resizeRequest),this._resizeRequest=x(function(){this.invalidateSize({debounceMoveend:!0})},this)},_onScroll:function(){this._container.scrollTop=0,this._container.scrollLeft=0},_onMoveEnd:function(){var t=this._getMapPanePos();Math.max(Math.abs(t.x),Math.abs(t.y))>=this.options.transform3DLimit&&this._resetView(this.getCenter(),this.getZoom())},_findEventTargets:function(t,e){for(var i,n=[],o="mouseout"===e||"mouseover"===e,s=t.target||t.srcElement,r=!1;s;){if((i=this._targets[h(s)])&&("click"===e||"preclick"===e)&&this._draggableMoved(i)){r=!0;break}if(i&&i.listens(e,!0)){if(o&&!We(s,t))break;if(n.push(i),o)break}if(s===this._container)break;s=s.parentNode}return n=n.length||r||o||!this.listens(e,!0)?n:[this]},_isClickDisabled:function(t){for(;t&&t!==this._container;){if(t._leaflet_disable_click)return!0;t=t.parentNode}},_handleDOMEvent:function(t){var e,i=t.target||t.srcElement;!this._loaded||i._leaflet_disable_events||"click"===t.type&&this._isClickDisabled(i)||("mousedown"===(e=t.type)&&Me(i),this._fireDOMEvent(t,e))},_mouseEvents:["click","dblclick","mouseover","mouseout","contextmenu"],_fireDOMEvent:function(t,e,i){"click"===t.type&&((a=l({},t)).type="preclick",this._fireDOMEvent(a,a.type,i));var n=this._findEventTargets(t,e);if(i){for(var o=[],s=0;s<i.length;s++)i[s].listens(e,!0)&&o.push(i[s]);n=o.concat(n)}if(n.length){"contextmenu"===e&&O(t);var r,a=n[0],h={originalEvent:t};for("keypress"!==t.type&&"keydown"!==t.type&&"keyup"!==t.type&&(r=a.getLatLng&&(!a._radius||a._radius<=10),h.containerPoint=r?this.latLngToContainerPoint(a.getLatLng()):this.mouseEventToContainerPoint(t),h.layerPoint=this.containerPointToLayerPoint(h.containerPoint),h.latlng=r?a.getLatLng():this.layerPointToLatLng(h.layerPoint)),s=0;s<n.length;s++)if(n[s].fire(e,h,!0),h.originalEvent._stopped||!1===n[s].options.bubblingMouseEvents&&-1!==G(this._mouseEvents,e))return}},_draggableMoved:function(t){return(t=t.dragging&&t.dragging.enabled()?t:this).dragging&&t.dragging.moved()||this.boxZoom&&this.boxZoom.moved()},_clearHandlers:function(){for(var t=0,e=this._handlers.length;t<e;t++)this._handlers[t].disable()},whenReady:function(t,e){return this._loaded?t.call(e||this,{target:this}):this.on("load",t,e),this},_getMapPanePos:function(){return Pe(this._mapPane)||new p(0,0)},_moved:function(){var t=this._getMapPanePos();return t&&!t.equals([0,0])},_getTopLeftPoint:function(t,e){return(t&&void 0!==e?this._getNewPixelOrigin(t,e):this.getPixelOrigin()).subtract(this._getMapPanePos())},_getNewPixelOrigin:function(t,e){var i=this.getSize()._divideBy(2);return this.project(t,e)._subtract(i)._add(this._getMapPanePos())._round()},_latLngToNewLayerPoint:function(t,e,i){i=this._getNewPixelOrigin(i,e);return this.project(t,e)._subtract(i)},_latLngBoundsToNewLayerBounds:function(t,e,i){i=this._getNewPixelOrigin(i,e);return _([this.project(t.getSouthWest(),e)._subtract(i),this.project(t.getNorthWest(),e)._subtract(i),this.project(t.getSouthEast(),e)._subtract(i),this.project(t.getNorthEast(),e)._subtract(i)])},_getCenterLayerPoint:function(){return this.containerPointToLayerPoint(this.getSize()._divideBy(2))},_getCenterOffset:function(t){return this.latLngToLayerPoint(t).subtract(this._getCenterLayerPoint())},_limitCenter:function(t,e,i){var n,o;return!i||(n=this.project(t,e),o=this.getSize().divideBy(2),o=new f(n.subtract(o),n.add(o)),o=this._getBoundsOffset(o,i,e),Math.abs(o.x)<=1&&Math.abs(o.y)<=1)?t:this.unproject(n.add(o),e)},_limitOffset:function(t,e){var i;return e?(i=new f((i=this.getPixelBounds()).min.add(t),i.max.add(t)),t.add(this._getBoundsOffset(i,e))):t},_getBoundsOffset:function(t,e,i){e=_(this.project(e.getNorthEast(),i),this.project(e.getSouthWest(),i)),i=e.min.subtract(t.min),e=e.max.subtract(t.max);return new p(this._rebound(i.x,-e.x),this._rebound(i.y,-e.y))},_rebound:function(t,e){return 0<t+e?Math.round(t-e)/2:Math.max(0,Math.ceil(t))-Math.max(0,Math.floor(e))},_limitZoom:function(t){var e=this.getMinZoom(),i=this.getMaxZoom(),n=b.any3d?this.options.zoomSnap:1;return n&&(t=Math.round(t/n)*n),Math.max(e,Math.min(i,t))},_onPanTransitionStep:function(){this.fire("move")},_onPanTransitionEnd:function(){z(this._mapPane,"leaflet-pan-anim"),this.fire("moveend")},_tryAnimatedPan:function(t,e){t=this._getCenterOffset(t)._trunc();return!(!0!==(e&&e.animate)&&!this.getSize().contains(t))&&(this.panBy(t,e),!0)},_createAnimProxy:function(){var t=this._proxy=P("div","leaflet-proxy leaflet-zoom-animated");this._panes.mapPane.appendChild(t),this.on("zoomanim",function(t){var e=ue,i=this._proxy.style[e];be(this._proxy,this.project(t.center,t.zoom),this.getZoomScale(t.zoom,1)),i===this._proxy.style[e]&&this._animatingZoom&&this._onZoomTransitionEnd()},this),this.on("load moveend",this._animMoveEnd,this),this._on("unload",this._destroyAnimProxy,this)},_destroyAnimProxy:function(){T(this._proxy),this.off("load moveend",this._animMoveEnd,this),delete this._proxy},_animMoveEnd:function(){var t=this.getCenter(),e=this.getZoom();be(this._proxy,this.project(t,e),this.getZoomScale(e,1))},_catchTransitionEnd:function(t){this._animatingZoom&&0<=t.propertyName.indexOf("transform")&&this._onZoomTransitionEnd()},_nothingToAnimate:function(){return!this._container.getElementsByClassName("leaflet-zoom-animated").length},_tryAnimatedZoom:function(t,e,i){if(!this._animatingZoom){if(i=i||{},!this._zoomAnimated||!1===i.animate||this._nothingToAnimate()||Math.abs(e-this._zoom)>this.options.zoomAnimationThreshold)return!1;var n=this.getZoomScale(e),n=this._getCenterOffset(t)._divideBy(1-1/n);if(!0!==i.animate&&!this.getSize().contains(n))return!1;x(function(){this._moveStart(!0,i.noMoveStart||!1)._animateZoom(t,e,!0)},this)}return!0},_animateZoom:function(t,e,i,n){this._mapPane&&(i&&(this._animatingZoom=!0,this._animateToCenter=t,this._animateToZoom=e,M(this._mapPane,"leaflet-zoom-anim")),this.fire("zoomanim",{center:t,zoom:e,noUpdate:n}),this._tempFireZoomEvent||(this._tempFireZoomEvent=this._zoom!==this._animateToZoom),this._move(this._animateToCenter,this._animateToZoom,void 0,!0),setTimeout(a(this._onZoomTransitionEnd,this),250))},_onZoomTransitionEnd:function(){this._animatingZoom&&(this._mapPane&&z(this._mapPane,"leaflet-zoom-anim"),this._animatingZoom=!1,this._move(this._animateToCenter,this._animateToZoom,void 0,!0),this._tempFireZoomEvent&&this.fire("zoom"),delete this._tempFireZoomEvent,this.fire("move"),this._moveEnd(!0))}});function Ue(t){return new B(t)}var B=et.extend({options:{position:"topright"},initialize:function(t){c(this,t)},getPosition:function(){return this.options.position},setPosition:function(t){var e=this._map;return e&&e.removeControl(this),this.options.position=t,e&&e.addControl(this),this},getContainer:function(){return this._container},addTo:function(t){this.remove(),this._map=t;var e=this._container=this.onAdd(t),i=this.getPosition(),t=t._controlCorners[i];return M(e,"leaflet-control"),-1!==i.indexOf("bottom")?t.insertBefore(e,t.firstChild):t.appendChild(e),this._map.on("unload",this.remove,this),this},remove:function(){return this._map&&(T(this._container),this.onRemove&&this.onRemove(this._map),this._map.off("unload",this.remove,this),this._map=null),this},_refocusOnMap:function(t){this._map&&t&&0<t.screenX&&0<t.screenY&&this._map.getContainer().focus()}}),Ve=(A.include({addControl:function(t){return t.addTo(this),this},removeControl:function(t){return t.remove(),this},_initControlPos:function(){var i=this._controlCorners={},n="leaflet-",o=this._controlContainer=P("div",n+"control-container",this._container);function t(t,e){i[t+e]=P("div",n+t+" "+n+e,o)}t("top","left"),t("top","right"),t("bottom","left"),t("bottom","right")},_clearControlPos:function(){for(var t in this._controlCorners)T(this._controlCorners[t]);T(this._controlContainer),delete this._controlCorners,delete this._controlContainer}}),B.extend({options:{collapsed:!0,position:"topright",autoZIndex:!0,hideSingleBase:!1,sortLayers:!1,sortFunction:function(t,e,i,n){return i<n?-1:n<i?1:0}},initialize:function(t,e,i){for(var n in c(this,i),this._layerControlInputs=[],this._layers=[],this._lastZIndex=0,this._handlingClick=!1,this._preventClick=!1,t)this._addLayer(t[n],n);for(n in e)this._addLayer(e[n],n,!0)},onAdd:function(t){this._initLayout(),this._update(),(this._map=t).on("zoomend",this._checkDisabledLayers,this);for(var e=0;e<this._layers.length;e++)this._layers[e].layer.on("add remove",this._onLayerChange,this);return this._container},addTo:function(t){return B.prototype.addTo.call(this,t),this._expandIfNotCollapsed()},onRemove:function(){this._map.off("zoomend",this._checkDisabledLayers,this);for(var t=0;t<this._layers.length;t++)this._layers[t].layer.off("add remove",this._onLayerChange,this)},addBaseLayer:function(t,e){return this._addLayer(t,e),this._map?this._update():this},addOverlay:function(t,e){return this._addLayer(t,e,!0),this._map?this._update():this},removeLayer:function(t){t.off("add remove",this._onLayerChange,this);t=this._getLayer(h(t));return t&&this._layers.splice(this._layers.indexOf(t),1),this._map?this._update():this},expand:function(){M(this._container,"leaflet-control-layers-expanded"),this._section.style.height=null;var t=this._map.getSize().y-(this._container.offsetTop+50);return t<this._section.clientHeight?(M(this._section,"leaflet-control-layers-scrollbar"),this._section.style.height=t+"px"):z(this._section,"leaflet-control-layers-scrollbar"),this._checkDisabledLayers(),this},collapse:function(){return z(this._container,"leaflet-control-layers-expanded"),this},_initLayout:function(){var t="leaflet-control-layers",e=this._container=P("div",t),i=this.options.collapsed,n=(e.setAttribute("aria-haspopup",!0),Ie(e),Be(e),this._section=P("section",t+"-list")),o=(i&&(this._map.on("click",this.collapse,this),S(e,{mouseenter:this._expandSafely,mouseleave:this.collapse},this)),this._layersLink=P("a",t+"-toggle",e));o.href="#",o.title="Layers",o.setAttribute("role","button"),S(o,{keydown:function(t){13===t.keyCode&&this._expandSafely()},click:function(t){O(t),this._expandSafely()}},this),i||this.expand(),this._baseLayersList=P("div",t+"-base",n),this._separator=P("div",t+"-separator",n),this._overlaysList=P("div",t+"-overlays",n),e.appendChild(n)},_getLayer:function(t){for(var e=0;e<this._layers.length;e++)if(this._layers[e]&&h(this._layers[e].layer)===t)return this._layers[e]},_addLayer:function(t,e,i){this._map&&t.on("add remove",this._onLayerChange,this),this._layers.push({layer:t,name:e,overlay:i}),this.options.sortLayers&&this._layers.sort(a(function(t,e){return this.options.sortFunction(t.layer,e.layer,t.name,e.name)},this)),this.options.autoZIndex&&t.setZIndex&&(this._lastZIndex++,t.setZIndex(this._lastZIndex)),this._expandIfNotCollapsed()},_update:function(){if(this._container){me(this._baseLayersList),me(this._overlaysList),this._layerControlInputs=[];for(var t,e,i,n=0,o=0;o<this._layers.length;o++)i=this._layers[o],this._addItem(i),e=e||i.overlay,t=t||!i.overlay,n+=i.overlay?0:1;this.options.hideSingleBase&&(this._baseLayersList.style.display=(t=t&&1<n)?"":"none"),this._separator.style.display=e&&t?"":"none"}return this},_onLayerChange:function(t){this._handlingClick||this._update();var e=this._getLayer(h(t.target)),t=e.overlay?"add"===t.type?"overlayadd":"overlayremove":"add"===t.type?"baselayerchange":null;t&&this._map.fire(t,e)},_createRadioElement:function(t,e){t='<input type="radio" class="leaflet-control-layers-selector" name="'+t+'"'+(e?' checked="checked"':"")+"/>",e=document.createElement("div");return e.innerHTML=t,e.firstChild},_addItem:function(t){var e,i=document.createElement("label"),n=this._map.hasLayer(t.layer),n=(t.overlay?((e=document.createElement("input")).type="checkbox",e.className="leaflet-control-layers-selector",e.defaultChecked=n):e=this._createRadioElement("leaflet-base-layers_"+h(this),n),this._layerControlInputs.push(e),e.layerId=h(t.layer),S(e,"click",this._onInputClick,this),document.createElement("span")),o=(n.innerHTML=" "+t.name,document.createElement("span"));return i.appendChild(o),o.appendChild(e),o.appendChild(n),(t.overlay?this._overlaysList:this._baseLayersList).appendChild(i),this._checkDisabledLayers(),i},_onInputClick:function(){if(!this._preventClick){var t,e,i=this._layerControlInputs,n=[],o=[];this._handlingClick=!0;for(var s=i.length-1;0<=s;s--)t=i[s],e=this._getLayer(t.layerId).layer,t.checked?n.push(e):t.checked||o.push(e);for(s=0;s<o.length;s++)this._map.hasLayer(o[s])&&this._map.removeLayer(o[s]);for(s=0;s<n.length;s++)this._map.hasLayer(n[s])||this._map.addLayer(n[s]);this._handlingClick=!1,this._refocusOnMap()}},_checkDisabledLayers:function(){for(var t,e,i=this._layerControlInputs,n=this._map.getZoom(),o=i.length-1;0<=o;o--)t=i[o],e=this._getLayer(t.layerId).layer,t.disabled=void 0!==e.options.minZoom&&n<e.options.minZoom||void 0!==e.options.maxZoom&&n>e.options.maxZoom},_expandIfNotCollapsed:function(){return this._map&&!this.options.collapsed&&this.expand(),this},_expandSafely:function(){var t=this._section,e=(this._preventClick=!0,S(t,"click",O),this.expand(),this);setTimeout(function(){k(t,"click",O),e._preventClick=!1})}})),qe=B.extend({options:{position:"topleft",zoomInText:'<span aria-hidden="true">+</span>',zoomInTitle:"Zoom in",zoomOutText:'<span aria-hidden="true">&#x2212;</span>',zoomOutTitle:"Zoom out"},onAdd:function(t){var e="leaflet-control-zoom",i=P("div",e+" leaflet-bar"),n=this.options;return this._zoomInButton=this._createButton(n.zoomInText,n.zoomInTitle,e+"-in",i,this._zoomIn),this._zoomOutButton=this._createButton(n.zoomOutText,n.zoomOutTitle,e+"-out",i,this._zoomOut),this._updateDisabled(),t.on("zoomend zoomlevelschange",this._updateDisabled,this),i},onRemove:function(t){t.off("zoomend zoomlevelschange",this._updateDisabled,this)},disable:function(){return this._disabled=!0,this._updateDisabled(),this},enable:function(){return this._disabled=!1,this._updateDisabled(),this},_zoomIn:function(t){!this._disabled&&this._map._zoom<this._map.getMaxZoom()&&this._map.zoomIn(this._map.options.zoomDelta*(t.shiftKey?3:1))},_zoomOut:function(t){!this._disabled&&this._map._zoom>this._map.getMinZoom()&&this._map.zoomOut(this._map.options.zoomDelta*(t.shiftKey?3:1))},_createButton:function(t,e,i,n,o){i=P("a",i,n);return i.innerHTML=t,i.href="#",i.title=e,i.setAttribute("role","button"),i.setAttribute("aria-label",e),Ie(i),S(i,"click",Re),S(i,"click",o,this),S(i,"click",this._refocusOnMap,this),i},_updateDisabled:function(){var t=this._map,e="leaflet-disabled";z(this._zoomInButton,e),z(this._zoomOutButton,e),this._zoomInButton.setAttribute("aria-disabled","false"),this._zoomOutButton.setAttribute("aria-disabled","false"),!this._disabled&&t._zoom!==t.getMinZoom()||(M(this._zoomOutButton,e),this._zoomOutButton.setAttribute("aria-disabled","true")),!this._disabled&&t._zoom!==t.getMaxZoom()||(M(this._zoomInButton,e),this._zoomInButton.setAttribute("aria-disabled","true"))}}),Ge=(A.mergeOptions({zoomControl:!0}),A.addInitHook(function(){this.options.zoomControl&&(this.zoomControl=new qe,this.addControl(this.zoomControl))}),B.extend({options:{position:"bottomleft",maxWidth:100,metric:!0,imperial:!0},onAdd:function(t){var e="leaflet-control-scale",i=P("div",e),n=this.options;return this._addScales(n,e+"-line",i),t.on(n.updateWhenIdle?"moveend":"move",this._update,this),t.whenReady(this._update,this),i},onRemove:function(t){t.off(this.options.updateWhenIdle?"moveend":"move",this._update,this)},_addScales:function(t,e,i){t.metric&&(this._mScale=P("div",e,i)),t.imperial&&(this._iScale=P("div",e,i))},_update:function(){var t=this._map,e=t.getSize().y/2,t=t.distance(t.containerPointToLatLng([0,e]),t.containerPointToLatLng([this.options.maxWidth,e]));this._updateScales(t)},_updateScales:function(t){this.options.metric&&t&&this._updateMetric(t),this.options.imperial&&t&&this._updateImperial(t)},_updateMetric:function(t){var e=this._getRoundNum(t);this._updateScale(this._mScale,e<1e3?e+" m":e/1e3+" km",e/t)},_updateImperial:function(t){var e,i,t=3.2808399*t;5280<t?(i=this._getRoundNum(e=t/5280),this._updateScale(this._iScale,i+" mi",i/e)):(i=this._getRoundNum(t),this._updateScale(this._iScale,i+" ft",i/t))},_updateScale:function(t,e,i){t.style.width=Math.round(this.options.maxWidth*i)+"px",t.innerHTML=e},_getRoundNum:function(t){var e=Math.pow(10,(Math.floor(t)+"").length-1),t=t/e;return e*(t=10<=t?10:5<=t?5:3<=t?3:2<=t?2:1)}})),Ke=B.extend({options:{position:"bottomright",prefix:'<a href="https://leafletjs.com" title="A JavaScript library for interactive maps">'+(b.inlineSvg?'<svg aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="12" height="8" viewBox="0 0 12 8" class="leaflet-attribution-flag"><path fill="#4C7BE1" d="M0 0h12v4H0z"/><path fill="#FFD500" d="M0 4h12v3H0z"/><path fill="#E0BC00" d="M0 7h12v1H0z"/></svg> ':"")+"Leaflet</a>"},initialize:function(t){c(this,t),this._attributions={}},onAdd:function(t){for(var e in(t.attributionControl=this)._container=P("div","leaflet-control-attribution"),Ie(this._container),t._layers)t._layers[e].getAttribution&&this.addAttribution(t._layers[e].getAttribution());return this._update(),t.on("layeradd",this._addAttribution,this),this._container},onRemove:function(t){t.off("layeradd",this._addAttribution,this)},_addAttribution:function(t){t.layer.getAttribution&&(this.addAttribution(t.layer.getAttribution()),t.layer.once("remove",function(){this.removeAttribution(t.layer.getAttribution())},this))},setPrefix:function(t){return this.options.prefix=t,this._update(),this},addAttribution:function(t){return t&&(this._attributions[t]||(this._attributions[t]=0),this._attributions[t]++,this._update()),this},removeAttribution:function(t){return t&&this._attributions[t]&&(this._attributions[t]--,this._update()),this},_update:function(){if(this._map){var t,e=[];for(t in this._attributions)this._attributions[t]&&e.push(t);var i=[];this.options.prefix&&i.push(this.options.prefix),e.length&&i.push(e.join(", ")),this._container.innerHTML=i.join(' <span aria-hidden="true">|</span> ')}}}),n=(A.mergeOptions({attributionControl:!0}),A.addInitHook(function(){this.options.attributionControl&&(new Ke).addTo(this)}),B.Layers=Ve,B.Zoom=qe,B.Scale=Ge,B.Attribution=Ke,Ue.layers=function(t,e,i){return new Ve(t,e,i)},Ue.zoom=function(t){return new qe(t)},Ue.scale=function(t){return new Ge(t)},Ue.attribution=function(t){return new Ke(t)},et.extend({initialize:function(t){this._map=t},enable:function(){return this._enabled||(this._enabled=!0,this.addHooks()),this},disable:function(){return this._enabled&&(this._enabled=!1,this.removeHooks()),this},enabled:function(){return!!this._enabled}})),ft=(n.addTo=function(t,e){return t.addHandler(e,this),this},{Events:e}),Ye=b.touch?"touchstart mousedown":"mousedown",Xe=it.extend({options:{clickTolerance:3},initialize:function(t,e,i,n){c(this,n),this._element=t,this._dragStartTarget=e||t,this._preventOutline=i},enable:function(){this._enabled||(S(this._dragStartTarget,Ye,this._onDown,this),this._enabled=!0)},disable:function(){this._enabled&&(Xe._dragging===this&&this.finishDrag(!0),k(this._dragStartTarget,Ye,this._onDown,this),this._enabled=!1,this._moved=!1)},_onDown:function(t){var e,i;this._enabled&&(this._moved=!1,ve(this._element,"leaflet-zoom-anim")||(t.touches&&1!==t.touches.length?Xe._dragging===this&&this.finishDrag():Xe._dragging||t.shiftKey||1!==t.which&&1!==t.button&&!t.touches||((Xe._dragging=this)._preventOutline&&Me(this._element),Le(),re(),this._moving||(this.fire("down"),i=t.touches?t.touches[0]:t,e=Ce(this._element),this._startPoint=new p(i.clientX,i.clientY),this._startPos=Pe(this._element),this._parentScale=Ze(e),i="mousedown"===t.type,S(document,i?"mousemove":"touchmove",this._onMove,this),S(document,i?"mouseup":"touchend touchcancel",this._onUp,this)))))},_onMove:function(t){var e;this._enabled&&(t.touches&&1<t.touches.length?this._moved=!0:!(e=new p((e=t.touches&&1===t.touches.length?t.touches[0]:t).clientX,e.clientY)._subtract(this._startPoint)).x&&!e.y||Math.abs(e.x)+Math.abs(e.y)<this.options.clickTolerance||(e.x/=this._parentScale.x,e.y/=this._parentScale.y,O(t),this._moved||(this.fire("dragstart"),this._moved=!0,M(document.body,"leaflet-dragging"),this._lastTarget=t.target||t.srcElement,window.SVGElementInstance&&this._lastTarget instanceof window.SVGElementInstance&&(this._lastTarget=this._lastTarget.correspondingUseElement),M(this._lastTarget,"leaflet-drag-target")),this._newPos=this._startPos.add(e),this._moving=!0,this._lastEvent=t,this._updatePosition()))},_updatePosition:function(){var t={originalEvent:this._lastEvent};this.fire("predrag",t),Z(this._element,this._newPos),this.fire("drag",t)},_onUp:function(){this._enabled&&this.finishDrag()},finishDrag:function(t){z(document.body,"leaflet-dragging"),this._lastTarget&&(z(this._lastTarget,"leaflet-drag-target"),this._lastTarget=null),k(document,"mousemove touchmove",this._onMove,this),k(document,"mouseup touchend touchcancel",this._onUp,this),Te(),ae();var e=this._moved&&this._moving;this._moving=!1,Xe._dragging=!1,e&&this.fire("dragend",{noInertia:t,distance:this._newPos.distanceTo(this._startPos)})}});function Je(t,e,i){for(var n,o,s,r,a,h,l,u=[1,4,2,8],c=0,d=t.length;c<d;c++)t[c]._code=si(t[c],e);for(s=0;s<4;s++){for(h=u[s],n=[],c=0,o=(d=t.length)-1;c<d;o=c++)r=t[c],a=t[o],r._code&h?a._code&h||((l=oi(a,r,h,e,i))._code=si(l,e),n.push(l)):(a._code&h&&((l=oi(a,r,h,e,i))._code=si(l,e),n.push(l)),n.push(r));t=n}return t}function $e(t,e){var i,n,o,s,r,a,h;if(!t||0===t.length)throw new Error("latlngs not passed");I(t)||(console.warn("latlngs are not flat! Only the first ring will be used"),t=t[0]);for(var l=w([0,0]),u=g(t),c=(u.getNorthWest().distanceTo(u.getSouthWest())*u.getNorthEast().distanceTo(u.getNorthWest())<1700&&(l=Qe(t)),t.length),d=[],_=0;_<c;_++){var p=w(t[_]);d.push(e.project(w([p.lat-l.lat,p.lng-l.lng])))}for(_=r=a=h=0,i=c-1;_<c;i=_++)n=d[_],o=d[i],s=n.y*o.x-o.y*n.x,a+=(n.x+o.x)*s,h+=(n.y+o.y)*s,r+=3*s;u=0===r?d[0]:[a/r,h/r],u=e.unproject(m(u));return w([u.lat+l.lat,u.lng+l.lng])}function Qe(t){for(var e=0,i=0,n=0,o=0;o<t.length;o++){var s=w(t[o]);e+=s.lat,i+=s.lng,n++}return w([e/n,i/n])}var ti,gt={__proto__:null,clipPolygon:Je,polygonCenter:$e,centroid:Qe};function ei(t,e){if(e&&t.length){var i=t=function(t,e){for(var i=[t[0]],n=1,o=0,s=t.length;n<s;n++)(function(t,e){var i=e.x-t.x,e=e.y-t.y;return i*i+e*e})(t[n],t[o])>e&&(i.push(t[n]),o=n);o<s-1&&i.push(t[s-1]);return i}(t,e=e*e),n=i.length,o=new(typeof Uint8Array!=void 0+""?Uint8Array:Array)(n);o[0]=o[n-1]=1,function t(e,i,n,o,s){var r,a,h,l=0;for(a=o+1;a<=s-1;a++)h=ri(e[a],e[o],e[s],!0),l<h&&(r=a,l=h);n<l&&(i[r]=1,t(e,i,n,o,r),t(e,i,n,r,s))}(i,o,e,0,n-1);var s,r=[];for(s=0;s<n;s++)o[s]&&r.push(i[s]);return r}return t.slice()}function ii(t,e,i){return Math.sqrt(ri(t,e,i,!0))}function ni(t,e,i,n,o){var s,r,a,h=n?ti:si(t,i),l=si(e,i);for(ti=l;;){if(!(h|l))return[t,e];if(h&l)return!1;a=si(r=oi(t,e,s=h||l,i,o),i),s===h?(t=r,h=a):(e=r,l=a)}}function oi(t,e,i,n,o){var s,r,a=e.x-t.x,e=e.y-t.y,h=n.min,n=n.max;return 8&i?(s=t.x+a*(n.y-t.y)/e,r=n.y):4&i?(s=t.x+a*(h.y-t.y)/e,r=h.y):2&i?(s=n.x,r=t.y+e*(n.x-t.x)/a):1&i&&(s=h.x,r=t.y+e*(h.x-t.x)/a),new p(s,r,o)}function si(t,e){var i=0;return t.x<e.min.x?i|=1:t.x>e.max.x&&(i|=2),t.y<e.min.y?i|=4:t.y>e.max.y&&(i|=8),i}function ri(t,e,i,n){var o=e.x,e=e.y,s=i.x-o,r=i.y-e,a=s*s+r*r;return 0<a&&(1<(a=((t.x-o)*s+(t.y-e)*r)/a)?(o=i.x,e=i.y):0<a&&(o+=s*a,e+=r*a)),s=t.x-o,r=t.y-e,n?s*s+r*r:new p(o,e)}function I(t){return!d(t[0])||"object"!=typeof t[0][0]&&void 0!==t[0][0]}function ai(t){return console.warn("Deprecated use of _flat, please use L.LineUtil.isFlat instead."),I(t)}function hi(t,e){var i,n,o,s,r,a;if(!t||0===t.length)throw new Error("latlngs not passed");I(t)||(console.warn("latlngs are not flat! Only the first ring will be used"),t=t[0]);for(var h=w([0,0]),l=g(t),u=(l.getNorthWest().distanceTo(l.getSouthWest())*l.getNorthEast().distanceTo(l.getNorthWest())<1700&&(h=Qe(t)),t.length),c=[],d=0;d<u;d++){var _=w(t[d]);c.push(e.project(w([_.lat-h.lat,_.lng-h.lng])))}for(i=d=0;d<u-1;d++)i+=c[d].distanceTo(c[d+1])/2;if(0===i)a=c[0];else for(n=d=0;d<u-1;d++)if(o=c[d],s=c[d+1],i<(n+=r=o.distanceTo(s))){a=[s.x-(r=(n-i)/r)*(s.x-o.x),s.y-r*(s.y-o.y)];break}l=e.unproject(m(a));return w([l.lat+h.lat,l.lng+h.lng])}var vt={__proto__:null,simplify:ei,pointToSegmentDistance:ii,closestPointOnSegment:function(t,e,i){return ri(t,e,i)},clipSegment:ni,_getEdgeIntersection:oi,_getBitCode:si,_sqClosestPointOnSegment:ri,isFlat:I,_flat:ai,polylineCenter:hi},yt={project:function(t){return new p(t.lng,t.lat)},unproject:function(t){return new v(t.y,t.x)},bounds:new f([-180,-90],[180,90])},xt={R:6378137,R_MINOR:6356752.314245179,bounds:new f([-20037508.34279,-15496570.73972],[20037508.34279,18764656.23138]),project:function(t){var e=Math.PI/180,i=this.R,n=t.lat*e,o=this.R_MINOR/i,o=Math.sqrt(1-o*o),s=o*Math.sin(n),s=Math.tan(Math.PI/4-n/2)/Math.pow((1-s)/(1+s),o/2),n=-i*Math.log(Math.max(s,1e-10));return new p(t.lng*e*i,n)},unproject:function(t){for(var e,i=180/Math.PI,n=this.R,o=this.R_MINOR/n,s=Math.sqrt(1-o*o),r=Math.exp(-t.y/n),a=Math.PI/2-2*Math.atan(r),h=0,l=.1;h<15&&1e-7<Math.abs(l);h++)e=s*Math.sin(a),e=Math.pow((1-e)/(1+e),s/2),a+=l=Math.PI/2-2*Math.atan(r*e)-a;return new v(a*i,t.x*i/n)}},wt={__proto__:null,LonLat:yt,Mercator:xt,SphericalMercator:rt},Pt=l({},st,{code:"EPSG:3395",projection:xt,transformation:ht(bt=.5/(Math.PI*xt.R),.5,-bt,.5)}),li=l({},st,{code:"EPSG:4326",projection:yt,transformation:ht(1/180,1,-1/180,.5)}),Lt=l({},ot,{projection:yt,transformation:ht(1,0,-1,0),scale:function(t){return Math.pow(2,t)},zoom:function(t){return Math.log(t)/Math.LN2},distance:function(t,e){var i=e.lng-t.lng,e=e.lat-t.lat;return Math.sqrt(i*i+e*e)},infinite:!0}),o=(ot.Earth=st,ot.EPSG3395=Pt,ot.EPSG3857=lt,ot.EPSG900913=ut,ot.EPSG4326=li,ot.Simple=Lt,it.extend({options:{pane:"overlayPane",attribution:null,bubblingMouseEvents:!0},addTo:function(t){return t.addLayer(this),this},remove:function(){return this.removeFrom(this._map||this._mapToAdd)},removeFrom:function(t){return t&&t.removeLayer(this),this},getPane:function(t){return this._map.getPane(t?this.options[t]||t:this.options.pane)},addInteractiveTarget:function(t){return this._map._targets[h(t)]=this},removeInteractiveTarget:function(t){return delete this._map._targets[h(t)],this},getAttribution:function(){return this.options.attribution},_layerAdd:function(t){var e,i=t.target;i.hasLayer(this)&&(this._map=i,this._zoomAnimated=i._zoomAnimated,this.getEvents&&(e=this.getEvents(),i.on(e,this),this.once("remove",function(){i.off(e,this)},this)),this.onAdd(i),this.fire("add"),i.fire("layeradd",{layer:this}))}})),ui=(A.include({addLayer:function(t){var e;if(t._layerAdd)return e=h(t),this._layers[e]||((this._layers[e]=t)._mapToAdd=this,t.beforeAdd&&t.beforeAdd(this),this.whenReady(t._layerAdd,t)),this;throw new Error("The provided object is not a Layer.")},removeLayer:function(t){var e=h(t);return this._layers[e]&&(this._loaded&&t.onRemove(this),delete this._layers[e],this._loaded&&(this.fire("layerremove",{layer:t}),t.fire("remove")),t._map=t._mapToAdd=null),this},hasLayer:function(t){return h(t)in this._layers},eachLayer:function(t,e){for(var i in this._layers)t.call(e,this._layers[i]);return this},_addLayers:function(t){for(var e=0,i=(t=t?d(t)?t:[t]:[]).length;e<i;e++)this.addLayer(t[e])},_addZoomLimit:function(t){isNaN(t.options.maxZoom)&&isNaN(t.options.minZoom)||(this._zoomBoundLayers[h(t)]=t,this._updateZoomLevels())},_removeZoomLimit:function(t){t=h(t);this._zoomBoundLayers[t]&&(delete this._zoomBoundLayers[t],this._updateZoomLevels())},_updateZoomLevels:function(){var t,e=1/0,i=-1/0,n=this._getZoomSpan();for(t in this._zoomBoundLayers)var o=this._zoomBoundLayers[t].options,e=void 0===o.minZoom?e:Math.min(e,o.minZoom),i=void 0===o.maxZoom?i:Math.max(i,o.maxZoom);this._layersMaxZoom=i===-1/0?void 0:i,this._layersMinZoom=e===1/0?void 0:e,n!==this._getZoomSpan()&&this.fire("zoomlevelschange"),void 0===this.options.maxZoom&&this._layersMaxZoom&&this.getZoom()>this._layersMaxZoom&&this.setZoom(this._layersMaxZoom),void 0===this.options.minZoom&&this._layersMinZoom&&this.getZoom()<this._layersMinZoom&&this.setZoom(this._layersMinZoom)}}),o.extend({initialize:function(t,e){var i,n;if(c(this,e),this._layers={},t)for(i=0,n=t.length;i<n;i++)this.addLayer(t[i])},addLayer:function(t){var e=this.getLayerId(t);return this._layers[e]=t,this._map&&this._map.addLayer(t),this},removeLayer:function(t){t=t in this._layers?t:this.getLayerId(t);return this._map&&this._layers[t]&&this._map.removeLayer(this._layers[t]),delete this._layers[t],this},hasLayer:function(t){return("number"==typeof t?t:this.getLayerId(t))in this._layers},clearLayers:function(){return this.eachLayer(this.removeLayer,this)},invoke:function(t){var e,i,n=Array.prototype.slice.call(arguments,1);for(e in this._layers)(i=this._layers[e])[t]&&i[t].apply(i,n);return this},onAdd:function(t){this.eachLayer(t.addLayer,t)},onRemove:function(t){this.eachLayer(t.removeLayer,t)},eachLayer:function(t,e){for(var i in this._layers)t.call(e,this._layers[i]);return this},getLayer:function(t){return this._layers[t]},getLayers:function(){var t=[];return this.eachLayer(t.push,t),t},setZIndex:function(t){return this.invoke("setZIndex",t)},getLayerId:h})),ci=ui.extend({addLayer:function(t){return this.hasLayer(t)?this:(t.addEventParent(this),ui.prototype.addLayer.call(this,t),this.fire("layeradd",{layer:t}))},removeLayer:function(t){return this.hasLayer(t)?((t=t in this._layers?this._layers[t]:t).removeEventParent(this),ui.prototype.removeLayer.call(this,t),this.fire("layerremove",{layer:t})):this},setStyle:function(t){return this.invoke("setStyle",t)},bringToFront:function(){return this.invoke("bringToFront")},bringToBack:function(){return this.invoke("bringToBack")},getBounds:function(){var t,e=new s;for(t in this._layers){var i=this._layers[t];e.extend(i.getBounds?i.getBounds():i.getLatLng())}return e}}),di=et.extend({options:{popupAnchor:[0,0],tooltipAnchor:[0,0],crossOrigin:!1},initialize:function(t){c(this,t)},createIcon:function(t){return this._createIcon("icon",t)},createShadow:function(t){return this._createIcon("shadow",t)},_createIcon:function(t,e){var i=this._getIconUrl(t);if(i)return i=this._createImg(i,e&&"IMG"===e.tagName?e:null),this._setIconStyles(i,t),!this.options.crossOrigin&&""!==this.options.crossOrigin||(i.crossOrigin=!0===this.options.crossOrigin?"":this.options.crossOrigin),i;if("icon"===t)throw new Error("iconUrl not set in Icon options (see the docs).");return null},_setIconStyles:function(t,e){var i=this.options,n=i[e+"Size"],n=m(n="number"==typeof n?[n,n]:n),o=m("shadow"===e&&i.shadowAnchor||i.iconAnchor||n&&n.divideBy(2,!0));t.className="leaflet-marker-"+e+" "+(i.className||""),o&&(t.style.marginLeft=-o.x+"px",t.style.marginTop=-o.y+"px"),n&&(t.style.width=n.x+"px",t.style.height=n.y+"px")},_createImg:function(t,e){return(e=e||document.createElement("img")).src=t,e},_getIconUrl:function(t){return b.retina&&this.options[t+"RetinaUrl"]||this.options[t+"Url"]}});var _i=di.extend({options:{iconUrl:"marker-icon.png",iconRetinaUrl:"marker-icon-2x.png",shadowUrl:"marker-shadow.png",iconSize:[25,41],iconAnchor:[12,41],popupAnchor:[1,-34],tooltipAnchor:[16,-28],shadowSize:[41,41]},_getIconUrl:function(t){return"string"!=typeof _i.imagePath&&(_i.imagePath=this._detectIconPath()),(this.options.imagePath||_i.imagePath)+di.prototype._getIconUrl.call(this,t)},_stripUrl:function(t){function e(t,e,i){return(e=e.exec(t))&&e[i]}return(t=e(t,/^url\((['"])?(.+)\1\)$/,2))&&e(t,/^(.*)marker-icon\.png$/,1)},_detectIconPath:function(){var t=P("div","leaflet-default-icon-path",document.body),e=pe(t,"background-image")||pe(t,"backgroundImage");return document.body.removeChild(t),(e=this._stripUrl(e))?e:(t=document.querySelector('link[href$="leaflet.css"]'))?t.href.substring(0,t.href.length-"leaflet.css".length-1):""}}),pi=n.extend({initialize:function(t){this._marker=t},addHooks:function(){var t=this._marker._icon;this._draggable||(this._draggable=new Xe(t,t,!0)),this._draggable.on({dragstart:this._onDragStart,predrag:this._onPreDrag,drag:this._onDrag,dragend:this._onDragEnd},this).enable(),M(t,"leaflet-marker-draggable")},removeHooks:function(){this._draggable.off({dragstart:this._onDragStart,predrag:this._onPreDrag,drag:this._onDrag,dragend:this._onDragEnd},this).disable(),this._marker._icon&&z(this._marker._icon,"leaflet-marker-draggable")},moved:function(){return this._draggable&&this._draggable._moved},_adjustPan:function(t){var e=this._marker,i=e._map,n=this._marker.options.autoPanSpeed,o=this._marker.options.autoPanPadding,s=Pe(e._icon),r=i.getPixelBounds(),a=i.getPixelOrigin(),a=_(r.min._subtract(a).add(o),r.max._subtract(a).subtract(o));a.contains(s)||(o=m((Math.max(a.max.x,s.x)-a.max.x)/(r.max.x-a.max.x)-(Math.min(a.min.x,s.x)-a.min.x)/(r.min.x-a.min.x),(Math.max(a.max.y,s.y)-a.max.y)/(r.max.y-a.max.y)-(Math.min(a.min.y,s.y)-a.min.y)/(r.min.y-a.min.y)).multiplyBy(n),i.panBy(o,{animate:!1}),this._draggable._newPos._add(o),this._draggable._startPos._add(o),Z(e._icon,this._draggable._newPos),this._onDrag(t),this._panRequest=x(this._adjustPan.bind(this,t)))},_onDragStart:function(){this._oldLatLng=this._marker.getLatLng(),this._marker.closePopup&&this._marker.closePopup(),this._marker.fire("movestart").fire("dragstart")},_onPreDrag:function(t){this._marker.options.autoPan&&(r(this._panRequest),this._panRequest=x(this._adjustPan.bind(this,t)))},_onDrag:function(t){var e=this._marker,i=e._shadow,n=Pe(e._icon),o=e._map.layerPointToLatLng(n);i&&Z(i,n),e._latlng=o,t.latlng=o,t.oldLatLng=this._oldLatLng,e.fire("move",t).fire("drag",t)},_onDragEnd:function(t){r(this._panRequest),delete this._oldLatLng,this._marker.fire("moveend").fire("dragend",t)}}),mi=o.extend({options:{icon:new _i,interactive:!0,keyboard:!0,title:"",alt:"Marker",zIndexOffset:0,opacity:1,riseOnHover:!1,riseOffset:250,pane:"markerPane",shadowPane:"shadowPane",bubblingMouseEvents:!1,autoPanOnFocus:!0,draggable:!1,autoPan:!1,autoPanPadding:[50,50],autoPanSpeed:10},initialize:function(t,e){c(this,e),this._latlng=w(t)},onAdd:function(t){this._zoomAnimated=this._zoomAnimated&&t.options.markerZoomAnimation,this._zoomAnimated&&t.on("zoomanim",this._animateZoom,this),this._initIcon(),this.update()},onRemove:function(t){this.dragging&&this.dragging.enabled()&&(this.options.draggable=!0,this.dragging.removeHooks()),delete this.dragging,this._zoomAnimated&&t.off("zoomanim",this._animateZoom,this),this._removeIcon(),this._removeShadow()},getEvents:function(){return{zoom:this.update,viewreset:this.update}},getLatLng:function(){return this._latlng},setLatLng:function(t){var e=this._latlng;return this._latlng=w(t),this.update(),this.fire("move",{oldLatLng:e,latlng:this._latlng})},setZIndexOffset:function(t){return this.options.zIndexOffset=t,this.update()},getIcon:function(){return this.options.icon},setIcon:function(t){return this.options.icon=t,this._map&&(this._initIcon(),this.update()),this._popup&&this.bindPopup(this._popup,this._popup.options),this},getElement:function(){return this._icon},update:function(){var t;return this._icon&&this._map&&(t=this._map.latLngToLayerPoint(this._latlng).round(),this._setPos(t)),this},_initIcon:function(){var t=this.options,e="leaflet-zoom-"+(this._zoomAnimated?"animated":"hide"),i=t.icon.createIcon(this._icon),n=!1,i=(i!==this._icon&&(this._icon&&this._removeIcon(),n=!0,t.title&&(i.title=t.title),"IMG"===i.tagName&&(i.alt=t.alt||"")),M(i,e),t.keyboard&&(i.tabIndex="0",i.setAttribute("role","button")),this._icon=i,t.riseOnHover&&this.on({mouseover:this._bringToFront,mouseout:this._resetZIndex}),this.options.autoPanOnFocus&&S(i,"focus",this._panOnFocus,this),t.icon.createShadow(this._shadow)),o=!1;i!==this._shadow&&(this._removeShadow(),o=!0),i&&(M(i,e),i.alt=""),this._shadow=i,t.opacity<1&&this._updateOpacity(),n&&this.getPane().appendChild(this._icon),this._initInteraction(),i&&o&&this.getPane(t.shadowPane).appendChild(this._shadow)},_removeIcon:function(){this.options.riseOnHover&&this.off({mouseover:this._bringToFront,mouseout:this._resetZIndex}),this.options.autoPanOnFocus&&k(this._icon,"focus",this._panOnFocus,this),T(this._icon),this.removeInteractiveTarget(this._icon),this._icon=null},_removeShadow:function(){this._shadow&&T(this._shadow),this._shadow=null},_setPos:function(t){this._icon&&Z(this._icon,t),this._shadow&&Z(this._shadow,t),this._zIndex=t.y+this.options.zIndexOffset,this._resetZIndex()},_updateZIndex:function(t){this._icon&&(this._icon.style.zIndex=this._zIndex+t)},_animateZoom:function(t){t=this._map._latLngToNewLayerPoint(this._latlng,t.zoom,t.center).round();this._setPos(t)},_initInteraction:function(){var t;this.options.interactive&&(M(this._icon,"leaflet-interactive"),this.addInteractiveTarget(this._icon),pi&&(t=this.options.draggable,this.dragging&&(t=this.dragging.enabled(),this.dragging.disable()),this.dragging=new pi(this),t&&this.dragging.enable()))},setOpacity:function(t){return this.options.opacity=t,this._map&&this._updateOpacity(),this},_updateOpacity:function(){var t=this.options.opacity;this._icon&&C(this._icon,t),this._shadow&&C(this._shadow,t)},_bringToFront:function(){this._updateZIndex(this.options.riseOffset)},_resetZIndex:function(){this._updateZIndex(0)},_panOnFocus:function(){var t,e,i=this._map;i&&(t=(e=this.options.icon.options).iconSize?m(e.iconSize):m(0,0),e=e.iconAnchor?m(e.iconAnchor):m(0,0),i.panInside(this._latlng,{paddingTopLeft:e,paddingBottomRight:t.subtract(e)}))},_getPopupAnchor:function(){return this.options.icon.options.popupAnchor},_getTooltipAnchor:function(){return this.options.icon.options.tooltipAnchor}});var fi=o.extend({options:{stroke:!0,color:"#3388ff",weight:3,opacity:1,lineCap:"round",lineJoin:"round",dashArray:null,dashOffset:null,fill:!1,fillColor:null,fillOpacity:.2,fillRule:"evenodd",interactive:!0,bubblingMouseEvents:!0},beforeAdd:function(t){this._renderer=t.getRenderer(this)},onAdd:function(){this._renderer._initPath(this),this._reset(),this._renderer._addPath(this)},onRemove:function(){this._renderer._removePath(this)},redraw:function(){return this._map&&this._renderer._updatePath(this),this},setStyle:function(t){return c(this,t),this._renderer&&(this._renderer._updateStyle(this),this.options.stroke&&t&&Object.prototype.hasOwnProperty.call(t,"weight")&&this._updateBounds()),this},bringToFront:function(){return this._renderer&&this._renderer._bringToFront(this),this},bringToBack:function(){return this._renderer&&this._renderer._bringToBack(this),this},getElement:function(){return this._path},_reset:function(){this._project(),this._update()},_clickTolerance:function(){return(this.options.stroke?this.options.weight/2:0)+(this._renderer.options.tolerance||0)}}),gi=fi.extend({options:{fill:!0,radius:10},initialize:function(t,e){c(this,e),this._latlng=w(t),this._radius=this.options.radius},setLatLng:function(t){var e=this._latlng;return this._latlng=w(t),this.redraw(),this.fire("move",{oldLatLng:e,latlng:this._latlng})},getLatLng:function(){return this._latlng},setRadius:function(t){return this.options.radius=this._radius=t,this.redraw()},getRadius:function(){return this._radius},setStyle:function(t){var e=t&&t.radius||this._radius;return fi.prototype.setStyle.call(this,t),this.setRadius(e),this},_project:function(){this._point=this._map.latLngToLayerPoint(this._latlng),this._updateBounds()},_updateBounds:function(){var t=this._radius,e=this._radiusY||t,i=this._clickTolerance(),t=[t+i,e+i];this._pxBounds=new f(this._point.subtract(t),this._point.add(t))},_update:function(){this._map&&this._updatePath()},_updatePath:function(){this._renderer._updateCircle(this)},_empty:function(){return this._radius&&!this._renderer._bounds.intersects(this._pxBounds)},_containsPoint:function(t){return t.distanceTo(this._point)<=this._radius+this._clickTolerance()}});var vi=gi.extend({initialize:function(t,e,i){if(c(this,e="number"==typeof e?l({},i,{radius:e}):e),this._latlng=w(t),isNaN(this.options.radius))throw new Error("Circle radius cannot be NaN");this._mRadius=this.options.radius},setRadius:function(t){return this._mRadius=t,this.redraw()},getRadius:function(){return this._mRadius},getBounds:function(){var t=[this._radius,this._radiusY||this._radius];return new s(this._map.layerPointToLatLng(this._point.subtract(t)),this._map.layerPointToLatLng(this._point.add(t)))},setStyle:fi.prototype.setStyle,_project:function(){var t,e,i,n,o,s=this._latlng.lng,r=this._latlng.lat,a=this._map,h=a.options.crs;h.distance===st.distance?(n=Math.PI/180,o=this._mRadius/st.R/n,t=a.project([r+o,s]),e=a.project([r-o,s]),e=t.add(e).divideBy(2),i=a.unproject(e).lat,n=Math.acos((Math.cos(o*n)-Math.sin(r*n)*Math.sin(i*n))/(Math.cos(r*n)*Math.cos(i*n)))/n,!isNaN(n)&&0!==n||(n=o/Math.cos(Math.PI/180*r)),this._point=e.subtract(a.getPixelOrigin()),this._radius=isNaN(n)?0:e.x-a.project([i,s-n]).x,this._radiusY=e.y-t.y):(o=h.unproject(h.project(this._latlng).subtract([this._mRadius,0])),this._point=a.latLngToLayerPoint(this._latlng),this._radius=this._point.x-a.latLngToLayerPoint(o).x),this._updateBounds()}});var yi=fi.extend({options:{smoothFactor:1,noClip:!1},initialize:function(t,e){c(this,e),this._setLatLngs(t)},getLatLngs:function(){return this._latlngs},setLatLngs:function(t){return this._setLatLngs(t),this.redraw()},isEmpty:function(){return!this._latlngs.length},closestLayerPoint:function(t){for(var e=1/0,i=null,n=ri,o=0,s=this._parts.length;o<s;o++)for(var r=this._parts[o],a=1,h=r.length;a<h;a++){var l,u,c=n(t,l=r[a-1],u=r[a],!0);c<e&&(e=c,i=n(t,l,u))}return i&&(i.distance=Math.sqrt(e)),i},getCenter:function(){if(this._map)return hi(this._defaultShape(),this._map.options.crs);throw new Error("Must add layer to map before using getCenter()")},getBounds:function(){return this._bounds},addLatLng:function(t,e){return e=e||this._defaultShape(),t=w(t),e.push(t),this._bounds.extend(t),this.redraw()},_setLatLngs:function(t){this._bounds=new s,this._latlngs=this._convertLatLngs(t)},_defaultShape:function(){return I(this._latlngs)?this._latlngs:this._latlngs[0]},_convertLatLngs:function(t){for(var e=[],i=I(t),n=0,o=t.length;n<o;n++)i?(e[n]=w(t[n]),this._bounds.extend(e[n])):e[n]=this._convertLatLngs(t[n]);return e},_project:function(){var t=new f;this._rings=[],this._projectLatlngs(this._latlngs,this._rings,t),this._bounds.isValid()&&t.isValid()&&(this._rawPxBounds=t,this._updateBounds())},_updateBounds:function(){var t=this._clickTolerance(),t=new p(t,t);this._rawPxBounds&&(this._pxBounds=new f([this._rawPxBounds.min.subtract(t),this._rawPxBounds.max.add(t)]))},_projectLatlngs:function(t,e,i){var n,o,s=t[0]instanceof v,r=t.length;if(s){for(o=[],n=0;n<r;n++)o[n]=this._map.latLngToLayerPoint(t[n]),i.extend(o[n]);e.push(o)}else for(n=0;n<r;n++)this._projectLatlngs(t[n],e,i)},_clipPoints:function(){var t=this._renderer._bounds;if(this._parts=[],this._pxBounds&&this._pxBounds.intersects(t))if(this.options.noClip)this._parts=this._rings;else for(var e,i,n,o,s=this._parts,r=0,a=0,h=this._rings.length;r<h;r++)for(e=0,i=(o=this._rings[r]).length;e<i-1;e++)(n=ni(o[e],o[e+1],t,e,!0))&&(s[a]=s[a]||[],s[a].push(n[0]),n[1]===o[e+1]&&e!==i-2||(s[a].push(n[1]),a++))},_simplifyPoints:function(){for(var t=this._parts,e=this.options.smoothFactor,i=0,n=t.length;i<n;i++)t[i]=ei(t[i],e)},_update:function(){this._map&&(this._clipPoints(),this._simplifyPoints(),this._updatePath())},_updatePath:function(){this._renderer._updatePoly(this)},_containsPoint:function(t,e){var i,n,o,s,r,a,h=this._clickTolerance();if(this._pxBounds&&this._pxBounds.contains(t))for(i=0,s=this._parts.length;i<s;i++)for(n=0,o=(r=(a=this._parts[i]).length)-1;n<r;o=n++)if((e||0!==n)&&ii(t,a[o],a[n])<=h)return!0;return!1}});yi._flat=ai;var xi=yi.extend({options:{fill:!0},isEmpty:function(){return!this._latlngs.length||!this._latlngs[0].length},getCenter:function(){if(this._map)return $e(this._defaultShape(),this._map.options.crs);throw new Error("Must add layer to map before using getCenter()")},_convertLatLngs:function(t){var t=yi.prototype._convertLatLngs.call(this,t),e=t.length;return 2<=e&&t[0]instanceof v&&t[0].equals(t[e-1])&&t.pop(),t},_setLatLngs:function(t){yi.prototype._setLatLngs.call(this,t),I(this._latlngs)&&(this._latlngs=[this._latlngs])},_defaultShape:function(){return(I(this._latlngs[0])?this._latlngs:this._latlngs[0])[0]},_clipPoints:function(){var t=this._renderer._bounds,e=this.options.weight,e=new p(e,e),t=new f(t.min.subtract(e),t.max.add(e));if(this._parts=[],this._pxBounds&&this._pxBounds.intersects(t))if(this.options.noClip)this._parts=this._rings;else for(var i,n=0,o=this._rings.length;n<o;n++)(i=Je(this._rings[n],t,!0)).length&&this._parts.push(i)},_updatePath:function(){this._renderer._updatePoly(this,!0)},_containsPoint:function(t){var e,i,n,o,s,r,a,h,l=!1;if(!this._pxBounds||!this._pxBounds.contains(t))return!1;for(o=0,a=this._parts.length;o<a;o++)for(s=0,r=(h=(e=this._parts[o]).length)-1;s<h;r=s++)i=e[s],n=e[r],i.y>t.y!=n.y>t.y&&t.x<(n.x-i.x)*(t.y-i.y)/(n.y-i.y)+i.x&&(l=!l);return l||yi.prototype._containsPoint.call(this,t,!0)}});var wi=ci.extend({initialize:function(t,e){c(this,e),this._layers={},t&&this.addData(t)},addData:function(t){var e,i,n,o=d(t)?t:t.features;if(o){for(e=0,i=o.length;e<i;e++)((n=o[e]).geometries||n.geometry||n.features||n.coordinates)&&this.addData(n);return this}var s,r=this.options;return(!r.filter||r.filter(t))&&(s=bi(t,r))?(s.feature=Zi(t),s.defaultOptions=s.options,this.resetStyle(s),r.onEachFeature&&r.onEachFeature(t,s),this.addLayer(s)):this},resetStyle:function(t){return void 0===t?this.eachLayer(this.resetStyle,this):(t.options=l({},t.defaultOptions),this._setLayerStyle(t,this.options.style),this)},setStyle:function(e){return this.eachLayer(function(t){this._setLayerStyle(t,e)},this)},_setLayerStyle:function(t,e){t.setStyle&&("function"==typeof e&&(e=e(t.feature)),t.setStyle(e))}});function bi(t,e){var i,n,o,s,r="Feature"===t.type?t.geometry:t,a=r?r.coordinates:null,h=[],l=e&&e.pointToLayer,u=e&&e.coordsToLatLng||Li;if(!a&&!r)return null;switch(r.type){case"Point":return Pi(l,t,i=u(a),e);case"MultiPoint":for(o=0,s=a.length;o<s;o++)i=u(a[o]),h.push(Pi(l,t,i,e));return new ci(h);case"LineString":case"MultiLineString":return n=Ti(a,"LineString"===r.type?0:1,u),new yi(n,e);case"Polygon":case"MultiPolygon":return n=Ti(a,"Polygon"===r.type?1:2,u),new xi(n,e);case"GeometryCollection":for(o=0,s=r.geometries.length;o<s;o++){var c=bi({geometry:r.geometries[o],type:"Feature",properties:t.properties},e);c&&h.push(c)}return new ci(h);case"FeatureCollection":for(o=0,s=r.features.length;o<s;o++){var d=bi(r.features[o],e);d&&h.push(d)}return new ci(h);default:throw new Error("Invalid GeoJSON object.")}}function Pi(t,e,i,n){return t?t(e,i):new mi(i,n&&n.markersInheritOptions&&n)}function Li(t){return new v(t[1],t[0],t[2])}function Ti(t,e,i){for(var n,o=[],s=0,r=t.length;s<r;s++)n=e?Ti(t[s],e-1,i):(i||Li)(t[s]),o.push(n);return o}function Mi(t,e){return void 0!==(t=w(t)).alt?[i(t.lng,e),i(t.lat,e),i(t.alt,e)]:[i(t.lng,e),i(t.lat,e)]}function zi(t,e,i,n){for(var o=[],s=0,r=t.length;s<r;s++)o.push(e?zi(t[s],I(t[s])?0:e-1,i,n):Mi(t[s],n));return!e&&i&&0<o.length&&o.push(o[0].slice()),o}function Ci(t,e){return t.feature?l({},t.feature,{geometry:e}):Zi(e)}function Zi(t){return"Feature"===t.type||"FeatureCollection"===t.type?t:{type:"Feature",properties:{},geometry:t}}Tt={toGeoJSON:function(t){return Ci(this,{type:"Point",coordinates:Mi(this.getLatLng(),t)})}};function Si(t,e){return new wi(t,e)}mi.include(Tt),vi.include(Tt),gi.include(Tt),yi.include({toGeoJSON:function(t){var e=!I(this._latlngs);return Ci(this,{type:(e?"Multi":"")+"LineString",coordinates:zi(this._latlngs,e?1:0,!1,t)})}}),xi.include({toGeoJSON:function(t){var e=!I(this._latlngs),i=e&&!I(this._latlngs[0]),t=zi(this._latlngs,i?2:e?1:0,!0,t);return Ci(this,{type:(i?"Multi":"")+"Polygon",coordinates:t=e?t:[t]})}}),ui.include({toMultiPoint:function(e){var i=[];return this.eachLayer(function(t){i.push(t.toGeoJSON(e).geometry.coordinates)}),Ci(this,{type:"MultiPoint",coordinates:i})},toGeoJSON:function(e){var i,n,t=this.feature&&this.feature.geometry&&this.feature.geometry.type;return"MultiPoint"===t?this.toMultiPoint(e):(i="GeometryCollection"===t,n=[],this.eachLayer(function(t){t.toGeoJSON&&(t=t.toGeoJSON(e),i?n.push(t.geometry):"FeatureCollection"===(t=Zi(t)).type?n.push.apply(n,t.features):n.push(t))}),i?Ci(this,{geometries:n,type:"GeometryCollection"}):{type:"FeatureCollection",features:n})}});var Mt=Si,Ei=o.extend({options:{opacity:1,alt:"",interactive:!1,crossOrigin:!1,errorOverlayUrl:"",zIndex:1,className:""},initialize:function(t,e,i){this._url=t,this._bounds=g(e),c(this,i)},onAdd:function(){this._image||(this._initImage(),this.options.opacity<1&&this._updateOpacity()),this.options.interactive&&(M(this._image,"leaflet-interactive"),this.addInteractiveTarget(this._image)),this.getPane().appendChild(this._image),this._reset()},onRemove:function(){T(this._image),this.options.interactive&&this.removeInteractiveTarget(this._image)},setOpacity:function(t){return this.options.opacity=t,this._image&&this._updateOpacity(),this},setStyle:function(t){return t.opacity&&this.setOpacity(t.opacity),this},bringToFront:function(){return this._map&&fe(this._image),this},bringToBack:function(){return this._map&&ge(this._image),this},setUrl:function(t){return this._url=t,this._image&&(this._image.src=t),this},setBounds:function(t){return this._bounds=g(t),this._map&&this._reset(),this},getEvents:function(){var t={zoom:this._reset,viewreset:this._reset};return this._zoomAnimated&&(t.zoomanim=this._animateZoom),t},setZIndex:function(t){return this.options.zIndex=t,this._updateZIndex(),this},getBounds:function(){return this._bounds},getElement:function(){return this._image},_initImage:function(){var t="IMG"===this._url.tagName,e=this._image=t?this._url:P("img");M(e,"leaflet-image-layer"),this._zoomAnimated&&M(e,"leaflet-zoom-animated"),this.options.className&&M(e,this.options.className),e.onselectstart=u,e.onmousemove=u,e.onload=a(this.fire,this,"load"),e.onerror=a(this._overlayOnError,this,"error"),!this.options.crossOrigin&&""!==this.options.crossOrigin||(e.crossOrigin=!0===this.options.crossOrigin?"":this.options.crossOrigin),this.options.zIndex&&this._updateZIndex(),t?this._url=e.src:(e.src=this._url,e.alt=this.options.alt)},_animateZoom:function(t){var e=this._map.getZoomScale(t.zoom),t=this._map._latLngBoundsToNewLayerBounds(this._bounds,t.zoom,t.center).min;be(this._image,t,e)},_reset:function(){var t=this._image,e=new f(this._map.latLngToLayerPoint(this._bounds.getNorthWest()),this._map.latLngToLayerPoint(this._bounds.getSouthEast())),i=e.getSize();Z(t,e.min),t.style.width=i.x+"px",t.style.height=i.y+"px"},_updateOpacity:function(){C(this._image,this.options.opacity)},_updateZIndex:function(){this._image&&void 0!==this.options.zIndex&&null!==this.options.zIndex&&(this._image.style.zIndex=this.options.zIndex)},_overlayOnError:function(){this.fire("error");var t=this.options.errorOverlayUrl;t&&this._url!==t&&(this._url=t,this._image.src=t)},getCenter:function(){return this._bounds.getCenter()}}),ki=Ei.extend({options:{autoplay:!0,loop:!0,keepAspectRatio:!0,muted:!1,playsInline:!0},_initImage:function(){var t="VIDEO"===this._url.tagName,e=this._image=t?this._url:P("video");if(M(e,"leaflet-image-layer"),this._zoomAnimated&&M(e,"leaflet-zoom-animated"),this.options.className&&M(e,this.options.className),e.onselectstart=u,e.onmousemove=u,e.onloadeddata=a(this.fire,this,"load"),t){for(var i=e.getElementsByTagName("source"),n=[],o=0;o<i.length;o++)n.push(i[o].src);this._url=0<i.length?n:[e.src]}else{d(this._url)||(this._url=[this._url]),!this.options.keepAspectRatio&&Object.prototype.hasOwnProperty.call(e.style,"objectFit")&&(e.style.objectFit="fill"),e.autoplay=!!this.options.autoplay,e.loop=!!this.options.loop,e.muted=!!this.options.muted,e.playsInline=!!this.options.playsInline;for(var s=0;s<this._url.length;s++){var r=P("source");r.src=this._url[s],e.appendChild(r)}}}});var Oi=Ei.extend({_initImage:function(){var t=this._image=this._url;M(t,"leaflet-image-layer"),this._zoomAnimated&&M(t,"leaflet-zoom-animated"),this.options.className&&M(t,this.options.className),t.onselectstart=u,t.onmousemove=u}});var Ai=o.extend({options:{interactive:!1,offset:[0,0],className:"",pane:void 0,content:""},initialize:function(t,e){t&&(t instanceof v||d(t))?(this._latlng=w(t),c(this,e)):(c(this,t),this._source=e),this.options.content&&(this._content=this.options.content)},openOn:function(t){return(t=arguments.length?t:this._source._map).hasLayer(this)||t.addLayer(this),this},close:function(){return this._map&&this._map.removeLayer(this),this},toggle:function(t){return this._map?this.close():(arguments.length?this._source=t:t=this._source,this._prepareOpen(),this.openOn(t._map)),this},onAdd:function(t){this._zoomAnimated=t._zoomAnimated,this._container||this._initLayout(),t._fadeAnimated&&C(this._container,0),clearTimeout(this._removeTimeout),this.getPane().appendChild(this._container),this.update(),t._fadeAnimated&&C(this._container,1),this.bringToFront(),this.options.interactive&&(M(this._container,"leaflet-interactive"),this.addInteractiveTarget(this._container))},onRemove:function(t){t._fadeAnimated?(C(this._container,0),this._removeTimeout=setTimeout(a(T,void 0,this._container),200)):T(this._container),this.options.interactive&&(z(this._container,"leaflet-interactive"),this.removeInteractiveTarget(this._container))},getLatLng:function(){return this._latlng},setLatLng:function(t){return this._latlng=w(t),this._map&&(this._updatePosition(),this._adjustPan()),this},getContent:function(){return this._content},setContent:function(t){return this._content=t,this.update(),this},getElement:function(){return this._container},update:function(){this._map&&(this._container.style.visibility="hidden",this._updateContent(),this._updateLayout(),this._updatePosition(),this._container.style.visibility="",this._adjustPan())},getEvents:function(){var t={zoom:this._updatePosition,viewreset:this._updatePosition};return this._zoomAnimated&&(t.zoomanim=this._animateZoom),t},isOpen:function(){return!!this._map&&this._map.hasLayer(this)},bringToFront:function(){return this._map&&fe(this._container),this},bringToBack:function(){return this._map&&ge(this._container),this},_prepareOpen:function(t){if(!(i=this._source)._map)return!1;if(i instanceof ci){var e,i=null,n=this._source._layers;for(e in n)if(n[e]._map){i=n[e];break}if(!i)return!1;this._source=i}if(!t)if(i.getCenter)t=i.getCenter();else if(i.getLatLng)t=i.getLatLng();else{if(!i.getBounds)throw new Error("Unable to get source layer LatLng.");t=i.getBounds().getCenter()}return this.setLatLng(t),this._map&&this.update(),!0},_updateContent:function(){if(this._content){var t=this._contentNode,e="function"==typeof this._content?this._content(this._source||this):this._content;if("string"==typeof e)t.innerHTML=e;else{for(;t.hasChildNodes();)t.removeChild(t.firstChild);t.appendChild(e)}this.fire("contentupdate")}},_updatePosition:function(){var t,e,i;this._map&&(e=this._map.latLngToLayerPoint(this._latlng),t=m(this.options.offset),i=this._getAnchor(),this._zoomAnimated?Z(this._container,e.add(i)):t=t.add(e).add(i),e=this._containerBottom=-t.y,i=this._containerLeft=-Math.round(this._containerWidth/2)+t.x,this._container.style.bottom=e+"px",this._container.style.left=i+"px")},_getAnchor:function(){return[0,0]}}),Bi=(A.include({_initOverlay:function(t,e,i,n){var o=e;return o instanceof t||(o=new t(n).setContent(e)),i&&o.setLatLng(i),o}}),o.include({_initOverlay:function(t,e,i,n){var o=i;return o instanceof t?(c(o,n),o._source=this):(o=e&&!n?e:new t(n,this)).setContent(i),o}}),Ai.extend({options:{pane:"popupPane",offset:[0,7],maxWidth:300,minWidth:50,maxHeight:null,autoPan:!0,autoPanPaddingTopLeft:null,autoPanPaddingBottomRight:null,autoPanPadding:[5,5],keepInView:!1,closeButton:!0,autoClose:!0,closeOnEscapeKey:!0,className:""},openOn:function(t){return!(t=arguments.length?t:this._source._map).hasLayer(this)&&t._popup&&t._popup.options.autoClose&&t.removeLayer(t._popup),t._popup=this,Ai.prototype.openOn.call(this,t)},onAdd:function(t){Ai.prototype.onAdd.call(this,t),t.fire("popupopen",{popup:this}),this._source&&(this._source.fire("popupopen",{popup:this},!0),this._source instanceof fi||this._source.on("preclick",Ae))},onRemove:function(t){Ai.prototype.onRemove.call(this,t),t.fire("popupclose",{popup:this}),this._source&&(this._source.fire("popupclose",{popup:this},!0),this._source instanceof fi||this._source.off("preclick",Ae))},getEvents:function(){var t=Ai.prototype.getEvents.call(this);return(void 0!==this.options.closeOnClick?this.options.closeOnClick:this._map.options.closePopupOnClick)&&(t.preclick=this.close),this.options.keepInView&&(t.moveend=this._adjustPan),t},_initLayout:function(){var t="leaflet-popup",e=this._container=P("div",t+" "+(this.options.className||"")+" leaflet-zoom-animated"),i=this._wrapper=P("div",t+"-content-wrapper",e);this._contentNode=P("div",t+"-content",i),Ie(e),Be(this._contentNode),S(e,"contextmenu",Ae),this._tipContainer=P("div",t+"-tip-container",e),this._tip=P("div",t+"-tip",this._tipContainer),this.options.closeButton&&((i=this._closeButton=P("a",t+"-close-button",e)).setAttribute("role","button"),i.setAttribute("aria-label","Close popup"),i.href="#close",i.innerHTML='<span aria-hidden="true">&#215;</span>',S(i,"click",function(t){O(t),this.close()},this))},_updateLayout:function(){var t=this._contentNode,e=t.style,i=(e.width="",e.whiteSpace="nowrap",t.offsetWidth),i=Math.min(i,this.options.maxWidth),i=(i=Math.max(i,this.options.minWidth),e.width=i+1+"px",e.whiteSpace="",e.height="",t.offsetHeight),n=this.options.maxHeight,o="leaflet-popup-scrolled";(n&&n<i?(e.height=n+"px",M):z)(t,o),this._containerWidth=this._container.offsetWidth},_animateZoom:function(t){var t=this._map._latLngToNewLayerPoint(this._latlng,t.zoom,t.center),e=this._getAnchor();Z(this._container,t.add(e))},_adjustPan:function(){var t,e,i,n,o,s,r,a;this.options.autoPan&&(this._map._panAnim&&this._map._panAnim.stop(),this._autopanning?this._autopanning=!1:(t=this._map,e=parseInt(pe(this._container,"marginBottom"),10)||0,e=this._container.offsetHeight+e,a=this._containerWidth,(i=new p(this._containerLeft,-e-this._containerBottom))._add(Pe(this._container)),i=t.layerPointToContainerPoint(i),o=m(this.options.autoPanPadding),n=m(this.options.autoPanPaddingTopLeft||o),o=m(this.options.autoPanPaddingBottomRight||o),s=t.getSize(),r=0,i.x+a+o.x>s.x&&(r=i.x+a-s.x+o.x),i.x-r-n.x<(a=0)&&(r=i.x-n.x),i.y+e+o.y>s.y&&(a=i.y+e-s.y+o.y),i.y-a-n.y<0&&(a=i.y-n.y),(r||a)&&(this.options.keepInView&&(this._autopanning=!0),t.fire("autopanstart").panBy([r,a]))))},_getAnchor:function(){return m(this._source&&this._source._getPopupAnchor?this._source._getPopupAnchor():[0,0])}})),Ii=(A.mergeOptions({closePopupOnClick:!0}),A.include({openPopup:function(t,e,i){return this._initOverlay(Bi,t,e,i).openOn(this),this},closePopup:function(t){return(t=arguments.length?t:this._popup)&&t.close(),this}}),o.include({bindPopup:function(t,e){return this._popup=this._initOverlay(Bi,this._popup,t,e),this._popupHandlersAdded||(this.on({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!0),this},unbindPopup:function(){return this._popup&&(this.off({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!1,this._popup=null),this},openPopup:function(t){return this._popup&&(this instanceof ci||(this._popup._source=this),this._popup._prepareOpen(t||this._latlng)&&this._popup.openOn(this._map)),this},closePopup:function(){return this._popup&&this._popup.close(),this},togglePopup:function(){return this._popup&&this._popup.toggle(this),this},isPopupOpen:function(){return!!this._popup&&this._popup.isOpen()},setPopupContent:function(t){return this._popup&&this._popup.setContent(t),this},getPopup:function(){return this._popup},_openPopup:function(t){var e;this._popup&&this._map&&(Re(t),e=t.layer||t.target,this._popup._source!==e||e instanceof fi?(this._popup._source=e,this.openPopup(t.latlng)):this._map.hasLayer(this._popup)?this.closePopup():this.openPopup(t.latlng))},_movePopup:function(t){this._popup.setLatLng(t.latlng)},_onKeyPress:function(t){13===t.originalEvent.keyCode&&this._openPopup(t)}}),Ai.extend({options:{pane:"tooltipPane",offset:[0,0],direction:"auto",permanent:!1,sticky:!1,opacity:.9},onAdd:function(t){Ai.prototype.onAdd.call(this,t),this.setOpacity(this.options.opacity),t.fire("tooltipopen",{tooltip:this}),this._source&&(this.addEventParent(this._source),this._source.fire("tooltipopen",{tooltip:this},!0))},onRemove:function(t){Ai.prototype.onRemove.call(this,t),t.fire("tooltipclose",{tooltip:this}),this._source&&(this.removeEventParent(this._source),this._source.fire("tooltipclose",{tooltip:this},!0))},getEvents:function(){var t=Ai.prototype.getEvents.call(this);return this.options.permanent||(t.preclick=this.close),t},_initLayout:function(){var t="leaflet-tooltip "+(this.options.className||"")+" leaflet-zoom-"+(this._zoomAnimated?"animated":"hide");this._contentNode=this._container=P("div",t),this._container.setAttribute("role","tooltip"),this._container.setAttribute("id","leaflet-tooltip-"+h(this))},_updateLayout:function(){},_adjustPan:function(){},_setPosition:function(t){var e,i=this._map,n=this._container,o=i.latLngToContainerPoint(i.getCenter()),i=i.layerPointToContainerPoint(t),s=this.options.direction,r=n.offsetWidth,a=n.offsetHeight,h=m(this.options.offset),l=this._getAnchor(),i="top"===s?(e=r/2,a):"bottom"===s?(e=r/2,0):(e="center"===s?r/2:"right"===s?0:"left"===s?r:i.x<o.x?(s="right",0):(s="left",r+2*(h.x+l.x)),a/2);t=t.subtract(m(e,i,!0)).add(h).add(l),z(n,"leaflet-tooltip-right"),z(n,"leaflet-tooltip-left"),z(n,"leaflet-tooltip-top"),z(n,"leaflet-tooltip-bottom"),M(n,"leaflet-tooltip-"+s),Z(n,t)},_updatePosition:function(){var t=this._map.latLngToLayerPoint(this._latlng);this._setPosition(t)},setOpacity:function(t){this.options.opacity=t,this._container&&C(this._container,t)},_animateZoom:function(t){t=this._map._latLngToNewLayerPoint(this._latlng,t.zoom,t.center);this._setPosition(t)},_getAnchor:function(){return m(this._source&&this._source._getTooltipAnchor&&!this.options.sticky?this._source._getTooltipAnchor():[0,0])}})),Ri=(A.include({openTooltip:function(t,e,i){return this._initOverlay(Ii,t,e,i).openOn(this),this},closeTooltip:function(t){return t.close(),this}}),o.include({bindTooltip:function(t,e){return this._tooltip&&this.isTooltipOpen()&&this.unbindTooltip(),this._tooltip=this._initOverlay(Ii,this._tooltip,t,e),this._initTooltipInteractions(),this._tooltip.options.permanent&&this._map&&this._map.hasLayer(this)&&this.openTooltip(),this},unbindTooltip:function(){return this._tooltip&&(this._initTooltipInteractions(!0),this.closeTooltip(),this._tooltip=null),this},_initTooltipInteractions:function(t){var e,i;!t&&this._tooltipHandlersAdded||(e=t?"off":"on",i={remove:this.closeTooltip,move:this._moveTooltip},this._tooltip.options.permanent?i.add=this._openTooltip:(i.mouseover=this._openTooltip,i.mouseout=this.closeTooltip,i.click=this._openTooltip,this._map?this._addFocusListeners():i.add=this._addFocusListeners),this._tooltip.options.sticky&&(i.mousemove=this._moveTooltip),this[e](i),this._tooltipHandlersAdded=!t)},openTooltip:function(t){return this._tooltip&&(this instanceof ci||(this._tooltip._source=this),this._tooltip._prepareOpen(t)&&(this._tooltip.openOn(this._map),this.getElement?this._setAriaDescribedByOnLayer(this):this.eachLayer&&this.eachLayer(this._setAriaDescribedByOnLayer,this))),this},closeTooltip:function(){if(this._tooltip)return this._tooltip.close()},toggleTooltip:function(){return this._tooltip&&this._tooltip.toggle(this),this},isTooltipOpen:function(){return this._tooltip.isOpen()},setTooltipContent:function(t){return this._tooltip&&this._tooltip.setContent(t),this},getTooltip:function(){return this._tooltip},_addFocusListeners:function(){this.getElement?this._addFocusListenersOnLayer(this):this.eachLayer&&this.eachLayer(this._addFocusListenersOnLayer,this)},_addFocusListenersOnLayer:function(t){var e="function"==typeof t.getElement&&t.getElement();e&&(S(e,"focus",function(){this._tooltip._source=t,this.openTooltip()},this),S(e,"blur",this.closeTooltip,this))},_setAriaDescribedByOnLayer:function(t){t="function"==typeof t.getElement&&t.getElement();t&&t.setAttribute("aria-describedby",this._tooltip._container.id)},_openTooltip:function(t){var e;this._tooltip&&this._map&&(this._map.dragging&&this._map.dragging.moving()&&!this._openOnceFlag?(this._openOnceFlag=!0,(e=this)._map.once("moveend",function(){e._openOnceFlag=!1,e._openTooltip(t)})):(this._tooltip._source=t.layer||t.target,this.openTooltip(this._tooltip.options.sticky?t.latlng:void 0)))},_moveTooltip:function(t){var e=t.latlng;this._tooltip.options.sticky&&t.originalEvent&&(t=this._map.mouseEventToContainerPoint(t.originalEvent),t=this._map.containerPointToLayerPoint(t),e=this._map.layerPointToLatLng(t)),this._tooltip.setLatLng(e)}}),di.extend({options:{iconSize:[12,12],html:!1,bgPos:null,className:"leaflet-div-icon"},createIcon:function(t){var t=t&&"DIV"===t.tagName?t:document.createElement("div"),e=this.options;return e.html instanceof Element?(me(t),t.appendChild(e.html)):t.innerHTML=!1!==e.html?e.html:"",e.bgPos&&(e=m(e.bgPos),t.style.backgroundPosition=-e.x+"px "+-e.y+"px"),this._setIconStyles(t,"icon"),t},createShadow:function(){return null}}));di.Default=_i;var Ni=o.extend({options:{tileSize:256,opacity:1,updateWhenIdle:b.mobile,updateWhenZooming:!0,updateInterval:200,zIndex:1,bounds:null,minZoom:0,maxZoom:void 0,maxNativeZoom:void 0,minNativeZoom:void 0,noWrap:!1,pane:"tilePane",className:"",keepBuffer:2},initialize:function(t){c(this,t)},onAdd:function(){this._initContainer(),this._levels={},this._tiles={},this._resetView()},beforeAdd:function(t){t._addZoomLimit(this)},onRemove:function(t){this._removeAllTiles(),T(this._container),t._removeZoomLimit(this),this._container=null,this._tileZoom=void 0},bringToFront:function(){return this._map&&(fe(this._container),this._setAutoZIndex(Math.max)),this},bringToBack:function(){return this._map&&(ge(this._container),this._setAutoZIndex(Math.min)),this},getContainer:function(){return this._container},setOpacity:function(t){return this.options.opacity=t,this._updateOpacity(),this},setZIndex:function(t){return this.options.zIndex=t,this._updateZIndex(),this},isLoading:function(){return this._loading},redraw:function(){var t;return this._map&&(this._removeAllTiles(),(t=this._clampZoom(this._map.getZoom()))!==this._tileZoom&&(this._tileZoom=t,this._updateLevels()),this._update()),this},getEvents:function(){var t={viewprereset:this._invalidateAll,viewreset:this._resetView,zoom:this._resetView,moveend:this._onMoveEnd};return this.options.updateWhenIdle||(this._onMove||(this._onMove=j(this._onMoveEnd,this.options.updateInterval,this)),t.move=this._onMove),this._zoomAnimated&&(t.zoomanim=this._animateZoom),t},createTile:function(){return document.createElement("div")},getTileSize:function(){var t=this.options.tileSize;return t instanceof p?t:new p(t,t)},_updateZIndex:function(){this._container&&void 0!==this.options.zIndex&&null!==this.options.zIndex&&(this._container.style.zIndex=this.options.zIndex)},_setAutoZIndex:function(t){for(var e,i=this.getPane().children,n=-t(-1/0,1/0),o=0,s=i.length;o<s;o++)e=i[o].style.zIndex,i[o]!==this._container&&e&&(n=t(n,+e));isFinite(n)&&(this.options.zIndex=n+t(-1,1),this._updateZIndex())},_updateOpacity:function(){if(this._map&&!b.ielt9){C(this._container,this.options.opacity);var t,e=+new Date,i=!1,n=!1;for(t in this._tiles){var o,s=this._tiles[t];s.current&&s.loaded&&(o=Math.min(1,(e-s.loaded)/200),C(s.el,o),o<1?i=!0:(s.active?n=!0:this._onOpaqueTile(s),s.active=!0))}n&&!this._noPrune&&this._pruneTiles(),i&&(r(this._fadeFrame),this._fadeFrame=x(this._updateOpacity,this))}},_onOpaqueTile:u,_initContainer:function(){this._container||(this._container=P("div","leaflet-layer "+(this.options.className||"")),this._updateZIndex(),this.options.opacity<1&&this._updateOpacity(),this.getPane().appendChild(this._container))},_updateLevels:function(){var t=this._tileZoom,e=this.options.maxZoom;if(void 0!==t){for(var i in this._levels)i=Number(i),this._levels[i].el.children.length||i===t?(this._levels[i].el.style.zIndex=e-Math.abs(t-i),this._onUpdateLevel(i)):(T(this._levels[i].el),this._removeTilesAtZoom(i),this._onRemoveLevel(i),delete this._levels[i]);var n=this._levels[t],o=this._map;return n||((n=this._levels[t]={}).el=P("div","leaflet-tile-container leaflet-zoom-animated",this._container),n.el.style.zIndex=e,n.origin=o.project(o.unproject(o.getPixelOrigin()),t).round(),n.zoom=t,this._setZoomTransform(n,o.getCenter(),o.getZoom()),u(n.el.offsetWidth),this._onCreateLevel(n)),this._level=n}},_onUpdateLevel:u,_onRemoveLevel:u,_onCreateLevel:u,_pruneTiles:function(){if(this._map){var t,e,i,n=this._map.getZoom();if(n>this.options.maxZoom||n<this.options.minZoom)this._removeAllTiles();else{for(t in this._tiles)(i=this._tiles[t]).retain=i.current;for(t in this._tiles)(i=this._tiles[t]).current&&!i.active&&(e=i.coords,this._retainParent(e.x,e.y,e.z,e.z-5)||this._retainChildren(e.x,e.y,e.z,e.z+2));for(t in this._tiles)this._tiles[t].retain||this._removeTile(t)}}},_removeTilesAtZoom:function(t){for(var e in this._tiles)this._tiles[e].coords.z===t&&this._removeTile(e)},_removeAllTiles:function(){for(var t in this._tiles)this._removeTile(t)},_invalidateAll:function(){for(var t in this._levels)T(this._levels[t].el),this._onRemoveLevel(Number(t)),delete this._levels[t];this._removeAllTiles(),this._tileZoom=void 0},_retainParent:function(t,e,i,n){var t=Math.floor(t/2),e=Math.floor(e/2),i=i-1,o=new p(+t,+e),o=(o.z=i,this._tileCoordsToKey(o)),o=this._tiles[o];return o&&o.active?o.retain=!0:(o&&o.loaded&&(o.retain=!0),n<i&&this._retainParent(t,e,i,n))},_retainChildren:function(t,e,i,n){for(var o=2*t;o<2*t+2;o++)for(var s=2*e;s<2*e+2;s++){var r=new p(o,s),r=(r.z=i+1,this._tileCoordsToKey(r)),r=this._tiles[r];r&&r.active?r.retain=!0:(r&&r.loaded&&(r.retain=!0),i+1<n&&this._retainChildren(o,s,i+1,n))}},_resetView:function(t){t=t&&(t.pinch||t.flyTo);this._setView(this._map.getCenter(),this._map.getZoom(),t,t)},_animateZoom:function(t){this._setView(t.center,t.zoom,!0,t.noUpdate)},_clampZoom:function(t){var e=this.options;return void 0!==e.minNativeZoom&&t<e.minNativeZoom?e.minNativeZoom:void 0!==e.maxNativeZoom&&e.maxNativeZoom<t?e.maxNativeZoom:t},_setView:function(t,e,i,n){var o=Math.round(e),o=void 0!==this.options.maxZoom&&o>this.options.maxZoom||void 0!==this.options.minZoom&&o<this.options.minZoom?void 0:this._clampZoom(o),s=this.options.updateWhenZooming&&o!==this._tileZoom;n&&!s||(this._tileZoom=o,this._abortLoading&&this._abortLoading(),this._updateLevels(),this._resetGrid(),void 0!==o&&this._update(t),i||this._pruneTiles(),this._noPrune=!!i),this._setZoomTransforms(t,e)},_setZoomTransforms:function(t,e){for(var i in this._levels)this._setZoomTransform(this._levels[i],t,e)},_setZoomTransform:function(t,e,i){var n=this._map.getZoomScale(i,t.zoom),e=t.origin.multiplyBy(n).subtract(this._map._getNewPixelOrigin(e,i)).round();b.any3d?be(t.el,e,n):Z(t.el,e)},_resetGrid:function(){var t=this._map,e=t.options.crs,i=this._tileSize=this.getTileSize(),n=this._tileZoom,o=this._map.getPixelWorldBounds(this._tileZoom);o&&(this._globalTileRange=this._pxBoundsToTileRange(o)),this._wrapX=e.wrapLng&&!this.options.noWrap&&[Math.floor(t.project([0,e.wrapLng[0]],n).x/i.x),Math.ceil(t.project([0,e.wrapLng[1]],n).x/i.y)],this._wrapY=e.wrapLat&&!this.options.noWrap&&[Math.floor(t.project([e.wrapLat[0],0],n).y/i.x),Math.ceil(t.project([e.wrapLat[1],0],n).y/i.y)]},_onMoveEnd:function(){this._map&&!this._map._animatingZoom&&this._update()},_getTiledPixelBounds:function(t){var e=this._map,i=e._animatingZoom?Math.max(e._animateToZoom,e.getZoom()):e.getZoom(),i=e.getZoomScale(i,this._tileZoom),t=e.project(t,this._tileZoom).floor(),e=e.getSize().divideBy(2*i);return new f(t.subtract(e),t.add(e))},_update:function(t){var e=this._map;if(e){var i=this._clampZoom(e.getZoom());if(void 0===t&&(t=e.getCenter()),void 0!==this._tileZoom){var n,e=this._getTiledPixelBounds(t),o=this._pxBoundsToTileRange(e),s=o.getCenter(),r=[],e=this.options.keepBuffer,a=new f(o.getBottomLeft().subtract([e,-e]),o.getTopRight().add([e,-e]));if(!(isFinite(o.min.x)&&isFinite(o.min.y)&&isFinite(o.max.x)&&isFinite(o.max.y)))throw new Error("Attempted to load an infinite number of tiles");for(n in this._tiles){var h=this._tiles[n].coords;h.z===this._tileZoom&&a.contains(new p(h.x,h.y))||(this._tiles[n].current=!1)}if(1<Math.abs(i-this._tileZoom))this._setView(t,i);else{for(var l=o.min.y;l<=o.max.y;l++)for(var u=o.min.x;u<=o.max.x;u++){var c,d=new p(u,l);d.z=this._tileZoom,this._isValidTile(d)&&((c=this._tiles[this._tileCoordsToKey(d)])?c.current=!0:r.push(d))}if(r.sort(function(t,e){return t.distanceTo(s)-e.distanceTo(s)}),0!==r.length){this._loading||(this._loading=!0,this.fire("loading"));for(var _=document.createDocumentFragment(),u=0;u<r.length;u++)this._addTile(r[u],_);this._level.el.appendChild(_)}}}}},_isValidTile:function(t){var e=this._map.options.crs;if(!e.infinite){var i=this._globalTileRange;if(!e.wrapLng&&(t.x<i.min.x||t.x>i.max.x)||!e.wrapLat&&(t.y<i.min.y||t.y>i.max.y))return!1}return!this.options.bounds||(e=this._tileCoordsToBounds(t),g(this.options.bounds).overlaps(e))},_keyToBounds:function(t){return this._tileCoordsToBounds(this._keyToTileCoords(t))},_tileCoordsToNwSe:function(t){var e=this._map,i=this.getTileSize(),n=t.scaleBy(i),i=n.add(i);return[e.unproject(n,t.z),e.unproject(i,t.z)]},_tileCoordsToBounds:function(t){t=this._tileCoordsToNwSe(t),t=new s(t[0],t[1]);return t=this.options.noWrap?t:this._map.wrapLatLngBounds(t)},_tileCoordsToKey:function(t){return t.x+":"+t.y+":"+t.z},_keyToTileCoords:function(t){var t=t.split(":"),e=new p(+t[0],+t[1]);return e.z=+t[2],e},_removeTile:function(t){var e=this._tiles[t];e&&(T(e.el),delete this._tiles[t],this.fire("tileunload",{tile:e.el,coords:this._keyToTileCoords(t)}))},_initTile:function(t){M(t,"leaflet-tile");var e=this.getTileSize();t.style.width=e.x+"px",t.style.height=e.y+"px",t.onselectstart=u,t.onmousemove=u,b.ielt9&&this.options.opacity<1&&C(t,this.options.opacity)},_addTile:function(t,e){var i=this._getTilePos(t),n=this._tileCoordsToKey(t),o=this.createTile(this._wrapCoords(t),a(this._tileReady,this,t));this._initTile(o),this.createTile.length<2&&x(a(this._tileReady,this,t,null,o)),Z(o,i),this._tiles[n]={el:o,coords:t,current:!0},e.appendChild(o),this.fire("tileloadstart",{tile:o,coords:t})},_tileReady:function(t,e,i){e&&this.fire("tileerror",{error:e,tile:i,coords:t});var n=this._tileCoordsToKey(t);(i=this._tiles[n])&&(i.loaded=+new Date,this._map._fadeAnimated?(C(i.el,0),r(this._fadeFrame),this._fadeFrame=x(this._updateOpacity,this)):(i.active=!0,this._pruneTiles()),e||(M(i.el,"leaflet-tile-loaded"),this.fire("tileload",{tile:i.el,coords:t})),this._noTilesToLoad()&&(this._loading=!1,this.fire("load"),b.ielt9||!this._map._fadeAnimated?x(this._pruneTiles,this):setTimeout(a(this._pruneTiles,this),250)))},_getTilePos:function(t){return t.scaleBy(this.getTileSize()).subtract(this._level.origin)},_wrapCoords:function(t){var e=new p(this._wrapX?H(t.x,this._wrapX):t.x,this._wrapY?H(t.y,this._wrapY):t.y);return e.z=t.z,e},_pxBoundsToTileRange:function(t){var e=this.getTileSize();return new f(t.min.unscaleBy(e).floor(),t.max.unscaleBy(e).ceil().subtract([1,1]))},_noTilesToLoad:function(){for(var t in this._tiles)if(!this._tiles[t].loaded)return!1;return!0}});var Di=Ni.extend({options:{minZoom:0,maxZoom:18,subdomains:"abc",errorTileUrl:"",zoomOffset:0,tms:!1,zoomReverse:!1,detectRetina:!1,crossOrigin:!1,referrerPolicy:!1},initialize:function(t,e){this._url=t,(e=c(this,e)).detectRetina&&b.retina&&0<e.maxZoom?(e.tileSize=Math.floor(e.tileSize/2),e.zoomReverse?(e.zoomOffset--,e.minZoom=Math.min(e.maxZoom,e.minZoom+1)):(e.zoomOffset++,e.maxZoom=Math.max(e.minZoom,e.maxZoom-1)),e.minZoom=Math.max(0,e.minZoom)):e.zoomReverse?e.minZoom=Math.min(e.maxZoom,e.minZoom):e.maxZoom=Math.max(e.minZoom,e.maxZoom),"string"==typeof e.subdomains&&(e.subdomains=e.subdomains.split("")),this.on("tileunload",this._onTileRemove)},setUrl:function(t,e){return this._url===t&&void 0===e&&(e=!0),this._url=t,e||this.redraw(),this},createTile:function(t,e){var i=document.createElement("img");return S(i,"load",a(this._tileOnLoad,this,e,i)),S(i,"error",a(this._tileOnError,this,e,i)),!this.options.crossOrigin&&""!==this.options.crossOrigin||(i.crossOrigin=!0===this.options.crossOrigin?"":this.options.crossOrigin),"string"==typeof this.options.referrerPolicy&&(i.referrerPolicy=this.options.referrerPolicy),i.alt="",i.src=this.getTileUrl(t),i},getTileUrl:function(t){var e={r:b.retina?"@2x":"",s:this._getSubdomain(t),x:t.x,y:t.y,z:this._getZoomForUrl()};return this._map&&!this._map.options.crs.infinite&&(t=this._globalTileRange.max.y-t.y,this.options.tms&&(e.y=t),e["-y"]=t),q(this._url,l(e,this.options))},_tileOnLoad:function(t,e){b.ielt9?setTimeout(a(t,this,null,e),0):t(null,e)},_tileOnError:function(t,e,i){var n=this.options.errorTileUrl;n&&e.getAttribute("src")!==n&&(e.src=n),t(i,e)},_onTileRemove:function(t){t.tile.onload=null},_getZoomForUrl:function(){var t=this._tileZoom,e=this.options.maxZoom;return(t=this.options.zoomReverse?e-t:t)+this.options.zoomOffset},_getSubdomain:function(t){t=Math.abs(t.x+t.y)%this.options.subdomains.length;return this.options.subdomains[t]},_abortLoading:function(){var t,e,i;for(t in this._tiles)this._tiles[t].coords.z!==this._tileZoom&&((i=this._tiles[t].el).onload=u,i.onerror=u,i.complete||(i.src=K,e=this._tiles[t].coords,T(i),delete this._tiles[t],this.fire("tileabort",{tile:i,coords:e})))},_removeTile:function(t){var e=this._tiles[t];if(e)return e.el.setAttribute("src",K),Ni.prototype._removeTile.call(this,t)},_tileReady:function(t,e,i){if(this._map&&(!i||i.getAttribute("src")!==K))return Ni.prototype._tileReady.call(this,t,e,i)}});function ji(t,e){return new Di(t,e)}var Hi=Di.extend({defaultWmsParams:{service:"WMS",request:"GetMap",layers:"",styles:"",format:"image/jpeg",transparent:!1,version:"1.1.1"},options:{crs:null,uppercase:!1},initialize:function(t,e){this._url=t;var i,n=l({},this.defaultWmsParams);for(i in e)i in this.options||(n[i]=e[i]);var t=(e=c(this,e)).detectRetina&&b.retina?2:1,o=this.getTileSize();n.width=o.x*t,n.height=o.y*t,this.wmsParams=n},onAdd:function(t){this._crs=this.options.crs||t.options.crs,this._wmsVersion=parseFloat(this.wmsParams.version);var e=1.3<=this._wmsVersion?"crs":"srs";this.wmsParams[e]=this._crs.code,Di.prototype.onAdd.call(this,t)},getTileUrl:function(t){var e=this._tileCoordsToNwSe(t),i=this._crs,i=_(i.project(e[0]),i.project(e[1])),e=i.min,i=i.max,e=(1.3<=this._wmsVersion&&this._crs===li?[e.y,e.x,i.y,i.x]:[e.x,e.y,i.x,i.y]).join(","),i=Di.prototype.getTileUrl.call(this,t);return i+U(this.wmsParams,i,this.options.uppercase)+(this.options.uppercase?"&BBOX=":"&bbox=")+e},setParams:function(t,e){return l(this.wmsParams,t),e||this.redraw(),this}});Di.WMS=Hi,ji.wms=function(t,e){return new Hi(t,e)};var Wi=o.extend({options:{padding:.1},initialize:function(t){c(this,t),h(this),this._layers=this._layers||{}},onAdd:function(){this._container||(this._initContainer(),M(this._container,"leaflet-zoom-animated")),this.getPane().appendChild(this._container),this._update(),this.on("update",this._updatePaths,this)},onRemove:function(){this.off("update",this._updatePaths,this),this._destroyContainer()},getEvents:function(){var t={viewreset:this._reset,zoom:this._onZoom,moveend:this._update,zoomend:this._onZoomEnd};return this._zoomAnimated&&(t.zoomanim=this._onAnimZoom),t},_onAnimZoom:function(t){this._updateTransform(t.center,t.zoom)},_onZoom:function(){this._updateTransform(this._map.getCenter(),this._map.getZoom())},_updateTransform:function(t,e){var i=this._map.getZoomScale(e,this._zoom),n=this._map.getSize().multiplyBy(.5+this.options.padding),o=this._map.project(this._center,e),n=n.multiplyBy(-i).add(o).subtract(this._map._getNewPixelOrigin(t,e));b.any3d?be(this._container,n,i):Z(this._container,n)},_reset:function(){for(var t in this._update(),this._updateTransform(this._center,this._zoom),this._layers)this._layers[t]._reset()},_onZoomEnd:function(){for(var t in this._layers)this._layers[t]._project()},_updatePaths:function(){for(var t in this._layers)this._layers[t]._update()},_update:function(){var t=this.options.padding,e=this._map.getSize(),i=this._map.containerPointToLayerPoint(e.multiplyBy(-t)).round();this._bounds=new f(i,i.add(e.multiplyBy(1+2*t)).round()),this._center=this._map.getCenter(),this._zoom=this._map.getZoom()}}),Fi=Wi.extend({options:{tolerance:0},getEvents:function(){var t=Wi.prototype.getEvents.call(this);return t.viewprereset=this._onViewPreReset,t},_onViewPreReset:function(){this._postponeUpdatePaths=!0},onAdd:function(){Wi.prototype.onAdd.call(this),this._draw()},_initContainer:function(){var t=this._container=document.createElement("canvas");S(t,"mousemove",this._onMouseMove,this),S(t,"click dblclick mousedown mouseup contextmenu",this._onClick,this),S(t,"mouseout",this._handleMouseOut,this),t._leaflet_disable_events=!0,this._ctx=t.getContext("2d")},_destroyContainer:function(){r(this._redrawRequest),delete this._ctx,T(this._container),k(this._container),delete this._container},_updatePaths:function(){if(!this._postponeUpdatePaths){for(var t in this._redrawBounds=null,this._layers)this._layers[t]._update();this._redraw()}},_update:function(){var t,e,i,n;this._map._animatingZoom&&this._bounds||(Wi.prototype._update.call(this),t=this._bounds,e=this._container,i=t.getSize(),n=b.retina?2:1,Z(e,t.min),e.width=n*i.x,e.height=n*i.y,e.style.width=i.x+"px",e.style.height=i.y+"px",b.retina&&this._ctx.scale(2,2),this._ctx.translate(-t.min.x,-t.min.y),this.fire("update"))},_reset:function(){Wi.prototype._reset.call(this),this._postponeUpdatePaths&&(this._postponeUpdatePaths=!1,this._updatePaths())},_initPath:function(t){this._updateDashArray(t);t=(this._layers[h(t)]=t)._order={layer:t,prev:this._drawLast,next:null};this._drawLast&&(this._drawLast.next=t),this._drawLast=t,this._drawFirst=this._drawFirst||this._drawLast},_addPath:function(t){this._requestRedraw(t)},_removePath:function(t){var e=t._order,i=e.next,e=e.prev;i?i.prev=e:this._drawLast=e,e?e.next=i:this._drawFirst=i,delete t._order,delete this._layers[h(t)],this._requestRedraw(t)},_updatePath:function(t){this._extendRedrawBounds(t),t._project(),t._update(),this._requestRedraw(t)},_updateStyle:function(t){this._updateDashArray(t),this._requestRedraw(t)},_updateDashArray:function(t){if("string"==typeof t.options.dashArray){for(var e,i=t.options.dashArray.split(/[, ]+/),n=[],o=0;o<i.length;o++){if(e=Number(i[o]),isNaN(e))return;n.push(e)}t.options._dashArray=n}else t.options._dashArray=t.options.dashArray},_requestRedraw:function(t){this._map&&(this._extendRedrawBounds(t),this._redrawRequest=this._redrawRequest||x(this._redraw,this))},_extendRedrawBounds:function(t){var e;t._pxBounds&&(e=(t.options.weight||0)+1,this._redrawBounds=this._redrawBounds||new f,this._redrawBounds.extend(t._pxBounds.min.subtract([e,e])),this._redrawBounds.extend(t._pxBounds.max.add([e,e])))},_redraw:function(){this._redrawRequest=null,this._redrawBounds&&(this._redrawBounds.min._floor(),this._redrawBounds.max._ceil()),this._clear(),this._draw(),this._redrawBounds=null},_clear:function(){var t,e=this._redrawBounds;e?(t=e.getSize(),this._ctx.clearRect(e.min.x,e.min.y,t.x,t.y)):(this._ctx.save(),this._ctx.setTransform(1,0,0,1,0,0),this._ctx.clearRect(0,0,this._container.width,this._container.height),this._ctx.restore())},_draw:function(){var t,e,i=this._redrawBounds;this._ctx.save(),i&&(e=i.getSize(),this._ctx.beginPath(),this._ctx.rect(i.min.x,i.min.y,e.x,e.y),this._ctx.clip()),this._drawing=!0;for(var n=this._drawFirst;n;n=n.next)t=n.layer,(!i||t._pxBounds&&t._pxBounds.intersects(i))&&t._updatePath();this._drawing=!1,this._ctx.restore()},_updatePoly:function(t,e){if(this._drawing){var i,n,o,s,r=t._parts,a=r.length,h=this._ctx;if(a){for(h.beginPath(),i=0;i<a;i++){for(n=0,o=r[i].length;n<o;n++)s=r[i][n],h[n?"lineTo":"moveTo"](s.x,s.y);e&&h.closePath()}this._fillStroke(h,t)}}},_updateCircle:function(t){var e,i,n,o;this._drawing&&!t._empty()&&(e=t._point,i=this._ctx,n=Math.max(Math.round(t._radius),1),1!=(o=(Math.max(Math.round(t._radiusY),1)||n)/n)&&(i.save(),i.scale(1,o)),i.beginPath(),i.arc(e.x,e.y/o,n,0,2*Math.PI,!1),1!=o&&i.restore(),this._fillStroke(i,t))},_fillStroke:function(t,e){var i=e.options;i.fill&&(t.globalAlpha=i.fillOpacity,t.fillStyle=i.fillColor||i.color,t.fill(i.fillRule||"evenodd")),i.stroke&&0!==i.weight&&(t.setLineDash&&t.setLineDash(e.options&&e.options._dashArray||[]),t.globalAlpha=i.opacity,t.lineWidth=i.weight,t.strokeStyle=i.color,t.lineCap=i.lineCap,t.lineJoin=i.lineJoin,t.stroke())},_onClick:function(t){for(var e,i,n=this._map.mouseEventToLayerPoint(t),o=this._drawFirst;o;o=o.next)(e=o.layer).options.interactive&&e._containsPoint(n)&&(("click"===t.type||"preclick"===t.type)&&this._map._draggableMoved(e)||(i=e));this._fireEvent(!!i&&[i],t)},_onMouseMove:function(t){var e;!this._map||this._map.dragging.moving()||this._map._animatingZoom||(e=this._map.mouseEventToLayerPoint(t),this._handleMouseHover(t,e))},_handleMouseOut:function(t){var e=this._hoveredLayer;e&&(z(this._container,"leaflet-interactive"),this._fireEvent([e],t,"mouseout"),this._hoveredLayer=null,this._mouseHoverThrottled=!1)},_handleMouseHover:function(t,e){if(!this._mouseHoverThrottled){for(var i,n,o=this._drawFirst;o;o=o.next)(i=o.layer).options.interactive&&i._containsPoint(e)&&(n=i);n!==this._hoveredLayer&&(this._handleMouseOut(t),n&&(M(this._container,"leaflet-interactive"),this._fireEvent([n],t,"mouseover"),this._hoveredLayer=n)),this._fireEvent(!!this._hoveredLayer&&[this._hoveredLayer],t),this._mouseHoverThrottled=!0,setTimeout(a(function(){this._mouseHoverThrottled=!1},this),32)}},_fireEvent:function(t,e,i){this._map._fireDOMEvent(e,i||e.type,t)},_bringToFront:function(t){var e,i,n=t._order;n&&(e=n.next,i=n.prev,e&&((e.prev=i)?i.next=e:e&&(this._drawFirst=e),n.prev=this._drawLast,(this._drawLast.next=n).next=null,this._drawLast=n,this._requestRedraw(t)))},_bringToBack:function(t){var e,i,n=t._order;n&&(e=n.next,(i=n.prev)&&((i.next=e)?e.prev=i:i&&(this._drawLast=i),n.prev=null,n.next=this._drawFirst,this._drawFirst.prev=n,this._drawFirst=n,this._requestRedraw(t)))}});function Ui(t){return b.canvas?new Fi(t):null}var Vi=function(){try{return document.namespaces.add("lvml","urn:schemas-microsoft-com:vml"),function(t){return document.createElement("<lvml:"+t+' class="lvml">')}}catch(t){}return function(t){return document.createElement("<"+t+' xmlns="urn:schemas-microsoft.com:vml" class="lvml">')}}(),zt={_initContainer:function(){this._container=P("div","leaflet-vml-container")},_update:function(){this._map._animatingZoom||(Wi.prototype._update.call(this),this.fire("update"))},_initPath:function(t){var e=t._container=Vi("shape");M(e,"leaflet-vml-shape "+(this.options.className||"")),e.coordsize="1 1",t._path=Vi("path"),e.appendChild(t._path),this._updateStyle(t),this._layers[h(t)]=t},_addPath:function(t){var e=t._container;this._container.appendChild(e),t.options.interactive&&t.addInteractiveTarget(e)},_removePath:function(t){var e=t._container;T(e),t.removeInteractiveTarget(e),delete this._layers[h(t)]},_updateStyle:function(t){var e=t._stroke,i=t._fill,n=t.options,o=t._container;o.stroked=!!n.stroke,o.filled=!!n.fill,n.stroke?(e=e||(t._stroke=Vi("stroke")),o.appendChild(e),e.weight=n.weight+"px",e.color=n.color,e.opacity=n.opacity,n.dashArray?e.dashStyle=d(n.dashArray)?n.dashArray.join(" "):n.dashArray.replace(/( *, *)/g," "):e.dashStyle="",e.endcap=n.lineCap.replace("butt","flat"),e.joinstyle=n.lineJoin):e&&(o.removeChild(e),t._stroke=null),n.fill?(i=i||(t._fill=Vi("fill")),o.appendChild(i),i.color=n.fillColor||n.color,i.opacity=n.fillOpacity):i&&(o.removeChild(i),t._fill=null)},_updateCircle:function(t){var e=t._point.round(),i=Math.round(t._radius),n=Math.round(t._radiusY||i);this._setPath(t,t._empty()?"M0 0":"AL "+e.x+","+e.y+" "+i+","+n+" 0,23592600")},_setPath:function(t,e){t._path.v=e},_bringToFront:function(t){fe(t._container)},_bringToBack:function(t){ge(t._container)}},qi=b.vml?Vi:ct,Gi=Wi.extend({_initContainer:function(){this._container=qi("svg"),this._container.setAttribute("pointer-events","none"),this._rootGroup=qi("g"),this._container.appendChild(this._rootGroup)},_destroyContainer:function(){T(this._container),k(this._container),delete this._container,delete this._rootGroup,delete this._svgSize},_update:function(){var t,e,i;this._map._animatingZoom&&this._bounds||(Wi.prototype._update.call(this),e=(t=this._bounds).getSize(),i=this._container,this._svgSize&&this._svgSize.equals(e)||(this._svgSize=e,i.setAttribute("width",e.x),i.setAttribute("height",e.y)),Z(i,t.min),i.setAttribute("viewBox",[t.min.x,t.min.y,e.x,e.y].join(" ")),this.fire("update"))},_initPath:function(t){var e=t._path=qi("path");t.options.className&&M(e,t.options.className),t.options.interactive&&M(e,"leaflet-interactive"),this._updateStyle(t),this._layers[h(t)]=t},_addPath:function(t){this._rootGroup||this._initContainer(),this._rootGroup.appendChild(t._path),t.addInteractiveTarget(t._path)},_removePath:function(t){T(t._path),t.removeInteractiveTarget(t._path),delete this._layers[h(t)]},_updatePath:function(t){t._project(),t._update()},_updateStyle:function(t){var e=t._path,t=t.options;e&&(t.stroke?(e.setAttribute("stroke",t.color),e.setAttribute("stroke-opacity",t.opacity),e.setAttribute("stroke-width",t.weight),e.setAttribute("stroke-linecap",t.lineCap),e.setAttribute("stroke-linejoin",t.lineJoin),t.dashArray?e.setAttribute("stroke-dasharray",t.dashArray):e.removeAttribute("stroke-dasharray"),t.dashOffset?e.setAttribute("stroke-dashoffset",t.dashOffset):e.removeAttribute("stroke-dashoffset")):e.setAttribute("stroke","none"),t.fill?(e.setAttribute("fill",t.fillColor||t.color),e.setAttribute("fill-opacity",t.fillOpacity),e.setAttribute("fill-rule",t.fillRule||"evenodd")):e.setAttribute("fill","none"))},_updatePoly:function(t,e){this._setPath(t,dt(t._parts,e))},_updateCircle:function(t){var e=t._point,i=Math.max(Math.round(t._radius),1),n="a"+i+","+(Math.max(Math.round(t._radiusY),1)||i)+" 0 1,0 ",e=t._empty()?"M0 0":"M"+(e.x-i)+","+e.y+n+2*i+",0 "+n+2*-i+",0 ";this._setPath(t,e)},_setPath:function(t,e){t._path.setAttribute("d",e)},_bringToFront:function(t){fe(t._path)},_bringToBack:function(t){ge(t._path)}});function Ki(t){return b.svg||b.vml?new Gi(t):null}b.vml&&Gi.include(zt),A.include({getRenderer:function(t){t=(t=t.options.renderer||this._getPaneRenderer(t.options.pane)||this.options.renderer||this._renderer)||(this._renderer=this._createRenderer());return this.hasLayer(t)||this.addLayer(t),t},_getPaneRenderer:function(t){var e;return"overlayPane"!==t&&void 0!==t&&(void 0===(e=this._paneRenderers[t])&&(e=this._createRenderer({pane:t}),this._paneRenderers[t]=e),e)},_createRenderer:function(t){return this.options.preferCanvas&&Ui(t)||Ki(t)}});var Yi=xi.extend({initialize:function(t,e){xi.prototype.initialize.call(this,this._boundsToLatLngs(t),e)},setBounds:function(t){return this.setLatLngs(this._boundsToLatLngs(t))},_boundsToLatLngs:function(t){return[(t=g(t)).getSouthWest(),t.getNorthWest(),t.getNorthEast(),t.getSouthEast()]}});Gi.create=qi,Gi.pointsToPath=dt,wi.geometryToLayer=bi,wi.coordsToLatLng=Li,wi.coordsToLatLngs=Ti,wi.latLngToCoords=Mi,wi.latLngsToCoords=zi,wi.getFeature=Ci,wi.asFeature=Zi,A.mergeOptions({boxZoom:!0});var _t=n.extend({initialize:function(t){this._map=t,this._container=t._container,this._pane=t._panes.overlayPane,this._resetStateTimeout=0,t.on("unload",this._destroy,this)},addHooks:function(){S(this._container,"mousedown",this._onMouseDown,this)},removeHooks:function(){k(this._container,"mousedown",this._onMouseDown,this)},moved:function(){return this._moved},_destroy:function(){T(this._pane),delete this._pane},_resetState:function(){this._resetStateTimeout=0,this._moved=!1},_clearDeferredResetState:function(){0!==this._resetStateTimeout&&(clearTimeout(this._resetStateTimeout),this._resetStateTimeout=0)},_onMouseDown:function(t){if(!t.shiftKey||1!==t.which&&1!==t.button)return!1;this._clearDeferredResetState(),this._resetState(),re(),Le(),this._startPoint=this._map.mouseEventToContainerPoint(t),S(document,{contextmenu:Re,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseMove:function(t){this._moved||(this._moved=!0,this._box=P("div","leaflet-zoom-box",this._container),M(this._container,"leaflet-crosshair"),this._map.fire("boxzoomstart")),this._point=this._map.mouseEventToContainerPoint(t);var t=new f(this._point,this._startPoint),e=t.getSize();Z(this._box,t.min),this._box.style.width=e.x+"px",this._box.style.height=e.y+"px"},_finish:function(){this._moved&&(T(this._box),z(this._container,"leaflet-crosshair")),ae(),Te(),k(document,{contextmenu:Re,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseUp:function(t){1!==t.which&&1!==t.button||(this._finish(),this._moved&&(this._clearDeferredResetState(),this._resetStateTimeout=setTimeout(a(this._resetState,this),0),t=new s(this._map.containerPointToLatLng(this._startPoint),this._map.containerPointToLatLng(this._point)),this._map.fitBounds(t).fire("boxzoomend",{boxZoomBounds:t})))},_onKeyDown:function(t){27===t.keyCode&&(this._finish(),this._clearDeferredResetState(),this._resetState())}}),Ct=(A.addInitHook("addHandler","boxZoom",_t),A.mergeOptions({doubleClickZoom:!0}),n.extend({addHooks:function(){this._map.on("dblclick",this._onDoubleClick,this)},removeHooks:function(){this._map.off("dblclick",this._onDoubleClick,this)},_onDoubleClick:function(t){var e=this._map,i=e.getZoom(),n=e.options.zoomDelta,i=t.originalEvent.shiftKey?i-n:i+n;"center"===e.options.doubleClickZoom?e.setZoom(i):e.setZoomAround(t.containerPoint,i)}})),Zt=(A.addInitHook("addHandler","doubleClickZoom",Ct),A.mergeOptions({dragging:!0,inertia:!0,inertiaDeceleration:3400,inertiaMaxSpeed:1/0,easeLinearity:.2,worldCopyJump:!1,maxBoundsViscosity:0}),n.extend({addHooks:function(){var t;this._draggable||(t=this._map,this._draggable=new Xe(t._mapPane,t._container),this._draggable.on({dragstart:this._onDragStart,drag:this._onDrag,dragend:this._onDragEnd},this),this._draggable.on("predrag",this._onPreDragLimit,this),t.options.worldCopyJump&&(this._draggable.on("predrag",this._onPreDragWrap,this),t.on("zoomend",this._onZoomEnd,this),t.whenReady(this._onZoomEnd,this))),M(this._map._container,"leaflet-grab leaflet-touch-drag"),this._draggable.enable(),this._positions=[],this._times=[]},removeHooks:function(){z(this._map._container,"leaflet-grab"),z(this._map._container,"leaflet-touch-drag"),this._draggable.disable()},moved:function(){return this._draggable&&this._draggable._moved},moving:function(){return this._draggable&&this._draggable._moving},_onDragStart:function(){var t,e=this._map;e._stop(),this._map.options.maxBounds&&this._map.options.maxBoundsViscosity?(t=g(this._map.options.maxBounds),this._offsetLimit=_(this._map.latLngToContainerPoint(t.getNorthWest()).multiplyBy(-1),this._map.latLngToContainerPoint(t.getSouthEast()).multiplyBy(-1).add(this._map.getSize())),this._viscosity=Math.min(1,Math.max(0,this._map.options.maxBoundsViscosity))):this._offsetLimit=null,e.fire("movestart").fire("dragstart"),e.options.inertia&&(this._positions=[],this._times=[])},_onDrag:function(t){var e,i;this._map.options.inertia&&(e=this._lastTime=+new Date,i=this._lastPos=this._draggable._absPos||this._draggable._newPos,this._positions.push(i),this._times.push(e),this._prunePositions(e)),this._map.fire("move",t).fire("drag",t)},_prunePositions:function(t){for(;1<this._positions.length&&50<t-this._times[0];)this._positions.shift(),this._times.shift()},_onZoomEnd:function(){var t=this._map.getSize().divideBy(2),e=this._map.latLngToLayerPoint([0,0]);this._initialWorldOffset=e.subtract(t).x,this._worldWidth=this._map.getPixelWorldBounds().getSize().x},_viscousLimit:function(t,e){return t-(t-e)*this._viscosity},_onPreDragLimit:function(){var t,e;this._viscosity&&this._offsetLimit&&(t=this._draggable._newPos.subtract(this._draggable._startPos),e=this._offsetLimit,t.x<e.min.x&&(t.x=this._viscousLimit(t.x,e.min.x)),t.y<e.min.y&&(t.y=this._viscousLimit(t.y,e.min.y)),t.x>e.max.x&&(t.x=this._viscousLimit(t.x,e.max.x)),t.y>e.max.y&&(t.y=this._viscousLimit(t.y,e.max.y)),this._draggable._newPos=this._draggable._startPos.add(t))},_onPreDragWrap:function(){var t=this._worldWidth,e=Math.round(t/2),i=this._initialWorldOffset,n=this._draggable._newPos.x,o=(n-e+i)%t+e-i,n=(n+e+i)%t-e-i,t=Math.abs(o+i)<Math.abs(n+i)?o:n;this._draggable._absPos=this._draggable._newPos.clone(),this._draggable._newPos.x=t},_onDragEnd:function(t){var e,i,n,o,s=this._map,r=s.options,a=!r.inertia||t.noInertia||this._times.length<2;s.fire("dragend",t),!a&&(this._prunePositions(+new Date),t=this._lastPos.subtract(this._positions[0]),a=(this._lastTime-this._times[0])/1e3,e=r.easeLinearity,a=(t=t.multiplyBy(e/a)).distanceTo([0,0]),i=Math.min(r.inertiaMaxSpeed,a),t=t.multiplyBy(i/a),n=i/(r.inertiaDeceleration*e),(o=t.multiplyBy(-n/2).round()).x||o.y)?(o=s._limitOffset(o,s.options.maxBounds),x(function(){s.panBy(o,{duration:n,easeLinearity:e,noMoveStart:!0,animate:!0})})):s.fire("moveend")}})),St=(A.addInitHook("addHandler","dragging",Zt),A.mergeOptions({keyboard:!0,keyboardPanDelta:80}),n.extend({keyCodes:{left:[37],right:[39],down:[40],up:[38],zoomIn:[187,107,61,171],zoomOut:[189,109,54,173]},initialize:function(t){this._map=t,this._setPanDelta(t.options.keyboardPanDelta),this._setZoomDelta(t.options.zoomDelta)},addHooks:function(){var t=this._map._container;t.tabIndex<=0&&(t.tabIndex="0"),S(t,{focus:this._onFocus,blur:this._onBlur,mousedown:this._onMouseDown},this),this._map.on({focus:this._addHooks,blur:this._removeHooks},this)},removeHooks:function(){this._removeHooks(),k(this._map._container,{focus:this._onFocus,blur:this._onBlur,mousedown:this._onMouseDown},this),this._map.off({focus:this._addHooks,blur:this._removeHooks},this)},_onMouseDown:function(){var t,e,i;this._focused||(i=document.body,t=document.documentElement,e=i.scrollTop||t.scrollTop,i=i.scrollLeft||t.scrollLeft,this._map._container.focus(),window.scrollTo(i,e))},_onFocus:function(){this._focused=!0,this._map.fire("focus")},_onBlur:function(){this._focused=!1,this._map.fire("blur")},_setPanDelta:function(t){for(var e=this._panKeys={},i=this.keyCodes,n=0,o=i.left.length;n<o;n++)e[i.left[n]]=[-1*t,0];for(n=0,o=i.right.length;n<o;n++)e[i.right[n]]=[t,0];for(n=0,o=i.down.length;n<o;n++)e[i.down[n]]=[0,t];for(n=0,o=i.up.length;n<o;n++)e[i.up[n]]=[0,-1*t]},_setZoomDelta:function(t){for(var e=this._zoomKeys={},i=this.keyCodes,n=0,o=i.zoomIn.length;n<o;n++)e[i.zoomIn[n]]=t;for(n=0,o=i.zoomOut.length;n<o;n++)e[i.zoomOut[n]]=-t},_addHooks:function(){S(document,"keydown",this._onKeyDown,this)},_removeHooks:function(){k(document,"keydown",this._onKeyDown,this)},_onKeyDown:function(t){if(!(t.altKey||t.ctrlKey||t.metaKey)){var e,i,n=t.keyCode,o=this._map;if(n in this._panKeys)o._panAnim&&o._panAnim._inProgress||(i=this._panKeys[n],t.shiftKey&&(i=m(i).multiplyBy(3)),o.options.maxBounds&&(i=o._limitOffset(m(i),o.options.maxBounds)),o.options.worldCopyJump?(e=o.wrapLatLng(o.unproject(o.project(o.getCenter()).add(i))),o.panTo(e)):o.panBy(i));else if(n in this._zoomKeys)o.setZoom(o.getZoom()+(t.shiftKey?3:1)*this._zoomKeys[n]);else{if(27!==n||!o._popup||!o._popup.options.closeOnEscapeKey)return;o.closePopup()}Re(t)}}})),Et=(A.addInitHook("addHandler","keyboard",St),A.mergeOptions({scrollWheelZoom:!0,wheelDebounceTime:40,wheelPxPerZoomLevel:60}),n.extend({addHooks:function(){S(this._map._container,"wheel",this._onWheelScroll,this),this._delta=0},removeHooks:function(){k(this._map._container,"wheel",this._onWheelScroll,this)},_onWheelScroll:function(t){var e=He(t),i=this._map.options.wheelDebounceTime,e=(this._delta+=e,this._lastMousePos=this._map.mouseEventToContainerPoint(t),this._startTime||(this._startTime=+new Date),Math.max(i-(+new Date-this._startTime),0));clearTimeout(this._timer),this._timer=setTimeout(a(this._performZoom,this),e),Re(t)},_performZoom:function(){var t=this._map,e=t.getZoom(),i=this._map.options.zoomSnap||0,n=(t._stop(),this._delta/(4*this._map.options.wheelPxPerZoomLevel)),n=4*Math.log(2/(1+Math.exp(-Math.abs(n))))/Math.LN2,i=i?Math.ceil(n/i)*i:n,n=t._limitZoom(e+(0<this._delta?i:-i))-e;this._delta=0,this._startTime=null,n&&("center"===t.options.scrollWheelZoom?t.setZoom(e+n):t.setZoomAround(this._lastMousePos,e+n))}})),kt=(A.addInitHook("addHandler","scrollWheelZoom",Et),A.mergeOptions({tapHold:b.touchNative&&b.safari&&b.mobile,tapTolerance:15}),n.extend({addHooks:function(){S(this._map._container,"touchstart",this._onDown,this)},removeHooks:function(){k(this._map._container,"touchstart",this._onDown,this)},_onDown:function(t){var e;clearTimeout(this._holdTimeout),1===t.touches.length&&(e=t.touches[0],this._startPos=this._newPos=new p(e.clientX,e.clientY),this._holdTimeout=setTimeout(a(function(){this._cancel(),this._isTapValid()&&(S(document,"touchend",O),S(document,"touchend touchcancel",this._cancelClickPrevent),this._simulateEvent("contextmenu",e))},this),600),S(document,"touchend touchcancel contextmenu",this._cancel,this),S(document,"touchmove",this._onMove,this))},_cancelClickPrevent:function t(){k(document,"touchend",O),k(document,"touchend touchcancel",t)},_cancel:function(){clearTimeout(this._holdTimeout),k(document,"touchend touchcancel contextmenu",this._cancel,this),k(document,"touchmove",this._onMove,this)},_onMove:function(t){t=t.touches[0];this._newPos=new p(t.clientX,t.clientY)},_isTapValid:function(){return this._newPos.distanceTo(this._startPos)<=this._map.options.tapTolerance},_simulateEvent:function(t,e){t=new MouseEvent(t,{bubbles:!0,cancelable:!0,view:window,screenX:e.screenX,screenY:e.screenY,clientX:e.clientX,clientY:e.clientY});t._simulated=!0,e.target.dispatchEvent(t)}})),Ot=(A.addInitHook("addHandler","tapHold",kt),A.mergeOptions({touchZoom:b.touch,bounceAtZoomLimits:!0}),n.extend({addHooks:function(){M(this._map._container,"leaflet-touch-zoom"),S(this._map._container,"touchstart",this._onTouchStart,this)},removeHooks:function(){z(this._map._container,"leaflet-touch-zoom"),k(this._map._container,"touchstart",this._onTouchStart,this)},_onTouchStart:function(t){var e,i,n=this._map;!t.touches||2!==t.touches.length||n._animatingZoom||this._zooming||(e=n.mouseEventToContainerPoint(t.touches[0]),i=n.mouseEventToContainerPoint(t.touches[1]),this._centerPoint=n.getSize()._divideBy(2),this._startLatLng=n.containerPointToLatLng(this._centerPoint),"center"!==n.options.touchZoom&&(this._pinchStartLatLng=n.containerPointToLatLng(e.add(i)._divideBy(2))),this._startDist=e.distanceTo(i),this._startZoom=n.getZoom(),this._moved=!1,this._zooming=!0,n._stop(),S(document,"touchmove",this._onTouchMove,this),S(document,"touchend touchcancel",this._onTouchEnd,this),O(t))},_onTouchMove:function(t){if(t.touches&&2===t.touches.length&&this._zooming){var e=this._map,i=e.mouseEventToContainerPoint(t.touches[0]),n=e.mouseEventToContainerPoint(t.touches[1]),o=i.distanceTo(n)/this._startDist;if(this._zoom=e.getScaleZoom(o,this._startZoom),!e.options.bounceAtZoomLimits&&(this._zoom<e.getMinZoom()&&o<1||this._zoom>e.getMaxZoom()&&1<o)&&(this._zoom=e._limitZoom(this._zoom)),"center"===e.options.touchZoom){if(this._center=this._startLatLng,1==o)return}else{i=i._add(n)._divideBy(2)._subtract(this._centerPoint);if(1==o&&0===i.x&&0===i.y)return;this._center=e.unproject(e.project(this._pinchStartLatLng,this._zoom).subtract(i),this._zoom)}this._moved||(e._moveStart(!0,!1),this._moved=!0),r(this._animRequest);n=a(e._move,e,this._center,this._zoom,{pinch:!0,round:!1},void 0);this._animRequest=x(n,this,!0),O(t)}},_onTouchEnd:function(){this._moved&&this._zooming?(this._zooming=!1,r(this._animRequest),k(document,"touchmove",this._onTouchMove,this),k(document,"touchend touchcancel",this._onTouchEnd,this),this._map.options.zoomAnimation?this._map._animateZoom(this._center,this._map._limitZoom(this._zoom),!0,this._map.options.zoomSnap):this._map._resetView(this._center,this._map._limitZoom(this._zoom))):this._zooming=!1}})),Xi=(A.addInitHook("addHandler","touchZoom",Ot),A.BoxZoom=_t,A.DoubleClickZoom=Ct,A.Drag=Zt,A.Keyboard=St,A.ScrollWheelZoom=Et,A.TapHold=kt,A.TouchZoom=Ot,t.Bounds=f,t.Browser=b,t.CRS=ot,t.Canvas=Fi,t.Circle=vi,t.CircleMarker=gi,t.Class=et,t.Control=B,t.DivIcon=Ri,t.DivOverlay=Ai,t.DomEvent=mt,t.DomUtil=pt,t.Draggable=Xe,t.Evented=it,t.FeatureGroup=ci,t.GeoJSON=wi,t.GridLayer=Ni,t.Handler=n,t.Icon=di,t.ImageOverlay=Ei,t.LatLng=v,t.LatLngBounds=s,t.Layer=o,t.LayerGroup=ui,t.LineUtil=vt,t.Map=A,t.Marker=mi,t.Mixin=ft,t.Path=fi,t.Point=p,t.PolyUtil=gt,t.Polygon=xi,t.Polyline=yi,t.Popup=Bi,t.PosAnimation=Fe,t.Projection=wt,t.Rectangle=Yi,t.Renderer=Wi,t.SVG=Gi,t.SVGOverlay=Oi,t.TileLayer=Di,t.Tooltip=Ii,t.Transformation=at,t.Util=tt,t.VideoOverlay=ki,t.bind=a,t.bounds=_,t.canvas=Ui,t.circle=function(t,e,i){return new vi(t,e,i)},t.circleMarker=function(t,e){return new gi(t,e)},t.control=Ue,t.divIcon=function(t){return new Ri(t)},t.extend=l,t.featureGroup=function(t,e){return new ci(t,e)},t.geoJSON=Si,t.geoJson=Mt,t.gridLayer=function(t){return new Ni(t)},t.icon=function(t){return new di(t)},t.imageOverlay=function(t,e,i){return new Ei(t,e,i)},t.latLng=w,t.latLngBounds=g,t.layerGroup=function(t,e){return new ui(t,e)},t.map=function(t,e){return new A(t,e)},t.marker=function(t,e){return new mi(t,e)},t.point=m,t.polygon=function(t,e){return new xi(t,e)},t.polyline=function(t,e){return new yi(t,e)},t.popup=function(t,e){return new Bi(t,e)},t.rectangle=function(t,e){return new Yi(t,e)},t.setOptions=c,t.stamp=h,t.svg=Ki,t.svgOverlay=function(t,e,i){return new Oi(t,e,i)},t.tileLayer=ji,t.tooltip=function(t,e){return new Ii(t,e)},t.transformation=ht,t.version="1.9.4",t.videoOverlay=function(t,e,i){return new ki(t,e,i)},window.L);t.noConflict=function(){return window.L=Xi,this},window.L=t});
//# sourceMappingURL=leaflet.js.map;
// source --> https://kkdomzale.si/wp-content/themes/splash-child/js/standings-api.js 
(function () {
    'use strict';
    var $;
    /*===========================
    Swiper
    ===========================*/
    var MBTGamesScroller = function (container, params) {
        if (!(this instanceof MBTGamesScroller)) return new MBTGamesScroller(container, params);

        var defaults = {
            direction: 'horizontal',
            touchEventsTarget: 'container',
            initialSlide: 0,
            speed: 300,
            // autoplay
            autoplay: false,
            autoplayDisableOnInteraction: true,
            autoplayStopOnLast: false,
            // To support iOS's swipe-to-go-back gesture (when being used in-app, with UIWebView).
            iOSEdgeSwipeDetection: false,
            iOSEdgeSwipeThreshold: 20,
            // Free mode
            freeMode: false,
            freeModeMomentum: true,
            freeModeMomentumRatio: 1,
            freeModeMomentumBounce: true,
            freeModeMomentumBounceRatio: 1,
            freeModeMomentumVelocityRatio: 1,
            freeModeSticky: false,
            freeModeMinimumVelocity: 0.02,
            // Autoheight
            autoHeight: false,
            // Set wrapper width
            setWrapperSize: false,
            // Virtual Translate
            virtualTranslate: false,
            // Effects
            effect: 'slide', // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'
            coverflow: {
                rotate: 50,
                stretch: 0,
                depth: 100,
                modifier: 1,
                slideShadows : true
            },
            flip: {
                slideShadows : true,
                limitRotation: true
            },
            cube: {
                slideShadows: true,
                shadow: true,
                shadowOffset: 20,
                shadowScale: 0.94
            },
            fade: {
                crossFade: false
            },
            // Parallax
            parallax: false,
            // Zoom
            zoom: false,
            zoomMax: 3,
            zoomMin: 1,
            zoomToggle: true,
            // Scrollbar
            scrollbar: null,
            scrollbarHide: true,
            scrollbarDraggable: false,
            scrollbarSnapOnRelease: false,
            // Keyboard Mousewheel
            keyboardControl: false,
            mousewheelControl: false,
            mousewheelReleaseOnEdges: false,
            mousewheelInvert: false,
            mousewheelForceToAxis: false,
            mousewheelSensitivity: 1,
            mousewheelEventsTarged: 'container',
            // Hash Navigation
            hashnav: false,
            hashnavWatchState: false,
            // History
            history: false,
            // Commong Nav State
            replaceState: false,
            // Breakpoints
            breakpoints: undefined,
            // Slides grid
            spaceBetween: 0,
            slidesPerView: 1,
            slidesPerColumn: 1,
            slidesPerColumnFill: 'column',
            slidesPerGroup: 1,
            centeredSlides: false,
            slidesOffsetBefore: 0, // in px
            slidesOffsetAfter: 0, // in px
            // Round length
            roundLengths: false,
            // Touches
            touchRatio: 1,
            touchAngle: 45,
            simulateTouch: true,
            shortSwipes: true,
            longSwipes: true,
            longSwipesRatio: 0.5,
            longSwipesMs: 300,
            followFinger: true,
            onlyExternal: false,
            threshold: 0,
            touchMoveStopPropagation: true,
            touchReleaseOnEdges: false,
            // Unique Navigation Elements
            uniqueNavElements: true,
            // Pagination
            pagination: null,
            paginationElement: 'span',
            paginationClickable: false,
            paginationHide: false,
            paginationBulletRender: null,
            paginationProgressRender: null,
            paginationFractionRender: null,
            paginationCustomRender: null,
            paginationType: 'bullets', // 'bullets' or 'progress' or 'fraction' or 'custom'
            // Resistance
            resistance: true,
            resistanceRatio: 0.85,
            // Next/prev buttons
            nextButton: null,
            prevButton: null,
            // Progress
            watchSlidesProgress: false,
            watchSlidesVisibility: false,
            // Cursor
            grabCursor: false,
            // Clicks
            preventClicks: true,
            preventClicksPropagation: true,
            slideToClickedSlide: false,
            // Lazy Loading
            lazyLoading: false,
            lazyLoadingInPrevNext: false,
            lazyLoadingInPrevNextAmount: 1,
            lazyLoadingOnTransitionStart: false,
            // Images
            preloadImages: true,
            updateOnImagesReady: true,
            // loop
            loop: false,
            loopAdditionalSlides: 0,
            loopedSlides: null,
            // Control
            control: undefined,
            controlInverse: false,
            controlBy: 'slide', //or 'container'
            normalizeSlideIndex: true,
            // Swiping/no swiping
            allowSwipeToPrev: true,
            allowSwipeToNext: true,
            swipeHandler: null, //'.swipe-handler',
            noSwiping: true,
            noSwipingClass: 'mbt-v2-games-scroller-no-swiping',
            // Passive Listeners
            passiveListeners: true,
            // NS
            containerModifierClass: 'mbt-v2-games-scroller-container-', // NEW
            slideClass: 'mbt-v2-games-scroller-item',
            slideActiveClass: 'mbt-v2-games-scroller-item-active',
            slideDuplicateActiveClass: 'mbt-v2-games-scroller-item-duplicate-active',
            slideVisibleClass: 'mbt-v2-games-scroller-item-visible',
            slideDuplicateClass: 'mbt-v2-games-scroller-item-duplicate',
            slideNextClass: 'mbt-v2-games-scroller-item-next',
            slideDuplicateNextClass: 'mbt-v2-games-scroller-item-next-duplicate-next',
            slidePrevClass: 'mbt-v2-games-scroller-item-prev',
            slideDuplicatePrevClass: 'mbt-v2-games-scroller-item-next-duplicate-prev',
            wrapperClass: 'mbt-v2-games-scroller-wrapper',
            bulletClass: 'mbt-v2-games-scroller-pagination-bullet',
            bulletActiveClass: 'mbt-v2-games-scroller-pagination-bullet-active',
            buttonDisabledClass: 'mbt-v2-games-scroller-button-disabled',
            paginationCurrentClass: 'mbt-v2-games-scroller-pagination-current',
            paginationTotalClass: 'mbt-v2-games-scroller-pagination-total',
            paginationHiddenClass: 'mbt-v2-games-scroller-pagination-hidden',
            paginationProgressbarClass: 'mbt-v2-games-scroller-pagination-progressbar',
            paginationClickableClass: 'mbt-v2-games-scroller-pagination-clickable', // NEW
            paginationModifierClass: 'mbt-v2-games-scroller-pagination-', // NEW
            lazyLoadingClass: 'mbt-v2-games-scroller-lazy',
            lazyStatusLoadingClass: 'mbt-v2-games-scroller-lazy-loading',
            lazyStatusLoadedClass: 'mbt-v2-games-scroller-lazy-loaded',
            lazyPreloaderClass: 'mbt-v2-games-scroller-lazy-preloader',
            notificationClass: 'mbt-v2-games-scroller-notification',
            preloaderClass: 'mbt-v2-games-scroller-preloader',
            zoomContainerClass: 'mbt-v2-games-scroller-zoom-container',
        
            // Observer
            observer: false,
            observeParents: false,
            // Accessibility
            a11y: false,
            prevSlideMessage: 'Previous slide',
            nextSlideMessage: 'Next slide',
            firstSlideMessage: 'This is the first slide',
            lastSlideMessage: 'This is the last slide',
            paginationBulletMessage: 'Go to slide {{index}}',
            // Callbacks
            runCallbacksOnInit: true
            /*
            Callbacks:
            onInit: function (swiper)
            onDestroy: function (swiper)
            onClick: function (swiper, e)
            onTap: function (swiper, e)
            onDoubleTap: function (swiper, e)
            onSliderMove: function (swiper, e)
            onSlideChangeStart: function (swiper)
            onSlideChangeEnd: function (swiper)
            onTransitionStart: function (swiper)
            onTransitionEnd: function (swiper)
            onImagesReady: function (swiper)
            onProgress: function (swiper, progress)
            onTouchStart: function (swiper, e)
            onTouchMove: function (swiper, e)
            onTouchMoveOpposite: function (swiper, e)
            onTouchEnd: function (swiper, e)
            onReachBeginning: function (swiper)
            onReachEnd: function (swiper)
            onSetTransition: function (swiper, duration)
            onSetTranslate: function (swiper, translate)
            onAutoplayStart: function (swiper)
            onAutoplayStop: function (swiper),
            onLazyImageLoad: function (swiper, slide, image)
            onLazyImageReady: function (swiper, slide, image)
            */
        
        };
        var initialVirtualTranslate = params && params.virtualTranslate;
        
        params = params || {};
        var originalParams = {};
        for (var param in params) {
            if (typeof params[param] === 'object' && params[param] !== null && !(params[param].nodeType || params[param] === window || params[param] === document || (typeof Dom7 !== 'undefined' && params[param] instanceof Dom7) || (typeof jQuery !== 'undefined' && params[param] instanceof jQuery))) {
                originalParams[param] = {};
                for (var deepParam in params[param]) {
                    originalParams[param][deepParam] = params[param][deepParam];
                }
            }
            else {
                originalParams[param] = params[param];
            }
        }
        for (var def in defaults) {
            if (typeof params[def] === 'undefined') {
                params[def] = defaults[def];
            }
            else if (typeof params[def] === 'object') {
                for (var deepDef in defaults[def]) {
                    if (typeof params[def][deepDef] === 'undefined') {
                        params[def][deepDef] = defaults[def][deepDef];
                    }
                }
            }
        }
        
        // Swiper
        var s = this;
        
        // Params
        s.params = params;
        s.originalParams = originalParams;
        
        // Classname
        s.classNames = [];
        /*=========================
          Dom Library and plugins
          ===========================*/
        if (typeof $ !== 'undefined' && typeof Dom7 !== 'undefined'){
            $ = Dom7;
        }
        if (typeof $ === 'undefined') {
            if (typeof Dom7 === 'undefined') {
                $ = window.Dom7 || window.Zepto || window.jQuery;
            }
            else {
                $ = Dom7;
            }
            if (!$) return;
        }
        // Export it to Swiper instance
        s.$ = $;
        
        /*=========================
          Breakpoints
          ===========================*/
        s.currentBreakpoint = undefined;
        s.getActiveBreakpoint = function () {
            //Get breakpoint for window width
            if (!s.params.breakpoints) return false;
            var breakpoint = false;
            var points = [], point;
            for ( point in s.params.breakpoints ) {
                if (s.params.breakpoints.hasOwnProperty(point)) {
                    points.push(point);
                }
            }
            points.sort(function (a, b) {
                return parseInt(a, 10) > parseInt(b, 10);
            });
            for (var i = 0; i < points.length; i++) {
                point = points[i];
                if (point >= window.innerWidth && !breakpoint) {
                    breakpoint = point;
                }
            }
            return breakpoint || 'max';
        };
        s.setBreakpoint = function () {
            //Set breakpoint for window width and update parameters
            var breakpoint = s.getActiveBreakpoint();
            if (breakpoint && s.currentBreakpoint !== breakpoint) {
                var breakPointsParams = breakpoint in s.params.breakpoints ? s.params.breakpoints[breakpoint] : s.originalParams;
                var needsReLoop = s.params.loop && (breakPointsParams.slidesPerView !== s.params.slidesPerView);
                for ( var param in breakPointsParams ) {
                    s.params[param] = breakPointsParams[param];
                }
                s.currentBreakpoint = breakpoint;
                if(needsReLoop && s.destroyLoop) {
                    s.reLoop(true);
                }
            }
        };
        // Set breakpoint on load
        if (s.params.breakpoints) {
            s.setBreakpoint();
        }
        
        /*=========================
          Preparation - Define Container, Wrapper and Pagination
          ===========================*/
        s.container = $(container);
        if (s.container.length === 0) return;
        if (s.container.length > 1) {
            var swipers = [];
            s.container.each(function () {
                var container = this;
                swipers.push(new Swiper(this, params));
            });
            return swipers;
        }
        
        // Save instance in container HTML Element and in data
        s.container[0].swiper = s;
        s.container.data('swiper', s);
        
        s.classNames.push(s.params.containerModifierClass + s.params.direction);
        
        if (s.params.freeMode) {
            s.classNames.push(s.params.containerModifierClass + 'free-mode');
        }
        if (!s.support.flexbox) {
            s.classNames.push(s.params.containerModifierClass + 'no-flexbox');
            s.params.slidesPerColumn = 1;
        }
        if (s.params.autoHeight) {
            s.classNames.push(s.params.containerModifierClass + 'autoheight');
        }
        // Enable slides progress when required
        if (s.params.parallax || s.params.watchSlidesVisibility) {
            s.params.watchSlidesProgress = true;
        }
        // Max resistance when touchReleaseOnEdges
        if (s.params.touchReleaseOnEdges) {
            s.params.resistanceRatio = 0;
        }
        // Coverflow / 3D
        if (['cube', 'coverflow', 'flip'].indexOf(s.params.effect) >= 0) {
            if (s.support.transforms3d) {
                s.params.watchSlidesProgress = true;
                s.classNames.push(s.params.containerModifierClass + '3d');
            }
            else {
                s.params.effect = 'slide';
            }
        }
        if (s.params.effect !== 'slide') {
            s.classNames.push(s.params.containerModifierClass + s.params.effect);
        }
        if (s.params.effect === 'cube') {
            s.params.resistanceRatio = 0;
            s.params.slidesPerView = 1;
            s.params.slidesPerColumn = 1;
            s.params.slidesPerGroup = 1;
            s.params.centeredSlides = false;
            s.params.spaceBetween = 0;
            s.params.virtualTranslate = true;
            s.params.setWrapperSize = false;
        }
        if (s.params.effect === 'fade' || s.params.effect === 'flip') {
            s.params.slidesPerView = 1;
            s.params.slidesPerColumn = 1;
            s.params.slidesPerGroup = 1;
            s.params.watchSlidesProgress = true;
            s.params.spaceBetween = 0;
            s.params.setWrapperSize = false;
            if (typeof initialVirtualTranslate === 'undefined') {
                s.params.virtualTranslate = true;
            }
        }
        
        // Grab Cursor
        if (s.params.grabCursor && s.support.touch) {
            s.params.grabCursor = false;
        }
        
        // Wrapper
        s.wrapper = s.container.children('.' + s.params.wrapperClass);
        
        // Pagination
        if (s.params.pagination) {
            s.paginationContainer = $(s.params.pagination);
            if (s.params.uniqueNavElements && typeof s.params.pagination === 'string' && s.paginationContainer.length > 1 && s.container.find(s.params.pagination).length === 1) {
                s.paginationContainer = s.container.find(s.params.pagination);
            }
        
            if (s.params.paginationType === 'bullets' && s.params.paginationClickable) {
                s.paginationContainer.addClass(s.params.paginationModifierClass + 'clickable');
            }
            else {
                s.params.paginationClickable = false;
            }
            s.paginationContainer.addClass(s.params.paginationModifierClass + s.params.paginationType);
        }
        // Next/Prev Buttons
        if (s.params.nextButton || s.params.prevButton) {
            if (s.params.nextButton) {
                s.nextButton = $(s.params.nextButton);
                if (s.params.uniqueNavElements && typeof s.params.nextButton === 'string' && s.nextButton.length > 1 && s.container.find(s.params.nextButton).length === 1) {
                    s.nextButton = s.container.find(s.params.nextButton);
                }
            }
            if (s.params.prevButton) {
                s.prevButton = $(s.params.prevButton);
                if (s.params.uniqueNavElements && typeof s.params.prevButton === 'string' && s.prevButton.length > 1 && s.container.find(s.params.prevButton).length === 1) {
                    s.prevButton = s.container.find(s.params.prevButton);
                }
            }
        }
        
        // Is Horizontal
        s.isHorizontal = function () {
            return s.params.direction === 'horizontal';
        };
        // s.isH = isH;
        
        // RTL
        s.rtl = s.isHorizontal() && (s.container[0].dir.toLowerCase() === 'rtl' || s.container.css('direction') === 'rtl');
        if (s.rtl) {
            s.classNames.push(s.params.containerModifierClass + 'rtl');
        }
        
        // Wrong RTL support
        if (s.rtl) {
            s.wrongRTL = s.wrapper.css('display') === '-webkit-box';
        }
        
        // Columns
        if (s.params.slidesPerColumn > 1) {
            s.classNames.push(s.params.containerModifierClass + 'multirow');
        }
        
        // Check for Android
        if (s.device.android) {
            s.classNames.push(s.params.containerModifierClass + 'android');
        }
        
        // Add classes
        s.container.addClass(s.classNames.join(' '));
        
        // Translate
        s.translate = 0;
        
        // Progress
        s.progress = 0;
        
        // Velocity
        s.velocity = 0;
        
        /*=========================
          Locks, unlocks
          ===========================*/
        s.lockSwipeToNext = function () {
            s.params.allowSwipeToNext = false;
            if (s.params.allowSwipeToPrev === false && s.params.grabCursor) {
                s.unsetGrabCursor();
            }
        };
        s.lockSwipeToPrev = function () {
            s.params.allowSwipeToPrev = false;
            if (s.params.allowSwipeToNext === false && s.params.grabCursor) {
                s.unsetGrabCursor();
            }
        };
        s.lockSwipes = function () {
            s.params.allowSwipeToNext = s.params.allowSwipeToPrev = false;
            if (s.params.grabCursor) s.unsetGrabCursor();
        };
        s.unlockSwipeToNext = function () {
            s.params.allowSwipeToNext = true;
            if (s.params.allowSwipeToPrev === true && s.params.grabCursor) {
                s.setGrabCursor();
            }
        };
        s.unlockSwipeToPrev = function () {
            s.params.allowSwipeToPrev = true;
            if (s.params.allowSwipeToNext === true && s.params.grabCursor) {
                s.setGrabCursor();
            }
        };
        s.unlockSwipes = function () {
            s.params.allowSwipeToNext = s.params.allowSwipeToPrev = true;
            if (s.params.grabCursor) s.setGrabCursor();
        };
        
        /*=========================
          Round helper
          ===========================*/
        function round(a) {
            return Math.floor(a);
        }
        /*=========================
          Set grab cursor
          ===========================*/
        s.setGrabCursor = function(moving) {
            s.container[0].style.cursor = 'move';
            s.container[0].style.cursor = moving ? '-webkit-grabbing' : '-webkit-grab';
            s.container[0].style.cursor = moving ? '-moz-grabbin' : '-moz-grab';
            s.container[0].style.cursor = moving ? 'grabbing': 'grab';
        };
        s.unsetGrabCursor = function () {
            s.container[0].style.cursor = '';
        };
        if (s.params.grabCursor) {
            s.setGrabCursor();
        }
        /*=========================
          Update on Images Ready
          ===========================*/
        s.imagesToLoad = [];
        s.imagesLoaded = 0;
        
        s.loadImage = function (imgElement, src, srcset, sizes, checkForComplete, callback) {
            var image;
            function onReady () {
                if (callback) callback();
            }
            if (!imgElement.complete || !checkForComplete) {
                if (src) {
                    image = new window.Image();
                    image.onload = onReady;
                    image.onerror = onReady;
                    if (sizes) {
                        image.sizes = sizes;
                    }
                    if (srcset) {
                        image.srcset = srcset;
                    }
                    if (src) {
                        image.src = src;
                    }
                } else {
                    onReady();
                }
        
            } else {//image already loaded...
                onReady();
            }
        };
        s.preloadImages = function () {
            s.imagesToLoad = s.container.find('img');
            function _onReady() {
                if (typeof s === 'undefined' || s === null) return;
                if (s.imagesLoaded !== undefined) s.imagesLoaded++;
                if (s.imagesLoaded === s.imagesToLoad.length) {
                    if (s.params.updateOnImagesReady) s.update();
                    s.emit('onImagesReady', s);
                }
            }
            for (var i = 0; i < s.imagesToLoad.length; i++) {
                s.loadImage(s.imagesToLoad[i], (s.imagesToLoad[i].currentSrc || s.imagesToLoad[i].getAttribute('src')), (s.imagesToLoad[i].srcset || s.imagesToLoad[i].getAttribute('srcset')), s.imagesToLoad[i].sizes || s.imagesToLoad[i].getAttribute('sizes'), true, _onReady);
            }
        };
        
        /*=========================
          Autoplay
          ===========================*/
        s.autoplayTimeoutId = undefined;
        s.autoplaying = false;
        s.autoplayPaused = false;
        function autoplay() {
            var autoplayDelay = s.params.autoplay;
            var activeSlide = s.slides.eq(s.activeIndex);
            if (activeSlide.attr('data-swiper-autoplay')) {
                autoplayDelay = activeSlide.attr('data-swiper-autoplay') || s.params.autoplay;
            }
            s.autoplayTimeoutId = setTimeout(function () {
                if (s.params.loop) {
                    s.fixLoop();
                    s._slideNext();
                    s.emit('onAutoplay', s);
                }
                else {
                    if (!s.isEnd) {
                        s._slideNext();
                        s.emit('onAutoplay', s);
                    }
                    else {
                        if (!params.autoplayStopOnLast) {
                            s._slideTo(0);
                            s.emit('onAutoplay', s);
                        }
                        else {
                            s.stopAutoplay();
                        }
                    }
                }
            }, autoplayDelay);
        }
        s.startAutoplay = function () {
            if (typeof s.autoplayTimeoutId !== 'undefined') return false;
            if (!s.params.autoplay) return false;
            if (s.autoplaying) return false;
            s.autoplaying = true;
            s.emit('onAutoplayStart', s);
            autoplay();
        };
        s.stopAutoplay = function (internal) {
            if (!s.autoplayTimeoutId) return;
            if (s.autoplayTimeoutId) clearTimeout(s.autoplayTimeoutId);
            s.autoplaying = false;
            s.autoplayTimeoutId = undefined;
            s.emit('onAutoplayStop', s);
        };
        s.pauseAutoplay = function (speed) {
            if (s.autoplayPaused) return;
            if (s.autoplayTimeoutId) clearTimeout(s.autoplayTimeoutId);
            s.autoplayPaused = true;
            if (speed === 0) {
                s.autoplayPaused = false;
                autoplay();
            }
            else {
                s.wrapper.transitionEnd(function () {
                    if (!s) return;
                    s.autoplayPaused = false;
                    if (!s.autoplaying) {
                        s.stopAutoplay();
                    }
                    else {
                        autoplay();
                    }
                });
            }
        };
        /*=========================
          Min/Max Translate
          ===========================*/
        s.minTranslate = function () {
            return (-s.snapGrid[0]);
        };
        s.maxTranslate = function () {
            return (-s.snapGrid[s.snapGrid.length - 1]);
        };
        /*=========================
          Slider/slides sizes
          ===========================*/
        s.updateAutoHeight = function () {
            var activeSlides = [];
            var newHeight = 0;
        
            // Find slides currently in view
            if(s.params.slidesPerView !== 'auto' && s.params.slidesPerView > 1) {
                for (i = 0; i < Math.ceil(s.params.slidesPerView); i++) {
                    var index = s.activeIndex + i;
                    if(index > s.slides.length) break;
                    activeSlides.push(s.slides.eq(index)[0]);
                }
            } else {
                activeSlides.push(s.slides.eq(s.activeIndex)[0]);
            }
        
            // Find new height from heighest slide in view
            for (i = 0; i < activeSlides.length; i++) {
                if (typeof activeSlides[i] !== 'undefined') {
                    var height = activeSlides[i].offsetHeight;
                    newHeight = height > newHeight ? height : newHeight;
                }
            }
        
            // Update Height
            if (newHeight) s.wrapper.css('height', newHeight + 'px');
        };
        s.updateContainerSize = function () {
            var width, height;
            if (typeof s.params.width !== 'undefined') {
                width = s.params.width;
            }
            else {
                width = s.container[0].clientWidth;
            }
            if (typeof s.params.height !== 'undefined') {
                height = s.params.height;
            }
            else {
                height = s.container[0].clientHeight;
            }
            if (width === 0 && s.isHorizontal() || height === 0 && !s.isHorizontal()) {
                return;
            }
        
            //Subtract paddings
            width = width - parseInt(s.container.css('padding-left'), 10) - parseInt(s.container.css('padding-right'), 10);
            height = height - parseInt(s.container.css('padding-top'), 10) - parseInt(s.container.css('padding-bottom'), 10);
        
            // Store values
            s.width = width;
            s.height = height;
            s.size = s.isHorizontal() ? s.width : s.height;
        };
        
        s.updateSlidesSize = function () {
            s.slides = s.wrapper.children('.' + s.params.slideClass);
            s.snapGrid = [];
            s.slidesGrid = [];
            s.slidesSizesGrid = [];
        
            var spaceBetween = s.params.spaceBetween,
                slidePosition = -s.params.slidesOffsetBefore,
                i,
                prevSlideSize = 0,
                index = 0;
            if (typeof s.size === 'undefined') return;
            if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {
                spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * s.size;
            }
        
            s.virtualSize = -spaceBetween;
            // reset margins
            if (s.rtl) s.slides.css({marginLeft: '', marginTop: ''});
            else s.slides.css({marginRight: '', marginBottom: ''});
        
            var slidesNumberEvenToRows;
            if (s.params.slidesPerColumn > 1) {
                if (Math.floor(s.slides.length / s.params.slidesPerColumn) === s.slides.length / s.params.slidesPerColumn) {
                    slidesNumberEvenToRows = s.slides.length;
                }
                else {
                    slidesNumberEvenToRows = Math.ceil(s.slides.length / s.params.slidesPerColumn) * s.params.slidesPerColumn;
                }
                if (s.params.slidesPerView !== 'auto' && s.params.slidesPerColumnFill === 'row') {
                    slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, s.params.slidesPerView * s.params.slidesPerColumn);
                }
            }
        
            // Calc slides
            var slideSize;
            var slidesPerColumn = s.params.slidesPerColumn;
            var slidesPerRow = slidesNumberEvenToRows / slidesPerColumn;
            var numFullColumns = slidesPerRow - (s.params.slidesPerColumn * slidesPerRow - s.slides.length);
            for (i = 0; i < s.slides.length; i++) {
                slideSize = 0;
                var slide = s.slides.eq(i);
                if (s.params.slidesPerColumn > 1) {
                    // Set slides order
                    var newSlideOrderIndex;
                    var column, row;
                    if (s.params.slidesPerColumnFill === 'column') {
                        column = Math.floor(i / slidesPerColumn);
                        row = i - column * slidesPerColumn;
                        if (column > numFullColumns || (column === numFullColumns && row === slidesPerColumn-1)) {
                            if (++row >= slidesPerColumn) {
                                row = 0;
                                column++;
                            }
                        }
                        newSlideOrderIndex = column + row * slidesNumberEvenToRows / slidesPerColumn;
                        slide
                            .css({
                                '-webkit-box-ordinal-group': newSlideOrderIndex,
                                '-moz-box-ordinal-group': newSlideOrderIndex,
                                '-ms-flex-order': newSlideOrderIndex,
                                '-webkit-order': newSlideOrderIndex,
                                'order': newSlideOrderIndex
                            });
                    }
                    else {
                        row = Math.floor(i / slidesPerRow);
                        column = i - row * slidesPerRow;
                    }
                    slide
                        .css(
                            'margin-' + (s.isHorizontal() ? 'top' : 'left'),
                            (row !== 0 && s.params.spaceBetween) && (s.params.spaceBetween + 'px')
                        )
                        .attr('data-swiper-column', column)
                        .attr('data-swiper-row', row);
        
                }
                if (slide.css('display') === 'none') continue;
                if (s.params.slidesPerView === 'auto') {
                    slideSize = s.isHorizontal() ? slide.outerWidth(true) : slide.outerHeight(true);
                    if (s.params.roundLengths) slideSize = round(slideSize);
                }
                else {
                    slideSize = (s.size - (s.params.slidesPerView - 1) * spaceBetween) / s.params.slidesPerView;
                    if (s.params.roundLengths) slideSize = round(slideSize);
        
                    if (s.isHorizontal()) {
                        s.slides[i].style.width = slideSize + 'px';
                    }
                    else {
                        s.slides[i].style.height = slideSize + 'px';
                    }
                }
                s.slides[i].swiperSlideSize = slideSize;
                s.slidesSizesGrid.push(slideSize);
        
        
                if (s.params.centeredSlides) {
                    slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;
                    if (i === 0) slidePosition = slidePosition - s.size / 2 - spaceBetween;
                    if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;
                    if ((index) % s.params.slidesPerGroup === 0) s.snapGrid.push(slidePosition);
                    s.slidesGrid.push(slidePosition);
                }
                else {
                    if ((index) % s.params.slidesPerGroup === 0) s.snapGrid.push(slidePosition);
                    s.slidesGrid.push(slidePosition);
                    slidePosition = slidePosition + slideSize + spaceBetween;
                }
        
                s.virtualSize += slideSize + spaceBetween;
        
                prevSlideSize = slideSize;
        
                index ++;
            }
            s.virtualSize = Math.max(s.virtualSize, s.size) + s.params.slidesOffsetAfter;
            var newSlidesGrid;
        
            if (
                s.rtl && s.wrongRTL && (s.params.effect === 'slide' || s.params.effect === 'coverflow')) {
                s.wrapper.css({width: s.virtualSize + s.params.spaceBetween + 'px'});
            }
            if (!s.support.flexbox || s.params.setWrapperSize) {
                if (s.isHorizontal()) s.wrapper.css({width: s.virtualSize + s.params.spaceBetween + 'px'});
                else s.wrapper.css({height: s.virtualSize + s.params.spaceBetween + 'px'});
            }
        
            if (s.params.slidesPerColumn > 1) {
                s.virtualSize = (slideSize + s.params.spaceBetween) * slidesNumberEvenToRows;
                s.virtualSize = Math.ceil(s.virtualSize / s.params.slidesPerColumn) - s.params.spaceBetween;
                if (s.isHorizontal()) s.wrapper.css({width: s.virtualSize + s.params.spaceBetween + 'px'});
                else s.wrapper.css({height: s.virtualSize + s.params.spaceBetween + 'px'});
                if (s.params.centeredSlides) {
                    newSlidesGrid = [];
                    for (i = 0; i < s.snapGrid.length; i++) {
                        if (s.snapGrid[i] < s.virtualSize + s.snapGrid[0]) newSlidesGrid.push(s.snapGrid[i]);
                    }
                    s.snapGrid = newSlidesGrid;
                }
            }
        
            // Remove last grid elements depending on width
            if (!s.params.centeredSlides) {
                newSlidesGrid = [];
                for (i = 0; i < s.snapGrid.length; i++) {
                    if (s.snapGrid[i] <= s.virtualSize - s.size) {
                        newSlidesGrid.push(s.snapGrid[i]);
                    }
                }
                s.snapGrid = newSlidesGrid;
                if (Math.floor(s.virtualSize - s.size) - Math.floor(s.snapGrid[s.snapGrid.length - 1]) > 1) {
                    s.snapGrid.push(s.virtualSize - s.size);
                }
            }
            if (s.snapGrid.length === 0) s.snapGrid = [0];
        
            if (s.params.spaceBetween !== 0) {
                if (s.isHorizontal()) {
                    if (s.rtl) s.slides.css({marginLeft: spaceBetween + 'px'});
                    else s.slides.css({marginRight: spaceBetween + 'px'});
                }
                else s.slides.css({marginBottom: spaceBetween + 'px'});
            }
            if (s.params.watchSlidesProgress) {
                s.updateSlidesOffset();
            }
        };
        s.updateSlidesOffset = function () {
            for (var i = 0; i < s.slides.length; i++) {
                s.slides[i].swiperSlideOffset = s.isHorizontal() ? s.slides[i].offsetLeft : s.slides[i].offsetTop;
            }
        };
        
        /*=========================
          Slider/slides progress
          ===========================*/
        s.updateSlidesProgress = function (translate) {
            if (typeof translate === 'undefined') {
                translate = s.translate || 0;
            }
            if (s.slides.length === 0) return;
            if (typeof s.slides[0].swiperSlideOffset === 'undefined') s.updateSlidesOffset();
        
            var offsetCenter = -translate;
            if (s.rtl) offsetCenter = translate;
        
            // Visible Slides
            s.slides.removeClass(s.params.slideVisibleClass);
            for (var i = 0; i < s.slides.length; i++) {
                var slide = s.slides[i];
                var slideProgress = (offsetCenter + (s.params.centeredSlides ? s.minTranslate() : 0) - slide.swiperSlideOffset) / (slide.swiperSlideSize + s.params.spaceBetween);
                if (s.params.watchSlidesVisibility) {
                    var slideBefore = -(offsetCenter - slide.swiperSlideOffset);
                    var slideAfter = slideBefore + s.slidesSizesGrid[i];
                    var isVisible =
                        (slideBefore >= 0 && slideBefore < s.size) ||
                        (slideAfter > 0 && slideAfter <= s.size) ||
                        (slideBefore <= 0 && slideAfter >= s.size);
                    if (isVisible) {
                        s.slides.eq(i).addClass(s.params.slideVisibleClass);
                    }
                }
                slide.progress = s.rtl ? -slideProgress : slideProgress;
            }
        };
        s.updateProgress = function (translate) {
            if (typeof translate === 'undefined') {
                translate = s.translate || 0;
            }
            var translatesDiff = s.maxTranslate() - s.minTranslate();
            var wasBeginning = s.isBeginning;
            var wasEnd = s.isEnd;
            if (translatesDiff === 0) {
                s.progress = 0;
                s.isBeginning = s.isEnd = true;
            }
            else {
                s.progress = (translate - s.minTranslate()) / (translatesDiff);
                s.isBeginning = s.progress <= 0;
                s.isEnd = s.progress >= 1;
            }
            if (s.isBeginning && !wasBeginning) s.emit('onReachBeginning', s);
            if (s.isEnd && !wasEnd) s.emit('onReachEnd', s);
        
            if (s.params.watchSlidesProgress) s.updateSlidesProgress(translate);
            s.emit('onProgress', s, s.progress);
        };
        s.updateActiveIndex = function () {
            var translate = s.rtl ? s.translate : -s.translate;
            var newActiveIndex, i, snapIndex;
            for (i = 0; i < s.slidesGrid.length; i ++) {
                if (typeof s.slidesGrid[i + 1] !== 'undefined') {
                    if (translate >= s.slidesGrid[i] && translate < s.slidesGrid[i + 1] - (s.slidesGrid[i + 1] - s.slidesGrid[i]) / 2) {
                        newActiveIndex = i;
                    }
                    else if (translate >= s.slidesGrid[i] && translate < s.slidesGrid[i + 1]) {
                        newActiveIndex = i + 1;
                    }
                }
                else {
                    if (translate >= s.slidesGrid[i]) {
                        newActiveIndex = i;
                    }
                }
            }
            // Normalize slideIndex
            if(s.params.normalizeSlideIndex){
                if (newActiveIndex < 0 || typeof newActiveIndex === 'undefined') newActiveIndex = 0;
            }
            // for (i = 0; i < s.slidesGrid.length; i++) {
                // if (- translate >= s.slidesGrid[i]) {
                    // newActiveIndex = i;
                // }
            // }
            snapIndex = Math.floor(newActiveIndex / s.params.slidesPerGroup);
            if (snapIndex >= s.snapGrid.length) snapIndex = s.snapGrid.length - 1;
        
            if (newActiveIndex === s.activeIndex) {
                return;
            }
            s.snapIndex = snapIndex;
            s.previousIndex = s.activeIndex;
            s.activeIndex = newActiveIndex;
            s.updateClasses();
            s.updateRealIndex();
        };
        s.updateRealIndex = function(){
            s.realIndex = s.slides.eq(s.activeIndex).attr('data-swiper-slide-index') || s.activeIndex;
        };
        
        /*=========================
          Classes
          ===========================*/
        s.updateClasses = function () {
            s.slides.removeClass(s.params.slideActiveClass + ' ' + s.params.slideNextClass + ' ' + s.params.slidePrevClass + ' ' + s.params.slideDuplicateActiveClass + ' ' + s.params.slideDuplicateNextClass + ' ' + s.params.slideDuplicatePrevClass);
            var activeSlide = s.slides.eq(s.activeIndex);
            // Active classes
            activeSlide.addClass(s.params.slideActiveClass);
            if (params.loop) {
                // Duplicate to all looped slides
                if (activeSlide.hasClass(s.params.slideDuplicateClass)) {
                    s.wrapper.children('.' + s.params.slideClass + ':not(.' + s.params.slideDuplicateClass + ')[data-swiper-slide-index="' + s.realIndex + '"]').addClass(s.params.slideDuplicateActiveClass);
                }
                else {
                    s.wrapper.children('.' + s.params.slideClass + '.' + s.params.slideDuplicateClass + '[data-swiper-slide-index="' + s.realIndex + '"]').addClass(s.params.slideDuplicateActiveClass);
                }
            }
            // Next Slide
            var nextSlide = activeSlide.next('.' + s.params.slideClass).addClass(s.params.slideNextClass);
            if (s.params.loop && nextSlide.length === 0) {
                nextSlide = s.slides.eq(0);
                nextSlide.addClass(s.params.slideNextClass);
            }
            // Prev Slide
            var prevSlide = activeSlide.prev('.' + s.params.slideClass).addClass(s.params.slidePrevClass);
            if (s.params.loop && prevSlide.length === 0) {
                prevSlide = s.slides.eq(-1);
                prevSlide.addClass(s.params.slidePrevClass);
            }
            if (params.loop) {
                // Duplicate to all looped slides
                if (nextSlide.hasClass(s.params.slideDuplicateClass)) {
                    s.wrapper.children('.' + s.params.slideClass + ':not(.' + s.params.slideDuplicateClass + ')[data-swiper-slide-index="' + nextSlide.attr('data-swiper-slide-index') + '"]').addClass(s.params.slideDuplicateNextClass);
                }
                else {
                    s.wrapper.children('.' + s.params.slideClass + '.' + s.params.slideDuplicateClass + '[data-swiper-slide-index="' + nextSlide.attr('data-swiper-slide-index') + '"]').addClass(s.params.slideDuplicateNextClass);
                }
                if (prevSlide.hasClass(s.params.slideDuplicateClass)) {
                    s.wrapper.children('.' + s.params.slideClass + ':not(.' + s.params.slideDuplicateClass + ')[data-swiper-slide-index="' + prevSlide.attr('data-swiper-slide-index') + '"]').addClass(s.params.slideDuplicatePrevClass);
                }
                else {
                    s.wrapper.children('.' + s.params.slideClass + '.' + s.params.slideDuplicateClass + '[data-swiper-slide-index="' + prevSlide.attr('data-swiper-slide-index') + '"]').addClass(s.params.slideDuplicatePrevClass);
                }
            }
        
            // Pagination
            if (s.paginationContainer && s.paginationContainer.length > 0) {
                // Current/Total
                var current,
                    total = s.params.loop ? Math.ceil((s.slides.length - s.loopedSlides * 2) / s.params.slidesPerGroup) : s.snapGrid.length;
                if (s.params.loop) {
                    current = Math.ceil((s.activeIndex - s.loopedSlides)/s.params.slidesPerGroup);
                    if (current > s.slides.length - 1 - s.loopedSlides * 2) {
                        current = current - (s.slides.length - s.loopedSlides * 2);
                    }
                    if (current > total - 1) current = current - total;
                    if (current < 0 && s.params.paginationType !== 'bullets') current = total + current;
                }
                else {
                    if (typeof s.snapIndex !== 'undefined') {
                        current = s.snapIndex;
                    }
                    else {
                        current = s.activeIndex || 0;
                    }
                }
                // Types
                if (s.params.paginationType === 'bullets' && s.bullets && s.bullets.length > 0) {
                    s.bullets.removeClass(s.params.bulletActiveClass);
                    if (s.paginationContainer.length > 1) {
                        s.bullets.each(function () {
                            if ($(this).index() === current) $(this).addClass(s.params.bulletActiveClass);
                        });
                    }
                    else {
                        s.bullets.eq(current).addClass(s.params.bulletActiveClass);
                    }
                }
                if (s.params.paginationType === 'fraction') {
                    s.paginationContainer.find('.' + s.params.paginationCurrentClass).text(current + 1);
                    s.paginationContainer.find('.' + s.params.paginationTotalClass).text(total);
                }
                if (s.params.paginationType === 'progress') {
                    var scale = (current + 1) / total,
                        scaleX = scale,
                        scaleY = 1;
                    if (!s.isHorizontal()) {
                        scaleY = scale;
                        scaleX = 1;
                    }
                    s.paginationContainer.find('.' + s.params.paginationProgressbarClass).transform('translate3d(0,0,0) scaleX(' + scaleX + ') scaleY(' + scaleY + ')').transition(s.params.speed);
                }
                if (s.params.paginationType === 'custom' && s.params.paginationCustomRender) {
                    s.paginationContainer.html(s.params.paginationCustomRender(s, current + 1, total));
                    s.emit('onPaginationRendered', s, s.paginationContainer[0]);
                }
            }
        
            // Next/active buttons
            if (!s.params.loop) {
                if (s.params.prevButton && s.prevButton && s.prevButton.length > 0) {
                    if (s.isBeginning) {
                        s.prevButton.addClass(s.params.buttonDisabledClass);
                        if (s.params.a11y && s.a11y) s.a11y.disable(s.prevButton);
                    }
                    else {
                        s.prevButton.removeClass(s.params.buttonDisabledClass);
                        if (s.params.a11y && s.a11y) s.a11y.enable(s.prevButton);
                    }
                }
                if (s.params.nextButton && s.nextButton && s.nextButton.length > 0) {
                    if (s.isEnd) {
                        s.nextButton.addClass(s.params.buttonDisabledClass);
                        if (s.params.a11y && s.a11y) s.a11y.disable(s.nextButton);
                    }
                    else {
                        s.nextButton.removeClass(s.params.buttonDisabledClass);
                        if (s.params.a11y && s.a11y) s.a11y.enable(s.nextButton);
                    }
                }
            }
        };
        
        /*=========================
          Pagination
          ===========================*/
        s.updatePagination = function () {
            if (!s.params.pagination) return;
            if (s.paginationContainer && s.paginationContainer.length > 0) {
                var paginationHTML = '';
                if (s.params.paginationType === 'bullets') {
                    var numberOfBullets = s.params.loop ? Math.ceil((s.slides.length - s.loopedSlides * 2) / s.params.slidesPerGroup) : s.snapGrid.length;
                    for (var i = 0; i < numberOfBullets; i++) {
                        if (s.params.paginationBulletRender) {
                            paginationHTML += s.params.paginationBulletRender(s, i, s.params.bulletClass);
                        }
                        else {
                            paginationHTML += '<' + s.params.paginationElement+' class="' + s.params.bulletClass + '"></' + s.params.paginationElement + '>';
                        }
                    }
                    s.paginationContainer.html(paginationHTML);
                    s.bullets = s.paginationContainer.find('.' + s.params.bulletClass);
                    if (s.params.paginationClickable && s.params.a11y && s.a11y) {
                        s.a11y.initPagination();
                    }
                }
                if (s.params.paginationType === 'fraction') {
                    if (s.params.paginationFractionRender) {
                        paginationHTML = s.params.paginationFractionRender(s, s.params.paginationCurrentClass, s.params.paginationTotalClass);
                    }
                    else {
                        paginationHTML =
                            '<span class="' + s.params.paginationCurrentClass + '"></span>' +
                            ' / ' +
                            '<span class="' + s.params.paginationTotalClass+'"></span>';
                    }
                    s.paginationContainer.html(paginationHTML);
                }
                if (s.params.paginationType === 'progress') {
                    if (s.params.paginationProgressRender) {
                        paginationHTML = s.params.paginationProgressRender(s, s.params.paginationProgressbarClass);
                    }
                    else {
                        paginationHTML = '<span class="' + s.params.paginationProgressbarClass + '"></span>';
                    }
                    s.paginationContainer.html(paginationHTML);
                }
                if (s.params.paginationType !== 'custom') {
                    s.emit('onPaginationRendered', s, s.paginationContainer[0]);
                }
            }
        };
        /*=========================
          Common update method
          ===========================*/
        s.update = function (updateTranslate) {
            s.updateContainerSize();
            s.updateSlidesSize();
            s.updateProgress();
            s.updatePagination();
            s.updateClasses();
            if (s.params.scrollbar && s.scrollbar) {
                s.scrollbar.set();
            }
            function forceSetTranslate() {
                var translate = s.rtl ? -s.translate : s.translate;
                newTranslate = Math.min(Math.max(s.translate, s.maxTranslate()), s.minTranslate());
                s.setWrapperTranslate(newTranslate);
                s.updateActiveIndex();
                s.updateClasses();
            }
            if (updateTranslate) {
                var translated, newTranslate;
                if (s.controller && s.controller.spline) {
                    s.controller.spline = undefined;
                }
                if (s.params.freeMode) {
                    forceSetTranslate();
                    if (s.params.autoHeight) {
                        s.updateAutoHeight();
                    }
                }
                else {
                    if ((s.params.slidesPerView === 'auto' || s.params.slidesPerView > 1) && s.isEnd && !s.params.centeredSlides) {
                        translated = s.slideTo(s.slides.length - 1, 0, false, true);
                    }
                    else {
                        translated = s.slideTo(s.activeIndex, 0, false, true);
                    }
                    if (!translated) {
                        forceSetTranslate();
                    }
                }
            }
            else if (s.params.autoHeight) {
                s.updateAutoHeight();
            }
        };
        
        /*=========================
          Resize Handler
          ===========================*/
        s.onResize = function (forceUpdatePagination) {
            //Breakpoints
            if (s.params.breakpoints) {
                s.setBreakpoint();
            }
        
            // Disable locks on resize
            var allowSwipeToPrev = s.params.allowSwipeToPrev;
            var allowSwipeToNext = s.params.allowSwipeToNext;
            s.params.allowSwipeToPrev = s.params.allowSwipeToNext = true;
        
            s.updateContainerSize();
            s.updateSlidesSize();
            if (s.params.slidesPerView === 'auto' || s.params.freeMode || forceUpdatePagination) s.updatePagination();
            if (s.params.scrollbar && s.scrollbar) {
                s.scrollbar.set();
            }
            if (s.controller && s.controller.spline) {
                s.controller.spline = undefined;
            }
            var slideChangedBySlideTo = false;
            if (s.params.freeMode) {
                var newTranslate = Math.min(Math.max(s.translate, s.maxTranslate()), s.minTranslate());
                s.setWrapperTranslate(newTranslate);
                s.updateActiveIndex();
                s.updateClasses();
        
                if (s.params.autoHeight) {
                    s.updateAutoHeight();
                }
            }
            else {
                s.updateClasses();
                if ((s.params.slidesPerView === 'auto' || s.params.slidesPerView > 1) && s.isEnd && !s.params.centeredSlides) {
                    slideChangedBySlideTo = s.slideTo(s.slides.length - 1, 0, false, true);
                }
                else {
                    slideChangedBySlideTo = s.slideTo(s.activeIndex, 0, false, true);
                }
            }
            if (s.params.lazyLoading && !slideChangedBySlideTo && s.lazy) {
                s.lazy.load();
            }
            // Return locks after resize
            s.params.allowSwipeToPrev = allowSwipeToPrev;
            s.params.allowSwipeToNext = allowSwipeToNext;
        };
        
        /*=========================
          Events
          ===========================*/
        
        //Define Touch Events
        s.touchEventsDesktop = {start: 'mousedown', move: 'mousemove', end: 'mouseup'};
        if (window.navigator.pointerEnabled) s.touchEventsDesktop = {start: 'pointerdown', move: 'pointermove', end: 'pointerup'};
        else if (window.navigator.msPointerEnabled) s.touchEventsDesktop = {start: 'MSPointerDown', move: 'MSPointerMove', end: 'MSPointerUp'};
        s.touchEvents = {
            start : s.support.touch || !s.params.simulateTouch  ? 'touchstart' : s.touchEventsDesktop.start,
            move : s.support.touch || !s.params.simulateTouch ? 'touchmove' : s.touchEventsDesktop.move,
            end : s.support.touch || !s.params.simulateTouch ? 'touchend' : s.touchEventsDesktop.end
        };
        
        
        // WP8 Touch Events Fix
        if (window.navigator.pointerEnabled || window.navigator.msPointerEnabled) {
            (s.params.touchEventsTarget === 'container' ? s.container : s.wrapper).addClass('swiper-wp8-' + s.params.direction);
        }
        
        // Attach/detach events
        s.initEvents = function (detach) {
            var actionDom = detach ? 'off' : 'on';
            var action = detach ? 'removeEventListener' : 'addEventListener';
            var touchEventsTarget = s.params.touchEventsTarget === 'container' ? s.container[0] : s.wrapper[0];
            var target = s.support.touch ? touchEventsTarget : document;
        
            var moveCapture = s.params.nested ? true : false;
        
            //Touch Events
            if (s.browser.ie) {
                touchEventsTarget[action](s.touchEvents.start, s.onTouchStart, false);
                target[action](s.touchEvents.move, s.onTouchMove, moveCapture);
                target[action](s.touchEvents.end, s.onTouchEnd, false);
            }
            else {
                if (s.support.touch) {
                    var passiveListener = s.touchEvents.start === 'touchstart' && s.support.passiveListener && s.params.passiveListeners ? {passive: true, capture: false} : false;
                    touchEventsTarget[action](s.touchEvents.start, s.onTouchStart, passiveListener);
                    touchEventsTarget[action](s.touchEvents.move, s.onTouchMove, moveCapture);
                    touchEventsTarget[action](s.touchEvents.end, s.onTouchEnd, passiveListener);
                }
                if ((params.simulateTouch && !s.device.ios && !s.device.android) || (params.simulateTouch && !s.support.touch && s.device.ios)) {
                    touchEventsTarget[action]('mousedown', s.onTouchStart, false);
                    document[action]('mousemove', s.onTouchMove, moveCapture);
                    document[action]('mouseup', s.onTouchEnd, false);
                }
            }
            window[action]('resize', s.onResize);
        
            // Next, Prev, Index
            if (s.params.nextButton && s.nextButton && s.nextButton.length > 0) {
                s.nextButton[actionDom]('click', s.onClickNext);
                if (s.params.a11y && s.a11y) s.nextButton[actionDom]('keydown', s.a11y.onEnterKey);
            }
            if (s.params.prevButton && s.prevButton && s.prevButton.length > 0) {
                s.prevButton[actionDom]('click', s.onClickPrev);
                if (s.params.a11y && s.a11y) s.prevButton[actionDom]('keydown', s.a11y.onEnterKey);
            }
            if (s.params.pagination && s.params.paginationClickable) {
                s.paginationContainer[actionDom]('click', '.' + s.params.bulletClass, s.onClickIndex);
                if (s.params.a11y && s.a11y) s.paginationContainer[actionDom]('keydown', '.' + s.params.bulletClass, s.a11y.onEnterKey);
            }
        
            // Prevent Links Clicks
            if (s.params.preventClicks || s.params.preventClicksPropagation) touchEventsTarget[action]('click', s.preventClicks, true);
        };
        s.attachEvents = function () {
            s.initEvents();
        };
        s.detachEvents = function () {
            s.initEvents(true);
        };
        
        /*=========================
          Handle Clicks
          ===========================*/
        // Prevent Clicks
        s.allowClick = true;
        s.preventClicks = function (e) {
            if (!s.allowClick) {
                if (s.params.preventClicks) e.preventDefault();
                if (s.params.preventClicksPropagation && s.animating) {
                    e.stopPropagation();
                    e.stopImmediatePropagation();
                }
            }
        };
        // Clicks
        s.onClickNext = function (e) {
            e.preventDefault();
            if (s.isEnd && !s.params.loop) return;
            s.slideNext();
        };
        s.onClickPrev = function (e) {
            e.preventDefault();
            if (s.isBeginning && !s.params.loop) return;
            s.slidePrev();
        };
        s.onClickIndex = function (e) {
            e.preventDefault();
            var index = $(this).index() * s.params.slidesPerGroup;
            if (s.params.loop) index = index + s.loopedSlides;
            s.slideTo(index);
        };
        
        /*=========================
          Handle Touches
          ===========================*/
        function findElementInEvent(e, selector) {
            var el = $(e.target);
            if (!el.is(selector)) {
                if (typeof selector === 'string') {
                    el = el.parents(selector);
                }
                else if (selector.nodeType) {
                    var found;
                    el.parents().each(function (index, _el) {
                        if (_el === selector) found = selector;
                    });
                    if (!found) return undefined;
                    else return selector;
                }
            }
            if (el.length === 0) {
                return undefined;
            }
            return el[0];
        }
        s.updateClickedSlide = function (e) {
            var slide = findElementInEvent(e, '.' + s.params.slideClass);
            var slideFound = false;
            if (slide) {
                for (var i = 0; i < s.slides.length; i++) {
                    if (s.slides[i] === slide) slideFound = true;
                }
            }
        
            if (slide && slideFound) {
                s.clickedSlide = slide;
                s.clickedIndex = $(slide).index();
            }
            else {
                s.clickedSlide = undefined;
                s.clickedIndex = undefined;
                return;
            }
            if (s.params.slideToClickedSlide && s.clickedIndex !== undefined && s.clickedIndex !== s.activeIndex) {
                var slideToIndex = s.clickedIndex,
                    realIndex,
                    duplicatedSlides;
                if (s.params.loop) {
                    if (s.animating) return;
                    realIndex = $(s.clickedSlide).attr('data-swiper-slide-index');
                    if (s.params.centeredSlides) {
                        if ((slideToIndex < s.loopedSlides - s.params.slidesPerView/2) || (slideToIndex > s.slides.length - s.loopedSlides + s.params.slidesPerView/2)) {
                            s.fixLoop();
                            slideToIndex = s.wrapper.children('.' + s.params.slideClass + '[data-swiper-slide-index="' + realIndex + '"]:not(.' + s.params.slideDuplicateClass + ')').eq(0).index();
                            setTimeout(function () {
                                s.slideTo(slideToIndex);
                            }, 0);
                        }
                        else {
                            s.slideTo(slideToIndex);
                        }
                    }
                    else {
                        if (slideToIndex > s.slides.length - s.params.slidesPerView) {
                            s.fixLoop();
                            slideToIndex = s.wrapper.children('.' + s.params.slideClass + '[data-swiper-slide-index="' + realIndex + '"]:not(.' + s.params.slideDuplicateClass + ')').eq(0).index();
                            setTimeout(function () {
                                s.slideTo(slideToIndex);
                            }, 0);
                        }
                        else {
                            s.slideTo(slideToIndex);
                        }
                    }
                }
                else {
                    s.slideTo(slideToIndex);
                }
            }
        };
        
        var isTouched,
            isMoved,
            allowTouchCallbacks,
            touchStartTime,
            isScrolling,
            currentTranslate,
            startTranslate,
            allowThresholdMove,
            // Form elements to match
            formElements = 'input, select, textarea, button, video',
            // Last click time
            lastClickTime = Date.now(), clickTimeout,
            //Velocities
            velocities = [],
            allowMomentumBounce;
        
        // Animating Flag
        s.animating = false;
        
        // Touches information
        s.touches = {
            startX: 0,
            startY: 0,
            currentX: 0,
            currentY: 0,
            diff: 0
        };
        
        // Touch handlers
        var isTouchEvent, startMoving;
        s.onTouchStart = function (e) {
            if (e.originalEvent) e = e.originalEvent;
            isTouchEvent = e.type === 'touchstart';
            if (!isTouchEvent && 'which' in e && e.which === 3) return;
            if (s.params.noSwiping && findElementInEvent(e, '.' + s.params.noSwipingClass)) {
                s.allowClick = true;
                return;
            }
            if (s.params.swipeHandler) {
                if (!findElementInEvent(e, s.params.swipeHandler)) return;
            }
        
            var startX = s.touches.currentX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;
            var startY = s.touches.currentY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;
        
            // Do NOT start if iOS edge swipe is detected. Otherwise iOS app (UIWebView) cannot swipe-to-go-back anymore
            if(s.device.ios && s.params.iOSEdgeSwipeDetection && startX <= s.params.iOSEdgeSwipeThreshold) {
                return;
            }
        
            isTouched = true;
            isMoved = false;
            allowTouchCallbacks = true;
            isScrolling = undefined;
            startMoving = undefined;
            s.touches.startX = startX;
            s.touches.startY = startY;
            touchStartTime = Date.now();
            s.allowClick = true;
            s.updateContainerSize();
            s.swipeDirection = undefined;
            if (s.params.threshold > 0) allowThresholdMove = false;
            if (e.type !== 'touchstart') {
                var preventDefault = true;
                if ($(e.target).is(formElements)) preventDefault = false;
                if (document.activeElement && $(document.activeElement).is(formElements)) {
                    document.activeElement.blur();
                }
                if (preventDefault) {
                    e.preventDefault();
                }
            }
            s.emit('onTouchStart', s, e);
        };
        
        s.onTouchMove = function (e) {
            if (e.originalEvent) e = e.originalEvent;
            if (isTouchEvent && e.type === 'mousemove') return;
            if (e.preventedByNestedSwiper) {
                s.touches.startX = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX;
                s.touches.startY = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY;
                return;
            }
            if (s.params.onlyExternal) {
                // isMoved = true;
                s.allowClick = false;
                if (isTouched) {
                    s.touches.startX = s.touches.currentX = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX;
                    s.touches.startY = s.touches.currentY = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY;
                    touchStartTime = Date.now();
                }
                return;
            }
            if (isTouchEvent && s.params.touchReleaseOnEdges && !s.params.loop) {
                if (!s.isHorizontal()) {
                    // Vertical
                    if (
                        (s.touches.currentY < s.touches.startY && s.translate <= s.maxTranslate()) ||
                        (s.touches.currentY > s.touches.startY && s.translate >= s.minTranslate())
                        ) {
                        return;
                    }
                }
                else {
                    if (
                        (s.touches.currentX < s.touches.startX && s.translate <= s.maxTranslate()) ||
                        (s.touches.currentX > s.touches.startX && s.translate >= s.minTranslate())
                        ) {
                        return;
                    }
                }
            }
            if (isTouchEvent && document.activeElement) {
                if (e.target === document.activeElement && $(e.target).is(formElements)) {
                    isMoved = true;
                    s.allowClick = false;
                    return;
                }
            }
            if (allowTouchCallbacks) {
                s.emit('onTouchMove', s, e);
            }
            if (e.targetTouches && e.targetTouches.length > 1) return;
        
            s.touches.currentX = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX;
            s.touches.currentY = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY;
        
            if (typeof isScrolling === 'undefined') {
                var touchAngle;
                if (s.isHorizontal() && s.touches.currentY === s.touches.startY || !s.isHorizontal() && s.touches.currentX !== s.touches.startX) {
                    isScrolling = false;
                }
                else {
                    touchAngle = Math.atan2(Math.abs(s.touches.currentY - s.touches.startY), Math.abs(s.touches.currentX - s.touches.startX)) * 180 / Math.PI;
                    isScrolling = s.isHorizontal() ? touchAngle > s.params.touchAngle : (90 - touchAngle > s.params.touchAngle);
                }
            }
            if (isScrolling) {
                s.emit('onTouchMoveOpposite', s, e);
            }
            if (typeof startMoving === 'undefined' && s.browser.ieTouch) {
                if (s.touches.currentX !== s.touches.startX || s.touches.currentY !== s.touches.startY) {
                    startMoving = true;
                }
            }
            if (!isTouched) return;
            if (isScrolling)  {
                isTouched = false;
                return;
            }
            if (!startMoving && s.browser.ieTouch) {
                return;
            }
            s.allowClick = false;
            s.emit('onSliderMove', s, e);
            e.preventDefault();
            if (s.params.touchMoveStopPropagation && !s.params.nested) {
                e.stopPropagation();
            }
        
            if (!isMoved) {
                if (params.loop) {
                    s.fixLoop();
                }
                startTranslate = s.getWrapperTranslate();
                s.setWrapperTransition(0);
                if (s.animating) {
                    s.wrapper.trigger('webkitTransitionEnd transitionend oTransitionEnd MSTransitionEnd msTransitionEnd');
                }
                if (s.params.autoplay && s.autoplaying) {
                    if (s.params.autoplayDisableOnInteraction) {
                        s.stopAutoplay();
                    }
                    else {
                        s.pauseAutoplay();
                    }
                }
                allowMomentumBounce = false;
                //Grab Cursor
                if (s.params.grabCursor && (s.params.allowSwipeToNext === true || s.params.allowSwipeToPrev === true)) {
                    s.setGrabCursor(true);
                }
            }
            isMoved = true;
        
            var diff = s.touches.diff = s.isHorizontal() ? s.touches.currentX - s.touches.startX : s.touches.currentY - s.touches.startY;
        
            diff = diff * s.params.touchRatio;
            if (s.rtl) diff = -diff;
        
            s.swipeDirection = diff > 0 ? 'prev' : 'next';
            currentTranslate = diff + startTranslate;
        
            var disableParentSwiper = true;
            if ((diff > 0 && currentTranslate > s.minTranslate())) {
                disableParentSwiper = false;
                if (s.params.resistance) currentTranslate = s.minTranslate() - 1 + Math.pow(-s.minTranslate() + startTranslate + diff, s.params.resistanceRatio);
            }
            else if (diff < 0 && currentTranslate < s.maxTranslate()) {
                disableParentSwiper = false;
                if (s.params.resistance) currentTranslate = s.maxTranslate() + 1 - Math.pow(s.maxTranslate() - startTranslate - diff, s.params.resistanceRatio);
            }
        
            if (disableParentSwiper) {
                e.preventedByNestedSwiper = true;
            }
        
            // Directions locks
            if (!s.params.allowSwipeToNext && s.swipeDirection === 'next' && currentTranslate < startTranslate) {
                currentTranslate = startTranslate;
            }
            if (!s.params.allowSwipeToPrev && s.swipeDirection === 'prev' && currentTranslate > startTranslate) {
                currentTranslate = startTranslate;
            }
        
        
            // Threshold
            if (s.params.threshold > 0) {
                if (Math.abs(diff) > s.params.threshold || allowThresholdMove) {
                    if (!allowThresholdMove) {
                        allowThresholdMove = true;
                        s.touches.startX = s.touches.currentX;
                        s.touches.startY = s.touches.currentY;
                        currentTranslate = startTranslate;
                        s.touches.diff = s.isHorizontal() ? s.touches.currentX - s.touches.startX : s.touches.currentY - s.touches.startY;
                        return;
                    }
                }
                else {
                    currentTranslate = startTranslate;
                    return;
                }
            }
        
            if (!s.params.followFinger) return;
        
            // Update active index in free mode
            if (s.params.freeMode || s.params.watchSlidesProgress) {
                s.updateActiveIndex();
            }
            if (s.params.freeMode) {
                //Velocity
                if (velocities.length === 0) {
                    velocities.push({
                        position: s.touches[s.isHorizontal() ? 'startX' : 'startY'],
                        time: touchStartTime
                    });
                }
                velocities.push({
                    position: s.touches[s.isHorizontal() ? 'currentX' : 'currentY'],
                    time: (new window.Date()).getTime()
                });
            }
            // Update progress
            s.updateProgress(currentTranslate);
            // Update translate
            s.setWrapperTranslate(currentTranslate);
        };
        s.onTouchEnd = function (e) {
            if (e.originalEvent) e = e.originalEvent;
            if (allowTouchCallbacks) {
                s.emit('onTouchEnd', s, e);
            }
            allowTouchCallbacks = false;
            if (!isTouched) return;
            //Return Grab Cursor
            if (s.params.grabCursor && isMoved && isTouched  && (s.params.allowSwipeToNext === true || s.params.allowSwipeToPrev === true)) {
                s.setGrabCursor(false);
            }
        
            // Time diff
            var touchEndTime = Date.now();
            var timeDiff = touchEndTime - touchStartTime;
        
            // Tap, doubleTap, Click
            if (s.allowClick) {
                s.updateClickedSlide(e);
                s.emit('onTap', s, e);
                if (timeDiff < 300 && (touchEndTime - lastClickTime) > 300) {
                    if (clickTimeout) clearTimeout(clickTimeout);
                    clickTimeout = setTimeout(function () {
                        if (!s) return;
                        if (s.params.paginationHide && s.paginationContainer.length > 0 && !$(e.target).hasClass(s.params.bulletClass)) {
                            s.paginationContainer.toggleClass(s.params.paginationHiddenClass);
                        }
                        s.emit('onClick', s, e);
                    }, 300);
        
                }
                if (timeDiff < 300 && (touchEndTime - lastClickTime) < 300) {
                    if (clickTimeout) clearTimeout(clickTimeout);
                    s.emit('onDoubleTap', s, e);
                }
            }
        
            lastClickTime = Date.now();
            setTimeout(function () {
                if (s) s.allowClick = true;
            }, 0);
        
            if (!isTouched || !isMoved || !s.swipeDirection || s.touches.diff === 0 || currentTranslate === startTranslate) {
                isTouched = isMoved = false;
                return;
            }
            isTouched = isMoved = false;
        
            var currentPos;
            if (s.params.followFinger) {
                currentPos = s.rtl ? s.translate : -s.translate;
            }
            else {
                currentPos = -currentTranslate;
            }
            if (s.params.freeMode) {
                if (currentPos < -s.minTranslate()) {
                    s.slideTo(s.activeIndex);
                    return;
                }
                else if (currentPos > -s.maxTranslate()) {
                    if (s.slides.length < s.snapGrid.length) {
                        s.slideTo(s.snapGrid.length - 1);
                    }
                    else {
                        s.slideTo(s.slides.length - 1);
                    }
                    return;
                }
        
                if (s.params.freeModeMomentum) {
                    if (velocities.length > 1) {
                        var lastMoveEvent = velocities.pop(), velocityEvent = velocities.pop();
        
                        var distance = lastMoveEvent.position - velocityEvent.position;
                        var time = lastMoveEvent.time - velocityEvent.time;
                        s.velocity = distance / time;
                        s.velocity = s.velocity / 2;
                        if (Math.abs(s.velocity) < s.params.freeModeMinimumVelocity) {
                            s.velocity = 0;
                        }
                        // this implies that the user stopped moving a finger then released.
                        // There would be no events with distance zero, so the last event is stale.
                        if (time > 150 || (new window.Date().getTime() - lastMoveEvent.time) > 300) {
                            s.velocity = 0;
                        }
                    } else {
                        s.velocity = 0;
                    }
                    s.velocity = s.velocity * s.params.freeModeMomentumVelocityRatio;
        
                    velocities.length = 0;
                    var momentumDuration = 1000 * s.params.freeModeMomentumRatio;
                    var momentumDistance = s.velocity * momentumDuration;
        
                    var newPosition = s.translate + momentumDistance;
                    if (s.rtl) newPosition = - newPosition;
                    var doBounce = false;
                    var afterBouncePosition;
                    var bounceAmount = Math.abs(s.velocity) * 20 * s.params.freeModeMomentumBounceRatio;
                    if (newPosition < s.maxTranslate()) {
                        if (s.params.freeModeMomentumBounce) {
                            if (newPosition + s.maxTranslate() < -bounceAmount) {
                                newPosition = s.maxTranslate() - bounceAmount;
                            }
                            afterBouncePosition = s.maxTranslate();
                            doBounce = true;
                            allowMomentumBounce = true;
                        }
                        else {
                            newPosition = s.maxTranslate();
                        }
                    }
                    else if (newPosition > s.minTranslate()) {
                        if (s.params.freeModeMomentumBounce) {
                            if (newPosition - s.minTranslate() > bounceAmount) {
                                newPosition = s.minTranslate() + bounceAmount;
                            }
                            afterBouncePosition = s.minTranslate();
                            doBounce = true;
                            allowMomentumBounce = true;
                        }
                        else {
                            newPosition = s.minTranslate();
                        }
                    }
                    else if (s.params.freeModeSticky) {
                        var j = 0,
                            nextSlide;
                        for (j = 0; j < s.snapGrid.length; j += 1) {
                            if (s.snapGrid[j] > -newPosition) {
                                nextSlide = j;
                                break;
                            }
        
                        }
                        if (Math.abs(s.snapGrid[nextSlide] - newPosition) < Math.abs(s.snapGrid[nextSlide - 1] - newPosition) || s.swipeDirection === 'next') {
                            newPosition = s.snapGrid[nextSlide];
                        } else {
                            newPosition = s.snapGrid[nextSlide - 1];
                        }
                        if (!s.rtl) newPosition = - newPosition;
                    }
                    //Fix duration
                    if (s.velocity !== 0) {
                        if (s.rtl) {
                            momentumDuration = Math.abs((-newPosition - s.translate) / s.velocity);
                        }
                        else {
                            momentumDuration = Math.abs((newPosition - s.translate) / s.velocity);
                        }
                    }
                    else if (s.params.freeModeSticky) {
                        s.slideReset();
                        return;
                    }
        
                    if (s.params.freeModeMomentumBounce && doBounce) {
                        s.updateProgress(afterBouncePosition);
                        s.setWrapperTransition(momentumDuration);
                        s.setWrapperTranslate(newPosition);
                        s.onTransitionStart();
                        s.animating = true;
                        s.wrapper.transitionEnd(function () {
                            if (!s || !allowMomentumBounce) return;
                            s.emit('onMomentumBounce', s);
        
                            s.setWrapperTransition(s.params.speed);
                            s.setWrapperTranslate(afterBouncePosition);
                            s.wrapper.transitionEnd(function () {
                                if (!s) return;
                                s.onTransitionEnd();
                            });
                        });
                    } else if (s.velocity) {
                        s.updateProgress(newPosition);
                        s.setWrapperTransition(momentumDuration);
                        s.setWrapperTranslate(newPosition);
                        s.onTransitionStart();
                        if (!s.animating) {
                            s.animating = true;
                            s.wrapper.transitionEnd(function () {
                                if (!s) return;
                                s.onTransitionEnd();
                            });
                        }
        
                    } else {
                        s.updateProgress(newPosition);
                    }
        
                    s.updateActiveIndex();
                }
                if (!s.params.freeModeMomentum || timeDiff >= s.params.longSwipesMs) {
                    s.updateProgress();
                    s.updateActiveIndex();
                }
                return;
            }
        
            // Find current slide
            var i, stopIndex = 0, groupSize = s.slidesSizesGrid[0];
            for (i = 0; i < s.slidesGrid.length; i += s.params.slidesPerGroup) {
                if (typeof s.slidesGrid[i + s.params.slidesPerGroup] !== 'undefined') {
                    if (currentPos >= s.slidesGrid[i] && currentPos < s.slidesGrid[i + s.params.slidesPerGroup]) {
                        stopIndex = i;
                        groupSize = s.slidesGrid[i + s.params.slidesPerGroup] - s.slidesGrid[i];
                    }
                }
                else {
                    if (currentPos >= s.slidesGrid[i]) {
                        stopIndex = i;
                        groupSize = s.slidesGrid[s.slidesGrid.length - 1] - s.slidesGrid[s.slidesGrid.length - 2];
                    }
                }
            }
        
            // Find current slide size
            var ratio = (currentPos - s.slidesGrid[stopIndex]) / groupSize;
        
            if (timeDiff > s.params.longSwipesMs) {
                // Long touches
                if (!s.params.longSwipes) {
                    s.slideTo(s.activeIndex);
                    return;
                }
                if (s.swipeDirection === 'next') {
                    if (ratio >= s.params.longSwipesRatio) s.slideTo(stopIndex + s.params.slidesPerGroup);
                    else s.slideTo(stopIndex);
        
                }
                if (s.swipeDirection === 'prev') {
                    if (ratio > (1 - s.params.longSwipesRatio)) s.slideTo(stopIndex + s.params.slidesPerGroup);
                    else s.slideTo(stopIndex);
                }
            }
            else {
                // Short swipes
                if (!s.params.shortSwipes) {
                    s.slideTo(s.activeIndex);
                    return;
                }
                if (s.swipeDirection === 'next') {
                    s.slideTo(stopIndex + s.params.slidesPerGroup);
        
                }
                if (s.swipeDirection === 'prev') {
                    s.slideTo(stopIndex);
                }
            }
        };
        /*=========================
          Transitions
          ===========================*/
        s._slideTo = function (slideIndex, speed) {
            return s.slideTo(slideIndex, speed, true, true);
        };
        s.slideTo = function (slideIndex, speed, runCallbacks, internal) {
            if (typeof runCallbacks === 'undefined') runCallbacks = true;
            if (typeof slideIndex === 'undefined') slideIndex = 0;
            if (slideIndex < 0) slideIndex = 0;
            s.snapIndex = Math.floor(slideIndex / s.params.slidesPerGroup);
            if (s.snapIndex >= s.snapGrid.length) s.snapIndex = s.snapGrid.length - 1;
        
            var translate = - s.snapGrid[s.snapIndex];
            // Stop autoplay
            if (s.params.autoplay && s.autoplaying) {
                if (internal || !s.params.autoplayDisableOnInteraction) {
                    s.pauseAutoplay(speed);
                }
                else {
                    s.stopAutoplay();
                }
            }
            // Update progress
            s.updateProgress(translate);
        
            // Normalize slideIndex
            if(s.params.normalizeSlideIndex){
                for (var i = 0; i < s.slidesGrid.length; i++) {
                    if (- Math.floor(translate * 100) >= Math.floor(s.slidesGrid[i] * 100)) {
                        slideIndex = i;
                    }
                }
            }
        
            // Directions locks
            if (!s.params.allowSwipeToNext && translate < s.translate && translate < s.minTranslate()) {
                return false;
            }
            if (!s.params.allowSwipeToPrev && translate > s.translate && translate > s.maxTranslate()) {
                if ((s.activeIndex || 0) !== slideIndex ) return false;
            }
        
            // Update Index
            if (typeof speed === 'undefined') speed = s.params.speed;
            s.previousIndex = s.activeIndex || 0;
            s.activeIndex = slideIndex;
            s.updateRealIndex();
            if ((s.rtl && -translate === s.translate) || (!s.rtl && translate === s.translate)) {
                // Update Height
                if (s.params.autoHeight) {
                    s.updateAutoHeight();
                }
                s.updateClasses();
                if (s.params.effect !== 'slide') {
                    s.setWrapperTranslate(translate);
                }
                return false;
            }
            s.updateClasses();
            s.onTransitionStart(runCallbacks);
        
            if (speed === 0 || s.browser.lteIE9) {
                s.setWrapperTranslate(translate);
                s.setWrapperTransition(0);
                s.onTransitionEnd(runCallbacks);
            }
            else {
                s.setWrapperTranslate(translate);
                s.setWrapperTransition(speed);
                if (!s.animating) {
                    s.animating = true;
                    s.wrapper.transitionEnd(function () {
                        if (!s) return;
                        s.onTransitionEnd(runCallbacks);
                    });
                }
        
            }
        
            return true;
        };
        
        s.onTransitionStart = function (runCallbacks) {
            if (typeof runCallbacks === 'undefined') runCallbacks = true;
            if (s.params.autoHeight) {
                s.updateAutoHeight();
            }
            if (s.lazy) s.lazy.onTransitionStart();
            if (runCallbacks) {
                s.emit('onTransitionStart', s);
                if (s.activeIndex !== s.previousIndex) {
                    s.emit('onSlideChangeStart', s);
                    if (s.activeIndex > s.previousIndex) {
                        s.emit('onSlideNextStart', s);
                    }
                    else {
                        s.emit('onSlidePrevStart', s);
                    }
                }
        
            }
        };
        s.onTransitionEnd = function (runCallbacks) {
            s.animating = false;
            s.setWrapperTransition(0);
            if (typeof runCallbacks === 'undefined') runCallbacks = true;
            if (s.lazy) s.lazy.onTransitionEnd();
            if (runCallbacks) {
                s.emit('onTransitionEnd', s);
                if (s.activeIndex !== s.previousIndex) {
                    s.emit('onSlideChangeEnd', s);
                    if (s.activeIndex > s.previousIndex) {
                        s.emit('onSlideNextEnd', s);
                    }
                    else {
                        s.emit('onSlidePrevEnd', s);
                    }
                }
            }
            if (s.params.history && s.history) {
                s.history.setHistory(s.params.history, s.activeIndex);
            }
            if (s.params.hashnav && s.hashnav) {
                s.hashnav.setHash();
            }
        
        };
        s.slideNext = function (runCallbacks, speed, internal) {
            if (s.params.loop) {
                if (s.animating) return false;
                s.fixLoop();
                var clientLeft = s.container[0].clientLeft;
                return s.slideTo(s.activeIndex + s.params.slidesPerGroup, speed, runCallbacks, internal);
            }
            else return s.slideTo(s.activeIndex + s.params.slidesPerGroup, speed, runCallbacks, internal);
        };
        s._slideNext = function (speed) {
            return s.slideNext(true, speed, true);
        };
        s.slidePrev = function (runCallbacks, speed, internal) {
            if (s.params.loop) {
                if (s.animating) return false;
                s.fixLoop();
                var clientLeft = s.container[0].clientLeft;
                return s.slideTo(s.activeIndex - 1, speed, runCallbacks, internal);
            }
            else return s.slideTo(s.activeIndex - 1, speed, runCallbacks, internal);
        };
        s._slidePrev = function (speed) {
            return s.slidePrev(true, speed, true);
        };
        s.slideReset = function (runCallbacks, speed, internal) {
            return s.slideTo(s.activeIndex, speed, runCallbacks);
        };
        
        s.disableTouchControl = function () {
            s.params.onlyExternal = true;
            return true;
        };
        s.enableTouchControl = function () {
            s.params.onlyExternal = false;
            return true;
        };
        
        /*=========================
          Translate/transition helpers
          ===========================*/
        s.setWrapperTransition = function (duration, byController) {
            s.wrapper.transition(duration);
            if (s.params.effect !== 'slide' && s.effects[s.params.effect]) {
                s.effects[s.params.effect].setTransition(duration);
            }
            if (s.params.parallax && s.parallax) {
                s.parallax.setTransition(duration);
            }
            if (s.params.scrollbar && s.scrollbar) {
                s.scrollbar.setTransition(duration);
            }
            if (s.params.control && s.controller) {
                s.controller.setTransition(duration, byController);
            }
            s.emit('onSetTransition', s, duration);
        };
        s.setWrapperTranslate = function (translate, updateActiveIndex, byController) {
            var x = 0, y = 0, z = 0;
            if (s.isHorizontal()) {
                x = s.rtl ? -translate : translate;
            }
            else {
                y = translate;
            }
        
            if (s.params.roundLengths) {
                x = round(x);
                y = round(y);
            }
        
            if (!s.params.virtualTranslate) {
                if (s.support.transforms3d) s.wrapper.transform('translate3d(' + x + 'px, ' + y + 'px, ' + z + 'px)');
                else s.wrapper.transform('translate(' + x + 'px, ' + y + 'px)');
            }
        
            s.translate = s.isHorizontal() ? x : y;
        
            // Check if we need to update progress
            var progress;
            var translatesDiff = s.maxTranslate() - s.minTranslate();
            if (translatesDiff === 0) {
                progress = 0;
            }
            else {
                progress = (translate - s.minTranslate()) / (translatesDiff);
            }
            if (progress !== s.progress) {
                s.updateProgress(translate);
            }
        
            if (updateActiveIndex) s.updateActiveIndex();
            if (s.params.effect !== 'slide' && s.effects[s.params.effect]) {
                s.effects[s.params.effect].setTranslate(s.translate);
            }
            if (s.params.parallax && s.parallax) {
                s.parallax.setTranslate(s.translate);
            }
            if (s.params.scrollbar && s.scrollbar) {
                s.scrollbar.setTranslate(s.translate);
            }
            if (s.params.control && s.controller) {
                s.controller.setTranslate(s.translate, byController);
            }
            s.emit('onSetTranslate', s, s.translate);
        };
        
        s.getTranslate = function (el, axis) {
            var matrix, curTransform, curStyle, transformMatrix;
        
            // automatic axis detection
            if (typeof axis === 'undefined') {
                axis = 'x';
            }
        
            if (s.params.virtualTranslate) {
                return s.rtl ? -s.translate : s.translate;
            }
        
            curStyle = window.getComputedStyle(el, null);
            if (window.WebKitCSSMatrix) {
                curTransform = curStyle.transform || curStyle.webkitTransform;
                if (curTransform.split(',').length > 6) {
                    curTransform = curTransform.split(', ').map(function(a){
                        return a.replace(',','.');
                    }).join(', ');
                }
                // Some old versions of Webkit choke when 'none' is passed; pass
                // empty string instead in this case
                transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);
            }
            else {
                transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform  || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');
                matrix = transformMatrix.toString().split(',');
            }
        
            if (axis === 'x') {
                //Latest Chrome and webkits Fix
                if (window.WebKitCSSMatrix)
                    curTransform = transformMatrix.m41;
                //Crazy IE10 Matrix
                else if (matrix.length === 16)
                    curTransform = parseFloat(matrix[12]);
                //Normal Browsers
                else
                    curTransform = parseFloat(matrix[4]);
            }
            if (axis === 'y') {
                //Latest Chrome and webkits Fix
                if (window.WebKitCSSMatrix)
                    curTransform = transformMatrix.m42;
                //Crazy IE10 Matrix
                else if (matrix.length === 16)
                    curTransform = parseFloat(matrix[13]);
                //Normal Browsers
                else
                    curTransform = parseFloat(matrix[5]);
            }
            if (s.rtl && curTransform) curTransform = -curTransform;
            return curTransform || 0;
        };
        s.getWrapperTranslate = function (axis) {
            if (typeof axis === 'undefined') {
                axis = s.isHorizontal() ? 'x' : 'y';
            }
            return s.getTranslate(s.wrapper[0], axis);
        };
        
        /*=========================
          Observer
          ===========================*/
        s.observers = [];
        function initObserver(target, options) {
            options = options || {};
            // create an observer instance
            var ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;
            var observer = new ObserverFunc(function (mutations) {
                mutations.forEach(function (mutation) {
                    s.onResize(true);
                    s.emit('onObserverUpdate', s, mutation);
                });
            });
        
            observer.observe(target, {
                attributes: typeof options.attributes === 'undefined' ? true : options.attributes,
                childList: typeof options.childList === 'undefined' ? true : options.childList,
                characterData: typeof options.characterData === 'undefined' ? true : options.characterData
            });
        
            s.observers.push(observer);
        }
        s.initObservers = function () {
            if (s.params.observeParents) {
                var containerParents = s.container.parents();
                for (var i = 0; i < containerParents.length; i++) {
                    initObserver(containerParents[i]);
                }
            }
        
            // Observe container
            initObserver(s.container[0], {childList: false});
        
            // Observe wrapper
            initObserver(s.wrapper[0], {attributes: false});
        };
        s.disconnectObservers = function () {
            for (var i = 0; i < s.observers.length; i++) {
                s.observers[i].disconnect();
            }
            s.observers = [];
        };
        /*=========================
          Loop
          ===========================*/
        // Create looped slides
        s.createLoop = function () {
            // Remove duplicated slides
            s.wrapper.children('.' + s.params.slideClass + '.' + s.params.slideDuplicateClass).remove();
        
            var slides = s.wrapper.children('.' + s.params.slideClass);
        
            if(s.params.slidesPerView === 'auto' && !s.params.loopedSlides) s.params.loopedSlides = slides.length;
        
            s.loopedSlides = parseInt(s.params.loopedSlides || s.params.slidesPerView, 10);
            s.loopedSlides = s.loopedSlides + s.params.loopAdditionalSlides;
            if (s.loopedSlides > slides.length) {
                s.loopedSlides = slides.length;
            }
        
            var prependSlides = [], appendSlides = [], i;
            slides.each(function (index, el) {
                var slide = $(this);
                if (index < s.loopedSlides) appendSlides.push(el);
                if (index < slides.length && index >= slides.length - s.loopedSlides) prependSlides.push(el);
                slide.attr('data-swiper-slide-index', index);
            });
            for (i = 0; i < appendSlides.length; i++) {
                s.wrapper.append($(appendSlides[i].cloneNode(true)).addClass(s.params.slideDuplicateClass));
            }
            for (i = prependSlides.length - 1; i >= 0; i--) {
                s.wrapper.prepend($(prependSlides[i].cloneNode(true)).addClass(s.params.slideDuplicateClass));
            }
        };
        s.destroyLoop = function () {
            s.wrapper.children('.' + s.params.slideClass + '.' + s.params.slideDuplicateClass).remove();
            s.slides.removeAttr('data-swiper-slide-index');
        };
        s.reLoop = function (updatePosition) {
            var oldIndex = s.activeIndex - s.loopedSlides;
            s.destroyLoop();
            s.createLoop();
            s.updateSlidesSize();
            if (updatePosition) {
                s.slideTo(oldIndex + s.loopedSlides, 0, false);
            }
        
        };
        s.fixLoop = function () {
            var newIndex;
            //Fix For Negative Oversliding
            if (s.activeIndex < s.loopedSlides) {
                newIndex = s.slides.length - s.loopedSlides * 3 + s.activeIndex;
                newIndex = newIndex + s.loopedSlides;
                s.slideTo(newIndex, 0, false, true);
            }
            //Fix For Positive Oversliding
            else if ((s.params.slidesPerView === 'auto' && s.activeIndex >= s.loopedSlides * 2) || (s.activeIndex > s.slides.length - s.params.slidesPerView * 2)) {
                newIndex = -s.slides.length + s.activeIndex + s.loopedSlides;
                newIndex = newIndex + s.loopedSlides;
                s.slideTo(newIndex, 0, false, true);
            }
        };
        /*=========================
          Append/Prepend/Remove Slides
          ===========================*/
        s.appendSlide = function (slides) {
            if (s.params.loop) {
                s.destroyLoop();
            }
            if (typeof slides === 'object' && slides.length) {
                for (var i = 0; i < slides.length; i++) {
                    if (slides[i]) s.wrapper.append(slides[i]);
                }
            }
            else {
                s.wrapper.append(slides);
            }
            if (s.params.loop) {
                s.createLoop();
            }
            if (!(s.params.observer && s.support.observer)) {
                s.update(true);
            }
        };
        s.prependSlide = function (slides) {
            if (s.params.loop) {
                s.destroyLoop();
            }
            var newActiveIndex = s.activeIndex + 1;
            if (typeof slides === 'object' && slides.length) {
                for (var i = 0; i < slides.length; i++) {
                    if (slides[i]) s.wrapper.prepend(slides[i]);
                }
                newActiveIndex = s.activeIndex + slides.length;
            }
            else {
                s.wrapper.prepend(slides);
            }
            if (s.params.loop) {
                s.createLoop();
            }
            if (!(s.params.observer && s.support.observer)) {
                s.update(true);
            }
            s.slideTo(newActiveIndex, 0, false);
        };
        s.removeSlide = function (slidesIndexes) {
            if (s.params.loop) {
                s.destroyLoop();
                s.slides = s.wrapper.children('.' + s.params.slideClass);
            }
            var newActiveIndex = s.activeIndex,
                indexToRemove;
            if (typeof slidesIndexes === 'object' && slidesIndexes.length) {
                for (var i = 0; i < slidesIndexes.length; i++) {
                    indexToRemove = slidesIndexes[i];
                    if (s.slides[indexToRemove]) s.slides.eq(indexToRemove).remove();
                    if (indexToRemove < newActiveIndex) newActiveIndex--;
                }
                newActiveIndex = Math.max(newActiveIndex, 0);
            }
            else {
                indexToRemove = slidesIndexes;
                if (s.slides[indexToRemove]) s.slides.eq(indexToRemove).remove();
                if (indexToRemove < newActiveIndex) newActiveIndex--;
                newActiveIndex = Math.max(newActiveIndex, 0);
            }
        
            if (s.params.loop) {
                s.createLoop();
            }
        
            if (!(s.params.observer && s.support.observer)) {
                s.update(true);
            }
            if (s.params.loop) {
                s.slideTo(newActiveIndex + s.loopedSlides, 0, false);
            }
            else {
                s.slideTo(newActiveIndex, 0, false);
            }
        
        };
        s.removeAllSlides = function () {
            var slidesIndexes = [];
            for (var i = 0; i < s.slides.length; i++) {
                slidesIndexes.push(i);
            }
            s.removeSlide(slidesIndexes);
        };
        

        /*=========================
          Effects
          ===========================*/
        s.effects = {
            fade: {
                setTranslate: function () {
                    for (var i = 0; i < s.slides.length; i++) {
                        var slide = s.slides.eq(i);
                        var offset = slide[0].swiperSlideOffset;
                        var tx = -offset;
                        if (!s.params.virtualTranslate) tx = tx - s.translate;
                        var ty = 0;
                        if (!s.isHorizontal()) {
                            ty = tx;
                            tx = 0;
                        }
                        var slideOpacity = s.params.fade.crossFade ?
                                Math.max(1 - Math.abs(slide[0].progress), 0) :
                                1 + Math.min(Math.max(slide[0].progress, -1), 0);
                        slide
                            .css({
                                opacity: slideOpacity
                            })
                            .transform('translate3d(' + tx + 'px, ' + ty + 'px, 0px)');
        
                    }
        
                },
                setTransition: function (duration) {
                    s.slides.transition(duration);
                    if (s.params.virtualTranslate && duration !== 0) {
                        var eventTriggered = false;
                        s.slides.transitionEnd(function () {
                            if (eventTriggered) return;
                            if (!s) return;
                            eventTriggered = true;
                            s.animating = false;
                            var triggerEvents = ['webkitTransitionEnd', 'transitionend', 'oTransitionEnd', 'MSTransitionEnd', 'msTransitionEnd'];
                            for (var i = 0; i < triggerEvents.length; i++) {
                                s.wrapper.trigger(triggerEvents[i]);
                            }
                        });
                    }
                }
            },
            flip: {
                setTranslate: function () {
                    for (var i = 0; i < s.slides.length; i++) {
                        var slide = s.slides.eq(i);
                        var progress = slide[0].progress;
                        if (s.params.flip.limitRotation) {
                            progress = Math.max(Math.min(slide[0].progress, 1), -1);
                        }
                        var offset = slide[0].swiperSlideOffset;
                        var rotate = -180 * progress,
                            rotateY = rotate,
                            rotateX = 0,
                            tx = -offset,
                            ty = 0;
                        if (!s.isHorizontal()) {
                            ty = tx;
                            tx = 0;
                            rotateX = -rotateY;
                            rotateY = 0;
                        }
                        else if (s.rtl) {
                            rotateY = -rotateY;
                        }
        
                        slide[0].style.zIndex = -Math.abs(Math.round(progress)) + s.slides.length;
        
                        if (s.params.flip.slideShadows) {
                            //Set shadows
                            var shadowBefore = s.isHorizontal() ? slide.find('.swiper-slide-shadow-left') : slide.find('.swiper-slide-shadow-top');
                            var shadowAfter = s.isHorizontal() ? slide.find('.swiper-slide-shadow-right') : slide.find('.swiper-slide-shadow-bottom');
                            if (shadowBefore.length === 0) {
                                shadowBefore = $('<div class="swiper-slide-shadow-' + (s.isHorizontal() ? 'left' : 'top') + '"></div>');
                                slide.append(shadowBefore);
                            }
                            if (shadowAfter.length === 0) {
                                shadowAfter = $('<div class="swiper-slide-shadow-' + (s.isHorizontal() ? 'right' : 'bottom') + '"></div>');
                                slide.append(shadowAfter);
                            }
                            if (shadowBefore.length) shadowBefore[0].style.opacity = Math.max(-progress, 0);
                            if (shadowAfter.length) shadowAfter[0].style.opacity = Math.max(progress, 0);
                        }
        
                        slide
                            .transform('translate3d(' + tx + 'px, ' + ty + 'px, 0px) rotateX(' + rotateX + 'deg) rotateY(' + rotateY + 'deg)');
                    }
                },
                setTransition: function (duration) {
                    s.slides.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration);
                    if (s.params.virtualTranslate && duration !== 0) {
                        var eventTriggered = false;
                        s.slides.eq(s.activeIndex).transitionEnd(function () {
                            if (eventTriggered) return;
                            if (!s) return;
                            if (!$(this).hasClass(s.params.slideActiveClass)) return;
                            eventTriggered = true;
                            s.animating = false;
                            var triggerEvents = ['webkitTransitionEnd', 'transitionend', 'oTransitionEnd', 'MSTransitionEnd', 'msTransitionEnd'];
                            for (var i = 0; i < triggerEvents.length; i++) {
                                s.wrapper.trigger(triggerEvents[i]);
                            }
                        });
                    }
                }
            },
            cube: {
                setTranslate: function () {
                    var wrapperRotate = 0, cubeShadow;
                    if (s.params.cube.shadow) {
                        if (s.isHorizontal()) {
                            cubeShadow = s.wrapper.find('.swiper-cube-shadow');
                            if (cubeShadow.length === 0) {
                                cubeShadow = $('<div class="swiper-cube-shadow"></div>');
                                s.wrapper.append(cubeShadow);
                            }
                            cubeShadow.css({height: s.width + 'px'});
                        }
                        else {
                            cubeShadow = s.container.find('.swiper-cube-shadow');
                            if (cubeShadow.length === 0) {
                                cubeShadow = $('<div class="swiper-cube-shadow"></div>');
                                s.container.append(cubeShadow);
                            }
                        }
                    }
                    for (var i = 0; i < s.slides.length; i++) {
                        var slide = s.slides.eq(i);
                        var slideAngle = i * 90;
                        var round = Math.floor(slideAngle / 360);
                        if (s.rtl) {
                            slideAngle = -slideAngle;
                            round = Math.floor(-slideAngle / 360);
                        }
                        var progress = Math.max(Math.min(slide[0].progress, 1), -1);
                        var tx = 0, ty = 0, tz = 0;
                        if (i % 4 === 0) {
                            tx = - round * 4 * s.size;
                            tz = 0;
                        }
                        else if ((i - 1) % 4 === 0) {
                            tx = 0;
                            tz = - round * 4 * s.size;
                        }
                        else if ((i - 2) % 4 === 0) {
                            tx = s.size + round * 4 * s.size;
                            tz = s.size;
                        }
                        else if ((i - 3) % 4 === 0) {
                            tx = - s.size;
                            tz = 3 * s.size + s.size * 4 * round;
                        }
                        if (s.rtl) {
                            tx = -tx;
                        }
        
                        if (!s.isHorizontal()) {
                            ty = tx;
                            tx = 0;
                        }
        
                        var transform = 'rotateX(' + (s.isHorizontal() ? 0 : -slideAngle) + 'deg) rotateY(' + (s.isHorizontal() ? slideAngle : 0) + 'deg) translate3d(' + tx + 'px, ' + ty + 'px, ' + tz + 'px)';
                        if (progress <= 1 && progress > -1) {
                            wrapperRotate = i * 90 + progress * 90;
                            if (s.rtl) wrapperRotate = -i * 90 - progress * 90;
                        }
                        slide.transform(transform);
                        if (s.params.cube.slideShadows) {
                            //Set shadows
                            var shadowBefore = s.isHorizontal() ? slide.find('.swiper-slide-shadow-left') : slide.find('.swiper-slide-shadow-top');
                            var shadowAfter = s.isHorizontal() ? slide.find('.swiper-slide-shadow-right') : slide.find('.swiper-slide-shadow-bottom');
                            if (shadowBefore.length === 0) {
                                shadowBefore = $('<div class="swiper-slide-shadow-' + (s.isHorizontal() ? 'left' : 'top') + '"></div>');
                                slide.append(shadowBefore);
                            }
                            if (shadowAfter.length === 0) {
                                shadowAfter = $('<div class="swiper-slide-shadow-' + (s.isHorizontal() ? 'right' : 'bottom') + '"></div>');
                                slide.append(shadowAfter);
                            }
                            if (shadowBefore.length) shadowBefore[0].style.opacity = Math.max(-progress, 0);
                            if (shadowAfter.length) shadowAfter[0].style.opacity = Math.max(progress, 0);
                        }
                    }
                    s.wrapper.css({
                        '-webkit-transform-origin': '50% 50% -' + (s.size / 2) + 'px',
                        '-moz-transform-origin': '50% 50% -' + (s.size / 2) + 'px',
                        '-ms-transform-origin': '50% 50% -' + (s.size / 2) + 'px',
                        'transform-origin': '50% 50% -' + (s.size / 2) + 'px'
                    });
        
                    if (s.params.cube.shadow) {
                        if (s.isHorizontal()) {
                            cubeShadow.transform('translate3d(0px, ' + (s.width / 2 + s.params.cube.shadowOffset) + 'px, ' + (-s.width / 2) + 'px) rotateX(90deg) rotateZ(0deg) scale(' + (s.params.cube.shadowScale) + ')');
                        }
                        else {
                            var shadowAngle = Math.abs(wrapperRotate) - Math.floor(Math.abs(wrapperRotate) / 90) * 90;
                            var multiplier = 1.5 - (Math.sin(shadowAngle * 2 * Math.PI / 360) / 2 + Math.cos(shadowAngle * 2 * Math.PI / 360) / 2);
                            var scale1 = s.params.cube.shadowScale,
                                scale2 = s.params.cube.shadowScale / multiplier,
                                offset = s.params.cube.shadowOffset;
                            cubeShadow.transform('scale3d(' + scale1 + ', 1, ' + scale2 + ') translate3d(0px, ' + (s.height / 2 + offset) + 'px, ' + (-s.height / 2 / scale2) + 'px) rotateX(-90deg)');
                        }
                    }
                    var zFactor = (s.isSafari || s.isUiWebView) ? (-s.size / 2) : 0;
                    s.wrapper.transform('translate3d(0px,0,' + zFactor + 'px) rotateX(' + (s.isHorizontal() ? 0 : wrapperRotate) + 'deg) rotateY(' + (s.isHorizontal() ? -wrapperRotate : 0) + 'deg)');
                },
                setTransition: function (duration) {
                    s.slides.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration);
                    if (s.params.cube.shadow && !s.isHorizontal()) {
                        s.container.find('.swiper-cube-shadow').transition(duration);
                    }
                }
            },
            coverflow: {
                setTranslate: function () {
                    var transform = s.translate;
                    var center = s.isHorizontal() ? -transform + s.width / 2 : -transform + s.height / 2;
                    var rotate = s.isHorizontal() ? s.params.coverflow.rotate: -s.params.coverflow.rotate;
                    var translate = s.params.coverflow.depth;
                    //Each slide offset from center
                    for (var i = 0, length = s.slides.length; i < length; i++) {
                        var slide = s.slides.eq(i);
                        var slideSize = s.slidesSizesGrid[i];
                        var slideOffset = slide[0].swiperSlideOffset;
                        var offsetMultiplier = (center - slideOffset - slideSize / 2) / slideSize * s.params.coverflow.modifier;
        
                        var rotateY = s.isHorizontal() ? rotate * offsetMultiplier : 0;
                        var rotateX = s.isHorizontal() ? 0 : rotate * offsetMultiplier;
                        // var rotateZ = 0
                        var translateZ = -translate * Math.abs(offsetMultiplier);
        
                        var translateY = s.isHorizontal() ? 0 : s.params.coverflow.stretch * (offsetMultiplier);
                        var translateX = s.isHorizontal() ? s.params.coverflow.stretch * (offsetMultiplier) : 0;
        
                        //Fix for ultra small values
                        if (Math.abs(translateX) < 0.001) translateX = 0;
                        if (Math.abs(translateY) < 0.001) translateY = 0;
                        if (Math.abs(translateZ) < 0.001) translateZ = 0;
                        if (Math.abs(rotateY) < 0.001) rotateY = 0;
                        if (Math.abs(rotateX) < 0.001) rotateX = 0;
        
                        var slideTransform = 'translate3d(' + translateX + 'px,' + translateY + 'px,' + translateZ + 'px)  rotateX(' + rotateX + 'deg) rotateY(' + rotateY + 'deg)';
        
                        slide.transform(slideTransform);
                        slide[0].style.zIndex = -Math.abs(Math.round(offsetMultiplier)) + 1;
                        if (s.params.coverflow.slideShadows) {
                            //Set shadows
                            var shadowBefore = s.isHorizontal() ? slide.find('.swiper-slide-shadow-left') : slide.find('.swiper-slide-shadow-top');
                            var shadowAfter = s.isHorizontal() ? slide.find('.swiper-slide-shadow-right') : slide.find('.swiper-slide-shadow-bottom');
                            if (shadowBefore.length === 0) {
                                shadowBefore = $('<div class="swiper-slide-shadow-' + (s.isHorizontal() ? 'left' : 'top') + '"></div>');
                                slide.append(shadowBefore);
                            }
                            if (shadowAfter.length === 0) {
                                shadowAfter = $('<div class="swiper-slide-shadow-' + (s.isHorizontal() ? 'right' : 'bottom') + '"></div>');
                                slide.append(shadowAfter);
                            }
                            if (shadowBefore.length) shadowBefore[0].style.opacity = offsetMultiplier > 0 ? offsetMultiplier : 0;
                            if (shadowAfter.length) shadowAfter[0].style.opacity = (-offsetMultiplier) > 0 ? -offsetMultiplier : 0;
                        }
                    }
        
                    //Set correct perspective for IE10
                    if (s.browser.ie) {
                        var ws = s.wrapper[0].style;
                        ws.perspectiveOrigin = center + 'px 50%';
                    }
                },
                setTransition: function (duration) {
                    s.slides.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration);
                }
            }
        };

        /*=========================
          Images Lazy Loading
          ===========================*/
        s.lazy = {
            initialImageLoaded: false,
            loadImageInSlide: function (index, loadInDuplicate) {
                if (typeof index === 'undefined') return;
                if (typeof loadInDuplicate === 'undefined') loadInDuplicate = true;
                if (s.slides.length === 0) return;
        
                var slide = s.slides.eq(index);
                var img = slide.find('.' + s.params.lazyLoadingClass + ':not(.' + s.params.lazyStatusLoadedClass + '):not(.' + s.params.lazyStatusLoadingClass + ')');
                if (slide.hasClass(s.params.lazyLoadingClass) && !slide.hasClass(s.params.lazyStatusLoadedClass) && !slide.hasClass(s.params.lazyStatusLoadingClass)) {
                    img = img.add(slide[0]);
                }
                if (img.length === 0) return;
        
                img.each(function () {
                    var _img = $(this);
                    _img.addClass(s.params.lazyStatusLoadingClass);
                    var background = _img.attr('data-background');
                    var src = _img.attr('data-src'),
                        srcset = _img.attr('data-srcset'),
                        sizes = _img.attr('data-sizes');
                    s.loadImage(_img[0], (src || background), srcset, sizes, false, function () {
                        if (background) {
                            _img.css('background-image', 'url("' + background + '")');
                            _img.removeAttr('data-background');
                        }
                        else {
                            if (srcset) {
                                _img.attr('srcset', srcset);
                                _img.removeAttr('data-srcset');
                            }
                            if (sizes) {
                                _img.attr('sizes', sizes);
                                _img.removeAttr('data-sizes');
                            }
                            if (src) {
                                _img.attr('src', src);
                                _img.removeAttr('data-src');
                            }
        
                        }
        
                        _img.addClass(s.params.lazyStatusLoadedClass).removeClass(s.params.lazyStatusLoadingClass);
                        slide.find('.' + s.params.lazyPreloaderClass + ', .' + s.params.preloaderClass).remove();
                        if (s.params.loop && loadInDuplicate) {
                            var slideOriginalIndex = slide.attr('data-swiper-slide-index');
                            if (slide.hasClass(s.params.slideDuplicateClass)) {
                                var originalSlide = s.wrapper.children('[data-swiper-slide-index="' + slideOriginalIndex + '"]:not(.' + s.params.slideDuplicateClass + ')');
                                s.lazy.loadImageInSlide(originalSlide.index(), false);
                            }
                            else {
                                var duplicatedSlide = s.wrapper.children('.' + s.params.slideDuplicateClass + '[data-swiper-slide-index="' + slideOriginalIndex + '"]');
                                s.lazy.loadImageInSlide(duplicatedSlide.index(), false);
                            }
                        }
                        s.emit('onLazyImageReady', s, slide[0], _img[0]);
                    });
        
                    s.emit('onLazyImageLoad', s, slide[0], _img[0]);
                });
        
            },
            load: function () {
                var i;
                var slidesPerView = s.params.slidesPerView;
                if (slidesPerView === 'auto') {
                    slidesPerView = 0;
                }
                if (!s.lazy.initialImageLoaded) s.lazy.initialImageLoaded = true;
                if (s.params.watchSlidesVisibility) {
                    s.wrapper.children('.' + s.params.slideVisibleClass).each(function () {
                        s.lazy.loadImageInSlide($(this).index());
                    });
                }
                else {
                    if (slidesPerView > 1) {
                        for (i = s.activeIndex; i < s.activeIndex + slidesPerView ; i++) {
                            if (s.slides[i]) s.lazy.loadImageInSlide(i);
                        }
                    }
                    else {
                        s.lazy.loadImageInSlide(s.activeIndex);
                    }
                }
                if (s.params.lazyLoadingInPrevNext) {
                    if (slidesPerView > 1 || (s.params.lazyLoadingInPrevNextAmount && s.params.lazyLoadingInPrevNextAmount > 1)) {
                        var amount = s.params.lazyLoadingInPrevNextAmount;
                        var spv = slidesPerView;
                        var maxIndex = Math.min(s.activeIndex + spv + Math.max(amount, spv), s.slides.length);
                        var minIndex = Math.max(s.activeIndex - Math.max(spv, amount), 0);
                        // Next Slides
                        for (i = s.activeIndex + slidesPerView; i < maxIndex; i++) {
                            if (s.slides[i]) s.lazy.loadImageInSlide(i);
                        }
                        // Prev Slides
                        for (i = minIndex; i < s.activeIndex ; i++) {
                            if (s.slides[i]) s.lazy.loadImageInSlide(i);
                        }
                    }
                    else {
                        var nextSlide = s.wrapper.children('.' + s.params.slideNextClass);
                        if (nextSlide.length > 0) s.lazy.loadImageInSlide(nextSlide.index());
        
                        var prevSlide = s.wrapper.children('.' + s.params.slidePrevClass);
                        if (prevSlide.length > 0) s.lazy.loadImageInSlide(prevSlide.index());
                    }
                }
            },
            onTransitionStart: function () {
                if (s.params.lazyLoading) {
                    if (s.params.lazyLoadingOnTransitionStart || (!s.params.lazyLoadingOnTransitionStart && !s.lazy.initialImageLoaded)) {
                        s.lazy.load();
                    }
                }
            },
            onTransitionEnd: function () {
                if (s.params.lazyLoading && !s.params.lazyLoadingOnTransitionStart) {
                    s.lazy.load();
                }
            }
        };
        

        /*=========================
          Scrollbar
          ===========================*/
        s.scrollbar = {
            isTouched: false,
            setDragPosition: function (e) {
                var sb = s.scrollbar;
                var x = 0, y = 0;
                var translate;
                var pointerPosition = s.isHorizontal() ?
                    ((e.type === 'touchstart' || e.type === 'touchmove') ? e.targetTouches[0].pageX : e.pageX || e.clientX) :
                    ((e.type === 'touchstart' || e.type === 'touchmove') ? e.targetTouches[0].pageY : e.pageY || e.clientY) ;
                var position = (pointerPosition) - sb.track.offset()[s.isHorizontal() ? 'left' : 'top'] - sb.dragSize / 2;
                var positionMin = -s.minTranslate() * sb.moveDivider;
                var positionMax = -s.maxTranslate() * sb.moveDivider;
                if (position < positionMin) {
                    position = positionMin;
                }
                else if (position > positionMax) {
                    position = positionMax;
                }
                position = -position / sb.moveDivider;
                s.updateProgress(position);
                s.setWrapperTranslate(position, true);
            },
            dragStart: function (e) {
                var sb = s.scrollbar;
                sb.isTouched = true;
                e.preventDefault();
                e.stopPropagation();
        
                sb.setDragPosition(e);
                clearTimeout(sb.dragTimeout);
        
                sb.track.transition(0);
                if (s.params.scrollbarHide) {
                    sb.track.css('opacity', 1);
                }
                s.wrapper.transition(100);
                sb.drag.transition(100);
                s.emit('onScrollbarDragStart', s);
            },
            dragMove: function (e) {
                var sb = s.scrollbar;
                if (!sb.isTouched) return;
                if (e.preventDefault) e.preventDefault();
                else e.returnValue = false;
                sb.setDragPosition(e);
                s.wrapper.transition(0);
                sb.track.transition(0);
                sb.drag.transition(0);
                s.emit('onScrollbarDragMove', s);
            },
            dragEnd: function (e) {
                var sb = s.scrollbar;
                if (!sb.isTouched) return;
                sb.isTouched = false;
                if (s.params.scrollbarHide) {
                    clearTimeout(sb.dragTimeout);
                    sb.dragTimeout = setTimeout(function () {
                        sb.track.css('opacity', 0);
                        sb.track.transition(400);
                    }, 1000);
        
                }
                s.emit('onScrollbarDragEnd', s);
                if (s.params.scrollbarSnapOnRelease) {
                    s.slideReset();
                }
            },
            draggableEvents: (function () {
                if ((s.params.simulateTouch === false && !s.support.touch)) return s.touchEventsDesktop;
                else return s.touchEvents;
            })(),
            enableDraggable: function () {
                var sb = s.scrollbar;
                var target = s.support.touch ? sb.track : document;
                $(sb.track).on(sb.draggableEvents.start, sb.dragStart);
                $(target).on(sb.draggableEvents.move, sb.dragMove);
                $(target).on(sb.draggableEvents.end, sb.dragEnd);
            },
            disableDraggable: function () {
                var sb = s.scrollbar;
                var target = s.support.touch ? sb.track : document;
                $(sb.track).off(s.draggableEvents.start, sb.dragStart);
                $(target).off(s.draggableEvents.move, sb.dragMove);
                $(target).off(s.draggableEvents.end, sb.dragEnd);
            },
            set: function () {
                if (!s.params.scrollbar) return;
                var sb = s.scrollbar;
                sb.track = $(s.params.scrollbar);
                if (s.params.uniqueNavElements && typeof s.params.scrollbar === 'string' && sb.track.length > 1 && s.container.find(s.params.scrollbar).length === 1) {
                    sb.track = s.container.find(s.params.scrollbar);
                }
                sb.drag = sb.track.find('.swiper-scrollbar-drag');
                if (sb.drag.length === 0) {
                    sb.drag = $('<div class="swiper-scrollbar-drag"></div>');
                    sb.track.append(sb.drag);
                }
                sb.drag[0].style.width = '';
                sb.drag[0].style.height = '';
                sb.trackSize = s.isHorizontal() ? sb.track[0].offsetWidth : sb.track[0].offsetHeight;
        
                sb.divider = s.size / s.virtualSize;
                sb.moveDivider = sb.divider * (sb.trackSize / s.size);
                sb.dragSize = sb.trackSize * sb.divider;
        
                if (s.isHorizontal()) {
                    sb.drag[0].style.width = sb.dragSize + 'px';
                }
                else {
                    sb.drag[0].style.height = sb.dragSize + 'px';
                }
        
                if (sb.divider >= 1) {
                    sb.track[0].style.display = 'none';
                }
                else {
                    sb.track[0].style.display = '';
                }
                if (s.params.scrollbarHide) {
                    sb.track[0].style.opacity = 0;
                }
            },
            setTranslate: function () {
                if (!s.params.scrollbar) return;
                var diff;
                var sb = s.scrollbar;
                var translate = s.translate || 0;
                var newPos;
        
                var newSize = sb.dragSize;
                newPos = (sb.trackSize - sb.dragSize) * s.progress;
                if (s.rtl && s.isHorizontal()) {
                    newPos = -newPos;
                    if (newPos > 0) {
                        newSize = sb.dragSize - newPos;
                        newPos = 0;
                    }
                    else if (-newPos + sb.dragSize > sb.trackSize) {
                        newSize = sb.trackSize + newPos;
                    }
                }
                else {
                    if (newPos < 0) {
                        newSize = sb.dragSize + newPos;
                        newPos = 0;
                    }
                    else if (newPos + sb.dragSize > sb.trackSize) {
                        newSize = sb.trackSize - newPos;
                    }
                }
                if (s.isHorizontal()) {
                    if (s.support.transforms3d) {
                        sb.drag.transform('translate3d(' + (newPos) + 'px, 0, 0)');
                    }
                    else {
                        sb.drag.transform('translateX(' + (newPos) + 'px)');
                    }
                    sb.drag[0].style.width = newSize + 'px';
                }
                else {
                    if (s.support.transforms3d) {
                        sb.drag.transform('translate3d(0px, ' + (newPos) + 'px, 0)');
                    }
                    else {
                        sb.drag.transform('translateY(' + (newPos) + 'px)');
                    }
                    sb.drag[0].style.height = newSize + 'px';
                }
                if (s.params.scrollbarHide) {
                    clearTimeout(sb.timeout);
                    sb.track[0].style.opacity = 1;
                    sb.timeout = setTimeout(function () {
                        sb.track[0].style.opacity = 0;
                        sb.track.transition(400);
                    }, 1000);
                }
            },
            setTransition: function (duration) {
                if (!s.params.scrollbar) return;
                s.scrollbar.drag.transition(duration);
            }
        };

        /*=========================
          Controller
          ===========================*/
        s.controller = {
            LinearSpline: function (x, y) {
                this.x = x;
                this.y = y;
                this.lastIndex = x.length - 1;
                // Given an x value (x2), return the expected y2 value:
                // (x1,y1) is the known point before given value,
                // (x3,y3) is the known point after given value.
                var i1, i3;
                var l = this.x.length;
        
                this.interpolate = function (x2) {
                    if (!x2) return 0;
        
                    // Get the indexes of x1 and x3 (the array indexes before and after given x2):
                    i3 = binarySearch(this.x, x2);
                    i1 = i3 - 1;
        
                    // We have our indexes i1 & i3, so we can calculate already:
                    // y2 := ((x2âˆ’x1) Ã— (y3âˆ’y1)) Ã· (x3âˆ’x1) + y1
                    return ((x2 - this.x[i1]) * (this.y[i3] - this.y[i1])) / (this.x[i3] - this.x[i1]) + this.y[i1];
                };
        
                var binarySearch = (function() {
                    var maxIndex, minIndex, guess;
                    return function(array, val) {
                        minIndex = -1;
                        maxIndex = array.length;
                        while (maxIndex - minIndex > 1)
                            if (array[guess = maxIndex + minIndex >> 1] <= val) {
                                minIndex = guess;
                            } else {
                                maxIndex = guess;
                            }
                        return maxIndex;
                    };
                })();
            },
            //xxx: for now i will just save one spline function to to
            getInterpolateFunction: function(c){
                if(!s.controller.spline) s.controller.spline = s.params.loop ?
                    new s.controller.LinearSpline(s.slidesGrid, c.slidesGrid) :
                    new s.controller.LinearSpline(s.snapGrid, c.snapGrid);
            },
            setTranslate: function (translate, byController) {
               var controlled = s.params.control;
               var multiplier, controlledTranslate;
               function setControlledTranslate(c) {
                    // this will create an Interpolate function based on the snapGrids
                    // x is the Grid of the scrolled scroller and y will be the controlled scroller
                    // it makes sense to create this only once and recall it for the interpolation
                    // the function does a lot of value caching for performance
                    translate = c.rtl && c.params.direction === 'horizontal' ? -s.translate : s.translate;
                    if (s.params.controlBy === 'slide') {
                        s.controller.getInterpolateFunction(c);
                        // i am not sure why the values have to be multiplicated this way, tried to invert the snapGrid
                        // but it did not work out
                        controlledTranslate = -s.controller.spline.interpolate(-translate);
                    }
        
                    if(!controlledTranslate || s.params.controlBy === 'container'){
                        multiplier = (c.maxTranslate() - c.minTranslate()) / (s.maxTranslate() - s.minTranslate());
                        controlledTranslate = (translate - s.minTranslate()) * multiplier + c.minTranslate();
                    }
        
                    if (s.params.controlInverse) {
                        controlledTranslate = c.maxTranslate() - controlledTranslate;
                    }
                    c.updateProgress(controlledTranslate);
                    c.setWrapperTranslate(controlledTranslate, false, s);
                    c.updateActiveIndex();
               }
               if (s.isArray(controlled)) {
                   for (var i = 0; i < controlled.length; i++) {
                       if (controlled[i] !== byController && controlled[i] instanceof Swiper) {
                           setControlledTranslate(controlled[i]);
                       }
                   }
               }
               else if (controlled instanceof Swiper && byController !== controlled) {
        
                   setControlledTranslate(controlled);
               }
            },
            setTransition: function (duration, byController) {
                var controlled = s.params.control;
                var i;
                function setControlledTransition(c) {
                    c.setWrapperTransition(duration, s);
                    if (duration !== 0) {
                        c.onTransitionStart();
                        c.wrapper.transitionEnd(function(){
                            if (!controlled) return;
                            if (c.params.loop && s.params.controlBy === 'slide') {
                                c.fixLoop();
                            }
                            c.onTransitionEnd();
        
                        });
                    }
                }
                if (s.isArray(controlled)) {
                    for (i = 0; i < controlled.length; i++) {
                        if (controlled[i] !== byController && controlled[i] instanceof Swiper) {
                            setControlledTransition(controlled[i]);
                        }
                    }
                }
                else if (controlled instanceof Swiper && byController !== controlled) {
                    setControlledTransition(controlled);
                }
            }
        };

        /*=========================
          Hash Navigation
          ===========================*/
        s.hashnav = {
            onHashCange: function (e, a) {
                var newHash = document.location.hash.replace('#', '');
                var activeSlideHash = s.slides.eq(s.activeIndex).attr('data-hash');
                if (newHash !== activeSlideHash) {
                    s.slideTo(s.wrapper.children('.' + s.params.slideClass + '[data-hash="' + (newHash) + '"]').index());
                }
            },
            attachEvents: function (detach) {
                var action = detach ? 'off' : 'on';
                $(window)[action]('hashchange', s.hashnav.onHashCange);
            },
            setHash: function () {
                if (!s.hashnav.initialized || !s.params.hashnav) return;
                if (s.params.replaceState && window.history && window.history.replaceState) {
                    window.history.replaceState(null, null, ('#' + s.slides.eq(s.activeIndex).attr('data-hash') || ''));
                } else {
                    var slide = s.slides.eq(s.activeIndex);
                    var hash = slide.attr('data-hash') || slide.attr('data-history');
                    document.location.hash = hash || '';
                }
            },
            init: function () {
                if (!s.params.hashnav || s.params.history) return;
                s.hashnav.initialized = true;
                var hash = document.location.hash.replace('#', '');
                if (!hash) return;
                var speed = 0;
                for (var i = 0, length = s.slides.length; i < length; i++) {
                    var slide = s.slides.eq(i);
                    var slideHash = slide.attr('data-hash') || slide.attr('data-history');
                    if (slideHash === hash && !slide.hasClass(s.params.slideDuplicateClass)) {
                        var index = slide.index();
                        s.slideTo(index, speed, s.params.runCallbacksOnInit, true);
                    }
                }
                if (s.params.hashnavWatchState) s.hashnav.attachEvents();
            },
            destroy: function () {
                if (s.params.hashnavWatchState) s.hashnav.attachEvents(true);
            }
        };

        /*=========================
          History Api with fallback to Hashnav
          ===========================*/
        s.history = {
            init: function () {
                if (!s.params.history) return;
                if (!window.history || !window.history.pushState) {
                    s.params.history = false;
                    s.params.hashnav = true;
                    return;
                }
                s.history.initialized = true;
                this.paths = this.getPathValues();
                if (!this.paths.key && !this.paths.value) return;
                this.scrollToSlide(0, this.paths.value, s.params.runCallbacksOnInit);
                if (!s.params.replaceState) {
                    window.addEventListener('popstate', this.setHistoryPopState);
                }
            },
            setHistoryPopState: function() {
                s.history.paths = s.history.getPathValues();
                s.history.scrollToSlide(s.params.speed, s.history.paths.value, false);
            },
            getPathValues: function() {
                var pathArray = window.location.pathname.slice(1).split('/');
                var total = pathArray.length;
                var key = pathArray[total - 2];
                var value = pathArray[total - 1];
                return { key: key, value: value };
            },
            setHistory: function (key, index) {
                if (!s.history.initialized || !s.params.history) return;
                var slide = s.slides.eq(index);
                var value = this.slugify(slide.attr('data-history'));
                if (!window.location.pathname.includes(key)) {
                    value = key + '/' + value;
                }
                if (s.params.replaceState) {
                    window.history.replaceState(null, null, value);
                } else {
                    window.history.pushState(null, null, value);
                }
            },
            slugify: function(text) {
                return text.toString().toLowerCase()
                    .replace(/\s+/g, '-')
                    .replace(/[^\w\-]+/g, '')
                    .replace(/\-\-+/g, '-')
                    .replace(/^-+/, '')
                    .replace(/-+$/, '');
            },
            scrollToSlide: function(speed, value, runCallbacks) {
                if (value) {
                    for (var i = 0, length = s.slides.length; i < length; i++) {
                        var slide = s.slides.eq(i);
                        var slideHistory = this.slugify(slide.attr('data-history'));
                        if (slideHistory === value && !slide.hasClass(s.params.slideDuplicateClass)) {
                            var index = slide.index();
                            s.slideTo(index, speed, runCallbacks);
                        }
                    }
                } else {
                    s.slideTo(0, speed, runCallbacks);
                }
            }
        };

        /*=========================
          Keyboard Control
          ===========================*/
        function handleKeyboard(e) {
            if (e.originalEvent) e = e.originalEvent; //jquery fix
            var kc = e.keyCode || e.charCode;
            // Directions locks
            if (!s.params.allowSwipeToNext && (s.isHorizontal() && kc === 39 || !s.isHorizontal() && kc === 40)) {
                return false;
            }
            if (!s.params.allowSwipeToPrev && (s.isHorizontal() && kc === 37 || !s.isHorizontal() && kc === 38)) {
                return false;
            }
            if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey) {
                return;
            }
            if (document.activeElement && document.activeElement.nodeName && (document.activeElement.nodeName.toLowerCase() === 'input' || document.activeElement.nodeName.toLowerCase() === 'textarea')) {
                return;
            }
            if (kc === 37 || kc === 39 || kc === 38 || kc === 40) {
                var inView = false;
                //Check that swiper should be inside of visible area of window
                if (s.container.parents('.' + s.params.slideClass).length > 0 && s.container.parents('.' + s.params.slideActiveClass).length === 0) {
                    return;
                }
                var windowScroll = {
                    left: window.pageXOffset,
                    top: window.pageYOffset
                };
                var windowWidth = window.innerWidth;
                var windowHeight = window.innerHeight;
                var swiperOffset = s.container.offset();
                if (s.rtl) swiperOffset.left = swiperOffset.left - s.container[0].scrollLeft;
                var swiperCoord = [
                    [swiperOffset.left, swiperOffset.top],
                    [swiperOffset.left + s.width, swiperOffset.top],
                    [swiperOffset.left, swiperOffset.top + s.height],
                    [swiperOffset.left + s.width, swiperOffset.top + s.height]
                ];
                for (var i = 0; i < swiperCoord.length; i++) {
                    var point = swiperCoord[i];
                    if (
                        point[0] >= windowScroll.left && point[0] <= windowScroll.left + windowWidth &&
                        point[1] >= windowScroll.top && point[1] <= windowScroll.top + windowHeight
                    ) {
                        inView = true;
                    }
        
                }
                if (!inView) return;
            }
            if (s.isHorizontal()) {
                if (kc === 37 || kc === 39) {
                    if (e.preventDefault) e.preventDefault();
                    else e.returnValue = false;
                }
                if ((kc === 39 && !s.rtl) || (kc === 37 && s.rtl)) s.slideNext();
                if ((kc === 37 && !s.rtl) || (kc === 39 && s.rtl)) s.slidePrev();
            }
            else {
                if (kc === 38 || kc === 40) {
                    if (e.preventDefault) e.preventDefault();
                    else e.returnValue = false;
                }
                if (kc === 40) s.slideNext();
                if (kc === 38) s.slidePrev();
            }
        }
        s.disableKeyboardControl = function () {
            s.params.keyboardControl = false;
            $(document).off('keydown', handleKeyboard);
        };
        s.enableKeyboardControl = function () {
            s.params.keyboardControl = true;
            $(document).on('keydown', handleKeyboard);
        };
        

        /*=========================
          Mousewheel Control
          ===========================*/
        s.mousewheel = {
            event: false,
            lastScrollTime: (new window.Date()).getTime()
        };
        if (s.params.mousewheelControl) {
            /**
             * The best combination if you prefer spinX + spinY normalization.  It favors
             * the older DOMMouseScroll for Firefox, as FF does not include wheelDelta with
             * 'wheel' event, making spin speed determination impossible.
             */
            s.mousewheel.event = (navigator.userAgent.indexOf('firefox') > -1) ?
                'DOMMouseScroll' :
                isEventSupported() ?
                    'wheel' : 'mousewheel';
        }
        
        function isEventSupported() {
            var eventName = 'onwheel';
            var isSupported = eventName in document;
        
            if (!isSupported) {
                var element = document.createElement('div');
                element.setAttribute(eventName, 'return;');
                isSupported = typeof element[eventName] === 'function';
            }
        
            if (!isSupported &&
                document.implementation &&
                document.implementation.hasFeature &&
                    // always returns true in newer browsers as per the standard.
                    // @see http://dom.spec.whatwg.org/#dom-domimplementation-hasfeature
                document.implementation.hasFeature('', '') !== true ) {
                // This is the only way to test support for the `wheel` event in IE9+.
                isSupported = document.implementation.hasFeature('Events.wheel', '3.0');
            }
        
            return isSupported;
        }
        
        function handleMousewheel(e) {
            if (e.originalEvent) e = e.originalEvent; //jquery fix
            var delta = 0;
            var rtlFactor = s.rtl ? -1 : 1;
        
            var data = normalizeWheel( e );
        
            if (s.params.mousewheelForceToAxis) {
                if (s.isHorizontal()) {
                    if (Math.abs(data.pixelX) > Math.abs(data.pixelY)) delta = data.pixelX * rtlFactor;
                    else return;
                }
                else {
                    if (Math.abs(data.pixelY) > Math.abs(data.pixelX)) delta = data.pixelY;
                    else return;
                }
            }
            else {
                delta = Math.abs(data.pixelX) > Math.abs(data.pixelY) ? - data.pixelX * rtlFactor : - data.pixelY;
            }
        
            if (delta === 0) return;
        
            if (s.params.mousewheelInvert) delta = -delta;
        
            if (!s.params.freeMode) {
                if ((new window.Date()).getTime() - s.mousewheel.lastScrollTime > 60) {
                    if (delta < 0) {
                        if ((!s.isEnd || s.params.loop) && !s.animating) {
                            s.slideNext();
                            s.emit('onScroll', s, e);
                        }
                        else if (s.params.mousewheelReleaseOnEdges) return true;
                    }
                    else {
                        if ((!s.isBeginning || s.params.loop) && !s.animating) {
                            s.slidePrev();
                            s.emit('onScroll', s, e);
                        }
                        else if (s.params.mousewheelReleaseOnEdges) return true;
                    }
                }
                s.mousewheel.lastScrollTime = (new window.Date()).getTime();
        
            }
            else {
                //Freemode or scrollContainer:
                var position = s.getWrapperTranslate() + delta * s.params.mousewheelSensitivity;
                var wasBeginning = s.isBeginning,
                    wasEnd = s.isEnd;
        
                if (position >= s.minTranslate()) position = s.minTranslate();
                if (position <= s.maxTranslate()) position = s.maxTranslate();
        
                s.setWrapperTransition(0);
                s.setWrapperTranslate(position);
                s.updateProgress();
                s.updateActiveIndex();
        
                if (!wasBeginning && s.isBeginning || !wasEnd && s.isEnd) {
                    s.updateClasses();
                }
        
                if (s.params.freeModeSticky) {
                    clearTimeout(s.mousewheel.timeout);
                    s.mousewheel.timeout = setTimeout(function () {
                        s.slideReset();
                    }, 300);
                }
                else {
                    if (s.params.lazyLoading && s.lazy) {
                        s.lazy.load();
                    }
                }
                // Emit event
                s.emit('onScroll', s, e);
        
                // Stop autoplay
                if (s.params.autoplay && s.params.autoplayDisableOnInteraction) s.stopAutoplay();
        
                // Return page scroll on edge positions
                if (position === 0 || position === s.maxTranslate()) return;
            }
        
            if (e.preventDefault) e.preventDefault();
            else e.returnValue = false;
            return false;
        }
        s.disableMousewheelControl = function () {
            if (!s.mousewheel.event) return false;
            var target = s.container;
            if (s.params.mousewheelEventsTarged !== 'container') {
                target = $(s.params.mousewheelEventsTarged);
            }
            target.off(s.mousewheel.event, handleMousewheel);
            return true;
        };
        
        s.enableMousewheelControl = function () {
            if (!s.mousewheel.event) return false;
            var target = s.container;
            if (s.params.mousewheelEventsTarged !== 'container') {
                target = $(s.params.mousewheelEventsTarged);
            }
            target.on(s.mousewheel.event, handleMousewheel);
            return true;
        };
        
        /**
         * Mouse wheel (and 2-finger trackpad) support on the web sucks.  It is
         * complicated, thus this doc is long and (hopefully) detailed enough to answer
         * your questions.
         *
         * If you need to react to the mouse wheel in a predictable way, this code is
         * like your bestest friend. * hugs *
         *
         * As of today, there are 4 DOM event types you can listen to:
         *
         *   'wheel'                -- Chrome(31+), FF(17+), IE(9+)
         *   'mousewheel'           -- Chrome, IE(6+), Opera, Safari
         *   'MozMousePixelScroll'  -- FF(3.5 only!) (2010-2013) -- don't bother!
         *   'DOMMouseScroll'       -- FF(0.9.7+) since 2003
         *
         * So what to do?  The is the best:
         *
         *   normalizeWheel.getEventType();
         *
         * In your event callback, use this code to get sane interpretation of the
         * deltas.  This code will return an object with properties:
         *
         *   spinX   -- normalized spin speed (use for zoom) - x plane
         *   spinY   -- " - y plane
         *   pixelX  -- normalized distance (to pixels) - x plane
         *   pixelY  -- " - y plane
         *
         * Wheel values are provided by the browser assuming you are using the wheel to
         * scroll a web page by a number of lines or pixels (or pages).  Values can vary
         * significantly on different platforms and browsers, forgetting that you can
         * scroll at different speeds.  Some devices (like trackpads) emit more events
         * at smaller increments with fine granularity, and some emit massive jumps with
         * linear speed or acceleration.
         *
         * This code does its best to normalize the deltas for you:
         *
         *   - spin is trying to normalize how far the wheel was spun (or trackpad
         *     dragged).  This is super useful for zoom support where you want to
         *     throw away the chunky scroll steps on the PC and make those equal to
         *     the slow and smooth tiny steps on the Mac. Key data: This code tries to
         *     resolve a single slow step on a wheel to 1.
         *
         *   - pixel is normalizing the desired scroll delta in pixel units.  You'll
         *     get the crazy differences between browsers, but at least it'll be in
         *     pixels!
         *
         *   - positive value indicates scrolling DOWN/RIGHT, negative UP/LEFT.  This
         *     should translate to positive value zooming IN, negative zooming OUT.
         *     This matches the newer 'wheel' event.
         *
         * Why are there spinX, spinY (or pixels)?
         *
         *   - spinX is a 2-finger side drag on the trackpad, and a shift + wheel turn
         *     with a mouse.  It results in side-scrolling in the browser by default.
         *
         *   - spinY is what you expect -- it's the classic axis of a mouse wheel.
         *
         *   - I dropped spinZ/pixelZ.  It is supported by the DOM 3 'wheel' event and
         *     probably is by browsers in conjunction with fancy 3D controllers .. but
         *     you know.
         *
         * Implementation info:
         *
         * Examples of 'wheel' event if you scroll slowly (down) by one step with an
         * average mouse:
         *
         *   OS X + Chrome  (mouse)     -    4   pixel delta  (wheelDelta -120)
         *   OS X + Safari  (mouse)     -  N/A   pixel delta  (wheelDelta  -12)
         *   OS X + Firefox (mouse)     -    0.1 line  delta  (wheelDelta  N/A)
         *   Win8 + Chrome  (mouse)     -  100   pixel delta  (wheelDelta -120)
         *   Win8 + Firefox (mouse)     -    3   line  delta  (wheelDelta -120)
         *
         * On the trackpad:
         *
         *   OS X + Chrome  (trackpad)  -    2   pixel delta  (wheelDelta   -6)
         *   OS X + Firefox (trackpad)  -    1   pixel delta  (wheelDelta  N/A)
         *
         * On other/older browsers.. it's more complicated as there can be multiple and
         * also missing delta values.
         *
         * The 'wheel' event is more standard:
         *
         * http://www.w3.org/TR/DOM-Level-3-Events/#events-wheelevents
         *
         * The basics is that it includes a unit, deltaMode (pixels, lines, pages), and
         * deltaX, deltaY and deltaZ.  Some browsers provide other values to maintain
         * backward compatibility with older events.  Those other values help us
         * better normalize spin speed.  Example of what the browsers provide:
         *
         *                          | event.wheelDelta | event.detail
         *        ------------------+------------------+--------------
         *          Safari v5/OS X  |       -120       |       0
         *          Safari v5/Win7  |       -120       |       0
         *         Chrome v17/OS X  |       -120       |       0
         *         Chrome v17/Win7  |       -120       |       0
         *                IE9/Win7  |       -120       |   undefined
         *         Firefox v4/OS X  |     undefined    |       1
         *         Firefox v4/Win7  |     undefined    |       3
         *
         */
        function normalizeWheel( /*object*/ event ) /*object*/ {
            // Reasonable defaults
            var PIXEL_STEP = 10;
            var LINE_HEIGHT = 40;
            var PAGE_HEIGHT = 800;
        
            var sX = 0, sY = 0,       // spinX, spinY
                pX = 0, pY = 0;       // pixelX, pixelY
        
            // Legacy
            if( 'detail' in event ) {
                sY = event.detail;
            }
            if( 'wheelDelta' in event ) {
                sY = -event.wheelDelta / 120;
            }
            if( 'wheelDeltaY' in event ) {
                sY = -event.wheelDeltaY / 120;
            }
            if( 'wheelDeltaX' in event ) {
                sX = -event.wheelDeltaX / 120;
            }
        
            // side scrolling on FF with DOMMouseScroll
            if( 'axis' in event && event.axis === event.HORIZONTAL_AXIS ) {
                sX = sY;
                sY = 0;
            }
        
            pX = sX * PIXEL_STEP;
            pY = sY * PIXEL_STEP;
        
            if( 'deltaY' in event ) {
                pY = event.deltaY;
            }
            if( 'deltaX' in event ) {
                pX = event.deltaX;
            }
        
            if( (pX || pY) && event.deltaMode ) {
                if( event.deltaMode === 1 ) {          // delta in LINE units
                    pX *= LINE_HEIGHT;
                    pY *= LINE_HEIGHT;
                } else {                             // delta in PAGE units
                    pX *= PAGE_HEIGHT;
                    pY *= PAGE_HEIGHT;
                }
            }
        
            // Fall-back if spin cannot be determined
            if( pX && !sX ) {
                sX = (pX < 1) ? -1 : 1;
            }
            if( pY && !sY ) {
                sY = (pY < 1) ? -1 : 1;
            }
        
            return {
                spinX: sX,
                spinY: sY,
                pixelX: pX,
                pixelY: pY
            };
        }

        /*=========================
          Parallax
          ===========================*/
        function setParallaxTransform(el, progress) {
            el = $(el);
            var p, pX, pY;
            var rtlFactor = s.rtl ? -1 : 1;
        
            p = el.attr('data-swiper-parallax') || '0';
            pX = el.attr('data-swiper-parallax-x');
            pY = el.attr('data-swiper-parallax-y');
            if (pX || pY) {
                pX = pX || '0';
                pY = pY || '0';
            }
            else {
                if (s.isHorizontal()) {
                    pX = p;
                    pY = '0';
                }
                else {
                    pY = p;
                    pX = '0';
                }
            }
        
            if ((pX).indexOf('%') >= 0) {
                pX = parseInt(pX, 10) * progress * rtlFactor + '%';
            }
            else {
                pX = pX * progress * rtlFactor + 'px' ;
            }
            if ((pY).indexOf('%') >= 0) {
                pY = parseInt(pY, 10) * progress + '%';
            }
            else {
                pY = pY * progress + 'px' ;
            }
        
            el.transform('translate3d(' + pX + ', ' + pY + ',0px)');
        }
        s.parallax = {
            setTranslate: function () {
                s.container.children('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]').each(function(){
                    setParallaxTransform(this, s.progress);
        
                });
                s.slides.each(function () {
                    var slide = $(this);
                    slide.find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]').each(function () {
                        var progress = Math.min(Math.max(slide[0].progress, -1), 1);
                        setParallaxTransform(this, progress);
                    });
                });
            },
            setTransition: function (duration) {
                if (typeof duration === 'undefined') duration = s.params.speed;
                s.container.find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]').each(function(){
                    var el = $(this);
                    var parallaxDuration = parseInt(el.attr('data-swiper-parallax-duration'), 10) || duration;
                    if (duration === 0) parallaxDuration = 0;
                    el.transition(parallaxDuration);
                });
            }
        };
        

        /*=========================
          Zoom
          ===========================*/
        s.zoom = {
            // "Global" Props
            scale: 1,
            currentScale: 1,
            isScaling: false,
            gesture: {
                slide: undefined,
                slideWidth: undefined,
                slideHeight: undefined,
                image: undefined,
                imageWrap: undefined,
                zoomMax: s.params.zoomMax
            },
            image: {
                isTouched: undefined,
                isMoved: undefined,
                currentX: undefined,
                currentY: undefined,
                minX: undefined,
                minY: undefined,
                maxX: undefined,
                maxY: undefined,
                width: undefined,
                height: undefined,
                startX: undefined,
                startY: undefined,
                touchesStart: {},
                touchesCurrent: {}
            },
            velocity: {
                x: undefined,
                y: undefined,
                prevPositionX: undefined,
                prevPositionY: undefined,
                prevTime: undefined
            },
            // Calc Scale From Multi-touches
            getDistanceBetweenTouches: function (e) {
                if (e.targetTouches.length < 2) return 1;
                var x1 = e.targetTouches[0].pageX,
                    y1 = e.targetTouches[0].pageY,
                    x2 = e.targetTouches[1].pageX,
                    y2 = e.targetTouches[1].pageY;
                var distance = Math.sqrt(Math.pow(x2 - x1, 2) + Math.pow(y2 - y1, 2));
                return distance;
            },
            // Events
            onGestureStart: function (e) {
                var z = s.zoom;
                if (!s.support.gestures) {
                    if (e.type !== 'touchstart' || e.type === 'touchstart' && e.targetTouches.length < 2) {
                        return;
                    }
                    z.gesture.scaleStart = z.getDistanceBetweenTouches(e);
                }
                if (!z.gesture.slide || !z.gesture.slide.length) {
                    z.gesture.slide = $(this);
                    if (z.gesture.slide.length === 0) z.gesture.slide = s.slides.eq(s.activeIndex);
                    z.gesture.image = z.gesture.slide.find('img, svg, canvas');
                    z.gesture.imageWrap = z.gesture.image.parent('.' + s.params.zoomContainerClass);
                    z.gesture.zoomMax = z.gesture.imageWrap.attr('data-swiper-zoom') || s.params.zoomMax ;
                    if (z.gesture.imageWrap.length === 0) {
                        z.gesture.image = undefined;
                        return;
                    }
                }
                z.gesture.image.transition(0);
                z.isScaling = true;
            },
            onGestureChange: function (e) {
                var z = s.zoom;
                if (!s.support.gestures) {
                    if (e.type !== 'touchmove' || e.type === 'touchmove' && e.targetTouches.length < 2) {
                        return;
                    }
                    z.gesture.scaleMove = z.getDistanceBetweenTouches(e);
                }
                if (!z.gesture.image || z.gesture.image.length === 0) return;
                if (s.support.gestures) {
                    z.scale = e.scale * z.currentScale;
                }
                else {
                    z.scale = (z.gesture.scaleMove / z.gesture.scaleStart) * z.currentScale;
                }
                if (z.scale > z.gesture.zoomMax) {
                    z.scale = z.gesture.zoomMax - 1 + Math.pow((z.scale - z.gesture.zoomMax + 1), 0.5);
                }
                if (z.scale < s.params.zoomMin) {
                    z.scale =  s.params.zoomMin + 1 - Math.pow((s.params.zoomMin - z.scale + 1), 0.5);
                }
                z.gesture.image.transform('translate3d(0,0,0) scale(' + z.scale + ')');
            },
            onGestureEnd: function (e) {
                var z = s.zoom;
                if (!s.support.gestures) {
                    if (e.type !== 'touchend' || e.type === 'touchend' && e.changedTouches.length < 2) {
                        return;
                    }
                }
                if (!z.gesture.image || z.gesture.image.length === 0) return;
                z.scale = Math.max(Math.min(z.scale, z.gesture.zoomMax), s.params.zoomMin);
                z.gesture.image.transition(s.params.speed).transform('translate3d(0,0,0) scale(' + z.scale + ')');
                z.currentScale = z.scale;
                z.isScaling = false;
                if (z.scale === 1) z.gesture.slide = undefined;
            },
            onTouchStart: function (s, e) {
                var z = s.zoom;
                if (!z.gesture.image || z.gesture.image.length === 0) return;
                if (z.image.isTouched) return;
                if (s.device.os === 'android') e.preventDefault();
                z.image.isTouched = true;
                z.image.touchesStart.x = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;
                z.image.touchesStart.y = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;
            },
            onTouchMove: function (e) {
                var z = s.zoom;
                if (!z.gesture.image || z.gesture.image.length === 0) return;
                s.allowClick = false;
                if (!z.image.isTouched || !z.gesture.slide) return;
        
                if (!z.image.isMoved) {
                    z.image.width = z.gesture.image[0].offsetWidth;
                    z.image.height = z.gesture.image[0].offsetHeight;
                    z.image.startX = s.getTranslate(z.gesture.imageWrap[0], 'x') || 0;
                    z.image.startY = s.getTranslate(z.gesture.imageWrap[0], 'y') || 0;
                    z.gesture.slideWidth = z.gesture.slide[0].offsetWidth;
                    z.gesture.slideHeight = z.gesture.slide[0].offsetHeight;
                    z.gesture.imageWrap.transition(0);
                }
                // Define if we need image drag
                var scaledWidth = z.image.width * z.scale;
                var scaledHeight = z.image.height * z.scale;
        
                if (scaledWidth < z.gesture.slideWidth && scaledHeight < z.gesture.slideHeight) return;
        
                z.image.minX = Math.min((z.gesture.slideWidth / 2 - scaledWidth / 2), 0);
                z.image.maxX = -z.image.minX;
                z.image.minY = Math.min((z.gesture.slideHeight / 2 - scaledHeight / 2), 0);
                z.image.maxY = -z.image.minY;
        
                z.image.touchesCurrent.x = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX;
                z.image.touchesCurrent.y = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY;
        
                if (!z.image.isMoved && !z.isScaling) {
                    if (s.isHorizontal() &&
                        (Math.floor(z.image.minX) === Math.floor(z.image.startX) && z.image.touchesCurrent.x < z.image.touchesStart.x) ||
                        (Math.floor(z.image.maxX) === Math.floor(z.image.startX) && z.image.touchesCurrent.x > z.image.touchesStart.x)
                        ) {
                        z.image.isTouched = false;
                        return;
                    }
                    else if (!s.isHorizontal() &&
                        (Math.floor(z.image.minY) === Math.floor(z.image.startY) && z.image.touchesCurrent.y < z.image.touchesStart.y) ||
                        (Math.floor(z.image.maxY) === Math.floor(z.image.startY) && z.image.touchesCurrent.y > z.image.touchesStart.y)
                        ) {
                        z.image.isTouched = false;
                        return;
                    }
                }
                e.preventDefault();
                e.stopPropagation();
        
                z.image.isMoved = true;
                z.image.currentX = z.image.touchesCurrent.x - z.image.touchesStart.x + z.image.startX;
                z.image.currentY = z.image.touchesCurrent.y - z.image.touchesStart.y + z.image.startY;
        
                if (z.image.currentX < z.image.minX) {
                    z.image.currentX =  z.image.minX + 1 - Math.pow((z.image.minX - z.image.currentX + 1), 0.8);
                }
                if (z.image.currentX > z.image.maxX) {
                    z.image.currentX = z.image.maxX - 1 + Math.pow((z.image.currentX - z.image.maxX + 1), 0.8);
                }
        
                if (z.image.currentY < z.image.minY) {
                    z.image.currentY =  z.image.minY + 1 - Math.pow((z.image.minY - z.image.currentY + 1), 0.8);
                }
                if (z.image.currentY > z.image.maxY) {
                    z.image.currentY = z.image.maxY - 1 + Math.pow((z.image.currentY - z.image.maxY + 1), 0.8);
                }
        
                //Velocity
                if (!z.velocity.prevPositionX) z.velocity.prevPositionX = z.image.touchesCurrent.x;
                if (!z.velocity.prevPositionY) z.velocity.prevPositionY = z.image.touchesCurrent.y;
                if (!z.velocity.prevTime) z.velocity.prevTime = Date.now();
                z.velocity.x = (z.image.touchesCurrent.x - z.velocity.prevPositionX) / (Date.now() - z.velocity.prevTime) / 2;
                z.velocity.y = (z.image.touchesCurrent.y - z.velocity.prevPositionY) / (Date.now() - z.velocity.prevTime) / 2;
                if (Math.abs(z.image.touchesCurrent.x - z.velocity.prevPositionX) < 2) z.velocity.x = 0;
                if (Math.abs(z.image.touchesCurrent.y - z.velocity.prevPositionY) < 2) z.velocity.y = 0;
                z.velocity.prevPositionX = z.image.touchesCurrent.x;
                z.velocity.prevPositionY = z.image.touchesCurrent.y;
                z.velocity.prevTime = Date.now();
        
                z.gesture.imageWrap.transform('translate3d(' + z.image.currentX + 'px, ' + z.image.currentY + 'px,0)');
            },
            onTouchEnd: function (s, e) {
                var z = s.zoom;
                if (!z.gesture.image || z.gesture.image.length === 0) return;
                if (!z.image.isTouched || !z.image.isMoved) {
                    z.image.isTouched = false;
                    z.image.isMoved = false;
                    return;
                }
                z.image.isTouched = false;
                z.image.isMoved = false;
                var momentumDurationX = 300;
                var momentumDurationY = 300;
                var momentumDistanceX = z.velocity.x * momentumDurationX;
                var newPositionX = z.image.currentX + momentumDistanceX;
                var momentumDistanceY = z.velocity.y * momentumDurationY;
                var newPositionY = z.image.currentY + momentumDistanceY;
        
                //Fix duration
                if (z.velocity.x !== 0) momentumDurationX = Math.abs((newPositionX - z.image.currentX) / z.velocity.x);
                if (z.velocity.y !== 0) momentumDurationY = Math.abs((newPositionY - z.image.currentY) / z.velocity.y);
                var momentumDuration = Math.max(momentumDurationX, momentumDurationY);
        
                z.image.currentX = newPositionX;
                z.image.currentY = newPositionY;
        
                // Define if we need image drag
                var scaledWidth = z.image.width * z.scale;
                var scaledHeight = z.image.height * z.scale;
                z.image.minX = Math.min((z.gesture.slideWidth / 2 - scaledWidth / 2), 0);
                z.image.maxX = -z.image.minX;
                z.image.minY = Math.min((z.gesture.slideHeight / 2 - scaledHeight / 2), 0);
                z.image.maxY = -z.image.minY;
                z.image.currentX = Math.max(Math.min(z.image.currentX, z.image.maxX), z.image.minX);
                z.image.currentY = Math.max(Math.min(z.image.currentY, z.image.maxY), z.image.minY);
        
                z.gesture.imageWrap.transition(momentumDuration).transform('translate3d(' + z.image.currentX + 'px, ' + z.image.currentY + 'px,0)');
            },
            onTransitionEnd: function (s) {
                var z = s.zoom;
                if (z.gesture.slide && s.previousIndex !== s.activeIndex) {
                    z.gesture.image.transform('translate3d(0,0,0) scale(1)');
                    z.gesture.imageWrap.transform('translate3d(0,0,0)');
                    z.gesture.slide = z.gesture.image = z.gesture.imageWrap = undefined;
                    z.scale = z.currentScale = 1;
                }
            },
            // Toggle Zoom
            toggleZoom: function (s, e) {
                var z = s.zoom;
                if (!z.gesture.slide) {
                    z.gesture.slide = s.clickedSlide ? $(s.clickedSlide) : s.slides.eq(s.activeIndex);
                    z.gesture.image = z.gesture.slide.find('img, svg, canvas');
                    z.gesture.imageWrap = z.gesture.image.parent('.' + s.params.zoomContainerClass);
                }
                if (!z.gesture.image || z.gesture.image.length === 0) return;
        
                var touchX, touchY, offsetX, offsetY, diffX, diffY, translateX, translateY, imageWidth, imageHeight, scaledWidth, scaledHeight, translateMinX, translateMinY, translateMaxX, translateMaxY, slideWidth, slideHeight;
        
                if (typeof z.image.touchesStart.x === 'undefined' && e) {
                    touchX = e.type === 'touchend' ? e.changedTouches[0].pageX : e.pageX;
                    touchY = e.type === 'touchend' ? e.changedTouches[0].pageY : e.pageY;
                }
                else {
                    touchX = z.image.touchesStart.x;
                    touchY = z.image.touchesStart.y;
                }
        
                if (z.scale && z.scale !== 1) {
                    // Zoom Out
                    z.scale = z.currentScale = 1;
                    z.gesture.imageWrap.transition(300).transform('translate3d(0,0,0)');
                    z.gesture.image.transition(300).transform('translate3d(0,0,0) scale(1)');
                    z.gesture.slide = undefined;
                }
                else {
                    // Zoom In
                    z.scale = z.currentScale = z.gesture.imageWrap.attr('data-swiper-zoom') || s.params.zoomMax;
                    if (e) {
                        slideWidth = z.gesture.slide[0].offsetWidth;
                        slideHeight = z.gesture.slide[0].offsetHeight;
                        offsetX = z.gesture.slide.offset().left;
                        offsetY = z.gesture.slide.offset().top;
                        diffX = offsetX + slideWidth/2 - touchX;
                        diffY = offsetY + slideHeight/2 - touchY;
        
                        imageWidth = z.gesture.image[0].offsetWidth;
                        imageHeight = z.gesture.image[0].offsetHeight;
                        scaledWidth = imageWidth * z.scale;
                        scaledHeight = imageHeight * z.scale;
        
                        translateMinX = Math.min((slideWidth / 2 - scaledWidth / 2), 0);
                        translateMinY = Math.min((slideHeight / 2 - scaledHeight / 2), 0);
                        translateMaxX = -translateMinX;
                        translateMaxY = -translateMinY;
        
                        translateX = diffX * z.scale;
                        translateY = diffY * z.scale;
        
                        if (translateX < translateMinX) {
                            translateX =  translateMinX;
                        }
                        if (translateX > translateMaxX) {
                            translateX = translateMaxX;
                        }
        
                        if (translateY < translateMinY) {
                            translateY =  translateMinY;
                        }
                        if (translateY > translateMaxY) {
                            translateY = translateMaxY;
                        }
                    }
                    else {
                        translateX = 0;
                        translateY = 0;
                    }
                    z.gesture.imageWrap.transition(300).transform('translate3d(' + translateX + 'px, ' + translateY + 'px,0)');
                    z.gesture.image.transition(300).transform('translate3d(0,0,0) scale(' + z.scale + ')');
                }
            },
            // Attach/Detach Events
            attachEvents: function (detach) {
                var action = detach ? 'off' : 'on';
        
                if (s.params.zoom) {
                    var target = s.slides;
                    var passiveListener = s.touchEvents.start === 'touchstart' && s.support.passiveListener && s.params.passiveListeners ? {passive: true, capture: false} : false;
                    // Scale image
                    if (s.support.gestures) {
                        s.slides[action]('gesturestart', s.zoom.onGestureStart, passiveListener);
                        s.slides[action]('gesturechange', s.zoom.onGestureChange, passiveListener);
                        s.slides[action]('gestureend', s.zoom.onGestureEnd, passiveListener);
                    }
                    else if (s.touchEvents.start === 'touchstart') {
                        s.slides[action](s.touchEvents.start, s.zoom.onGestureStart, passiveListener);
                        s.slides[action](s.touchEvents.move, s.zoom.onGestureChange, passiveListener);
                        s.slides[action](s.touchEvents.end, s.zoom.onGestureEnd, passiveListener);
                    }
        
                    // Move image
                    s[action]('touchStart', s.zoom.onTouchStart);
                    s.slides.each(function (index, slide){
                        if ($(slide).find('.' + s.params.zoomContainerClass).length > 0) {
                            $(slide)[action](s.touchEvents.move, s.zoom.onTouchMove);
                        }
                    });
                    s[action]('touchEnd', s.zoom.onTouchEnd);
        
                    // Scale Out
                    s[action]('transitionEnd', s.zoom.onTransitionEnd);
                    if (s.params.zoomToggle) {
                        s.on('doubleTap', s.zoom.toggleZoom);
                    }
                }
            },
            init: function () {
                s.zoom.attachEvents();
            },
            destroy: function () {
                s.zoom.attachEvents(true);
            }
        };

        /*=========================
          Plugins API. Collect all and init all plugins
          ===========================*/
        s._plugins = [];
        for (var plugin in s.plugins) {
            var p = s.plugins[plugin](s, s.params[plugin]);
            if (p) s._plugins.push(p);
        }
        // Method to call all plugins event/method
        s.callPlugins = function (eventName) {
            for (var i = 0; i < s._plugins.length; i++) {
                if (eventName in s._plugins[i]) {
                    s._plugins[i][eventName](arguments[1], arguments[2], arguments[3], arguments[4], arguments[5]);
                }
            }
        };

        /*=========================
          Events/Callbacks/Plugins Emitter
          ===========================*/
        function normalizeEventName (eventName) {
            if (eventName.indexOf('on') !== 0) {
                if (eventName[0] !== eventName[0].toUpperCase()) {
                    eventName = 'on' + eventName[0].toUpperCase() + eventName.substring(1);
                }
                else {
                    eventName = 'on' + eventName;
                }
            }
            return eventName;
        }
        s.emitterEventListeners = {
        
        };
        s.emit = function (eventName) {
            // Trigger callbacks
            if (s.params[eventName]) {
                s.params[eventName](arguments[1], arguments[2], arguments[3], arguments[4], arguments[5]);
            }
            var i;
            // Trigger events
            if (s.emitterEventListeners[eventName]) {
                for (i = 0; i < s.emitterEventListeners[eventName].length; i++) {
                    s.emitterEventListeners[eventName][i](arguments[1], arguments[2], arguments[3], arguments[4], arguments[5]);
                }
            }
            // Trigger plugins
            if (s.callPlugins) s.callPlugins(eventName, arguments[1], arguments[2], arguments[3], arguments[4], arguments[5]);
        };
        s.on = function (eventName, handler) {
            eventName = normalizeEventName(eventName);
            if (!s.emitterEventListeners[eventName]) s.emitterEventListeners[eventName] = [];
            s.emitterEventListeners[eventName].push(handler);
            return s;
        };
        s.off = function (eventName, handler) {
            var i;
            eventName = normalizeEventName(eventName);
            if (typeof handler === 'undefined') {
                // Remove all handlers for such event
                s.emitterEventListeners[eventName] = [];
                return s;
            }
            if (!s.emitterEventListeners[eventName] || s.emitterEventListeners[eventName].length === 0) return;
            for (i = 0; i < s.emitterEventListeners[eventName].length; i++) {
                if(s.emitterEventListeners[eventName][i] === handler) s.emitterEventListeners[eventName].splice(i, 1);
            }
            return s;
        };
        s.once = function (eventName, handler) {
            eventName = normalizeEventName(eventName);
            var _handler = function () {
                handler(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4]);
                s.off(eventName, _handler);
            };
            s.on(eventName, _handler);
            return s;
        };

        // Accessibility tools
        s.a11y = {
            makeFocusable: function ($el) {
                $el.attr('tabIndex', '0');
                return $el;
            },
            addRole: function ($el, role) {
                $el.attr('role', role);
                return $el;
            },
        
            addLabel: function ($el, label) {
                $el.attr('aria-label', label);
                return $el;
            },
        
            disable: function ($el) {
                $el.attr('aria-disabled', true);
                return $el;
            },
        
            enable: function ($el) {
                $el.attr('aria-disabled', false);
                return $el;
            },
        
            onEnterKey: function (event) {
                if (event.keyCode !== 13) return;
                if ($(event.target).is(s.params.nextButton)) {
                    s.onClickNext(event);
                    if (s.isEnd) {
                        s.a11y.notify(s.params.lastSlideMessage);
                    }
                    else {
                        s.a11y.notify(s.params.nextSlideMessage);
                    }
                }
                else if ($(event.target).is(s.params.prevButton)) {
                    s.onClickPrev(event);
                    if (s.isBeginning) {
                        s.a11y.notify(s.params.firstSlideMessage);
                    }
                    else {
                        s.a11y.notify(s.params.prevSlideMessage);
                    }
                }
                if ($(event.target).is('.' + s.params.bulletClass)) {
                    $(event.target)[0].click();
                }
            },
        
            liveRegion: $('<span class="' + s.params.notificationClass + '" aria-live="assertive" aria-atomic="true"></span>'),
        
            notify: function (message) {
                var notification = s.a11y.liveRegion;
                if (notification.length === 0) return;
                notification.html('');
                notification.html(message);
            },
            init: function () {
                // Setup accessibility
                if (s.params.nextButton && s.nextButton && s.nextButton.length > 0) {
                    s.a11y.makeFocusable(s.nextButton);
                    s.a11y.addRole(s.nextButton, 'button');
                    s.a11y.addLabel(s.nextButton, s.params.nextSlideMessage);
                }
                if (s.params.prevButton && s.prevButton && s.prevButton.length > 0) {
                    s.a11y.makeFocusable(s.prevButton);
                    s.a11y.addRole(s.prevButton, 'button');
                    s.a11y.addLabel(s.prevButton, s.params.prevSlideMessage);
                }
        
                $(s.container).append(s.a11y.liveRegion);
            },
            initPagination: function () {
                if (s.params.pagination && s.params.paginationClickable && s.bullets && s.bullets.length) {
                    s.bullets.each(function () {
                        var bullet = $(this);
                        s.a11y.makeFocusable(bullet);
                        s.a11y.addRole(bullet, 'button');
                        s.a11y.addLabel(bullet, s.params.paginationBulletMessage.replace(/{{index}}/, bullet.index() + 1));
                    });
                }
            },
            destroy: function () {
                if (s.a11y.liveRegion && s.a11y.liveRegion.length > 0) s.a11y.liveRegion.remove();
            }
        };
        

        /*=========================
          Init/Destroy
          ===========================*/
        s.init = function () {
            if (s.params.loop) s.createLoop();
            s.updateContainerSize();
            s.updateSlidesSize();
            s.updatePagination();
            if (s.params.scrollbar && s.scrollbar) {
                s.scrollbar.set();
                if (s.params.scrollbarDraggable) {
                    s.scrollbar.enableDraggable();
                }
            }
            if (s.params.effect !== 'slide' && s.effects[s.params.effect]) {
                if (!s.params.loop) s.updateProgress();
                s.effects[s.params.effect].setTranslate();
            }
            if (s.params.loop) {
                s.slideTo(s.params.initialSlide + s.loopedSlides, 0, s.params.runCallbacksOnInit);
            }
            else {
                s.slideTo(s.params.initialSlide, 0, s.params.runCallbacksOnInit);
                if (s.params.initialSlide === 0) {
                    if (s.parallax && s.params.parallax) s.parallax.setTranslate();
                    if (s.lazy && s.params.lazyLoading) {
                        s.lazy.load();
                        s.lazy.initialImageLoaded = true;
                    }
                }
            }
            s.attachEvents();
            if (s.params.observer && s.support.observer) {
                s.initObservers();
            }
            if (s.params.preloadImages && !s.params.lazyLoading) {
                s.preloadImages();
            }
            if (s.params.zoom && s.zoom) {
                s.zoom.init();
            }
            if (s.params.autoplay) {
                s.startAutoplay();
            }
            if (s.params.keyboardControl) {
                if (s.enableKeyboardControl) s.enableKeyboardControl();
            }
            if (s.params.mousewheelControl) {
                if (s.enableMousewheelControl) s.enableMousewheelControl();
            }
            // Deprecated hashnavReplaceState changed to replaceState for use in hashnav and history
            if (s.params.hashnavReplaceState) {
                s.params.replaceState = s.params.hashnavReplaceState;
            }
            if (s.params.history) {
                if (s.history) s.history.init();
            }
            if (s.params.hashnav) {
                if (s.hashnav) s.hashnav.init();
            }
            if (s.params.a11y && s.a11y) s.a11y.init();
            s.emit('onInit', s);
        };
        
        // Cleanup dynamic styles
        s.cleanupStyles = function () {
            // Container
            s.container.removeClass(s.classNames.join(' ')).removeAttr('style');
        
            // Wrapper
            s.wrapper.removeAttr('style');
        
            // Slides
            if (s.slides && s.slides.length) {
                s.slides
                    .removeClass([
                      s.params.slideVisibleClass,
                      s.params.slideActiveClass,
                      s.params.slideNextClass,
                      s.params.slidePrevClass
                    ].join(' '))
                    .removeAttr('style')
                    .removeAttr('data-swiper-column')
                    .removeAttr('data-swiper-row');
            }
        
            // Pagination/Bullets
            if (s.paginationContainer && s.paginationContainer.length) {
                s.paginationContainer.removeClass(s.params.paginationHiddenClass);
            }
            if (s.bullets && s.bullets.length) {
                s.bullets.removeClass(s.params.bulletActiveClass);
            }
        
            // Buttons
            if (s.params.prevButton) $(s.params.prevButton).removeClass(s.params.buttonDisabledClass);
            if (s.params.nextButton) $(s.params.nextButton).removeClass(s.params.buttonDisabledClass);
        
            // Scrollbar
            if (s.params.scrollbar && s.scrollbar) {
                if (s.scrollbar.track && s.scrollbar.track.length) s.scrollbar.track.removeAttr('style');
                if (s.scrollbar.drag && s.scrollbar.drag.length) s.scrollbar.drag.removeAttr('style');
            }
        };
        
        // Destroy
        s.destroy = function (deleteInstance, cleanupStyles) {
            // Detach evebts
            s.detachEvents();
            // Stop autoplay
            s.stopAutoplay();
            // Disable draggable
            if (s.params.scrollbar && s.scrollbar) {
                if (s.params.scrollbarDraggable) {
                    s.scrollbar.disableDraggable();
                }
            }
            // Destroy loop
            if (s.params.loop) {
                s.destroyLoop();
            }
            // Cleanup styles
            if (cleanupStyles) {
                s.cleanupStyles();
            }
            // Disconnect observer
            s.disconnectObservers();
        
            // Destroy zoom
            if (s.params.zoom && s.zoom) {
                s.zoom.destroy();
            }
            // Disable keyboard/mousewheel
            if (s.params.keyboardControl) {
                if (s.disableKeyboardControl) s.disableKeyboardControl();
            }
            if (s.params.mousewheelControl) {
                if (s.disableMousewheelControl) s.disableMousewheelControl();
            }
            // Disable a11y
            if (s.params.a11y && s.a11y) s.a11y.destroy();
            // Delete history popstate
            if (s.params.history && !s.params.replaceState) {
                window.removeEventListener('popstate', s.history.setHistoryPopState);
            }
            if (s.params.hashnav && s.hashnav)  {
                s.hashnav.destroy();
            }
            // Destroy callback
            s.emit('onDestroy');
            // Delete instance
            if (deleteInstance !== false) s = null;
        };
        
        s.init();
        

    
        // Return swiper instance
        return s;
    };
    

    /*==================================================
        Prototype
    ====================================================*/
    MBTGamesScroller.prototype = {
        isSafari: (function () {
            var ua = navigator.userAgent.toLowerCase();
            return (ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0);
        })(),
        isUiWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(navigator.userAgent),
        isArray: function (arr) {
            return Object.prototype.toString.apply(arr) === '[object Array]';
        },
        /*==================================================
        Browser
        ====================================================*/
        browser: {
            ie: window.navigator.pointerEnabled || window.navigator.msPointerEnabled,
            ieTouch: (window.navigator.msPointerEnabled && window.navigator.msMaxTouchPoints > 1) || (window.navigator.pointerEnabled && window.navigator.maxTouchPoints > 1),
            lteIE9: (function() {
                // create temporary DIV
                var div = document.createElement('div');
                // add content to tmp DIV which is wrapped into the IE HTML conditional statement
                div.innerHTML = '<!--[if lte IE 9]><i></i><![endif]-->';
                // return true / false value based on what will browser render
                return div.getElementsByTagName('i').length === 1;
            })()
        },
        /*==================================================
        Devices
        ====================================================*/
        device: (function () {
            var ua = navigator.userAgent;
            var android = ua.match(/(Android);?[\s\/]+([\d.]+)?/);
            var ipad = ua.match(/(iPad).*OS\s([\d_]+)/);
            var ipod = ua.match(/(iPod)(.*OS\s([\d_]+))?/);
            var iphone = !ipad && ua.match(/(iPhone\sOS)\s([\d_]+)/);
            return {
                ios: ipad || iphone || ipod,
                android: android
            };
        })(),
        /*==================================================
        Feature Detection
        ====================================================*/
        support: {
            touch : (window.Modernizr && Modernizr.touch === true) || (function () {
                return !!(('ontouchstart' in window) || window.DocumentTouch && document instanceof DocumentTouch);
            })(),
    
            transforms3d : (window.Modernizr && Modernizr.csstransforms3d === true) || (function () {
                var div = document.createElement('div').style;
                return ('webkitPerspective' in div || 'MozPerspective' in div || 'OPerspective' in div || 'MsPerspective' in div || 'perspective' in div);
            })(),
    
            flexbox: (function () {
                var div = document.createElement('div').style;
                var styles = ('alignItems webkitAlignItems webkitBoxAlign msFlexAlign mozBoxAlign webkitFlexDirection msFlexDirection mozBoxDirection mozBoxOrient webkitBoxDirection webkitBoxOrient').split(' ');
                for (var i = 0; i < styles.length; i++) {
                    if (styles[i] in div) return true;
                }
            })(),
    
            observer: (function () {
                return ('MutationObserver' in window || 'WebkitMutationObserver' in window);
            })(),
    
            passiveListener: (function () {
                var supportsPassive = false;
                try {
                    var opts = Object.defineProperty({}, 'passive', {
                        get: function() {
                            supportsPassive = true;
                        }
                    });
                    window.addEventListener('testPassiveListener', null, opts);
                } catch (e) {}
                return supportsPassive;
            })(),
    
            gestures: (function () {
                return 'ongesturestart' in window;
            })()
        },
        /*==================================================
        Plugins
        ====================================================*/
        plugins: {}
    };
    

    /*===========================
    Dom7 Library
    ===========================*/
    var Dom7 = (function () {
        var Dom7 = function (arr) {
            var _this = this, i = 0;
            // Create array-like object
            for (i = 0; i < arr.length; i++) {
                _this[i] = arr[i];
            }
            _this.length = arr.length;
            // Return collection with methods
            return this;
        };
        var $ = function (selector, context) {
            var arr = [], i = 0;
            if (selector && !context) {
                if (selector instanceof Dom7) {
                    return selector;
                }
            }
            if (selector) {
                // String
                if (typeof selector === 'string') {
                    var els, tempParent, html = selector.trim();
                    if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) {
                        var toCreate = 'div';
                        if (html.indexOf('<li') === 0) toCreate = 'ul';
                        if (html.indexOf('<tr') === 0) toCreate = 'tbody';
                        if (html.indexOf('<td') === 0 || html.indexOf('<th') === 0) toCreate = 'tr';
                        if (html.indexOf('<tbody') === 0) toCreate = 'table';
                        if (html.indexOf('<option') === 0) toCreate = 'select';
                        tempParent = document.createElement(toCreate);
                        tempParent.innerHTML = selector;
                        for (i = 0; i < tempParent.childNodes.length; i++) {
                            arr.push(tempParent.childNodes[i]);
                        }
                    }
                    else {
                        if (!context && selector[0] === '#' && !selector.match(/[ .<>:~]/)) {
                            // Pure ID selector
                            els = [document.getElementById(selector.split('#')[1])];
                        }
                        else {
                            // Other selectors
                            els = (context || document).querySelectorAll(selector);
                        }
                        for (i = 0; i < els.length; i++) {
                            if (els[i]) arr.push(els[i]);
                        }
                    }
                }
                // Node/element
                else if (selector.nodeType || selector === window || selector === document) {
                    arr.push(selector);
                }
                //Array of elements or instance of Dom
                else if (selector.length > 0 && selector[0].nodeType) {
                    for (i = 0; i < selector.length; i++) {
                        arr.push(selector[i]);
                    }
                }
            }
            return new Dom7(arr);
        };
        Dom7.prototype = {
            // Classes and attriutes
            addClass: function (className) {
                if (typeof className === 'undefined') {
                    return this;
                }
                var classes = className.split(' ');
                for (var i = 0; i < classes.length; i++) {
                    for (var j = 0; j < this.length; j++) {
                        this[j].classList.add(classes[i]);
                    }
                }
                return this;
            },
            removeClass: function (className) {
                var classes = className.split(' ');
                for (var i = 0; i < classes.length; i++) {
                    for (var j = 0; j < this.length; j++) {
                        this[j].classList.remove(classes[i]);
                    }
                }
                return this;
            },
            hasClass: function (className) {
                if (!this[0]) return false;
                else return this[0].classList.contains(className);
            },
            toggleClass: function (className) {
                var classes = className.split(' ');
                for (var i = 0; i < classes.length; i++) {
                    for (var j = 0; j < this.length; j++) {
                        this[j].classList.toggle(classes[i]);
                    }
                }
                return this;
            },
            attr: function (attrs, value) {
                if (arguments.length === 1 && typeof attrs === 'string') {
                    // Get attr
                    if (this[0]) return this[0].getAttribute(attrs);
                    else return undefined;
                }
                else {
                    // Set attrs
                    for (var i = 0; i < this.length; i++) {
                        if (arguments.length === 2) {
                            // String
                            this[i].setAttribute(attrs, value);
                        }
                        else {
                            // Object
                            for (var attrName in attrs) {
                                this[i][attrName] = attrs[attrName];
                                this[i].setAttribute(attrName, attrs[attrName]);
                            }
                        }
                    }
                    return this;
                }
            },
            removeAttr: function (attr) {
                for (var i = 0; i < this.length; i++) {
                    this[i].removeAttribute(attr);
                }
                return this;
            },
            data: function (key, value) {
                if (typeof value === 'undefined') {
                    // Get value
                    if (this[0]) {
                        var dataKey = this[0].getAttribute('data-' + key);
                        if (dataKey) return dataKey;
                        else if (this[0].dom7ElementDataStorage && (key in this[0].dom7ElementDataStorage)) return this[0].dom7ElementDataStorage[key];
                        else return undefined;
                    }
                    else return undefined;
                }
                else {
                    // Set value
                    for (var i = 0; i < this.length; i++) {
                        var el = this[i];
                        if (!el.dom7ElementDataStorage) el.dom7ElementDataStorage = {};
                        el.dom7ElementDataStorage[key] = value;
                    }
                    return this;
                }
            },
            // Transforms
            transform : function (transform) {
                for (var i = 0; i < this.length; i++) {
                    var elStyle = this[i].style;
                    elStyle.webkitTransform = elStyle.MsTransform = elStyle.msTransform = elStyle.MozTransform = elStyle.OTransform = elStyle.transform = transform;
                }
                return this;
            },
            transition: function (duration) {
                if (typeof duration !== 'string') {
                    duration = duration + 'ms';
                }
                for (var i = 0; i < this.length; i++) {
                    var elStyle = this[i].style;
                    elStyle.webkitTransitionDuration = elStyle.MsTransitionDuration = elStyle.msTransitionDuration = elStyle.MozTransitionDuration = elStyle.OTransitionDuration = elStyle.transitionDuration = duration;
                }
                return this;
            },
            //Events
            on: function (eventName, targetSelector, listener, capture) {
                function handleLiveEvent(e) {
                    var target = e.target;
                    if ($(target).is(targetSelector)) listener.call(target, e);
                    else {
                        var parents = $(target).parents();
                        for (var k = 0; k < parents.length; k++) {
                            if ($(parents[k]).is(targetSelector)) listener.call(parents[k], e);
                        }
                    }
                }
                var events = eventName.split(' ');
                var i, j;
                for (i = 0; i < this.length; i++) {
                    if (typeof targetSelector === 'function' || targetSelector === false) {
                        // Usual events
                        if (typeof targetSelector === 'function') {
                            listener = arguments[1];
                            capture = arguments[2] || false;
                        }
                        for (j = 0; j < events.length; j++) {
                            this[i].addEventListener(events[j], listener, capture);
                        }
                    }
                    else {
                        //Live events
                        for (j = 0; j < events.length; j++) {
                            if (!this[i].dom7LiveListeners) this[i].dom7LiveListeners = [];
                            this[i].dom7LiveListeners.push({listener: listener, liveListener: handleLiveEvent});
                            this[i].addEventListener(events[j], handleLiveEvent, capture);
                        }
                    }
                }
    
                return this;
            },
            off: function (eventName, targetSelector, listener, capture) {
                var events = eventName.split(' ');
                for (var i = 0; i < events.length; i++) {
                    for (var j = 0; j < this.length; j++) {
                        if (typeof targetSelector === 'function' || targetSelector === false) {
                            // Usual events
                            if (typeof targetSelector === 'function') {
                                listener = arguments[1];
                                capture = arguments[2] || false;
                            }
                            this[j].removeEventListener(events[i], listener, capture);
                        }
                        else {
                            // Live event
                            if (this[j].dom7LiveListeners) {
                                for (var k = 0; k < this[j].dom7LiveListeners.length; k++) {
                                    if (this[j].dom7LiveListeners[k].listener === listener) {
                                        this[j].removeEventListener(events[i], this[j].dom7LiveListeners[k].liveListener, capture);
                                    }
                                }
                            }
                        }
                    }
                }
                return this;
            },
            once: function (eventName, targetSelector, listener, capture) {
                var dom = this;
                if (typeof targetSelector === 'function') {
                    targetSelector = false;
                    listener = arguments[1];
                    capture = arguments[2];
                }
                function proxy(e) {
                    listener(e);
                    dom.off(eventName, targetSelector, proxy, capture);
                }
                dom.on(eventName, targetSelector, proxy, capture);
            },
            trigger: function (eventName, eventData) {
                for (var i = 0; i < this.length; i++) {
                    var evt;
                    try {
                        evt = new window.CustomEvent(eventName, {detail: eventData, bubbles: true, cancelable: true});
                    }
                    catch (e) {
                        evt = document.createEvent('Event');
                        evt.initEvent(eventName, true, true);
                        evt.detail = eventData;
                    }
                    this[i].dispatchEvent(evt);
                }
                return this;
            },
            transitionEnd: function (callback) {
                var events = ['webkitTransitionEnd', 'transitionend', 'oTransitionEnd', 'MSTransitionEnd', 'msTransitionEnd'],
                    i, j, dom = this;
                function fireCallBack(e) {
                    /*jshint validthis:true */
                    if (e.target !== this) return;
                    callback.call(this, e);
                    for (i = 0; i < events.length; i++) {
                        dom.off(events[i], fireCallBack);
                    }
                }
                if (callback) {
                    for (i = 0; i < events.length; i++) {
                        dom.on(events[i], fireCallBack);
                    }
                }
                return this;
            },
            // Sizing/Styles
            width: function () {
                if (this[0] === window) {
                    return window.innerWidth;
                }
                else {
                    if (this.length > 0) {
                        return parseFloat(this.css('width'));
                    }
                    else {
                        return null;
                    }
                }
            },
            outerWidth: function (includeMargins) {
                if (this.length > 0) {
                    if (includeMargins)
                        return this[0].offsetWidth + parseFloat(this.css('margin-right')) + parseFloat(this.css('margin-left'));
                    else
                        return this[0].offsetWidth;
                }
                else return null;
            },
            height: function () {
                if (this[0] === window) {
                    return window.innerHeight;
                }
                else {
                    if (this.length > 0) {
                        return parseFloat(this.css('height'));
                    }
                    else {
                        return null;
                    }
                }
            },
            outerHeight: function (includeMargins) {
                if (this.length > 0) {
                    if (includeMargins)
                        return this[0].offsetHeight + parseFloat(this.css('margin-top')) + parseFloat(this.css('margin-bottom'));
                    else
                        return this[0].offsetHeight;
                }
                else return null;
            },
            offset: function () {
                if (this.length > 0) {
                    var el = this[0];
                    var box = el.getBoundingClientRect();
                    var body = document.body;
                    var clientTop  = el.clientTop  || body.clientTop  || 0;
                    var clientLeft = el.clientLeft || body.clientLeft || 0;
                    var scrollTop  = window.pageYOffset || el.scrollTop;
                    var scrollLeft = window.pageXOffset || el.scrollLeft;
                    return {
                        top: box.top  + scrollTop  - clientTop,
                        left: box.left + scrollLeft - clientLeft
                    };
                }
                else {
                    return null;
                }
            },
            css: function (props, value) {
                var i;
                if (arguments.length === 1) {
                    if (typeof props === 'string') {
                        if (this[0]) return window.getComputedStyle(this[0], null).getPropertyValue(props);
                    }
                    else {
                        for (i = 0; i < this.length; i++) {
                            for (var prop in props) {
                                this[i].style[prop] = props[prop];
                            }
                        }
                        return this;
                    }
                }
                if (arguments.length === 2 && typeof props === 'string') {
                    for (i = 0; i < this.length; i++) {
                        this[i].style[props] = value;
                    }
                    return this;
                }
                return this;
            },
    
            //Dom manipulation
            each: function (callback) {
                for (var i = 0; i < this.length; i++) {
                    callback.call(this[i], i, this[i]);
                }
                return this;
            },
            html: function (html) {
                if (typeof html === 'undefined') {
                    return this[0] ? this[0].innerHTML : undefined;
                }
                else {
                    for (var i = 0; i < this.length; i++) {
                        this[i].innerHTML = html;
                    }
                    return this;
                }
            },
            text: function (text) {
                if (typeof text === 'undefined') {
                    if (this[0]) {
                        return this[0].textContent.trim();
                    }
                    else return null;
                }
                else {
                    for (var i = 0; i < this.length; i++) {
                        this[i].textContent = text;
                    }
                    return this;
                }
            },
            is: function (selector) {
                if (!this[0]) return false;
                var compareWith, i;
                if (typeof selector === 'string') {
                    var el = this[0];
                    if (el === document) return selector === document;
                    if (el === window) return selector === window;
    
                    if (el.matches) return el.matches(selector);
                    else if (el.webkitMatchesSelector) return el.webkitMatchesSelector(selector);
                    else if (el.mozMatchesSelector) return el.mozMatchesSelector(selector);
                    else if (el.msMatchesSelector) return el.msMatchesSelector(selector);
                    else {
                        compareWith = $(selector);
                        for (i = 0; i < compareWith.length; i++) {
                            if (compareWith[i] === this[0]) return true;
                        }
                        return false;
                    }
                }
                else if (selector === document) return this[0] === document;
                else if (selector === window) return this[0] === window;
                else {
                    if (selector.nodeType || selector instanceof Dom7) {
                        compareWith = selector.nodeType ? [selector] : selector;
                        for (i = 0; i < compareWith.length; i++) {
                            if (compareWith[i] === this[0]) return true;
                        }
                        return false;
                    }
                    return false;
                }
    
            },
            index: function () {
                if (this[0]) {
                    var child = this[0];
                    var i = 0;
                    while ((child = child.previousSibling) !== null) {
                        if (child.nodeType === 1) i++;
                    }
                    return i;
                }
                else return undefined;
            },
            eq: function (index) {
                if (typeof index === 'undefined') return this;
                var length = this.length;
                var returnIndex;
                if (index > length - 1) {
                    return new Dom7([]);
                }
                if (index < 0) {
                    returnIndex = length + index;
                    if (returnIndex < 0) return new Dom7([]);
                    else return new Dom7([this[returnIndex]]);
                }
                return new Dom7([this[index]]);
            },
            append: function (newChild) {
                var i, j;
                for (i = 0; i < this.length; i++) {
                    if (typeof newChild === 'string') {
                        var tempDiv = document.createElement('div');
                        tempDiv.innerHTML = newChild;
                        while (tempDiv.firstChild) {
                            this[i].appendChild(tempDiv.firstChild);
                        }
                    }
                    else if (newChild instanceof Dom7) {
                        for (j = 0; j < newChild.length; j++) {
                            this[i].appendChild(newChild[j]);
                        }
                    }
                    else {
                        this[i].appendChild(newChild);
                    }
                }
                return this;
            },
            prepend: function (newChild) {
                var i, j;
                for (i = 0; i < this.length; i++) {
                    if (typeof newChild === 'string') {
                        var tempDiv = document.createElement('div');
                        tempDiv.innerHTML = newChild;
                        for (j = tempDiv.childNodes.length - 1; j >= 0; j--) {
                            this[i].insertBefore(tempDiv.childNodes[j], this[i].childNodes[0]);
                        }
                        // this[i].insertAdjacentHTML('afterbegin', newChild);
                    }
                    else if (newChild instanceof Dom7) {
                        for (j = 0; j < newChild.length; j++) {
                            this[i].insertBefore(newChild[j], this[i].childNodes[0]);
                        }
                    }
                    else {
                        this[i].insertBefore(newChild, this[i].childNodes[0]);
                    }
                }
                return this;
            },
            insertBefore: function (selector) {
                var before = $(selector);
                for (var i = 0; i < this.length; i++) {
                    if (before.length === 1) {
                        before[0].parentNode.insertBefore(this[i], before[0]);
                    }
                    else if (before.length > 1) {
                        for (var j = 0; j < before.length; j++) {
                            before[j].parentNode.insertBefore(this[i].cloneNode(true), before[j]);
                        }
                    }
                }
            },
            insertAfter: function (selector) {
                var after = $(selector);
                for (var i = 0; i < this.length; i++) {
                    if (after.length === 1) {
                        after[0].parentNode.insertBefore(this[i], after[0].nextSibling);
                    }
                    else if (after.length > 1) {
                        for (var j = 0; j < after.length; j++) {
                            after[j].parentNode.insertBefore(this[i].cloneNode(true), after[j].nextSibling);
                        }
                    }
                }
            },
            next: function (selector) {
                if (this.length > 0) {
                    if (selector) {
                        if (this[0].nextElementSibling && $(this[0].nextElementSibling).is(selector)) return new Dom7([this[0].nextElementSibling]);
                        else return new Dom7([]);
                    }
                    else {
                        if (this[0].nextElementSibling) return new Dom7([this[0].nextElementSibling]);
                        else return new Dom7([]);
                    }
                }
                else return new Dom7([]);
            },
            nextAll: function (selector) {
                var nextEls = [];
                var el = this[0];
                if (!el) return new Dom7([]);
                while (el.nextElementSibling) {
                    var next = el.nextElementSibling;
                    if (selector) {
                        if($(next).is(selector)) nextEls.push(next);
                    }
                    else nextEls.push(next);
                    el = next;
                }
                return new Dom7(nextEls);
            },
            prev: function (selector) {
                if (this.length > 0) {
                    if (selector) {
                        if (this[0].previousElementSibling && $(this[0].previousElementSibling).is(selector)) return new Dom7([this[0].previousElementSibling]);
                        else return new Dom7([]);
                    }
                    else {
                        if (this[0].previousElementSibling) return new Dom7([this[0].previousElementSibling]);
                        else return new Dom7([]);
                    }
                }
                else return new Dom7([]);
            },
            prevAll: function (selector) {
                var prevEls = [];
                var el = this[0];
                if (!el) return new Dom7([]);
                while (el.previousElementSibling) {
                    var prev = el.previousElementSibling;
                    if (selector) {
                        if($(prev).is(selector)) prevEls.push(prev);
                    }
                    else prevEls.push(prev);
                    el = prev;
                }
                return new Dom7(prevEls);
            },
            parent: function (selector) {
                var parents = [];
                for (var i = 0; i < this.length; i++) {
                    if (selector) {
                        if ($(this[i].parentNode).is(selector)) parents.push(this[i].parentNode);
                    }
                    else {
                        parents.push(this[i].parentNode);
                    }
                }
                return $($.unique(parents));
            },
            parents: function (selector) {
                var parents = [];
                for (var i = 0; i < this.length; i++) {
                    var parent = this[i].parentNode;
                    while (parent) {
                        if (selector) {
                            if ($(parent).is(selector)) parents.push(parent);
                        }
                        else {
                            parents.push(parent);
                        }
                        parent = parent.parentNode;
                    }
                }
                return $($.unique(parents));
            },
            find : function (selector) {
                var foundElements = [];
                for (var i = 0; i < this.length; i++) {
                    var found = this[i].querySelectorAll(selector);
                    for (var j = 0; j < found.length; j++) {
                        foundElements.push(found[j]);
                    }
                }
                return new Dom7(foundElements);
            },
            children: function (selector) {
                var children = [];
                for (var i = 0; i < this.length; i++) {
                    var childNodes = this[i].childNodes;
    
                    for (var j = 0; j < childNodes.length; j++) {
                        if (!selector) {
                            if (childNodes[j].nodeType === 1) children.push(childNodes[j]);
                        }
                        else {
                            if (childNodes[j].nodeType === 1 && $(childNodes[j]).is(selector)) children.push(childNodes[j]);
                        }
                    }
                }
                return new Dom7($.unique(children));
            },
            remove: function () {
                for (var i = 0; i < this.length; i++) {
                    if (this[i].parentNode) this[i].parentNode.removeChild(this[i]);
                }
                return this;
            },
            add: function () {
                var dom = this;
                var i, j;
                for (i = 0; i < arguments.length; i++) {
                    var toAdd = $(arguments[i]);
                    for (j = 0; j < toAdd.length; j++) {
                        dom[dom.length] = toAdd[j];
                        dom.length++;
                    }
                }
                return dom;
            }
        };
        $.fn = Dom7.prototype;
        $.unique = function (arr) {
            var unique = [];
            for (var i = 0; i < arr.length; i++) {
                if (unique.indexOf(arr[i]) === -1) unique.push(arr[i]);
            }
            return unique;
        };
    
        return $;
    })();
    

    /*===========================
     Get Dom libraries
     ===========================*/
    var swiperDomPlugins = ['jQuery', 'Zepto', 'Dom7'];
    for (var i = 0; i < swiperDomPlugins.length; i++) {
        if (window[swiperDomPlugins[i]]) {
            addLibraryPlugin(window[swiperDomPlugins[i]]);
        }
    }
    // Required DOM Plugins
    var domLib;
    if (typeof Dom7 === 'undefined') {
        domLib = window.Dom7 || window.Zepto || window.jQuery;
    }
    else {
        domLib = Dom7;
    }

    /*===========================
    Add .swiper plugin from Dom libraries
    ===========================*/
    function addLibraryPlugin(lib) {
        lib.fn.swiper = function (params) {
            var firstInstance;
            lib(this).each(function () {
                var s = new Swiper(this, params);
                if (!firstInstance) firstInstance = s;
            });
            return firstInstance;
        };
    }
    
    if (domLib) {
        if (!('transitionEnd' in domLib.fn)) {
            domLib.fn.transitionEnd = function (callback) {
                var events = ['webkitTransitionEnd', 'transitionend', 'oTransitionEnd', 'MSTransitionEnd', 'msTransitionEnd'],
                    i, j, dom = this;
                function fireCallBack(e) {
                    /*jshint validthis:true */
                    if (e.target !== this) return;
                    callback.call(this, e);
                    for (i = 0; i < events.length; i++) {
                        dom.off(events[i], fireCallBack);
                    }
                }
                if (callback) {
                    for (i = 0; i < events.length; i++) {
                        dom.on(events[i], fireCallBack);
                    }
                }
                return this;
            };
        }
        if (!('transform' in domLib.fn)) {
            domLib.fn.transform = function (transform) {
                for (var i = 0; i < this.length; i++) {
                    var elStyle = this[i].style;
                    elStyle.webkitTransform = elStyle.MsTransform = elStyle.msTransform = elStyle.MozTransform = elStyle.OTransform = elStyle.transform = transform;
                }
                return this;
            };
        }
        if (!('transition' in domLib.fn)) {
            domLib.fn.transition = function (duration) {
                if (typeof duration !== 'string') {
                    duration = duration + 'ms';
                }
                for (var i = 0; i < this.length; i++) {
                    var elStyle = this[i].style;
                    elStyle.webkitTransitionDuration = elStyle.MsTransitionDuration = elStyle.msTransitionDuration = elStyle.MozTransitionDuration = elStyle.OTransitionDuration = elStyle.transitionDuration = duration;
                }
                return this;
            };
        }
        if (!('outerWidth' in domLib.fn)) {
            domLib.fn.outerWidth = function (includeMargins) {
                if (this.length > 0) {
                    if (includeMargins)
                        return this[0].offsetWidth + parseFloat(this.css('margin-right')) + parseFloat(this.css('margin-left'));
                    else
                        return this[0].offsetWidth;
                }
                else return null;
            };
        }
    }

    window.MBTGamesScroller = MBTGamesScroller;
})();

MBT = {};
MBT.API = {};
MBT.API.Widgets = {};
MBT.API.Utils = {};
MBT.API.URL = {};
MBT.API.History = {};
MBT.API.Function = {};
MBT.API.Event = {};
MBT.API.UI = {};
MBT.API.Base64 = {};
MBT.API.Storage = {};
MBT.API.Cookies = {};
MBT.API.livePagesTypeIndex = null;
MBT.API.livePagesLangId = null;
MBT.API.imageServiceUrl = null;

MBT.API.livePagesTypeIndexConfig = null;

/* cross-client translations */
MBT.API.translationsLang = null;
MBT.API.translationsSetId = null;

MBT.API.addCSS = true;

MBT.API.getLivePagesTypeIndex = function(leagueId) {

    if( typeof leagueId !== 'undefined' && typeof MBT.API.livePagesTypeIndexConfig == 'function' ){
        return MBT.API.livePagesTypeIndexConfig(leagueId);
    }

    return MBT.API.livePagesTypeIndex;
};

MBT.API.getLivePagesLangId = function() {
    return MBT.API.livePagesLangId;
};

if (typeof(customServiceUrl) != 'undefined' && customServiceUrl != '') {
    MBT.API.ServiceUrl = customServiceUrl;
} else {
    MBT.API.ServiceUrl = "https://widgets.baskethotel.com/";
}
MBT.API.WidgetUrl = MBT.API.ServiceUrl + 'widget-service/show?';
MBT.API.StatisticsUrl = "https://185.38.167.137/stats.php";

MBT.API.stylesheetIndex = 0;
//MBT.API.ApiCSSUrl = MBT.API.ServiceUrl + "css.php";

MBT.API.ShowSurnameFirst = false;
MBT.API.FirstNamePriority = false;

MBT.API.NAVIGATION_TYPE_INNER = 1;
MBT.API.NAVIGATION_TYPE_EXTERNAL = 2;
MBT.API.NAVIGATION_TYPE_CUSTOM = 3;

/**
 * Widget types
 */
MBT.API.Widgets.TEST_WIDGET = 1;

MBT.API.Widgets.PLAYER_FULL_VIEW_WIDGET = 100;
MBT.API.Widgets.PLAYER_SMALL_WIDGET = 101;
MBT.API.Widgets.PLAYER_ABC_LIST_WIDGET = 105;
MBT.API.Widgets.PLAYER_COMPARISON_WIDGET = 120;
MBT.API.Widgets.PLAYER_BIRTHDAY_WIDGET = 106;

MBT.API.Widgets.TEAM_FULL_VIEW_WIDGET = 200;
MBT.API.Widgets.TEAM_LOGO_LIST_WIDGET = 201;
MBT.API.Widgets.TEAM_SCHEDULE_WIDGET = 203;
MBT.API.Widgets.TEAM_RESULTS_WIDGET = 204;
MBT.API.Widgets.TEAM_IN_LEAGUES_SCHEDULE_WIDGET = 205;
MBT.API.Widgets.TEAM_IN_LEAGUES_LEADERS = 206;
MBT.API.Widgets.TEAM_COMPARISON_WIDGET = 220;
MBT.API.Widgets.TEAM_GAMES_SCROLLER = 225;

MBT.API.Widgets.SEASON_STANDINGS_SHORT_WIDGET = 300;
MBT.API.Widgets.SEASON_STANDINGS_LONG_WIDGET = 301;
MBT.API.Widgets.SEASON_SCHEDULE_SHORT_WIDGET = 302;
MBT.API.Widgets.SEASON_SCHEDULE_LONG_WIDGET = 303;
MBT.API.Widgets.SEASON_FINAL_STANDINGS_WIDGET = 304;
MBT.API.Widgets.SEASON_LEADERS_SHORT_WIDGET = 310;
MBT.API.Widgets.SEASON_PLAYERS_TOP_5_WIDGET = 311;
MBT.API.Widgets.SEASON_RESULTS_BY_TEAMS_WIDGET = 330;

MBT.API.Widgets.SEASON_SELECTOR_WIDGET = 320;

MBT.API.Widgets.GAME_FULL_VIEW_WIDGET = 400;
MBT.API.Widgets.GAME_LIVE_BANNER_WIDGET = 401;
MBT.API.Widgets.GAME_QUOTES_WIDGET = 402;
MBT.API.Widgets.GAME_MEDIA_WIDGET = 403;
MBT.API.Widgets.GAME_PLAY_BY_PLAY_WIDGET = 404;

MBT.API.Widgets.LEAGUE_LIST_WITH_REGIONS_WIDGET = 500;
MBT.API.Widgets.LEAGUE_RESULTS_VIEW_WIDGET = 501;
MBT.API.Widgets.LEAGUE_TRANSFER_LIST_WIDGET = 502;
MBT.API.Widgets.ALL_LEAGUES_SCHEDULE_WIDGET = 510;
MBT.API.Widgets.TODAYS_GAMES_WIDGET = 511;
MBT.API.Widgets.CALENDAR_SCHEDULE_WIDGET = 520;
MBT.API.Widgets.LEAGUE_SELECTOR_WIDGET = 530;

MBT.API.Widgets.COMPETITION_HISTORY_WIDGET = 550;

MBT.API.Widgets.STATISTICS_PLAYERS_WIDGET = 600;
MBT.API.Widgets.STATISTICS_TEAMS_WIDGET = 601;
MBT.API.Widgets.STATISTICS_COACHES_WIDGET = 602;
MBT.API.Widgets.STATISTICS_SCORING_WIDGET = 603;
MBT.API.Widgets.STATISTICS_EFF_LEADERS_WIDGET = 604;
MBT.API.Widgets.SELECTED_LEADERS_WIDGET = 605;

MBT.API.Widgets.RECORDS_PLAYERS_WIDGET = 700;
MBT.API.Widgets.RECORDS_TEAMS_WIDGET = 701;

MBT.API.Widgets.CLUB_FULL_VIEW_WIDGET = 800;

MBT.API.Widgets.ARENA_FULL_WIDGET = 810;

MBT.API.Widgets.SEARCH_SIMPLE_WIDGET = 900;

MBT.API.Widgets.PLAYOFF_SMALL_WIDGET = 1000;
MBT.API.Widgets.PLAYOFF_LARGE_WIDGET = 1001;

MBT.API.Widgets.ENROLLMENT_LIST_WIDGET = 2001;

MBT.API.Widgets.DISTRIBUTION_CLUB_WIDGET = 3000;

MBT.API.Widgets.NT_TEAM_FULL_WIDGET = 4000;
MBT.API.Widgets.NT_FRONTPAGE_FULL_WIDGET = 4010;
MBT.API.Widgets.NT_FRONTPAGE_COMPACT_WIDGET = 4011;
MBT.API.Widgets.NT_STATISTICS_PLAYER_WIDGET = 4100;
MBT.API.Widgets.NT_TOURNAMENT_WIDGET = 4200;
MBT.API.Widgets.NT_GAMES_OVERVIEW_WIDGET = 4300;
MBT.API.Widgets.NT_GAME_CARD_WIDGET = 4400;
MBT.API.Widgets.NT_GAMES_AND_TOURNAMENTS_WIDGET = 4500;

MBT.API.Widgets.NT_PLAYER_WIDGET = 4600;
MBT.API.Widgets.NT_PLAYER_LIST_WIDGET = 4650;

MBT.API.Widgets.GAMES_REFEREES_AND_HOST_TEAMS_WIDGET = 5000;
MBT.API.Widgets.GAMES_SCROLLER_WIDGET = 5100;


MBT.API.Widgets.WINNING_PERCENTAGE = 6000;

MBT.API.Widgets.ATTENDANCE_FULL = 6200;
MBT.API.Widgets.ATTENDANCE_TOP5 = 6201;

MBT.API.Widgets.GraphsLoaded = false;
MBT.API.Widgets.HtmlLiveLoaded = false;
MBT.API.Widgets.LogStats = true;
MBT.API.Widgets.ChartJsLoaded = false;

MBT.API.Cookies.NAMESPACE = "mbt-widget-app";

MBT.API.Utils.addCSS = function(url){
    var options = { rel: 'stylesheet', type: 'text/css', media: 'all' };

    var ss = document.createElement("link");
    ss.setAttribute("rel", options.rel);
    ss.setAttribute("type", options.type);
    ss.setAttribute("media", options.media);
    ss.setAttribute("href", url+"&v=134");
    document.getElementsByTagName("head")[0].appendChild(ss);
};

MBT.API.Utils.addScript = function(url, callback){

    if (typeof(MBT.API.debug) != 'undefined') {
            url += "&d=" + Math.random();
    }

    var ss = document.createElement("script");
    ss.setAttribute("type", "text/javascript");
    ss.setAttribute("language", "javascript");

    if (typeof(callback) != 'undefined')
    {
        ss.onreadystatechange = function () //IE
        {
            if (ss.readyState == 'loaded')
                callback();
        }
        ss.onload = callback;//Browsers
    }

    ss.setAttribute("src", url);

    var child = document.getElementsByTagName("head")[0].appendChild(ss);

    MBT.API.Event.observe(child, "load", MBT.API.Function.createDelegate(function (e, scriptElement) {
        try {
            document.getElementsByTagName("head")[0].removeChild(scriptElement);
        } catch (e){}
    }, null, [child], 1));

};

MBT.API.Utils.loadCharts = function( chartFunction )
{
    if( !MBT.API.Widgets.GraphsLoaded  )
    {
        MBT.API.Utils.addScript( MBT.API.ServiceUrl+"static/scripts/amcharts/flash/swfobject.js?v=2", function()
        {
            MBT.API.Utils.addScript(MBT.API.ServiceUrl+"static/scripts/amcharts/amcharts.js?v=2", function()
            {
            MBT.API.Utils.addScript(MBT.API.ServiceUrl+"static/scripts/amcharts/amfallback.js?v=2", function()
            {
                MBT.API.Utils.addScript(MBT.API.ServiceUrl+"static/scripts/amcharts/raphael.js?v=2", chartFunction );
            });
            });
        });
        MBT.API.Widgets.GraphsLoaded = true;
    }
    else
    {
        chartFunction();
    }
};

MBT.API.Utils.loadChartsV2 = function( chartFunction )
{
    if( !MBT.API.Widgets.GraphsLoaded  )
    {
        MBT.API.Utils.addScript( MBT.API.ServiceUrl+"static/scripts/amcharts/amcharts.js?v=2", function() {
            MBT.API.Utils.addScript(MBT.API.ServiceUrl+"static/scripts/amcharts/raphael.js?v=2", chartFunction );
        });
        MBT.API.Widgets.GraphsLoaded = true;
    }
    else
    {
        chartFunction();
    }
};

MBT.API.Utils.loadChartJs = function(callback)
{
    if(!MBT.API.Widgets.ChartJsLoaded)
    {
        MBT.API.Utils.addScript(MBT.API.ServiceUrl + "static/scripts/external/ChartJs/dist/Chart.min.js", function() {
            callback();
        });
        MBT.API.Widgets.ChartJsLoaded = true;
    } else {
        callback();
    }
};

MBT.API.Utils.loadHtmlLive = function( liveFunction )
{
    var version = 2;
    if(!MBT.API.Widgets.HtmlLiveLoaded)
    {
        MBT.API.Utils.addCSS('http://beta.mbt.lt/~oskaras/live/static/styles/style_default.css?v='+version);
        MBT.API.Utils.addScript( "http://mbt.baskethotel.com/live/static/scripts/json2.js?v="+version, function()
        {
            MBT.API.Utils.addScript("http://mbt.baskethotel.com/live/static/scripts/mbtjs.js?v="+version, function()
            {
                MBT.API.Utils.addScript("http://mbt.baskethotel.com/live/static/scripts/live.js?v="+version, liveFunction );
            });
        });
        MBT.API.Widgets.HtmlLiveLoaded = true;
    }
    else
    {
        liveFunction();
    }
}

MBT.API.Utils.getObjectKeys = function (o) {
    var keys = [];
    for (var propertyName in o) {
        keys.push(propertyName);
    }
    return keys;
};

/**
 * Get available values from HTML select element
 * @param string elementId ID of select element
 * @return array
 */
MBT.API.Utils.getHtmlSelectValues = function(elementId) {
    var values = [];
    var options = document.getElementById(elementId).options;

    if (typeof(options) == 'undefined') {
        return [];
    }

    for (i = 0; i < options.length; i++) {
        values.push(options[i].value);
    }
    return values;
};

/**
 * Check if value exists in HTML select
 * @param string elementId ID of select element
 * @param mixed value Value to check
 * @return bool
 */
MBT.API.Utils.valueExistsInHtmlSelect = function(elementId, value) {
    var values = MBT.API.Utils.getHtmlSelectValues(elementId);

    for (i = 0; i < values.length; i++) {
        if (values[i] == value) {
            return true;
        }
    }

    return false;
};

MBT.API.logStat = function(w, container) {
    if(MBT.API.Widgets.LogStats) {
        var url = MBT.API.URL.mergeParams(MBT.API.StatisticsUrl, {api: MBT.API.ApiId, w: w});
        var iframe = document.createElement("iframe");
        iframe.setAttribute("src", url);
        iframe.style.display = "none";
        if (document.getElementById(container)) {
            document.getElementById(container).appendChild(iframe);
        }
    }
};

MBT.API.get = function(id) {

    if (typeof(id) == 'object') {
        return id;
    }

    return document.getElementById(id);
};

MBT.API.isElement = function(object) {
    return typeof(object) == 'object' && object.nodeType == 1;
};

MBT.API.isUndefined = function(object) {
    return typeof object == "undefined";
};


MBT.API.isArray = function(object) {
    return object != null && typeof object == "object" &&
      'splice' in object && 'join' in object;
 };


MBT.API.Browser = {
    IE:     !!(window.attachEvent && navigator.userAgent.indexOf('Opera') === -1),
    Opera:  navigator.userAgent.indexOf('Opera') > -1,
    WebKit: navigator.userAgent.indexOf('AppleWebKit/') > -1,
    Gecko:  navigator.userAgent.indexOf('Gecko') > -1 && navigator.userAgent.indexOf('KHTML') === -1,
    MobileSafari: !!navigator.userAgent.match(/Apple.*Mobile.*Safari/)
};


MBT.API.toJSON = function(object) {
    var type = typeof object;
    switch (type) {
      case 'undefined':
      case 'function':
      case 'unknown':
         return;
      case 'boolean':
        return object ? 1 : 0;
    }

    if (object === null) {
        return 'null';
    }
    if (object.toJSON) {
        return object.toJSON();
    }
    if (MBT.API.isElement(object)) {
        return;
    }

    var results = [];
    for (var property in object) {
        var value = MBT.API.toJSON(object[property]);
        if (!MBT.API.isUndefined(value)) {
           results.push(property.toJSON() + ': ' + value);
        }
    }

    return '{' + results.join(', ') + '}';
};


MBT.API.extend = function(destination, source) {
    for (var property in source.prototype) {
        destination.prototype[property] = source[property];
    }
    return destination;
};


MBT.API.update = function(id, content) {
    var container = MBT.API.get(id);
    if (container == null) {
        throw "Container element is empty " + content;
    }
    if (content.indexOf('<form') > -1 && MBT.API.isInForm(container)) {
        content = content.replace(/<form[^>]*>/g,"").replace(/<\/form>/g,"");
    }
        /* workaround for IE */
        var re = new RegExp("^\<option.*\/option\>","gi");
        if (re.test(content.replace(/^\s+|\s+$/g, ''))) {
            var re = new RegExp("\<option.*\/option\>","gi");
            container.options.length = 0;
            while (o = re.exec(content)) {
                var opt = o[0];
                var reValue = new RegExp('value="([0-9]*)"', 'gi');
                var resValue = reValue.exec(opt);
                if (resValue) {
                    var value = resValue[1];
                } else {
                    var value = "";
                }
                var reText = new RegExp('\<option.*\>(.*)\<\/option\>', 'gi');
                var resText = reText.exec(opt);
                if (resText) {
                    var text = resText[1];
                } else {
                    var text = "";
                }
                var elOptNew = document.createElement('option');
                elOptNew.text = text;
                elOptNew.value = value;
                container.options.add(elOptNew);
            }
        } else {
            container.innerHTML = content;
        }

    content.evalScripts();
};

MBT.API.isInForm = function(element) {
    if (!element)
        return false;
    if (element.tagName == 'FORM') {
        return true;
    }
    if (element.tagName == 'BODY') {
        return false;
    }
    return MBT.API.isInForm(element.parentNode);
}

MBT.API.triggerError = function(text) {
    if (typeof console == "object"){
        console.log(text);
    }
};


MBT.API.addApiCSS = function() {

    if (typeof(MBT.API.apiCSSLoaded) != 'undefined' && MBT.API.apiCSSLoaded || !MBT.API.addCSS ) {
        return;
    }

    var apiCssFile = MBT.API.getApiCSSUrl();
    var styles = document.getElementsByTagName("link");

    var exists = false;

    // CSS file have to be unique
    for (var i = 0; i < styles.length; i++) {
        if (styles[i].href == apiCssFile) {
            exists = true;
            break;
        }
    }

    if (!exists) {
        MBT.API.Utils.addCSS(apiCssFile);
        MBT.API.apiCSSLoaded = true;
    }

};

MBT.API.getApiCSSUrl = function() {
    var cssApi = MBT.API.ApiId;
    if(typeof(MBT.API.Widgets.CssApi) != 'undefined') {
        var cssApi = MBT.API.Widgets.CssApi;
    }
    var url = MBT.API.ApiCSSUrl + "?api=" + cssApi + '&index=' + MBT.API.stylesheetIndex;
    if (typeof(mbtBasketHotelVersion) != 'undefined') {
        url += '&ver=' + mbtBasketHotelVersion;
    }
    return url;
};


/**
 * Some constants
 */
MBT.API.Widgets.LOADING_IMG_LARGE = MBT.API.ServiceUrl + 'static/images/loading-large.gif'
MBT.API.Widgets.STATE_URL_PREFIX = "mbt:";

// Static variable
if (typeof(MBT.API.Lang) == 'undefined') {
    MBT.API.Lang = "en";
}

// possibility to allow right click on links
if (typeof(MBT.API.NewNav) == 'undefined') {
    MBT.API.NewNav = 0;
}

// allows to pass params as object to navigation handlers
if (typeof(MBT.API.NavObject) == 'undefined') {
    MBT.API.NavObject = 0;
}

MBT.API.Widgets.Widget = function(params) {
    this.container = null;
    this.width = null;
    this.height = null;
    this.widgetId = null;
    this.state = null;
    this.partial = null;
    this.callback = null;
    this.showLoadingIndicator = true;
    //this.params = [];
    this.params = {};
    if (typeof(params) == 'object') {
        for (var i in params) {
            if (typeof(this[i]) != 'undefined') {
                this[i] = params[i];
            }
        }
    }
    return this;
};

MBT.API.Widgets.Widget.prototype.setContainer = function(container) {
    this.container = container;
    this.__init();
};

MBT.API.Widgets.Widget.prototype.setCallback = function(callback) {
    this.callback = callback;
};


MBT.API.Widgets.Widget.prototype.setWidgetId = function(widgetId) {
    this.widgetId = widgetId;
    this.__init();
};

MBT.API.Widgets.Widget.prototype.setParam = function(name, value) {
    if (value == null || typeof(value) == 'undefined' || (typeof(value) == 'string' && (value == 'undefined' || value == 'null'))) {
        return;
    }

    this.params[name] = value;
};

MBT.API.Widgets.Widget.prototype.__init = function () {
    var c = MBT.API.get(this.container);

    if (c == null) {
        return;
    }

    var widgetId = this.widgetId;
    if (widgetId == null) {
        return;
    }
    c.setAttribute('mbt_widget', widgetId);
};


MBT.API.Widgets.Widget.prototype.setPartial = function(part) {
    this.partial = part;
};

MBT.API.Widgets.Widget.prototype.render = function() {

    var request = new MBT.API.Widgets.RenderRequest();
    request.addWidget(this);
    request.render();

};

MBT.API.Widgets.Widget.prototype.renderPartial = function(part) {
    this.setPartial(part);
    var request = new MBT.API.Widgets.RenderRequest();
    request.addWidget(this);
    request.render();
};

MBT.API.Widgets.RenderRequest = function () {
    this.widgets = [];
};

MBT.API.Widgets.RenderRequest.prototype.addWidget = function (widget) {
    if (MBT.API.translationsLang) widget.setParam('translations_lang', MBT.API.translationsLang);
    if (MBT.API.translationsSetId) widget.setParam('translations_set_id', MBT.API.translationsSetId);
    this.widgets.push(widget);
};

MBT.API.Widgets.RenderRequest.prototype.setOutputFormat = function (format) {
    this.outputFormat = format;
};

MBT.API.Widgets.RenderRequest.prototype.serialize = function () {

    var url = "";

    if (this.outputFormat) {
        url += "&output_format=" + this.outputFormat;
    }

    for (var i = 0; i < this.widgets.length; i++) {
        widget = this.widgets[i];
        var container = MBT.API.get(widget.container);

        url += '&request[' + i + '][container]=' + container.id;
        url += '&request[' + i + '][widget]=' +  widget.widgetId;

        if (widget.partial) {
            url += '&request[' + i + '][part]=' +  widget.partial;
        }

        if (widget.state) {
            url += '&request[' + i + '][state]=' +  widget.state;
        }

        if (widget.callback) {
            url += '&request[' + i + '][callback=' + widget.callback;
        }

        if (widget.params) {
            url += MBT.API.URL.serialize('request[' + i + '][param]', widget.params);
        }
    }

    return MBT.API.Base64.encode(url);
};

MBT.API.Widgets.RenderRequest.prototype.render = function () {

    if (MBT.API.Widgets.RenderRequest.disableRender) {
        // sometimes we should ignore rendering requests
        return;
    }

    if (typeof(MBT.API.ApiId) == 'undefined') {
        throw "MBT.API.ApiId could not be empty";
    }

    if (MBT.API.Lang == '') {
        throw "MBT.API.Lang could not be empty";
    }

    if(this.widgets[0].params.api) {
        MBT.API.ApiId = this.widgets[0].params.api;
    }

    var url = MBT.API.WidgetUrl;
    url = MBT.API.URL.mergeParams(url, {});

    if (this.outputFormat) {
        url += "&output_format=" + this.outputFormat;
    }

    var isPartial = false;

    for (var i = 0; i < this.widgets.length; i++) {
        widget = this.widgets[i];
        var container = MBT.API.get(widget.container);

        if (container == null) {
            throw "Assign output container using setContainer(...)";
        }
        if (widget.partial) {
            isPartial = true;
        }

        if (widget.showLoadingIndicator) {
        MBT.API.Widgets.showLoading(container);
        }

        url += '&request[' + i + '][container]=' + container.id;
        url += '&request[' + i + '][widget]=' +  widget.widgetId;

        if (widget.partial) {
            url += '&request[' + i + '][part]=' +  widget.partial;
        }

        if (widget.state) {
            url += '&request[' + i + '][state]=' +  widget.state;
        }

        if (widget.callback) {
            url += '&request[' + i + '][callback]=' +  widget.callback;
        }

        if (MBT.API.imageServiceUrl != null) {
            widget.params['image_service_url'] = MBT.API.imageServiceUrl;
        }


        if (widget.params) {
            url += MBT.API.URL.serialize('request[' + i + '][param]', widget.params);
        }
    }

/*  if (!isPartial) {
        MBT.API.History.addRequest(this);
    }*/

    if (typeof(MBT.API.Widgets.RenderRequest.initialRequestState) == 'undefined') {
        MBT.API.Widgets.RenderRequest.initialRequestState = this.serialize();
    }


    MBT.API.Utils.addScript(url);
    MBT.API.logStat(this.widgets.length, this.widgets[0].container);
};


MBT.API.Widgets.showLoading = function (container) {
    container = MBT.API.get(container);
    if(container.tagName != 'IFRAME')
    {
        container.innerHTML = '<img class="mbt-loader-center" src="' + MBT.API.Widgets.LOADING_IMG_LARGE  + '" />';
    }

};

MBT.API.Widgets.RenderRequest.renderFromState = function(state) {
    var stateUrl = MBT.API.Base64.decode(state);
    var url = MBT.API.WidgetUrl;
    url = MBT.API.URL.mergeParams(url, {});
    url += stateUrl;

    MBT.API.Utils.addScript(url);
};

MBT.API.Widgets.findWidgetContainer = function (element) {

    element = MBT.API.get(element);

    do {
        if (element.getAttribute('mbt_widget') != null) {
            return element;
        }

        element = element.parentNode;
    } while (element != null && element.getAttribute);

    return element;
};


MBT.API.Widgets.Graph = function(params) {
    this.container = null;
    this.width = null;
    this.height = null;
    this.widgetId = null;
    this.partial = 'graph';
    this.settingsPartial = null;
    this.params = {};

    if (typeof(params) == 'object') {
        for (var i in params) {
            if (typeof(this[i]) != 'undefined') {
                this[i] = params[i];
            }
        }
    }
    return this;
};

MBT.API.Widgets.Graph.prototype.setContainer = function(container) {
    this.container = container;
};

MBT.API.Widgets.Graph.prototype.setWidgetId = function(widgetId) {
    this.widgetId = widgetId;
};

MBT.API.Widgets.Graph.prototype.setParam = function(name, value) {
//  this.params.push({name: name, value: value});
    this.params[name] = value;
};

MBT.API.Widgets.Graph.prototype.setWidgetId = function(widgetId) {
    this.widgetId = widgetId;
};

MBT.API.Widgets.Graph.prototype.setPartial = function(part) {
    this.partial = part;
};

MBT.API.Widgets.Graph.prototype.setSettingsPartial = function(settingsPart) {
    this.settingsPartial = settingsPart;
};

MBT.API.Widgets.Graph.prototype.render = function () {

    if (typeof(MBT.API.ApiId) == 'undefined') {
        throw "MBT.API.ApiId could not be empty";
    }

    if (MBT.API.Lang == '') {
        throw "MBT.API.Lang could not be empty";
    }

    /* default width and height */
    if (typeof(this.params.width) == 'undefined') {
        this.params.width = "400";
    }
    if (typeof(this.params.height) == 'undefined') {
        this.params.height = "250";
    }

    var url = MBT.API.WidgetUrl;
    url = MBT.API.URL.mergeParams(url, {"output_format" : "graph"});

    var container = MBT.API.get(this.container);

    if (container == null) {
        throw "Assign output container using setContainer(...)";
    }

    MBT.API.Widgets.showLoading(container);

    url += '&request[0][container]=' + container.id;
    url += '&request[0][widget]=' +  this.widgetId;

    if (this.partial) {
        url += '&request[0][part]=' +  this.partial;
    }

    if (this.params) {
        url += MBT.API.URL.serialize('request[0][param]', this.params);
    }

    container.style.border = "0px";
    container.width = this.params.width + "px";
    container.height = this.params.height + "px";
    container.scrolling = "no";

    container.src= url;

    MBT.API.logStat(1);
};

MBT.API.URL.openExternal = function (url) {
    document.location.href = url;
};

MBT.API.URL.loadContainer = function (url, container) {
    url = MBT.API.URL.mergeParams(url, {'container': container});
    MBT.API.Utils.addScript(url);
};

MBT.API.URL.mergeParams = function (url, params) {

    if (url.indexOf('?') == -1) {
        url += "?";
    }
    // add defautl params
    url += "&api=" + MBT.API.ApiId;
    url += "&lang=" + MBT.API.Lang;
    url += "&nnav=" + MBT.API.NewNav;
    url += "&nav_object=" + MBT.API.NavObject;
    if (MBT.API.ShowSurnameFirst) {
        url += "&surname_first=1";
    }
    if (MBT.API.FirstNamePriority) {
        url += "&first_name_priority=1";
    }
    if (!MBT.API.haveFlash()) {
        url += "&flash=0"
    }

    for (var i in params) {
        var type = typeof(params[i]);
        url += "&" + i + "=" + params[i];
    }

    return url;
};

MBT.API.URL.serialize = function (prefix, params) {

    var url = "";
    var type = typeof(params);

    if (type == "object") {
        for (var i in params) {
            if (typeof (params[i]) != 'function')
            url += MBT.API.URL.serialize(prefix + "[" + i + "]", params[i]);
        }
    } else if (type == "array") {
        for (var i = 0; i < params.length; i++) {
            url += "&" + prefix  + "[" + i + "]=" + params;
        }
    } else {
         url = "&" + prefix  + "=" + params;
    }
    return url
}

MBT.API.URL.QueryString = function (queryString) {
    this.params = {};

    if (queryString == null) {
        queryString = location.search.substring(1, location.search.length);
    }

    if (queryString.length == 0) {
        return;
    }

    queryString = queryString.replace(/\+/g, ' ');

    var args = queryString.split('&');

    for (var i = 0; i < args.length; i++) {
        var pair = args[i].split('=');
        var name = decodeURIComponent(pair[0]);

        var value = (pair.length==2)
            ? decodeURIComponent(pair[1])
            : name;

        this.params[name] = value;
    }
}

MBT.API.URL.QueryString.prototype.get = function(key, default_) {
    var value = this.params[key];
    return (value != null) ? value : default_;
}

MBT.API.URL.QueryString.prototype.contains = function(key) {
    var value = this.params[key];
    return (value != null);
}

MBT.API.Function.createDelegate = function(func, C, B, A) {
    var D = func;
    return function() {
        var F = B || arguments;
        if (A === true) {
            F = Array.prototype.slice.call(arguments,0);
            F = F.concat(B);
        } else {
            if (typeof A == "number") {
                F = Array.prototype.slice.call(arguments,0);
                var E = [A, 0].concat(B);
                Array.prototype.splice.apply(F,E);
            }
            return D.apply(C || window, F);
        }
    };
};

MBT.API.Event.observe =  function(elementName, eventName, handler) {

    element = typeof(elementName) == 'object' ? elementName : MBT.API.get(elementName);

    if (element) {
        if (element.addEventListener) {
            element.addEventListener(eventName, handler, false);
        } else {
            element.attachEvent("on" + eventName, handler);
        }
    } else {

    }

    return element;
};

MBT.API.Event.stopObserve = function(elementName, eventName, handler) {
    element = typeof(elementName) == 'object' ? elementName : MBT.API.get(elementName);

    if (elementName.removeEventListener) {
        elementName.removeEventListener(eventName, handler, false);
    } else {
        if (elementName.detachEvent) {
            elementName.detachEvent('on' + eventName, handler);
        }
    }
}

MBT.API.Event.pointer =  function (event) {
    var docElement = document.documentElement,
    body = document.body || { scrollLeft: 0, scrollTop: 0 };
    return {
      x: event.pageX || (event.clientX +
        (docElement.scrollLeft || body.scrollLeft) -
        (docElement.clientLeft || 0)),
      y: event.pageY || (event.clientY +
        (docElement.scrollTop || body.scrollTop) -
        (docElement.clientTop || 0))
    };
};

MBT.API.Event.pointerX =  function (event) {
    return MBT.API.Event.pointer(event).x
};

MBT.API.Event.pointerY =  function (event) {
    return MBT.API.Event.pointer(event).y
};

MBT.API.Event.getEvent = function(e) {
    return e || window.event;
};


MBT.API.Event.getTargetObject = function(e) {
    return e.target ? e.target : (e.srcElement ? e.srcElement : window.event.srcElement);

};

MBT.API.UI.TabPanel = function(config)
{
    this.parentInstanceId = config.parentInstanceId ? config.parentInstanceId : null;
    this.container = config.container ? config.container : null;
    this.activeTabClass = config.activeTabClass ? config.activeTabClass : "active";
    this.tabClass = config.tabClass ? config.tabClass : "";
    this.hoverTabClass = config.hoverTabClass ? config.hoverTabClass : "";
    this.noCache = config.noCache ? config.noCache : null;
    this.rotatorHandler = 0;
    this.rotatorMiliseconds = config.rotatorMiliseconds ? config.rotatorMiliseconds : 0;
    this.cancelActiveTabEvent = config.cancelActiveTabEvent ? config.cancelActiveTabEvent : false;

    this.activeTab = -1;
    activeTab = typeof(config.activeTab) != undefined ? config.activeTab : null;
    this.tabs = config.tabs ? config.tabs : [];

    this.indexInController = config.indexInController ? config.indexInController : 0;

    if (this.tabs) {
        for (var i = 0; i < this.tabs.length; i++) {
            var delegate = MBT.API.Function.createDelegate(this.setActiveTab, this, [i], 0);
            MBT.API.Event.observe(this.tabs[i].tabId, "click", delegate);

            if (this.hoverTabClass) {
                var delegate = MBT.API.Function.createDelegate(this.mouseOverTab, this, [i], 0);
                MBT.API.Event.observe(this.tabs[i].tabId, "mouseover", delegate);

                var delegate = MBT.API.Function.createDelegate(this.mouseOutTab, this, [i], 0);
                MBT.API.Event.observe(this.tabs[i].tabId, "mouseout", delegate);

            }
        }
    }

    this.loadedCache = {};

    if (this.tabs && activeTab != null) {
        this.setActiveTab(activeTab);
    }

    if (this.rotatorMiliseconds > 0) {
        this.startRotator(this.rotatorMiliseconds);
    }

};

MBT.API.UI.TabPanel.prototype.setActiveTab = function(index, e, initial, force) {

    /**
     * Stopping rotator. If tab is set as active by rotator itself, it will be activated again.
     */
    this.stopRotator();

    if (this.cancelActiveTabEvent && e) {
        e.preventDefault();
    }

    if (typeof initial == 'undefined') {
        initial = false;
    }

    if (typeof(this.tabs[index]) != 'undefined') {

        if (!force && this.activeTab == index) {
            return;
        }

        var tabSettings = this.tabs[index];
        if (this.activeTab != -1) {

            var prevTabSettings = this.tabs[this.activeTab];

            var content = MBT.API.get(this.container).innerHTML;
            this.loadedCache[this.activeTab] = content;
            MBT.API.get(this.container).innerHTML = "";
            MBT.API.get(prevTabSettings.tabId).className = this.tabClass;
        }

        MBT.API.get(tabSettings.tabId).className = this.activeTabClass;
        MBT.API.get(tabSettings.tabId).setAttribute("prevClassName", this.activeTabClass);
        this.activeTab = index;

        if (this.noCache || typeof(this.loadedCache[index]) == 'undefined') {
            tabSettings.needLoad(this, index);
        } else {
            MBT.API.update(this.container, this.loadedCache[index]);
        }

        if (this.parentInstanceId != null && !initial) {
            MBT.API.History.setParam(this.parentInstanceId, MBT.API.History.tabIndex, this.indexInController, index);
            MBT.API.History.manualHashChange = true;
        }

    }
};

MBT.API.UI.TabPanel.prototype.clearCache = function() {
    for(key in this.loadedCache) {
        delete this.loadedCache[key];
    }
};

MBT.API.UI.TabPanel.prototype.mouseOverTab = function(index) {
    if (typeof(this.tabs[index]) != 'undefined') {
        var element = MBT.API.get(this.tabs[index].tabId);
        element.setAttribute("prevClassName", element.className);
        element.className = this.hoverTabClass;
    }
};

MBT.API.UI.TabPanel.prototype.mouseOutTab = function(index) {

    if (typeof(this.tabs[index]) != 'undefined') {
        var element = MBT.API.get(this.tabs[index].tabId);
        if (element.getAttribute("prevClassName")) {
            element.className = element.getAttribute("prevClassName");
        }
    }
};

MBT.API.UI.TabPanel.prototype.startRotator = function(miliseconds)
{
    this.rotatorMiliseconds = miliseconds;
    this.rotatorHandler = setTimeout(MBT.API.Function.createDelegate(this.rotateTab, this), miliseconds);
};

MBT.API.UI.TabPanel.prototype.stopRotator = function()
{
    if (this.rotatorHandler > 0) {
        clearTimeout(this.rotatorHandler);
    }
};

MBT.API.UI.TabPanel.prototype.rotateTab = function()
{
    var newTab = this.activeTab + 1;
    if (newTab >= this.tabs.length) {
        newTab = 0;
    }
    this.setActiveTab(newTab);
    this.rotatorHandler = setTimeout(MBT.API.Function.createDelegate(this.rotateTab, this), this.rotatorMiliseconds);
};

MBT.API.UI.Select = {};

MBT.API.UI.Select.clearOptions = function(el) {
    MBT.API.get(el).innerHTML = "";
};

MBT.API.UI.Select.addOptions = function(el, options) {

    var el = MBT.API.get(el);

    if (!el || !options) {
        return;
    }

    for (var i = 0; i < options.length; i++) {
        var option = document.createElement("OPTION");
        option.innerHTML = options[i].text;
        option.value = options[i].id;

        el.appendChild(option);

        if (options[i].selected) {
            el.selectedIndex = i + 1;
        }
    }
};

if (typeof(String.prototype.evalScripts) == 'undefined') {

    String.prototype.extractScripts =  function() {
        var scriptPattern = '<script[^>]*>([\\S\\s]*?)<\/script>';
        var matchAll = new RegExp(scriptPattern, 'img');
        var matchOne = new RegExp(scriptPattern, 'im');

        var results = this.match(matchAll) || [];
        var scripts = [];
        for (var i = 0; i < results.length; i++) {
            var r = (results[i].match(matchOne) || ['', ''])[1];

            if (r) {
                scripts.push(r);
            }
        }

        return scripts;
    };

    String.prototype.evalScripts =  function() {
        var scripts = this.extractScripts();

        for (var i = 0; i < scripts.length; i++) {
            eval(scripts[i]);
        }
    };
}

/**
 * Get form element value
 */
MBT.API.UI.getFormElementValue = function (object) {


    var type = typeof(object);
    if (type == 'undefined') {
        return null;
    }

    if (type == "function" && object.length == 0) {
        // Safari bug: typeof(Object NodeList) == "function". NodeList greiciausiai tures ilgi > 0. Funkcijos ilgis visada 0.
    } else if (MBT.API.isElement(object) && object.tagName) {
        return object.value;
    } else if ((type == "object" || type == "function") && object.length) {
        // Safari bug: typeof(Object NodeList) == "function"
        // NodeList case
        var result = [];
        for (var i = 0; i < object.length; i++) {
            var value = MBT.API.UI.getFormInputElementValue(object[i]);
            if (value != null) {
                result.push(value);
            }
        }
        return result;
    } else if (type == "string") {
        return MBT.API.UI.getFormElementValue(MBT.API.get(object));
    } else {
        return null;
    }
};

MBT.API.UI.getFormInputElementValue = function (object) {

    switch (object.tagName) {
        case "INPUT":
            if (object.type == "checkbox" || object.type == "radio") {
                if (object.checked) {
                    return object.value;
                } else {
                    return null;
                }
            } else {
                return object.value;
            }

        case "SELECT":
            return object.value;
        case "TEXTAREAN":
            return object.innerHTML;

    }
};


MBT.API.UI.show = function (el) {
    MBT.API.get(el).style.display = "";
};

MBT.API.UI.hide = function (el) {
    MBT.API.get(el).style.display = "none";
};

MBT.API.UI.createWidgetContainer = function(id) {
    if (typeof(id) == 'undefined') {
        do {
            id = "mbt-widget-container-" + Math.round(Math.random() * 10000);
        } while (MBT.API.get(id) != null);
    }


    var container = document.createElement("div");
    container.id = id;
    container.setAttribute("mbt_widget", 1);
    document.body.appendChild(container);
    return container;
}

MBT.API.SafeNames = {};
MBT.API.SafeNames.Values = {};

MBT.API.SafeNames.Container = function (widgetInstanceId) {
    if (typeof(MBT.API.SafeNames.Values[widgetInstanceId]) == 'undefined') {
        MBT.API.SafeNames.Values[widgetInstanceId] = {};
    }

    return MBT.API.SafeNames.Values[widgetInstanceId];
}


/**
 * MBT.API.History supports back/forward buttons for widget reloads
 */

MBT.API.History.enabled = true;
MBT.API.History.hashPathSeparator = '/';
MBT.API.History.hashTypeSeparator = ':';
MBT.API.History.hashTypePrefix = '$';
MBT.API.History.hashParamSeparator = '&';
MBT.API.History.tabIndex = 't';
MBT.API.History.filterIndex = 'f';
MBT.API.History.pageIndex = 'p';
MBT.API.History.manualHashChange = false;
MBT.API.History.lastState = {};
MBT.API.History.notFound = {};

/**
 * Get parameters from hash and set initial widget state. Widget should perform actual rendering.
 */
MBT.API.History.init = function() {

    /*var hash  = location.hash.substring(1);

    this.currentHash  = hash;
    this.previousHash = hash;*/
    this.hiddenElementName =  'mbt-widget-history-container'

    var params = this.getHashParams();
    var parts = null;
    var namespace = null;
    var obj = null;
    for (var p in params) {
        parts = p.split(this.hashPathSeparator);
        if (parts[1] == this.tabIndex) {
            namespace = MBT.API.SafeNames.Container(parts[0]);
            namespace.initConfig = namespace.initConfig || {};
            namespace.initConfig.tabs = namespace.initConfig.tabs || [];
            namespace.initConfig.tabs[parts[2]] = {'activeTab': params[p]};
        } else if (parts[1] == this.filterIndex) {
            namespace = MBT.API.SafeNames.Container(parts[0]);
            namespace.initConfig = namespace.initConfig || {};
            namespace.initConfig.filters = namespace.initConfig.filters || [];
            namespace.initConfig.filters[parts[2]] = {'value': params[p]};
        } else if (parts[1] == this.pageIndex) {
            namespace = MBT.API.SafeNames.Container(parts[0]);
            namespace.initConfig = namespace.initConfig || {};
            namespace.initConfig.pages = namespace.initConfig.pages || [];
            namespace.initConfig.pages[parts[2]] = {'page': params[p]};
        } else {
            // ignore
        }
    }

    /* first state */
    this.lastState = params;

}

/**
 * Set hash change observers. Two different implementations are for browsers and Internet Explorer
 */
MBT.API.History.onDocumentLoad = function() {

    if (MBT.API.Browser.IE) {

        this.iframe = document.createElement('iframe');
        this.iframe.name = this.hiddenElementName
        this.iframe.id =  this.hiddenElementName ;
        this.iframe.src = '';
        this.iframe.width = '0';
        this.iframe.height ='0';
        this.iframe.style.visibility = 'hidden';

        document.body.appendChild(this.iframe);

//        this.setHashOnIframe(document.location.hash);
    } else {
        this.hiddenField = document.createElement('hidden');
        this.hiddenField.id = this.hiddenElementName;
        document.body.appendChild(this.hiddenField);
//        this.setHashOnHidden(document.location.hash);
    }

    this.tickObserver();
};

MBT.API.History.stateRestoreParams = {};

MBT.API.History.handleStateChange = function(hash) {

    this.stateRestoreParams = this.getChangesInHashParams(this.getHashParams(), this.lastState);
    this.restoreWidgetsState();

};

/**
 * Get params which have changed during navigation and should be applied
 */
MBT.API.History.getChangesInHashParams = function(current, last) {

    var changes = {};

    for (c in current) {
        if (typeof last[c] == 'undefined') {
            changes[c] = current[c];
            continue;
        }
        if (current[c] != last[c]) {
            changes[c] = current[c];
            delete(last[c]);
            continue;
        }
    }

    for (l in last) {
        if (typeof current[l] == 'undefined') {
            changes[l] = '0';
        } else {
            changes[l] = last[l];
        }
    }

    return changes;

};

MBT.API.History.restoreWidgetsState = function() {
    var params = MBT.API.History.stateRestoreParams;

    var parts = null;
    var namespace = null;
    var applyFilterFlag = false;

    for (p in params) {
        parts = p.split(this.hashPathSeparator);
        if (parts[1] == this.tabIndex) {
            if (typeof(MBT.API.SafeNames.Values[parts[0]]) == 'undefined') {
                setTimeout('MBT.API.History.restoreWidgetsState()', 1000);
                continue;
            }
            namespace = MBT.API.SafeNames.Container(parts[0]);
            if (typeof(namespace.tabController) == 'undefined') {
                setTimeout('MBT.API.History.restoreWidgetsState()', 1000);
                continue;
            }
            if (typeof namespace.tabController[parts[2]] == 'object') {
                namespace.tabController[parts[2]].setActiveTab(params[p]);
                delete this.lastState[p];
                delete MBT.API.History.stateRestoreParams[p];
            } else {
                setTimeout('MBT.API.History.restoreWidgetsState()', 1000);
            }
        } else if (parts[1] == this.filterIndex) {
            if (typeof(MBT.API.SafeNames.Values[parts[0]]) == 'undefined') {
                setTimeout('MBT.API.History.restoreWidgetsState()', 1000);
                continue;
            }
            namespace = MBT.API.SafeNames.Container(parts[0]);
            var elementId = parts[0] + '-filter-' + parts[2];
            if (document.getElementById(elementId)) {
                if (
                    document.getElementById(elementId).tagName != 'SELECT'
                    ||
                    MBT.API.Utils.valueExistsInHtmlSelect(elementId, params[p])
                ) {
                    document.getElementById(parts[0] + '-filter-' + parts[2]).value = params[p];
                    delete this.lastState[p];
                    delete MBT.API.History.stateRestoreParams[p];
                    applyFilterFlag = true;
                }
            } else if (document.getElementsByName(elementId) && document.getElementsByName(elementId).length > 0) {
                // multiple elements exist - possibly radio buttons
                var elements = document.getElementsByName(elementId);
                for (i = 0; i < elements.length; i++) {
                    if (elements[i].value == params[p]) {
                        elements[i].checked = true;
                    } else {
                        elements[i].checked = false;
                    }
                }
            } else {
//                this.notFound[this.filterIndex] = this.notFound[this.filterIndex] || {}
//                this.notFound[this.filterIndex][parts[2]] = params[p];
                setTimeout('MBT.API.History.restoreWidgetsState()', 1000);
            }
        } else if (parts[1] == this.pageIndex) {
            if (typeof(MBT.API.SafeNames.Values[parts[0]]) == 'undefined') {
                setTimeout('MBT.API.History.restoreWidgetsState()', 1000);
                continue;
            }
            namespace = MBT.API.SafeNames.Container(parts[0]);
                if(typeof(namespace.setPage) !== 'undefined') {
                    namespace.setPage(null, params[p]);
                    delete this.lastState[p];
                    delete MBT.API.History.stateRestoreParams[p];
                }
        } else {
            // ignore
        }
    }

    if (applyFilterFlag && typeof namespace.applyFilter != 'undefined') {
        namespace.applyFilter(null, false);
    }

};

MBT.API.History.getNotAppliedNavigation = function(type) {

    var r = {};

    if (type == this.tabIndex) {
        r = this.notFound[this.tabIndex];
    } else if (type == this.filterIndex) {
        r = this.notFound[this.filterIndex];
    } else if (type == this.pageIndex) {
        r = this.notFound[this.pageIndex];
    } else {
        r = this.notFound;
    }

    return r;

};

MBT.API.History.removeFromNotAppliedNavigation = function(type, name) {

    try {
        delete this.notFound[type][name];
    } catch (e) {}

}

MBT.API.History.setParam = function(widgetId, type, key, value) {

    var key = widgetId + this.hashPathSeparator + type + this.hashPathSeparator + key;

    var params = this.getHashParams();
    params[key] = value;
    hash = MBT.API.Widgets.STATE_URL_PREFIX + this.implodeHashParams(params);
    if (hash == MBT.API.Widgets.STATE_URL_PREFIX) {
        hash = '';
    }
    if (window.location.hash || hash.replace("#","") !== "") {
        // fake hash to avoid page jumping to the top
        if (hash == '') {
            window.location.hash = 'stf'; // something not funny
        } else {
            window.location.hash = hash;
        }
    }

    this.manualHashChange = true;
    this.previousHash = this.currentHash;

    // If IE, apply new hash to frame for history
    if  (MBT.API.Browser.IE) {
        if (hash != window.location.hash.substring(1)) {
            this.setHashOnIframe(hash);
        }
    } else {
        this.setHashOnHidden(hash);
    }

}

MBT.API.History.getHashParams = function() {

    var hash = window.location.hash.substring(1);

    /* check if this is mbt hash and remove prefix */
    var prefixLength = MBT.API.Widgets.STATE_URL_PREFIX.length;
    var params = null;
    if ((hash.substring(0, prefixLength) != MBT.API.Widgets.STATE_URL_PREFIX) || (prefixLength >= hash.length)) {
        params = {};
    } else {
        hash = hash.substring(prefixLength);
        params = this.explodeHashParams(hash);
    }

    return params;

}

/**
 * Parse hash into array of parameters
 */
MBT.API.History.explodeHashParams = function(hash) {

    var types = hash.split(this.hashTypeSeparator);
    var widgetId = '';
    var type = '';

    var params = {};
    for (var t = 0, len = types.length; t < len; t++) {
        var parts = types[t].split(this.hashParamSeparator);
        if (parts[0].substring(0, 1) == this.hashTypePrefix) {
            type = parts[0].substring(1);
        } else {
            var w = parts[0].split(this.hashTypePrefix);
            widgetId = w[0];
            type = w[1];
        }
        for (var i = 0, leni = parts.length; i < leni; i++) {
            var k = parts[i].split('=');
            if (unescape(k[1]) != 'undefined') {
                params[widgetId + this.hashPathSeparator + type + this.hashPathSeparator + unescape(k[0])] = unescape(k[1]);
            }
        }
    }

    return params;

}

/**
 * Form hash from array of parameters
 */
MBT.API.History.implodeHashParams = function(params) {

    var hash = '';

    var keys = MBT.API.Utils.getObjectKeys(params).sort();
    var keyParts = '';
    var lastWidgetId = '';
    var lastParamType = '';

    for (var k = 0, len = keys.length; k < len; k++) {
        var newWidget = false;
        if (params[keys[k]] == null || params[keys[k]] == '') {
            continue;
        }
        keyParts = keys[k].split(this.hashPathSeparator);
        if (keyParts.length != 3) {
            continue;
        }
        if (lastWidgetId != keyParts[0]) {
            hash += this.hashTypeSeparator + keyParts[0];
            lastWidgetId = keyParts[0];
            newWidget = true;
            lastParamType = '';
        }
        if (lastParamType != keyParts[1]) {
            if (!newWidget) {
                hash += this.hashTypeSeparator;
            }
            hash += this.hashTypePrefix + keyParts[1]
            lastParamType = keyParts[1];
        }
        hash += this.hashParamSeparator + escape(keyParts[2]) + '=' + escape(params[keys[k]]);
    }
    hash = hash.substring(1);

    return hash;

}

MBT.API.History.update = function() {
    this.previousHash = this.currentHash;
    var hash = window.location.hash.substring(1);
    this.currentHash = hash;
};

MBT.API.History.setHashOnIframe = function(hash) {
    try {


        if (MBT.API.History.iframe == null ||  MBT.API.History.iframe.contentWindow == null || MBT.API.History.iframe.contentWindow.document == null || MBT.API.History.iframe.contentWindow.document.body == null) {
            // @todo fix this place on IE
            window.setTimeout("MBT.API.History.setHashOnIframe('" + hash + "')", 200);
            return;
        }

        var h = MBT.API.History.getHashOnIframe();
        var doc = MBT.API.History.iframe.contentWindow.document;

        if (h != hash) {

            doc.open();
            doc.write('<html><body id="history">' + hash + '</body></html>');
            doc.close();
        }
    } catch(e) {
        throw e;
    }
};


MBT.API.History.getHashOnIframe = function() {
    var doc = MBT.API.History.iframe.contentWindow.document;


    if (doc && doc.body.id == 'history') {
        return doc.body.innerText;
    } else {
        return "";
      // throw "Error";
    }
};

MBT.API.History.setHashOnHidden = function(hash) {
    try {
        MBT.API.History.hiddenField.value = hash;
    } catch(e) {}
};

MBT.API.History.getHashOnHidden = function() {
    try {
        return MBT.API.History.hiddenField.value;
    } catch(e) {}
};

MBT.API.History.isAltered = function() {
    var c = MBT.API.History.currentHash;
    var p = MBT.API.History.previousHash;
    if (this.manualHashChange == true) {
        this.manualHashChange = false;
        return false;
    }
    if (typeof this.previousHash == 'undefined') {
        return false;
    }
    var altered = (c != p);
    if (altered) {
        this.lastState = this.explodeHashParams(p);
    }
    return altered;
};


MBT.API.History.tickObserver = function() {
    setTimeout('MBT.API.History.observeChanges()', 50);

}

MBT.API.History.observeChanges = function() {
    MBT.API.History.update();
    if (MBT.API.History.isAltered()) {
        MBT.API.History.handleStateChange(MBT.API.History.currentHash);
    }
    MBT.API.History.tickObserver();
};

MBT.API.History.handleStartup = function() {
    if (location.hash.length > 1) {
        var substr = location.hash.substring(1);

        if (!(MBT.API.History.findWidgetState(substr) === false)) {
       //   MBT.API.Widgets.RenderRequest.disableRender = true;
            MBT.API.Event.observe(window, 'load', MBT.API.Function.createDelegate(function (substr) {

                MBT.API.History.handleStateChange(substr);

                // some settings to emulate normal call
                MBT.API.Widgets.RenderRequest.initialRequestState = substr;
                MBT.API.History.firstLoad = false;
                MBT.API.Widgets.RenderRequest.disableRender = false;
            }, null, [substr]));

        }
    }
};

MBT.API.History.findWidgetState = function(hash) {
    var prefix = MBT.API.Widgets.STATE_URL_PREFIX;

    if (hash.indexOf(prefix) == 0) {
        return hash.substring(prefix.length);
    } else {
        return false;
    }
}

/**
 * Class to deal with application state
 */

MBT.API.Storage.AppState = function () {

}

MBT.API.Storage.AppState.prototype.get = function (name) {
    var varValue = MBT.API.URL.CurrentQueryString.get(name);

    if (varValue == null || typeof(varValue) == "string" && varValue == "null") {
        //varValue = MBT.API.Cookies.get(MBT.API.Cookies.NAMESPACE + name);
    }

    if (typeof(varValue) == "string" && varValue == "null") {
        varValue = null;
    }

    return varValue;
}

MBT.API.Storage.AppState.prototype.set = function (name, value) {
     MBT.API.Cookies.set(MBT.API.Cookies.NAMESPACE + name, value);
}

MBT.API.Storage.AppState.prototype.attachAppStateToExternalLinks = function (params, container, defaultValue) {

    var containerObject = MBT.API.get(container);

    if (containerObject == null) {
        return;
    }

    var links = containerObject.getElementsByTagName("a");

    var leagueId = MBT.API.Application.get('league_id');
    var seasonId = MBT.API.Application.get('season_id');


    var queryString = [];
    for (var i = 0; i < params.length; i++) {
        var value = MBT.API.Application.get(params[i]);

        if( value == null && defaultValue != null && defaultValue.length-1 >= i )
        {
            value = defaultValue[i];
        }

        if (value != null && !(typeof(type) == 'string' && (type == 'undefined' || type == 'null'))) {
            queryString.push(params[i] + "=" + value);
        }
    }

    queryString = queryString.join("&");

    if (queryString.length == 0) {
        return;
    }

    for (var i = 0; i < links.length; i++) {
        var url = links[i].href;
        if (url.indexOf('?') == -1) {
            url += '?';
        } else {
            url += '&';
        }

        url += queryString;

        links[i].href = url;
    }


}
/**
 * MBT.API.Cookies Helper class for cookie processing
 */

MBT.API.Cookies.set =  function (name, value, seconds) {
    if (seconds) {
        var d = new Date();
        d.setTime(d.getTime() + (seconds * 1000));
        var expiry = '; expires=' + d.toGMTString();
    } else {
        var expiry = '';
    }
    document.cookie = name + "=" + value + expiry + "; path=/";
};

MBT.API.Cookies.get = function(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for (var i = 0; i < ca.length; i++) {
        var c = ca[i];
        while(c.charAt(0) == ' ')
            c = c.substring(1, c.length);
        if(c.indexOf(nameEQ) == 0)
            return c.substring(nameEQ.length, c.length);
    }
    return null;
};
MBT.API.Cookies.unset = function(name) {
    MBT.API.Cookies.set(name,'',-1);
}

/**
 * MBT.API.Base64 Helper base64 encoding/decoding routine
 */

MBT.API.Base64.keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
MBT.API.Base64.encode = function(input) {
   input = escape(input);
   var output = "";
   var chr1, chr2, chr3 = "";
   var enc1, enc2, enc3, enc4 = "";
   var i = 0;

   do {
      chr1 = input.charCodeAt(i++);
      chr2 = input.charCodeAt(i++);
      chr3 = input.charCodeAt(i++);

      enc1 = chr1 >> 2;
      enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
      enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
      enc4 = chr3 & 63;

      if (isNaN(chr2)) {
         enc3 = enc4 = 64;
      } else if (isNaN(chr3)) {
         enc4 = 64;
      }

      output = output +
         MBT.API.Base64.keyStr.charAt(enc1) +
         MBT.API.Base64.keyStr.charAt(enc2) +
         MBT.API.Base64.keyStr.charAt(enc3) +
         MBT.API.Base64.keyStr.charAt(enc4);
      chr1 = chr2 = chr3 = "";
      enc1 = enc2 = enc3 = enc4 = "";
   } while (i < input.length);

   return output;
}

MBT.API.Base64.decode = function(input) {
   var output = "";
   var chr1, chr2, chr3 = "";
   var enc1, enc2, enc3, enc4 = "";
   var i = 0;

   // remove all characters that are not A-Z, a-z, 0-9, +, /, or =
   var base64test = /[^A-Za-z0-9\+\/\=]/g;
   if (base64test.exec(input)) {
      throw "There were invalid base64 characters in the input text.\n";
   }

   input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");

   do {
      enc1 = MBT.API.Base64.keyStr.indexOf(input.charAt(i++));
      enc2 = MBT.API.Base64.keyStr.indexOf(input.charAt(i++));
      enc3 = MBT.API.Base64.keyStr.indexOf(input.charAt(i++));
      enc4 = MBT.API.Base64.keyStr.indexOf(input.charAt(i++));

      chr1 = (enc1 << 2) | (enc2 >> 4);
      chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
      chr3 = ((enc3 & 3) << 6) | enc4;

      output = output + String.fromCharCode(chr1);

      if (enc3 != 64) {
         output = output + String.fromCharCode(chr2);
      }
      if (enc4 != 64) {
         output = output + String.fromCharCode(chr3);
      }

      chr1 = chr2 = chr3 = "";
      enc1 = enc2 = enc3 = enc4 = "";

   } while (i < input.length);

   return unescape(output);
}


MBT.API.History.firstLoad = true;
MBT.API.History.handleStartup();
MBT.API.URL.CurrentQueryString = new MBT.API.URL.QueryString();
MBT.API.Application = new MBT.API.Storage.AppState();
MBT.API.History.init();

MBT.API.Event.observe(window, 'load', function () {
    if (MBT.API.History.enabled) {
        /// startup stuff
        MBT.API.History.onDocumentLoad();
    }
});

/* ------------------------------------------------------------------------------------- */

// Rich Calendar
MBT.API.UI.Calendar = function(targetObj, showTime) {

    // value
    this.value = '';

    // format
    this.format = '%Y-%m-%d';

    // Week Day to start with (0 - Sunday, 1 - Monday, etc...)
    this.start_week_day = 1;

    // iframe object to show calendar object in
    this.iframe_obj = null;

    // path to calendar css and js files
    this.lib_path = 'rich_calendar/';

    // DOM object to take/set date from/to
    this.targetObj = targetObj;

    // show time
    this.showTime = showTime;

    // function called when calendar value changes
    this.userOnChangeHandler = null;

    // function called when data choice is cancelled
    this.userOncloseHandler = null;

    // function called when mouse clicked outside calendar with auto_close set
    // to true after it is closed
    this.userOnAutocloseHandler = null;

    // default language
    this.default_language = 'en';

    // language
    this.language = 'en';

    // current date
    this.date = new Date();
    // calendar skin name
    this.skin = '';
    // calendar closes automatically on click outside it
    this.auto_close = true;
    // element which value is taken to initilize calendar and where calendar
    // returns date if user defined function to return date is not specified
    this.value_el = null;

    // specifies calendar positioning - absolute by default
    this.position = null;

}


// add event handlers to object obj
MBT.API.UI.Calendar.attachEvents = function(obj) {

    MBT.API.Event.observe(obj, 'click', MBT.API.UI.Calendar.onclick);
    MBT.API.Event.observe(obj, 'mouseover', MBT.API.UI.Calendar.onmouseover);
    MBT.API.Event.observe(obj, 'mouseout', MBT.API.UI.Calendar.onmouseout);
}


// remove event handlers set to object obj
MBT.API.UI.Calendar.detach_events = function(obj) {

    MBT.API.Event.stopObserve(obj, 'click', MBT.API.UI.Calendar.onclick);
    MBT.API.Event.stopObserve(obj, 'mouseover', MBT.API.UI.Calendar.onmouseover);
    MBT.API.Event.stopObserve(obj, 'mouseout', MBT.API.UI.Calendar.onmouseout);
}


// calendar onclick event handler
MBT.API.UI.Calendar.onclick = function(e) {

    var event = MBT.API.Event.getEvent(e);
    var obj = MBT.API.Event.getTargetObject(e);

        if (!obj) return;

    var cal = obj.calendar;

    var cur_year = cal.date.getFullYear();
    var cur_month = cal.date.getMonth();
    var cur_day = cal.date.getDate();

    switch (obj.objectCode) {
        case 'day':
            cal.date.setDate(obj.day_num);
            break;
        case 'prev_year':
            // determine number of days in prev year
            cal.date.setDate(1);
            cal.date.setFullYear(cur_year-1);
            var monthDays = MBT.API.UI.Calendar.getMonthDays(cal.date);

            // prevent jumping to next month
            if (cur_day > monthDays) {
                cal.date.setDate(monthDays);
            } else {
                cal.date.setDate(cur_day);
            }

            cal.showDate();
            break;
        case 'prev_month':
            // determine number of days in prev month
            cal.date.setDate(1);
            cal.date.setMonth(cur_month-1);
            var monthDays = MBT.API.UI.Calendar.getMonthDays(cal.date);

            // prevent jumping to next month
            if (cur_day > monthDays) {
                cal.date.setDate(monthDays);
            } else {
                cal.date.setDate(cur_day);
            }

            cal.showDate();
            break;
        case 'next_month':
            // determine number of days in prev month
            cal.date.setDate(1);
            cal.date.setMonth(cur_month+1);
            var monthDays = MBT.API.UI.Calendar.getMonthDays(cal.date);

            // prevent jumping to next month
            if (cur_day > monthDays) {
                cal.date.setDate(monthDays);
            } else {
                cal.date.setDate(cur_day);
            }

            cal.showDate();
            break;
        case 'next_year':
            // determine number of days in next year
            cal.date.setDate(1);
            cal.date.setFullYear(cur_year+1);
            var monthDays = MBT.API.UI.Calendar.getMonthDays(cal.date);

            // prevent jumping to next month
            if (cur_day > monthDays) {
                cal.date.setDate(monthDays);
            } else {
                cal.date.setDate(cur_day);
            }

            cal.showDate();
            break;
        case 'today':
            var today = new Date();
            today.setHours(cal.date.getHours());
            today.setMinutes(cal.date.getMinutes());
            today.setSeconds(cal.date.getSeconds());

            cal.date = today;
            cal.showDate();

            break;
        case 'clear':
            // handle clear request
            if (cal.value_el) {
                cal.value_el.value = '';
            }
            break;
        case 'close':
            // handle close request
            cal.onCloseHandler();
            break;
        case 'week_day':

            cal.start_week_day = obj.week_day_num;
            cal.showDate();
            break;
        default:
            break;
    }


    // handle close request
    if (obj.objectCode != 'week_day') {
        cal.onChangeHandler(obj.objectCode);
    }

    // handle date change


    // hide all other auto closing calendars
    MBT.API.UI.Calendar.hideAutoClose(cal);

}


// calendar onmouseover event handler
MBT.API.UI.Calendar.onmouseover = function(e) {

    var event = MBT.API.Event.getEvent(e);
    var obj = MBT.API.Event.getTargetObject(e);

        if (!obj) return;

    var cal = obj.calendar;

    var cur_year = cal.date.getFullYear();
    var cur_month = cal.date.getMonth();
    var cur_day = cal.date.getDate();

    switch (obj.objectCode) {
        case 'day':
            var date = new Date(cal.date);
            date.setDate(obj.day_num);
            cal.setFooterText(cal.getFormattedDate(cal.text('footerDateFormat'), date));

            // highlight day cell and its row
            MBT.API.UI.Calendar.addClass(obj, "mbt-calendar-highlight");
            MBT.API.UI.Calendar.addClass(obj.parentNode, "mbt-calendar-highlight");

            break;
        case 'clear':
        case 'today':
        case 'close':
        case 'prev_year':
        case 'prev_month':
        case 'next_month':
        case 'next_year':
            cal.setFooterText(cal.text(obj.objectCode));
            break;
        case 'week_day':
            if (obj.week_day_num != cal.start_week_day) {
                var day_names = cal.text("dayNames");
                var name = day_names[obj.week_day_num];
                var text = cal.text("make_first");
                text = text.replace("%s", name);
            } else {
                var text = cal.text('footerDefaultText');
            }
            cal.setFooterText(text);
            break;
        default:
            cal.setFooterText(cal.text('footerDefaultText'));
            break;
    }

}


// calendar onmouseout event handler
MBT.API.UI.Calendar.onmouseout = function(e) {


    var event = MBT.API.Event.getEvent(e);
    var obj = MBT.API.Event.getTargetObject(e);

    if (!obj) return;

    var cal = obj.calendar;

    cal.setFooterText(cal.text('footerDefaultText'));

    // un-highlight day cell and its row
    MBT.API.UI.Calendar.removeClass(obj, "mbt-calendar-highlight");
    MBT.API.UI.Calendar.removeClass(obj.parentNode, "mbt-calendar-highlight");

}


// document onmousedown event handler
MBT.API.UI.Calendar.documentOnMouseDown = function(e) {
    var event = MBT.API.Event.getEvent(e);
    var obj = MBT.API.Event.getTargetObject(e);

    if (!obj) return;

    var el = obj;
    var cal = null;

    while (el) {
        if (el.className && el.className.match(/^mbt\-calendar\-iframe\-body/) &&
            el.tagName.toUpperCase() == 'BODY') {

            cal = el.calendar;
            break;
        }
        el = el.parentNode;
    }

    // close all not active calendars
    MBT.API.UI.Calendar.hideAutoClose(cal);
}


// hide all calendars that should autoclose except cal and remove
// them from MBT.API.UI.Calendar.activeCalendars
MBT.API.UI.Calendar.hideAutoClose = function(cal) {
var active_cals = [];
var i;

    for (i=0; i<MBT.API.UI.Calendar.activeCalendars.length; i++) {
        var cur_cal = MBT.API.UI.Calendar.activeCalendars[i];
        if (cur_cal.auto_close && cur_cal != cal) {

            cur_cal.hide();

            if (cur_cal.userOnAutocloseHandler) {
                cur_cal.userOnAutocloseHandler(this);
            }

        } else {
            active_cals[active_cals.length] = cur_cal;
        }
    }

    MBT.API.UI.Calendar.activeCalendars = active_cals;
}


// remove calendar cal from list MBT.API.UI.Calendar.activeCalendars of active
// calendars
MBT.API.UI.Calendar.makeInactive = function(cal) {
var active_cals = [];
var i;

    for (i=0; i<MBT.API.UI.Calendar.activeCalendars.length; i++) {
        var cur_cal = MBT.API.UI.Calendar.activeCalendars[i];
        if (cur_cal != cal) {
            active_cals[active_cals.length] = cur_cal;
        }
    }

    MBT.API.UI.Calendar.activeCalendars = active_cals;
}


// return number of days in month
MBT.API.UI.Calendar.getMonthDays = function(date, month) {
    var year = date.getFullYear();
    if (month) {
        month = parseInt(month);
        if (month <= 0 || month > 11) month = null;
    }

    if (!month) {
        month = date.getMonth();
    }

    if (month == 1 && MBT.API.UI.Calendar.isLeapYear(year)) {
        return 29;
    } else {
        return MBT.API.UI.Calendar.monthDays[month];
    }

}


// return true if year is a leap year
MBT.API.UI.Calendar.isLeapYear = function(year) {
    return (year%4==0 && year%100!=0 || year%400==0) ? true : false;
}


    // return day of the year
MBT.API.UI.Calendar.getDayOfYear = function(date) {
    var now = new Date(date.getFullYear(), date.getMonth(), date.getDate(), 0, 0, 0);
    var year_start = new Date(date.getFullYear(), 0, 0, 0, 0, 0);

    // milliseconds in day
    var day_in_msecs = 24*60*60*1000;

    return Math.floor((now - year_start) / day_in_msecs);

}


// add class to element
MBT.API.UI.Calendar.addClass = function(el, class_name) {

    MBT.API.UI.Calendar.removeClass(el, class_name);
    el.className += " " + class_name;

}


// remove class from element
MBT.API.UI.Calendar.removeClass = function(el, class_name) {

    if (!el || !el.className) return

    var new_class_parts = [];
    var class_parts = String(el.className).split(" ");
    var i;
    for (i=0; i<class_parts.length; i++) {
        if (class_parts[i] != "" && class_parts[i] != class_name) {
            new_class_parts[new_class_parts.length] = class_parts[i];
        }
    }

    el.className = new_class_parts.join(" ");
}


// return position of object obj; dont go above stop_obj in DOM structure
MBT.API.UI.Calendar.getObjPos = function(obj, stop_obj){
    var pos = Array(0,0);

    if (!obj) return pos;

    while (obj && stop_obj != obj) {

        //absolute positioned element => do not count its offset values
        if (obj.currentStyle) {
            if (obj.currentStyle.position == 'absolute') break;
        } else {
            if (document.defaultView.getComputedStyle(obj, '').getPropertyValue('position') == 'absolute') break;
        }

        var is_div = obj.tagName.toUpperCase() == "DIV" ? true : false;
        pos[0] += obj.offsetLeft - (is_div?obj.scrollLeft:0);
        pos[1] += obj.offsetTop - (is_div?obj.scrollTop:0);

/*
        // Opera returns negative offsets (but we took it into account
        // when substitute scrollLeft/Top of the parent elements)
        // so we use Math.max to prevent double reducing of the positions
        pos[0] += Math.max(obj.offsetLeft, 0) - obj.scrollLeft;
        pos[1] += Math.max(obj.offsetTop, 0) - obj.scrollTop;
*/
        obj = obj.offsetParent;
    }

    return pos;
}


// array of text data in various languages
MBT.API.UI.Calendar.langData = [];
MBT.API.UI.Calendar.monthDays = [31,28,31,30,31,30,31,31,30,31,30,31];
MBT.API.UI.Calendar.activeCalendars = [];
MBT.API.UI.Calendar.handlert_set = false;

// Calendar API


// show calendar inside/before/after (defined by argument position) element el
// if any specified or in the point specified (if any)
MBT.API.UI.Calendar.prototype.show = function(x, y, el, position) {

    if (!this.value_el) {
        this.value_el = el;
    }

    this.position = position;

    this.iframe_obj = document.createElement('IFRAME');
    this.iframe_obj.className = 'mbt-calendar';
    this.iframe_obj.setAttribute('scrolling', 'no');
    this.iframe_obj.calendar = this;


    // relative positioning
    if (this.isRelativePosition(position)) {
        switch (position) {
            case "before":
                if (el.parentNode) {
                    el.parentNode.insertBefore(this.iframe_obj, el);
                }
                break;
            case "after":
                if (el.parentNode) {
                    el.parentNode.insertBefore(this.iframe_obj, el.nextSibling);
                }
                break;
            case "child":
            default:
                el.appendChild(this.iframe_obj);
                this.position = 'child';
                break;
        }

    } else { // absolute positioning

        this.iframe_obj.style.position = 'absolute';

        // move the iframe to the position specified
        var left = parseInt(x);
        var top = parseInt(y);
        if (typeof(x) == 'number' && typeof(y) == 'number') {
            this.iframe_obj.style.left = x + 'px';
            this.iframe_obj.style.top = y + 'px';
        }
        this.iframe_obj.style.border = '1px solid #000000';
        this.iframe_obj.value = this.value;

        document.body.appendChild(this.iframe_obj);

    }


    // put calendar content into the iframe
    var iframe_content = '' +
                        '<html>' +
                        '<head>' +
                        '<link rel="stylesheet" type="text/css" href="' + MBT.API.getApiCSSUrl() + '?v=1236">' +
                        '</head>' +
                        '<body class="mbt-calendar-iframe-body mbt-calendar' + '" id="mbt_body">' +
                        '</body></html>' +
                            '';

    this.iframe_doc = this.iframe_obj.contentWindow.document;
    this.iframe_doc.open();
    this.iframe_doc.write(iframe_content);
    this.iframe_doc.close();

    MBT.API.Event.observe(this.iframe_doc, 'mousedown', MBT.API.UI.Calendar.documentOnMouseDown);


    this.body_obj = this.iframe_doc.getElementById('mbt_body');
    this.body_obj.calendar = this;
    // main table
    this.table_obj = this.iframe_doc.createElement('TABLE');
    this.table_obj.className = 'mbt-calendar-table';
    this.table_obj.setAttribute('id', 'mbt-calendar-iframe-table');
    this.table_obj.cellSpacing = 1;
    this.table_obj.cellPadding = 0;
    // store reference to the calendar
    this.table_obj.calendar = this;

    // header row
    this.head_tr = this.table_obj.insertRow(0);
    this.head_tr.className = 'mbt-calendar-head-tr';

    this.clear_td = this.head_tr.insertCell(0);
    this.clear_td.innerHTML = 'c';
    this.clear_td.objectCode = 'clear';
    this.clear_td.calendar = this;
    MBT.API.UI.Calendar.attachEvents(this.clear_td);

    this.head_td = this.head_tr.insertCell(1);
    this.head_td.colSpan = 5;
    this.close_td = this.head_tr.insertCell(2);
    this.close_td.innerHTML = 'x';
    this.close_td.objectCode = 'close';
    this.close_td.calendar = this;
    MBT.API.UI.Calendar.attachEvents(this.close_td);

    // navigation row
    this.nav_tr = this.table_obj.insertRow(1);
    this.nav_tr.className = 'mbt-calendar-nav-tr';

    this.prev_year_td = this.nav_tr.insertCell(0);
    this.prev_year_td.innerHTML = '&#x00ab;';
    this.prev_year_td.objectCode = 'prev_year';
    this.prev_year_td.calendar = this;
    MBT.API.UI.Calendar.attachEvents(this.prev_year_td);

    this.prev_month_td = this.nav_tr.insertCell(1);
    this.prev_month_td.innerHTML = '&#x2039;';
    this.prev_month_td.objectCode = 'prev_month';
    this.prev_month_td.calendar = this;
    MBT.API.UI.Calendar.attachEvents(this.prev_month_td);

    this.today_td = this.nav_tr.insertCell(2);
    this.today_td.colSpan = 3;
    this.today_td.innerHTML = this.text('today');
    this.today_td.objectCode = 'today';
    this.today_td.calendar = this;
    MBT.API.UI.Calendar.attachEvents(this.today_td);

    this.next_month_td = this.nav_tr.insertCell(3);
    this.next_month_td.innerHTML = '&#x203a;';
    this.next_month_td.objectCode = 'next_month';
    this.next_month_td.calendar = this;
    MBT.API.UI.Calendar.attachEvents(this.next_month_td);

    this.next_year_td = this.nav_tr.insertCell(4);
    this.next_year_td.innerHTML = '&#x00bb;';
    this.next_year_td.objectCode = 'next_year';
    this.next_year_td.calendar = this;
    MBT.API.UI.Calendar.attachEvents(this.next_year_td);

    // weekdays row
    this.wd_tr = this.table_obj.insertRow(2);
    this.wd_tr.className = 'mbt-calendar-wd-tr';

    for (var i = 0; i < 7; i++) {
        var td = this.wd_tr.insertCell(i);
        td.objectCode = 'week_day';
        td.calendar = this;
        MBT.API.UI.Calendar.attachEvents(td);
    }

    // calendar rows (initially create min number of rows necessary - 4)
    var rows_num = 4;
    var row_indx;
    var cell_indx;
    this.cal_tr = [];

    for (row_indx=0; row_indx<rows_num; row_indx++) {
        this.createCalRow(row_indx);
    }

    if (this.showTime) {
        // create time row if necessary
        this.time_tr = this.table_obj.insertRow(rows_num+3);
        this.time_tr.className = 'mbt-calendar-time-tr';
        var td = this.time_tr.insertCell(0);
        td.colSpan = 2;
        td.innerHTML = this.text('time') + ':';

        var td = this.time_tr.insertCell(1);
        td.colSpan = 3;

        this.hours_obj = this.createElement('INPUT', td);
        this.hours_obj.className = 'mbt-calendar-hours';
        this.hours_obj.setAttribute('size', 1);
        this.hours_obj.setAttribute('maxlength', 2);

        this.colon_span = this.createElement('SPAN', td);
        this.colon_span.className = 'mbt-calendar-colon-span';
        this.colon_span.innerHTML = '&nbsp;:&nbsp;';

        this.mins_obj = this.createElement('INPUT', td);
        this.mins_obj.className = 'mbt-calendar-mins';
        this.mins_obj.setAttribute('size', 1);
        this.mins_obj.setAttribute('maxlength', 2);

        var td = this.time_tr.insertCell(2);
        td.colSpan = 2;
        td.innerHTML = '&nbsp;';
    }

    // footer row

    this.footer_tr = this.table_obj.insertRow(rows_num + 3 + (this.showTime ? 1 : 0));
    this.footer_tr.className = 'mbt-calendar-footer-tr';
    this.footer_td = this.footer_tr.insertCell(0);
    this.footer_td.colSpan = 7;
    this.footer_td.innerHTML = this.text('footerDefaultText');

    this.body_obj.appendChild(this.table_obj);

    // create a DIV element to determine size of calendar
    this.size_div = document.createElement('DIV');
    this.size_div.className = this.body_obj.className;
    this.size_div.style.position = "absolute";
    this.size_div.style.left = "-1000px";
    this.size_div.style.top = "-1000px";
    document.body.appendChild(this.size_div);


    // show current date in calendar
    this.showDate();


    // set document handlers if not set yet
    if (!MBT.API.UI.Calendar.handlersSet) {
        MBT.API.Event.observe(document, 'mousedown', MBT.API.UI.Calendar.documentOnMouseDown);
        MBT.API.UI.Calendar.handlersSet = true;
    }

    // store this calendar in array of active calendars
    MBT.API.UI.Calendar.activeCalendars[MBT.API.UI.Calendar.activeCalendars.length] = this;

}


// hide calendar (destroy iframe object)
MBT.API.UI.Calendar.prototype.hide = function() {
    if (this.iframe_obj) {
        this.iframe_obj.parentNode.removeChild(this.iframe_obj);
        this.iframe_obj = null;
    }

    MBT.API.UI.Calendar.makeInactive(this);
}


// show calendar inside/before/after (defined by argument position) element el
// ie relative to element el or
MBT.API.UI.Calendar.prototype.showAtElement = function(el, position) {

    if (typeof(el) != "object" || !el) return;

    // relative positioning
    if (this.isRelativePosition(position)) {
        this.show(null, null, el, position);
        return;
    }

    var el_pos = MBT.API.UI.Calendar.getObjPos(el);

    var x = -1000;
    var y = -1000;

    this.show(x, y, el, position);
}

// fix position of calendar
MBT.API.UI.Calendar.prototype.fixPosition = function(el) {
    var position = this.position;

    if (this.isRelativePosition(position)) {
        return;
    }

    if (!el) {
        el = this.value_el;
    }

    var aligns = String(position).split("-");
    if (aligns.length == 2) {

        var el_pos = MBT.API.UI.Calendar.getObjPos(el);
        var x = el_pos[0];
        var y = el_pos[1] + el.offsetHeight;

        // iframe border thikness
        var border_width = parseInt(this.iframe_obj.style.borderWidth);

        var cal_width = parseInt(this.iframe_obj.width) + 2*border_width;
        var cal_height = parseInt(this.iframe_obj.height) + 2*border_width;


        // horizontal alignment
        switch (aligns[0]) {
            case "left":
                x -= cal_width;
                break;
            case "center":
                x += (el.offsetWidth - cal_width) / 2;
                break;
            case "right":
                x += el.offsetWidth;
                break;
            case "adj_right":
                x += el.offsetWidth - cal_width;
                break;
            default:
                break;
        }

        // vertical alignment
        switch (aligns[1]) {
            case "top":
                y -= el.offsetHeight + cal_height;
                break;
            case "center":
                y += (el.offsetHeight - cal_height) / 2 - el.offsetHeight;
                break;
            case "bottom":
                break;
            case "adj_bottom":
                y -= cal_height;
                break;
            default:
                break;
        }

        this.iframe_obj.style.left = x + 'px';
        this.iframe_obj.style.top = y + 'px';

        this.iframe_obj.style.visibility = 'visible';
    }

}


// return true if calendar is relatively positioned
MBT.API.UI.Calendar.prototype.isRelativePosition = function(position) {
    switch (position) {
        case "before":
        case "after":
        case "child":
            return true;
        default:
            return false;
    }
}


// creates an element in iframe
MBT.API.UI.Calendar.prototype.createElement = function(tagName, parent) {

var el = this.iframe_doc.createElement(tagName);

    if (parent) {
        parent.appendChild(el);
    }

    return el;
}


// return text data desired
MBT.API.UI.Calendar.prototype.text = function(name, language) {

    if (typeof(language) == "undefined") {
        language = MBT.API.Lang;
    }

    if (typeof(MBT.API.UI.Calendar.langData[language]) != "undefined") {
        return typeof(MBT.API.UI.Calendar.langData[language][name]) != "undefined" ? MBT.API.UI.Calendar.langData[language][name] : '';
    }

    return typeof(MBT.API.UI.Calendar.langData[this.default_language][name]) != "undefined" ? MBT.API.UI.Calendar.langData[this.default_language][name] : '';

}

// show date in calendar
MBT.API.UI.Calendar.prototype.showDate = function() {
    // update week days row

    // numbers of weekend days
    var weekend_days = this.getWeekendDays();

    var i;
    var day_names = this.text('dayNamesShort');
    for (i=0; i<7; i++) {
        var wd = (i+this.start_week_day)%7;

        var td = this.wd_tr.cells[i];
        td.innerHTML = day_names[wd];

        if (typeof(weekend_days[wd]) != "undefined") {
            td.className = "mbt-calendar-weekend-head";
        } else {
            td.className = "";
        }
        td.week_day_num = wd;
    }


    var monthDays = MBT.API.UI.Calendar.getMonthDays(this.date);
    //  alert(monthDays);

    // first day of the same month and year as this.date
    var date = new Date(this.date);
    date.setDate(1);
    var week_day = (date.getDay()+7-this.start_week_day)%7+1;
    //  alert(week_day);

    // current data
    var cur_year = this.date.getFullYear();
    var cur_month = this.date.getMonth();
    var cur_day = this.date.getDate();
    //alert(cur_year + ' => ' + cur_month + ' => ' + cur_day);

    // today
    var today = new Date();
    var today_year = today.getFullYear();
    var today_month = today.getMonth();
    var today_day = today.getDate();

    //
    var month_names = this.text('monthNames');
    this.head_td.innerHTML = month_names[cur_month] + ', ' + cur_year;


    var row;
    var day;
    var days = 0;
    var last_row;
    for (row=0; row<6; row++) {

        // all days are shown => just check if need to remove unused rows
        if (days == monthDays) {
            if (this.cal_tr[last_row+1]) {
                this.cal_tr[last_row+1].parentNode.removeChild(this.cal_tr[last_row+1]);
                this.cal_tr[row] = null;
            }
            continue;
        }

        for (day=0; day<7; day++) {

            if (!this.cal_tr[row]) {
                this.createCalRow(row);
            }

            var cur_tr = this.cal_tr[row];
            var cell = cur_tr.cells[day];
            cell.className = "";
            // should remove or IE attach the same event several times
        //  MBT.API.Event.stopObserve(cell);

            if (row==0 && day+1 < week_day || days == monthDays) {
                var td_text = '&nbsp;';

            } else {
                var day_num = days+1;
                var td_text = day_num;
                days++;

                cell.objectCode = 'day';
                cell.day_num = day_num;
                cell.calendar = this;
                MBT.API.UI.Calendar.attachEvents(cell);

                // hilight current date
                if (cur_day == day_num) {
                    MBT.API.UI.Calendar.addClass(cell, "mbt-calendar-current");
                }

                // hilight today date
                if (day_num == today_day &&
                    cur_month == today_month &&
                    cur_year == today_year) {
                    MBT.API.UI.Calendar.addClass(cell, "mbt-calendar-today");
                }


                var wd = (day+this.start_week_day)%7;

                // hilight weekend days
                if (typeof(weekend_days[wd]) != "undefined") {
                    MBT.API.UI.Calendar.addClass(cell, "mbt-calendar-weekend-day");
                } else {
                    MBT.API.UI.Calendar.removeClass(cell, "mbt-calendar-weekend-day");
                }

            }
            cell.innerHTML = td_text;

            if (days == monthDays) {
                last_row = row;
            }
        }
    }


    // set time
    if (this.showTime && this.hours_obj && this.mins_obj) {
        var hours = this.date.getHours();
        if (hours < 10) hours = '0' + hours;
        var mins = this.date.getMinutes();
        if (mins < 10) mins = '0' + mins;

        this.hours_obj.value = hours;
        this.mins_obj.value = mins;
    }

    var cal = this;
    window.setTimeout(function(){cal.fitToContent()}, 1);

    // fix position (need to do this later then calendar is shown as
    // size of calendar could change in this.show(x, y)
    window.setTimeout(function(){cal.fixPosition()}, 5);

}

// change size of the iframe to fit to its content
MBT.API.UI.Calendar.prototype.fitToContent = function() {
try {
    var table_obj = this.iframe_doc.getElementById('mbt-calendar-iframe-table');
    this.iframe_obj.width = table_obj.offsetWidth;
    this.iframe_obj.height = table_obj.offsetHeight;


    if (!parseInt(this.iframe_obj.width) || !parseInt(this.iframe_obj.height)) {
        this.size_div.innerHTML = this.body_obj.innerHTML;

    this.iframe_obj.width = this.size_div.offsetWidth;
    this.iframe_obj.height = this.size_div.offsetHeight;
    }

}catch(e){}
}


// create calendar row
MBT.API.UI.Calendar.prototype.createCalRow = function(index) {
var row = this.table_obj.insertRow(3+index);
    row.className = 'mbt-calendar-cal-tr';

    var cell_indx;
    for (cell_indx=0; cell_indx<7; cell_indx++) {
        var td = row.insertCell(cell_indx);
    }

    this.cal_tr[index] = row;
    return row;
}


// returns formatted date (chars recognized are alike used by PHP function date)
MBT.API.UI.Calendar.prototype.getFormattedDate = function(format, date) {

    if (!date) date = this.date;
    if (!format) format = this.getDateFormat();

    // set time
    if (this.showTime && this.hours_obj && this.mins_obj) {
        this.date.setHours(this.hours_obj.value);
        var mins = this.date.setMinutes(this.mins_obj.value);
    }

    var y = date.getFullYear();
    var m = date.getMonth();
    var d = date.getDate();
    var wd = date.getDay();
    var hr = date.getHours();
    var mins = date.getMinutes();
    var secs = date.getSeconds();

    var month_names_short = this.text('monthNamesShort');
    var month_names = this.text('monthNames');
    var day_names_short = this.text('dayNamesShort');
    var day_names = this.text('dayNames');

    var am = hr < 12 ? true : false;
    var hr12 = hr > 12 ? hr - 12 : (hr == 0 ? 12 : hr);

    var f = [];

    f["%a"] = am?'am':'pm';
    f["%A"] = am?'AM':'PM';
    f["%d"] = d < 10 ? '0'+d : d; // day of the month, 2 digits with leading zeroes (01 to 31)
    f["%D"] = day_names_short[wd]; // day of the week, textual, short, eg "Fri"
    f["%F"] = month_names[m]; // month, textual, long; eg "January"
    f["%h"] = hr12 < 10 ? '0' + hr12 : hr12; // hour, 12-hour format (01 to 12)
    f["%H"] = hr < 10 ? '0' + hr : hr; // hour, 24-hour format (00 to 23)
    f["%g"] = hr12; // hour, 12-hour format without leading zeros (1 to 12)
    f["%G"] = hr; // hour, 24-hour format without leading zeros (0 to 23)
    f["%i"] = mins < 10 ? '0' + mins : mins; // minutes (00 to 59)
    f["%j"] = d; // day of the month without leading zeros (1 to 31)
    f["%l"] = day_names[wd]; // day of the week, textual, long, eg "Friday"
    f["%L"] = MBT.API.UI.Calendar.isLeapYear(y)?1:0; // 1 if leap year, otherwise - 0
    f["%m"] = m < 9 ? '0' + (m+1) : (m+1); //month (01 to 12)
    f["%n"] = m + 1; //month without leading zeros (1 to 12)
    f["%M"] = month_names_short[m]; // month, textual, short, eg "Jan"
    f["%s"] = secs < 10 ? '0' + secs : secs; // seconds (00 to 59)
    f["%t"] = MBT.API.UI.Calendar.getMonthDays(date); // number of days in the month (28 to 31)
    f["%w"] = wd; // day of the week, numeric (0, Sunday to 6, Saturday)
    f["%Y"] = y; // year, 4 digits, eg 2007
    f["%y"] = String(y).substr(2, 2); // year, 2 digits, eg "07"
    f["%z"] = MBT.API.UI.Calendar.getDayOfYear(date); // day of the year (1 to 366)

    var parts = String(format).match(/%./g);
    var i;
    var f_date = format;
    for (i=0; i<parts.length; i++) {
        var value = f[parts[i]];
        if (typeof(value) != "undefined") {
            var re = new RegExp(parts[i], 'g');
            f_date = f_date.replace(re, value);
        }
    }

    return f_date;

}


// set footer content
MBT.API.UI.Calendar.prototype.setFooterText = function(text) {
    if (this.footer_td) {
        this.footer_td.innerHTML = text;
    }
}


// return array with keys - weekend days
MBT.API.UI.Calendar.prototype.getWeekendDays = function() {
var weekend_days = this.text('weekend');
var weekend_parts = weekend_days.split(",");
var i;
var result = [];

    for (i=0; i<weekend_parts.length; i++) {
        result[weekend_parts[i]] = true;
    }

    return result;
}


// calendar on close handler; returns true if operation successfull
MBT.API.UI.Calendar.prototype.onCloseHandler = function() {

    if (this.userOnCloseHandler) {
        this.userOnCloseHandler(this);
    } else {
        this.hide();
    }

}


// calendar on change handler
MBT.API.UI.Calendar.prototype.onChangeHandler = function(object_code) {

    if (this.userOnChangeHandler) {
        this.userOnChangeHandler(this, object_code);
    } else {
        if (object_code == 'day') {

            if (this.value_el) this.value_el.value = this.getFormattedDate();

            if (this.auto_close) this.hide();

        } else {

        }
    }

}


// returns current date format
MBT.API.UI.Calendar.prototype.getDateFormat = function() {
    var lang_date_format = this.text('dateFormat');
    var format = lang_date_format ? lang_date_format : this.format;

    if (this.showTime) {
        format += ' %H:%i';
    }

    return format;
}


// parses date from string str
MBT.API.UI.Calendar.prototype.parseDate = function(str, format) {
    if (typeof(str) == "undefined") {
        return;
    }

    if (!format) format = this.getDateFormat();


    //alert(format);
    var today = new Date();
    var year = 0;
    var month = -1;
    var day = 0;
    var hours = 0;
    var mins = 0;
    var seconds = 0;

    var month_names = this.text('monthNames');
    var short_month_names = this.text('monthNamesShort');

    var en_month_names = this.text('monthNames', 'en');
    var en_short_month_names = this.text('monthNamesShort', 'en');

        // national chars are not recognized as symbols in regular expressions =>
        // replace them with english month names
        for (j=0; j<month_names.length; j++) {
            var re = new RegExp(month_names[j], 'gi');
            str = str.replace(re, en_month_names[j]);
        }
        for (j=0; j<short_month_names.length; j++) {
            var re = new RegExp(short_month_names[j], 'gi');
            str = str.replace(re, en_short_month_names[j]);
        }

    var p = String(str).split(/\W+/g);
    var f_p = String(format).match(/%./g);
    var i;
    var j;
    var k;

    for (i=0; i<f_p.length; i++) {

        if (!p[i]) continue;

        switch (f_p[i]) {
            case '%a': // am pm
            case '%A':
                if (/am/i.test(p[i]) && hours >= 12) {
                    hours -= 12;
                } else {
                    if (/pm/i.test(p[i]) && hours < 12) {
                        hours += 12;
                    }
                }
                break;
            case '%d':
            case '%j':
                day = parseInt(Number(p[i]));
                break;
            case '%F':
                for (j=0; j<en_month_names.length; j++) {
                    if (en_month_names[j].toLowerCase() == p[i].toLowerCase()) {
                        month = j;
                        break;
                    }
                }
                break;
            case '%h':
            case '%H':
            case '%g':
            case '%G':
                hours = parseInt(Number(p[i]));
                // to recognize this: 10pm
                if (/am/i.test(p[i]) && hours >= 12) {
                    hours -= 12;
                } else {
                    if (/pm/i.test(p[i]) && hours < 12) {
                        hours += 12;
                    }
                }
                break;
            case '%i':
                mins = parseInt(Number(p[i]));
                break;
            case '%m':
            case '%n':
                month = parseInt(Number(p[i]))-1;
                break;
            case '%M':
                for (j=0; j<en_short_month_names.length; j++) {
                    if (en_short_month_names[j].toLowerCase() == p[i].toLowerCase()) {
                        month = j;
                        break;
                    }
                }
                break;
            case '%s':
                seconds = parseInt(Number(p[i]));
                break;
            case '%Y':
                year = parseInt(Number(p[i]));
                break;
            case '%y':
                year = parseInt(p[i]);
                if (year < 100) {
                    year += year + (year > 29 ? 1900 : 2000);
                }
                break;
            default:
                break;
        }

    }

    if (isNaN(year) || year <= 0) year = today.getFullYear();
    if (isNaN(month) || month < 0 || month > 11) month = today.getMonth();
    if (isNaN(day) || day <= 0 || day > 31) day = today.getDate();
    if (isNaN(hours) || hours < 0 || hours > 23) hours = today.getHours();
    if (isNaN(mins) || mins < 0 || mins > 59) mins = today.getMinutes();
    if (isNaN(seconds) || seconds < 0 || seconds > 59) seconds = today.getSeconds();

    this.date = new Date(year, month, day, hours, mins, seconds);

}

MBT.API.UI.Calendar.langData['en'] = {today: 'Today',
                                     time: 'Time',
                                    dayNamesShort : ['Sun','Mon','Tue','Wed','Thu','Fri','Sat'],
                                    dayNames : ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'],
                                    monthNamesShort : ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'],
                                    monthNames : ['January','February','March','April','May','June','July','August','September','October','November','December'],
                                    footerDateFormat: '%D, %F %j %Y',
                                    dateFormat: '%Y-%m-%d',
                                    footerDefaultText: 'Select date',
                                    clear: 'Clear Date',
                                    prev_year: 'Previous year',
                                    prev_month: 'Previous month',
                                    next_month: 'Next month',
                                    next_year: 'Next year',
                                    close: 'Close',
                                    weekend : "0,6",
                                    make_first : "Start with %s"};

MBT.API.UI.Calendar.langData['fi'] = {today: 'TÃƒÂ¤nÃƒÂ¤ÃƒÂ¤n',
        time: 'Aika',
        dayNamesShort : ['Su','Ma','Ti','Ke','To','Pe','La'],
        dayNames : ['Sunnuntai','Maanantai','Tiistai','Keskiviikko','Torstai','Perjantai','Lauantai'],
        monthNamesShort : ['Tammi','Helmi','Maalis','Huhti','Touko','KesÃƒÂ¤','HeinÃƒÂ¤','Elo','Syys','Loka','Marras','Joulu'],
        monthNames : ['Tammikuu','Helmikuu','Maaliskuu','Huhtikuu','Toukokuu','KesÃƒÂ¤kuu','HeinÃƒÂ¤kuu','Elokuu','Syyskuu','Lokakuu','Marraskuu','Joulukuu'],
        footerDateFormat: '%D, %F %j %Y',
        dateFormat: '%Y-%m-%d',
        footerDefaultText: 'Valitse pÃƒÂ¤ivÃƒÂ¤',
        clear: 'TyhjennÃƒÂ¤ valinta',
        prev_year: 'Edellinen vuosi',
        prev_month: ' Kitas',
        next_month: ' Seuraava kuukausi',
        next_year: 'Seuraava vuosi',
        close: 'Sulje',
        weekend : "1,7",
        make_first : "Viikon 1. pÃƒÂ¤ivÃƒÂ¤ %s"};

MBT.API.UI.Calendar.langData['lt'] = {today: 'Å iandien',
        time: 'Laikas',
        dayNamesShort : ['S','P','A','T','K','P','Å '],
        dayNames : ['Sekmadienis', 'Pirmadienis','Antradienis','TreÄiadienis','Ketvirtadienis','Penktadienis','Å eÅ¡tadienis'],
        monthNamesShort : ['Sausis','Vasaris','Kovas','Balandis','GeguÅ¾Ä—','BirÅ¾elis','Liepa','RugpjÅ«tis','RugsÄ—jis','Spalis','Lapkritis','Grudis'],
        monthNames : ['Sausis','Vasaris','Kovas','Balandis','GeguÅ¾Ä—','BirÅ¾elis','Liepa','RugpjÅ«tis','RugsÄ—jis','Spalis','Lapkritis','Grudis'],
        footerDateFormat: '%D, %F %j %Y',
        dateFormat: '%Y-%m-%d',
        footerDefaultText: 'Pasirinkite datÄ…',
        clear: 'IÅ¡valyti',
        prev_year: 'PraÄ—jÄ™ metai',
        prev_month: ' PraÄ—jÄ™s mÄ—nuo mÄ—nuo',
        next_month: ' Kitas mÄ—nuo',
        next_year: 'Kiti metai',
        close: 'UÅ¾daryti',
        weekend : "0,6",
        make_first : "SavaitÄ—s pradÅ¾ia"};

MBT.API.formatDate = function (date, format) {
    var returnStr = '';
    var replace = MBT.API.replaceChars;
    for (var i = 0; i < format.length; i++) {
        var curChar = format.charAt(i);
        if (replace[curChar]) {
            returnStr += replace[curChar].call(date);
        } else {
            returnStr += curChar;
        }
    }
    return returnStr;
};
MBT.API.replaceChars = {
    shortMonths: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
    longMonths: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
    shortDays: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
    longDays: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],

    // Day
    d: function() { return (this.getDate() < 10 ? '0' : '') + this.getDate(); },
    D: function() { return Date.replaceChars.shortDays[this.getDay()]; },
    j: function() { return this.getDate(); },
    l: function() { return Date.replaceChars.longDays[this.getDay()]; },
    N: function() { return this.getDay() + 1; },
    S: function() { return (this.getDate() % 10 == 1 && this.getDate() != 11 ? 'st' : (this.getDate() % 10 == 2 && this.getDate() != 12 ? 'nd' : (this.getDate() % 10 == 3 && this.getDate() != 13 ? 'rd' : 'th'))); },
    w: function() { return this.getDay(); },
    z: function() { return "Not Yet Supported"; },
    // Week
    W: function() { return "Not Yet Supported"; },
    // Month
    F: function() { return Date.replaceChars.longMonths[this.getMonth()]; },
    m: function() { return (this.getMonth() < 9 ? '0' : '') + (this.getMonth() + 1); },
    M: function() { return Date.replaceChars.shortMonths[this.getMonth()]; },
    n: function() { return this.getMonth() + 1; },
    t: function() { return "Not Yet Supported"; },
    // Year
    L: function() { return "Not Yet Supported"; },
    o: function() { return "Not Supported"; },
    Y: function() { return this.getFullYear(); },
    y: function() { return ('' + this.getFullYear()).substr(2); },
    // Time
    a: function() { return this.getHours() < 12 ? 'am' : 'pm'; },
    A: function() { return this.getHours() < 12 ? 'AM' : 'PM'; },
    B: function() { return "Not Yet Supported"; },
    g: function() { return this.getHours() % 12 || 12; },
    G: function() { return this.getHours(); },
    h: function() { return ((this.getHours() % 12 || 12) < 10 ? '0' : '') + (this.getHours() % 12 || 12); },
    H: function() { return (this.getHours() < 10 ? '0' : '') + this.getHours(); },
    i: function() { return (this.getMinutes() < 10 ? '0' : '') + this.getMinutes(); },
    s: function() { return (this.getSeconds() < 10 ? '0' : '') + this.getSeconds(); },
    // Timezone
    e: function() { return "Not Yet Supported"; },
    I: function() { return "Not Supported"; },
    O: function() { return (-this.getTimezoneOffset() < 0 ? '-' : '+') + (Math.abs(this.getTimezoneOffset() / 60) < 10 ? '0' : '') + (Math.abs(this.getTimezoneOffset() / 60)) + '00'; },
    T: function() { var m = this.getMonth(); this.setMonth(0); var result = this.toTimeString().replace(/^.+ \(?([^\)]+)\)?$/, '$1'); this.setMonth(m); return result;},
    Z: function() { return -this.getTimezoneOffset() * 60; },
    // Full Date/Time
    c: function() { return "Not Yet Supported"; },
    r: function() { return this.toString(); },
    U: function() { return this.getTime() / 1000; }
};

MBT.API.parseDate = function (value) {
    var tokens = value.split('-');

    // ISO 8601
    if (tokens.length != 3) {
        return null;
    }
        var d = new Date(parseInt(tokens[0], 10),parseInt(tokens[1], 10)-1,parseInt(tokens[2], 10));
        // d.setYear(parseInt(tokens[0], 10));
        // d.setMonth(parseInt(tokens[1], 10) - 1);
        // d.setDate(parseInt(tokens[2], 10));
    return d;
};

MBT.API.haveFlash = function () {
    var hasFlash = false;
    try {
        var fo = new ActiveXObject('ShockwaveFlash.ShockwaveFlash');
        if(fo) hasFlash = true;
    }
    catch(e)
    {
        if(navigator.mimeTypes ["application/x-shockwave-flash"] != undefined) hasFlash = true;
    }
    return hasFlash;
}

MBT.API.formatLivePagesLink = function (link) {
    var livePagesLink = link;
    var typeId = MBT.API.getLivePagesTypeIndex();
    var langId = MBT.API.getLivePagesLangId();
    if (typeId > 0) {
        livePagesLink += '?type=' + typeId;
    }

    if (langId > 0) {
        livePagesLink += '&lang=' + langId;
    }
    return livePagesLink;
}

MBT.API.convertDecToHex = function (dec) {

    if (dec < 0) {
       dec = 0xFFFFFFFF + dec + 1;
    }

    return parseInt(dec, 10).toString(16);
}

MBT.API.convertHexToDex = function (hex) {

  var dec = (hex + '').replace(/[^a-f0-9]/gi, '');
  dec =  parseInt(hex, 16);
  var max = Math.pow(2, (4*hex.length + (hex.length % 2)));
  var _dec = max - dec;
  return dec > _dec ? -_dec : dec;
}


MBT.API.UI.animate = function(el, property, value, time, callback)
{
    var frames = (time / 1000) * 60;
    var currFrame = frames;
    var timePerFrame = 1000 / 60;
    var shiftPerFrame = Math.floor(parseInt(value) / frames);
    var fn = function() {
        var old = parseInt(el.style[property]);

        if (currFrame == 1) {
            el.style[property] = (old + shiftPerFrame + (value - shiftPerFrame * frames)) + 'px';
        } else {
            el.style[property] = (old + shiftPerFrame) + 'px';
        }


        currFrame--;
        if (currFrame > 0) {
            setTimeout(fn, timePerFrame);
        } else if (callback) {
            callback();
        }
    }

    setTimeout(fn, timePerFrame);
}

MBT.API.UI.Scroller = function(config)
{
    this.type = config.type || 'vertical';
    this.previousButton = MBT.API.get(config.previousButton);
    MBT.API.Event.observe(this.previousButton, 'click', this.scrollUp.bind(this));

    this.nextButton = MBT.API.get(config.nextButton);
    MBT.API.Event.observe(this.nextButton, 'click', this.scrollDown.bind(this));

    this.itemTagName = config.itemTagName || 'a';

    this.animationLength = config.animationLength || 500;

    this.container = MBT.API.get(config.container);

    if (this.type == 'vertical') {
        this.styleKey = 'top';
        this.offsetKey = 'offsetHeight';
    } else if (this.type == 'horizontal') {
        this.styleKey = 'left';
        this.offsetKey = 'offsetWidth';
    }

    this.container.style = this.container.style || {};
    this.container.style['position'] = 'relative';
    this.container.style[this.styleKey] = '0px';

    this.locked = false;

    this.items = this.container.getElementsByTagName(this.itemTagName);
    for (i = 0; i < this.items.length; i++) {
        MBT.API.Event.observe(this.items[i], 'click', config.itemHandler);
    }

    if (config.afterInit) {
        setTimeout(config.afterInit, 1); //workaround for firefox
    }
}

MBT.API.UI.Scroller.prototype.scrollUp = function(e, scrolls)
{
    scrolls = scrolls || 1;
    if (this.locked) {
        return;
    }


    var offset = this.container.parentNode[this.offsetKey];

    if (parseInt(this.container.style[this.styleKey]) + (offset * scrolls) > 0) {
        return;
    }

    this.locked = true;
    MBT.API.UI.animate(this.container, this.styleKey, offset * scrolls, this.animationLength * scrolls, this.unlock.bind(this));
}

MBT.API.UI.Scroller.prototype.scrollDown = function(e, scrolls)
{
    scrolls = scrolls || 1;
    if (this.locked) {
        return;
    }

    var offset = this.container.parentNode[this.offsetKey];

    if (parseInt(this.container.style[this.styleKey]) - (offset * scrolls) <= -this.container[this.offsetKey]) {
        return;
    }

    this.locked = true;
    MBT.API.UI.animate(this.container, this.styleKey, (-offset * scrolls), this.animationLength * scrolls, this.unlock.bind(this));
}

MBT.API.UI.Scroller.prototype.unlock = function()
{
    this.locked = false;
}

MBT.API.UI.Scroller.prototype.scrollTo = function(index)
{
    var viewPortCoords = this.container.parentNode.getBoundingClientRect();
    var itemCoords = this.items[index].getBoundingClientRect();

    //todo implement scrollTo for vertical scrolling
    if (itemCoords.left < viewPortCoords.left) {
        var distanceInScrolls = Math.ceil(Math.abs(viewPortCoords.left - itemCoords.left) / viewPortCoords.width);
        this.scrollUp(null, distanceInScrolls);
        return;
    } else if (itemCoords.right > viewPortCoords.right) {
        var distanceInScrolls = Math.ceil(Math.abs(itemCoords.right - viewPortCoords.right) / viewPortCoords.width);
        this.scrollDown(null, distanceInScrolls);
        return;
    }

    return;
}

MBT.API.UI.Scroller.prototype.itemVisible = function(index)
{
    var viewPortCoords = this.container.parentNode.getBoundingClientRect();
    var itemCoords = this.items[index].getBoundingClientRect();

    if (this.type == 'horizontal') {
        return (itemCoords.left >= viewPortCoords.left && itemCoords.right <= viewPortCoords.right);
    } else if (this.type == 'vertical') {
        return (itemCoords.top >= viewPortCoords.top && itemCoords.bottom <= viewPortCoords.bottom);
    }

    return false;
}

MBT.API.extendParams = function(a, b) {
    for( var key in b ) {
        if( b.hasOwnProperty( key ) ) {
            a[key] = b[key];
        }
    }
    return a;
}

MBT.API.wrapInner = function(parent, wrapper, attribute, attributevalue) {
    if (typeof wrapper === "string") {
        wrapper = document.createElement(wrapper);
    }
    var div = parent.appendChild(wrapper)
        .setAttribute(attribute, attributevalue);

    while (parent.firstChild !== wrapper) {
        wrapper.appendChild(parent.firstChild);
    }
}

MBT.API.createResponsiveNavigation = function(options) {

    this.menuContainer = MBT.API.get(options.menuContainer);

    this.mobileMenuContainer = MBT.API.get(options.mobileMenuContainer);

    this.activeMenuItemText = options.activeMenuItemText;

    this.options = MBT.API.extendParams(this.getDefaults(), options);

    MBT.API.Event.observe(this.mobileMenuContainer, 'click', this.init.bind(this));

}

MBT.API.createResponsiveNavigation.prototype = {

    getDefaults: function() {
        return {
            filtersMode: false,
            mobileMenuCloseText: "Select",
            mobileMenuOpenedClass: "mbt-v2-mobile-menu-opened"
        }
    },

    init: function() {
        if(this.getMenuContainerVisibility() == 'none') {
            this.showMenuContainer();
            this.addOpendClassToMobileMenu();
            if(!this.options.filtersMode) {
                this.setMobileMenuCloseText();
            }
        }else {
            this.hideMenuContainer();
            this.removeOpendClassToMobileMenu();
            if(!this.options.filtersMode) {
                this.setMobileMenuTitle();
            }
        }

        var events = ['resize', 'redraw'];

        for(var i = 0; i < events.length; i++) {
            window.addEventListener(events[i], this.checkVisibility.bind(this), false);
        }
    },

    getMenuContainerVisibility: function() {
        return window.getComputedStyle(this.menuContainer, null).getPropertyValue('display');
    },

    showMenuContainer: function() {
        this.menuContainer.style.display = 'block';
    },

    hideMenuContainer: function() {
        this.menuContainer.style.display = 'none';
    },

    addOpendClassToMobileMenu: function() {
        this.mobileMenuContainer.classList.add(this.options.mobileMenuOpenedClass);
    },

    removeOpendClassToMobileMenu: function() {
        this.mobileMenuContainer.classList.remove(this.options.mobileMenuOpenedClass);
    },

    getActiveMenuItemText:  function() {
        for (var i = 0; i < this.menuContainer.childNodes.length; i++) {
            if (this.menuContainer.childNodes[i].className == 'mbt-v2-navigation-tab-active') {
                item = this.menuContainer.childNodes[i];
                this.activeMenuItemText = item.innerHTML;
                break;
            }
        }
    },

    setMobileMenuTitle: function() {
        this.getActiveMenuItemText();
        this.mobileMenuContainer.innerHTML = this.activeMenuItemText;
    },

    setMobileMenuCloseText: function() {
        this.mobileMenuContainer.innerHTML = this.options.mobileMenuCloseText;
    },

    checkVisibility: function() {
        var mobileVisibility = window.getComputedStyle(this.menuContainer, null).getPropertyValue('display');
        var menuVisibility = window.getComputedStyle(this.menuContainer, null).getPropertyValue('display');
        if(mobileVisibility == 'none' && menuVisibility == 'none') {
            this.menuContainer.style.display = 'block';
        }
    }
}

MBT.API.responsiveTable = function(options) {
    this.table = MBT.API.get(options.table);
    this.tablesContainer = MBT.API.get(options.tablesContainer);
    this.columnsToPin = options.columnsToPin;

    this.splitted = false;
}

MBT.API.responsiveTable.prototype = {

    watchTable: function() {

        if(!this.table) {
            return;
        }

        var self = this;

        setTimeout(function() {
            self.checkTableWidth();
        }, 300);

        var events = ['resize', 'redraw'];

        for(var i = 0; i < events.length; i++) {
            window.addEventListener(events[i], this.checkTableWidth.bind(this), false);
        }
    },

    checkTableWidth: function() {
        if(this.splitted) {
            this.scroller.resizeScrollContent();
        }
        if(this.table.offsetWidth > this.tablesContainer.offsetWidth && !this.splitted) {
            this.splitTable();
        } else if (this.table.offsetWidth < this.tablesContainer.offsetWidth && this.splitted) {
            this.unsplitTable();
        }
    },

    splitTable: function() {

        var pinnedTable = this.createPinnedTable();

        if(this.table.hasAttribute('class')) {
            pinnedTable.setAttribute('class', this.table.getAttribute('class'));
        }

        var scrollableContainer = this.createScrollableContainer();
        scrollableContainer.appendChild(this.table);
        this.tablesContainer.appendChild(scrollableContainer);

        this.hideTableColumns();

        var pinnedContainer = this.createPinnedContainer();
        pinnedContainer.appendChild(pinnedTable);
        this.tablesContainer.appendChild(pinnedContainer);

        if(window.getComputedStyle(this.table, null).getPropertyValue('direction') == 'rtl') {
            scrollableContainer.style.marginRight = pinnedTable.offsetWidth +"px";
        } else {
           scrollableContainer.style.marginLeft = pinnedTable.offsetWidth +"px";
        }
        scrollableContainer.style.height = pinnedTable.offsetHeight +"px";

        this.scroller = new MBT.API.Scrollbar(
            scrollableContainer,
            {
                scrollDirection : 'horiz'
            }
        );

        this.splitted = true;
    },

    unsplitTable: function() {
        this.showTableColumns();
        this.tablesContainer.innerHTML = null;

        this.tablesContainer.appendChild(this.table);

        this.splitted = false;
    },

    hideTableColumns: function() {
        var tableRows = this.getTableTr();

        for(var i = 0; i < tableRows.length; i++) {
            for(var j = 0; j < this.columnsToPin; j++) {
                tableRows[i].getElementsByTagName('td')[j].style.display = 'none';
                if(tableRows[i].getElementsByTagName('td')[j].getAttribute('colspan') == this.columnsToPin) {
                    break;
                }
            }
        }

        var tableTheadRows = this.getTableThead();

        if(tableTheadRows) {
            for(var i = 0; i < this.columnsToPin; i++) {
                tableTheadRows.getElementsByTagName('th')[i].style.display = 'none';

            }
        }
    },

    showTableColumns: function() {
        var tableRows = this.getTableTr();

        for(var i = 0; i < tableRows.length; i++) {
            for(var j = 0; j < this.columnsToPin; j++) {
                tableRows[i].getElementsByTagName('td')[j].removeAttribute('style');
            }
        }

        var tableTheadRows = this.getTableThead();

        if(tableTheadRows) {
            for(var i = 0; i < this.columnsToPin; i++) {
                tableTheadRows.getElementsByTagName('th')[i].removeAttribute('style');
            }
        }
    },

    getTableTr: function() {
        var tbody  = this.table.getElementsByTagName('tbody')[0];
        var tr = tbody.getElementsByTagName('tr');
        return tr;
    },

    getTableThead: function() {
        var thead = this.table.getElementsByTagName('thead')[0];
        if(thead) {
            return thead.getElementsByTagName('tr')[0];
        }

        return false;
    },

    createPinnedContainer: function() {
        var container = document.createElement('div');
        container.className += ' mbt-v2-pinned-table-container';

        return container;
    },

    createScrollableContainer: function() {
        var container = document.createElement('div');
        container.className += ' mbt-v2-scrollable-table-container';

        return container;
    },

    createPinnedTable: function() {
        var table = document.createElement('table');

        table.className += ' mbt-v2-table';

        var originalTableThead = this.getTableThead();

        if(originalTableThead) {
            var tableThead = document.createElement('thead');
            var tableTheadRow = document.createElement('tr');
            for(var i = 0; i < this.columnsToPin; i++) {
                var tableTheadRowTh = document.createElement('th');
                tableTheadRowTh.innerHTML = originalTableThead.getElementsByTagName('th')[i].innerHTML;
                tableTheadRow.style.height = originalTableThead.getElementsByTagName('th')[i].offsetHeight + "px";
                tableTheadRow.appendChild(tableTheadRowTh);
                tableThead.appendChild(tableTheadRow);
                table.appendChild(tableThead);
            }
        }

        var tableBody = document.createElement('tbody');

        var originalTableRows = this.getTableTr();

        for(var i = 0; i < originalTableRows.length; i++) {
            var tableBodyRow = document.createElement('tr');

            if(originalTableRows[i].hasAttribute('class')) {
                tableBodyRow.setAttribute('class', originalTableRows[i].getAttribute('class'));
            }

            for(var j = 0; j < this.columnsToPin; j++) {
                var cell = document.createElement('td');
                cell.innerHTML = originalTableRows[i].getElementsByTagName('td')[j].innerHTML;
                if(originalTableRows[i].getElementsByTagName('td')[j].hasAttribute('colspan')) {
                    cell.setAttribute('colspan', originalTableRows[i].getElementsByTagName('td')[j].getAttribute('colspan'));
                }
                tableBodyRow.appendChild(cell);
                tableBody.appendChild(tableBodyRow);
                
                if(originalTableRows[i].getElementsByTagName('td')[j].getAttribute('colspan') == this.columnsToPin) {
                    break;
                }
            }

            var max = Math.max(tableBodyRow.offsetHeight, originalTableRows[i].offsetHeight);
            originalTableRows[i].style.height = max + "px";
            tableBodyRow.style.height = max + "px";
        }

        table.appendChild(tableBody);

        return table;
    }
}


MBT.API.Scrollbar = function(element, options) {
    this.el = MBT.API.get(element),
    this.track,
    this.scrollbar,
    this.dragOffset,
    this.flashTimeout,
    this.contentEl         = this.el,
    this.scrollContentEl   = this.el,
    this.scrollOffsetAttr   = 'scrollTop',
    this.sizeAttr           = 'height',
    this.scrollSizeAttr     = 'scrollHeight',
    this.offsetAttr         = 'top';

    this.options = MBT.API.extendParams(MBT.API.Scrollbar.DEFAULTS, options);
    this.scrollDirection    = this.options.scrollDirection,
    this.theme   = this.options.css;

    this.init();
}

MBT.API.Scrollbar.SCROLLBAR_WIDTH;
MBT.API.Scrollbar.IS_WEBKIT = 'WebkitAppearance' in document.documentElement.style;


MBT.API.Scrollbar.DEFAULTS = {
    scrollDirection: 'vert',
    wrapContent: true,
    autoHide: true,
    css: {
        container: 'mbt-v2-bar',
        content: 'mbt-v2-bar-content',
        scrollContent: 'mbt-v2-bar-scroll-content',
        scrollbar: 'mbt-v2-scrollbar',
        scrollbarTrack: 'mbt-v2-scrollbar-track'
    }
};

MBT.API.Scrollbar.prototype =  {

    init: function() {
        if(typeof MBT.API.Scrollbar.SCROLLBAR_WIDTH === 'undefined') {
            MBT.API.Scrollbar.SCROLLBAR_WIDTH = this.scrollbarWidth();
        }

        if(MBT.API.Scrollbar.SCROLLBAR_WIDTH === 0) {
            this.el.style.overflow = 0;
            return;
        }

        if (this.scrollDirection === 'horiz' ) {
            this.scrollOffsetAttr   = 'scrollLeft';
            this.sizeAttr           = 'offsetWidth';
            this.scrollSizeAttr     = 'scrollWidth';
            this.offsetAttr         = 'offsetLeft';
        }

        if (this.options.wrapContent) {
            var contentContainerEl = document.createElement('div');
            var contentEl = document.createElement('div');
            MBT.API.wrapInner(this.el, contentEl, 'class', this.theme.content);
            MBT.API.wrapInner(this.el, contentContainerEl, 'class', this.theme.scrollContent);
        }

        this.contentEl = contentEl;

        var scrollbarTrackEl = document.createElement('div');
        scrollbarTrackEl.setAttribute('class', this.theme.scrollbarTrack);

        var scrollbarEl = document.createElement('div');
        scrollbarEl.setAttribute('class', this.theme.scrollbar);

        scrollbarTrackEl.appendChild(scrollbarEl);
        this.el.insertBefore(scrollbarTrackEl, this.el.firstChild);

        this.track = scrollbarTrackEl;
        this.scrollbar = scrollbarEl;
        this.scrollContentEl = contentContainerEl;

        if (this.scrollDirection === 'horiz') {
            this.el.className += ' mbt-v2-scrollbar-horizontal';
        }

        this.resizeScrollContent();

        if (this.options.autoHide) {
            this.el.addEventListener('mouseenter', this.flashScrollbar.bind(this), false);
        }

        this.scrollbar.addEventListener('mousedown', this.startDrag.bind(this), false);
        this.scrollContentEl.addEventListener('scroll', this.startScroll.bind(this), false);

        this.resizeScrollbar();

        if (!this.options.autoHide) {
            this.showScrollbar();
        }
    },

    startDrag: function (e) {
        e.preventDefault();

        var eventOffset = e.pageY;

        if (this.scrollDirection === 'horiz') {
            eventOffset = e.pageX;
        }

        if(this.offsetAttr === 'top') {
            this.dragOffset = eventOffset - this.scrollbar.offsetTop;
        } else {
           this.dragOffset = eventOffset - this.scrollbar.offsetLeft;
        }

        document.addEventListener('mousemove', this, false);
        document.addEventListener('mouseup', this, false);

        this.resizeScrollbar();
    },

    startScroll: function(e) {

        this.flashScrollbar();
    },

    drag: function (e) {
        e.preventDefault();

        var eventOffset = e.pageY,
            dragPos     = null,
            dragPerc    = null,
            scrollPos   = null;

        if (this.scrollDirection === 'horiz') {
            eventOffset = e.pageX;
        }

        var offset = 0,
            a = 0;

        if(this.offsetAttr === 'top') {
            offset = this.track.offsetTop;
            a = this.track.offsetHeight;
        } else {
            offset = this.track.offsetLeft;
            a = this.track.offsetWidth;
        }

        dragPos = eventOffset - offset - this.dragOffset;

        dragPerc = dragPos / a;

        scrollPos = dragPerc * this.contentEl[this.scrollSizeAttr];

        this.scrollContentEl[this.scrollOffsetAttr] = scrollPos;
    },

    endDrag: function () {
        document.removeEventListener('mousemove', this, false);
        document.removeEventListener('mouseup', this, false);
    },

    flashScrollbar: function() {
        this.resizeScrollbar();
        this.showScrollbar();
    },

    resizeScrollbar: function() {

        if(MBT.API.Scrollbar === 0) {
            return;
        }

        var contentSize = this.contentEl[this.scrollSizeAttr],
            scrollOffset = this.scrollContentEl[this.scrollOffsetAttr],
            scrollbarSize = this.track[this.sizeAttr],
            scrollbarRatio = scrollbarSize / contentSize,
            handleOffset = Math.round(scrollbarRatio * scrollOffset) + 2,
            handleSize = Math.floor(scrollbarRatio * (scrollbarSize - 2)) - 2;

        if (scrollbarSize < contentSize) {
            if (this.scrollDirection === 'vert') {
                this.scrollbar.style.top = handleOffset;
                this.scrollbar.style.height = handleSize;
            } else {
                this.scrollbar.style.left = handleOffset +'px';
                this.scrollbar.style.width = handleSize +'px';
            }

            this.track.style.display = 'block';
        } else {
             this.track.style.display = 'none';
        }
    },

    resizeScrollContent: function() {
        if (MBT.API.Scrollbar.IS_WEBKIT) {
            return;
        }

        if (this.scrollDirection === 'vert') {
            this.scrollContentEl.style.width  = (this.el.offsetWidth + MBT.API.Scrollbar.SCROLLBAR_WIDTH)+'px';
            this.scrollContentEl.style.height = this.el.offsetHeight+'px';
        } else {
            this.scrollContentEl.style.width = this.el.offsetWidth+'px';
            this.scrollContentEl.style.height = this.el.offsetHeight + MBT.API.Scrollbar.SCROLLBAR_WIDTH+'px';
        }

    },

    showScrollbar: function () {
        this.scrollbar.className = this.theme.scrollbar +' visible';

        if (!this.options.autoHide) {
            return;
        }

        if(typeof this.flashTimeout === 'number') {
            window.clearTimeout(this.flashTimeout);
        }

        this.flashTimeout = window.setTimeout(this.hideScrollbar.bind(this), 1000);
    },

    hideScrollbar: function() {
        this.scrollbar.className = this.theme.scrollbar;

        if(typeof this.flashTimeout === 'number') {
            window.clearTimeout(this.flashTimeout);
        }
    },

    resizeScrollContent: function () {
        if (MBT.API.Scrollbar.IS_WEBKIT) {
            return;
        }

        if (this.scrollDirection === 'vert') {
            this.scrollContentEl.style.width  = (this.el.offsetWidth + MBT.API.Scrollbar.SCROLLBAR_WIDTH)+'px';
            this.scrollContentEl.style.height = this.el.offsetHeight+'px';
        } else {
            this.scrollContentEl.style.width = this.el.offsetWidth+'px';
            this.scrollContentEl.style.height = this.el.offsetHeight + MBT.API.Scrollbar.SCROLLBAR_WIDTH+'px';
        }
    },

    scrollbarWidth: function() {
        var tempEl = document.createElement('div');
        tempEl.style.width = '50px';
        tempEl.style.height = '50px';
        tempEl.style.overflowY = 'scroll';
        tempEl.style.top = '-200px';
        tempEl.style.left = '-200px';

        var elInsideTemp = document.createElement('div');
        elInsideTemp.style.height = '100px';

        tempEl.appendChild(elInsideTemp);

        document.body.appendChild(tempEl);

        width = 0,
        widthMinusScrollbars = 0;

        width = tempEl.offsetWidth;
        widthMinusScrollbars = elInsideTemp.offsetWidth;

        document.body.removeChild(tempEl);

        return (width - widthMinusScrollbars);
    },

    handleEvent: function(event) {
        switch(event.type) {
            case 'mousemove':
                this.drag(event);
                break;
            case 'mouseup':
                this.endDrag(event);
                break;
        }
    }
};
// source --> https://kkdomzale.si/wp-content/themes/splash-child/js/widget.js 
!function(){"use strict";function g(a){a.fn.swiper=function(b){var c;return a(this).each(function(){var a=new Swiper(this,b);c||(c=a)}),c}}var a,b=function(d,f){function p(a){return Math.floor(a)}function q(){var a=n.params.autoplay,b=n.slides.eq(n.activeIndex);b.attr("data-swiper-autoplay")&&(a=b.attr("data-swiper-autoplay")||n.params.autoplay),n.autoplayTimeoutId=setTimeout(function(){n.params.loop?(n.fixLoop(),n._slideNext(),n.emit("onAutoplay",n)):n.isEnd?f.autoplayStopOnLast?n.stopAutoplay():(n._slideTo(0),n.emit("onAutoplay",n)):(n._slideNext(),n.emit("onAutoplay",n))},a)}function r(b,c){var d=a(b.target);if(!d.is(c))if("string"==typeof c)d=d.parents(c);else if(c.nodeType){var e;return d.parents().each(function(a,b){b===c&&(e=c)}),e?c:void 0}if(0!==d.length)return d[0]}function H(a,b){b=b||{};var c=window.MutationObserver||window.WebkitMutationObserver,d=new c(function(a){a.forEach(function(a){n.onResize(!0),n.emit("onObserverUpdate",n,a)})});d.observe(a,{attributes:"undefined"==typeof b.attributes||b.attributes,childList:"undefined"==typeof b.childList||b.childList,characterData:"undefined"==typeof b.characterData||b.characterData}),n.observers.push(d)}function I(a){a.originalEvent&&(a=a.originalEvent);var b=a.keyCode||a.charCode;if(!n.params.allowSwipeToNext&&(n.isHorizontal()&&39===b||!n.isHorizontal()&&40===b))return!1;if(!n.params.allowSwipeToPrev&&(n.isHorizontal()&&37===b||!n.isHorizontal()&&38===b))return!1;if(!(a.shiftKey||a.altKey||a.ctrlKey||a.metaKey||document.activeElement&&document.activeElement.nodeName&&("input"===document.activeElement.nodeName.toLowerCase()||"textarea"===document.activeElement.nodeName.toLowerCase()))){if(37===b||39===b||38===b||40===b){var c=!1;if(n.container.parents("."+n.params.slideClass).length>0&&0===n.container.parents("."+n.params.slideActiveClass).length)return;var d={left:window.pageXOffset,top:window.pageYOffset},e=window.innerWidth,f=window.innerHeight,g=n.container.offset();n.rtl&&(g.left=g.left-n.container[0].scrollLeft);for(var h=[[g.left,g.top],[g.left+n.width,g.top],[g.left,g.top+n.height],[g.left+n.width,g.top+n.height]],i=0;i<h.length;i++){var j=h[i];j[0]>=d.left&&j[0]<=d.left+e&&j[1]>=d.top&&j[1]<=d.top+f&&(c=!0)}if(!c)return}n.isHorizontal()?(37!==b&&39!==b||(a.preventDefault?a.preventDefault():a.returnValue=!1),(39===b&&!n.rtl||37===b&&n.rtl)&&n.slideNext(),(37===b&&!n.rtl||39===b&&n.rtl)&&n.slidePrev()):(38!==b&&40!==b||(a.preventDefault?a.preventDefault():a.returnValue=!1),40===b&&n.slideNext(),38===b&&n.slidePrev())}}function J(){var a="onwheel",b=a in document;if(!b){var c=document.createElement("div");c.setAttribute(a,"return;"),b="function"==typeof c[a]}return!b&&document.implementation&&document.implementation.hasFeature&&document.implementation.hasFeature("","")!==!0&&(b=document.implementation.hasFeature("Events.wheel","3.0")),b}function K(a){a.originalEvent&&(a=a.originalEvent);var b=0,c=n.rtl?-1:1,d=L(a);if(n.params.mousewheelForceToAxis)if(n.isHorizontal()){if(!(Math.abs(d.pixelX)>Math.abs(d.pixelY)))return;b=d.pixelX*c}else{if(!(Math.abs(d.pixelY)>Math.abs(d.pixelX)))return;b=d.pixelY}else b=Math.abs(d.pixelX)>Math.abs(d.pixelY)?-d.pixelX*c:-d.pixelY;if(0!==b){if(n.params.mousewheelInvert&&(b=-b),n.params.freeMode){var e=n.getWrapperTranslate()+b*n.params.mousewheelSensitivity,f=n.isBeginning,g=n.isEnd;if(e>=n.minTranslate()&&(e=n.minTranslate()),e<=n.maxTranslate()&&(e=n.maxTranslate()),n.setWrapperTransition(0),n.setWrapperTranslate(e),n.updateProgress(),n.updateActiveIndex(),(!f&&n.isBeginning||!g&&n.isEnd)&&n.updateClasses(),n.params.freeModeSticky?(clearTimeout(n.mousewheel.timeout),n.mousewheel.timeout=setTimeout(function(){n.slideReset()},300)):n.params.lazyLoading&&n.lazy&&n.lazy.load(),n.emit("onScroll",n,a),n.params.autoplay&&n.params.autoplayDisableOnInteraction&&n.stopAutoplay(),0===e||e===n.maxTranslate())return}else{if((new window.Date).getTime()-n.mousewheel.lastScrollTime>60)if(b<0)if(n.isEnd&&!n.params.loop||n.animating){if(n.params.mousewheelReleaseOnEdges)return!0}else n.slideNext(),n.emit("onScroll",n,a);else if(n.isBeginning&&!n.params.loop||n.animating){if(n.params.mousewheelReleaseOnEdges)return!0}else n.slidePrev(),n.emit("onScroll",n,a);n.mousewheel.lastScrollTime=(new window.Date).getTime()}return a.preventDefault?a.preventDefault():a.returnValue=!1,!1}}function L(a){var b=10,c=40,d=800,e=0,f=0,g=0,h=0;return"detail"in a&&(f=a.detail),"wheelDelta"in a&&(f=-a.wheelDelta/120),"wheelDeltaY"in a&&(f=-a.wheelDeltaY/120),"wheelDeltaX"in a&&(e=-a.wheelDeltaX/120),"axis"in a&&a.axis===a.HORIZONTAL_AXIS&&(e=f,f=0),g=e*b,h=f*b,"deltaY"in a&&(h=a.deltaY),"deltaX"in a&&(g=a.deltaX),(g||h)&&a.deltaMode&&(1===a.deltaMode?(g*=c,h*=c):(g*=d,h*=d)),g&&!e&&(e=g<1?-1:1),h&&!f&&(f=h<1?-1:1),{spinX:e,spinY:f,pixelX:g,pixelY:h}}function M(b,c){b=a(b);var d,e,f,g=n.rtl?-1:1;d=b.attr("data-swiper-parallax")||"0",e=b.attr("data-swiper-parallax-x"),f=b.attr("data-swiper-parallax-y"),e||f?(e=e||"0",f=f||"0"):n.isHorizontal()?(e=d,f="0"):(f=d,e="0"),e=e.indexOf("%")>=0?parseInt(e,10)*c*g+"%":e*c*g+"px",f=f.indexOf("%")>=0?parseInt(f,10)*c+"%":f*c+"px",b.transform("translate3d("+e+", "+f+",0px)")}function P(a){return 0!==a.indexOf("on")&&(a=a[0]!==a[0].toUpperCase()?"on"+a[0].toUpperCase()+a.substring(1):"on"+a),a}if(!(this instanceof b))return new b(d,f);var g={direction:"horizontal",touchEventsTarget:"container",initialSlide:0,speed:300,autoplay:!1,autoplayDisableOnInteraction:!0,autoplayStopOnLast:!1,iOSEdgeSwipeDetection:!1,iOSEdgeSwipeThreshold:20,freeMode:!1,freeModeMomentum:!0,freeModeMomentumRatio:1,freeModeMomentumBounce:!0,freeModeMomentumBounceRatio:1,freeModeMomentumVelocityRatio:1,freeModeSticky:!1,freeModeMinimumVelocity:.02,autoHeight:!1,setWrapperSize:!1,virtualTranslate:!1,effect:"slide",coverflow:{rotate:50,stretch:0,depth:100,modifier:1,slideShadows:!0},flip:{slideShadows:!0,limitRotation:!0},cube:{slideShadows:!0,shadow:!0,shadowOffset:20,shadowScale:.94},fade:{crossFade:!1},parallax:!1,zoom:!1,zoomMax:3,zoomMin:1,zoomToggle:!0,scrollbar:null,scrollbarHide:!0,scrollbarDraggable:!1,scrollbarSnapOnRelease:!1,keyboardControl:!1,mousewheelControl:!1,mousewheelReleaseOnEdges:!1,mousewheelInvert:!1,mousewheelForceToAxis:!1,mousewheelSensitivity:1,mousewheelEventsTarged:"container",hashnav:!1,hashnavWatchState:!1,history:!1,replaceState:!1,breakpoints:void 0,spaceBetween:0,slidesPerView:1,slidesPerColumn:1,slidesPerColumnFill:"column",slidesPerGroup:1,centeredSlides:!1,slidesOffsetBefore:0,slidesOffsetAfter:0,roundLengths:!1,touchRatio:1,touchAngle:45,simulateTouch:!0,shortSwipes:!0,longSwipes:!0,longSwipesRatio:.5,longSwipesMs:300,followFinger:!0,onlyExternal:!1,threshold:0,touchMoveStopPropagation:!0,touchReleaseOnEdges:!1,uniqueNavElements:!0,pagination:null,paginationElement:"span",paginationClickable:!1,paginationHide:!1,paginationBulletRender:null,paginationProgressRender:null,paginationFractionRender:null,paginationCustomRender:null,paginationType:"bullets",resistance:!0,resistanceRatio:.85,nextButton:null,prevButton:null,watchSlidesProgress:!1,watchSlidesVisibility:!1,grabCursor:!1,preventClicks:!0,preventClicksPropagation:!0,slideToClickedSlide:!1,lazyLoading:!1,lazyLoadingInPrevNext:!1,lazyLoadingInPrevNextAmount:1,lazyLoadingOnTransitionStart:!1,preloadImages:!0,updateOnImagesReady:!0,loop:!1,loopAdditionalSlides:0,loopedSlides:null,control:void 0,controlInverse:!1,controlBy:"slide",normalizeSlideIndex:!0,allowSwipeToPrev:!0,allowSwipeToNext:!0,swipeHandler:null,noSwiping:!0,noSwipingClass:"mbt-v2-games-scroller-no-swiping",passiveListeners:!0,containerModifierClass:"mbt-v2-games-scroller-container-",slideClass:"mbt-v2-games-scroller-item",slideActiveClass:"mbt-v2-games-scroller-item-active",slideDuplicateActiveClass:"mbt-v2-games-scroller-item-duplicate-active",slideVisibleClass:"mbt-v2-games-scroller-item-visible",slideDuplicateClass:"mbt-v2-games-scroller-item-duplicate",slideNextClass:"mbt-v2-games-scroller-item-next",slideDuplicateNextClass:"mbt-v2-games-scroller-item-next-duplicate-next",slidePrevClass:"mbt-v2-games-scroller-item-prev",slideDuplicatePrevClass:"mbt-v2-games-scroller-item-next-duplicate-prev",wrapperClass:"mbt-v2-games-scroller-wrapper",bulletClass:"mbt-v2-games-scroller-pagination-bullet",bulletActiveClass:"mbt-v2-games-scroller-pagination-bullet-active",buttonDisabledClass:"mbt-v2-games-scroller-button-disabled",paginationCurrentClass:"mbt-v2-games-scroller-pagination-current",paginationTotalClass:"mbt-v2-games-scroller-pagination-total",paginationHiddenClass:"mbt-v2-games-scroller-pagination-hidden",paginationProgressbarClass:"mbt-v2-games-scroller-pagination-progressbar",paginationClickableClass:"mbt-v2-games-scroller-pagination-clickable",paginationModifierClass:"mbt-v2-games-scroller-pagination-",lazyLoadingClass:"mbt-v2-games-scroller-lazy",lazyStatusLoadingClass:"mbt-v2-games-scroller-lazy-loading",lazyStatusLoadedClass:"mbt-v2-games-scroller-lazy-loaded",lazyPreloaderClass:"mbt-v2-games-scroller-lazy-preloader",notificationClass:"mbt-v2-games-scroller-notification",preloaderClass:"mbt-v2-games-scroller-preloader",zoomContainerClass:"mbt-v2-games-scroller-zoom-container",observer:!1,observeParents:!1,a11y:!1,prevSlideMessage:"Previous slide",nextSlideMessage:"Next slide",firstSlideMessage:"This is the first slide",lastSlideMessage:"This is the last slide",paginationBulletMessage:"Go to slide {{index}}",runCallbacksOnInit:!0},h=f&&f.virtualTranslate;f=f||{};var i={};for(var j in f)if("object"!=typeof f[j]||null===f[j]||(f[j].nodeType||f[j]===window||f[j]===document||"undefined"!=typeof c&&f[j]instanceof c||"undefined"!=typeof jQuery&&f[j]instanceof jQuery))i[j]=f[j];else{i[j]={};for(var k in f[j])i[j][k]=f[j][k]}for(var l in g)if("undefined"==typeof f[l])f[l]=g[l];else if("object"==typeof f[l])for(var m in g[l])"undefined"==typeof f[l][m]&&(f[l][m]=g[l][m]);var n=this;if(n.params=f,n.originalParams=i,n.classNames=[],"undefined"!=typeof a&&"undefined"!=typeof c&&(a=c),("undefined"!=typeof a||(a="undefined"==typeof c?window.Dom7||window.Zepto||window.jQuery:c))&&(n.$=a,n.currentBreakpoint=void 0,n.getActiveBreakpoint=function(){if(!n.params.breakpoints)return!1;var c,a=!1,b=[];for(c in n.params.breakpoints)n.params.breakpoints.hasOwnProperty(c)&&b.push(c);b.sort(function(a,b){return parseInt(a,10)>parseInt(b,10)});for(var d=0;d<b.length;d++)c=b[d],c>=window.innerWidth&&!a&&(a=c);return a||"max"},n.setBreakpoint=function(){var a=n.getActiveBreakpoint();if(a&&n.currentBreakpoint!==a){var b=a in n.params.breakpoints?n.params.breakpoints[a]:n.originalParams,c=n.params.loop&&b.slidesPerView!==n.params.slidesPerView;for(var d in b)n.params[d]=b[d];n.currentBreakpoint=a,c&&n.destroyLoop&&n.reLoop(!0)}},n.params.breakpoints&&n.setBreakpoint(),n.container=a(d),0!==n.container.length)){if(n.container.length>1){var o=[];return n.container.each(function(){o.push(new Swiper(this,f))}),o}n.container[0].swiper=n,n.container.data("swiper",n),n.classNames.push(n.params.containerModifierClass+n.params.direction),n.params.freeMode&&n.classNames.push(n.params.containerModifierClass+"free-mode"),n.support.flexbox||(n.classNames.push(n.params.containerModifierClass+"no-flexbox"),n.params.slidesPerColumn=1),n.params.autoHeight&&n.classNames.push(n.params.containerModifierClass+"autoheight"),(n.params.parallax||n.params.watchSlidesVisibility)&&(n.params.watchSlidesProgress=!0),n.params.touchReleaseOnEdges&&(n.params.resistanceRatio=0),["cube","coverflow","flip"].indexOf(n.params.effect)>=0&&(n.support.transforms3d?(n.params.watchSlidesProgress=!0,n.classNames.push(n.params.containerModifierClass+"3d")):n.params.effect="slide"),"slide"!==n.params.effect&&n.classNames.push(n.params.containerModifierClass+n.params.effect),"cube"===n.params.effect&&(n.params.resistanceRatio=0,n.params.slidesPerView=1,n.params.slidesPerColumn=1,n.params.slidesPerGroup=1,n.params.centeredSlides=!1,n.params.spaceBetween=0,n.params.virtualTranslate=!0,n.params.setWrapperSize=!1),"fade"!==n.params.effect&&"flip"!==n.params.effect||(n.params.slidesPerView=1,n.params.slidesPerColumn=1,n.params.slidesPerGroup=1,n.params.watchSlidesProgress=!0,n.params.spaceBetween=0,n.params.setWrapperSize=!1,"undefined"==typeof h&&(n.params.virtualTranslate=!0)),n.params.grabCursor&&n.support.touch&&(n.params.grabCursor=!1),n.wrapper=n.container.children("."+n.params.wrapperClass),n.params.pagination&&(n.paginationContainer=a(n.params.pagination),n.params.uniqueNavElements&&"string"==typeof n.params.pagination&&n.paginationContainer.length>1&&1===n.container.find(n.params.pagination).length&&(n.paginationContainer=n.container.find(n.params.pagination)),"bullets"===n.params.paginationType&&n.params.paginationClickable?n.paginationContainer.addClass(n.params.paginationModifierClass+"clickable"):n.params.paginationClickable=!1,n.paginationContainer.addClass(n.params.paginationModifierClass+n.params.paginationType)),(n.params.nextButton||n.params.prevButton)&&(n.params.nextButton&&(n.nextButton=a(n.params.nextButton),n.params.uniqueNavElements&&"string"==typeof n.params.nextButton&&n.nextButton.length>1&&1===n.container.find(n.params.nextButton).length&&(n.nextButton=n.container.find(n.params.nextButton))),n.params.prevButton&&(n.prevButton=a(n.params.prevButton),n.params.uniqueNavElements&&"string"==typeof n.params.prevButton&&n.prevButton.length>1&&1===n.container.find(n.params.prevButton).length&&(n.prevButton=n.container.find(n.params.prevButton)))),n.isHorizontal=function(){return"horizontal"===n.params.direction},n.rtl=n.isHorizontal()&&("rtl"===n.container[0].dir.toLowerCase()||"rtl"===n.container.css("direction")),n.rtl&&n.classNames.push(n.params.containerModifierClass+"rtl"),n.rtl&&(n.wrongRTL="-webkit-box"===n.wrapper.css("display")),n.params.slidesPerColumn>1&&n.classNames.push(n.params.containerModifierClass+"multirow"),n.device.android&&n.classNames.push(n.params.containerModifierClass+"android"),n.container.addClass(n.classNames.join(" ")),n.translate=0,n.progress=0,n.velocity=0,n.lockSwipeToNext=function(){n.params.allowSwipeToNext=!1,n.params.allowSwipeToPrev===!1&&n.params.grabCursor&&n.unsetGrabCursor()},n.lockSwipeToPrev=function(){n.params.allowSwipeToPrev=!1,n.params.allowSwipeToNext===!1&&n.params.grabCursor&&n.unsetGrabCursor()},n.lockSwipes=function(){n.params.allowSwipeToNext=n.params.allowSwipeToPrev=!1,n.params.grabCursor&&n.unsetGrabCursor()},n.unlockSwipeToNext=function(){n.params.allowSwipeToNext=!0,n.params.allowSwipeToPrev===!0&&n.params.grabCursor&&n.setGrabCursor()},n.unlockSwipeToPrev=function(){n.params.allowSwipeToPrev=!0,n.params.allowSwipeToNext===!0&&n.params.grabCursor&&n.setGrabCursor()},n.unlockSwipes=function(){n.params.allowSwipeToNext=n.params.allowSwipeToPrev=!0,n.params.grabCursor&&n.setGrabCursor()},n.setGrabCursor=function(a){n.container[0].style.cursor="move",n.container[0].style.cursor=a?"-webkit-grabbing":"-webkit-grab",n.container[0].style.cursor=a?"-moz-grabbin":"-moz-grab",n.container[0].style.cursor=a?"grabbing":"grab"},n.unsetGrabCursor=function(){n.container[0].style.cursor=""},n.params.grabCursor&&n.setGrabCursor(),n.imagesToLoad=[],n.imagesLoaded=0,n.loadImage=function(a,b,c,d,e,f){function h(){f&&f()}var g;a.complete&&e?h():b?(g=new window.Image,g.onload=h,g.onerror=h,d&&(g.sizes=d),c&&(g.srcset=c),b&&(g.src=b)):h()},n.preloadImages=function(){function a(){"undefined"!=typeof n&&null!==n&&(void 0!==n.imagesLoaded&&n.imagesLoaded++,n.imagesLoaded===n.imagesToLoad.length&&(n.params.updateOnImagesReady&&n.update(),n.emit("onImagesReady",n)))}n.imagesToLoad=n.container.find("img");for(var b=0;b<n.imagesToLoad.length;b++)n.loadImage(n.imagesToLoad[b],n.imagesToLoad[b].currentSrc||n.imagesToLoad[b].getAttribute("src"),n.imagesToLoad[b].srcset||n.imagesToLoad[b].getAttribute("srcset"),n.imagesToLoad[b].sizes||n.imagesToLoad[b].getAttribute("sizes"),!0,a)},n.autoplayTimeoutId=void 0,n.autoplaying=!1,n.autoplayPaused=!1,n.startAutoplay=function(){return"undefined"==typeof n.autoplayTimeoutId&&(!!n.params.autoplay&&(!n.autoplaying&&(n.autoplaying=!0,n.emit("onAutoplayStart",n),void q())))},n.stopAutoplay=function(a){n.autoplayTimeoutId&&(n.autoplayTimeoutId&&clearTimeout(n.autoplayTimeoutId),n.autoplaying=!1,n.autoplayTimeoutId=void 0,n.emit("onAutoplayStop",n))},n.pauseAutoplay=function(a){n.autoplayPaused||(n.autoplayTimeoutId&&clearTimeout(n.autoplayTimeoutId),n.autoplayPaused=!0,0===a?(n.autoplayPaused=!1,q()):n.wrapper.transitionEnd(function(){n&&(n.autoplayPaused=!1,n.autoplaying?q():n.stopAutoplay())}))},n.minTranslate=function(){return-n.snapGrid[0]},n.maxTranslate=function(){return-n.snapGrid[n.snapGrid.length-1]},n.updateAutoHeight=function(){var a=[],b=0;if("auto"!==n.params.slidesPerView&&n.params.slidesPerView>1)for(e=0;e<Math.ceil(n.params.slidesPerView);e++){var c=n.activeIndex+e;if(c>n.slides.length)break;a.push(n.slides.eq(c)[0])}else a.push(n.slides.eq(n.activeIndex)[0]);for(e=0;e<a.length;e++)if("undefined"!=typeof a[e]){var d=a[e].offsetHeight;b=d>b?d:b}b&&n.wrapper.css("height",b+"px")},n.updateContainerSize=function(){var a,b;a="undefined"!=typeof n.params.width?n.params.width:n.container[0].clientWidth,b="undefined"!=typeof n.params.height?n.params.height:n.container[0].clientHeight,0===a&&n.isHorizontal()||0===b&&!n.isHorizontal()||(a=a-parseInt(n.container.css("padding-left"),10)-parseInt(n.container.css("padding-right"),10),b=b-parseInt(n.container.css("padding-top"),10)-parseInt(n.container.css("padding-bottom"),10),n.width=a,n.height=b,n.size=n.isHorizontal()?n.width:n.height)},n.updateSlidesSize=function(){n.slides=n.wrapper.children("."+n.params.slideClass),n.snapGrid=[],n.slidesGrid=[],n.slidesSizesGrid=[];var c,a=n.params.spaceBetween,b=-n.params.slidesOffsetBefore,d=0,e=0;if("undefined"!=typeof n.size){"string"==typeof a&&a.indexOf("%")>=0&&(a=parseFloat(a.replace("%",""))/100*n.size),n.virtualSize=-a,n.rtl?n.slides.css({marginLeft:"",marginTop:""}):n.slides.css({marginRight:"",marginBottom:""});var f;n.params.slidesPerColumn>1&&(f=Math.floor(n.slides.length/n.params.slidesPerColumn)===n.slides.length/n.params.slidesPerColumn?n.slides.length:Math.ceil(n.slides.length/n.params.slidesPerColumn)*n.params.slidesPerColumn,"auto"!==n.params.slidesPerView&&"row"===n.params.slidesPerColumnFill&&(f=Math.max(f,n.params.slidesPerView*n.params.slidesPerColumn)));var g,h=n.params.slidesPerColumn,i=f/h,j=i-(n.params.slidesPerColumn*i-n.slides.length);for(c=0;c<n.slides.length;c++){g=0;var k=n.slides.eq(c);if(n.params.slidesPerColumn>1){var l,m,o;"column"===n.params.slidesPerColumnFill?(m=Math.floor(c/h),o=c-m*h,(m>j||m===j&&o===h-1)&&++o>=h&&(o=0,m++),l=m+o*f/h,k.css({"-webkit-box-ordinal-group":l,"-moz-box-ordinal-group":l,"-ms-flex-order":l,"-webkit-order":l,order:l})):(o=Math.floor(c/i),m=c-o*i),k.css("margin-"+(n.isHorizontal()?"top":"left"),0!==o&&n.params.spaceBetween&&n.params.spaceBetween+"px").attr("data-swiper-column",m).attr("data-swiper-row",o)}"none"!==k.css("display")&&("auto"===n.params.slidesPerView?(g=n.isHorizontal()?k.outerWidth(!0):k.outerHeight(!0),n.params.roundLengths&&(g=p(g))):(g=(n.size-(n.params.slidesPerView-1)*a)/n.params.slidesPerView,n.params.roundLengths&&(g=p(g)),n.isHorizontal()?n.slides[c].style.width=g+"px":n.slides[c].style.height=g+"px"),n.slides[c].swiperSlideSize=g,n.slidesSizesGrid.push(g),n.params.centeredSlides?(b=b+g/2+d/2+a,0===c&&(b=b-n.size/2-a),Math.abs(b)<.001&&(b=0),e%n.params.slidesPerGroup===0&&n.snapGrid.push(b),n.slidesGrid.push(b)):(e%n.params.slidesPerGroup===0&&n.snapGrid.push(b),n.slidesGrid.push(b),b=b+g+a),n.virtualSize+=g+a,d=g,e++)}n.virtualSize=Math.max(n.virtualSize,n.size)+n.params.slidesOffsetAfter;var q;if(n.rtl&&n.wrongRTL&&("slide"===n.params.effect||"coverflow"===n.params.effect)&&n.wrapper.css({width:n.virtualSize+n.params.spaceBetween+"px"}),n.support.flexbox&&!n.params.setWrapperSize||(n.isHorizontal()?n.wrapper.css({width:n.virtualSize+n.params.spaceBetween+"px"}):n.wrapper.css({height:n.virtualSize+n.params.spaceBetween+"px"})),n.params.slidesPerColumn>1&&(n.virtualSize=(g+n.params.spaceBetween)*f,n.virtualSize=Math.ceil(n.virtualSize/n.params.slidesPerColumn)-n.params.spaceBetween,n.isHorizontal()?n.wrapper.css({width:n.virtualSize+n.params.spaceBetween+"px"}):n.wrapper.css({height:n.virtualSize+n.params.spaceBetween+"px"}),n.params.centeredSlides)){for(q=[],c=0;c<n.snapGrid.length;c++)n.snapGrid[c]<n.virtualSize+n.snapGrid[0]&&q.push(n.snapGrid[c]);n.snapGrid=q}if(!n.params.centeredSlides){for(q=[],c=0;c<n.snapGrid.length;c++)n.snapGrid[c]<=n.virtualSize-n.size&&q.push(n.snapGrid[c]);n.snapGrid=q,Math.floor(n.virtualSize-n.size)-Math.floor(n.snapGrid[n.snapGrid.length-1])>1&&n.snapGrid.push(n.virtualSize-n.size)}0===n.snapGrid.length&&(n.snapGrid=[0]),0!==n.params.spaceBetween&&(n.isHorizontal()?n.rtl?n.slides.css({marginLeft:a+"px"}):n.slides.css({marginRight:a+"px"}):n.slides.css({marginBottom:a+"px"})),n.params.watchSlidesProgress&&n.updateSlidesOffset()}},n.updateSlidesOffset=function(){for(var a=0;a<n.slides.length;a++)n.slides[a].swiperSlideOffset=n.isHorizontal()?n.slides[a].offsetLeft:n.slides[a].offsetTop},n.updateSlidesProgress=function(a){if("undefined"==typeof a&&(a=n.translate||0),0!==n.slides.length){"undefined"==typeof n.slides[0].swiperSlideOffset&&n.updateSlidesOffset();var b=-a;n.rtl&&(b=a),n.slides.removeClass(n.params.slideVisibleClass);for(var c=0;c<n.slides.length;c++){var d=n.slides[c],e=(b+(n.params.centeredSlides?n.minTranslate():0)-d.swiperSlideOffset)/(d.swiperSlideSize+n.params.spaceBetween);if(n.params.watchSlidesVisibility){var f=-(b-d.swiperSlideOffset),g=f+n.slidesSizesGrid[c],h=f>=0&&f<n.size||g>0&&g<=n.size||f<=0&&g>=n.size;h&&n.slides.eq(c).addClass(n.params.slideVisibleClass)}d.progress=n.rtl?-e:e}}},n.updateProgress=function(a){"undefined"==typeof a&&(a=n.translate||0);var b=n.maxTranslate()-n.minTranslate(),c=n.isBeginning,d=n.isEnd;0===b?(n.progress=0,n.isBeginning=n.isEnd=!0):(n.progress=(a-n.minTranslate())/b,n.isBeginning=n.progress<=0,n.isEnd=n.progress>=1),n.isBeginning&&!c&&n.emit("onReachBeginning",n),n.isEnd&&!d&&n.emit("onReachEnd",n),n.params.watchSlidesProgress&&n.updateSlidesProgress(a),n.emit("onProgress",n,n.progress)},n.updateActiveIndex=function(){var b,c,d,a=n.rtl?n.translate:-n.translate;for(c=0;c<n.slidesGrid.length;c++)"undefined"!=typeof n.slidesGrid[c+1]?a>=n.slidesGrid[c]&&a<n.slidesGrid[c+1]-(n.slidesGrid[c+1]-n.slidesGrid[c])/2?b=c:a>=n.slidesGrid[c]&&a<n.slidesGrid[c+1]&&(b=c+1):a>=n.slidesGrid[c]&&(b=c);n.params.normalizeSlideIndex&&(b<0||"undefined"==typeof b)&&(b=0),d=Math.floor(b/n.params.slidesPerGroup),d>=n.snapGrid.length&&(d=n.snapGrid.length-1),b!==n.activeIndex&&(n.snapIndex=d,n.previousIndex=n.activeIndex,n.activeIndex=b,n.updateClasses(),n.updateRealIndex())},n.updateRealIndex=function(){n.realIndex=n.slides.eq(n.activeIndex).attr("data-swiper-slide-index")||n.activeIndex},n.updateClasses=function(){n.slides.removeClass(n.params.slideActiveClass+" "+n.params.slideNextClass+" "+n.params.slidePrevClass+" "+n.params.slideDuplicateActiveClass+" "+n.params.slideDuplicateNextClass+" "+n.params.slideDuplicatePrevClass);var b=n.slides.eq(n.activeIndex);b.addClass(n.params.slideActiveClass),f.loop&&(b.hasClass(n.params.slideDuplicateClass)?n.wrapper.children("."+n.params.slideClass+":not(."+n.params.slideDuplicateClass+')[data-swiper-slide-index="'+n.realIndex+'"]').addClass(n.params.slideDuplicateActiveClass):n.wrapper.children("."+n.params.slideClass+"."+n.params.slideDuplicateClass+'[data-swiper-slide-index="'+n.realIndex+'"]').addClass(n.params.slideDuplicateActiveClass));var c=b.next("."+n.params.slideClass).addClass(n.params.slideNextClass);n.params.loop&&0===c.length&&(c=n.slides.eq(0),c.addClass(n.params.slideNextClass));var d=b.prev("."+n.params.slideClass).addClass(n.params.slidePrevClass);if(n.params.loop&&0===d.length&&(d=n.slides.eq(-1),d.addClass(n.params.slidePrevClass)),f.loop&&(c.hasClass(n.params.slideDuplicateClass)?n.wrapper.children("."+n.params.slideClass+":not(."+n.params.slideDuplicateClass+')[data-swiper-slide-index="'+c.attr("data-swiper-slide-index")+'"]').addClass(n.params.slideDuplicateNextClass):n.wrapper.children("."+n.params.slideClass+"."+n.params.slideDuplicateClass+'[data-swiper-slide-index="'+c.attr("data-swiper-slide-index")+'"]').addClass(n.params.slideDuplicateNextClass),d.hasClass(n.params.slideDuplicateClass)?n.wrapper.children("."+n.params.slideClass+":not(."+n.params.slideDuplicateClass+')[data-swiper-slide-index="'+d.attr("data-swiper-slide-index")+'"]').addClass(n.params.slideDuplicatePrevClass):n.wrapper.children("."+n.params.slideClass+"."+n.params.slideDuplicateClass+'[data-swiper-slide-index="'+d.attr("data-swiper-slide-index")+'"]').addClass(n.params.slideDuplicatePrevClass)),n.paginationContainer&&n.paginationContainer.length>0){var e,g=n.params.loop?Math.ceil((n.slides.length-2*n.loopedSlides)/n.params.slidesPerGroup):n.snapGrid.length;if(n.params.loop?(e=Math.ceil((n.activeIndex-n.loopedSlides)/n.params.slidesPerGroup),e>n.slides.length-1-2*n.loopedSlides&&(e-=n.slides.length-2*n.loopedSlides),e>g-1&&(e-=g),e<0&&"bullets"!==n.params.paginationType&&(e=g+e)):e="undefined"!=typeof n.snapIndex?n.snapIndex:n.activeIndex||0,"bullets"===n.params.paginationType&&n.bullets&&n.bullets.length>0&&(n.bullets.removeClass(n.params.bulletActiveClass),n.paginationContainer.length>1?n.bullets.each(function(){a(this).index()===e&&a(this).addClass(n.params.bulletActiveClass)}):n.bullets.eq(e).addClass(n.params.bulletActiveClass)),"fraction"===n.params.paginationType&&(n.paginationContainer.find("."+n.params.paginationCurrentClass).text(e+1),n.paginationContainer.find("."+n.params.paginationTotalClass).text(g)),"progress"===n.params.paginationType){var h=(e+1)/g,i=h,j=1;n.isHorizontal()||(j=h,i=1),n.paginationContainer.find("."+n.params.paginationProgressbarClass).transform("translate3d(0,0,0) scaleX("+i+") scaleY("+j+")").transition(n.params.speed)}"custom"===n.params.paginationType&&n.params.paginationCustomRender&&(n.paginationContainer.html(n.params.paginationCustomRender(n,e+1,g)),n.emit("onPaginationRendered",n,n.paginationContainer[0]))}n.params.loop||(n.params.prevButton&&n.prevButton&&n.prevButton.length>0&&(n.isBeginning?(n.prevButton.addClass(n.params.buttonDisabledClass),n.params.a11y&&n.a11y&&n.a11y.disable(n.prevButton)):(n.prevButton.removeClass(n.params.buttonDisabledClass),n.params.a11y&&n.a11y&&n.a11y.enable(n.prevButton))),n.params.nextButton&&n.nextButton&&n.nextButton.length>0&&(n.isEnd?(n.nextButton.addClass(n.params.buttonDisabledClass),n.params.a11y&&n.a11y&&n.a11y.disable(n.nextButton)):(n.nextButton.removeClass(n.params.buttonDisabledClass),n.params.a11y&&n.a11y&&n.a11y.enable(n.nextButton))))},n.updatePagination=function(){if(n.params.pagination&&n.paginationContainer&&n.paginationContainer.length>0){var a="";if("bullets"===n.params.paginationType){for(var b=n.params.loop?Math.ceil((n.slides.length-2*n.loopedSlides)/n.params.slidesPerGroup):n.snapGrid.length,c=0;c<b;c++)a+=n.params.paginationBulletRender?n.params.paginationBulletRender(n,c,n.params.bulletClass):"<"+n.params.paginationElement+' class="'+n.params.bulletClass+'"></'+n.params.paginationElement+">";n.paginationContainer.html(a),n.bullets=n.paginationContainer.find("."+n.params.bulletClass),n.params.paginationClickable&&n.params.a11y&&n.a11y&&n.a11y.initPagination()}"fraction"===n.params.paginationType&&(a=n.params.paginationFractionRender?n.params.paginationFractionRender(n,n.params.paginationCurrentClass,n.params.paginationTotalClass):'<span class="'+n.params.paginationCurrentClass+'"></span> / <span class="'+n.params.paginationTotalClass+'"></span>',n.paginationContainer.html(a)),"progress"===n.params.paginationType&&(a=n.params.paginationProgressRender?n.params.paginationProgressRender(n,n.params.paginationProgressbarClass):'<span class="'+n.params.paginationProgressbarClass+'"></span>',n.paginationContainer.html(a)),"custom"!==n.params.paginationType&&n.emit("onPaginationRendered",n,n.paginationContainer[0])}},n.update=function(a){function b(){n.rtl?-n.translate:n.translate;d=Math.min(Math.max(n.translate,n.maxTranslate()),n.minTranslate()),n.setWrapperTranslate(d),n.updateActiveIndex(),n.updateClasses()}if(n.updateContainerSize(),n.updateSlidesSize(),n.updateProgress(),n.updatePagination(),n.updateClasses(),n.params.scrollbar&&n.scrollbar&&n.scrollbar.set(),a){var c,d;n.controller&&n.controller.spline&&(n.controller.spline=void 0),n.params.freeMode?(b(),n.params.autoHeight&&n.updateAutoHeight()):(c=("auto"===n.params.slidesPerView||n.params.slidesPerView>1)&&n.isEnd&&!n.params.centeredSlides?n.slideTo(n.slides.length-1,0,!1,!0):n.slideTo(n.activeIndex,0,!1,!0),c||b())}else n.params.autoHeight&&n.updateAutoHeight()},n.onResize=function(a){n.params.breakpoints&&n.setBreakpoint();var b=n.params.allowSwipeToPrev,c=n.params.allowSwipeToNext;n.params.allowSwipeToPrev=n.params.allowSwipeToNext=!0,n.updateContainerSize(),n.updateSlidesSize(),("auto"===n.params.slidesPerView||n.params.freeMode||a)&&n.updatePagination(),n.params.scrollbar&&n.scrollbar&&n.scrollbar.set(),n.controller&&n.controller.spline&&(n.controller.spline=void 0);var d=!1;if(n.params.freeMode){var e=Math.min(Math.max(n.translate,n.maxTranslate()),n.minTranslate());n.setWrapperTranslate(e),n.updateActiveIndex(),n.updateClasses(),n.params.autoHeight&&n.updateAutoHeight()}else n.updateClasses(),d=("auto"===n.params.slidesPerView||n.params.slidesPerView>1)&&n.isEnd&&!n.params.centeredSlides?n.slideTo(n.slides.length-1,0,!1,!0):n.slideTo(n.activeIndex,0,!1,!0);n.params.lazyLoading&&!d&&n.lazy&&n.lazy.load(),n.params.allowSwipeToPrev=b,n.params.allowSwipeToNext=c},n.touchEventsDesktop={start:"mousedown",move:"mousemove",end:"mouseup"},window.navigator.pointerEnabled?n.touchEventsDesktop={start:"pointerdown",move:"pointermove",end:"pointerup"}:window.navigator.msPointerEnabled&&(n.touchEventsDesktop={start:"MSPointerDown",move:"MSPointerMove",end:"MSPointerUp"}),n.touchEvents={start:n.support.touch||!n.params.simulateTouch?"touchstart":n.touchEventsDesktop.start,move:n.support.touch||!n.params.simulateTouch?"touchmove":n.touchEventsDesktop.move,end:n.support.touch||!n.params.simulateTouch?"touchend":n.touchEventsDesktop.end},(window.navigator.pointerEnabled||window.navigator.msPointerEnabled)&&("container"===n.params.touchEventsTarget?n.container:n.wrapper).addClass("swiper-wp8-"+n.params.direction),n.initEvents=function(a){var b=a?"off":"on",c=a?"removeEventListener":"addEventListener",d="container"===n.params.touchEventsTarget?n.container[0]:n.wrapper[0],e=n.support.touch?d:document,g=!!n.params.nested;if(n.browser.ie)d[c](n.touchEvents.start,n.onTouchStart,!1),e[c](n.touchEvents.move,n.onTouchMove,g),e[c](n.touchEvents.end,n.onTouchEnd,!1);else{if(n.support.touch){var h=!("touchstart"!==n.touchEvents.start||!n.support.passiveListener||!n.params.passiveListeners)&&{passive:!0,capture:!1};d[c](n.touchEvents.start,n.onTouchStart,h),d[c](n.touchEvents.move,n.onTouchMove,g),d[c](n.touchEvents.end,n.onTouchEnd,h)}(f.simulateTouch&&!n.device.ios&&!n.device.android||f.simulateTouch&&!n.support.touch&&n.device.ios)&&(d[c]("mousedown",n.onTouchStart,!1),document[c]("mousemove",n.onTouchMove,g),document[c]("mouseup",n.onTouchEnd,!1))}window[c]("resize",n.onResize),n.params.nextButton&&n.nextButton&&n.nextButton.length>0&&(n.nextButton[b]("click",n.onClickNext),n.params.a11y&&n.a11y&&n.nextButton[b]("keydown",n.a11y.onEnterKey)),n.params.prevButton&&n.prevButton&&n.prevButton.length>0&&(n.prevButton[b]("click",n.onClickPrev),n.params.a11y&&n.a11y&&n.prevButton[b]("keydown",n.a11y.onEnterKey)),n.params.pagination&&n.params.paginationClickable&&(n.paginationContainer[b]("click","."+n.params.bulletClass,n.onClickIndex),n.params.a11y&&n.a11y&&n.paginationContainer[b]("keydown","."+n.params.bulletClass,n.a11y.onEnterKey)),(n.params.preventClicks||n.params.preventClicksPropagation)&&d[c]("click",n.preventClicks,!0)},n.attachEvents=function(){n.initEvents();
},n.detachEvents=function(){n.initEvents(!0)},n.allowClick=!0,n.preventClicks=function(a){n.allowClick||(n.params.preventClicks&&a.preventDefault(),n.params.preventClicksPropagation&&n.animating&&(a.stopPropagation(),a.stopImmediatePropagation()))},n.onClickNext=function(a){a.preventDefault(),n.isEnd&&!n.params.loop||n.slideNext()},n.onClickPrev=function(a){a.preventDefault(),n.isBeginning&&!n.params.loop||n.slidePrev()},n.onClickIndex=function(b){b.preventDefault();var c=a(this).index()*n.params.slidesPerGroup;n.params.loop&&(c+=n.loopedSlides),n.slideTo(c)},n.updateClickedSlide=function(b){var c=r(b,"."+n.params.slideClass),d=!1;if(c)for(var e=0;e<n.slides.length;e++)n.slides[e]===c&&(d=!0);if(!c||!d)return n.clickedSlide=void 0,void(n.clickedIndex=void 0);if(n.clickedSlide=c,n.clickedIndex=a(c).index(),n.params.slideToClickedSlide&&void 0!==n.clickedIndex&&n.clickedIndex!==n.activeIndex){var g,f=n.clickedIndex;if(n.params.loop){if(n.animating)return;g=a(n.clickedSlide).attr("data-swiper-slide-index"),n.params.centeredSlides?f<n.loopedSlides-n.params.slidesPerView/2||f>n.slides.length-n.loopedSlides+n.params.slidesPerView/2?(n.fixLoop(),f=n.wrapper.children("."+n.params.slideClass+'[data-swiper-slide-index="'+g+'"]:not(.'+n.params.slideDuplicateClass+")").eq(0).index(),setTimeout(function(){n.slideTo(f)},0)):n.slideTo(f):f>n.slides.length-n.params.slidesPerView?(n.fixLoop(),f=n.wrapper.children("."+n.params.slideClass+'[data-swiper-slide-index="'+g+'"]:not(.'+n.params.slideDuplicateClass+")").eq(0).index(),setTimeout(function(){n.slideTo(f)},0)):n.slideTo(f)}else n.slideTo(f)}};var s,t,u,v,w,x,y,z,C,E,A="input, select, textarea, button, video",B=Date.now(),D=[];n.animating=!1,n.touches={startX:0,startY:0,currentX:0,currentY:0,diff:0};var F,G;n.onTouchStart=function(b){if(b.originalEvent&&(b=b.originalEvent),F="touchstart"===b.type,F||!("which"in b)||3!==b.which){if(n.params.noSwiping&&r(b,"."+n.params.noSwipingClass))return void(n.allowClick=!0);if(!n.params.swipeHandler||r(b,n.params.swipeHandler)){var c=n.touches.currentX="touchstart"===b.type?b.targetTouches[0].pageX:b.pageX,d=n.touches.currentY="touchstart"===b.type?b.targetTouches[0].pageY:b.pageY;if(!(n.device.ios&&n.params.iOSEdgeSwipeDetection&&c<=n.params.iOSEdgeSwipeThreshold)){if(s=!0,t=!1,u=!0,w=void 0,G=void 0,n.touches.startX=c,n.touches.startY=d,v=Date.now(),n.allowClick=!0,n.updateContainerSize(),n.swipeDirection=void 0,n.params.threshold>0&&(z=!1),"touchstart"!==b.type){var e=!0;a(b.target).is(A)&&(e=!1),document.activeElement&&a(document.activeElement).is(A)&&document.activeElement.blur(),e&&b.preventDefault()}n.emit("onTouchStart",n,b)}}}},n.onTouchMove=function(b){if(b.originalEvent&&(b=b.originalEvent),!F||"mousemove"!==b.type){if(b.preventedByNestedSwiper)return n.touches.startX="touchmove"===b.type?b.targetTouches[0].pageX:b.pageX,void(n.touches.startY="touchmove"===b.type?b.targetTouches[0].pageY:b.pageY);if(n.params.onlyExternal)return n.allowClick=!1,void(s&&(n.touches.startX=n.touches.currentX="touchmove"===b.type?b.targetTouches[0].pageX:b.pageX,n.touches.startY=n.touches.currentY="touchmove"===b.type?b.targetTouches[0].pageY:b.pageY,v=Date.now()));if(F&&n.params.touchReleaseOnEdges&&!n.params.loop)if(n.isHorizontal()){if(n.touches.currentX<n.touches.startX&&n.translate<=n.maxTranslate()||n.touches.currentX>n.touches.startX&&n.translate>=n.minTranslate())return}else if(n.touches.currentY<n.touches.startY&&n.translate<=n.maxTranslate()||n.touches.currentY>n.touches.startY&&n.translate>=n.minTranslate())return;if(F&&document.activeElement&&b.target===document.activeElement&&a(b.target).is(A))return t=!0,void(n.allowClick=!1);if(u&&n.emit("onTouchMove",n,b),!(b.targetTouches&&b.targetTouches.length>1)){if(n.touches.currentX="touchmove"===b.type?b.targetTouches[0].pageX:b.pageX,n.touches.currentY="touchmove"===b.type?b.targetTouches[0].pageY:b.pageY,"undefined"==typeof w){var c;n.isHorizontal()&&n.touches.currentY===n.touches.startY||!n.isHorizontal()&&n.touches.currentX!==n.touches.startX?w=!1:(c=180*Math.atan2(Math.abs(n.touches.currentY-n.touches.startY),Math.abs(n.touches.currentX-n.touches.startX))/Math.PI,w=n.isHorizontal()?c>n.params.touchAngle:90-c>n.params.touchAngle)}if(w&&n.emit("onTouchMoveOpposite",n,b),"undefined"==typeof G&&n.browser.ieTouch&&(n.touches.currentX===n.touches.startX&&n.touches.currentY===n.touches.startY||(G=!0)),s){if(w)return void(s=!1);if(G||!n.browser.ieTouch){n.allowClick=!1,n.emit("onSliderMove",n,b),b.preventDefault(),n.params.touchMoveStopPropagation&&!n.params.nested&&b.stopPropagation(),t||(f.loop&&n.fixLoop(),y=n.getWrapperTranslate(),n.setWrapperTransition(0),n.animating&&n.wrapper.trigger("webkitTransitionEnd transitionend oTransitionEnd MSTransitionEnd msTransitionEnd"),n.params.autoplay&&n.autoplaying&&(n.params.autoplayDisableOnInteraction?n.stopAutoplay():n.pauseAutoplay()),E=!1,!n.params.grabCursor||n.params.allowSwipeToNext!==!0&&n.params.allowSwipeToPrev!==!0||n.setGrabCursor(!0)),t=!0;var d=n.touches.diff=n.isHorizontal()?n.touches.currentX-n.touches.startX:n.touches.currentY-n.touches.startY;d*=n.params.touchRatio,n.rtl&&(d=-d),n.swipeDirection=d>0?"prev":"next",x=d+y;var e=!0;if(d>0&&x>n.minTranslate()?(e=!1,n.params.resistance&&(x=n.minTranslate()-1+Math.pow(-n.minTranslate()+y+d,n.params.resistanceRatio))):d<0&&x<n.maxTranslate()&&(e=!1,n.params.resistance&&(x=n.maxTranslate()+1-Math.pow(n.maxTranslate()-y-d,n.params.resistanceRatio))),e&&(b.preventedByNestedSwiper=!0),!n.params.allowSwipeToNext&&"next"===n.swipeDirection&&x<y&&(x=y),!n.params.allowSwipeToPrev&&"prev"===n.swipeDirection&&x>y&&(x=y),n.params.threshold>0){if(!(Math.abs(d)>n.params.threshold||z))return void(x=y);if(!z)return z=!0,n.touches.startX=n.touches.currentX,n.touches.startY=n.touches.currentY,x=y,void(n.touches.diff=n.isHorizontal()?n.touches.currentX-n.touches.startX:n.touches.currentY-n.touches.startY)}n.params.followFinger&&((n.params.freeMode||n.params.watchSlidesProgress)&&n.updateActiveIndex(),n.params.freeMode&&(0===D.length&&D.push({position:n.touches[n.isHorizontal()?"startX":"startY"],time:v}),D.push({position:n.touches[n.isHorizontal()?"currentX":"currentY"],time:(new window.Date).getTime()})),n.updateProgress(x),n.setWrapperTranslate(x))}}}}},n.onTouchEnd=function(b){if(b.originalEvent&&(b=b.originalEvent),u&&n.emit("onTouchEnd",n,b),u=!1,s){n.params.grabCursor&&t&&s&&(n.params.allowSwipeToNext===!0||n.params.allowSwipeToPrev===!0)&&n.setGrabCursor(!1);var c=Date.now(),d=c-v;if(n.allowClick&&(n.updateClickedSlide(b),n.emit("onTap",n,b),d<300&&c-B>300&&(C&&clearTimeout(C),C=setTimeout(function(){n&&(n.params.paginationHide&&n.paginationContainer.length>0&&!a(b.target).hasClass(n.params.bulletClass)&&n.paginationContainer.toggleClass(n.params.paginationHiddenClass),n.emit("onClick",n,b))},300)),d<300&&c-B<300&&(C&&clearTimeout(C),n.emit("onDoubleTap",n,b))),B=Date.now(),setTimeout(function(){n&&(n.allowClick=!0)},0),!s||!t||!n.swipeDirection||0===n.touches.diff||x===y)return void(s=t=!1);s=t=!1;var e;if(e=n.params.followFinger?n.rtl?n.translate:-n.translate:-x,n.params.freeMode){if(e<-n.minTranslate())return void n.slideTo(n.activeIndex);if(e>-n.maxTranslate())return void(n.slides.length<n.snapGrid.length?n.slideTo(n.snapGrid.length-1):n.slideTo(n.slides.length-1));if(n.params.freeModeMomentum){if(D.length>1){var f=D.pop(),g=D.pop(),h=f.position-g.position,i=f.time-g.time;n.velocity=h/i,n.velocity=n.velocity/2,Math.abs(n.velocity)<n.params.freeModeMinimumVelocity&&(n.velocity=0),(i>150||(new window.Date).getTime()-f.time>300)&&(n.velocity=0)}else n.velocity=0;n.velocity=n.velocity*n.params.freeModeMomentumVelocityRatio,D.length=0;var j=1e3*n.params.freeModeMomentumRatio,k=n.velocity*j,l=n.translate+k;n.rtl&&(l=-l);var o,m=!1,p=20*Math.abs(n.velocity)*n.params.freeModeMomentumBounceRatio;if(l<n.maxTranslate())n.params.freeModeMomentumBounce?(l+n.maxTranslate()<-p&&(l=n.maxTranslate()-p),o=n.maxTranslate(),m=!0,E=!0):l=n.maxTranslate();else if(l>n.minTranslate())n.params.freeModeMomentumBounce?(l-n.minTranslate()>p&&(l=n.minTranslate()+p),o=n.minTranslate(),m=!0,E=!0):l=n.minTranslate();else if(n.params.freeModeSticky){var r,q=0;for(q=0;q<n.snapGrid.length;q+=1)if(n.snapGrid[q]>-l){r=q;break}l=Math.abs(n.snapGrid[r]-l)<Math.abs(n.snapGrid[r-1]-l)||"next"===n.swipeDirection?n.snapGrid[r]:n.snapGrid[r-1],n.rtl||(l=-l)}if(0!==n.velocity)j=n.rtl?Math.abs((-l-n.translate)/n.velocity):Math.abs((l-n.translate)/n.velocity);else if(n.params.freeModeSticky)return void n.slideReset();n.params.freeModeMomentumBounce&&m?(n.updateProgress(o),n.setWrapperTransition(j),n.setWrapperTranslate(l),n.onTransitionStart(),n.animating=!0,n.wrapper.transitionEnd(function(){n&&E&&(n.emit("onMomentumBounce",n),n.setWrapperTransition(n.params.speed),n.setWrapperTranslate(o),n.wrapper.transitionEnd(function(){n&&n.onTransitionEnd()}))})):n.velocity?(n.updateProgress(l),n.setWrapperTransition(j),n.setWrapperTranslate(l),n.onTransitionStart(),n.animating||(n.animating=!0,n.wrapper.transitionEnd(function(){n&&n.onTransitionEnd()}))):n.updateProgress(l),n.updateActiveIndex()}return void((!n.params.freeModeMomentum||d>=n.params.longSwipesMs)&&(n.updateProgress(),n.updateActiveIndex()))}var w,z=0,A=n.slidesSizesGrid[0];for(w=0;w<n.slidesGrid.length;w+=n.params.slidesPerGroup)"undefined"!=typeof n.slidesGrid[w+n.params.slidesPerGroup]?e>=n.slidesGrid[w]&&e<n.slidesGrid[w+n.params.slidesPerGroup]&&(z=w,A=n.slidesGrid[w+n.params.slidesPerGroup]-n.slidesGrid[w]):e>=n.slidesGrid[w]&&(z=w,A=n.slidesGrid[n.slidesGrid.length-1]-n.slidesGrid[n.slidesGrid.length-2]);var F=(e-n.slidesGrid[z])/A;if(d>n.params.longSwipesMs){if(!n.params.longSwipes)return void n.slideTo(n.activeIndex);"next"===n.swipeDirection&&(F>=n.params.longSwipesRatio?n.slideTo(z+n.params.slidesPerGroup):n.slideTo(z)),"prev"===n.swipeDirection&&(F>1-n.params.longSwipesRatio?n.slideTo(z+n.params.slidesPerGroup):n.slideTo(z))}else{if(!n.params.shortSwipes)return void n.slideTo(n.activeIndex);"next"===n.swipeDirection&&n.slideTo(z+n.params.slidesPerGroup),"prev"===n.swipeDirection&&n.slideTo(z)}}},n._slideTo=function(a,b){return n.slideTo(a,b,!0,!0)},n.slideTo=function(a,b,c,d){"undefined"==typeof c&&(c=!0),"undefined"==typeof a&&(a=0),a<0&&(a=0),n.snapIndex=Math.floor(a/n.params.slidesPerGroup),n.snapIndex>=n.snapGrid.length&&(n.snapIndex=n.snapGrid.length-1);var e=-n.snapGrid[n.snapIndex];if(n.params.autoplay&&n.autoplaying&&(d||!n.params.autoplayDisableOnInteraction?n.pauseAutoplay(b):n.stopAutoplay()),n.updateProgress(e),n.params.normalizeSlideIndex)for(var f=0;f<n.slidesGrid.length;f++)-Math.floor(100*e)>=Math.floor(100*n.slidesGrid[f])&&(a=f);return!(!n.params.allowSwipeToNext&&e<n.translate&&e<n.minTranslate())&&(!(!n.params.allowSwipeToPrev&&e>n.translate&&e>n.maxTranslate()&&(n.activeIndex||0)!==a)&&("undefined"==typeof b&&(b=n.params.speed),n.previousIndex=n.activeIndex||0,n.activeIndex=a,n.updateRealIndex(),n.rtl&&-e===n.translate||!n.rtl&&e===n.translate?(n.params.autoHeight&&n.updateAutoHeight(),n.updateClasses(),"slide"!==n.params.effect&&n.setWrapperTranslate(e),!1):(n.updateClasses(),n.onTransitionStart(c),0===b||n.browser.lteIE9?(n.setWrapperTranslate(e),n.setWrapperTransition(0),n.onTransitionEnd(c)):(n.setWrapperTranslate(e),n.setWrapperTransition(b),n.animating||(n.animating=!0,n.wrapper.transitionEnd(function(){n&&n.onTransitionEnd(c)}))),!0)))},n.onTransitionStart=function(a){"undefined"==typeof a&&(a=!0),n.params.autoHeight&&n.updateAutoHeight(),n.lazy&&n.lazy.onTransitionStart(),a&&(n.emit("onTransitionStart",n),n.activeIndex!==n.previousIndex&&(n.emit("onSlideChangeStart",n),n.activeIndex>n.previousIndex?n.emit("onSlideNextStart",n):n.emit("onSlidePrevStart",n)))},n.onTransitionEnd=function(a){n.animating=!1,n.setWrapperTransition(0),"undefined"==typeof a&&(a=!0),n.lazy&&n.lazy.onTransitionEnd(),a&&(n.emit("onTransitionEnd",n),n.activeIndex!==n.previousIndex&&(n.emit("onSlideChangeEnd",n),n.activeIndex>n.previousIndex?n.emit("onSlideNextEnd",n):n.emit("onSlidePrevEnd",n))),n.params.history&&n.history&&n.history.setHistory(n.params.history,n.activeIndex),n.params.hashnav&&n.hashnav&&n.hashnav.setHash()},n.slideNext=function(a,b,c){if(n.params.loop){if(n.animating)return!1;n.fixLoop();n.container[0].clientLeft;return n.slideTo(n.activeIndex+n.params.slidesPerGroup,b,a,c)}return n.slideTo(n.activeIndex+n.params.slidesPerGroup,b,a,c)},n._slideNext=function(a){return n.slideNext(!0,a,!0)},n.slidePrev=function(a,b,c){if(n.params.loop){if(n.animating)return!1;n.fixLoop();n.container[0].clientLeft;return n.slideTo(n.activeIndex-1,b,a,c)}return n.slideTo(n.activeIndex-1,b,a,c)},n._slidePrev=function(a){return n.slidePrev(!0,a,!0)},n.slideReset=function(a,b,c){return n.slideTo(n.activeIndex,b,a)},n.disableTouchControl=function(){return n.params.onlyExternal=!0,!0},n.enableTouchControl=function(){return n.params.onlyExternal=!1,!0},n.setWrapperTransition=function(a,b){n.wrapper.transition(a),"slide"!==n.params.effect&&n.effects[n.params.effect]&&n.effects[n.params.effect].setTransition(a),n.params.parallax&&n.parallax&&n.parallax.setTransition(a),n.params.scrollbar&&n.scrollbar&&n.scrollbar.setTransition(a),n.params.control&&n.controller&&n.controller.setTransition(a,b),n.emit("onSetTransition",n,a)},n.setWrapperTranslate=function(a,b,c){var d=0,e=0,f=0;n.isHorizontal()?d=n.rtl?-a:a:e=a,n.params.roundLengths&&(d=p(d),e=p(e)),n.params.virtualTranslate||(n.support.transforms3d?n.wrapper.transform("translate3d("+d+"px, "+e+"px, "+f+"px)"):n.wrapper.transform("translate("+d+"px, "+e+"px)")),n.translate=n.isHorizontal()?d:e;var g,h=n.maxTranslate()-n.minTranslate();g=0===h?0:(a-n.minTranslate())/h,g!==n.progress&&n.updateProgress(a),b&&n.updateActiveIndex(),"slide"!==n.params.effect&&n.effects[n.params.effect]&&n.effects[n.params.effect].setTranslate(n.translate),n.params.parallax&&n.parallax&&n.parallax.setTranslate(n.translate),n.params.scrollbar&&n.scrollbar&&n.scrollbar.setTranslate(n.translate),n.params.control&&n.controller&&n.controller.setTranslate(n.translate,c),n.emit("onSetTranslate",n,n.translate)},n.getTranslate=function(a,b){var c,d,e,f;return"undefined"==typeof b&&(b="x"),n.params.virtualTranslate?n.rtl?-n.translate:n.translate:(e=window.getComputedStyle(a,null),window.WebKitCSSMatrix?(d=e.transform||e.webkitTransform,d.split(",").length>6&&(d=d.split(", ").map(function(a){return a.replace(",",".")}).join(", ")),f=new window.WebKitCSSMatrix("none"===d?"":d)):(f=e.MozTransform||e.OTransform||e.MsTransform||e.msTransform||e.transform||e.getPropertyValue("transform").replace("translate(","matrix(1, 0, 0, 1,"),c=f.toString().split(",")),"x"===b&&(d=window.WebKitCSSMatrix?f.m41:16===c.length?parseFloat(c[12]):parseFloat(c[4])),"y"===b&&(d=window.WebKitCSSMatrix?f.m42:16===c.length?parseFloat(c[13]):parseFloat(c[5])),n.rtl&&d&&(d=-d),d||0)},n.getWrapperTranslate=function(a){return"undefined"==typeof a&&(a=n.isHorizontal()?"x":"y"),n.getTranslate(n.wrapper[0],a)},n.observers=[],n.initObservers=function(){if(n.params.observeParents)for(var a=n.container.parents(),b=0;b<a.length;b++)H(a[b]);H(n.container[0],{childList:!1}),H(n.wrapper[0],{attributes:!1})},n.disconnectObservers=function(){for(var a=0;a<n.observers.length;a++)n.observers[a].disconnect();n.observers=[]},n.createLoop=function(){n.wrapper.children("."+n.params.slideClass+"."+n.params.slideDuplicateClass).remove();var b=n.wrapper.children("."+n.params.slideClass);"auto"!==n.params.slidesPerView||n.params.loopedSlides||(n.params.loopedSlides=b.length),n.loopedSlides=parseInt(n.params.loopedSlides||n.params.slidesPerView,10),n.loopedSlides=n.loopedSlides+n.params.loopAdditionalSlides,n.loopedSlides>b.length&&(n.loopedSlides=b.length);var e,c=[],d=[];for(b.each(function(e,f){var g=a(this);e<n.loopedSlides&&d.push(f),e<b.length&&e>=b.length-n.loopedSlides&&c.push(f),g.attr("data-swiper-slide-index",e)}),e=0;e<d.length;e++)n.wrapper.append(a(d[e].cloneNode(!0)).addClass(n.params.slideDuplicateClass));for(e=c.length-1;e>=0;e--)n.wrapper.prepend(a(c[e].cloneNode(!0)).addClass(n.params.slideDuplicateClass))},n.destroyLoop=function(){n.wrapper.children("."+n.params.slideClass+"."+n.params.slideDuplicateClass).remove(),n.slides.removeAttr("data-swiper-slide-index")},n.reLoop=function(a){var b=n.activeIndex-n.loopedSlides;n.destroyLoop(),n.createLoop(),n.updateSlidesSize(),a&&n.slideTo(b+n.loopedSlides,0,!1)},n.fixLoop=function(){var a;n.activeIndex<n.loopedSlides?(a=n.slides.length-3*n.loopedSlides+n.activeIndex,a+=n.loopedSlides,n.slideTo(a,0,!1,!0)):("auto"===n.params.slidesPerView&&n.activeIndex>=2*n.loopedSlides||n.activeIndex>n.slides.length-2*n.params.slidesPerView)&&(a=-n.slides.length+n.activeIndex+n.loopedSlides,a+=n.loopedSlides,n.slideTo(a,0,!1,!0))},n.appendSlide=function(a){if(n.params.loop&&n.destroyLoop(),"object"==typeof a&&a.length)for(var b=0;b<a.length;b++)a[b]&&n.wrapper.append(a[b]);else n.wrapper.append(a);n.params.loop&&n.createLoop(),n.params.observer&&n.support.observer||n.update(!0)},n.prependSlide=function(a){n.params.loop&&n.destroyLoop();var b=n.activeIndex+1;if("object"==typeof a&&a.length){for(var c=0;c<a.length;c++)a[c]&&n.wrapper.prepend(a[c]);b=n.activeIndex+a.length}else n.wrapper.prepend(a);n.params.loop&&n.createLoop(),n.params.observer&&n.support.observer||n.update(!0),n.slideTo(b,0,!1)},n.removeSlide=function(a){n.params.loop&&(n.destroyLoop(),n.slides=n.wrapper.children("."+n.params.slideClass));var c,b=n.activeIndex;if("object"==typeof a&&a.length){for(var d=0;d<a.length;d++)c=a[d],n.slides[c]&&n.slides.eq(c).remove(),c<b&&b--;b=Math.max(b,0)}else c=a,n.slides[c]&&n.slides.eq(c).remove(),c<b&&b--,b=Math.max(b,0);n.params.loop&&n.createLoop(),n.params.observer&&n.support.observer||n.update(!0),n.params.loop?n.slideTo(b+n.loopedSlides,0,!1):n.slideTo(b,0,!1)},n.removeAllSlides=function(){for(var a=[],b=0;b<n.slides.length;b++)a.push(b);n.removeSlide(a)},n.effects={fade:{setTranslate:function(){for(var a=0;a<n.slides.length;a++){var b=n.slides.eq(a),c=b[0].swiperSlideOffset,d=-c;n.params.virtualTranslate||(d-=n.translate);var e=0;n.isHorizontal()||(e=d,d=0);var f=n.params.fade.crossFade?Math.max(1-Math.abs(b[0].progress),0):1+Math.min(Math.max(b[0].progress,-1),0);b.css({opacity:f}).transform("translate3d("+d+"px, "+e+"px, 0px)")}},setTransition:function(a){if(n.slides.transition(a),n.params.virtualTranslate&&0!==a){var b=!1;n.slides.transitionEnd(function(){if(!b&&n){b=!0,n.animating=!1;for(var a=["webkitTransitionEnd","transitionend","oTransitionEnd","MSTransitionEnd","msTransitionEnd"],c=0;c<a.length;c++)n.wrapper.trigger(a[c])}})}}},flip:{setTranslate:function(){for(var b=0;b<n.slides.length;b++){var c=n.slides.eq(b),d=c[0].progress;n.params.flip.limitRotation&&(d=Math.max(Math.min(c[0].progress,1),-1));var e=c[0].swiperSlideOffset,f=-180*d,g=f,h=0,i=-e,j=0;if(n.isHorizontal()?n.rtl&&(g=-g):(j=i,i=0,h=-g,g=0),c[0].style.zIndex=-Math.abs(Math.round(d))+n.slides.length,n.params.flip.slideShadows){var k=n.isHorizontal()?c.find(".swiper-slide-shadow-left"):c.find(".swiper-slide-shadow-top"),l=n.isHorizontal()?c.find(".swiper-slide-shadow-right"):c.find(".swiper-slide-shadow-bottom");0===k.length&&(k=a('<div class="swiper-slide-shadow-'+(n.isHorizontal()?"left":"top")+'"></div>'),c.append(k)),0===l.length&&(l=a('<div class="swiper-slide-shadow-'+(n.isHorizontal()?"right":"bottom")+'"></div>'),c.append(l)),k.length&&(k[0].style.opacity=Math.max(-d,0)),l.length&&(l[0].style.opacity=Math.max(d,0))}c.transform("translate3d("+i+"px, "+j+"px, 0px) rotateX("+h+"deg) rotateY("+g+"deg)")}},setTransition:function(b){if(n.slides.transition(b).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(b),n.params.virtualTranslate&&0!==b){var c=!1;n.slides.eq(n.activeIndex).transitionEnd(function(){if(!c&&n&&a(this).hasClass(n.params.slideActiveClass)){c=!0,n.animating=!1;for(var b=["webkitTransitionEnd","transitionend","oTransitionEnd","MSTransitionEnd","msTransitionEnd"],d=0;d<b.length;d++)n.wrapper.trigger(b[d])}})}}},cube:{setTranslate:function(){var c,b=0;n.params.cube.shadow&&(n.isHorizontal()?(c=n.wrapper.find(".swiper-cube-shadow"),0===c.length&&(c=a('<div class="swiper-cube-shadow"></div>'),n.wrapper.append(c)),c.css({height:n.width+"px"})):(c=n.container.find(".swiper-cube-shadow"),0===c.length&&(c=a('<div class="swiper-cube-shadow"></div>'),n.container.append(c))));for(var d=0;d<n.slides.length;d++){var e=n.slides.eq(d),f=90*d,g=Math.floor(f/360);n.rtl&&(f=-f,g=Math.floor(-f/360));var h=Math.max(Math.min(e[0].progress,1),-1),i=0,j=0,k=0;d%4===0?(i=4*-g*n.size,k=0):(d-1)%4===0?(i=0,k=4*-g*n.size):(d-2)%4===0?(i=n.size+4*g*n.size,k=n.size):(d-3)%4===0&&(i=-n.size,k=3*n.size+4*n.size*g),n.rtl&&(i=-i),n.isHorizontal()||(j=i,i=0);var l="rotateX("+(n.isHorizontal()?0:-f)+"deg) rotateY("+(n.isHorizontal()?f:0)+"deg) translate3d("+i+"px, "+j+"px, "+k+"px)";if(h<=1&&h>-1&&(b=90*d+90*h,n.rtl&&(b=90*-d-90*h)),e.transform(l),n.params.cube.slideShadows){var m=n.isHorizontal()?e.find(".swiper-slide-shadow-left"):e.find(".swiper-slide-shadow-top"),o=n.isHorizontal()?e.find(".swiper-slide-shadow-right"):e.find(".swiper-slide-shadow-bottom");0===m.length&&(m=a('<div class="swiper-slide-shadow-'+(n.isHorizontal()?"left":"top")+'"></div>'),e.append(m)),0===o.length&&(o=a('<div class="swiper-slide-shadow-'+(n.isHorizontal()?"right":"bottom")+'"></div>'),e.append(o)),m.length&&(m[0].style.opacity=Math.max(-h,0)),o.length&&(o[0].style.opacity=Math.max(h,0))}}if(n.wrapper.css({"-webkit-transform-origin":"50% 50% -"+n.size/2+"px","-moz-transform-origin":"50% 50% -"+n.size/2+"px","-ms-transform-origin":"50% 50% -"+n.size/2+"px","transform-origin":"50% 50% -"+n.size/2+"px"}),n.params.cube.shadow)if(n.isHorizontal())c.transform("translate3d(0px, "+(n.width/2+n.params.cube.shadowOffset)+"px, "+-n.width/2+"px) rotateX(90deg) rotateZ(0deg) scale("+n.params.cube.shadowScale+")");else{var p=Math.abs(b)-90*Math.floor(Math.abs(b)/90),q=1.5-(Math.sin(2*p*Math.PI/360)/2+Math.cos(2*p*Math.PI/360)/2),r=n.params.cube.shadowScale,s=n.params.cube.shadowScale/q,t=n.params.cube.shadowOffset;c.transform("scale3d("+r+", 1, "+s+") translate3d(0px, "+(n.height/2+t)+"px, "+-n.height/2/s+"px) rotateX(-90deg)")}var u=n.isSafari||n.isUiWebView?-n.size/2:0;n.wrapper.transform("translate3d(0px,0,"+u+"px) rotateX("+(n.isHorizontal()?0:b)+"deg) rotateY("+(n.isHorizontal()?-b:0)+"deg)")},setTransition:function(a){n.slides.transition(a).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(a),n.params.cube.shadow&&!n.isHorizontal()&&n.container.find(".swiper-cube-shadow").transition(a)}},coverflow:{setTranslate:function(){for(var b=n.translate,c=n.isHorizontal()?-b+n.width/2:-b+n.height/2,d=n.isHorizontal()?n.params.coverflow.rotate:-n.params.coverflow.rotate,e=n.params.coverflow.depth,f=0,g=n.slides.length;f<g;f++){var h=n.slides.eq(f),i=n.slidesSizesGrid[f],j=h[0].swiperSlideOffset,k=(c-j-i/2)/i*n.params.coverflow.modifier,l=n.isHorizontal()?d*k:0,m=n.isHorizontal()?0:d*k,o=-e*Math.abs(k),p=n.isHorizontal()?0:n.params.coverflow.stretch*k,q=n.isHorizontal()?n.params.coverflow.stretch*k:0;Math.abs(q)<.001&&(q=0),Math.abs(p)<.001&&(p=0),Math.abs(o)<.001&&(o=0),Math.abs(l)<.001&&(l=0),Math.abs(m)<.001&&(m=0);var r="translate3d("+q+"px,"+p+"px,"+o+"px)  rotateX("+m+"deg) rotateY("+l+"deg)";if(h.transform(r),h[0].style.zIndex=-Math.abs(Math.round(k))+1,n.params.coverflow.slideShadows){var s=n.isHorizontal()?h.find(".swiper-slide-shadow-left"):h.find(".swiper-slide-shadow-top"),t=n.isHorizontal()?h.find(".swiper-slide-shadow-right"):h.find(".swiper-slide-shadow-bottom");0===s.length&&(s=a('<div class="swiper-slide-shadow-'+(n.isHorizontal()?"left":"top")+'"></div>'),h.append(s)),0===t.length&&(t=a('<div class="swiper-slide-shadow-'+(n.isHorizontal()?"right":"bottom")+'"></div>'),h.append(t)),s.length&&(s[0].style.opacity=k>0?k:0),t.length&&(t[0].style.opacity=-k>0?-k:0)}}if(n.browser.ie){var u=n.wrapper[0].style;u.perspectiveOrigin=c+"px 50%"}},setTransition:function(a){n.slides.transition(a).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(a)}}},n.lazy={initialImageLoaded:!1,loadImageInSlide:function(b,c){if("undefined"!=typeof b&&("undefined"==typeof c&&(c=!0),0!==n.slides.length)){var d=n.slides.eq(b),e=d.find("."+n.params.lazyLoadingClass+":not(."+n.params.lazyStatusLoadedClass+"):not(."+n.params.lazyStatusLoadingClass+")");!d.hasClass(n.params.lazyLoadingClass)||d.hasClass(n.params.lazyStatusLoadedClass)||d.hasClass(n.params.lazyStatusLoadingClass)||(e=e.add(d[0])),0!==e.length&&e.each(function(){var b=a(this);b.addClass(n.params.lazyStatusLoadingClass);var e=b.attr("data-background"),f=b.attr("data-src"),g=b.attr("data-srcset"),h=b.attr("data-sizes");n.loadImage(b[0],f||e,g,h,!1,function(){if(e?(b.css("background-image",'url("'+e+'")'),b.removeAttr("data-background")):(g&&(b.attr("srcset",g),b.removeAttr("data-srcset")),h&&(b.attr("sizes",h),b.removeAttr("data-sizes")),f&&(b.attr("src",f),b.removeAttr("data-src"))),b.addClass(n.params.lazyStatusLoadedClass).removeClass(n.params.lazyStatusLoadingClass),d.find("."+n.params.lazyPreloaderClass+", ."+n.params.preloaderClass).remove(),n.params.loop&&c){var a=d.attr("data-swiper-slide-index");if(d.hasClass(n.params.slideDuplicateClass)){var i=n.wrapper.children('[data-swiper-slide-index="'+a+'"]:not(.'+n.params.slideDuplicateClass+")");n.lazy.loadImageInSlide(i.index(),!1)}else{var j=n.wrapper.children("."+n.params.slideDuplicateClass+'[data-swiper-slide-index="'+a+'"]');n.lazy.loadImageInSlide(j.index(),!1)}}n.emit("onLazyImageReady",n,d[0],b[0])}),n.emit("onLazyImageLoad",n,d[0],b[0])})}},load:function(){var b,c=n.params.slidesPerView;if("auto"===c&&(c=0),n.lazy.initialImageLoaded||(n.lazy.initialImageLoaded=!0),n.params.watchSlidesVisibility)n.wrapper.children("."+n.params.slideVisibleClass).each(function(){n.lazy.loadImageInSlide(a(this).index())});else if(c>1)for(b=n.activeIndex;b<n.activeIndex+c;b++)n.slides[b]&&n.lazy.loadImageInSlide(b);else n.lazy.loadImageInSlide(n.activeIndex);if(n.params.lazyLoadingInPrevNext)if(c>1||n.params.lazyLoadingInPrevNextAmount&&n.params.lazyLoadingInPrevNextAmount>1){var d=n.params.lazyLoadingInPrevNextAmount,e=c,f=Math.min(n.activeIndex+e+Math.max(d,e),n.slides.length),g=Math.max(n.activeIndex-Math.max(e,d),0);for(b=n.activeIndex+c;b<f;b++)n.slides[b]&&n.lazy.loadImageInSlide(b);for(b=g;b<n.activeIndex;b++)n.slides[b]&&n.lazy.loadImageInSlide(b)}else{var h=n.wrapper.children("."+n.params.slideNextClass);h.length>0&&n.lazy.loadImageInSlide(h.index());var i=n.wrapper.children("."+n.params.slidePrevClass);i.length>0&&n.lazy.loadImageInSlide(i.index())}},onTransitionStart:function(){n.params.lazyLoading&&(n.params.lazyLoadingOnTransitionStart||!n.params.lazyLoadingOnTransitionStart&&!n.lazy.initialImageLoaded)&&n.lazy.load()},onTransitionEnd:function(){n.params.lazyLoading&&!n.params.lazyLoadingOnTransitionStart&&n.lazy.load()}},n.scrollbar={isTouched:!1,setDragPosition:function(a){var b=n.scrollbar,f=n.isHorizontal()?"touchstart"===a.type||"touchmove"===a.type?a.targetTouches[0].pageX:a.pageX||a.clientX:"touchstart"===a.type||"touchmove"===a.type?a.targetTouches[0].pageY:a.pageY||a.clientY,g=f-b.track.offset()[n.isHorizontal()?"left":"top"]-b.dragSize/2,h=-n.minTranslate()*b.moveDivider,i=-n.maxTranslate()*b.moveDivider;g<h?g=h:g>i&&(g=i),g=-g/b.moveDivider,n.updateProgress(g),n.setWrapperTranslate(g,!0)},dragStart:function(a){var b=n.scrollbar;b.isTouched=!0,a.preventDefault(),a.stopPropagation(),b.setDragPosition(a),clearTimeout(b.dragTimeout),b.track.transition(0),n.params.scrollbarHide&&b.track.css("opacity",1),n.wrapper.transition(100),b.drag.transition(100),n.emit("onScrollbarDragStart",n)},dragMove:function(a){var b=n.scrollbar;b.isTouched&&(a.preventDefault?a.preventDefault():a.returnValue=!1,b.setDragPosition(a),n.wrapper.transition(0),b.track.transition(0),b.drag.transition(0),n.emit("onScrollbarDragMove",n))},dragEnd:function(a){var b=n.scrollbar;b.isTouched&&(b.isTouched=!1,n.params.scrollbarHide&&(clearTimeout(b.dragTimeout),b.dragTimeout=setTimeout(function(){b.track.css("opacity",0),b.track.transition(400)},1e3)),n.emit("onScrollbarDragEnd",n),n.params.scrollbarSnapOnRelease&&n.slideReset())},draggableEvents:function(){return n.params.simulateTouch!==!1||n.support.touch?n.touchEvents:n.touchEventsDesktop}(),enableDraggable:function(){var b=n.scrollbar,c=n.support.touch?b.track:document;a(b.track).on(b.draggableEvents.start,b.dragStart),a(c).on(b.draggableEvents.move,b.dragMove),a(c).on(b.draggableEvents.end,b.dragEnd)},disableDraggable:function(){var b=n.scrollbar,c=n.support.touch?b.track:document;a(b.track).off(n.draggableEvents.start,b.dragStart),a(c).off(n.draggableEvents.move,b.dragMove),a(c).off(n.draggableEvents.end,b.dragEnd)},set:function(){if(n.params.scrollbar){var b=n.scrollbar;b.track=a(n.params.scrollbar),n.params.uniqueNavElements&&"string"==typeof n.params.scrollbar&&b.track.length>1&&1===n.container.find(n.params.scrollbar).length&&(b.track=n.container.find(n.params.scrollbar)),b.drag=b.track.find(".swiper-scrollbar-drag"),0===b.drag.length&&(b.drag=a('<div class="swiper-scrollbar-drag"></div>'),b.track.append(b.drag)),b.drag[0].style.width="",b.drag[0].style.height="",b.trackSize=n.isHorizontal()?b.track[0].offsetWidth:b.track[0].offsetHeight,b.divider=n.size/n.virtualSize,b.moveDivider=b.divider*(b.trackSize/n.size),b.dragSize=b.trackSize*b.divider,n.isHorizontal()?b.drag[0].style.width=b.dragSize+"px":b.drag[0].style.height=b.dragSize+"px",b.divider>=1?b.track[0].style.display="none":b.track[0].style.display="",n.params.scrollbarHide&&(b.track[0].style.opacity=0)}},setTranslate:function(){if(n.params.scrollbar){var d,b=n.scrollbar,e=(n.translate||0,b.dragSize);d=(b.trackSize-b.dragSize)*n.progress,n.rtl&&n.isHorizontal()?(d=-d,d>0?(e=b.dragSize-d,d=0):-d+b.dragSize>b.trackSize&&(e=b.trackSize+d)):d<0?(e=b.dragSize+d,d=0):d+b.dragSize>b.trackSize&&(e=b.trackSize-d),n.isHorizontal()?(n.support.transforms3d?b.drag.transform("translate3d("+d+"px, 0, 0)"):b.drag.transform("translateX("+d+"px)"),b.drag[0].style.width=e+"px"):(n.support.transforms3d?b.drag.transform("translate3d(0px, "+d+"px, 0)"):b.drag.transform("translateY("+d+"px)"),b.drag[0].style.height=e+"px"),n.params.scrollbarHide&&(clearTimeout(b.timeout),b.track[0].style.opacity=1,b.timeout=setTimeout(function(){b.track[0].style.opacity=0,b.track.transition(400)},1e3))}},setTransition:function(a){n.params.scrollbar&&n.scrollbar.drag.transition(a)}},n.controller={LinearSpline:function(a,b){this.x=a,this.y=b,this.lastIndex=a.length-1;var c,d;this.x.length;this.interpolate=function(a){return a?(d=f(this.x,a),c=d-1,(a-this.x[c])*(this.y[d]-this.y[c])/(this.x[d]-this.x[c])+this.y[c]):0};var f=function(){var a,b,c;return function(d,e){for(b=-1,a=d.length;a-b>1;)d[c=a+b>>1]<=e?b=c:a=c;return a}}()},getInterpolateFunction:function(a){n.controller.spline||(n.controller.spline=n.params.loop?new n.controller.LinearSpline(n.slidesGrid,a.slidesGrid):new n.controller.LinearSpline(n.snapGrid,a.snapGrid))},setTranslate:function(a,b){function f(b){a=b.rtl&&"horizontal"===b.params.direction?-n.translate:n.translate,"slide"===n.params.controlBy&&(n.controller.getInterpolateFunction(b),e=-n.controller.spline.interpolate(-a)),e&&"container"!==n.params.controlBy||(d=(b.maxTranslate()-b.minTranslate())/(n.maxTranslate()-n.minTranslate()),e=(a-n.minTranslate())*d+b.minTranslate()),n.params.controlInverse&&(e=b.maxTranslate()-e),b.updateProgress(e),b.setWrapperTranslate(e,!1,n),b.updateActiveIndex()}var d,e,c=n.params.control;if(n.isArray(c))for(var g=0;g<c.length;g++)c[g]!==b&&c[g]instanceof Swiper&&f(c[g]);else c instanceof Swiper&&b!==c&&f(c)},setTransition:function(a,b){function e(b){b.setWrapperTransition(a,n),0!==a&&(b.onTransitionStart(),
b.wrapper.transitionEnd(function(){c&&(b.params.loop&&"slide"===n.params.controlBy&&b.fixLoop(),b.onTransitionEnd())}))}var d,c=n.params.control;if(n.isArray(c))for(d=0;d<c.length;d++)c[d]!==b&&c[d]instanceof Swiper&&e(c[d]);else c instanceof Swiper&&b!==c&&e(c)}},n.hashnav={onHashCange:function(a,b){var c=document.location.hash.replace("#",""),d=n.slides.eq(n.activeIndex).attr("data-hash");c!==d&&n.slideTo(n.wrapper.children("."+n.params.slideClass+'[data-hash="'+c+'"]').index())},attachEvents:function(b){var c=b?"off":"on";a(window)[c]("hashchange",n.hashnav.onHashCange)},setHash:function(){if(n.hashnav.initialized&&n.params.hashnav)if(n.params.replaceState&&window.history&&window.history.replaceState)window.history.replaceState(null,null,"#"+n.slides.eq(n.activeIndex).attr("data-hash")||"");else{var a=n.slides.eq(n.activeIndex),b=a.attr("data-hash")||a.attr("data-history");document.location.hash=b||""}},init:function(){if(n.params.hashnav&&!n.params.history){n.hashnav.initialized=!0;var a=document.location.hash.replace("#","");if(a){for(var b=0,c=0,d=n.slides.length;c<d;c++){var e=n.slides.eq(c),f=e.attr("data-hash")||e.attr("data-history");if(f===a&&!e.hasClass(n.params.slideDuplicateClass)){var g=e.index();n.slideTo(g,b,n.params.runCallbacksOnInit,!0)}}n.params.hashnavWatchState&&n.hashnav.attachEvents()}}},destroy:function(){n.params.hashnavWatchState&&n.hashnav.attachEvents(!0)}},n.history={init:function(){if(n.params.history){if(!window.history||!window.history.pushState)return n.params.history=!1,void(n.params.hashnav=!0);n.history.initialized=!0,this.paths=this.getPathValues(),(this.paths.key||this.paths.value)&&(this.scrollToSlide(0,this.paths.value,n.params.runCallbacksOnInit),n.params.replaceState||window.addEventListener("popstate",this.setHistoryPopState))}},setHistoryPopState:function(){n.history.paths=n.history.getPathValues(),n.history.scrollToSlide(n.params.speed,n.history.paths.value,!1)},getPathValues:function(){var a=window.location.pathname.slice(1).split("/"),b=a.length,c=a[b-2],d=a[b-1];return{key:c,value:d}},setHistory:function(a,b){if(n.history.initialized&&n.params.history){var c=n.slides.eq(b),d=this.slugify(c.attr("data-history"));window.location.pathname.includes(a)||(d=a+"/"+d),n.params.replaceState?window.history.replaceState(null,null,d):window.history.pushState(null,null,d)}},slugify:function(a){return a.toString().toLowerCase().replace(/\s+/g,"-").replace(/[^\w\-]+/g,"").replace(/\-\-+/g,"-").replace(/^-+/,"").replace(/-+$/,"")},scrollToSlide:function(a,b,c){if(b)for(var d=0,e=n.slides.length;d<e;d++){var f=n.slides.eq(d),g=this.slugify(f.attr("data-history"));if(g===b&&!f.hasClass(n.params.slideDuplicateClass)){var h=f.index();n.slideTo(h,a,c)}}else n.slideTo(0,a,c)}},n.disableKeyboardControl=function(){n.params.keyboardControl=!1,a(document).off("keydown",I)},n.enableKeyboardControl=function(){n.params.keyboardControl=!0,a(document).on("keydown",I)},n.mousewheel={event:!1,lastScrollTime:(new window.Date).getTime()},n.params.mousewheelControl&&(n.mousewheel.event=navigator.userAgent.indexOf("firefox")>-1?"DOMMouseScroll":J()?"wheel":"mousewheel"),n.disableMousewheelControl=function(){if(!n.mousewheel.event)return!1;var b=n.container;return"container"!==n.params.mousewheelEventsTarged&&(b=a(n.params.mousewheelEventsTarged)),b.off(n.mousewheel.event,K),!0},n.enableMousewheelControl=function(){if(!n.mousewheel.event)return!1;var b=n.container;return"container"!==n.params.mousewheelEventsTarged&&(b=a(n.params.mousewheelEventsTarged)),b.on(n.mousewheel.event,K),!0},n.parallax={setTranslate:function(){n.container.children("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]").each(function(){M(this,n.progress)}),n.slides.each(function(){var b=a(this);b.find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]").each(function(){var a=Math.min(Math.max(b[0].progress,-1),1);M(this,a)})})},setTransition:function(b){"undefined"==typeof b&&(b=n.params.speed),n.container.find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]").each(function(){var c=a(this),d=parseInt(c.attr("data-swiper-parallax-duration"),10)||b;0===b&&(d=0),c.transition(d)})}},n.zoom={scale:1,currentScale:1,isScaling:!1,gesture:{slide:void 0,slideWidth:void 0,slideHeight:void 0,image:void 0,imageWrap:void 0,zoomMax:n.params.zoomMax},image:{isTouched:void 0,isMoved:void 0,currentX:void 0,currentY:void 0,minX:void 0,minY:void 0,maxX:void 0,maxY:void 0,width:void 0,height:void 0,startX:void 0,startY:void 0,touchesStart:{},touchesCurrent:{}},velocity:{x:void 0,y:void 0,prevPositionX:void 0,prevPositionY:void 0,prevTime:void 0},getDistanceBetweenTouches:function(a){if(a.targetTouches.length<2)return 1;var b=a.targetTouches[0].pageX,c=a.targetTouches[0].pageY,d=a.targetTouches[1].pageX,e=a.targetTouches[1].pageY,f=Math.sqrt(Math.pow(d-b,2)+Math.pow(e-c,2));return f},onGestureStart:function(b){var c=n.zoom;if(!n.support.gestures){if("touchstart"!==b.type||"touchstart"===b.type&&b.targetTouches.length<2)return;c.gesture.scaleStart=c.getDistanceBetweenTouches(b)}return c.gesture.slide&&c.gesture.slide.length||(c.gesture.slide=a(this),0===c.gesture.slide.length&&(c.gesture.slide=n.slides.eq(n.activeIndex)),c.gesture.image=c.gesture.slide.find("img, svg, canvas"),c.gesture.imageWrap=c.gesture.image.parent("."+n.params.zoomContainerClass),c.gesture.zoomMax=c.gesture.imageWrap.attr("data-swiper-zoom")||n.params.zoomMax,0!==c.gesture.imageWrap.length)?(c.gesture.image.transition(0),void(c.isScaling=!0)):void(c.gesture.image=void 0)},onGestureChange:function(a){var b=n.zoom;if(!n.support.gestures){if("touchmove"!==a.type||"touchmove"===a.type&&a.targetTouches.length<2)return;b.gesture.scaleMove=b.getDistanceBetweenTouches(a)}b.gesture.image&&0!==b.gesture.image.length&&(n.support.gestures?b.scale=a.scale*b.currentScale:b.scale=b.gesture.scaleMove/b.gesture.scaleStart*b.currentScale,b.scale>b.gesture.zoomMax&&(b.scale=b.gesture.zoomMax-1+Math.pow(b.scale-b.gesture.zoomMax+1,.5)),b.scale<n.params.zoomMin&&(b.scale=n.params.zoomMin+1-Math.pow(n.params.zoomMin-b.scale+1,.5)),b.gesture.image.transform("translate3d(0,0,0) scale("+b.scale+")"))},onGestureEnd:function(a){var b=n.zoom;!n.support.gestures&&("touchend"!==a.type||"touchend"===a.type&&a.changedTouches.length<2)||b.gesture.image&&0!==b.gesture.image.length&&(b.scale=Math.max(Math.min(b.scale,b.gesture.zoomMax),n.params.zoomMin),b.gesture.image.transition(n.params.speed).transform("translate3d(0,0,0) scale("+b.scale+")"),b.currentScale=b.scale,b.isScaling=!1,1===b.scale&&(b.gesture.slide=void 0))},onTouchStart:function(a,b){var c=a.zoom;c.gesture.image&&0!==c.gesture.image.length&&(c.image.isTouched||("android"===a.device.os&&b.preventDefault(),c.image.isTouched=!0,c.image.touchesStart.x="touchstart"===b.type?b.targetTouches[0].pageX:b.pageX,c.image.touchesStart.y="touchstart"===b.type?b.targetTouches[0].pageY:b.pageY))},onTouchMove:function(a){var b=n.zoom;if(b.gesture.image&&0!==b.gesture.image.length&&(n.allowClick=!1,b.image.isTouched&&b.gesture.slide)){b.image.isMoved||(b.image.width=b.gesture.image[0].offsetWidth,b.image.height=b.gesture.image[0].offsetHeight,b.image.startX=n.getTranslate(b.gesture.imageWrap[0],"x")||0,b.image.startY=n.getTranslate(b.gesture.imageWrap[0],"y")||0,b.gesture.slideWidth=b.gesture.slide[0].offsetWidth,b.gesture.slideHeight=b.gesture.slide[0].offsetHeight,b.gesture.imageWrap.transition(0));var c=b.image.width*b.scale,d=b.image.height*b.scale;if(!(c<b.gesture.slideWidth&&d<b.gesture.slideHeight)){if(b.image.minX=Math.min(b.gesture.slideWidth/2-c/2,0),b.image.maxX=-b.image.minX,b.image.minY=Math.min(b.gesture.slideHeight/2-d/2,0),b.image.maxY=-b.image.minY,b.image.touchesCurrent.x="touchmove"===a.type?a.targetTouches[0].pageX:a.pageX,b.image.touchesCurrent.y="touchmove"===a.type?a.targetTouches[0].pageY:a.pageY,!b.image.isMoved&&!b.isScaling){if(n.isHorizontal()&&Math.floor(b.image.minX)===Math.floor(b.image.startX)&&b.image.touchesCurrent.x<b.image.touchesStart.x||Math.floor(b.image.maxX)===Math.floor(b.image.startX)&&b.image.touchesCurrent.x>b.image.touchesStart.x)return void(b.image.isTouched=!1);if(!n.isHorizontal()&&Math.floor(b.image.minY)===Math.floor(b.image.startY)&&b.image.touchesCurrent.y<b.image.touchesStart.y||Math.floor(b.image.maxY)===Math.floor(b.image.startY)&&b.image.touchesCurrent.y>b.image.touchesStart.y)return void(b.image.isTouched=!1)}a.preventDefault(),a.stopPropagation(),b.image.isMoved=!0,b.image.currentX=b.image.touchesCurrent.x-b.image.touchesStart.x+b.image.startX,b.image.currentY=b.image.touchesCurrent.y-b.image.touchesStart.y+b.image.startY,b.image.currentX<b.image.minX&&(b.image.currentX=b.image.minX+1-Math.pow(b.image.minX-b.image.currentX+1,.8)),b.image.currentX>b.image.maxX&&(b.image.currentX=b.image.maxX-1+Math.pow(b.image.currentX-b.image.maxX+1,.8)),b.image.currentY<b.image.minY&&(b.image.currentY=b.image.minY+1-Math.pow(b.image.minY-b.image.currentY+1,.8)),b.image.currentY>b.image.maxY&&(b.image.currentY=b.image.maxY-1+Math.pow(b.image.currentY-b.image.maxY+1,.8)),b.velocity.prevPositionX||(b.velocity.prevPositionX=b.image.touchesCurrent.x),b.velocity.prevPositionY||(b.velocity.prevPositionY=b.image.touchesCurrent.y),b.velocity.prevTime||(b.velocity.prevTime=Date.now()),b.velocity.x=(b.image.touchesCurrent.x-b.velocity.prevPositionX)/(Date.now()-b.velocity.prevTime)/2,b.velocity.y=(b.image.touchesCurrent.y-b.velocity.prevPositionY)/(Date.now()-b.velocity.prevTime)/2,Math.abs(b.image.touchesCurrent.x-b.velocity.prevPositionX)<2&&(b.velocity.x=0),Math.abs(b.image.touchesCurrent.y-b.velocity.prevPositionY)<2&&(b.velocity.y=0),b.velocity.prevPositionX=b.image.touchesCurrent.x,b.velocity.prevPositionY=b.image.touchesCurrent.y,b.velocity.prevTime=Date.now(),b.gesture.imageWrap.transform("translate3d("+b.image.currentX+"px, "+b.image.currentY+"px,0)")}}},onTouchEnd:function(a,b){var c=a.zoom;if(c.gesture.image&&0!==c.gesture.image.length){if(!c.image.isTouched||!c.image.isMoved)return c.image.isTouched=!1,void(c.image.isMoved=!1);c.image.isTouched=!1,c.image.isMoved=!1;var d=300,e=300,f=c.velocity.x*d,g=c.image.currentX+f,h=c.velocity.y*e,i=c.image.currentY+h;0!==c.velocity.x&&(d=Math.abs((g-c.image.currentX)/c.velocity.x)),0!==c.velocity.y&&(e=Math.abs((i-c.image.currentY)/c.velocity.y));var j=Math.max(d,e);c.image.currentX=g,c.image.currentY=i;var k=c.image.width*c.scale,l=c.image.height*c.scale;c.image.minX=Math.min(c.gesture.slideWidth/2-k/2,0),c.image.maxX=-c.image.minX,c.image.minY=Math.min(c.gesture.slideHeight/2-l/2,0),c.image.maxY=-c.image.minY,c.image.currentX=Math.max(Math.min(c.image.currentX,c.image.maxX),c.image.minX),c.image.currentY=Math.max(Math.min(c.image.currentY,c.image.maxY),c.image.minY),c.gesture.imageWrap.transition(j).transform("translate3d("+c.image.currentX+"px, "+c.image.currentY+"px,0)")}},onTransitionEnd:function(a){var b=a.zoom;b.gesture.slide&&a.previousIndex!==a.activeIndex&&(b.gesture.image.transform("translate3d(0,0,0) scale(1)"),b.gesture.imageWrap.transform("translate3d(0,0,0)"),b.gesture.slide=b.gesture.image=b.gesture.imageWrap=void 0,b.scale=b.currentScale=1)},toggleZoom:function(b,c){var d=b.zoom;if(d.gesture.slide||(d.gesture.slide=b.clickedSlide?a(b.clickedSlide):b.slides.eq(b.activeIndex),d.gesture.image=d.gesture.slide.find("img, svg, canvas"),d.gesture.imageWrap=d.gesture.image.parent("."+b.params.zoomContainerClass)),d.gesture.image&&0!==d.gesture.image.length){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v;"undefined"==typeof d.image.touchesStart.x&&c?(e="touchend"===c.type?c.changedTouches[0].pageX:c.pageX,f="touchend"===c.type?c.changedTouches[0].pageY:c.pageY):(e=d.image.touchesStart.x,f=d.image.touchesStart.y),d.scale&&1!==d.scale?(d.scale=d.currentScale=1,d.gesture.imageWrap.transition(300).transform("translate3d(0,0,0)"),d.gesture.image.transition(300).transform("translate3d(0,0,0) scale(1)"),d.gesture.slide=void 0):(d.scale=d.currentScale=d.gesture.imageWrap.attr("data-swiper-zoom")||b.params.zoomMax,c?(u=d.gesture.slide[0].offsetWidth,v=d.gesture.slide[0].offsetHeight,g=d.gesture.slide.offset().left,h=d.gesture.slide.offset().top,i=g+u/2-e,j=h+v/2-f,m=d.gesture.image[0].offsetWidth,n=d.gesture.image[0].offsetHeight,o=m*d.scale,p=n*d.scale,q=Math.min(u/2-o/2,0),r=Math.min(v/2-p/2,0),s=-q,t=-r,k=i*d.scale,l=j*d.scale,k<q&&(k=q),k>s&&(k=s),l<r&&(l=r),l>t&&(l=t)):(k=0,l=0),d.gesture.imageWrap.transition(300).transform("translate3d("+k+"px, "+l+"px,0)"),d.gesture.image.transition(300).transform("translate3d(0,0,0) scale("+d.scale+")"))}},attachEvents:function(b){var c=b?"off":"on";if(n.params.zoom){var e=(n.slides,!("touchstart"!==n.touchEvents.start||!n.support.passiveListener||!n.params.passiveListeners)&&{passive:!0,capture:!1});n.support.gestures?(n.slides[c]("gesturestart",n.zoom.onGestureStart,e),n.slides[c]("gesturechange",n.zoom.onGestureChange,e),n.slides[c]("gestureend",n.zoom.onGestureEnd,e)):"touchstart"===n.touchEvents.start&&(n.slides[c](n.touchEvents.start,n.zoom.onGestureStart,e),n.slides[c](n.touchEvents.move,n.zoom.onGestureChange,e),n.slides[c](n.touchEvents.end,n.zoom.onGestureEnd,e)),n[c]("touchStart",n.zoom.onTouchStart),n.slides.each(function(b,d){a(d).find("."+n.params.zoomContainerClass).length>0&&a(d)[c](n.touchEvents.move,n.zoom.onTouchMove)}),n[c]("touchEnd",n.zoom.onTouchEnd),n[c]("transitionEnd",n.zoom.onTransitionEnd),n.params.zoomToggle&&n.on("doubleTap",n.zoom.toggleZoom)}},init:function(){n.zoom.attachEvents()},destroy:function(){n.zoom.attachEvents(!0)}},n._plugins=[];for(var N in n.plugins){var O=n.plugins[N](n,n.params[N]);O&&n._plugins.push(O)}return n.callPlugins=function(a){for(var b=0;b<n._plugins.length;b++)a in n._plugins[b]&&n._plugins[b][a](arguments[1],arguments[2],arguments[3],arguments[4],arguments[5])},n.emitterEventListeners={},n.emit=function(a){n.params[a]&&n.params[a](arguments[1],arguments[2],arguments[3],arguments[4],arguments[5]);var b;if(n.emitterEventListeners[a])for(b=0;b<n.emitterEventListeners[a].length;b++)n.emitterEventListeners[a][b](arguments[1],arguments[2],arguments[3],arguments[4],arguments[5]);n.callPlugins&&n.callPlugins(a,arguments[1],arguments[2],arguments[3],arguments[4],arguments[5])},n.on=function(a,b){return a=P(a),n.emitterEventListeners[a]||(n.emitterEventListeners[a]=[]),n.emitterEventListeners[a].push(b),n},n.off=function(a,b){var c;if(a=P(a),"undefined"==typeof b)return n.emitterEventListeners[a]=[],n;if(n.emitterEventListeners[a]&&0!==n.emitterEventListeners[a].length){for(c=0;c<n.emitterEventListeners[a].length;c++)n.emitterEventListeners[a][c]===b&&n.emitterEventListeners[a].splice(c,1);return n}},n.once=function(a,b){a=P(a);var c=function(){b(arguments[0],arguments[1],arguments[2],arguments[3],arguments[4]),n.off(a,c)};return n.on(a,c),n},n.a11y={makeFocusable:function(a){return a.attr("tabIndex","0"),a},addRole:function(a,b){return a.attr("role",b),a},addLabel:function(a,b){return a.attr("aria-label",b),a},disable:function(a){return a.attr("aria-disabled",!0),a},enable:function(a){return a.attr("aria-disabled",!1),a},onEnterKey:function(b){13===b.keyCode&&(a(b.target).is(n.params.nextButton)?(n.onClickNext(b),n.isEnd?n.a11y.notify(n.params.lastSlideMessage):n.a11y.notify(n.params.nextSlideMessage)):a(b.target).is(n.params.prevButton)&&(n.onClickPrev(b),n.isBeginning?n.a11y.notify(n.params.firstSlideMessage):n.a11y.notify(n.params.prevSlideMessage)),a(b.target).is("."+n.params.bulletClass)&&a(b.target)[0].click())},liveRegion:a('<span class="'+n.params.notificationClass+'" aria-live="assertive" aria-atomic="true"></span>'),notify:function(a){var b=n.a11y.liveRegion;0!==b.length&&(b.html(""),b.html(a))},init:function(){n.params.nextButton&&n.nextButton&&n.nextButton.length>0&&(n.a11y.makeFocusable(n.nextButton),n.a11y.addRole(n.nextButton,"button"),n.a11y.addLabel(n.nextButton,n.params.nextSlideMessage)),n.params.prevButton&&n.prevButton&&n.prevButton.length>0&&(n.a11y.makeFocusable(n.prevButton),n.a11y.addRole(n.prevButton,"button"),n.a11y.addLabel(n.prevButton,n.params.prevSlideMessage)),a(n.container).append(n.a11y.liveRegion)},initPagination:function(){n.params.pagination&&n.params.paginationClickable&&n.bullets&&n.bullets.length&&n.bullets.each(function(){var b=a(this);n.a11y.makeFocusable(b),n.a11y.addRole(b,"button"),n.a11y.addLabel(b,n.params.paginationBulletMessage.replace(/{{index}}/,b.index()+1))})},destroy:function(){n.a11y.liveRegion&&n.a11y.liveRegion.length>0&&n.a11y.liveRegion.remove()}},n.init=function(){n.params.loop&&n.createLoop(),n.updateContainerSize(),n.updateSlidesSize(),n.updatePagination(),n.params.scrollbar&&n.scrollbar&&(n.scrollbar.set(),n.params.scrollbarDraggable&&n.scrollbar.enableDraggable()),"slide"!==n.params.effect&&n.effects[n.params.effect]&&(n.params.loop||n.updateProgress(),n.effects[n.params.effect].setTranslate()),n.params.loop?n.slideTo(n.params.initialSlide+n.loopedSlides,0,n.params.runCallbacksOnInit):(n.slideTo(n.params.initialSlide,0,n.params.runCallbacksOnInit),0===n.params.initialSlide&&(n.parallax&&n.params.parallax&&n.parallax.setTranslate(),n.lazy&&n.params.lazyLoading&&(n.lazy.load(),n.lazy.initialImageLoaded=!0))),n.attachEvents(),n.params.observer&&n.support.observer&&n.initObservers(),n.params.preloadImages&&!n.params.lazyLoading&&n.preloadImages(),n.params.zoom&&n.zoom&&n.zoom.init(),n.params.autoplay&&n.startAutoplay(),n.params.keyboardControl&&n.enableKeyboardControl&&n.enableKeyboardControl(),n.params.mousewheelControl&&n.enableMousewheelControl&&n.enableMousewheelControl(),n.params.hashnavReplaceState&&(n.params.replaceState=n.params.hashnavReplaceState),n.params.history&&n.history&&n.history.init(),n.params.hashnav&&n.hashnav&&n.hashnav.init(),n.params.a11y&&n.a11y&&n.a11y.init(),n.emit("onInit",n)},n.cleanupStyles=function(){n.container.removeClass(n.classNames.join(" ")).removeAttr("style"),n.wrapper.removeAttr("style"),n.slides&&n.slides.length&&n.slides.removeClass([n.params.slideVisibleClass,n.params.slideActiveClass,n.params.slideNextClass,n.params.slidePrevClass].join(" ")).removeAttr("style").removeAttr("data-swiper-column").removeAttr("data-swiper-row"),n.paginationContainer&&n.paginationContainer.length&&n.paginationContainer.removeClass(n.params.paginationHiddenClass),n.bullets&&n.bullets.length&&n.bullets.removeClass(n.params.bulletActiveClass),n.params.prevButton&&a(n.params.prevButton).removeClass(n.params.buttonDisabledClass),n.params.nextButton&&a(n.params.nextButton).removeClass(n.params.buttonDisabledClass),n.params.scrollbar&&n.scrollbar&&(n.scrollbar.track&&n.scrollbar.track.length&&n.scrollbar.track.removeAttr("style"),n.scrollbar.drag&&n.scrollbar.drag.length&&n.scrollbar.drag.removeAttr("style"))},n.destroy=function(a,b){n.detachEvents(),n.stopAutoplay(),n.params.scrollbar&&n.scrollbar&&n.params.scrollbarDraggable&&n.scrollbar.disableDraggable(),n.params.loop&&n.destroyLoop(),b&&n.cleanupStyles(),n.disconnectObservers(),n.params.zoom&&n.zoom&&n.zoom.destroy(),n.params.keyboardControl&&n.disableKeyboardControl&&n.disableKeyboardControl(),n.params.mousewheelControl&&n.disableMousewheelControl&&n.disableMousewheelControl(),n.params.a11y&&n.a11y&&n.a11y.destroy(),n.params.history&&!n.params.replaceState&&window.removeEventListener("popstate",n.history.setHistoryPopState),n.params.hashnav&&n.hashnav&&n.hashnav.destroy(),n.emit("onDestroy"),a!==!1&&(n=null)},n.init(),n}};b.prototype={isSafari:function(){var a=navigator.userAgent.toLowerCase();return a.indexOf("safari")>=0&&a.indexOf("chrome")<0&&a.indexOf("android")<0}(),isUiWebView:/(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(navigator.userAgent),isArray:function(a){return"[object Array]"===Object.prototype.toString.apply(a)},browser:{ie:window.navigator.pointerEnabled||window.navigator.msPointerEnabled,ieTouch:window.navigator.msPointerEnabled&&window.navigator.msMaxTouchPoints>1||window.navigator.pointerEnabled&&window.navigator.maxTouchPoints>1,lteIE9:function(){var a=document.createElement("div");return a.innerHTML="<!--[if lte IE 9]><i></i><![endif]-->",1===a.getElementsByTagName("i").length}()},device:function(){var a=navigator.userAgent,b=a.match(/(Android);?[\s\/]+([\d.]+)?/),c=a.match(/(iPad).*OS\s([\d_]+)/),d=a.match(/(iPod)(.*OS\s([\d_]+))?/),e=!c&&a.match(/(iPhone\sOS)\s([\d_]+)/);return{ios:c||e||d,android:b}}(),support:{touch:window.Modernizr&&Modernizr.touch===!0||function(){return!!("ontouchstart"in window||window.DocumentTouch&&document instanceof DocumentTouch)}(),transforms3d:window.Modernizr&&Modernizr.csstransforms3d===!0||function(){var a=document.createElement("div").style;return"webkitPerspective"in a||"MozPerspective"in a||"OPerspective"in a||"MsPerspective"in a||"perspective"in a}(),flexbox:function(){for(var a=document.createElement("div").style,b="alignItems webkitAlignItems webkitBoxAlign msFlexAlign mozBoxAlign webkitFlexDirection msFlexDirection mozBoxDirection mozBoxOrient webkitBoxDirection webkitBoxOrient".split(" "),c=0;c<b.length;c++)if(b[c]in a)return!0}(),observer:function(){return"MutationObserver"in window||"WebkitMutationObserver"in window}(),passiveListener:function(){var a=!1;try{var b=Object.defineProperty({},"passive",{get:function(){a=!0}});window.addEventListener("testPassiveListener",null,b)}catch(a){}return a}(),gestures:function(){return"ongesturestart"in window}()},plugins:{}};for(var c=(function(){var a=function(a){var b=this,c=0;for(c=0;c<a.length;c++)b[c]=a[c];return b.length=a.length,this},b=function(b,c){var d=[],e=0;if(b&&!c&&b instanceof a)return b;if(b)if("string"==typeof b){var f,g,h=b.trim();if(h.indexOf("<")>=0&&h.indexOf(">")>=0){var i="div";for(0===h.indexOf("<li")&&(i="ul"),0===h.indexOf("<tr")&&(i="tbody"),0!==h.indexOf("<td")&&0!==h.indexOf("<th")||(i="tr"),0===h.indexOf("<tbody")&&(i="table"),0===h.indexOf("<option")&&(i="select"),g=document.createElement(i),g.innerHTML=b,e=0;e<g.childNodes.length;e++)d.push(g.childNodes[e])}else for(f=c||"#"!==b[0]||b.match(/[ .<>:~]/)?(c||document).querySelectorAll(b):[document.getElementById(b.split("#")[1])],e=0;e<f.length;e++)f[e]&&d.push(f[e])}else if(b.nodeType||b===window||b===document)d.push(b);else if(b.length>0&&b[0].nodeType)for(e=0;e<b.length;e++)d.push(b[e]);return new a(d)};return a.prototype={addClass:function(a){if("undefined"==typeof a)return this;for(var b=a.split(" "),c=0;c<b.length;c++)for(var d=0;d<this.length;d++)this[d].classList.add(b[c]);return this},removeClass:function(a){for(var b=a.split(" "),c=0;c<b.length;c++)for(var d=0;d<this.length;d++)this[d].classList.remove(b[c]);return this},hasClass:function(a){return!!this[0]&&this[0].classList.contains(a)},toggleClass:function(a){for(var b=a.split(" "),c=0;c<b.length;c++)for(var d=0;d<this.length;d++)this[d].classList.toggle(b[c]);return this},attr:function(a,b){if(1===arguments.length&&"string"==typeof a)return this[0]?this[0].getAttribute(a):void 0;for(var c=0;c<this.length;c++)if(2===arguments.length)this[c].setAttribute(a,b);else for(var d in a)this[c][d]=a[d],this[c].setAttribute(d,a[d]);return this},removeAttr:function(a){for(var b=0;b<this.length;b++)this[b].removeAttribute(a);return this},data:function(a,b){if("undefined"!=typeof b){for(var d=0;d<this.length;d++){var e=this[d];e.dom7ElementDataStorage||(e.dom7ElementDataStorage={}),e.dom7ElementDataStorage[a]=b}return this}if(this[0]){var c=this[0].getAttribute("data-"+a);return c?c:this[0].dom7ElementDataStorage&&a in this[0].dom7ElementDataStorage?this[0].dom7ElementDataStorage[a]:void 0}},transform:function(a){for(var b=0;b<this.length;b++){var c=this[b].style;c.webkitTransform=c.MsTransform=c.msTransform=c.MozTransform=c.OTransform=c.transform=a}return this},transition:function(a){"string"!=typeof a&&(a+="ms");for(var b=0;b<this.length;b++){var c=this[b].style;c.webkitTransitionDuration=c.MsTransitionDuration=c.msTransitionDuration=c.MozTransitionDuration=c.OTransitionDuration=c.transitionDuration=a}return this},on:function(a,c,d,e){function f(a){var e=a.target;if(b(e).is(c))d.call(e,a);else for(var f=b(e).parents(),g=0;g<f.length;g++)b(f[g]).is(c)&&d.call(f[g],a)}var h,i,g=a.split(" ");for(h=0;h<this.length;h++)if("function"==typeof c||c===!1)for("function"==typeof c&&(d=arguments[1],e=arguments[2]||!1),i=0;i<g.length;i++)this[h].addEventListener(g[i],d,e);else for(i=0;i<g.length;i++)this[h].dom7LiveListeners||(this[h].dom7LiveListeners=[]),this[h].dom7LiveListeners.push({listener:d,liveListener:f}),this[h].addEventListener(g[i],f,e);return this},off:function(a,b,c,d){for(var e=a.split(" "),f=0;f<e.length;f++)for(var g=0;g<this.length;g++)if("function"==typeof b||b===!1)"function"==typeof b&&(c=arguments[1],d=arguments[2]||!1),this[g].removeEventListener(e[f],c,d);else if(this[g].dom7LiveListeners)for(var h=0;h<this[g].dom7LiveListeners.length;h++)this[g].dom7LiveListeners[h].listener===c&&this[g].removeEventListener(e[f],this[g].dom7LiveListeners[h].liveListener,d);return this},once:function(a,b,c,d){function f(g){c(g),e.off(a,b,f,d)}var e=this;"function"==typeof b&&(b=!1,c=arguments[1],d=arguments[2]),e.on(a,b,f,d)},trigger:function(a,b){for(var c=0;c<this.length;c++){var d;try{d=new window.CustomEvent(a,{detail:b,bubbles:!0,cancelable:!0})}catch(c){d=document.createEvent("Event"),d.initEvent(a,!0,!0),d.detail=b}this[c].dispatchEvent(d)}return this},transitionEnd:function(a){function f(d){if(d.target===this)for(a.call(this,d),c=0;c<b.length;c++)e.off(b[c],f)}var c,b=["webkitTransitionEnd","transitionend","oTransitionEnd","MSTransitionEnd","msTransitionEnd"],e=this;if(a)for(c=0;c<b.length;c++)e.on(b[c],f);return this},width:function(){return this[0]===window?window.innerWidth:this.length>0?parseFloat(this.css("width")):null},outerWidth:function(a){return this.length>0?a?this[0].offsetWidth+parseFloat(this.css("margin-right"))+parseFloat(this.css("margin-left")):this[0].offsetWidth:null},height:function(){return this[0]===window?window.innerHeight:this.length>0?parseFloat(this.css("height")):null},outerHeight:function(a){return this.length>0?a?this[0].offsetHeight+parseFloat(this.css("margin-top"))+parseFloat(this.css("margin-bottom")):this[0].offsetHeight:null},offset:function(){if(this.length>0){var a=this[0],b=a.getBoundingClientRect(),c=document.body,d=a.clientTop||c.clientTop||0,e=a.clientLeft||c.clientLeft||0,f=window.pageYOffset||a.scrollTop,g=window.pageXOffset||a.scrollLeft;return{top:b.top+f-d,left:b.left+g-e}}return null},css:function(a,b){var c;if(1===arguments.length){if("string"!=typeof a){for(c=0;c<this.length;c++)for(var d in a)this[c].style[d]=a[d];return this}if(this[0])return window.getComputedStyle(this[0],null).getPropertyValue(a)}if(2===arguments.length&&"string"==typeof a){for(c=0;c<this.length;c++)this[c].style[a]=b;return this}return this},each:function(a){for(var b=0;b<this.length;b++)a.call(this[b],b,this[b]);return this},html:function(a){if("undefined"==typeof a)return this[0]?this[0].innerHTML:void 0;for(var b=0;b<this.length;b++)this[b].innerHTML=a;return this},text:function(a){if("undefined"==typeof a)return this[0]?this[0].textContent.trim():null;for(var b=0;b<this.length;b++)this[b].textContent=a;return this},is:function(c){if(!this[0])return!1;var d,e;if("string"==typeof c){var f=this[0];if(f===document)return c===document;if(f===window)return c===window;if(f.matches)return f.matches(c);if(f.webkitMatchesSelector)return f.webkitMatchesSelector(c);if(f.mozMatchesSelector)return f.mozMatchesSelector(c);if(f.msMatchesSelector)return f.msMatchesSelector(c);for(d=b(c),e=0;e<d.length;e++)if(d[e]===this[0])return!0;return!1}if(c===document)return this[0]===document;if(c===window)return this[0]===window;if(c.nodeType||c instanceof a){for(d=c.nodeType?[c]:c,e=0;e<d.length;e++)if(d[e]===this[0])return!0;return!1}return!1},index:function(){if(this[0]){for(var a=this[0],b=0;null!==(a=a.previousSibling);)1===a.nodeType&&b++;return b}},eq:function(b){if("undefined"==typeof b)return this;var d,c=this.length;return b>c-1?new a([]):b<0?(d=c+b,new a(d<0?[]:[this[d]])):new a([this[b]])},append:function(b){var c,d;for(c=0;c<this.length;c++)if("string"==typeof b){var e=document.createElement("div");for(e.innerHTML=b;e.firstChild;)this[c].appendChild(e.firstChild)}else if(b instanceof a)for(d=0;d<b.length;d++)this[c].appendChild(b[d]);else this[c].appendChild(b);return this},prepend:function(b){var c,d;for(c=0;c<this.length;c++)if("string"==typeof b){var e=document.createElement("div");for(e.innerHTML=b,d=e.childNodes.length-1;d>=0;d--)this[c].insertBefore(e.childNodes[d],this[c].childNodes[0])}else if(b instanceof a)for(d=0;d<b.length;d++)this[c].insertBefore(b[d],this[c].childNodes[0]);else this[c].insertBefore(b,this[c].childNodes[0]);return this},insertBefore:function(a){for(var c=b(a),d=0;d<this.length;d++)if(1===c.length)c[0].parentNode.insertBefore(this[d],c[0]);else if(c.length>1)for(var e=0;e<c.length;e++)c[e].parentNode.insertBefore(this[d].cloneNode(!0),c[e])},insertAfter:function(a){for(var c=b(a),d=0;d<this.length;d++)if(1===c.length)c[0].parentNode.insertBefore(this[d],c[0].nextSibling);else if(c.length>1)for(var e=0;e<c.length;e++)c[e].parentNode.insertBefore(this[d].cloneNode(!0),c[e].nextSibling)},next:function(c){return new a(this.length>0?c?this[0].nextElementSibling&&b(this[0].nextElementSibling).is(c)?[this[0].nextElementSibling]:[]:this[0].nextElementSibling?[this[0].nextElementSibling]:[]:[])},nextAll:function(c){var d=[],e=this[0];if(!e)return new a([]);for(;e.nextElementSibling;){var f=e.nextElementSibling;c?b(f).is(c)&&d.push(f):d.push(f),e=f}return new a(d)},prev:function(c){return new a(this.length>0?c?this[0].previousElementSibling&&b(this[0].previousElementSibling).is(c)?[this[0].previousElementSibling]:[]:this[0].previousElementSibling?[this[0].previousElementSibling]:[]:[])},prevAll:function(c){var d=[],e=this[0];if(!e)return new a([]);for(;e.previousElementSibling;){var f=e.previousElementSibling;c?b(f).is(c)&&d.push(f):d.push(f),e=f}return new a(d)},parent:function(a){for(var c=[],d=0;d<this.length;d++)a?b(this[d].parentNode).is(a)&&c.push(this[d].parentNode):c.push(this[d].parentNode);return b(b.unique(c))},parents:function(a){for(var c=[],d=0;d<this.length;d++)for(var e=this[d].parentNode;e;)a?b(e).is(a)&&c.push(e):c.push(e),e=e.parentNode;return b(b.unique(c))},find:function(b){for(var c=[],d=0;d<this.length;d++)for(var e=this[d].querySelectorAll(b),f=0;f<e.length;f++)c.push(e[f]);return new a(c)},children:function(c){for(var d=[],e=0;e<this.length;e++)for(var f=this[e].childNodes,g=0;g<f.length;g++)c?1===f[g].nodeType&&b(f[g]).is(c)&&d.push(f[g]):1===f[g].nodeType&&d.push(f[g]);return new a(b.unique(d))},remove:function(){for(var a=0;a<this.length;a++)this[a].parentNode&&this[a].parentNode.removeChild(this[a]);return this},add:function(){var c,d,a=this;for(c=0;c<arguments.length;c++){var e=b(arguments[c]);for(d=0;d<e.length;d++)a[a.length]=e[d],a.length++}return a}},b.fn=a.prototype,b.unique=function(a){for(var b=[],c=0;c<a.length;c++)b.indexOf(a[c])===-1&&b.push(a[c]);return b},b}()),d=["jQuery","Zepto","Dom7"],e=0;e<d.length;e++)window[d[e]]&&g(window[d[e]]);var f;f="undefined"==typeof c?window.Dom7||window.Zepto||window.jQuery:c,f&&("transitionEnd"in f.fn||(f.fn.transitionEnd=function(a){function f(d){if(d.target===this)for(a.call(this,d),c=0;c<b.length;c++)e.off(b[c],f)}var c,b=["webkitTransitionEnd","transitionend","oTransitionEnd","MSTransitionEnd","msTransitionEnd"],e=this;if(a)for(c=0;c<b.length;c++)e.on(b[c],f);return this}),"transform"in f.fn||(f.fn.transform=function(a){for(var b=0;b<this.length;b++){var c=this[b].style;c.webkitTransform=c.MsTransform=c.msTransform=c.MozTransform=c.OTransform=c.transform=a}return this}),"transition"in f.fn||(f.fn.transition=function(a){"string"!=typeof a&&(a+="ms");for(var b=0;b<this.length;b++){var c=this[b].style;c.webkitTransitionDuration=c.MsTransitionDuration=c.msTransitionDuration=c.MozTransitionDuration=c.OTransitionDuration=c.transitionDuration=a}return this}),"outerWidth"in f.fn||(f.fn.outerWidth=function(a){return this.length>0?a?this[0].offsetWidth+parseFloat(this.css("margin-right"))+parseFloat(this.css("margin-left")):this[0].offsetWidth:null;
})),window.MBTGamesScroller=b}(),MBT={},MBT.API={},MBT.API.Widgets={},MBT.API.Utils={},MBT.API.URL={},MBT.API.History={},MBT.API.Function={},MBT.API.Event={},MBT.API.UI={},MBT.API.Base64={},MBT.API.Storage={},MBT.API.Cookies={},MBT.API.livePagesTypeIndex=null,MBT.API.livePagesLangId=null,MBT.API.imageServiceUrl=null,MBT.API.livePagesTypeIndexConfig=null,MBT.API.translationsLang=null,MBT.API.translationsSetId=null,MBT.API.addCSS=!0,MBT.API.getLivePagesTypeIndex=function(a){return"undefined"!=typeof a&&"function"==typeof MBT.API.livePagesTypeIndexConfig?MBT.API.livePagesTypeIndexConfig(a):MBT.API.livePagesTypeIndex},MBT.API.getLivePagesLangId=function(){return MBT.API.livePagesLangId},"undefined"!=typeof customServiceUrl&&""!=customServiceUrl?MBT.API.ServiceUrl=customServiceUrl:MBT.API.ServiceUrl="http://widgets.baskethotel.com/",MBT.API.WidgetUrl=MBT.API.ServiceUrl+"widget-service/show?",MBT.API.StatisticsUrl="http://185.38.167.137/stats.php",MBT.API.stylesheetIndex=0,MBT.API.ApiCSSUrl=MBT.API.ServiceUrl+"css.php",MBT.API.ShowSurnameFirst=!1,MBT.API.FirstNamePriority=!1,MBT.API.NAVIGATION_TYPE_INNER=1,MBT.API.NAVIGATION_TYPE_EXTERNAL=2,MBT.API.NAVIGATION_TYPE_CUSTOM=3,MBT.API.Widgets.TEST_WIDGET=1,MBT.API.Widgets.PLAYER_FULL_VIEW_WIDGET=100,MBT.API.Widgets.PLAYER_SMALL_WIDGET=101,MBT.API.Widgets.PLAYER_ABC_LIST_WIDGET=105,MBT.API.Widgets.PLAYER_COMPARISON_WIDGET=120,MBT.API.Widgets.PLAYER_BIRTHDAY_WIDGET=106,MBT.API.Widgets.TEAM_FULL_VIEW_WIDGET=200,MBT.API.Widgets.TEAM_LOGO_LIST_WIDGET=201,MBT.API.Widgets.TEAM_SCHEDULE_WIDGET=203,MBT.API.Widgets.TEAM_RESULTS_WIDGET=204,MBT.API.Widgets.TEAM_IN_LEAGUES_SCHEDULE_WIDGET=205,MBT.API.Widgets.TEAM_IN_LEAGUES_LEADERS=206,MBT.API.Widgets.TEAM_COMPARISON_WIDGET=220,MBT.API.Widgets.TEAM_GAMES_SCROLLER=225,MBT.API.Widgets.SEASON_STANDINGS_SHORT_WIDGET=300,MBT.API.Widgets.SEASON_STANDINGS_LONG_WIDGET=301,MBT.API.Widgets.SEASON_SCHEDULE_SHORT_WIDGET=302,MBT.API.Widgets.SEASON_SCHEDULE_LONG_WIDGET=303,MBT.API.Widgets.SEASON_FINAL_STANDINGS_WIDGET=304,MBT.API.Widgets.SEASON_LEADERS_SHORT_WIDGET=310,MBT.API.Widgets.SEASON_PLAYERS_TOP_5_WIDGET=311,MBT.API.Widgets.SEASON_RESULTS_BY_TEAMS_WIDGET=330,MBT.API.Widgets.SEASON_SELECTOR_WIDGET=320,MBT.API.Widgets.GAME_FULL_VIEW_WIDGET=400,MBT.API.Widgets.GAME_LIVE_BANNER_WIDGET=401,MBT.API.Widgets.GAME_QUOTES_WIDGET=402,MBT.API.Widgets.GAME_MEDIA_WIDGET=403,MBT.API.Widgets.GAME_PLAY_BY_PLAY_WIDGET=404,MBT.API.Widgets.LEAGUE_LIST_WITH_REGIONS_WIDGET=500,MBT.API.Widgets.LEAGUE_RESULTS_VIEW_WIDGET=501,MBT.API.Widgets.LEAGUE_TRANSFER_LIST_WIDGET=502,MBT.API.Widgets.ALL_LEAGUES_SCHEDULE_WIDGET=510,MBT.API.Widgets.TODAYS_GAMES_WIDGET=511,MBT.API.Widgets.CALENDAR_SCHEDULE_WIDGET=520,MBT.API.Widgets.LEAGUE_SELECTOR_WIDGET=530,MBT.API.Widgets.COMPETITION_HISTORY_WIDGET=550,MBT.API.Widgets.STATISTICS_PLAYERS_WIDGET=600,MBT.API.Widgets.STATISTICS_TEAMS_WIDGET=601,MBT.API.Widgets.STATISTICS_COACHES_WIDGET=602,MBT.API.Widgets.STATISTICS_SCORING_WIDGET=603,MBT.API.Widgets.STATISTICS_EFF_LEADERS_WIDGET=604,MBT.API.Widgets.SELECTED_LEADERS_WIDGET=605,MBT.API.Widgets.RECORDS_PLAYERS_WIDGET=700,MBT.API.Widgets.RECORDS_TEAMS_WIDGET=701,MBT.API.Widgets.CLUB_FULL_VIEW_WIDGET=800,MBT.API.Widgets.ARENA_FULL_WIDGET=810,MBT.API.Widgets.SEARCH_SIMPLE_WIDGET=900,MBT.API.Widgets.PLAYOFF_SMALL_WIDGET=1e3,MBT.API.Widgets.PLAYOFF_LARGE_WIDGET=1001,MBT.API.Widgets.ENROLLMENT_LIST_WIDGET=2001,MBT.API.Widgets.DISTRIBUTION_CLUB_WIDGET=3e3,MBT.API.Widgets.NT_TEAM_FULL_WIDGET=4e3,MBT.API.Widgets.NT_FRONTPAGE_FULL_WIDGET=4010,MBT.API.Widgets.NT_FRONTPAGE_COMPACT_WIDGET=4011,MBT.API.Widgets.NT_STATISTICS_PLAYER_WIDGET=4100,MBT.API.Widgets.NT_TOURNAMENT_WIDGET=4200,MBT.API.Widgets.NT_GAMES_OVERVIEW_WIDGET=4300,MBT.API.Widgets.NT_GAME_CARD_WIDGET=4400,MBT.API.Widgets.NT_GAMES_AND_TOURNAMENTS_WIDGET=4500,MBT.API.Widgets.NT_PLAYER_WIDGET=4600,MBT.API.Widgets.NT_PLAYER_LIST_WIDGET=4650,MBT.API.Widgets.GAMES_REFEREES_AND_HOST_TEAMS_WIDGET=5e3,MBT.API.Widgets.GAMES_SCROLLER_WIDGET=5100,MBT.API.Widgets.WINNING_PERCENTAGE=6e3,MBT.API.Widgets.ATTENDANCE_FULL=6200,MBT.API.Widgets.ATTENDANCE_TOP5=6201,MBT.API.Widgets.GraphsLoaded=!1,MBT.API.Widgets.HtmlLiveLoaded=!1,MBT.API.Widgets.LogStats=!0,MBT.API.Widgets.ChartJsLoaded=!1,MBT.API.Cookies.NAMESPACE="mbt-widget-app",MBT.API.Utils.addCSS=function(a){var b={rel:"stylesheet",type:"text/css",media:"all"},c=document.createElement("link");c.setAttribute("rel",b.rel),c.setAttribute("type",b.type),c.setAttribute("media",b.media),c.setAttribute("href",a+"&v=145"),document.getElementsByTagName("head")[0].appendChild(c)},MBT.API.Utils.addScript=function(a,b){"undefined"!=typeof MBT.API.debug&&(a+="&d="+Math.random());var c=document.createElement("script");c.setAttribute("type","text/javascript"),c.setAttribute("language","javascript"),"undefined"!=typeof b&&(c.onreadystatechange=function(){"loaded"==c.readyState&&b()},c.onload=b),c.setAttribute("src",a);var d=document.getElementsByTagName("head")[0].appendChild(c);MBT.API.Event.observe(d,"load",MBT.API.Function.createDelegate(function(a,b){try{document.getElementsByTagName("head")[0].removeChild(b)}catch(a){}},null,[d],1))},MBT.API.Utils.loadCharts=function(a){MBT.API.Widgets.GraphsLoaded?a():(MBT.API.Utils.addScript(MBT.API.ServiceUrl+"static/scripts/amcharts/flash/swfobject.js?v=2",function(){MBT.API.Utils.addScript(MBT.API.ServiceUrl+"static/scripts/amcharts/amcharts.js?v=2",function(){MBT.API.Utils.addScript(MBT.API.ServiceUrl+"static/scripts/amcharts/amfallback.js?v=2",function(){MBT.API.Utils.addScript(MBT.API.ServiceUrl+"static/scripts/amcharts/raphael.js?v=2",a)})})}),MBT.API.Widgets.GraphsLoaded=!0)},MBT.API.Utils.loadChartsV2=function(a){MBT.API.Widgets.GraphsLoaded?a():(MBT.API.Utils.addScript(MBT.API.ServiceUrl+"static/scripts/amcharts/amcharts.js?v=2",function(){MBT.API.Utils.addScript(MBT.API.ServiceUrl+"static/scripts/amcharts/raphael.js?v=2",a)}),MBT.API.Widgets.GraphsLoaded=!0)},MBT.API.Utils.loadChartJs=function(a){MBT.API.Widgets.ChartJsLoaded?a():(MBT.API.Utils.addScript(MBT.API.ServiceUrl+"static/scripts/external/ChartJs/dist/Chart.min.js",function(){a()}),MBT.API.Widgets.ChartJsLoaded=!0)},MBT.API.Utils.loadHtmlLive=function(a){var b=2;MBT.API.Widgets.HtmlLiveLoaded?a():(MBT.API.Utils.addCSS("http://beta.mbt.lt/~oskaras/live/static/styles/style_default.css?v="+b),MBT.API.Utils.addScript("http://mbt.baskethotel.com/live/static/scripts/json2.js?v="+b,function(){MBT.API.Utils.addScript("http://mbt.baskethotel.com/live/static/scripts/mbtjs.js?v="+b,function(){MBT.API.Utils.addScript("http://mbt.baskethotel.com/live/static/scripts/live.js?v="+b,a)})}),MBT.API.Widgets.HtmlLiveLoaded=!0)},MBT.API.Utils.getObjectKeys=function(a){var b=[];for(var c in a)b.push(c);return b},MBT.API.Utils.getHtmlSelectValues=function(a){var b=[],c=document.getElementById(a).options;if("undefined"==typeof c)return[];for(i=0;i<c.length;i++)b.push(c[i].value);return b},MBT.API.Utils.valueExistsInHtmlSelect=function(a,b){var c=MBT.API.Utils.getHtmlSelectValues(a);for(i=0;i<c.length;i++)if(c[i]==b)return!0;return!1},MBT.API.logStat=function(a,b){if(MBT.API.Widgets.LogStats){var c=MBT.API.URL.mergeParams(MBT.API.StatisticsUrl,{api:MBT.API.ApiId,w:a}),d=document.createElement("iframe");d.setAttribute("src",c),d.style.display="none",document.getElementById(b)&&document.getElementById(b).appendChild(d)}},MBT.API.get=function(a){return"object"==typeof a?a:document.getElementById(a)},MBT.API.isElement=function(a){return"object"==typeof a&&1==a.nodeType},MBT.API.isUndefined=function(a){return"undefined"==typeof a},MBT.API.isArray=function(a){return null!=a&&"object"==typeof a&&"splice"in a&&"join"in a},MBT.API.Browser={IE:!(!window.attachEvent||navigator.userAgent.indexOf("Opera")!==-1),Opera:navigator.userAgent.indexOf("Opera")>-1,WebKit:navigator.userAgent.indexOf("AppleWebKit/")>-1,Gecko:navigator.userAgent.indexOf("Gecko")>-1&&navigator.userAgent.indexOf("KHTML")===-1,MobileSafari:!!navigator.userAgent.match(/Apple.*Mobile.*Safari/)},MBT.API.toJSON=function(a){var b=typeof a;switch(b){case"undefined":case"function":case"unknown":return;case"boolean":return a?1:0}if(null===a)return"null";if(a.toJSON)return a.toJSON();if(!MBT.API.isElement(a)){var c=[];for(var d in a){var e=MBT.API.toJSON(a[d]);MBT.API.isUndefined(e)||c.push(d.toJSON()+": "+e)}return"{"+c.join(", ")+"}"}},MBT.API.extend=function(a,b){for(var c in b.prototype)a.prototype[c]=b[c];return a},MBT.API.update=function(a,b){var c=MBT.API.get(a);if(null==c)throw"Container element is empty "+b;b.indexOf("<form")>-1&&MBT.API.isInForm(c)&&(b=b.replace(/<form[^>]*>/g,"").replace(/<\/form>/g,""));var d=new RegExp("^<option.*/option>","gi");if(d.test(b.replace(/^\s+|\s+$/g,""))){var d=new RegExp("<option.*/option>","gi");for(c.options.length=0;o=d.exec(b);){var e=o[0],f=new RegExp('value="([0-9]*)"',"gi"),g=f.exec(e);if(g)var h=g[1];else var h="";var i=new RegExp("<option.*>(.*)</option>","gi"),j=i.exec(e);if(j)var k=j[1];else var k="";var l=document.createElement("option");l.text=k,l.value=h,c.options.add(l)}}else c.innerHTML=b;b.evalScripts()},MBT.API.isInForm=function(a){return!!a&&("FORM"==a.tagName||"BODY"!=a.tagName&&MBT.API.isInForm(a.parentNode))},MBT.API.triggerError=function(a){"object"==typeof console&&console.log(a)},MBT.API.addApiCSS=function(){if(("undefined"==typeof MBT.API.apiCSSLoaded||!MBT.API.apiCSSLoaded)&&MBT.API.addCSS){for(var a=MBT.API.getApiCSSUrl(),b=document.getElementsByTagName("link"),c=!1,d=0;d<b.length;d++)if(b[d].href==a){c=!0;break}c||(MBT.API.Utils.addCSS(a),MBT.API.apiCSSLoaded=!0)}},MBT.API.getApiCSSUrl=function(){var a=MBT.API.ApiId;if("undefined"!=typeof MBT.API.Widgets.CssApi)var a=MBT.API.Widgets.CssApi;var b=MBT.API.ApiCSSUrl+"?api="+a+"&index="+MBT.API.stylesheetIndex;return"undefined"!=typeof mbtBasketHotelVersion&&(b+="&ver="+mbtBasketHotelVersion),b},MBT.API.Widgets.LOADING_IMG_LARGE=MBT.API.ServiceUrl+"static/images/loading-large.gif",MBT.API.Widgets.STATE_URL_PREFIX="mbt:","undefined"==typeof MBT.API.Lang&&(MBT.API.Lang="en"),"undefined"==typeof MBT.API.NewNav&&(MBT.API.NewNav=0),"undefined"==typeof MBT.API.NavObject&&(MBT.API.NavObject=0),MBT.API.Widgets.Widget=function(a){if(this.container=null,this.width=null,this.height=null,this.widgetId=null,this.state=null,this.partial=null,this.callback=null,this.showLoadingIndicator=!0,this.params={},"object"==typeof a)for(var b in a)"undefined"!=typeof this[b]&&(this[b]=a[b]);return this},MBT.API.Widgets.Widget.prototype.setContainer=function(a){this.container=a,this.__init()},MBT.API.Widgets.Widget.prototype.setCallback=function(a){this.callback=a},MBT.API.Widgets.Widget.prototype.setWidgetId=function(a){this.widgetId=a,this.__init()},MBT.API.Widgets.Widget.prototype.setParam=function(a,b){null!=b&&"undefined"!=typeof b&&("string"!=typeof b||"undefined"!=b&&"null"!=b)&&(this.params[a]=b)},MBT.API.Widgets.Widget.prototype.__init=function(){var a=MBT.API.get(this.container);if(null!=a){var b=this.widgetId;null!=b&&a.setAttribute("mbt_widget",b)}},MBT.API.Widgets.Widget.prototype.setPartial=function(a){this.partial=a},MBT.API.Widgets.Widget.prototype.render=function(){var a=new MBT.API.Widgets.RenderRequest;a.addWidget(this),a.render()},MBT.API.Widgets.Widget.prototype.renderPartial=function(a){this.setPartial(a);var b=new MBT.API.Widgets.RenderRequest;b.addWidget(this),b.render()},MBT.API.Widgets.RenderRequest=function(){this.widgets=[]},MBT.API.Widgets.RenderRequest.prototype.addWidget=function(a){MBT.API.translationsLang&&a.setParam("translations_lang",MBT.API.translationsLang),MBT.API.translationsSetId&&a.setParam("translations_set_id",MBT.API.translationsSetId),this.widgets.push(a)},MBT.API.Widgets.RenderRequest.prototype.setOutputFormat=function(a){this.outputFormat=a},MBT.API.Widgets.RenderRequest.prototype.serialize=function(){var a="";this.outputFormat&&(a+="&output_format="+this.outputFormat);for(var b=0;b<this.widgets.length;b++){widget=this.widgets[b];var c=MBT.API.get(widget.container);a+="&request["+b+"][container]="+c.id,a+="&request["+b+"][widget]="+widget.widgetId,widget.partial&&(a+="&request["+b+"][part]="+widget.partial),widget.state&&(a+="&request["+b+"][state]="+widget.state),widget.callback&&(a+="&request["+b+"][callback="+widget.callback),widget.params&&(a+=MBT.API.URL.serialize("request["+b+"][param]",widget.params))}return MBT.API.Base64.encode(a)},MBT.API.Widgets.RenderRequest.prototype.render=function(){if(!MBT.API.Widgets.RenderRequest.disableRender){if("undefined"==typeof MBT.API.ApiId)throw"MBT.API.ApiId could not be empty";if(""==MBT.API.Lang)throw"MBT.API.Lang could not be empty";this.widgets[0].params.api&&(MBT.API.ApiId=this.widgets[0].params.api);var a=MBT.API.WidgetUrl;a=MBT.API.URL.mergeParams(a,{}),this.outputFormat&&(a+="&output_format="+this.outputFormat);for(var b=!1,c=0;c<this.widgets.length;c++){widget=this.widgets[c];var d=MBT.API.get(widget.container);if(null==d)throw"Assign output container using setContainer(...)";widget.partial&&(b=!0),widget.showLoadingIndicator&&MBT.API.Widgets.showLoading(d),a+="&request["+c+"][container]="+d.id,a+="&request["+c+"][widget]="+widget.widgetId,widget.partial&&(a+="&request["+c+"][part]="+widget.partial),widget.state&&(a+="&request["+c+"][state]="+widget.state),widget.callback&&(a+="&request["+c+"][callback]="+widget.callback),null!=MBT.API.imageServiceUrl&&(widget.params.image_service_url=MBT.API.imageServiceUrl),widget.params&&(a+=MBT.API.URL.serialize("request["+c+"][param]",widget.params))}"undefined"==typeof MBT.API.Widgets.RenderRequest.initialRequestState&&(MBT.API.Widgets.RenderRequest.initialRequestState=this.serialize()),MBT.API.Utils.addScript(a),MBT.API.logStat(this.widgets.length,this.widgets[0].container)}},MBT.API.Widgets.showLoading=function(a){a=MBT.API.get(a),"IFRAME"!=a.tagName&&(a.innerHTML='<img class="mbt-loader-center" src="'+MBT.API.Widgets.LOADING_IMG_LARGE+'" />')},MBT.API.Widgets.RenderRequest.renderFromState=function(a){var b=MBT.API.Base64.decode(a),c=MBT.API.WidgetUrl;c=MBT.API.URL.mergeParams(c,{}),c+=b,MBT.API.Utils.addScript(c)},MBT.API.Widgets.findWidgetContainer=function(a){a=MBT.API.get(a);do{if(null!=a.getAttribute("mbt_widget"))return a;a=a.parentNode}while(null!=a&&a.getAttribute);return a},MBT.API.Widgets.Graph=function(a){if(this.container=null,this.width=null,this.height=null,this.widgetId=null,this.partial="graph",this.settingsPartial=null,this.params={},"object"==typeof a)for(var b in a)"undefined"!=typeof this[b]&&(this[b]=a[b]);return this},MBT.API.Widgets.Graph.prototype.setContainer=function(a){this.container=a},MBT.API.Widgets.Graph.prototype.setWidgetId=function(a){this.widgetId=a},MBT.API.Widgets.Graph.prototype.setParam=function(a,b){this.params[a]=b},MBT.API.Widgets.Graph.prototype.setWidgetId=function(a){this.widgetId=a},MBT.API.Widgets.Graph.prototype.setPartial=function(a){this.partial=a},MBT.API.Widgets.Graph.prototype.setSettingsPartial=function(a){this.settingsPartial=a},MBT.API.Widgets.Graph.prototype.render=function(){if("undefined"==typeof MBT.API.ApiId)throw"MBT.API.ApiId could not be empty";if(""==MBT.API.Lang)throw"MBT.API.Lang could not be empty";"undefined"==typeof this.params.width&&(this.params.width="400"),"undefined"==typeof this.params.height&&(this.params.height="250");var a=MBT.API.WidgetUrl;a=MBT.API.URL.mergeParams(a,{output_format:"graph"});var b=MBT.API.get(this.container);if(null==b)throw"Assign output container using setContainer(...)";MBT.API.Widgets.showLoading(b),a+="&request[0][container]="+b.id,a+="&request[0][widget]="+this.widgetId,this.partial&&(a+="&request[0][part]="+this.partial),this.params&&(a+=MBT.API.URL.serialize("request[0][param]",this.params)),b.style.border="0px",b.width=this.params.width+"px",b.height=this.params.height+"px",b.scrolling="no",b.src=a,MBT.API.logStat(1)},MBT.API.URL.openExternal=function(a){document.location.href=a},MBT.API.URL.loadContainer=function(a,b){a=MBT.API.URL.mergeParams(a,{container:b}),MBT.API.Utils.addScript(a)},MBT.API.URL.mergeParams=function(a,b){a.indexOf("?")==-1&&(a+="?"),a+="&api="+MBT.API.ApiId,a+="&lang="+MBT.API.Lang,a+="&nnav="+MBT.API.NewNav,a+="&nav_object="+MBT.API.NavObject,MBT.API.ShowSurnameFirst&&(a+="&surname_first=1"),MBT.API.FirstNamePriority&&(a+="&first_name_priority=1"),MBT.API.haveFlash()||(a+="&flash=0");for(var c in b){typeof b[c];a+="&"+c+"="+b[c]}return a},MBT.API.URL.serialize=function(a,b){var c="",d=typeof b;if("object"==d)for(var e in b)"function"!=typeof b[e]&&(c+=MBT.API.URL.serialize(a+"["+e+"]",b[e]));else if("array"==d)for(var e=0;e<b.length;e++)c+="&"+a+"["+e+"]="+b;else c="&"+a+"="+b;return c},MBT.API.URL.QueryString=function(a){if(this.params={},null==a&&(a=location.search.substring(1,location.search.length)),0!=a.length){a=a.replace(/\+/g," ");for(var b=a.split("&"),c=0;c<b.length;c++){var d=b[c].split("="),e=decodeURIComponent(d[0]),f=2==d.length?decodeURIComponent(d[1]):e;this.params[e]=f}}},MBT.API.URL.QueryString.prototype.get=function(a,b){var c=this.params[a];return null!=c?c:b},MBT.API.URL.QueryString.prototype.contains=function(a){var b=this.params[a];return null!=b},MBT.API.Function.createDelegate=function(a,b,c,d){var e=a;return function(){var a=c||arguments;if(d!==!0){if("number"==typeof d){a=Array.prototype.slice.call(arguments,0);var f=[d,0].concat(c);Array.prototype.splice.apply(a,f)}return e.apply(b||window,a)}a=Array.prototype.slice.call(arguments,0),a=a.concat(c)}},MBT.API.Event.observe=function(a,b,c){return element="object"==typeof a?a:MBT.API.get(a),element&&(element.addEventListener?element.addEventListener(b,c,!1):element.attachEvent("on"+b,c)),element},MBT.API.Event.stopObserve=function(a,b,c){element="object"==typeof a?a:MBT.API.get(a),a.removeEventListener?a.removeEventListener(b,c,!1):a.detachEvent&&a.detachEvent("on"+b,c)},MBT.API.Event.pointer=function(a){var b=document.documentElement,c=document.body||{scrollLeft:0,scrollTop:0};return{x:a.pageX||a.clientX+(b.scrollLeft||c.scrollLeft)-(b.clientLeft||0),y:a.pageY||a.clientY+(b.scrollTop||c.scrollTop)-(b.clientTop||0)}},MBT.API.Event.pointerX=function(a){return MBT.API.Event.pointer(a).x},MBT.API.Event.pointerY=function(a){return MBT.API.Event.pointer(a).y},MBT.API.Event.getEvent=function(a){return a||window.event},MBT.API.Event.getTargetObject=function(a){return a.target?a.target:a.srcElement?a.srcElement:window.event.srcElement},MBT.API.UI.TabPanel=function(a){if(this.parentInstanceId=a.parentInstanceId?a.parentInstanceId:null,this.container=a.container?a.container:null,this.activeTabClass=a.activeTabClass?a.activeTabClass:"active",this.tabClass=a.tabClass?a.tabClass:"",this.hoverTabClass=a.hoverTabClass?a.hoverTabClass:"",this.noCache=a.noCache?a.noCache:null,this.rotatorHandler=0,this.rotatorMiliseconds=a.rotatorMiliseconds?a.rotatorMiliseconds:0,this.cancelActiveTabEvent=!!a.cancelActiveTabEvent&&a.cancelActiveTabEvent,this.activeTab=-1,activeTab=void 0!=typeof a.activeTab?a.activeTab:null,this.tabs=a.tabs?a.tabs:[],this.indexInController=a.indexInController?a.indexInController:0,this.tabs)for(var b=0;b<this.tabs.length;b++){var c=MBT.API.Function.createDelegate(this.setActiveTab,this,[b],0);if(MBT.API.Event.observe(this.tabs[b].tabId,"click",c),this.hoverTabClass){var c=MBT.API.Function.createDelegate(this.mouseOverTab,this,[b],0);MBT.API.Event.observe(this.tabs[b].tabId,"mouseover",c);var c=MBT.API.Function.createDelegate(this.mouseOutTab,this,[b],0);MBT.API.Event.observe(this.tabs[b].tabId,"mouseout",c)}}this.loadedCache={},this.tabs&&null!=activeTab&&this.setActiveTab(activeTab),this.rotatorMiliseconds>0&&this.startRotator(this.rotatorMiliseconds)},MBT.API.UI.TabPanel.prototype.setActiveTab=function(a,b,c,d){if(this.stopRotator(),this.cancelActiveTabEvent&&b&&b.preventDefault(),"undefined"==typeof c&&(c=!1),"undefined"!=typeof this.tabs[a]){if(!d&&this.activeTab==a)return;var e=this.tabs[a];if(this.activeTab!=-1){var f=this.tabs[this.activeTab],g=MBT.API.get(this.container).innerHTML;this.loadedCache[this.activeTab]=g,MBT.API.get(this.container).innerHTML="",MBT.API.get(f.tabId).className=this.tabClass}MBT.API.get(e.tabId).className=this.activeTabClass,MBT.API.get(e.tabId).setAttribute("prevClassName",this.activeTabClass),this.activeTab=a,this.noCache||"undefined"==typeof this.loadedCache[a]?e.needLoad(this,a):MBT.API.update(this.container,this.loadedCache[a]),null==this.parentInstanceId||c||(MBT.API.History.setParam(this.parentInstanceId,MBT.API.History.tabIndex,this.indexInController,a),MBT.API.History.manualHashChange=!0)}},MBT.API.UI.TabPanel.prototype.clearCache=function(){for(key in this.loadedCache)delete this.loadedCache[key]},MBT.API.UI.TabPanel.prototype.mouseOverTab=function(a){if("undefined"!=typeof this.tabs[a]){var b=MBT.API.get(this.tabs[a].tabId);b.setAttribute("prevClassName",b.className),b.className=this.hoverTabClass}},MBT.API.UI.TabPanel.prototype.mouseOutTab=function(a){if("undefined"!=typeof this.tabs[a]){var b=MBT.API.get(this.tabs[a].tabId);b.getAttribute("prevClassName")&&(b.className=b.getAttribute("prevClassName"))}},MBT.API.UI.TabPanel.prototype.startRotator=function(a){this.rotatorMiliseconds=a,this.rotatorHandler=setTimeout(MBT.API.Function.createDelegate(this.rotateTab,this),a)},MBT.API.UI.TabPanel.prototype.stopRotator=function(){this.rotatorHandler>0&&clearTimeout(this.rotatorHandler)},MBT.API.UI.TabPanel.prototype.rotateTab=function(){var a=this.activeTab+1;a>=this.tabs.length&&(a=0),this.setActiveTab(a),this.rotatorHandler=setTimeout(MBT.API.Function.createDelegate(this.rotateTab,this),this.rotatorMiliseconds)},MBT.API.UI.Select={},MBT.API.UI.Select.clearOptions=function(a){MBT.API.get(a).innerHTML=""},MBT.API.UI.Select.addOptions=function(a,b){var a=MBT.API.get(a);if(a&&b)for(var c=0;c<b.length;c++){var d=document.createElement("OPTION");d.innerHTML=b[c].text,d.value=b[c].id,a.appendChild(d),b[c].selected&&(a.selectedIndex=c+1)}},"undefined"==typeof String.prototype.evalScripts&&(String.prototype.extractScripts=function(){for(var a="<script[^>]*>([\\S\\s]*?)</script>",b=new RegExp(a,"img"),c=new RegExp(a,"im"),d=this.match(b)||[],e=[],f=0;f<d.length;f++){var g=(d[f].match(c)||["",""])[1];g&&e.push(g)}return e},String.prototype.evalScripts=function(){for(var scripts=this.extractScripts(),i=0;i<scripts.length;i++)eval(scripts[i])}),MBT.API.UI.getFormElementValue=function(a){var b=typeof a;if("undefined"==b)return null;if("function"!=b||0!=a.length){if(MBT.API.isElement(a)&&a.tagName)return a.value;if("object"!=b&&"function"!=b||!a.length)return"string"==b?MBT.API.UI.getFormElementValue(MBT.API.get(a)):null;for(var c=[],d=0;d<a.length;d++){var e=MBT.API.UI.getFormInputElementValue(a[d]);null!=e&&c.push(e)}return c}},MBT.API.UI.getFormInputElementValue=function(a){switch(a.tagName){case"INPUT":return"checkbox"==a.type||"radio"==a.type?a.checked?a.value:null:a.value;case"SELECT":return a.value;case"TEXTAREAN":return a.innerHTML}},MBT.API.UI.show=function(a){MBT.API.get(a).style.display=""},MBT.API.UI.hide=function(a){MBT.API.get(a).style.display="none"},MBT.API.UI.createWidgetContainer=function(a){if("undefined"==typeof a)do a="mbt-widget-container-"+Math.round(1e4*Math.random());while(null!=MBT.API.get(a));var b=document.createElement("div");return b.id=a,b.setAttribute("mbt_widget",1),document.body.appendChild(b),b},MBT.API.SafeNames={},MBT.API.SafeNames.Values={},MBT.API.SafeNames.Container=function(a){return"undefined"==typeof MBT.API.SafeNames.Values[a]&&(MBT.API.SafeNames.Values[a]={}),MBT.API.SafeNames.Values[a]},MBT.API.History.enabled=!0,MBT.API.History.hashPathSeparator="/",MBT.API.History.hashTypeSeparator=":",MBT.API.History.hashTypePrefix="$",MBT.API.History.hashParamSeparator="&",MBT.API.History.tabIndex="t",MBT.API.History.filterIndex="f",MBT.API.History.pageIndex="p",MBT.API.History.manualHashChange=!1,MBT.API.History.lastState={};MBT.API.History.notFound={};MBT.API.History.init=function(){this.hiddenElementName="mbt-widget-history-container";var a=this.getHashParams(),b=null,c=null;for(var e in a)b=e.split(this.hashPathSeparator),b[1]==this.tabIndex?(c=MBT.API.SafeNames.Container(b[0]),c.initConfig=c.initConfig||{},c.initConfig.tabs=c.initConfig.tabs||[],c.initConfig.tabs[b[2]]={activeTab:a[e]}):b[1]==this.filterIndex?(c=MBT.API.SafeNames.Container(b[0]),c.initConfig=c.initConfig||{},c.initConfig.filters=c.initConfig.filters||[],c.initConfig.filters[b[2]]={value:a[e]}):b[1]==this.pageIndex&&(c=MBT.API.SafeNames.Container(b[0]),c.initConfig=c.initConfig||{},c.initConfig.pages=c.initConfig.pages||[],c.initConfig.pages[b[2]]={page:a[e]});this.lastState=a},MBT.API.History.onDocumentLoad=function(){MBT.API.Browser.IE?(this.iframe=document.createElement("iframe"),this.iframe.name=this.hiddenElementName,this.iframe.id=this.hiddenElementName,this.iframe.src="",this.iframe.width="0",this.iframe.height="0",this.iframe.style.visibility="hidden",document.body.appendChild(this.iframe)):(this.hiddenField=document.createElement("hidden"),this.hiddenField.id=this.hiddenElementName,document.body.appendChild(this.hiddenField)),this.tickObserver()},MBT.API.History.stateRestoreParams={},MBT.API.History.handleStateChange=function(a){this.stateRestoreParams=this.getChangesInHashParams(this.getHashParams(),this.lastState),this.restoreWidgetsState()},MBT.API.History.getChangesInHashParams=function(a,b){var d={};for(c in a)"undefined"!=typeof b[c]?a[c]==b[c]||(d[c]=a[c],delete b[c]):d[c]=a[c];for(l in b)"undefined"==typeof a[l]?d[l]="0":d[l]=b[l];return d},MBT.API.History.restoreWidgetsState=function(){var a=MBT.API.History.stateRestoreParams,b=null,c=null,d=!1;for(p in a)if(b=p.split(this.hashPathSeparator),b[1]==this.tabIndex){if("undefined"==typeof MBT.API.SafeNames.Values[b[0]]){setTimeout("MBT.API.History.restoreWidgetsState()",1e3);continue}if(c=MBT.API.SafeNames.Container(b[0]),"undefined"==typeof c.tabController){setTimeout("MBT.API.History.restoreWidgetsState()",1e3);continue}"object"==typeof c.tabController[b[2]]?(c.tabController[b[2]].setActiveTab(a[p]),delete this.lastState[p],delete MBT.API.History.stateRestoreParams[p]):setTimeout("MBT.API.History.restoreWidgetsState()",1e3)}else if(b[1]==this.filterIndex){if("undefined"==typeof MBT.API.SafeNames.Values[b[0]]){setTimeout("MBT.API.History.restoreWidgetsState()",1e3);continue}c=MBT.API.SafeNames.Container(b[0]);var e=b[0]+"-filter-"+b[2];if(document.getElementById(e))("SELECT"!=document.getElementById(e).tagName||MBT.API.Utils.valueExistsInHtmlSelect(e,a[p]))&&(document.getElementById(b[0]+"-filter-"+b[2]).value=a[p],delete this.lastState[p],delete MBT.API.History.stateRestoreParams[p],d=!0);else if(document.getElementsByName(e)&&document.getElementsByName(e).length>0){var f=document.getElementsByName(e);for(i=0;i<f.length;i++)f[i].value==a[p]?f[i].checked=!0:f[i].checked=!1}else setTimeout("MBT.API.History.restoreWidgetsState()",1e3)}else if(b[1]==this.pageIndex){if("undefined"==typeof MBT.API.SafeNames.Values[b[0]]){setTimeout("MBT.API.History.restoreWidgetsState()",1e3);continue}c=MBT.API.SafeNames.Container(b[0]),"undefined"!=typeof c.setPage&&(c.setPage(null,a[p]),delete this.lastState[p],delete MBT.API.History.stateRestoreParams[p])}d&&"undefined"!=typeof c.applyFilter&&c.applyFilter(null,!1)},MBT.API.History.getNotAppliedNavigation=function(a){var b={};return b=a==this.tabIndex?this.notFound[this.tabIndex]:a==this.filterIndex?this.notFound[this.filterIndex]:a==this.pageIndex?this.notFound[this.pageIndex]:this.notFound},MBT.API.History.removeFromNotAppliedNavigation=function(a,b){try{delete this.notFound[a][b]}catch(a){}},MBT.API.History.setParam=function(a,b,c,d){var c=a+this.hashPathSeparator+b+this.hashPathSeparator+c,e=this.getHashParams();e[c]=d,hash=MBT.API.Widgets.STATE_URL_PREFIX+this.implodeHashParams(e),hash==MBT.API.Widgets.STATE_URL_PREFIX&&(hash=""),(window.location.hash||""!==hash.replace("#",""))&&(""==hash?window.location.hash="stf":window.location.hash=hash),this.manualHashChange=!0,this.previousHash=this.currentHash,MBT.API.Browser.IE?hash!=window.location.hash.substring(1)&&this.setHashOnIframe(hash):this.setHashOnHidden(hash)},MBT.API.History.getHashParams=function(){var a=window.location.hash.substring(1),b=MBT.API.Widgets.STATE_URL_PREFIX.length,c=null;return a.substring(0,b)!=MBT.API.Widgets.STATE_URL_PREFIX||b>=a.length?c={}:(a=a.substring(b),c=this.explodeHashParams(a)),c},MBT.API.History.explodeHashParams=function(a){for(var b=a.split(this.hashTypeSeparator),c="",d="",e={},f=0,g=b.length;f<g;f++){var h=b[f].split(this.hashParamSeparator);if(h[0].substring(0,1)==this.hashTypePrefix)d=h[0].substring(1);else{var i=h[0].split(this.hashTypePrefix);c=i[0],d=i[1]}for(var j=0,k=h.length;j<k;j++){var l=h[j].split("=");"undefined"!=unescape(l[1])&&(e[c+this.hashPathSeparator+d+this.hashPathSeparator+unescape(l[0])]=unescape(l[1]))}}return e},MBT.API.History.implodeHashParams=function(a){for(var b="",c=MBT.API.Utils.getObjectKeys(a).sort(),d="",e="",f="",g=0,h=c.length;g<h;g++){var i=!1;null!=a[c[g]]&&""!=a[c[g]]&&(d=c[g].split(this.hashPathSeparator),3==d.length&&(e!=d[0]&&(b+=this.hashTypeSeparator+d[0],e=d[0],i=!0,f=""),f!=d[1]&&(i||(b+=this.hashTypeSeparator),b+=this.hashTypePrefix+d[1],f=d[1]),b+=this.hashParamSeparator+escape(d[2])+"="+escape(a[c[g]])))}return b=b.substring(1)},MBT.API.History.update=function(){this.previousHash=this.currentHash;var a=window.location.hash.substring(1);this.currentHash=a},MBT.API.History.setHashOnIframe=function(a){try{if(null==MBT.API.History.iframe||null==MBT.API.History.iframe.contentWindow||null==MBT.API.History.iframe.contentWindow.document||null==MBT.API.History.iframe.contentWindow.document.body)return void window.setTimeout("MBT.API.History.setHashOnIframe('"+a+"')",200);var b=MBT.API.History.getHashOnIframe(),c=MBT.API.History.iframe.contentWindow.document;b!=a&&(c.open(),c.write('<html><body id="history">'+a+"</body></html>"),c.close())}catch(a){throw a}},MBT.API.History.getHashOnIframe=function(){var a=MBT.API.History.iframe.contentWindow.document;return a&&"history"==a.body.id?a.body.innerText:""},MBT.API.History.setHashOnHidden=function(a){try{MBT.API.History.hiddenField.value=a}catch(a){}},MBT.API.History.getHashOnHidden=function(){try{return MBT.API.History.hiddenField.value}catch(a){}},MBT.API.History.isAltered=function(){var a=MBT.API.History.currentHash,b=MBT.API.History.previousHash;if(1==this.manualHashChange)return this.manualHashChange=!1,!1;if("undefined"==typeof this.previousHash)return!1;var c=a!=b;return c&&(this.lastState=this.explodeHashParams(b)),c},MBT.API.History.tickObserver=function(){setTimeout("MBT.API.History.observeChanges()",50)},MBT.API.History.observeChanges=function(){MBT.API.History.update(),MBT.API.History.isAltered()&&MBT.API.History.handleStateChange(MBT.API.History.currentHash),MBT.API.History.tickObserver()},MBT.API.History.handleStartup=function(){if(location.hash.length>1){var a=location.hash.substring(1);MBT.API.History.findWidgetState(a)!==!1&&MBT.API.Event.observe(window,"load",MBT.API.Function.createDelegate(function(a){MBT.API.History.handleStateChange(a),MBT.API.Widgets.RenderRequest.initialRequestState=a,MBT.API.History.firstLoad=!1,MBT.API.Widgets.RenderRequest.disableRender=!1},null,[a]))}},MBT.API.History.findWidgetState=function(a){var b=MBT.API.Widgets.STATE_URL_PREFIX;return 0==a.indexOf(b)&&a.substring(b.length)},MBT.API.Storage.AppState=function(){},MBT.API.Storage.AppState.prototype.get=function(a){var b=MBT.API.URL.CurrentQueryString.get(a);return"string"==typeof b&&"null"==b&&(b=null),b},MBT.API.Storage.AppState.prototype.set=function(a,b){MBT.API.Cookies.set(MBT.API.Cookies.NAMESPACE+a,b)},MBT.API.Storage.AppState.prototype.attachAppStateToExternalLinks=function(a,b,c){var d=MBT.API.get(b);if(null!=d){for(var e=d.getElementsByTagName("a"),h=(MBT.API.Application.get("league_id"),MBT.API.Application.get("season_id"),[]),i=0;i<a.length;i++){var j=MBT.API.Application.get(a[i]);null==j&&null!=c&&c.length-1>=i&&(j=c[i]),null!=j&&("string"!=typeof type||"undefined"!=type&&"null"!=type)&&h.push(a[i]+"="+j);
}if(h=h.join("&"),0!=h.length)for(var i=0;i<e.length;i++){var k=e[i].href;k+=k.indexOf("?")==-1?"?":"&",k+=h,e[i].href=k}}},MBT.API.Cookies.set=function(a,b,c){if(c){var d=new Date;d.setTime(d.getTime()+1e3*c);var e="; expires="+d.toGMTString()}else var e="";document.cookie=a+"="+b+e+"; path=/"},MBT.API.Cookies.get=function(a){for(var b=a+"=",c=document.cookie.split(";"),d=0;d<c.length;d++){for(var e=c[d];" "==e.charAt(0);)e=e.substring(1,e.length);if(0==e.indexOf(b))return e.substring(b.length,e.length)}return null},MBT.API.Cookies.unset=function(a){MBT.API.Cookies.set(a,"",-1)},MBT.API.Base64.keyStr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",MBT.API.Base64.encode=function(a){a=escape(a);var c,d,f,g,h,b="",e="",i="",j=0;do c=a.charCodeAt(j++),d=a.charCodeAt(j++),e=a.charCodeAt(j++),f=c>>2,g=(3&c)<<4|d>>4,h=(15&d)<<2|e>>6,i=63&e,isNaN(d)?h=i=64:isNaN(e)&&(i=64),b=b+MBT.API.Base64.keyStr.charAt(f)+MBT.API.Base64.keyStr.charAt(g)+MBT.API.Base64.keyStr.charAt(h)+MBT.API.Base64.keyStr.charAt(i),c=d=e="",f=g=h=i="";while(j<a.length);return b},MBT.API.Base64.decode=function(a){var c,d,f,g,h,b="",e="",i="",j=0,k=/[^A-Za-z0-9\+\/\=]/g;if(k.exec(a))throw"There were invalid base64 characters in the input text.\n";a=a.replace(/[^A-Za-z0-9\+\/\=]/g,"");do f=MBT.API.Base64.keyStr.indexOf(a.charAt(j++)),g=MBT.API.Base64.keyStr.indexOf(a.charAt(j++)),h=MBT.API.Base64.keyStr.indexOf(a.charAt(j++)),i=MBT.API.Base64.keyStr.indexOf(a.charAt(j++)),c=f<<2|g>>4,d=(15&g)<<4|h>>2,e=(3&h)<<6|i,b+=String.fromCharCode(c),64!=h&&(b+=String.fromCharCode(d)),64!=i&&(b+=String.fromCharCode(e)),c=d=e="",f=g=h=i="";while(j<a.length);return unescape(b)},MBT.API.History.firstLoad=!0,MBT.API.History.handleStartup(),MBT.API.URL.CurrentQueryString=new MBT.API.URL.QueryString,MBT.API.Application=new MBT.API.Storage.AppState,MBT.API.History.init(),MBT.API.Event.observe(window,"load",function(){MBT.API.History.enabled&&MBT.API.History.onDocumentLoad()}),MBT.API.UI.Calendar=function(a,b){this.value="",this.format="%Y-%m-%d",this.start_week_day=1,this.iframe_obj=null,this.lib_path="rich_calendar/",this.targetObj=a,this.showTime=b,this.userOnChangeHandler=null,this.userOncloseHandler=null,this.userOnAutocloseHandler=null,this.default_language="en",this.language="en",this.date=new Date,this.skin="",this.auto_close=!0,this.value_el=null,this.position=null},MBT.API.UI.Calendar.attachEvents=function(a){MBT.API.Event.observe(a,"click",MBT.API.UI.Calendar.onclick),MBT.API.Event.observe(a,"mouseover",MBT.API.UI.Calendar.onmouseover),MBT.API.Event.observe(a,"mouseout",MBT.API.UI.Calendar.onmouseout)},MBT.API.UI.Calendar.detach_events=function(a){MBT.API.Event.stopObserve(a,"click",MBT.API.UI.Calendar.onclick),MBT.API.Event.stopObserve(a,"mouseover",MBT.API.UI.Calendar.onmouseover),MBT.API.Event.stopObserve(a,"mouseout",MBT.API.UI.Calendar.onmouseout)},MBT.API.UI.Calendar.onclick=function(a){var c=(MBT.API.Event.getEvent(a),MBT.API.Event.getTargetObject(a));if(c){var d=c.calendar,e=d.date.getFullYear(),f=d.date.getMonth(),g=d.date.getDate();switch(c.objectCode){case"day":d.date.setDate(c.day_num);break;case"prev_year":d.date.setDate(1),d.date.setFullYear(e-1);var h=MBT.API.UI.Calendar.getMonthDays(d.date);g>h?d.date.setDate(h):d.date.setDate(g),d.showDate();break;case"prev_month":d.date.setDate(1),d.date.setMonth(f-1);var h=MBT.API.UI.Calendar.getMonthDays(d.date);g>h?d.date.setDate(h):d.date.setDate(g),d.showDate();break;case"next_month":d.date.setDate(1),d.date.setMonth(f+1);var h=MBT.API.UI.Calendar.getMonthDays(d.date);g>h?d.date.setDate(h):d.date.setDate(g),d.showDate();break;case"next_year":d.date.setDate(1),d.date.setFullYear(e+1);var h=MBT.API.UI.Calendar.getMonthDays(d.date);g>h?d.date.setDate(h):d.date.setDate(g),d.showDate();break;case"today":var i=new Date;i.setHours(d.date.getHours()),i.setMinutes(d.date.getMinutes()),i.setSeconds(d.date.getSeconds()),d.date=i,d.showDate();break;case"clear":d.value_el&&(d.value_el.value="");break;case"close":d.onCloseHandler();break;case"week_day":d.start_week_day=c.week_day_num,d.showDate()}"week_day"!=c.objectCode&&d.onChangeHandler(c.objectCode),MBT.API.UI.Calendar.hideAutoClose(d)}},MBT.API.UI.Calendar.onmouseover=function(a){var c=(MBT.API.Event.getEvent(a),MBT.API.Event.getTargetObject(a));if(c){var d=c.calendar;d.date.getFullYear(),d.date.getMonth(),d.date.getDate();switch(c.objectCode){case"day":var h=new Date(d.date);h.setDate(c.day_num),d.setFooterText(d.getFormattedDate(d.text("footerDateFormat"),h)),MBT.API.UI.Calendar.addClass(c,"mbt-calendar-highlight"),MBT.API.UI.Calendar.addClass(c.parentNode,"mbt-calendar-highlight");break;case"clear":case"today":case"close":case"prev_year":case"prev_month":case"next_month":case"next_year":d.setFooterText(d.text(c.objectCode));break;case"week_day":if(c.week_day_num!=d.start_week_day){var i=d.text("dayNames"),j=i[c.week_day_num],k=d.text("make_first");k=k.replace("%s",j)}else var k=d.text("footerDefaultText");d.setFooterText(k);break;default:d.setFooterText(d.text("footerDefaultText"))}}},MBT.API.UI.Calendar.onmouseout=function(a){var c=(MBT.API.Event.getEvent(a),MBT.API.Event.getTargetObject(a));if(c){var d=c.calendar;d.setFooterText(d.text("footerDefaultText")),MBT.API.UI.Calendar.removeClass(c,"mbt-calendar-highlight"),MBT.API.UI.Calendar.removeClass(c.parentNode,"mbt-calendar-highlight")}},MBT.API.UI.Calendar.documentOnMouseDown=function(a){var c=(MBT.API.Event.getEvent(a),MBT.API.Event.getTargetObject(a));if(c){for(var d=c,e=null;d;){if(d.className&&d.className.match(/^mbt\-calendar\-iframe\-body/)&&"BODY"==d.tagName.toUpperCase()){e=d.calendar;break}d=d.parentNode}MBT.API.UI.Calendar.hideAutoClose(e)}},MBT.API.UI.Calendar.hideAutoClose=function(a){var c,b=[];for(c=0;c<MBT.API.UI.Calendar.activeCalendars.length;c++){var d=MBT.API.UI.Calendar.activeCalendars[c];d.auto_close&&d!=a?(d.hide(),d.userOnAutocloseHandler&&d.userOnAutocloseHandler(this)):b[b.length]=d}MBT.API.UI.Calendar.activeCalendars=b},MBT.API.UI.Calendar.makeInactive=function(a){var c,b=[];for(c=0;c<MBT.API.UI.Calendar.activeCalendars.length;c++){var d=MBT.API.UI.Calendar.activeCalendars[c];d!=a&&(b[b.length]=d)}MBT.API.UI.Calendar.activeCalendars=b},MBT.API.UI.Calendar.getMonthDays=function(a,b){var c=a.getFullYear();return b&&(b=parseInt(b),(b<=0||b>11)&&(b=null)),b||(b=a.getMonth()),1==b&&MBT.API.UI.Calendar.isLeapYear(c)?29:MBT.API.UI.Calendar.monthDays[b]},MBT.API.UI.Calendar.isLeapYear=function(a){return a%4==0&&a%100!=0||a%400==0},MBT.API.UI.Calendar.getDayOfYear=function(a){var b=new Date(a.getFullYear(),a.getMonth(),a.getDate(),0,0,0),c=new Date(a.getFullYear(),0,0,0,0,0),d=864e5;return Math.floor((b-c)/d)},MBT.API.UI.Calendar.addClass=function(a,b){MBT.API.UI.Calendar.removeClass(a,b),a.className+=" "+b},MBT.API.UI.Calendar.removeClass=function(a,b){if(a&&a.className){var e,c=[],d=String(a.className).split(" ");for(e=0;e<d.length;e++)""!=d[e]&&d[e]!=b&&(c[c.length]=d[e]);a.className=c.join(" ")}},MBT.API.UI.Calendar.getObjPos=function(a,b){var c=Array(0,0);if(!a)return c;for(;a&&b!=a;){if(a.currentStyle){if("absolute"==a.currentStyle.position)break}else if("absolute"==document.defaultView.getComputedStyle(a,"").getPropertyValue("position"))break;var d="DIV"==a.tagName.toUpperCase();c[0]+=a.offsetLeft-(d?a.scrollLeft:0),c[1]+=a.offsetTop-(d?a.scrollTop:0),a=a.offsetParent}return c},MBT.API.UI.Calendar.langData=[],MBT.API.UI.Calendar.monthDays=[31,28,31,30,31,30,31,31,30,31,30,31],MBT.API.UI.Calendar.activeCalendars=[],MBT.API.UI.Calendar.handlert_set=!1,MBT.API.UI.Calendar.prototype.show=function(a,b,c,d){if(this.value_el||(this.value_el=c),this.position=d,this.iframe_obj=document.createElement("IFRAME"),this.iframe_obj.className="mbt-calendar",this.iframe_obj.setAttribute("scrolling","no"),this.iframe_obj.calendar=this,this.isRelativePosition(d))switch(d){case"before":c.parentNode&&c.parentNode.insertBefore(this.iframe_obj,c);break;case"after":c.parentNode&&c.parentNode.insertBefore(this.iframe_obj,c.nextSibling);break;case"child":default:c.appendChild(this.iframe_obj),this.position="child"}else{this.iframe_obj.style.position="absolute";parseInt(a),parseInt(b);"number"==typeof a&&"number"==typeof b&&(this.iframe_obj.style.left=a+"px",this.iframe_obj.style.top=b+"px"),this.iframe_obj.style.border="1px solid #000000",this.iframe_obj.value=this.value,document.body.appendChild(this.iframe_obj)}var g='<html><head><link rel="stylesheet" type="text/css" href="'+MBT.API.getApiCSSUrl()+'?v=1237"></head><body class="mbt-calendar-iframe-body mbt-calendar" id="mbt_body"></body></html>';this.iframe_doc=this.iframe_obj.contentWindow.document,this.iframe_doc.open(),this.iframe_doc.write(g),this.iframe_doc.close(),MBT.API.Event.observe(this.iframe_doc,"mousedown",MBT.API.UI.Calendar.documentOnMouseDown),this.body_obj=this.iframe_doc.getElementById("mbt_body"),this.body_obj.calendar=this,this.table_obj=this.iframe_doc.createElement("TABLE"),this.table_obj.className="mbt-calendar-table",this.table_obj.setAttribute("id","mbt-calendar-iframe-table"),this.table_obj.cellSpacing=1,this.table_obj.cellPadding=0,this.table_obj.calendar=this,this.head_tr=this.table_obj.insertRow(0),this.head_tr.className="mbt-calendar-head-tr",this.clear_td=this.head_tr.insertCell(0),this.clear_td.innerHTML="c",this.clear_td.objectCode="clear",this.clear_td.calendar=this,MBT.API.UI.Calendar.attachEvents(this.clear_td),this.head_td=this.head_tr.insertCell(1),this.head_td.colSpan=5,this.close_td=this.head_tr.insertCell(2),this.close_td.innerHTML="x",this.close_td.objectCode="close",this.close_td.calendar=this,MBT.API.UI.Calendar.attachEvents(this.close_td),this.nav_tr=this.table_obj.insertRow(1),this.nav_tr.className="mbt-calendar-nav-tr",this.prev_year_td=this.nav_tr.insertCell(0),this.prev_year_td.innerHTML="&#x00ab;",this.prev_year_td.objectCode="prev_year",this.prev_year_td.calendar=this,MBT.API.UI.Calendar.attachEvents(this.prev_year_td),this.prev_month_td=this.nav_tr.insertCell(1),this.prev_month_td.innerHTML="&#x2039;",this.prev_month_td.objectCode="prev_month",this.prev_month_td.calendar=this,MBT.API.UI.Calendar.attachEvents(this.prev_month_td),this.today_td=this.nav_tr.insertCell(2),this.today_td.colSpan=3,this.today_td.innerHTML=this.text("today"),this.today_td.objectCode="today",this.today_td.calendar=this,MBT.API.UI.Calendar.attachEvents(this.today_td),this.next_month_td=this.nav_tr.insertCell(3),this.next_month_td.innerHTML="&#x203a;",this.next_month_td.objectCode="next_month",this.next_month_td.calendar=this,MBT.API.UI.Calendar.attachEvents(this.next_month_td),this.next_year_td=this.nav_tr.insertCell(4),this.next_year_td.innerHTML="&#x00bb;",this.next_year_td.objectCode="next_year",this.next_year_td.calendar=this,MBT.API.UI.Calendar.attachEvents(this.next_year_td),this.wd_tr=this.table_obj.insertRow(2),this.wd_tr.className="mbt-calendar-wd-tr";for(var h=0;h<7;h++){var i=this.wd_tr.insertCell(h);i.objectCode="week_day",i.calendar=this,MBT.API.UI.Calendar.attachEvents(i)}var k,j=4;for(this.cal_tr=[],k=0;k<j;k++)this.createCalRow(k);if(this.showTime){this.time_tr=this.table_obj.insertRow(j+3),this.time_tr.className="mbt-calendar-time-tr";var i=this.time_tr.insertCell(0);i.colSpan=2,i.innerHTML=this.text("time")+":";var i=this.time_tr.insertCell(1);i.colSpan=3,this.hours_obj=this.createElement("INPUT",i),this.hours_obj.className="mbt-calendar-hours",this.hours_obj.setAttribute("size",1),this.hours_obj.setAttribute("maxlength",2),this.colon_span=this.createElement("SPAN",i),this.colon_span.className="mbt-calendar-colon-span",this.colon_span.innerHTML="&nbsp;:&nbsp;",this.mins_obj=this.createElement("INPUT",i),this.mins_obj.className="mbt-calendar-mins",this.mins_obj.setAttribute("size",1),this.mins_obj.setAttribute("maxlength",2);var i=this.time_tr.insertCell(2);i.colSpan=2,i.innerHTML="&nbsp;"}this.footer_tr=this.table_obj.insertRow(j+3+(this.showTime?1:0)),this.footer_tr.className="mbt-calendar-footer-tr",this.footer_td=this.footer_tr.insertCell(0),this.footer_td.colSpan=7,this.footer_td.innerHTML=this.text("footerDefaultText"),this.body_obj.appendChild(this.table_obj),this.size_div=document.createElement("DIV"),this.size_div.className=this.body_obj.className,this.size_div.style.position="absolute",this.size_div.style.left="-1000px",this.size_div.style.top="-1000px",document.body.appendChild(this.size_div),this.showDate(),MBT.API.UI.Calendar.handlersSet||(MBT.API.Event.observe(document,"mousedown",MBT.API.UI.Calendar.documentOnMouseDown),MBT.API.UI.Calendar.handlersSet=!0),MBT.API.UI.Calendar.activeCalendars[MBT.API.UI.Calendar.activeCalendars.length]=this},MBT.API.UI.Calendar.prototype.hide=function(){this.iframe_obj&&(this.iframe_obj.parentNode.removeChild(this.iframe_obj),this.iframe_obj=null),MBT.API.UI.Calendar.makeInactive(this)},MBT.API.UI.Calendar.prototype.showAtElement=function(a,b){if("object"==typeof a&&a){if(this.isRelativePosition(b))return void this.show(null,null,a,b);var d=(MBT.API.UI.Calendar.getObjPos(a),-1e3),e=-1e3;this.show(d,e,a,b)}},MBT.API.UI.Calendar.prototype.fixPosition=function(a){var b=this.position;if(!this.isRelativePosition(b)){a||(a=this.value_el);var c=String(b).split("-");if(2==c.length){var d=MBT.API.UI.Calendar.getObjPos(a),e=d[0],f=d[1]+a.offsetHeight,g=parseInt(this.iframe_obj.style.borderWidth),h=parseInt(this.iframe_obj.width)+2*g,i=parseInt(this.iframe_obj.height)+2*g;switch(c[0]){case"left":e-=h;break;case"center":e+=(a.offsetWidth-h)/2;break;case"right":e+=a.offsetWidth;break;case"adj_right":e+=a.offsetWidth-h}switch(c[1]){case"top":f-=a.offsetHeight+i;break;case"center":f+=(a.offsetHeight-i)/2-a.offsetHeight;break;case"bottom":break;case"adj_bottom":f-=i}this.iframe_obj.style.left=e+"px",this.iframe_obj.style.top=f+"px",this.iframe_obj.style.visibility="visible"}}},MBT.API.UI.Calendar.prototype.isRelativePosition=function(a){switch(a){case"before":case"after":case"child":return!0;default:return!1}},MBT.API.UI.Calendar.prototype.createElement=function(a,b){var c=this.iframe_doc.createElement(a);return b&&b.appendChild(c),c},MBT.API.UI.Calendar.prototype.text=function(a,b){return"undefined"==typeof b&&(b=MBT.API.Lang),"undefined"!=typeof MBT.API.UI.Calendar.langData[b]?"undefined"!=typeof MBT.API.UI.Calendar.langData[b][a]?MBT.API.UI.Calendar.langData[b][a]:"":"undefined"!=typeof MBT.API.UI.Calendar.langData[this.default_language][a]?MBT.API.UI.Calendar.langData[this.default_language][a]:""},MBT.API.UI.Calendar.prototype.showDate=function(){var b,a=this.getWeekendDays(),c=this.text("dayNamesShort");for(b=0;b<7;b++){var d=(b+this.start_week_day)%7,e=this.wd_tr.cells[b];e.innerHTML=c[d],"undefined"!=typeof a[d]?e.className="mbt-calendar-weekend-head":e.className="",e.week_day_num=d}var f=MBT.API.UI.Calendar.getMonthDays(this.date),g=new Date(this.date);g.setDate(1);var h=(g.getDay()+7-this.start_week_day)%7+1,i=this.date.getFullYear(),j=this.date.getMonth(),k=this.date.getDate(),l=new Date,m=l.getFullYear(),n=l.getMonth(),o=l.getDate(),p=this.text("monthNames");this.head_td.innerHTML=p[j]+", "+i;var q,r,t,s=0;for(q=0;q<6;q++)if(s!=f)for(r=0;r<7;r++){this.cal_tr[q]||this.createCalRow(q);var u=this.cal_tr[q],v=u.cells[r];if(v.className="",0==q&&r+1<h||s==f)var w="&nbsp;";else{var x=s+1,w=x;s++,v.objectCode="day",v.day_num=x,v.calendar=this,MBT.API.UI.Calendar.attachEvents(v),k==x&&MBT.API.UI.Calendar.addClass(v,"mbt-calendar-current"),x==o&&j==n&&i==m&&MBT.API.UI.Calendar.addClass(v,"mbt-calendar-today");var d=(r+this.start_week_day)%7;"undefined"!=typeof a[d]?MBT.API.UI.Calendar.addClass(v,"mbt-calendar-weekend-day"):MBT.API.UI.Calendar.removeClass(v,"mbt-calendar-weekend-day")}v.innerHTML=w,s==f&&(t=q)}else this.cal_tr[t+1]&&(this.cal_tr[t+1].parentNode.removeChild(this.cal_tr[t+1]),this.cal_tr[q]=null);if(this.showTime&&this.hours_obj&&this.mins_obj){var y=this.date.getHours();y<10&&(y="0"+y);var z=this.date.getMinutes();z<10&&(z="0"+z),this.hours_obj.value=y,this.mins_obj.value=z}var A=this;window.setTimeout(function(){A.fitToContent()},1),window.setTimeout(function(){A.fixPosition()},5)},MBT.API.UI.Calendar.prototype.fitToContent=function(){try{var a=this.iframe_doc.getElementById("mbt-calendar-iframe-table");this.iframe_obj.width=a.offsetWidth,this.iframe_obj.height=a.offsetHeight,parseInt(this.iframe_obj.width)&&parseInt(this.iframe_obj.height)||(this.size_div.innerHTML=this.body_obj.innerHTML,this.iframe_obj.width=this.size_div.offsetWidth,this.iframe_obj.height=this.size_div.offsetHeight)}catch(a){}},MBT.API.UI.Calendar.prototype.createCalRow=function(a){var b=this.table_obj.insertRow(3+a);b.className="mbt-calendar-cal-tr";var c;for(c=0;c<7;c++){b.insertCell(c)}return this.cal_tr[a]=b,b},MBT.API.UI.Calendar.prototype.getFormattedDate=function(a,b){if(b||(b=this.date),a||(a=this.getDateFormat()),this.showTime&&this.hours_obj&&this.mins_obj){this.date.setHours(this.hours_obj.value);var c=this.date.setMinutes(this.mins_obj.value)}var d=b.getFullYear(),e=b.getMonth(),f=b.getDate(),g=b.getDay(),h=b.getHours(),c=b.getMinutes(),i=b.getSeconds(),j=this.text("monthNamesShort"),k=this.text("monthNames"),l=this.text("dayNamesShort"),m=this.text("dayNames"),n=h<12,o=h>12?h-12:0==h?12:h,p=[];p["%a"]=n?"am":"pm",p["%A"]=n?"AM":"PM",p["%d"]=f<10?"0"+f:f,p["%D"]=l[g],p["%F"]=k[e],p["%h"]=o<10?"0"+o:o,p["%H"]=h<10?"0"+h:h,p["%g"]=o,p["%G"]=h,p["%i"]=c<10?"0"+c:c,p["%j"]=f,p["%l"]=m[g],p["%L"]=MBT.API.UI.Calendar.isLeapYear(d)?1:0,p["%m"]=e<9?"0"+(e+1):e+1,p["%n"]=e+1,p["%M"]=j[e],p["%s"]=i<10?"0"+i:i,p["%t"]=MBT.API.UI.Calendar.getMonthDays(b),p["%w"]=g,p["%Y"]=d,p["%y"]=String(d).substr(2,2),p["%z"]=MBT.API.UI.Calendar.getDayOfYear(b);var r,q=String(a).match(/%./g),s=a;for(r=0;r<q.length;r++){var t=p[q[r]];if("undefined"!=typeof t){var u=new RegExp(q[r],"g");s=s.replace(u,t)}}return s},MBT.API.UI.Calendar.prototype.setFooterText=function(a){this.footer_td&&(this.footer_td.innerHTML=a)},MBT.API.UI.Calendar.prototype.getWeekendDays=function(){var c,a=this.text("weekend"),b=a.split(","),d=[];for(c=0;c<b.length;c++)d[b[c]]=!0;return d},MBT.API.UI.Calendar.prototype.onCloseHandler=function(){this.userOnCloseHandler?this.userOnCloseHandler(this):this.hide()},MBT.API.UI.Calendar.prototype.onChangeHandler=function(a){this.userOnChangeHandler?this.userOnChangeHandler(this,a):"day"==a&&(this.value_el&&(this.value_el.value=this.getFormattedDate()),this.auto_close&&this.hide())},MBT.API.UI.Calendar.prototype.getDateFormat=function(){var a=this.text("dateFormat"),b=a?a:this.format;return this.showTime&&(b+=" %H:%i"),b},MBT.API.UI.Calendar.prototype.parseDate=function(a,b){if("undefined"!=typeof a){b||(b=this.getDateFormat());var c=new Date,d=0,e=-1,f=0,g=0,h=0,i=0,j=this.text("monthNames"),k=this.text("monthNamesShort"),l=this.text("monthNames","en"),m=this.text("monthNamesShort","en");for(r=0;r<j.length;r++){var n=new RegExp(j[r],"gi");a=a.replace(n,l[r])}for(r=0;r<k.length;r++){var n=new RegExp(k[r],"gi");a=a.replace(n,m[r])}var q,r,o=String(a).split(/\W+/g),p=String(b).match(/%./g);for(q=0;q<p.length;q++)if(o[q])switch(p[q]){case"%a":case"%A":/am/i.test(o[q])&&g>=12?g-=12:/pm/i.test(o[q])&&g<12&&(g+=12);break;case"%d":case"%j":f=parseInt(Number(o[q]));break;case"%F":for(r=0;r<l.length;r++)if(l[r].toLowerCase()==o[q].toLowerCase()){e=r;break}break;case"%h":case"%H":case"%g":case"%G":g=parseInt(Number(o[q])),/am/i.test(o[q])&&g>=12?g-=12:/pm/i.test(o[q])&&g<12&&(g+=12);break;case"%i":h=parseInt(Number(o[q]));break;case"%m":case"%n":e=parseInt(Number(o[q]))-1;break;case"%M":for(r=0;r<m.length;r++)if(m[r].toLowerCase()==o[q].toLowerCase()){e=r;break}break;case"%s":i=parseInt(Number(o[q]));break;case"%Y":d=parseInt(Number(o[q]));break;case"%y":d=parseInt(o[q]),d<100&&(d+=d+(d>29?1900:2e3))}(isNaN(d)||d<=0)&&(d=c.getFullYear()),(isNaN(e)||e<0||e>11)&&(e=c.getMonth()),(isNaN(f)||f<=0||f>31)&&(f=c.getDate()),(isNaN(g)||g<0||g>23)&&(g=c.getHours()),(isNaN(h)||h<0||h>59)&&(h=c.getMinutes()),(isNaN(i)||i<0||i>59)&&(i=c.getSeconds()),this.date=new Date(d,e,f,g,h,i)}},MBT.API.UI.Calendar.langData.en={today:"Today",time:"Time",dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],footerDateFormat:"%D, %F %j %Y",dateFormat:"%Y-%m-%d",footerDefaultText:"Select date",clear:"Clear Date",prev_year:"Previous year",prev_month:"Previous month",next_month:"Next month",next_year:"Next year",close:"Close",weekend:"0,6",make_first:"Start with %s"},MBT.API.UI.Calendar.langData.fi={today:"TÃƒÂ¤nÃƒÂ¤ÃƒÂ¤n",time:"Aika",dayNamesShort:["Su","Ma","Ti","Ke","To","Pe","La"],dayNames:["Sunnuntai","Maanantai","Tiistai","Keskiviikko","Torstai","Perjantai","Lauantai"],monthNamesShort:["Tammi","Helmi","Maalis","Huhti","Touko","KesÃƒÂ¤","HeinÃƒÂ¤","Elo","Syys","Loka","Marras","Joulu"],monthNames:["Tammikuu","Helmikuu","Maaliskuu","Huhtikuu","Toukokuu","KesÃƒÂ¤kuu","HeinÃƒÂ¤kuu","Elokuu","Syyskuu","Lokakuu","Marraskuu","Joulukuu"],footerDateFormat:"%D, %F %j %Y",dateFormat:"%Y-%m-%d",footerDefaultText:"Valitse pÃƒÂ¤ivÃƒÂ¤",clear:"TyhjennÃƒÂ¤ valinta",prev_year:"Edellinen vuosi",prev_month:" Kitas",next_month:" Seuraava kuukausi",next_year:"Seuraava vuosi",close:"Sulje",weekend:"1,7",make_first:"Viikon 1. pÃƒÂ¤ivÃƒÂ¤ %s"},MBT.API.UI.Calendar.langData.lt={today:"Å iandien",time:"Laikas",dayNamesShort:["S","P","A","T","K","P","Å "],dayNames:["Sekmadienis","Pirmadienis","Antradienis","TreÄiadienis","Ketvirtadienis","Penktadienis","Å eÅ¡tadienis"],monthNamesShort:["Sausis","Vasaris","Kovas","Balandis","GeguÅ¾Ä—","BirÅ¾elis","Liepa","RugpjÅ«tis","RugsÄ—jis","Spalis","Lapkritis","Grudis"],monthNames:["Sausis","Vasaris","Kovas","Balandis","GeguÅ¾Ä—","BirÅ¾elis","Liepa","RugpjÅ«tis","RugsÄ—jis","Spalis","Lapkritis","Grudis"],footerDateFormat:"%D, %F %j %Y",dateFormat:"%Y-%m-%d",footerDefaultText:"Pasirinkite datÄ…",clear:"IÅ¡valyti",prev_year:"PraÄ—jÄ™ metai",prev_month:" PraÄ—jÄ™s mÄ—nuo mÄ—nuo",next_month:" Kitas mÄ—nuo",next_year:"Kiti metai",close:"UÅ¾daryti",weekend:"0,6",make_first:"SavaitÄ—s pradÅ¾ia"},MBT.API.formatDate=function(a,b){for(var c="",d=MBT.API.replaceChars,e=0;e<b.length;e++){var f=b.charAt(e);c+=d[f]?d[f].call(a):f}return c},MBT.API.replaceChars={shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],longMonths:["January","February","March","April","May","June","July","August","September","October","November","December"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],longDays:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],d:function(){return(this.getDate()<10?"0":"")+this.getDate()},D:function(){return Date.replaceChars.shortDays[this.getDay()]},j:function(){return this.getDate()},l:function(){return Date.replaceChars.longDays[this.getDay()]},N:function(){return this.getDay()+1},S:function(){return this.getDate()%10==1&&11!=this.getDate()?"st":this.getDate()%10==2&&12!=this.getDate()?"nd":this.getDate()%10==3&&13!=this.getDate()?"rd":"th"},w:function(){return this.getDay()},z:function(){return"Not Yet Supported"},W:function(){return"Not Yet Supported"},F:function(){return Date.replaceChars.longMonths[this.getMonth()]},m:function(){return(this.getMonth()<9?"0":"")+(this.getMonth()+1)},M:function(){return Date.replaceChars.shortMonths[this.getMonth()]},n:function(){return this.getMonth()+1},t:function(){return"Not Yet Supported"},L:function(){return"Not Yet Supported"},o:function(){return"Not Supported"},Y:function(){return this.getFullYear()},y:function(){return(""+this.getFullYear()).substr(2)},a:function(){return this.getHours()<12?"am":"pm"},A:function(){return this.getHours()<12?"AM":"PM"},B:function(){return"Not Yet Supported"},g:function(){return this.getHours()%12||12},G:function(){return this.getHours()},h:function(){return((this.getHours()%12||12)<10?"0":"")+(this.getHours()%12||12)},H:function(){return(this.getHours()<10?"0":"")+this.getHours()},i:function(){return(this.getMinutes()<10?"0":"")+this.getMinutes()},s:function(){return(this.getSeconds()<10?"0":"")+this.getSeconds()},e:function(){return"Not Yet Supported"},I:function(){return"Not Supported"},O:function(){return(-this.getTimezoneOffset()<0?"-":"+")+(Math.abs(this.getTimezoneOffset()/60)<10?"0":"")+Math.abs(this.getTimezoneOffset()/60)+"00"},T:function(){var a=this.getMonth();this.setMonth(0);var b=this.toTimeString().replace(/^.+ \(?([^\)]+)\)?$/,"$1");return this.setMonth(a),b},Z:function(){return 60*-this.getTimezoneOffset()},c:function(){return"Not Yet Supported"},r:function(){return this.toString()},U:function(){return this.getTime()/1e3}},MBT.API.parseDate=function(a){var b=a.split("-");if(3!=b.length)return null;var c=new Date(parseInt(b[0],10),parseInt(b[1],10)-1,parseInt(b[2],10));return c},MBT.API.haveFlash=function(){var a=!1;try{var b=new ActiveXObject("ShockwaveFlash.ShockwaveFlash");b&&(a=!0)}catch(b){void 0!=navigator.mimeTypes["application/x-shockwave-flash"]&&(a=!0)}return a},MBT.API.formatLivePagesLink=function(a){var b=a,c=MBT.API.getLivePagesTypeIndex(),d=MBT.API.getLivePagesLangId();return c>0&&(b+="?type="+c),d>0&&(b+="&lang="+d),b},MBT.API.convertDecToHex=function(a){return a<0&&(a=4294967295+a+1),parseInt(a,10).toString(16)},MBT.API.convertHexToDex=function(a){var b=(a+"").replace(/[^a-f0-9]/gi,"");b=parseInt(a,16);var c=Math.pow(2,4*a.length+a.length%2),d=c-b;return b>d?-d:b},MBT.API.UI.animate=function(a,b,c,d,e){var f=d/1e3*60,g=f,h=1e3/60,i=Math.floor(parseInt(c)/f),j=function(){var d=parseInt(a.style[b]);1==g?a.style[b]=d+i+(c-i*f)+"px":a.style[b]=d+i+"px",g--,g>0?setTimeout(j,h):e&&e()};setTimeout(j,h)},MBT.API.UI.Scroller=function(a){for(this.type=a.type||"vertical",this.previousButton=MBT.API.get(a.previousButton),MBT.API.Event.observe(this.previousButton,"click",this.scrollUp.bind(this)),this.nextButton=MBT.API.get(a.nextButton),MBT.API.Event.observe(this.nextButton,"click",this.scrollDown.bind(this)),this.itemTagName=a.itemTagName||"a",this.animationLength=a.animationLength||500,this.container=MBT.API.get(a.container),"vertical"==this.type?(this.styleKey="top",this.offsetKey="offsetHeight"):"horizontal"==this.type&&(this.styleKey="left",this.offsetKey="offsetWidth"),this.container.style=this.container.style||{},this.container.style.position="relative",this.container.style[this.styleKey]="0px",this.locked=!1,this.items=this.container.getElementsByTagName(this.itemTagName),i=0;i<this.items.length;i++)MBT.API.Event.observe(this.items[i],"click",a.itemHandler);a.afterInit&&setTimeout(a.afterInit,1)},MBT.API.UI.Scroller.prototype.scrollUp=function(a,b){if(b=b||1,!this.locked){var c=this.container.parentNode[this.offsetKey];parseInt(this.container.style[this.styleKey])+c*b>0||(this.locked=!0,MBT.API.UI.animate(this.container,this.styleKey,c*b,this.animationLength*b,this.unlock.bind(this)))}},MBT.API.UI.Scroller.prototype.scrollDown=function(a,b){if(b=b||1,!this.locked){var c=this.container.parentNode[this.offsetKey];parseInt(this.container.style[this.styleKey])-c*b<=-this.container[this.offsetKey]||(this.locked=!0,MBT.API.UI.animate(this.container,this.styleKey,-c*b,this.animationLength*b,this.unlock.bind(this)))}},MBT.API.UI.Scroller.prototype.unlock=function(){this.locked=!1},MBT.API.UI.Scroller.prototype.scrollTo=function(a){var b=this.container.parentNode.getBoundingClientRect(),c=this.items[a].getBoundingClientRect();if(c.left<b.left){var d=Math.ceil(Math.abs(b.left-c.left)/b.width);return void this.scrollUp(null,d)}if(c.right>b.right){var d=Math.ceil(Math.abs(c.right-b.right)/b.width);return void this.scrollDown(null,d)}},MBT.API.UI.Scroller.prototype.itemVisible=function(a){var b=this.container.parentNode.getBoundingClientRect(),c=this.items[a].getBoundingClientRect();return"horizontal"==this.type?c.left>=b.left&&c.right<=b.right:"vertical"==this.type&&(c.top>=b.top&&c.bottom<=b.bottom)},MBT.API.extendParams=function(a,b){for(var c in b)b.hasOwnProperty(c)&&(a[c]=b[c]);return a},MBT.API.wrapInner=function(a,b,c,d){"string"==typeof b&&(b=document.createElement(b));for(a.appendChild(b).setAttribute(c,d);a.firstChild!==b;)b.appendChild(a.firstChild)},MBT.API.createResponsiveNavigation=function(a){this.menuContainer=MBT.API.get(a.menuContainer),this.mobileMenuContainer=MBT.API.get(a.mobileMenuContainer),this.activeMenuItemText=a.activeMenuItemText,this.options=MBT.API.extendParams(this.getDefaults(),a),MBT.API.Event.observe(this.mobileMenuContainer,"click",this.init.bind(this))},MBT.API.createResponsiveNavigation.prototype={getDefaults:function(){return{filtersMode:!1,mobileMenuCloseText:"Select",mobileMenuOpenedClass:"mbt-v2-mobile-menu-opened"}},init:function(){"none"==this.getMenuContainerVisibility()?(this.showMenuContainer(),this.addOpendClassToMobileMenu(),this.options.filtersMode||this.setMobileMenuCloseText()):(this.hideMenuContainer(),this.removeOpendClassToMobileMenu(),this.options.filtersMode||this.setMobileMenuTitle());for(var a=["resize","redraw"],b=0;b<a.length;b++)window.addEventListener(a[b],this.checkVisibility.bind(this),!1)},getMenuContainerVisibility:function(){return window.getComputedStyle(this.menuContainer,null).getPropertyValue("display")},showMenuContainer:function(){this.menuContainer.style.display="block"},hideMenuContainer:function(){this.menuContainer.style.display="none"},addOpendClassToMobileMenu:function(){this.mobileMenuContainer.classList.add(this.options.mobileMenuOpenedClass)},removeOpendClassToMobileMenu:function(){this.mobileMenuContainer.classList.remove(this.options.mobileMenuOpenedClass)},getActiveMenuItemText:function(){for(var a=0;a<this.menuContainer.childNodes.length;a++)if("mbt-v2-navigation-tab-active"==this.menuContainer.childNodes[a].className){item=this.menuContainer.childNodes[a],this.activeMenuItemText=item.innerHTML;break}},setMobileMenuTitle:function(){this.getActiveMenuItemText(),this.mobileMenuContainer.innerHTML=this.activeMenuItemText},setMobileMenuCloseText:function(){this.mobileMenuContainer.innerHTML=this.options.mobileMenuCloseText},checkVisibility:function(){var a=window.getComputedStyle(this.menuContainer,null).getPropertyValue("display"),b=window.getComputedStyle(this.menuContainer,null).getPropertyValue("display");"none"==a&&"none"==b&&(this.menuContainer.style.display="block")}},MBT.API.responsiveTable=function(a){this.table=MBT.API.get(a.table),this.tablesContainer=MBT.API.get(a.tablesContainer),this.columnsToPin=a.columnsToPin,this.splitted=!1},MBT.API.responsiveTable.prototype={watchTable:function(){if(this.table){var a=this;setTimeout(function(){a.checkTableWidth()},300);for(var b=["resize","redraw"],c=0;c<b.length;c++)window.addEventListener(b[c],this.checkTableWidth.bind(this),!1)}},checkTableWidth:function(){this.splitted&&this.scroller.resizeScrollContent(),this.table.offsetWidth>this.tablesContainer.offsetWidth&&!this.splitted?this.splitTable():this.table.offsetWidth<this.tablesContainer.offsetWidth&&this.splitted&&this.unsplitTable()},splitTable:function(){var a=this.createPinnedTable();this.table.hasAttribute("class")&&a.setAttribute("class",this.table.getAttribute("class"));var b=this.createScrollableContainer();b.appendChild(this.table),this.tablesContainer.appendChild(b),this.hideTableColumns();var c=this.createPinnedContainer();c.appendChild(a),this.tablesContainer.appendChild(c),"rtl"==window.getComputedStyle(this.table,null).getPropertyValue("direction")?b.style.marginRight=a.offsetWidth+"px":b.style.marginLeft=a.offsetWidth+"px",b.style.height=a.offsetHeight+"px",this.scroller=new MBT.API.Scrollbar(b,{scrollDirection:"horiz"}),this.splitted=!0},unsplitTable:function(){this.showTableColumns(),this.tablesContainer.innerHTML=null,this.tablesContainer.appendChild(this.table),this.splitted=!1},hideTableColumns:function(){for(var a=this.getTableTr(),b=0;b<a.length;b++)for(var c=0;c<this.columnsToPin&&(a[b].getElementsByTagName("td")[c].style.display="none",a[b].getElementsByTagName("td")[c].getAttribute("colspan")!=this.columnsToPin);c++);
var d=this.getTableThead();if(d)for(var b=0;b<this.columnsToPin;b++)d.getElementsByTagName("th")[b].style.display="none"},showTableColumns:function(){for(var a=this.getTableTr(),b=0;b<a.length;b++)for(var c=0;c<this.columnsToPin;c++)a[b].getElementsByTagName("td")[c].removeAttribute("style");var d=this.getTableThead();if(d)for(var b=0;b<this.columnsToPin;b++)d.getElementsByTagName("th")[b].removeAttribute("style")},getTableTr:function(){var a=this.table.getElementsByTagName("tbody")[0],b=a.getElementsByTagName("tr");return b},getTableThead:function(){var a=this.table.getElementsByTagName("thead")[0];return!!a&&a.getElementsByTagName("tr")[0]},createPinnedContainer:function(){var a=document.createElement("div");return a.className+=" mbt-v2-pinned-table-container",a},createScrollableContainer:function(){var a=document.createElement("div");return a.className+=" mbt-v2-scrollable-table-container",a},createPinnedTable:function(){var a=document.createElement("table");a.className+=" mbt-v2-table";var b=this.getTableThead();if(b)for(var c=document.createElement("thead"),d=document.createElement("tr"),e=0;e<this.columnsToPin;e++){var f=document.createElement("th");f.innerHTML=b.getElementsByTagName("th")[e].innerHTML,d.style.height=b.getElementsByTagName("th")[e].offsetHeight+"px",d.appendChild(f),c.appendChild(d),a.appendChild(c)}for(var g=document.createElement("tbody"),h=this.getTableTr(),e=0;e<h.length;e++){var i=document.createElement("tr");h[e].hasAttribute("class")&&i.setAttribute("class",h[e].getAttribute("class"));for(var j=0;j<this.columnsToPin;j++){var k=document.createElement("td");if(k.innerHTML=h[e].getElementsByTagName("td")[j].innerHTML,h[e].getElementsByTagName("td")[j].hasAttribute("colspan")&&k.setAttribute("colspan",h[e].getElementsByTagName("td")[j].getAttribute("colspan")),i.appendChild(k),g.appendChild(i),h[e].getElementsByTagName("td")[j].getAttribute("colspan")==this.columnsToPin)break}var l=Math.max(i.offsetHeight,h[e].offsetHeight);h[e].style.height=l+"px",i.style.height=l+"px"}return a.appendChild(g),a}},MBT.API.Scrollbar=function(a,b){this.el=MBT.API.get(a),this.track,this.scrollbar,this.dragOffset,this.flashTimeout,this.contentEl=this.el,this.scrollContentEl=this.el,this.scrollOffsetAttr="scrollTop",this.sizeAttr="height",this.scrollSizeAttr="scrollHeight",this.offsetAttr="top",this.options=MBT.API.extendParams(MBT.API.Scrollbar.DEFAULTS,b),this.scrollDirection=this.options.scrollDirection,this.theme=this.options.css,this.init()},MBT.API.Scrollbar.SCROLLBAR_WIDTH,MBT.API.Scrollbar.IS_WEBKIT="WebkitAppearance"in document.documentElement.style,MBT.API.Scrollbar.DEFAULTS={scrollDirection:"vert",wrapContent:!0,autoHide:!0,css:{container:"mbt-v2-bar",content:"mbt-v2-bar-content",scrollContent:"mbt-v2-bar-scroll-content",scrollbar:"mbt-v2-scrollbar",scrollbarTrack:"mbt-v2-scrollbar-track"}},MBT.API.Scrollbar.prototype={init:function(){if("undefined"==typeof MBT.API.Scrollbar.SCROLLBAR_WIDTH&&(MBT.API.Scrollbar.SCROLLBAR_WIDTH=this.scrollbarWidth()),0===MBT.API.Scrollbar.SCROLLBAR_WIDTH)return void(this.el.style.overflow=0);if("horiz"===this.scrollDirection&&(this.scrollOffsetAttr="scrollLeft",this.sizeAttr="offsetWidth",this.scrollSizeAttr="scrollWidth",this.offsetAttr="offsetLeft"),this.options.wrapContent){var a=document.createElement("div"),b=document.createElement("div");MBT.API.wrapInner(this.el,b,"class",this.theme.content),MBT.API.wrapInner(this.el,a,"class",this.theme.scrollContent)}this.contentEl=b;var c=document.createElement("div");c.setAttribute("class",this.theme.scrollbarTrack);var d=document.createElement("div");d.setAttribute("class",this.theme.scrollbar),c.appendChild(d),this.el.insertBefore(c,this.el.firstChild),this.track=c,this.scrollbar=d,this.scrollContentEl=a,"horiz"===this.scrollDirection&&(this.el.className+=" mbt-v2-scrollbar-horizontal"),this.resizeScrollContent(),this.options.autoHide&&this.el.addEventListener("mouseenter",this.flashScrollbar.bind(this),!1),this.scrollbar.addEventListener("mousedown",this.startDrag.bind(this),!1),this.scrollContentEl.addEventListener("scroll",this.startScroll.bind(this),!1),this.resizeScrollbar(),this.options.autoHide||this.showScrollbar()},startDrag:function(a){a.preventDefault();var b=a.pageY;"horiz"===this.scrollDirection&&(b=a.pageX),"top"===this.offsetAttr?this.dragOffset=b-this.scrollbar.offsetTop:this.dragOffset=b-this.scrollbar.offsetLeft,document.addEventListener("mousemove",this,!1),document.addEventListener("mouseup",this,!1),this.resizeScrollbar()},startScroll:function(a){this.flashScrollbar()},drag:function(a){a.preventDefault();var b=a.pageY,c=null,d=null,e=null;"horiz"===this.scrollDirection&&(b=a.pageX);var f=0,g=0;"top"===this.offsetAttr?(f=this.track.offsetTop,g=this.track.offsetHeight):(f=this.track.offsetLeft,g=this.track.offsetWidth),c=b-f-this.dragOffset,d=c/g,e=d*this.contentEl[this.scrollSizeAttr],this.scrollContentEl[this.scrollOffsetAttr]=e},endDrag:function(){document.removeEventListener("mousemove",this,!1),document.removeEventListener("mouseup",this,!1)},flashScrollbar:function(){this.resizeScrollbar(),this.showScrollbar()},resizeScrollbar:function(){if(0!==MBT.API.Scrollbar){var a=this.contentEl[this.scrollSizeAttr],b=this.scrollContentEl[this.scrollOffsetAttr],c=this.track[this.sizeAttr],d=c/a,e=Math.round(d*b)+2,f=Math.floor(d*(c-2))-2;c<a?("vert"===this.scrollDirection?(this.scrollbar.style.top=e,this.scrollbar.style.height=f):(this.scrollbar.style.left=e+"px",this.scrollbar.style.width=f+"px"),this.track.style.display="block"):this.track.style.display="none"}},resizeScrollContent:function(){MBT.API.Scrollbar.IS_WEBKIT||("vert"===this.scrollDirection?(this.scrollContentEl.style.width=this.el.offsetWidth+MBT.API.Scrollbar.SCROLLBAR_WIDTH+"px",this.scrollContentEl.style.height=this.el.offsetHeight+"px"):(this.scrollContentEl.style.width=this.el.offsetWidth+"px",this.scrollContentEl.style.height=this.el.offsetHeight+MBT.API.Scrollbar.SCROLLBAR_WIDTH+"px"))},showScrollbar:function(){this.scrollbar.className=this.theme.scrollbar+" visible",this.options.autoHide&&("number"==typeof this.flashTimeout&&window.clearTimeout(this.flashTimeout),this.flashTimeout=window.setTimeout(this.hideScrollbar.bind(this),1e3))},hideScrollbar:function(){this.scrollbar.className=this.theme.scrollbar,"number"==typeof this.flashTimeout&&window.clearTimeout(this.flashTimeout)},resizeScrollContent:function(){MBT.API.Scrollbar.IS_WEBKIT||("vert"===this.scrollDirection?(this.scrollContentEl.style.width=this.el.offsetWidth+MBT.API.Scrollbar.SCROLLBAR_WIDTH+"px",this.scrollContentEl.style.height=this.el.offsetHeight+"px"):(this.scrollContentEl.style.width=this.el.offsetWidth+"px",this.scrollContentEl.style.height=this.el.offsetHeight+MBT.API.Scrollbar.SCROLLBAR_WIDTH+"px"))},scrollbarWidth:function(){var a=document.createElement("div");a.style.width="50px",a.style.height="50px",a.style.overflowY="scroll",a.style.top="-200px",a.style.left="-200px";var b=document.createElement("div");return b.style.height="100px",a.appendChild(b),document.body.appendChild(a),width=0,widthMinusScrollbars=0,width=a.offsetWidth,widthMinusScrollbars=b.offsetWidth,document.body.removeChild(a),width-widthMinusScrollbars},handleEvent:function(a){switch(a.type){case"mousemove":this.drag(a);break;case"mouseup":this.endDrag(a)}}};