{"version":3,"sources":["gmaps.js","jquery.fancybox.js","owl.carousel.js","bootstrap-slider.js","jflickrfeed.js","jquery.matchHeight-min.js"],"names":["window","document","$","undefined","H","W","D","F","fancybox","open","apply","this","arguments","IE","navigator","userAgent","match","didUpdate","isTouch","createTouch","isQuery","obj","hasOwnProperty","isString","str","type","isPercentage","indexOf","isScrollable","el","style","overflow","clientWidth","scrollWidth","clientHeight","scrollHeight","getScalar","orig","dim","value","parseInt","getViewport","Math","ceil","getValue","extend","version","defaults","padding","margin","width","height","minWidth","minHeight","maxWidth","maxHeight","pixelRatio","autoSize","autoHeight","autoWidth","autoResize","autoCenter","fitToView","aspectRatio","topRatio","leftRatio","scrolling","wrapCSS","arrows","closeBtn","closeClick","nextClick","mouseWheel","autoPlay","playSpeed","preload","modal","loop","ajax","dataType","headers","X-fancyBox","iframe","swf","wmode","allowfullscreen","allowscriptaccess","keys","next","13","34","39","40","prev","8","33","37","38","close","play","toggle","direction","scrollOutside","index","href","content","title","tpl","wrap","image","error","openEffect","openSpeed","openEasing","openOpacity","openMethod","closeEffect","closeSpeed","closeEasing","closeOpacity","closeMethod","nextEffect","nextSpeed","nextEasing","nextMethod","prevEffect","prevSpeed","prevEasing","prevMethod","helpers","overlay","onCancel","noop","beforeLoad","afterLoad","beforeShow","afterShow","beforeChange","beforeClose","afterClose","group","opts","previous","coming","current","isActive","isOpen","isOpened","skin","outer","inner","player","timer","ajaxLoad","imgPreload","transitions","isPlainObject","isArray","get","each","i","element","rez","hrefParts","selector","nodeType","data","attr","isDom","metadata","prop","isImage","isSWF","charAt","split","shift","replace","_start","cancel","trigger","hideLoading","abort","onload","onerror","stop","remove","_afterZoomOut","event","unbindEvents","isClosing","removeClass","action","clear","clearTimeout","set","setTimeout","unbind","start","length","bind","onCancel.player beforeClose.player","onUpdate.player","beforeLoad.player","jumpto","router","reposition","e","onlyAbsolute","pos","_getPosition","position","animate","css","update","anyway","_setDimension","canShrink","removeAttr","addClass","showLoading","viewport","click","appendTo","which","keyCode","preventDefault","fixed","top","h","y","left","w","x","locked","scrollLeft","scrollTop","innerWidth","innerHeight","bindEvents","code","target","srcElement","ctrlKey","altKey","shiftKey","metaKey","is","val","inArray","fn","mousewheel","delta","deltaX","deltaY","parent","canScroll","o","ret","isFunction","Array","prototype","slice","call","helper","v","_error","_loadImage","_loadAjax","_loadIframe","_afterLoad","hasError","img","Image","src","complete","url","jqXHR","textStatus","success","Date","getTime","find","hide","end","empty","one","parents","show","_preloadImages","item","len","cnt","min","embed","placeholder","html","insertAfter","detach","replaceAll","name","append","not","wPadding","hPadding","wSpace","hSpace","origWidth","origHeight","origMaxWidth","origMaxHeight","ratio","width_","height_","maxWidth_","maxHeight_","body","steps","canExpand","scrollOut","scrollbarWidth","wMargin","hMargin","add","outerWidth","outerHeight","contentWindow","location","contents","max","wrapSpace","skinSpace","_afterZoomIn","getOrigPosition","offset","step","now","fx","zoomIn","startPos","effect","elastic","endPos","opacity","duration","easing","zoomOut","changeIn","field","distance","changeOut","speedOut","showEarly","create","that","proxy","hasClass","scrollV","scrollH","offsetWidth","documentElement","onReady","filter","onUpdate","fadeOut","text","trim","wrapInner","abs","options","run","relType","relVal","what","blur","idx","groupAttr","live","undelegate","delegate","ready","w1","w2","child","children","support","fixedPosition","elem","offsetTop","jQuery","Object","Carousel","init","base","$elem","owlCarousel","userOptions","loadContent","getData","jsonSuccess","owl","logIn","beforeInit","jsonPath","getJSON","orignalItems","items","checkBrowser","wrapperWidth","checkVisible","setVars","baseClass","eventTypes","$userItems","itemsAmount","wrapItems","$owlItems","$owlWrapper","playDirection","prevItem","prevArr","currentItem","customEvents","onStartup","updateItems","calculateAll","buildControls","updateControls","response","moveEvents","stopOnHover","owlStatus","transitionStyle","transitionTypes","watchVisibility","onstartup","eachMoveUpdate","afterInit","lazyLoad","onVisibleItems","afterAction","updateVars","beforeUpdate","updatePosition","afterUpdate","reload","clearInterval","autoPlayInterval","setInterval","wrapAll","wrapperOuter","hasBaseClass","hasThemeClass","theme","responsive","singleItem","itemsCustom","itemsDesktop","itemsDesktopSmall","itemsTablet","itemsTabletSmall","itemsMobile","responsiveBaseWidth","sort","a","b","itemsScaleUp","smallDelay","lastWindowWidth","resizer","responsiveRefreshRate","resize","jumpTo","checkAp","appendItemsSizes","roundPages","lastItem","$this","itemWidth","Number","appendWrapperSizes","calculateWidth","loops","round","maximum","maximumItem","maximumPixels","roundPageNum","elWidth","positionsInArray","pagesInArray","push","scrollPerPage","navigation","pagination","owlControls","toggleClass","browser","buildPagination","buildButtons","buttonsWrapper","buttonPrev","class","navigationText","buttonNext","on","paginationWrapper","goTo","updatePagination","counter","lastPage","paginationButton","paginationButtonInner","paginationNumbers","checkPagination","checkNavigation","rewindNav","destroyControls","speed","isTransition","drag","goToPixel","beforeMove","support3d","swapSpeed","transition3d","css2slide","afterGo","singleItemTransition","isCss3Finish","paginationSpeed","rewindSpeed","slideSpeed","afterMove","apStatus","addCssSpeed","-webkit-transition","-moz-transition","-o-transition","transition","removeTransition","doTranslate","pixels","-webkit-transform","-moz-transform","-o-transform","-ms-transform","transform","css2move","isCssFinish","regex","asSupport","translate3D","tempElem","createElement","cssText","msMaxTouchPoints","mouseDrag","touchDrag","gestures","disabledEvents","types","ev_types","move","getTouches","touches","pageX","pageY","clientX","clientY","swapEvents","dragMove","dragEnd","off","dragStart","ev","originalEvent","dragBeforeAnimFinish","newPosX","newRelativeX","locals","relativePos","offsetX","offsetY","sliding","targetElement","minSwipe","maxSwipe","newPosY","startDragging","dragging","returnValue","newPosition","handlers","owlStopEvent","dragDirection","getNewPosition","stopImmediatePropagation","stopPropagation","_data","pop","splice","baseElWidth","dargging","closestItem","array","goal","closest","moveDirection","hoverStatus","$item","itemNumber","$lazyImg","follow","lazyFollow","lazyPreload","showImage","lazyEffect","fadeIn","afterLazyLoad","checkLazyImage","iterations","completeImg","isBackgroundImg","addHeight","$currentItem","checkImage","$currentimg","naturalWidthType","naturalWidth","addClassActive","visibleItems","className","outClass","inClass","transStyles","prevPos","eq","$prevItem","origin","animEnd","-webkit-transform-origin","-moz-perspective-origin","perspective-origin","endPrev","clearTransStyle","endCurrent","classToRemove","baseElement","userItems","owlItems","clearEvents","unWrap","unwrap","destroy","removeData","reinit","newOptions","addItem","htmlString","targetPosition","after","before","removeItem","carousel","google","maps","GMaps","global","doc","getElementById","id","context","ele","self","events_that_hide_context_menu","events_that_doesnt_hide_context_menu","context_menu","div","offsetHeight","controls","overlays","layers","singleLayers","markers","polylines","routes","polygons","infoWindow","overlay_el","zoom","registered_events","mapType","markerClusterer","MapTypeId","toUpperCase","ROADMAP","map_center","LatLng","lat","lng","zoomControlOpt","zoomControl","zoomControlStyle","zoomControlPosition","panControl","mapTypeControl","scaleControl","streetViewControl","overviewMapControl","map_options","map_base_options","center","mapTypeId","map_controls_options","zoomControlOptions","ZoomControlStyle","ControlPosition","disableDefaultUI","extend_object","map","Map","findAbsolutePosition","curleft","curtop","offsetParent","offsetLeft","buildContextMenuHTML","control","option","context_menu_element","innerHTML","context_menu_items","getElementsByTagName","context_menu_items_count","context_menu_item","assign_menu_item_action","hideContextMenu","clearListeners","addDomListenerOnce","pixel","display","buildContextMenu","OverlayView","setMap","draw","projection","getProjection","marker","getPosition","fromLatLngToContainerPixel","setContextMenu","ul","background","listStyle","boxShadow","appendChild","addDomListener","relatedTarget","contains","setupListener","object","addListener","rightclick","refresh","fitZoom","latLngs","markers_length","fitLatLngBounds","total","bounds","LatLngBounds","fitBounds","setCenter","callback","panTo","getElement","getZoom","setZoom","native_methods","method","gmaps","scope","method_name","createControl","cursor","fontFamily","fontSize","classes","events","addControl","createMarker","details","fences","outside","base_options","marker_options","Marker","InfoWindow","info_window_events","marker_events","marker_events_with_mouse","me","fromLatLngToPoint","latLng","hideInfoWindows","checkMarkerGeofence","m","f","addMarker","fire","addMarkers","removeMarker","removeMarkers","collection","new_markers","getMap","drawOverlay","auto_show","onAdd","borderStyle","borderWidth","zIndex","panes","getPanes","layer","overlayLayer","stop_overlay_events","toLowerCase","all","cancelBubble","fromLatLngToDivPixel","horizontalOffset","verticalOffset","content_height","content_width","verticalAlign","horizontalAlign","onRemove","parentNode","removeChild","removeOverlay","removeOverlays","drawPolyline","path","points","latlng","polyline_options","strokeColor","strokeOpacity","strokeWeight","geodesic","clickable","editable","visible","icons","polyline","Polyline","polyline_events","removePolyline","removePolylines","drawCircle","polygon","Circle","polygon_events","drawRectangle","latLngBounds","Rectangle","drawPolygon","useGeoJSON","paths","array_flat","array_map","arrayToLatLng","Polygon","removePolygon","removePolygons","getFromFusionTables","fusion_tables_options","FusionTablesLayer","loadFromFusionTables","getFromKML","kml_options","KmlLayer","loadFromKML","travelMode","unitSystem","getRoutes","TravelMode","BICYCLING","TRANSIT","DRIVING","WALKING","UnitSystem","IMPERIAL","METRIC","avoidHighways","avoidTolls","optimizeWaypoints","waypoints","request_options","test","destination","service","DirectionsService","route","result","status","DirectionsStatus","OK","r","removeRoutes","getElevations","locations","samples","ElevationService","pathRequest","getElevationAlongPath","getElevationForLocations","cleanRoute","drawRoute","overview_path","travelRoute","legs","step_number","drawSteppedRoute","checkGeofence","fence","containsLatLng","outside_callback","addLayer","layerName","weather","WeatherLayer","clouds","CloudLayer","traffic","TrafficLayer","transit","TransitLayer","bicycling","BicyclingLayer","panoramio","PanoramioLayer","setTag","places","PlacesService","search","nearbySearch","placeSearchRequest","keyword","radius","rankBy","textSearch","textSearchRequest","query","setOptions","removeLayer","toImage","static_map_options","getCenter","geometry","encoding","encodePath","getPath","staticMapURL","addMapType","tileSize","Size","ImageMapType","mapTypes","addOverlayMapType","overlayMapTypeIndex","overlayMapTypes","insertAt","removeOverlayMapType","removeAt","addStyle","styledMapType","StyledMapType","styles","styledMapName","setStyle","setMapTypeId","createPanorama","streetview_options","panorama","setStreetView","event_name","handler","streetview_events","StreetViewPanorama","Route","step_count","steps_length","MVCArray","back","p","forward","geolocate","complete_callback","always","geolocation","getCurrentPosition","not_supported","geocode","geocoder","Geocoder","results","parseColor","color","parseFloat","toString","parameters","static_root","address","join","encodeURI","size","sensor","param","loc","icon","label","fillColor","fillcolor","fillOpacity","j","custom_events","registered_event","eventName","firing_events","getBounds","getPaths","getLength","getAt","inPoly","numPaths","numPoints","vertex1","vertex2","setFences","addFence","coordsToLatLngs","coords","first_coord","second_coord","new_obj","replace_object","original_callback_params","callback_params","array_return","array_length","new_array","concat","Slider","picker","insertBefore","Modernizr","touch","touchCapable","tooltip","tooltipInner","orientation","stylePos","mousePos","sizePos","range","selection","selectionEl","selectionElStyle","handle1","handle1Stype","handle2","handle2Stype","handle","diff","percentage","formater","layout","touchstart","mousedown","mouseenter","showTooltip","mouseleave","hideTooltip","constructor","over","inDrag","getPercentage","diff1","diff2","dragged","touchmove","mousemove","touchend","mouseup","calculateValue","setValue","slider","Constructor","jflickrfeed","settings","flickrbase","feedapi","limit","qstrings","lang","format","jsoncallback","cleanDescription","useTemplate","itemTemplate","itemCallback","first","key","$container","container","input","description","media","template","rgx","RegExp","t","define","amd","module","exports","require","n","s","floor","byRow","property","matchHeight","_groups","elements","_apply","_throttle","_maintainScroll","_beforeUpdate","_afterUpdate","_rows","_parse","_parseOptions","l","c","d","padding-top","padding-bottom","margin-top","margin-bottom","border-top-width","border-bottom-width","_applyDataApi","_update"],"mappings":"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","file":"plugins.min.js","sourcesContent":["/*!\r\n * GMaps.js v0.3.3\r\n * http://hpneo.github.com/gmaps/\r\n *\r\n * Copyright 2012, Gustavo Leon\r\n * Released under the MIT License.\r\n */\r\n\r\nif(window.google && window.google.maps){\r\n\r\n var GMaps = (function(global) {\r\n \"use strict\";\r\n\r\n var doc = document;\r\n var getElementById = function(id, context) {\r\n var ele\r\n if('jQuery' in global && context){\r\n ele = $(\"#\"+id.replace('#', ''), context)[0]\r\n } else {\r\n ele = doc.getElementById(id.replace('#', ''));\r\n };\r\n return ele;\r\n };\r\n\r\n var GMaps = function(options) {\r\n var self = this;\r\n\r\n var events_that_hide_context_menu = ['bounds_changed', 'center_changed', 'click', 'dblclick', 'drag', 'dragend', 'dragstart', 'idle', 'maptypeid_changed', 'projection_changed', 'resize', 'tilesloaded', 'zoom_changed'];\r\n var events_that_doesnt_hide_context_menu = ['mousemove', 'mouseout', 'mouseover'];\r\n\r\n window.context_menu = {};\r\n\r\n if (typeof(options.el) === 'string' || typeof(options.div) === 'string') {\r\n this.el = getElementById(options.el || options.div, options.context);\r\n } else {\r\n this.el = options.el || options.div;\r\n };\r\n\r\n if (typeof(this.el) === 'undefined' || this.el === null) {\r\n throw 'No element defined.';\r\n }\r\n\r\n this.el.style.width = options.width || this.el.scrollWidth || this.el.offsetWidth;\r\n this.el.style.height = options.height || this.el.scrollHeight || this.el.offsetHeight;\r\n\r\n this.controls = [];\r\n this.overlays = [];\r\n this.layers = []; // array with kml and ft layers, can be as many\r\n this.singleLayers = {}; // object with the other layers, only one per layer\r\n this.markers = [];\r\n this.polylines = [];\r\n this.routes = [];\r\n this.polygons = [];\r\n this.infoWindow = null;\r\n this.overlay_el = null;\r\n this.zoom = options.zoom || 15;\r\n this.registered_events = {};\r\n\r\n var markerClusterer = options.markerClusterer;\r\n\r\n //'Hybrid', 'Roadmap', 'Satellite' or 'Terrain'\r\n var mapType;\r\n\r\n if (options.mapType) {\r\n mapType = google.maps.MapTypeId[options.mapType.toUpperCase()];\r\n }\r\n else {\r\n mapType = google.maps.MapTypeId.ROADMAP;\r\n }\r\n\r\n var map_center = new google.maps.LatLng(options.lat, options.lng);\r\n\r\n delete options.el;\r\n delete options.lat;\r\n delete options.lng;\r\n delete options.mapType;\r\n delete options.width;\r\n delete options.height;\r\n delete options.markerClusterer;\r\n\r\n var zoomControlOpt = options.zoomControlOpt || {\r\n style: 'DEFAULT',\r\n position: 'TOP_LEFT'\r\n };\r\n\r\n var zoomControl = options.zoomControl || true,\r\n zoomControlStyle = zoomControlOpt.style || 'DEFAULT',\r\n zoomControlPosition = zoomControlOpt.position || 'TOP_LEFT',\r\n panControl = options.panControl || true,\r\n mapTypeControl = options.mapTypeControl || true,\r\n scaleControl = options.scaleControl || true,\r\n streetViewControl = options.streetViewControl || true,\r\n overviewMapControl = overviewMapControl || true;\r\n\r\n var map_options = {};\r\n\r\n var map_base_options = {\r\n zoom: this.zoom,\r\n center: map_center,\r\n mapTypeId: mapType\r\n };\r\n\r\n var map_controls_options = {\r\n panControl: panControl,\r\n zoomControl: zoomControl,\r\n zoomControlOptions: {\r\n style: google.maps.ZoomControlStyle[zoomControlStyle], // DEFAULT LARGE SMALL\r\n position: google.maps.ControlPosition[zoomControlPosition]\r\n },\r\n mapTypeControl: mapTypeControl,\r\n scaleControl: scaleControl,\r\n streetViewControl: streetViewControl,\r\n overviewMapControl: overviewMapControl\r\n }\r\n\r\n if(options.disableDefaultUI != true)\r\n map_base_options = extend_object(map_base_options, map_controls_options);\r\n\r\n map_options = extend_object(map_base_options, options);\r\n\r\n for(var i = 0; i < events_that_hide_context_menu.length; i++) {\r\n delete map_options[events_that_hide_context_menu[i]];\r\n }\r\n\r\n for(var i = 0; i < events_that_doesnt_hide_context_menu.length; i++) {\r\n delete map_options[events_that_doesnt_hide_context_menu[i]];\r\n }\r\n\r\n this.map = new google.maps.Map(this.el, map_options);\r\n\r\n if(markerClusterer) {\r\n this.markerClusterer = markerClusterer.apply(this, [this.map]);\r\n }\r\n\r\n // finds absolute position of an element\r\n var findAbsolutePosition = function(obj) {\r\n var curleft = 0;\r\n var curtop = 0;\r\n if (obj.offsetParent) {\r\n do {\r\n curleft += obj.offsetLeft;\r\n curtop += obj.offsetTop;\r\n } while (obj = obj.offsetParent);\r\n }\r\n return [curleft,curtop];\r\n //returns an array\r\n }\r\n\r\n\r\n // Context menus\r\n var buildContextMenuHTML = function(control, e) {\r\n var html = '';\r\n var options = window.context_menu[control];\r\n for (var i in options){\r\n if (options.hasOwnProperty(i)){\r\n var option = options[i];\r\n html += '
  • ' +\r\n option.title + '
  • ';\r\n }\r\n }\r\n\r\n if(!getElementById('gmaps_context_menu')) return;\r\n\r\n var context_menu_element = getElementById('gmaps_context_menu');\r\n context_menu_element.innerHTML = html;\r\n\r\n var context_menu_items = context_menu_element.getElementsByTagName('a');\r\n\r\n var context_menu_items_count = context_menu_items.length;\r\n\r\n for(var i = 0; i < context_menu_items_count; i++){\r\n var context_menu_item = context_menu_items[i];\r\n\r\n var assign_menu_item_action = function(ev){\r\n ev.preventDefault();\r\n\r\n options[this.id.replace(control + '_', '')].action.apply(self, [e]);\r\n self.hideContextMenu();\r\n };\r\n\r\n google.maps.event.clearListeners(context_menu_item, 'click');\r\n google.maps.event.addDomListenerOnce(context_menu_item, 'click', assign_menu_item_action, false);\r\n }\r\n\r\n var position = findAbsolutePosition.apply(this, [self.el]);\r\n var left = position[0] + e.pixel.x - 15;\r\n var top = position[1] + e.pixel.y- 15;\r\n\r\n context_menu_element.style.left = left + \"px\";\r\n context_menu_element.style.top = top + \"px\";\r\n\r\n context_menu_element.style.display = 'block';\r\n };\r\n\r\n var buildContextMenu = function(control, e) {\r\n if (control === 'marker') {\r\n e.pixel = {};\r\n var overlay = new google.maps.OverlayView();\r\n overlay.setMap(self.map);\r\n overlay.draw = function() {\r\n var projection = overlay.getProjection();\r\n var position = e.marker.getPosition();\r\n e.pixel = projection.fromLatLngToContainerPixel(position);\r\n\r\n buildContextMenuHTML(control, e);\r\n };\r\n }\r\n else {\r\n buildContextMenuHTML(control, e);\r\n }\r\n };\r\n\r\n this.setContextMenu = function(options) {\r\n window.context_menu[options.control] = {};\r\n\r\n for (var i in options.options){\r\n if (options.options.hasOwnProperty(i)){\r\n var option = options.options[i];\r\n window.context_menu[options.control][option.name] = {\r\n title: option.title,\r\n action: option.action\r\n };\r\n }\r\n }\r\n\r\n var ul = doc.createElement('ul');\r\n\r\n ul.id = 'gmaps_context_menu';\r\n ul.style.display = 'none';\r\n ul.style.position = 'absolute';\r\n ul.style.minWidth = '100px';\r\n ul.style.background = 'white';\r\n ul.style.listStyle = 'none';\r\n ul.style.padding = '8px';\r\n ul.style.boxShadow = '2px 2px 6px #ccc';\r\n\r\n doc.body.appendChild(ul);\r\n\r\n var context_menu_element = getElementById('gmaps_context_menu');\r\n\r\n google.maps.event.addDomListener(context_menu_element, 'mouseout', function(ev) {\r\n if(!ev.relatedTarget || !this.contains(ev.relatedTarget)){\r\n window.setTimeout(function(){\r\n context_menu_element.style.display = 'none';\r\n }, 400);\r\n }\r\n }, false);\r\n };\r\n\r\n this.hideContextMenu = function() {\r\n var context_menu_element = getElementById('gmaps_context_menu');\r\n if(context_menu_element)\r\n context_menu_element.style.display = 'none';\r\n };\r\n\r\n //Events\r\n\r\n var setupListener = function(object, name) {\r\n google.maps.event.addListener(object, name, function(e){\r\n if(e == undefined) {\r\n e = this;\r\n }\r\n\r\n options[name].apply(this, [e]);\r\n\r\n self.hideContextMenu();\r\n });\r\n }\r\n\r\n for (var ev = 0; ev < events_that_hide_context_menu.length; ev++) {\r\n var name = events_that_hide_context_menu[ev];\r\n\r\n if (name in options) {\r\n setupListener(this.map, name);\r\n }\r\n }\r\n\r\n for (var ev = 0; ev < events_that_doesnt_hide_context_menu.length; ev++) {\r\n var name = events_that_doesnt_hide_context_menu[ev];\r\n\r\n if (name in options) {\r\n setupListener(this.map, name);\r\n }\r\n }\r\n\r\n google.maps.event.addListener(this.map, 'rightclick', function(e) {\r\n if (options.rightclick) {\r\n options.rightclick.apply(this, [e]);\r\n }\r\n\r\n if(window.context_menu['map'] != undefined) {\r\n buildContextMenu('map', e);\r\n }\r\n });\r\n\r\n this.refresh = function() {\r\n google.maps.event.trigger(this.map, 'resize');\r\n };\r\n\r\n this.fitZoom = function() {\r\n var latLngs = [];\r\n var markers_length = this.markers.length;\r\n\r\n for(var i=0; i < markers_length; i++) {\r\n latLngs.push(this.markers[i].getPosition());\r\n }\r\n\r\n this.fitLatLngBounds(latLngs);\r\n };\r\n\r\n this.fitLatLngBounds = function(latLngs) {\r\n var total = latLngs.length;\r\n var bounds = new google.maps.LatLngBounds();\r\n\r\n for(var i=0; i < total; i++) {\r\n bounds.extend(latLngs[i]);\r\n }\r\n\r\n this.map.fitBounds(bounds);\r\n };\r\n\r\n // Map methods\r\n this.setCenter = function(lat, lng, callback) {\r\n this.map.panTo(new google.maps.LatLng(lat, lng));\r\n if (callback) {\r\n callback();\r\n }\r\n };\r\n\r\n this.getElement = function() {\r\n return this.el;\r\n };\r\n\r\n this.zoomIn = function(value) {\r\n value = value || 1;\r\n this.zoom = this.map.getZoom() + value;\r\n this.map.setZoom(this.zoom);\r\n };\r\n\r\n this.zoomOut = function(value) {\r\n value = value || 1;\r\n this.zoom = this.map.getZoom() - value;\r\n this.map.setZoom(this.zoom);\r\n };\r\n\r\n var native_methods = [];\r\n\r\n for(var method in this.map){\r\n if(typeof(this.map[method]) == 'function' && !this[method]){\r\n native_methods.push(method);\r\n }\r\n }\r\n\r\n for(var i=0; i < native_methods.length; i++){\r\n (function(gmaps, scope, method_name) {\r\n gmaps[method_name] = function(){\r\n return scope[method_name].apply(scope, arguments);\r\n };\r\n })(this, this.map, native_methods[i]);\r\n }\r\n\r\n this.createControl = function(options) {\r\n var control = doc.createElement('div');\r\n\r\n control.style.cursor = 'pointer';\r\n control.style.fontFamily = 'Arial, sans-serif';\r\n control.style.fontSize = '13px';\r\n control.style.boxShadow = 'rgba(0, 0, 0, 0.398438) 0px 2px 4px';\r\n\r\n for(var option in options.style)\r\n control.style[option] = options.style[option];\r\n\r\n if(options.id) {\r\n control.id = options.id;\r\n }\r\n\r\n if(options.classes) {\r\n control.className = options.classes;\r\n }\r\n\r\n if(options.content) {\r\n control.innerHTML = options.content;\r\n }\r\n\r\n for (var ev in options.events) {\r\n (function(object, name) {\r\n google.maps.event.addDomListener(object, name, function(){\r\n options.events[name].apply(this, [this]);\r\n });\r\n })(control, ev);\r\n }\r\n\r\n control.index = 1;\r\n\r\n return control;\r\n };\r\n\r\n this.addControl = function(options) {\r\n var position = google.maps.ControlPosition[options.position.toUpperCase()];\r\n\r\n delete options.position;\r\n\r\n var control = this.createControl(options);\r\n this.controls.push(control);\r\n this.map.controls[position].push(control);\r\n\r\n return control;\r\n };\r\n\r\n // Markers\r\n this.createMarker = function(options) {\r\n if ((options.hasOwnProperty('lat') && options.hasOwnProperty('lng')) || options.position) {\r\n var self = this;\r\n var details = options.details;\r\n var fences = options.fences;\r\n var outside = options.outside;\r\n\r\n var base_options = {\r\n position: new google.maps.LatLng(options.lat, options.lng),\r\n map: null\r\n };\r\n\r\n delete options.lat;\r\n delete options.lng;\r\n delete options.fences;\r\n delete options.outside;\r\n\r\n var marker_options = extend_object(base_options, options);\r\n\r\n var marker = new google.maps.Marker(marker_options);\r\n\r\n marker.fences = fences;\r\n\r\n if (options.infoWindow) {\r\n marker.infoWindow = new google.maps.InfoWindow(options.infoWindow);\r\n\r\n var info_window_events = ['closeclick', 'content_changed', 'domready', 'position_changed', 'zindex_changed'];\r\n\r\n for (var ev = 0; ev < info_window_events.length; ev++) {\r\n (function(object, name) {\r\n if (options.infoWindow[name]) {\r\n google.maps.event.addListener(object, name, function(e){\r\n options.infoWindow[name].apply(this, [e]);\r\n });\r\n }\r\n })(marker.infoWindow, info_window_events[ev]);\r\n }\r\n }\r\n\r\n var marker_events = ['animation_changed', 'clickable_changed', 'cursor_changed', 'draggable_changed', 'flat_changed', 'icon_changed', 'position_changed', 'shadow_changed', 'shape_changed', 'title_changed', 'visible_changed', 'zindex_changed'];\r\n\r\n var marker_events_with_mouse = ['dblclick', 'drag', 'dragend', 'dragstart', 'mousedown', 'mouseout', 'mouseover', 'mouseup'];\r\n\r\n for (var ev = 0; ev < marker_events.length; ev++) {\r\n (function(object, name) {\r\n if (options[name]) {\r\n google.maps.event.addListener(object, name, function(){\r\n options[name].apply(this, [this]);\r\n });\r\n }\r\n })(marker, marker_events[ev]);\r\n }\r\n\r\n for (var ev = 0; ev < marker_events_with_mouse.length; ev++) {\r\n (function(map, object, name) {\r\n if (options[name]) {\r\n google.maps.event.addListener(object, name, function(me){\r\n if(!me.pixel){\r\n me.pixel = map.getProjection().fromLatLngToPoint(me.latLng)\r\n }\r\n \r\n options[name].apply(this, [me]);\r\n });\r\n }\r\n })(this.map, marker, marker_events_with_mouse[ev]);\r\n }\r\n\r\n google.maps.event.addListener(marker, 'click', function() {\r\n this.details = details;\r\n\r\n if (options.click) {\r\n options.click.apply(this, [this]);\r\n }\r\n\r\n if (marker.infoWindow) {\r\n self.hideInfoWindows();\r\n marker.infoWindow.open(self.map, marker);\r\n }\r\n });\r\n\r\n google.maps.event.addListener(marker, 'rightclick', function(e) {\r\n e.marker = this;\r\n\r\n if (options.rightclick) {\r\n options.rightclick.apply(this, [e]);\r\n }\r\n\r\n if (window.context_menu['marker'] != undefined) {\r\n buildContextMenu('marker', e);\r\n }\r\n });\r\n\r\n if (marker.fences) {\r\n google.maps.event.addListener(marker, 'dragend', function() {\r\n self.checkMarkerGeofence(marker, function(m, f) {\r\n outside(m, f);\r\n });\r\n });\r\n }\r\n\r\n return marker;\r\n }\r\n else {\r\n throw 'No latitude or longitude defined.';\r\n }\r\n };\r\n\r\n this.addMarker = function(options) {\r\n var marker;\r\n if(options.hasOwnProperty('gm_accessors_')) {\r\n // Native google.maps.Marker object\r\n marker = options;\r\n }\r\n else {\r\n if ((options.hasOwnProperty('lat') && options.hasOwnProperty('lng')) || options.position) {\r\n marker = this.createMarker(options);\r\n }\r\n else {\r\n throw 'No latitude or longitude defined.';\r\n }\r\n }\r\n\r\n marker.setMap(this.map);\r\n\r\n if(this.markerClusterer) {\r\n this.markerClusterer.addMarker(marker);\r\n }\r\n\r\n this.markers.push(marker);\r\n\r\n GMaps.fire('marker_added', marker, this);\r\n\r\n return marker;\r\n };\r\n\r\n this.addMarkers = function(array) {\r\n for (var i=0, marker; marker=array[i]; i++) {\r\n this.addMarker(marker);\r\n }\r\n return this.markers;\r\n };\r\n\r\n this.hideInfoWindows = function() {\r\n for (var i=0, marker; marker=this.markers[i]; i++){\r\n if (marker.infoWindow){\r\n marker.infoWindow.close();\r\n }\r\n }\r\n };\r\n\r\n this.removeMarker = function(marker) {\r\n for(var i = 0; i < this.markers.length; i++) {\r\n if(this.markers[i] === marker) {\r\n this.markers[i].setMap(null);\r\n this.markers.splice(i, 1);\r\n\r\n GMaps.fire('marker_removed', marker, this);\r\n\r\n break;\r\n }\r\n }\r\n\r\n return marker;\r\n };\r\n\r\n this.removeMarkers = function(collection) {\r\n var collection = (collection || this.markers);\r\n\r\n for(var i=0;i < this.markers.length; i++){\r\n if(this.markers[i] === collection[i])\r\n this.markers[i].setMap(null);\r\n }\r\n\r\n var new_markers = [];\r\n\r\n for(var i=0;i < this.markers.length; i++){\r\n if(this.markers[i].getMap() != null)\r\n new_markers.push(this.markers[i]);\r\n }\r\n\r\n this.markers = new_markers;\r\n };\r\n\r\n // Overlays\r\n\r\n this.drawOverlay = function(options) {\r\n var overlay = new google.maps.OverlayView();\r\n overlay.setMap(self.map);\r\n\r\n var auto_show = true;\r\n\r\n if(options.auto_show != null)\r\n auto_show = options.auto_show;\r\n\r\n overlay.onAdd = function() {\r\n var el = doc.createElement('div');\r\n el.style.borderStyle = \"none\";\r\n el.style.borderWidth = \"0px\";\r\n el.style.position = \"absolute\";\r\n el.style.zIndex = 100;\r\n el.innerHTML = options.content;\r\n\r\n overlay.el = el;\r\n\r\n var panes = this.getPanes();\r\n if (!options.layer) {\r\n options.layer = 'overlayLayer';\r\n }\r\n var overlayLayer = panes[options.layer];\r\n overlayLayer.appendChild(el);\r\n\r\n var stop_overlay_events = ['contextmenu', 'DOMMouseScroll', 'dblclick', 'mousedown'];\r\n\r\n for (var ev = 0; ev < stop_overlay_events.length; ev++) {\r\n (function(object, name) {\r\n google.maps.event.addDomListener(object, name, function(e){\r\n if(navigator.userAgent.toLowerCase().indexOf('msie') != -1 && document.all) {\r\n e.cancelBubble = true;\r\n e.returnValue = false;\r\n }\r\n else {\r\n e.stopPropagation();\r\n }\r\n });\r\n })(el, stop_overlay_events[ev]);\r\n }\r\n\r\n google.maps.event.trigger(this, 'ready');\r\n };\r\n\r\n overlay.draw = function() {\r\n var projection = this.getProjection();\r\n var pixel = projection.fromLatLngToDivPixel(new google.maps.LatLng(options.lat, options.lng));\r\n\r\n options.horizontalOffset = options.horizontalOffset || 0;\r\n options.verticalOffset = options.verticalOffset || 0;\r\n\r\n var el = overlay.el;\r\n var content = el.children[0];\r\n\r\n var content_height = content.clientHeight;\r\n var content_width = content.clientWidth;\r\n\r\n switch (options.verticalAlign) {\r\n case 'top':\r\n el.style.top = (pixel.y - content_height + options.verticalOffset) + 'px';\r\n break;\r\n default:\r\n case 'middle':\r\n el.style.top = (pixel.y - (content_height / 2) + options.verticalOffset) + 'px';\r\n break;\r\n case 'bottom':\r\n el.style.top = (pixel.y + options.verticalOffset) + 'px';\r\n break;\r\n }\r\n\r\n switch (options.horizontalAlign) {\r\n case 'left':\r\n el.style.left = (pixel.x - content_width + options.horizontalOffset) + 'px';\r\n break;\r\n default:\r\n case 'center':\r\n el.style.left = (pixel.x - (content_width / 2) + options.horizontalOffset) + 'px';\r\n break;\r\n case 'right':\r\n el.style.left = (pixel.x + options.horizontalOffset) + 'px';\r\n break;\r\n }\r\n\r\n el.style.display = auto_show ? 'block' : 'none';\r\n\r\n if(!auto_show){\r\n options.show.apply(this, [el]);\r\n }\r\n };\r\n\r\n overlay.onRemove = function() {\r\n var el = overlay.el;\r\n\r\n if(options.remove){\r\n options.remove.apply(this, [el]);\r\n }\r\n else {\r\n overlay.el.parentNode.removeChild(overlay.el);\r\n overlay.el = null;\r\n }\r\n };\r\n\r\n self.overlays.push(overlay);\r\n return overlay;\r\n };\r\n\r\n this.removeOverlay = function(overlay) {\r\n for(var i = 0; i < this.overlays.length; i++) {\r\n if(this.overlays[i] === overlay) {\r\n this.overlays[i].setMap(null);\r\n this.overlays.splice(i, 1);\r\n\r\n break;\r\n }\r\n }\r\n };\r\n\r\n this.removeOverlays = function() {\r\n for (var i=0, item; item=self.overlays[i]; i++){\r\n item.setMap(null);\r\n }\r\n self.overlays = [];\r\n };\r\n\r\n // Geometry\r\n\r\n this.drawPolyline = function(options) {\r\n var path = [];\r\n var points = options.path;\r\n\r\n if (points.length){\r\n if (points[0][0] === undefined){\r\n path = points;\r\n }\r\n else {\r\n for (var i=0, latlng; latlng=points[i]; i++){\r\n path.push(new google.maps.LatLng(latlng[0], latlng[1]));\r\n }\r\n }\r\n }\r\n\r\n var polyline_options = {\r\n map: this.map,\r\n path: path,\r\n strokeColor: options.strokeColor,\r\n strokeOpacity: options.strokeOpacity,\r\n strokeWeight: options.strokeWeight,\r\n geodesic: options.geodesic,\r\n clickable: true,\r\n editable: false,\r\n visible: true\r\n };\r\n\r\n if(options.hasOwnProperty(\"clickable\"))\r\n polyline_options.clickable = options.clickable;\r\n\r\n if(options.hasOwnProperty(\"editable\"))\r\n polyline_options.editable = options.editable;\r\n\r\n if(options.hasOwnProperty(\"icons\"))\r\n polyline_options.icons = options.icons;\r\n\r\n if(options.hasOwnProperty(\"zIndex\"))\r\n polyline_options.zIndex = options.zIndex;\r\n\r\n var polyline = new google.maps.Polyline(polyline_options);\r\n\r\n var polyline_events = ['click', 'dblclick', 'mousedown', 'mousemove', 'mouseout', 'mouseover', 'mouseup', 'rightclick'];\r\n\r\n for (var ev = 0; ev < polyline_events.length; ev++) {\r\n (function(object, name) {\r\n if (options[name]) {\r\n google.maps.event.addListener(object, name, function(e){\r\n options[name].apply(this, [e]);\r\n });\r\n }\r\n })(polyline, polyline_events[ev]);\r\n }\r\n\r\n this.polylines.push(polyline);\r\n\r\n GMaps.fire('polyline_added', polyline, this);\r\n\r\n return polyline;\r\n };\r\n\r\n this.removePolyline = function(polyline) {\r\n for(var i = 0; i < this.polylines.length; i++) {\r\n if(this.polylines[i] === polyline) {\r\n this.polylines[i].setMap(null);\r\n this.polylines.splice(i, 1);\r\n\r\n GMaps.fire('polyline_removed', polyline, this);\r\n\r\n break;\r\n }\r\n }\r\n };\r\n\r\n this.removePolylines = function() {\r\n for (var i=0, item; item=self.polylines[i]; i++){\r\n item.setMap(null);\r\n }\r\n self.polylines = [];\r\n };\r\n\r\n this.drawCircle = function(options) {\r\n options = extend_object({\r\n map: this.map,\r\n center: new google.maps.LatLng(options.lat, options.lng)\r\n }, options);\r\n\r\n delete options.lat;\r\n delete options.lng;\r\n var polygon = new google.maps.Circle(options);\r\n\r\n var polygon_events = ['click', 'dblclick', 'mousedown', 'mousemove', 'mouseout', 'mouseover', 'mouseup', 'rightclick'];\r\n\r\n for (var ev = 0; ev < polygon_events.length; ev++) {\r\n (function(object, name) {\r\n if (options[name]) {\r\n google.maps.event.addListener(object, name, function(e){\r\n options[name].apply(this, [e]);\r\n });\r\n }\r\n })(polygon, polygon_events[ev]);\r\n }\r\n\r\n this.polygons.push(polygon);\r\n\r\n return polygon;\r\n };\r\n\r\n this.drawRectangle = function(options) {\r\n options = extend_object({\r\n map: this.map\r\n }, options);\r\n\r\n var latLngBounds = new google.maps.LatLngBounds(\r\n new google.maps.LatLng(options.bounds[0][0], options.bounds[0][1]),\r\n new google.maps.LatLng(options.bounds[1][0], options.bounds[1][1])\r\n );\r\n\r\n options.bounds = latLngBounds;\r\n\r\n var polygon = new google.maps.Rectangle(options);\r\n\r\n var polygon_events = ['click', 'dblclick', 'mousedown', 'mousemove', 'mouseout', 'mouseover', 'mouseup', 'rightclick'];\r\n\r\n for (var ev = 0; ev < polygon_events.length; ev++) {\r\n (function(object, name) {\r\n if (options[name]) {\r\n google.maps.event.addListener(object, name, function(e){\r\n options[name].apply(this, [e]);\r\n });\r\n }\r\n })(polygon, polygon_events[ev]);\r\n }\r\n\r\n this.polygons.push(polygon);\r\n\r\n return polygon;\r\n };\r\n\r\n this.drawPolygon = function(options) {\r\n var useGeoJSON = false;\r\n if(options.hasOwnProperty(\"useGeoJSON\"))\r\n useGeoJSON = options.useGeoJSON;\r\n\r\n delete options.useGeoJSON;\r\n\r\n options = extend_object({\r\n map: this.map\r\n }, options);\r\n\r\n if(useGeoJSON == false)\r\n options.paths = [options.paths.slice(0)];\r\n\r\n if(options.paths.length > 0) {\r\n if(options.paths[0].length > 0) {\r\n options.paths = array_flat(array_map(options.paths, arrayToLatLng, useGeoJSON));\r\n }\r\n }\r\n\r\n var polygon = new google.maps.Polygon(options);\r\n\r\n var polygon_events = ['click', 'dblclick', 'mousedown', 'mousemove', 'mouseout', 'mouseover', 'mouseup', 'rightclick'];\r\n\r\n for (var ev = 0; ev < polygon_events.length; ev++) {\r\n (function(object, name) {\r\n if (options[name]) {\r\n google.maps.event.addListener(object, name, function(e){\r\n options[name].apply(this, [e]);\r\n });\r\n }\r\n })(polygon, polygon_events[ev]);\r\n }\r\n\r\n this.polygons.push(polygon);\r\n\r\n GMaps.fire('polygon_added', polygon, this);\r\n\r\n return polygon;\r\n };\r\n\r\n this.removePolygon = function(polygon) {\r\n for(var i = 0; i < this.polygons.length; i++) {\r\n if(this.polygons[i] === polygon) {\r\n this.polygons[i].setMap(null);\r\n this.polygons.splice(i, 1);\r\n\r\n GMaps.fire('polygon_removed', polygon, this);\r\n\r\n break;\r\n }\r\n }\r\n };\r\n\r\n this.removePolygons = function() {\r\n for (var i=0, item; item=self.polygons[i]; i++){\r\n item.setMap(null);\r\n }\r\n self.polygons = [];\r\n };\r\n\r\n // Fusion Tables\r\n\r\n this.getFromFusionTables = function(options) {\r\n var events = options.events;\r\n\r\n delete options.events;\r\n\r\n var fusion_tables_options = options;\r\n\r\n var layer = new google.maps.FusionTablesLayer(fusion_tables_options);\r\n\r\n for (var ev in events) {\r\n (function(object, name) {\r\n google.maps.event.addListener(object, name, function(e){\r\n events[name].apply(this, [e]);\r\n });\r\n })(layer, ev);\r\n }\r\n\r\n this.layers.push(layer);\r\n\r\n return layer;\r\n };\r\n\r\n this.loadFromFusionTables = function(options) {\r\n var layer = this.getFromFusionTables(options);\r\n layer.setMap(this.map);\r\n\r\n return layer;\r\n };\r\n\r\n // KML\r\n\r\n this.getFromKML = function(options) {\r\n var url = options.url;\r\n var events = options.events;\r\n\r\n delete options.url;\r\n delete options.events;\r\n\r\n var kml_options = options;\r\n\r\n var layer = new google.maps.KmlLayer(url, kml_options);\r\n\r\n for (var ev in events) {\r\n (function(object, name) {\r\n google.maps.event.addListener(object, name, function(e){\r\n events[name].apply(this, [e]);\r\n });\r\n })(layer, ev);\r\n }\r\n\r\n this.layers.push(layer);\r\n\r\n return layer;\r\n };\r\n\r\n this.loadFromKML = function(options) {\r\n var layer = this.getFromKML(options);\r\n layer.setMap(this.map);\r\n\r\n return layer;\r\n };\r\n\r\n // Routes\r\n\r\n var travelMode, unitSystem;\r\n this.getRoutes = function(options) {\r\n switch (options.travelMode) {\r\n case 'bicycling':\r\n travelMode = google.maps.TravelMode.BICYCLING;\r\n break;\r\n case 'transit':\r\n travelMode = google.maps.TravelMode.TRANSIT;\r\n break;\r\n case 'driving':\r\n travelMode = google.maps.TravelMode.DRIVING;\r\n break;\r\n // case 'walking':\r\n default:\r\n travelMode = google.maps.TravelMode.WALKING;\r\n break;\r\n }\r\n\r\n if (options.unitSystem === 'imperial') {\r\n unitSystem = google.maps.UnitSystem.IMPERIAL;\r\n }\r\n else {\r\n unitSystem = google.maps.UnitSystem.METRIC;\r\n }\r\n\r\n var base_options = {\r\n avoidHighways: false,\r\n avoidTolls: false,\r\n optimizeWaypoints: false,\r\n waypoints: []\r\n };\r\n\r\n var request_options = extend_object(base_options, options);\r\n\r\n request_options.origin = /string/.test(typeof options.origin) ? options.origin : new google.maps.LatLng(options.origin[0], options.origin[1]);\r\n request_options.destination = /string/.test(typeof options.destination) ? options.destination : new google.maps.LatLng(options.destination[0], options.destination[1]);\r\n request_options.travelMode = travelMode;\r\n request_options.unitSystem = unitSystem;\r\n\r\n delete request_options.callback;\r\n\r\n var self = this;\r\n var service = new google.maps.DirectionsService();\r\n\r\n service.route(request_options, function(result, status) {\r\n if (status === google.maps.DirectionsStatus.OK) {\r\n for (var r in result.routes) {\r\n if (result.routes.hasOwnProperty(r)) {\r\n self.routes.push(result.routes[r]);\r\n }\r\n }\r\n }\r\n if (options.callback) {\r\n options.callback(self.routes);\r\n }\r\n });\r\n };\r\n\r\n this.removeRoutes = function() {\r\n this.routes = [];\r\n };\r\n\r\n this.getElevations = function(options) {\r\n options = extend_object({\r\n locations: [],\r\n path : false,\r\n samples : 256\r\n }, options);\r\n\r\n if(options.locations.length > 0) {\r\n if(options.locations[0].length > 0) {\r\n options.locations = array_flat(array_map([options.locations], arrayToLatLng, false));\r\n }\r\n }\r\n\r\n var callback = options.callback;\r\n delete options.callback;\r\n\r\n var service = new google.maps.ElevationService();\r\n\r\n //location request\r\n if (!options.path) {\r\n delete options.path;\r\n delete options.samples;\r\n service.getElevationForLocations(options, function(result, status){\r\n if (callback && typeof(callback) === \"function\") {\r\n callback(result, status);\r\n }\r\n });\r\n //path request\r\n } else {\r\n var pathRequest = {\r\n path : options.locations,\r\n samples : options.samples\r\n };\r\n\r\n service.getElevationAlongPath(pathRequest, function(result, status){\r\n if (callback && typeof(callback) === \"function\") {\r\n callback(result, status);\r\n }\r\n });\r\n }\r\n };\r\n\r\n // Alias for the method \"drawRoute\"\r\n this.cleanRoute = this.removePolylines;\r\n\r\n this.drawRoute = function(options) {\r\n var self = this;\r\n this.getRoutes({\r\n origin: options.origin,\r\n destination: options.destination,\r\n travelMode: options.travelMode,\r\n waypoints: options.waypoints,\r\n unitSystem: options.unitSystem,\r\n callback: function(e) {\r\n if (e.length > 0) {\r\n self.drawPolyline({\r\n path: e[e.length - 1].overview_path,\r\n strokeColor: options.strokeColor,\r\n strokeOpacity: options.strokeOpacity,\r\n strokeWeight: options.strokeWeight\r\n });\r\n if (options.callback) {\r\n options.callback(e[e.length - 1]);\r\n }\r\n }\r\n }\r\n });\r\n };\r\n\r\n this.travelRoute = function(options) {\r\n if (options.origin && options.destination) {\r\n this.getRoutes({\r\n origin: options.origin,\r\n destination: options.destination,\r\n travelMode: options.travelMode,\r\n waypoints : options.waypoints,\r\n callback: function(e) {\r\n //start callback\r\n if (e.length > 0 && options.start) {\r\n options.start(e[e.length - 1]);\r\n }\r\n\r\n //step callback\r\n if (e.length > 0 && options.step) {\r\n var route = e[e.length - 1];\r\n if (route.legs.length > 0) {\r\n var steps = route.legs[0].steps;\r\n for (var i=0, step; step=steps[i]; i++) {\r\n step.step_number = i;\r\n options.step(step, (route.legs[0].steps.length - 1));\r\n }\r\n }\r\n }\r\n\r\n //end callback\r\n if (e.length > 0 && options.end) {\r\n options.end(e[e.length - 1]);\r\n }\r\n }\r\n });\r\n }\r\n else if (options.route) {\r\n if (options.route.legs.length > 0) {\r\n var steps = options.route.legs[0].steps;\r\n for (var i=0, step; step=steps[i]; i++) {\r\n step.step_number = i;\r\n options.step(step);\r\n }\r\n }\r\n }\r\n };\r\n\r\n this.drawSteppedRoute = function(options) {\r\n if (options.origin && options.destination) {\r\n this.getRoutes({\r\n origin: options.origin,\r\n destination: options.destination,\r\n travelMode: options.travelMode,\r\n waypoints : options.waypoints,\r\n callback: function(e) {\r\n //start callback\r\n if (e.length > 0 && options.start) {\r\n options.start(e[e.length - 1]);\r\n }\r\n\r\n //step callback\r\n if (e.length > 0 && options.step) {\r\n var route = e[e.length - 1];\r\n if (route.legs.length > 0) {\r\n var steps = route.legs[0].steps;\r\n for (var i=0, step; step=steps[i]; i++) {\r\n step.step_number = i;\r\n self.drawPolyline({\r\n path: step.path,\r\n strokeColor: options.strokeColor,\r\n strokeOpacity: options.strokeOpacity,\r\n strokeWeight: options.strokeWeight\r\n });\r\n options.step(step, (route.legs[0].steps.length - 1));\r\n }\r\n }\r\n }\r\n\r\n //end callback\r\n if (e.length > 0 && options.end) {\r\n options.end(e[e.length - 1]);\r\n }\r\n }\r\n });\r\n }\r\n else if (options.route) {\r\n if (options.route.legs.length > 0) {\r\n var steps = options.route.legs[0].steps;\r\n for (var i=0, step; step=steps[i]; i++) {\r\n step.step_number = i;\r\n self.drawPolyline({\r\n path: step.path,\r\n strokeColor: options.strokeColor,\r\n strokeOpacity: options.strokeOpacity,\r\n strokeWeight: options.strokeWeight\r\n });\r\n options.step(step);\r\n }\r\n }\r\n }\r\n };\r\n\r\n // Geofence\r\n\r\n this.checkGeofence = function(lat, lng, fence) {\r\n return fence.containsLatLng(new google.maps.LatLng(lat, lng));\r\n };\r\n\r\n this.checkMarkerGeofence = function(marker, outside_callback) {\r\n if (marker.fences) {\r\n for (var i=0, fence; fence=marker.fences[i]; i++) {\r\n var pos = marker.getPosition();\r\n if (!self.checkGeofence(pos.lat(), pos.lng(), fence)) {\r\n outside_callback(marker, fence);\r\n }\r\n }\r\n }\r\n };\r\n\r\n // Layers\r\n\r\n this.addLayer = function(layerName, options) {\r\n //var default_layers = ['weather', 'clouds', 'traffic', 'transit', 'bicycling', 'panoramio', 'places'];\r\n options = options || {};\r\n var layer;\r\n\r\n switch(layerName) {\r\n case 'weather': this.singleLayers.weather = layer = new google.maps.weather.WeatherLayer();\r\n break;\r\n case 'clouds': this.singleLayers.clouds = layer = new google.maps.weather.CloudLayer();\r\n break;\r\n case 'traffic': this.singleLayers.traffic = layer = new google.maps.TrafficLayer();\r\n break;\r\n case 'transit': this.singleLayers.transit = layer = new google.maps.TransitLayer();\r\n break;\r\n case 'bicycling': this.singleLayers.bicycling = layer = new google.maps.BicyclingLayer();\r\n break;\r\n case 'panoramio':\r\n this.singleLayers.panoramio = layer = new google.maps.panoramio.PanoramioLayer();\r\n layer.setTag(options.filter);\r\n delete options.filter;\r\n\r\n //click event\r\n if(options.click) {\r\n google.maps.event.addListener(layer, 'click', function(event) {\r\n options.click(event);\r\n delete options.click;\r\n });\r\n }\r\n break;\r\n case 'places':\r\n this.singleLayers.places = layer = new google.maps.places.PlacesService(this.map);\r\n\r\n //search and nearbySearch callback, Both are the same\r\n if(options.search || options.nearbySearch) {\r\n var placeSearchRequest = {\r\n bounds : options.bounds || null,\r\n keyword : options.keyword || null,\r\n location : options.location || null,\r\n name : options.name || null,\r\n radius : options.radius || null,\r\n rankBy : options.rankBy || null,\r\n types : options.types || null\r\n };\r\n\r\n if(options.search) {\r\n layer.search(placeSearchRequest, options.search);\r\n }\r\n\r\n if(options.nearbySearch) {\r\n layer.nearbySearch(placeSearchRequest, options.nearbySearch);\r\n }\r\n }\r\n\r\n //textSearch callback\r\n if(options.textSearch) {\r\n var textSearchRequest = {\r\n bounds : options.bounds || null,\r\n location : options.location || null,\r\n query : options.query || null,\r\n radius : options.radius || null\r\n };\r\n\r\n layer.textSearch(textSearchRequest, options.textSearch);\r\n }\r\n break;\r\n }\r\n\r\n if(layer !== undefined) {\r\n if(typeof layer.setOptions == 'function') {\r\n layer.setOptions(options);\r\n }\r\n if(typeof layer.setMap == 'function') {\r\n layer.setMap(this.map);\r\n }\r\n\r\n return layer;\r\n }\r\n };\r\n\r\n this.removeLayer = function(layer) {\r\n if(typeof(layer) == \"string\" && this.singleLayers[layer] !== undefined) {\r\n this.singleLayers[layer].setMap(null);\r\n delete this.singleLayers[layer];\r\n }\r\n else {\r\n for(var i = 0; i < this.layers.length; i++) {\r\n if(this.layers[i] === layer) {\r\n this.layers[i].setMap(null);\r\n this.layers.splice(i, 1);\r\n\r\n break;\r\n }\r\n }\r\n }\r\n };\r\n\r\n // Static Maps\r\n\r\n this.toImage = function(options) {\r\n var options = options || {};\r\n var static_map_options = {};\r\n static_map_options['size'] = options['size'] || [this.el.clientWidth, this.el.clientHeight];\r\n static_map_options['lat'] = this.getCenter().lat();\r\n static_map_options['lng'] = this.getCenter().lng();\r\n\r\n if(this.markers.length > 0) {\r\n static_map_options['markers'] = [];\r\n for(var i=0; i < this.markers.length; i++) {\r\n static_map_options['markers'].push({\r\n lat: this.markers[i].getPosition().lat(),\r\n lng: this.markers[i].getPosition().lng()\r\n });\r\n }\r\n }\r\n\r\n if(this.polylines.length > 0) {\r\n var polyline = this.polylines[0];\r\n static_map_options['polyline'] = {};\r\n static_map_options['polyline']['path'] = google.maps.geometry.encoding.encodePath(polyline.getPath());\r\n static_map_options['polyline']['strokeColor'] = polyline.strokeColor\r\n static_map_options['polyline']['strokeOpacity'] = polyline.strokeOpacity\r\n static_map_options['polyline']['strokeWeight'] = polyline.strokeWeight\r\n }\r\n\r\n return GMaps.staticMapURL(static_map_options);\r\n };\r\n\r\n // Map Types\r\n\r\n this.addMapType = function(mapTypeId, options) {\r\n if(options.hasOwnProperty(\"getTileUrl\") && typeof(options[\"getTileUrl\"]) == \"function\") {\r\n options.tileSize = options.tileSize || new google.maps.Size(256, 256);\r\n\r\n var mapType = new google.maps.ImageMapType(options);\r\n\r\n this.map.mapTypes.set(mapTypeId, mapType);\r\n }\r\n else {\r\n throw \"'getTileUrl' function required.\";\r\n }\r\n };\r\n\r\n this.addOverlayMapType = function(options) {\r\n if(options.hasOwnProperty(\"getTile\") && typeof(options[\"getTile\"]) == \"function\") {\r\n var overlayMapTypeIndex = options.index;\r\n\r\n delete options.index;\r\n\r\n this.map.overlayMapTypes.insertAt(overlayMapTypeIndex, options);\r\n }\r\n else {\r\n throw \"'getTile' function required.\";\r\n }\r\n };\r\n\r\n this.removeOverlayMapType = function(overlayMapTypeIndex) {\r\n this.map.overlayMapTypes.removeAt(overlayMapTypeIndex);\r\n };\r\n\r\n // Styles\r\n\r\n this.addStyle = function(options) {\r\n var styledMapType = new google.maps.StyledMapType(options.styles, options.styledMapName);\r\n\r\n this.map.mapTypes.set(options.mapTypeId, styledMapType);\r\n };\r\n\r\n this.setStyle = function(mapTypeId) {\r\n this.map.setMapTypeId(mapTypeId);\r\n };\r\n\r\n // StreetView\r\n\r\n this.createPanorama = function(streetview_options) {\r\n if (!streetview_options.hasOwnProperty('lat') || !streetview_options.hasOwnProperty('lng')) {\r\n streetview_options.lat = this.getCenter().lat();\r\n streetview_options.lng = this.getCenter().lng();\r\n }\r\n\r\n this.panorama = GMaps.createPanorama(streetview_options);\r\n\r\n this.map.setStreetView(this.panorama);\r\n\r\n return this.panorama;\r\n };\r\n\r\n // Events\r\n\r\n this.on = function(event_name, handler) {\r\n return GMaps.on(event_name, this, handler);\r\n };\r\n\r\n this.off = function(event_name) {\r\n GMaps.off(event_name, this);\r\n };\r\n };\r\n\r\n GMaps.createPanorama = function(options) {\r\n var el = getElementById(options.el, options.context);\r\n\r\n options.position = new google.maps.LatLng(options.lat, options.lng);\r\n\r\n delete options.el;\r\n delete options.context;\r\n delete options.lat;\r\n delete options.lng;\r\n\r\n var streetview_events = ['closeclick', 'links_changed', 'pano_changed', 'position_changed', 'pov_changed', 'resize', 'visible_changed'];\r\n\r\n var streetview_options = extend_object({visible : true}, options);\r\n\r\n for(var i = 0; i < streetview_events.length; i++) {\r\n delete streetview_options[streetview_events[i]];\r\n }\r\n\r\n var panorama = new google.maps.StreetViewPanorama(el, streetview_options);\r\n\r\n for(var i = 0; i < streetview_events.length; i++) {\r\n (function(object, name) {\r\n if (options[name]) {\r\n google.maps.event.addListener(object, name, function(){\r\n options[name].apply(this);\r\n });\r\n }\r\n })(panorama, streetview_events[i]);\r\n }\r\n\r\n return panorama;\r\n };\r\n\r\n GMaps.Route = function(options) {\r\n this.map = options.map;\r\n this.route = options.route;\r\n this.step_count = 0;\r\n this.steps = this.route.legs[0].steps;\r\n this.steps_length = this.steps.length;\r\n\r\n this.polyline = this.map.drawPolyline({\r\n path: new google.maps.MVCArray(),\r\n strokeColor: options.strokeColor,\r\n strokeOpacity: options.strokeOpacity,\r\n strokeWeight: options.strokeWeight\r\n }).getPath();\r\n\r\n this.back = function() {\r\n if (this.step_count > 0) {\r\n this.step_count--;\r\n var path = this.route.legs[0].steps[this.step_count].path;\r\n for (var p in path){\r\n if (path.hasOwnProperty(p)){\r\n this.polyline.pop();\r\n }\r\n }\r\n }\r\n };\r\n\r\n this.forward = function() {\r\n if (this.step_count < this.steps_length) {\r\n var path = this.route.legs[0].steps[this.step_count].path;\r\n for (var p in path){\r\n if (path.hasOwnProperty(p)){\r\n this.polyline.push(path[p]);\r\n }\r\n }\r\n this.step_count++;\r\n }\r\n };\r\n };\r\n\r\n // Geolocation (Modern browsers only)\r\n\r\n GMaps.geolocate = function(options) {\r\n var complete_callback = options.always || options.complete;\r\n\r\n if (navigator.geolocation) {\r\n navigator.geolocation.getCurrentPosition(function(position) {\r\n options.success(position);\r\n\r\n if (complete_callback) {\r\n complete_callback();\r\n }\r\n }, function(error) {\r\n options.error(error);\r\n\r\n if (complete_callback) {\r\n complete_callback();\r\n }\r\n }, options.options);\r\n }\r\n else {\r\n options.not_supported();\r\n\r\n if (complete_callback) {\r\n complete_callback();\r\n }\r\n }\r\n };\r\n\r\n // Geocoding\r\n\r\n GMaps.geocode = function(options) {\r\n this.geocoder = new google.maps.Geocoder();\r\n var callback = options.callback;\r\n if (options.hasOwnProperty('lat') && options.hasOwnProperty('lng')) {\r\n options.latLng = new google.maps.LatLng(options.lat, options.lng);\r\n }\r\n\r\n delete options.lat;\r\n delete options.lng;\r\n delete options.callback;\r\n this.geocoder.geocode(options, function(results, status) {\r\n callback(results, status);\r\n });\r\n };\r\n\r\n // Static maps\r\n\r\n GMaps.staticMapURL = function(options){\r\n var parameters = [];\r\n var data;\r\n\r\n var static_root = 'http://maps.googleapis.com/maps/api/staticmap';\r\n if (options.url){\r\n static_root = options.url;\r\n delete options.url;\r\n }\r\n static_root += '?';\r\n\r\n var markers = options.markers;\r\n delete options.markers;\r\n if (!markers && options.marker){\r\n markers = [options.marker];\r\n delete options.marker;\r\n }\r\n\r\n var polyline = options.polyline;\r\n delete options.polyline;\r\n\r\n /** Map options **/\r\n if (options.center){\r\n parameters.push('center=' + options.center);\r\n delete options.center;\r\n }\r\n else if (options.address){\r\n parameters.push('center=' + options.address);\r\n delete options.address;\r\n }\r\n else if (options.lat){\r\n parameters.push(['center=', options.lat, ',', options.lng].join(''));\r\n delete options.lat;\r\n delete options.lng;\r\n }\r\n else if (options.visible){\r\n var visible = encodeURI(options.visible.join('|'));\r\n parameters.push('visible=' + visible);\r\n }\r\n\r\n var size = options.size;\r\n if (size){\r\n if (size.join){\r\n size = size.join('x');\r\n }\r\n delete options.size;\r\n }\r\n else {\r\n size = '630x300';\r\n }\r\n parameters.push('size=' + size);\r\n\r\n if (!options.zoom){\r\n options.zoom = 15;\r\n }\r\n\r\n var sensor = options.hasOwnProperty('sensor') ? !!options.sensor : true;\r\n delete options.sensor;\r\n parameters.push('sensor=' + sensor);\r\n\r\n for (var param in options){\r\n if (options.hasOwnProperty(param)){\r\n parameters.push(param + '=' + options[param]);\r\n }\r\n }\r\n\r\n /** Markers **/\r\n if (markers){\r\n var marker, loc;\r\n\r\n for (var i=0; data=markers[i]; i++){\r\n marker = [];\r\n\r\n if (data.size && data.size !== 'normal'){\r\n marker.push('size:' + data.size);\r\n }\r\n else if (data.icon){\r\n marker.push('icon:' + encodeURI(data.icon));\r\n }\r\n\r\n if (data.color){\r\n marker.push('color:' + data.color.replace('#', '0x'));\r\n }\r\n\r\n if (data.label){\r\n marker.push('label:' + data.label[0].toUpperCase());\r\n }\r\n\r\n loc = (data.address ? data.address : data.lat + ',' + data.lng);\r\n\r\n if (marker.length || i === 0){\r\n marker.push(loc);\r\n marker = marker.join('|');\r\n parameters.push('markers=' + encodeURI(marker));\r\n }\r\n // New marker without styles\r\n else {\r\n marker = parameters.pop() + encodeURI('|' + loc);\r\n parameters.push(marker);\r\n }\r\n }\r\n }\r\n\r\n /** Polylines **/\r\n function parseColor(color, opacity){\r\n if (color[0] === '#'){\r\n color = color.replace('#', '0x');\r\n\r\n if (opacity){\r\n opacity = parseFloat(opacity);\r\n opacity = Math.min(1, Math.max(opacity, 0));\r\n if (opacity === 0){\r\n return '0x00000000';\r\n }\r\n opacity = (opacity * 255).toString(16);\r\n if (opacity.length === 1){\r\n opacity += opacity;\r\n }\r\n\r\n color = color.slice(0,8) + opacity;\r\n }\r\n }\r\n return color;\r\n }\r\n\r\n if (polyline){\r\n data = polyline;\r\n polyline = [];\r\n\r\n if (data.strokeWeight){\r\n polyline.push('weight:' + parseInt(data.strokeWeight, 10));\r\n }\r\n\r\n if (data.strokeColor){\r\n var color = parseColor(data.strokeColor, data.strokeOpacity);\r\n polyline.push('color:' + color);\r\n }\r\n\r\n if (data.fillColor){\r\n var fillcolor = parseColor(data.fillColor, data.fillOpacity);\r\n polyline.push('fillcolor:' + fillcolor);\r\n }\r\n\r\n var path = data.path;\r\n if (path.join){\r\n for (var j=0, pos; pos=path[j]; j++){\r\n polyline.push(pos.join(','));\r\n }\r\n }\r\n else {\r\n polyline.push('enc:' + path);\r\n }\r\n\r\n polyline = polyline.join('|');\r\n parameters.push('path=' + encodeURI(polyline));\r\n }\r\n\r\n parameters = parameters.join('&');\r\n return static_root + parameters;\r\n };\r\n\r\n // Events\r\n\r\n GMaps.custom_events = ['marker_added', 'marker_removed', 'polyline_added', 'polyline_removed', 'polygon_added', 'polygon_removed', 'geolocated', 'geolocation_failed'];\r\n\r\n GMaps.on = function(event_name, object, handler) {\r\n if (GMaps.custom_events.indexOf(event_name) == -1) {\r\n return google.maps.event.addListener(object, event_name, handler);\r\n }\r\n else {\r\n var registered_event = {\r\n handler : handler,\r\n eventName : event_name\r\n };\r\n\r\n object.registered_events[event_name] = object.registered_events[event_name] || [];\r\n object.registered_events[event_name].push(registered_event);\r\n\r\n return registered_event;\r\n }\r\n };\r\n\r\n GMaps.off = function(event_name, object) {\r\n if (GMaps.custom_events.indexOf(event_name) == -1) {\r\n google.maps.event.clearListeners(object, event_name);\r\n }\r\n else {\r\n object.registered_events[event_name] = [];\r\n }\r\n };\r\n\r\n GMaps.fire = function(event_name, object, scope) {\r\n if (GMaps.custom_events.indexOf(event_name) == -1) {\r\n google.maps.event.trigger(object, event_name, Array.prototype.slice.apply(arguments).slice(2));\r\n }\r\n else {\r\n if(event_name in scope.registered_events) {\r\n var firing_events = scope.registered_events[event_name];\r\n\r\n for(var i = 0; i < firing_events.length; i++) {\r\n (function(handler, scope, object) {\r\n handler.apply(scope, [object]);\r\n })(firing_events[i]['handler'], scope, object);\r\n }\r\n }\r\n }\r\n };\r\n\r\n //==========================\r\n // Polygon containsLatLng\r\n // https://github.com/tparkin/Google-Maps-Point-in-Polygon\r\n // Poygon getBounds extension - google-maps-extensions\r\n // http://code.google.com/p/google-maps-extensions/source/browse/google.maps.Polygon.getBounds.js\r\n if (!google.maps.Polygon.prototype.getBounds) {\r\n google.maps.Polygon.prototype.getBounds = function(latLng) {\r\n var bounds = new google.maps.LatLngBounds();\r\n var paths = this.getPaths();\r\n var path;\r\n\r\n for (var p = 0; p < paths.getLength(); p++) {\r\n path = paths.getAt(p);\r\n for (var i = 0; i < path.getLength(); i++) {\r\n bounds.extend(path.getAt(i));\r\n }\r\n }\r\n\r\n return bounds;\r\n };\r\n }\r\n\r\n if (!google.maps.Polygon.prototype.containsLatLng) {\r\n // Polygon containsLatLng - method to determine if a latLng is within a polygon\r\n google.maps.Polygon.prototype.containsLatLng = function(latLng) {\r\n // Exclude points outside of bounds as there is no way they are in the poly\r\n var bounds = this.getBounds();\r\n\r\n if (bounds !== null && !bounds.contains(latLng)) {\r\n return false;\r\n }\r\n\r\n // Raycast point in polygon method\r\n var inPoly = false;\r\n\r\n var numPaths = this.getPaths().getLength();\r\n for (var p = 0; p < numPaths; p++) {\r\n var path = this.getPaths().getAt(p);\r\n var numPoints = path.getLength();\r\n var j = numPoints - 1;\r\n\r\n for (var i = 0; i < numPoints; i++) {\r\n var vertex1 = path.getAt(i);\r\n var vertex2 = path.getAt(j);\r\n\r\n if (vertex1.lng() < latLng.lng() && vertex2.lng() >= latLng.lng() || vertex2.lng() < latLng.lng() && vertex1.lng() >= latLng.lng()) {\r\n if (vertex1.lat() + (latLng.lng() - vertex1.lng()) / (vertex2.lng() - vertex1.lng()) * (vertex2.lat() - vertex1.lat()) < latLng.lat()) {\r\n inPoly = !inPoly;\r\n }\r\n }\r\n\r\n j = i;\r\n }\r\n }\r\n\r\n return inPoly;\r\n };\r\n }\r\n\r\n google.maps.LatLngBounds.prototype.containsLatLng = function(latLng) {\r\n return this.contains(latLng);\r\n };\r\n\r\n google.maps.Marker.prototype.setFences = function(fences) {\r\n this.fences = fences;\r\n };\r\n\r\n google.maps.Marker.prototype.addFence = function(fence) {\r\n this.fences.push(fence);\r\n };\r\n\r\n return GMaps;\r\n }(this));\r\n\r\n var coordsToLatLngs = function(coords, useGeoJSON) {\r\n var first_coord = coords[0];\r\n var second_coord = coords[1];\r\n\r\n if(useGeoJSON) {\r\n first_coord = coords[1];\r\n second_coord = coords[0];\r\n }\r\n\r\n return new google.maps.LatLng(first_coord, second_coord);\r\n };\r\n\r\n var arrayToLatLng = function(coords, useGeoJSON) {\r\n for(var i=0; i < coords.length; i++) {\r\n if(coords[i].length > 0 && typeof(coords[i][0]) != \"number\") {\r\n coords[i] = arrayToLatLng(coords[i], useGeoJSON);\r\n }\r\n else {\r\n coords[i] = coordsToLatLngs(coords[i], useGeoJSON);\r\n }\r\n }\r\n\r\n return coords;\r\n };\r\n\r\n var extend_object = function(obj, new_obj) {\r\n if(obj === new_obj) return obj;\r\n\r\n for(var name in new_obj) {\r\n obj[name] = new_obj[name];\r\n }\r\n\r\n return obj;\r\n };\r\n\r\n var replace_object = function(obj, replace) {\r\n if(obj === replace) return obj;\r\n\r\n for(var name in replace) {\r\n if(obj[name] != undefined)\r\n obj[name] = replace[name];\r\n }\r\n\r\n return obj;\r\n };\r\n\r\n var array_map = function(array, callback) {\r\n var original_callback_params = Array.prototype.slice.call(arguments, 2);\r\n\r\n if (Array.prototype.map && array.map === Array.prototype.map) {\r\n return Array.prototype.map.call(array, function(item) {\r\n callback_params = original_callback_params;\r\n callback_params.splice(0, 0, item);\r\n\r\n return callback.apply(this, callback_params);\r\n });\r\n }\r\n else {\r\n var array_return = [];\r\n var array_length = array.length;\r\n\r\n for(var i = 0; i < array_length; i++) {\r\n callback_params = original_callback_params;\r\n callback_params = callback_params.splice(0, 0, array[i]);\r\n array_return.push(callback.apply(this, callback_params));\r\n }\r\n\r\n return array_return;\r\n }\r\n };\r\n\r\n var array_flat = function(array) {\r\n new_array = [];\r\n\r\n for(var i=0; i < array.length; i++) {\r\n new_array = new_array.concat(array[i]);\r\n }\r\n\r\n return new_array;\r\n };\r\n}\r\n\r\nelse {\r\n throw 'Google Maps API is required. Please register the following JavaScript library http://maps.google.com/maps/api/js?sensor=true.'\r\n}\r\n","/*!\n * fancyBox - jQuery Plugin\n * version: 2.1.5 (Fri, 14 Jun 2013)\n * @requires jQuery v1.6 or later\n *\n * Examples at http://fancyapps.com/fancybox/\n * License: www.fancyapps.com/fancybox/#license\n *\n * Copyright 2012 Janis Skarnelis - janis@fancyapps.com\n *\n */\n\n(function (window, document, $, undefined) {\n\t\"use strict\";\n\n\tvar H = $(\"html\"),\n\t\tW = $(window),\n\t\tD = $(document),\n\t\tF = $.fancybox = function () {\n\t\t\tF.open.apply( this, arguments );\n\t\t},\n\t\tIE = navigator.userAgent.match(/msie/i),\n\t\tdidUpdate\t= null,\n\t\tisTouch\t\t= document.createTouch !== undefined,\n\n\t\tisQuery\t= function(obj) {\n\t\t\treturn obj && obj.hasOwnProperty && obj instanceof $;\n\t\t},\n\t\tisString = function(str) {\n\t\t\treturn str && $.type(str) === \"string\";\n\t\t},\n\t\tisPercentage = function(str) {\n\t\t\treturn isString(str) && str.indexOf('%') > 0;\n\t\t},\n\t\tisScrollable = function(el) {\n\t\t\treturn (el && !(el.style.overflow && el.style.overflow === 'hidden') && ((el.clientWidth && el.scrollWidth > el.clientWidth) || (el.clientHeight && el.scrollHeight > el.clientHeight)));\n\t\t},\n\t\tgetScalar = function(orig, dim) {\n\t\t\tvar value = parseInt(orig, 10) || 0;\n\n\t\t\tif (dim && isPercentage(orig)) {\n\t\t\t\tvalue = F.getViewport()[ dim ] / 100 * value;\n\t\t\t}\n\n\t\t\treturn Math.ceil(value);\n\t\t},\n\t\tgetValue = function(value, dim) {\n\t\t\treturn getScalar(value, dim) + 'px';\n\t\t};\n\n\t$.extend(F, {\n\t\t// The current version of fancyBox\n\t\tversion: '2.1.5',\n\n\t\tdefaults: {\n\t\t\tpadding : 15,\n\t\t\tmargin : 20,\n\n\t\t\twidth : 800,\n\t\t\theight : 600,\n\t\t\tminWidth : 100,\n\t\t\tminHeight : 100,\n\t\t\tmaxWidth : 9999,\n\t\t\tmaxHeight : 9999,\n\t\t\tpixelRatio: 1, // Set to 2 for retina display support\n\n\t\t\tautoSize : true,\n\t\t\tautoHeight : false,\n\t\t\tautoWidth : false,\n\n\t\t\tautoResize : true,\n\t\t\tautoCenter : !isTouch,\n\t\t\tfitToView : true,\n\t\t\taspectRatio : false,\n\t\t\ttopRatio : 0.5,\n\t\t\tleftRatio : 0.5,\n\n\t\t\tscrolling : 'auto', // 'auto', 'yes' or 'no'\n\t\t\twrapCSS : '',\n\n\t\t\tarrows : true,\n\t\t\tcloseBtn : true,\n\t\t\tcloseClick : false,\n\t\t\tnextClick : false,\n\t\t\tmouseWheel : true,\n\t\t\tautoPlay : false,\n\t\t\tplaySpeed : 3000,\n\t\t\tpreload : 3,\n\t\t\tmodal : false,\n\t\t\tloop : true,\n\n\t\t\tajax : {\n\t\t\t\tdataType : 'html',\n\t\t\t\theaders : { 'X-fancyBox': true }\n\t\t\t},\n\t\t\tiframe : {\n\t\t\t\tscrolling : 'auto',\n\t\t\t\tpreload : true\n\t\t\t},\n\t\t\tswf : {\n\t\t\t\twmode: 'transparent',\n\t\t\t\tallowfullscreen : 'true',\n\t\t\t\tallowscriptaccess : 'always'\n\t\t\t},\n\n\t\t\tkeys : {\n\t\t\t\tnext : {\n\t\t\t\t\t13 : 'left', // enter\n\t\t\t\t\t34 : 'up', // page down\n\t\t\t\t\t39 : 'left', // right arrow\n\t\t\t\t\t40 : 'up' // down arrow\n\t\t\t\t},\n\t\t\t\tprev : {\n\t\t\t\t\t8 : 'right', // backspace\n\t\t\t\t\t33 : 'down', // page up\n\t\t\t\t\t37 : 'right', // left arrow\n\t\t\t\t\t38 : 'down' // up arrow\n\t\t\t\t},\n\t\t\t\tclose : [27], // escape key\n\t\t\t\tplay : [32], // space - start/stop slideshow\n\t\t\t\ttoggle : [70] // letter \"f\" - toggle fullscreen\n\t\t\t},\n\n\t\t\tdirection : {\n\t\t\t\tnext : 'left',\n\t\t\t\tprev : 'right'\n\t\t\t},\n\n\t\t\tscrollOutside : true,\n\n\t\t\t// Override some properties\n\t\t\tindex : 0,\n\t\t\ttype : null,\n\t\t\thref : null,\n\t\t\tcontent : null,\n\t\t\ttitle : null,\n\n\t\t\t// HTML templates\n\t\t\ttpl: {\n\t\t\t\twrap : '
    ',\n\t\t\t\timage : '\"\"',\n\t\t\t\tiframe : '',\n\t\t\t\terror : '

    The requested content cannot be loaded.
    Please try again later.

    ',\n\t\t\t\tcloseBtn : '',\n\t\t\t\tnext : '',\n\t\t\t\tprev : ''\n\t\t\t},\n\n\t\t\t// Properties for each animation type\n\t\t\t// Opening fancyBox\n\t\t\topenEffect : 'fade', // 'elastic', 'fade' or 'none'\n\t\t\topenSpeed : 250,\n\t\t\topenEasing : 'swing',\n\t\t\topenOpacity : true,\n\t\t\topenMethod : 'zoomIn',\n\n\t\t\t// Closing fancyBox\n\t\t\tcloseEffect : 'fade', // 'elastic', 'fade' or 'none'\n\t\t\tcloseSpeed : 250,\n\t\t\tcloseEasing : 'swing',\n\t\t\tcloseOpacity : true,\n\t\t\tcloseMethod : 'zoomOut',\n\n\t\t\t// Changing next gallery item\n\t\t\tnextEffect : 'elastic', // 'elastic', 'fade' or 'none'\n\t\t\tnextSpeed : 250,\n\t\t\tnextEasing : 'swing',\n\t\t\tnextMethod : 'changeIn',\n\n\t\t\t// Changing previous gallery item\n\t\t\tprevEffect : 'elastic', // 'elastic', 'fade' or 'none'\n\t\t\tprevSpeed : 250,\n\t\t\tprevEasing : 'swing',\n\t\t\tprevMethod : 'changeOut',\n\n\t\t\t// Enable default helpers\n\t\t\thelpers : {\n\t\t\t\toverlay : true,\n\t\t\t\ttitle : true\n\t\t\t},\n\n\t\t\t// Callbacks\n\t\t\tonCancel : $.noop, // If canceling\n\t\t\tbeforeLoad : $.noop, // Before loading\n\t\t\tafterLoad : $.noop, // After loading\n\t\t\tbeforeShow : $.noop, // Before changing in current item\n\t\t\tafterShow : $.noop, // After opening\n\t\t\tbeforeChange : $.noop, // Before changing gallery item\n\t\t\tbeforeClose : $.noop, // Before closing\n\t\t\tafterClose : $.noop // After closing\n\t\t},\n\n\t\t//Current state\n\t\tgroup : {}, // Selected group\n\t\topts : {}, // Group options\n\t\tprevious : null, // Previous element\n\t\tcoming : null, // Element being loaded\n\t\tcurrent : null, // Currently loaded element\n\t\tisActive : false, // Is activated\n\t\tisOpen : false, // Is currently open\n\t\tisOpened : false, // Have been fully opened at least once\n\n\t\twrap : null,\n\t\tskin : null,\n\t\touter : null,\n\t\tinner : null,\n\n\t\tplayer : {\n\t\t\ttimer : null,\n\t\t\tisActive : false\n\t\t},\n\n\t\t// Loaders\n\t\tajaxLoad : null,\n\t\timgPreload : null,\n\n\t\t// Some collections\n\t\ttransitions : {},\n\t\thelpers : {},\n\n\t\t/*\n\t\t *\tStatic methods\n\t\t */\n\n\t\topen: function (group, opts) {\n\t\t\tif (!group) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (!$.isPlainObject(opts)) {\n\t\t\t\topts = {};\n\t\t\t}\n\n\t\t\t// Close if already active\n\t\t\tif (false === F.close(true)) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Normalize group\n\t\t\tif (!$.isArray(group)) {\n\t\t\t\tgroup = isQuery(group) ? $(group).get() : [group];\n\t\t\t}\n\n\t\t\t// Recheck if the type of each element is `object` and set content type (image, ajax, etc)\n\t\t\t$.each(group, function(i, element) {\n\t\t\t\tvar obj = {},\n\t\t\t\t\thref,\n\t\t\t\t\ttitle,\n\t\t\t\t\tcontent,\n\t\t\t\t\ttype,\n\t\t\t\t\trez,\n\t\t\t\t\threfParts,\n\t\t\t\t\tselector;\n\n\t\t\t\tif ($.type(element) === \"object\") {\n\t\t\t\t\t// Check if is DOM element\n\t\t\t\t\tif (element.nodeType) {\n\t\t\t\t\t\telement = $(element);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (isQuery(element)) {\n\t\t\t\t\t\tobj = {\n\t\t\t\t\t\t\thref : element.data('fancybox-href') || element.attr('href'),\n\t\t\t\t\t\t\ttitle : element.data('fancybox-title') || element.attr('title'),\n\t\t\t\t\t\t\tisDom : true,\n\t\t\t\t\t\t\telement : element\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tif ($.metadata) {\n\t\t\t\t\t\t\t$.extend(true, obj, element.metadata());\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\tobj = element;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\thref = opts.href || obj.href || (isString(element) ? element : null);\n\t\t\t\ttitle = opts.title !== undefined ? opts.title : obj.title || '';\n\n\t\t\t\tcontent = opts.content || obj.content;\n\t\t\t\ttype = content ? 'html' : (opts.type || obj.type);\n\n\t\t\t\tif (!type && obj.isDom) {\n\t\t\t\t\ttype = element.data('fancybox-type');\n\n\t\t\t\t\tif (!type) {\n\t\t\t\t\t\trez = element.prop('class').match(/fancybox\\.(\\w+)/);\n\t\t\t\t\t\ttype = rez ? rez[1] : null;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (isString(href)) {\n\t\t\t\t\t// Try to guess the content type\n\t\t\t\t\tif (!type) {\n\t\t\t\t\t\tif (F.isImage(href)) {\n\t\t\t\t\t\t\ttype = 'image';\n\n\t\t\t\t\t\t} else if (F.isSWF(href)) {\n\t\t\t\t\t\t\ttype = 'swf';\n\n\t\t\t\t\t\t} else if (href.charAt(0) === '#') {\n\t\t\t\t\t\t\ttype = 'inline';\n\n\t\t\t\t\t\t} else if (isString(element)) {\n\t\t\t\t\t\t\ttype = 'html';\n\t\t\t\t\t\t\tcontent = element;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Split url into two pieces with source url and content selector, e.g,\n\t\t\t\t\t// \"/mypage.html #my_id\" will load \"/mypage.html\" and display element having id \"my_id\"\n\t\t\t\t\tif (type === 'ajax') {\n\t\t\t\t\t\threfParts = href.split(/\\s+/, 2);\n\t\t\t\t\t\thref = hrefParts.shift();\n\t\t\t\t\t\tselector = hrefParts.shift();\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (!content) {\n\t\t\t\t\tif (type === 'inline') {\n\t\t\t\t\t\tif (href) {\n\t\t\t\t\t\t\tcontent = $( isString(href) ? href.replace(/.*(?=#[^\\s]+$)/, '') : href ); //strip for ie7\n\n\t\t\t\t\t\t} else if (obj.isDom) {\n\t\t\t\t\t\t\tcontent = element;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} else if (type === 'html') {\n\t\t\t\t\t\tcontent = href;\n\n\t\t\t\t\t} else if (!type && !href && obj.isDom) {\n\t\t\t\t\t\ttype = 'inline';\n\t\t\t\t\t\tcontent = element;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t$.extend(obj, {\n\t\t\t\t\thref : href,\n\t\t\t\t\ttype : type,\n\t\t\t\t\tcontent : content,\n\t\t\t\t\ttitle : title,\n\t\t\t\t\tselector : selector\n\t\t\t\t});\n\n\t\t\t\tgroup[ i ] = obj;\n\t\t\t});\n\n\t\t\t// Extend the defaults\n\t\t\tF.opts = $.extend(true, {}, F.defaults, opts);\n\n\t\t\t// All options are merged recursive except keys\n\t\t\tif (opts.keys !== undefined) {\n\t\t\t\tF.opts.keys = opts.keys ? $.extend({}, F.defaults.keys, opts.keys) : false;\n\t\t\t}\n\n\t\t\tF.group = group;\n\n\t\t\treturn F._start(F.opts.index);\n\t\t},\n\n\t\t// Cancel image loading or abort ajax request\n\t\tcancel: function () {\n\t\t\tvar coming = F.coming;\n\n\t\t\tif (!coming || false === F.trigger('onCancel')) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tF.hideLoading();\n\n\t\t\tif (F.ajaxLoad) {\n\t\t\t\tF.ajaxLoad.abort();\n\t\t\t}\n\n\t\t\tF.ajaxLoad = null;\n\n\t\t\tif (F.imgPreload) {\n\t\t\t\tF.imgPreload.onload = F.imgPreload.onerror = null;\n\t\t\t}\n\n\t\t\tif (coming.wrap) {\n\t\t\t\tcoming.wrap.stop(true, true).trigger('onReset').remove();\n\t\t\t}\n\n\t\t\tF.coming = null;\n\n\t\t\t// If the first item has been canceled, then clear everything\n\t\t\tif (!F.current) {\n\t\t\t\tF._afterZoomOut( coming );\n\t\t\t}\n\t\t},\n\n\t\t// Start closing animation if is open; remove immediately if opening/closing\n\t\tclose: function (event) {\n\t\t\tF.cancel();\n\n\t\t\tif (false === F.trigger('beforeClose')) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tF.unbindEvents();\n\n\t\t\tif (!F.isActive) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (!F.isOpen || event === true) {\n\t\t\t\t$('.fancybox-wrap').stop(true).trigger('onReset').remove();\n\n\t\t\t\tF._afterZoomOut();\n\n\t\t\t} else {\n\t\t\t\tF.isOpen = F.isOpened = false;\n\t\t\t\tF.isClosing = true;\n\n\t\t\t\t$('.fancybox-item, .fancybox-nav').remove();\n\n\t\t\t\tF.wrap.stop(true, true).removeClass('fancybox-opened');\n\n\t\t\t\tF.transitions[ F.current.closeMethod ]();\n\t\t\t}\n\t\t},\n\n\t\t// Manage slideshow:\n\t\t// $.fancybox.play(); - toggle slideshow\n\t\t// $.fancybox.play( true ); - start\n\t\t// $.fancybox.play( false ); - stop\n\t\tplay: function ( action ) {\n\t\t\tvar clear = function () {\n\t\t\t\t\tclearTimeout(F.player.timer);\n\t\t\t\t},\n\t\t\t\tset = function () {\n\t\t\t\t\tclear();\n\n\t\t\t\t\tif (F.current && F.player.isActive) {\n\t\t\t\t\t\tF.player.timer = setTimeout(F.next, F.current.playSpeed);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tstop = function () {\n\t\t\t\t\tclear();\n\n\t\t\t\t\tD.unbind('.player');\n\n\t\t\t\t\tF.player.isActive = false;\n\n\t\t\t\t\tF.trigger('onPlayEnd');\n\t\t\t\t},\n\t\t\t\tstart = function () {\n\t\t\t\t\tif (F.current && (F.current.loop || F.current.index < F.group.length - 1)) {\n\t\t\t\t\t\tF.player.isActive = true;\n\n\t\t\t\t\t\tD.bind({\n\t\t\t\t\t\t\t'onCancel.player beforeClose.player' : stop,\n\t\t\t\t\t\t\t'onUpdate.player' : set,\n\t\t\t\t\t\t\t'beforeLoad.player' : clear\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tset();\n\n\t\t\t\t\t\tF.trigger('onPlayStart');\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\tif (action === true || (!F.player.isActive && action !== false)) {\n\t\t\t\tstart();\n\t\t\t} else {\n\t\t\t\tstop();\n\t\t\t}\n\t\t},\n\n\t\t// Navigate to next gallery item\n\t\tnext: function ( direction ) {\n\t\t\tvar current = F.current;\n\n\t\t\tif (current) {\n\t\t\t\tif (!isString(direction)) {\n\t\t\t\t\tdirection = current.direction.next;\n\t\t\t\t}\n\n\t\t\t\tF.jumpto(current.index + 1, direction, 'next');\n\t\t\t}\n\t\t},\n\n\t\t// Navigate to previous gallery item\n\t\tprev: function ( direction ) {\n\t\t\tvar current = F.current;\n\n\t\t\tif (current) {\n\t\t\t\tif (!isString(direction)) {\n\t\t\t\t\tdirection = current.direction.prev;\n\t\t\t\t}\n\n\t\t\t\tF.jumpto(current.index - 1, direction, 'prev');\n\t\t\t}\n\t\t},\n\n\t\t// Navigate to gallery item by index\n\t\tjumpto: function ( index, direction, router ) {\n\t\t\tvar current = F.current;\n\n\t\t\tif (!current) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tindex = getScalar(index);\n\n\t\t\tF.direction = direction || current.direction[ (index >= current.index ? 'next' : 'prev') ];\n\t\t\tF.router = router || 'jumpto';\n\n\t\t\tif (current.loop) {\n\t\t\t\tif (index < 0) {\n\t\t\t\t\tindex = current.group.length + (index % current.group.length);\n\t\t\t\t}\n\n\t\t\t\tindex = index % current.group.length;\n\t\t\t}\n\n\t\t\tif (current.group[ index ] !== undefined) {\n\t\t\t\tF.cancel();\n\n\t\t\t\tF._start(index);\n\t\t\t}\n\t\t},\n\n\t\t// Center inside viewport and toggle position type to fixed or absolute if needed\n\t\treposition: function (e, onlyAbsolute) {\n\t\t\tvar current = F.current,\n\t\t\t\twrap = current ? current.wrap : null,\n\t\t\t\tpos;\n\n\t\t\tif (wrap) {\n\t\t\t\tpos = F._getPosition(onlyAbsolute);\n\n\t\t\t\tif (e && e.type === 'scroll') {\n\t\t\t\t\tdelete pos.position;\n\n\t\t\t\t\twrap.stop(true, true).animate(pos, 200);\n\n\t\t\t\t} else {\n\t\t\t\t\twrap.css(pos);\n\n\t\t\t\t\tcurrent.pos = $.extend({}, current.dim, pos);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tupdate: function (e) {\n\t\t\tvar type = (e && e.type),\n\t\t\t\tanyway = !type || type === 'orientationchange';\n\n\t\t\tif (anyway) {\n\t\t\t\tclearTimeout(didUpdate);\n\n\t\t\t\tdidUpdate = null;\n\t\t\t}\n\n\t\t\tif (!F.isOpen || didUpdate) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tdidUpdate = setTimeout(function() {\n\t\t\t\tvar current = F.current;\n\n\t\t\t\tif (!current || F.isClosing) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tF.wrap.removeClass('fancybox-tmp');\n\n\t\t\t\tif (anyway || type === 'load' || (type === 'resize' && current.autoResize)) {\n\t\t\t\t\tF._setDimension();\n\t\t\t\t}\n\n\t\t\t\tif (!(type === 'scroll' && current.canShrink)) {\n\t\t\t\t\tF.reposition(e);\n\t\t\t\t}\n\n\t\t\t\tF.trigger('onUpdate');\n\n\t\t\t\tdidUpdate = null;\n\n\t\t\t}, (anyway && !isTouch ? 0 : 300));\n\t\t},\n\n\t\t// Shrink content to fit inside viewport or restore if resized\n\t\ttoggle: function ( action ) {\n\t\t\tif (F.isOpen) {\n\t\t\t\tF.current.fitToView = $.type(action) === \"boolean\" ? action : !F.current.fitToView;\n\n\t\t\t\t// Help browser to restore document dimensions\n\t\t\t\tif (isTouch) {\n\t\t\t\t\tF.wrap.removeAttr('style').addClass('fancybox-tmp');\n\n\t\t\t\t\tF.trigger('onUpdate');\n\t\t\t\t}\n\n\t\t\t\tF.update();\n\t\t\t}\n\t\t},\n\n\t\thideLoading: function () {\n\t\t\tD.unbind('.loading');\n\n\t\t\t$('#fancybox-loading').remove();\n\t\t},\n\n\t\tshowLoading: function () {\n\t\t\tvar el, viewport;\n\n\t\t\tF.hideLoading();\n\n\t\t\tel = $('
    ').click(F.cancel).appendTo('body');\n\n\t\t\t// If user will press the escape-button, the request will be canceled\n\t\t\tD.bind('keydown.loading', function(e) {\n\t\t\t\tif ((e.which || e.keyCode) === 27) {\n\t\t\t\t\te.preventDefault();\n\n\t\t\t\t\tF.cancel();\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tif (!F.defaults.fixed) {\n\t\t\t\tviewport = F.getViewport();\n\n\t\t\t\tel.css({\n\t\t\t\t\tposition : 'absolute',\n\t\t\t\t\ttop : (viewport.h * 0.5) + viewport.y,\n\t\t\t\t\tleft : (viewport.w * 0.5) + viewport.x\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\n\t\tgetViewport: function () {\n\t\t\tvar locked = (F.current && F.current.locked) || false,\n\t\t\t\trez = {\n\t\t\t\t\tx: W.scrollLeft(),\n\t\t\t\t\ty: W.scrollTop()\n\t\t\t\t};\n\n\t\t\tif (locked) {\n\t\t\t\trez.w = locked[0].clientWidth;\n\t\t\t\trez.h = locked[0].clientHeight;\n\n\t\t\t} else {\n\t\t\t\t// See http://bugs.jquery.com/ticket/6724\n\t\t\t\trez.w = isTouch && window.innerWidth ? window.innerWidth : W.width();\n\t\t\t\trez.h = isTouch && window.innerHeight ? window.innerHeight : W.height();\n\t\t\t}\n\n\t\t\treturn rez;\n\t\t},\n\n\t\t// Unbind the keyboard / clicking actions\n\t\tunbindEvents: function () {\n\t\t\tif (F.wrap && isQuery(F.wrap)) {\n\t\t\t\tF.wrap.unbind('.fb');\n\t\t\t}\n\n\t\t\tD.unbind('.fb');\n\t\t\tW.unbind('.fb');\n\t\t},\n\n\t\tbindEvents: function () {\n\t\t\tvar current = F.current,\n\t\t\t\tkeys;\n\n\t\t\tif (!current) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Changing document height on iOS devices triggers a 'resize' event,\n\t\t\t// that can change document height... repeating infinitely\n\t\t\tW.bind('orientationchange.fb' + (isTouch ? '' : ' resize.fb') + (current.autoCenter && !current.locked ? ' scroll.fb' : ''), F.update);\n\n\t\t\tkeys = current.keys;\n\n\t\t\tif (keys) {\n\t\t\t\tD.bind('keydown.fb', function (e) {\n\t\t\t\t\tvar code = e.which || e.keyCode,\n\t\t\t\t\t\ttarget = e.target || e.srcElement;\n\n\t\t\t\t\t// Skip esc key if loading, because showLoading will cancel preloading\n\t\t\t\t\tif (code === 27 && F.coming) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Ignore key combinations and key events within form elements\n\t\t\t\t\tif (!e.ctrlKey && !e.altKey && !e.shiftKey && !e.metaKey && !(target && (target.type || $(target).is('[contenteditable]')))) {\n\t\t\t\t\t\t$.each(keys, function(i, val) {\n\t\t\t\t\t\t\tif (current.group.length > 1 && val[ code ] !== undefined) {\n\t\t\t\t\t\t\t\tF[ i ]( val[ code ] );\n\n\t\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif ($.inArray(code, val) > -1) {\n\t\t\t\t\t\t\t\tF[ i ] ();\n\n\t\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif ($.fn.mousewheel && current.mouseWheel) {\n\t\t\t\tF.wrap.bind('mousewheel.fb', function (e, delta, deltaX, deltaY) {\n\t\t\t\t\tvar target = e.target || null,\n\t\t\t\t\t\tparent = $(target),\n\t\t\t\t\t\tcanScroll = false;\n\n\t\t\t\t\twhile (parent.length) {\n\t\t\t\t\t\tif (canScroll || parent.is('.fancybox-skin') || parent.is('.fancybox-wrap')) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tcanScroll = isScrollable( parent[0] );\n\t\t\t\t\t\tparent = $(parent).parent();\n\t\t\t\t\t}\n\n\t\t\t\t\tif (delta !== 0 && !canScroll) {\n\t\t\t\t\t\tif (F.group.length > 1 && !current.canShrink) {\n\t\t\t\t\t\t\tif (deltaY > 0 || deltaX > 0) {\n\t\t\t\t\t\t\t\tF.prev( deltaY > 0 ? 'down' : 'left' );\n\n\t\t\t\t\t\t\t} else if (deltaY < 0 || deltaX < 0) {\n\t\t\t\t\t\t\t\tF.next( deltaY < 0 ? 'up' : 'right' );\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\n\t\ttrigger: function (event, o) {\n\t\t\tvar ret, obj = o || F.coming || F.current;\n\n\t\t\tif (!obj) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ($.isFunction( obj[event] )) {\n\t\t\t\tret = obj[event].apply(obj, Array.prototype.slice.call(arguments, 1));\n\t\t\t}\n\n\t\t\tif (ret === false) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tif (obj.helpers) {\n\t\t\t\t$.each(obj.helpers, function (helper, opts) {\n\t\t\t\t\tif (opts && F.helpers[helper] && $.isFunction(F.helpers[helper][event])) {\n\t\t\t\t\t\tF.helpers[helper][event]($.extend(true, {}, F.helpers[helper].defaults, opts), obj);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tD.trigger(event);\n\t\t},\n\n\t\tisImage: function (str) {\n\t\t\treturn isString(str) && str.match(/(^data:image\\/.*,)|(\\.(jp(e|g|eg)|gif|png|bmp|webp|svg)((\\?|#).*)?$)/i);\n\t\t},\n\n\t\tisSWF: function (str) {\n\t\t\treturn isString(str) && str.match(/\\.(swf)((\\?|#).*)?$/i);\n\t\t},\n\n\t\t_start: function (index) {\n\t\t\tvar coming = {},\n\t\t\t\tobj,\n\t\t\t\thref,\n\t\t\t\ttype,\n\t\t\t\tmargin,\n\t\t\t\tpadding;\n\n\t\t\tindex = getScalar( index );\n\t\t\tobj = F.group[ index ] || null;\n\n\t\t\tif (!obj) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tcoming = $.extend(true, {}, F.opts, obj);\n\n\t\t\t// Convert margin and padding properties to array - top, right, bottom, left\n\t\t\tmargin = coming.margin;\n\t\t\tpadding = coming.padding;\n\n\t\t\tif ($.type(margin) === 'number') {\n\t\t\t\tcoming.margin = [margin, margin, margin, margin];\n\t\t\t}\n\n\t\t\tif ($.type(padding) === 'number') {\n\t\t\t\tcoming.padding = [padding, padding, padding, padding];\n\t\t\t}\n\n\t\t\t// 'modal' propery is just a shortcut\n\t\t\tif (coming.modal) {\n\t\t\t\t$.extend(true, coming, {\n\t\t\t\t\tcloseBtn : false,\n\t\t\t\t\tcloseClick : false,\n\t\t\t\t\tnextClick : false,\n\t\t\t\t\tarrows : false,\n\t\t\t\t\tmouseWheel : false,\n\t\t\t\t\tkeys : null,\n\t\t\t\t\thelpers: {\n\t\t\t\t\t\toverlay : {\n\t\t\t\t\t\t\tcloseClick : false\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// 'autoSize' property is a shortcut, too\n\t\t\tif (coming.autoSize) {\n\t\t\t\tcoming.autoWidth = coming.autoHeight = true;\n\t\t\t}\n\n\t\t\tif (coming.width === 'auto') {\n\t\t\t\tcoming.autoWidth = true;\n\t\t\t}\n\n\t\t\tif (coming.height === 'auto') {\n\t\t\t\tcoming.autoHeight = true;\n\t\t\t}\n\n\t\t\t/*\n\t\t\t * Add reference to the group, so it`s possible to access from callbacks, example:\n\t\t\t * afterLoad : function() {\n\t\t\t * this.title = 'Image ' + (this.index + 1) + ' of ' + this.group.length + (this.title ? ' - ' + this.title : '');\n\t\t\t * }\n\t\t\t */\n\n\t\t\tcoming.group = F.group;\n\t\t\tcoming.index = index;\n\n\t\t\t// Give a chance for callback or helpers to update coming item (type, title, etc)\n\t\t\tF.coming = coming;\n\n\t\t\tif (false === F.trigger('beforeLoad')) {\n\t\t\t\tF.coming = null;\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\ttype = coming.type;\n\t\t\thref = coming.href;\n\n\t\t\tif (!type) {\n\t\t\t\tF.coming = null;\n\n\t\t\t\t//If we can not determine content type then drop silently or display next/prev item if looping through gallery\n\t\t\t\tif (F.current && F.router && F.router !== 'jumpto') {\n\t\t\t\t\tF.current.index = index;\n\n\t\t\t\t\treturn F[ F.router ]( F.direction );\n\t\t\t\t}\n\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tF.isActive = true;\n\n\t\t\tif (type === 'image' || type === 'swf') {\n\t\t\t\tcoming.autoHeight = coming.autoWidth = false;\n\t\t\t\tcoming.scrolling = 'visible';\n\t\t\t}\n\n\t\t\tif (type === 'image') {\n\t\t\t\tcoming.aspectRatio = true;\n\t\t\t}\n\n\t\t\tif (type === 'iframe' && isTouch) {\n\t\t\t\tcoming.scrolling = 'scroll';\n\t\t\t}\n\n\t\t\t// Build the neccessary markup\n\t\t\tcoming.wrap = $(coming.tpl.wrap).addClass('fancybox-' + (isTouch ? 'mobile' : 'desktop') + ' fancybox-type-' + type + ' fancybox-tmp ' + coming.wrapCSS).appendTo( coming.parent || 'body' );\n\n\t\t\t$.extend(coming, {\n\t\t\t\tskin : $('.fancybox-skin', coming.wrap),\n\t\t\t\touter : $('.fancybox-outer', coming.wrap),\n\t\t\t\tinner : $('.fancybox-inner', coming.wrap)\n\t\t\t});\n\n\t\t\t$.each([\"Top\", \"Right\", \"Bottom\", \"Left\"], function(i, v) {\n\t\t\t\tcoming.skin.css('padding' + v, getValue(coming.padding[ i ]));\n\t\t\t});\n\n\t\t\tF.trigger('onReady');\n\n\t\t\t// Check before try to load; 'inline' and 'html' types need content, others - href\n\t\t\tif (type === 'inline' || type === 'html') {\n\t\t\t\tif (!coming.content || !coming.content.length) {\n\t\t\t\t\treturn F._error( 'content' );\n\t\t\t\t}\n\n\t\t\t} else if (!href) {\n\t\t\t\treturn F._error( 'href' );\n\t\t\t}\n\n\t\t\tif (type === 'image') {\n\t\t\t\tF._loadImage();\n\n\t\t\t} else if (type === 'ajax') {\n\t\t\t\tF._loadAjax();\n\n\t\t\t} else if (type === 'iframe') {\n\t\t\t\tF._loadIframe();\n\n\t\t\t} else {\n\t\t\t\tF._afterLoad();\n\t\t\t}\n\t\t},\n\n\t\t_error: function ( type ) {\n\t\t\t$.extend(F.coming, {\n\t\t\t\ttype : 'html',\n\t\t\t\tautoWidth : true,\n\t\t\t\tautoHeight : true,\n\t\t\t\tminWidth : 0,\n\t\t\t\tminHeight : 0,\n\t\t\t\tscrolling : 'no',\n\t\t\t\thasError : type,\n\t\t\t\tcontent : F.coming.tpl.error\n\t\t\t});\n\n\t\t\tF._afterLoad();\n\t\t},\n\n\t\t_loadImage: function () {\n\t\t\t// Reset preload image so it is later possible to check \"complete\" property\n\t\t\tvar img = F.imgPreload = new Image();\n\n\t\t\timg.onload = function () {\n\t\t\t\tthis.onload = this.onerror = null;\n\n\t\t\t\tF.coming.width = this.width / F.opts.pixelRatio;\n\t\t\t\tF.coming.height = this.height / F.opts.pixelRatio;\n\n\t\t\t\tF._afterLoad();\n\t\t\t};\n\n\t\t\timg.onerror = function () {\n\t\t\t\tthis.onload = this.onerror = null;\n\n\t\t\t\tF._error( 'image' );\n\t\t\t};\n\n\t\t\timg.src = F.coming.href;\n\n\t\t\tif (img.complete !== true) {\n\t\t\t\tF.showLoading();\n\t\t\t}\n\t\t},\n\n\t\t_loadAjax: function () {\n\t\t\tvar coming = F.coming;\n\n\t\t\tF.showLoading();\n\n\t\t\tF.ajaxLoad = $.ajax($.extend({}, coming.ajax, {\n\t\t\t\turl: coming.href,\n\t\t\t\terror: function (jqXHR, textStatus) {\n\t\t\t\t\tif (F.coming && textStatus !== 'abort') {\n\t\t\t\t\t\tF._error( 'ajax', jqXHR );\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\tF.hideLoading();\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tsuccess: function (data, textStatus) {\n\t\t\t\t\tif (textStatus === 'success') {\n\t\t\t\t\t\tcoming.content = data;\n\n\t\t\t\t\t\tF._afterLoad();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}));\n\t\t},\n\n\t\t_loadIframe: function() {\n\t\t\tvar coming = F.coming,\n\t\t\t\tiframe = $(coming.tpl.iframe.replace(/\\{rnd\\}/g, new Date().getTime()))\n\t\t\t\t\t.attr('scrolling', isTouch ? 'auto' : coming.iframe.scrolling)\n\t\t\t\t\t.attr('src', coming.href);\n\n\t\t\t// This helps IE\n\t\t\t$(coming.wrap).bind('onReset', function () {\n\t\t\t\ttry {\n\t\t\t\t\t$(this).find('iframe').hide().attr('src', '//about:blank').end().empty();\n\t\t\t\t} catch (e) {}\n\t\t\t});\n\n\t\t\tif (coming.iframe.preload) {\n\t\t\t\tF.showLoading();\n\n\t\t\t\tiframe.one('load', function() {\n\t\t\t\t\t$(this).data('ready', 1);\n\n\t\t\t\t\t// iOS will lose scrolling if we resize\n\t\t\t\t\tif (!isTouch) {\n\t\t\t\t\t\t$(this).bind('load.fb', F.update);\n\t\t\t\t\t}\n\n\t\t\t\t\t// Without this trick:\n\t\t\t\t\t// - iframe won't scroll on iOS devices\n\t\t\t\t\t// - IE7 sometimes displays empty iframe\n\t\t\t\t\t$(this).parents('.fancybox-wrap').width('100%').removeClass('fancybox-tmp').show();\n\n\t\t\t\t\tF._afterLoad();\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tcoming.content = iframe.appendTo( coming.inner );\n\n\t\t\tif (!coming.iframe.preload) {\n\t\t\t\tF._afterLoad();\n\t\t\t}\n\t\t},\n\n\t\t_preloadImages: function() {\n\t\t\tvar group = F.group,\n\t\t\t\tcurrent = F.current,\n\t\t\t\tlen = group.length,\n\t\t\t\tcnt = current.preload ? Math.min(current.preload, len - 1) : 0,\n\t\t\t\titem,\n\t\t\t\ti;\n\n\t\t\tfor (i = 1; i <= cnt; i += 1) {\n\t\t\t\titem = group[ (current.index + i ) % len ];\n\n\t\t\t\tif (item.type === 'image' && item.href) {\n\t\t\t\t\tnew Image().src = item.href;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t_afterLoad: function () {\n\t\t\tvar coming = F.coming,\n\t\t\t\tprevious = F.current,\n\t\t\t\tplaceholder = 'fancybox-placeholder',\n\t\t\t\tcurrent,\n\t\t\t\tcontent,\n\t\t\t\ttype,\n\t\t\t\tscrolling,\n\t\t\t\thref,\n\t\t\t\tembed;\n\n\t\t\tF.hideLoading();\n\n\t\t\tif (!coming || F.isActive === false) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (false === F.trigger('afterLoad', coming, previous)) {\n\t\t\t\tcoming.wrap.stop(true).trigger('onReset').remove();\n\n\t\t\t\tF.coming = null;\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (previous) {\n\t\t\t\tF.trigger('beforeChange', previous);\n\n\t\t\t\tprevious.wrap.stop(true).removeClass('fancybox-opened')\n\t\t\t\t\t.find('.fancybox-item, .fancybox-nav')\n\t\t\t\t\t.remove();\n\t\t\t}\n\n\t\t\tF.unbindEvents();\n\n\t\t\tcurrent = coming;\n\t\t\tcontent = coming.content;\n\t\t\ttype = coming.type;\n\t\t\tscrolling = coming.scrolling;\n\n\t\t\t$.extend(F, {\n\t\t\t\twrap : current.wrap,\n\t\t\t\tskin : current.skin,\n\t\t\t\touter : current.outer,\n\t\t\t\tinner : current.inner,\n\t\t\t\tcurrent : current,\n\t\t\t\tprevious : previous\n\t\t\t});\n\n\t\t\thref = current.href;\n\n\t\t\tswitch (type) {\n\t\t\t\tcase 'inline':\n\t\t\t\tcase 'ajax':\n\t\t\t\tcase 'html':\n\t\t\t\t\tif (current.selector) {\n\t\t\t\t\t\tcontent = $('
    ').html(content).find(current.selector);\n\n\t\t\t\t\t} else if (isQuery(content)) {\n\t\t\t\t\t\tif (!content.data(placeholder)) {\n\t\t\t\t\t\t\tcontent.data(placeholder, $('
    ').insertAfter( content ).hide() );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tcontent = content.show().detach();\n\n\t\t\t\t\t\tcurrent.wrap.bind('onReset', function () {\n\t\t\t\t\t\t\tif ($(this).find(content).length) {\n\t\t\t\t\t\t\t\tcontent.hide().replaceAll( content.data(placeholder) ).data(placeholder, false);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\t\tcase 'image':\n\t\t\t\t\tcontent = current.tpl.image.replace('{href}', href);\n\t\t\t\tbreak;\n\n\t\t\t\tcase 'swf':\n\t\t\t\t\tcontent = '';\n\t\t\t\t\tembed = '';\n\n\t\t\t\t\t$.each(current.swf, function(name, val) {\n\t\t\t\t\t\tcontent += '';\n\t\t\t\t\t\tembed += ' ' + name + '=\"' + val + '\"';\n\t\t\t\t\t});\n\n\t\t\t\t\tcontent += '';\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tif (!(isQuery(content) && content.parent().is(current.inner))) {\n\t\t\t\tcurrent.inner.append( content );\n\t\t\t}\n\n\t\t\t// Give a chance for helpers or callbacks to update elements\n\t\t\tF.trigger('beforeShow');\n\n\t\t\t// Set scrolling before calculating dimensions\n\t\t\tcurrent.inner.css('overflow', scrolling === 'yes' ? 'scroll' : (scrolling === 'no' ? 'hidden' : scrolling));\n\n\t\t\t// Set initial dimensions and start position\n\t\t\tF._setDimension();\n\n\t\t\tF.reposition();\n\n\t\t\tF.isOpen = false;\n\t\t\tF.coming = null;\n\n\t\t\tF.bindEvents();\n\n\t\t\tif (!F.isOpened) {\n\t\t\t\t$('.fancybox-wrap').not( current.wrap ).stop(true).trigger('onReset').remove();\n\n\t\t\t} else if (previous.prevMethod) {\n\t\t\t\tF.transitions[ previous.prevMethod ]();\n\t\t\t}\n\n\t\t\tF.transitions[ F.isOpened ? current.nextMethod : current.openMethod ]();\n\n\t\t\tF._preloadImages();\n\t\t},\n\n\t\t_setDimension: function () {\n\t\t\tvar viewport = F.getViewport(),\n\t\t\t\tsteps = 0,\n\t\t\t\tcanShrink = false,\n\t\t\t\tcanExpand = false,\n\t\t\t\twrap = F.wrap,\n\t\t\t\tskin = F.skin,\n\t\t\t\tinner = F.inner,\n\t\t\t\tcurrent = F.current,\n\t\t\t\twidth = current.width,\n\t\t\t\theight = current.height,\n\t\t\t\tminWidth = current.minWidth,\n\t\t\t\tminHeight = current.minHeight,\n\t\t\t\tmaxWidth = current.maxWidth,\n\t\t\t\tmaxHeight = current.maxHeight,\n\t\t\t\tscrolling = current.scrolling,\n\t\t\t\tscrollOut = current.scrollOutside ? current.scrollbarWidth : 0,\n\t\t\t\tmargin = current.margin,\n\t\t\t\twMargin = getScalar(margin[1] + margin[3]),\n\t\t\t\thMargin = getScalar(margin[0] + margin[2]),\n\t\t\t\twPadding,\n\t\t\t\thPadding,\n\t\t\t\twSpace,\n\t\t\t\thSpace,\n\t\t\t\torigWidth,\n\t\t\t\torigHeight,\n\t\t\t\torigMaxWidth,\n\t\t\t\torigMaxHeight,\n\t\t\t\tratio,\n\t\t\t\twidth_,\n\t\t\t\theight_,\n\t\t\t\tmaxWidth_,\n\t\t\t\tmaxHeight_,\n\t\t\t\tiframe,\n\t\t\t\tbody;\n\n\t\t\t// Reset dimensions so we could re-check actual size\n\t\t\twrap.add(skin).add(inner).width('auto').height('auto').removeClass('fancybox-tmp');\n\n\t\t\twPadding = getScalar(skin.outerWidth(true) - skin.width());\n\t\t\thPadding = getScalar(skin.outerHeight(true) - skin.height());\n\n\t\t\t// Any space between content and viewport (margin, padding, border, title)\n\t\t\twSpace = wMargin + wPadding;\n\t\t\thSpace = hMargin + hPadding;\n\n\t\t\torigWidth = isPercentage(width) ? (viewport.w - wSpace) * getScalar(width) / 100 : width;\n\t\t\torigHeight = isPercentage(height) ? (viewport.h - hSpace) * getScalar(height) / 100 : height;\n\n\t\t\tif (current.type === 'iframe') {\n\t\t\t\tiframe = current.content;\n\n\t\t\t\tif (current.autoHeight && iframe.data('ready') === 1) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tif (iframe[0].contentWindow.document.location) {\n\t\t\t\t\t\t\tinner.width( origWidth ).height(9999);\n\n\t\t\t\t\t\t\tbody = iframe.contents().find('body');\n\n\t\t\t\t\t\t\tif (scrollOut) {\n\t\t\t\t\t\t\t\tbody.css('overflow-x', 'hidden');\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\torigHeight = body.outerHeight(true);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} catch (e) {}\n\t\t\t\t}\n\n\t\t\t} else if (current.autoWidth || current.autoHeight) {\n\t\t\t\tinner.addClass( 'fancybox-tmp' );\n\n\t\t\t\t// Set width or height in case we need to calculate only one dimension\n\t\t\t\tif (!current.autoWidth) {\n\t\t\t\t\tinner.width( origWidth );\n\t\t\t\t}\n\n\t\t\t\tif (!current.autoHeight) {\n\t\t\t\t\tinner.height( origHeight );\n\t\t\t\t}\n\n\t\t\t\tif (current.autoWidth) {\n\t\t\t\t\torigWidth = inner.width();\n\t\t\t\t}\n\n\t\t\t\tif (current.autoHeight) {\n\t\t\t\t\torigHeight = inner.height();\n\t\t\t\t}\n\n\t\t\t\tinner.removeClass( 'fancybox-tmp' );\n\t\t\t}\n\n\t\t\twidth = getScalar( origWidth );\n\t\t\theight = getScalar( origHeight );\n\n\t\t\tratio = origWidth / origHeight;\n\n\t\t\t// Calculations for the content\n\t\t\tminWidth = getScalar(isPercentage(minWidth) ? getScalar(minWidth, 'w') - wSpace : minWidth);\n\t\t\tmaxWidth = getScalar(isPercentage(maxWidth) ? getScalar(maxWidth, 'w') - wSpace : maxWidth);\n\n\t\t\tminHeight = getScalar(isPercentage(minHeight) ? getScalar(minHeight, 'h') - hSpace : minHeight);\n\t\t\tmaxHeight = getScalar(isPercentage(maxHeight) ? getScalar(maxHeight, 'h') - hSpace : maxHeight);\n\n\t\t\t// These will be used to determine if wrap can fit in the viewport\n\t\t\torigMaxWidth = maxWidth;\n\t\t\torigMaxHeight = maxHeight;\n\n\t\t\tif (current.fitToView) {\n\t\t\t\tmaxWidth = Math.min(viewport.w - wSpace, maxWidth);\n\t\t\t\tmaxHeight = Math.min(viewport.h - hSpace, maxHeight);\n\t\t\t}\n\n\t\t\tmaxWidth_ = viewport.w - wMargin;\n\t\t\tmaxHeight_ = viewport.h - hMargin;\n\n\t\t\tif (current.aspectRatio) {\n\t\t\t\tif (width > maxWidth) {\n\t\t\t\t\twidth = maxWidth;\n\t\t\t\t\theight = getScalar(width / ratio);\n\t\t\t\t}\n\n\t\t\t\tif (height > maxHeight) {\n\t\t\t\t\theight = maxHeight;\n\t\t\t\t\twidth = getScalar(height * ratio);\n\t\t\t\t}\n\n\t\t\t\tif (width < minWidth) {\n\t\t\t\t\twidth = minWidth;\n\t\t\t\t\theight = getScalar(width / ratio);\n\t\t\t\t}\n\n\t\t\t\tif (height < minHeight) {\n\t\t\t\t\theight = minHeight;\n\t\t\t\t\twidth = getScalar(height * ratio);\n\t\t\t\t}\n\n\t\t\t} else {\n\t\t\t\twidth = Math.max(minWidth, Math.min(width, maxWidth));\n\n\t\t\t\tif (current.autoHeight && current.type !== 'iframe') {\n\t\t\t\t\tinner.width( width );\n\n\t\t\t\t\theight = inner.height();\n\t\t\t\t}\n\n\t\t\t\theight = Math.max(minHeight, Math.min(height, maxHeight));\n\t\t\t}\n\n\t\t\t// Try to fit inside viewport (including the title)\n\t\t\tif (current.fitToView) {\n\t\t\t\tinner.width( width ).height( height );\n\n\t\t\t\twrap.width( width + wPadding );\n\n\t\t\t\t// Real wrap dimensions\n\t\t\t\twidth_ = wrap.width();\n\t\t\t\theight_ = wrap.height();\n\n\t\t\t\tif (current.aspectRatio) {\n\t\t\t\t\twhile ((width_ > maxWidth_ || height_ > maxHeight_) && width > minWidth && height > minHeight) {\n\t\t\t\t\t\tif (steps++ > 19) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\theight = Math.max(minHeight, Math.min(maxHeight, height - 10));\n\t\t\t\t\t\twidth = getScalar(height * ratio);\n\n\t\t\t\t\t\tif (width < minWidth) {\n\t\t\t\t\t\t\twidth = minWidth;\n\t\t\t\t\t\t\theight = getScalar(width / ratio);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (width > maxWidth) {\n\t\t\t\t\t\t\twidth = maxWidth;\n\t\t\t\t\t\t\theight = getScalar(width / ratio);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tinner.width( width ).height( height );\n\n\t\t\t\t\t\twrap.width( width + wPadding );\n\n\t\t\t\t\t\twidth_ = wrap.width();\n\t\t\t\t\t\theight_ = wrap.height();\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\t\t\t\t\twidth = Math.max(minWidth, Math.min(width, width - (width_ - maxWidth_)));\n\t\t\t\t\theight = Math.max(minHeight, Math.min(height, height - (height_ - maxHeight_)));\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (scrollOut && scrolling === 'auto' && height < origHeight && (width + wPadding + scrollOut) < maxWidth_) {\n\t\t\t\twidth += scrollOut;\n\t\t\t}\n\n\t\t\tinner.width( width ).height( height );\n\n\t\t\twrap.width( width + wPadding );\n\n\t\t\twidth_ = wrap.width();\n\t\t\theight_ = wrap.height();\n\n\t\t\tcanShrink = (width_ > maxWidth_ || height_ > maxHeight_) && width > minWidth && height > minHeight;\n\t\t\tcanExpand = current.aspectRatio ? (width < origMaxWidth && height < origMaxHeight && width < origWidth && height < origHeight) : ((width < origMaxWidth || height < origMaxHeight) && (width < origWidth || height < origHeight));\n\n\t\t\t$.extend(current, {\n\t\t\t\tdim : {\n\t\t\t\t\twidth\t: getValue( width_ ),\n\t\t\t\t\theight\t: getValue( height_ )\n\t\t\t\t},\n\t\t\t\torigWidth : origWidth,\n\t\t\t\torigHeight : origHeight,\n\t\t\t\tcanShrink : canShrink,\n\t\t\t\tcanExpand : canExpand,\n\t\t\t\twPadding : wPadding,\n\t\t\t\thPadding : hPadding,\n\t\t\t\twrapSpace : height_ - skin.outerHeight(true),\n\t\t\t\tskinSpace : skin.height() - height\n\t\t\t});\n\n\t\t\tif (!iframe && current.autoHeight && height > minHeight && height < maxHeight && !canExpand) {\n\t\t\t\tinner.height('auto');\n\t\t\t}\n\t\t},\n\n\t\t_getPosition: function (onlyAbsolute) {\n\t\t\tvar current = F.current,\n\t\t\t\tviewport = F.getViewport(),\n\t\t\t\tmargin = current.margin,\n\t\t\t\twidth = F.wrap.width() + margin[1] + margin[3],\n\t\t\t\theight = F.wrap.height() + margin[0] + margin[2],\n\t\t\t\trez = {\n\t\t\t\t\tposition: 'absolute',\n\t\t\t\t\ttop : margin[0],\n\t\t\t\t\tleft : margin[3]\n\t\t\t\t};\n\n\t\t\tif (current.autoCenter && current.fixed && !onlyAbsolute && height <= viewport.h && width <= viewport.w) {\n\t\t\t\trez.position = 'fixed';\n\n\t\t\t} else if (!current.locked) {\n\t\t\t\trez.top += viewport.y;\n\t\t\t\trez.left += viewport.x;\n\t\t\t}\n\n\t\t\trez.top = getValue(Math.max(rez.top, rez.top + ((viewport.h - height) * current.topRatio)));\n\t\t\trez.left = getValue(Math.max(rez.left, rez.left + ((viewport.w - width) * current.leftRatio)));\n\n\t\t\treturn rez;\n\t\t},\n\n\t\t_afterZoomIn: function () {\n\t\t\tvar current = F.current;\n\n\t\t\tif (!current) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tF.isOpen = F.isOpened = true;\n\n\t\t\tF.wrap.css('overflow', 'visible').addClass('fancybox-opened');\n\n\t\t\tF.update();\n\n\t\t\t// Assign a click event\n\t\t\tif ( current.closeClick || (current.nextClick && F.group.length > 1) ) {\n\t\t\t\tF.inner.css('cursor', 'pointer').bind('click.fb', function(e) {\n\t\t\t\t\tif (!$(e.target).is('a') && !$(e.target).parent().is('a')) {\n\t\t\t\t\t\te.preventDefault();\n\n\t\t\t\t\t\tF[ current.closeClick ? 'close' : 'next' ]();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// Create a close button\n\t\t\tif (current.closeBtn) {\n\t\t\t\t$(current.tpl.closeBtn).appendTo(F.skin).bind('click.fb', function(e) {\n\t\t\t\t\te.preventDefault();\n\n\t\t\t\t\tF.close();\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// Create navigation arrows\n\t\t\tif (current.arrows && F.group.length > 1) {\n\t\t\t\tif (current.loop || current.index > 0) {\n\t\t\t\t\t$(current.tpl.prev).appendTo(F.outer).bind('click.fb', F.prev);\n\t\t\t\t}\n\n\t\t\t\tif (current.loop || current.index < F.group.length - 1) {\n\t\t\t\t\t$(current.tpl.next).appendTo(F.outer).bind('click.fb', F.next);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tF.trigger('afterShow');\n\n\t\t\t// Stop the slideshow if this is the last item\n\t\t\tif (!current.loop && current.index === current.group.length - 1) {\n\t\t\t\tF.play( false );\n\n\t\t\t} else if (F.opts.autoPlay && !F.player.isActive) {\n\t\t\t\tF.opts.autoPlay = false;\n\n\t\t\t\tF.play();\n\t\t\t}\n\t\t},\n\n\t\t_afterZoomOut: function ( obj ) {\n\t\t\tobj = obj || F.current;\n\n\t\t\t$('.fancybox-wrap').trigger('onReset').remove();\n\n\t\t\t$.extend(F, {\n\t\t\t\tgroup : {},\n\t\t\t\topts : {},\n\t\t\t\trouter : false,\n\t\t\t\tcurrent : null,\n\t\t\t\tisActive : false,\n\t\t\t\tisOpened : false,\n\t\t\t\tisOpen : false,\n\t\t\t\tisClosing : false,\n\t\t\t\twrap : null,\n\t\t\t\tskin : null,\n\t\t\t\touter : null,\n\t\t\t\tinner : null\n\t\t\t});\n\n\t\t\tF.trigger('afterClose', obj);\n\t\t}\n\t});\n\n\t/*\n\t *\tDefault transitions\n\t */\n\n\tF.transitions = {\n\t\tgetOrigPosition: function () {\n\t\t\tvar current = F.current,\n\t\t\t\telement = current.element,\n\t\t\t\torig = current.orig,\n\t\t\t\tpos = {},\n\t\t\t\twidth = 50,\n\t\t\t\theight = 50,\n\t\t\t\thPadding = current.hPadding,\n\t\t\t\twPadding = current.wPadding,\n\t\t\t\tviewport = F.getViewport();\n\n\t\t\tif (!orig && current.isDom && element.is(':visible')) {\n\t\t\t\torig = element.find('img:first');\n\n\t\t\t\tif (!orig.length) {\n\t\t\t\t\torig = element;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (isQuery(orig)) {\n\t\t\t\tpos = orig.offset();\n\n\t\t\t\tif (orig.is('img')) {\n\t\t\t\t\twidth = orig.outerWidth();\n\t\t\t\t\theight = orig.outerHeight();\n\t\t\t\t}\n\n\t\t\t} else {\n\t\t\t\tpos.top = viewport.y + (viewport.h - height) * current.topRatio;\n\t\t\t\tpos.left = viewport.x + (viewport.w - width) * current.leftRatio;\n\t\t\t}\n\n\t\t\tif (F.wrap.css('position') === 'fixed' || current.locked) {\n\t\t\t\tpos.top -= viewport.y;\n\t\t\t\tpos.left -= viewport.x;\n\t\t\t}\n\n\t\t\tpos = {\n\t\t\t\ttop : getValue(pos.top - hPadding * current.topRatio),\n\t\t\t\tleft : getValue(pos.left - wPadding * current.leftRatio),\n\t\t\t\twidth : getValue(width + wPadding),\n\t\t\t\theight : getValue(height + hPadding)\n\t\t\t};\n\n\t\t\treturn pos;\n\t\t},\n\n\t\tstep: function (now, fx) {\n\t\t\tvar ratio,\n\t\t\t\tpadding,\n\t\t\t\tvalue,\n\t\t\t\tprop = fx.prop,\n\t\t\t\tcurrent = F.current,\n\t\t\t\twrapSpace = current.wrapSpace,\n\t\t\t\tskinSpace = current.skinSpace;\n\n\t\t\tif (prop === 'width' || prop === 'height') {\n\t\t\t\tratio = fx.end === fx.start ? 1 : (now - fx.start) / (fx.end - fx.start);\n\n\t\t\t\tif (F.isClosing) {\n\t\t\t\t\tratio = 1 - ratio;\n\t\t\t\t}\n\n\t\t\t\tpadding = prop === 'width' ? current.wPadding : current.hPadding;\n\t\t\t\tvalue = now - padding;\n\n\t\t\t\tF.skin[ prop ]( getScalar( prop === 'width' ? value : value - (wrapSpace * ratio) ) );\n\t\t\t\tF.inner[ prop ]( getScalar( prop === 'width' ? value : value - (wrapSpace * ratio) - (skinSpace * ratio) ) );\n\t\t\t}\n\t\t},\n\n\t\tzoomIn: function () {\n\t\t\tvar current = F.current,\n\t\t\t\tstartPos = current.pos,\n\t\t\t\teffect = current.openEffect,\n\t\t\t\telastic = effect === 'elastic',\n\t\t\t\tendPos = $.extend({opacity : 1}, startPos);\n\n\t\t\t// Remove \"position\" property that breaks older IE\n\t\t\tdelete endPos.position;\n\n\t\t\tif (elastic) {\n\t\t\t\tstartPos = this.getOrigPosition();\n\n\t\t\t\tif (current.openOpacity) {\n\t\t\t\t\tstartPos.opacity = 0.1;\n\t\t\t\t}\n\n\t\t\t} else if (effect === 'fade') {\n\t\t\t\tstartPos.opacity = 0.1;\n\t\t\t}\n\n\t\t\tF.wrap.css(startPos).animate(endPos, {\n\t\t\t\tduration : effect === 'none' ? 0 : current.openSpeed,\n\t\t\t\teasing : current.openEasing,\n\t\t\t\tstep : elastic ? this.step : null,\n\t\t\t\tcomplete : F._afterZoomIn\n\t\t\t});\n\t\t},\n\n\t\tzoomOut: function () {\n\t\t\tvar current = F.current,\n\t\t\t\teffect = current.closeEffect,\n\t\t\t\telastic = effect === 'elastic',\n\t\t\t\tendPos = {opacity : 0.1};\n\n\t\t\tif (elastic) {\n\t\t\t\tendPos = this.getOrigPosition();\n\n\t\t\t\tif (current.closeOpacity) {\n\t\t\t\t\tendPos.opacity = 0.1;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tF.wrap.animate(endPos, {\n\t\t\t\tduration : effect === 'none' ? 0 : current.closeSpeed,\n\t\t\t\teasing : current.closeEasing,\n\t\t\t\tstep : elastic ? this.step : null,\n\t\t\t\tcomplete : F._afterZoomOut\n\t\t\t});\n\t\t},\n\n\t\tchangeIn: function () {\n\t\t\tvar current = F.current,\n\t\t\t\teffect = current.nextEffect,\n\t\t\t\tstartPos = current.pos,\n\t\t\t\tendPos = { opacity : 1 },\n\t\t\t\tdirection = F.direction,\n\t\t\t\tdistance = 200,\n\t\t\t\tfield;\n\n\t\t\tstartPos.opacity = 0.1;\n\n\t\t\tif (effect === 'elastic') {\n\t\t\t\tfield = direction === 'down' || direction === 'up' ? 'top' : 'left';\n\n\t\t\t\tif (direction === 'down' || direction === 'right') {\n\t\t\t\t\tstartPos[ field ] = getValue(getScalar(startPos[ field ]) - distance);\n\t\t\t\t\tendPos[ field ] = '+=' + distance + 'px';\n\n\t\t\t\t} else {\n\t\t\t\t\tstartPos[ field ] = getValue(getScalar(startPos[ field ]) + distance);\n\t\t\t\t\tendPos[ field ] = '-=' + distance + 'px';\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Workaround for http://bugs.jquery.com/ticket/12273\n\t\t\tif (effect === 'none') {\n\t\t\t\tF._afterZoomIn();\n\n\t\t\t} else {\n\t\t\t\tF.wrap.css(startPos).animate(endPos, {\n\t\t\t\t\tduration : current.nextSpeed,\n\t\t\t\t\teasing : current.nextEasing,\n\t\t\t\t\tcomplete : F._afterZoomIn\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\n\t\tchangeOut: function () {\n\t\t\tvar previous = F.previous,\n\t\t\t\teffect = previous.prevEffect,\n\t\t\t\tendPos = { opacity : 0.1 },\n\t\t\t\tdirection = F.direction,\n\t\t\t\tdistance = 200;\n\n\t\t\tif (effect === 'elastic') {\n\t\t\t\tendPos[ direction === 'down' || direction === 'up' ? 'top' : 'left' ] = ( direction === 'up' || direction === 'left' ? '-' : '+' ) + '=' + distance + 'px';\n\t\t\t}\n\n\t\t\tprevious.wrap.animate(endPos, {\n\t\t\t\tduration : effect === 'none' ? 0 : previous.prevSpeed,\n\t\t\t\teasing : previous.prevEasing,\n\t\t\t\tcomplete : function () {\n\t\t\t\t\t$(this).trigger('onReset').remove();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t};\n\n\t/*\n\t *\tOverlay helper\n\t */\n\n\tF.helpers.overlay = {\n\t\tdefaults : {\n\t\t\tcloseClick : true, // if true, fancyBox will be closed when user clicks on the overlay\n\t\t\tspeedOut : 200, // duration of fadeOut animation\n\t\t\tshowEarly : true, // indicates if should be opened immediately or wait until the content is ready\n\t\t\tcss : {}, // custom CSS properties\n\t\t\tlocked : !isTouch, // if true, the content will be locked into overlay\n\t\t\tfixed : true // if false, the overlay CSS position property will not be set to \"fixed\"\n\t\t},\n\n\t\toverlay : null, // current handle\n\t\tfixed : false, // indicates if the overlay has position \"fixed\"\n\t\tel : $('html'), // element that contains \"the lock\"\n\n\t\t// Public methods\n\t\tcreate : function(opts) {\n\t\t\topts = $.extend({}, this.defaults, opts);\n\n\t\t\tif (this.overlay) {\n\t\t\t\tthis.close();\n\t\t\t}\n\n\t\t\tthis.overlay = $('
    ').appendTo( F.coming ? F.coming.parent : opts.parent );\n\t\t\tthis.fixed = false;\n\n\t\t\tif (opts.fixed && F.defaults.fixed) {\n\t\t\t\tthis.overlay.addClass('fancybox-overlay-fixed');\n\n\t\t\t\tthis.fixed = true;\n\t\t\t}\n\t\t},\n\n\t\topen : function(opts) {\n\t\t\tvar that = this;\n\n\t\t\topts = $.extend({}, this.defaults, opts);\n\n\t\t\tif (this.overlay) {\n\t\t\t\tthis.overlay.unbind('.overlay').width('auto').height('auto');\n\n\t\t\t} else {\n\t\t\t\tthis.create(opts);\n\t\t\t}\n\n\t\t\tif (!this.fixed) {\n\t\t\t\tW.bind('resize.overlay', $.proxy( this.update, this) );\n\n\t\t\t\tthis.update();\n\t\t\t}\n\n\t\t\tif (opts.closeClick) {\n\t\t\t\tthis.overlay.bind('click.overlay', function(e) {\n\t\t\t\t\tif ($(e.target).hasClass('fancybox-overlay')) {\n\t\t\t\t\t\tif (F.isActive) {\n\t\t\t\t\t\t\tF.close();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthat.close();\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tthis.overlay.css( opts.css ).show();\n\t\t},\n\n\t\tclose : function() {\n\t\t\tvar scrollV, scrollH;\n\n\t\t\tW.unbind('resize.overlay');\n\n\t\t\tif (this.el.hasClass('fancybox-lock')) {\n\t\t\t\t$('.fancybox-margin').removeClass('fancybox-margin');\n\n\t\t\t\tscrollV = W.scrollTop();\n\t\t\t\tscrollH = W.scrollLeft();\n\n\t\t\t\tthis.el.removeClass('fancybox-lock');\n\n\t\t\t\tW.scrollTop( scrollV ).scrollLeft( scrollH );\n\t\t\t}\n\n\t\t\t$('.fancybox-overlay').remove().hide();\n\n\t\t\t$.extend(this, {\n\t\t\t\toverlay : null,\n\t\t\t\tfixed : false\n\t\t\t});\n\t\t},\n\n\t\t// Private, callbacks\n\n\t\tupdate : function () {\n\t\t\tvar width = '100%', offsetWidth;\n\n\t\t\t// Reset width/height so it will not mess\n\t\t\tthis.overlay.width(width).height('100%');\n\n\t\t\t// jQuery does not return reliable result for IE\n\t\t\tif (IE) {\n\t\t\t\toffsetWidth = Math.max(document.documentElement.offsetWidth, document.body.offsetWidth);\n\n\t\t\t\tif (D.width() > offsetWidth) {\n\t\t\t\t\twidth = D.width();\n\t\t\t\t}\n\n\t\t\t} else if (D.width() > W.width()) {\n\t\t\t\twidth = D.width();\n\t\t\t}\n\n\t\t\tthis.overlay.width(width).height(D.height());\n\t\t},\n\n\t\t// This is where we can manipulate DOM, because later it would cause iframes to reload\n\t\tonReady : function (opts, obj) {\n\t\t\tvar overlay = this.overlay;\n\n\t\t\t$('.fancybox-overlay').stop(true, true);\n\n\t\t\tif (!overlay) {\n\t\t\t\tthis.create(opts);\n\t\t\t}\n\n\t\t\tif (opts.locked && this.fixed && obj.fixed) {\n\t\t\t\tif (!overlay) {\n\t\t\t\t\tthis.margin = D.height() > W.height() ? $('html').css('margin-right').replace(\"px\", \"\") : false;\n\t\t\t\t}\n\n\t\t\t\tobj.locked = this.overlay.append( obj.wrap );\n\t\t\t\tobj.fixed = false;\n\t\t\t}\n\n\t\t\tif (opts.showEarly === true) {\n\t\t\t\tthis.beforeShow.apply(this, arguments);\n\t\t\t}\n\t\t},\n\n\t\tbeforeShow : function(opts, obj) {\n\t\t\tvar scrollV, scrollH;\n\n\t\t\tif (obj.locked) {\n\t\t\t\tif (this.margin !== false) {\n\t\t\t\t\t$('*').filter(function(){\n\t\t\t\t\t\treturn ($(this).css('position') === 'fixed' && !$(this).hasClass(\"fancybox-overlay\") && !$(this).hasClass(\"fancybox-wrap\") );\n\t\t\t\t\t}).addClass('fancybox-margin');\n\n\t\t\t\t\tthis.el.addClass('fancybox-margin');\n\t\t\t\t}\n\n\t\t\t\tscrollV = W.scrollTop();\n\t\t\t\tscrollH = W.scrollLeft();\n\n\t\t\t\tthis.el.addClass('fancybox-lock');\n\n\t\t\t\tW.scrollTop( scrollV ).scrollLeft( scrollH );\n\t\t\t}\n\n\t\t\tthis.open(opts);\n\t\t},\n\n\t\tonUpdate : function() {\n\t\t\tif (!this.fixed) {\n\t\t\t\tthis.update();\n\t\t\t}\n\t\t},\n\n\t\tafterClose: function (opts) {\n\t\t\t// Remove overlay if exists and fancyBox is not opening\n\t\t\t// (e.g., it is not being open using afterClose callback)\n\t\t\t//if (this.overlay && !F.isActive) {\n\t\t\tif (this.overlay && !F.coming) {\n\t\t\t\tthis.overlay.fadeOut(opts.speedOut, $.proxy( this.close, this ));\n\t\t\t}\n\t\t}\n\t};\n\n\t/*\n\t *\tTitle helper\n\t */\n\n\tF.helpers.title = {\n\t\tdefaults : {\n\t\t\ttype : 'float', // 'float', 'inside', 'outside' or 'over',\n\t\t\tposition : 'bottom' // 'top' or 'bottom'\n\t\t},\n\n\t\tbeforeShow: function (opts) {\n\t\t\tvar current = F.current,\n\t\t\t\ttext = current.title,\n\t\t\t\ttype = opts.type,\n\t\t\t\ttitle,\n\t\t\t\ttarget;\n\n\t\t\tif ($.isFunction(text)) {\n\t\t\t\ttext = text.call(current.element, current);\n\t\t\t}\n\n\t\t\tif (!isString(text) || $.trim(text) === '') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\ttitle = $('
    ' + text + '
    ');\n\n\t\t\tswitch (type) {\n\t\t\t\tcase 'inside':\n\t\t\t\t\ttarget = F.skin;\n\t\t\t\tbreak;\n\n\t\t\t\tcase 'outside':\n\t\t\t\t\ttarget = F.wrap;\n\t\t\t\tbreak;\n\n\t\t\t\tcase 'over':\n\t\t\t\t\ttarget = F.inner;\n\t\t\t\tbreak;\n\n\t\t\t\tdefault: // 'float'\n\t\t\t\t\ttarget = F.skin;\n\n\t\t\t\t\ttitle.appendTo('body');\n\n\t\t\t\t\tif (IE) {\n\t\t\t\t\t\ttitle.width( title.width() );\n\t\t\t\t\t}\n\n\t\t\t\t\ttitle.wrapInner('');\n\n\t\t\t\t\t//Increase bottom margin so this title will also fit into viewport\n\t\t\t\t\tF.current.margin[2] += Math.abs( getScalar(title.css('margin-bottom')) );\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\ttitle[ (opts.position === 'top' ? 'prependTo' : 'appendTo') ](target);\n\t\t}\n\t};\n\n\t// jQuery plugin initialization\n\t$.fn.fancybox = function (options) {\n\t\tvar index,\n\t\t\tthat = $(this),\n\t\t\tselector = this.selector || '',\n\t\t\trun = function(e) {\n\t\t\t\tvar what = $(this).blur(), idx = index, relType, relVal;\n\n\t\t\t\tif (!(e.ctrlKey || e.altKey || e.shiftKey || e.metaKey) && !what.is('.fancybox-wrap')) {\n\t\t\t\t\trelType = options.groupAttr || 'data-fancybox-group';\n\t\t\t\t\trelVal = what.attr(relType);\n\n\t\t\t\t\tif (!relVal) {\n\t\t\t\t\t\trelType = 'rel';\n\t\t\t\t\t\trelVal = what.get(0)[ relType ];\n\t\t\t\t\t}\n\n\t\t\t\t\tif (relVal && relVal !== '' && relVal !== 'nofollow') {\n\t\t\t\t\t\twhat = selector.length ? $(selector) : that;\n\t\t\t\t\t\twhat = what.filter('[' + relType + '=\"' + relVal + '\"]');\n\t\t\t\t\t\tidx = what.index(this);\n\t\t\t\t\t}\n\n\t\t\t\t\toptions.index = idx;\n\n\t\t\t\t\t// Stop an event from bubbling if everything is fine\n\t\t\t\t\tif (F.open(what, options) !== false) {\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\n\t\toptions = options || {};\n\t\tindex = options.index || 0;\n\n\t\tif (!selector || options.live === false) {\n\t\t\tthat.unbind('click.fb-start').bind('click.fb-start', run);\n\n\t\t} else {\n\t\t\tD.undelegate(selector, 'click.fb-start').delegate(selector + \":not('.fancybox-item, .fancybox-nav')\", 'click.fb-start', run);\n\t\t}\n\n\t\tthis.filter('[data-fancybox-start=1]').trigger('click');\n\n\t\treturn this;\n\t};\n\n\t// Tests that need a body at doc ready\n\tD.ready(function() {\n\t\tvar w1, w2;\n\n\t\tif ( $.scrollbarWidth === undefined ) {\n\t\t\t// http://benalman.com/projects/jquery-misc-plugins/#scrollbarwidth\n\t\t\t$.scrollbarWidth = function() {\n\t\t\t\tvar parent = $('
    ').appendTo('body'),\n\t\t\t\t\tchild = parent.children(),\n\t\t\t\t\twidth = child.innerWidth() - child.height( 99 ).innerWidth();\n\n\t\t\t\tparent.remove();\n\n\t\t\t\treturn width;\n\t\t\t};\n\t\t}\n\n\t\tif ( $.support.fixedPosition === undefined ) {\n\t\t\t$.support.fixedPosition = (function() {\n\t\t\t\tvar elem = $('
    ').appendTo('body'),\n\t\t\t\t\tfixed = ( elem[0].offsetTop === 20 || elem[0].offsetTop === 15 );\n\n\t\t\t\telem.remove();\n\n\t\t\t\treturn fixed;\n\t\t\t}());\n\t\t}\n\n\t\t$.extend(F.defaults, {\n\t\t\tscrollbarWidth : $.scrollbarWidth(),\n\t\t\tfixed : $.support.fixedPosition,\n\t\t\tparent : $('body')\n\t\t});\n\n\t\t//Get real width of page scroll-bar\n\t\tw1 = $(window).width();\n\n\t\tH.addClass('fancybox-lock-test');\n\n\t\tw2 = $(window).width();\n\n\t\tH.removeClass('fancybox-lock-test');\n\n\t\t$(\"\").appendTo(\"head\");\n\t});\n\n}(window, document, jQuery));","/*\n * jQuery OwlCarousel v1.3.2\n *\n * Copyright (c) 2013 Bartosz Wojciechowski\n * http://www.owlgraphic.com/owlcarousel/\n *\n * Licensed under MIT\n *\n */\n\n/*JS Lint helpers: */\n/*global dragMove: false, dragEnd: false, $, jQuery, alert, window, document */\n/*jslint nomen: true, continue:true */\n\nif (typeof Object.create !== \"function\") {\n Object.create = function (obj) {\n function F() {}\n F.prototype = obj;\n return new F();\n };\n}\n(function ($, window, document) {\n\n var Carousel = {\n init : function (options, el) {\n var base = this;\n\n base.$elem = $(el);\n base.options = $.extend({}, $.fn.owlCarousel.options, base.$elem.data(), options);\n\n base.userOptions = options;\n base.loadContent();\n },\n\n loadContent : function () {\n var base = this, url;\n\n function getData(data) {\n var i, content = \"\";\n if (typeof base.options.jsonSuccess === \"function\") {\n base.options.jsonSuccess.apply(this, [data]);\n } else {\n for (i in data.owl) {\n if (data.owl.hasOwnProperty(i)) {\n content += data.owl[i].item;\n }\n }\n base.$elem.html(content);\n }\n base.logIn();\n }\n\n if (typeof base.options.beforeInit === \"function\") {\n base.options.beforeInit.apply(this, [base.$elem]);\n }\n\n if (typeof base.options.jsonPath === \"string\") {\n url = base.options.jsonPath;\n $.getJSON(url, getData);\n } else {\n base.logIn();\n }\n },\n\n logIn : function () {\n var base = this;\n\n base.$elem.data(\"owl-originalStyles\", base.$elem.attr(\"style\"))\n .data(\"owl-originalClasses\", base.$elem.attr(\"class\"));\n\n base.$elem.css({opacity: 0});\n base.orignalItems = base.options.items;\n base.checkBrowser();\n base.wrapperWidth = 0;\n base.checkVisible = null;\n base.setVars();\n },\n\n setVars : function () {\n var base = this;\n if (base.$elem.children().length === 0) {return false; }\n base.baseClass();\n base.eventTypes();\n base.$userItems = base.$elem.children();\n base.itemsAmount = base.$userItems.length;\n base.wrapItems();\n base.$owlItems = base.$elem.find(\".owl-item\");\n base.$owlWrapper = base.$elem.find(\".owl-wrapper\");\n base.playDirection = \"next\";\n base.prevItem = 0;\n base.prevArr = [0];\n base.currentItem = 0;\n base.customEvents();\n base.onStartup();\n },\n\n onStartup : function () {\n var base = this;\n base.updateItems();\n base.calculateAll();\n base.buildControls();\n base.updateControls();\n base.response();\n base.moveEvents();\n base.stopOnHover();\n base.owlStatus();\n\n if (base.options.transitionStyle !== false) {\n base.transitionTypes(base.options.transitionStyle);\n }\n if (base.options.autoPlay === true) {\n base.options.autoPlay = 5000;\n }\n base.play();\n\n base.$elem.find(\".owl-wrapper\").css(\"display\", \"block\");\n\n if (!base.$elem.is(\":visible\")) {\n base.watchVisibility();\n } else {\n base.$elem.css(\"opacity\", 1);\n }\n base.onstartup = false;\n base.eachMoveUpdate();\n if (typeof base.options.afterInit === \"function\") {\n base.options.afterInit.apply(this, [base.$elem]);\n }\n },\n\n eachMoveUpdate : function () {\n var base = this;\n\n if (base.options.lazyLoad === true) {\n base.lazyLoad();\n }\n if (base.options.autoHeight === true) {\n base.autoHeight();\n }\n base.onVisibleItems();\n\n if (typeof base.options.afterAction === \"function\") {\n base.options.afterAction.apply(this, [base.$elem]);\n }\n },\n\n updateVars : function () {\n var base = this;\n if (typeof base.options.beforeUpdate === \"function\") {\n base.options.beforeUpdate.apply(this, [base.$elem]);\n }\n base.watchVisibility();\n base.updateItems();\n base.calculateAll();\n base.updatePosition();\n base.updateControls();\n base.eachMoveUpdate();\n if (typeof base.options.afterUpdate === \"function\") {\n base.options.afterUpdate.apply(this, [base.$elem]);\n }\n },\n\n reload : function () {\n var base = this;\n window.setTimeout(function () {\n base.updateVars();\n }, 0);\n },\n\n watchVisibility : function () {\n var base = this;\n\n if (base.$elem.is(\":visible\") === false) {\n base.$elem.css({opacity: 0});\n window.clearInterval(base.autoPlayInterval);\n window.clearInterval(base.checkVisible);\n } else {\n return false;\n }\n base.checkVisible = window.setInterval(function () {\n if (base.$elem.is(\":visible\")) {\n base.reload();\n base.$elem.animate({opacity: 1}, 200);\n window.clearInterval(base.checkVisible);\n }\n }, 500);\n },\n\n wrapItems : function () {\n var base = this;\n base.$userItems.wrapAll(\"
    \").wrap(\"
    \");\n base.$elem.find(\".owl-wrapper\").wrap(\"
    \");\n base.wrapperOuter = base.$elem.find(\".owl-wrapper-outer\");\n base.$elem.css(\"display\", \"block\");\n },\n\n baseClass : function () {\n var base = this,\n hasBaseClass = base.$elem.hasClass(base.options.baseClass),\n hasThemeClass = base.$elem.hasClass(base.options.theme);\n\n if (!hasBaseClass) {\n base.$elem.addClass(base.options.baseClass);\n }\n\n if (!hasThemeClass) {\n base.$elem.addClass(base.options.theme);\n }\n },\n\n updateItems : function () {\n var base = this, width, i;\n\n if (base.options.responsive === false) {\n return false;\n }\n if (base.options.singleItem === true) {\n base.options.items = base.orignalItems = 1;\n base.options.itemsCustom = false;\n base.options.itemsDesktop = false;\n base.options.itemsDesktopSmall = false;\n base.options.itemsTablet = false;\n base.options.itemsTabletSmall = false;\n base.options.itemsMobile = false;\n return false;\n }\n\n width = $(base.options.responsiveBaseWidth).width();\n\n if (width > (base.options.itemsDesktop[0] || base.orignalItems)) {\n base.options.items = base.orignalItems;\n }\n if (base.options.itemsCustom !== false) {\n //Reorder array by screen size\n base.options.itemsCustom.sort(function (a, b) {return a[0] - b[0]; });\n\n for (i = 0; i < base.options.itemsCustom.length; i += 1) {\n if (base.options.itemsCustom[i][0] <= width) {\n base.options.items = base.options.itemsCustom[i][1];\n }\n }\n\n } else {\n\n if (width <= base.options.itemsDesktop[0] && base.options.itemsDesktop !== false) {\n base.options.items = base.options.itemsDesktop[1];\n }\n\n if (width <= base.options.itemsDesktopSmall[0] && base.options.itemsDesktopSmall !== false) {\n base.options.items = base.options.itemsDesktopSmall[1];\n }\n\n if (width <= base.options.itemsTablet[0] && base.options.itemsTablet !== false) {\n base.options.items = base.options.itemsTablet[1];\n }\n\n if (width <= base.options.itemsTabletSmall[0] && base.options.itemsTabletSmall !== false) {\n base.options.items = base.options.itemsTabletSmall[1];\n }\n\n if (width <= base.options.itemsMobile[0] && base.options.itemsMobile !== false) {\n base.options.items = base.options.itemsMobile[1];\n }\n }\n\n //if number of items is less than declared\n if (base.options.items > base.itemsAmount && base.options.itemsScaleUp === true) {\n base.options.items = base.itemsAmount;\n }\n },\n\n response : function () {\n var base = this,\n smallDelay,\n lastWindowWidth;\n\n if (base.options.responsive !== true) {\n return false;\n }\n lastWindowWidth = $(window).width();\n\n base.resizer = function () {\n if ($(window).width() !== lastWindowWidth) {\n if (base.options.autoPlay !== false) {\n window.clearInterval(base.autoPlayInterval);\n }\n window.clearTimeout(smallDelay);\n smallDelay = window.setTimeout(function () {\n lastWindowWidth = $(window).width();\n base.updateVars();\n }, base.options.responsiveRefreshRate);\n }\n };\n $(window).resize(base.resizer);\n },\n\n updatePosition : function () {\n var base = this;\n base.jumpTo(base.currentItem);\n if (base.options.autoPlay !== false) {\n base.checkAp();\n }\n },\n\n appendItemsSizes : function () {\n var base = this,\n roundPages = 0,\n lastItem = base.itemsAmount - base.options.items;\n\n base.$owlItems.each(function (index) {\n var $this = $(this);\n $this\n .css({\"width\": base.itemWidth})\n .data(\"owl-item\", Number(index));\n\n if (index % base.options.items === 0 || index === lastItem) {\n if (!(index > lastItem)) {\n roundPages += 1;\n }\n }\n $this.data(\"owl-roundPages\", roundPages);\n });\n },\n\n appendWrapperSizes : function () {\n var base = this,\n width = base.$owlItems.length * base.itemWidth;\n\n base.$owlWrapper.css({\n \"width\": width * 2,\n \"left\": 0\n });\n base.appendItemsSizes();\n },\n\n calculateAll : function () {\n var base = this;\n base.calculateWidth();\n base.appendWrapperSizes();\n base.loops();\n base.max();\n },\n\n calculateWidth : function () {\n var base = this;\n base.itemWidth = Math.round(base.$elem.width() / base.options.items);\n },\n\n max : function () {\n var base = this,\n maximum = ((base.itemsAmount * base.itemWidth) - base.options.items * base.itemWidth) * -1;\n if (base.options.items > base.itemsAmount) {\n base.maximumItem = 0;\n maximum = 0;\n base.maximumPixels = 0;\n } else {\n base.maximumItem = base.itemsAmount - base.options.items;\n base.maximumPixels = maximum;\n }\n return maximum;\n },\n\n min : function () {\n return 0;\n },\n\n loops : function () {\n var base = this,\n prev = 0,\n elWidth = 0,\n i,\n item,\n roundPageNum;\n\n base.positionsInArray = [0];\n base.pagesInArray = [];\n\n for (i = 0; i < base.itemsAmount; i += 1) {\n elWidth += base.itemWidth;\n base.positionsInArray.push(-elWidth);\n\n if (base.options.scrollPerPage === true) {\n item = $(base.$owlItems[i]);\n roundPageNum = item.data(\"owl-roundPages\");\n if (roundPageNum !== prev) {\n base.pagesInArray[prev] = base.positionsInArray[i];\n prev = roundPageNum;\n }\n }\n }\n },\n\n buildControls : function () {\n var base = this;\n if (base.options.navigation === true || base.options.pagination === true) {\n base.owlControls = $(\"
    \").toggleClass(\"clickable\", !base.browser.isTouch).appendTo(base.$elem);\n }\n if (base.options.pagination === true) {\n base.buildPagination();\n }\n if (base.options.navigation === true) {\n base.buildButtons();\n }\n },\n\n buildButtons : function () {\n var base = this,\n buttonsWrapper = $(\"
    \");\n base.owlControls.append(buttonsWrapper);\n\n base.buttonPrev = $(\"
    \", {\n \"class\" : \"owl-prev\",\n \"html\" : base.options.navigationText[0] || \"\"\n });\n\n base.buttonNext = $(\"
    \", {\n \"class\" : \"owl-next\",\n \"html\" : base.options.navigationText[1] || \"\"\n });\n\n buttonsWrapper\n .append(base.buttonPrev)\n .append(base.buttonNext);\n\n buttonsWrapper.on(\"touchstart.owlControls mousedown.owlControls\", \"div[class^=\\\"owl\\\"]\", function (event) {\n event.preventDefault();\n });\n\n buttonsWrapper.on(\"touchend.owlControls mouseup.owlControls\", \"div[class^=\\\"owl\\\"]\", function (event) {\n event.preventDefault();\n if ($(this).hasClass(\"owl-next\")) {\n base.next();\n } else {\n base.prev();\n }\n });\n },\n\n buildPagination : function () {\n var base = this;\n\n base.paginationWrapper = $(\"
    \");\n base.owlControls.append(base.paginationWrapper);\n\n base.paginationWrapper.on(\"touchend.owlControls mouseup.owlControls\", \".owl-page\", function (event) {\n event.preventDefault();\n if (Number($(this).data(\"owl-page\")) !== base.currentItem) {\n base.goTo(Number($(this).data(\"owl-page\")), true);\n }\n });\n },\n\n updatePagination : function () {\n var base = this,\n counter,\n lastPage,\n lastItem,\n i,\n paginationButton,\n paginationButtonInner;\n\n if (base.options.pagination === false) {\n return false;\n }\n\n base.paginationWrapper.html(\"\");\n\n counter = 0;\n lastPage = base.itemsAmount - base.itemsAmount % base.options.items;\n\n for (i = 0; i < base.itemsAmount; i += 1) {\n if (i % base.options.items === 0) {\n counter += 1;\n if (lastPage === i) {\n lastItem = base.itemsAmount - base.options.items;\n }\n paginationButton = $(\"
    \", {\n \"class\" : \"owl-page\"\n });\n paginationButtonInner = $(\"\", {\n \"text\": base.options.paginationNumbers === true ? counter : \"\",\n \"class\": base.options.paginationNumbers === true ? \"owl-numbers\" : \"\"\n });\n paginationButton.append(paginationButtonInner);\n\n paginationButton.data(\"owl-page\", lastPage === i ? lastItem : i);\n paginationButton.data(\"owl-roundPages\", counter);\n\n base.paginationWrapper.append(paginationButton);\n }\n }\n base.checkPagination();\n },\n checkPagination : function () {\n var base = this;\n if (base.options.pagination === false) {\n return false;\n }\n base.paginationWrapper.find(\".owl-page\").each(function () {\n if ($(this).data(\"owl-roundPages\") === $(base.$owlItems[base.currentItem]).data(\"owl-roundPages\")) {\n base.paginationWrapper\n .find(\".owl-page\")\n .removeClass(\"active\");\n $(this).addClass(\"active\");\n }\n });\n },\n\n checkNavigation : function () {\n var base = this;\n\n if (base.options.navigation === false) {\n return false;\n }\n if (base.options.rewindNav === false) {\n if (base.currentItem === 0 && base.maximumItem === 0) {\n base.buttonPrev.addClass(\"disabled\");\n base.buttonNext.addClass(\"disabled\");\n } else if (base.currentItem === 0 && base.maximumItem !== 0) {\n base.buttonPrev.addClass(\"disabled\");\n base.buttonNext.removeClass(\"disabled\");\n } else if (base.currentItem === base.maximumItem) {\n base.buttonPrev.removeClass(\"disabled\");\n base.buttonNext.addClass(\"disabled\");\n } else if (base.currentItem !== 0 && base.currentItem !== base.maximumItem) {\n base.buttonPrev.removeClass(\"disabled\");\n base.buttonNext.removeClass(\"disabled\");\n }\n }\n },\n\n updateControls : function () {\n var base = this;\n base.updatePagination();\n base.checkNavigation();\n if (base.owlControls) {\n if (base.options.items >= base.itemsAmount) {\n base.owlControls.hide();\n } else {\n base.owlControls.show();\n }\n }\n },\n\n destroyControls : function () {\n var base = this;\n if (base.owlControls) {\n base.owlControls.remove();\n }\n },\n\n next : function (speed) {\n var base = this;\n\n if (base.isTransition) {\n return false;\n }\n\n base.currentItem += base.options.scrollPerPage === true ? base.options.items : 1;\n if (base.currentItem > base.maximumItem + (base.options.scrollPerPage === true ? (base.options.items - 1) : 0)) {\n if (base.options.rewindNav === true) {\n base.currentItem = 0;\n speed = \"rewind\";\n } else {\n base.currentItem = base.maximumItem;\n return false;\n }\n }\n base.goTo(base.currentItem, speed);\n },\n\n prev : function (speed) {\n var base = this;\n\n if (base.isTransition) {\n return false;\n }\n\n if (base.options.scrollPerPage === true && base.currentItem > 0 && base.currentItem < base.options.items) {\n base.currentItem = 0;\n } else {\n base.currentItem -= base.options.scrollPerPage === true ? base.options.items : 1;\n }\n if (base.currentItem < 0) {\n if (base.options.rewindNav === true) {\n base.currentItem = base.maximumItem;\n speed = \"rewind\";\n } else {\n base.currentItem = 0;\n return false;\n }\n }\n base.goTo(base.currentItem, speed);\n },\n\n goTo : function (position, speed, drag) {\n var base = this,\n goToPixel;\n\n if (base.isTransition) {\n return false;\n }\n if (typeof base.options.beforeMove === \"function\") {\n base.options.beforeMove.apply(this, [base.$elem]);\n }\n if (position >= base.maximumItem) {\n position = base.maximumItem;\n } else if (position <= 0) {\n position = 0;\n }\n\n base.currentItem = base.owl.currentItem = position;\n if (base.options.transitionStyle !== false && drag !== \"drag\" && base.options.items === 1 && base.browser.support3d === true) {\n base.swapSpeed(0);\n if (base.browser.support3d === true) {\n base.transition3d(base.positionsInArray[position]);\n } else {\n base.css2slide(base.positionsInArray[position], 1);\n }\n base.afterGo();\n base.singleItemTransition();\n return false;\n }\n goToPixel = base.positionsInArray[position];\n\n if (base.browser.support3d === true) {\n base.isCss3Finish = false;\n\n if (speed === true) {\n base.swapSpeed(\"paginationSpeed\");\n window.setTimeout(function () {\n base.isCss3Finish = true;\n }, base.options.paginationSpeed);\n\n } else if (speed === \"rewind\") {\n base.swapSpeed(base.options.rewindSpeed);\n window.setTimeout(function () {\n base.isCss3Finish = true;\n }, base.options.rewindSpeed);\n\n } else {\n base.swapSpeed(\"slideSpeed\");\n window.setTimeout(function () {\n base.isCss3Finish = true;\n }, base.options.slideSpeed);\n }\n base.transition3d(goToPixel);\n } else {\n if (speed === true) {\n base.css2slide(goToPixel, base.options.paginationSpeed);\n } else if (speed === \"rewind\") {\n base.css2slide(goToPixel, base.options.rewindSpeed);\n } else {\n base.css2slide(goToPixel, base.options.slideSpeed);\n }\n }\n base.afterGo();\n },\n\n jumpTo : function (position) {\n var base = this;\n if (typeof base.options.beforeMove === \"function\") {\n base.options.beforeMove.apply(this, [base.$elem]);\n }\n if (position >= base.maximumItem || position === -1) {\n position = base.maximumItem;\n } else if (position <= 0) {\n position = 0;\n }\n base.swapSpeed(0);\n if (base.browser.support3d === true) {\n base.transition3d(base.positionsInArray[position]);\n } else {\n base.css2slide(base.positionsInArray[position], 1);\n }\n base.currentItem = base.owl.currentItem = position;\n base.afterGo();\n },\n\n afterGo : function () {\n var base = this;\n\n base.prevArr.push(base.currentItem);\n base.prevItem = base.owl.prevItem = base.prevArr[base.prevArr.length - 2];\n base.prevArr.shift(0);\n\n if (base.prevItem !== base.currentItem) {\n base.checkPagination();\n base.checkNavigation();\n base.eachMoveUpdate();\n\n if (base.options.autoPlay !== false) {\n base.checkAp();\n }\n }\n if (typeof base.options.afterMove === \"function\" && base.prevItem !== base.currentItem) {\n base.options.afterMove.apply(this, [base.$elem]);\n }\n },\n\n stop : function () {\n var base = this;\n base.apStatus = \"stop\";\n window.clearInterval(base.autoPlayInterval);\n },\n\n checkAp : function () {\n var base = this;\n if (base.apStatus !== \"stop\") {\n base.play();\n }\n },\n\n play : function () {\n var base = this;\n base.apStatus = \"play\";\n if (base.options.autoPlay === false) {\n return false;\n }\n window.clearInterval(base.autoPlayInterval);\n base.autoPlayInterval = window.setInterval(function () {\n base.next(true);\n }, base.options.autoPlay);\n },\n\n swapSpeed : function (action) {\n var base = this;\n if (action === \"slideSpeed\") {\n base.$owlWrapper.css(base.addCssSpeed(base.options.slideSpeed));\n } else if (action === \"paginationSpeed\") {\n base.$owlWrapper.css(base.addCssSpeed(base.options.paginationSpeed));\n } else if (typeof action !== \"string\") {\n base.$owlWrapper.css(base.addCssSpeed(action));\n }\n },\n\n addCssSpeed : function (speed) {\n return {\n \"-webkit-transition\": \"all \" + speed + \"ms ease\",\n \"-moz-transition\": \"all \" + speed + \"ms ease\",\n \"-o-transition\": \"all \" + speed + \"ms ease\",\n \"transition\": \"all \" + speed + \"ms ease\"\n };\n },\n\n removeTransition : function () {\n return {\n \"-webkit-transition\": \"\",\n \"-moz-transition\": \"\",\n \"-o-transition\": \"\",\n \"transition\": \"\"\n };\n },\n\n doTranslate : function (pixels) {\n return {\n \"-webkit-transform\": \"translate3d(\" + pixels + \"px, 0px, 0px)\",\n \"-moz-transform\": \"translate3d(\" + pixels + \"px, 0px, 0px)\",\n \"-o-transform\": \"translate3d(\" + pixels + \"px, 0px, 0px)\",\n \"-ms-transform\": \"translate3d(\" + pixels + \"px, 0px, 0px)\",\n \"transform\": \"translate3d(\" + pixels + \"px, 0px,0px)\"\n };\n },\n\n transition3d : function (value) {\n var base = this;\n base.$owlWrapper.css(base.doTranslate(value));\n },\n\n css2move : function (value) {\n var base = this;\n base.$owlWrapper.css({\"left\" : value});\n },\n\n css2slide : function (value, speed) {\n var base = this;\n\n base.isCssFinish = false;\n base.$owlWrapper.stop(true, true).animate({\n \"left\" : value\n }, {\n duration : speed || base.options.slideSpeed,\n complete : function () {\n base.isCssFinish = true;\n }\n });\n },\n\n checkBrowser : function () {\n var base = this,\n translate3D = \"translate3d(0px, 0px, 0px)\",\n tempElem = document.createElement(\"div\"),\n regex,\n asSupport,\n support3d,\n isTouch;\n\n tempElem.style.cssText = \" -moz-transform:\" + translate3D +\n \"; -ms-transform:\" + translate3D +\n \"; -o-transform:\" + translate3D +\n \"; -webkit-transform:\" + translate3D +\n \"; transform:\" + translate3D;\n regex = /translate3d\\(0px, 0px, 0px\\)/g;\n asSupport = tempElem.style.cssText.match(regex);\n support3d = (asSupport !== null && asSupport.length === 1);\n\n isTouch = \"ontouchstart\" in window || window.navigator.msMaxTouchPoints;\n\n base.browser = {\n \"support3d\" : support3d,\n \"isTouch\" : isTouch\n };\n },\n\n moveEvents : function () {\n var base = this;\n if (base.options.mouseDrag !== false || base.options.touchDrag !== false) {\n base.gestures();\n base.disabledEvents();\n }\n },\n\n eventTypes : function () {\n var base = this,\n types = [\"s\", \"e\", \"x\"];\n\n base.ev_types = {};\n\n if (base.options.mouseDrag === true && base.options.touchDrag === true) {\n types = [\n \"touchstart.owl mousedown.owl\",\n \"touchmove.owl mousemove.owl\",\n \"touchend.owl touchcancel.owl mouseup.owl\"\n ];\n } else if (base.options.mouseDrag === false && base.options.touchDrag === true) {\n types = [\n \"touchstart.owl\",\n \"touchmove.owl\",\n \"touchend.owl touchcancel.owl\"\n ];\n } else if (base.options.mouseDrag === true && base.options.touchDrag === false) {\n types = [\n \"mousedown.owl\",\n \"mousemove.owl\",\n \"mouseup.owl\"\n ];\n }\n\n base.ev_types.start = types[0];\n base.ev_types.move = types[1];\n base.ev_types.end = types[2];\n },\n\n disabledEvents : function () {\n var base = this;\n base.$elem.on(\"dragstart.owl\", function (event) { event.preventDefault(); });\n base.$elem.on(\"mousedown.disableTextSelect\", function (e) {\n return $(e.target).is('input, textarea, select, option');\n });\n },\n\n gestures : function () {\n /*jslint unparam: true*/\n var base = this,\n locals = {\n offsetX : 0,\n offsetY : 0,\n baseElWidth : 0,\n relativePos : 0,\n position: null,\n minSwipe : null,\n maxSwipe: null,\n sliding : null,\n dargging: null,\n targetElement : null\n };\n\n base.isCssFinish = true;\n\n function getTouches(event) {\n if (event.touches !== undefined) {\n return {\n x : event.touches[0].pageX,\n y : event.touches[0].pageY\n };\n }\n\n if (event.touches === undefined) {\n if (event.pageX !== undefined) {\n return {\n x : event.pageX,\n y : event.pageY\n };\n }\n if (event.pageX === undefined) {\n return {\n x : event.clientX,\n y : event.clientY\n };\n }\n }\n }\n\n function swapEvents(type) {\n if (type === \"on\") {\n $(document).on(base.ev_types.move, dragMove);\n $(document).on(base.ev_types.end, dragEnd);\n } else if (type === \"off\") {\n $(document).off(base.ev_types.move);\n $(document).off(base.ev_types.end);\n }\n }\n\n function dragStart(event) {\n var ev = event.originalEvent || event || window.event,\n position;\n\n if (ev.which === 3) {\n return false;\n }\n if (base.itemsAmount <= base.options.items) {\n return;\n }\n if (base.isCssFinish === false && !base.options.dragBeforeAnimFinish) {\n return false;\n }\n if (base.isCss3Finish === false && !base.options.dragBeforeAnimFinish) {\n return false;\n }\n\n if (base.options.autoPlay !== false) {\n window.clearInterval(base.autoPlayInterval);\n }\n\n if (base.browser.isTouch !== true && !base.$owlWrapper.hasClass(\"grabbing\")) {\n base.$owlWrapper.addClass(\"grabbing\");\n }\n\n base.newPosX = 0;\n base.newRelativeX = 0;\n\n $(this).css(base.removeTransition());\n\n position = $(this).position();\n locals.relativePos = position.left;\n\n locals.offsetX = getTouches(ev).x - position.left;\n locals.offsetY = getTouches(ev).y - position.top;\n\n swapEvents(\"on\");\n\n locals.sliding = false;\n locals.targetElement = ev.target || ev.srcElement;\n }\n\n function dragMove(event) {\n var ev = event.originalEvent || event || window.event,\n minSwipe,\n maxSwipe;\n\n base.newPosX = getTouches(ev).x - locals.offsetX;\n base.newPosY = getTouches(ev).y - locals.offsetY;\n base.newRelativeX = base.newPosX - locals.relativePos;\n\n if (typeof base.options.startDragging === \"function\" && locals.dragging !== true && base.newRelativeX !== 0) {\n locals.dragging = true;\n base.options.startDragging.apply(base, [base.$elem]);\n }\n\n if ((base.newRelativeX > 8 || base.newRelativeX < -8) && (base.browser.isTouch === true)) {\n if (ev.preventDefault !== undefined) {\n ev.preventDefault();\n } else {\n ev.returnValue = false;\n }\n locals.sliding = true;\n }\n\n if ((base.newPosY > 10 || base.newPosY < -10) && locals.sliding === false) {\n $(document).off(\"touchmove.owl\");\n }\n\n minSwipe = function () {\n return base.newRelativeX / 5;\n };\n\n maxSwipe = function () {\n return base.maximumPixels + base.newRelativeX / 5;\n };\n\n base.newPosX = Math.max(Math.min(base.newPosX, minSwipe()), maxSwipe());\n if (base.browser.support3d === true) {\n base.transition3d(base.newPosX);\n } else {\n base.css2move(base.newPosX);\n }\n }\n\n function dragEnd(event) {\n var ev = event.originalEvent || event || window.event,\n newPosition,\n handlers,\n owlStopEvent;\n\n ev.target = ev.target || ev.srcElement;\n\n locals.dragging = false;\n\n if (base.browser.isTouch !== true) {\n base.$owlWrapper.removeClass(\"grabbing\");\n }\n\n if (base.newRelativeX < 0) {\n base.dragDirection = base.owl.dragDirection = \"left\";\n } else {\n base.dragDirection = base.owl.dragDirection = \"right\";\n }\n\n if (base.newRelativeX !== 0) {\n newPosition = base.getNewPosition();\n base.goTo(newPosition, false, \"drag\");\n if (locals.targetElement === ev.target && base.browser.isTouch !== true) {\n $(ev.target).on(\"click.disable\", function (ev) {\n ev.stopImmediatePropagation();\n ev.stopPropagation();\n ev.preventDefault();\n $(ev.target).off(\"click.disable\");\n });\n handlers = $._data(ev.target, \"events\").click;\n owlStopEvent = handlers.pop();\n handlers.splice(0, 0, owlStopEvent);\n }\n }\n swapEvents(\"off\");\n }\n base.$elem.on(base.ev_types.start, \".owl-wrapper\", dragStart);\n },\n\n getNewPosition : function () {\n var base = this,\n newPosition = base.closestItem();\n\n if (newPosition > base.maximumItem) {\n base.currentItem = base.maximumItem;\n newPosition = base.maximumItem;\n } else if (base.newPosX >= 0) {\n newPosition = 0;\n base.currentItem = 0;\n }\n return newPosition;\n },\n closestItem : function () {\n var base = this,\n array = base.options.scrollPerPage === true ? base.pagesInArray : base.positionsInArray,\n goal = base.newPosX,\n closest = null;\n\n $.each(array, function (i, v) {\n if (goal - (base.itemWidth / 20) > array[i + 1] && goal - (base.itemWidth / 20) < v && base.moveDirection() === \"left\") {\n closest = v;\n if (base.options.scrollPerPage === true) {\n base.currentItem = $.inArray(closest, base.positionsInArray);\n } else {\n base.currentItem = i;\n }\n } else if (goal + (base.itemWidth / 20) < v && goal + (base.itemWidth / 20) > (array[i + 1] || array[i] - base.itemWidth) && base.moveDirection() === \"right\") {\n if (base.options.scrollPerPage === true) {\n closest = array[i + 1] || array[array.length - 1];\n base.currentItem = $.inArray(closest, base.positionsInArray);\n } else {\n closest = array[i + 1];\n base.currentItem = i + 1;\n }\n }\n });\n return base.currentItem;\n },\n\n moveDirection : function () {\n var base = this,\n direction;\n if (base.newRelativeX < 0) {\n direction = \"right\";\n base.playDirection = \"next\";\n } else {\n direction = \"left\";\n base.playDirection = \"prev\";\n }\n return direction;\n },\n\n customEvents : function () {\n /*jslint unparam: true*/\n var base = this;\n base.$elem.on(\"owl.next\", function () {\n base.next();\n });\n base.$elem.on(\"owl.prev\", function () {\n base.prev();\n });\n base.$elem.on(\"owl.play\", function (event, speed) {\n base.options.autoPlay = speed;\n base.play();\n base.hoverStatus = \"play\";\n });\n base.$elem.on(\"owl.stop\", function () {\n base.stop();\n base.hoverStatus = \"stop\";\n });\n base.$elem.on(\"owl.goTo\", function (event, item) {\n base.goTo(item);\n });\n base.$elem.on(\"owl.jumpTo\", function (event, item) {\n base.jumpTo(item);\n });\n },\n\n stopOnHover : function () {\n var base = this;\n if (base.options.stopOnHover === true && base.browser.isTouch !== true && base.options.autoPlay !== false) {\n base.$elem.on(\"mouseover\", function () {\n base.stop();\n });\n base.$elem.on(\"mouseout\", function () {\n if (base.hoverStatus !== \"stop\") {\n base.play();\n }\n });\n }\n },\n\n lazyLoad : function () {\n var base = this,\n i,\n $item,\n itemNumber,\n $lazyImg,\n follow;\n\n if (base.options.lazyLoad === false) {\n return false;\n }\n for (i = 0; i < base.itemsAmount; i += 1) {\n $item = $(base.$owlItems[i]);\n\n if ($item.data(\"owl-loaded\") === \"loaded\") {\n continue;\n }\n\n itemNumber = $item.data(\"owl-item\");\n $lazyImg = $item.find(\".lazyOwl\");\n\n if (typeof $lazyImg.data(\"src\") !== \"string\") {\n $item.data(\"owl-loaded\", \"loaded\");\n continue;\n }\n if ($item.data(\"owl-loaded\") === undefined) {\n $lazyImg.hide();\n $item.addClass(\"loading\").data(\"owl-loaded\", \"checked\");\n }\n if (base.options.lazyFollow === true) {\n follow = itemNumber >= base.currentItem;\n } else {\n follow = true;\n }\n if (follow && itemNumber < base.currentItem + base.options.items && $lazyImg.length) {\n base.lazyPreload($item, $lazyImg);\n }\n }\n },\n\n lazyPreload : function ($item, $lazyImg) {\n var base = this,\n iterations = 0,\n isBackgroundImg;\n\n if ($lazyImg.prop(\"tagName\") === \"DIV\") {\n $lazyImg.css(\"background-image\", \"url(\" + $lazyImg.data(\"src\") + \")\");\n isBackgroundImg = true;\n } else {\n $lazyImg[0].src = $lazyImg.data(\"src\");\n }\n\n function showImage() {\n $item.data(\"owl-loaded\", \"loaded\").removeClass(\"loading\");\n $lazyImg.removeAttr(\"data-src\");\n if (base.options.lazyEffect === \"fade\") {\n $lazyImg.fadeIn(400);\n } else {\n $lazyImg.show();\n }\n if (typeof base.options.afterLazyLoad === \"function\") {\n base.options.afterLazyLoad.apply(this, [base.$elem]);\n }\n }\n\n function checkLazyImage() {\n iterations += 1;\n if (base.completeImg($lazyImg.get(0)) || isBackgroundImg === true) {\n showImage();\n } else if (iterations <= 100) {//if image loads in less than 10 seconds \n window.setTimeout(checkLazyImage, 100);\n } else {\n showImage();\n }\n }\n\n checkLazyImage();\n },\n\n autoHeight : function () {\n var base = this,\n $currentimg = $(base.$owlItems[base.currentItem]).find(\"img\"),\n iterations;\n\n function addHeight() {\n var $currentItem = $(base.$owlItems[base.currentItem]).height();\n base.wrapperOuter.css(\"height\", $currentItem + \"px\");\n if (!base.wrapperOuter.hasClass(\"autoHeight\")) {\n window.setTimeout(function () {\n base.wrapperOuter.addClass(\"autoHeight\");\n }, 0);\n }\n }\n\n function checkImage() {\n iterations += 1;\n if (base.completeImg($currentimg.get(0))) {\n addHeight();\n } else if (iterations <= 100) { //if image loads in less than 10 seconds \n window.setTimeout(checkImage, 100);\n } else {\n base.wrapperOuter.css(\"height\", \"\"); //Else remove height attribute\n }\n }\n\n if ($currentimg.get(0) !== undefined) {\n iterations = 0;\n checkImage();\n } else {\n addHeight();\n }\n },\n\n completeImg : function (img) {\n var naturalWidthType;\n\n if (!img.complete) {\n return false;\n }\n naturalWidthType = typeof img.naturalWidth;\n if (naturalWidthType !== \"undefined\" && img.naturalWidth === 0) {\n return false;\n }\n return true;\n },\n\n onVisibleItems : function () {\n var base = this,\n i;\n\n if (base.options.addClassActive === true) {\n base.$owlItems.removeClass(\"active\");\n }\n base.visibleItems = [];\n for (i = base.currentItem; i < base.currentItem + base.options.items; i += 1) {\n base.visibleItems.push(i);\n\n if (base.options.addClassActive === true) {\n $(base.$owlItems[i]).addClass(\"active\");\n }\n }\n base.owl.visibleItems = base.visibleItems;\n },\n\n transitionTypes : function (className) {\n var base = this;\n //Currently available: \"fade\", \"backSlide\", \"goDown\", \"fadeUp\"\n base.outClass = \"owl-\" + className + \"-out\";\n base.inClass = \"owl-\" + className + \"-in\";\n },\n\n singleItemTransition : function () {\n var base = this,\n outClass = base.outClass,\n inClass = base.inClass,\n $currentItem = base.$owlItems.eq(base.currentItem),\n $prevItem = base.$owlItems.eq(base.prevItem),\n prevPos = Math.abs(base.positionsInArray[base.currentItem]) + base.positionsInArray[base.prevItem],\n origin = Math.abs(base.positionsInArray[base.currentItem]) + base.itemWidth / 2,\n animEnd = 'webkitAnimationEnd oAnimationEnd MSAnimationEnd animationend';\n\n base.isTransition = true;\n\n base.$owlWrapper\n .addClass('owl-origin')\n .css({\n \"-webkit-transform-origin\" : origin + \"px\",\n \"-moz-perspective-origin\" : origin + \"px\",\n \"perspective-origin\" : origin + \"px\"\n });\n function transStyles(prevPos) {\n return {\n \"position\" : \"relative\",\n \"left\" : prevPos + \"px\"\n };\n }\n\n $prevItem\n .css(transStyles(prevPos, 10))\n .addClass(outClass)\n .on(animEnd, function () {\n base.endPrev = true;\n $prevItem.off(animEnd);\n base.clearTransStyle($prevItem, outClass);\n });\n\n $currentItem\n .addClass(inClass)\n .on(animEnd, function () {\n base.endCurrent = true;\n $currentItem.off(animEnd);\n base.clearTransStyle($currentItem, inClass);\n });\n },\n\n clearTransStyle : function (item, classToRemove) {\n var base = this;\n item.css({\n \"position\" : \"\",\n \"left\" : \"\"\n }).removeClass(classToRemove);\n\n if (base.endPrev && base.endCurrent) {\n base.$owlWrapper.removeClass('owl-origin');\n base.endPrev = false;\n base.endCurrent = false;\n base.isTransition = false;\n }\n },\n\n owlStatus : function () {\n var base = this;\n base.owl = {\n \"userOptions\" : base.userOptions,\n \"baseElement\" : base.$elem,\n \"userItems\" : base.$userItems,\n \"owlItems\" : base.$owlItems,\n \"currentItem\" : base.currentItem,\n \"prevItem\" : base.prevItem,\n \"visibleItems\" : base.visibleItems,\n \"isTouch\" : base.browser.isTouch,\n \"browser\" : base.browser,\n \"dragDirection\" : base.dragDirection\n };\n },\n\n clearEvents : function () {\n var base = this;\n base.$elem.off(\".owl owl mousedown.disableTextSelect\");\n $(document).off(\".owl owl\");\n $(window).off(\"resize\", base.resizer);\n },\n\n unWrap : function () {\n var base = this;\n if (base.$elem.children().length !== 0) {\n base.$owlWrapper.unwrap();\n base.$userItems.unwrap().unwrap();\n if (base.owlControls) {\n base.owlControls.remove();\n }\n }\n base.clearEvents();\n base.$elem\n .attr(\"style\", base.$elem.data(\"owl-originalStyles\") || \"\")\n .attr(\"class\", base.$elem.data(\"owl-originalClasses\"));\n },\n\n destroy : function () {\n var base = this;\n base.stop();\n window.clearInterval(base.checkVisible);\n base.unWrap();\n base.$elem.removeData();\n },\n\n reinit : function (newOptions) {\n var base = this,\n options = $.extend({}, base.userOptions, newOptions);\n base.unWrap();\n base.init(options, base.$elem);\n },\n\n addItem : function (htmlString, targetPosition) {\n var base = this,\n position;\n\n if (!htmlString) {return false; }\n\n if (base.$elem.children().length === 0) {\n base.$elem.append(htmlString);\n base.setVars();\n return false;\n }\n base.unWrap();\n if (targetPosition === undefined || targetPosition === -1) {\n position = -1;\n } else {\n position = targetPosition;\n }\n if (position >= base.$userItems.length || position === -1) {\n base.$userItems.eq(-1).after(htmlString);\n } else {\n base.$userItems.eq(position).before(htmlString);\n }\n\n base.setVars();\n },\n\n removeItem : function (targetPosition) {\n var base = this,\n position;\n\n if (base.$elem.children().length === 0) {\n return false;\n }\n if (targetPosition === undefined || targetPosition === -1) {\n position = -1;\n } else {\n position = targetPosition;\n }\n\n base.unWrap();\n base.$userItems.eq(position).remove();\n base.setVars();\n }\n\n };\n\n $.fn.owlCarousel = function (options) {\n return this.each(function () {\n if ($(this).data(\"owl-init\") === true) {\n return false;\n }\n $(this).data(\"owl-init\", true);\n var carousel = Object.create(Carousel);\n carousel.init(options, this);\n $.data(this, \"owlCarousel\", carousel);\n });\n };\n\n $.fn.owlCarousel.options = {\n\n items : 5,\n itemsCustom : false,\n itemsDesktop : [1199, 4],\n itemsDesktopSmall : [979, 3],\n itemsTablet : [768, 2],\n itemsTabletSmall : false,\n itemsMobile : [479, 1],\n singleItem : false,\n itemsScaleUp : false,\n\n slideSpeed : 200,\n paginationSpeed : 800,\n rewindSpeed : 1000,\n\n autoPlay : false,\n stopOnHover : false,\n\n navigation : false,\n navigationText : [\"prev\", \"next\"],\n rewindNav : true,\n scrollPerPage : false,\n\n pagination : true,\n paginationNumbers : false,\n\n responsive : true,\n responsiveRefreshRate : 200,\n responsiveBaseWidth : window,\n\n baseClass : \"owl-carousel\",\n theme : \"owl-theme\",\n\n lazyLoad : false,\n lazyFollow : true,\n lazyEffect : \"fade\",\n\n autoHeight : false,\n\n jsonPath : false,\n jsonSuccess : false,\n\n dragBeforeAnimFinish : true,\n mouseDrag : true,\n touchDrag : true,\n\n addClassActive : false,\n transitionStyle : false,\n\n beforeUpdate : false,\n afterUpdate : false,\n beforeInit : false,\n afterInit : false,\n beforeMove : false,\n afterMove : false,\n afterAction : false,\n startDragging : false,\n afterLazyLoad: false\n };\n}(jQuery, window, document));","/* =========================================================\n * bootstrap-slider.js v2.0.0\n * http://www.eyecon.ro/bootstrap-slider\n * =========================================================\n * Copyright 2012 Stefan Petre\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * ========================================================= */\n \n!function( $ ) {\n\n\tvar Slider = function(element, options) {\n\t\tthis.element = $(element);\n\t\tthis.picker = $('
    '+\n\t\t\t\t\t\t\t'
    '+\n\t\t\t\t\t\t\t\t'
    '+\n\t\t\t\t\t\t\t\t'
    '+\n\t\t\t\t\t\t\t\t'
    '+\n\t\t\t\t\t\t\t'
    '+\n\t\t\t\t\t\t\t'
    '+\n\t\t\t\t\t\t'
    ')\n\t\t\t\t\t\t\t.insertBefore(this.element)\n\t\t\t\t\t\t\t.append(this.element);\n\t\tthis.id = this.element.data('slider-id')||options.id;\n\t\tif (this.id) {\n\t\t\tthis.picker[0].id = this.id;\n\t\t}\n\n\t\tif (typeof Modernizr !== 'undefined' && Modernizr.touch) {\n\t\t\tthis.touchCapable = true;\n\t\t}\n\n\t\tvar tooltip = this.element.data('slider-tooltip')||options.tooltip;\n\n\t\tthis.tooltip = this.picker.find('.tooltip');\n\t\tthis.tooltipInner = this.tooltip.find('div.tooltip-inner');\n\n\t\tthis.orientation = this.element.data('slider-orientation')||options.orientation;\n\t\tswitch(this.orientation) {\n\t\t\tcase 'vertical':\n\t\t\t\tthis.picker.addClass('slider-vertical');\n\t\t\t\tthis.stylePos = 'top';\n\t\t\t\tthis.mousePos = 'pageY';\n\t\t\t\tthis.sizePos = 'offsetHeight';\n\t\t\t\tthis.tooltip.addClass('right')[0].style.left = '100%';\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tthis.picker\n\t\t\t\t\t.addClass('slider-horizontal')\n\t\t\t\t\t.css('width', this.element.outerWidth());\n\t\t\t\tthis.orientation = 'horizontal';\n\t\t\t\tthis.stylePos = 'left';\n\t\t\t\tthis.mousePos = 'pageX';\n\t\t\t\tthis.sizePos = 'offsetWidth';\n\t\t\t\tthis.tooltip.addClass('top')[0].style.top = -this.tooltip.outerHeight() - 14 + 'px';\n\t\t\t\tbreak;\n\t\t}\n\n\t\tthis.min = this.element.data('slider-min')||options.min;\n\t\tthis.max = this.element.data('slider-max')||options.max;\n\t\tthis.step = this.element.data('slider-step')||options.step;\n\t\tthis.value = this.element.data('slider-value')||options.value;\n\t\tif (this.value[1]) {\n\t\t\tthis.range = true;\n\t\t}\n\n\t\tthis.selection = this.element.data('slider-selection')||options.selection;\n\t\tthis.selectionEl = this.picker.find('.slider-selection');\n\t\tif (this.selection === 'none') {\n\t\t\tthis.selectionEl.addClass('hide');\n\t\t}\n\t\tthis.selectionElStyle = this.selectionEl[0].style;\n\n\n\t\tthis.handle1 = this.picker.find('.slider-handle:first');\n\t\tthis.handle1Stype = this.handle1[0].style;\n\t\tthis.handle2 = this.picker.find('.slider-handle:last');\n\t\tthis.handle2Stype = this.handle2[0].style;\n\n\t\tvar handle = this.element.data('slider-handle')||options.handle;\n\t\tswitch(handle) {\n\t\t\tcase 'round':\n\t\t\t\tthis.handle1.addClass('round');\n\t\t\t\tthis.handle2.addClass('round');\n\t\t\t\tbreak\n\t\t\tcase 'triangle':\n\t\t\t\tthis.handle1.addClass('triangle');\n\t\t\t\tthis.handle2.addClass('triangle');\n\t\t\t\tbreak\n\t\t}\n\n\t\tif (this.range) {\n\t\t\tthis.value[0] = Math.max(this.min, Math.min(this.max, this.value[0]));\n\t\t\tthis.value[1] = Math.max(this.min, Math.min(this.max, this.value[1]));\n\t\t} else {\n\t\t\tthis.value = [ Math.max(this.min, Math.min(this.max, this.value))];\n\t\t\tthis.handle2.addClass('hide');\n\t\t\tif (this.selection == 'after') {\n\t\t\t\tthis.value[1] = this.max;\n\t\t\t} else {\n\t\t\t\tthis.value[1] = this.min;\n\t\t\t}\n\t\t}\n\t\tthis.diff = this.max - this.min;\n\t\tthis.percentage = [\n\t\t\t(this.value[0]-this.min)*100/this.diff,\n\t\t\t(this.value[1]-this.min)*100/this.diff,\n\t\t\tthis.step*100/this.diff\n\t\t];\n\n\t\tthis.offset = this.picker.offset();\n\t\tthis.size = this.picker[0][this.sizePos];\n\n\t\tthis.formater = options.formater;\n\n\t\tthis.layout();\n\n\t\tif (this.touchCapable) {\n\t\t\t// Touch: Bind touch events:\n\t\t\tthis.picker.on({\n\t\t\t\ttouchstart: $.proxy(this.mousedown, this)\n\t\t\t});\n\t\t} else {\n\t\t\tthis.picker.on({\n\t\t\t\tmousedown: $.proxy(this.mousedown, this)\n\t\t\t});\n\t\t}\n\n\t\tif (tooltip === 'show') {\n\t\t\tthis.picker.on({\n\t\t\t\tmouseenter: $.proxy(this.showTooltip, this),\n\t\t\t\tmouseleave: $.proxy(this.hideTooltip, this)\n\t\t\t});\n\t\t} else {\n\t\t\tthis.tooltip.addClass('hide');\n\t\t}\n\t};\n\n\tSlider.prototype = {\n\t\tconstructor: Slider,\n\n\t\tover: false,\n\t\tinDrag: false,\n\t\t\n\t\tshowTooltip: function(){\n\t\t\tthis.tooltip.addClass('in');\n\t\t\t//var left = Math.round(this.percent*this.width);\n\t\t\t//this.tooltip.css('left', left - this.tooltip.outerWidth()/2);\n\t\t\tthis.over = true;\n\t\t},\n\t\t\n\t\thideTooltip: function(){\n\t\t\tif (this.inDrag === false) {\n\t\t\t\tthis.tooltip.removeClass('in');\n\t\t\t}\n\t\t\tthis.over = false;\n\t\t},\n\n\t\tlayout: function(){\n\t\t\tthis.handle1Stype[this.stylePos] = this.percentage[0]+'%';\n\t\t\tthis.handle2Stype[this.stylePos] = this.percentage[1]+'%';\n\t\t\tif (this.orientation == 'vertical') {\n\t\t\t\tthis.selectionElStyle.top = Math.min(this.percentage[0], this.percentage[1]) +'%';\n\t\t\t\tthis.selectionElStyle.height = Math.abs(this.percentage[0] - this.percentage[1]) +'%';\n\t\t\t} else {\n\t\t\t\tthis.selectionElStyle.left = Math.min(this.percentage[0], this.percentage[1]) +'%';\n\t\t\t\tthis.selectionElStyle.width = Math.abs(this.percentage[0] - this.percentage[1]) +'%';\n\t\t\t}\n\t\t\tif (this.range) {\n\t\t\t\tthis.tooltipInner.text(\n\t\t\t\t\tthis.formater(this.value[0]) + \n\t\t\t\t\t' : ' + \n\t\t\t\t\tthis.formater(this.value[1])\n\t\t\t\t);\n\t\t\t\tthis.tooltip[0].style[this.stylePos] = this.size * (this.percentage[0] + (this.percentage[1] - this.percentage[0])/2)/100 - (this.orientation === 'vertical' ? this.tooltip.outerHeight()/2 : this.tooltip.outerWidth()/2) +'px';\n\t\t\t} else {\n\t\t\t\tthis.tooltipInner.text(\n\t\t\t\t\tthis.formater(this.value[0])\n\t\t\t\t);\n\t\t\t\tthis.tooltip[0].style[this.stylePos] = this.size * this.percentage[0]/100 - (this.orientation === 'vertical' ? this.tooltip.outerHeight()/2 : this.tooltip.outerWidth()/2) +'px';\n\t\t\t}\n\t\t},\n\n\t\tmousedown: function(ev) {\n\n\t\t\t// Touch: Get the original event:\n\t\t\tif (this.touchCapable && ev.type === 'touchstart') {\n\t\t\t\tev = ev.originalEvent;\n\t\t\t}\n\n\t\t\tthis.offset = this.picker.offset();\n\t\t\tthis.size = this.picker[0][this.sizePos];\n\n\t\t\tvar percentage = this.getPercentage(ev);\n\n\t\t\tif (this.range) {\n\t\t\t\tvar diff1 = Math.abs(this.percentage[0] - percentage);\n\t\t\t\tvar diff2 = Math.abs(this.percentage[1] - percentage);\n\t\t\t\tthis.dragged = (diff1 < diff2) ? 0 : 1;\n\t\t\t} else {\n\t\t\t\tthis.dragged = 0;\n\t\t\t}\n\n\t\t\tthis.percentage[this.dragged] = percentage;\n\t\t\tthis.layout();\n\n\t\t\tif (this.touchCapable) {\n\t\t\t\t// Touch: Bind touch events:\n\t\t\t\t$(document).on({\n\t\t\t\t\ttouchmove: $.proxy(this.mousemove, this),\n\t\t\t\t\ttouchend: $.proxy(this.mouseup, this)\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\t$(document).on({\n\t\t\t\t\tmousemove: $.proxy(this.mousemove, this),\n\t\t\t\t\tmouseup: $.proxy(this.mouseup, this)\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tthis.inDrag = true;\n\t\t\tvar val = this.calculateValue();\n\t\t\tthis.element.trigger({\n\t\t\t\t\ttype: 'slideStart',\n\t\t\t\t\tvalue: val\n\t\t\t\t}).trigger({\n\t\t\t\t\ttype: 'slide',\n\t\t\t\t\tvalue: val\n\t\t\t\t});\n\t\t\treturn false;\n\t\t},\n\n\t\tmousemove: function(ev) {\n\t\t\t\n\t\t\t// Touch: Get the original event:\n\t\t\tif (this.touchCapable && ev.type === 'touchmove') {\n\t\t\t\tev = ev.originalEvent;\n\t\t\t}\n\n\t\t\tvar percentage = this.getPercentage(ev);\n\t\t\tif (this.range) {\n\t\t\t\tif (this.dragged === 0 && this.percentage[1] < percentage) {\n\t\t\t\t\tthis.percentage[0] = this.percentage[1];\n\t\t\t\t\tthis.dragged = 1;\n\t\t\t\t} else if (this.dragged === 1 && this.percentage[0] > percentage) {\n\t\t\t\t\tthis.percentage[1] = this.percentage[0];\n\t\t\t\t\tthis.dragged = 0;\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.percentage[this.dragged] = percentage;\n\t\t\tthis.layout();\n\t\t\tvar val = this.calculateValue();\n\t\t\tthis.element\n\t\t\t\t.trigger({\n\t\t\t\t\ttype: 'slide',\n\t\t\t\t\tvalue: val\n\t\t\t\t})\n\t\t\t\t.data('value', val)\n\t\t\t\t.prop('value', val);\n\t\t\treturn false;\n\t\t},\n\n\t\tmouseup: function(ev) {\n\t\t\tif (this.touchCapable) {\n\t\t\t\t// Touch: Bind touch events:\n\t\t\t\t$(document).off({\n\t\t\t\t\ttouchmove: this.mousemove,\n\t\t\t\t\ttouchend: this.mouseup\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\t$(document).off({\n\t\t\t\t\tmousemove: this.mousemove,\n\t\t\t\t\tmouseup: this.mouseup\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tthis.inDrag = false;\n\t\t\tif (this.over == false) {\n\t\t\t\tthis.hideTooltip();\n\t\t\t}\n\t\t\tthis.element;\n\t\t\tvar val = this.calculateValue();\n\t\t\tthis.element\n\t\t\t\t.trigger({\n\t\t\t\t\ttype: 'slideStop',\n\t\t\t\t\tvalue: val\n\t\t\t\t})\n\t\t\t\t.data('value', val)\n\t\t\t\t.prop('value', val);\n\t\t\treturn false;\n\t\t},\n\n\t\tcalculateValue: function() {\n\t\t\tvar val;\n\t\t\tif (this.range) {\n\t\t\t\tval = [\n\t\t\t\t\t(this.min + Math.round((this.diff * this.percentage[0]/100)/this.step)*this.step),\n\t\t\t\t\t(this.min + Math.round((this.diff * this.percentage[1]/100)/this.step)*this.step)\n\t\t\t\t];\n\t\t\t\tthis.value = val;\n\t\t\t} else {\n\t\t\t\tval = (this.min + Math.round((this.diff * this.percentage[0]/100)/this.step)*this.step);\n\t\t\t\tthis.value = [val, this.value[1]];\n\t\t\t}\n\t\t\treturn val;\n\t\t},\n\n\t\tgetPercentage: function(ev) {\n\t\t\tif (this.touchCapable) {\n\t\t\t\tev = ev.touches[0];\n\t\t\t}\n\t\t\tvar percentage = (ev[this.mousePos] - this.offset[this.stylePos])*100/this.size;\n\t\t\tpercentage = Math.round(percentage/this.percentage[2])*this.percentage[2];\n\t\t\treturn Math.max(0, Math.min(100, percentage));\n\t\t},\n\n\t\tgetValue: function() {\n\t\t\tif (this.range) {\n\t\t\t\treturn this.value;\n\t\t\t}\n\t\t\treturn this.value[0];\n\t\t},\n\n\t\tsetValue: function(val) {\n\t\t\tthis.value = val;\n\n\t\t\tif (this.range) {\n\t\t\t\tthis.value[0] = Math.max(this.min, Math.min(this.max, this.value[0]));\n\t\t\t\tthis.value[1] = Math.max(this.min, Math.min(this.max, this.value[1]));\n\t\t\t} else {\n\t\t\t\tthis.value = [ Math.max(this.min, Math.min(this.max, this.value))];\n\t\t\t\tthis.handle2.addClass('hide');\n\t\t\t\tif (this.selection == 'after') {\n\t\t\t\t\tthis.value[1] = this.max;\n\t\t\t\t} else {\n\t\t\t\t\tthis.value[1] = this.min;\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.diff = this.max - this.min;\n\t\t\tthis.percentage = [\n\t\t\t\t(this.value[0]-this.min)*100/this.diff,\n\t\t\t\t(this.value[1]-this.min)*100/this.diff,\n\t\t\t\tthis.step*100/this.diff\n\t\t\t];\n\t\t\tthis.layout();\n\t\t}\n\t};\n\n\t$.fn.slider = function ( option, val ) {\n\t\treturn this.each(function () {\n\t\t\tvar $this = $(this),\n\t\t\t\tdata = $this.data('slider'),\n\t\t\t\toptions = typeof option === 'object' && option;\n\t\t\tif (!data) {\n\t\t\t\t$this.data('slider', (data = new Slider(this, $.extend({}, $.fn.slider.defaults,options))));\n\t\t\t}\n\t\t\tif (typeof option == 'string') {\n\t\t\t\tdata[option](val);\n\t\t\t}\n\t\t})\n\t};\n\n\t$.fn.slider.defaults = {\n\t\tmin: 0,\n\t\tmax: 10,\n\t\tstep: 1,\n\t\torientation: 'horizontal',\n\t\tvalue: 5,\n\t\tselection: 'before',\n\t\ttooltip: 'show',\n\t\thandle: 'round',\n\t\tformater: function(value) {\n\t\t\treturn value;\n\t\t}\n\t};\n\n\t$.fn.slider.Constructor = Slider;\n\n}( window.jQuery );","/*\r\n* Copyright (C) 2009 Joel Sutherland\r\n* Licenced under the MIT license\r\n* http://www.newmediacampaigns.com/page/jquery-flickr-plugin\r\n*\r\n* Available tags for templates:\r\n* title, link, date_taken, description, published, author, author_id, tags, image*\r\n*/\r\n(function($) {\r\n\t$.fn.jflickrfeed = function(settings, callback) {\r\n\t\tsettings = $.extend(true, {\r\n\t\t\tflickrbase: 'http://api.flickr.com/services/feeds/',\r\n\t\t\tfeedapi: 'photos_public.gne',\r\n\t\t\tlimit: 20,\r\n\t\t\tqstrings: {\r\n\t\t\t\tlang: 'en-us',\r\n\t\t\t\tformat: 'json',\r\n\t\t\t\tjsoncallback: '?'\r\n\t\t\t},\r\n\t\t\tcleanDescription: true,\r\n\t\t\tuseTemplate: true,\r\n\t\t\titemTemplate: '',\r\n\t\t\titemCallback: function(){}\r\n\t\t}, settings);\r\n\r\n\t\tvar url = settings.flickrbase + settings.feedapi + '?';\r\n\t\tvar first = true;\r\n\r\n\t\tfor(var key in settings.qstrings){\r\n\t\t\tif(!first)\r\n\t\t\t\turl += '&';\r\n\t\t\turl += key + '=' + settings.qstrings[key];\r\n\t\t\tfirst = false;\r\n\t\t}\r\n\r\n\t\treturn $(this).each(function(){\r\n\t\t\tvar $container = $(this);\r\n\t\t\tvar container = this;\r\n\t\t\t$.getJSON(url, function(data){\r\n\t\t\t\t$.each(data.items, function(i,item){\r\n\t\t\t\t\tif(i < settings.limit){\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t// Clean out the Flickr Description\r\n\t\t\t\t\t\tif(settings.cleanDescription){\r\n\t\t\t\t\t\t\tvar regex = /

    (.*?)<\\/p>/g;\r\n\t\t\t\t\t\t\tvar input = item.description;\r\n\t\t\t\t\t\t\tif(regex.test(input)) {\r\n\t\t\t\t\t\t\t\titem.description = input.match(regex)[2]\r\n\t\t\t\t\t\t\t\tif(item.description!=undefined)\r\n\t\t\t\t\t\t\t\t\titem.description = item.description.replace('

    ','').replace('

    ','');\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t// Add Image Sizes\r\n\t\t\t\t\t\t// http://www.flickr.com/services/api/misc.urls.html\r\n\t\t\t\t\t\titem['image_s'] = item.media.m.replace('_m', '_s');\r\n\t\t\t\t\t\titem['image_t'] = item.media.m.replace('_m', '_t');\r\n\t\t\t\t\t\titem['image_m'] = item.media.m.replace('_m', '_m');\r\n\t\t\t\t\t\titem['image'] = item.media.m.replace('_m', '');\r\n\t\t\t\t\t\titem['image_b'] = item.media.m.replace('_m', '_b');\r\n\t\t\t\t\t\tdelete item.media;\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t// Use Template\r\n\t\t\t\t\t\tif(settings.useTemplate){\r\n\t\t\t\t\t\t\tvar template = settings.itemTemplate;\r\n\t\t\t\t\t\t\tfor(var key in item){\r\n\t\t\t\t\t\t\t\tvar rgx = new RegExp('{{' + key + '}}', 'g');\r\n\t\t\t\t\t\t\t\ttemplate = template.replace(rgx, item[key]);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t$container.append(template)\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t//itemCallback\r\n\t\t\t\t\t\tsettings.itemCallback.call(container, item);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t\tif($.isFunction(callback)){\r\n\t\t\t\t\tcallback.call(container, data);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n})(jQuery);","/*\n* jquery-match-height 0.7.0 by @liabru\n* http://brm.io/jquery-match-height/\n* License MIT\n*/\n!function(t){\"use strict\";\"function\"==typeof define&&define.amd?define([\"jquery\"],t):\"undefined\"!=typeof module&&module.exports?module.exports=t(require(\"jquery\")):t(jQuery)}(function(t){var e=-1,o=-1,i=function(t){return parseFloat(t)||0},a=function(e){var o=1,a=t(e),n=null,r=[];return a.each(function(){var e=t(this),a=e.offset().top-i(e.css(\"margin-top\")),s=r.length>0?r[r.length-1]:null;null===s?r.push(e):Math.floor(Math.abs(n-a))<=o?r[r.length-1]=s.add(e):r.push(e),n=a}),r},n=function(e){var o={\nbyRow:!0,property:\"height\",target:null,remove:!1};return\"object\"==typeof e?t.extend(o,e):(\"boolean\"==typeof e?o.byRow=e:\"remove\"===e&&(o.remove=!0),o)},r=t.fn.matchHeight=function(e){var o=n(e);if(o.remove){var i=this;return this.css(o.property,\"\"),t.each(r._groups,function(t,e){e.elements=e.elements.not(i)}),this}return this.length<=1&&!o.target?this:(r._groups.push({elements:this,options:o}),r._apply(this,o),this)};r.version=\"0.7.0\",r._groups=[],r._throttle=80,r._maintainScroll=!1,r._beforeUpdate=null,\nr._afterUpdate=null,r._rows=a,r._parse=i,r._parseOptions=n,r._apply=function(e,o){var s=n(o),h=t(e),l=[h],c=t(window).scrollTop(),p=t(\"html\").outerHeight(!0),d=h.parents().filter(\":hidden\");return d.each(function(){var e=t(this);e.data(\"style-cache\",e.attr(\"style\"))}),d.css(\"display\",\"block\"),s.byRow&&!s.target&&(h.each(function(){var e=t(this),o=e.css(\"display\");\"inline-block\"!==o&&\"flex\"!==o&&\"inline-flex\"!==o&&(o=\"block\"),e.data(\"style-cache\",e.attr(\"style\")),e.css({display:o,\"padding-top\":\"0\",\n\"padding-bottom\":\"0\",\"margin-top\":\"0\",\"margin-bottom\":\"0\",\"border-top-width\":\"0\",\"border-bottom-width\":\"0\",height:\"100px\",overflow:\"hidden\"})}),l=a(h),h.each(function(){var e=t(this);e.attr(\"style\",e.data(\"style-cache\")||\"\")})),t.each(l,function(e,o){var a=t(o),n=0;if(s.target)n=s.target.outerHeight(!1);else{if(s.byRow&&a.length<=1)return void a.css(s.property,\"\");a.each(function(){var e=t(this),o=e.attr(\"style\"),i=e.css(\"display\");\"inline-block\"!==i&&\"flex\"!==i&&\"inline-flex\"!==i&&(i=\"block\");var a={\ndisplay:i};a[s.property]=\"\",e.css(a),e.outerHeight(!1)>n&&(n=e.outerHeight(!1)),o?e.attr(\"style\",o):e.css(\"display\",\"\")})}a.each(function(){var e=t(this),o=0;s.target&&e.is(s.target)||(\"border-box\"!==e.css(\"box-sizing\")&&(o+=i(e.css(\"border-top-width\"))+i(e.css(\"border-bottom-width\")),o+=i(e.css(\"padding-top\"))+i(e.css(\"padding-bottom\"))),e.css(s.property,n-o+\"px\"))})}),d.each(function(){var e=t(this);e.attr(\"style\",e.data(\"style-cache\")||null)}),r._maintainScroll&&t(window).scrollTop(c/p*t(\"html\").outerHeight(!0)),\nthis},r._applyDataApi=function(){var e={};t(\"[data-match-height], [data-mh]\").each(function(){var o=t(this),i=o.attr(\"data-mh\")||o.attr(\"data-match-height\");i in e?e[i]=e[i].add(o):e[i]=o}),t.each(e,function(){this.matchHeight(!0)})};var s=function(e){r._beforeUpdate&&r._beforeUpdate(e,r._groups),t.each(r._groups,function(){r._apply(this.elements,this.options)}),r._afterUpdate&&r._afterUpdate(e,r._groups)};r._update=function(i,a){if(a&&\"resize\"===a.type){var n=t(window).width();if(n===e)return;e=n;\n}i?-1===o&&(o=setTimeout(function(){s(a),o=-1},r._throttle)):s(a)},t(r._applyDataApi),t(window).bind(\"load\",function(t){r._update(!1,t)}),t(window).bind(\"resize orientationchange\",function(t){r._update(!0,t)})});"],"sourceRoot":"/source/"}